mirror of
https://github.com/murashit/codex-panel.git
synced 2026-07-22 06:57:10 +00:00
54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import type { AppServerDiagnostics } from "../app-server/compatibility";
|
|
import { createAppServerDiagnostics } from "../app-server/compatibility";
|
|
import type { ConfigReadResponse } from "../generated/app-server/v2/ConfigReadResponse";
|
|
import type { Model } from "../generated/app-server/v2/Model";
|
|
import type { RateLimitSnapshot } from "../generated/app-server/v2/RateLimitSnapshot";
|
|
import type { SkillMetadata } from "../generated/app-server/v2/SkillMetadata";
|
|
import type { Thread } from "../generated/app-server/v2/Thread";
|
|
|
|
export interface SharedSessionMetadata {
|
|
effectiveConfig: ConfigReadResponse | null;
|
|
availableModels: Model[];
|
|
availableSkills: SkillMetadata[];
|
|
rateLimit: RateLimitSnapshot | null;
|
|
appServerDiagnostics: AppServerDiagnostics;
|
|
}
|
|
|
|
export interface SharedAppServerState extends SharedSessionMetadata {
|
|
threads: Thread[] | null;
|
|
sessionMetadataLoaded: boolean;
|
|
}
|
|
|
|
export function createSharedAppServerState(): SharedAppServerState {
|
|
return {
|
|
threads: null,
|
|
sessionMetadataLoaded: false,
|
|
effectiveConfig: null,
|
|
availableModels: [],
|
|
availableSkills: [],
|
|
rateLimit: null,
|
|
appServerDiagnostics: createAppServerDiagnostics(),
|
|
};
|
|
}
|
|
|
|
export function applySharedThreadList(state: SharedAppServerState, threads: Thread[]): SharedAppServerState {
|
|
return {
|
|
...state,
|
|
threads,
|
|
};
|
|
}
|
|
|
|
export function applySharedSessionMetadata(state: SharedAppServerState, metadata: SharedSessionMetadata): SharedAppServerState {
|
|
return {
|
|
...state,
|
|
...metadata,
|
|
sessionMetadataLoaded: true,
|
|
};
|
|
}
|
|
|
|
export function applySharedModels(state: SharedAppServerState, models: Model[]): SharedAppServerState {
|
|
return {
|
|
...state,
|
|
availableModels: models,
|
|
};
|
|
}
|