diff --git a/scripts/lib/catalog-core.mjs b/scripts/lib/catalog-core.mjs index 2c8edf578..7792c1932 100644 --- a/scripts/lib/catalog-core.mjs +++ b/scripts/lib/catalog-core.mjs @@ -35,6 +35,7 @@ export const assertSameNames = (label, actual, expected) => { const SOURCE_PATHS = { packageMetadata: "dist/generatedPackageMetadata.js", catalogIdentity: "dist/catalogIdentity.js", + cliCommandNames: "dist/cliCommandNames.js", cli: "dist/cli.js", toolContracts: "dist/contracts/toolContracts.js", officialContracts: "dist/contracts/officialToolContracts.js", @@ -76,7 +77,7 @@ const SOURCE_PATHS = { nativeProvider: "dist/native/NativeMacOSProviderMetadata.js", artifactProviders: "dist/application/InvestigationProviders.js", browserIdentities: "dist/browser/providerIdentities.js", - v8InspectorProvider: "dist/inspector/V8InspectorProvider.js", + v8InspectorProvider: "dist/inspector/providerIdentity.js", evidence: "dist/domain/evidence.js", evidenceBundle: "dist/domain/evidenceBundle.js", evidenceCompletion: "dist/domain/evidenceCompletionLedger.js", diff --git a/scripts/lib/product-catalog.mjs b/scripts/lib/product-catalog.mjs index 266e37291..ebdaaeb0d 100644 --- a/scripts/lib/product-catalog.mjs +++ b/scripts/lib/product-catalog.mjs @@ -24,7 +24,7 @@ export const createProductCatalog = async (root) => { assertSameNames( "Primary CLI inventory", cli.primary, - sources.catalogIdentity.CLI_COMMAND_NAMES, + sources.cliCommandNames.CLI_COMMAND_NAMES, ); const tools = toolFamilyCatalog(sources); const providers = providerCatalog(sources); diff --git a/scripts/lib/real-hopper-inventory.mjs b/scripts/lib/real-hopper-inventory.mjs index e5558ec07..30cb5f8a4 100644 --- a/scripts/lib/real-hopper-inventory.mjs +++ b/scripts/lib/real-hopper-inventory.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { HOPPER_PROVIDER_IDENTITY } from "../../dist/hopper/HopperProvider.js"; +import { HOPPER_PROVIDER_IDENTITY } from "../../dist/hopper/HopperProviderCapabilities.js"; import { requireMcpEvidenceResult, requireEvidenceProvider, diff --git a/scripts/lib/real-hopper-selection.mjs b/scripts/lib/real-hopper-selection.mjs index 307a43030..5206c0ad6 100644 --- a/scripts/lib/real-hopper-selection.mjs +++ b/scripts/lib/real-hopper-selection.mjs @@ -1,4 +1,4 @@ -import { HOPPER_PROVIDER_IDENTITY } from "../../dist/hopper/HopperProvider.js"; +import { HOPPER_PROVIDER_IDENTITY } from "../../dist/hopper/HopperProviderCapabilities.js"; /** Verify the selected Hopper candidate and concrete provider binding. */ export const requireHopperSelection = (status, expected) => { diff --git a/scripts/verify-real-ghidra-assertions.mjs b/scripts/verify-real-ghidra-assertions.mjs index 610534c05..a6db80e3f 100644 --- a/scripts/verify-real-ghidra-assertions.mjs +++ b/scripts/verify-real-ghidra-assertions.mjs @@ -3,7 +3,7 @@ import { hasTypedSwitchEvidence } from "./verify-real-ghidra-switch-assertions.m import { access } from "node:fs/promises"; import { parseBinaryTarget } from "../dist/application/BinaryTargetResolver.js"; -import { SUPPORTED_GHIDRA_VERSION } from "../dist/ghidra/GhidraInstallation.js"; +import { SUPPORTED_GHIDRA_VERSION } from "../dist/ghidra/GhidraInstallationPolicy.js"; import { GHIDRA_SESSION_CAPABILITIES } from "../dist/ghidra/GhidraSessionValues.js"; export function assertLocalProcedureInfo(info, expectedAddress) { diff --git a/scripts/verify-real-ghidra-windows.mjs b/scripts/verify-real-ghidra-windows.mjs index 693d15981..1c5b3b829 100644 --- a/scripts/verify-real-ghidra-windows.mjs +++ b/scripts/verify-real-ghidra-windows.mjs @@ -16,12 +16,10 @@ import { parseGhidraInventoryInput, parseGhidraInventoryResult, } from "../dist/ghidra/GhidraInventoryValues.js"; -import { - inspectGhidraInstallation, - SUPPORTED_GHIDRA_VERSION, -} from "../dist/ghidra/GhidraInstallation.js"; +import { inspectGhidraInstallation } from "../dist/ghidra/GhidraInstallation.js"; +import { SUPPORTED_GHIDRA_VERSION } from "../dist/ghidra/GhidraInstallationPolicy.js"; import { GhidraHeadlessLauncher } from "../dist/ghidra/GhidraLauncher.js"; -import { GHIDRA_PROVIDER_IDENTITY } from "../dist/ghidra/GhidraProvider.js"; +import { GHIDRA_PROVIDER_IDENTITY } from "../dist/ghidra/GhidraProviderCapabilities.js"; import { windowsP0Capabilities } from "../dist/ghidra/GhidraProviderCapabilities.js"; import { GHIDRA_SESSION_CAPABILITIES } from "../dist/ghidra/GhidraSessionValues.js"; import { parseBinaryTarget } from "../dist/application/BinaryTargetResolver.js"; diff --git a/scripts/verify-real-ghidra.mjs b/scripts/verify-real-ghidra.mjs index 4c2ed5290..59698f9c2 100644 --- a/scripts/verify-real-ghidra.mjs +++ b/scripts/verify-real-ghidra.mjs @@ -10,12 +10,10 @@ import { promisify } from "node:util"; import { parseBinaryTarget } from "../dist/application/BinaryTargetResolver.js"; import { resolveGhidraAnalysisProfile } from "../dist/ghidra/GhidraAnalysisProfile.js"; import { GhidraClient } from "../dist/ghidra/GhidraClient.js"; -import { - inspectGhidraInstallation, - SUPPORTED_GHIDRA_VERSION, -} from "../dist/ghidra/GhidraInstallation.js"; +import { inspectGhidraInstallation } from "../dist/ghidra/GhidraInstallation.js"; +import { SUPPORTED_GHIDRA_VERSION } from "../dist/ghidra/GhidraInstallationPolicy.js"; import { GhidraHeadlessLauncher } from "../dist/ghidra/GhidraLauncher.js"; -import { GHIDRA_PROVIDER_IDENTITY } from "../dist/ghidra/GhidraProvider.js"; +import { GHIDRA_PROVIDER_IDENTITY } from "../dist/ghidra/GhidraProviderCapabilities.js"; import { assertCleanup, diff --git a/scripts/verify-real-hopper-deadlines.mjs b/scripts/verify-real-hopper-deadlines.mjs index 78270404e..11e071431 100644 --- a/scripts/verify-real-hopper-deadlines.mjs +++ b/scripts/verify-real-hopper-deadlines.mjs @@ -9,7 +9,7 @@ import { parseBinaryTarget } from "../dist/application/BinaryTargetResolver.js"; import { resolveHopperAnalysisProfile } from "../dist/hopper/HopperAnalysisProfile.js"; import { HopperApplicationLauncher } from "../dist/hopper/BridgeLauncher.js"; import { HopperClient } from "../dist/hopper/HopperClient.js"; -import { HOPPER_PROVIDER_IDENTITY } from "../dist/hopper/HopperProvider.js"; +import { HOPPER_PROVIDER_IDENTITY } from "../dist/hopper/HopperProviderCapabilities.js"; import { loadRealHopperFixtureTargets } from "./lib/real-hopper-fixture.mjs"; // These options belong to the native client, below the CLI/MCP tool surface. diff --git a/scripts/verify-real-hopper-fat.mjs b/scripts/verify-real-hopper-fat.mjs index 050a95da4..5b1776ccb 100644 --- a/scripts/verify-real-hopper-fat.mjs +++ b/scripts/verify-real-hopper-fat.mjs @@ -24,7 +24,7 @@ import { } from "./lib/mcp-verifier-results.mjs"; import { snapshotHopperRuntime } from "./lib/real-hopper-cleanup.mjs"; import { HOPPER_TARGET_LEASE_DIRECTORY } from "../dist/hopper/HopperTargetLease.js"; -import { parseConfig } from "../dist/config.js"; +import { parseConfig } from "../dist/config/parseConfig.js"; import { verifyHopperSourceBinding, relocateSingleFatSlice, diff --git a/scripts/verify-real-hopper.mjs b/scripts/verify-real-hopper.mjs index a60189c22..97ad4ac9e 100644 --- a/scripts/verify-real-hopper.mjs +++ b/scripts/verify-real-hopper.mjs @@ -11,7 +11,7 @@ import { requireFunctionDossier, requirePseudocode, } from "../dist/application/RealHopperAssertions.js"; -import { HOPPER_PROVIDER_IDENTITY } from "../dist/hopper/HopperProvider.js"; +import { HOPPER_PROVIDER_IDENTITY } from "../dist/hopper/HopperProviderCapabilities.js"; import { HOPPER_TARGET_LEASE_DIRECTORY } from "../dist/hopper/HopperTargetLease.js"; import { REA_WORKFLOW_PROVIDER } from "../dist/application/InvestigationProviders.js"; import { loadRealHopperFixtureTargets } from "./lib/real-hopper-fixture.mjs"; diff --git a/src/android/JadxProvider.ts b/src/android/JadxProvider.ts index a3f8caaff..e1dc7d4ab 100644 --- a/src/android/JadxProvider.ts +++ b/src/android/JadxProvider.ts @@ -16,7 +16,7 @@ import { ProviderAdapterError } from "../domain/providerAdapterError.js"; import { ProviderCleanupError } from "../domain/providerCleanupError.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import type { AndroidRequest } from "../domain/android/androidAnalysis.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { err, ok, type Result } from "../domain/result.js"; import { PrivateRuntimeRoot } from "../process/PrivateRuntimeRoot.js"; import { diff --git a/src/android/JadxSession.ts b/src/android/JadxSession.ts index a2436de30..b8e11f285 100644 --- a/src/android/JadxSession.ts +++ b/src/android/JadxSession.ts @@ -9,7 +9,7 @@ import { AnalysisInputError, AnalysisOutputError, } from "../domain/analysisErrorCore.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { jsonValueSchema, type JsonValue } from "../domain/jsonValue.js"; import { ProviderAdapterError } from "../domain/providerAdapterError.js"; import type { OwnedProviderProcessSpawnOptions } from "../process/ProviderProcess.js"; diff --git a/src/application/AnalysisProvider.ts b/src/application/AnalysisProvider.ts index 8df0f8c6b..99328c1a5 100644 --- a/src/application/AnalysisProvider.ts +++ b/src/application/AnalysisProvider.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import type { OfficialToolName } from "../contracts/officialToolContracts.js"; import type { EnhancedToolName } from "../contracts/enhancedInputs.js"; import type { NativeToolName } from "../contracts/native/nativeToolContracts.js"; diff --git a/src/application/BrowserEvidence.ts b/src/application/BrowserEvidence.ts index a29c0cefc..d864fac9d 100644 --- a/src/application/BrowserEvidence.ts +++ b/src/application/BrowserEvidence.ts @@ -7,11 +7,13 @@ import { import { jsonValueSchema } from "../domain/jsonValue.js"; import { sanitizeBrowserUrl } from "../domain/browserObservation.js"; import type { - BrowserTargetList, InspectWebPageInput, ListBrowserTargetsInput, - WebPageInspection, } from "../domain/browserObservation.js"; +import type { + BrowserTargetList, + WebPageInspection, +} from "../domain/browserObservationSchemas.js"; import type { AnalyzeWebBundleInput, WebBundleAnalysis, diff --git a/src/application/BrowserObservationPort.ts b/src/application/BrowserObservationPort.ts index 1d33e12af..a35d8a13c 100644 --- a/src/application/BrowserObservationPort.ts +++ b/src/application/BrowserObservationPort.ts @@ -1,10 +1,12 @@ import type { AnalysisError } from "../domain/analysisErrorBase.js"; import type { - BrowserTargetList, InspectWebPageInput, ListBrowserTargetsInput, - WebPageInspection, } from "../domain/browserObservation.js"; +import type { + BrowserTargetList, + WebPageInspection, +} from "../domain/browserObservationSchemas.js"; import type { Result } from "../domain/result.js"; import type { AnalyzeWebBundleInput, diff --git a/src/application/DirectAnalysis.ts b/src/application/DirectAnalysis.ts index c1bd78e77..f23cee936 100644 --- a/src/application/DirectAnalysis.ts +++ b/src/application/DirectAnalysis.ts @@ -6,7 +6,8 @@ import type { DirectAnalysisDependencies } from "./DirectAnalysisDependencies.js import type { BinarySession } from "./binary/BinarySession.js"; import type { SessionProviderRoute } from "./binary/SessionProviderRouter.js"; import type { ResolvedSessionOpen } from "./binary/BinarySessionOpen.js"; -import { silentLogger, type Logger } from "../logger.js"; +import { silentLogger } from "../logger.js"; +import type { Logger } from "pino"; import { createEvidence } from "../domain/evidence.js"; import type { Evidence } from "../domain/evidence.js"; import type { NativeToolName } from "../contracts/native/nativeToolContracts.js"; @@ -24,7 +25,7 @@ import { writeAnalysisSnapshot, } from "./binary/AnalysisSnapshotFiles.js"; import { parseBinaryTarget } from "./BinaryTargetResolver.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { snapshotEvidenceForQuery, snapshotMatchesTarget, diff --git a/src/application/DirectAnalysisDependencies.ts b/src/application/DirectAnalysisDependencies.ts index 8603baf99..5340393b6 100644 --- a/src/application/DirectAnalysisDependencies.ts +++ b/src/application/DirectAnalysisDependencies.ts @@ -1,5 +1,6 @@ -import type { AppConfig, parseConfig } from "../config.js"; -import type { Logger } from "../logger.js"; +import type { AppConfig } from "../config/types.js"; +import type { parseConfig } from "../config/parseConfig.js"; +import type { Logger } from "pino"; import type { BinarySession } from "./binary/BinarySession.js"; /** Configuration and one-shot session factories supplied by the production boundary. */ diff --git a/src/application/DirectAnalysisStatus.ts b/src/application/DirectAnalysisStatus.ts index b05bbc83e..5548e61c4 100644 --- a/src/application/DirectAnalysisStatus.ts +++ b/src/application/DirectAnalysisStatus.ts @@ -1,7 +1,8 @@ import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import { jsonObjectSchema, type JsonValue } from "../domain/jsonValue.js"; import { createServerIdentity } from "../serverIdentity.js"; -import { silentLogger, type Logger } from "../logger.js"; +import { silentLogger } from "../logger.js"; +import type { Logger } from "pino"; import type { DirectAnalysisDependencies } from "./DirectAnalysisDependencies.js"; const runSessionStatus = async ( diff --git a/src/application/EnhancedTools.ts b/src/application/EnhancedTools.ts index a41aca239..d24fbceef 100644 --- a/src/application/EnhancedTools.ts +++ b/src/application/EnhancedTools.ts @@ -42,8 +42,6 @@ import { traceCallPath } from "./CallPathTracing.js"; import { resolveProcedureAddress } from "./ProcedureAddressResolution.js"; import { traceLiteralFeature } from "./EnhancedLiteralTracing.js"; import { projectNativeApiInspection } from "./native/NativeApiInspection.js"; -export type { ValidatedEnhancedCall } from "./EnhancedToolTypes.js"; - /** * Composes direct provider operations into bounded reverse-engineering tools. * Direct callers use `execute`; adapters that own validation use diff --git a/src/application/EvidenceBundleFiles.ts b/src/application/EvidenceBundleFiles.ts index c6edd156f..487679070 100644 --- a/src/application/EvidenceBundleFiles.ts +++ b/src/application/EvidenceBundleFiles.ts @@ -10,7 +10,7 @@ import { } from "../domain/evidenceErrors.js"; import { err, ok, type Result } from "../domain/result.js"; import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; -import { parseProcessCapture } from "../domain/process/processCapture.js"; +import { parseProcessCapture } from "../domain/process/processCaptureParsing.js"; import { bufferedJsonParts, canonicalJsonParts, diff --git a/src/application/FunctionAnalysisEvidence.ts b/src/application/FunctionAnalysisEvidence.ts index 17154edfd..e2ef187d4 100644 --- a/src/application/FunctionAnalysisEvidence.ts +++ b/src/application/FunctionAnalysisEvidence.ts @@ -3,7 +3,7 @@ import type { ExecutionOptions, } from "./AnalysisProvider.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { createEvidence } from "../domain/evidence.js"; import { parseFunctionDossier } from "../domain/hopperValues.js"; import { jsonObjectSchema, type JsonValue } from "../domain/jsonValue.js"; diff --git a/src/application/ReconstructionObligationCandidates.test.ts b/src/application/ReconstructionObligationCandidates.test.ts index 0644cf4d7..ed3ac93ce 100644 --- a/src/application/ReconstructionObligationCandidates.test.ts +++ b/src/application/ReconstructionObligationCandidates.test.ts @@ -3,7 +3,7 @@ import { describe, expect, it } from "vitest"; import { createEvidence } from "../domain/evidence.js"; import { createEvidenceBundle } from "../domain/evidenceBundle.js"; import { emptyUnverifiedProcessCapture } from "../domain/process/processCapture.fixture.js"; -import { parseProcessCapture } from "../domain/process/processCapture.js"; +import { parseProcessCapture } from "../domain/process/processCaptureParsing.js"; import { digestProcessCommitment, parseProcessScenario, diff --git a/src/application/ReconstructionObligationCandidates.ts b/src/application/ReconstructionObligationCandidates.ts index 014037692..005f9b767 100644 --- a/src/application/ReconstructionObligationCandidates.ts +++ b/src/application/ReconstructionObligationCandidates.ts @@ -7,7 +7,7 @@ import { parseEvidenceBundle, type EvidenceBundle, } from "../domain/evidenceBundle.js"; -import { parseProcessCapture } from "../domain/process/processCapture.js"; +import { parseProcessCapture } from "../domain/process/processCaptureParsing.js"; import type { ReconstructionObligation, ReviewedReconstructionObligation, diff --git a/src/application/ReconstructionObligationLedger.fixture.ts b/src/application/ReconstructionObligationLedger.fixture.ts index 1892a4442..19a319779 100644 --- a/src/application/ReconstructionObligationLedger.fixture.ts +++ b/src/application/ReconstructionObligationLedger.fixture.ts @@ -1,13 +1,12 @@ -import { PROCESS_PROVIDER } from "./process/ProcessEvidence.js"; +import { PROCESS_PROVIDER } from "../domain/process/processEvidenceProvider.js"; import { buildReconstructionObligationLedgerEvidenceValidated, resolveReconstructionObligationLedgerRequest, } from "./ReconstructionObligationLedgerService.js"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../domain/process/processCapture.fixture.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../domain/process/processCaptureExample.js"; import { createEvidence, type Evidence } from "../domain/evidence.js"; import { createEvidenceBundle } from "../domain/evidenceBundle.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; -import { processCaptureSchema } from "../domain/process/processCapture.js"; import { reconstructionObligationLedgerSchema, type ReconstructionObligationLedgerInput, @@ -15,6 +14,7 @@ import { type ReviewedReconstructionObligation, } from "../domain/reconstructionObligationLedgerSchemas.js"; +import { processCaptureSchema } from "../domain/process/processCapture.js"; /** Build controlled fixture Evidence used by reconstruction-ledger scenarios. */ export const proofEvidence = (id: string) => createEvidence( diff --git a/src/application/ReferenceSourceImport.ts b/src/application/ReferenceSourceImport.ts index 704acd64a..69cdeef9c 100644 --- a/src/application/ReferenceSourceImport.ts +++ b/src/application/ReferenceSourceImport.ts @@ -17,11 +17,6 @@ import { } from "./ReferenceSourceImportTypes.js"; import { prepareReferenceSourceImport } from "./ReferenceSourceImportPolicy.js"; -export type { - ReferenceSourceImportError, - ReferenceSourceImportOptions, -} from "./ReferenceSourceImportTypes.js"; - const failure = ( code: ReferenceSourceImportError["code"], message: string, diff --git a/src/application/ReferenceSourceImportEntries.ts b/src/application/ReferenceSourceImportEntries.ts index 233e9cb4e..6a3e70451 100644 --- a/src/application/ReferenceSourceImportEntries.ts +++ b/src/application/ReferenceSourceImportEntries.ts @@ -10,7 +10,7 @@ import { parseReferenceSourceImports } from "../domain/referenceSourceImportPars import type { ReferenceSourceEntry, ReferenceSourceRead, -} from "../reference/ReferenceSourceReader.js"; +} from "../reference/ReferenceSourceReaderTypes.js"; import { PARSEABLE_REFERENCE_SOURCE_LANGUAGES } from "./ReferenceSourceImportTypes.js"; export interface ParsedReferenceSourceEntries { diff --git a/src/application/WorkflowEvidence.test.ts b/src/application/WorkflowEvidence.test.ts index 5beec7b56..b7476354a 100644 --- a/src/application/WorkflowEvidence.test.ts +++ b/src/application/WorkflowEvidence.test.ts @@ -40,7 +40,6 @@ describe("workflow residual question retention", () => { required_authority: "shipped-artifact", }, ]); - expect(records.listUnknowns()).toHaveLength(1); }); it("preserves registry failures rather than presenting a completed workflow", () => { diff --git a/src/application/WorkflowEvidence.ts b/src/application/WorkflowEvidence.ts index aaca2a2e0..bf2530080 100644 --- a/src/application/WorkflowEvidence.ts +++ b/src/application/WorkflowEvidence.ts @@ -9,7 +9,7 @@ import { analysisProfileSchema, committedProviderSchema, } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { createEvidence, type Evidence, diff --git a/src/application/android/AndroidAnalysisPort.ts b/src/application/android/AndroidAnalysisPort.ts index d58461849..aec02ac9d 100644 --- a/src/application/android/AndroidAnalysisPort.ts +++ b/src/application/android/AndroidAnalysisPort.ts @@ -3,7 +3,7 @@ import type { ExecutionOptions, } from "../AnalysisProvider.js"; import type { AndroidRequest } from "../../domain/android/androidAnalysis.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import type { AnalysisError } from "../../domain/analysisErrorBase.js"; import type { Result } from "../../domain/result.js"; import type { ProviderAvailability } from "../AnalysisProvider.js"; diff --git a/src/application/binary/AnalysisProviderEvaluation.ts b/src/application/binary/AnalysisProviderEvaluation.ts index f5b89c443..1654ab783 100644 --- a/src/application/binary/AnalysisProviderEvaluation.ts +++ b/src/application/binary/AnalysisProviderEvaluation.ts @@ -2,7 +2,7 @@ import { analysisProfileSchema, type AnalysisProfileCommitment, } from "../../domain/analysisProfile.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { AnalysisCancelledError, AnalysisUnsupportedTargetError, diff --git a/src/application/binary/AnalysisProviderRegistry.test.ts b/src/application/binary/AnalysisProviderRegistry.test.ts index 9fd6dbfcc..8eae6c9c9 100644 --- a/src/application/binary/AnalysisProviderRegistry.test.ts +++ b/src/application/binary/AnalysisProviderRegistry.test.ts @@ -11,7 +11,7 @@ import { type ProviderTargetSupport, } from "../AnalysisProvider.js"; import { createAnalysisProfile } from "../../domain/analysisProfile.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { ProviderAdapterError } from "../../domain/providerAdapterError.js"; import { ProviderSelectionError } from "../../domain/providerSelectionError.js"; import { projectAnalysisError } from "../../domain/analysisErrorProjection.js"; diff --git a/src/application/binary/AnalysisProviderRegistry.ts b/src/application/binary/AnalysisProviderRegistry.ts index 41cd25e6a..2702a0706 100644 --- a/src/application/binary/AnalysisProviderRegistry.ts +++ b/src/application/binary/AnalysisProviderRegistry.ts @@ -4,7 +4,7 @@ import { type AnalysisProviderSelector, } from "../../contracts/providerSelection.js"; import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { AnalysisCancelledError } from "../../domain/analysisErrorCore.js"; import type { AnalysisError } from "../../domain/analysisErrorBase.js"; import { diff --git a/src/application/binary/AnalysisSnapshotCache.ts b/src/application/binary/AnalysisSnapshotCache.ts index 10aaa516e..81f73bcc0 100644 --- a/src/application/binary/AnalysisSnapshotCache.ts +++ b/src/application/binary/AnalysisSnapshotCache.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; import type { JsonValue } from "../../domain/jsonValue.js"; import type { EvidenceBundle } from "../../domain/evidenceBundle.js"; diff --git a/src/application/binary/BinarySession.ts b/src/application/binary/BinarySession.ts index fd7e89d6d..aa54a8c04 100644 --- a/src/application/binary/BinarySession.ts +++ b/src/application/binary/BinarySession.ts @@ -1,6 +1,6 @@ import { randomUUID } from "node:crypto"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { analysisProfilesEqual, type AnalysisProfileCommitment, @@ -48,7 +48,6 @@ import { analysisErrorWithCleanupFailure, closeAnalysisClient, } from "./AnalysisClientCleanup.js"; -export type { BinarySessionPort } from "./BinarySessionPort.js"; const OFFICIAL_OPERATIONS: ReadonlySet = new Set( OFFICIAL_TOOL_CONTRACTS.map(({ name }) => name), ); diff --git a/src/application/binary/BinarySessionExecution.ts b/src/application/binary/BinarySessionExecution.ts index 9a2ae82da..6893308c3 100644 --- a/src/application/binary/BinarySessionExecution.ts +++ b/src/application/binary/BinarySessionExecution.ts @@ -1,5 +1,5 @@ import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { AnalysisCapabilityUnavailableError } from "../../domain/analysisErrorCore.js"; import { NoBinaryOpenError } from "../../domain/configurationErrors.js"; import { ProviderAdapterError } from "../../domain/providerAdapterError.js"; diff --git a/src/application/binary/BinarySessionOpen.ts b/src/application/binary/BinarySessionOpen.ts index 8c9634c7f..cde06c29d 100644 --- a/src/application/binary/BinarySessionOpen.ts +++ b/src/application/binary/BinarySessionOpen.ts @@ -8,7 +8,7 @@ import { } from "../../domain/analysisSnapshot.js"; import type { AnalysisSnapshot } from "../../domain/analysisSnapshot.js"; import { parseBinaryTarget } from "../BinaryTargetResolver.js"; -import { type BinaryTarget } from "../../domain/binaryTarget.js"; +import { type BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { EvidenceIntegrityError, AnalysisSnapshotMismatchError, diff --git a/src/application/binary/BinarySessionPort.ts b/src/application/binary/BinarySessionPort.ts index 19baa0130..fc98c1f16 100644 --- a/src/application/binary/BinarySessionPort.ts +++ b/src/application/binary/BinarySessionPort.ts @@ -1,6 +1,6 @@ import type { InvestigationRecordPort } from "../investigation/InvestigationRecordPort.js"; import type { ExecutableFormatHint } from "../../domain/dosCom.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import type { JsonValue } from "../../domain/jsonValue.js"; import type { AnalysisSnapshot } from "../../domain/analysisSnapshot.js"; import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; diff --git a/src/application/binary/BinarySessionRecords.ts b/src/application/binary/BinarySessionRecords.ts index 02c50839f..884c02ff3 100644 --- a/src/application/binary/BinarySessionRecords.ts +++ b/src/application/binary/BinarySessionRecords.ts @@ -1,6 +1,6 @@ import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; import type { AnalysisSnapshot } from "../../domain/analysisSnapshot.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import type { Evidence } from "../../domain/evidence.js"; import type { EvidenceBundle } from "../../domain/evidenceBundle.js"; import type { JsonValue } from "../../domain/jsonValue.js"; diff --git a/src/application/binary/BinarySessionStatus.ts b/src/application/binary/BinarySessionStatus.ts index 68db9a1b0..4c5fc34bb 100644 --- a/src/application/binary/BinarySessionStatus.ts +++ b/src/application/binary/BinarySessionStatus.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import type { JsonValue } from "../../domain/jsonValue.js"; import type { ProviderOperationHealth } from "../../domain/providerOperationHealth.js"; import type { diff --git a/src/application/binary/CompositeProvider.ts b/src/application/binary/CompositeProvider.ts index bf6c93d35..941cf9375 100644 --- a/src/application/binary/CompositeProvider.ts +++ b/src/application/binary/CompositeProvider.ts @@ -1,6 +1,6 @@ import { AnalysisCapabilityUnavailableError } from "../../domain/analysisErrorCore.js"; import { err, ok } from "../../domain/result.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; import type { AnalysisClient, diff --git a/src/application/binary/LazyAnalysisProvider.ts b/src/application/binary/LazyAnalysisProvider.ts index 86d23c998..b9127e48b 100644 --- a/src/application/binary/LazyAnalysisProvider.ts +++ b/src/application/binary/LazyAnalysisProvider.ts @@ -1,5 +1,5 @@ import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { AnalysisCancelledError } from "../../domain/analysisErrorCore.js"; import { AnalysisError } from "../../domain/analysisErrorBase.js"; import { ProviderAdapterError } from "../../domain/providerAdapterError.js"; diff --git a/src/application/binary/SessionProviderRouter.ts b/src/application/binary/SessionProviderRouter.ts index ed189afab..03bb028a4 100644 --- a/src/application/binary/SessionProviderRouter.ts +++ b/src/application/binary/SessionProviderRouter.ts @@ -1,6 +1,6 @@ import type { AnalysisProviderSelector } from "../../contracts/providerSelection.js"; import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { AnalysisCapabilityUnavailableError } from "../../domain/analysisErrorCore.js"; import { ProviderSelectionError } from "../../domain/providerSelectionError.js"; import { type AnalysisError } from "../../domain/analysisErrorBase.js"; diff --git a/src/application/investigation/EvidenceLedger.test.ts b/src/application/investigation/EvidenceLedger.test.ts index c65c5e181..d4750f9c8 100644 --- a/src/application/investigation/EvidenceLedger.test.ts +++ b/src/application/investigation/EvidenceLedger.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { createEvidence } from "../../domain/evidence.js"; import { createEvidenceBundle } from "../../domain/evidenceBundle.js"; import { recordUnknownInputSchema } from "../../domain/residualUnknown.js"; diff --git a/src/application/investigation/InvestigationRecords.ts b/src/application/investigation/InvestigationRecords.ts index b8a1dea99..15c7da123 100644 --- a/src/application/investigation/InvestigationRecords.ts +++ b/src/application/investigation/InvestigationRecords.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { createEvidence, type Evidence } from "../../domain/evidence.js"; import type { EvidenceBundle } from "../../domain/evidenceBundle.js"; import type { EvidenceIntegrityError } from "../../domain/evidenceErrors.js"; diff --git a/src/application/investigation/UnknownEvidence.ts b/src/application/investigation/UnknownEvidence.ts index e1712a004..ff8fc7c34 100644 --- a/src/application/investigation/UnknownEvidence.ts +++ b/src/application/investigation/UnknownEvidence.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { createEvidence, type Evidence } from "../../domain/evidence.js"; import type { RecordUnknownInput, diff --git a/src/application/javascript/ElectronBoundaryGraphContext.ts b/src/application/javascript/ElectronBoundaryGraphContext.ts index 460f849dd..bd0598331 100644 --- a/src/application/javascript/ElectronBoundaryGraphContext.ts +++ b/src/application/javascript/ElectronBoundaryGraphContext.ts @@ -1,4 +1,4 @@ -import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraph.js"; +import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraphSchemas.js"; import { sha256Text } from "../../domain/javascript/javascriptStaticAnalysisHelpers.js"; import type { JavaScriptSourceRange } from "../../domain/javascript/javascriptStaticAnalysisTypes.js"; import type { JavaScriptArtifactFile } from "../../domain/javascript/javascriptArtifactFiles.js"; diff --git a/src/application/javascript/ElectronBoundaryGraphIpc.ts b/src/application/javascript/ElectronBoundaryGraphIpc.ts index 64a69c4ab..43fdaeee5 100644 --- a/src/application/javascript/ElectronBoundaryGraphIpc.ts +++ b/src/application/javascript/ElectronBoundaryGraphIpc.ts @@ -1,4 +1,4 @@ -import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraph.js"; +import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraphSchemas.js"; import type { ElectronSenderValidationFinding } from "../../domain/javascript/electronStaticAnalysisTypes.js"; import type { JavaScriptArtifactFile } from "../../domain/javascript/javascriptArtifactFiles.js"; import { diff --git a/src/application/javascript/ElectronBoundaryGraphWindows.ts b/src/application/javascript/ElectronBoundaryGraphWindows.ts index 68ed49e17..7643062c5 100644 --- a/src/application/javascript/ElectronBoundaryGraphWindows.ts +++ b/src/application/javascript/ElectronBoundaryGraphWindows.ts @@ -1,4 +1,4 @@ -import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraph.js"; +import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraphSchemas.js"; import type { ElectronBrowserWindowFinding, ElectronContextBridgeFinding, diff --git a/src/application/javascript/JavaScriptArtifactGraphAccumulator.ts b/src/application/javascript/JavaScriptArtifactGraphAccumulator.ts index b15743ca8..5891e00de 100644 --- a/src/application/javascript/JavaScriptArtifactGraphAccumulator.ts +++ b/src/application/javascript/JavaScriptArtifactGraphAccumulator.ts @@ -1,9 +1,11 @@ import { createJavaScriptApplicationEdge, createJavaScriptApplicationNode, - type ApplicationEdge, - type ApplicationNode, } from "../../domain/javascript/javascriptApplicationGraph.js"; +import type { + ApplicationEdge, + ApplicationNode, +} from "../../domain/javascript/javascriptApplicationGraphSchemas.js"; /** Deduplicate graph entities while retaining distinct evidence observations. */ export class JavaScriptArtifactGraphAccumulator { diff --git a/src/application/javascript/JavaScriptArtifactGraphBuilder.ts b/src/application/javascript/JavaScriptArtifactGraphBuilder.ts index 9951ee6ce..26d6b7b2e 100644 --- a/src/application/javascript/JavaScriptArtifactGraphBuilder.ts +++ b/src/application/javascript/JavaScriptArtifactGraphBuilder.ts @@ -1,4 +1,4 @@ -import type { ArtifactInventorySnapshot } from "../../artifacts/inventory/ArtifactInventory.js"; +import type { ArtifactInventorySnapshot } from "../../domain/artifactInventorySnapshot.js"; import { createJavaScriptApplicationGraph, createImmutableJavaScriptApplicationGraphSteps, @@ -36,10 +36,10 @@ import { import { addJavaScriptArtifactContainers, addJavaScriptArtifactFiles, - addJavaScriptBundlerNodes, addJavaScriptPackageNodes, createJavaScriptArtifactRootNode, } from "./JavaScriptArtifactGraphStructure.js"; +import { addJavaScriptBundlerNodes } from "./JavaScriptArtifactGraphBundlers.js"; import { addElectronBoundaries } from "./ElectronBoundaryGraph.js"; import { classifyElectronIpcPairings, diff --git a/src/application/javascript/JavaScriptArtifactGraphBundlers.ts b/src/application/javascript/JavaScriptArtifactGraphBundlers.ts index b7d7cfa4b..f09e87814 100644 --- a/src/application/javascript/JavaScriptArtifactGraphBundlers.ts +++ b/src/application/javascript/JavaScriptArtifactGraphBundlers.ts @@ -1,4 +1,4 @@ -import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraph.js"; +import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraphSchemas.js"; import type { JavaScriptBundlerRegistration } from "../../domain/javascript/javascriptStaticAnalysisTypes.js"; import type { JavaScriptArtifactFile } from "../../domain/javascript/javascriptArtifactFiles.js"; import { diff --git a/src/application/javascript/JavaScriptArtifactGraphContext.ts b/src/application/javascript/JavaScriptArtifactGraphContext.ts index 74e0e1a79..692f35ae9 100644 --- a/src/application/javascript/JavaScriptArtifactGraphContext.ts +++ b/src/application/javascript/JavaScriptArtifactGraphContext.ts @@ -1,10 +1,10 @@ -import type { ArtifactInventorySnapshot } from "../../artifacts/inventory/ArtifactInventory.js"; +import type { ArtifactInventorySnapshot } from "../../domain/artifactInventorySnapshot.js"; import { completeApplicationCoverage, partialApplicationCoverage, type ApplicationGraphEvidence, } from "../../domain/javascript/javascriptApplicationEvidenceSchemas.js"; -import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraph.js"; +import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraphSchemas.js"; import type { JavaScriptSourceRange } from "../../domain/javascript/javascriptStaticAnalysisTypes.js"; import type { JavaScriptModuleArtifactAnalysis } from "./JavaScriptArtifactAnalysisTypes.js"; import type { diff --git a/src/application/javascript/JavaScriptArtifactGraphFindings.ts b/src/application/javascript/JavaScriptArtifactGraphFindings.ts index 50ab6854c..edd9ea920 100644 --- a/src/application/javascript/JavaScriptArtifactGraphFindings.ts +++ b/src/application/javascript/JavaScriptArtifactGraphFindings.ts @@ -1,4 +1,4 @@ -import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraph.js"; +import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraphSchemas.js"; import type { JavaScriptStaticAnalysis } from "../../domain/javascript/javascriptStaticAnalysisTypes.js"; import type { JavaScriptArtifactFile } from "../../domain/javascript/javascriptArtifactFiles.js"; import { diff --git a/src/application/javascript/JavaScriptArtifactGraphStructure.ts b/src/application/javascript/JavaScriptArtifactGraphStructure.ts index 1299f28dc..cbf9e3c81 100644 --- a/src/application/javascript/JavaScriptArtifactGraphStructure.ts +++ b/src/application/javascript/JavaScriptArtifactGraphStructure.ts @@ -1,5 +1,5 @@ -import type { ArtifactInventorySnapshot } from "../../artifacts/inventory/ArtifactInventory.js"; -import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraph.js"; +import type { ArtifactInventorySnapshot } from "../../domain/artifactInventorySnapshot.js"; +import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraphSchemas.js"; import { completeApplicationCoverage } from "../../domain/javascript/javascriptApplicationEvidenceSchemas.js"; import type { JavaScriptModuleArtifactAnalysis } from "./JavaScriptArtifactAnalysisTypes.js"; import type { @@ -21,7 +21,6 @@ import { staticInferenceEvidence, } from "./JavaScriptArtifactGraphEvidence.js"; import { resolveArtifactPathByContext } from "./JavaScriptArtifactPathResolution.js"; -export { addJavaScriptBundlerNodes } from "./JavaScriptArtifactGraphBundlers.js"; interface PackageRoleInput { readonly packageNode: ApplicationNode; diff --git a/src/application/javascript/JavaScriptArtifactReconstruction.ts b/src/application/javascript/JavaScriptArtifactReconstruction.ts index b61d257c2..692321d8c 100644 --- a/src/application/javascript/JavaScriptArtifactReconstruction.ts +++ b/src/application/javascript/JavaScriptArtifactReconstruction.ts @@ -18,7 +18,7 @@ import { javascriptArtifactReconstructionInputSchema, type JavaScriptArtifactReconstructionInput, } from "./JavaScriptArtifactReconstructionInput.js"; -import { scanCanonicalArtifactInventory } from "../../artifacts/inventory/ArtifactInventory.js"; +import { scanCanonicalArtifactInventory } from "../../artifacts/inventory/scanCanonical.js"; import { summarizeElectronBoundaries } from "./ElectronBoundaryAnalysis.js"; import { createJavaScriptSemanticGraphProjection } from "./JavaScriptSemanticGraphBuilder.js"; import type { ProgressReporter } from "../ProgressReporter.js"; diff --git a/src/application/javascript/JavaScriptModuleRelationships.ts b/src/application/javascript/JavaScriptModuleRelationships.ts index ff5843758..36868fb62 100644 --- a/src/application/javascript/JavaScriptModuleRelationships.ts +++ b/src/application/javascript/JavaScriptModuleRelationships.ts @@ -1,7 +1,7 @@ import { posix } from "node:path"; import { compareCodePoints } from "../../domain/canonicalOrdering.js"; -import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraph.js"; +import type { ApplicationNode } from "../../domain/javascript/javascriptApplicationGraphSchemas.js"; import { completeApplicationCoverage, partialApplicationCoverage, diff --git a/src/application/javascript/JavaScriptSemanticGraphAsyncProjection.ts b/src/application/javascript/JavaScriptSemanticGraphAsyncProjection.ts index 8d949e964..bd638fc72 100644 --- a/src/application/javascript/JavaScriptSemanticGraphAsyncProjection.ts +++ b/src/application/javascript/JavaScriptSemanticGraphAsyncProjection.ts @@ -1,5 +1,5 @@ import { createJavaScriptSemanticGraphUnknown } from "../../domain/javascript/javascriptSemanticGraph.js"; -import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import type { JavaScriptSemanticEventOperation, JavaScriptSemanticTimerOperation, @@ -10,10 +10,7 @@ import { addSemanticGraphUnknown, } from "./JavaScriptSemanticGraphConstruction.js"; import { unknownSemanticEvidence } from "./JavaScriptSemanticGraphEvidence.js"; -import { - semanticCallSiteAt, - type SemanticFlowProjectionContext, -} from "./JavaScriptSemanticGraphFlowProjection.js"; +import type { SemanticFlowProjectionContext } from "./JavaScriptSemanticGraphFlowProjection.js"; /** Project literal EventEmitter registrations, removals, and dispatches. */ export const projectSemanticEvents = ( @@ -175,7 +172,7 @@ const projectTimerSchedule = ( timerNodes: ReadonlyMap, ): void => { addSemanticGraphRelation(context.state, { - source: semanticCallSiteAt(context, operation.location), + source: context.callSiteAt(operation.location), target: timerNodes.get(operation.timerId), relation: "schedules-timer", resolution: "resolved", @@ -199,7 +196,7 @@ const projectTimerCancellation = ( operation: JavaScriptSemanticTimerOperation, timerNodes: ReadonlyMap, ): void => { - const callSite = semanticCallSiteAt(context, operation.location); + const callSite = context.callSiteAt(operation.location); const target = operation.linkedTimerId === null ? undefined diff --git a/src/application/javascript/JavaScriptSemanticGraphBuilder.ts b/src/application/javascript/JavaScriptSemanticGraphBuilder.ts index c8183e410..e7190baec 100644 --- a/src/application/javascript/JavaScriptSemanticGraphBuilder.ts +++ b/src/application/javascript/JavaScriptSemanticGraphBuilder.ts @@ -2,8 +2,8 @@ import { createJavaScriptSemanticGraph, createImmutableJavaScriptSemanticGraphSteps, type JavaScriptSemanticGraph, - type JavaScriptSemanticGraphNode, } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import { JAVASCRIPT_SEMANTIC_RELATION_FAMILIES, JAVASCRIPT_SEMANTIC_RELATION_FAMILY, diff --git a/src/application/javascript/JavaScriptSemanticGraphChildProcessProjection.ts b/src/application/javascript/JavaScriptSemanticGraphChildProcessProjection.ts index 600d0390b..4a600d595 100644 --- a/src/application/javascript/JavaScriptSemanticGraphChildProcessProjection.ts +++ b/src/application/javascript/JavaScriptSemanticGraphChildProcessProjection.ts @@ -1,5 +1,5 @@ import { createJavaScriptSemanticGraphUnknown } from "../../domain/javascript/javascriptSemanticGraph.js"; -import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import type { JavaScriptSemanticChildProcessInteraction, JavaScriptSemanticChildProcessSpawn, @@ -10,10 +10,7 @@ import { addSemanticGraphUnknown, } from "./JavaScriptSemanticGraphConstruction.js"; import { unknownSemanticEvidence } from "./JavaScriptSemanticGraphEvidence.js"; -import { - semanticCallSiteAt, - type SemanticFlowProjectionContext, -} from "./JavaScriptSemanticGraphFlowProjection.js"; +import type { SemanticFlowProjectionContext } from "./JavaScriptSemanticGraphFlowProjection.js"; interface ChildUnknownInput { readonly context: SemanticFlowProjectionContext; @@ -75,7 +72,7 @@ const projectSpawn = ( spawn: JavaScriptSemanticChildProcessSpawn, child: JavaScriptSemanticGraphNode, ): void => { - const callSite = semanticCallSiteAt(context, spawn.location); + const callSite = context.callSiteAt(spawn.location); addSemanticGraphRelation(context.state, { source: callSite, target: child, diff --git a/src/application/javascript/JavaScriptSemanticGraphConstruction.ts b/src/application/javascript/JavaScriptSemanticGraphConstruction.ts index bb7322783..0b9ba9035 100644 --- a/src/application/javascript/JavaScriptSemanticGraphConstruction.ts +++ b/src/application/javascript/JavaScriptSemanticGraphConstruction.ts @@ -5,8 +5,8 @@ import { createJavaScriptSemanticGraphNode, createJavaScriptSemanticGraphRelation, javaScriptSemanticNodeId, - type JavaScriptSemanticGraphNode, } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import type { ApplicationGraphEvidence } from "../../domain/javascript/javascriptApplicationEvidenceSchemas.js"; import type { JavaScriptSemanticGraphRelation, diff --git a/src/application/javascript/JavaScriptSemanticGraphDataProjection.ts b/src/application/javascript/JavaScriptSemanticGraphDataProjection.ts index 761eba0e3..b87bc6b3e 100644 --- a/src/application/javascript/JavaScriptSemanticGraphDataProjection.ts +++ b/src/application/javascript/JavaScriptSemanticGraphDataProjection.ts @@ -1,5 +1,5 @@ import { createJavaScriptSemanticGraphUnknown } from "../../domain/javascript/javascriptSemanticGraph.js"; -import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import type { JavaScriptSemanticBoundaryOperation, JavaScriptSemanticConfigurationOperation, @@ -11,10 +11,7 @@ import { addSemanticGraphUnknown, } from "./JavaScriptSemanticGraphConstruction.js"; import { unknownSemanticEvidence } from "./JavaScriptSemanticGraphEvidence.js"; -import { - semanticCallSiteAt, - type SemanticFlowProjectionContext, -} from "./JavaScriptSemanticGraphFlowProjection.js"; +import type { SemanticFlowProjectionContext } from "./JavaScriptSemanticGraphFlowProjection.js"; /** Project environment, argv, file, default, and precedence candidates. */ export const projectSemanticConfiguration = ( @@ -158,7 +155,7 @@ const projectRequestConstruction = ( operation: JavaScriptSemanticRequestOperation, request: JavaScriptSemanticGraphNode, ): void => { - const callSite = semanticCallSiteAt(context, operation.location); + const callSite = context.callSiteAt(operation.location); addSemanticGraphRelation(context.state, { source: callSite, target: request, @@ -197,7 +194,7 @@ const projectResponseConsumer = ( ): void => { addSemanticGraphRelation(context.state, { source: response, - target: semanticCallSiteAt(context, operation.location), + target: context.callSiteAt(operation.location), relation: "consumed-by", resolution: operation.resolution === "complete" ? "resolved" : "candidate", properties: { method: operation.method }, diff --git a/src/application/javascript/JavaScriptSemanticGraphFingerprintProjection.ts b/src/application/javascript/JavaScriptSemanticGraphFingerprintProjection.ts index 06c606820..30d1506ed 100644 --- a/src/application/javascript/JavaScriptSemanticGraphFingerprintProjection.ts +++ b/src/application/javascript/JavaScriptSemanticGraphFingerprintProjection.ts @@ -1,8 +1,8 @@ import { createJavaScriptSemanticFingerprint, type JavaScriptSemanticGraph, - type JavaScriptSemanticGraphNode, } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import type { JavaScriptSemanticIr } from "../../domain/javascript/javascriptSemanticIr.js"; import type { JavaScriptArtifactFile } from "../../domain/javascript/javascriptArtifactFiles.js"; import { observedSemanticEvidence } from "./JavaScriptSemanticGraphEvidence.js"; diff --git a/src/application/javascript/JavaScriptSemanticGraphFlowProjection.ts b/src/application/javascript/JavaScriptSemanticGraphFlowProjection.ts index b8c685bc5..6195bbed3 100644 --- a/src/application/javascript/JavaScriptSemanticGraphFlowProjection.ts +++ b/src/application/javascript/JavaScriptSemanticGraphFlowProjection.ts @@ -1,5 +1,5 @@ import { createJavaScriptSemanticGraphUnknown } from "../../domain/javascript/javascriptSemanticGraph.js"; -import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import type { JavaScriptSemanticIr } from "../../domain/javascript/javascriptSemanticIr.js"; import { sourceRangesEqual } from "../../domain/javascript/javascriptStaticAnalysisHelpers.js"; import type { JavaScriptSourceRange } from "../../domain/javascript/javascriptStaticAnalysisTypes.js"; @@ -34,14 +34,6 @@ export interface SemanticFlowProjectionContext { ) => JavaScriptSemanticGraphNode | undefined; } -/** Find the retained call-site node at one exact semantic source range. */ -export const semanticCallSiteAt = ( - context: SemanticFlowProjectionContext, - location: JavaScriptSourceRange, -): JavaScriptSemanticGraphNode | undefined => { - return context.callSiteAt(location); -}; - /** Project explicit static Promise/task ownership without runtime claims. */ export const projectSemanticPromises = ( context: SemanticFlowProjectionContext, @@ -96,7 +88,7 @@ const projectPromiseCreation = ( ): void => { if (operation.kind === "awaited-expression") return; addSemanticGraphRelation(context.state, { - source: semanticCallSiteAt(context, operation.location), + source: context.callSiteAt(operation.location), target: promise, relation: "creates-promise", resolution: diff --git a/src/application/javascript/JavaScriptSemanticGraphObjectProjection.ts b/src/application/javascript/JavaScriptSemanticGraphObjectProjection.ts index cf301dc68..f4c94d21e 100644 --- a/src/application/javascript/JavaScriptSemanticGraphObjectProjection.ts +++ b/src/application/javascript/JavaScriptSemanticGraphObjectProjection.ts @@ -8,7 +8,7 @@ import type { JavaScriptSemanticValue, } from "../../domain/javascript/javascriptSemanticValueTypes.js"; import { createJavaScriptSemanticGraphUnknown } from "../../domain/javascript/javascriptSemanticGraph.js"; -import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import type { JavaScriptSemanticObjectOperation } from "../../domain/javascript/javascriptSemanticIr.js"; import { retainSemanticGraphNode, diff --git a/src/application/javascript/JavaScriptSemanticGraphProjection.ts b/src/application/javascript/JavaScriptSemanticGraphProjection.ts index ac0b4e519..b83f2e970 100644 --- a/src/application/javascript/JavaScriptSemanticGraphProjection.ts +++ b/src/application/javascript/JavaScriptSemanticGraphProjection.ts @@ -1,5 +1,5 @@ import { compareCodePoints } from "../../domain/canonicalOrdering.js"; -import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import { JAVASCRIPT_SEMANTIC_RELATION_FAMILIES } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import type { JavaScriptSemanticIr } from "../../domain/javascript/javascriptSemanticIr.js"; import type { JavaScriptSourceRange } from "../../domain/javascript/javascriptStaticAnalysisTypes.js"; diff --git a/src/application/javascript/JavaScriptSemanticGraphResourceProjection.ts b/src/application/javascript/JavaScriptSemanticGraphResourceProjection.ts index 8689cc673..ffadc0448 100644 --- a/src/application/javascript/JavaScriptSemanticGraphResourceProjection.ts +++ b/src/application/javascript/JavaScriptSemanticGraphResourceProjection.ts @@ -1,5 +1,5 @@ import { createJavaScriptSemanticGraphUnknown } from "../../domain/javascript/javascriptSemanticGraph.js"; -import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "../../domain/javascript/javascriptSemanticGraphSchemas.js"; import type { JavaScriptSemanticResourceOperation } from "../../domain/javascript/javascriptSemanticIr.js"; import { retainSemanticGraphNode, @@ -7,10 +7,7 @@ import { addSemanticGraphUnknown, } from "./JavaScriptSemanticGraphConstruction.js"; import { unknownSemanticEvidence } from "./JavaScriptSemanticGraphEvidence.js"; -import { - semanticCallSiteAt, - type SemanticFlowProjectionContext, -} from "./JavaScriptSemanticGraphFlowProjection.js"; +import type { SemanticFlowProjectionContext } from "./JavaScriptSemanticGraphFlowProjection.js"; /** Project built-in resource acquisition and exact local release handles. */ export const projectSemanticResources = ( @@ -26,7 +23,7 @@ export const projectSemanticResources = ( for (const operation of context.ir.resourceOperations) if (operation.kind === "acquire") addSemanticGraphRelation(context.state, { - source: semanticCallSiteAt(context, operation.location), + source: context.callSiteAt(operation.location), target: resourceNodes.get(operation.resourceId), relation: "acquires", resolution: "resolved", @@ -56,7 +53,7 @@ const projectRelease = ( operation: JavaScriptSemanticResourceOperation, resourceNodes: ReadonlyMap, ): void => { - const callSite = semanticCallSiteAt(context, operation.location); + const callSite = context.callSiteAt(operation.location); const resources = operation.linkedResourceIds.flatMap((identifier) => { const resource = resourceNodes.get(identifier); return resource === undefined ? [] : [resource]; diff --git a/src/application/managed/ManagedMemberComparisonService.ts b/src/application/managed/ManagedMemberComparisonService.ts index 9dd459818..7f7ac75f6 100644 --- a/src/application/managed/ManagedMemberComparisonService.ts +++ b/src/application/managed/ManagedMemberComparisonService.ts @@ -6,9 +6,9 @@ import { z } from "zod"; import { compareManagedMembers, managedMemberComparisonResultSchema, - parseManagedMemberEvidence, type CompareManagedMembersInput, } from "../../domain/managed/managedMemberComparison.js"; +import { parseManagedMemberEvidence } from "../../domain/managed/managedMemberComparisonMatch.js"; import { AnalysisProtocolError } from "../../domain/analysisErrorCore.js"; import { EvidenceIntegrityError } from "../../domain/evidenceErrors.js"; import { type AnalysisError } from "../../domain/analysisErrorBase.js"; diff --git a/src/application/managed/ManagedNativeVerificationService.ts b/src/application/managed/ManagedNativeVerificationService.ts index c73a235ab..7615bd098 100644 --- a/src/application/managed/ManagedNativeVerificationService.ts +++ b/src/application/managed/ManagedNativeVerificationService.ts @@ -6,10 +6,9 @@ import { createEvidence, type Evidence } from "../../domain/evidence.js"; import { jsonValueSchema } from "../../domain/jsonValue.js"; import { managedNativeVerificationInputSchema, - verifyManagedNativeBoundaries, type ManagedNativeVerificationInput, type ManagedNativeVerificationResult, -} from "../../domain/managed/managedNativeVerification.js"; +} from "../../domain/managed/managedNativeVerificationSchemas.js"; import { err, ok, type Result } from "../../domain/result.js"; import { MANAGED_WORKFLOW_PROVIDER } from "../InvestigationProviders.js"; import { @@ -17,6 +16,7 @@ import { workflowInputError, } from "../workflowInputError.js"; +import { verifyManagedNativeBoundaries } from "../../domain/managed/managedNativeVerification.js"; const OPERATION = "verify_managed_native_boundaries" as const; /** Verify managed/native boundary declarations against native Evidence. */ diff --git a/src/application/process/ProcessCli.ts b/src/application/process/ProcessCli.ts index eb0fc1651..135953073 100644 --- a/src/application/process/ProcessCli.ts +++ b/src/application/process/ProcessCli.ts @@ -11,17 +11,13 @@ import { analysisInputErrorFromIssues, projectInputIssues, } from "../../domain/inputIssueProjection.js"; -import { processTraceSpecificationSchema } from "../../domain/process/processTraceComparison.js"; +import { processTraceSpecificationSchema } from "../../domain/process/processTraceSpecification.js"; import { processScenarioSchema } from "../../domain/process/processScenario.js"; -import { - compareProcessCaptures, - parseProcessCapture, -} from "../../domain/process/processCapture.js"; +import { compareProcessCaptures } from "../../domain/process/processComparison.js"; +import { parseProcessCapture } from "../../domain/process/processCaptureParsing.js"; import { captureProcessScenario } from "../../process/capture/ProcessHarness.js"; -import { - PROCESS_PROVIDER, - createProcessCaptureEvidence, -} from "./ProcessEvidence.js"; +import { PROCESS_PROVIDER } from "../../domain/process/processEvidenceProvider.js"; +import { createProcessCaptureEvidence } from "./ProcessEvidence.js"; /** Safe process-command failure returned to the CLI adapter. */ export interface ProcessCliErrorOutput { diff --git a/src/application/process/ProcessEvidence.ts b/src/application/process/ProcessEvidence.ts index b1e50bcc8..13330601c 100644 --- a/src/application/process/ProcessEvidence.ts +++ b/src/application/process/ProcessEvidence.ts @@ -4,12 +4,8 @@ import type { JsonValue } from "../../domain/jsonValue.js"; import { createEvidence } from "../../domain/evidence.js"; import { PROCESS_PROVIDER } from "../../domain/process/processEvidenceProvider.js"; import { jsonValueSchema } from "../../domain/jsonValue.js"; -import type { - ProcessCapture, - ProcessScenario, -} from "../../domain/process/processCapture.js"; - -export { PROCESS_PROVIDER } from "../../domain/process/processEvidenceProvider.js"; +import type { ProcessCapture } from "../../domain/process/processCaptureParsing.js"; +import type { ProcessScenario } from "../../domain/process/processScenario.js"; /** Project one process scenario into secret-free Evidence parameters. */ const processEvidenceParameters = ( diff --git a/src/artifacts/ArtifactProvider.ts b/src/artifacts/ArtifactProvider.ts index 0fa89bdb2..c8ed381ee 100644 --- a/src/artifacts/ArtifactProvider.ts +++ b/src/artifacts/ArtifactProvider.ts @@ -21,7 +21,7 @@ import { artifactExtractionExecutionSchema, type ArtifactAnalysisOperation, } from "../contracts/artifactToolContracts.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { AnalysisCapabilityUnavailableError, AnalysisInputError, diff --git a/src/artifacts/extraction/ArtifactExtraction.ts b/src/artifacts/extraction/ArtifactExtraction.ts index 9a481f393..dcd933e7e 100644 --- a/src/artifacts/extraction/ArtifactExtraction.ts +++ b/src/artifacts/extraction/ArtifactExtraction.ts @@ -25,7 +25,7 @@ import { type ArtifactOccurrence, } from "../../domain/artifactGraph.js"; import { AnalysisUnsupportedTargetError } from "../../domain/analysisErrorCore.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { scanArtifactInventory } from "../inventory/ArtifactInventory.js"; /** Local extraction input with the output root chosen by the adapter. */ diff --git a/src/artifacts/inventory/ArtifactInventory.ts b/src/artifacts/inventory/ArtifactInventory.ts index c3646fea1..1cea07af8 100644 --- a/src/artifacts/inventory/ArtifactInventory.ts +++ b/src/artifacts/inventory/ArtifactInventory.ts @@ -6,17 +6,8 @@ import { } from "../../domain/artifactGraph.js"; import { abortIfNeeded } from "../ArtifactHash.js"; import { scanCanonicalArtifactInventory } from "./scanCanonical.js"; -import type { - ArtifactInventoryOptions, - ArtifactInventorySnapshot, -} from "./types.js"; - -export { scanCanonicalArtifactInventory } from "./scanCanonical.js"; - -export type { - ArtifactInventoryOptions, - ArtifactInventorySnapshot, -} from "./types.js"; +import type { ArtifactInventoryOptions } from "./types.js"; +import type { ArtifactInventorySnapshot } from "../../domain/artifactInventorySnapshot.js"; /** Inventory one local artifact and return every graph collection inline. */ export const inventoryArtifact = async ( diff --git a/src/artifacts/inventory/scanCanonical.ts b/src/artifacts/inventory/scanCanonical.ts index 9e3e48b36..8bf1c1a35 100644 --- a/src/artifacts/inventory/scanCanonical.ts +++ b/src/artifacts/inventory/scanCanonical.ts @@ -1,3 +1,4 @@ +import type { ArtifactInventorySnapshot } from "../../domain/artifactInventorySnapshot.js"; import { compareCodePoints } from "../../domain/canonicalOrdering.js"; import { createReadStream } from "node:fs"; @@ -39,7 +40,6 @@ import { import { STRICT_INTEGRITY_POLICY, type ArtifactInventoryOptions, - type ArtifactInventorySnapshot, } from "./types.js"; export const scanCanonicalArtifactInventory = async ( diff --git a/src/artifacts/inventory/types.ts b/src/artifacts/inventory/types.ts index 71ed53001..4d0daa8f3 100644 --- a/src/artifacts/inventory/types.ts +++ b/src/artifacts/inventory/types.ts @@ -13,5 +13,3 @@ export interface ArtifactInventoryOptions { readonly integrity?: ArtifactIntegrityPolicy | undefined; readonly environment?: Readonly | undefined; } - -export type { ArtifactInventorySnapshot } from "../../domain/artifactInventorySnapshot.js"; diff --git a/src/browser/BrowserScenarioSecrets.ts b/src/browser/BrowserScenarioSecrets.ts index 85acefa85..950250633 100644 --- a/src/browser/BrowserScenarioSecrets.ts +++ b/src/browser/BrowserScenarioSecrets.ts @@ -1,10 +1,10 @@ import { createHash } from "node:crypto"; +import type { BrowserScenario } from "../domain/browserScenario.js"; import type { - BrowserScenario, BrowserScenarioUrl, BrowserScenarioValue, -} from "../domain/browserScenario.js"; +} from "../domain/browserScenarioValues.js"; import { sanitizeBrowserUrl, type SanitizedBrowserUrl, diff --git a/src/browser/BrowserScenarioSessionPort.ts b/src/browser/BrowserScenarioSessionPort.ts index f3120cba8..ea2fa0838 100644 --- a/src/browser/BrowserScenarioSessionPort.ts +++ b/src/browser/BrowserScenarioSessionPort.ts @@ -1,11 +1,9 @@ -import type { - BrowserScenario, - BrowserScenarioAction, -} from "../domain/browserScenario.js"; +import type { BrowserScenario } from "../domain/browserScenario.js"; +import type { BrowserScenarioAction } from "../domain/browserScenarioValues.js"; import type { BrowserScenarioEvent, BrowserStepArtifacts, -} from "../domain/browserScenarioCapture.js"; +} from "../domain/browserScenarioCaptureValues.js"; import type { SanitizedBrowserUrl } from "../domain/browserObservation.js"; type SnapshotKind = BrowserScenario["capture"]["after_each_step"][number]; diff --git a/src/browser/CdpBrowserProvider.ts b/src/browser/CdpBrowserProvider.ts index 1c828a3e5..a527b2abf 100644 --- a/src/browser/CdpBrowserProvider.ts +++ b/src/browser/CdpBrowserProvider.ts @@ -2,14 +2,16 @@ import type { BrowserObservationPort } from "../application/BrowserObservationPo import type { ProviderIdentity } from "../application/AnalysisProvider.js"; import type { ExecutionOptions } from "../application/AnalysisProvider.js"; import { - browserTargetListSchema, sanitizeBrowserUrl, - webPageInspectionSchema, - type BrowserTargetList, type InspectWebPageInput, type ListBrowserTargetsInput, - type WebPageInspection, } from "../domain/browserObservation.js"; +import { + browserTargetListSchema, + webPageInspectionSchema, + type BrowserTargetList, + type WebPageInspection, +} from "../domain/browserObservationSchemas.js"; import { analyzeCapturedWebBundle } from "../domain/webBundleAnalyzer.js"; import { webBundleAnalysisSchema, diff --git a/src/browser/CdpCaptureDocuments.ts b/src/browser/CdpCaptureDocuments.ts index 1358deb44..4fd86caf8 100644 --- a/src/browser/CdpCaptureDocuments.ts +++ b/src/browser/CdpCaptureDocuments.ts @@ -1,7 +1,5 @@ -import type { - InspectWebPageInput, - WebPageInspection, -} from "../domain/browserObservation.js"; +import type { InspectWebPageInput } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import { allowedSanitizedUrl, numberValue, diff --git a/src/browser/CdpCaptureEventHandlers.ts b/src/browser/CdpCaptureEventHandlers.ts index 39bfef1c1..2b6d0ef4b 100644 --- a/src/browser/CdpCaptureEventHandlers.ts +++ b/src/browser/CdpCaptureEventHandlers.ts @@ -1,4 +1,4 @@ -import type { WebPageInspection } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import { inferJsonShape } from "../domain/jsonShape.js"; import { safeResponseMetadata } from "./CdpSafeMetadata.js"; import { diff --git a/src/browser/CdpCaptureEventState.ts b/src/browser/CdpCaptureEventState.ts index 6a0ab21a6..b09e63063 100644 --- a/src/browser/CdpCaptureEventState.ts +++ b/src/browser/CdpCaptureEventState.ts @@ -1,7 +1,5 @@ -import type { - InspectWebPageInput, - WebPageInspection, -} from "../domain/browserObservation.js"; +import type { InspectWebPageInput } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import type { CdpCaptureCompleteness } from "./CdpCaptureCompleteness.js"; import type { CapturedScript, NetworkState } from "./CdpCaptureEventTypes.js"; diff --git a/src/browser/CdpCaptureEventTypes.ts b/src/browser/CdpCaptureEventTypes.ts index 96bc0921e..6095e571b 100644 --- a/src/browser/CdpCaptureEventTypes.ts +++ b/src/browser/CdpCaptureEventTypes.ts @@ -1,4 +1,4 @@ -import type { WebPageInspection } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; export interface CapturedScript { readonly scriptId: string; diff --git a/src/browser/CdpCaptureEvents.ts b/src/browser/CdpCaptureEvents.ts index df3901573..3312a9749 100644 --- a/src/browser/CdpCaptureEvents.ts +++ b/src/browser/CdpCaptureEvents.ts @@ -1,7 +1,5 @@ -import type { - InspectWebPageInput, - WebPageInspection, -} from "../domain/browserObservation.js"; +import type { InspectWebPageInput } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import type { CdpEvent } from "./CdpConnection.js"; import { CdpCaptureCompleteness } from "./CdpCaptureCompleteness.js"; import * as bodyShapes from "./CdpCaptureEventBodyShapes.js"; @@ -11,8 +9,6 @@ import * as handlers from "./CdpCaptureEventHandlers.js"; import { isJsonMediaType } from "./CdpCaptureEventHelpers.js"; import { recordValue } from "./CdpCaptureValues.js"; -export { type CapturedScript } from "./CdpCaptureEventTypes.js"; - /** Event accumulator that validates and normalizes payloads at ingestion. */ export class CdpCaptureEvents implements CdpCaptureEventsState { #scriptMetadataBudgetExclusionsRecorded = false; diff --git a/src/browser/CdpCaptureStorage.ts b/src/browser/CdpCaptureStorage.ts index db4922edf..8ddcea9a8 100644 --- a/src/browser/CdpCaptureStorage.ts +++ b/src/browser/CdpCaptureStorage.ts @@ -1,7 +1,5 @@ -import type { - InspectWebPageInput, - WebPageInspection, -} from "../domain/browserObservation.js"; +import type { InspectWebPageInput } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import { CdpConnection } from "./CdpConnection.js"; import { optionalCdpCommand } from "./CdpOptionalCommand.js"; import { diff --git a/src/browser/CdpCaptureStorageFingerprints.ts b/src/browser/CdpCaptureStorageFingerprints.ts index 4aacef676..476d75763 100644 --- a/src/browser/CdpCaptureStorageFingerprints.ts +++ b/src/browser/CdpCaptureStorageFingerprints.ts @@ -2,10 +2,8 @@ import { createHash } from "node:crypto"; import canonicalize from "canonicalize"; -import type { - InspectWebPageInput, - WebPageInspection, -} from "../domain/browserObservation.js"; +import type { InspectWebPageInput } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import { compareCodePoints } from "../domain/canonicalOrdering.js"; import { CdpConnection } from "./CdpConnection.js"; import { optionalCdpCommand } from "./CdpOptionalCommand.js"; diff --git a/src/browser/CdpPageCapture.ts b/src/browser/CdpPageCapture.ts index 279253046..75d629e03 100644 --- a/src/browser/CdpPageCapture.ts +++ b/src/browser/CdpPageCapture.ts @@ -1,7 +1,5 @@ -import type { - InspectWebPageInput, - WebPageInspection, -} from "../domain/browserObservation.js"; +import type { InspectWebPageInput } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import type { ProgressReporter } from "../application/ProgressReporter.js"; import { BrowserObservationError } from "../domain/browserObservationError.js"; import { type BrowserObservationOperation } from "../domain/browserObservationErrors.js"; diff --git a/src/browser/CdpPageCaptureScripts.ts b/src/browser/CdpPageCaptureScripts.ts index e73baeef6..ffafa02e7 100644 --- a/src/browser/CdpPageCaptureScripts.ts +++ b/src/browser/CdpPageCaptureScripts.ts @@ -1,4 +1,4 @@ -import type { WebPageInspection } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import { reconcileCapturedWebScript, stableWebScriptKey, diff --git a/src/browser/CdpPageCaptureWorkers.ts b/src/browser/CdpPageCaptureWorkers.ts index 0d36d1683..eb9c0501f 100644 --- a/src/browser/CdpPageCaptureWorkers.ts +++ b/src/browser/CdpPageCaptureWorkers.ts @@ -1,4 +1,4 @@ -import type { WebPageInspection } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import type { CdpCaptureEvents } from "./CdpCaptureEvents.js"; import { allowedSanitizedUrl, diff --git a/src/browser/CdpSafeMetadata.ts b/src/browser/CdpSafeMetadata.ts index db9bd3878..589c00367 100644 --- a/src/browser/CdpSafeMetadata.ts +++ b/src/browser/CdpSafeMetadata.ts @@ -1,4 +1,4 @@ -import type { WebPageInspection } from "../domain/browserObservation.js"; +import type { WebPageInspection } from "../domain/browserObservationSchemas.js"; import { sanitizeBrowserUrl } from "../domain/browserObservation.js"; import { numberValue, diff --git a/src/browser/PlaywrightScenarioActions.ts b/src/browser/PlaywrightScenarioActions.ts index b7d005138..b3064dca1 100644 --- a/src/browser/PlaywrightScenarioActions.ts +++ b/src/browser/PlaywrightScenarioActions.ts @@ -3,7 +3,7 @@ import type { Locator, Page } from "playwright-core"; import type { BrowserScenarioAction, BrowserScenarioValue, -} from "../domain/browserScenario.js"; +} from "../domain/browserScenarioValues.js"; import type { BrowserScenarioSecrets } from "./BrowserScenarioSecrets.js"; type ScenarioLocator = Extract< diff --git a/src/browser/PlaywrightScenarioArtifacts.ts b/src/browser/PlaywrightScenarioArtifacts.ts index 015168824..fb5d95eb4 100644 --- a/src/browser/PlaywrightScenarioArtifacts.ts +++ b/src/browser/PlaywrightScenarioArtifacts.ts @@ -7,7 +7,7 @@ import type { BrowserScenario } from "../domain/browserScenario.js"; import { browserStepArtifactsSchema, type BrowserStepArtifacts, -} from "../domain/browserScenarioCapture.js"; +} from "../domain/browserScenarioCaptureValues.js"; import type { BrowserScenarioSecrets } from "./BrowserScenarioSecrets.js"; const historyValueSchema = z.strictObject({ diff --git a/src/browser/PlaywrightScenarioEvents.ts b/src/browser/PlaywrightScenarioEvents.ts index 1b7c2d168..18e1f0e3b 100644 --- a/src/browser/PlaywrightScenarioEvents.ts +++ b/src/browser/PlaywrightScenarioEvents.ts @@ -14,7 +14,7 @@ import type { SanitizedBrowserUrl } from "../domain/browserObservation.js"; import { browserScenarioEventSchema, type BrowserScenarioEvent, -} from "../domain/browserScenarioCapture.js"; +} from "../domain/browserScenarioCaptureValues.js"; import type { BrowserScenarioSecrets } from "./BrowserScenarioSecrets.js"; import type { BrowserNetworkContentSelection } from "../domain/browserNetworkEvidence.js"; import { PlaywrightScenarioNetwork } from "./network/PlaywrightScenarioNetwork.js"; diff --git a/src/browser/assets/PageScriptCapture.ts b/src/browser/assets/PageScriptCapture.ts index 1eb7a906e..6997c1678 100644 --- a/src/browser/assets/PageScriptCapture.ts +++ b/src/browser/assets/PageScriptCapture.ts @@ -1,4 +1,4 @@ -import type { WebPageInspection } from "../../domain/browserObservation.js"; +import type { WebPageInspection } from "../../domain/browserObservationSchemas.js"; import type { CapturedWebScript } from "../../domain/webScriptExport.js"; /** Project verified Debugger sources without fetching resource URLs. */ diff --git a/src/browser/assets/ScriptCaptureAdapters.ts b/src/browser/assets/ScriptCaptureAdapters.ts index 28ac26b84..0ed44f55c 100644 --- a/src/browser/assets/ScriptCaptureAdapters.ts +++ b/src/browser/assets/ScriptCaptureAdapters.ts @@ -1,4 +1,4 @@ -import { webPageInspectionSchema } from "../../domain/browserObservation.js"; +import { webPageInspectionSchema } from "../../domain/browserObservationSchemas.js"; import { browserScenarioCaptureSchema } from "../../domain/browserScenarioCapture.js"; import { parseEvidence } from "../../domain/evidence.js"; import type { diff --git a/src/browser/network/PlaywrightScenarioNetwork.test.ts b/src/browser/network/PlaywrightScenarioNetwork.test.ts index 23d930437..80ea58317 100644 --- a/src/browser/network/PlaywrightScenarioNetwork.test.ts +++ b/src/browser/network/PlaywrightScenarioNetwork.test.ts @@ -4,7 +4,7 @@ import { browserScenarioSchema } from "../../domain/browserScenario.js"; import { browserScenarioEventSchema, type BrowserScenarioEvent, -} from "../../domain/browserScenarioCapture.js"; +} from "../../domain/browserScenarioCaptureValues.js"; import type { BrowserNetworkContentSelection } from "../../domain/browserNetworkEvidence.js"; import { BrowserScenarioSecrets } from "../BrowserScenarioSecrets.js"; import { diff --git a/src/browser/network/PlaywrightScenarioNetwork.ts b/src/browser/network/PlaywrightScenarioNetwork.ts index 08f81025b..ca2b22517 100644 --- a/src/browser/network/PlaywrightScenarioNetwork.ts +++ b/src/browser/network/PlaywrightScenarioNetwork.ts @@ -2,7 +2,7 @@ import type { BrowserNetworkBody, BrowserNetworkContentSelection, } from "../../domain/browserNetworkEvidence.js"; -import type { BrowserScenarioEvent } from "../../domain/browserScenarioCapture.js"; +import type { BrowserScenarioEvent } from "../../domain/browserScenarioCaptureValues.js"; import type { BrowserScenarioSecrets } from "../BrowserScenarioSecrets.js"; import { captureNetworkBody, diff --git a/src/catalogIdentity.ts b/src/catalogIdentity.ts index b751c4394..a6141ee18 100644 --- a/src/catalogIdentity.ts +++ b/src/catalogIdentity.ts @@ -7,8 +7,6 @@ import { PROMPT_CONTRACTS } from "./contracts/promptContracts.js"; import { TOOL_CONTRACTS } from "./contracts/toolContracts.js"; import { CLI_COMMAND_NAMES } from "./cliCommandNames.js"; -export { CLI_COMMAND_NAMES } from "./cliCommandNames.js"; - const sortedToolContracts = [...TOOL_CONTRACTS].sort((left, right) => left.name.localeCompare(right.name), ); diff --git a/src/cli/analysisViewCommands.ts b/src/cli/analysisViewCommands.ts index 480ef6723..a0deb0229 100644 --- a/src/cli/analysisViewCommands.ts +++ b/src/cli/analysisViewCommands.ts @@ -4,13 +4,13 @@ import { inspectAnalysisViewValidated } from "../application/analysisView/Analys import { CLI_COMMANDS } from "../cliCommandNames.js"; import { parseCliJsonInput } from "../cliJsonInput.js"; import { logCliCommand } from "../cliLogging.js"; -import { inspectAnalysisViewInputSchema } from "../domain/analysisView/analysisView.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import { analysisInputErrorFromIssues } from "../domain/inputIssueProjection.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; +import { inspectAnalysisViewInputSchema } from "../domain/analysisView/analysisView.js"; /** Project selected views of completed analysis Evidence through the CLI. */ export const registerAnalysisViewCommands = ( cli: CliInstance, diff --git a/src/cli/androidCommands.ts b/src/cli/androidCommands.ts index bdcfc8589..80a71b235 100644 --- a/src/cli/androidCommands.ts +++ b/src/cli/androidCommands.ts @@ -6,7 +6,7 @@ import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import type { AndroidOperation } from "../domain/android/androidAnalysis.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cli/applicationCommands.ts b/src/cli/applicationCommands.ts index 6edbc7047..ac13007f6 100644 --- a/src/cli/applicationCommands.ts +++ b/src/cli/applicationCommands.ts @@ -20,7 +20,7 @@ import { type AnalysisError } from "../domain/analysisErrorBase.js"; import { androidApplicationProjectionInputSchema } from "../domain/android/androidApplication.js"; import { appleApplicationProjectionInputSchema } from "../domain/apple/appleApplication.js"; import { jsonValueSchema, type JsonValue } from "../domain/jsonValue.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { traceApplicationFeatureInputSchema } from "../domain/javascript/javascriptFeatureTraceSchemas.js"; import { traceJavaScriptSemanticsInputSchema } from "../domain/javascript/javascriptSemanticTraceSchemas.js"; import { compareApplicationVersionsInputSchema } from "../domain/javascript/javascriptApplicationVersionComparisonSchemas.js"; diff --git a/src/cli/artifactCommands.ts b/src/cli/artifactCommands.ts index 42c4a591b..55e465711 100644 --- a/src/cli/artifactCommands.ts +++ b/src/cli/artifactCommands.ts @@ -4,7 +4,7 @@ import type { DirectAnalysis } from "../composition/directAnalysis.js"; import { createArtifactExtractionDestination } from "../application/artifacts/ArtifactExtractionDestination.js"; import { logCliCommand } from "../cliLogging.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; export const registerArtifactCommands = ( diff --git a/src/cli/binaryDiagnosticsCommands.ts b/src/cli/binaryDiagnosticsCommands.ts index 560a11935..7174586bd 100644 --- a/src/cli/binaryDiagnosticsCommands.ts +++ b/src/cli/binaryDiagnosticsCommands.ts @@ -7,7 +7,7 @@ import { import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cli/browserAdvancedCommands.ts b/src/cli/browserAdvancedCommands.ts index 0fd49960e..63cbbd756 100644 --- a/src/cli/browserAdvancedCommands.ts +++ b/src/cli/browserAdvancedCommands.ts @@ -22,7 +22,7 @@ import { } from "../domain/webScreenshot.js"; import type { JsonValue } from "../domain/jsonValue.js"; import { safeParseJson } from "../domain/safeJson.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { CLI_COMMANDS } from "../cliCommandNames.js"; /** Register WebMCP, capture-diff, and screenshot CLI equivalents. */ diff --git a/src/cli/browserCommands.ts b/src/cli/browserCommands.ts index e06e0498d..876b4565a 100644 --- a/src/cli/browserCommands.ts +++ b/src/cli/browserCommands.ts @@ -15,7 +15,7 @@ import { import { analyzeWebBundleInputSchema } from "../domain/webBundleAnalysis.js"; import { observeWebSessionInputSchema } from "../domain/browserSession.js"; import { AnalysisInputError } from "../domain/analysisErrorCore.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { browserPageInspectionOptions, diff --git a/src/cli/coreAnalysisCommands.ts b/src/cli/coreAnalysisCommands.ts index 74dc36a83..f72ab1076 100644 --- a/src/cli/coreAnalysisCommands.ts +++ b/src/cli/coreAnalysisCommands.ts @@ -1,5 +1,5 @@ import type { DirectAnalysis } from "../composition/directAnalysis.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { registerCoreBinaryCommands } from "./coreBinaryCommands.js"; import { registerCoreNativeCommands } from "./coreNativeCommands.js"; import type { CliInstance } from "./types.js"; diff --git a/src/cli/coreBinaryCommands.ts b/src/cli/coreBinaryCommands.ts index 46e92556a..d3623141b 100644 --- a/src/cli/coreBinaryCommands.ts +++ b/src/cli/coreBinaryCommands.ts @@ -6,7 +6,7 @@ import { resolveCliAnalysisSelector } from "./analysisSelector.js"; import type { DirectAnalysis } from "../composition/directAnalysis.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { directAnalysisOptions, formatSelectionOption, diff --git a/src/cli/coreNativeCommands.ts b/src/cli/coreNativeCommands.ts index 9b50f2800..51849bcf6 100644 --- a/src/cli/coreNativeCommands.ts +++ b/src/cli/coreNativeCommands.ts @@ -3,7 +3,7 @@ import { z } from "incur"; import type { DirectAnalysis } from "../composition/directAnalysis.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { directAnalysisOptions, formatSelectionOption, diff --git a/src/cli/electronCommands.ts b/src/cli/electronCommands.ts index f236215aa..6b11183d7 100644 --- a/src/cli/electronCommands.ts +++ b/src/cli/electronCommands.ts @@ -16,7 +16,7 @@ import { AnalysisInputError } from "../domain/analysisErrorCore.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import { projectInputIssues } from "../domain/inputIssueProjection.js"; import type { JsonValue } from "../domain/jsonValue.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { parseCliJsonInput, resolveCliJsonPaths } from "../cliJsonInput.js"; import { diff --git a/src/cli/evmCommands.ts b/src/cli/evmCommands.ts index 61f292587..6a9dd9504 100644 --- a/src/cli/evmCommands.ts +++ b/src/cli/evmCommands.ts @@ -4,7 +4,7 @@ import { createEvmInterfaceService } from "../composition/evm.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cli/firmwareCommands.ts b/src/cli/firmwareCommands.ts index ad08c7804..8822c2354 100644 --- a/src/cli/firmwareCommands.ts +++ b/src/cli/firmwareCommands.ts @@ -6,7 +6,7 @@ import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import type { FirmwareOperation } from "../domain/firmware/firmwareAnalysis.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cli/javascriptRecoveryCommands.ts b/src/cli/javascriptRecoveryCommands.ts index c8f00e827..d51f2e471 100644 --- a/src/cli/javascriptRecoveryCommands.ts +++ b/src/cli/javascriptRecoveryCommands.ts @@ -4,7 +4,7 @@ import { createJavaScriptRecoveryProvider } from "../composition/javascriptRecov import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cli/managedCommands.ts b/src/cli/managedCommands.ts index 4f26f782f..fdc32634e 100644 --- a/src/cli/managedCommands.ts +++ b/src/cli/managedCommands.ts @@ -8,7 +8,7 @@ import { parseCliJsonInput } from "../cliJsonInput.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { registerProjectManagedApplicationGraph } from "./managedProjectGraphCommand.js"; diff --git a/src/cli/managedProjectGraphCommand.ts b/src/cli/managedProjectGraphCommand.ts index b1104de7a..1c69d8cfd 100644 --- a/src/cli/managedProjectGraphCommand.ts +++ b/src/cli/managedProjectGraphCommand.ts @@ -5,7 +5,7 @@ import { CLI_COMMANDS } from "../cliCommandNames.js"; import { parseCliJsonInput } from "../cliJsonInput.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; /** Register managed static-Evidence application graph projection. */ diff --git a/src/cli/nativeCallCommands.ts b/src/cli/nativeCallCommands.ts index f47e4c54d..e518c7afc 100644 --- a/src/cli/nativeCallCommands.ts +++ b/src/cli/nativeCallCommands.ts @@ -8,7 +8,7 @@ import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import { analysisInputErrorFromIssues } from "../domain/inputIssueProjection.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; import { nativeCallObservationInputSchema } from "../domain/native/nativeCallObservation.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; const OPERATION = "observe_native_calls"; diff --git a/src/cli/options.ts b/src/cli/options.ts index 8faa70c98..22f63ab9c 100644 --- a/src/cli/options.ts +++ b/src/cli/options.ts @@ -4,7 +4,7 @@ import { } from "../domain/dosCom.js"; import { analysisProviderSelectorSchema } from "../contracts/providerSelection.js"; import type { AnalysisProviderSelector } from "../contracts/providerSelection.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; export const providerSelectionOption = analysisProviderSelectorSchema .optional() diff --git a/src/cli/processCommands.ts b/src/cli/processCommands.ts index eef7a5f62..d58a4f059 100644 --- a/src/cli/processCommands.ts +++ b/src/cli/processCommands.ts @@ -6,7 +6,7 @@ import { isProcessCliFailure, } from "../application/process/ProcessCli.js"; import { logCliCommand } from "../cliLogging.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cli/setupCommands.ts b/src/cli/setupCommands.ts index ebd822ad4..d4e520970 100644 --- a/src/cli/setupCommands.ts +++ b/src/cli/setupCommands.ts @@ -28,7 +28,7 @@ import { PRODUCT_IDENTITY } from "../identity.js"; import { logCliCommand } from "../cliLogging.js"; import { createSystemDoctorHost } from "../doctorRuntime.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { SUPPORTED_CLIENT_DEFINITIONS } from "../application/SupportedClients.js"; diff --git a/src/cli/utilityCommands.ts b/src/cli/utilityCommands.ts index 90e97e03c..2aeef4228 100644 --- a/src/cli/utilityCommands.ts +++ b/src/cli/utilityCommands.ts @@ -3,7 +3,7 @@ import { z } from "incur"; import type { DirectAnalysis } from "../composition/directAnalysis.js"; import { importReferenceSource } from "../application/ReferenceSourceImport.js"; import { projectReferenceSourceImportError } from "../application/ReferenceSourceImportTypes.js"; -import { parseConfig } from "../config.js"; +import { parseConfig } from "../config/parseConfig.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import { AnalysisInputError } from "../domain/analysisErrorCore.js"; import { projectInputIssues } from "../domain/inputIssueProjection.js"; @@ -13,7 +13,7 @@ import { PRODUCT_IDENTITY } from "../identity.js"; import { logCliCommand } from "../cliLogging.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { swiftSymbolsSchema } from "../contracts/native/nativeToolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { isReferenceSourceImportCliFailure } from "./referenceSourceImportStatus.js"; import type { CliInstance } from "./types.js"; import { registerNativeCallCommands } from "./nativeCallCommands.js"; diff --git a/src/cli/webModuleCommands.ts b/src/cli/webModuleCommands.ts index 8c0237d72..7e0518c8d 100644 --- a/src/cli/webModuleCommands.ts +++ b/src/cli/webModuleCommands.ts @@ -3,7 +3,7 @@ import { createWebModuleTraceService } from "../composition/webModules.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cli/webNetworkCaptureCommands.ts b/src/cli/webNetworkCaptureCommands.ts index a5601b57b..1b902969c 100644 --- a/src/cli/webNetworkCaptureCommands.ts +++ b/src/cli/webNetworkCaptureCommands.ts @@ -3,7 +3,7 @@ import { createWebNetworkCaptureService } from "../composition/webNetworkCapture import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cli/webRuntimeCommands.ts b/src/cli/webRuntimeCommands.ts index 9f52397fc..2963641d8 100644 --- a/src/cli/webRuntimeCommands.ts +++ b/src/cli/webRuntimeCommands.ts @@ -7,7 +7,7 @@ import { } from "../cliObservationOptions.js"; import { logCliCommand } from "../cliLogging.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { ProgressReporter } from "../application/ProgressReporter.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cli/webScriptCommands.ts b/src/cli/webScriptCommands.ts index ceaa58d5d..34ae34970 100644 --- a/src/cli/webScriptCommands.ts +++ b/src/cli/webScriptCommands.ts @@ -4,7 +4,7 @@ import { exportWebScripts } from "../application/WebScriptExportService.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; /** Register the local captured-script export CLI workflow. */ export const registerWebScriptCommands = ( diff --git a/src/cli/webSourceLocationCommands.ts b/src/cli/webSourceLocationCommands.ts index 9ce2ddb3f..42175e95d 100644 --- a/src/cli/webSourceLocationCommands.ts +++ b/src/cli/webSourceLocationCommands.ts @@ -3,7 +3,7 @@ import { createWebSourceLocationService } from "../composition/webSourceLocation import { CLI_COMMANDS } from "../cliCommandNames.js"; import { logCliCommand } from "../cliLogging.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { CliInstance } from "./types.js"; import { withCommandCancellation } from "./commandCancellation.js"; diff --git a/src/cliBrowserScenarioCommands.ts b/src/cliBrowserScenarioCommands.ts index b4c851b8c..f98e415cb 100644 --- a/src/cliBrowserScenarioCommands.ts +++ b/src/cliBrowserScenarioCommands.ts @@ -11,7 +11,7 @@ import { projectAnalysisError } from "./domain/analysisErrorProjection.js"; import { projectInputIssues } from "./domain/inputIssueProjection.js"; import { browserScenarioSchema } from "./domain/browserScenario.js"; import type { JsonValue } from "./domain/jsonValue.js"; -import type { Logger } from "./logger.js"; +import type { Logger } from "pino"; const OPERATION = "capture_browser_scenario"; diff --git a/src/cliEvidenceCommands.ts b/src/cliEvidenceCommands.ts index acf8658a2..11a01be8c 100644 --- a/src/cliEvidenceCommands.ts +++ b/src/cliEvidenceCommands.ts @@ -6,7 +6,7 @@ import { importEvidenceBundleCommand, } from "./application/EvidenceBundleCommands.js"; import { logCliCommand } from "./cliLogging.js"; -import type { Logger } from "./logger.js"; +import type { Logger } from "pino"; import { CLI_COMMANDS } from "./cliCommandNames.js"; import type { JsonValue } from "./domain/jsonValue.js"; import { projectAnalysisError } from "./domain/analysisErrorProjection.js"; diff --git a/src/cliHostInputs.test.ts b/src/cliHostInputs.test.ts index 48708b06c..4feebb910 100644 --- a/src/cliHostInputs.test.ts +++ b/src/cliHostInputs.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from "vitest"; import { HopperProvider } from "./hopper/HopperProvider.js"; import { silentLogger } from "./logger.js"; -import { parseConfig } from "./config.js"; +import { parseConfig } from "./config/parseConfig.js"; const config = (env: Record = {}) => { const parsed = parseConfig(env); diff --git a/src/cliJavaScriptRuntimeCommands.ts b/src/cliJavaScriptRuntimeCommands.ts index 89eac7e53..5ee6f23e7 100644 --- a/src/cliJavaScriptRuntimeCommands.ts +++ b/src/cliJavaScriptRuntimeCommands.ts @@ -15,7 +15,7 @@ import { import { AnalysisInputError } from "./domain/analysisErrorCore.js"; import { projectAnalysisError } from "./domain/analysisErrorProjection.js"; import type { JsonValue } from "./domain/jsonValue.js"; -import type { Logger } from "./logger.js"; +import type { Logger } from "pino"; const observeOptionsSchema = z.object({ runtimeKind: javascriptRuntimeKindSchema diff --git a/src/cliLogging.ts b/src/cliLogging.ts index 6dbb24039..c74c43ab4 100644 --- a/src/cliLogging.ts +++ b/src/cliLogging.ts @@ -7,7 +7,7 @@ import { projectAnalysisError, type AnalysisErrorProjection, } from "./domain/analysisErrorProjection.js"; -import type { Logger } from "./logger.js"; +import type { Logger } from "pino"; const isRecord = (value: unknown): value is Readonly> => typeof value === "object" && value !== null && !Array.isArray(value); diff --git a/src/composition/binary.ts b/src/composition/binary.ts index 6a4d9bd54..b4b86f637 100644 --- a/src/composition/binary.ts +++ b/src/composition/binary.ts @@ -1,10 +1,10 @@ import { snapshotEnvironment } from "../process/snapshotEnvironment.js"; -import type { AppConfig } from "../config.js"; +import type { AppConfig } from "../config/types.js"; import type { BinarySession } from "../application/binary/BinarySession.js"; import { HopperProvider } from "../hopper/HopperProvider.js"; import { GhidraProvider } from "../ghidra/GhidraProvider.js"; import { IdaProvider } from "../ida/IdaProvider.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { auxiliaryAnalysisProviderDeclarations } from "./auxiliaryAnalysisProviders.js"; import { AnalysisProviderRegistry } from "../application/binary/AnalysisProviderRegistry.js"; import { composeBinarySession } from "../application/binary/BinarySessionComposition.js"; diff --git a/src/composition/directAnalysis.ts b/src/composition/directAnalysis.ts index 26dc347fe..3a6b0d212 100644 --- a/src/composition/directAnalysis.ts +++ b/src/composition/directAnalysis.ts @@ -1,5 +1,5 @@ import { snapshotEnvironment } from "../process/snapshotEnvironment.js"; -import { parseConfig } from "../config.js"; +import { parseConfig } from "../config/parseConfig.js"; import { runDirectAnalysis as executeDirectAnalysis, runProviderAnalysis as executeProviderAnalysis, diff --git a/src/config.test.ts b/src/config.test.ts index 36319a8de..aed5a8dee 100644 --- a/src/config.test.ts +++ b/src/config.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { parseConfig } from "./config.js"; +import { parseConfig } from "./config/parseConfig.js"; import { projectAnalysisError } from "./domain/analysisErrorProjection.js"; describe("runtime configuration", () => { diff --git a/src/config.ts b/src/config.ts deleted file mode 100644 index 4fe05ddf1..000000000 --- a/src/config.ts +++ /dev/null @@ -1,2 +0,0 @@ -export type { AppConfig } from "./config/types.js"; -export { parseConfig } from "./config/parseConfig.js"; diff --git a/src/contracts/analysisViewToolContracts.ts b/src/contracts/analysisViewToolContracts.ts index 1378722b5..b8f455767 100644 --- a/src/contracts/analysisViewToolContracts.ts +++ b/src/contracts/analysisViewToolContracts.ts @@ -4,7 +4,7 @@ import { } from "../domain/analysisView/analysisView.js"; import type { ToolContract } from "./toolContractTypes.js"; import { toolContractMetadata } from "./toolEffects.js"; -import { evidenceResultOf } from "./toolOutputSchemas.js"; +import { evidenceResultOf } from "./toolOutputSchemaPrimitives.js"; const RETAINED_EXAMPLE_ID = `ev_${"a".repeat(64)}`; diff --git a/src/contracts/applicationToolContracts.ts b/src/contracts/applicationToolContracts.ts index d8c1cb342..379294e72 100644 --- a/src/contracts/applicationToolContracts.ts +++ b/src/contracts/applicationToolContracts.ts @@ -24,15 +24,15 @@ import { appleApplicationProjectionInputSchema, appleApplicationProjectionResultSchema, } from "../domain/apple/appleApplication.js"; -import type { ToolContract } from "./toolContracts.js"; +import type { ToolContract } from "./toolContractTypes.js"; import { toolContractMetadata } from "./toolEffects.js"; -import { evidenceResultOf } from "./toolOutputSchemas.js"; +import { evidenceResultOf } from "./toolOutputSchemaPrimitives.js"; import { JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE, - JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE, JAVASCRIPT_FEATURE_TRACE_EXAMPLE, SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE, } from "./javascript/javascriptApplicationWorkflowExamples.js"; +import { JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE } from "./javascript/javascriptExportShapeComparisonExample.js"; import { ANDROID_APPLICATION_GRAPH_EXAMPLE, APPLE_APPLICATION_GRAPH_EXAMPLE, diff --git a/src/contracts/artifactToolContracts.ts b/src/contracts/artifactToolContracts.ts index b52f115af..a6926a19f 100644 --- a/src/contracts/artifactToolContracts.ts +++ b/src/contracts/artifactToolContracts.ts @@ -1,7 +1,7 @@ import { z } from "zod"; -import type { ToolContract } from "./toolContracts.js"; -import { artifactOutputSchemas } from "./toolOutputSchemas.js"; +import type { ToolContract } from "./toolContractTypes.js"; +import { artifactOutputSchemas } from "./toolOutputSchemaGroups.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; import { toolContractMetadata } from "./toolEffects.js"; import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js"; diff --git a/src/contracts/browserScenarioToolContracts.ts b/src/contracts/browserScenarioToolContracts.ts index c54ebf8ce..81bc188fc 100644 --- a/src/contracts/browserScenarioToolContracts.ts +++ b/src/contracts/browserScenarioToolContracts.ts @@ -1,6 +1,6 @@ -import type { ToolContract } from "./toolContracts.js"; +import type { ToolContract } from "./toolContractTypes.js"; import { toolContractMetadata } from "./toolEffects.js"; -import { evidenceResultOf } from "./toolOutputSchemas.js"; +import { evidenceResultOf } from "./toolOutputSchemaPrimitives.js"; import { browserScenarioInputSchema } from "../domain/browserScenario.js"; import { browserScenarioCaptureSchema } from "../domain/browserScenarioCapture.js"; import type { JsonValue } from "../domain/jsonValue.js"; diff --git a/src/contracts/browserToolContracts.ts b/src/contracts/browserToolContracts.ts index 83a29ef2f..4ac468b41 100644 --- a/src/contracts/browserToolContracts.ts +++ b/src/contracts/browserToolContracts.ts @@ -1,10 +1,12 @@ -import type { ToolContract } from "./toolContracts.js"; +import type { ToolContract } from "./toolContractTypes.js"; import { - browserTargetListSchema, inspectWebPageInputSchema, listBrowserTargetsInputSchema, - webPageInspectionSchema, } from "../domain/browserObservation.js"; +import { + browserTargetListSchema, + webPageInspectionSchema, +} from "../domain/browserObservationSchemas.js"; import { analyzeWebBundleInputSchema, webBundleAnalysisSchema, @@ -28,19 +30,20 @@ import { webScreenshotSchema, } from "../domain/webScreenshot.js"; import { toolContractMetadata } from "./toolEffects.js"; -import { evidenceResultOf } from "./toolOutputSchemas.js"; +import { evidenceResultOf } from "./toolOutputSchemaPrimitives.js"; -const evidenceResult = evidenceResultOf; -const listOutputSchema = evidenceResult(browserTargetListSchema); -const inspectionOutputSchema = evidenceResult(webPageInspectionSchema); -const bundleOutputSchema = evidenceResult(webBundleAnalysisSchema); -const observationSessionOutputSchema = evidenceResult( +const listOutputSchema = evidenceResultOf(browserTargetListSchema); +const inspectionOutputSchema = evidenceResultOf(webPageInspectionSchema); +const bundleOutputSchema = evidenceResultOf(webBundleAnalysisSchema); +const observationSessionOutputSchema = evidenceResultOf( webObservationSessionSchema, ); -const webMcpOutputSchema = evidenceResult(webMcpDiscoverySchema); -const captureDiffOutputSchema = evidenceResult(browserCaptureComparisonSchema); -const screenshotOutputSchema = evidenceResult(webScreenshotSchema); -const screenshotDiffOutputSchema = evidenceResult(webScreenshotDiffSchema); +const webMcpOutputSchema = evidenceResultOf(webMcpDiscoverySchema); +const captureDiffOutputSchema = evidenceResultOf( + browserCaptureComparisonSchema, +); +const screenshotOutputSchema = evidenceResultOf(webScreenshotSchema); +const screenshotDiffOutputSchema = evidenceResultOf(webScreenshotDiffSchema); const endpoint = "http://127.0.0.1:9222"; const origin = "https://app.example.test"; diff --git a/src/contracts/enhancedToolContracts.ts b/src/contracts/enhancedToolContracts.ts index 02cc55aca..d045e9e1e 100644 --- a/src/contracts/enhancedToolContracts.ts +++ b/src/contracts/enhancedToolContracts.ts @@ -1,10 +1,8 @@ import { z } from "zod"; import { enhancedInputSchemas } from "./enhancedInputs.js"; -import { - enhancedOutputSchemas, - requireOutputSchema, -} from "./toolOutputSchemas.js"; +import { enhancedOutputSchemas } from "./toolOutputSchemaGroups.js"; +import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js"; import { examplesFor } from "./toolContractHelpers.js"; import type { ToolContract } from "./toolContractTypes.js"; import { toolContractMetadata } from "./toolEffects.js"; diff --git a/src/contracts/evm/evmToolContracts.ts b/src/contracts/evm/evmToolContracts.ts index 7b8f5bcf9..cb8be2736 100644 --- a/src/contracts/evm/evmToolContracts.ts +++ b/src/contracts/evm/evmToolContracts.ts @@ -4,7 +4,7 @@ import { } from "../../domain/evm/evmInterface.js"; import type { ToolContract } from "../toolContractTypes.js"; import { toolContractMetadata } from "../toolEffects.js"; -import { evidenceResultOf } from "../toolOutputSchemas.js"; +import { evidenceResultOf } from "../toolOutputSchemaPrimitives.js"; /** Target-free EVM capabilities are independent of archive/Apple artifact providers. */ export const EVM_TOOL_CONTRACTS = [ diff --git a/src/contracts/functionWorkflowToolContracts.ts b/src/contracts/functionWorkflowToolContracts.ts index 203df04d2..5ef3f82f2 100644 --- a/src/contracts/functionWorkflowToolContracts.ts +++ b/src/contracts/functionWorkflowToolContracts.ts @@ -3,7 +3,7 @@ import { enhancedInputSchemas } from "./enhancedInputs.js"; import { TOOL_EXAMPLE_OVERRIDES } from "./toolContractExamples.js"; import type { ToolContract } from "./toolContractTypes.js"; import { toolContractMetadata } from "./toolEffects.js"; -import { enhancedOutputSchemas } from "./toolOutputSchemas.js"; +import { enhancedOutputSchemas } from "./toolOutputSchemaGroups.js"; import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js"; type FunctionWorkflowName = "analyze_function" | "inspect_native_api"; diff --git a/src/contracts/investigationExamples.ts b/src/contracts/investigationExamples.ts index 752f58742..8218ee609 100644 --- a/src/contracts/investigationExamples.ts +++ b/src/contracts/investigationExamples.ts @@ -1,13 +1,11 @@ -import { compareFunctions } from "../domain/functionComparison.js"; import { createEvidence } from "../domain/evidence.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; -import { - compareProcessCaptures, - parseProcessCapture, -} from "../domain/process/processCapture.js"; +import { compareProcessCaptures } from "../domain/process/processComparison.js"; +import { parseProcessCapture } from "../domain/process/processCaptureParsing.js"; import { FUNCTION_COMPARISON_EXAMPLE } from "./functionComparisonExample.js"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./process/processCaptureExample.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../domain/process/processCaptureExample.js"; +import { compareFunctions } from "../domain/functionComparison.js"; const comparison = compareFunctions( FUNCTION_COMPARISON_EXAMPLE.left, FUNCTION_COMPARISON_EXAMPLE.right, diff --git a/src/contracts/javascript/electronToolContracts.ts b/src/contracts/javascript/electronToolContracts.ts index c0e860f95..e35e134b5 100644 --- a/src/contracts/javascript/electronToolContracts.ts +++ b/src/contracts/javascript/electronToolContracts.ts @@ -1,6 +1,6 @@ -import type { ToolContract } from "../toolContracts.js"; +import type { ToolContract } from "../toolContractTypes.js"; import { toolContractMetadata } from "../toolEffects.js"; -import { evidenceResultOf } from "../toolOutputSchemas.js"; +import { evidenceResultOf } from "../toolOutputSchemaPrimitives.js"; import { electronPageInspectionSchema, electronTargetListSchema, diff --git a/src/contracts/javascript/javascriptApplicationWorkflowExamples.ts b/src/contracts/javascript/javascriptApplicationWorkflowExamples.ts index 0674f4d5c..7e9b6b17e 100644 --- a/src/contracts/javascript/javascriptApplicationWorkflowExamples.ts +++ b/src/contracts/javascript/javascriptApplicationWorkflowExamples.ts @@ -46,7 +46,6 @@ const TRACE_SEED = { match: "exact" as const, case_sensitive: false, }; - /** Natural trace request with the producer's complete Evidence inline. */ export const JAVASCRIPT_FEATURE_TRACE_EXAMPLE = { application: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE, @@ -101,5 +100,3 @@ export const SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE = { }), application: JAVASCRIPT_APPLICATION_EVIDENCE_EXAMPLE, }; - -export { JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE } from "./javascriptExportShapeComparisonExample.js"; diff --git a/src/contracts/javascript/javascriptRuntimeObservationToolContracts.ts b/src/contracts/javascript/javascriptRuntimeObservationToolContracts.ts index 2af7a7cbe..8aa758804 100644 --- a/src/contracts/javascript/javascriptRuntimeObservationToolContracts.ts +++ b/src/contracts/javascript/javascriptRuntimeObservationToolContracts.ts @@ -1,6 +1,6 @@ -import type { ToolContract } from "../toolContracts.js"; +import type { ToolContract } from "../toolContractTypes.js"; import { toolContractMetadata } from "../toolEffects.js"; -import { evidenceResultOf } from "../toolOutputSchemas.js"; +import { evidenceResultOf } from "../toolOutputSchemaPrimitives.js"; import { javascriptRuntimeObservationSchema, javascriptRuntimeTargetListSchema, diff --git a/src/contracts/managed/managedToolContracts.ts b/src/contracts/managed/managedToolContracts.ts index f256fc5df..8b46881b2 100644 --- a/src/contracts/managed/managedToolContracts.ts +++ b/src/contracts/managed/managedToolContracts.ts @@ -1,7 +1,7 @@ import { z } from "zod"; -import type { ToolContract } from "../toolContracts.js"; -import { managedOutputSchemas } from "../toolOutputSchemas.js"; +import type { ToolContract } from "../toolContractTypes.js"; +import { managedOutputSchemas } from "../toolOutputSchemaGroups.js"; import { toolContractMetadata } from "../toolEffects.js"; import { requireOutputSchema } from "../toolOutputSchemaPrimitives.js"; import { @@ -10,7 +10,7 @@ import { } from "../../domain/localPath.js"; /** Exact caller boundary for execution-free PE/CLI triage and identity. */ -const managedTargetInputSchema = z.strictObject({ +export const managedTargetInputSchema = z.strictObject({ path: localPathStringSchema .refine(isAbsoluteLocalPath, { message: @@ -22,14 +22,6 @@ const managedTargetInputSchema = z.strictObject({ .optional(), }); -export const managedArtifactInputSchema = managedTargetInputSchema; - -/** Exact caller boundary for execution-free metadata/signature/IL inspection. */ -export const managedMemberInputSchema = managedTargetInputSchema; - -/** Exact caller boundary for execution-free managed/native boundary inspection. */ -export const managedNativeBoundaryInputSchema = managedTargetInputSchema; - const outputSchema = requireOutputSchema( managedOutputSchemas, "inspect_managed_artifact", @@ -51,7 +43,7 @@ export const MANAGED_TOOL_CONTRACTS = [ description: "Open and classify an explicit managed PE/CLI path, or inspect the active managed target, then inventory exact assembly/module identity, target framework evidence, references, resources, and custom attributes without loading or executing target code. Returns complete inline inventories when metadata is admitted and explicit partial or malformed coverage otherwise.", kind: "managed-provider", - inputSchema: managedArtifactInputSchema, + inputSchema: managedTargetInputSchema, outputSchema, examples: [ { @@ -66,7 +58,7 @@ export const MANAGED_TOOL_CONTRACTS = [ description: "Inspect PE/CLI metadata members, signatures, raw CIL hashes, decoded-instruction-tuple hashes, separately reported exception regions, call edges, and field-access anchors without loading or executing target code. Metadata tokens are reported as build-local coordinates bound to the artifact SHA-256 and MVID; the tuple hash does not resolve them or fully commit control flow.", kind: "managed-provider", - inputSchema: managedMemberInputSchema, + inputSchema: managedTargetInputSchema, outputSchema: memberOutputSchema, examples: [ { @@ -81,7 +73,7 @@ export const MANAGED_TOOL_CONTRACTS = [ description: "Inspect PE/CLI ModuleRef, ImplMap/PInvoke declarations, CLI native-header indicators, and non-IL method implementation flags without loading or executing target code. Results are managed declarations and degraded native-boundary observations, not verified native exports or addresses.", kind: "managed-provider", - inputSchema: managedNativeBoundaryInputSchema, + inputSchema: managedTargetInputSchema, outputSchema: nativeBoundaryOutputSchema, examples: [ { diff --git a/src/contracts/managed/managedWorkflowToolContracts.ts b/src/contracts/managed/managedWorkflowToolContracts.ts index f1f8d4092..3842c3814 100644 --- a/src/contracts/managed/managedWorkflowToolContracts.ts +++ b/src/contracts/managed/managedWorkflowToolContracts.ts @@ -2,8 +2,8 @@ import { z } from "zod"; import { evidenceSchema } from "../../domain/evidence.js"; import { managedReconstructionImportInputSchema } from "../../domain/managed/managedReconstruction.js"; -import type { ToolContract } from "../toolContracts.js"; -import { managedWorkflowOutputSchemas } from "../toolOutputSchemas.js"; +import type { ToolContract } from "../toolContractTypes.js"; +import { managedWorkflowOutputSchemas } from "../toolOutputSchemaGroups.js"; import { MANAGED_MEMBER_COMPARISON_EXAMPLE, MANAGED_NATIVE_VERIFICATION_EXAMPLE, diff --git a/src/contracts/native/binaryDiagnosticsToolContracts.ts b/src/contracts/native/binaryDiagnosticsToolContracts.ts index 28d199a8b..720578bd0 100644 --- a/src/contracts/native/binaryDiagnosticsToolContracts.ts +++ b/src/contracts/native/binaryDiagnosticsToolContracts.ts @@ -8,7 +8,7 @@ import { } from "../../domain/native/binaryLayout.js"; import type { ToolContract } from "../toolContractTypes.js"; import { toolContractMetadata } from "../toolEffects.js"; -import { evidenceResultOf } from "../toolOutputSchemas.js"; +import { evidenceResultOf } from "../toolOutputSchemaPrimitives.js"; /** Offline binary diagnostics are independent of macOS process/UI providers. */ export const BINARY_DIAGNOSTICS_TOOL_CONTRACTS = [ diff --git a/src/contracts/native/nativeToolContracts.ts b/src/contracts/native/nativeToolContracts.ts index f2c441703..af1e1f016 100644 --- a/src/contracts/native/nativeToolContracts.ts +++ b/src/contracts/native/nativeToolContracts.ts @@ -5,8 +5,8 @@ import { nativeUiScenarioInputSchema, } from "../../domain/native/nativeUiObservation.js"; -import type { ToolContract } from "../toolContracts.js"; -import { nativeOutputSchemas } from "../toolOutputSchemas.js"; +import type { ToolContract } from "../toolContractTypes.js"; +import { nativeOutputSchemas } from "../toolOutputSchemaGroups.js"; import { jsonValueSchema } from "../../domain/jsonValue.js"; import { localPathStringSchema } from "../../domain/localPath.js"; import { toolContractMetadata } from "../toolEffects.js"; diff --git a/src/contracts/officialToolContracts.ts b/src/contracts/officialToolContracts.ts index 7d4d0715f..73ca89e48 100644 --- a/src/contracts/officialToolContracts.ts +++ b/src/contracts/officialToolContracts.ts @@ -1,10 +1,8 @@ import { z } from "zod"; import { nativeFunctionAnnotationsInputSchema } from "../domain/native/nativeFunctionAnnotations.js"; -import { - officialOutputSchemas, - requireOutputSchema, -} from "./toolOutputSchemas.js"; +import { officialOutputSchemas } from "./toolOutputSchemaGroups.js"; +import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js"; import { address, document, diff --git a/src/contracts/process/processCaptureExample.ts b/src/contracts/process/processCaptureExample.ts deleted file mode 100644 index 3288fdac1..000000000 --- a/src/contracts/process/processCaptureExample.ts +++ /dev/null @@ -1,2 +0,0 @@ -/** Minimal valid process capture retained as a public contract example. */ -export { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../domain/process/processCaptureExample.js"; diff --git a/src/contracts/sessionPathInputs.test.ts b/src/contracts/sessionPathInputs.test.ts index f8030aa5d..2841fc1a1 100644 --- a/src/contracts/sessionPathInputs.test.ts +++ b/src/contracts/sessionPathInputs.test.ts @@ -3,7 +3,7 @@ import { describe, expect, it } from "vitest"; import { browserScenarioBrowserSchema } from "../domain/browserScenarioValues.js"; import { firmwareInputSchemas } from "../domain/firmware/firmwareAnalysis.js"; import { electronActiveObservationInputSchema } from "../domain/javascript/electronActiveObservation.js"; -import { managedArtifactInputSchema } from "./managed/managedToolContracts.js"; +import { managedTargetInputSchema } from "./managed/managedToolContracts.js"; import { exportEvidenceBundleInputSchema } from "./sessionToolContracts.js"; import { closeBinaryInputSchema, @@ -48,10 +48,10 @@ const cases: readonly PathCase[] = [ }, { name: "managed target", - accepts: (path) => managedArtifactInputSchema.safeParse({ path }).success, + accepts: (path) => managedTargetInputSchema.safeParse({ path }).success, relative: ["bin/app.dll"], absolute: "/tmp/app.dll", - omitted: () => managedArtifactInputSchema.safeParse({}).success, + omitted: () => managedTargetInputSchema.safeParse({}).success, }, { name: "open binary target", diff --git a/src/contracts/sessionToolContracts.ts b/src/contracts/sessionToolContracts.ts index 484e61bd2..5436d445e 100644 --- a/src/contracts/sessionToolContracts.ts +++ b/src/contracts/sessionToolContracts.ts @@ -4,30 +4,32 @@ import { isAbsoluteLocalPath, localPathStringSchema, } from "../domain/localPath.js"; +import { artifactComparisonInputSchema } from "../domain/artifactComparison.js"; +import { bundleComparisonInputSchema } from "../domain/bundleComparison.js"; +import { callPathInputSchema } from "../domain/callPathSchemas.js"; +import { changedBehaviorInputSchema } from "../domain/changedBehavior.js"; +import { functionComparisonInputSchema } from "../domain/functionComparisonSchemas.js"; +import { processScenarioSchema } from "../domain/process/processScenario.js"; import { - sessionOutputSchemas, - requireOutputSchema, -} from "./toolOutputSchemas.js"; + recordUnknownInputSchema, + updateUnknownInputSchema, +} from "../domain/residualUnknown.js"; +import { reconstructionVerificationInputSchema } from "../domain/reconstructionVerificationSchemas.js"; +import { staticRuntimeCorrelationInputSchema } from "../domain/staticRuntimeCorrelation.js"; +import { sessionOutputSchemas } from "./toolOutputSchemaGroups.js"; +import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js"; +import { + closeBinaryInputSchema, + openBinaryInputSchema, +} from "./sessionLifecycleInputs.js"; +import { binarySessionInputSchema } from "./sessionStatusContract.js"; import { addressContextInputSchema, - artifactComparisonInputSchema, - binarySessionInputSchema, - bundleComparisonInputSchema, - callPathInputSchema, - changedBehaviorInputSchema, - closeBinaryInputSchema, - functionComparisonInputSchema, importEvidenceBundleInputSchema, listUnknownsInputSchema, navigationContextInputSchema, - openBinaryInputSchema, processComparisonInputSchema, - processScenarioSchema, - reconstructionVerificationInputSchema, - recordUnknownInputSchema, getEvidenceBundleInputSchema, - staticRuntimeCorrelationInputSchema, - updateUnknownInputSchema, verifyUnknownResolutionInputSchema, } from "./sessionToolSchemas.js"; import { examplesFor } from "./toolContractHelpers.js"; diff --git a/src/contracts/sessionToolSchemas.ts b/src/contracts/sessionToolSchemas.ts index 408c14d1d..cac69149d 100644 --- a/src/contracts/sessionToolSchemas.ts +++ b/src/contracts/sessionToolSchemas.ts @@ -5,23 +5,8 @@ import { localPathStringSchema, } from "../domain/localPath.js"; -import { artifactComparisonInputSchema } from "../domain/artifactComparison.js"; -import { bundleComparisonInputSchema } from "../domain/bundleComparison.js"; -import { callPathInputSchema } from "../domain/callPath.js"; -import { changedBehaviorInputSchema } from "../domain/changedBehavior.js"; -import { functionComparisonInputSchema } from "../domain/functionComparison.js"; -import { processScenarioSchema } from "../domain/process/processCapture.js"; -import { processTraceSpecificationSchema } from "../domain/process/processTraceComparison.js"; -import { recordUnknownInputSchema } from "../domain/residualUnknown.js"; -import { reconstructionVerificationInputSchema } from "../domain/reconstructionVerification.js"; -import { staticRuntimeCorrelationInputSchema } from "../domain/staticRuntimeCorrelation.js"; +import { processTraceSpecificationSchema } from "../domain/process/processTraceSpecification.js"; import { evidenceSchema } from "../domain/evidence.js"; -import { updateUnknownInputSchema } from "../domain/residualUnknown.js"; -import { - openBinaryInputSchema, - closeBinaryInputSchema, -} from "./sessionLifecycleInputs.js"; -import { binarySessionInputSchema } from "./sessionStatusContract.js"; import { prefixedDigestSchema } from "./../domain/digests.js"; /** Return the current canonical Evidence bundle inline. */ @@ -71,19 +56,3 @@ export const listUnknownsInputSchema = z.strictObject({ export const verifyUnknownResolutionInputSchema = z.strictObject({ unknown_id: prefixedDigestSchema("unk"), }); - -export { - artifactComparisonInputSchema, - binarySessionInputSchema, - bundleComparisonInputSchema, - callPathInputSchema, - changedBehaviorInputSchema, - closeBinaryInputSchema, - functionComparisonInputSchema, - openBinaryInputSchema, - processScenarioSchema, - reconstructionVerificationInputSchema, - recordUnknownInputSchema, - staticRuntimeCorrelationInputSchema, - updateUnknownInputSchema, -}; diff --git a/src/contracts/toolContracts.ts b/src/contracts/toolContracts.ts index 82a6c513d..212a748bd 100644 --- a/src/contracts/toolContracts.ts +++ b/src/contracts/toolContracts.ts @@ -19,8 +19,6 @@ import { OFFICIAL_TOOL_CONTRACTS } from "./officialToolContracts.js"; import { ENHANCED_TOOL_CONTRACTS } from "./enhancedToolContracts.js"; import { SESSION_TOOL_CONTRACTS } from "./sessionToolContracts.js"; -export type { ToolContract } from "./toolContractTypes.js"; - /** Complete ordered public inventory used by registration and verification. */ export const TOOL_CONTRACTS = [ ...OFFICIAL_TOOL_CONTRACTS, diff --git a/src/contracts/toolOutputSchemaGroups.ts b/src/contracts/toolOutputSchemaGroups.ts index ba5d1e206..6f38137e6 100644 --- a/src/contracts/toolOutputSchemaGroups.ts +++ b/src/contracts/toolOutputSchemaGroups.ts @@ -13,16 +13,14 @@ import { jsonValueSchema } from "../domain/jsonValue.js"; import { residualUnknownSchema } from "../domain/residualUnknown.js"; import { evidenceBundleSchema } from "../domain/evidenceBundle.js"; -import { - processCaptureComparisonSchema, - processCaptureSchema, -} from "../domain/process/processCapture.js"; +import { processCaptureComparisonSchema } from "../domain/process/processComparison.js"; import { analysisBookmarkSchema, functionInstructionWindowSchema, referenceEdgeSchema, unresolvedCallSchema, analysisStringSchema, + procedureIdentitySchema, } from "../domain/hopperValues.js"; import { nativeApiInspectionResultSchema } from "../domain/native/nativeApiBoundary.js"; import { @@ -44,16 +42,16 @@ import { managedNativeBoundaryInspectionSchema, } from "../domain/managed/managedArtifact.js"; import { managedMemberComparisonResultSchema } from "../domain/managed/managedMemberComparison.js"; -import { managedNativeVerificationResultSchema } from "../domain/managed/managedNativeVerification.js"; +import { managedNativeVerificationResultSchema } from "../domain/managed/managedNativeVerificationSchemas.js"; import { managedReconstructionImportResultSchema } from "../domain/managed/managedReconstruction.js"; import { managedApplicationGraphResultSchema } from "../domain/managed/managedApplicationGraph.js"; import { artifactComparisonResultSchema } from "../domain/artifactComparison.js"; -import { functionComparisonResultSchema } from "../domain/functionComparison.js"; +import { functionComparisonResultSchema } from "../domain/functionComparisonSchemas.js"; import { bundleComparisonResultSchema } from "../domain/bundleComparison.js"; import { changedBehaviorResultSchema } from "../domain/changedBehavior.js"; -import { callPathResultSchema } from "../domain/callPath.js"; +import { callPathResultSchema } from "../domain/callPathSchemas.js"; import { staticRuntimeCorrelationResultSchema } from "../domain/staticRuntimeCorrelation.js"; -import { reconstructionVerificationResultSchema } from "../domain/reconstructionVerification.js"; +import { reconstructionVerificationResultSchema } from "../domain/reconstructionVerificationSchemas.js"; import { analysisErrorProjectionSchema } from "./errorSchemas.js"; import { nativeDispatchMetadataResultSchema } from "../domain/native/objcSwiftMetadata.js"; import { nativeInvestigationTraceSchema } from "../domain/native/nativeInvestigationGraph.js"; @@ -66,9 +64,8 @@ import { graphNode, lifecycleResultOf, nullableText, - procedureIdentity, procedureInfoOutput, - evidenceResultOf as resultOf, + evidenceResultOf, segmentOutput, sessionProvider, symbolDiscoveryOutput, @@ -76,6 +73,7 @@ import { targetKindSchema, } from "./toolOutputSchemaPrimitives.js"; +import { processCaptureSchema } from "../domain/process/processCapture.js"; const contextFacetSchema = z.discriminatedUnion("state", [ z.object({ state: z.literal("available"), value: jsonValueSchema }), z.object({ @@ -98,33 +96,33 @@ const bookmarkFacetSchema = z.discriminatedUnion("state", [ /** Exact structured-content schemas shared by direct analysis providers. */ export const officialOutputSchemas: Readonly> = { - annotate_native_function: resultOf(nativeFunctionAnnotationsSchema), - inspect_native_load_image: resultOf(nativeLoadImageSchema), - inspect_native_data_type: resultOf(nativeDataTypeSchema), - inspect_native_instruction: resultOf(nativeInstructionSchema), - resolve_native_call_targets: resultOf(nativeCallTargetsSchema), - address_name: resultOf(nullableText), - comment: resultOf(nullableText), - current_address: resultOf(z.string()), - current_procedure: resultOf(z.string()), - current_document: resultOf(z.string()), - goto_address: resultOf(z.string()), - inline_comment: resultOf(nullableText), - list_bookmarks: resultOf(z.array(analysisBookmarkSchema)), - list_documents: resultOf(z.array(z.string())), - list_names: resultOf(z.array(addressedValue)), - list_procedures: resultOf(z.array(addressedValue)), + annotate_native_function: evidenceResultOf(nativeFunctionAnnotationsSchema), + inspect_native_load_image: evidenceResultOf(nativeLoadImageSchema), + inspect_native_data_type: evidenceResultOf(nativeDataTypeSchema), + inspect_native_instruction: evidenceResultOf(nativeInstructionSchema), + resolve_native_call_targets: evidenceResultOf(nativeCallTargetsSchema), + address_name: evidenceResultOf(nullableText), + comment: evidenceResultOf(nullableText), + current_address: evidenceResultOf(z.string()), + current_procedure: evidenceResultOf(z.string()), + current_document: evidenceResultOf(z.string()), + goto_address: evidenceResultOf(z.string()), + inline_comment: evidenceResultOf(nullableText), + list_bookmarks: evidenceResultOf(z.array(analysisBookmarkSchema)), + list_documents: evidenceResultOf(z.array(z.string())), + list_names: evidenceResultOf(z.array(addressedValue)), + list_procedures: evidenceResultOf(z.array(addressedValue)), list_segments: segmentOutput, - list_strings: resultOf(z.array(analysisStringSchema)), - next_address: resultOf(z.string()), - prev_address: resultOf(z.string()), - procedure_address: resultOf(z.string()), - procedure_assembly: resultOf(z.string()), - procedure_callees: resultOf(addressList), - procedure_callers: resultOf(addressList), + list_strings: evidenceResultOf(z.array(analysisStringSchema)), + next_address: evidenceResultOf(z.string()), + prev_address: evidenceResultOf(z.string()), + procedure_address: evidenceResultOf(z.string()), + procedure_assembly: evidenceResultOf(z.string()), + procedure_callees: evidenceResultOf(addressList), + procedure_callers: evidenceResultOf(addressList), procedure_info: procedureInfoOutput, - read_function_instructions: resultOf(functionInstructionWindowSchema), - read_bytes: resultOf( + read_function_instructions: evidenceResultOf(functionInstructionWindowSchema), + read_bytes: evidenceResultOf( z.object({ address: z.string(), requested_bytes: z.number().int().min(1), @@ -133,7 +131,7 @@ export const officialOutputSchemas: Readonly> = { complete: z.boolean(), }), ), - address_to_file_offset: resultOf( + address_to_file_offset: evidenceResultOf( z.object({ address: z.string(), file_offset: z.number().int().min(0).max(Number.MAX_SAFE_INTEGER), @@ -163,31 +161,31 @@ export const officialOutputSchemas: Readonly> = { ), }), ), - procedure_references: resultOf( + procedure_references: evidenceResultOf( z.object({ - procedure: procedureIdentity, + procedure: procedureIdentitySchema, direction: z.enum(["incoming", "outgoing"]), reference_kinds_available: z.boolean().optional(), unresolved_calls: z.array(unresolvedCallSchema).default([]), references: z.array(referenceEdgeSchema), }), ), - procedure_pseudo_code: resultOf(nullableText), - resolve_containing_procedure: resultOf(containingProcedureResolution), - search_procedures: resultOf( + procedure_pseudo_code: evidenceResultOf(nullableText), + resolve_containing_procedure: evidenceResultOf(containingProcedureResolution), + search_procedures: evidenceResultOf( z.array(z.object({ address: z.string(), value: z.string() })), ), - search_strings: resultOf(z.array(analysisStringSchema)), - set_address_name: resultOf(z.boolean()), - set_addresses_names: resultOf(z.record(z.string(), z.boolean())), - set_bookmark: resultOf(z.boolean()), - set_comment: resultOf(z.boolean()), - set_inline_comment: resultOf(z.boolean()), - unset_bookmark: resultOf(z.boolean()), - xrefs: resultOf(addressList), + search_strings: evidenceResultOf(z.array(analysisStringSchema)), + set_address_name: evidenceResultOf(z.boolean()), + set_addresses_names: evidenceResultOf(z.record(z.string(), z.boolean())), + set_bookmark: evidenceResultOf(z.boolean()), + set_comment: evidenceResultOf(z.boolean()), + set_inline_comment: evidenceResultOf(z.boolean()), + unset_bookmark: evidenceResultOf(z.boolean()), + xrefs: evidenceResultOf(addressList), }; -const literalTraceOutput = resultOf( +const literalTraceOutput = evidenceResultOf( z.object({ query: z.string(), search_mode: z.literal("literal"), @@ -210,7 +208,7 @@ const literalTraceOutput = resultOf( }), ); -const callPathTraceOutput = resultOf( +const callPathTraceOutput = evidenceResultOf( z.object({ start: z.string(), goal: z.string().nullable(), @@ -264,14 +262,14 @@ const batchProcedureIdentity = z.discriminatedUnion("status", [ /** Exact structured-content schemas for composed analysis workflows. */ export const enhancedOutputSchemas: Readonly> = { - inspect_native_dispatch_metadata: resultOf( + inspect_native_dispatch_metadata: evidenceResultOf( nativeDispatchMetadataResultSchema, ), - trace_native_values: resultOf(nativeValueTraceSchema), - trace_native_ui_action: resultOf(nativeInvestigationTraceSchema), + trace_native_values: evidenceResultOf(nativeValueTraceSchema), + trace_native_ui_action: evidenceResultOf(nativeInvestigationTraceSchema), get_objc_classes: symbolDiscoveryOutput("classes"), get_objc_protocols: symbolDiscoveryOutput("protocols"), - batch_decompile: resultOf( + batch_decompile: evidenceResultOf( z.object({ items: z.array( z.discriminatedUnion("status", [ @@ -298,8 +296,8 @@ export const enhancedOutputSchemas: Readonly> = { failed: z.number().int().min(0), }), ), - get_call_graph: resultOf(z.record(z.string(), z.array(graphNode))), - analyze_swift_types: resultOf( + get_call_graph: evidenceResultOf(z.record(z.string(), z.array(graphNode))), + analyze_swift_types: evidenceResultOf( z.object({ total: z.number().int().min(0), categories: z.record( @@ -323,7 +321,7 @@ export const enhancedOutputSchemas: Readonly> = { symbol_inventory_error: analysisErrorProjectionSchema.exactOptional(), }), ), - find_xrefs_to_name: resultOf( + find_xrefs_to_name: evidenceResultOf( z.discriminatedUnion("status", [ z.object({ status: z.literal("resolved"), @@ -338,7 +336,7 @@ export const enhancedOutputSchemas: Readonly> = { }), ]), ), - binary_overview: resultOf( + binary_overview: evidenceResultOf( z.object({ document: z.string(), segments: z.array( @@ -355,38 +353,38 @@ export const enhancedOutputSchemas: Readonly> = { }), ), analyze_function: functionDossierOutput, - inspect_native_api: resultOf(nativeApiInspectionResultSchema), + inspect_native_api: evidenceResultOf(nativeApiInspectionResultSchema), trace_feature: literalTraceOutput, trace_call_path: callPathTraceOutput, }; /** Exact Evidence schemas for provider-neutral native inspection. */ export const nativeOutputSchemas: Readonly> = { - observe_native_ui: resultOf(nativeUiResultSchema), - capture_native_ui_scenario: resultOf(nativeUiResultSchema), - observe_native_calls: resultOf(nativeCallObservationResultSchema), - inspect_macho: resultOf(inspectMachoSchema), - inspect_signature: resultOf(inspectSignatureSchema), - inspect_plist: resultOf(inspectPlistSchema), - list_architectures: resultOf(listArchitecturesSchema), - demangle_swift: resultOf(demangleSwiftSchema), + observe_native_ui: evidenceResultOf(nativeUiResultSchema), + capture_native_ui_scenario: evidenceResultOf(nativeUiResultSchema), + observe_native_calls: evidenceResultOf(nativeCallObservationResultSchema), + inspect_macho: evidenceResultOf(inspectMachoSchema), + inspect_signature: evidenceResultOf(inspectSignatureSchema), + inspect_plist: evidenceResultOf(inspectPlistSchema), + list_architectures: evidenceResultOf(listArchitecturesSchema), + demangle_swift: evidenceResultOf(demangleSwiftSchema), }; /** Exact Evidence schemas for provider-neutral artifact graph operations. */ export const artifactOutputSchemas: Readonly> = { - inspect_artifact: resultOf(artifactInspectionResultSchema), - extract_artifact: resultOf(artifactExtractionResultSchema), - decode_interface_builder: resultOf(interfaceBuilderAnalysisSchema), - inspect_keyed_archive: resultOf(keyedArchiveResultSchema), - inspect_asset_catalog: resultOf(appleAssetCatalogResultSchema), - trace_dylib_resolution: resultOf(dylibResolutionResultSchema), + inspect_artifact: evidenceResultOf(artifactInspectionResultSchema), + extract_artifact: evidenceResultOf(artifactExtractionResultSchema), + decode_interface_builder: evidenceResultOf(interfaceBuilderAnalysisSchema), + inspect_keyed_archive: evidenceResultOf(keyedArchiveResultSchema), + inspect_asset_catalog: evidenceResultOf(appleAssetCatalogResultSchema), + trace_dylib_resolution: evidenceResultOf(dylibResolutionResultSchema), }; /** Exact Evidence schema for execution-free managed static analysis. */ export const managedOutputSchemas: Readonly> = { - inspect_managed_artifact: resultOf(managedArtifactInspectionSchema), - inspect_managed_members: resultOf(managedMemberInspectionSchema), - inspect_managed_native_boundaries: resultOf( + inspect_managed_artifact: evidenceResultOf(managedArtifactInspectionSchema), + inspect_managed_members: evidenceResultOf(managedMemberInspectionSchema), + inspect_managed_native_boundaries: evidenceResultOf( managedNativeBoundaryInspectionSchema, ), }; @@ -395,14 +393,16 @@ export const managedOutputSchemas: Readonly> = { export const managedWorkflowOutputSchemas: Readonly< Record > = { - compare_managed_members: resultOf(managedMemberComparisonResultSchema), - verify_managed_native_boundaries: resultOf( + compare_managed_members: evidenceResultOf( + managedMemberComparisonResultSchema, + ), + verify_managed_native_boundaries: evidenceResultOf( managedNativeVerificationResultSchema, ), - import_managed_reconstruction: resultOf( + import_managed_reconstruction: evidenceResultOf( managedReconstructionImportResultSchema, ), - project_managed_application_graph: resultOf( + project_managed_application_graph: evidenceResultOf( managedApplicationGraphResultSchema, ), }; @@ -495,15 +495,19 @@ export const sessionOutputSchemas = { total: z.number().int().min(0), }), ), - capture_process_scenario: resultOf(processCaptureSchema), - compare_process_captures: resultOf(processCaptureComparisonSchema), - compare_artifacts: resultOf(artifactComparisonResultSchema), - compare_functions: resultOf(functionComparisonResultSchema), - compare_bundles: resultOf(bundleComparisonResultSchema), - find_changed_behavior: resultOf(changedBehaviorResultSchema), - build_call_path: resultOf(callPathResultSchema), - correlate_static_and_runtime: resultOf(staticRuntimeCorrelationResultSchema), - verify_reconstruction: resultOf(reconstructionVerificationResultSchema), + capture_process_scenario: evidenceResultOf(processCaptureSchema), + compare_process_captures: evidenceResultOf(processCaptureComparisonSchema), + compare_artifacts: evidenceResultOf(artifactComparisonResultSchema), + compare_functions: evidenceResultOf(functionComparisonResultSchema), + compare_bundles: evidenceResultOf(bundleComparisonResultSchema), + find_changed_behavior: evidenceResultOf(changedBehaviorResultSchema), + build_call_path: evidenceResultOf(callPathResultSchema), + correlate_static_and_runtime: evidenceResultOf( + staticRuntimeCorrelationResultSchema, + ), + verify_reconstruction: evidenceResultOf( + reconstructionVerificationResultSchema, + ), list_unknowns: lifecycleResultOf( z.object({ items: z.array(residualUnknownSchema), diff --git a/src/contracts/toolOutputSchemaPrimitives.ts b/src/contracts/toolOutputSchemaPrimitives.ts index 2abe99e56..2efb498b2 100644 --- a/src/contracts/toolOutputSchemaPrimitives.ts +++ b/src/contracts/toolOutputSchemaPrimitives.ts @@ -30,7 +30,6 @@ export const evidenceResultOf = (schema: Schema) => .strictObject({ ...evidenceSchema.shape, normalized_result: schema }) .superRefine(validateAnalysisProfileProvider); -const resultOf = evidenceResultOf; /** Wrap a lifecycle result while preserving its exact schema type. */ export const lifecycleResultOf = (schema: Schema) => z.object({ result: schema }); @@ -406,14 +405,11 @@ export const addressedEntry = z.object({ address: z.string(), name: z.string(), }); -export const procedureIdentity = procedureIdentitySchema; -const localVariable = localVariableSchema; - export const containingProcedureResolution = z.discriminatedUnion("found", [ z.object({ query_address: z.string(), found: z.literal(true), - procedure: procedureIdentity, + procedure: procedureIdentitySchema, }), z.object({ query_address: z.string(), @@ -476,18 +472,18 @@ const memoryRegionOutput = z.object({ overlay: z.boolean().optional(), }); -export const segmentOutput = resultOf( +export const segmentOutput = evidenceResultOf( z.array(memoryRegionOutput.extend({ sections: z.array(memoryRegionOutput) })), ); -export const procedureInfoOutput = resultOf( +export const procedureInfoOutput = evidenceResultOf( z.object({ name: z.string(), entrypoint: z.string(), basicblock_count: z.number().int().min(0), length: z.number().min(0), signature: nullableText, - locals: z.array(localVariable), + locals: z.array(localVariableSchema), classification: procedureClassificationSchema.nullable().default(null), body: functionBodySchema.default({ available: false, @@ -497,7 +493,7 @@ export const procedureInfoOutput = resultOf( ); export const symbolDiscoveryOutput = (property: "classes" | "protocols") => - resultOf( + evidenceResultOf( z.object({ count: z.number().int().min(0), [property]: z.array(addressedEntry), @@ -517,4 +513,4 @@ export const graphNode = z.discriminatedUnion("status", [ }), ]); -export const functionDossierOutput = resultOf(functionDossierSchema); +export const functionDossierOutput = evidenceResultOf(functionDossierSchema); diff --git a/src/contracts/toolOutputSchemas.ts b/src/contracts/toolOutputSchemas.ts deleted file mode 100644 index 8d087b300..000000000 --- a/src/contracts/toolOutputSchemas.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./toolOutputSchemaPrimitives.js"; -export * from "./toolOutputSchemaGroups.js"; diff --git a/src/contracts/webNetworkCaptureToolContracts.ts b/src/contracts/webNetworkCaptureToolContracts.ts index 6acfa2241..cb919172f 100644 --- a/src/contracts/webNetworkCaptureToolContracts.ts +++ b/src/contracts/webNetworkCaptureToolContracts.ts @@ -2,9 +2,9 @@ import { inspectWebNetworkCaptureInputSchema, webNetworkCaptureSchema, } from "../domain/webNetworkCapture.js"; -import type { ToolContract } from "./toolContracts.js"; +import type { ToolContract } from "./toolContractTypes.js"; import { toolContractMetadata } from "./toolEffects.js"; -import { evidenceResultOf } from "./toolOutputSchemas.js"; +import { evidenceResultOf } from "./toolOutputSchemaPrimitives.js"; /** Historical inspection is distinct from live browser capture and runtime authority. */ export const WEB_NETWORK_CAPTURE_TOOL_CONTRACTS = [ diff --git a/src/contracts/webRuntimeToolContracts.ts b/src/contracts/webRuntimeToolContracts.ts index 8a8cfebed..5c723735f 100644 --- a/src/contracts/webRuntimeToolContracts.ts +++ b/src/contracts/webRuntimeToolContracts.ts @@ -1,6 +1,6 @@ -import type { ToolContract } from "./toolContracts.js"; +import type { ToolContract } from "./toolContractTypes.js"; import { toolContractMetadata } from "./toolEffects.js"; -import { evidenceResultOf } from "./toolOutputSchemas.js"; +import { evidenceResultOf } from "./toolOutputSchemaPrimitives.js"; import { observeWebExecutionInputSchema, webExecutionSchema, diff --git a/src/contracts/webScriptToolContracts.ts b/src/contracts/webScriptToolContracts.ts index e437b89a7..3947cfcf5 100644 --- a/src/contracts/webScriptToolContracts.ts +++ b/src/contracts/webScriptToolContracts.ts @@ -8,7 +8,7 @@ import { webModuleTraceResultSchema, } from "../domain/webModuleTrace.js"; import { toolContractMetadata } from "./toolEffects.js"; -import { evidenceResultOf } from "./toolOutputSchemas.js"; +import { evidenceResultOf } from "./toolOutputSchemaPrimitives.js"; import { webSourceLocationInputSchema, webSourceLocationResultSchema, diff --git a/src/domain/analysisSnapshot.fixture.ts b/src/domain/analysisSnapshot.fixture.ts index af3104cb9..b9ea9dda8 100644 --- a/src/domain/analysisSnapshot.fixture.ts +++ b/src/domain/analysisSnapshot.fixture.ts @@ -1,5 +1,5 @@ import { createAnalysisProfile } from "./analysisProfile.js"; -import type { BinaryTarget } from "./binaryTarget.js"; +import type { BinaryTarget } from "./binaryTargetTypes.js"; /** Immutable target shared by analysis-snapshot contract tests. */ export const ANALYSIS_SNAPSHOT_TARGET: BinaryTarget = { diff --git a/src/domain/analysisSnapshot.ts b/src/domain/analysisSnapshot.ts index 4a8ceb143..2c9156dca 100644 --- a/src/domain/analysisSnapshot.ts +++ b/src/domain/analysisSnapshot.ts @@ -9,7 +9,7 @@ import { committedProviderSchema, type AnalysisProfileCommitment, } from "./analysisProfile.js"; -import type { BinaryTarget } from "./binaryTarget.js"; +import type { BinaryTarget } from "./binaryTargetTypes.js"; import { evidenceBundleForTarget, evidenceBundleSchema, diff --git a/src/domain/analysisView/analysisView.test.ts b/src/domain/analysisView/analysisView.test.ts index a15098578..e3aabcf14 100644 --- a/src/domain/analysisView/analysisView.test.ts +++ b/src/domain/analysisView/analysisView.test.ts @@ -20,13 +20,15 @@ import { } from "../javascript/javascriptSemanticGraph.js"; import { completeWithinViewCoverage, - inspectAnalysisViewInputSchema, pageViewCoverage, +} from "./analysisViewCoverage.js"; +import { javascriptModulePath } from "./javascriptApplicationView.js"; + +import { + inspectAnalysisViewInputSchema, projectAnalysisView, type AnalysisViewParent, } from "./analysisView.js"; -import { javascriptModulePath } from "./javascriptApplicationView.js"; - const layoutParent = (): AnalysisViewParent => { const evidence = analysisViewLayoutEvidence(); return { diff --git a/src/domain/analysisView/analysisView.ts b/src/domain/analysisView/analysisView.ts index de778f894..c0d33a862 100644 --- a/src/domain/analysisView/analysisView.ts +++ b/src/domain/analysisView/analysisView.ts @@ -202,11 +202,6 @@ export interface AnalysisViewParent { readonly limitations: readonly string[]; } -export { - completeWithinViewCoverage, - pageViewCoverage, -} from "./analysisViewCoverage.js"; - /** Construct a typed input failure for one selected-view constraint. */ export const analysisViewInputError = ( issues: readonly AnalysisInputIssue[], diff --git a/src/domain/analysisView/analysisViewCoverage.ts b/src/domain/analysisView/analysisViewCoverage.ts index 7f592a882..30730a2c9 100644 --- a/src/domain/analysisView/analysisViewCoverage.ts +++ b/src/domain/analysisView/analysisViewCoverage.ts @@ -1,5 +1,4 @@ import type { AnalysisViewCoverage } from "./analysisView.js"; - /** Coverage for a summary, facet, or single selected object. */ export const completeWithinViewCoverage = ( examined: number, diff --git a/src/domain/apple/interfaceBuilderGraph.test.ts b/src/domain/apple/interfaceBuilderGraph.test.ts index 1fce2ab19..13d6f79fb 100644 --- a/src/domain/apple/interfaceBuilderGraph.test.ts +++ b/src/domain/apple/interfaceBuilderGraph.test.ts @@ -4,8 +4,8 @@ import { buildBinary, parseBinary } from "plist"; import { buildInterfaceBuilderAnalysis, interfaceBuilderLimitsSchema, - parseInterfaceBuilderRecords, } from "./interfaceBuilderGraph.js"; +import { parseInterfaceBuilderRecords } from "./interfaceBuilderKeyedArchive.js"; const hash = "a".repeat(64); diff --git a/src/domain/apple/interfaceBuilderGraph.ts b/src/domain/apple/interfaceBuilderGraph.ts index bf2196031..17e94d584 100644 --- a/src/domain/apple/interfaceBuilderGraph.ts +++ b/src/domain/apple/interfaceBuilderGraph.ts @@ -12,8 +12,6 @@ import { nativeInvestigationTraceLimitsSchema, } from "../native/nativeInvestigationGraph.js"; -export { parseInterfaceBuilderRecords } from "./interfaceBuilderKeyedArchive.js"; - /** One compiled Interface Builder document projected from ibtool output. */ export const interfaceBuilderDocumentSchema = z.strictObject({ relative_path: z.string().min(1), diff --git a/src/domain/binaryTarget.ts b/src/domain/binaryTarget.ts index 9c9a01a5c..0e85a372e 100644 --- a/src/domain/binaryTarget.ts +++ b/src/domain/binaryTarget.ts @@ -2,8 +2,6 @@ import type { BinaryArchitecture } from "./binaryTargetTypes.js"; import { err, ok, type Result } from "./result.js"; import { mzWindowsHeaderOffset, parseDosMzHeader } from "./dosMz.js"; -export type { BinaryArchitecture, BinaryTarget } from "./binaryTargetTypes.js"; - /** Format and architecture facts recovered from an executable header. */ export type ExecutableMetadata = | { diff --git a/src/domain/browserCaptureComparison.ts b/src/domain/browserCaptureComparison.ts index 222c916b3..aa50f45cd 100644 --- a/src/domain/browserCaptureComparison.ts +++ b/src/domain/browserCaptureComparison.ts @@ -1,17 +1,17 @@ import { z } from "zod"; +import { compareBrowserScenarios } from "./browserScenarioDiff.js"; +import { compareWebCaptures } from "./webCaptureDiff.js"; import { browserScenarioDiffSchema, - compareBrowserScenarios, compareBrowserScenariosInputSchema, type BrowserScenarioDiff, -} from "./browserScenarioDiff.js"; +} from "./browserScenarioDiffValues.js"; import { - compareWebCaptures, compareWebCapturesInputSchema, webCaptureDiffSchema, type WebCaptureDiff, -} from "./webCaptureDiff.js"; +} from "./webCaptureDiffSchemas.js"; /** Mutually exclusive passive and scenario capture comparison inputs. */ export const browserCaptureComparisonInputSchema = z.union( diff --git a/src/domain/browserObservation.ts b/src/domain/browserObservation.ts index b64972a32..d32a2adc1 100644 --- a/src/domain/browserObservation.ts +++ b/src/domain/browserObservation.ts @@ -1,12 +1,5 @@ import { z } from "zod"; -export { - browserTargetListSchema, - webPageInspectionSchema, - type BrowserTargetList, - type WebPageInspection, -} from "./browserObservationSchemas.js"; - const parseExactOrigin = (value: string): string | undefined => { let url: URL; try { diff --git a/src/domain/browserScenario.ts b/src/domain/browserScenario.ts index 27fc3287c..2fd26b6a6 100644 --- a/src/domain/browserScenario.ts +++ b/src/domain/browserScenario.ts @@ -13,12 +13,6 @@ import { type BrowserScenarioValue, } from "./browserScenarioValues.js"; -export { - type BrowserScenarioAction, - type BrowserScenarioUrl, - type BrowserScenarioValue, -} from "./browserScenarioValues.js"; - export const browserScenarioInputSchema = z.strictObject({ browser: browserScenarioBrowserSchema.describe( "Required launch/connect selection. Launch uses the selected executable and an owned temporary profile; connect uses one loopback CDP endpoint and target.", diff --git a/src/domain/browserScenarioCapture.ts b/src/domain/browserScenarioCapture.ts index 87e2626de..8ad389588 100644 --- a/src/domain/browserScenarioCapture.ts +++ b/src/domain/browserScenarioCapture.ts @@ -7,19 +7,6 @@ import { browserScenarioStepSchema, } from "./browserScenarioCaptureValues.js"; -export { - classifyBrowserScenarioCompleteness, - browserScenarioEventSchema, - browserScenarioStepSchema, - browserStepArtifactsSchema, - type BrowserScenarioCompleteness, - type BrowserScenarioCompletenessSection, - type BrowserScenarioEvent, - type BrowserScenarioStep, - type BrowserScenarioStepOutcome, - type BrowserStepArtifacts, -} from "./browserScenarioCaptureValues.js"; - /** Step-indexed browser scenario observation. */ export const browserScenarioCaptureSchema = z .strictObject({ diff --git a/src/domain/browserScenarioDiff.test.ts b/src/domain/browserScenarioDiff.test.ts index 557ffb8dc..7b3824abb 100644 --- a/src/domain/browserScenarioDiff.test.ts +++ b/src/domain/browserScenarioDiff.test.ts @@ -2,11 +2,11 @@ import { createHash } from "node:crypto"; import { describe, expect, it } from "vitest"; +import { compareBrowserScenarios } from "./browserScenarioDiff.js"; import { - compareBrowserScenarios, compareBrowserScenariosInputSchema, browserScenarioDiffSchema, -} from "./browserScenarioDiff.js"; +} from "./browserScenarioDiffValues.js"; import { browserScenarioCaptureSchema, type BrowserScenarioCapture, diff --git a/src/domain/browserScenarioDiff.ts b/src/domain/browserScenarioDiff.ts index b465e386d..acfe3dd63 100644 --- a/src/domain/browserScenarioDiff.ts +++ b/src/domain/browserScenarioDiff.ts @@ -1,7 +1,5 @@ -import { - type BrowserScenarioCapture, - type BrowserScenarioStep, -} from "./browserScenarioCapture.js"; +import type { BrowserScenarioCapture } from "./browserScenarioCapture.js"; +import type { BrowserScenarioStep } from "./browserScenarioCaptureValues.js"; import { actionState, artifactEvidenceState, @@ -27,13 +25,6 @@ import { digestNormalizedScenarioValue, } from "./browserScenarioNormalization.js"; -export { - browserScenarioDiffSchema, - compareBrowserScenariosInputSchema, - type BrowserScenarioDiff, - type CompareBrowserScenariosInput, -} from "./browserScenarioDiffValues.js"; - type ComparableArtifact = { readonly artifact: BrowserScenarioArtifactKind; } & ( diff --git a/src/domain/browserScenarioDiffEvidence.ts b/src/domain/browserScenarioDiffEvidence.ts index b1e2275f4..015da4bff 100644 --- a/src/domain/browserScenarioDiffEvidence.ts +++ b/src/domain/browserScenarioDiffEvidence.ts @@ -1,10 +1,10 @@ import type { - BrowserScenarioCapture, BrowserScenarioCompleteness, BrowserScenarioCompletenessSection, BrowserScenarioStep, BrowserStepArtifacts, -} from "./browserScenarioCapture.js"; +} from "./browserScenarioCaptureValues.js"; +import type { BrowserScenarioCapture } from "./browserScenarioCapture.js"; import type { BrowserScenarioArtifactKind, BrowserScenarioEvidenceState, diff --git a/src/domain/callPath.test.ts b/src/domain/callPath.test.ts index 433a1ac3a..45c48ac3c 100644 --- a/src/domain/callPath.test.ts +++ b/src/domain/callPath.test.ts @@ -1,11 +1,11 @@ import { describe, expect, it } from "vitest"; import { enhancedInputSchemas } from "../contracts/enhancedInputs.js"; +import { buildCallPath } from "./callPath.js"; import { - buildCallPath, callPathInputSchema, callPathResultSchema, -} from "./callPath.js"; +} from "./callPathSchemas.js"; import { createEvidence, type Evidence } from "./evidence.js"; import { functionDossierSchema } from "./hopperValues.js"; import { jsonValueSchema } from "./jsonValue.js"; diff --git a/src/domain/callPath.ts b/src/domain/callPath.ts index a98145607..68df8db68 100644 --- a/src/domain/callPath.ts +++ b/src/domain/callPath.ts @@ -11,9 +11,6 @@ import { type FunctionSnapshot, } from "./functionDossierEvidence.js"; -export { callPathInputSchema, callPathResultSchema }; -export type { CallPathInput, CallPathResult }; - /** Minimal directed caller-to-callee adjacency for call-path search. */ class CallGraph { private readonly successors = new Map>(); diff --git a/src/domain/changedBehavior.ts b/src/domain/changedBehavior.ts index 9ef188d2a..3e1079fad 100644 --- a/src/domain/changedBehavior.ts +++ b/src/domain/changedBehavior.ts @@ -4,7 +4,7 @@ import { artifactComparisonResultSchema } from "./artifactComparison.js"; import { uniqueSorted } from "./canonicalOrdering.js"; import { comparisonSourceEvidenceIds } from "./comparisonSourceEvidence.js"; import { evidenceSchema, parseEvidence, type Evidence } from "./evidence.js"; -import { functionComparisonResultSchema } from "./functionComparison.js"; +import { functionComparisonResultSchema } from "./functionComparisonSchemas.js"; import { PROCESS_PROVIDER, isProcessEvidenceProvider, @@ -14,7 +14,7 @@ import { deriveProcessComparisonStatus, PROCESS_COMPARISON_DIMENSIONS, processCaptureComparisonSchema, -} from "./process/processCapture.js"; +} from "./process/processComparison.js"; import { prefixedDigestSchema } from "./../domain/digests.js"; const evidenceIdSchema = prefixedDigestSchema("ev"); diff --git a/src/domain/evidence.test.ts b/src/domain/evidence.test.ts index 710691d8d..9a129d7b6 100644 --- a/src/domain/evidence.test.ts +++ b/src/domain/evidence.test.ts @@ -2,7 +2,7 @@ import { fc, it } from "@fast-check/vitest"; import { describe, expect } from "vitest"; import { createAnalysisProfile } from "./analysisProfile.js"; -import type { BinaryTarget } from "./binaryTarget.js"; +import type { BinaryTarget } from "./binaryTargetTypes.js"; import { createEvidence, evidenceSchema, parseEvidence } from "./evidence.js"; import { MAX_JSON_DEPTH, type JsonValue } from "./jsonValue.js"; import { createEvidenceBundle } from "./evidenceBundle.js"; diff --git a/src/domain/evidence.ts b/src/domain/evidence.ts index fe90126b9..70d3e8c90 100644 --- a/src/domain/evidence.ts +++ b/src/domain/evidence.ts @@ -7,7 +7,7 @@ import { analysisProfileSchema, type AnalysisProfileCommitment, } from "./analysisProfile.js"; -import type { BinaryTarget } from "./binaryTarget.js"; +import type { BinaryTarget } from "./binaryTargetTypes.js"; import { jsonObjectSchema, jsonValueSchema, diff --git a/src/domain/functionComparison.test.ts b/src/domain/functionComparison.test.ts index d9b6b2f31..f7fbc258a 100644 --- a/src/domain/functionComparison.test.ts +++ b/src/domain/functionComparison.test.ts @@ -2,16 +2,14 @@ import { describe, expect, it } from "vitest"; import { FUNCTION_COMPARISON_EXAMPLE } from "../contracts/functionComparisonExample.js"; import { enhancedInputSchemas } from "../contracts/enhancedInputs.js"; -import { - compareFunctions, - functionComparisonResultSchema, -} from "./functionComparison.js"; +import { functionComparisonResultSchema } from "./functionComparisonSchemas.js"; import { createEvidence, type Evidence } from "./evidence.js"; import { functionDossierSchema } from "./hopperValues.js"; import { canonicalDigest, canonicalJson } from "./comparisonSemantics.js"; import { compareCodePoints } from "./canonicalOrdering.js"; import { jsonValueSchema } from "./jsonValue.js"; +import { compareFunctions } from "./functionComparison.js"; const dossier = ( text: string, base: "0x1000" | "0x2000", diff --git a/src/domain/functionComparison.ts b/src/domain/functionComparison.ts index e494dd2fd..ded6afeab 100644 --- a/src/domain/functionComparison.ts +++ b/src/domain/functionComparison.ts @@ -8,11 +8,6 @@ import { import { overallStatus, summarize } from "./functionComparisonResults.js"; import { compareDimensions } from "./functionComparisonDimensions.js"; -export { - functionComparisonInputSchema, - functionComparisonResultSchema, -} from "./functionComparisonSchemas.js"; - /** Compare two complete function Evidence records without fuzzy matching. */ export const compareFunctions = ( leftInput: unknown, diff --git a/src/domain/javascript/electronStaticAnalysisIpc.ts b/src/domain/javascript/electronStaticAnalysisIpc.ts index 2a7998a46..5221c26bd 100644 --- a/src/domain/javascript/electronStaticAnalysisIpc.ts +++ b/src/domain/javascript/electronStaticAnalysisIpc.ts @@ -15,8 +15,8 @@ import { argumentNode, calleeName, range, - semanticStaticPropertyName, } from "./javascriptStaticAnalysisHelpers.js"; +import { semanticStaticPropertyName } from "./javascriptAstValues.js"; import type { JavaScriptFindingContext } from "./javascriptStaticAnalysisState.js"; /** Inspect Electron IPC operations and validation candidates. */ diff --git a/src/domain/javascript/electronStaticAnalysisNative.ts b/src/domain/javascript/electronStaticAnalysisNative.ts index 77353fe78..541645c32 100644 --- a/src/domain/javascript/electronStaticAnalysisNative.ts +++ b/src/domain/javascript/electronStaticAnalysisNative.ts @@ -7,11 +7,13 @@ import { addLocatedFinding } from "./javascriptStaticAnalysisFindings.js"; import { argumentNode, calleeName, - propertyName, range, - semanticStaticPropertyName, stringValue, } from "./javascriptStaticAnalysisHelpers.js"; +import { + propertyName, + semanticStaticPropertyName, +} from "./javascriptAstValues.js"; import type { JavaScriptFindingContext } from "./javascriptStaticAnalysisState.js"; interface NativeBindingInput { diff --git a/src/domain/javascript/javascriptApplicationChangeGraph.ts b/src/domain/javascript/javascriptApplicationChangeGraph.ts index c5b2d0d07..e21fb8b6c 100644 --- a/src/domain/javascript/javascriptApplicationChangeGraph.ts +++ b/src/domain/javascript/javascriptApplicationChangeGraph.ts @@ -2,11 +2,13 @@ import { createJavaScriptApplicationEdge, createJavaScriptApplicationGraph, createJavaScriptApplicationNode, - type ApplicationEdge, - type ApplicationGraphEvidence, - type ApplicationNode, type JavaScriptApplicationGraph, } from "./javascriptApplicationGraph.js"; +import type { + ApplicationEdge, + ApplicationNode, +} from "./javascriptApplicationGraphSchemas.js"; +import type { ApplicationGraphEvidence } from "./javascriptApplicationEvidenceSchemas.js"; import { compareCodePoints, uniqueSorted } from "../canonicalOrdering.js"; import type { ApplicationVersionComparisonItem } from "./javascriptApplicationVersionComparisonSchemas.js"; diff --git a/src/domain/javascript/javascriptApplicationGraph.fixture.ts b/src/domain/javascript/javascriptApplicationGraph.fixture.ts index 8fbfe2cb4..00f7c229a 100644 --- a/src/domain/javascript/javascriptApplicationGraph.fixture.ts +++ b/src/domain/javascript/javascriptApplicationGraph.fixture.ts @@ -2,10 +2,10 @@ import { createJavaScriptApplicationEdge, createJavaScriptApplicationGraph, createJavaScriptApplicationNode, - type ApplicationGraphEvidence, - type ApplicationNode, type JavaScriptApplicationGraph, } from "./javascriptApplicationGraph.js"; +import type { ApplicationNode } from "./javascriptApplicationGraphSchemas.js"; +import type { ApplicationGraphEvidence } from "./javascriptApplicationEvidenceSchemas.js"; export const APPLICATION_GRAPH_DIGESTS = { package: "1".repeat(64), diff --git a/src/domain/javascript/javascriptApplicationGraph.ts b/src/domain/javascript/javascriptApplicationGraph.ts index 5f39648de..56c39dfb6 100644 --- a/src/domain/javascript/javascriptApplicationGraph.ts +++ b/src/domain/javascript/javascriptApplicationGraph.ts @@ -528,5 +528,3 @@ export const serializeJavaScriptApplicationGraph = (input: unknown): string => parseJavaScriptApplicationGraph(input), "JavaScript Application Graph", ); - -export type { ApplicationEdge, ApplicationGraphEvidence, ApplicationNode }; diff --git a/src/domain/javascript/javascriptApplicationVersionItems.ts b/src/domain/javascript/javascriptApplicationVersionItems.ts index a82135732..a7784c195 100644 --- a/src/domain/javascript/javascriptApplicationVersionItems.ts +++ b/src/domain/javascript/javascriptApplicationVersionItems.ts @@ -5,11 +5,11 @@ import { } from "../comparisonSemantics.js"; import { compareCodePoints } from "../canonicalOrdering.js"; import type { Evidence } from "../evidence.js"; -import { - type ApplicationEdge, - type ApplicationNode, - type JavaScriptApplicationGraph, -} from "./javascriptApplicationGraph.js"; +import type { + ApplicationEdge, + ApplicationNode, +} from "./javascriptApplicationGraphSchemas.js"; +import type { JavaScriptApplicationGraph } from "./javascriptApplicationGraph.js"; import type { ApplicationVersionComparisonItem } from "./javascriptApplicationVersionComparisonSchemas.js"; import type { ApplicationVersionMatchingProjection, diff --git a/src/domain/javascript/javascriptApplicationVersionKeys.ts b/src/domain/javascript/javascriptApplicationVersionKeys.ts index d997a87b2..e9536f3e0 100644 --- a/src/domain/javascript/javascriptApplicationVersionKeys.ts +++ b/src/domain/javascript/javascriptApplicationVersionKeys.ts @@ -1,6 +1,6 @@ import { canonicalJson } from "../comparisonSemantics.js"; import { compareCodePoints } from "../canonicalOrdering.js"; -import type { ApplicationNode } from "./javascriptApplicationGraph.js"; +import type { ApplicationNode } from "./javascriptApplicationGraphSchemas.js"; import type { JsonValue } from "../jsonValue.js"; /** One deterministic one-to-one match between two graph versions. */ diff --git a/src/domain/javascript/javascriptExportShapeSelection.ts b/src/domain/javascript/javascriptExportShapeSelection.ts index 6a0ecc120..22510f617 100644 --- a/src/domain/javascript/javascriptExportShapeSelection.ts +++ b/src/domain/javascript/javascriptExportShapeSelection.ts @@ -1,7 +1,5 @@ -import type { - ApplicationNode, - JavaScriptApplicationGraph, -} from "./javascriptApplicationGraph.js"; +import type { ApplicationNode } from "./javascriptApplicationGraphSchemas.js"; +import type { JavaScriptApplicationGraph } from "./javascriptApplicationGraph.js"; import { projectedExportReturnShapesSchema, type JavaScriptExportShapeComparisonResult, diff --git a/src/domain/javascript/javascriptFeatureSeed.array_members.test.ts b/src/domain/javascript/javascriptFeatureSeed.array_members.test.ts index 15a6f8445..419cd1923 100644 --- a/src/domain/javascript/javascriptFeatureSeed.array_members.test.ts +++ b/src/domain/javascript/javascriptFeatureSeed.array_members.test.ts @@ -3,8 +3,8 @@ import { describe, expect, it } from "vitest"; import { createJavaScriptApplicationGraph, createJavaScriptApplicationNode, - type ApplicationNode, } from "./javascriptApplicationGraph.js"; +import type { ApplicationNode } from "./javascriptApplicationGraphSchemas.js"; import { artifactEvidence, completeCoverage, diff --git a/src/domain/javascript/javascriptFeatureSeed.ts b/src/domain/javascript/javascriptFeatureSeed.ts index c0c13ee88..25d34add6 100644 --- a/src/domain/javascript/javascriptFeatureSeed.ts +++ b/src/domain/javascript/javascriptFeatureSeed.ts @@ -1,5 +1,5 @@ import { compareCodePoints } from "../canonicalOrdering.js"; -import type { ApplicationNode } from "./javascriptApplicationGraph.js"; +import type { ApplicationNode } from "./javascriptApplicationGraphSchemas.js"; import { featureSeedMatchMode, type ApplicationFeatureSeed, diff --git a/src/domain/javascript/javascriptFeatureTrace.ts b/src/domain/javascript/javascriptFeatureTrace.ts index c10b2bd25..be492f943 100644 --- a/src/domain/javascript/javascriptFeatureTrace.ts +++ b/src/domain/javascript/javascriptFeatureTrace.ts @@ -3,10 +3,12 @@ import { compareCodePoints, uniqueSorted } from "../canonicalOrdering.js"; import type { Evidence } from "../evidence.js"; import { createJavaScriptApplicationGraph, - type ApplicationEdge, - type ApplicationNode, type JavaScriptApplicationGraph, } from "./javascriptApplicationGraph.js"; +import type { + ApplicationEdge, + ApplicationNode, +} from "./javascriptApplicationGraphSchemas.js"; import { applicationFeatureTraceResultSchema, type ApplicationFeatureTraceResult, diff --git a/src/domain/javascript/javascriptFeatureTraversal.ts b/src/domain/javascript/javascriptFeatureTraversal.ts index 8935fe11e..2f7b7c891 100644 --- a/src/domain/javascript/javascriptFeatureTraversal.ts +++ b/src/domain/javascript/javascriptFeatureTraversal.ts @@ -1,8 +1,8 @@ -import { - type ApplicationEdge, - type ApplicationNode, - type JavaScriptApplicationGraph, -} from "./javascriptApplicationGraph.js"; +import type { + ApplicationEdge, + ApplicationNode, +} from "./javascriptApplicationGraphSchemas.js"; +import type { JavaScriptApplicationGraph } from "./javascriptApplicationGraph.js"; import { compareCodePoints } from "../canonicalOrdering.js"; interface AdjacencyEntry { diff --git a/src/domain/javascript/javascriptNativeHandoff.ts b/src/domain/javascript/javascriptNativeHandoff.ts index 4ea721566..69051254e 100644 --- a/src/domain/javascript/javascriptNativeHandoff.ts +++ b/src/domain/javascript/javascriptNativeHandoff.ts @@ -3,7 +3,7 @@ import type { Evidence } from "../evidence.js"; import { type ApplicationEdge, type ApplicationNode, -} from "./javascriptApplicationGraph.js"; +} from "./javascriptApplicationGraphSchemas.js"; import type { ApplicationFeatureTraceResult } from "./javascriptFeatureTraceSchemas.js"; type NativeHandoff = ApplicationFeatureTraceResult["native_handoffs"][number]; diff --git a/src/domain/javascript/javascriptRuntimeLoadState.ts b/src/domain/javascript/javascriptRuntimeLoadState.ts index 5c9996871..58cf9aeef 100644 --- a/src/domain/javascript/javascriptRuntimeLoadState.ts +++ b/src/domain/javascript/javascriptRuntimeLoadState.ts @@ -1,4 +1,4 @@ -import { type ApplicationNode } from "./javascriptApplicationGraph.js"; +import type { ApplicationNode } from "./javascriptApplicationGraphSchemas.js"; import { uniqueSorted } from "../canonicalOrdering.js"; import type { ParsedStaticLayer } from "./javascriptRuntimeReconciliationParsing.js"; import type { diff --git a/src/domain/javascript/javascriptRuntimeReconciliationGraph.ts b/src/domain/javascript/javascriptRuntimeReconciliationGraph.ts index 32f16469d..1eb941ba7 100644 --- a/src/domain/javascript/javascriptRuntimeReconciliationGraph.ts +++ b/src/domain/javascript/javascriptRuntimeReconciliationGraph.ts @@ -1,10 +1,12 @@ import { createJavaScriptApplicationGraph, createJavaScriptApplicationNode, - type ApplicationEdge, - type ApplicationNode, type JavaScriptApplicationGraph, } from "./javascriptApplicationGraph.js"; +import type { + ApplicationEdge, + ApplicationNode, +} from "./javascriptApplicationGraphSchemas.js"; import type { ParsedRuntimeCapture, ParsedStaticLayer, diff --git a/src/domain/javascript/javascriptRuntimeReconciliationMatching.ts b/src/domain/javascript/javascriptRuntimeReconciliationMatching.ts index 4bc31c1c0..b94aa0955 100644 --- a/src/domain/javascript/javascriptRuntimeReconciliationMatching.ts +++ b/src/domain/javascript/javascriptRuntimeReconciliationMatching.ts @@ -1,8 +1,6 @@ -import { - createJavaScriptApplicationEdge, - type ApplicationEdge, - type ApplicationGraphEvidence, -} from "./javascriptApplicationGraph.js"; +import { createJavaScriptApplicationEdge } from "./javascriptApplicationGraph.js"; +import type { ApplicationEdge } from "./javascriptApplicationGraphSchemas.js"; +import type { ApplicationGraphEvidence } from "./javascriptApplicationEvidenceSchemas.js"; import { canonicalDigest } from "../comparisonSemantics.js"; import type { ParsedStaticLayer } from "./javascriptRuntimeReconciliationParsing.js"; import { compareCodePoints } from "../canonicalOrdering.js"; diff --git a/src/domain/javascript/javascriptRuntimeReconciliationParsing.ts b/src/domain/javascript/javascriptRuntimeReconciliationParsing.ts index d2c37b8ea..f8500e892 100644 --- a/src/domain/javascript/javascriptRuntimeReconciliationParsing.ts +++ b/src/domain/javascript/javascriptRuntimeReconciliationParsing.ts @@ -3,9 +3,11 @@ import { z } from "zod"; import { browserAllowedOriginsSchema, browserEndpointSchema, +} from "../browserObservation.js"; +import { webPageInspectionSchema, type WebPageInspection, -} from "../browserObservation.js"; +} from "../browserObservationSchemas.js"; import { classifyBrowserCompleteness, type BrowserCompleteness, diff --git a/src/domain/javascript/javascriptRuntimeReconciliationRuntime.ts b/src/domain/javascript/javascriptRuntimeReconciliationRuntime.ts index 64b7b5cb1..925807eb1 100644 --- a/src/domain/javascript/javascriptRuntimeReconciliationRuntime.ts +++ b/src/domain/javascript/javascriptRuntimeReconciliationRuntime.ts @@ -2,10 +2,12 @@ import type { JsonValue } from "../jsonValue.js"; import { createJavaScriptApplicationEdge, createJavaScriptApplicationNode, - type ApplicationEdge, - type ApplicationGraphEvidence, - type ApplicationNode, } from "./javascriptApplicationGraph.js"; +import type { + ApplicationEdge, + ApplicationNode, +} from "./javascriptApplicationGraphSchemas.js"; +import type { ApplicationGraphEvidence } from "./javascriptApplicationEvidenceSchemas.js"; import type { ParsedRuntimeCapture } from "./javascriptRuntimeReconciliationParsing.js"; export interface RuntimeReconciliationEntity { diff --git a/src/domain/javascript/javascriptRuntimeStaticCandidates.ts b/src/domain/javascript/javascriptRuntimeStaticCandidates.ts index cca3c2d77..641f8c1e4 100644 --- a/src/domain/javascript/javascriptRuntimeStaticCandidates.ts +++ b/src/domain/javascript/javascriptRuntimeStaticCandidates.ts @@ -1,9 +1,7 @@ import { posix, relative, win32 } from "node:path"; -import { - type ApplicationNode, - type JavaScriptApplicationGraph, -} from "./javascriptApplicationGraph.js"; +import type { ApplicationNode } from "./javascriptApplicationGraphSchemas.js"; +import type { JavaScriptApplicationGraph } from "./javascriptApplicationGraph.js"; import { compareCodePoints, uniqueSorted } from "../canonicalOrdering.js"; import type { ParsedStaticLayer } from "./javascriptRuntimeReconciliationParsing.js"; import type { RuntimeReconciliationEntity } from "./javascriptRuntimeReconciliationRuntime.js"; diff --git a/src/domain/javascript/javascriptSemanticAnalysis.rejection.test.ts b/src/domain/javascript/javascriptSemanticAnalysis.rejection.test.ts index 0c8495767..c77700a25 100644 --- a/src/domain/javascript/javascriptSemanticAnalysis.rejection.test.ts +++ b/src/domain/javascript/javascriptSemanticAnalysis.rejection.test.ts @@ -12,7 +12,7 @@ import { collectJavaScriptExports, fingerprintJavaScriptAst, } from "./javascriptAstFingerprint.js"; -import type { JavaScriptSemanticValue } from "./javascriptSemanticIr.js"; +import type { JavaScriptSemanticValue } from "./javascriptSemanticValueTypes.js"; import { onlyCallable, topLevelBinding, diff --git a/src/domain/javascript/javascriptSemanticAsyncEffects.ts b/src/domain/javascript/javascriptSemanticAsyncEffects.ts index 07d489890..f7914c20f 100644 --- a/src/domain/javascript/javascriptSemanticAsyncEffects.ts +++ b/src/domain/javascript/javascriptSemanticAsyncEffects.ts @@ -7,10 +7,8 @@ import type { JavaScriptSemanticEventOperation, JavaScriptSemanticTimerOperation, } from "./javascriptSemanticIr.js"; -import { - semanticCallableIdForNode, - semanticStaticPropertyName, -} from "./javascriptSemanticProjection.js"; +import { semanticCallableIdForNode } from "./javascriptSemanticProjection.js"; +import { semanticStaticPropertyName } from "./javascriptAstValues.js"; import { resolveSemanticBindingState, semanticResolutionBlocked, diff --git a/src/domain/javascript/javascriptSemanticCalls.ts b/src/domain/javascript/javascriptSemanticCalls.ts index ca775e478..2d5f94abd 100644 --- a/src/domain/javascript/javascriptSemanticCalls.ts +++ b/src/domain/javascript/javascriptSemanticCalls.ts @@ -12,8 +12,8 @@ import type { import { semanticCallableIdForNode, semanticReferenceRole, - semanticStaticPropertyKey, } from "./javascriptSemanticProjection.js"; +import { semanticStaticPropertyKey } from "./javascriptAstValues.js"; import { resolveSemanticBindingState, isUnshadowedGlobal, diff --git a/src/domain/javascript/javascriptSemanticChildProcesses.ts b/src/domain/javascript/javascriptSemanticChildProcesses.ts index d470c55c7..2ce7c2fe5 100644 --- a/src/domain/javascript/javascriptSemanticChildProcesses.ts +++ b/src/domain/javascript/javascriptSemanticChildProcesses.ts @@ -7,10 +7,8 @@ import type { JavaScriptSemanticChildProcessInteraction, JavaScriptSemanticChildProcessSpawn, } from "./javascriptSemanticIr.js"; -import { - semanticCallableIdForNode, - semanticStaticPropertyName, -} from "./javascriptSemanticProjection.js"; +import { semanticCallableIdForNode } from "./javascriptSemanticProjection.js"; +import { semanticStaticPropertyName } from "./javascriptAstValues.js"; import { resolveSemanticBindingState, type JavaScriptSemanticAnalysisState, diff --git a/src/domain/javascript/javascriptSemanticDataEffects.ts b/src/domain/javascript/javascriptSemanticDataEffects.ts index 2819ea4bd..e355d3ddb 100644 --- a/src/domain/javascript/javascriptSemanticDataEffects.ts +++ b/src/domain/javascript/javascriptSemanticDataEffects.ts @@ -12,7 +12,7 @@ import { compareCodePoints } from "../canonicalOrdering.js"; import { semanticStaticPropertyKey, semanticStaticPropertyName, -} from "./javascriptSemanticProjection.js"; +} from "./javascriptAstValues.js"; import { resolveSemanticBindingState, semanticResolutionBlocked, diff --git a/src/domain/javascript/javascriptSemanticGraph.ts b/src/domain/javascript/javascriptSemanticGraph.ts index fa26feb84..a515b2685 100644 --- a/src/domain/javascript/javascriptSemanticGraph.ts +++ b/src/domain/javascript/javascriptSemanticGraph.ts @@ -627,5 +627,3 @@ export const isValidatedImmutableJavaScriptSemanticGraph = ( typeof value === "object" && value !== null && validatedImmutableSemanticGraphs.has(value); - -export type { JavaScriptSemanticGraphNode, JavaScriptSemanticGraphRelation }; diff --git a/src/domain/javascript/javascriptSemanticGraphQuery.test.ts b/src/domain/javascript/javascriptSemanticGraphQuery.test.ts index e6c426f45..ba39bcf70 100644 --- a/src/domain/javascript/javascriptSemanticGraphQuery.test.ts +++ b/src/domain/javascript/javascriptSemanticGraphQuery.test.ts @@ -17,8 +17,8 @@ import { createImmutableJavaScriptSemanticGraphSteps, isValidatedImmutableJavaScriptSemanticGraph, type JavaScriptSemanticGraph, - type JavaScriptSemanticGraphNode, } from "./javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "./javascriptSemanticGraphSchemas.js"; import { parseJavaScriptSemanticGraph, serializeJavaScriptSemanticGraph, diff --git a/src/domain/javascript/javascriptSemanticGraphTraversal.test.ts b/src/domain/javascript/javascriptSemanticGraphTraversal.test.ts index be9e57675..532c1fe28 100644 --- a/src/domain/javascript/javascriptSemanticGraphTraversal.test.ts +++ b/src/domain/javascript/javascriptSemanticGraphTraversal.test.ts @@ -13,9 +13,11 @@ import { createJavaScriptSemanticGraphRelation, createJavaScriptSemanticGraphUnknown, type JavaScriptSemanticGraph, - type JavaScriptSemanticGraphNode, - type JavaScriptSemanticGraphRelation, } from "./javascriptSemanticGraph.js"; +import type { + JavaScriptSemanticGraphNode, + JavaScriptSemanticGraphRelation, +} from "./javascriptSemanticGraphSchemas.js"; import { queryJavaScriptSemanticGraph } from "./javascriptSemanticQuery.js"; import type { JsonValue } from "../jsonValue.js"; diff --git a/src/domain/javascript/javascriptSemanticIr.ts b/src/domain/javascript/javascriptSemanticIr.ts index 14ce12d12..16a137a19 100644 --- a/src/domain/javascript/javascriptSemanticIr.ts +++ b/src/domain/javascript/javascriptSemanticIr.ts @@ -5,13 +5,6 @@ import type { JavaScriptSemanticReturnCoverage, } from "./javascriptSemanticCoverage.js"; -export type { - JavaScriptSemanticPrimitive, - JavaScriptSemanticProperty, - JavaScriptSemanticResourceLimit, - JavaScriptSemanticValue, -} from "./javascriptSemanticValueTypes.js"; - /** One exact module origin followed through imports, requires, or aliases. */ export interface JavaScriptModuleOrigin { readonly specifier: string; diff --git a/src/domain/javascript/javascriptSemanticMutationValues.ts b/src/domain/javascript/javascriptSemanticMutationValues.ts index 46127f614..6036bbd2b 100644 --- a/src/domain/javascript/javascriptSemanticMutationValues.ts +++ b/src/domain/javascript/javascriptSemanticMutationValues.ts @@ -1,4 +1,4 @@ -import type { JavaScriptSemanticValue } from "./javascriptSemanticIr.js"; +import type { JavaScriptSemanticValue } from "./javascriptSemanticValueTypes.js"; /** Invalidate only slots that an explicit mutation can affect. */ export const invalidateSemanticMutationPath = ( diff --git a/src/domain/javascript/javascriptSemanticObjects.ts b/src/domain/javascript/javascriptSemanticObjects.ts index 3a8414776..a7872efb0 100644 --- a/src/domain/javascript/javascriptSemanticObjects.ts +++ b/src/domain/javascript/javascriptSemanticObjects.ts @@ -7,8 +7,8 @@ import type { import { semanticCallableIdForNode, semanticReadsBeforeWrite, - semanticStaticPropertyKey, } from "./javascriptSemanticProjection.js"; +import { semanticStaticPropertyKey } from "./javascriptAstValues.js"; import { resolveSemanticBindingState, type JavaScriptSemanticAnalysisState, diff --git a/src/domain/javascript/javascriptSemanticPrimitives.ts b/src/domain/javascript/javascriptSemanticPrimitives.ts index e3a8b4875..0223403d0 100644 --- a/src/domain/javascript/javascriptSemanticPrimitives.ts +++ b/src/domain/javascript/javascriptSemanticPrimitives.ts @@ -1,25 +1,15 @@ -import * as t from "@babel/types"; - import type { JavaScriptSemanticPrimitive, JavaScriptSemanticValue, -} from "./javascriptSemanticIr.js"; +} from "./javascriptSemanticValueTypes.js"; import { compareCodePoints } from "../canonicalOrdering.js"; import { semanticPrimitiveKey } from "./javascriptSemanticProvenance.js"; -import { readExactJavaScriptLiteral } from "./javascriptAstValues.js"; import { SEMANTIC_PRIMITIVE_CANDIDATE_LIMIT, exceedsSemanticPrimitiveStringByteBudget, semanticResourceLimitUnknown, } from "./javascriptSemanticResourceLimits.js"; -/** - * Keep eight independent binary choices exact, while bounding the next - * exponential expansion before it allocates hundreds more alternatives. - */ -export const MAX_SEMANTIC_PRIMITIVE_CANDIDATES = - SEMANTIC_PRIMITIVE_CANDIDATE_LIMIT; - /** Normalize one bounded collection of possible primitive values. */ export const semanticPrimitiveSet = ( values: readonly JavaScriptSemanticPrimitive[], @@ -32,7 +22,7 @@ export const semanticPrimitiveSet = ( reason: "Nonfinite numbers are outside the JSON primitive lattice.", }; uniqueValues.add(value); - if (uniqueValues.size > MAX_SEMANTIC_PRIMITIVE_CANDIDATES) + if (uniqueValues.size > SEMANTIC_PRIMITIVE_CANDIDATE_LIMIT) return semanticResourceLimitUnknown("primitive-candidates"); } if ( @@ -62,12 +52,3 @@ export const semanticPrimitiveCandidates = ( : value.status === "union" ? value.values : null; - -/** Parse one Babel primitive literal without evaluating code. */ -export const semanticPrimitiveValue = ( - node: t.Node, -): - | { readonly found: true; readonly value: JavaScriptSemanticPrimitive } - | { readonly found: false } => { - return readExactJavaScriptLiteral(node); -}; diff --git a/src/domain/javascript/javascriptSemanticProjection.ts b/src/domain/javascript/javascriptSemanticProjection.ts index 740b9b0a7..1642a0a41 100644 --- a/src/domain/javascript/javascriptSemanticProjection.ts +++ b/src/domain/javascript/javascriptSemanticProjection.ts @@ -20,12 +20,11 @@ import { evaluateSemanticBinding, evaluateSemanticProvenance, } from "./javascriptSemanticValues.js"; +import { range, stringValue } from "./javascriptStaticAnalysisHelpers.js"; import { propertyName, - range, - stringValue, -} from "./javascriptStaticAnalysisHelpers.js"; -import { semanticStaticPropertyKey } from "./javascriptAstValues.js"; + semanticStaticPropertyKey, +} from "./javascriptAstValues.js"; interface CollectCallableInput { readonly node: t.Node; @@ -181,11 +180,6 @@ export const immutableSemanticBindings = ( })) .sort((left, right) => compareCodePoints(left.bindingId, right.bindingId)); -export { - semanticStaticPropertyKey, - semanticStaticPropertyName, -} from "./javascriptAstValues.js"; - const callableKind = ( node: t.Node, ): "function" | "class" | "method" | undefined => { diff --git a/src/domain/javascript/javascriptSemanticPromises.ts b/src/domain/javascript/javascriptSemanticPromises.ts index 31510e6c8..96eca56b2 100644 --- a/src/domain/javascript/javascriptSemanticPromises.ts +++ b/src/domain/javascript/javascriptSemanticPromises.ts @@ -4,10 +4,8 @@ import type { JavaScriptSemanticCallable, JavaScriptSemanticPromiseOperation, } from "./javascriptSemanticIr.js"; -import { - semanticCallableIdForNode, - semanticStaticPropertyName, -} from "./javascriptSemanticProjection.js"; +import { semanticCallableIdForNode } from "./javascriptSemanticProjection.js"; +import { semanticStaticPropertyName } from "./javascriptAstValues.js"; import { resolveSemanticBindingState, semanticResolutionBlocked, diff --git a/src/domain/javascript/javascriptSemanticProvenance.ts b/src/domain/javascript/javascriptSemanticProvenance.ts index 0639c0262..69a4a29a8 100644 --- a/src/domain/javascript/javascriptSemanticProvenance.ts +++ b/src/domain/javascript/javascriptSemanticProvenance.ts @@ -1,8 +1,8 @@ import type { JavaScriptBindingProvenance, JavaScriptModuleOrigin, - JavaScriptSemanticPrimitive, } from "./javascriptSemanticIr.js"; +import type { JavaScriptSemanticPrimitive } from "./javascriptSemanticValueTypes.js"; import { compareCodePoints } from "../canonicalOrdering.js"; /** Construct exact local provenance without inventing module origins. */ diff --git a/src/domain/javascript/javascriptSemanticQuery.ts b/src/domain/javascript/javascriptSemanticQuery.ts index 8f4ea146e..4b1c58c46 100644 --- a/src/domain/javascript/javascriptSemanticQuery.ts +++ b/src/domain/javascript/javascriptSemanticQuery.ts @@ -1,8 +1,8 @@ +import type { JavaScriptSemanticGraph } from "./javascriptSemanticGraph.js"; import type { - JavaScriptSemanticGraph, JavaScriptSemanticGraphNode, JavaScriptSemanticGraphRelation, -} from "./javascriptSemanticGraph.js"; +} from "./javascriptSemanticGraphSchemas.js"; import { compareCodePoints } from "../canonicalOrdering.js"; import type { JavaScriptSemanticGraphUnknown } from "./javascriptSemanticGraphSchemas.js"; import { isJavaScriptSemanticOwnershipRelation as ownershipRelation } from "./javascriptSemanticQueryRelations.js"; diff --git a/src/domain/javascript/javascriptSemanticQueryIdentity.ts b/src/domain/javascript/javascriptSemanticQueryIdentity.ts index d28ca8491..3876fe0a8 100644 --- a/src/domain/javascript/javascriptSemanticQueryIdentity.ts +++ b/src/domain/javascript/javascriptSemanticQueryIdentity.ts @@ -2,10 +2,8 @@ import { createHash } from "node:crypto"; import canonicalize from "canonicalize"; -import type { - JavaScriptSemanticGraph, - JavaScriptSemanticGraphNode, -} from "./javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraph } from "./javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphNode } from "./javascriptSemanticGraphSchemas.js"; import { compareCodePoints, uniqueSorted } from "../canonicalOrdering.js"; import type { JavaScriptSemanticQueryInput } from "./javascriptSemanticQuerySchemas.js"; diff --git a/src/domain/javascript/javascriptSemanticQueryRelations.ts b/src/domain/javascript/javascriptSemanticQueryRelations.ts index 698ffa2a0..30034d034 100644 --- a/src/domain/javascript/javascriptSemanticQueryRelations.ts +++ b/src/domain/javascript/javascriptSemanticQueryRelations.ts @@ -1,4 +1,4 @@ -import type { JavaScriptSemanticGraphRelation } from "./javascriptSemanticGraph.js"; +import type { JavaScriptSemanticGraphRelation } from "./javascriptSemanticGraphSchemas.js"; const OWNERSHIP_RELATIONS = new Set< JavaScriptSemanticGraphRelation["relation"] diff --git a/src/domain/javascript/javascriptSemanticResources.ts b/src/domain/javascript/javascriptSemanticResources.ts index b204aeb73..0a080fc90 100644 --- a/src/domain/javascript/javascriptSemanticResources.ts +++ b/src/domain/javascript/javascriptSemanticResources.ts @@ -6,7 +6,7 @@ import type { JavaScriptSemanticCallable, JavaScriptSemanticResourceOperation, } from "./javascriptSemanticIr.js"; -import { semanticStaticPropertyName } from "./javascriptSemanticProjection.js"; +import { semanticStaticPropertyName } from "./javascriptAstValues.js"; import { resolveSemanticBindingState, type JavaScriptSemanticAnalysisState, diff --git a/src/domain/javascript/javascriptSemanticReturns.ts b/src/domain/javascript/javascriptSemanticReturns.ts index d9b84a24b..119ec6bd8 100644 --- a/src/domain/javascript/javascriptSemanticReturns.ts +++ b/src/domain/javascript/javascriptSemanticReturns.ts @@ -9,8 +9,8 @@ import type { JavaScriptSemanticCallable, JavaScriptSemanticModuleLink, JavaScriptSemanticReturnSite, - JavaScriptSemanticValue, } from "./javascriptSemanticIr.js"; +import type { JavaScriptSemanticValue } from "./javascriptSemanticValueTypes.js"; import type { ProjectedPropertyCoverage, ProjectedReturnField, diff --git a/src/domain/javascript/javascriptStaticAnalysisCalls.ts b/src/domain/javascript/javascriptStaticAnalysisCalls.ts index e984f77be..e7c8ee182 100644 --- a/src/domain/javascript/javascriptStaticAnalysisCalls.ts +++ b/src/domain/javascript/javascriptStaticAnalysisCalls.ts @@ -11,7 +11,6 @@ import { calleeName, endpointArgument as endpointArgumentHelper, prefixedArgument, - semanticStaticPropertyName, range, rangeForOffsets, sourceSlice, @@ -20,6 +19,7 @@ import { storageKind, stringValue, } from "./javascriptStaticAnalysisHelpers.js"; +import { semanticStaticPropertyName } from "./javascriptAstValues.js"; import type { JavaScriptAnalysisAccumulator as AnalysisAccumulator, JavaScriptEndpointInput as EndpointInput, diff --git a/src/domain/javascript/javascriptStaticAnalysisHelpers.ts b/src/domain/javascript/javascriptStaticAnalysisHelpers.ts index e1cc0e2e8..28cd6e624 100644 --- a/src/domain/javascript/javascriptStaticAnalysisHelpers.ts +++ b/src/domain/javascript/javascriptStaticAnalysisHelpers.ts @@ -17,11 +17,6 @@ import { } from "./javascriptAstValues.js"; import { compareCodePoints } from "../canonicalOrdering.js"; -export { - propertyName, - semanticStaticPropertyName, -} from "./javascriptAstValues.js"; - /** Explicit result for source text that Babel cannot parse. */ export const failedJavaScriptStaticAnalysis = (): JavaScriptStaticAnalysis => ({ parse_status: "failed", diff --git a/src/domain/managed/managedApplicationGraph.ts b/src/domain/managed/managedApplicationGraph.ts index 9074bc40c..57e845bf0 100644 --- a/src/domain/managed/managedApplicationGraph.ts +++ b/src/domain/managed/managedApplicationGraph.ts @@ -7,9 +7,11 @@ import { evidenceSchema, type Evidence } from "../evidence.js"; import { createJavaScriptApplicationGraph, javascriptApplicationGraphSchema, - type ApplicationEdge, - type ApplicationNode, } from "../javascript/javascriptApplicationGraph.js"; +import type { + ApplicationEdge, + ApplicationNode, +} from "../javascript/javascriptApplicationGraphSchemas.js"; import { managedArtifactInspectionSchema, managedMemberInspectionSchema, diff --git a/src/domain/managed/managedApplicationGraphCoverage.ts b/src/domain/managed/managedApplicationGraphCoverage.ts index 612d389bc..ebdc79c6a 100644 --- a/src/domain/managed/managedApplicationGraphCoverage.ts +++ b/src/domain/managed/managedApplicationGraphCoverage.ts @@ -1,4 +1,4 @@ -import type { ApplicationGraphEvidence } from "../javascript/javascriptApplicationGraph.js"; +import type { ApplicationGraphEvidence } from "../javascript/javascriptApplicationEvidenceSchemas.js"; import type { ManagedArtifactInspection, ManagedMemberInspection, diff --git a/src/domain/managed/managedApplicationGraphNodes.ts b/src/domain/managed/managedApplicationGraphNodes.ts index 3704055d2..bd5a72dba 100644 --- a/src/domain/managed/managedApplicationGraphNodes.ts +++ b/src/domain/managed/managedApplicationGraphNodes.ts @@ -2,9 +2,9 @@ import { basename } from "node:path"; import { createJavaScriptApplicationEdge, createJavaScriptApplicationNode, - type ApplicationGraphEvidence, - type ApplicationNode, } from "../javascript/javascriptApplicationGraph.js"; +import type { ApplicationGraphEvidence } from "../javascript/javascriptApplicationEvidenceSchemas.js"; +import type { ApplicationNode } from "../javascript/javascriptApplicationGraphSchemas.js"; import { managedSourceCoverage } from "./managedApplicationGraphCoverage.js"; import { type ManagedMemberInspection, diff --git a/src/domain/managed/managedMemberComparison.ts b/src/domain/managed/managedMemberComparison.ts index 9e78130f4..5197c1755 100644 --- a/src/domain/managed/managedMemberComparison.ts +++ b/src/domain/managed/managedMemberComparison.ts @@ -259,5 +259,3 @@ export const compareManagedMembers = ( } satisfies ManagedMemberComparisonResult; return managedMemberComparisonResultSchema.parse(result); }; - -export { parseManagedMemberEvidence } from "./managedMemberComparisonMatch.js"; diff --git a/src/domain/managed/managedNativeVerification.ts b/src/domain/managed/managedNativeVerification.ts index 0ba3cdef1..11924b21e 100644 --- a/src/domain/managed/managedNativeVerification.ts +++ b/src/domain/managed/managedNativeVerification.ts @@ -20,13 +20,6 @@ import { verifyPinvoke, } from "./managedNativeVerificationMatch.js"; -export { - managedNativeVerificationInputSchema, - type ManagedNativeVerificationInput, - type ManagedNativeVerificationResult, -} from "./managedNativeVerificationSchemas.js"; -export { managedNativeVerificationResultSchema }; - const sha256 = (value: JsonValue): string => { const serialized = canonicalize(value); if (serialized === undefined) diff --git a/src/domain/process/processCapture.fixture.ts b/src/domain/process/processCapture.fixture.ts index eaca915ae..9ea29421a 100644 --- a/src/domain/process/processCapture.fixture.ts +++ b/src/domain/process/processCapture.fixture.ts @@ -1,13 +1,11 @@ +import { compareProcessCaptures } from "./processComparison.js"; +import { parseProcessCapture } from "./processCaptureParsing.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCaptureExample.js"; + import { - compareProcessCaptures, - parseProcessCapture, processCaptureSchema, type UnverifiedProcessCapture, } from "./processCapture.js"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCaptureExample.js"; - -export { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCaptureExample.js"; - /** Parse a detached valid empty capture for tests that need trusted evidence. */ export const emptyProcessCapture = () => parseProcessCapture(EMPTY_PROCESS_CAPTURE_EXAMPLE); diff --git a/src/domain/process/processCapture.ts b/src/domain/process/processCapture.ts index 414c97d4d..044d6b54d 100644 --- a/src/domain/process/processCapture.ts +++ b/src/domain/process/processCapture.ts @@ -8,8 +8,6 @@ import { type ProcessCaptureTruncationDetails, } from "./processCaptureCoverage.js"; -export * from "./processScenario.js"; - /** Normalized raw PTY chunk, preserving transport-level output differences. */ export interface TerminalFrame { readonly sequence: number; @@ -675,14 +673,3 @@ export const processCaptureSchema = processCaptureShapeSchema .describe( "The capture must preserve its canonical scenario, comparison, and normalization SHA-256 commitments; ordered capture timestamps and contiguous sequence numbers; before and final filesystem snapshots with truncation propagated; and exit-code consistency with deadline termination. The event journal is required; empty journals are valid. A non-empty journal must reference every captured observation exactly once with unique in-range references. These cross-field invariants are checked by REA after capture.", ); - -export { parseProcessCapture } from "./processCaptureParsing.js"; -export type { ProcessCapture } from "./processCaptureParsing.js"; - -export { - compareProcessCaptures, - comparisonStatusSchema, - deriveProcessComparisonStatus, - PROCESS_COMPARISON_DIMENSIONS, - processCaptureComparisonSchema, -} from "./processComparison.js"; diff --git a/src/domain/process/processCapture.validation.test.ts b/src/domain/process/processCapture.validation.test.ts index c2482bb45..80183aab7 100644 --- a/src/domain/process/processCapture.validation.test.ts +++ b/src/domain/process/processCapture.validation.test.ts @@ -1,9 +1,7 @@ import { expect, it } from "vitest"; -import { - digestProcessCommitment, - parseProcessCapture, -} from "./processCapture.js"; +import { digestProcessCommitment } from "./processScenario.js"; +import { parseProcessCapture } from "./processCaptureParsing.js"; import { compareUnverifiedProcessCaptures as compareProcessCaptures, emptyUnverifiedProcessCapture as emptyCapture, diff --git a/src/domain/process/processCaptureExample.ts b/src/domain/process/processCaptureExample.ts index 22df573ea..91098581c 100644 --- a/src/domain/process/processCaptureExample.ts +++ b/src/domain/process/processCaptureExample.ts @@ -1,5 +1,5 @@ import type { JsonValue } from "../jsonValue.js"; -import { digestProcessCommitment } from "./processCapture.js"; +import { digestProcessCommitment } from "./processScenario.js"; const normalization = { paths: true, diff --git a/src/domain/process/processCaptureValidation.ts b/src/domain/process/processCaptureValidation.ts index a222a47a6..b8bc953d3 100644 --- a/src/domain/process/processCaptureValidation.ts +++ b/src/domain/process/processCaptureValidation.ts @@ -1,7 +1,7 @@ -import type { UnverifiedProcessCapture } from "./processCapture.js"; import { digestProcessCommitment } from "./processScenario.js"; import { hasCaptureTruncation } from "./processCaptureCoverage.js"; +import type { UnverifiedProcessCapture } from "./processCapture.js"; /** One pure semantic validation failure in a shaped process capture. */ export interface ProcessCaptureValidationIssue { readonly path: string; diff --git a/src/domain/process/processComparison.ts b/src/domain/process/processComparison.ts index f0edec0ff..47264ef46 100644 --- a/src/domain/process/processComparison.ts +++ b/src/domain/process/processComparison.ts @@ -3,21 +3,21 @@ import { z } from "zod"; import { processSourceTruncated } from "./processCaptureCoverage.js"; import type { ProcessObservationSource } from "./processObservation.js"; -import type { ProcessCapture } from "./processCapture.js"; +import type { ProcessCapture } from "./processCaptureParsing.js"; import { comparableTerminalFrame } from "./processObservation.js"; import { AnalysisInputError } from "../analysisErrorCore.js"; import { jsonValueSchema } from "../jsonValue.js"; -import { - compareProcessTraces, - processTraceOutcomesDiffer, - processTraceComparisonResultSchema, - type ProcessTraceSpecification, -} from "./processTraceComparison.js"; +import { type ProcessTraceSpecification } from "./processTraceSpecification.js"; +import { processTraceComparisonResultSchema } from "./processTraceEvaluation.js"; import { dimensionsForTraceSources, traceCoversObservedDimension, } from "./processTraceDimensionProjection.js"; +import { + compareProcessTraces, + processTraceOutcomesDiffer, +} from "./processTraceComparison.js"; const OPERATION = "compare_process_captures"; /** Comparison classification that never equates incomplete evidence. */ diff --git a/src/domain/process/processTraceAdapters.test.ts b/src/domain/process/processTraceAdapters.test.ts index 26fd946b7..5589e40cb 100644 --- a/src/domain/process/processTraceAdapters.test.ts +++ b/src/domain/process/processTraceAdapters.test.ts @@ -1,11 +1,9 @@ import { describe, expect, it } from "vitest"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCapture.fixture.js"; -import { - compareProcessCaptures, - parseProcessCapture, -} from "./processCapture.js"; -import type { ProcessTraceSpecification } from "./processTraceComparison.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCaptureExample.js"; +import { compareProcessCaptures } from "./processComparison.js"; +import { parseProcessCapture } from "./processCaptureParsing.js"; +import type { ProcessTraceSpecification } from "./processTraceSpecification.js"; const beforeCheckpoint = { name: "before", at_ms: 0, diff --git a/src/domain/process/processTraceComparison.fixture.ts b/src/domain/process/processTraceComparison.fixture.ts index d66694148..244045e1c 100644 --- a/src/domain/process/processTraceComparison.fixture.ts +++ b/src/domain/process/processTraceComparison.fixture.ts @@ -1,6 +1,9 @@ -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCapture.fixture.js"; -import { parseProcessCapture, type ProcessCapture } from "./processCapture.js"; -import { type ProcessTraceSpecification } from "./processTraceComparison.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./processCaptureExample.js"; +import { + parseProcessCapture, + type ProcessCapture, +} from "./processCaptureParsing.js"; +import { type ProcessTraceSpecification } from "./processTraceSpecification.js"; export const emptyCapture = parseProcessCapture(EMPTY_PROCESS_CAPTURE_EXAMPLE); export const terminal = { sequence: 0, at_ms: 900, data: "Ready" }; diff --git a/src/domain/process/processTraceComparison.test.ts b/src/domain/process/processTraceComparison.test.ts index 321dd7afe..0dffc404d 100644 --- a/src/domain/process/processTraceComparison.test.ts +++ b/src/domain/process/processTraceComparison.test.ts @@ -1,10 +1,7 @@ import { describe, expect, it } from "vitest"; -import { parseProcessCapture } from "./processCapture.js"; -import { - compareProcessTraces, - processTraceComparisonResultSchema, - type ProcessTraceSpecification, -} from "./processTraceComparison.js"; +import { parseProcessCapture } from "./processCaptureParsing.js"; +import { type ProcessTraceSpecification } from "./processTraceSpecification.js"; +import { processTraceComparisonResultSchema } from "./processTraceEvaluation.js"; import { capture, partialSpecification, @@ -13,6 +10,7 @@ import { values, } from "./processTraceComparison.fixture.js"; +import { compareProcessTraces } from "./processTraceComparison.js"; describe("generic capture trace comparison", () => { it("requires explicit partial ordering and never infers causality from timestamps", () => { const specification = partialSpecification(); diff --git a/src/domain/process/processTraceComparison.ts b/src/domain/process/processTraceComparison.ts index afd5fd134..08a36a030 100644 --- a/src/domain/process/processTraceComparison.ts +++ b/src/domain/process/processTraceComparison.ts @@ -1,4 +1,4 @@ -import type { ProcessCapture } from "./processCapture.js"; +import type { ProcessCapture } from "./processCaptureParsing.js"; import { evaluateProcessTraceSide, processTraceComparisonResultSchema, @@ -9,15 +9,6 @@ import { type ProcessTraceSpecification, } from "./processTraceSpecification.js"; -export { - processTraceComparisonResultSchema, - type ProcessTraceComparisonResult, -} from "./processTraceEvaluation.js"; -export { - processTraceSpecificationSchema, - type ProcessTraceSpecification, -} from "./processTraceSpecification.js"; - /** Compare two captures against an explicit finite trace language. */ export const compareProcessTraces = ( left: ProcessCapture, diff --git a/src/domain/process/processTraceDimensionProjection.ts b/src/domain/process/processTraceDimensionProjection.ts index 2344ae28f..8e8208d0a 100644 --- a/src/domain/process/processTraceDimensionProjection.ts +++ b/src/domain/process/processTraceDimensionProjection.ts @@ -1,5 +1,5 @@ -import type { ProcessCapture } from "./processCapture.js"; -import type { ProcessTraceSource } from "./processTraceSpecification.js"; +import type { ProcessCapture } from "./processCaptureParsing.js"; +import type { ProcessObservationSource } from "./processObservation.js"; export type ProcessComparisonDimension = | "terminal" @@ -8,9 +8,9 @@ export type ProcessComparisonDimension = | "filesystem" | "process"; -/** Map declared trace sources to legacy process-comparison dimensions. */ +/** Map declared trace sources to process-comparison dimensions. */ export const dimensionsForTraceSources = ( - sources: ReadonlySet, + sources: ReadonlySet, ): ReadonlySet => { const dimensions = new Set(); for (const source of sources) { @@ -26,7 +26,7 @@ export const dimensionsForTraceSources = ( /** Whether a trace specification covers every observed source in a dimension. */ export const traceCoversObservedDimension = ( dimension: ProcessComparisonDimension, - sources: ReadonlySet, + sources: ReadonlySet, left: ProcessCapture, right: ProcessCapture, ): boolean => { diff --git a/src/domain/process/processTraceEvaluation.ts b/src/domain/process/processTraceEvaluation.ts index 3a65b3284..be0406680 100644 --- a/src/domain/process/processTraceEvaluation.ts +++ b/src/domain/process/processTraceEvaluation.ts @@ -1,30 +1,26 @@ import { z } from "zod"; import type { JsonValue } from "../jsonValue.js"; -import type { ProcessCapture } from "./processCapture.js"; +import type { ProcessCapture } from "./processCaptureParsing.js"; import { processSourceTruncated } from "./processCaptureCoverage.js"; import { processObservationLocationSchema, projectProcessObservation, type ProcessObservationLocation, + type ProcessObservationSource, } from "./processObservation.js"; import { canonicalTraceJson, comparableTracePayload, processTraceCardinalityBounds, - type ProcessTraceSource, type ProcessTraceSpecification, } from "./processTraceSpecification.js"; const identifierSchema = z.string().regex(/^[A-Za-z][A-Za-z0-9._\x2d]{0,63}$/u); -export type ProcessTraceLocation = ProcessObservationLocation; - -const locationSchema = processObservationLocationSchema; - const matchedEventSchema = z.strictObject({ event_id: identifierSchema, - location: locationSchema, + location: processObservationLocationSchema, }); const sideResultShape = { @@ -58,7 +54,7 @@ const diagnosticSchema = z.strictObject({ side: z.enum(["left", "right"]), message: z.string(), event_ids: z.array(identifierSchema), - locations: z.array(locationSchema), + locations: z.array(processObservationLocationSchema), }); /** Structured verdict for one declared process trace language. */ @@ -73,13 +69,13 @@ export type ProcessTraceComparisonResult = z.infer< >; type TraceRecord = { - readonly source: ProcessTraceSource; + readonly source: ProcessObservationSource; readonly payload: JsonValue; - readonly location: ProcessTraceLocation; + readonly location: ProcessObservationLocation; }; const scopesFor = ( - sources: ReadonlySet, + sources: ReadonlySet, ): ReadonlySet => new Set( [...sources].map((source) => { @@ -109,7 +105,7 @@ type FailureInput = { readonly kind: z.infer["kind"]; readonly message: string; readonly eventIds: readonly string[]; - readonly locations: readonly ProcessTraceLocation[]; + readonly locations: readonly ProcessObservationLocation[]; readonly rawTrace: z.infer[]; }; @@ -155,12 +151,12 @@ const evaluateFiniteTrace = ( type MatchedTrace = { readonly rawTrace: z.infer[]; - readonly locationsById: ReadonlyMap; + readonly locationsById: ReadonlyMap; }; const collectRecords = ( capture: ProcessCapture, - sources: ReadonlySet, + sources: ReadonlySet, ): readonly TraceRecord[] => { const records: TraceRecord[] = []; for (const location of capture.event_journal) { @@ -180,9 +176,9 @@ const matchRecords = ( specification: ProcessTraceSpecification, ): MatchedTrace | EvaluatedSide => { const rawTrace: z.infer[] = []; - const locationsById = new Map(); + const locationsById = new Map(); const ignoredFieldsBySource = new Map< - ProcessTraceSource, + ProcessObservationSource, readonly string[] >(); const eventsByKey = new Map< diff --git a/src/domain/process/processTraceSpecification.test.ts b/src/domain/process/processTraceSpecification.test.ts index 89a1f62c0..2c7641332 100644 --- a/src/domain/process/processTraceSpecification.test.ts +++ b/src/domain/process/processTraceSpecification.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from "vitest"; import { processTraceSpecificationSchema, type ProcessTraceSpecification, -} from "./processTraceComparison.js"; +} from "./processTraceSpecification.js"; const ready = { sequence: 0, at_ms: 10, data: "ready" }; const worker = { diff --git a/src/domain/process/processTraceSpecification.ts b/src/domain/process/processTraceSpecification.ts index 79e78c0c1..ba3139572 100644 --- a/src/domain/process/processTraceSpecification.ts +++ b/src/domain/process/processTraceSpecification.ts @@ -12,10 +12,6 @@ import { const identifierSchema = z.string().regex(IDENTIFIER_PATTERN); -/** Process observation families admitted by a declared trace specification. */ -export const processTraceSourceSchema = processObservationSourceSchema; -export type ProcessTraceSource = ProcessObservationSource; - const cardinalitySchema = z.discriminatedUnion("kind", [ z.strictObject({ kind: z.literal("required") }), z.strictObject({ kind: z.literal("optional") }), @@ -37,7 +33,7 @@ const cardinalitySchema = z.discriminatedUnion("kind", [ const eventDeclarationSchema = z.strictObject({ id: identifierSchema, - source: processTraceSourceSchema, + source: processObservationSourceSchema, exact: jsonValueSchema, ignore_fields: z .array( diff --git a/src/domain/reconstructionVerification.functionSources.test.ts b/src/domain/reconstructionVerification.functionSources.test.ts index af3f88594..8816a5d48 100644 --- a/src/domain/reconstructionVerification.functionSources.test.ts +++ b/src/domain/reconstructionVerification.functionSources.test.ts @@ -9,16 +9,16 @@ import { type EvidenceSubjectTarget, } from "./evidence.js"; import { createEvidenceBundle, parseEvidenceBundle } from "./evidenceBundle.js"; -import { compareFunctions } from "./functionComparison.js"; import { functionDossierSchema } from "./hopperValues.js"; import { jsonObjectSchema, jsonValueSchema, type JsonValue, } from "./jsonValue.js"; -import { verifyReconstruction } from "./reconstructionVerification.js"; import { createResidualUnknown } from "./residualUnknown.js"; +import { compareFunctions } from "./functionComparison.js"; +import { verifyReconstruction } from "./reconstructionVerification.js"; const dossier = jsonValueSchema.parse( functionDossierSchema.parse({ procedure: { diff --git a/src/domain/reconstructionVerification.test.ts b/src/domain/reconstructionVerification.test.ts index 3122868fc..664438d85 100644 --- a/src/domain/reconstructionVerification.test.ts +++ b/src/domain/reconstructionVerification.test.ts @@ -2,16 +2,14 @@ import { describe, expect, it } from "vitest"; import { createEvidence, type Evidence } from "./evidence.js"; import { createEvidenceBundle } from "./evidenceBundle.js"; -import { - reconstructionVerificationResultSchema, - verifyReconstruction, -} from "./reconstructionVerification.js"; +import { reconstructionVerificationResultSchema } from "./reconstructionVerificationSchemas.js"; import type { JsonValue } from "./jsonValue.js"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./process/processCapture.fixture.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "./process/processCaptureExample.js"; import { reconstructionSpecificationSchema } from "./reconstructionVerificationSchemas.js"; import { ARTIFACT_COMPARISON_EXAMPLE } from "../contracts/artifactComparisonExample.js"; import { createResidualUnknown } from "./residualUnknown.js"; +import { verifyReconstruction } from "./reconstructionVerification.js"; const environment = { id: "fixture-linux", platform: "linux", diff --git a/src/domain/reconstructionVerification.ts b/src/domain/reconstructionVerification.ts index c010c7d40..2b4172bbd 100644 --- a/src/domain/reconstructionVerification.ts +++ b/src/domain/reconstructionVerification.ts @@ -9,7 +9,7 @@ import { uniqueSorted } from "./canonicalOrdering.js"; import { comparisonSourceEvidenceSides } from "./comparisonSourceEvidence.js"; import { parseEvidence, type Evidence } from "./evidence.js"; import { parseEvidenceBundle } from "./evidenceBundle.js"; -import { functionComparisonResultSchema } from "./functionComparison.js"; +import { functionComparisonResultSchema } from "./functionComparisonSchemas.js"; import { PROCESS_PROVIDER, isProcessEvidenceProvider, @@ -19,8 +19,8 @@ import { deriveProcessComparisonStatus, PROCESS_COMPARISON_DIMENSIONS, processCaptureComparisonSchema, - parseProcessCapture, -} from "./process/processCapture.js"; +} from "./process/processComparison.js"; +import { parseProcessCapture } from "./process/processCaptureParsing.js"; import { reconstructionClaimResultSchema, reconstructionSpecificationSchema, @@ -37,12 +37,6 @@ import { } from "./reconstructionUnknowns.js"; import type { ResidualUnknown } from "./residualUnknown.js"; -export { - reconstructionVerificationInputSchema, - reconstructionVerificationResultSchema, -} from "./reconstructionVerificationSchemas.js"; -export type { ReconstructionVerificationResult } from "./reconstructionVerificationSchemas.js"; - const providers = { behavioral: { operation: "compare_process_captures", diff --git a/src/domain/staticRuntimeCorrelation.ts b/src/domain/staticRuntimeCorrelation.ts index 91c0afa1d..ff7705d57 100644 --- a/src/domain/staticRuntimeCorrelation.ts +++ b/src/domain/staticRuntimeCorrelation.ts @@ -7,7 +7,7 @@ import { artifactComparisonResultSchema } from "./artifactComparison.js"; import { uniqueSorted } from "./canonicalOrdering.js"; import { comparisonSourceEvidenceIds } from "./comparisonSourceEvidence.js"; import { evidenceSchema, parseEvidence, type Evidence } from "./evidence.js"; -import { functionComparisonResultSchema } from "./functionComparison.js"; +import { functionComparisonResultSchema } from "./functionComparisonSchemas.js"; import { PROCESS_PROVIDER, isProcessEvidenceProvider, @@ -16,7 +16,7 @@ import type { JsonValue } from "./jsonValue.js"; import { comparisonStatusSchema, processCaptureComparisonSchema, -} from "./process/processCapture.js"; +} from "./process/processComparison.js"; import { PROCESS_COMPARISON_DIMENSIONS } from "./process/processComparison.js"; import { prefixedDigestSchema } from "./../domain/digests.js"; diff --git a/src/domain/webBundleAnalyzer.test.ts b/src/domain/webBundleAnalyzer.test.ts index 3fc0f6dc8..896359e94 100644 --- a/src/domain/webBundleAnalyzer.test.ts +++ b/src/domain/webBundleAnalyzer.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { webPageInspectionSchema } from "./browserObservation.js"; +import { webPageInspectionSchema } from "./browserObservationSchemas.js"; import { analyzeJavaScriptStaticSource } from "./javascript/javascriptStaticAnalysis.js"; import { analyzeCapturedWebBundle } from "./webBundleAnalyzer.js"; import { webBundleAnalysisSchema } from "./webBundleAnalysis.js"; diff --git a/src/domain/webBundleAnalyzer.ts b/src/domain/webBundleAnalyzer.ts index bdbff0249..ddc4dc80d 100644 --- a/src/domain/webBundleAnalyzer.ts +++ b/src/domain/webBundleAnalyzer.ts @@ -1,4 +1,4 @@ -import type { WebPageInspection } from "./browserObservation.js"; +import type { WebPageInspection } from "./browserObservationSchemas.js"; import { analyzeScript, emptyAccumulator, diff --git a/src/domain/webBundleAnalyzerInspection.ts b/src/domain/webBundleAnalyzerInspection.ts index 5c5f2b698..157345c94 100644 --- a/src/domain/webBundleAnalyzerInspection.ts +++ b/src/domain/webBundleAnalyzerInspection.ts @@ -2,7 +2,7 @@ import { parse } from "@babel/parser"; import * as t from "@babel/types"; import { sanitizeEndpointCandidate } from "./browserObservation.js"; -import type { WebPageInspection } from "./browserObservation.js"; +import type { WebPageInspection } from "./browserObservationSchemas.js"; import type { WebBundleAnalysis } from "./webBundleAnalysis.js"; import { traverseJavaScriptAst } from "./javascript/javascriptSemanticTraversal.js"; import { classifyParsedJavaScriptOpenReceivers } from "./javascript/javascriptSemanticAnalysis.js"; diff --git a/src/domain/webBundleAnalyzerResult.ts b/src/domain/webBundleAnalyzerResult.ts index ceeda7986..1e08f0f11 100644 --- a/src/domain/webBundleAnalyzerResult.ts +++ b/src/domain/webBundleAnalyzerResult.ts @@ -1,4 +1,4 @@ -import type { WebPageInspection } from "./browserObservation.js"; +import type { WebPageInspection } from "./browserObservationSchemas.js"; import { webBundleAnalysisSchema, type WebBundleAnalysis, diff --git a/src/domain/webCaptureDiff.ts b/src/domain/webCaptureDiff.ts index 23e9bd6c6..6f666f163 100644 --- a/src/domain/webCaptureDiff.ts +++ b/src/domain/webCaptureDiff.ts @@ -1,5 +1,5 @@ import { canonicalDigest } from "./comparisonSemantics.js"; -import type { WebPageInspection } from "./browserObservation.js"; +import type { WebPageInspection } from "./browserObservationSchemas.js"; import { webCaptureDiffSchema, type CompareWebCapturesInput, @@ -9,12 +9,6 @@ import { } from "./webCaptureDiffSchemas.js"; import type { WebMcpDiscovery } from "./webMcpDiscovery.js"; -export { - compareWebCapturesInputSchema, - webCaptureDiffSchema, -} from "./webCaptureDiffSchemas.js"; -export type { CompareWebCapturesInput, WebCaptureDiff }; - type Dimension = WebCaptureDimension; type Change = WebCaptureChange; diff --git a/src/domain/webCaptureDiffSchemas.ts b/src/domain/webCaptureDiffSchemas.ts index 6323385ae..b60827cb3 100644 --- a/src/domain/webCaptureDiffSchemas.ts +++ b/src/domain/webCaptureDiffSchemas.ts @@ -1,7 +1,7 @@ import { z } from "zod"; import { emptyArraySchema } from "./emptyArraySchema.js"; -import { webPageInspectionSchema } from "./browserObservation.js"; +import { webPageInspectionSchema } from "./browserObservationSchemas.js"; import { webMcpDiscoverySchema } from "./webMcpDiscovery.js"; /** One normalized passive page snapshot accepted by capture comparison. */ diff --git a/src/domain/webEventListeners.ts b/src/domain/webEventListeners.ts index 2c8b92888..111c043d8 100644 --- a/src/domain/webEventListeners.ts +++ b/src/domain/webEventListeners.ts @@ -1,11 +1,11 @@ import { z } from "zod"; import { - webRuntimeBrowserSchema, webRuntimeLocationSchema, webRuntimeScopeSchema, webRuntimeSourceSchema, webRuntimeTargetSchema, } from "./webRuntime.js"; +import { browserVersionSchema } from "./browserObservationSchemas.js"; /** Inspect listeners registered directly on the first main-document CSS match. */ export const inspectWebEventListenersInputSchema = webRuntimeScopeSchema.extend( @@ -19,7 +19,7 @@ export type InspectWebEventListenersInput = z.infer< /** A listener declaration and its source location do not establish that it ran. */ export const webEventListenersSchema = z.object({ - browser: webRuntimeBrowserSchema, + browser: browserVersionSchema, target: webRuntimeTargetSchema, inspected_at: z.iso.datetime(), selected_node: z.object({ diff --git a/src/domain/webExecution.ts b/src/domain/webExecution.ts index b271ec178..b1344e390 100644 --- a/src/domain/webExecution.ts +++ b/src/domain/webExecution.ts @@ -1,12 +1,12 @@ import { z } from "zod"; import { jsonObjectSchema } from "./jsonValue.js"; import { - webRuntimeBrowserSchema, webRuntimeLocationSchema, webRuntimeScopeSchema, webRuntimeSourceSchema, webRuntimeTargetSchema, } from "./webRuntime.js"; +import { browserVersionSchema } from "./browserObservationSchemas.js"; /** Explicit instrumentation request for one finite, externally driven execution window. */ export const observeWebExecutionInputSchema = webRuntimeScopeSchema.extend({ @@ -30,7 +30,7 @@ const functionSchema = z.object({ /** Precise V8 ranges retain their nested structure and counts without summing them. */ export const webExecutionSchema = z.object({ - browser: webRuntimeBrowserSchema, + browser: browserVersionSchema, target: webRuntimeTargetSchema, window: z.object({ armed_at: z.iso.datetime(), diff --git a/src/domain/webRuntime.ts b/src/domain/webRuntime.ts index c73173121..289d52325 100644 --- a/src/domain/webRuntime.ts +++ b/src/domain/webRuntime.ts @@ -86,9 +86,6 @@ export const webRuntimeTargetSchema = z.object({ loader_id: z.string().nullable(), }); -/** Producer product identity is observed separately from the unknown host platform. */ -export const webRuntimeBrowserSchema = browserVersionSchema; - /** Complete runtime evidence has explicit byte budgets rather than silent item truncation. */ export const WEB_RUNTIME_LIMITS = { protocolBytes: 64 * 1024 * 1024, diff --git a/src/dotnet/ManagedArtifactInspector.ts b/src/dotnet/ManagedArtifactInspector.ts index 27f18af90..cae5e7e68 100644 --- a/src/dotnet/ManagedArtifactInspector.ts +++ b/src/dotnet/ManagedArtifactInspector.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { managedArtifactInspectionSchema, type ManagedArtifactInspection, diff --git a/src/dotnet/ManagedMemberInspector.ts b/src/dotnet/ManagedMemberInspector.ts index 5ca390614..dd124b270 100644 --- a/src/dotnet/ManagedMemberInspector.ts +++ b/src/dotnet/ManagedMemberInspector.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { managedMemberInspectionSchema, type ManagedMemberInspection, diff --git a/src/dotnet/ManagedNativeBoundaryHelpers.ts b/src/dotnet/ManagedNativeBoundaryHelpers.ts index 7f0bf5481..26db5ea52 100644 --- a/src/dotnet/ManagedNativeBoundaryHelpers.ts +++ b/src/dotnet/ManagedNativeBoundaryHelpers.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { managedNativeBoundaryInspectionSchema, type ManagedNativeBoundaryInspection, diff --git a/src/dotnet/ManagedNativeBoundaryInspector.ts b/src/dotnet/ManagedNativeBoundaryInspector.ts index e6ddc15fc..17a4e9906 100644 --- a/src/dotnet/ManagedNativeBoundaryInspector.ts +++ b/src/dotnet/ManagedNativeBoundaryInspector.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { managedNativeBoundaryInspectionSchema, type ManagedNativeBoundaryInspection, diff --git a/src/dotnet/ManagedPe.fixture.ts b/src/dotnet/ManagedPe.fixture.ts index 05d035ab6..b7056fd4e 100644 --- a/src/dotnet/ManagedPe.fixture.ts +++ b/src/dotnet/ManagedPe.fixture.ts @@ -1,6 +1,6 @@ import { createHash } from "node:crypto"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; interface ManagedPeFixtureOptions { readonly cliFlags?: number; diff --git a/src/dotnet/ManagedStaticProvider.ts b/src/dotnet/ManagedStaticProvider.ts index d3b2706a1..60c75b8f9 100644 --- a/src/dotnet/ManagedStaticProvider.ts +++ b/src/dotnet/ManagedStaticProvider.ts @@ -17,13 +17,11 @@ import { } from "./ManagedStaticProviderMetadata.js"; import { MANAGED_TOOL_CONTRACTS, - managedArtifactInputSchema, - managedMemberInputSchema, - managedNativeBoundaryInputSchema, + managedTargetInputSchema, type ManagedToolName, } from "../contracts/managed/managedToolContracts.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { AnalysisCancelledError, AnalysisCapabilityUnavailableError, @@ -189,15 +187,13 @@ const inspectManagedOperation = ( | ManagedArtifactInspection | ManagedMemberInspection | ManagedNativeBoundaryInspection => { + managedTargetInputSchema.parse(parameters); if (operation === "inspect_managed_artifact") { - managedArtifactInputSchema.parse(parameters); return inspectManagedArtifactBytes(bytes, target); } if (operation === "inspect_managed_native_boundaries") { - managedNativeBoundaryInputSchema.parse(parameters); return inspectManagedNativeBoundariesBytes(bytes, target); } - managedMemberInputSchema.parse(parameters); return inspectManagedMembersBytes(bytes, target); }; diff --git a/src/evaluation/AgentEvaluationFixtures.ts b/src/evaluation/AgentEvaluationFixtures.ts index 1c62c47a8..b7ef17efe 100644 --- a/src/evaluation/AgentEvaluationFixtures.ts +++ b/src/evaluation/AgentEvaluationFixtures.ts @@ -6,7 +6,7 @@ import { createPackage } from "@electron/asar"; import type { JsonValue } from "../domain/jsonValue.js"; import { javascriptApplicationAnalysisResultSchema } from "../domain/javascript/javascriptApplicationAnalysis.js"; -import type { ApplicationNode } from "../domain/javascript/javascriptApplicationGraph.js"; +import type { ApplicationNode } from "../domain/javascript/javascriptApplicationGraphSchemas.js"; import { javaScriptExportShapeComparisonResultSchema } from "../domain/javascript/javascriptExportShapeComparisonSchemas.js"; import type { FixtureClaimExpectation } from "./KnownAnswerEvaluation.js"; diff --git a/src/ghidra/GhidraAnalysisProfile.ts b/src/ghidra/GhidraAnalysisProfile.ts index 3c52d9de4..1af7469fa 100644 --- a/src/ghidra/GhidraAnalysisProfile.ts +++ b/src/ghidra/GhidraAnalysisProfile.ts @@ -3,7 +3,7 @@ import type { ProviderIdentity, } from "../application/AnalysisProvider.js"; import { createAnalysisProfile } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; import { ProviderAdapterError } from "../domain/providerAdapterError.js"; import { type AnalysisError } from "../domain/analysisErrorBase.js"; diff --git a/src/ghidra/GhidraClient.ts b/src/ghidra/GhidraClient.ts index 5442586c8..7d7231590 100644 --- a/src/ghidra/GhidraClient.ts +++ b/src/ghidra/GhidraClient.ts @@ -6,7 +6,8 @@ import { AnalysisError } from "../domain/analysisErrorBase.js"; import type { JsonValue } from "../domain/jsonValue.js"; import { ProviderCleanupError } from "../domain/providerCleanupError.js"; import { err, ok, type Result } from "../domain/result.js"; -import { silentLogger, type Logger } from "../logger.js"; +import { silentLogger } from "../logger.js"; +import type { Logger } from "pino"; import { PendingOperations } from "../process/PendingOperations.js"; import { PrivateRuntimeRoot } from "../process/PrivateRuntimeRoot.js"; import { ProviderStartupDeadline } from "../process/ProviderDeadline.js"; @@ -51,13 +52,6 @@ import { completeGhidraStartupHandshake } from "./GhidraClientStartup.js"; const SHUTDOWN_TIMEOUT_MS = 10_000; const SESSION_ROOT = tmpdir(); -export type { - GhidraClientOptions, - GhidraDiagnostic, - GhidraRequestOptions, - GhidraStartResult, -} from "./GhidraClientTypes.js"; - /** Closed Java-bridge operation union callable after the exact handshake. */ export type GhidraOperation = | GhidraInventoryOperation diff --git a/src/ghidra/GhidraClientTypes.ts b/src/ghidra/GhidraClientTypes.ts index c5ad6c041..14c87331c 100644 --- a/src/ghidra/GhidraClientTypes.ts +++ b/src/ghidra/GhidraClientTypes.ts @@ -1,4 +1,4 @@ -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { Result } from "../domain/result.js"; import type { GhidraLauncher } from "./GhidraLauncher.js"; import type { GhidraSessionError } from "./GhidraSessionError.js"; diff --git a/src/ghidra/GhidraClientWire.ts b/src/ghidra/GhidraClientWire.ts index 6366be387..77d0781a3 100644 --- a/src/ghidra/GhidraClientWire.ts +++ b/src/ghidra/GhidraClientWire.ts @@ -2,7 +2,7 @@ import type { Socket } from "node:net"; import type { JsonValue } from "../domain/jsonValue.js"; import { err, type Result } from "../domain/result.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { PendingOperations } from "../process/PendingOperations.js"; import type { GhidraRequestOptions } from "./GhidraClientTypes.js"; import type { diff --git a/src/ghidra/GhidraInstallation.test.ts b/src/ghidra/GhidraInstallation.test.ts index 793ea6658..d81447c8d 100644 --- a/src/ghidra/GhidraInstallation.test.ts +++ b/src/ghidra/GhidraInstallation.test.ts @@ -4,11 +4,13 @@ import { projectGhidraDoctorInspection } from "./GhidraDoctor.js"; import { ghidraJavaEnvironment, inspectGhidraInstallation, - SUPPORTED_GHIDRA_JAVA_MAJOR, - SUPPORTED_GHIDRA_VERSION, type GhidraInstallationHost, type GhidraJavaObservation, } from "./GhidraInstallation.js"; +import { + SUPPORTED_GHIDRA_JAVA_MAJOR, + SUPPORTED_GHIDRA_VERSION, +} from "./GhidraInstallationPolicy.js"; const INSTALL = "/opt/ghidra"; const PROPERTIES = `${INSTALL}/Ghidra/application.properties`; diff --git a/src/ghidra/GhidraInstallation.ts b/src/ghidra/GhidraInstallation.ts index ad24b42bc..c01d8d475 100644 --- a/src/ghidra/GhidraInstallation.ts +++ b/src/ghidra/GhidraInstallation.ts @@ -21,8 +21,6 @@ import { type GhidraJavaRequirement, } from "./GhidraInstallationPolicy.js"; -export { SUPPORTED_GHIDRA_JAVA_MAJOR, SUPPORTED_GHIDRA_VERSION }; - const NATIVE_PLATFORMS: Readonly< Partial< Record< diff --git a/src/ghidra/GhidraLoadImageAttest.ts b/src/ghidra/GhidraLoadImageAttest.ts index 3a8048b6f..dd7aef655 100644 --- a/src/ghidra/GhidraLoadImageAttest.ts +++ b/src/ghidra/GhidraLoadImageAttest.ts @@ -1,5 +1,5 @@ import type { AnalysisOperation } from "../application/AnalysisProvider.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; import { jsonValueSchema, type JsonValue } from "../domain/jsonValue.js"; import { diff --git a/src/ghidra/GhidraProvider.behavior.test.ts b/src/ghidra/GhidraProvider.behavior.test.ts index 21d254a56..7bbbc8c89 100644 --- a/src/ghidra/GhidraProvider.behavior.test.ts +++ b/src/ghidra/GhidraProvider.behavior.test.ts @@ -11,13 +11,11 @@ import { describe, expect, it } from "vitest"; import { fixtureDosLoadImage } from "./GhidraLoadImage.fixture.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; -import { parseConfig } from "../config.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import { parseConfig } from "../config/parseConfig.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { parseExecutableHeader } from "../domain/binaryTarget.js"; -import { - GhidraProvider, - type GhidraProviderClientFactory, -} from "./GhidraProvider.js"; +import { GhidraProvider } from "./GhidraProvider.js"; +import type { GhidraProviderClientFactory } from "./GhidraProviderClient.js"; import type { GhidraInstallationHost } from "./GhidraInstallation.js"; import { GHIDRA_SESSION_CAPABILITIES } from "./GhidraSessionValues.js"; import { err, ok } from "../domain/result.js"; diff --git a/src/ghidra/GhidraProvider.ts b/src/ghidra/GhidraProvider.ts index e40d60c85..d657a156e 100644 --- a/src/ghidra/GhidraProvider.ts +++ b/src/ghidra/GhidraProvider.ts @@ -9,19 +9,19 @@ import { type ProviderIdentity, type ProviderTargetSupport, } from "../application/AnalysisProvider.js"; -import type { AppConfig } from "../config.js"; +import type { AppConfig } from "../config/types.js"; import { createAnalysisProfile, type AnalysisProfileCommitment, } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { jsonObjectSchema, jsonValueSchema, type JsonValue, } from "../domain/jsonValue.js"; import { ok } from "../domain/result.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { GhidraClient } from "./GhidraClient.js"; import { ghidraInstallationDiagnostics, @@ -47,9 +47,6 @@ import { windowsNativeCapabilities, } from "../process/WindowsAuthority.js"; -export { GHIDRA_PROVIDER_IDENTITY, GHIDRA_OPERATIONS }; -export type { GhidraProviderClientFactory }; - const SUPPORTED_ARCHITECTURES = new Set(["x86", "x86_64", "arm", "arm64"]); /** Ghidra candidate backed by an isolated ephemeral headless import. */ diff --git a/src/ghidra/GhidraProviderClient.ts b/src/ghidra/GhidraProviderClient.ts index 2121ce641..bd4015ac1 100644 --- a/src/ghidra/GhidraProviderClient.ts +++ b/src/ghidra/GhidraProviderClient.ts @@ -7,9 +7,9 @@ import { type AnalysisClientContext, type AnalysisOperation, } from "../application/AnalysisProvider.js"; -import type { AppConfig } from "../config.js"; +import type { AppConfig } from "../config/types.js"; import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { AnalysisCancelledError, AnalysisArtifactChangedError, @@ -22,7 +22,7 @@ import { import { type AnalysisError } from "../domain/analysisErrorBase.js"; import { ProviderAdapterError } from "../domain/providerAdapterError.js"; import { err, ok, type Result } from "../domain/result.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { GhidraClient } from "./GhidraClient.js"; import type { GhidraClientOptions } from "./GhidraClientTypes.js"; import { diff --git a/src/ghidra/GhidraSnapshotCache.test.ts b/src/ghidra/GhidraSnapshotCache.test.ts index c9bd65c81..19f903ea4 100644 --- a/src/ghidra/GhidraSnapshotCache.test.ts +++ b/src/ghidra/GhidraSnapshotCache.test.ts @@ -1,8 +1,8 @@ import { describe, expect, it } from "vitest"; import { createTestBinarySession } from "../../tests/fixtures/binarySession.js"; -import { parseConfig } from "../config.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import { parseConfig } from "../config/parseConfig.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { functionDossierSchema } from "../domain/hopperValues.js"; import { ghidraFunctionDossier } from "../domain/ghidraValues.fixture.js"; import { err, ok } from "../domain/result.js"; diff --git a/src/ghidra/extensions/GhidraExtensions.test.ts b/src/ghidra/extensions/GhidraExtensions.test.ts index 98ea117b8..72bd6cf3d 100644 --- a/src/ghidra/extensions/GhidraExtensions.test.ts +++ b/src/ghidra/extensions/GhidraExtensions.test.ts @@ -6,9 +6,9 @@ import { mkdtemp, open, readFile, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, describe, expect, it } from "vitest"; -import { parseConfig } from "../../config.js"; +import { parseConfig } from "../../config/parseConfig.js"; import { projectAnalysisError } from "../../domain/analysisErrorProjection.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { ghidraExtensionSchema, resolveGhidraExtensions, diff --git a/src/ghidra/extensions/GhidraExtensions.ts b/src/ghidra/extensions/GhidraExtensions.ts index 3ca328638..11740a75f 100644 --- a/src/ghidra/extensions/GhidraExtensions.ts +++ b/src/ghidra/extensions/GhidraExtensions.ts @@ -3,8 +3,8 @@ import { constants } from "node:fs"; import { open, realpath, writeFile, mkdir } from "node:fs/promises"; import { isAbsolute, join } from "node:path"; import { z } from "zod"; -import type { AppConfig } from "../../config.js"; -import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { AppConfig } from "../../config/types.js"; +import type { BinaryTarget } from "../../domain/binaryTargetTypes.js"; import { AnalysisCancelledError, AnalysisCapabilityUnavailableError, diff --git a/src/hopper/HopperAnalysisProfile.ts b/src/hopper/HopperAnalysisProfile.ts index 4b6bcefba..74fc29a68 100644 --- a/src/hopper/HopperAnalysisProfile.ts +++ b/src/hopper/HopperAnalysisProfile.ts @@ -6,10 +6,8 @@ import type { ProviderIdentity, } from "../application/AnalysisProvider.js"; import { createAnalysisProfile } from "../domain/analysisProfile.js"; -import type { - BinaryArchitecture, - BinaryTarget, -} from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; +import type { BinaryArchitecture } from "../domain/binaryTargetTypes.js"; import { AnalysisCancelledError, AnalysisCapabilityUnavailableError, diff --git a/src/hopper/HopperCleanup.ts b/src/hopper/HopperCleanup.ts index 2bb1f3bdf..d3c79dc26 100644 --- a/src/hopper/HopperCleanup.ts +++ b/src/hopper/HopperCleanup.ts @@ -8,7 +8,7 @@ import { HopperProcessError } from "../domain/hopperErrors.js"; import type { JsonValue } from "../domain/jsonValue.js"; import { ProviderCleanupError } from "../domain/providerCleanupError.js"; import { err, ok, type Result } from "../domain/result.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { PrivateRuntimeRoot } from "../process/PrivateRuntimeRoot.js"; import type { ProcessCleanupResult } from "../process/ProcessOwnership.js"; import type { ProviderProcessSupervisor } from "../process/ProviderProcess.js"; diff --git a/src/hopper/HopperClient.ts b/src/hopper/HopperClient.ts index 6fc552aba..345076969 100644 --- a/src/hopper/HopperClient.ts +++ b/src/hopper/HopperClient.ts @@ -31,7 +31,8 @@ import { import { err, ok, type Result } from "../domain/result.js"; import type { JsonValue } from "../domain/jsonValue.js"; import type { ProgressReporter } from "../application/ProgressReporter.js"; -import { silentLogger, type Logger } from "../logger.js"; +import { silentLogger } from "../logger.js"; +import type { Logger } from "pino"; import { PrivateRuntimeRoot } from "../process/PrivateRuntimeRoot.js"; import { ProviderStartupDeadline } from "../process/ProviderDeadline.js"; import { ProviderRunLineage } from "../process/ProviderRunLineage.js"; @@ -63,8 +64,6 @@ import { responseResult, } from "./protocol.js"; -export type { HopperServerInfo } from "./HopperSessionValues.js"; - const SHUTDOWN_TIMEOUT_MS = 30_000; const SESSION_ROOT = process.platform === "darwin" ? "/tmp" : tmpdir(); diff --git a/src/hopper/HopperFileOffset.ts b/src/hopper/HopperFileOffset.ts index 3856dbccd..dc1a8121f 100644 --- a/src/hopper/HopperFileOffset.ts +++ b/src/hopper/HopperFileOffset.ts @@ -12,7 +12,7 @@ import { AnalysisOutputError, } from "../domain/analysisErrorCore.js"; import { BinaryTargetError } from "../domain/configurationErrors.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import type { JsonValue } from "../domain/jsonValue.js"; import type { FileOffsetPartialObservation } from "../domain/native/fileOffsetPartialObservation.js"; import { diff --git a/src/hopper/HopperMachOImage.ts b/src/hopper/HopperMachOImage.ts index 1ba69861f..b7e06df43 100644 --- a/src/hopper/HopperMachOImage.ts +++ b/src/hopper/HopperMachOImage.ts @@ -2,7 +2,7 @@ import { createHash } from "node:crypto"; import { open, type FileHandle } from "node:fs/promises"; import { z } from "zod"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { BinaryTargetError } from "../domain/configurationErrors.js"; import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; import { diff --git a/src/hopper/HopperProvider.test.ts b/src/hopper/HopperProvider.test.ts index c42a7254a..3265b26c5 100644 --- a/src/hopper/HopperProvider.test.ts +++ b/src/hopper/HopperProvider.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { parseConfig } from "../config.js"; +import { parseConfig } from "../config/parseConfig.js"; import { silentLogger } from "../logger.js"; import { HopperProvider } from "./HopperProvider.js"; diff --git a/src/hopper/HopperProvider.ts b/src/hopper/HopperProvider.ts index 4b3281295..5b1da0ba9 100644 --- a/src/hopper/HopperProvider.ts +++ b/src/hopper/HopperProvider.ts @@ -14,9 +14,9 @@ import type { ProviderTargetSupport, } from "../application/AnalysisProvider.js"; import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { AppConfig } from "../config.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import type { Logger } from "../logger.js"; +import type { AppConfig } from "../config/types.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; +import type { Logger } from "pino"; import { AnalysisCapabilityUnavailableError } from "../domain/analysisErrorCore.js"; import { err, ok } from "../domain/result.js"; import { HopperApplicationLauncher } from "./BridgeLauncher.js"; @@ -34,13 +34,6 @@ import { HOPPER_PROVIDER_IDENTITY, } from "./HopperProviderCapabilities.js"; -export { - HOPPER_PROVIDER_IDENTITY, - HOPPER_OPERATIONS, -} from "./HopperProviderCapabilities.js"; - -const IDENTITY = HOPPER_PROVIDER_IDENTITY; - /** Concrete analysis provider backed by REA's private Hopper bridge. */ export class HopperProvider implements AnalysisProviderCandidate { private readonly environment: Readonly; @@ -61,7 +54,7 @@ export class HopperProvider implements AnalysisProviderCandidate { } identity(): ProviderIdentity { - return IDENTITY; + return HOPPER_PROVIDER_IDENTITY; } capabilities(): readonly CapabilityDescriptor[] { @@ -143,7 +136,7 @@ export class HopperProvider implements AnalysisProviderCandidate { return resolveHopperAnalysisProfile(target, { launcherPath: this.config.hopperLauncherPath, loaderArgsOverride: this.config.hopperLoaderArgs, - provider: IDENTITY, + provider: HOPPER_PROVIDER_IDENTITY, ...(options?.signal === undefined ? {} : { signal: options.signal }), }); } @@ -159,7 +152,7 @@ export class HopperProvider implements AnalysisProviderCandidate { Promise.resolve( err( new AnalysisCapabilityUnavailableError( - IDENTITY.id, + HOPPER_PROVIDER_IDENTITY.id, operation, `Hopper cannot open ${target.kind} targets directly. Inventory or extract the artifact first.`, ), @@ -178,7 +171,7 @@ export class HopperProvider implements AnalysisProviderCandidate { Promise.resolve( err( new AnalysisCapabilityUnavailableError( - IDENTITY.id, + HOPPER_PROVIDER_IDENTITY.id, operation, "Hopper prepared-image profile is malformed; resolve the analysis profile again.", ), @@ -202,7 +195,7 @@ export class HopperProvider implements AnalysisProviderCandidate { execute: () => Promise.resolve(err(derivedLoaderArgs.error)), close: () => Promise.resolve(ok(null)), }; - const executionProvider = profile?.provider ?? IDENTITY; + const executionProvider = profile?.provider ?? HOPPER_PROVIDER_IDENTITY; const client = new HopperClient({ launcher: new HopperApplicationLauncher({ environment: this.environment, diff --git a/src/hopper/HopperProviderDiscovery.test.ts b/src/hopper/HopperProviderDiscovery.test.ts index ce5221a84..65088c5c0 100644 --- a/src/hopper/HopperProviderDiscovery.test.ts +++ b/src/hopper/HopperProviderDiscovery.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from "vitest"; -import { parseConfig } from "../config.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import { parseConfig } from "../config/parseConfig.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { silentLogger } from "../logger.js"; import { HopperProvider } from "./HopperProvider.js"; diff --git a/src/ida/IdaProvider.ts b/src/ida/IdaProvider.ts index 289f398e6..8213c7991 100644 --- a/src/ida/IdaProvider.ts +++ b/src/ida/IdaProvider.ts @@ -1,7 +1,7 @@ import { snapshotEnvironment } from "../process/snapshotEnvironment.js"; import { createAnalysisProfile } from "../domain/analysisProfile.js"; import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { err, ok } from "../domain/result.js"; import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; import type { @@ -11,7 +11,7 @@ import type { ProviderAvailability, ProviderTargetSupport, } from "../application/AnalysisProvider.js"; -import type { AppConfig } from "../config.js"; +import type { AppConfig } from "../config/types.js"; import type { ConfigurationError } from "../domain/configurationErrors.js"; import { createHash } from "node:crypto"; import canonicalize from "canonicalize"; @@ -32,8 +32,6 @@ import { import { IdaSessionClient } from "./IdaSessionClient.js"; import { privateRuntimeRootCapability } from "../process/PrivateRuntimeRoot.js"; -export { IDA_PROVIDER_IDENTITY } from "./IdaProviderCapabilities.js"; - /** Bring-your-own IDA MCP candidate; discovery performs no provider startup. */ export class IdaProvider implements AnalysisProviderCandidate { #registration: Result | undefined; diff --git a/src/ida/IdaSessionClient.ts b/src/ida/IdaSessionClient.ts index 8fabf8f26..5fac9e18e 100644 --- a/src/ida/IdaSessionClient.ts +++ b/src/ida/IdaSessionClient.ts @@ -14,7 +14,7 @@ import { } from "../domain/analysisErrorCore.js"; import { AnalysisError } from "../domain/analysisErrorBase.js"; import { ProviderAdapterError } from "../domain/providerAdapterError.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; import { jsonValueSchema, type JsonValue } from "../domain/jsonValue.js"; import { err, ok, type Result } from "../domain/result.js"; diff --git a/src/ida/IdaWorkspace.ts b/src/ida/IdaWorkspace.ts index 4df7ce75c..38e0c5d46 100644 --- a/src/ida/IdaWorkspace.ts +++ b/src/ida/IdaWorkspace.ts @@ -3,7 +3,7 @@ import { createReadStream, constants } from "node:fs"; import { copyFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { basename, join, normalize } from "node:path"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { AnalysisProtocolError } from "../domain/analysisErrorCore.js"; import { PrivateRuntimeRoot } from "../process/PrivateRuntimeRoot.js"; diff --git a/src/ida/IdaWorkspaceOwnership.test.ts b/src/ida/IdaWorkspaceOwnership.test.ts index 4e38f99fb..b416b7ab0 100644 --- a/src/ida/IdaWorkspaceOwnership.test.ts +++ b/src/ida/IdaWorkspaceOwnership.test.ts @@ -4,7 +4,7 @@ import { createIdaTarget, RecordingIdaMcp, } from "../../tests/fixtures/idaMcp.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { IdaSessionClient } from "./IdaSessionClient.js"; const roots: string[] = []; diff --git a/src/inspector/V8InspectorProvider.ts b/src/inspector/V8InspectorProvider.ts index 9c3736711..d7a56b4c9 100644 --- a/src/inspector/V8InspectorProvider.ts +++ b/src/inspector/V8InspectorProvider.ts @@ -40,8 +40,6 @@ import { type V8InspectorTarget, } from "./V8InspectorEndpoint.js"; -/** Public identity committed by passive V8 Inspector observations. */ -export { V8_INSPECTOR_PROVIDER_IDENTITY } from "./providerIdentity.js"; import { V8_INSPECTOR_PROVIDER_IDENTITY } from "./providerIdentity.js"; /** Maximum decoded CDP message accepted while observing one Inspector target. */ diff --git a/src/javascript/sourceMaps/SourceMapDecoder.ts b/src/javascript/sourceMaps/SourceMapDecoder.ts index 1b5f7eaf3..7c49d5fa9 100644 --- a/src/javascript/sourceMaps/SourceMapDecoder.ts +++ b/src/javascript/sourceMaps/SourceMapDecoder.ts @@ -21,7 +21,6 @@ import { runSourceMapCommand, type SourceMapDecoderDependencies, } from "./SourceMapCommand.js"; -export type { SourceMapDecoderDependencies } from "./SourceMapCommand.js"; const OPERATION = "trace_web_source_location"; /** Integrate the pinned upstream codec through an independently bounded owned process. */ diff --git a/src/logger.ts b/src/logger.ts index 323c880aa..e43c7f97c 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -24,5 +24,3 @@ export const createLogger = (mode: "mcp" | "cli", level: LogLevel): Logger => /** Logger used by embedders that have not opted into process output. */ export const silentLogger = pino({ level: "silent" }); - -export type { Logger }; diff --git a/src/main.ts b/src/main.ts index 2028409ca..40c241b47 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,7 +6,7 @@ import { realpathSync } from "node:fs"; import { serveStdio } from "@modelcontextprotocol/server/stdio"; -import { parseConfig } from "./config.js"; +import { parseConfig } from "./config/parseConfig.js"; import { createBinarySession } from "./composition/binary.js"; import { createLogger } from "./logger.js"; import { projectAnalysisError } from "./domain/analysisErrorProjection.js"; diff --git a/src/main/shutdown.ts b/src/main/shutdown.ts index c17aab0b3..fac2571ab 100644 --- a/src/main/shutdown.ts +++ b/src/main/shutdown.ts @@ -1,7 +1,7 @@ import type { StdioServerHandle } from "@modelcontextprotocol/server/stdio"; import type { BinarySession } from "../application/binary/BinarySession.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { AnalysisError } from "../domain/analysisErrorBase.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import type { JsonValue } from "../domain/jsonValue.js"; diff --git a/src/main/startup.ts b/src/main/startup.ts index 20e1a1014..d71ff19cc 100644 --- a/src/main/startup.ts +++ b/src/main/startup.ts @@ -1,6 +1,6 @@ import type { BinarySession } from "../application/binary/BinarySession.js"; -import type { AppConfig } from "../config.js"; -import type { Logger } from "../logger.js"; +import type { AppConfig } from "../config/types.js"; +import type { Logger } from "pino"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; export const openInitialTarget = async ( diff --git a/src/main/transport.ts b/src/main/transport.ts index 47393b87a..c4a921b91 100644 --- a/src/main/transport.ts +++ b/src/main/transport.ts @@ -3,7 +3,7 @@ import type { AndroidAnalysisPort } from "../application/android/AndroidAnalysis import type { StdioServerHandle } from "@modelcontextprotocol/server/stdio"; import type { BinarySession } from "../application/binary/BinarySession.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { createServer } from "../server/createServer.js"; import type { ToolResultDelivery } from "../server/toolResult.js"; import type { RuntimeDependencies } from "./types.js"; diff --git a/src/native/AppleDispatchMetadata.ts b/src/native/AppleDispatchMetadata.ts index 530dd9eb8..1ff266807 100644 --- a/src/native/AppleDispatchMetadata.ts +++ b/src/native/AppleDispatchMetadata.ts @@ -6,7 +6,7 @@ import { nativeDispatchMetadataResultSchema, type ObjcSwiftMetadata, } from "../domain/native/objcSwiftMetadata.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; import { EvidenceIntegrityError } from "../domain/evidenceErrors.js"; import { pushDispatchCoverage } from "./AppleDispatchCoverage.js"; diff --git a/src/native/NativeCallObservation.ts b/src/native/NativeCallObservation.ts index 03e1e8d83..b9ad41620 100644 --- a/src/native/NativeCallObservation.ts +++ b/src/native/NativeCallObservation.ts @@ -7,7 +7,7 @@ import { AnalysisInputError, } from "../domain/analysisErrorCore.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { EvidenceIntegrityError } from "../domain/evidenceErrors.js"; import { ProviderAdapterError } from "../domain/providerAdapterError.js"; import type { JsonValue } from "../domain/jsonValue.js"; diff --git a/src/native/NativeMacOSProvider.ts b/src/native/NativeMacOSProvider.ts index 2bfd174af..c73cd7605 100644 --- a/src/native/NativeMacOSProvider.ts +++ b/src/native/NativeMacOSProvider.ts @@ -24,7 +24,7 @@ import { NATIVE_TOOL_CONTRACTS, type NativeToolName, } from "../contracts/native/nativeToolContracts.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { toolContract } from "../contracts/toolContracts.js"; import { analysisInputErrorFromIssues } from "../domain/inputIssueProjection.js"; import type { EvidenceLocation } from "../domain/evidence.js"; diff --git a/src/native/NativeMachoInspection.ts b/src/native/NativeMachoInspection.ts index eb1c6c8de..417b43fef 100644 --- a/src/native/NativeMachoInspection.ts +++ b/src/native/NativeMachoInspection.ts @@ -1,4 +1,4 @@ -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import type { EvidenceLocation } from "../domain/evidence.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; import { diff --git a/src/native/NativeUiObservation.test.ts b/src/native/NativeUiObservation.test.ts index 275f9c0f9..4d1093826 100644 --- a/src/native/NativeUiObservation.test.ts +++ b/src/native/NativeUiObservation.test.ts @@ -2,7 +2,7 @@ import { createHash } from "node:crypto"; import { describe, expect, it } from "vitest"; import { observeNativeUi } from "./NativeUiObservation.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; const target: BinaryTarget = { path: "/fixture/App", diff --git a/src/native/NativeUiObservation.ts b/src/native/NativeUiObservation.ts index c353ba44f..73d301042 100644 --- a/src/native/NativeUiObservation.ts +++ b/src/native/NativeUiObservation.ts @@ -1,6 +1,6 @@ import { fileURLToPath } from "node:url"; import { z } from "zod"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { nativeUiObservationInputSchema, nativeUiScenarioInputSchema, diff --git a/src/native/SignatureTargetBinding.ts b/src/native/SignatureTargetBinding.ts index e0f52e1f9..ac94a5f06 100644 --- a/src/native/SignatureTargetBinding.ts +++ b/src/native/SignatureTargetBinding.ts @@ -3,7 +3,7 @@ import { constants, type BigIntStats } from "node:fs"; import { lstat, mkdtemp, open, rm, type FileHandle } from "node:fs/promises"; import { tmpdir } from "node:os"; import { basename, join } from "node:path"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { AnalysisError } from "../domain/analysisErrorBase.js"; import { AnalysisAccessDeniedError, diff --git a/src/process/capture/FilesystemCoverage.test.ts b/src/process/capture/FilesystemCoverage.test.ts index 790e82f19..ee8de9fac 100644 --- a/src/process/capture/FilesystemCoverage.test.ts +++ b/src/process/capture/FilesystemCoverage.test.ts @@ -1,7 +1,7 @@ import { mkdir, readFile, rm, writeFile } from "node:fs/promises"; import { join } from "node:path"; import { expect, it } from "vitest"; -import { parseProcessScenario } from "../../domain/process/processCapture.js"; +import { parseProcessScenario } from "../../domain/process/processScenario.js"; import { createTestTempDirectory } from "../../../tests/fixtures/temporaryDirectory.js"; import { snapshotRoots } from "./FilesystemSnapshot.js"; import { classifyFilesystemEffects } from "./ProcessFilesystemEffects.js"; diff --git a/src/process/capture/FilesystemSnapshot.ts b/src/process/capture/FilesystemSnapshot.ts index d8fc9bf5e..f5b775bb0 100644 --- a/src/process/capture/FilesystemSnapshot.ts +++ b/src/process/capture/FilesystemSnapshot.ts @@ -2,13 +2,11 @@ import { createHash } from "node:crypto"; import { constants as fsConstants } from "node:fs"; import { lstat, open, readdir, readlink } from "node:fs/promises"; import { dirname, join, relative, resolve } from "node:path"; -import type { - FileState, - ProcessScenario, -} from "../../domain/process/processCapture.js"; +import type { ProcessScenario } from "../../domain/process/processScenario.js"; import type { Stats } from "node:fs"; import type { FilesystemCoverage } from "../../domain/process/processCaptureCoverage.js"; +import type { FileState } from "../../domain/process/processCapture.js"; export interface SnapshotResult { readonly files: readonly FileState[]; readonly truncated: boolean; diff --git a/src/process/capture/ProcessCaptureEnvironment.ts b/src/process/capture/ProcessCaptureEnvironment.ts index af4d592f6..92892d47b 100644 --- a/src/process/capture/ProcessCaptureEnvironment.ts +++ b/src/process/capture/ProcessCaptureEnvironment.ts @@ -1,4 +1,4 @@ -import type { ProcessScenario } from "../../domain/process/processCapture.js"; +import type { ProcessScenario } from "../../domain/process/processScenario.js"; interface ProcessCaptureEnvironmentOptions { readonly scenario: ProcessScenario; diff --git a/src/process/capture/ProcessCaptureJournal.ts b/src/process/capture/ProcessCaptureJournal.ts index 027d193c4..b8a0874d9 100644 --- a/src/process/capture/ProcessCaptureJournal.ts +++ b/src/process/capture/ProcessCaptureJournal.ts @@ -1,11 +1,6 @@ import type { IPty } from "@lydell/node-pty"; -import type { - InteractionEvent, - ProcessCaptureEventJournalEntry, - ProcessScenario, - RecordProcessCaptureEvent, -} from "../../domain/process/processCapture.js"; +import type { ProcessScenario } from "../../domain/process/processScenario.js"; import { normalizeProcessElapsedTime, normalizeProcessText, @@ -13,6 +8,11 @@ import { import type { TerminalRenderer } from "./TerminalRenderer.js"; import { scheduleProcessDelay, type ProcessTimer } from "./ProcessTimer.js"; +import type { + InteractionEvent, + ProcessCaptureEventJournalEntry, + RecordProcessCaptureEvent, +} from "../../domain/process/processCapture.js"; /** Mutable observation-order ledger whose writer is shared by capture producers. */ export interface ProcessCaptureJournal { readonly entries: readonly ProcessCaptureEventJournalEntry[]; diff --git a/src/process/capture/ProcessCaptureLifecycle.ts b/src/process/capture/ProcessCaptureLifecycle.ts index ca183d3c1..14da87231 100644 --- a/src/process/capture/ProcessCaptureLifecycle.ts +++ b/src/process/capture/ProcessCaptureLifecycle.ts @@ -6,30 +6,14 @@ import { join } from "node:path"; import { setTimeout as delay } from "node:timers/promises"; import type { IPty } from "@lydell/node-pty"; -import type { - FilesystemCheckpoint, - InteractionEvent, - ProcessCapture, - UnverifiedProcessCapture, - ProcessSample, - ProcessSettlement, - ProcessCaptureCleanupReport, - PartialProcessCaptureObservation, - IncompleteProcessCaptureObservations, - PartialFilesystemSnapshot, - PartialProcessObservationField, - ProcessScenario, - ProcessCaptureEventJournalEntry, - RecordProcessCaptureEvent, - TerminalFrame, -} from "../../domain/process/processCapture.js"; +import type { ProcessCapture } from "../../domain/process/processCaptureParsing.js"; +import type { ProcessScenario } from "../../domain/process/processScenario.js"; import { digestProcessCommitment, - parseProcessCapture, - partialProcessCaptureObservationSchema, processComparisonContract, processScenarioCommitment, -} from "../../domain/process/processCapture.js"; +} from "../../domain/process/processScenario.js"; +import { parseProcessCapture } from "../../domain/process/processCaptureParsing.js"; import { PRODUCT_IDENTITY } from "../../identity.js"; import type { SnapshotResult } from "./FilesystemSnapshot.js"; import { snapshotRoots } from "./FilesystemSnapshot.js"; @@ -66,6 +50,22 @@ import { } from "../../domain/process/processCaptureCoverage.js"; import { scheduleProcessInterval, type ProcessTimer } from "./ProcessTimer.js"; +import type { + FilesystemCheckpoint, + InteractionEvent, + UnverifiedProcessCapture, + ProcessSample, + ProcessSettlement, + ProcessCaptureCleanupReport, + PartialProcessCaptureObservation, + IncompleteProcessCaptureObservations, + PartialFilesystemSnapshot, + PartialProcessObservationField, + ProcessCaptureEventJournalEntry, + RecordProcessCaptureEvent, + TerminalFrame, +} from "../../domain/process/processCapture.js"; +import { partialProcessCaptureObservationSchema } from "../../domain/process/processCapture.js"; interface TerminalExitOptions { readonly terminal: IPty; readonly scenario: ProcessScenario; diff --git a/src/process/capture/ProcessCaptureObservation.test.ts b/src/process/capture/ProcessCaptureObservation.test.ts index f73efb2bf..7a1ccd008 100644 --- a/src/process/capture/ProcessCaptureObservation.test.ts +++ b/src/process/capture/ProcessCaptureObservation.test.ts @@ -4,10 +4,8 @@ import { snapshotRoots } from "./FilesystemSnapshot.js"; import { buildCaptureResult } from "./ProcessCaptureLifecycle.js"; import { isInitializedPtyRoot, readLinuxChildren } from "./ProcessSampling.js"; import { TerminalRenderer } from "./TerminalRenderer.js"; -import { - parseProcessScenario, - type ProcessCapture, -} from "../../domain/process/processCapture.js"; +import { parseProcessScenario } from "../../domain/process/processScenario.js"; +import { type ProcessCapture } from "../../domain/process/processCaptureParsing.js"; import { emptyProcessCapture as emptyCapture } from "../../domain/process/processCapture.fixture.js"; const base = { diff --git a/src/process/capture/ProcessHarness.test.ts b/src/process/capture/ProcessHarness.test.ts index bb74c82c6..c96964f67 100644 --- a/src/process/capture/ProcessHarness.test.ts +++ b/src/process/capture/ProcessHarness.test.ts @@ -1,21 +1,15 @@ import { expect, it, vi } from "vitest"; import { processScenarioSchema } from "../../domain/process/processScenario.js"; import { AnalysisCapabilityUnavailableError } from "../../domain/analysisErrorCore.js"; -import { - captureProcessScenario, - ProcessCaptureError, -} from "./ProcessHarness.js"; +import { captureProcessScenario } from "./ProcessHarness.js"; import { settleProcessCaptureJournal } from "./ProcessCaptureLifecycle.js"; -import { - parseProcessCapture, - partialProcessCaptureObservationSchema, - processCaptureSchema, -} from "../../domain/process/processCapture.js"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../domain/process/processCapture.fixture.js"; +import { parseProcessCapture } from "../../domain/process/processCaptureParsing.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../domain/process/processCaptureExample.js"; import { projectAnalysisError } from "../../domain/analysisErrorProjection.js"; import { emptyProcessCapture } from "../../domain/process/processCapture.fixture.js"; import { analysisErrorProjectionSchema } from "../../contracts/errorSchemas.js"; import { + ProcessCaptureError, normalizeCaptureFailure, processCaptureCancelled, } from "./ProcessCaptureError.js"; @@ -27,6 +21,10 @@ import { } from "./ProcessCaptureLifecycle.js"; import { DarwinProcessOwnershipInspectionError } from "../DarwinProcessRunTokenReader.js"; +import { + partialProcessCaptureObservationSchema, + processCaptureSchema, +} from "../../domain/process/processCapture.js"; it("retains cancellation and cleanup facts when ownership baseline inspection aborts", async () => { const controller = new AbortController(); const scenario = processScenarioSchema.parse({ diff --git a/src/process/capture/ProcessHarness.ts b/src/process/capture/ProcessHarness.ts index f573b32c7..9ffc882b6 100644 --- a/src/process/capture/ProcessHarness.ts +++ b/src/process/capture/ProcessHarness.ts @@ -1,16 +1,8 @@ import type { IPty } from "@lydell/node-pty"; import type { TerminalRetention } from "../../domain/process/processCaptureCoverage.js"; -import type { - InteractionEvent, - ProcessCapture, - UnverifiedProcessCapture, - ProcessCaptureEventJournalEntry, - ProcessSample, - ProcessScenario, - RecordProcessCaptureEvent, - TerminalFrame, -} from "../../domain/process/processCapture.js"; -import { parseProcessCapture } from "../../domain/process/processCapture.js"; +import type { ProcessCapture } from "../../domain/process/processCaptureParsing.js"; +import type { ProcessScenario } from "../../domain/process/processScenario.js"; +import { parseProcessCapture } from "../../domain/process/processCaptureParsing.js"; import { err, ok, type Result } from "../../domain/result.js"; import { AnalysisCapabilityUnavailableError } from "../../domain/analysisErrorCore.js"; import { type AnalysisError } from "../../domain/analysisErrorBase.js"; @@ -20,7 +12,14 @@ import { normalizeCaptureFailure, processCaptureCancelled, } from "./ProcessCaptureError.js"; -export { ProcessCaptureError } from "./ProcessCaptureError.js"; +import type { + InteractionEvent, + UnverifiedProcessCapture, + ProcessCaptureEventJournalEntry, + ProcessSample, + RecordProcessCaptureEvent, + TerminalFrame, +} from "../../domain/process/processCapture.js"; import { startProcessSampler } from "./ProcessSampling.js"; import { snapshotRoots } from "./FilesystemSnapshot.js"; import { TerminalRenderer } from "./TerminalRenderer.js"; @@ -57,7 +56,6 @@ import { makeProcessCaptureEnvironment } from "./ProcessCaptureEnvironment.js"; import { classifyFilesystemEffects } from "./ProcessFilesystemEffects.js"; import { processCaptureOwnershipUnavailableReason } from "./ProcessCaptureCapability.js"; import type { ProcessOwnershipBaseline } from "../ProcessOwnership.js"; -export { probeProcessCaptureCapability } from "./ProcessCaptureCapability.js"; interface StartedCaptureRuntime { readonly renderer: TerminalRenderer; diff --git a/src/process/capture/ProcessNormalization.test.ts b/src/process/capture/ProcessNormalization.test.ts index 8598a91f1..9631c66f3 100644 --- a/src/process/capture/ProcessNormalization.test.ts +++ b/src/process/capture/ProcessNormalization.test.ts @@ -4,7 +4,7 @@ import { normalizeProcessSamples, normalizeProcessText, } from "./ProcessNormalization.js"; -import { parseProcessScenario } from "../../domain/process/processCapture.js"; +import { parseProcessScenario } from "../../domain/process/processScenario.js"; const rootPid = 41_010; const samples = Object.freeze( diff --git a/src/process/capture/ProcessNormalization.ts b/src/process/capture/ProcessNormalization.ts index 675ac9529..24209012c 100644 --- a/src/process/capture/ProcessNormalization.ts +++ b/src/process/capture/ProcessNormalization.ts @@ -1,10 +1,8 @@ import { isIP } from "node:net"; -import type { - ProcessSample, - ProcessScenario, -} from "../../domain/process/processCapture.js"; +import type { ProcessScenario } from "../../domain/process/processScenario.js"; +import type { ProcessSample } from "../../domain/process/processCapture.js"; /** Bucket one elapsed process-capture timestamp under scenario normalization. */ export const normalizeProcessElapsedTime = ( elapsedMs: number, diff --git a/src/process/capture/ProcessScenarioRuntimeValidation.test.ts b/src/process/capture/ProcessScenarioRuntimeValidation.test.ts index 5e70a226c..9a3bb923f 100644 --- a/src/process/capture/ProcessScenarioRuntimeValidation.test.ts +++ b/src/process/capture/ProcessScenarioRuntimeValidation.test.ts @@ -7,7 +7,7 @@ import { resolveExecutable, resolveProcessScenarioRuntimePaths, } from "./ProcessScenarioRuntimeValidation.js"; -import { parseProcessScenario } from "../../domain/process/processCapture.js"; +import { parseProcessScenario } from "../../domain/process/processScenario.js"; it("preserves the caller-selected executable symlink for process invocation", async () => { const root = await mkdtemp(join(tmpdir(), "rea-process-executable-alias-")); diff --git a/src/process/capture/ProcessScenarioRuntimeValidation.ts b/src/process/capture/ProcessScenarioRuntimeValidation.ts index e71e16d1e..23444b133 100644 --- a/src/process/capture/ProcessScenarioRuntimeValidation.ts +++ b/src/process/capture/ProcessScenarioRuntimeValidation.ts @@ -2,7 +2,7 @@ import { access, realpath, stat } from "node:fs/promises"; import { constants as fsConstants } from "node:fs"; import { delimiter, isAbsolute, join, resolve } from "node:path"; -import type { ProcessScenario } from "../../domain/process/processCapture.js"; +import type { ProcessScenario } from "../../domain/process/processScenario.js"; import { ProcessCaptureError, processCaptureCancelled, diff --git a/src/reference/ReferenceSourceReader.ts b/src/reference/ReferenceSourceReader.ts index a904560b2..2821dd3d4 100644 --- a/src/reference/ReferenceSourceReader.ts +++ b/src/reference/ReferenceSourceReader.ts @@ -13,12 +13,6 @@ import { prepareRoot, } from "./ReferenceSourceReaderValidate.js"; -export type { - ReferenceSourceEntry, - ReferenceSourceRead, - ReferenceSourceReaderOptions, -} from "./ReferenceSourceReaderTypes.js"; - const PATH_RACE_LIMITATION = "Path identity is revalidated around operations; Node lacks portable descriptor-relative openat traversal, so a syscall-boundary pathname race remains."; diff --git a/src/server/createServer.ts b/src/server/createServer.ts index 47fa57b85..a56e51c07 100644 --- a/src/server/createServer.ts +++ b/src/server/createServer.ts @@ -18,7 +18,7 @@ import { parseMcpResponseBudget } from "../config/mcpResponseBudget.js"; import { isAbsolute } from "node:path"; import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import type { BrowserObservationPort } from "../application/BrowserObservationPort.js"; import type { BrowserScenarioCapturePort } from "../application/BrowserScenarioCapturePort.js"; import type { ElectronActiveObservationPort } from "../application/javascript/ElectronActiveObservationPort.js"; @@ -26,7 +26,8 @@ import type { ElectronObservationPort } from "../application/javascript/Electron import type { JavaScriptRuntimeObservationPort } from "../application/javascript/JavaScriptRuntimeObservationPort.js"; import type { OptionalProviderLoadFailures } from "../application/OptionalObservationProviders.js"; import { PRODUCT_IDENTITY } from "../identity.js"; -import { silentLogger, type Logger } from "../logger.js"; +import { silentLogger } from "../logger.js"; +import type { Logger } from "pino"; import { registerApplicationTools } from "./registerApplicationTools.js"; import { registerArtifactTools } from "./registerArtifactTools.js"; import { registerBrowserScenarioTool } from "./registerBrowserScenarioTool.js"; diff --git a/src/server/promptCompletion.ts b/src/server/promptCompletion.ts index bc490445c..bc37e8fda 100644 --- a/src/server/promptCompletion.ts +++ b/src/server/promptCompletion.ts @@ -3,11 +3,11 @@ import { z } from "zod"; import { uniqueSorted } from "../domain/canonicalOrdering.js"; import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import type { PromptCompletionKind } from "../contracts/promptContracts.js"; import { artifactInventoryResultSchema } from "../domain/artifactGraph.js"; import { artifactInspectionResultSchema } from "../domain/artifactInspection.js"; -import { parseProcessCapture } from "../domain/process/processCapture.js"; +import { parseProcessCapture } from "../domain/process/processCaptureParsing.js"; const documentListSchema = z.array(z.string().min(1)); const providerStatusSchema = z.object({ diff --git a/src/server/recordDerivedEvidence.ts b/src/server/recordDerivedEvidence.ts index 81b4645cb..c0575ff64 100644 --- a/src/server/recordDerivedEvidence.ts +++ b/src/server/recordDerivedEvidence.ts @@ -1,4 +1,4 @@ -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; import type { Evidence } from "../domain/evidence.js"; import type { RecordUnknownInput } from "../domain/residualUnknown.js"; diff --git a/src/server/registerAnalysisViewTool.ts b/src/server/registerAnalysisViewTool.ts index 2d144c236..216c9e9ec 100644 --- a/src/server/registerAnalysisViewTool.ts +++ b/src/server/registerAnalysisViewTool.ts @@ -4,7 +4,7 @@ import { inspectAnalysisView } from "../application/analysisView/AnalysisViewSer import type { EvidenceLookup } from "../application/EvidenceInputResolver.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerAndroidTools.ts b/src/server/registerAndroidTools.ts index 59c8a8898..190767396 100644 --- a/src/server/registerAndroidTools.ts +++ b/src/server/registerAndroidTools.ts @@ -5,7 +5,7 @@ import { AndroidAnalysisService } from "../application/android/AndroidAnalysisSe import { toolContract } from "../contracts/toolContracts.js"; import type { ToolContract } from "../contracts/toolContractTypes.js"; import type { AndroidOperation } from "../domain/android/androidAnalysis.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerApplicationTools.ts b/src/server/registerApplicationTools.ts index da427795f..61118d5d3 100644 --- a/src/server/registerApplicationTools.ts +++ b/src/server/registerApplicationTools.ts @@ -10,8 +10,6 @@ import { registerReconstructionObligationLedgerTool } from "./registerApplicatio import { registerProjectMobileApplicationGraphTools } from "./registerApplicationTools/projectMobileApplicationGraph.js"; import type { ApplicationToolRegistration } from "./registerApplicationTools/types.js"; -export type { ApplicationToolRegistration }; - /** Register provider-neutral JavaScript application graph workflows. */ export const registerApplicationTools = ( server: EvidenceMcpServer, diff --git a/src/server/registerApplicationTools/types.ts b/src/server/registerApplicationTools/types.ts index 3ddb44e25..82c5c6ad4 100644 --- a/src/server/registerApplicationTools/types.ts +++ b/src/server/registerApplicationTools/types.ts @@ -3,7 +3,7 @@ import type { EvidenceReader, EvidenceUnknownWriter, } from "../../application/investigation/InvestigationRecordPort.js"; -import type { Logger } from "../../logger.js"; +import type { Logger } from "pino"; /** Shared services for registering JavaScript application graph workflows. */ export interface ApplicationToolRegistration { diff --git a/src/server/registerArtifactComparisonTool.ts b/src/server/registerArtifactComparisonTool.ts index 2d6ac0dfb..7352430ca 100644 --- a/src/server/registerArtifactComparisonTool.ts +++ b/src/server/registerArtifactComparisonTool.ts @@ -1,6 +1,6 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import { toolContract } from "../contracts/toolContracts.js"; import { compareArtifacts } from "../domain/artifactComparison.js"; import { createEvidence, parseEvidence } from "../domain/evidence.js"; @@ -8,7 +8,7 @@ import { jsonValueSchema } from "../domain/jsonValue.js"; import type { RecordUnknownInput } from "../domain/residualUnknown.js"; import { recordDerivedEvidence } from "./recordDerivedEvidence.js"; import { runDerivedOperation } from "./runDerivedOperation.js"; -import { ARTIFACT_COMPARISON_PROVIDER } from "./sessionToolPolicies.js"; +import { ARTIFACT_COMPARISON_PROVIDER } from "../application/InvestigationProviders.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; /** Register Evidence-backed deterministic artifact comparison. */ diff --git a/src/server/registerArtifactTools.ts b/src/server/registerArtifactTools.ts index 3d94aa690..898584567 100644 --- a/src/server/registerArtifactTools.ts +++ b/src/server/registerArtifactTools.ts @@ -3,8 +3,8 @@ import type { EvidenceWriter } from "../application/investigation/InvestigationR import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; import { ARTIFACT_TOOL_CONTRACTS } from "../contracts/artifactToolContracts.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import type { Logger } from "../logger.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; +import type { Logger } from "pino"; import { registerEvidenceTools } from "./registerEvidenceTools.js"; import { artifactInspectionResultSchema } from "../domain/artifactInspection.js"; diff --git a/src/server/registerBinaryDiagnosticsTools.ts b/src/server/registerBinaryDiagnosticsTools.ts index 94204f13d..b7b6ad880 100644 --- a/src/server/registerBinaryDiagnosticsTools.ts +++ b/src/server/registerBinaryDiagnosticsTools.ts @@ -3,7 +3,7 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; import type { BinaryLayoutService } from "../application/binaryDiagnostics/BinaryLayoutService.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerBrowserScenarioTool.ts b/src/server/registerBrowserScenarioTool.ts index 0fd4fa621..6e710cd5d 100644 --- a/src/server/registerBrowserScenarioTool.ts +++ b/src/server/registerBrowserScenarioTool.ts @@ -10,7 +10,7 @@ import type { BrowserScenarioCapturePort } from "../application/BrowserScenarioC import { captureBrowserScenario } from "../application/BrowserScenarioCaptureService.js"; import { toolContract } from "../contracts/toolContracts.js"; import { browserScenarioSchema } from "../domain/browserScenario.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerBrowserTools.ts b/src/server/registerBrowserTools.ts index 2e96120d9..80cbaa4e3 100644 --- a/src/server/registerBrowserTools.ts +++ b/src/server/registerBrowserTools.ts @@ -20,13 +20,14 @@ import { observeWebSession, } from "../application/BrowserObservationService.js"; import type { ProgressReporter } from "../application/ProgressReporter.js"; -import { toolContract, type ToolContract } from "../contracts/toolContracts.js"; +import { toolContract } from "../contracts/toolContracts.js"; +import type { ToolContract } from "../contracts/toolContractTypes.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; import type { Evidence } from "../domain/evidence.js"; import { analyzeWebBundleInputSchema } from "../domain/webBundleAnalysis.js"; import { inspectWebPageInputSchema } from "../domain/browserObservation.js"; import type { Result } from "../domain/result.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { mcpProgressReporter } from "./mcpProgress.js"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; @@ -199,14 +200,10 @@ const runBrowserTool = async ( }), ); if (!result.ok) return options.delivery.toCallToolResult(result, contract); - return evidenceResult(options, contract, result.value); -}; - -const evidenceResult = ( - options: BrowserToolRegistration & { readonly delivery: ToolResultDelivery }, - contract: ToolContract, - evidence: Evidence, -) => { - const recorded = options.recordEvidence?.(evidence); - return options.delivery.toEvidenceToolResult(evidence, contract, recorded); + const recorded = options.recordEvidence?.(result.value); + return options.delivery.toEvidenceToolResult( + result.value, + contract, + recorded, + ); }; diff --git a/src/server/registerBundleComparisonTool.ts b/src/server/registerBundleComparisonTool.ts index c45bcc3e9..c5b03e612 100644 --- a/src/server/registerBundleComparisonTool.ts +++ b/src/server/registerBundleComparisonTool.ts @@ -1,13 +1,13 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import { readEvidenceBundle } from "../application/EvidenceBundleFiles.js"; import { toolContract } from "../contracts/toolContracts.js"; import { compareBundles } from "../domain/bundleComparison.js"; import { createEvidence } from "../domain/evidence.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; import { runDerivedOperation } from "./runDerivedOperation.js"; -import { BUNDLE_COMPARISON_PROVIDER } from "./sessionToolPolicies.js"; +import { BUNDLE_COMPARISON_PROVIDER } from "../application/InvestigationProviders.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; /** Register canonical Evidence bundle comparison. */ diff --git a/src/server/registerElectronTools.ts b/src/server/registerElectronTools.ts index e4d39c916..8ea2a4b1e 100644 --- a/src/server/registerElectronTools.ts +++ b/src/server/registerElectronTools.ts @@ -18,12 +18,13 @@ import { import { analyzeJavaScriptApplicationValidated } from "../application/javascript/JavaScriptApplicationService.js"; import { reconcileJavaScriptRuntimeEvidenceValidated } from "../application/javascript/JavaScriptRuntimeReconciliationService.js"; import type { ProgressReporter } from "../application/ProgressReporter.js"; -import { toolContract, type ToolContract } from "../contracts/toolContracts.js"; +import { toolContract } from "../contracts/toolContracts.js"; +import type { ToolContract } from "../contracts/toolContractTypes.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; import type { Evidence } from "../domain/evidence.js"; import type { Result } from "../domain/result.js"; import { inspectElectronPageInputSchema } from "../domain/javascript/electronObservation.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { mcpProgressReporter } from "./mcpProgress.js"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; @@ -159,14 +160,10 @@ const runElectronTool = async ( }), ); if (!result.ok) return options.delivery.toCallToolResult(result, contract); - return evidenceResult(options, contract, result.value); -}; - -const evidenceResult = ( - options: ElectronToolRegistration & { readonly delivery: ToolResultDelivery }, - contract: ToolContract, - evidence: Evidence, -) => { - const recorded = options.recordEvidence?.(evidence); - return options.delivery.toEvidenceToolResult(evidence, contract, recorded); + const recorded = options.recordEvidence?.(result.value); + return options.delivery.toEvidenceToolResult( + result.value, + contract, + recorded, + ); }; diff --git a/src/server/registerEnhancedTools.ts b/src/server/registerEnhancedTools.ts index ba1dffa09..e972353d6 100644 --- a/src/server/registerEnhancedTools.ts +++ b/src/server/registerEnhancedTools.ts @@ -11,20 +11,19 @@ import type { import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; -import { - EnhancedTools, - type ValidatedEnhancedCall, -} from "../application/EnhancedTools.js"; +import { EnhancedTools } from "../application/EnhancedTools.js"; +import type { ValidatedEnhancedCall } from "../application/EnhancedToolTypes.js"; import { createWorkflowEvidence, workflowSnapshotRecord, recordWorkflowUnknowns, } from "../application/WorkflowEvidence.js"; -import { toolContract, type ToolContract } from "../contracts/toolContracts.js"; +import { toolContract } from "../contracts/toolContracts.js"; +import type { ToolContract } from "../contracts/toolContractTypes.js"; import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import type { JsonValue } from "../domain/jsonValue.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { mcpProgressReporter } from "./mcpProgress.js"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerEvidenceTools.ts b/src/server/registerEvidenceTools.ts index 0bda3a66f..d03111745 100644 --- a/src/server/registerEvidenceTools.ts +++ b/src/server/registerEvidenceTools.ts @@ -5,11 +5,11 @@ import type { AnalysisOperation, AnalysisOperationPort, } from "../application/AnalysisProvider.js"; -import type { ToolContract } from "../contracts/toolContracts.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { ToolContract } from "../contracts/toolContractTypes.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { createEvidence, type Evidence } from "../domain/evidence.js"; import { jsonObjectSchema } from "../domain/jsonValue.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { mcpProgressReporter } from "./mcpProgress.js"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerEvmTools.ts b/src/server/registerEvmTools.ts index 50194cae5..5ae594375 100644 --- a/src/server/registerEvmTools.ts +++ b/src/server/registerEvmTools.ts @@ -3,7 +3,7 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; import type { EvmInterfaceService } from "../application/evm/EvmInterfaceService.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerFirmwareTools.ts b/src/server/registerFirmwareTools.ts index f0294e8c4..5484d9681 100644 --- a/src/server/registerFirmwareTools.ts +++ b/src/server/registerFirmwareTools.ts @@ -5,7 +5,7 @@ import type { FirmwareAnalysisService } from "../application/firmware/FirmwareAn import { toolContract } from "../contracts/toolContracts.js"; import type { ToolContract } from "../contracts/toolContractTypes.js"; import type { FirmwareOperation } from "../domain/firmware/firmwareAnalysis.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerFunctionComparisonTool.ts b/src/server/registerFunctionComparisonTool.ts index a1ff27707..12f5a3357 100644 --- a/src/server/registerFunctionComparisonTool.ts +++ b/src/server/registerFunctionComparisonTool.ts @@ -1,6 +1,6 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import { toolContract } from "../contracts/toolContracts.js"; import { createEvidence, @@ -9,15 +9,15 @@ import { } from "../domain/evidence.js"; import { EvidenceIntegrityError } from "../domain/evidenceErrors.js"; import { err } from "../domain/result.js"; -import { compareFunctions } from "../domain/functionComparison.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; import type { RecordUnknownInput } from "../domain/residualUnknown.js"; import { recordDerivedEvidence } from "./recordDerivedEvidence.js"; import { recordSessionEvidenceSources } from "./sessionEvidence.js"; import { runDerivedOperation } from "./runDerivedOperation.js"; -import { FUNCTION_COMPARISON_PROVIDER } from "./sessionToolPolicies.js"; +import { FUNCTION_COMPARISON_PROVIDER } from "../application/InvestigationProviders.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; +import { compareFunctions } from "../domain/functionComparison.js"; /** Register explicit Evidence-backed function comparison. */ export const registerFunctionComparisonTool = ( server: EvidenceMcpServer, diff --git a/src/server/registerInvestigationTools.ts b/src/server/registerInvestigationTools.ts index 5e0629c4a..d5a2a4706 100644 --- a/src/server/registerInvestigationTools.ts +++ b/src/server/registerInvestigationTools.ts @@ -1,12 +1,11 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import { toolContract } from "../contracts/toolContracts.js"; import { buildCallPath } from "../domain/callPath.js"; import { findChangedBehavior } from "../domain/changedBehavior.js"; import { createEvidence } from "../domain/evidence.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; -import { verifyReconstruction } from "../domain/reconstructionVerification.js"; import { correlateStaticAndRuntime } from "../domain/staticRuntimeCorrelation.js"; import { comparisonClosure, @@ -21,9 +20,10 @@ import { CHANGED_BEHAVIOR_PROVIDER, RECONSTRUCTION_PROVIDER, STATIC_RUNTIME_PROVIDER, -} from "./sessionToolPolicies.js"; +} from "../application/InvestigationProviders.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; +import { verifyReconstruction } from "../domain/reconstructionVerification.js"; /** Register Evidence-composed differential investigation workflows. */ export const registerInvestigationTools = ( server: EvidenceMcpServer, diff --git a/src/server/registerInvestigationTools/helpers.ts b/src/server/registerInvestigationTools/helpers.ts index 705cc3211..ed5ab8334 100644 --- a/src/server/registerInvestigationTools/helpers.ts +++ b/src/server/registerInvestigationTools/helpers.ts @@ -1,4 +1,4 @@ -import type { BinarySessionPort } from "../../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../../application/binary/BinarySessionPort.js"; import type { Evidence } from "../../domain/evidence.js"; import { EvidenceIntegrityError } from "../../domain/evidenceErrors.js"; import { type AnalysisError } from "../../domain/analysisErrorBase.js"; diff --git a/src/server/registerJavaScriptRecoveryTool.ts b/src/server/registerJavaScriptRecoveryTool.ts index eeac19df8..ce742a2ba 100644 --- a/src/server/registerJavaScriptRecoveryTool.ts +++ b/src/server/registerJavaScriptRecoveryTool.ts @@ -3,7 +3,7 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; import type { JavaScriptRecoveryService } from "../application/javascript/JavaScriptRecoveryService.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerJavaScriptRuntimeObservationTools.ts b/src/server/registerJavaScriptRuntimeObservationTools.ts index 2bfb07dfa..dce046f7e 100644 --- a/src/server/registerJavaScriptRuntimeObservationTools.ts +++ b/src/server/registerJavaScriptRuntimeObservationTools.ts @@ -13,12 +13,13 @@ import { listJavaScriptRuntimeTargets, observeJavaScriptRuntime, } from "../application/javascript/JavaScriptRuntimeObservationService.js"; -import { toolContract, type ToolContract } from "../contracts/toolContracts.js"; +import { toolContract } from "../contracts/toolContracts.js"; +import type { ToolContract } from "../contracts/toolContractTypes.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; import type { Evidence } from "../domain/evidence.js"; import type { Result } from "../domain/result.js"; import { observeJavaScriptRuntimeInputSchema } from "../domain/javascript/javascriptRuntimeObservation.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerManagedTools.ts b/src/server/registerManagedTools.ts index 2841c4f6c..74b7cac35 100644 --- a/src/server/registerManagedTools.ts +++ b/src/server/registerManagedTools.ts @@ -2,12 +2,12 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import { MANAGED_TOOL_CONTRACTS } from "../contracts/managed/managedToolContracts.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import { AnalysisInputError } from "../domain/analysisErrorCore.js"; import { err } from "../domain/result.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { registerEvidenceTools } from "./registerEvidenceTools.js"; import { runManagedProviderExecution } from "../composition/directAnalysis.js"; import { isManagedToolName } from "../contracts/managed/managedToolContracts.js"; diff --git a/src/server/registerManagedWorkflowTools.ts b/src/server/registerManagedWorkflowTools.ts index 0a5334c0b..096ab9927 100644 --- a/src/server/registerManagedWorkflowTools.ts +++ b/src/server/registerManagedWorkflowTools.ts @@ -6,8 +6,6 @@ import { registerImportManagedReconstruction } from "./registerManagedWorkflowTo import { registerProjectManagedApplicationGraph } from "./registerManagedWorkflowTools/projectManagedApplicationGraph.js"; import type { ManagedWorkflowToolRegistration } from "./registerManagedWorkflowTools/types.js"; -export type { ManagedWorkflowToolRegistration }; - /** Register provider-neutral managed-code workflows. */ export const registerManagedWorkflowTools = ( server: EvidenceMcpServer, diff --git a/src/server/registerManagedWorkflowTools/types.ts b/src/server/registerManagedWorkflowTools/types.ts index 987037aab..ab864c475 100644 --- a/src/server/registerManagedWorkflowTools/types.ts +++ b/src/server/registerManagedWorkflowTools/types.ts @@ -2,8 +2,8 @@ import type { EvidenceWriter, EvidenceUnknownWriter, } from "../../application/investigation/InvestigationRecordPort.js"; -import type { BinarySessionPort } from "../../application/binary/BinarySession.js"; -import type { Logger } from "../../logger.js"; +import type { BinarySessionPort } from "../../application/binary/BinarySessionPort.js"; +import type { Logger } from "pino"; /** Shared services for registering managed-code workflow tools. */ export interface ManagedWorkflowToolRegistration { diff --git a/src/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.ts b/src/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.ts index 8510b83d7..7496de428 100644 --- a/src/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.ts +++ b/src/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.ts @@ -2,7 +2,7 @@ import type { EvidenceMcpServer } from "../EvidenceMcpServer.js"; import { recordSessionEvidenceSources } from "../sessionEvidence.js"; import { verifyManagedNativeBoundariesEvidence } from "../../application/managed/ManagedNativeVerificationService.js"; -import { managedNativeVerificationResultSchema } from "../../domain/managed/managedNativeVerification.js"; +import { managedNativeVerificationResultSchema } from "../../domain/managed/managedNativeVerificationSchemas.js"; import { logToolExecution } from "../toolLogging.js"; import { toolRegistrationOptions } from "../toolRegistrationOptions.js"; import { managedWorkflowContract } from "./contract.js"; diff --git a/src/server/registerNativeTools.ts b/src/server/registerNativeTools.ts index 46b539fb2..35d5029a0 100644 --- a/src/server/registerNativeTools.ts +++ b/src/server/registerNativeTools.ts @@ -3,8 +3,8 @@ import type { EvidenceWriter } from "../application/investigation/InvestigationR import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; import { NATIVE_TOOL_CONTRACTS } from "../contracts/native/nativeToolContracts.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import type { Logger } from "../logger.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; +import type { Logger } from "pino"; import { registerEvidenceTools } from "./registerEvidenceTools.js"; /** Register provider-neutral static inspection operations. */ diff --git a/src/server/registerOfficialTools.ts b/src/server/registerOfficialTools.ts index 5b441ea5b..14c18337d 100644 --- a/src/server/registerOfficialTools.ts +++ b/src/server/registerOfficialTools.ts @@ -8,12 +8,12 @@ import type { } from "../application/AnalysisProvider.js"; import type { ProgressReporter } from "../application/ProgressReporter.js"; import { OFFICIAL_TOOL_CONTRACTS } from "../contracts/officialToolContracts.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../domain/binaryTargetTypes.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; import { createEvidence } from "../domain/evidence.js"; import { jsonObjectSchema, type JsonValue } from "../domain/jsonValue.js"; import type { Result } from "../domain/result.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { mcpProgressReporter } from "./mcpProgress.js"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerProcessComparisonTool.ts b/src/server/registerProcessComparisonTool.ts index c9d95960b..2769d27ce 100644 --- a/src/server/registerProcessComparisonTool.ts +++ b/src/server/registerProcessComparisonTool.ts @@ -1,6 +1,6 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import { toolContract } from "../contracts/toolContracts.js"; import { AnalysisInputError } from "../domain/analysisErrorCore.js"; import { type AnalysisError } from "../domain/analysisErrorBase.js"; @@ -13,17 +13,17 @@ import { type EvidenceLocation, } from "../domain/evidence.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; +import { compareProcessCaptures } from "../domain/process/processComparison.js"; import { - compareProcessCaptures, parseProcessCapture, type ProcessCapture, -} from "../domain/process/processCapture.js"; +} from "../domain/process/processCaptureParsing.js"; import type { RecordUnknownInput } from "../domain/residualUnknown.js"; import { err, ok, type Result } from "../domain/result.js"; import { recordDerivedEvidence } from "./recordDerivedEvidence.js"; import { recordSessionEvidenceSources } from "./sessionEvidence.js"; import { runDerivedOperation } from "./runDerivedOperation.js"; -import { PROCESS_PROVIDER } from "./sessionToolPolicies.js"; +import { PROCESS_PROVIDER } from "../domain/process/processEvidenceProvider.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; const PROCESS_CAPTURE_EVIDENCE = { diff --git a/src/server/registerPrompts.ts b/src/server/registerPrompts.ts index 1718e61ac..e0bd00768 100644 --- a/src/server/registerPrompts.ts +++ b/src/server/registerPrompts.ts @@ -6,7 +6,7 @@ import { import { z } from "zod"; import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import { PROMPT_CONTRACTS, renderGuidedPrompt, diff --git a/src/server/registerRecordedCrashTools.ts b/src/server/registerRecordedCrashTools.ts index d3e885125..4775afa68 100644 --- a/src/server/registerRecordedCrashTools.ts +++ b/src/server/registerRecordedCrashTools.ts @@ -3,7 +3,7 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; import type { RecordedCrashService } from "../application/binaryDiagnostics/RecordedCrashService.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerSessionRecordTools.ts b/src/server/registerSessionRecordTools.ts index 845beaeb2..4c1f79304 100644 --- a/src/server/registerSessionRecordTools.ts +++ b/src/server/registerSessionRecordTools.ts @@ -1,6 +1,6 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import { readEvidenceBundle, writeEvidenceBundle, @@ -138,13 +138,10 @@ const registerListUnknownsTool = ({ listContract.name, toolRegistrationOptions(listContract), (input) => { - const filters = input; const all = session.listUnknowns({ - ...(filters.status === undefined ? {} : { status: filters.status }), - ...(filters.severity === undefined - ? {} - : { severity: filters.severity }), - ...(filters.domain === undefined ? {} : { domain: filters.domain }), + ...(input.status === undefined ? {} : { status: input.status }), + ...(input.severity === undefined ? {} : { severity: input.severity }), + ...(input.domain === undefined ? {} : { domain: input.domain }), }); return server.delivery.toCallToolResult( ok({ diff --git a/src/server/registerSessionStatusTool.ts b/src/server/registerSessionStatusTool.ts index 5f6d70d17..5bc5eb4c4 100644 --- a/src/server/registerSessionStatusTool.ts +++ b/src/server/registerSessionStatusTool.ts @@ -1,6 +1,6 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import type { ProviderAvailability } from "../application/AnalysisProvider.js"; import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; import { buildCapabilityInventory } from "../application/CapabilityInventory.js"; diff --git a/src/server/registerSessionTools.ts b/src/server/registerSessionTools.ts index cd635758a..9472c55ac 100644 --- a/src/server/registerSessionTools.ts +++ b/src/server/registerSessionTools.ts @@ -5,7 +5,7 @@ import { inspectAddressContext, } from "../application/AnalysisContextQueries.js"; import { readAnalysisSnapshot } from "../application/binary/AnalysisSnapshotFiles.js"; -import type { BinarySessionPort } from "../application/binary/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySessionPort.js"; import { createProcessCaptureEvidence } from "../application/process/ProcessEvidence.js"; import { captureProcessScenario } from "../process/capture/ProcessHarness.js"; import { toolContract } from "../contracts/toolContracts.js"; @@ -13,9 +13,9 @@ import type { AnalysisSnapshot } from "../domain/analysisSnapshot.js"; import { UnknownRegistryError } from "../domain/unknownRegistryError.js"; import { type AnalysisError } from "../domain/analysisErrorBase.js"; import type { Evidence } from "../domain/evidence.js"; -import type { ProcessCapture } from "../domain/process/processCapture.js"; +import type { ProcessCapture } from "../domain/process/processCaptureParsing.js"; import { ok, type Result } from "../domain/result.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import type { ProviderAvailability } from "../application/AnalysisProvider.js"; import { mcpProgressReporter } from "./mcpProgress.js"; import { registerArtifactComparisonTool } from "./registerArtifactComparisonTool.js"; @@ -91,7 +91,6 @@ const registerProcessTools = ({ captureContract.name, toolRegistrationOptions(captureContract), async (input, context) => { - const scenario = input; const progress = mcpProgressReporter(context); await progress.report({ phase: captureContract.name, @@ -102,7 +101,7 @@ const registerProcessTools = ({ const captured = await logToolExecution( logger, captureContract.name, - () => captureProcessScenario(scenario, context.mcpReq.signal), + () => captureProcessScenario(input, context.mcpReq.signal), ); await progress.report({ phase: captureContract.name, @@ -113,7 +112,7 @@ const registerProcessTools = ({ }); if (!captured.ok) return server.delivery.toCallToolResult(captured, captureContract); - const evidence = createProcessCaptureEvidence(scenario, captured.value); + const evidence = createProcessCaptureEvidence(input, captured.value); const recorded = session.recordEvidence(evidence); if (!recorded.ok) return server.delivery.toCallToolResult(recorded, captureContract); diff --git a/src/server/registerWebModuleTool.ts b/src/server/registerWebModuleTool.ts index 79b85e85d..5d8adcf45 100644 --- a/src/server/registerWebModuleTool.ts +++ b/src/server/registerWebModuleTool.ts @@ -3,7 +3,7 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; import type { WebModuleTraceService } from "../application/WebModuleTraceService.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerWebNetworkCaptureTool.ts b/src/server/registerWebNetworkCaptureTool.ts index 74d07c4f4..d8222961b 100644 --- a/src/server/registerWebNetworkCaptureTool.ts +++ b/src/server/registerWebNetworkCaptureTool.ts @@ -3,7 +3,7 @@ import type { StandardSchemaWithJSON } from "@modelcontextprotocol/server"; import type { WebNetworkCaptureService } from "../application/WebNetworkCaptureService.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerWebRuntimeTools.ts b/src/server/registerWebRuntimeTools.ts index 716e687cb..5179dfee7 100644 --- a/src/server/registerWebRuntimeTools.ts +++ b/src/server/registerWebRuntimeTools.ts @@ -3,7 +3,7 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; import type { WebRuntimeService } from "../application/WebRuntimeService.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { mcpProgressReporter } from "./mcpProgress.js"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerWebScriptTool.ts b/src/server/registerWebScriptTool.ts index 8f71fe501..60fffbdd8 100644 --- a/src/server/registerWebScriptTool.ts +++ b/src/server/registerWebScriptTool.ts @@ -3,7 +3,7 @@ import type { EvidenceWriter } from "../application/investigation/InvestigationR import { exportWebScriptsValidated } from "../application/WebScriptExportService.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/registerWebSourceLocationTool.ts b/src/server/registerWebSourceLocationTool.ts index 644e1d71e..19368141b 100644 --- a/src/server/registerWebSourceLocationTool.ts +++ b/src/server/registerWebSourceLocationTool.ts @@ -3,7 +3,7 @@ import type { EvidenceMcpServer } from "./EvidenceMcpServer.js"; import type { WebSourceLocationService } from "../application/WebSourceLocationService.js"; import type { EvidenceWriter } from "../application/investigation/InvestigationRecordPort.js"; import { toolContract } from "../contracts/toolContracts.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; import { logToolExecution } from "./toolLogging.js"; import { toolRegistrationOptions } from "./toolRegistrationOptions.js"; diff --git a/src/server/sessionToolPolicies.ts b/src/server/sessionToolPolicies.ts deleted file mode 100644 index b1725b097..000000000 --- a/src/server/sessionToolPolicies.ts +++ /dev/null @@ -1,10 +0,0 @@ -export { PROCESS_PROVIDER } from "../application/process/ProcessEvidence.js"; -export { - ARTIFACT_COMPARISON_PROVIDER, - BUNDLE_COMPARISON_PROVIDER, - CALL_PATH_PROVIDER, - CHANGED_BEHAVIOR_PROVIDER, - FUNCTION_COMPARISON_PROVIDER, - RECONSTRUCTION_PROVIDER, - STATIC_RUNTIME_PROVIDER, -} from "../application/InvestigationProviders.js"; diff --git a/src/server/toolLogging.ts b/src/server/toolLogging.ts index 1c3f95448..36513785c 100644 --- a/src/server/toolLogging.ts +++ b/src/server/toolLogging.ts @@ -1,5 +1,5 @@ import type { Result } from "../domain/result.js"; -import type { Logger } from "../logger.js"; +import type { Logger } from "pino"; /** Log one MCP tool's duration and status without recording caller input. */ export const logToolExecution = async ( diff --git a/src/server/toolRegistrationOptions.ts b/src/server/toolRegistrationOptions.ts index 0f0b92679..4615971d4 100644 --- a/src/server/toolRegistrationOptions.ts +++ b/src/server/toolRegistrationOptions.ts @@ -1,4 +1,4 @@ -import type { ToolContract } from "../contracts/toolContracts.js"; +import type { ToolContract } from "../contracts/toolContractTypes.js"; import { toolInputSchemaWithMetadata, toolOutputSchemaWithMetadata, diff --git a/tests/acceptance/applications/applicationWorkflowCli.test.ts b/tests/acceptance/applications/applicationWorkflowCli.test.ts index 1ec9ef932..3ea95f3af 100644 --- a/tests/acceptance/applications/applicationWorkflowCli.test.ts +++ b/tests/acceptance/applications/applicationWorkflowCli.test.ts @@ -14,6 +14,7 @@ import { JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE, SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE, } from "../../../src/contracts/javascript/javascriptApplicationWorkflowExamples.js"; +import { JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE } from "../../../src/contracts/javascript/javascriptExportShapeComparisonExample.js"; import { analyzeJavaScriptApplication } from "../../../src/application/javascript/JavaScriptApplicationService.js"; import { javascriptApplicationAnalysisResultSchema, diff --git a/tests/boundary/browser/cdpBrowserProvider.sensitive_data.test.ts b/tests/boundary/browser/cdpBrowserProvider.sensitive_data.test.ts index d47764381..0c51f200c 100644 --- a/tests/boundary/browser/cdpBrowserProvider.sensitive_data.test.ts +++ b/tests/boundary/browser/cdpBrowserProvider.sensitive_data.test.ts @@ -1,10 +1,8 @@ import { describe, expect, it } from "vitest"; import { CdpBrowserProvider } from "../../../src/browser/CdpBrowserProvider.js"; -import { - inspectWebPageInputSchema, - webPageInspectionSchema, -} from "../../../src/domain/browserObservation.js"; +import { inspectWebPageInputSchema } from "../../../src/domain/browserObservation.js"; +import { webPageInspectionSchema } from "../../../src/domain/browserObservationSchemas.js"; import { startFakeCdpBrowser, type FakeCdpBrowser, diff --git a/tests/boundary/browser/cdpJsonShapeComparison.test.ts b/tests/boundary/browser/cdpJsonShapeComparison.test.ts index 9105ed2a0..23890f682 100644 --- a/tests/boundary/browser/cdpJsonShapeComparison.test.ts +++ b/tests/boundary/browser/cdpJsonShapeComparison.test.ts @@ -4,13 +4,13 @@ import { compareWebCaptureEvidence } from "../../../src/application/BrowserObser import { CdpBrowserProvider } from "../../../src/browser/CdpBrowserProvider.js"; import { CdpCaptureEvents } from "../../../src/browser/CdpCaptureEvents.js"; import { browserCaptureComparisonInputSchema } from "../../../src/domain/browserCaptureComparison.js"; +import { inspectWebPageInputSchema } from "../../../src/domain/browserObservation.js"; import { - inspectWebPageInputSchema, webPageInspectionSchema, type WebPageInspection, -} from "../../../src/domain/browserObservation.js"; +} from "../../../src/domain/browserObservationSchemas.js"; import { parseEvidence } from "../../../src/domain/evidence.js"; -import { webCaptureDiffSchema } from "../../../src/domain/webCaptureDiff.js"; +import { webCaptureDiffSchema } from "../../../src/domain/webCaptureDiffSchemas.js"; const ORIGIN = "https://example.test"; const CAPTURE_TIME = "2026-01-01T00:00:00.000Z"; diff --git a/tests/boundary/browser/webCaptureDiff.test.ts b/tests/boundary/browser/webCaptureDiff.test.ts index 935bc7ae5..8d59a1e3d 100644 --- a/tests/boundary/browser/webCaptureDiff.test.ts +++ b/tests/boundary/browser/webCaptureDiff.test.ts @@ -2,11 +2,11 @@ import { afterEach, describe, expect, it } from "vitest"; import { CdpBrowserProvider } from "../../../src/browser/CdpBrowserProvider.js"; import { inspectWebPageInputSchema } from "../../../src/domain/browserObservation.js"; +import { compareWebCaptures } from "../../../src/domain/webCaptureDiff.js"; import { - compareWebCaptures, compareWebCapturesInputSchema, webCaptureDiffSchema, -} from "../../../src/domain/webCaptureDiff.js"; +} from "../../../src/domain/webCaptureDiffSchemas.js"; import { startFakeCdpBrowser, type FakeCdpBrowser, diff --git a/tests/boundary/cli/analysisViewCli.test.ts b/tests/boundary/cli/analysisViewCli.test.ts index 08cea192b..e6e6fb51d 100644 --- a/tests/boundary/cli/analysisViewCli.test.ts +++ b/tests/boundary/cli/analysisViewCli.test.ts @@ -3,10 +3,10 @@ import { join } from "node:path"; import { expect } from "vitest"; -import { analysisViewLayoutEvidence } from "../../fixtures/analysisView.js"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; import { cliTest } from "../../support/cli/cliFixture.js"; +import { analysisViewLayoutEvidence } from "../../fixtures/analysisView.js"; cliTest( "projects one section from a JSON file of inline layout Evidence", async ({ cli }) => { diff --git a/tests/boundary/cli/productCatalog.test.ts b/tests/boundary/cli/productCatalog.test.ts index 187b98b2e..f1fca8401 100644 --- a/tests/boundary/cli/productCatalog.test.ts +++ b/tests/boundary/cli/productCatalog.test.ts @@ -11,13 +11,13 @@ import { CLI_COMMAND_NAMES } from "../../../src/cliCommandNames.js"; import { createCli } from "../../../src/cli.js"; import { TOOL_CONTRACTS } from "../../../src/contracts/toolContracts.js"; import { - HOPPER_PROVIDER_IDENTITY, HOPPER_OPERATIONS, -} from "../../../src/hopper/HopperProvider.js"; + HOPPER_PROVIDER_IDENTITY, +} from "../../../src/hopper/HopperProviderCapabilities.js"; import { GHIDRA_PROVIDER_IDENTITY, GHIDRA_OPERATIONS, -} from "../../../src/ghidra/GhidraProvider.js"; +} from "../../../src/ghidra/GhidraProviderCapabilities.js"; import { documentationFactIssues, skillReferenceIssues, diff --git a/tests/boundary/filesystem/directAnalysisPermissions.test.ts b/tests/boundary/filesystem/directAnalysisPermissions.test.ts index cc65229f3..e3faf63c4 100644 --- a/tests/boundary/filesystem/directAnalysisPermissions.test.ts +++ b/tests/boundary/filesystem/directAnalysisPermissions.test.ts @@ -19,7 +19,7 @@ import { REA_WORKFLOW_PROVIDER, workflowAnalysisProfile, } from "../../../src/application/InvestigationProviders.js"; -import { HOPPER_PROVIDER_IDENTITY } from "../../../src/hopper/HopperProvider.js"; +import { HOPPER_PROVIDER_IDENTITY } from "../../../src/hopper/HopperProviderCapabilities.js"; import { resolveHopperAnalysisProfile } from "../../../src/hopper/HopperAnalysisProfile.js"; afterEach(async () => { diff --git a/tests/boundary/filesystem/referenceSourceImport.test.ts b/tests/boundary/filesystem/referenceSourceImport.test.ts index d9de535bf..846bbba4a 100644 --- a/tests/boundary/filesystem/referenceSourceImport.test.ts +++ b/tests/boundary/filesystem/referenceSourceImport.test.ts @@ -15,7 +15,7 @@ import { parseReferenceSourceEntries, projectReferenceSourceEntryFailure, } from "../../../src/application/ReferenceSourceImportEntries.js"; -import type { ReferenceSourceRead } from "../../../src/reference/ReferenceSourceReader.js"; +import type { ReferenceSourceRead } from "../../../src/reference/ReferenceSourceReaderTypes.js"; import { projectReferenceSourceImportError, type ReferenceSourceImportError, diff --git a/tests/boundary/inspector/javascriptRuntimeObservation.test.ts b/tests/boundary/inspector/javascriptRuntimeObservation.test.ts index 5a6b84de3..8849bc136 100644 --- a/tests/boundary/inspector/javascriptRuntimeObservation.test.ts +++ b/tests/boundary/inspector/javascriptRuntimeObservation.test.ts @@ -10,7 +10,7 @@ import { observeJavaScriptRuntime, } from "../../../src/application/javascript/JavaScriptRuntimeObservationService.js"; import { reconcileJavaScriptRuntimeEvidence } from "../../../src/application/javascript/JavaScriptRuntimeReconciliationService.js"; -import { V8_INSPECTOR_PROVIDER_IDENTITY } from "../../../src/inspector/V8InspectorProvider.js"; +import { V8_INSPECTOR_PROVIDER_IDENTITY } from "../../../src/inspector/providerIdentity.js"; import { V8InspectorProvider } from "../../../src/inspector/V8InspectorProvider.js"; import { JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE } from "../../../src/contracts/javascript/javascriptRuntimeReconciliationExample.js"; import type { diff --git a/tests/boundary/javascript/sourceMapDecoder.test.ts b/tests/boundary/javascript/sourceMapDecoder.test.ts index 6b3938b3c..cca889307 100644 --- a/tests/boundary/javascript/sourceMapDecoder.test.ts +++ b/tests/boundary/javascript/sourceMapDecoder.test.ts @@ -1,8 +1,8 @@ import { fileURLToPath } from "node:url"; -import type { SourceMapDecoderDependencies } from "../../../src/javascript/sourceMaps/SourceMapDecoder.js"; import { access } from "node:fs/promises"; import { expect, it, vi } from "vitest"; import { SourceMapDecoder } from "../../../src/javascript/sourceMaps/SourceMapDecoder.js"; +import type { SourceMapDecoderDependencies } from "../../../src/javascript/sourceMaps/SourceMapCommand.js"; import { PrivateRuntimeRoot } from "../../../src/process/PrivateRuntimeRoot.js"; import { spawnOwnedProviderProcess } from "../../../src/process/ProviderProcess.js"; import { waitForProviderProcessReady } from "../../fixtures/providerProcess.js"; diff --git a/tests/boundary/mcp/browserMcp.test.ts b/tests/boundary/mcp/browserMcp.test.ts index 379a27d93..aa3fa853f 100644 --- a/tests/boundary/mcp/browserMcp.test.ts +++ b/tests/boundary/mcp/browserMcp.test.ts @@ -6,7 +6,7 @@ import { afterEach, expect, it } from "vitest"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; import { CdpBrowserProvider } from "../../../src/browser/CdpBrowserProvider.js"; -import { webPageInspectionSchema } from "../../../src/domain/browserObservation.js"; +import { webPageInspectionSchema } from "../../../src/domain/browserObservationSchemas.js"; import { JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE } from "../../../src/contracts/javascript/javascriptRuntimeReconciliationExample.js"; import { TOOL_CONTRACTS } from "../../../src/contracts/toolContracts.js"; import { createServer } from "../../../src/server/createServer.js"; diff --git a/tests/boundary/mcp/ghidraMcpHarness.ts b/tests/boundary/mcp/ghidraMcpHarness.ts index 283152039..473179102 100644 --- a/tests/boundary/mcp/ghidraMcpHarness.ts +++ b/tests/boundary/mcp/ghidraMcpHarness.ts @@ -4,15 +4,13 @@ import { Client, InMemoryTransport } from "@modelcontextprotocol/client"; import { composeBinarySession } from "../../../src/application/binary/BinarySessionComposition.js"; import type { BinarySession } from "../../../src/application/binary/BinarySession.js"; import { AnalysisProviderRegistry } from "../../../src/application/binary/AnalysisProviderRegistry.js"; -import { parseConfig } from "../../../src/config.js"; +import { parseConfig } from "../../../src/config/parseConfig.js"; import type { JsonValue } from "../../../src/domain/jsonValue.js"; import { ok } from "../../../src/domain/result.js"; import type { GhidraInstallationHost } from "../../../src/ghidra/GhidraInstallation.js"; import type { GhidraOperation } from "../../../src/ghidra/GhidraClient.js"; -import { - GhidraProvider, - type GhidraProviderClientFactory, -} from "../../../src/ghidra/GhidraProvider.js"; +import { GhidraProvider } from "../../../src/ghidra/GhidraProvider.js"; +import type { GhidraProviderClientFactory } from "../../../src/ghidra/GhidraProviderClient.js"; import { GHIDRA_SESSION_CAPABILITIES } from "../../../src/ghidra/GhidraSessionValues.js"; import { silentLogger } from "../../../src/logger.js"; import { createServer } from "../../../src/server/createServer.js"; diff --git a/tests/boundary/mcp/keyedArchiveNumberMetadataMcp.test.ts b/tests/boundary/mcp/keyedArchiveNumberMetadataMcp.test.ts index db5f7e956..5d16e87f4 100644 --- a/tests/boundary/mcp/keyedArchiveNumberMetadataMcp.test.ts +++ b/tests/boundary/mcp/keyedArchiveNumberMetadataMcp.test.ts @@ -3,7 +3,7 @@ import { expect } from "vitest"; import { z } from "zod"; import { createBinarySession } from "../../../src/composition/binary.js"; -import { parseConfig } from "../../../src/config.js"; +import { parseConfig } from "../../../src/config/parseConfig.js"; import { keyedArchiveResultSchema } from "../../../src/domain/apple/keyedArchive.js"; import { createServer } from "../../../src/server/createServer.js"; import { diff --git a/tests/boundary/mcp/managedMcp.test.ts b/tests/boundary/mcp/managedMcp.test.ts index 3d2524eb0..762651708 100644 --- a/tests/boundary/mcp/managedMcp.test.ts +++ b/tests/boundary/mcp/managedMcp.test.ts @@ -14,7 +14,7 @@ import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; import { AnalysisProviderRegistry } from "../../../src/application/binary/AnalysisProviderRegistry.js"; import { composeBinarySession } from "../../../src/application/binary/BinarySessionComposition.js"; import type { BinarySession } from "../../../src/application/binary/BinarySession.js"; -import type { BinaryTarget } from "../../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../../src/domain/binaryTargetTypes.js"; import { MANAGED_NATIVE_VERIFICATION_EXAMPLE } from "../../../src/contracts/managed/managedWorkflowExamples.js"; import { toolContract } from "../../../src/contracts/toolContracts.js"; import { ManagedStaticProvider } from "../../../src/dotnet/ManagedStaticProvider.js"; diff --git a/tests/boundary/mcp/nativeDemangleMcp.test.ts b/tests/boundary/mcp/nativeDemangleMcp.test.ts index 44804c61c..75b22572c 100644 --- a/tests/boundary/mcp/nativeDemangleMcp.test.ts +++ b/tests/boundary/mcp/nativeDemangleMcp.test.ts @@ -6,7 +6,7 @@ import { describe, expect } from "vitest"; import { z } from "zod"; import { createBinarySession } from "../../../src/composition/binary.js"; -import { parseConfig } from "../../../src/config.js"; +import { parseConfig } from "../../../src/config/parseConfig.js"; import { createServer } from "../../../src/server/createServer.js"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; import { mcpTest } from "../../support/mcp/mcpFixture.js"; diff --git a/tests/boundary/mcp/officialArguments.test.ts b/tests/boundary/mcp/officialArguments.test.ts index ab13b12ef..943f6893e 100644 --- a/tests/boundary/mcp/officialArguments.test.ts +++ b/tests/boundary/mcp/officialArguments.test.ts @@ -1,4 +1,4 @@ -import { parseConfig } from "../../../src/config.js"; +import { parseConfig } from "../../../src/config/parseConfig.js"; import { Client, InMemoryTransport } from "@modelcontextprotocol/client"; import { describe, expect, it, onTestFinished } from "vitest"; diff --git a/tests/boundary/mcp/outputSchemaSemanticConstraints.test.ts b/tests/boundary/mcp/outputSchemaSemanticConstraints.test.ts index 7d5e46757..811f93cfe 100644 --- a/tests/boundary/mcp/outputSchemaSemanticConstraints.test.ts +++ b/tests/boundary/mcp/outputSchemaSemanticConstraints.test.ts @@ -12,12 +12,12 @@ import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../../src/domain/process/proce import { managedNativeVerificationInputSchema, managedNativeVerificationResultSchema, - verifyManagedNativeBoundaries, -} from "../../../src/domain/managed/managedNativeVerification.js"; +} from "../../../src/domain/managed/managedNativeVerificationSchemas.js"; import { nativeUiResultSchema } from "../../../src/domain/native/nativeUiObservation.js"; -import { processCaptureSchema } from "../../../src/domain/process/processCapture.js"; import { toolRegistrationOptions } from "../../../src/server/toolRegistrationOptions.js"; +import { verifyManagedNativeBoundaries } from "../../../src/domain/managed/managedNativeVerification.js"; +import { processCaptureSchema } from "../../../src/domain/process/processCapture.js"; const record = (value: unknown): Record => { if (typeof value !== "object" || value === null || Array.isArray(value)) throw new Error("Expected a schema object"); diff --git a/tests/boundary/mcp/processComparisonDiagnosticsMcp.test.ts b/tests/boundary/mcp/processComparisonDiagnosticsMcp.test.ts index 3d229b240..3377277ae 100644 --- a/tests/boundary/mcp/processComparisonDiagnosticsMcp.test.ts +++ b/tests/boundary/mcp/processComparisonDiagnosticsMcp.test.ts @@ -6,11 +6,11 @@ import { Client, InMemoryTransport } from "@modelcontextprotocol/client"; import { expect, it, onTestFinished } from "vitest"; import { compareProcessEvidenceFiles } from "../../../src/application/process/ProcessCli.js"; -import { PROCESS_PROVIDER } from "../../../src/application/process/ProcessEvidence.js"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../../src/contracts/process/processCaptureExample.js"; +import { PROCESS_PROVIDER } from "../../../src/domain/process/processEvidenceProvider.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../../src/domain/process/processCaptureExample.js"; import { createEvidence } from "../../../src/domain/evidence.js"; import { jsonValueSchema } from "../../../src/domain/jsonValue.js"; -import { digestProcessCommitment } from "../../../src/domain/process/processCapture.js"; +import { digestProcessCommitment } from "../../../src/domain/process/processScenario.js"; import { createServer } from "../../../src/server/createServer.js"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; diff --git a/tests/boundary/mcp/processEvidenceIdentityMcp.test.ts b/tests/boundary/mcp/processEvidenceIdentityMcp.test.ts index ceaf37480..9fc252995 100644 --- a/tests/boundary/mcp/processEvidenceIdentityMcp.test.ts +++ b/tests/boundary/mcp/processEvidenceIdentityMcp.test.ts @@ -6,13 +6,13 @@ import { Client, InMemoryTransport } from "@modelcontextprotocol/client"; import { expect, it, onTestFinished } from "vitest"; import { compareProcessEvidenceFiles } from "../../../src/application/process/ProcessCli.js"; -import { PROCESS_PROVIDER } from "../../../src/application/process/ProcessEvidence.js"; +import { PROCESS_PROVIDER } from "../../../src/domain/process/processEvidenceProvider.js"; import { FUNCTION_COMPARISON_EXAMPLE } from "../../../src/contracts/functionComparisonExample.js"; import { FUNCTION_COMPARISON_EVIDENCE, INVESTIGATION_EXAMPLES, } from "../../../src/contracts/investigationExamples.js"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../../src/contracts/process/processCaptureExample.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../../src/domain/process/processCaptureExample.js"; import { findChangedBehavior } from "../../../src/domain/changedBehavior.js"; import { createEvidence, @@ -20,12 +20,12 @@ import { type Evidence, } from "../../../src/domain/evidence.js"; import { createEvidenceBundle } from "../../../src/domain/evidenceBundle.js"; -import { verifyReconstruction } from "../../../src/domain/reconstructionVerification.js"; import { correlateStaticAndRuntime } from "../../../src/domain/staticRuntimeCorrelation.js"; import { createServer } from "../../../src/server/createServer.js"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; +import { verifyReconstruction } from "../../../src/domain/reconstructionVerification.js"; const providerNames = [ "REA process capture", "REA deterministic process harness", diff --git a/tests/boundary/mcp/processTraceAdaptersParity.test.ts b/tests/boundary/mcp/processTraceAdaptersParity.test.ts index 94e595001..913d640cd 100644 --- a/tests/boundary/mcp/processTraceAdaptersParity.test.ts +++ b/tests/boundary/mcp/processTraceAdaptersParity.test.ts @@ -8,11 +8,11 @@ import { afterEach, describe, expect, it } from "vitest"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; import type { AnalysisClient } from "../../../src/application/AnalysisProvider.js"; import { compareProcessEvidenceFiles } from "../../../src/application/process/ProcessCli.js"; -import { PROCESS_PROVIDER } from "../../../src/application/process/ProcessEvidence.js"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../../src/contracts/process/processCaptureExample.js"; +import { PROCESS_PROVIDER } from "../../../src/domain/process/processEvidenceProvider.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../../src/domain/process/processCaptureExample.js"; import { createEvidence, parseEvidence } from "../../../src/domain/evidence.js"; import { jsonValueSchema } from "../../../src/domain/jsonValue.js"; -import type { ProcessTraceSpecification } from "../../../src/domain/process/processTraceComparison.js"; +import type { ProcessTraceSpecification } from "../../../src/domain/process/processTraceSpecification.js"; import { createServer } from "../../../src/server/createServer.js"; import { observed as ok } from "../../fixtures/analysisExecution.js"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; diff --git a/tests/boundary/mcp/retainedApplicationEvidenceMcp.test.ts b/tests/boundary/mcp/retainedApplicationEvidenceMcp.test.ts index e9c0dd222..3cf450a7b 100644 --- a/tests/boundary/mcp/retainedApplicationEvidenceMcp.test.ts +++ b/tests/boundary/mcp/retainedApplicationEvidenceMcp.test.ts @@ -7,9 +7,9 @@ import { createServer } from "../../../src/server/createServer.js"; import { JAVASCRIPT_FEATURE_TRACE_EXAMPLE, JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE, - JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE, SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE, } from "../../../src/contracts/javascript/javascriptApplicationWorkflowExamples.js"; +import { JAVASCRIPT_EXPORT_SHAPE_COMPARISON_EXAMPLE } from "../../../src/contracts/javascript/javascriptExportShapeComparisonExample.js"; import { createEvidence, parseEvidence } from "../../../src/domain/evidence.js"; const resources: Array<{ close(): Promise }> = []; diff --git a/tests/boundary/mcp/serverIdentity.test.ts b/tests/boundary/mcp/serverIdentity.test.ts index 1c28ddeeb..aa81a8540 100644 --- a/tests/boundary/mcp/serverIdentity.test.ts +++ b/tests/boundary/mcp/serverIdentity.test.ts @@ -10,10 +10,8 @@ import { z } from "zod"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; import { machoImage } from "../../../src/artifacts/apple/MachoImage.fixture.js"; -import { - CATALOG_IDENTITY, - CLI_COMMAND_NAMES, -} from "../../../src/catalogIdentity.js"; +import { CATALOG_IDENTITY } from "../../../src/catalogIdentity.js"; +import { CLI_COMMAND_NAMES } from "../../../src/cliCommandNames.js"; import { PACKAGE_METADATA } from "../../../src/generatedPackageMetadata.js"; import { PRODUCT_IDENTITY, SDK_IDENTITY } from "../../../src/identity.js"; import { TOOL_CONTRACTS } from "../../../src/contracts/toolContracts.js"; diff --git a/tests/boundary/mcp/serverUnknownsMcp.test.ts b/tests/boundary/mcp/serverUnknownsMcp.test.ts index 70d8417b6..fe4dc8499 100644 --- a/tests/boundary/mcp/serverUnknownsMcp.test.ts +++ b/tests/boundary/mcp/serverUnknownsMcp.test.ts @@ -16,11 +16,11 @@ import { observed as ok } from "../../fixtures/analysisExecution.js"; import { createServer } from "../../../src/server/createServer.js"; import { createEvidence, parseEvidence } from "../../../src/domain/evidence.js"; import { parseEvidenceBundle } from "../../../src/domain/evidenceBundle.js"; -import { processCaptureSchema } from "../../../src/domain/process/processCapture.js"; -import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../../src/contracts/process/processCaptureExample.js"; +import { EMPTY_PROCESS_CAPTURE_EXAMPLE } from "../../../src/domain/process/processCaptureExample.js"; import { jsonValueSchema } from "../../../src/domain/jsonValue.js"; -import { PROCESS_PROVIDER } from "../../../src/server/sessionToolPolicies.js"; +import { PROCESS_PROVIDER } from "../../../src/domain/process/processEvidenceProvider.js"; +import { processCaptureSchema } from "../../../src/domain/process/processCapture.js"; const resources: Array<{ close(): Promise }> = []; afterEach(async () => { diff --git a/tests/boundary/mcp/toolResult.test.ts b/tests/boundary/mcp/toolResult.test.ts index 92c336fa5..454e600a2 100644 --- a/tests/boundary/mcp/toolResult.test.ts +++ b/tests/boundary/mcp/toolResult.test.ts @@ -8,21 +8,19 @@ import { import { ProcessCaptureError } from "../../../src/process/capture/ProcessCaptureError.js"; import { resolveProcessResult } from "../../../src/process/capture/ProcessCaptureLifecycle.js"; -import { - toolContract, - type ToolContract, -} from "../../../src/contracts/toolContracts.js"; +import { toolContract } from "../../../src/contracts/toolContracts.js"; +import type { ToolContract } from "../../../src/contracts/toolContractTypes.js"; import { err } from "../../../src/domain/result.js"; import { HopperProcessError } from "../../../src/domain/hopperErrors.js"; -import type { IncompleteProcessCaptureObservations } from "../../../src/domain/process/processCapture.js"; import { processScenarioSchema } from "../../../src/domain/process/processScenario.js"; import { ToolResultDelivery } from "../../../src/server/toolResult.js"; import { createEvidence, parseEvidence } from "../../../src/domain/evidence.js"; import { emptyProcessCapture } from "../../../src/domain/process/processCapture.fixture.js"; import type { JsonValue } from "../../../src/domain/jsonValue.js"; -import { evidenceResultOf } from "../../../src/contracts/toolOutputSchemas.js"; +import { evidenceResultOf } from "../../../src/contracts/toolOutputSchemaPrimitives.js"; import { toolRegistrationOptions } from "../../../src/server/toolRegistrationOptions.js"; +import type { IncompleteProcessCaptureObservations } from "../../../src/domain/process/processCapture.js"; const delivery = new ToolResultDelivery(STDIO_DEFAULT_MAX_BUFFER_SIZE); const contract: ToolContract = { diff --git a/tests/boundary/mcp/workflowSnapshotReplayMcp.test.ts b/tests/boundary/mcp/workflowSnapshotReplayMcp.test.ts index b0c53f737..9d2635ac7 100644 --- a/tests/boundary/mcp/workflowSnapshotReplayMcp.test.ts +++ b/tests/boundary/mcp/workflowSnapshotReplayMcp.test.ts @@ -1,4 +1,4 @@ -import { parseConfig } from "../../../src/config.js"; +import { parseConfig } from "../../../src/config/parseConfig.js"; import { writeFile } from "node:fs/promises"; import { join } from "node:path"; diff --git a/tests/boundary/process/ProcessEvidence.host.test.ts b/tests/boundary/process/ProcessEvidence.host.test.ts index 9a7e67a2d..d8a3354df 100644 --- a/tests/boundary/process/ProcessEvidence.host.test.ts +++ b/tests/boundary/process/ProcessEvidence.host.test.ts @@ -1,7 +1,7 @@ import { expect, it } from "vitest"; import { emptyUnverifiedProcessCapture } from "../../../src/domain/process/processCapture.fixture.js"; -import { parseProcessCapture } from "../../../src/domain/process/processCapture.js"; +import { parseProcessCapture } from "../../../src/domain/process/processCaptureParsing.js"; import { parseProcessScenario } from "../../../src/domain/process/processScenario.js"; import { createProcessCaptureEvidence } from "../../../src/application/process/ProcessEvidence.js"; import { observeSettlement } from "../../../src/process/capture/ProcessCaptureLifecycle.js"; diff --git a/tests/boundary/process/ProcessEvidence.test.ts b/tests/boundary/process/ProcessEvidence.test.ts index 1c35de761..c2bf779ac 100644 --- a/tests/boundary/process/ProcessEvidence.test.ts +++ b/tests/boundary/process/ProcessEvidence.test.ts @@ -7,10 +7,8 @@ import { observeSelectedExecutable, } from "../../../src/process/capture/ProcessCaptureLifecycle.js"; import { emptyUnverifiedProcessCapture } from "../../../src/domain/process/processCapture.fixture.js"; -import { - compareProcessCaptures, - parseProcessCapture, -} from "../../../src/domain/process/processCapture.js"; +import { compareProcessCaptures } from "../../../src/domain/process/processComparison.js"; +import { parseProcessCapture } from "../../../src/domain/process/processCaptureParsing.js"; import { digestProcessCommitment, parseProcessScenario, diff --git a/tests/boundary/process/cliEnvironmentSeam.test.ts b/tests/boundary/process/cliEnvironmentSeam.test.ts index 1d25b54f2..f3304bcdc 100644 --- a/tests/boundary/process/cliEnvironmentSeam.test.ts +++ b/tests/boundary/process/cliEnvironmentSeam.test.ts @@ -9,9 +9,9 @@ import { isProcessCliFailure, } from "../../../src/application/process/ProcessCli.js"; import { createDirectAnalysis } from "../../../src/composition/directAnalysis.js"; -import { probeProcessCaptureCapability } from "../../../src/process/capture/ProcessHarness.js"; +import { probeProcessCaptureCapability } from "../../../src/process/capture/ProcessCaptureCapability.js"; import { parseEvidence } from "../../../src/domain/evidence.js"; -import { parseProcessCapture } from "../../../src/domain/process/processCapture.js"; +import { parseProcessCapture } from "../../../src/domain/process/processCaptureParsing.js"; describe("the CLI takes its environment as an input", () => { it("resolves from injected PATH and inherits injected env with scenario overrides", async ({ diff --git a/tests/boundary/process/processCaptureLifecycle.test.ts b/tests/boundary/process/processCaptureLifecycle.test.ts index dc9e84d28..72a355276 100644 --- a/tests/boundary/process/processCaptureLifecycle.test.ts +++ b/tests/boundary/process/processCaptureLifecycle.test.ts @@ -17,10 +17,8 @@ import { observeLaunchedExecutable, observeSelectedExecutable, } from "../../../src/process/capture/ProcessCaptureLifecycle.js"; -import { - parseProcessScenario, - type ProcessCapture, -} from "../../../src/domain/process/processCapture.js"; +import { parseProcessScenario } from "../../../src/domain/process/processScenario.js"; +import { type ProcessCapture } from "../../../src/domain/process/processCaptureParsing.js"; const processFixture = fileURLToPath( new URL("../../fixtures/processFidelity.mjs", import.meta.url), diff --git a/tests/boundary/process/processCaptureNormalization.test.ts b/tests/boundary/process/processCaptureNormalization.test.ts index 697a06f63..58cf22c0f 100644 --- a/tests/boundary/process/processCaptureNormalization.test.ts +++ b/tests/boundary/process/processCaptureNormalization.test.ts @@ -8,9 +8,9 @@ import { captureProcessScenario } from "../../../src/process/capture/ProcessHarn import { createProcessCaptureEvidence } from "../../../src/application/process/ProcessEvidence.js"; import { digestProcessCommitment, - parseProcessCapture, parseProcessScenario, -} from "../../../src/domain/process/processCapture.js"; +} from "../../../src/domain/process/processScenario.js"; +import { parseProcessCapture } from "../../../src/domain/process/processCaptureParsing.js"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; import { itWithCaptureCapability } from "./processCaptureCapability.js"; diff --git a/tests/boundary/process/processCaptureTerminal.test.ts b/tests/boundary/process/processCaptureTerminal.test.ts index 355f41683..bc2ff739a 100644 --- a/tests/boundary/process/processCaptureTerminal.test.ts +++ b/tests/boundary/process/processCaptureTerminal.test.ts @@ -5,7 +5,7 @@ import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; import { itWithCaptureCapability } from "./processCaptureCapability.js"; import { captureProcessScenario } from "../../../src/process/capture/ProcessHarness.js"; -import { parseProcessScenario } from "../../../src/domain/process/processCapture.js"; +import { parseProcessScenario } from "../../../src/domain/process/processScenario.js"; itWithCaptureCapability( "captures one command's terminal output, selected files, and owned cleanup", diff --git a/tests/boundary/process/processCli.test.ts b/tests/boundary/process/processCli.test.ts index 0d47850d6..418648105 100644 --- a/tests/boundary/process/processCli.test.ts +++ b/tests/boundary/process/processCli.test.ts @@ -16,7 +16,7 @@ import { } from "../../../src/application/process/ProcessCli.js"; import { createEvidence } from "../../../src/domain/evidence.js"; import { ProcessCaptureError } from "../../../src/process/capture/ProcessCaptureError.js"; -import { PROCESS_PROVIDER } from "../../../src/application/process/ProcessEvidence.js"; +import { PROCESS_PROVIDER } from "../../../src/domain/process/processEvidenceProvider.js"; import { INVESTIGATION_EXAMPLES } from "../../../src/contracts/investigationExamples.js"; const roots: string[] = []; diff --git a/tests/boundary/process/processFilesystemCoverageAdapters.test.ts b/tests/boundary/process/processFilesystemCoverageAdapters.test.ts index b06259643..2b2b01f95 100644 --- a/tests/boundary/process/processFilesystemCoverageAdapters.test.ts +++ b/tests/boundary/process/processFilesystemCoverageAdapters.test.ts @@ -5,10 +5,8 @@ import { promisify } from "node:util"; import { Client, InMemoryTransport } from "@modelcontextprotocol/client"; import { expect, it, onTestFinished } from "vitest"; import { parseEvidence } from "../../../src/domain/evidence.js"; -import { - compareProcessCaptures, - parseProcessCapture, -} from "../../../src/domain/process/processCapture.js"; +import { compareProcessCaptures } from "../../../src/domain/process/processComparison.js"; +import { parseProcessCapture } from "../../../src/domain/process/processCaptureParsing.js"; import { createServer } from "../../../src/server/createServer.js"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; diff --git a/tests/boundary/process/processPreparation.test.ts b/tests/boundary/process/processPreparation.test.ts index 2b0d1bee2..dcfae9f12 100644 --- a/tests/boundary/process/processPreparation.test.ts +++ b/tests/boundary/process/processPreparation.test.ts @@ -2,7 +2,7 @@ import { expect, it, vi } from "vitest"; import { snapshotRoots } from "../../../src/process/capture/FilesystemSnapshot.js"; import { prepareProcessCapture } from "../../../src/process/capture/ProcessCaptureLifecycle.js"; -import { parseProcessScenario } from "../../../src/domain/process/processCapture.js"; +import { parseProcessScenario } from "../../../src/domain/process/processScenario.js"; it("prepares ownership inspection before snapshotting or allocating a target run", async () => { const failure = new Error("native process identity inspection unavailable"); diff --git a/tests/boundary/process/processTruncationAdapters.test.ts b/tests/boundary/process/processTruncationAdapters.test.ts index 00e2c7f5c..701ae6d4d 100644 --- a/tests/boundary/process/processTruncationAdapters.test.ts +++ b/tests/boundary/process/processTruncationAdapters.test.ts @@ -5,11 +5,9 @@ import { promisify } from "node:util"; import { Client, InMemoryTransport } from "@modelcontextprotocol/client"; import { expect, onTestFinished } from "vitest"; import { parseEvidence } from "../../../src/domain/evidence.js"; -import { - compareProcessCaptures, - parseProcessCapture, - processCaptureSchema, -} from "../../../src/domain/process/processCapture.js"; +import { compareProcessCaptures } from "../../../src/domain/process/processComparison.js"; +import { parseProcessCapture } from "../../../src/domain/process/processCaptureParsing.js"; +import { processCaptureSchema } from "../../../src/domain/process/processCapture.js"; import { processSourceTruncated } from "../../../src/domain/process/processCaptureCoverage.js"; import { compareProcessTraces } from "../../../src/domain/process/processTraceComparison.js"; import { createServer } from "../../../src/server/createServer.js"; diff --git a/tests/boundary/providers/ghidra/ghidraClient.test.ts b/tests/boundary/providers/ghidra/ghidraClient.test.ts index 57aa495c8..ed60ccf90 100644 --- a/tests/boundary/providers/ghidra/ghidraClient.test.ts +++ b/tests/boundary/providers/ghidra/ghidraClient.test.ts @@ -7,13 +7,11 @@ import { fileURLToPath } from "node:url"; import { afterEach, describe, expect, it, onTestFinished, vi } from "vitest"; import pino from "pino"; -import type { Logger } from "../../../../src/logger.js"; +import type { Logger } from "pino"; import { ok } from "../../../../src/domain/result.js"; -import { - GhidraClient, - type GhidraDiagnostic, -} from "../../../../src/ghidra/GhidraClient.js"; +import { GhidraClient } from "../../../../src/ghidra/GhidraClient.js"; +import type { GhidraDiagnostic } from "../../../../src/ghidra/GhidraClientTypes.js"; import type { GhidraLaunchSession, GhidraLauncher, diff --git a/tests/boundary/providers/hopper/hopperAnalysisProfile.test.ts b/tests/boundary/providers/hopper/hopperAnalysisProfile.test.ts index 66368d178..fd2a9c0db 100644 --- a/tests/boundary/providers/hopper/hopperAnalysisProfile.test.ts +++ b/tests/boundary/providers/hopper/hopperAnalysisProfile.test.ts @@ -5,12 +5,12 @@ import { afterEach, describe, expect, it } from "vitest"; import { createTestTempDirectory } from "../../../fixtures/temporaryDirectory.js"; -import type { BinaryTarget } from "../../../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../../../src/domain/binaryTargetTypes.js"; import { hopperLoaderArgsForTarget, resolveHopperAnalysisProfile, } from "../../../../src/hopper/HopperAnalysisProfile.js"; -import { HOPPER_PROVIDER_IDENTITY } from "../../../../src/hopper/HopperProvider.js"; +import { HOPPER_PROVIDER_IDENTITY } from "../../../../src/hopper/HopperProviderCapabilities.js"; let directory: string | undefined; diff --git a/tests/boundary/providers/hopper/hopperClient.protocol.test.ts b/tests/boundary/providers/hopper/hopperClient.protocol.test.ts index a1706177c..007f9d336 100644 --- a/tests/boundary/providers/hopper/hopperClient.protocol.test.ts +++ b/tests/boundary/providers/hopper/hopperClient.protocol.test.ts @@ -3,7 +3,7 @@ import { once } from "node:events"; import { describe, expect, it, onTestFinished, vi } from "vitest"; import { HopperProcessError } from "../../../../src/domain/hopperErrors.js"; -import { HOPPER_OPERATIONS } from "../../../../src/hopper/HopperProvider.js"; +import { HOPPER_OPERATIONS } from "../../../../src/hopper/HopperProviderCapabilities.js"; import { HopperClient } from "../../../../src/hopper/HopperClient.js"; import type { HopperDiagnostic } from "../../../../src/hopper/HopperDiagnostics.js"; import { providerCleanupFailure } from "../../../../src/hopper/HopperDiagnostics.js"; diff --git a/tests/boundary/providers/managed/managedMemberComparison.test.ts b/tests/boundary/providers/managed/managedMemberComparison.test.ts index 4caf2b22e..9b2ccee02 100644 --- a/tests/boundary/providers/managed/managedMemberComparison.test.ts +++ b/tests/boundary/providers/managed/managedMemberComparison.test.ts @@ -10,10 +10,8 @@ import { compareManagedMemberPaths, } from "../../../../src/application/managed/ManagedMemberComparisonService.js"; import { parseBinaryTarget } from "../../../../src/application/BinaryTargetResolver.js"; -import { - managedMemberComparisonResultSchema, - parseManagedMemberEvidence, -} from "../../../../src/domain/managed/managedMemberComparison.js"; +import { managedMemberComparisonResultSchema } from "../../../../src/domain/managed/managedMemberComparison.js"; +import { parseManagedMemberEvidence } from "../../../../src/domain/managed/managedMemberComparisonMatch.js"; import { createEvidence } from "../../../../src/domain/evidence.js"; import { projectAnalysisError } from "../../../../src/domain/analysisErrorProjection.js"; import { jsonValueSchema } from "../../../../src/domain/jsonValue.js"; diff --git a/tests/boundary/providers/native/artifactProvider.archiveInventory.test.ts b/tests/boundary/providers/native/artifactProvider.archiveInventory.test.ts index b813da121..06fe70527 100644 --- a/tests/boundary/providers/native/artifactProvider.archiveInventory.test.ts +++ b/tests/boundary/providers/native/artifactProvider.archiveInventory.test.ts @@ -11,7 +11,7 @@ import { createDirectAnalysis } from "../../../../src/composition/directAnalysis import { ArtifactProvider } from "../../../../src/artifacts/ArtifactProvider.js"; import { artifactInventoryResultSchema } from "../../../../src/domain/artifactGraph.js"; import { artifactInspectionResultSchema } from "../../../../src/domain/artifactInspection.js"; -import type { BinaryTarget } from "../../../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../../../src/domain/binaryTargetTypes.js"; import { parseBinaryTarget } from "../../../../src/application/BinaryTargetResolver.js"; import { parseEvidence } from "../../../../src/domain/evidence.js"; diff --git a/tests/boundary/providers/native/artifactProvider.archiveSafety.test.ts b/tests/boundary/providers/native/artifactProvider.archiveSafety.test.ts index 0295af757..368d029dc 100644 --- a/tests/boundary/providers/native/artifactProvider.archiveSafety.test.ts +++ b/tests/boundary/providers/native/artifactProvider.archiveSafety.test.ts @@ -15,7 +15,7 @@ import { ArtifactProvider } from "../../../../src/artifacts/ArtifactProvider.js" import { ArtifactReaderFailure } from "../../../../src/artifacts/ArtifactReader.js"; import { artifactExtractionExecutionSchema } from "../../../../src/contracts/artifactToolContracts.js"; import { artifactInventoryResultSchema } from "../../../../src/domain/artifactGraph.js"; -import type { BinaryTarget } from "../../../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../../../src/domain/binaryTargetTypes.js"; import { parseBinaryTarget } from "../../../../src/application/BinaryTargetResolver.js"; import { parseEvidence } from "../../../../src/domain/evidence.js"; diff --git a/tests/boundary/providers/native/artifactProvider.directoryInventory.test.ts b/tests/boundary/providers/native/artifactProvider.directoryInventory.test.ts index 8321d3a1d..f6e226a1d 100644 --- a/tests/boundary/providers/native/artifactProvider.directoryInventory.test.ts +++ b/tests/boundary/providers/native/artifactProvider.directoryInventory.test.ts @@ -7,7 +7,7 @@ import { createTestTempDirectory } from "../../../fixtures/temporaryDirectory.js import { ArtifactProvider } from "../../../../src/artifacts/ArtifactProvider.js"; import { artifactInventoryResultSchema } from "../../../../src/domain/artifactGraph.js"; -import type { BinaryTarget } from "../../../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../../../src/domain/binaryTargetTypes.js"; describe("artifact directory inventory", () => { it("inventories app trees deterministically without following symlinks", async () => { diff --git a/tests/boundary/providers/native/artifactProvider.extraction.test.ts b/tests/boundary/providers/native/artifactProvider.extraction.test.ts index f6d0e0847..9726e5560 100644 --- a/tests/boundary/providers/native/artifactProvider.extraction.test.ts +++ b/tests/boundary/providers/native/artifactProvider.extraction.test.ts @@ -11,7 +11,7 @@ import { artifactExtractionResultSchema, artifactInventoryResultSchema, } from "../../../../src/domain/artifactGraph.js"; -import type { BinaryTarget } from "../../../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../../../src/domain/binaryTargetTypes.js"; describe("artifact extraction", () => { it("extracts all regular occurrences through an exclusively owned output tree", async () => { diff --git a/tests/boundary/providers/native/artifactProvider.extractionFormat.test.ts b/tests/boundary/providers/native/artifactProvider.extractionFormat.test.ts index 527e5faf0..81b3cce52 100644 --- a/tests/boundary/providers/native/artifactProvider.extractionFormat.test.ts +++ b/tests/boundary/providers/native/artifactProvider.extractionFormat.test.ts @@ -7,7 +7,7 @@ import { createTestTempDirectory } from "../../../fixtures/temporaryDirectory.js import { ArtifactProvider } from "../../../../src/artifacts/ArtifactProvider.js"; import { artifactExtractionExecutionSchema } from "../../../../src/contracts/artifactToolContracts.js"; -import type { BinaryTarget } from "../../../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../../../src/domain/binaryTargetTypes.js"; describe("artifact extraction format support", () => { it("refuses unsupported formats before inventory or output", async () => { diff --git a/tests/boundary/providers/native/artifactProvider.extractionIdentity.test.ts b/tests/boundary/providers/native/artifactProvider.extractionIdentity.test.ts index cf63dbd6c..fa0081f46 100644 --- a/tests/boundary/providers/native/artifactProvider.extractionIdentity.test.ts +++ b/tests/boundary/providers/native/artifactProvider.extractionIdentity.test.ts @@ -8,7 +8,7 @@ import { createTestTempDirectory } from "../../../fixtures/temporaryDirectory.js import { ArtifactProvider } from "../../../../src/artifacts/ArtifactProvider.js"; import { artifactExtractionExecutionSchema } from "../../../../src/contracts/artifactToolContracts.js"; import { artifactExtractionResultSchema } from "../../../../src/domain/artifactGraph.js"; -import type { BinaryTarget } from "../../../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../../../src/domain/binaryTargetTypes.js"; describe("artifact extraction identity", () => { it("uses code-point order for path-independent extraction identities", async () => { diff --git a/tests/composition/analysis-sessions/compositeProvider.test.ts b/tests/composition/analysis-sessions/compositeProvider.test.ts index 760c0d062..d41229f96 100644 --- a/tests/composition/analysis-sessions/compositeProvider.test.ts +++ b/tests/composition/analysis-sessions/compositeProvider.test.ts @@ -11,7 +11,7 @@ import type { ProviderIdentity, } from "../../../src/application/AnalysisProvider.js"; import { createAnalysisExecution } from "../../../src/application/AnalysisProvider.js"; -import type { BinaryTarget } from "../../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../../src/domain/binaryTargetTypes.js"; import { ok } from "../../../src/domain/result.js"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; diff --git a/tests/composition/directAnalysisCleanup.test.ts b/tests/composition/directAnalysisCleanup.test.ts index 7b992bcac..9e533bb89 100644 --- a/tests/composition/directAnalysisCleanup.test.ts +++ b/tests/composition/directAnalysisCleanup.test.ts @@ -5,7 +5,7 @@ import { runProviderAnalysis, } from "../../src/application/DirectAnalysis.js"; import type { DirectAnalysisDependencies } from "../../src/application/DirectAnalysisDependencies.js"; -import { parseConfig } from "../../src/config.js"; +import { parseConfig } from "../../src/config/parseConfig.js"; import type { AnalysisError } from "../../src/domain/analysisErrorBase.js"; import { AnalysisTimeoutError } from "../../src/domain/analysisErrorCore.js"; import { projectAnalysisError } from "../../src/domain/analysisErrorProjection.js"; diff --git a/tests/composition/directAnalysisFactories.test.ts b/tests/composition/directAnalysisFactories.test.ts index 8de5adf98..c1f294b61 100644 --- a/tests/composition/directAnalysisFactories.test.ts +++ b/tests/composition/directAnalysisFactories.test.ts @@ -1,4 +1,4 @@ -import { parseConfig } from "../../src/config.js"; +import { parseConfig } from "../../src/config/parseConfig.js"; import { ok as resultOk } from "../../src/domain/result.js"; import { describe, expect, it } from "vitest"; import { diff --git a/tests/composition/directAnalysisSnapshotReplay.test.ts b/tests/composition/directAnalysisSnapshotReplay.test.ts index 0bc695b3e..0a2332e0d 100644 --- a/tests/composition/directAnalysisSnapshotReplay.test.ts +++ b/tests/composition/directAnalysisSnapshotReplay.test.ts @@ -1,4 +1,4 @@ -import { parseConfig } from "../../src/config.js"; +import { parseConfig } from "../../src/config/parseConfig.js"; import { writeFile } from "node:fs/promises"; import { join } from "node:path"; diff --git a/tests/composition/directAnalysisXrefs.test.ts b/tests/composition/directAnalysisXrefs.test.ts index 4fe3bfadb..b68832afa 100644 --- a/tests/composition/directAnalysisXrefs.test.ts +++ b/tests/composition/directAnalysisXrefs.test.ts @@ -1,4 +1,4 @@ -import { parseConfig } from "../../src/config.js"; +import { parseConfig } from "../../src/config/parseConfig.js"; import { describe, expect, it } from "vitest"; import { runDirectAnalysis } from "../../src/application/DirectAnalysis.js"; import type { DirectAnalysisDependencies } from "../../src/application/DirectAnalysisDependencies.js"; diff --git a/tests/composition/idaProvider.test.ts b/tests/composition/idaProvider.test.ts index a20fc0c85..9a702bb45 100644 --- a/tests/composition/idaProvider.test.ts +++ b/tests/composition/idaProvider.test.ts @@ -4,7 +4,7 @@ import { afterEach, describe, expect, it } from "vitest"; import { IdaProvider } from "../../src/ida/IdaProvider.js"; import { createIdaTarget, RecordingIdaMcp } from "../fixtures/idaMcp.js"; import { createTestBinarySession } from "../fixtures/binarySession.js"; -import { parseConfig } from "../../src/config.js"; +import { parseConfig } from "../../src/config/parseConfig.js"; import { createAnalysisSnapshotEntry, snapshotBinding, @@ -13,7 +13,7 @@ import { import { createEvidence } from "../../src/domain/evidence.js"; import { createEvidenceBundle } from "../../src/domain/evidenceBundle.js"; import { createAnalysisExecution } from "../../src/application/AnalysisProvider.js"; -import { IDA_PROVIDER_IDENTITY } from "../../src/ida/IdaProvider.js"; +import { IDA_PROVIDER_IDENTITY } from "../../src/ida/IdaProviderCapabilities.js"; const roots: string[] = []; afterEach(async () => { diff --git a/tests/composition/javascript-applications/javascriptArtifactReconstruction.test.ts b/tests/composition/javascript-applications/javascriptArtifactReconstruction.test.ts index e97892e08..b934e3e36 100644 --- a/tests/composition/javascript-applications/javascriptArtifactReconstruction.test.ts +++ b/tests/composition/javascript-applications/javascriptArtifactReconstruction.test.ts @@ -19,7 +19,7 @@ import { } from "../../../src/application/javascript/JavaScriptSemanticGraphBuilder.js"; import { createJavaScriptArtifactReader } from "../../../src/artifacts/javascript/JavaScriptArtifactReader.js"; import { readJavaScriptArtifactFiles } from "../../../src/artifacts/javascript/JavaScriptArtifactFiles.js"; -import { scanCanonicalArtifactInventory } from "../../../src/artifacts/inventory/ArtifactInventory.js"; +import { scanCanonicalArtifactInventory } from "../../../src/artifacts/inventory/scanCanonical.js"; import { scanArtifactInventory } from "../../../src/artifacts/inventory/ArtifactInventory.js"; import { parseJavaScriptApplicationGraph } from "../../../src/domain/javascript/javascriptApplicationGraph.js"; import { javascriptApplicationAnalysisResultSchema } from "../../../src/domain/javascript/javascriptApplicationAnalysis.js"; diff --git a/tests/conformance/providers/managed/managedNativeVerification.test.ts b/tests/conformance/providers/managed/managedNativeVerification.test.ts index 72b7569f1..bca7dbfdc 100644 --- a/tests/conformance/providers/managed/managedNativeVerification.test.ts +++ b/tests/conformance/providers/managed/managedNativeVerification.test.ts @@ -6,11 +6,11 @@ import { createEvidence } from "../../../../src/domain/evidence.js"; import { managedNativeVerificationInputSchema, managedNativeVerificationResultSchema, - verifyManagedNativeBoundaries, -} from "../../../../src/domain/managed/managedNativeVerification.js"; +} from "../../../../src/domain/managed/managedNativeVerificationSchemas.js"; import { managedNativeBoundaryInspectionSchema } from "../../../../src/domain/managed/managedArtifact.js"; import { inspectMachoSchema } from "../../../../src/domain/native/nativeInspection.js"; +import { verifyManagedNativeBoundaries } from "../../../../src/domain/managed/managedNativeVerification.js"; const exampleInput = () => managedNativeVerificationInputSchema.parse( MANAGED_NATIVE_VERIFICATION_EXAMPLE, diff --git a/tests/fixtures/binarySession.ts b/tests/fixtures/binarySession.ts index 60ced6427..afe0981ef 100644 --- a/tests/fixtures/binarySession.ts +++ b/tests/fixtures/binarySession.ts @@ -2,7 +2,7 @@ import { writeFile } from "node:fs/promises"; import { join } from "node:path"; import { createAnalysisProfile } from "../../src/domain/analysisProfile.js"; -import type { BinaryTarget } from "../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../src/domain/binaryTargetTypes.js"; import type { AnalysisError } from "../../src/domain/analysisErrorBase.js"; import { HopperStartError } from "../../src/domain/hopperErrors.js"; import type { Result } from "../../src/domain/result.js"; diff --git a/tests/fixtures/contractPresentation.mjs b/tests/fixtures/contractPresentation.mjs index ecfad8d23..73b3add91 100644 --- a/tests/fixtures/contractPresentation.mjs +++ b/tests/fixtures/contractPresentation.mjs @@ -6,7 +6,7 @@ import { BROWSER_SCENARIO_TOOL_CONTRACTS } from "../../dist/contracts/browserSce import { ELECTRON_TOOL_CONTRACTS } from "../../dist/contracts/javascript/electronToolContracts.js"; import { JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS } from "../../dist/contracts/javascript/javascriptRuntimeObservationToolContracts.js"; import { TOOL_CONTRACTS } from "../../dist/contracts/toolContracts.js"; -import { parseConfig } from "../../dist/config.js"; +import { parseConfig } from "../../dist/config/parseConfig.js"; import { createBinarySession } from "../../dist/composition/binary.js"; // Mutate only this child's presentation arrays, before importing registration. diff --git a/tests/fixtures/directAnalysisInterrupt.mjs b/tests/fixtures/directAnalysisInterrupt.mjs index e2443f546..b3a4032d7 100644 --- a/tests/fixtures/directAnalysisInterrupt.mjs +++ b/tests/fixtures/directAnalysisInterrupt.mjs @@ -1,4 +1,4 @@ -import { parseConfig } from "../../dist/config.js"; +import { parseConfig } from "../../dist/config/parseConfig.js"; import { access, writeFile } from "node:fs/promises"; import { join } from "node:path"; import { setTimeout as delay } from "node:timers/promises"; diff --git a/tests/fixtures/idaMcp.ts b/tests/fixtures/idaMcp.ts index 0f0076816..ae8c1f053 100644 --- a/tests/fixtures/idaMcp.ts +++ b/tests/fixtures/idaMcp.ts @@ -2,7 +2,7 @@ import { createHash } from "node:crypto"; import { mkdtemp, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { BinaryTarget } from "../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../src/domain/binaryTargetTypes.js"; import type { JsonValue } from "../../src/domain/jsonValue.js"; import type { IdaMcpConnection } from "../../src/ida/IdaMcpConnection.js"; import { elf } from "../../src/domain/binaryTarget.fixture.js"; diff --git a/tests/fixtures/nativeCommands.ts b/tests/fixtures/nativeCommands.ts index 760f45614..5f57ee7c0 100644 --- a/tests/fixtures/nativeCommands.ts +++ b/tests/fixtures/nativeCommands.ts @@ -1,6 +1,6 @@ import { createHash } from "node:crypto"; import { readFile } from "node:fs/promises"; -import type { BinaryTarget } from "../../src/domain/binaryTarget.js"; +import type { BinaryTarget } from "../../src/domain/binaryTargetTypes.js"; import { ok } from "../../src/domain/result.js"; import type { NativeCommandCapture, diff --git a/tests/support/javascriptApplicationFixture.ts b/tests/support/javascriptApplicationFixture.ts index 4c60b99ea..c8522aeb6 100644 --- a/tests/support/javascriptApplicationFixture.ts +++ b/tests/support/javascriptApplicationFixture.ts @@ -5,8 +5,8 @@ import { reconstructJavaScriptArtifact } from "../../src/application/javascript/ import type { ApplicationEdge, ApplicationNode, - JavaScriptApplicationGraph, -} from "../../src/domain/javascript/javascriptApplicationGraph.js"; +} from "../../src/domain/javascript/javascriptApplicationGraphSchemas.js"; +import type { JavaScriptApplicationGraph } from "../../src/domain/javascript/javascriptApplicationGraph.js"; /** Write text fixture files, creating parent directories as needed. */ export const writeFixtureFiles = async (