diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d1bb5bef54..740e7f2a5b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -312,6 +312,8 @@ jobs: run: npm run verify:apple-dispatch && npm run verify:interface-builder - name: Native plist CLI selection regressions run: npm run test:focused -- tests/boundary/cli/nativePlistCli.test.ts tests/boundary/cli/nativePlistPrototypeKeyCli.test.ts tests/boundary/cli/nativePlistSelectionFailureCli.test.ts + - name: Native Swift demangling CLI and MCP regressions + run: npm run test:focused -- tests/boundary/cli/nativeDemangleCli.test.ts tests/boundary/mcp/nativeDemangleMcp.test.ts reconstruction-readiness: name: Reconstruction readiness diff --git a/docs/capability-migration.md b/docs/capability-migration.md index 9363211f6e..2ce6471a4b 100644 --- a/docs/capability-migration.md +++ b/docs/capability-migration.md @@ -404,3 +404,24 @@ analysis state. MCP startup constructs its connection session through the same binary factory. Source and compiled fixtures use these entrypoints. The former application runtime path is removed, and the source guard no longer admits its outward provider/composition imports. + +## Native analyst capability ownership + +`src/domain/native/` owns portable native inspection, instruction/data types, +load-image facts, API boundaries, annotations, metadata recovery, UI observation +semantics and value/investigation graphs. `src/application/native/` owns shared +API projection, call routes, dispatch inspection and UI/value tracing. Its tests +keep the existing service lane. `src/contracts/native/` owns the named native +adapter contracts; shared official/enhanced aggregates remain at their owners. + +Producer interpretation, external commands and host UI lifecycle remain in +`src/native/`, Hopper, Ghidra and IDA. The shared function dossier still lives in +`domain/hopperValues.ts`: its historical name does not make its meaning exclusive +to Hopper. This move retains existing typed ports, exact result schemas, +observed/derived/unknown distinctions, profiles and Evidence links. + +Source and compiled verifier imports follow the new owners. Host UI and real +native-value verifier locations are retained until their own proof lanes migrate; +interactive macOS UI success and real dependency tracing require their respective +host/engine workflows. Portable source fixtures and injected call-route tests +establish their narrower boundaries, without expanding provider/platform support. diff --git a/docs/testing.md b/docs/testing.md index 0c66b6e97d..5c310539fb 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -95,6 +95,14 @@ in `src/artifacts/apple/`. The npm entrypoints are unchanged. Format-specific Swift/XIB/asset sources and goldens retain their locations; real Apple workflows resolve them from the verifier file URL and run in the macOS CI lane. +Portable native semantics and their tests live in `src/domain/native/`; shared +analyst workflows and service-lane tests live in `src/application/native/`. +Named native contracts live in `src/contracts/native/`. Provider protocol and +host UI tests retain their adapter/boundary lanes, and real verifier command +names remain unchanged. +The existing Apple CI job also runs the host Swift-demangling CLI/MCP regression +suites, including option-like symbols, carriage returns and multiline rejection. + MCP SDK transport tests with recording providers remain integration tests. They are useful for schema drift and failure projection but do not prove that Hopper, Ghidra or another substituted engine works. `verify:package` proves diff --git a/scripts/lib/catalog-core.mjs b/scripts/lib/catalog-core.mjs index 591b33cea5..311fb5f0a5 100644 --- a/scripts/lib/catalog-core.mjs +++ b/scripts/lib/catalog-core.mjs @@ -40,7 +40,7 @@ const SOURCE_PATHS = { officialContracts: "dist/contracts/officialToolContracts.js", enhancedContracts: "dist/contracts/enhancedToolContracts.js", sessionContracts: "dist/contracts/sessionToolContracts.js", - nativeContracts: "dist/contracts/nativeToolContracts.js", + nativeContracts: "dist/contracts/native/nativeToolContracts.js", artifactContracts: "dist/contracts/artifactToolContracts.js", managedContracts: "dist/contracts/managed/managedToolContracts.js", firmwareContracts: "dist/contracts/firmware/firmwareToolContracts.js", diff --git a/scripts/lib/native-value-e2e.mjs b/scripts/lib/native-value-e2e.mjs index 9617b55546..ac43cd8f99 100644 --- a/scripts/lib/native-value-e2e.mjs +++ b/scripts/lib/native-value-e2e.mjs @@ -7,7 +7,7 @@ import { StdioClientTransport } from "@modelcontextprotocol/client/stdio"; import { parseEvidence } from "../../dist/domain/evidence.js"; import { analysisProfileSchema } from "../../dist/domain/analysisProfile.js"; -import { nativeValueTraceSchema } from "../../dist/domain/nativeValueTrace.js"; +import { nativeValueTraceSchema } from "../../dist/domain/native/nativeValueTrace.js"; const defaultEntrypoint = fileURLToPath(new URL("../rea.mjs", import.meta.url)); const environment = () => ({ diff --git a/scripts/verify-real-ghidra-nativeaot.mjs b/scripts/verify-real-ghidra-nativeaot.mjs index 27592a3b0d..82ea0cd1fa 100644 --- a/scripts/verify-real-ghidra-nativeaot.mjs +++ b/scripts/verify-real-ghidra-nativeaot.mjs @@ -17,8 +17,8 @@ import { promisify } from "node:util"; import { Client } from "@modelcontextprotocol/client"; import { StdioClientTransport } from "@modelcontextprotocol/client/stdio"; import { parseEvidence } from "../dist/domain/evidence.js"; -import { nativeDataTypeSchema } from "../dist/domain/nativeDataType.js"; -import { nativeLoadImageSchema } from "../dist/domain/nativeLoadImage.js"; +import { nativeDataTypeSchema } from "../dist/domain/native/nativeDataType.js"; +import { nativeLoadImageSchema } from "../dist/domain/native/nativeLoadImage.js"; const mode = process.argv[2] ?? "symbols"; if ( diff --git a/src/application/AnalysisProvider.ts b/src/application/AnalysisProvider.ts index 0983a3a301..e995d0a64f 100644 --- a/src/application/AnalysisProvider.ts +++ b/src/application/AnalysisProvider.ts @@ -1,7 +1,7 @@ import type { BinaryTarget } from "../domain/binaryTarget.js"; import type { OfficialToolName } from "../contracts/officialToolContracts.js"; import type { EnhancedToolName } from "../contracts/enhancedInputs.js"; -import type { NativeToolName } from "../contracts/nativeToolContracts.js"; +import type { NativeToolName } from "../contracts/native/nativeToolContracts.js"; import type { ArtifactAnalysisOperation } from "../contracts/artifactToolContracts.js"; import type { ManagedToolName } from "../contracts/managed/managedToolContracts.js"; import type { AnalysisError } from "../domain/analysisErrorBase.js"; diff --git a/src/application/DirectAnalysis.ts b/src/application/DirectAnalysis.ts index c273128f22..a6c27834b5 100644 --- a/src/application/DirectAnalysis.ts +++ b/src/application/DirectAnalysis.ts @@ -8,7 +8,7 @@ import type { BinarySession } from "./binary/BinarySession.js"; import { silentLogger, type Logger } from "../logger.js"; import { createEvidence } from "../domain/evidence.js"; import type { Evidence } from "../domain/evidence.js"; -import type { NativeToolName } from "../contracts/nativeToolContracts.js"; +import type { NativeToolName } from "../contracts/native/nativeToolContracts.js"; import type { ArtifactAnalysisOperation } from "../contracts/artifactToolContracts.js"; import { isManagedToolName, diff --git a/src/application/EnhancedTools.ts b/src/application/EnhancedTools.ts index fa758d19f8..2a2f701a33 100644 --- a/src/application/EnhancedTools.ts +++ b/src/application/EnhancedTools.ts @@ -27,9 +27,9 @@ import { discoverObjcClasses, discoverObjcProtocols, } from "../domain/symbolAnalysis.js"; -import { inspectNativeDispatch } from "./NativeDispatchMetadataInspection.js"; -import { traceNativeValues } from "./NativeValueTrace.js"; -import { traceNativeUiAction } from "./NativeUiActionTrace.js"; +import { inspectNativeDispatch } from "./native/NativeDispatchMetadataInspection.js"; +import { traceNativeValues } from "./native/NativeValueTrace.js"; +import { traceNativeUiAction } from "./native/NativeUiActionTrace.js"; import { jsonValueSchema, type JsonValue } from "../domain/jsonValue.js"; import { @@ -39,7 +39,7 @@ import { } from "./EnhancedToolTypes.js"; import { traceCallPath } from "./CallPathTracing.js"; import { traceLiteralFeature } from "./EnhancedLiteralTracing.js"; -import { projectNativeApiInspection } from "./NativeApiInspection.js"; +import { projectNativeApiInspection } from "./native/NativeApiInspection.js"; export type { ValidatedEnhancedCall } from "./EnhancedToolTypes.js"; /** diff --git a/src/application/EnhancedNativeInvestigation.test.ts b/src/application/native/EnhancedNativeInvestigation.test.ts similarity index 97% rename from src/application/EnhancedNativeInvestigation.test.ts rename to src/application/native/EnhancedNativeInvestigation.test.ts index 5e75de903a..e8f5e73138 100644 --- a/src/application/EnhancedNativeInvestigation.test.ts +++ b/src/application/native/EnhancedNativeInvestigation.test.ts @@ -7,19 +7,19 @@ import { createAnalysisExecution, type AnalysisExecution, type AnalysisOperation, -} from "./AnalysisProvider.js"; -import type { AnalysisError } from "../domain/analysisErrorBase.js"; +} from "../AnalysisProvider.js"; +import type { AnalysisError } from "../../domain/analysisErrorBase.js"; import { AnalysisCancelledError, AnalysisCapabilityUnavailableError, -} from "../domain/analysisErrorCore.js"; -import { EnhancedTools } from "./EnhancedTools.js"; +} from "../../domain/analysisErrorCore.js"; +import { EnhancedTools } from "../EnhancedTools.js"; import { nativeInvestigationGraphSchema, nativeInvestigationTraceSchema, -} from "../domain/nativeInvestigationGraph.js"; -import { err, ok } from "../domain/result.js"; -import type { Result } from "../domain/result.js"; +} from "../../domain/native/nativeInvestigationGraph.js"; +import { err, ok } from "../../domain/result.js"; +import type { Result } from "../../domain/result.js"; const target = "a".repeat(64); const provider = { id: "fixture", name: "Fixture", version: "1" }; diff --git a/src/application/NativeApiInspection.test.ts b/src/application/native/NativeApiInspection.test.ts similarity index 96% rename from src/application/NativeApiInspection.test.ts rename to src/application/native/NativeApiInspection.test.ts index 6c8e604333..db0c61a19d 100644 --- a/src/application/NativeApiInspection.test.ts +++ b/src/application/native/NativeApiInspection.test.ts @@ -1,8 +1,8 @@ import { describe, expect, it } from "vitest"; -import { functionDossierSchema } from "../domain/hopperValues.js"; -import { ghidraFunctionDossier } from "../domain/ghidraValues.fixture.js"; -import { nativeApiBoundarySchema } from "../domain/nativeApiBoundary.js"; +import { functionDossierSchema } from "../../domain/hopperValues.js"; +import { ghidraFunctionDossier } from "../../domain/ghidraValues.fixture.js"; +import { nativeApiBoundarySchema } from "../../domain/native/nativeApiBoundary.js"; import { projectNativeApiInspection } from "./NativeApiInspection.js"; describe("native API switch uncertainty", () => { diff --git a/src/application/NativeApiInspection.ts b/src/application/native/NativeApiInspection.ts similarity index 96% rename from src/application/NativeApiInspection.ts rename to src/application/native/NativeApiInspection.ts index e49fcb0c4e..9e1aedbc33 100644 --- a/src/application/NativeApiInspection.ts +++ b/src/application/native/NativeApiInspection.ts @@ -1,9 +1,9 @@ -import type { FunctionDossier } from "../domain/hopperValues.js"; +import type { FunctionDossier } from "../../domain/hopperValues.js"; import { nativeApiInspectionResultSchema, type NativeApiBoundary, type NativeApiInspectionResult, -} from "../domain/nativeApiBoundary.js"; +} from "../../domain/native/nativeApiBoundary.js"; const unavailableBoundary = (): NativeApiBoundary => ({ available: false, diff --git a/src/application/NativeCallRoutes.test.ts b/src/application/native/NativeCallRoutes.test.ts similarity index 90% rename from src/application/NativeCallRoutes.test.ts rename to src/application/native/NativeCallRoutes.test.ts index d239218739..baac1d16a6 100644 --- a/src/application/NativeCallRoutes.test.ts +++ b/src/application/native/NativeCallRoutes.test.ts @@ -1,10 +1,10 @@ import { describe, expect, it } from "vitest"; import { readNativeCallRoutes } from "./NativeCallRoutes.js"; -import { createAnalysisExecution } from "./AnalysisProvider.js"; -import { ghidraReferenceEdge } from "../domain/ghidraValues.fixture.js"; -import { jsonValueSchema } from "../domain/jsonValue.js"; -import { err, ok } from "../domain/result.js"; -import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; +import { createAnalysisExecution } from "../AnalysisProvider.js"; +import { ghidraReferenceEdge } from "../../domain/ghidraValues.fixture.js"; +import { jsonValueSchema } from "../../domain/jsonValue.js"; +import { err, ok } from "../../domain/result.js"; +import { AnalysisCancelledError } from "../../domain/analysisErrorCore.js"; const provider = { id: "fixture", name: "Fixture", version: "1" }; describe("typed native call routes", () => { diff --git a/src/application/NativeCallRoutes.ts b/src/application/native/NativeCallRoutes.ts similarity index 93% rename from src/application/NativeCallRoutes.ts rename to src/application/native/NativeCallRoutes.ts index 8ac1bcd4f1..adb2861951 100644 --- a/src/application/NativeCallRoutes.ts +++ b/src/application/native/NativeCallRoutes.ts @@ -1,11 +1,11 @@ import { z } from "zod"; -import type { AnalysisOperationPort } from "./AnalysisProvider.js"; +import type { AnalysisOperationPort } from "../AnalysisProvider.js"; import { parseRelatedAddresses, referenceKindSchema, -} from "../domain/hopperValues.js"; -import { err, ok } from "../domain/result.js"; -import { AnalysisOutputError } from "../domain/analysisErrorCore.js"; +} from "../../domain/hopperValues.js"; +import { err, ok } from "../../domain/result.js"; +import { AnalysisOutputError } from "../../domain/analysisErrorCore.js"; const referencesSchema = z.object({ reference_kinds_available: z.boolean().optional(), diff --git a/src/application/NativeDispatchMetadataInspection.ts b/src/application/native/NativeDispatchMetadataInspection.ts similarity index 83% rename from src/application/NativeDispatchMetadataInspection.ts rename to src/application/native/NativeDispatchMetadataInspection.ts index 8f2ea0dbdb..85c1a69c30 100644 --- a/src/application/NativeDispatchMetadataInspection.ts +++ b/src/application/native/NativeDispatchMetadataInspection.ts @@ -2,12 +2,12 @@ import { z } from "zod"; import { nativeDispatchMetadataResultSchema, inspectNativeDispatchMetadata, -} from "../domain/objcSwiftMetadata.js"; -import { AnalysisOutputError } from "../domain/analysisErrorCore.js"; -import { jsonValueSchema } from "../domain/jsonValue.js"; -import { err, ok } from "../domain/result.js"; -import type { AnalysisOperationPort } from "./AnalysisProvider.js"; -import type { EnhancedResult } from "./EnhancedToolTypes.js"; +} from "../../domain/native/objcSwiftMetadata.js"; +import { AnalysisOutputError } from "../../domain/analysisErrorCore.js"; +import { jsonValueSchema } from "../../domain/jsonValue.js"; +import { err, ok } from "../../domain/result.js"; +import type { AnalysisOperationPort } from "../AnalysisProvider.js"; +import type { EnhancedResult } from "../EnhancedToolTypes.js"; /** Prefer validated binary metadata, otherwise preserve the bound provider's symbol-only coverage. */ export const inspectNativeDispatch = async ( analysis: AnalysisOperationPort, diff --git a/src/application/NativeUiActionTrace.ts b/src/application/native/NativeUiActionTrace.ts similarity index 95% rename from src/application/NativeUiActionTrace.ts rename to src/application/native/NativeUiActionTrace.ts index 25e9b9dc37..125a11567c 100644 --- a/src/application/NativeUiActionTrace.ts +++ b/src/application/native/NativeUiActionTrace.ts @@ -1,22 +1,22 @@ import { z } from "zod"; -import type { AnalysisOperationPort } from "./AnalysisProvider.js"; -import type { EnhancedResult } from "./EnhancedToolTypes.js"; -import type { enhancedInputSchemas } from "../contracts/enhancedInputs.js"; -import { interfaceBuilderAnalysisSchema } from "../domain/apple/interfaceBuilderGraph.js"; +import type { AnalysisOperationPort } from "../AnalysisProvider.js"; +import type { EnhancedResult } from "../EnhancedToolTypes.js"; +import type { enhancedInputSchemas } from "../../contracts/enhancedInputs.js"; +import { interfaceBuilderAnalysisSchema } from "../../domain/apple/interfaceBuilderGraph.js"; import { nativeInvestigationGraphSchema, nativeInvestigationTraceSchema, traceNativeInvestigationGraph, joinInterfaceBuilderDispatch, -} from "../domain/nativeInvestigationGraph.js"; -import { nativeDispatchMetadataResultSchema } from "../domain/objcSwiftMetadata.js"; +} from "../../domain/native/nativeInvestigationGraph.js"; +import { nativeDispatchMetadataResultSchema } from "../../domain/native/objcSwiftMetadata.js"; import { inspectNativeDispatch } from "./NativeDispatchMetadataInspection.js"; -import { jsonValueSchema } from "../domain/jsonValue.js"; +import { jsonValueSchema } from "../../domain/jsonValue.js"; import { readNativeCallRoutes } from "./NativeCallRoutes.js"; -import { err, ok } from "../domain/result.js"; -import { AnalysisOutputError } from "../domain/analysisErrorCore.js"; -import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; +import { err, ok } from "../../domain/result.js"; +import { AnalysisOutputError } from "../../domain/analysisErrorCore.js"; +import { projectAnalysisError } from "../../domain/analysisErrorProjection.js"; type Input = z.output; /** Build a UI-to-code trace from the active app and selected native provider. */ diff --git a/src/application/NativeValueTrace.test.ts b/src/application/native/NativeValueTrace.test.ts similarity index 93% rename from src/application/NativeValueTrace.test.ts rename to src/application/native/NativeValueTrace.test.ts index 2d4d0e08af..7f9be52d93 100644 --- a/src/application/NativeValueTrace.test.ts +++ b/src/application/native/NativeValueTrace.test.ts @@ -3,12 +3,12 @@ import { traceNativeValues } from "./NativeValueTrace.js"; import { createAnalysisExecution, type AnalysisOperationPort, -} from "./AnalysisProvider.js"; -import { ghidraFunctionDossier } from "../domain/ghidraValues.fixture.js"; -import { functionDossierSchema } from "../domain/hopperValues.js"; -import { jsonValueSchema } from "../domain/jsonValue.js"; -import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; -import { ok, err } from "../domain/result.js"; +} from "../AnalysisProvider.js"; +import { ghidraFunctionDossier } from "../../domain/ghidraValues.fixture.js"; +import { functionDossierSchema } from "../../domain/hopperValues.js"; +import { jsonValueSchema } from "../../domain/jsonValue.js"; +import { AnalysisCancelledError } from "../../domain/analysisErrorCore.js"; +import { ok, err } from "../../domain/result.js"; const subject = { path: "/fixture", diff --git a/src/application/NativeValueTrace.ts b/src/application/native/NativeValueTrace.ts similarity index 96% rename from src/application/NativeValueTrace.ts rename to src/application/native/NativeValueTrace.ts index 9da1db7ce7..b149255703 100644 --- a/src/application/NativeValueTrace.ts +++ b/src/application/native/NativeValueTrace.ts @@ -1,17 +1,17 @@ -import { functionDossierSchema } from "../domain/hopperValues.js"; -import { nativeCallTargetsSchema } from "../domain/nativeInstruction.js"; +import { functionDossierSchema } from "../../domain/hopperValues.js"; +import { nativeCallTargetsSchema } from "../../domain/native/nativeInstruction.js"; import { nativeValueTraceInputSchema, nativeValueTraceSchema, -} from "../domain/nativeValueTrace.js"; -import { createEvidence } from "../domain/evidence.js"; +} from "../../domain/native/nativeValueTrace.js"; +import { createEvidence } from "../../domain/evidence.js"; import { AnalysisCancelledError, AnalysisOutputError, -} from "../domain/analysisErrorCore.js"; -import { err, ok } from "../domain/result.js"; -import type { AnalysisOperationPort } from "./AnalysisProvider.js"; -import type { EnhancedResult } from "./EnhancedToolTypes.js"; +} from "../../domain/analysisErrorCore.js"; +import { err, ok } from "../../domain/result.js"; +import type { AnalysisOperationPort } from "../AnalysisProvider.js"; +import type { EnhancedResult } from "../EnhancedToolTypes.js"; /** Compose bounded high-p-code def-use graphs across exactly referenced call destinations. */ export const traceNativeValues = async ( diff --git a/src/cli/utilityCommands.ts b/src/cli/utilityCommands.ts index 6b03ed6a3c..79a8a74334 100644 --- a/src/cli/utilityCommands.ts +++ b/src/cli/utilityCommands.ts @@ -13,7 +13,7 @@ import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; import { PRODUCT_IDENTITY } from "../identity.js"; import { logCliCommand } from "../cliLogging.js"; import { CLI_COMMANDS } from "../cliCommandNames.js"; -import { swiftSymbolsSchema } from "../contracts/nativeToolContracts.js"; +import { swiftSymbolsSchema } from "../contracts/native/nativeToolContracts.js"; import type { Logger } from "../logger.js"; import { isReferenceSourceImportCliFailure } from "./referenceSourceImportStatus.js"; import type { CliInstance } from "./types.js"; diff --git a/src/contracts/contractSnapshot.test.ts b/src/contracts/contractSnapshot.test.ts index 44e56a4da7..1de10c515e 100644 --- a/src/contracts/contractSnapshot.test.ts +++ b/src/contracts/contractSnapshot.test.ts @@ -4,7 +4,7 @@ import { z } from "zod"; import { ENHANCED_TOOL_CONTRACTS } from "./enhancedToolContracts.js"; import { OFFICIAL_TOOL_CONTRACTS } from "./officialToolContracts.js"; import { SESSION_TOOL_CONTRACTS } from "./sessionToolContracts.js"; -import { NATIVE_TOOL_CONTRACTS } from "./nativeToolContracts.js"; +import { NATIVE_TOOL_CONTRACTS } from "./native/nativeToolContracts.js"; import { ARTIFACT_TOOL_CONTRACTS } from "./artifactToolContracts.js"; import { FIRMWARE_TOOL_CONTRACTS } from "./firmware/firmwareToolContracts.js"; import { ANDROID_TOOL_CONTRACTS } from "./android/androidToolContracts.js"; diff --git a/src/contracts/enhancedInputs.ts b/src/contracts/enhancedInputs.ts index 10b400f8c0..1cc8cf601b 100644 --- a/src/contracts/enhancedInputs.ts +++ b/src/contracts/enhancedInputs.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { nativeValueTraceInputSchema } from "../domain/nativeValueTrace.js"; +import { nativeValueTraceInputSchema } from "../domain/native/nativeValueTrace.js"; const traceLiteralInputSchema = z.strictObject({ query: z.string().min(1), case_sensitive: z.boolean().default(false), diff --git a/src/contracts/managed/managedWorkflowExamples.ts b/src/contracts/managed/managedWorkflowExamples.ts index 6340b2c2c5..e975c5d205 100644 --- a/src/contracts/managed/managedWorkflowExamples.ts +++ b/src/contracts/managed/managedWorkflowExamples.ts @@ -3,7 +3,7 @@ import type { ManagedMemberInspection, ManagedNativeBoundaryInspection, } from "../../domain/managed/managedArtifact.js"; -import type { InspectMacho } from "../../domain/nativeInspection.js"; +import type { InspectMacho } from "../../domain/native/nativeInspection.js"; const MANAGED_STATIC_EXAMPLE_PROVIDER = { id: "rea-dotnet-static", diff --git a/src/contracts/nativeToolContracts.ts b/src/contracts/native/nativeToolContracts.ts similarity index 90% rename from src/contracts/nativeToolContracts.ts rename to src/contracts/native/nativeToolContracts.ts index 9a5a0f2450..1e3785d4c0 100644 --- a/src/contracts/nativeToolContracts.ts +++ b/src/contracts/native/nativeToolContracts.ts @@ -2,13 +2,13 @@ import { z } from "zod"; import { nativeUiObservationInputSchema, nativeUiScenarioInputSchema, -} from "../domain/nativeUiObservation.js"; +} from "../../domain/native/nativeUiObservation.js"; -import type { ToolContract } from "./toolContracts.js"; -import { nativeOutputSchemas } from "./toolOutputSchemas.js"; -import { jsonValueSchema } from "../domain/jsonValue.js"; -import { toolContractMetadata } from "./toolEffects.js"; -import { requireOutputSchema } from "./toolOutputSchemaPrimitives.js"; +import type { ToolContract } from "../toolContracts.js"; +import { nativeOutputSchemas } from "../toolOutputSchemas.js"; +import { jsonValueSchema } from "../../domain/jsonValue.js"; +import { toolContractMetadata } from "../toolEffects.js"; +import { requireOutputSchema } from "../toolOutputSchemaPrimitives.js"; const examples: Readonly>>> = { inspect_macho: {}, diff --git a/src/contracts/officialToolContracts.ts b/src/contracts/officialToolContracts.ts index d23e5e191d..45efe5072d 100644 --- a/src/contracts/officialToolContracts.ts +++ b/src/contracts/officialToolContracts.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { nativeFunctionAnnotationsInputSchema } from "../domain/nativeFunctionAnnotations.js"; +import { nativeFunctionAnnotationsInputSchema } from "../domain/native/nativeFunctionAnnotations.js"; import { officialOutputSchemas, @@ -14,8 +14,8 @@ import { } from "./toolContractHelpers.js"; import type { ToolContract } from "./toolContractTypes.js"; import { toolContractMetadata } from "./toolEffects.js"; -import { nativeDataTypeInputSchema } from "../domain/nativeDataType.js"; -import { nativeInstructionInputSchema } from "../domain/nativeInstruction.js"; +import { nativeDataTypeInputSchema } from "../domain/native/nativeDataType.js"; +import { nativeInstructionInputSchema } from "../domain/native/nativeInstruction.js"; import { functionInstructionInputSchema } from "./functionInstructionContract.js"; import { HOPPER_MEMORY_TOOL_DEFINITIONS } from "./hopperMemoryContracts.js"; import { analysisSearchInput } from "./analysisSearchContract.js"; diff --git a/src/contracts/toolContracts.test.ts b/src/contracts/toolContracts.test.ts index 657e6d0848..6fec3a226c 100644 --- a/src/contracts/toolContracts.test.ts +++ b/src/contracts/toolContracts.test.ts @@ -9,7 +9,7 @@ import { MANAGED_TOOL_CONTRACTS } from "./managed/managedToolContracts.js"; import { FIRMWARE_TOOL_CONTRACTS } from "./firmware/firmwareToolContracts.js"; import { ANDROID_TOOL_CONTRACTS } from "./android/androidToolContracts.js"; import { MANAGED_WORKFLOW_TOOL_CONTRACTS } from "./managed/managedWorkflowToolContracts.js"; -import { NATIVE_TOOL_CONTRACTS } from "./nativeToolContracts.js"; +import { NATIVE_TOOL_CONTRACTS } from "./native/nativeToolContracts.js"; import { BROWSER_PROVIDER_TOOL_CONTRACTS } from "./browserProviderToolContracts.js"; import { ELECTRON_TOOL_CONTRACTS } from "./javascript/electronToolContracts.js"; import { JAVASCRIPT_RUNTIME_OBSERVATION_TOOL_CONTRACTS } from "./javascript/javascriptRuntimeObservationToolContracts.js"; diff --git a/src/contracts/toolContracts.ts b/src/contracts/toolContracts.ts index 5ab3ffec15..dd3896c437 100644 --- a/src/contracts/toolContracts.ts +++ b/src/contracts/toolContracts.ts @@ -1,4 +1,4 @@ -import { NATIVE_TOOL_CONTRACTS } from "./nativeToolContracts.js"; +import { NATIVE_TOOL_CONTRACTS } from "./native/nativeToolContracts.js"; import { ARTIFACT_TOOL_CONTRACTS } from "./artifactToolContracts.js"; import { MANAGED_TOOL_CONTRACTS } from "./managed/managedToolContracts.js"; import { FIRMWARE_TOOL_CONTRACTS } from "./firmware/firmwareToolContracts.js"; diff --git a/src/contracts/toolOutputSchemaGroups.ts b/src/contracts/toolOutputSchemaGroups.ts index eb0fb000e1..d939ff2379 100644 --- a/src/contracts/toolOutputSchemaGroups.ts +++ b/src/contracts/toolOutputSchemaGroups.ts @@ -1,13 +1,13 @@ import { z } from "zod"; -import { nativeFunctionAnnotationsSchema } from "../domain/nativeFunctionAnnotations.js"; -import { nativeLoadImageSchema } from "../domain/nativeLoadImage.js"; -import { nativeUiResultSchema } from "../domain/nativeUiObservation.js"; -import { nativeValueTraceSchema } from "../domain/nativeValueTrace.js"; -import { nativeDataTypeSchema } from "../domain/nativeDataType.js"; +import { nativeFunctionAnnotationsSchema } from "../domain/native/nativeFunctionAnnotations.js"; +import { nativeLoadImageSchema } from "../domain/native/nativeLoadImage.js"; +import { nativeUiResultSchema } from "../domain/native/nativeUiObservation.js"; +import { nativeValueTraceSchema } from "../domain/native/nativeValueTrace.js"; +import { nativeDataTypeSchema } from "../domain/native/nativeDataType.js"; import { nativeInstructionSchema, nativeCallTargetsSchema, -} from "../domain/nativeInstruction.js"; +} from "../domain/native/nativeInstruction.js"; import { jsonValueSchema } from "../domain/jsonValue.js"; import { residualUnknownSchema } from "../domain/residualUnknown.js"; import { evidenceBundleSchema } from "../domain/evidenceBundle.js"; @@ -20,14 +20,14 @@ import { functionInstructionWindowSchema, referenceKindSchema, } from "../domain/hopperValues.js"; -import { nativeApiInspectionResultSchema } from "../domain/nativeApiBoundary.js"; +import { nativeApiInspectionResultSchema } from "../domain/native/nativeApiBoundary.js"; import { demangleSwiftSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, listArchitecturesSchema, -} from "../domain/nativeInspection.js"; +} from "../domain/native/nativeInspection.js"; import { artifactExtractionResultSchema } from "../domain/artifactGraph.js"; import { artifactInspectionResultSchema } from "../domain/artifactInspection.js"; import { interfaceBuilderAnalysisSchema } from "../domain/apple/interfaceBuilderGraph.js"; @@ -50,8 +50,8 @@ import { callPathResultSchema } from "../domain/callPath.js"; import { staticRuntimeCorrelationResultSchema } from "../domain/staticRuntimeCorrelation.js"; import { reconstructionVerificationResultSchema } from "../domain/reconstructionVerification.js"; import { analysisErrorProjectionSchema } from "./errorSchemas.js"; -import { nativeDispatchMetadataResultSchema } from "../domain/objcSwiftMetadata.js"; -import { nativeInvestigationTraceSchema } from "../domain/nativeInvestigationGraph.js"; +import { nativeDispatchMetadataResultSchema } from "../domain/native/objcSwiftMetadata.js"; +import { nativeInvestigationTraceSchema } from "../domain/native/nativeInvestigationGraph.js"; import { addressList, addressedValue, diff --git a/src/domain/apple/interfaceBuilderGraph.ts b/src/domain/apple/interfaceBuilderGraph.ts index 22d8a544b8..fbab951709 100644 --- a/src/domain/apple/interfaceBuilderGraph.ts +++ b/src/domain/apple/interfaceBuilderGraph.ts @@ -10,7 +10,7 @@ import { nativeInvestigationGraphSchema, nativeInvestigationNodeSchema, nativeInvestigationTraceLimitsSchema, -} from "../nativeInvestigationGraph.js"; +} from "../native/nativeInvestigationGraph.js"; export { parseInterfaceBuilderRecords } from "./interfaceBuilderKeyedArchive.js"; diff --git a/src/domain/hopperValues.ts b/src/domain/hopperValues.ts index 8161a796f9..2add2a1d13 100644 --- a/src/domain/hopperValues.ts +++ b/src/domain/hopperValues.ts @@ -3,8 +3,8 @@ import { z } from "zod"; import type { JsonValue } from "./jsonValue.js"; import { err, ok, type Result } from "./result.js"; -import { nativeApiBoundarySchema } from "./nativeApiBoundary.js"; -import { nativeValueFlowSchema } from "./nativeValueFlow.js"; +import { nativeApiBoundarySchema } from "./native/nativeApiBoundary.js"; +import { nativeValueFlowSchema } from "./native/nativeValueFlow.js"; import { AnalysisOutputError } from "./analysisErrorCore.js"; import { HopperProtocolError } from "./hopperErrors.js"; diff --git a/src/domain/managed/managedNativeVerificationMatch.ts b/src/domain/managed/managedNativeVerificationMatch.ts index 20c2dd14b9..d18f95118f 100644 --- a/src/domain/managed/managedNativeVerificationMatch.ts +++ b/src/domain/managed/managedNativeVerificationMatch.ts @@ -5,7 +5,7 @@ import canonicalize from "canonicalize"; import { parseEvidence } from "../evidence.js"; import { functionDossierSchema } from "../hopperValues.js"; -import { inspectMachoSchema } from "../nativeInspection.js"; +import { inspectMachoSchema } from "../native/nativeInspection.js"; import type { ManagedNativeBoundaryInspection } from "./managedArtifact.js"; import type { JsonValue } from "../jsonValue.js"; import { diff --git a/src/domain/nativeApiBoundary.ts b/src/domain/native/nativeApiBoundary.ts similarity index 100% rename from src/domain/nativeApiBoundary.ts rename to src/domain/native/nativeApiBoundary.ts diff --git a/src/domain/nativeDataType.ts b/src/domain/native/nativeDataType.ts similarity index 100% rename from src/domain/nativeDataType.ts rename to src/domain/native/nativeDataType.ts diff --git a/src/domain/nativeFunctionAnnotations.ts b/src/domain/native/nativeFunctionAnnotations.ts similarity index 96% rename from src/domain/nativeFunctionAnnotations.ts rename to src/domain/native/nativeFunctionAnnotations.ts index e0ec49eaff..046200e920 100644 --- a/src/domain/nativeFunctionAnnotations.ts +++ b/src/domain/native/nativeFunctionAnnotations.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { functionDossierSchema } from "./hopperValues.js"; +import { functionDossierSchema } from "../hopperValues.js"; /** One explicit function's analyst-authored metadata changes. */ export const nativeFunctionAnnotationsInputSchema = z diff --git a/src/domain/nativeInspection.ts b/src/domain/native/nativeInspection.ts similarity index 99% rename from src/domain/nativeInspection.ts rename to src/domain/native/nativeInspection.ts index 30796ad4c7..072e8d2726 100644 --- a/src/domain/nativeInspection.ts +++ b/src/domain/native/nativeInspection.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { jsonValueSchema } from "./jsonValue.js"; +import { jsonValueSchema } from "../jsonValue.js"; const hexAddress = z.string().regex(/^0x[a-fA-F0-9]+$/u); const coverage = (item: Schema) => diff --git a/src/domain/nativeInstruction.ts b/src/domain/native/nativeInstruction.ts similarity index 100% rename from src/domain/nativeInstruction.ts rename to src/domain/native/nativeInstruction.ts diff --git a/src/domain/nativeInvestigationGraph.test.ts b/src/domain/native/nativeInvestigationGraph.test.ts similarity index 99% rename from src/domain/nativeInvestigationGraph.test.ts rename to src/domain/native/nativeInvestigationGraph.test.ts index 160d296601..0154583191 100644 --- a/src/domain/nativeInvestigationGraph.test.ts +++ b/src/domain/native/nativeInvestigationGraph.test.ts @@ -8,7 +8,7 @@ import { import { buildInterfaceBuilderAnalysis, interfaceBuilderLimitsSchema, -} from "./apple/interfaceBuilderGraph.js"; +} from "../apple/interfaceBuilderGraph.js"; const evidence = [ { diff --git a/src/domain/nativeInvestigationGraph.ts b/src/domain/native/nativeInvestigationGraph.ts similarity index 99% rename from src/domain/nativeInvestigationGraph.ts rename to src/domain/native/nativeInvestigationGraph.ts index e9c317e379..cc5073d798 100644 --- a/src/domain/nativeInvestigationGraph.ts +++ b/src/domain/native/nativeInvestigationGraph.ts @@ -5,7 +5,7 @@ import { nativeMetadataLocationSchema, type ObjcSwiftMetadata, } from "./objcSwiftMetadata.js"; -import { jsonValueSchema } from "./jsonValue.js"; +import { jsonValueSchema } from "../jsonValue.js"; /** Entity kinds shared by decoded Interface Builder archives and native code. */ export const nativeInvestigationNodeKindSchema = z.enum([ diff --git a/src/domain/nativeLoadImage.ts b/src/domain/native/nativeLoadImage.ts similarity index 98% rename from src/domain/nativeLoadImage.ts rename to src/domain/native/nativeLoadImage.ts index 64f0043daa..568a0de253 100644 --- a/src/domain/nativeLoadImage.ts +++ b/src/domain/native/nativeLoadImage.ts @@ -1,6 +1,6 @@ import { z } from "zod"; import { nativeMetadataRecoverySummarySchema } from "./nativeMetadataRecovery.js"; -import { jsonValueSchema } from "./jsonValue.js"; +import { jsonValueSchema } from "../jsonValue.js"; const integer = z.number().int().min(0).max(Number.MAX_SAFE_INTEGER); const digest = z.string().regex(/^[a-f0-9]{64}$/u); diff --git a/src/domain/nativeMetadataRecovery.test.ts b/src/domain/native/nativeMetadataRecovery.test.ts similarity index 97% rename from src/domain/nativeMetadataRecovery.test.ts rename to src/domain/native/nativeMetadataRecovery.test.ts index edcf385498..0f1d486fcb 100644 --- a/src/domain/nativeMetadataRecovery.test.ts +++ b/src/domain/native/nativeMetadataRecovery.test.ts @@ -3,7 +3,7 @@ import { nativeMetadataRecoverySchema, nativeMetadataRecoverySummarySchema, } from "./nativeMetadataRecovery.js"; -import { jsonValueSchema } from "./jsonValue.js"; +import { jsonValueSchema } from "../jsonValue.js"; const metadata = { format: "dotnet-nativeaot", diff --git a/src/domain/nativeMetadataRecovery.ts b/src/domain/native/nativeMetadataRecovery.ts similarity index 100% rename from src/domain/nativeMetadataRecovery.ts rename to src/domain/native/nativeMetadataRecovery.ts diff --git a/src/domain/nativeUiObservation.ts b/src/domain/native/nativeUiObservation.ts similarity index 98% rename from src/domain/nativeUiObservation.ts rename to src/domain/native/nativeUiObservation.ts index 4e324c85f8..9c56488f44 100644 --- a/src/domain/nativeUiObservation.ts +++ b/src/domain/native/nativeUiObservation.ts @@ -2,7 +2,7 @@ import { createHash } from "node:crypto"; import { z } from "zod"; -import { decodeCanonicalBase64 } from "./webScreenshot.js"; +import { decodeCanonicalBase64 } from "../webScreenshot.js"; const scope = { pid: z.number().int().positive(), diff --git a/src/domain/nativeValueFlow.ts b/src/domain/native/nativeValueFlow.ts similarity index 100% rename from src/domain/nativeValueFlow.ts rename to src/domain/native/nativeValueFlow.ts diff --git a/src/domain/nativeValueTrace.ts b/src/domain/native/nativeValueTrace.ts similarity index 100% rename from src/domain/nativeValueTrace.ts rename to src/domain/native/nativeValueTrace.ts diff --git a/src/domain/objcSwiftMetadata.test.ts b/src/domain/native/objcSwiftMetadata.test.ts similarity index 100% rename from src/domain/objcSwiftMetadata.test.ts rename to src/domain/native/objcSwiftMetadata.test.ts diff --git a/src/domain/objcSwiftMetadata.ts b/src/domain/native/objcSwiftMetadata.ts similarity index 100% rename from src/domain/objcSwiftMetadata.ts rename to src/domain/native/objcSwiftMetadata.ts diff --git a/src/ghidra/GhidraAnnotations.test.ts b/src/ghidra/GhidraAnnotations.test.ts index 4107d746a0..ee7745f8b4 100644 --- a/src/ghidra/GhidraAnnotations.test.ts +++ b/src/ghidra/GhidraAnnotations.test.ts @@ -1,6 +1,6 @@ import { functionDossierSchema } from "../domain/hopperValues.js"; import { describe, expect, it } from "vitest"; -import { nativeFunctionAnnotationsInputSchema } from "../domain/nativeFunctionAnnotations.js"; +import { nativeFunctionAnnotationsInputSchema } from "../domain/native/nativeFunctionAnnotations.js"; import { ghidraFunctionDossier } from "../domain/ghidraValues.fixture.js"; import { parseGhidraFunctionInput, diff --git a/src/ghidra/GhidraDosComLoadImage.test.ts b/src/ghidra/GhidraDosComLoadImage.test.ts index 88d763f0e7..5045729332 100644 --- a/src/ghidra/GhidraDosComLoadImage.test.ts +++ b/src/ghidra/GhidraDosComLoadImage.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from "vitest"; import { attestGhidraDosComLoadImage } from "./GhidraLoadImageValues.js"; import { fixtureDosComLoadImage } from "./GhidraLoadImage.fixture.js"; -import type { NativeLoadImageObservation } from "../domain/nativeLoadImage.js"; +import type { NativeLoadImageObservation } from "../domain/native/nativeLoadImage.js"; const mutations: ReadonlyArray< readonly [string, (o: NativeLoadImageObservation) => void] diff --git a/src/ghidra/GhidraFunctionValues.ts b/src/ghidra/GhidraFunctionValues.ts index 1429dadd62..cfd1aaf696 100644 --- a/src/ghidra/GhidraFunctionValues.ts +++ b/src/ghidra/GhidraFunctionValues.ts @@ -2,12 +2,12 @@ import { z } from "zod"; import { nativeFunctionAnnotationsInputSchema, nativeFunctionAnnotationsSchema, -} from "../domain/nativeFunctionAnnotations.js"; -import { nativeDataTypeSchema } from "../domain/nativeDataType.js"; +} from "../domain/native/nativeFunctionAnnotations.js"; +import { nativeDataTypeSchema } from "../domain/native/nativeDataType.js"; import { nativeInstructionSchema, nativeCallTargetsSchema, -} from "../domain/nativeInstruction.js"; +} from "../domain/native/nativeInstruction.js"; import { AnalysisInputError, @@ -24,8 +24,8 @@ import { jsonValueSchema, type JsonValue, } from "../domain/jsonValue.js"; -import { nativeApiBoundarySchema } from "../domain/nativeApiBoundary.js"; -import { nativeValueFlowSchema } from "../domain/nativeValueFlow.js"; +import { nativeApiBoundarySchema } from "../domain/native/nativeApiBoundary.js"; +import { nativeValueFlowSchema } from "../domain/native/nativeValueFlow.js"; import { err, ok, type Result } from "../domain/result.js"; import { ghidraIdentifierSchema, diff --git a/src/ghidra/GhidraInventoryValues.ts b/src/ghidra/GhidraInventoryValues.ts index 5d56c698c3..9f08c5fb3a 100644 --- a/src/ghidra/GhidraInventoryValues.ts +++ b/src/ghidra/GhidraInventoryValues.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { nativeLoadImageObservationSchema } from "../domain/nativeLoadImage.js"; +import { nativeLoadImageObservationSchema } from "../domain/native/nativeLoadImage.js"; import { AnalysisInputError, diff --git a/src/ghidra/GhidraLoadImage.fixture.ts b/src/ghidra/GhidraLoadImage.fixture.ts index d47fbd1b15..31e55b0a9e 100644 --- a/src/ghidra/GhidraLoadImage.fixture.ts +++ b/src/ghidra/GhidraLoadImage.fixture.ts @@ -1,6 +1,6 @@ import { createHash } from "node:crypto"; import { dosMz } from "../domain/binaryTarget.fixture.js"; -import type { NativeLoadImageObservation } from "../domain/nativeLoadImage.js"; +import type { NativeLoadImageObservation } from "../domain/native/nativeLoadImage.js"; const hash = (bytes: Buffer): string => createHash("sha256").update(bytes).digest("hex"); diff --git a/src/ghidra/GhidraLoadImageAttest.ts b/src/ghidra/GhidraLoadImageAttest.ts index e8319dce27..3a8048b6fa 100644 --- a/src/ghidra/GhidraLoadImageAttest.ts +++ b/src/ghidra/GhidraLoadImageAttest.ts @@ -5,7 +5,7 @@ import { jsonValueSchema, type JsonValue } from "../domain/jsonValue.js"; import { nativeLoadImageObservationSchema, nativeLoadImageSchema, -} from "../domain/nativeLoadImage.js"; +} from "../domain/native/nativeLoadImage.js"; import { ProviderAdapterError } from "../domain/providerAdapterError.js"; import { err, ok, type Result } from "../domain/result.js"; import { diff --git a/src/ghidra/GhidraLoadImageValues.test.ts b/src/ghidra/GhidraLoadImageValues.test.ts index d212be3cde..8fe25a9d7c 100644 --- a/src/ghidra/GhidraLoadImageValues.test.ts +++ b/src/ghidra/GhidraLoadImageValues.test.ts @@ -2,8 +2,8 @@ import { describe, expect, it } from "vitest"; import { createHash } from "node:crypto"; import { attestGhidraDosLoadImage } from "./GhidraLoadImageValues.js"; import { fixtureDosLoadImage } from "./GhidraLoadImage.fixture.js"; -import { nativeLoadImageObservationSchema } from "../domain/nativeLoadImage.js"; -import type { NativeLoadImageObservation } from "../domain/nativeLoadImage.js"; +import { nativeLoadImageObservationSchema } from "../domain/native/nativeLoadImage.js"; +import type { NativeLoadImageObservation } from "../domain/native/nativeLoadImage.js"; const damage: ReadonlyArray< readonly [string, (observation: NativeLoadImageObservation) => void] diff --git a/src/ghidra/GhidraLoadImageValues.ts b/src/ghidra/GhidraLoadImageValues.ts index 0310a8fb47..b8aec0a3d7 100644 --- a/src/ghidra/GhidraLoadImageValues.ts +++ b/src/ghidra/GhidraLoadImageValues.ts @@ -4,7 +4,7 @@ import { type NativeLoadImage, type NativeLoadImageCheck, type NativeLoadImageObservation, -} from "../domain/nativeLoadImage.js"; +} from "../domain/native/nativeLoadImage.js"; import { parseDosMzHeader, type DosMzHeader } from "../domain/dosMz.js"; import type { JsonValue } from "../domain/jsonValue.js"; import { validateDosComLength } from "../domain/dosCom.js"; diff --git a/src/native/AppleDispatchCoverage.ts b/src/native/AppleDispatchCoverage.ts index e0165bc884..6114a8e872 100644 --- a/src/native/AppleDispatchCoverage.ts +++ b/src/native/AppleDispatchCoverage.ts @@ -1,4 +1,4 @@ -import type { ObjcSwiftMetadata } from "../domain/objcSwiftMetadata.js"; +import type { ObjcSwiftMetadata } from "../domain/native/objcSwiftMetadata.js"; import type { PointerFixups } from "./AppleMachoFixups.js"; const describeFixups = (fixups: PointerFixups): string => { diff --git a/src/native/AppleDispatchMetadata.ts b/src/native/AppleDispatchMetadata.ts index 5b10b34c2e..94daaf9f8e 100644 --- a/src/native/AppleDispatchMetadata.ts +++ b/src/native/AppleDispatchMetadata.ts @@ -5,7 +5,7 @@ import { objcSwiftMetadataSchema, nativeDispatchMetadataResultSchema, type ObjcSwiftMetadata, -} from "../domain/objcSwiftMetadata.js"; +} from "../domain/native/objcSwiftMetadata.js"; import type { BinaryTarget } from "../domain/binaryTarget.js"; import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; import { EvidenceIntegrityError } from "../domain/evidenceErrors.js"; diff --git a/src/native/AppleObjcCategories.ts b/src/native/AppleObjcCategories.ts index 31fb3881f5..10d5a13df8 100644 --- a/src/native/AppleObjcCategories.ts +++ b/src/native/AppleObjcCategories.ts @@ -1,4 +1,4 @@ -import type { ObjcSwiftMetadata } from "../domain/objcSwiftMetadata.js"; +import type { ObjcSwiftMetadata } from "../domain/native/objcSwiftMetadata.js"; import type { Section } from "./AppleMachoSelection.js"; import type { ObjcDispatchReaders } from "./AppleObjcDispatchFacets.js"; import { readObjcPropertiesOf } from "./AppleObjcProperties.js"; diff --git a/src/native/AppleObjcDispatchFacets.ts b/src/native/AppleObjcDispatchFacets.ts index b030a85866..e3485e9c14 100644 --- a/src/native/AppleObjcDispatchFacets.ts +++ b/src/native/AppleObjcDispatchFacets.ts @@ -1,4 +1,4 @@ -import type { ObjcSwiftMetadata } from "../domain/objcSwiftMetadata.js"; +import type { ObjcSwiftMetadata } from "../domain/native/objcSwiftMetadata.js"; import type { Segment, Section } from "./AppleMachoSelection.js"; import { boundClassName, decodeObjcCategories } from "./AppleObjcCategories.js"; import { readObjcPropertiesOf } from "./AppleObjcProperties.js"; diff --git a/src/native/AppleObjcProperties.ts b/src/native/AppleObjcProperties.ts index 34fa8d3d4a..4aac58a18c 100644 --- a/src/native/AppleObjcProperties.ts +++ b/src/native/AppleObjcProperties.ts @@ -1,6 +1,6 @@ import type { z } from "zod"; -import type { objcPropertySchema } from "../domain/objcSwiftMetadata.js"; +import type { objcPropertySchema } from "../domain/native/objcSwiftMetadata.js"; type ObjcProperty = z.infer; diff --git a/src/native/AppleObjcProtocols.ts b/src/native/AppleObjcProtocols.ts index f085310fff..20066ca5c7 100644 --- a/src/native/AppleObjcProtocols.ts +++ b/src/native/AppleObjcProtocols.ts @@ -1,4 +1,4 @@ -import type { ObjcSwiftMetadata } from "../domain/objcSwiftMetadata.js"; +import type { ObjcSwiftMetadata } from "../domain/native/objcSwiftMetadata.js"; import type { SwiftMetadataReaders } from "./AppleSwiftVtables.js"; /** Read protocol lists and absolute protocol method declarations with cycle-safe identities. */ diff --git a/src/native/AppleSwiftDispatchFacets.ts b/src/native/AppleSwiftDispatchFacets.ts index 95f8c81fae..ac6507d1d8 100644 --- a/src/native/AppleSwiftDispatchFacets.ts +++ b/src/native/AppleSwiftDispatchFacets.ts @@ -1,4 +1,4 @@ -import type { ObjcSwiftMetadata } from "../domain/objcSwiftMetadata.js"; +import type { ObjcSwiftMetadata } from "../domain/native/objcSwiftMetadata.js"; import type { Segment, Section } from "./AppleMachoSelection.js"; /** Resolved file-backed metadata location from the Mach-O layout. */ diff --git a/src/native/AppleSwiftVtables.ts b/src/native/AppleSwiftVtables.ts index fc2e6012f4..1cb843238f 100644 --- a/src/native/AppleSwiftVtables.ts +++ b/src/native/AppleSwiftVtables.ts @@ -2,7 +2,7 @@ import type { ObjcSwiftMetadata, NativeMetadataEvidence, NativeMetadataLocation, -} from "../domain/objcSwiftMetadata.js"; +} from "../domain/native/objcSwiftMetadata.js"; /** Byte readers shared with the validated Mach-O metadata boundary. */ export interface SwiftMetadataReaders { diff --git a/src/native/NativeMacOSProvider.ts b/src/native/NativeMacOSProvider.ts index dd7c54802d..45b5f272ba 100644 --- a/src/native/NativeMacOSProvider.ts +++ b/src/native/NativeMacOSProvider.ts @@ -21,7 +21,7 @@ import { import { NATIVE_TOOL_CONTRACTS, type NativeToolName, -} from "../contracts/nativeToolContracts.js"; +} from "../contracts/native/nativeToolContracts.js"; import type { BinaryTarget } from "../domain/binaryTarget.js"; import type { EvidenceLocation } from "../domain/evidence.js"; import { @@ -44,7 +44,7 @@ import { inspectSignatureSchema, listArchitecturesSchema, type NativeCommandInvocation, -} from "../domain/nativeInspection.js"; +} from "../domain/native/nativeInspection.js"; import { err, ok, type Result } from "../domain/result.js"; import { NativeCommandFailure, diff --git a/src/native/NativeMacOSProviderMetadata.ts b/src/native/NativeMacOSProviderMetadata.ts index 837dbcf64f..d5fc5ef137 100644 --- a/src/native/NativeMacOSProviderMetadata.ts +++ b/src/native/NativeMacOSProviderMetadata.ts @@ -2,7 +2,7 @@ import type { CapabilityDescriptor, ProviderIdentity, } from "../application/AnalysisProvider.js"; -import { NATIVE_TOOL_CONTRACTS } from "../contracts/nativeToolContracts.js"; +import { NATIVE_TOOL_CONTRACTS } from "../contracts/native/nativeToolContracts.js"; /** Public identity committed by macOS-native inspection observations. */ export const NATIVE_MACOS_PROVIDER_IDENTITY: ProviderIdentity = Object.freeze({ diff --git a/src/native/NativeMachoInspection.ts b/src/native/NativeMachoInspection.ts index 933d934a18..eb1c6c8de8 100644 --- a/src/native/NativeMachoInspection.ts +++ b/src/native/NativeMachoInspection.ts @@ -4,7 +4,7 @@ import type { AnalysisError } from "../domain/analysisErrorBase.js"; import { inspectMachoSchema, type NativeCommandInvocation, -} from "../domain/nativeInspection.js"; +} from "../domain/native/nativeInspection.js"; import { jsonValueSchema, type JsonValue } from "../domain/jsonValue.js"; import { err, ok, type Result } from "../domain/result.js"; import type { NativeCommandCapture } from "./CommandRunner.js"; diff --git a/src/native/NativeUiObservation.ts b/src/native/NativeUiObservation.ts index 86eac590d5..a3273543a6 100644 --- a/src/native/NativeUiObservation.ts +++ b/src/native/NativeUiObservation.ts @@ -6,7 +6,7 @@ import { nativeUiScenarioInputSchema, nativeUiSnapshotSchema, nativeUiResultSchema, -} from "../domain/nativeUiObservation.js"; +} from "../domain/native/nativeUiObservation.js"; import { AnalysisCancelledError, AnalysisCapabilityUnavailableError, diff --git a/src/native/parsers/codesign.ts b/src/native/parsers/codesign.ts index 1fc31860ec..3a39a389ea 100644 --- a/src/native/parsers/codesign.ts +++ b/src/native/parsers/codesign.ts @@ -1,7 +1,7 @@ import { inspectSignatureSchema, type InspectSignature, -} from "../../domain/nativeInspection.js"; +} from "../../domain/native/nativeInspection.js"; /** * Parse bounded `codesign -d --verbose=4` diagnostics, which Apple emits on diff --git a/src/server/registerNativeTools.ts b/src/server/registerNativeTools.ts index 187bd5afd3..49180d5e45 100644 --- a/src/server/registerNativeTools.ts +++ b/src/server/registerNativeTools.ts @@ -2,7 +2,7 @@ import type { EvidenceWriter } from "../application/investigation/InvestigationR import type { McpServer } from "@modelcontextprotocol/server"; import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; -import { NATIVE_TOOL_CONTRACTS } from "../contracts/nativeToolContracts.js"; +import { NATIVE_TOOL_CONTRACTS } from "../contracts/native/nativeToolContracts.js"; import type { BinaryTarget } from "../domain/binaryTarget.js"; import type { Logger } from "../logger.js"; import { registerEvidenceTools } from "./registerEvidenceTools.js"; diff --git a/tests/boundary/providers/native/nativeSelectedArchitecture.test.ts b/tests/boundary/providers/native/nativeSelectedArchitecture.test.ts index 5e2816454a..7d35ca01c5 100644 --- a/tests/boundary/providers/native/nativeSelectedArchitecture.test.ts +++ b/tests/boundary/providers/native/nativeSelectedArchitecture.test.ts @@ -1,5 +1,5 @@ import { expect, it } from "vitest"; -import { inspectMachoSchema } from "../../../../src/domain/nativeInspection.js"; +import { inspectMachoSchema } from "../../../../src/domain/native/nativeInspection.js"; import { err } from "../../../../src/domain/result.js"; import { NativeCommandFailure } from "../../../../src/native/CommandRunner.js"; import { NativeMacOSProvider } from "../../../../src/native/NativeMacOSProvider.js"; diff --git a/tests/conformance/providers/managed/managedNativeVerification.test.ts b/tests/conformance/providers/managed/managedNativeVerification.test.ts index 0e04138c75..67b547c5e2 100644 --- a/tests/conformance/providers/managed/managedNativeVerification.test.ts +++ b/tests/conformance/providers/managed/managedNativeVerification.test.ts @@ -9,7 +9,7 @@ import { verifyManagedNativeBoundaries, } from "../../../../src/domain/managed/managedNativeVerification.js"; import { managedNativeBoundaryInspectionSchema } from "../../../../src/domain/managed/managedArtifact.js"; -import { inspectMachoSchema } from "../../../../src/domain/nativeInspection.js"; +import { inspectMachoSchema } from "../../../../src/domain/native/nativeInspection.js"; const exampleInput = () => managedNativeVerificationInputSchema.parse(