refactor(v2): inline memory storage state
This commit is contained in:
parent
2743504e60
commit
8b38c9b999
2 changed files with 7 additions and 12 deletions
|
|
@ -2,17 +2,10 @@ import { DateTime, Effect, Layer } from "effect"
|
||||||
import { SessionMessage } from "@opencode-ai/core/session-message"
|
import { SessionMessage } from "@opencode-ai/core/session-message"
|
||||||
import { SessionStorage } from "./storage"
|
import { SessionStorage } from "./storage"
|
||||||
|
|
||||||
export interface State {
|
export const make = (state: {
|
||||||
readonly sessions: Map<string, SessionStorage.SessionRow>
|
readonly sessions: Map<string, SessionStorage.SessionRow>
|
||||||
readonly messages: Map<string, SessionMessage.Message[]>
|
readonly messages: Map<string, SessionMessage.Message[]>
|
||||||
}
|
}) =>
|
||||||
|
|
||||||
const makeState = (): State => ({
|
|
||||||
sessions: new Map(),
|
|
||||||
messages: new Map(),
|
|
||||||
})
|
|
||||||
|
|
||||||
export const make = (state = makeState()) =>
|
|
||||||
SessionStorage.Service.of({
|
SessionStorage.Service.of({
|
||||||
get: (sessionID) => Effect.sync(() => state.sessions.get(sessionID)),
|
get: (sessionID) => Effect.sync(() => state.sessions.get(sessionID)),
|
||||||
list: (input) =>
|
list: (input) =>
|
||||||
|
|
@ -80,8 +73,10 @@ export const make = (state = makeState()) =>
|
||||||
})
|
})
|
||||||
|
|
||||||
const storageLayer = Layer.sync(SessionStorage.Service, () => {
|
const storageLayer = Layer.sync(SessionStorage.Service, () => {
|
||||||
const state = makeState()
|
return make({
|
||||||
return make(state)
|
sessions: new Map(),
|
||||||
|
messages: new Map(),
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
export const layer = storageLayer
|
export const layer = storageLayer
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ const sessionB = SessionID.make("ses_storage_b")
|
||||||
const sessionC = SessionID.make("ses_storage_c")
|
const sessionC = SessionID.make("ses_storage_c")
|
||||||
const sessionD = SessionID.make("ses_storage_d")
|
const sessionD = SessionID.make("ses_storage_d")
|
||||||
const encodeMessage = Schema.encodeSync(SessionMessage.Message)
|
const encodeMessage = Schema.encodeSync(SessionMessage.Message)
|
||||||
const memoryState: SessionStorageMemory.State = {
|
const memoryState = {
|
||||||
sessions: new Map(),
|
sessions: new Map(),
|
||||||
messages: new Map(),
|
messages: new Map(),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue