refactor: consolidate chat state and task bridges
Centralize session scope, chat projections and typed task bridges. Keep historical interaction replies authoritative and publish terminal state to subscribers. Validate Server contracts before replacing generated artifacts.
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
import type { SessionWorkspaceContext } from "../runtime/conversationWorkspace.js";
|
||||
|
||||
/** Always derive persistence scope from a host-validated session record. */
|
||||
export const toSessionScope = (record: SessionWorkspaceContext): SessionWorkspaceContext => ({
|
||||
sessionId: record.sessionId,
|
||||
actorKey: record.actorKey,
|
||||
projectKey: record.projectKey,
|
||||
});
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { SessionWorkspaceContext } from "../runtime/conversationWorkspace.js";
|
||||
import { join } from "node:path";
|
||||
|
||||
import { config } from "../config.js";
|
||||
@@ -17,11 +18,7 @@ export type SessionUiStateRecord = {
|
||||
executionPlans?: Record<string, unknown>[];
|
||||
};
|
||||
|
||||
type SessionUiStateContext = {
|
||||
sessionId: string;
|
||||
actorKey?: string;
|
||||
projectKey?: string;
|
||||
};
|
||||
type SessionUiStateContext = SessionWorkspaceContext;
|
||||
|
||||
export class SessionUiStateStore {
|
||||
constructor(private readonly baseDir = config.SESSION_UI_STATE_STORAGE_DIR, private readonly workspaces?: SessionWorkspaceStore) {}
|
||||
|
||||
Reference in New Issue
Block a user