{"ok":true,"name":"neo-agent","model":"gpt-5.4-mini","modelRouter":{"mode":"auto","primaryProvider":"openai","openaiConfigured":true,"localConfigured":true,"openaiModel":"gpt-5.4-mini","localModel":"neo-local-v1","localModelRequestModel":"Qwen/Qwen2.5-1.5B-Instruct","localBaseUrlConfigured":true,"env":{"mode":"NEO_MODEL_PROVIDER","localBaseUrl":"NEO_LOCAL_MODEL_BASE_URL","localModel":"NEO_LOCAL_MODEL","localModelRequestModel":"NEO_LOCAL_MODEL_REQUEST_MODEL","localApiKey":"NEO_LOCAL_MODEL_API_KEY","localTimeoutMs":"NEO_LOCAL_MODEL_TIMEOUT_MS"},"fallback":"local-if-configured-when-openai-unavailable","promotionGate":"NEO_MODEL_PROVIDER=local requires a promoted adapter receipt matching NEO_LOCAL_MODEL. Auto fallback may use local only as availability fallback."},"providerMode":"auto","openaiConfigured":true,"localConfigured":true,"localBaseUrlConfigured":true,"realtimeModel":"gpt-realtime","realtimeVoice":"marin","realtimeProvider":"browser-native","realtimeVoiceRuntime":{"providerMode":"browser-native","currentMode":"browser-native","startupPath":"browser_native_runs","primaryProvider":"browser-native","openaiRealtimeConfigured":true,"browserNativeConfigured":true,"localTextModelConfigured":true,"nonOpenAiVoiceReasoningReady":true,"modelProviderMode":"auto","textModelFallback":"Browser-native voice uses /runs; local model fallback answers when OpenAI text is unavailable.","realtimeModel":"gpt-realtime","realtimeVoice":"marin","env":{"providerMode":"NEO_REALTIME_PROVIDER","realtimeModel":"NEO_REALTIME_MODEL","realtimeVoice":"NEO_REALTIME_VOICE","localModelBaseUrl":"NEO_LOCAL_MODEL_BASE_URL","localModel":"NEO_LOCAL_MODEL"},"browserNativeRequires":["authenticated /chat owner session","browser SpeechRecognition or webkitSpeechRecognition for microphone-to-text","browser speechSynthesis for spoken output","authenticated /runs text route","local text model route when OpenAI independence is required"],"fallback":"OpenAI realtime WebRTC is bypassed; typed chat remains available if browser speech APIs are unavailable.","boundary":"Browser-native voice is production-configurable but client-mediated. It is not a server-side non-OpenAI ASR/TTS stack and stores no voice biometrics."},"realtimeVoiceBackup":{"browserTtsEndpoint":"/realtime/browser-tts","browserTtsAuthRequired":true,"clientSecretEndpoint":"/realtime/client-secret","clientSecretAuthRequired":true,"browserNativeFallbackReady":true,"browserTtsBackupReady":true},"nonOpenAiRealtimeVoiceConfigured":true,"premiumVoiceServiceLane":{"lane":"premium-server-realtime-voice","status":"owner_provider_choice_needed","cutoverReady":false,"laneMode":"planning","providerStrategy":"unset","currentRealtimeProvider":"browser-native","localTextModelConfigured":true,"endpointConfigured":{"realtimeGateway":false,"asr":false,"tts":false},"targetCapabilities":["server-side low-latency microphone streaming","server-side non-OpenAI speech-to-text","server-side non-OpenAI text-to-speech","barge-in and cancel support","voice activity detection and turn detection","authenticated /runs reasoning path with local model fallback","Matrix/Gateway receipts for session start, transcript, response, errors, and cutover","latency, failure-rate, and fallback telemetry","no raw voice biometric storage"],"ownerChoicesNeeded":["Choose provider strategy: managed-realtime, managed-asr-tts, self-hosted, or hybrid.","Approve any paid provider account, hosted GPU/container, domain, worker, or networking boundary before setup.","Approve retention policy; default is no audio retention and metadata-only receipts.","Approve cutover separately after Matrix has readiness receipts and Wayne has tested a live session."],"readinessChecks":[{"name":"owner.provider_strategy","ok":false,"detail":"Wayne must choose managed-realtime, managed-asr-tts, self-hosted, or hybrid before integration work starts."},{"name":"owner.provider_approval","ok":false,"detail":"Provider/infra choice is not approved yet; do not buy services, provision infra, or switch live voice."},{"name":"server.streaming_endpoint","ok":false,"detail":"Configure a server-side realtime gateway URL, or both ASR and TTS service URLs, after provider approval."},{"name":"model.local_reasoning_route","ok":true,"detail":"Local text model route is configured so premium voice can reason without OpenAI text capacity."},{"name":"policy.no_unapproved_cutover","ok":true,"detail":"Lane remains in planning/provider-approved review mode and does not switch live voice."}],"blockers":["owner.provider_strategy: Wayne must choose managed-realtime, managed-asr-tts, self-hosted, or hybrid before integration work starts.","owner.provider_approval: Provider/infra choice is not approved yet; do not buy services, provision infra, or switch live voice.","server.streaming_endpoint: Configure a server-side realtime gateway URL, or both ASR and TTS service URLs, after provider approval."],"env":{"laneMode":"NEO_PREMIUM_VOICE_LANE","providerStrategy":"NEO_PREMIUM_VOICE_PROVIDER","realtimeGatewayUrl":"NEO_PREMIUM_VOICE_REALTIME_URL","asrUrl":"NEO_PREMIUM_VOICE_ASR_URL","ttsUrl":"NEO_PREMIUM_VOICE_TTS_URL","latencyTargetMs":"NEO_PREMIUM_VOICE_LATENCY_TARGET_MS","retention":"NEO_PREMIUM_VOICE_RETENTION"},"policy":{"changesHerokuConfig":false,"switchesRealtimeProvider":false,"buysProvider":false,"startsInfrastructure":false,"printsSecrets":false,"exposesProviderSecretsToClient":false,"storesVoiceBiometrics":false,"requiresWayneProviderApproval":true,"requiresMatrixCutoverReceipt":true,"serverSideNonOpenAiAsrTts":true,"browserNativeFallbackRemainsAvailable":true},"boundary":"This lane is the production-grade voice service contract. It does not select, buy, provision, or switch providers by itself; it keeps current realtime voice on the existing provider posture until Wayne and Matrix approve cutover."},"premiumVoiceCutoverReady":false,"hostedMode":true,"workspaceProfile":"neo-agent","workspaceRootConfigured":true,"shellMode":"readonly","shellBackend":"local","hostedToolPolicy":"hosted-safe","browserAllowRemote":false,"gitMode":"readonly","memoryProvider":"supabase","memoryConfigured":true,"persistenceProvider":"supabase","persistenceConfigured":true,"coordinationBridge":"append-only","learningExchange":"matrix-gateway-memory","learningLedger":"task-events-execution-receipts-capability-lessons-skill-playbooks-connectors-agent-templates-matrixos-agent-factory","matrixOsAgentBuilderLearning":"durable-agent-builder-learning","moderationGateway":"local-policy-recorded","appAccessRegistry":"scoped-app-authority","deviceRegistry":"multi-device-edge-executor-routing","connectorRegistry":"scope-record-only","connectorExecution":"worker-dispatch-supervised","featureSentinel":{"schemaVersion":"neo-feature-sentinel-readiness-v1","mode":"backend_only","executor":"bounded-worker","status":"blocked_missing_worker_capability_issuer","configured":{"baseUrl":true,"apiKey":true,"webhookSecret":true,"connectionId":false,"workerCapabilityGatewayIssue":false,"workerCapabilityAutoIssue":false,"matrixGatewayCwd":false,"matrixGatewayCommand":false,"matrixGatewayCapabilityIssuerUrl":false,"matrixGatewayCapabilityIssuerApiKey":false},"missingEnv":[],"nextActions":["Enable NEO_WORKER_CAPABILITY_GATEWAY_ISSUE=true through the approved deployment path, or provide another Matrix Gateway capability issuance path.","Do not use NEO_WORKER_CAPABILITY_AUTO_ISSUE for production unless Wayne and Matrix Gateway explicitly approve that policy."],"policy":{"exposesSecrets":false,"requiresMatrixGatewayCapability":true,"supportsRunOnceWorker":true,"rejectsUnsupportedActions":true}},"runtimeMemory":{"rssBytes":208805888,"heapTotalBytes":110891008,"heapUsedBytes":100956784,"externalBytes":4286347,"arrayBuffersBytes":223737,"rssMb":199.1,"heapUsedMb":96.3,"externalMb":4.1},"productionGuardrails":{"mode":"observe_only","voiceProtected":true,"spatialArProtected":true,"shedBeforeVoice":["dashboard","coordination","feature-sentinel","matrixos"],"payloadBudgets":{"voiceBytes":65536,"spatialArBytes":524288,"dashboardBytes":262144,"coordinationBytes":196608,"featureSentinelBytes":131072,"matrixOsBytes":196608},"firewallVpcSignals":{"treatedAsPlatformInfrastructure":true,"privateBoundaryConfigured":true,"routingSignalOnly":true},"featureSentinelPropagation":{"compactTenantScopedSnapshots":true,"repeatedLargeReadsAllowed":false},"tenantLabels":{"acceptedHeaders":["x-neo-tenant","x-matrix-tenant"],"sanitized":true}},"memoryControls":"inspect-and-delete","workerDispatch":"queue-only","capabilityMode":"enforce","capabilityConfigured":true,"authMode":"strict","dashboardSessionConfigured":true,"authConfigured":true}