diff --git a/docs/adr/0001-provider-selection-and-analysis-profiles.md b/docs/adr/0001-provider-selection-and-analysis-profiles.md index 562aa632ee..9430f1d8e3 100644 --- a/docs/adr/0001-provider-selection-and-analysis-profiles.md +++ b/docs/adr/0001-provider-selection-and-analysis-profiles.md @@ -29,9 +29,9 @@ same bytes could therefore disagree because of language, compiler, loader, analyzer, or provider-version differences while appearing target-compatible. The decision addressed the earlier representations of -[`CompositeProvider`](../../src/application/CompositeProvider.ts), +[`CompositeProvider`](../../src/application/binary/CompositeProvider.ts), [runtime composition](../../src/application/runtime.ts), -[`BinarySession`](../../src/application/BinarySession.ts), +[`BinarySession`](../../src/application/binary/BinarySession.ts), [`BinaryTarget`](../../src/domain/binaryTarget.ts), [analysis snapshot](../../src/domain/analysisSnapshot.ts), and [session lifecycle inputs](../../src/contracts/sessionLifecycleInputs.ts). diff --git a/docs/capability-migration.md b/docs/capability-migration.md index 278cd5e5fd..99fbfeb5ed 100644 --- a/docs/capability-migration.md +++ b/docs/capability-migration.md @@ -225,6 +225,27 @@ explicit downloader and fixed manifest belong to `scripts/fixtures/android/`. JADX CLI/MCP parity requires the fixed APK and existing audited JAR; synthetic protocol/cancellation success does not establish that engine or an unverified host. +## Binary application ownership + +`src/application/binary/` owns the active session, deep-provider registry and +evaluation, operation routing, disjoint provider composition, lazy auxiliary +clients, cancellation and client cleanup. Its records facade and snapshot +cache/files remain bound to the exact target and analysis profile. Investigation +records still have their separate owner in `src/application/investigation/`. + +`AnalysisProvider.ts` stays shared because its identity/execution types also serve +nonbinary ports. `BinaryTargetResolver.ts` stays shared because Android, firmware, +managed and artifact workflows use its target parsing. The existing `runtime.ts` +remains the exact temporary production wiring entrypoint while direct-analysis +callers are migrated deliberately; application workflows gain no outward +composition dependency. + +The three colocated application tests move with their owner. Composition cases +remain in `tests/composition/analysis-sessions/`; filesystem and SDK cases retain +their boundary lanes. The shared `tests/fixtures/binarySession.ts` factory supports +several capability families. Existing recursive application globs discover the +moved tests; bridge assets and real-verifier entrypoints remain at their owners. + ## Firmware layer and verification ownership Firmware workflows and their existing typed port live in diff --git a/docs/testing.md b/docs/testing.md index fc7a7b2bb3..6c98eeca1f 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -32,6 +32,12 @@ registries but do not cross production filesystem, process, socket, or browser b Boundary tests cross one production boundary. Only acceptance tests assemble the complete runtime or invoke the compiled product surface. +Binary session, registry, lazy-client and snapshot module cases live under +`src/application/binary/`. Their composition cases stay in +`tests/composition/analysis-sessions/`; snapshot persistence and actual SDK calls +stay in the filesystem and MCP boundary lanes. The shared injected session fixture +serves several capabilities and remains under `tests/fixtures/`. + Focused immutable builders and recording ports shared by one test family live beside their production owner as `src/**/*.fixture.ts`. They are typechecked with the suite and excluded from package builds; broader runtime and provider diff --git a/src/application/DirectAnalysis.ts b/src/application/DirectAnalysis.ts index 3d9c82c1c9..412f43ff14 100644 --- a/src/application/DirectAnalysis.ts +++ b/src/application/DirectAnalysis.ts @@ -20,7 +20,7 @@ import { access } from "node:fs/promises"; import { readAnalysisSnapshot, writeAnalysisSnapshot, -} from "./AnalysisSnapshotFiles.js"; +} from "./binary/AnalysisSnapshotFiles.js"; import { parseBinaryTarget } from "./BinaryTargetResolver.js"; import type { BinaryTarget } from "../domain/binaryTarget.js"; import { diff --git a/src/application/AbortablePromise.ts b/src/application/binary/AbortablePromise.ts similarity index 100% rename from src/application/AbortablePromise.ts rename to src/application/binary/AbortablePromise.ts diff --git a/src/application/AnalysisClientCleanup.ts b/src/application/binary/AnalysisClientCleanup.ts similarity index 70% rename from src/application/AnalysisClientCleanup.ts rename to src/application/binary/AnalysisClientCleanup.ts index fedc8cef83..3cd13b2156 100644 --- a/src/application/AnalysisClientCleanup.ts +++ b/src/application/binary/AnalysisClientCleanup.ts @@ -1,7 +1,7 @@ -import { ProviderCleanupError } from "../domain/providerCleanupError.js"; -import { err, ok, type Result } from "../domain/result.js"; -import type { AnalysisError } from "../domain/analysisErrorBase.js"; -import type { AnalysisClient, ExecutionOptions } from "./AnalysisProvider.js"; +import { ProviderCleanupError } from "../../domain/providerCleanupError.js"; +import { err, ok, type Result } from "../../domain/result.js"; +import type { AnalysisError } from "../../domain/analysisErrorBase.js"; +import type { AnalysisClient, ExecutionOptions } from "../AnalysisProvider.js"; /** Close one provider client and normalize unexpected adapter rejection. */ export const closeAnalysisClient = async ( diff --git a/src/application/AnalysisProviderEvaluation.ts b/src/application/binary/AnalysisProviderEvaluation.ts similarity index 89% rename from src/application/AnalysisProviderEvaluation.ts rename to src/application/binary/AnalysisProviderEvaluation.ts index e648a4fd7a..c8cd651b6b 100644 --- a/src/application/AnalysisProviderEvaluation.ts +++ b/src/application/binary/AnalysisProviderEvaluation.ts @@ -1,12 +1,12 @@ import { analysisProfileSchema, type AnalysisProfileCommitment, -} from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; -import { jsonObjectSchema, type JsonValue } from "../domain/jsonValue.js"; -import { err, ok, type Result } from "../domain/result.js"; -import type { AnalysisProviderCandidate } from "./AnalysisProvider.js"; +} from "../../domain/analysisProfile.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import { AnalysisCancelledError } from "../../domain/analysisErrorCore.js"; +import { jsonObjectSchema, type JsonValue } from "../../domain/jsonValue.js"; +import { err, ok, type Result } from "../../domain/result.js"; +import type { AnalysisProviderCandidate } from "../AnalysisProvider.js"; import type { AnalysisProviderCandidateStatus } from "./AnalysisProviderRegistry.js"; import { ABORTED, waitForAbortable } from "./AbortablePromise.js"; diff --git a/src/application/AnalysisProviderRegistry.test.ts b/src/application/binary/AnalysisProviderRegistry.test.ts similarity index 96% rename from src/application/AnalysisProviderRegistry.test.ts rename to src/application/binary/AnalysisProviderRegistry.test.ts index a079f43c0e..acbbae5fc7 100644 --- a/src/application/AnalysisProviderRegistry.test.ts +++ b/src/application/binary/AnalysisProviderRegistry.test.ts @@ -12,13 +12,13 @@ import { type ProviderAvailability, type ProviderIdentity, type ProviderTargetSupport, -} from "./AnalysisProvider.js"; -import { createAnalysisProfile } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import { ProviderAdapterError } from "../domain/providerAdapterError.js"; -import { ProviderSelectionError } from "../domain/providerSelectionError.js"; -import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; -import { err, ok } from "../domain/result.js"; +} from "../AnalysisProvider.js"; +import { createAnalysisProfile } from "../../domain/analysisProfile.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import { ProviderAdapterError } from "../../domain/providerAdapterError.js"; +import { ProviderSelectionError } from "../../domain/providerSelectionError.js"; +import { projectAnalysisError } from "../../domain/analysisErrorProjection.js"; +import { err, ok } from "../../domain/result.js"; const DATABASE_TARGET: BinaryTarget = { path: "/tmp/fixture.hop", diff --git a/src/application/AnalysisProviderRegistry.ts b/src/application/binary/AnalysisProviderRegistry.ts similarity index 96% rename from src/application/AnalysisProviderRegistry.ts rename to src/application/binary/AnalysisProviderRegistry.ts index d39b201f86..cfc2180c36 100644 --- a/src/application/AnalysisProviderRegistry.ts +++ b/src/application/binary/AnalysisProviderRegistry.ts @@ -2,24 +2,24 @@ import { analysisProviderIdSchema, analysisProviderSelectorSchema, type AnalysisProviderSelector, -} from "../contracts/providerSelection.js"; -import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; +} from "../../contracts/providerSelection.js"; +import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import { AnalysisCancelledError } from "../../domain/analysisErrorCore.js"; import { ProviderSelectionError, type ProviderSelectionFailureReason, type ProviderSelectionRejection, -} from "../domain/providerSelectionError.js"; -import { jsonObjectSchema, type JsonValue } from "../domain/jsonValue.js"; -import { err, ok, type Result } from "../domain/result.js"; +} from "../../domain/providerSelectionError.js"; +import { jsonObjectSchema, type JsonValue } from "../../domain/jsonValue.js"; +import { err, ok, type Result } from "../../domain/result.js"; import type { AnalysisProviderCandidate, CapabilityDescriptor, ProviderAvailability, ProviderIdentity, ProviderTargetSupport, -} from "./AnalysisProvider.js"; +} from "../AnalysisProvider.js"; import { evaluateAnalysisProviderCandidate, type AnalysisProviderCandidateEvaluation, diff --git a/src/application/AnalysisSnapshotCache.test.ts b/src/application/binary/AnalysisSnapshotCache.test.ts similarity index 90% rename from src/application/AnalysisSnapshotCache.test.ts rename to src/application/binary/AnalysisSnapshotCache.test.ts index 1458b5c989..1018801481 100644 --- a/src/application/AnalysisSnapshotCache.test.ts +++ b/src/application/binary/AnalysisSnapshotCache.test.ts @@ -1,15 +1,15 @@ import { describe, expect, it } from "vitest"; -import { createAnalysisProfile } from "../domain/analysisProfile.js"; +import { createAnalysisProfile } from "../../domain/analysisProfile.js"; import { ANALYSIS_SNAPSHOT_PROFILE, ANALYSIS_SNAPSHOT_PROVIDER, ANALYSIS_SNAPSHOT_TARGET, -} from "../domain/analysisSnapshot.fixture.js"; -import { createEvidence } from "../domain/evidence.js"; -import { createEvidenceBundle } from "../domain/evidenceBundle.js"; -import { ok } from "../domain/result.js"; -import { createAnalysisExecution } from "./AnalysisProvider.js"; +} from "../../domain/analysisSnapshot.fixture.js"; +import { createEvidence } from "../../domain/evidence.js"; +import { createEvidenceBundle } from "../../domain/evidenceBundle.js"; +import { ok } from "../../domain/result.js"; +import { createAnalysisExecution } from "../AnalysisProvider.js"; import { AnalysisSnapshotCache } from "./AnalysisSnapshotCache.js"; describe("analysis snapshot cache partitioning", () => { diff --git a/src/application/AnalysisSnapshotCache.ts b/src/application/binary/AnalysisSnapshotCache.ts similarity index 92% rename from src/application/AnalysisSnapshotCache.ts rename to src/application/binary/AnalysisSnapshotCache.ts index 1588fb9055..2cb6f705ff 100644 --- a/src/application/AnalysisSnapshotCache.ts +++ b/src/application/binary/AnalysisSnapshotCache.ts @@ -1,11 +1,11 @@ -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { JsonValue } from "../domain/jsonValue.js"; -import type { EvidenceBundle } from "../domain/evidenceBundle.js"; -import { EvidenceIntegrityError } from "../domain/evidenceErrors.js"; -import { NoBinaryOpenError } from "../domain/configurationErrors.js"; -import { type AnalysisError } from "../domain/analysisErrorBase.js"; -import { err, ok, type Result } from "../domain/result.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; +import type { JsonValue } from "../../domain/jsonValue.js"; +import type { EvidenceBundle } from "../../domain/evidenceBundle.js"; +import { EvidenceIntegrityError } from "../../domain/evidenceErrors.js"; +import { NoBinaryOpenError } from "../../domain/configurationErrors.js"; +import { type AnalysisError } from "../../domain/analysisErrorBase.js"; +import { err, ok, type Result } from "../../domain/result.js"; import { analysisQueryId, createAnalysisSnapshotEntry, @@ -18,13 +18,13 @@ import { type AnalysisSnapshotEntry, type AnalysisSnapshotBinding, type AnalysisSnapshotTarget, -} from "../domain/analysisSnapshot.js"; +} from "../../domain/analysisSnapshot.js"; import type { AnalysisExecution, AnalysisOperation, CapabilityDescriptor, -} from "./AnalysisProvider.js"; -import { GENERATED_MCP_TOOL_CATALOG } from "../generatedMcpToolCatalog.js"; +} from "../AnalysisProvider.js"; +import { GENERATED_MCP_TOOL_CATALOG } from "../../generatedMcpToolCatalog.js"; const STATEFUL_OPERATIONS: ReadonlySet = new Set([ "health", diff --git a/src/application/AnalysisSnapshotFiles.ts b/src/application/binary/AnalysisSnapshotFiles.ts similarity index 86% rename from src/application/AnalysisSnapshotFiles.ts rename to src/application/binary/AnalysisSnapshotFiles.ts index 6907ea0053..2841e1dbff 100644 --- a/src/application/AnalysisSnapshotFiles.ts +++ b/src/application/binary/AnalysisSnapshotFiles.ts @@ -2,13 +2,13 @@ import { parseAnalysisSnapshot, serializeAnalysisSnapshot, type AnalysisSnapshot, -} from "../domain/analysisSnapshot.js"; +} from "../../domain/analysisSnapshot.js"; import { EvidenceFileError, EvidenceIntegrityError, -} from "../domain/evidenceErrors.js"; -import { err, ok, type Result } from "../domain/result.js"; -import { readJsonFile, writeTextFile } from "./JsonFiles.js"; +} from "../../domain/evidenceErrors.js"; +import { err, ok, type Result } from "../../domain/result.js"; +import { readJsonFile, writeTextFile } from "../JsonFiles.js"; type SnapshotFailure = EvidenceFileError | EvidenceIntegrityError; diff --git a/src/application/BinarySession.ts b/src/application/binary/BinarySession.ts similarity index 95% rename from src/application/BinarySession.ts rename to src/application/binary/BinarySession.ts index 4f168d2674..7acc843573 100644 --- a/src/application/BinarySession.ts +++ b/src/application/binary/BinarySession.ts @@ -1,31 +1,31 @@ import { randomUUID } from "node:crypto"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; import { analysisProfilesEqual, type AnalysisProfileCommitment, -} from "../domain/analysisProfile.js"; -import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; -import { type AnalysisError } from "../domain/analysisErrorBase.js"; -import { err, ok, type Result } from "../domain/result.js"; -import type { JsonValue } from "../domain/jsonValue.js"; -import { createEvidence } from "../domain/evidence.js"; +} from "../../domain/analysisProfile.js"; +import { AnalysisCancelledError } from "../../domain/analysisErrorCore.js"; +import { type AnalysisError } from "../../domain/analysisErrorBase.js"; +import { err, ok, type Result } from "../../domain/result.js"; +import type { JsonValue } from "../../domain/jsonValue.js"; +import { createEvidence } from "../../domain/evidence.js"; import type { AnalysisClient, AnalysisExecution, ExecutionOptions, AnalysisOperationPort, ProviderIdentity, -} from "./AnalysisProvider.js"; -import type { AnalysisOperation } from "./AnalysisProvider.js"; -import { OFFICIAL_TOOL_CONTRACTS } from "../contracts/officialToolContracts.js"; -import { ENHANCED_TOOL_CONTRACTS } from "../contracts/enhancedToolContracts.js"; +} from "../AnalysisProvider.js"; +import type { AnalysisOperation } from "../AnalysisProvider.js"; +import { OFFICIAL_TOOL_CONTRACTS } from "../../contracts/officialToolContracts.js"; +import { ENHANCED_TOOL_CONTRACTS } from "../../contracts/enhancedToolContracts.js"; import type { BinarySessionPort } from "./BinarySessionPort.js"; import { SessionProviderRouter, type SessionProviderRoute, } from "./SessionProviderRouter.js"; -import { InvestigationRecords } from "./investigation/InvestigationRecords.js"; +import { InvestigationRecords } from "../investigation/InvestigationRecords.js"; import { BinarySessionRecords } from "./BinarySessionRecords.js"; import { binarySessionStatus } from "./BinarySessionStatus.js"; import { diff --git a/src/application/BinarySessionComposition.ts b/src/application/binary/BinarySessionComposition.ts similarity index 82% rename from src/application/BinarySessionComposition.ts rename to src/application/binary/BinarySessionComposition.ts index 60df888a29..42425d467e 100644 --- a/src/application/BinarySessionComposition.ts +++ b/src/application/binary/BinarySessionComposition.ts @@ -1,5 +1,5 @@ -import { InvestigationRecords } from "./investigation/InvestigationRecords.js"; -import type { AnalysisProvider } from "./AnalysisProvider.js"; +import { InvestigationRecords } from "../investigation/InvestigationRecords.js"; +import type { AnalysisProvider } from "../AnalysisProvider.js"; import { AnalysisProviderRegistry } from "./AnalysisProviderRegistry.js"; import { BinarySession } from "./BinarySession.js"; import { SessionProviderRouter } from "./SessionProviderRouter.js"; diff --git a/src/application/BinarySessionExecution.ts b/src/application/binary/BinarySessionExecution.ts similarity index 87% rename from src/application/BinarySessionExecution.ts rename to src/application/binary/BinarySessionExecution.ts index 410bf02237..ccca9eb05b 100644 --- a/src/application/BinarySessionExecution.ts +++ b/src/application/binary/BinarySessionExecution.ts @@ -1,18 +1,18 @@ -import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import { AnalysisCapabilityUnavailableError } from "../domain/analysisErrorCore.js"; -import { NoBinaryOpenError } from "../domain/configurationErrors.js"; -import { ProviderAdapterError } from "../domain/providerAdapterError.js"; -import { type AnalysisError } from "../domain/analysisErrorBase.js"; -import type { JsonValue } from "../domain/jsonValue.js"; -import type { EvidenceSubjectTarget } from "../domain/evidence.js"; -import { err, ok, type Result } from "../domain/result.js"; +import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import { AnalysisCapabilityUnavailableError } from "../../domain/analysisErrorCore.js"; +import { NoBinaryOpenError } from "../../domain/configurationErrors.js"; +import { ProviderAdapterError } from "../../domain/providerAdapterError.js"; +import { type AnalysisError } from "../../domain/analysisErrorBase.js"; +import type { JsonValue } from "../../domain/jsonValue.js"; +import type { EvidenceSubjectTarget } from "../../domain/evidence.js"; +import { err, ok, type Result } from "../../domain/result.js"; import type { AnalysisClient, AnalysisExecution, AnalysisOperation, CapabilityDescriptor, -} from "./AnalysisProvider.js"; +} from "../AnalysisProvider.js"; import { isSnapshotCacheable } from "./AnalysisSnapshotCache.js"; import type { SessionProviderRoute } from "./SessionProviderRouter.js"; diff --git a/src/application/BinarySessionOpen.ts b/src/application/binary/BinarySessionOpen.ts similarity index 83% rename from src/application/BinarySessionOpen.ts rename to src/application/binary/BinarySessionOpen.ts index 45d3a281d4..e0d425ee97 100644 --- a/src/application/BinarySessionOpen.ts +++ b/src/application/binary/BinarySessionOpen.ts @@ -1,17 +1,17 @@ -import type { ExecutableFormatHint } from "../domain/dosCom.js"; -import type { AnalysisProviderSelector } from "../contracts/providerSelection.js"; -import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; +import type { ExecutableFormatHint } from "../../domain/dosCom.js"; +import type { AnalysisProviderSelector } from "../../contracts/providerSelection.js"; +import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; import { snapshotMatchesBinding, snapshotMatchesTarget, snapshotTarget, -} from "../domain/analysisSnapshot.js"; -import type { AnalysisSnapshot } from "../domain/analysisSnapshot.js"; -import { parseBinaryTarget } from "./BinaryTargetResolver.js"; -import { type BinaryTarget } from "../domain/binaryTarget.js"; -import { EvidenceIntegrityError } from "../domain/evidenceErrors.js"; -import { type AnalysisError } from "../domain/analysisErrorBase.js"; -import { err, type Result } from "../domain/result.js"; +} from "../../domain/analysisSnapshot.js"; +import type { AnalysisSnapshot } from "../../domain/analysisSnapshot.js"; +import { parseBinaryTarget } from "../BinaryTargetResolver.js"; +import { type BinaryTarget } from "../../domain/binaryTarget.js"; +import { EvidenceIntegrityError } from "../../domain/evidenceErrors.js"; +import { type AnalysisError } from "../../domain/analysisErrorBase.js"; +import { err, type Result } from "../../domain/result.js"; import type { SessionProviderRoute } from "./SessionProviderRouter.js"; import { SessionProviderRouter } from "./SessionProviderRouter.js"; diff --git a/src/application/BinarySessionPort.ts b/src/application/binary/BinarySessionPort.ts similarity index 66% rename from src/application/BinarySessionPort.ts rename to src/application/binary/BinarySessionPort.ts index b223da7cfc..a8bd37a043 100644 --- a/src/application/BinarySessionPort.ts +++ b/src/application/binary/BinarySessionPort.ts @@ -1,19 +1,19 @@ -import type { InvestigationRecordPort } from "./investigation/InvestigationRecordPort.js"; -import type { ExecutableFormatHint } from "../domain/dosCom.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import type { JsonValue } from "../domain/jsonValue.js"; -import type { AnalysisSnapshot } from "../domain/analysisSnapshot.js"; -import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { AnalysisProviderSelector } from "../contracts/providerSelection.js"; -import type { AnalysisError } from "../domain/analysisErrorBase.js"; -import type { Result } from "../domain/result.js"; +import type { InvestigationRecordPort } from "../investigation/InvestigationRecordPort.js"; +import type { ExecutableFormatHint } from "../../domain/dosCom.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { JsonValue } from "../../domain/jsonValue.js"; +import type { AnalysisSnapshot } from "../../domain/analysisSnapshot.js"; +import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; +import type { AnalysisProviderSelector } from "../../contracts/providerSelection.js"; +import type { AnalysisError } from "../../domain/analysisErrorBase.js"; +import type { Result } from "../../domain/result.js"; import type { AnalysisOperation, AnalysisOperationPort, ExecutionOptions, ProviderIdentity, -} from "./AnalysisProvider.js"; +} from "../AnalysisProvider.js"; /** Target lifecycle used by CLI and MCP without exposing a concrete provider. */ export interface BinarySessionPort diff --git a/src/application/BinarySessionRecords.ts b/src/application/binary/BinarySessionRecords.ts similarity index 88% rename from src/application/BinarySessionRecords.ts rename to src/application/binary/BinarySessionRecords.ts index f8ade2509e..3ec801bda8 100644 --- a/src/application/BinarySessionRecords.ts +++ b/src/application/binary/BinarySessionRecords.ts @@ -1,25 +1,25 @@ -import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { AnalysisSnapshot } from "../domain/analysisSnapshot.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import type { Evidence } from "../domain/evidence.js"; -import type { EvidenceBundle } from "../domain/evidenceBundle.js"; -import { evidenceBundleForTarget } from "../domain/evidenceBundle.js"; -import { EvidenceIntegrityError } from "../domain/evidenceErrors.js"; -import { type AnalysisError } from "../domain/analysisErrorBase.js"; -import { type UnknownRegistryError } from "../domain/unknownRegistryError.js"; +import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; +import type { AnalysisSnapshot } from "../../domain/analysisSnapshot.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { Evidence } from "../../domain/evidence.js"; +import type { EvidenceBundle } from "../../domain/evidenceBundle.js"; +import { evidenceBundleForTarget } from "../../domain/evidenceBundle.js"; +import { EvidenceIntegrityError } from "../../domain/evidenceErrors.js"; +import { type AnalysisError } from "../../domain/analysisErrorBase.js"; +import { type UnknownRegistryError } from "../../domain/unknownRegistryError.js"; import type { RecordUnknownInput, ResidualUnknown, UnknownStatus, UpdateUnknownInput, -} from "../domain/residualUnknown.js"; -import { err, ok, type Result } from "../domain/result.js"; +} from "../../domain/residualUnknown.js"; +import { err, ok, type Result } from "../../domain/result.js"; import type { AnalysisExecution, AnalysisOperation, -} from "./AnalysisProvider.js"; +} from "../AnalysisProvider.js"; import { AnalysisSnapshotCache } from "./AnalysisSnapshotCache.js"; -import { InvestigationRecords } from "./investigation/InvestigationRecords.js"; +import { InvestigationRecords } from "../investigation/InvestigationRecords.js"; export interface ActiveAnalysisBinding { readonly target: BinaryTarget; @@ -146,7 +146,7 @@ export abstract class BinarySessionRecords { profile: AnalysisProfileCommitment, operation: AnalysisOperation, parameters: Readonly< - Record + Record >, ): AnalysisExecution | undefined { return this.#snapshot.lookup(target, profile, operation, parameters); diff --git a/src/application/BinarySessionStatus.ts b/src/application/binary/BinarySessionStatus.ts similarity index 97% rename from src/application/BinarySessionStatus.ts rename to src/application/binary/BinarySessionStatus.ts index 8e4c45daa2..bbffb83116 100644 --- a/src/application/BinarySessionStatus.ts +++ b/src/application/binary/BinarySessionStatus.ts @@ -1,10 +1,10 @@ -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import type { JsonValue } from "../domain/jsonValue.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { JsonValue } from "../../domain/jsonValue.js"; import type { CapabilityDescriptor, ProviderRequestActivitySnapshot, ProviderRuntimeLineageSnapshot, -} from "./AnalysisProvider.js"; +} from "../AnalysisProvider.js"; import type { SessionProviderRoute, SessionProviderRouter, diff --git a/src/application/CompositeProvider.ts b/src/application/binary/CompositeProvider.ts similarity index 94% rename from src/application/CompositeProvider.ts rename to src/application/binary/CompositeProvider.ts index 75c5992f3a..4fd6e79239 100644 --- a/src/application/CompositeProvider.ts +++ b/src/application/binary/CompositeProvider.ts @@ -1,7 +1,7 @@ -import { AnalysisCapabilityUnavailableError } from "../domain/analysisErrorCore.js"; -import { err, ok } from "../domain/result.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; +import { AnalysisCapabilityUnavailableError } from "../../domain/analysisErrorCore.js"; +import { err, ok } from "../../domain/result.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; import type { AnalysisClient, AnalysisClientContext, @@ -9,7 +9,7 @@ import type { AnalysisProvider, CapabilityDescriptor, ProviderIdentity, -} from "./AnalysisProvider.js"; +} from "../AnalysisProvider.js"; import { closeAnalysisClient } from "./AnalysisClientCleanup.js"; /** Synthetic compatibility identity for a deterministic provider set. */ diff --git a/src/application/LazyAnalysisProvider.test.ts b/src/application/binary/LazyAnalysisProvider.test.ts similarity index 90% rename from src/application/LazyAnalysisProvider.test.ts rename to src/application/binary/LazyAnalysisProvider.test.ts index 0808ac1b0f..97540d10f3 100644 --- a/src/application/LazyAnalysisProvider.test.ts +++ b/src/application/binary/LazyAnalysisProvider.test.ts @@ -1,10 +1,13 @@ import { expect, it } from "vitest"; -import { parseBinaryTarget } from "./BinaryTargetResolver.js"; -import type { AnalysisProvider, ProviderIdentity } from "./AnalysisProvider.js"; +import { parseBinaryTarget } from "../BinaryTargetResolver.js"; +import type { + AnalysisProvider, + ProviderIdentity, +} from "../AnalysisProvider.js"; import { LazyAnalysisProvider } from "./LazyAnalysisProvider.js"; -import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; -import { err } from "../domain/result.js"; +import { AnalysisCancelledError } from "../../domain/analysisErrorCore.js"; +import { err } from "../../domain/result.js"; const identity: ProviderIdentity = { id: "test-provider", diff --git a/src/application/LazyAnalysisProvider.ts b/src/application/binary/LazyAnalysisProvider.ts similarity index 90% rename from src/application/LazyAnalysisProvider.ts rename to src/application/binary/LazyAnalysisProvider.ts index ec2a5a457e..f66d9694c9 100644 --- a/src/application/LazyAnalysisProvider.ts +++ b/src/application/binary/LazyAnalysisProvider.ts @@ -1,9 +1,9 @@ -import type { AnalysisProfileCommitment } from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; -import { AnalysisCancelledError } from "../domain/analysisErrorCore.js"; -import { AnalysisError } from "../domain/analysisErrorBase.js"; -import { ProviderAdapterError } from "../domain/providerAdapterError.js"; -import { err } from "../domain/result.js"; +import type { AnalysisProfileCommitment } from "../../domain/analysisProfile.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; +import { AnalysisCancelledError } from "../../domain/analysisErrorCore.js"; +import { AnalysisError } from "../../domain/analysisErrorBase.js"; +import { ProviderAdapterError } from "../../domain/providerAdapterError.js"; +import { err } from "../../domain/result.js"; import { ABORTED, waitForAbortable } from "./AbortablePromise.js"; import type { AnalysisClient, @@ -13,7 +13,7 @@ import type { ProviderIdentity, ProviderRequestActivitySnapshot, ProviderRuntimeLineageSnapshot, -} from "./AnalysisProvider.js"; +} from "../AnalysisProvider.js"; type LoadAnalysisProvider = () => Promise; diff --git a/src/application/SessionProviderRouter.ts b/src/application/binary/SessionProviderRouter.ts similarity index 95% rename from src/application/SessionProviderRouter.ts rename to src/application/binary/SessionProviderRouter.ts index 936bb5438f..abb3694828 100644 --- a/src/application/SessionProviderRouter.ts +++ b/src/application/binary/SessionProviderRouter.ts @@ -1,18 +1,18 @@ -import type { AnalysisProviderSelector } from "../contracts/providerSelection.js"; +import type { AnalysisProviderSelector } from "../../contracts/providerSelection.js"; import { analysisProfileSchema, type AnalysisProfileCommitment, -} from "../domain/analysisProfile.js"; -import type { BinaryTarget } from "../domain/binaryTarget.js"; +} from "../../domain/analysisProfile.js"; +import type { BinaryTarget } from "../../domain/binaryTarget.js"; import { AnalysisCancelledError, AnalysisCapabilityUnavailableError, -} from "../domain/analysisErrorCore.js"; -import { ProviderAdapterError } from "../domain/providerAdapterError.js"; -import { ProviderSelectionError } from "../domain/providerSelectionError.js"; -import { type AnalysisError } from "../domain/analysisErrorBase.js"; -import { jsonObjectSchema, type JsonValue } from "../domain/jsonValue.js"; -import { err, ok, type Result } from "../domain/result.js"; +} from "../../domain/analysisErrorCore.js"; +import { ProviderAdapterError } from "../../domain/providerAdapterError.js"; +import { ProviderSelectionError } from "../../domain/providerSelectionError.js"; +import { type AnalysisError } from "../../domain/analysisErrorBase.js"; +import { jsonObjectSchema, type JsonValue } from "../../domain/jsonValue.js"; +import { err, ok, type Result } from "../../domain/result.js"; import type { AnalysisClient, AnalysisClientContext, @@ -22,7 +22,7 @@ import type { AnalysisProvider, CapabilityDescriptor, ProviderIdentity, -} from "./AnalysisProvider.js"; +} from "../AnalysisProvider.js"; import { AnalysisProviderRegistry, type AnalysisProviderBinding, diff --git a/src/application/runtime.ts b/src/application/runtime.ts index 82e081b4f6..07026076a3 100644 --- a/src/application/runtime.ts +++ b/src/application/runtime.ts @@ -1,15 +1,15 @@ import type { AppConfig } from "../config.js"; -import type { BinarySession } from "./BinarySession.js"; +import type { BinarySession } from "./binary/BinarySession.js"; import { HopperProvider } from "../hopper/HopperProvider.js"; import { GhidraProvider } from "../ghidra/GhidraProvider.js"; import { IdaProvider } from "../ida/IdaProvider.js"; import { silentLogger, type Logger } from "../logger.js"; import { auxiliaryAnalysisProviderDeclarations } from "../composition/auxiliaryAnalysisProviders.js"; -import { AnalysisProviderRegistry } from "./AnalysisProviderRegistry.js"; -import { composeBinarySession } from "./BinarySessionComposition.js"; -import { LazyAnalysisProvider } from "./LazyAnalysisProvider.js"; +import { AnalysisProviderRegistry } from "./binary/AnalysisProviderRegistry.js"; +import { composeBinarySession } from "./binary/BinarySessionComposition.js"; +import { LazyAnalysisProvider } from "./binary/LazyAnalysisProvider.js"; import { ManagedStaticProvider } from "../dotnet/ManagedStaticProvider.js"; -import { SessionProviderRouter } from "./SessionProviderRouter.js"; +import { SessionProviderRouter } from "./binary/SessionProviderRouter.js"; /** * Compose the target-switching runtime shared directly by CLI and MCP adapters. diff --git a/src/composition/auxiliaryAnalysisProviders.ts b/src/composition/auxiliaryAnalysisProviders.ts index 7086817c95..9f3f8e84b3 100644 --- a/src/composition/auxiliaryAnalysisProviders.ts +++ b/src/composition/auxiliaryAnalysisProviders.ts @@ -1,4 +1,4 @@ -import type { LazyAnalysisProvider } from "../application/LazyAnalysisProvider.js"; +import type { LazyAnalysisProvider } from "../application/binary/LazyAnalysisProvider.js"; import { ARTIFACT_PROVIDER_IDENTITY, artifactCapabilities, diff --git a/src/main/shutdown.ts b/src/main/shutdown.ts index eb6cc229d4..07767431ef 100644 --- a/src/main/shutdown.ts +++ b/src/main/shutdown.ts @@ -1,6 +1,6 @@ import type { StdioServerHandle } from "@modelcontextprotocol/server/stdio"; -import type { BinarySession } from "../application/BinarySession.js"; +import type { BinarySession } from "../application/binary/BinarySession.js"; import type { Logger } from "../logger.js"; import type { RuntimeDependencies } from "./types.js"; import { MCP_SHUTDOWN_FAILED } from "./messages.js"; diff --git a/src/main/startup.ts b/src/main/startup.ts index e05915fb3d..f6e0985ac8 100644 --- a/src/main/startup.ts +++ b/src/main/startup.ts @@ -1,4 +1,4 @@ -import type { BinarySession } from "../application/BinarySession.js"; +import type { BinarySession } from "../application/binary/BinarySession.js"; import type { AppConfig } from "../config.js"; import type { Logger } from "../logger.js"; import { projectAnalysisError } from "../domain/analysisErrorProjection.js"; diff --git a/src/main/transport.ts b/src/main/transport.ts index dcaa683e1d..e1f821e568 100644 --- a/src/main/transport.ts +++ b/src/main/transport.ts @@ -1,6 +1,6 @@ import type { StdioServerHandle } from "@modelcontextprotocol/server/stdio"; -import type { BinarySession } from "../application/BinarySession.js"; +import type { BinarySession } from "../application/binary/BinarySession.js"; import type { Logger } from "../logger.js"; import { createServer } from "../server/createServer.js"; import type { RuntimeDependencies } from "./types.js"; diff --git a/src/server/createServer.ts b/src/server/createServer.ts index 4b5155d6b2..fa54425a56 100644 --- a/src/server/createServer.ts +++ b/src/server/createServer.ts @@ -2,7 +2,7 @@ import { McpServer } from "@modelcontextprotocol/server"; import { isAbsolute } from "node:path"; import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import type { BrowserObservationPort } from "../application/BrowserObservationPort.js"; import type { BrowserScenarioCapturePort } from "../application/BrowserScenarioCapturePort.js"; import type { ElectronActiveObservationPort } from "../application/ElectronActiveObservationPort.js"; diff --git a/src/server/promptCompletion.ts b/src/server/promptCompletion.ts index e56383cc07..b02c5a35ba 100644 --- a/src/server/promptCompletion.ts +++ b/src/server/promptCompletion.ts @@ -3,7 +3,7 @@ import { z } from "zod"; import { uniqueSorted } from "../domain/canonicalOrdering.js"; import type { AnalysisOperationPort } from "../application/AnalysisProvider.js"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import type { PromptCompletionKind } from "../contracts/promptContracts.js"; import { artifactInventoryResultSchema } from "../domain/artifactGraph.js"; import { artifactInspectionResultSchema } from "../domain/artifactInspection.js"; diff --git a/src/server/recordDerivedEvidence.ts b/src/server/recordDerivedEvidence.ts index 9f7b3fddeb..81b4645cb3 100644 --- a/src/server/recordDerivedEvidence.ts +++ b/src/server/recordDerivedEvidence.ts @@ -1,4 +1,4 @@ -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.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/registerArtifactComparisonTool.ts b/src/server/registerArtifactComparisonTool.ts index 402c401e19..f42cca0e03 100644 --- a/src/server/registerArtifactComparisonTool.ts +++ b/src/server/registerArtifactComparisonTool.ts @@ -1,6 +1,6 @@ import type { McpServer } from "@modelcontextprotocol/server"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { toolContract } from "../contracts/toolContracts.js"; import { compareArtifacts } from "../domain/artifactComparison.js"; import { createEvidence, parseEvidence } from "../domain/evidence.js"; diff --git a/src/server/registerBundleComparisonTool.ts b/src/server/registerBundleComparisonTool.ts index 1c2f40754d..7ec2662f8d 100644 --- a/src/server/registerBundleComparisonTool.ts +++ b/src/server/registerBundleComparisonTool.ts @@ -1,6 +1,6 @@ import type { McpServer } from "@modelcontextprotocol/server"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { readEvidenceBundle } from "../application/EvidenceBundleFiles.js"; import { toolContract } from "../contracts/toolContracts.js"; import { compareBundles } from "../domain/bundleComparison.js"; diff --git a/src/server/registerCloseLifecycleTool.ts b/src/server/registerCloseLifecycleTool.ts index 49c16a02ca..19f66e786c 100644 --- a/src/server/registerCloseLifecycleTool.ts +++ b/src/server/registerCloseLifecycleTool.ts @@ -1,4 +1,4 @@ -import { writeAnalysisSnapshot } from "../application/AnalysisSnapshotFiles.js"; +import { writeAnalysisSnapshot } from "../application/binary/AnalysisSnapshotFiles.js"; import { ok } from "../domain/result.js"; import { reportLifecycleEnd, diff --git a/src/server/registerFunctionComparisonTool.ts b/src/server/registerFunctionComparisonTool.ts index 72b67f33f8..84a4506849 100644 --- a/src/server/registerFunctionComparisonTool.ts +++ b/src/server/registerFunctionComparisonTool.ts @@ -1,6 +1,6 @@ import type { McpServer } from "@modelcontextprotocol/server"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { toolContract } from "../contracts/toolContracts.js"; import { createEvidence, diff --git a/src/server/registerInvestigationTools.ts b/src/server/registerInvestigationTools.ts index 659527e3c7..2e2dee834a 100644 --- a/src/server/registerInvestigationTools.ts +++ b/src/server/registerInvestigationTools.ts @@ -1,6 +1,6 @@ import type { McpServer } from "@modelcontextprotocol/server"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { toolContract } from "../contracts/toolContracts.js"; import { buildCallPath } from "../domain/callPath.js"; import { findChangedBehavior } from "../domain/changedBehavior.js"; diff --git a/src/server/registerInvestigationTools/helpers.ts b/src/server/registerInvestigationTools/helpers.ts index 211b5bfebf..705cc32117 100644 --- a/src/server/registerInvestigationTools/helpers.ts +++ b/src/server/registerInvestigationTools/helpers.ts @@ -1,4 +1,4 @@ -import type { BinarySessionPort } from "../../application/BinarySession.js"; +import type { BinarySessionPort } from "../../application/binary/BinarySession.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/registerManagedTools.ts b/src/server/registerManagedTools.ts index a9fdc2bfe3..1d7a8a84f5 100644 --- a/src/server/registerManagedTools.ts +++ b/src/server/registerManagedTools.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 type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { MANAGED_TOOL_CONTRACTS } from "../contracts/managedToolContracts.js"; import type { BinaryTarget } from "../domain/binaryTarget.js"; import { AnalysisInputError } from "../domain/analysisErrorCore.js"; diff --git a/src/server/registerManagedWorkflowTools/types.ts b/src/server/registerManagedWorkflowTools/types.ts index 9943e33e15..987037aab4 100644 --- a/src/server/registerManagedWorkflowTools/types.ts +++ b/src/server/registerManagedWorkflowTools/types.ts @@ -2,7 +2,7 @@ import type { EvidenceWriter, EvidenceUnknownWriter, } from "../../application/investigation/InvestigationRecordPort.js"; -import type { BinarySessionPort } from "../../application/BinarySession.js"; +import type { BinarySessionPort } from "../../application/binary/BinarySession.js"; import type { Logger } from "../../logger.js"; /** Shared services for registering managed-code workflow tools. */ diff --git a/src/server/registerProcessComparisonTool.ts b/src/server/registerProcessComparisonTool.ts index 6cbce0e8ec..8685283229 100644 --- a/src/server/registerProcessComparisonTool.ts +++ b/src/server/registerProcessComparisonTool.ts @@ -1,6 +1,6 @@ import type { McpServer } from "@modelcontextprotocol/server"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { toolContract } from "../contracts/toolContracts.js"; import { EvidenceIntegrityError } from "../domain/evidenceErrors.js"; import { diff --git a/src/server/registerPrompts.ts b/src/server/registerPrompts.ts index fc2c5a80b1..f31f51efcf 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/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { PROMPT_CONTRACTS, renderGuidedPrompt, diff --git a/src/server/registerSessionRecordTools.ts b/src/server/registerSessionRecordTools.ts index 12bab50283..b7508cd25b 100644 --- a/src/server/registerSessionRecordTools.ts +++ b/src/server/registerSessionRecordTools.ts @@ -1,6 +1,6 @@ import type { McpServer } from "@modelcontextprotocol/server"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { readEvidenceBundle, writeEvidenceBundle, diff --git a/src/server/registerSessionStatusTool.ts b/src/server/registerSessionStatusTool.ts index bfcd975de0..a7ce3cf550 100644 --- a/src/server/registerSessionStatusTool.ts +++ b/src/server/registerSessionStatusTool.ts @@ -1,6 +1,6 @@ import type { McpServer } from "@modelcontextprotocol/server"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { buildCapabilityInventory } from "../application/CapabilityInventory.js"; import { toolContract } from "../contracts/toolContracts.js"; import type { ClientFeatureAvailability } from "../contracts/toolOutputSchemaPrimitives.js"; diff --git a/src/server/registerSessionTools.ts b/src/server/registerSessionTools.ts index e7e8de23c2..fd601bfcfb 100644 --- a/src/server/registerSessionTools.ts +++ b/src/server/registerSessionTools.ts @@ -5,8 +5,8 @@ import { getNavigationContext, inspectAddressContext, } from "../application/AnalysisContextQueries.js"; -import { readAnalysisSnapshot } from "../application/AnalysisSnapshotFiles.js"; -import type { BinarySessionPort } from "../application/BinarySession.js"; +import { readAnalysisSnapshot } from "../application/binary/AnalysisSnapshotFiles.js"; +import type { BinarySessionPort } from "../application/binary/BinarySession.js"; import { createProcessCaptureEvidence } from "../application/ProcessEvidence.js"; import { captureProcessScenario } from "../application/ProcessHarness.js"; import { toolContract } from "../contracts/toolContracts.js"; diff --git a/tests/acceptance/applications/applicationEvidenceMcp.test.ts b/tests/acceptance/applications/applicationEvidenceMcp.test.ts index 8034b0c6bd..ce3859a40a 100644 --- a/tests/acceptance/applications/applicationEvidenceMcp.test.ts +++ b/tests/acceptance/applications/applicationEvidenceMcp.test.ts @@ -2,7 +2,7 @@ import { Client, InMemoryTransport } from "@modelcontextprotocol/client"; import { describe, expect, it } from "vitest"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; -import type { BinarySession } from "../../../src/application/BinarySession.js"; +import type { BinarySession } from "../../../src/application/binary/BinarySession.js"; import { createServer } from "../../../src/server/createServer.js"; import { JAVASCRIPT_FEATURE_TRACE_FULL_EVIDENCE_EXAMPLE, diff --git a/tests/boundary/filesystem/analysisSnapshot.test.ts b/tests/boundary/filesystem/analysisSnapshot.test.ts index 3cbf12cc01..5d09073943 100644 --- a/tests/boundary/filesystem/analysisSnapshot.test.ts +++ b/tests/boundary/filesystem/analysisSnapshot.test.ts @@ -9,7 +9,7 @@ import { createAnalysisExecution } from "../../../src/application/AnalysisProvid import { readAnalysisSnapshot, writeAnalysisSnapshot, -} from "../../../src/application/AnalysisSnapshotFiles.js"; +} from "../../../src/application/binary/AnalysisSnapshotFiles.js"; import { createAnalysisSnapshotEntry, parseAnalysisSnapshot, diff --git a/tests/boundary/filesystem/directAnalysisPermissions.test.ts b/tests/boundary/filesystem/directAnalysisPermissions.test.ts index 0a72980971..7078d76038 100644 --- a/tests/boundary/filesystem/directAnalysisPermissions.test.ts +++ b/tests/boundary/filesystem/directAnalysisPermissions.test.ts @@ -5,7 +5,7 @@ import { afterEach, describe, expect, it, vi } from "vitest"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; -import { writeAnalysisSnapshot } from "../../../src/application/AnalysisSnapshotFiles.js"; +import { writeAnalysisSnapshot } from "../../../src/application/binary/AnalysisSnapshotFiles.js"; import { runDirectAnalysis } from "../../../src/application/DirectAnalysis.js"; import type { AnalysisSnapshot } from "../../../src/domain/analysisSnapshot.js"; import { diff --git a/tests/boundary/mcp/ghidraMcpHarness.ts b/tests/boundary/mcp/ghidraMcpHarness.ts index 81eaefc325..0aa25c1883 100644 --- a/tests/boundary/mcp/ghidraMcpHarness.ts +++ b/tests/boundary/mcp/ghidraMcpHarness.ts @@ -1,8 +1,8 @@ import { Client, InMemoryTransport } from "@modelcontextprotocol/client"; -import { composeBinarySession } from "../../../src/application/BinarySessionComposition.js"; -import type { BinarySession } from "../../../src/application/BinarySession.js"; -import { AnalysisProviderRegistry } from "../../../src/application/AnalysisProviderRegistry.js"; -import { SessionProviderRouter } from "../../../src/application/SessionProviderRouter.js"; +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 { SessionProviderRouter } from "../../../src/application/binary/SessionProviderRouter.js"; import { parseConfig } from "../../../src/config.js"; import type { JsonValue } from "../../../src/domain/jsonValue.js"; import { ok } from "../../../src/domain/result.js"; diff --git a/tests/boundary/mcp/investigationAnalysisMcp.test.ts b/tests/boundary/mcp/investigationAnalysisMcp.test.ts index 7d5a60eaa6..330ef0dc3b 100644 --- a/tests/boundary/mcp/investigationAnalysisMcp.test.ts +++ b/tests/boundary/mcp/investigationAnalysisMcp.test.ts @@ -3,7 +3,7 @@ import { expect, it } from "vitest"; import { z } from "zod"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; -import type { BinarySession } from "../../../src/application/BinarySession.js"; +import type { BinarySession } from "../../../src/application/binary/BinarySession.js"; import { FUNCTION_COMPARISON_EXAMPLE } from "../../../src/contracts/functionComparisonExample.js"; import { INVESTIGATION_EXAMPLES } from "../../../src/contracts/investigationExamples.js"; import { diff --git a/tests/boundary/mcp/managedMcp.test.ts b/tests/boundary/mcp/managedMcp.test.ts index 1ac1a5e16f..c41d54546c 100644 --- a/tests/boundary/mcp/managedMcp.test.ts +++ b/tests/boundary/mcp/managedMcp.test.ts @@ -8,11 +8,11 @@ import { z } from "zod"; import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; -import { AnalysisProviderRegistry } from "../../../src/application/AnalysisProviderRegistry.js"; -import { composeBinarySession } from "../../../src/application/BinarySessionComposition.js"; -import type { BinarySession } from "../../../src/application/BinarySession.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 { SessionProviderRouter } from "../../../src/application/SessionProviderRouter.js"; +import { SessionProviderRouter } from "../../../src/application/binary/SessionProviderRouter.js"; import { MANAGED_NATIVE_VERIFICATION_EXAMPLE } from "../../../src/contracts/managedWorkflowExamples.js"; import { ManagedStaticProvider } from "../../../src/dotnet/ManagedStaticProvider.js"; import { createServer } from "../../../src/server/createServer.js"; diff --git a/tests/boundary/mcp/optionalProviderIsolation.test.ts b/tests/boundary/mcp/optionalProviderIsolation.test.ts index 6b93f5245d..f6f7a3a1ec 100644 --- a/tests/boundary/mcp/optionalProviderIsolation.test.ts +++ b/tests/boundary/mcp/optionalProviderIsolation.test.ts @@ -4,7 +4,7 @@ import { McpServer } from "@modelcontextprotocol/server"; import { afterEach, expect } from "vitest"; import { z } from "zod"; -import type { BinarySessionPort } from "../../../src/application/BinarySessionPort.js"; +import type { BinarySessionPort } from "../../../src/application/binary/BinarySessionPort.js"; import { loadOptionalObservationProviders, type OptionalObservationFactories, diff --git a/tests/boundary/mcp/promptMcp.test.ts b/tests/boundary/mcp/promptMcp.test.ts index 11b9677e62..4a1003a6b5 100644 --- a/tests/boundary/mcp/promptMcp.test.ts +++ b/tests/boundary/mcp/promptMcp.test.ts @@ -9,7 +9,7 @@ import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js"; import type { AnalysisClient } from "../../../src/application/AnalysisProvider.js"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; -import type { BinarySession } from "../../../src/application/BinarySession.js"; +import type { BinarySession } from "../../../src/application/binary/BinarySession.js"; import { PROMPT_CONTRACTS } from "../../../src/contracts/promptContracts.js"; import { createEvidence } from "../../../src/domain/evidence.js"; import { createServer } from "../../../src/server/createServer.js"; diff --git a/tests/boundary/mcp/providerSelectionMcp.test.ts b/tests/boundary/mcp/providerSelectionMcp.test.ts index eff0352e35..af80423b86 100644 --- a/tests/boundary/mcp/providerSelectionMcp.test.ts +++ b/tests/boundary/mcp/providerSelectionMcp.test.ts @@ -14,9 +14,9 @@ import { type CapabilityDescriptor, type ProviderIdentity, } from "../../../src/application/AnalysisProvider.js"; -import { AnalysisProviderRegistry } from "../../../src/application/AnalysisProviderRegistry.js"; -import { composeBinarySession } from "../../../src/application/BinarySessionComposition.js"; -import { SessionProviderRouter } from "../../../src/application/SessionProviderRouter.js"; +import { AnalysisProviderRegistry } from "../../../src/application/binary/AnalysisProviderRegistry.js"; +import { composeBinarySession } from "../../../src/application/binary/BinarySessionComposition.js"; +import { SessionProviderRouter } from "../../../src/application/binary/SessionProviderRouter.js"; import { createAnalysisProfile } from "../../../src/domain/analysisProfile.js"; import { ok } from "../../../src/domain/result.js"; import { silentLogger } from "../../../src/logger.js"; diff --git a/tests/boundary/providers/auxiliaryDeclarations.test.ts b/tests/boundary/providers/auxiliaryDeclarations.test.ts index ea2cbdf70e..84a8f5e40c 100644 --- a/tests/boundary/providers/auxiliaryDeclarations.test.ts +++ b/tests/boundary/providers/auxiliaryDeclarations.test.ts @@ -1,7 +1,7 @@ import { expect, it } from "vitest"; import { auxiliaryAnalysisProviderDeclarations } from "../../../src/composition/auxiliaryAnalysisProviders.js"; -import { LazyAnalysisProvider } from "../../../src/application/LazyAnalysisProvider.js"; +import { LazyAnalysisProvider } from "../../../src/application/binary/LazyAnalysisProvider.js"; import { parseBinaryTarget } from "../../../src/application/BinaryTargetResolver.js"; import { GENERATED_AUXILIARY_PROVIDERS } from "../../../src/generatedMcpToolCatalog.js"; diff --git a/tests/composition/analysis-sessions/binarySession.test.ts b/tests/composition/analysis-sessions/binarySession.test.ts index 0f6c47e539..da99e17e80 100644 --- a/tests/composition/analysis-sessions/binarySession.test.ts +++ b/tests/composition/analysis-sessions/binarySession.test.ts @@ -2,7 +2,7 @@ import type { AnalysisClient, AnalysisProvider, } from "../../../src/application/AnalysisProvider.js"; -import type { BinarySession } from "../../../src/application/BinarySession.js"; +import type { BinarySession } from "../../../src/application/binary/BinarySession.js"; import type { JsonValue } from "../../../src/domain/jsonValue.js"; import type { RecordUnknownInput } from "../../../src/domain/residualUnknown.js"; import { createAnalysisProfile } from "../../../src/domain/analysisProfile.js"; diff --git a/tests/composition/analysis-sessions/compositeProvider.test.ts b/tests/composition/analysis-sessions/compositeProvider.test.ts index 1ffff03efe..010a4eb846 100644 --- a/tests/composition/analysis-sessions/compositeProvider.test.ts +++ b/tests/composition/analysis-sessions/compositeProvider.test.ts @@ -3,7 +3,7 @@ import { join } from "node:path"; import { describe, expect, it } from "vitest"; import { createTestBinarySession } from "../../fixtures/binarySession.js"; -import { CompositeProvider } from "../../../src/application/CompositeProvider.js"; +import { CompositeProvider } from "../../../src/application/binary/CompositeProvider.js"; import type { AnalysisOperation, AnalysisProvider, diff --git a/tests/composition/analysis-sessions/investigationRecords.test.ts b/tests/composition/analysis-sessions/investigationRecords.test.ts index 8cff526c25..4230020664 100644 --- a/tests/composition/analysis-sessions/investigationRecords.test.ts +++ b/tests/composition/analysis-sessions/investigationRecords.test.ts @@ -1,7 +1,7 @@ import { expect, it, onTestFinished } from "vitest"; -import { BinarySession } from "../../../src/application/BinarySession.js"; -import { SessionProviderRouter } from "../../../src/application/SessionProviderRouter.js"; +import { BinarySession } from "../../../src/application/binary/BinarySession.js"; +import { SessionProviderRouter } from "../../../src/application/binary/SessionProviderRouter.js"; import { InvestigationRecords } from "../../../src/application/investigation/InvestigationRecords.js"; import { createEvidence } from "../../../src/domain/evidence.js"; import { recordUnknownInputSchema } from "../../../src/domain/residualUnknown.js"; diff --git a/tests/composition/analysis-sessions/providerBinding.test.ts b/tests/composition/analysis-sessions/providerBinding.test.ts index e677f16098..7434a83992 100644 --- a/tests/composition/analysis-sessions/providerBinding.test.ts +++ b/tests/composition/analysis-sessions/providerBinding.test.ts @@ -15,10 +15,10 @@ import { type CapabilityDescriptor, type ProviderIdentity, } from "../../../src/application/AnalysisProvider.js"; -import { AnalysisProviderRegistry } from "../../../src/application/AnalysisProviderRegistry.js"; -import type { BinarySession } from "../../../src/application/BinarySession.js"; -import { composeBinarySession } from "../../../src/application/BinarySessionComposition.js"; -import { SessionProviderRouter } from "../../../src/application/SessionProviderRouter.js"; +import { AnalysisProviderRegistry } from "../../../src/application/binary/AnalysisProviderRegistry.js"; +import type { BinarySession } from "../../../src/application/binary/BinarySession.js"; +import { composeBinarySession } from "../../../src/application/binary/BinarySessionComposition.js"; +import { SessionProviderRouter } from "../../../src/application/binary/SessionProviderRouter.js"; import { createAnalysisProfile } from "../../../src/domain/analysisProfile.js"; import { AnalysisCancelledError } from "../../../src/domain/analysisErrorCore.js"; import { ProviderAdapterError } from "../../../src/domain/providerAdapterError.js"; diff --git a/tests/fixtures/binarySession.ts b/tests/fixtures/binarySession.ts index 1e6ee2a5b8..30fc0db588 100644 --- a/tests/fixtures/binarySession.ts +++ b/tests/fixtures/binarySession.ts @@ -14,8 +14,8 @@ import type { AnalysisProfileResolutionOptions, AnalysisProvider, } from "../../src/application/AnalysisProvider.js"; -import { BinarySession } from "../../src/application/BinarySession.js"; -import { SessionProviderRouter } from "../../src/application/SessionProviderRouter.js"; +import { BinarySession } from "../../src/application/binary/BinarySession.js"; +import { SessionProviderRouter } from "../../src/application/binary/SessionProviderRouter.js"; import { err, ok as resultOk } from "../../src/domain/result.js"; import { observed } from "./analysisExecution.js";