{"ok":true,"release":{"schema_version":1,"artifact":"lunar-startup-os","version":"2026.08.14","channel":"tenant","comment":"Golden-artifact release manifest. The SAME artifact ships to every tenant; only config/tenants/<slug>/ differs. Bump `version` on every release so bulk patching across tenants is a versioned, verifiable operation (see docs/RELEASE_AND_PATCH.md). The effective runtime configuration hash derived from this manifest + declared config is exposed at /api/settings and stamped into Apollo evidence lineage — env drift cannot become invisible behavior."},"effective_config":{"artifact":"lunar-startup-os","version":"2026.08.14","tenant":"hvac-automations","dependencies_configured":{"assistant":true,"cache":true,"crm":false,"database":true,"llm_primary":true,"llm_secondary":false,"voice":false,"webhook_ingress":true},"llm_primary":{"configured":true,"model":"gpt-4o","base_host":"api.openai.com"},"llm_secondary":{"configured":false,"model":null,"base_host":null}},"effective_config_hash":"ce6e6d719d08e22f8df048c513e9b360ed99d976e4980b27cf2d2c31577eeefc","providers":[{"id":"primary","label":"Primary LLM (vault: llm-openai-compatible)","configured":true,"model":"gpt-4o"},{"id":"secondary","label":"Secondary LLM (vault: llm-openai-compatible-backup)","configured":false,"model":null}],"capabilities":[{"type":"assistant.chat","route_id":"route_chat_v1","risk":"read_only","tools":[],"description":"Conversational growth-assistant reply (no state change)."},{"type":"lead.qualify","route_id":"route_lead_qualify_v1","risk":"reversible_write","tools":["leads.get","leads.note.append"],"description":"Score + qualify a captured lead from its stored facts; appends a qualification note."},{"type":"content.generate","route_id":"route_content_v1","risk":"reversible_write","tools":["content.draft.save"],"description":"Draft one marketing asset for the content factory (stored as a DRAFT, never published)."},{"type":"campaign.propose","route_id":"route_campaign_v1","risk":"reversible_write","tools":["campaigns.get","campaigns.proposal.save"],"description":"Propose an execution refinement for a programmed campaign (stored as a DRAFT proposal)."}],"tools":[{"name":"leads.get","risk":"read_only","mode":"auto","description":"Read one lead record (tenant store)."},{"name":"leads.note.append","risk":"reversible_write","mode":"logged","description":"Append a note to a lead record."},{"name":"content.draft.save","risk":"reversible_write","mode":"logged","description":"Save a content draft (never publishes)."},{"name":"campaigns.get","risk":"read_only","mode":"auto","description":"Read a committed campaign definition."},{"name":"campaigns.proposal.save","risk":"reversible_write","mode":"logged","description":"Save a campaign proposal draft."}]}