{"formatVersion":1,"apiVersion":"0.3.0","stage":"published","language":"en","operation":"hosted","links":{"quickstart":"/v1/live/quickstart.md","capabilities":"/v1/live/developer.json","openapi":"/v1/live/openapi.json","mcp":"/v1/live/mcp"},"appModel":"One app is a configured interaction context with audiences, instructions, origins, tools and access boundaries. It may serve many workflows.","directions":{"management":"Codex / Claude Code / backend -> Lina Live API or MCP","businessTools":"Lina Live runtime -> customer-owned HTTPS or MCP tools","browser":"Customer SDK -> single-use session grant -> voice runtime and Liveboard"},"profileSchemaVersion":1,"capabilities":["instance_profiles","versioned_apps","https_tools","remote_mcp_tools","interactive_liveboard","backend_session_grants","hosted_memory","external_context","activity_archive","usage_readiness"],"liveboard":{"catalogId":"erfindergeist.ai/board/v2","protocol":"v0.9","limits":{"components":40,"text":300,"id":40,"depth":8},"components":[{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Column"]},"children":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":12,"minItems":0}},"required":["id","component","children"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Row"]},"children":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":12,"minItems":0}},"required":["id","component","children"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Grid"]},"columns":{"type":"integer","enum":[2,3,4],"default":2},"children":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":12,"minItems":0}},"required":["id","component","columns","children"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Tabs"]},"items":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":30},"child":{"type":"string","maxLength":40}},"required":["label","child"],"additionalProperties":false},"maxItems":5,"minItems":2}},"required":["id","component","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Text"]},"text":{"type":"string","maxLength":300},"variant":{"type":"string","enum":["title","body","caption","eyebrow"],"default":"body"}},"required":["id","component","text","variant"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Stat"]},"value":{"type":"string","maxLength":24},"label":{"type":"string","maxLength":80}},"required":["id","component","value","label"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Card"]},"title":{"type":"string","maxLength":80},"subtitle":{"type":"string","maxLength":120},"image":{"type":"string","maxLength":2048,"pattern":"^(https://|$)"},"value":{"type":"string","maxLength":24},"badge":{"type":"string","maxLength":24},"tags":{"type":"array","items":{"type":"string","maxLength":24},"maxItems":6,"minItems":0},"selectable":{"type":"boolean"}},"required":["id","component","title","subtitle","image","value","badge","tags","selectable"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Choice"]},"label":{"type":"string","maxLength":80},"options":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":8,"minItems":2}},"required":["id","component","label","options"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Facts"]},"items":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"value":{"type":"string","maxLength":120}},"required":["label","value"],"additionalProperties":false},"maxItems":10,"minItems":1}},"required":["id","component","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Table"]},"columns":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":5,"minItems":1},"rows":{"type":"array","items":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":5,"minItems":0},"maxItems":10,"minItems":1},"highlight":{"type":"integer","minimum":-1,"default":-1}},"required":["id","component","columns","rows","highlight"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Bars"]},"items":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"value":{"type":"number","minimum":0},"display":{"type":"string","maxLength":24}},"required":["label","value","display"],"additionalProperties":false},"maxItems":8,"minItems":1}},"required":["id","component","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Score"]},"value":{"type":"integer","minimum":0,"maximum":100},"label":{"type":"string","maxLength":60},"caption":{"type":"string","maxLength":120}},"required":["id","component","value","label","caption"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Image"]},"url":{"type":"string","maxLength":2048,"format":"uri","pattern":"^https://"},"alt":{"type":"string","maxLength":120},"fit":{"type":"string","enum":["cover","contain"],"default":"cover"}},"required":["id","component","url","alt","fit"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Website"]},"url":{"type":"string","maxLength":2048,"format":"uri","pattern":"^https://"}},"required":["id","component","url"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["List"]},"items":{"type":"array","items":{"type":"string","maxLength":300},"maxItems":8,"minItems":1}},"required":["id","component","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Tags"]},"items":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":10,"minItems":1}},"required":["id","component","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Compare"]},"before":{"type":"object","properties":{"label":{"type":"string","maxLength":60},"items":{"type":"array","items":{"type":"string","maxLength":300},"maxItems":5,"minItems":0}},"required":["label","items"],"additionalProperties":false},"after":{"type":"object","properties":{"label":{"type":"string","maxLength":60},"items":{"type":"array","items":{"type":"string","maxLength":300},"maxItems":5,"minItems":0}},"required":["label","items"],"additionalProperties":false}},"required":["id","component","before","after"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Steps"]},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","maxLength":80},"text":{"type":"string","maxLength":160}},"required":["title","text"],"additionalProperties":false},"maxItems":6,"minItems":1}},"required":["id","component","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Timeline"]},"items":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","maxLength":24},"title":{"type":"string","maxLength":80},"text":{"type":"string","maxLength":160}},"required":["time","title","text"],"additionalProperties":false},"maxItems":8,"minItems":1}},"required":["id","component","items"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Callout"]},"tone":{"type":"string","enum":["success","info","warning"],"default":"info"},"title":{"type":"string","maxLength":80},"text":{"type":"string","maxLength":240}},"required":["id","component","tone","title","text"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Field"]},"label":{"type":"string","maxLength":60},"kind":{"type":"string","enum":["text","email","number","date","tel"],"default":"text"},"placeholder":{"type":"string","maxLength":60},"submit":{"type":"string","maxLength":30,"default":"Senden"}},"required":["id","component","label","kind","placeholder","submit"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Button"]},"label":{"type":"string","maxLength":40}},"required":["id","component","label"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","maxLength":40,"minLength":1,"pattern":"^[^\\s:]+$"},"component":{"type":"string","enum":["Link"]},"label":{"type":"string","maxLength":80},"url":{"type":"string","maxLength":2048,"format":"uri","pattern":"^https://"}},"required":["id","component","label","url"],"additionalProperties":false}]},"unavailable":["hosted_share_rooms","public_npm_package","customer_oauth_connector_catalog","automatic_job_polling"],"sdk":{"delivery":"Published versioned standalone ES module and independent Node starter; hosted admission is a separate operator approval","version":"0.6.1","origin":"https://app.erfindergeist.ai","module":{"path":"/sdk/lina-live/0.6.1/lina-live.2e42241ae46975a94e2b7132852aad2a9e7bf3872976213e8630c2bef24e16b7.js","sha256":"2e42241ae46975a94e2b7132852aad2a9e7bf3872976213e8630c2bef24e16b7","integrity":"sha384-9QACaBX8UJOLqL4FvGhNh+BkW6Z68UPnY8OYssvVKXqMdk+/40tiv95nMlNQoSji","bytes":72606},"client":{"formatVersion":1,"sdkVersion":"0.6.1","catalogId":"erfindergeist.ai/board/v2","protocol":"v0.9","contractSha256":"98c213c91c59fb0bb5c8589982ed83277aa9a1b798f33dc23c71961b495b3b7b"},"formatVersion":1,"manifestPath":"/sdk/lina-live/0.6.1/manifest.json","starter":{"path":"/sdk/lina-live/0.6.1/starter.194960c9e861a2f2d876c9047bec75b2b3558c0aecc654ce027bb73ef294af02.tar.gz","sha256":"194960c9e861a2f2d876c9047bec75b2b3558c0aecc654ce027bb73ef294af02","bytes":5888},"status":"published","moduleUrl":"https://app.erfindergeist.ai/sdk/lina-live/0.6.1/lina-live.2e42241ae46975a94e2b7132852aad2a9e7bf3872976213e8630c2bef24e16b7.js","starterUrl":"https://app.erfindergeist.ai/sdk/lina-live/0.6.1/starter.194960c9e861a2f2d876c9047bec75b2b3558c0aecc654ce027bb73ef294af02.tar.gz","manifestUrl":"https://app.erfindergeist.ai/sdk/lina-live/0.6.1/manifest.json"},"authentication":{"scheme":"Bearer","environment":"LINA_LIVE_API_KEY","oauth":false,"setupScopes":["apps:read","apps:write","apps:publish"],"backendKeyKind":"runtime","setupKeyKind":"personal","backendScopes":["sessions:create"],"contentScopes":["context:read","context:write","activity:read","activity:content"]},"operations":[{"id":"journal.get","scope":"activity:content","http":{"method":"POST","path":"/v1/live/ops/journal.get"},"mcp":"lina_live_journal_get","summary":"Read an own encrypted raw conversation protocol by byte range. Credentials are omitted; capture failures remain explicit.","execution":"local"},{"id":"activity.list","scope":"activity:read","http":{"method":"POST","path":"/v1/live/ops/activity.list"},"mcp":"lina_live_activity_list","summary":"List own sessions with keyset pagination and entry attribution; no transcript or tool arguments.","execution":"local"},{"id":"activity.stats","scope":"activity:read","http":{"method":"POST","path":"/v1/live/ops/activity.stats"},"mcp":"lina_live_activity_stats","summary":"Count issued grants, provider starts, active sessions and confirmed write actions separately. Attribution labels are backend assertions, not verified click analytics.","execution":"local"},{"id":"activity.get","scope":"activity:content","http":{"method":"POST","path":"/v1/live/ops/activity.get"},"mcp":"lina_live_activity_get","summary":"Read one own activity timeline page including speech, board scenes and authoritative tool receipt status. Expired or erased content stays unavailable.","execution":"local"},{"id":"account.get","scope":"apps:read","http":{"method":"POST","path":"/v1/live/ops/account.get"},"mcp":"lina_live_account_get","summary":"Read own hosted provisioning progress without secrets or provider resource IDs. Null for legacy accounts.","execution":"local"},{"id":"memory.subject.get","scope":"context:read","http":{"method":"POST","path":"/v1/live/ops/memory.subject.get"},"mcp":"lina_live_memory_subject_get","summary":"Read the exact own memory scope; customer backend must authorize the participant.","execution":"local"},{"id":"memory.subject.put","scope":"context:write","http":{"method":"POST","path":"/v1/live/ops/memory.subject.put"},"mcp":"lina_live_memory_subject_put","summary":"Replace curated scope context with revision protection. No model call or identity inference.","execution":"local"},{"id":"memory.subject.delete","scope":"context:write","http":{"method":"POST","path":"/v1/live/ops/memory.subject.delete"},"mcp":"lina_live_memory_subject_delete","summary":"Erase scope content and revoke its grants. Preserve a tombstone and billing aggregates.","execution":"local"},{"id":"memory.conversations.list","scope":"context:read","http":{"method":"POST","path":"/v1/live/ops/memory.conversations.list"},"mcp":"lina_live_memory_conversations_list","summary":"List own nonexpired threads for exactly one scope, with UUID keyset pagination.","execution":"local"},{"id":"memory.conversation.get","scope":"context:read","http":{"method":"POST","path":"/v1/live/ops/memory.conversation.get"},"mcp":"lina_live_memory_conversation_get","summary":"Read one scoped thread and a page of encrypted-at-rest transcript/board checkpoints. No automatic business retry.","execution":"local"},{"id":"memory.conversation.delete","scope":"context:write","http":{"method":"POST","path":"/v1/live/ops/memory.conversation.delete"},"mcp":"lina_live_memory_conversation_delete","summary":"Erase an exact thread and revoke its grants without deleting cost accounting.","execution":"local"},{"id":"domains.list","scope":"apps:read","http":{"method":"POST","path":"/v1/live/ops/domains.list"},"mcp":"lina_live_domains_list","summary":"List own exact-host DNS challenges and cached verification status.","execution":"local"},{"id":"domains.request","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/domains.request"},"mcp":"lina_live_domains_request","summary":"Request a tenant-bound DNS TXT ownership proof for an exact HTTPS origin. Revoked proofs rotate their challenge.","execution":"local"},{"id":"domains.verify","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/domains.verify"},"mcp":"lina_live_domains_verify","summary":"Check the persistent DNS TXT record for an exact host. Does not authorize visitors.","execution":"external"},{"id":"domains.revoke","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/domains.revoke"},"mcp":"lina_live_domains_revoke","summary":"Revoke an own host proof, stopping new and active sessions on that host.","execution":"local"},{"id":"usage.get","scope":"apps:read","http":{"method":"POST","path":"/v1/live/ops/usage.get"},"mcp":"lina_live_usage_get","summary":"Read effective limits, operator capacity, own settings and UTC allocation. Not an invoice or token price estimate.","execution":"local"},{"id":"usage.configure","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/usage.configure"},"mcp":"lina_live_usage_configure","summary":"Configure own instance limits within available capacity, with revision protection. Does not change billing, provider caps or personal model profiles. Changes apply to new conversations.","execution":"local"},{"id":"admission.get","scope":"sessions:create","http":{"method":"POST","path":"/v1/live/ops/admission.get"},"mcp":"lina_live_admission_get","summary":"Read only the own public visitor policy for a trusted website backend. Does not validate a visitor, issue a grant or expose billing/provider data.","execution":"local"},{"id":"applications.list","scope":"apps:read","http":{"method":"POST","path":"/v1/live/ops/applications.list"},"mcp":"lina_live_applications_list","summary":"List own applications (maximum 50).","execution":"local"},{"id":"applications.get","scope":"apps:read","http":{"method":"POST","path":"/v1/live/ops/applications.get"},"mcp":"lina_live_applications_get","summary":"Read an application including immutable versions and redacted connections.","execution":"local"},{"id":"applications.check","scope":"apps:read","http":{"method":"POST","path":"/v1/live/ops/applications.check"},"mcp":"lina_live_applications_check","summary":"Diagnose current release, origin, cached DNS proof, provider guard and admission capacity. No grant, model call or business action; readiness is a nonbinding snapshot.","execution":"external"},{"id":"applications.version","scope":"apps:read","http":{"method":"POST","path":"/v1/live/ops/applications.version"},"mcp":"lina_live_applications_version","summary":"Read one immutable configuration version.","execution":"local"},{"id":"applications.create","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/applications.create"},"mcp":"lina_live_applications_create","summary":"Create an application draft. Reusing an ID returns conflict.","execution":"local"},{"id":"applications.configure","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/applications.configure"},"mcp":"lina_live_applications_configure","summary":"Append an immutable configuration version, without changing the published version.","execution":"local"},{"id":"applications.publish","scope":"apps:publish","http":{"method":"POST","path":"/v1/live/ops/applications.publish"},"mcp":"lina_live_applications_publish","summary":"Select a valid immutable release for new sessions.","execution":"local"},{"id":"applications.unpublish","scope":"apps:publish","http":{"method":"POST","path":"/v1/live/ops/applications.unpublish"},"mcp":"lina_live_applications_unpublish","summary":"Clear the selected release.","execution":"local"},{"id":"connections.configure","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/connections.configure"},"mcp":"lina_live_connections_configure","summary":"Append an immutable connection version. Supply its authentication anew; secrets are never returned.","execution":"local"},{"id":"connections.revoke","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/connections.revoke"},"mcp":"lina_live_connections_revoke","summary":"Revoke one connection version, including references in published configuration.","execution":"local"},{"id":"connections.inspect","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/connections.inspect"},"mcp":"lina_live_connections_inspect","summary":"Discover MCP tool metadata on one own connection. Does not execute a business tool.","execution":"external"},{"id":"tools.test","scope":"apps:write","http":{"method":"POST","path":"/v1/live/ops/tools.test"},"mcp":"lina_live_tools_test","summary":"Explicit development invocation on an immutable own configuration. Writes require allowWrite=true. Not a visitor/session authorization.","execution":"external"},{"id":"sessions.create","scope":"sessions:create","http":{"method":"POST","path":"/v1/live/ops/sessions.create"},"mcp":"lina_live_sessions_create","summary":"Backend only: issue a single-use grant, optionally binding a backend-authenticated participant, authorized memory scope and thread. Entry labels never authorize an identity or tool action.","execution":"external"},{"id":"sessions.revoke","scope":"sessions:create","http":{"method":"POST","path":"/v1/live/ops/sessions.revoke"},"mcp":"lina_live_sessions_revoke","summary":"Revoke an own browser session, including an active call.","execution":"local"}],"sources":{"codex":"https://developers.openai.com/codex/mcp","claude":"https://code.claude.com/docs/en/mcp#environment-variable-expansion-in-mcp-json"}}