{"productionTouched":false,"databaseTouched":false,"migrationsApplied":false,"migrationDryRunExecuted":false,"schemaChangeAllowed":false,"databaseReadAllowed":false,"databaseWriteAllowed":false,"durableAdapterInstantiated":false,"durableCaseStateReadAllowed":false,"durableCaseStateWriteAllowed":false,"runtimeSwitchAllowed":false,"dependencyInstallAllowed":false,"n8nExecutionAllowed":false,"contactsAgentExecutionAllowed":false,"googleContactsReadAllowed":false,"googleContactsWriteAllowed":false,"rawImageStorageAllowed":false,"rawContactStorageAllowed":false,"rawPipelineStorageAllowed":false,"rawExecutionPayloadStorageAllowed":false,"factoryContractVersion":"contact-capture-repository-adapter-factory-v1","currentRuntimeAdapter":"memory-simulator-bridge","targetAdapters":["postgres-control-plane","sqlite-local-dev","memory-simulator-bridge"],"acceptedConfigKeyNames":["CONTACT_CAPTURE_CASE_STATE_ADAPTER","CONTACT_CAPTURE_DATABASE_URL_SECRET_REF","CONTACT_CAPTURE_MIGRATION_VERSION","CONTACT_CAPTURE_SQLITE_PATH"],"endpoints":[{"method":"GET","path":"/contact-capture/case-state-repository-adapter-factory-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/case-state-repository-adapter-factory-dry-run","effect":"dry-run-only"},{"method":"GET","path":"/contact-capture/case-state-repository-adapter-factory-interface-status","effect":"read-status"},{"method":"POST","path":"/contact-capture/case-state-repository-adapter-factory-interface-check","effect":"check-only"}],"factoryBranches":[{"targetAdapter":"memory-simulator-bridge","branchName":"createMemorySimulatorBridgeRepository","currentStatus":"active-memory","canInstantiateHere":false,"databaseTouched":false},{"targetAdapter":"postgres-control-plane","branchName":"createPostgresCaseStateRepository","currentStatus":"planned-only","canInstantiateHere":false,"databaseTouched":false},{"targetAdapter":"sqlite-local-dev","branchName":"createSqliteCaseStateRepository","currentStatus":"planned-only","canInstantiateHere":false,"databaseTouched":false}],"runtimeInterface":{"implementationStatus":"implemented-memory-only","constructedBy":"createContactCaptureCaseStateRepositoryAdapter","actualAdapter":"memory-simulator-bridge","durableTargetsDisabled":["postgres-control-plane","sqlite-local-dev"],"databaseTouched":false,"runtimeSwitchAllowed":false,"methods":[{"name":"appendRedactedCase","effect":"write-memory","durableImplementation":"blocked"},{"name":"listRedactedCases","effect":"read-memory","durableImplementation":"blocked"},{"name":"loadRedactedCase","effect":"read-memory","durableImplementation":"blocked"}]},"migrationDryRun":{"id":"004_contact_capture_case_store","filename":"db/migrations/004_contact_capture_case_store.sql","localFileStatus":"present-local-review-only","applyAllowed":false,"databaseConnectionAllowed":false},"stopConditions":["The factory dry-run would instantiate a durable adapter or open a database connection.","The factory dry-run would apply a migration, change schema, read a database, or write a database.","The factory dry-run would switch the active runtime adapter away from memory-simulator-bridge.","The factory dry-run would accept plaintext secrets instead of config key names.","The factory dry-run would call n8n, Contacts Agent, Google Contacts, Telegram, SSH, DNS, hosting APIs, or production.","The factory dry-run would store raw images, raw OCR text, raw contact values, raw pipeline payloads, or raw execution payloads."],"nextStep":"Use the memory-only runtime interface while durable adapter factory evidence is prepared and reviewed."}