/** * Daemon-hosted session configuration. * * The engine lives in platform/hosted-sessions; this file is only its settings * surface. It is its own domain rather than another block inside * schema-domain-runtime.ts because that file is at its size ceiling. * * `detachPolicy` is the one people will actually change, and its default is * deliberate: `kill`. Detaching a client has always ended its work, everyone * expects that, and a capability landing must not silently redefine a familiar * action. Setting `survive` opts an installation into sessions that outlive the * client that opened them; a single session can also override the setting when * it is created. */ import { type ConfigSettingDefinition } from './schema-shared.js'; export interface HostedSessionsSettings { detachPolicy: 'kill' | 'survive'; maxSessions: number; maxMessagesPerSession: number; terminatedRetentionMs: number; /** * How long a client's attachment stands without renewal, in milliseconds. * An attachment is a claim about a live process; a client that crashed or * closed its tab makes no detach call, so the claim has to expire or a * kill-policy session waits for a departure that never arrives. */ attachmentTtlMs: number; /** * Whether a surface that receives inbound channel messages hands the * conversation to the daemon to host instead of answering it in its own * process. Off by default: today an inbound message is answered by the * process that received it, and that is what people's channels already do. */ promoteInboundConversations: boolean; /** * Whether this surface's OWN conversation turns run in the connected daemon * rather than in this process. On by default when a connected daemon is * there: the daemon is the loop host, so a turn keeps running when this * process goes away and every surface sees the same conversation. * * Distinct from {@link promoteInboundConversations}, which is about messages * arriving from a channel. This one is about what happens when the person in * front of this surface presses enter. * * Turning it off forces every turn to run locally. With no connected daemon * reachable, turns run locally regardless, and say so, once, in the * transcript. */ routeConversationTurns: boolean; } declare module './schema-types.js' { interface GoodVibesConfig { hostedSessions: HostedSessionsSettings; } } export declare const hostedSessionsConfigDefaults: { hostedSessions: { detachPolicy: string; maxSessions: number; maxMessagesPerSession: number; terminatedRetentionMs: number; attachmentTtlMs: number; promoteInboundConversations: boolean; routeConversationTurns: boolean; }; }; export declare const hostedSessionsConfigSettings: ConfigSettingDefinition[]; //# sourceMappingURL=schema-domain-hosted-sessions.d.ts.map