@morlay/session-rdb 0.0.14 → 0.0.16-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -13
- package/dist/artifact.d.mts +6 -16
- package/dist/artifact.mjs +3 -3
- package/dist/{import-B-tf5vQn.mjs → import-CKrzjXVB.mjs} +73 -83
- package/dist/import.d.mts +2 -3
- package/dist/import.mjs +2 -2
- package/dist/index-CgGDHQSK.d.mts +225 -0
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +694 -169
- package/dist/log-DTJsxMud.mjs +314 -0
- package/dist/{schema-CFXZURX7.d.mts → schema-COK7-wRV.d.mts} +3 -15
- package/dist/sqlite-DCy4VTD8.mjs +698 -0
- package/dist/storage.d.mts +2 -7
- package/dist/storage.mjs +2 -3
- package/dist/testing.d.mts +30 -1
- package/dist/testing.mjs +676 -1991
- package/drizzle/postgres/20260908072805_v2_initial/migration.sql +58 -0
- package/drizzle/postgres/20260908072805_v2_initial/snapshot.json +686 -0
- package/drizzle/postgres/20260908072806_v3_drop_original_seq/migration.sql +1 -0
- package/drizzle/postgres/20260908072806_v3_drop_original_seq/snapshot.json +673 -0
- package/drizzle/sqlite/20260908072751_v2_initial/migration.sql +53 -0
- package/drizzle/sqlite/20260908072751_v2_initial/snapshot.json +492 -0
- package/drizzle/sqlite/20260908072752_v3_drop_original_seq/migration.sql +6 -0
- package/drizzle/sqlite/20260908072752_v3_drop_original_seq/snapshot.json +513 -0
- package/package.json +17 -12
- package/src/adapters/index.ts +10 -2
- package/src/adapters/to-postgres.ts +19 -15
- package/src/adapters/to-sqlite.ts +20 -14
- package/src/{entities → adapters}/types.ts +7 -8
- package/src/backend.ts +0 -7
- package/src/branch.ts +29 -110
- package/src/drizzle/postgres-v2.ts +11 -0
- package/src/drizzle/postgres-v3.ts +11 -0
- package/src/drizzle/sqlite-v2.ts +10 -0
- package/src/drizzle/sqlite-v3.ts +11 -0
- package/src/entities/index.ts +2 -30
- package/src/entities/v2/index.ts +20 -0
- package/src/entities/v2/session-events.ts +11 -0
- package/src/entities/v3/events.ts +27 -0
- package/src/entities/v3/index.ts +27 -0
- package/src/entities/v3/persistence-state.ts +10 -0
- package/src/entities/v3/schema-meta.ts +9 -0
- package/src/entities/v3/session-events.ts +26 -0
- package/src/entities/v3/sessions.ts +20 -0
- package/src/import.ts +65 -57
- package/src/index.ts +868 -223
- package/src/invariant.ts +0 -2
- package/src/legacy.ts +67 -0
- package/src/log.ts +41 -81
- package/src/postgres.ts +75 -93
- package/src/schema.ts +3 -14
- package/src/sqlite.ts +59 -46
- package/src/testing/contract.ts +460 -375
- package/src/testing/coordinator-contract.ts +108 -1374
- package/src/testing.ts +1 -6
- package/dist/index-uUvn6gYp.d.mts +0 -111
- package/dist/schema-BfPVmr1X.mjs +0 -875
- package/dist/sqlite-BUWnS0so.mjs +0 -356
- package/src/adapters/ddl.ts +0 -77
- package/src/entities/events.ts +0 -27
- package/src/entities/persistence-state.ts +0 -10
- package/src/entities/schema-meta.ts +0 -9
- package/src/entities/session-events.ts +0 -29
- package/src/entities/sessions.ts +0 -20
- package/src/migrate.ts +0 -137
package/src/testing.ts
CHANGED
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
// 仅供 vitest 测试引用;不进入运行时 bundle。
|
|
3
3
|
export { EmptySettings } from "./testing/helpers.ts";
|
|
4
4
|
export type { ContractBackend } from "./testing/contract.ts";
|
|
5
|
-
export {
|
|
6
|
-
appendLog,
|
|
7
|
-
meta,
|
|
8
|
-
oneTurnLog,
|
|
9
|
-
runPersistenceContract,
|
|
10
|
-
} from "./testing/contract.ts";
|
|
5
|
+
export { appendLog, meta, oneTurnLog, runPersistenceContract } from "./testing/contract.ts";
|
|
11
6
|
export type { CoordinatorFixture } from "./testing/coordinator-contract.ts";
|
|
12
7
|
export { runCoordinatorContract } from "./testing/coordinator-contract.ts";
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { _ as WriteGuard, o as JournalMode, v as Backend } from "./schema-CFXZURX7.mjs";
|
|
2
|
-
import z from "@deepseek-ai/schemastery";
|
|
3
|
-
import { PersistenceBackend, SessionLocation, SessionPersistence, SessionPersistenceRevision, SessionPersistenceSnapshot, SessionStorageMetadata, StoredPrefix, StoredSuffix } from "@deepseek-ai/dsh-session-persistence";
|
|
4
|
-
import { Session, SessionEvent, SessionHeader, SessionId } from "@deepseek-ai/dsh-session";
|
|
5
|
-
import { BranchAnchorMode, BranchBoundary, ForkFromOptions, SessionBranch, SessionBranchProvider } from "@morlay/session-branch";
|
|
6
|
-
import { Context } from "@deepseek-ai/cordis";
|
|
7
|
-
//#region src/branch.d.ts
|
|
8
|
-
declare function locateTurnEnd(events: readonly SessionEvent[], atSeq?: number, mode?: BranchAnchorMode): number;
|
|
9
|
-
interface LiveSessionHooks {
|
|
10
|
-
getSession(id: SessionId): Session | undefined;
|
|
11
|
-
getAgent(id: SessionId): LiveAgentLike | undefined;
|
|
12
|
-
flush(session: Session): Promise<boolean>;
|
|
13
|
-
setCoordinatorCursor(id: SessionId, cursor: number): void;
|
|
14
|
-
setCoordinatorState(id: SessionId, cursor: number, meta: SessionHeader): void;
|
|
15
|
-
setCoordinatorSeedLength(id: SessionId, seedLength: number): void;
|
|
16
|
-
}
|
|
17
|
-
interface LiveAgentLike {
|
|
18
|
-
session: Session;
|
|
19
|
-
requestHeaderLogged?: boolean;
|
|
20
|
-
}
|
|
21
|
-
declare class SessionBranchRdbProvider implements SessionBranchProvider {
|
|
22
|
-
private readonly persistence;
|
|
23
|
-
private readonly live;
|
|
24
|
-
readonly name = "session-rdb";
|
|
25
|
-
constructor(persistence: SessionPersistenceRdb, live?: LiveSessionHooks);
|
|
26
|
-
readBranchPrefix(id: SessionId, atSeq?: number, mode?: BranchAnchorMode, signal?: AbortSignal): Promise<BranchBoundary>;
|
|
27
|
-
readRawEvents(id: SessionId, signal?: AbortSignal): Promise<{
|
|
28
|
-
meta: SessionHeader;
|
|
29
|
-
events: readonly SessionEvent[];
|
|
30
|
-
}>;
|
|
31
|
-
forkFrom(sourceId: SessionId, options?: ForkFromOptions, signal?: AbortSignal): Promise<SessionId>;
|
|
32
|
-
rewind(id: SessionId, toBoundary: number, signal?: AbortSignal): Promise<SessionPersistenceSnapshot>;
|
|
33
|
-
}
|
|
34
|
-
declare class SessionBranchRdb extends SessionBranch {
|
|
35
|
-
static inject: string[];
|
|
36
|
-
constructor(ctx: import("@deepseek-ai/cordis").Context);
|
|
37
|
-
private readonly provider;
|
|
38
|
-
readBranchPrefix(id: SessionId, atSeq?: number, mode?: BranchAnchorMode, signal?: AbortSignal): Promise<BranchBoundary>;
|
|
39
|
-
readRawEvents(id: SessionId, signal?: AbortSignal): Promise<{
|
|
40
|
-
meta: SessionHeader;
|
|
41
|
-
events: readonly SessionEvent[];
|
|
42
|
-
}>;
|
|
43
|
-
forkFrom(sourceId: SessionId, options?: ForkFromOptions, signal?: AbortSignal): Promise<SessionId>;
|
|
44
|
-
rewind(id: SessionId, toBoundary: number, signal?: AbortSignal): Promise<SessionPersistenceSnapshot>;
|
|
45
|
-
syncLiveCursor(sessionId: SessionId): void;
|
|
46
|
-
timeline(sessionId: SessionId, signal?: AbortSignal): Promise<import("@morlay/session-branch").BranchTimeline>;
|
|
47
|
-
}
|
|
48
|
-
//#endregion
|
|
49
|
-
//#region src/index.d.ts
|
|
50
|
-
interface SessionPersistenceRdbInternals {
|
|
51
|
-
readonly backend: Backend;
|
|
52
|
-
readonly writeGuard: WriteGuard;
|
|
53
|
-
create(meta: SessionHeader, inheritedEventCount?: number): Promise<void>;
|
|
54
|
-
append(id: SessionId, events: readonly SessionEvent[]): Promise<void>;
|
|
55
|
-
load(id: SessionId): Promise<import("@deepseek-ai/dsh-session-persistence").SessionInspection>;
|
|
56
|
-
inspect(id: SessionId, signal?: AbortSignal): Promise<import("@deepseek-ai/dsh-session-persistence").SessionInspection>;
|
|
57
|
-
readFrom(id: SessionId, fromSeq: number, signal?: AbortSignal): Promise<import("@deepseek-ai/dsh-session-persistence").SessionEventSuffix>;
|
|
58
|
-
listSnapshots(signal?: AbortSignal): Promise<SessionPersistenceSnapshot[]>;
|
|
59
|
-
readStoredRevision(id: SessionId, signal?: AbortSignal): Promise<import("@deepseek-ai/dsh-session-persistence").SessionPersistenceRevision | undefined>;
|
|
60
|
-
registerReuseEventIds(childId: SessionId, map: ReadonlyMap<number, string>): void;
|
|
61
|
-
}
|
|
62
|
-
type Config = {
|
|
63
|
-
type: "sqlite";
|
|
64
|
-
path: string;
|
|
65
|
-
journalMode?: JournalMode;
|
|
66
|
-
busyTimeout?: number;
|
|
67
|
-
} | {
|
|
68
|
-
type: "postgres";
|
|
69
|
-
connectionString: string;
|
|
70
|
-
schema?: string;
|
|
71
|
-
};
|
|
72
|
-
declare class SessionPersistenceRdb extends SessionPersistence implements PersistenceBackend<number> {
|
|
73
|
-
config: Config;
|
|
74
|
-
static inject: string[];
|
|
75
|
-
static Config: z<Config>;
|
|
76
|
-
static readonly settingsNs = "session-rdb";
|
|
77
|
-
readonly name = "session-rdb";
|
|
78
|
-
readonly supportsRawArtifacts = true;
|
|
79
|
-
readRaw(id: SessionId, signal?: AbortSignal): Promise<import("@deepseek-ai/dsh-session-persistence").SessionRawArtifact | undefined>;
|
|
80
|
-
private readonly backend;
|
|
81
|
-
private storeIdentity;
|
|
82
|
-
private readonly ready;
|
|
83
|
-
private readonly coordinator;
|
|
84
|
-
private readonly writeGuard;
|
|
85
|
-
private readonly reuseEventIds;
|
|
86
|
-
constructor(ctx: Context, config: Config, injectedBackend?: Backend);
|
|
87
|
-
private init;
|
|
88
|
-
locate(_meta: SessionHeader): SessionLocation | undefined;
|
|
89
|
-
create(meta: SessionHeader, inheritedEventCount?: number): Promise<void>;
|
|
90
|
-
append(id: SessionId, events: readonly SessionEvent[]): Promise<void>;
|
|
91
|
-
load(id: SessionId): Promise<import("@deepseek-ai/dsh-session-persistence").SessionInspection>;
|
|
92
|
-
inspect(id: SessionId, signal?: AbortSignal): Promise<import("@deepseek-ai/dsh-session-persistence").SessionInspection>;
|
|
93
|
-
readFrom(id: SessionId, fromSeq: number, signal?: AbortSignal): Promise<import("@deepseek-ai/dsh-session-persistence").SessionEventSuffix>;
|
|
94
|
-
borrowSession(id: SessionId, signal?: AbortSignal): Promise<import("@deepseek-ai/dsh-session-persistence").BorrowedSessionSource>;
|
|
95
|
-
loadStored(id: SessionId, signal?: AbortSignal): Promise<StoredPrefix<number> | undefined>;
|
|
96
|
-
loadStoredFrom(id: SessionId, fromSeq: number, signal?: AbortSignal): Promise<StoredSuffix | undefined>;
|
|
97
|
-
private readPrefix;
|
|
98
|
-
readStoredRevision(id: SessionId, signal?: AbortSignal): Promise<SessionPersistenceRevision | undefined>;
|
|
99
|
-
private readLog;
|
|
100
|
-
appendBatch(storage: SessionStorageMetadata, events: readonly SessionEvent[], _isMaterialized: boolean): Promise<void>;
|
|
101
|
-
commitRepair(storage: SessionStorageMetadata, tornMarker: number | undefined, closers: readonly SessionEvent[]): Promise<void>;
|
|
102
|
-
list(signal?: AbortSignal): Promise<SessionHeader[]>;
|
|
103
|
-
listSnapshots(signal?: AbortSignal): Promise<Array<SessionPersistenceSnapshot & {
|
|
104
|
-
inheritedEventCount: number;
|
|
105
|
-
}>>;
|
|
106
|
-
close(): Promise<void>;
|
|
107
|
-
registerReuseEventIds(childId: SessionId, map: ReadonlyMap<number, string>): void;
|
|
108
|
-
internals(): SessionPersistenceRdbInternals;
|
|
109
|
-
}
|
|
110
|
-
//#endregion
|
|
111
|
-
export { SessionBranchRdbProvider as a, SessionBranchRdb as i, SessionPersistenceRdb as n, locateTurnEnd as o, SessionPersistenceRdbInternals as r, Config as t };
|