refactor(v2): move session storage under storage
This commit is contained in:
parent
8b38c9b999
commit
dc55ece384
7 changed files with 12 additions and 12 deletions
|
|
@ -10,8 +10,8 @@ import { optionalOmitUndefined } from "@opencode-ai/core/schema"
|
|||
import { EventV2 } from "@opencode-ai/core/event"
|
||||
import { EventV2Bridge } from "@/event-v2-bridge"
|
||||
import { ModelV2 } from "@opencode-ai/core/model"
|
||||
import { SessionStorage } from "./session/storage"
|
||||
import { SessionStorageSql } from "./session/storage-sql"
|
||||
import { SessionStorage } from "./storage/session"
|
||||
import { SessionStorageSql } from "./storage/session-sql"
|
||||
|
||||
export const Delivery = Schema.Literals(["immediate", "deferred"]).annotate({
|
||||
identifier: "Session.Delivery",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { DateTime, Effect, Layer } from "effect"
|
||||
import { SessionMessage } from "@opencode-ai/core/session-message"
|
||||
import { SessionStorage } from "./storage"
|
||||
import { SessionStorage } from "./session"
|
||||
|
||||
export const make = (state: {
|
||||
readonly sessions: Map<string, SessionStorage.SessionRow>
|
||||
|
|
@ -98,4 +98,4 @@ function compareRows(aID: string, aTime: number, bID: string, bTime: number, ord
|
|||
return order === "asc" ? result : -result
|
||||
}
|
||||
|
||||
export * as SessionStorageMemory from "./storage-memory"
|
||||
export * as SessionStorageMemory from "./session-memory"
|
||||
|
|
@ -2,7 +2,7 @@ import { SessionMessageTable, SessionTable } from "@/session/session.sql"
|
|||
import { and, asc, Database, desc, eq, gt, gte, isNull, like, lt, or, type SQL } from "@/storage/db"
|
||||
import { SessionMessage } from "@opencode-ai/core/session-message"
|
||||
import { Effect, Layer, Schema } from "effect"
|
||||
import { SessionStorage } from "./storage"
|
||||
import { SessionStorage } from "./session"
|
||||
|
||||
const decodeMessage = Schema.decodeUnknownSync(SessionMessage.Message)
|
||||
const decodeSessionRow = Schema.decodeUnknownSync(SessionStorage.SessionRow)
|
||||
|
|
@ -170,4 +170,4 @@ function fromSessionRow(row: typeof SessionTable.$inferSelect) {
|
|||
})
|
||||
}
|
||||
|
||||
export * as SessionStorageSql from "./storage-sql"
|
||||
export * as SessionStorageSql from "./session-sql"
|
||||
|
|
@ -97,4 +97,4 @@ export function pageOrder(order: SortOrder, direction: PageDirection) {
|
|||
|
||||
export class Service extends Context.Service<Service, Interface>()("@opencode/v2/session/Storage") {}
|
||||
|
||||
export * as SessionStorage from "./storage"
|
||||
export * as SessionStorage from "./session"
|
||||
|
|
@ -36,7 +36,7 @@ import { SessionRunState } from "../../src/session/run-state"
|
|||
import { MessageID, PartID, SessionID } from "../../src/session/schema"
|
||||
import { SessionStatus } from "../../src/session/status"
|
||||
import { SessionV2 } from "../../src/v2/session"
|
||||
import { SessionStorageSql } from "../../src/v2/session/storage-sql"
|
||||
import { SessionStorageSql } from "../../src/v2/storage/session-sql"
|
||||
import { Skill } from "../../src/skill"
|
||||
import { SystemPrompt } from "../../src/session/system"
|
||||
import { Shell } from "../../src/shell/shell"
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ import { ProjectTable } from "@/project/project.sql"
|
|||
import { SessionID } from "@/session/schema"
|
||||
import { SessionMessageTable, SessionTable } from "@/session/session.sql"
|
||||
import { Database } from "@/storage/db"
|
||||
import { SessionStorage } from "@/v2/session/storage"
|
||||
import { SessionStorageMemory } from "@/v2/session/storage-memory"
|
||||
import { SessionStorageSql } from "@/v2/session/storage-sql"
|
||||
import { SessionStorage } from "@/v2/storage/session"
|
||||
import { SessionStorageMemory } from "@/v2/storage/session-memory"
|
||||
import { SessionStorageSql } from "@/v2/storage/session-sql"
|
||||
import { EventV2 } from "@opencode-ai/core/event"
|
||||
import { SessionMessage } from "@opencode-ai/core/session-message"
|
||||
import { eq, or } from "@/storage/db"
|
||||
|
|
|
|||
|
|
@ -465,7 +465,7 @@ Avoid leaking Drizzle or SQLite error codes above the storage implementation. Fo
|
|||
|
||||
The first implementation PR should be small and reversible:
|
||||
|
||||
- Add `packages/opencode/src/v2/session/storage.ts` with the `SessionStorage` service shape.
|
||||
- Add `packages/opencode/src/v2/storage/session.ts` with the `SessionStorage` service shape.
|
||||
- Implement SQL and in-memory read backends for `get`, `list`, `messages`, and `context`.
|
||||
- Refactor `v2/session.ts` to consume `SessionStorage.Service` instead of raw Drizzle calls.
|
||||
- Keep table schemas and existing migrations unchanged.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue