@morlay/session-rdb 0.1.2 → 0.1.3

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.
@@ -0,0 +1,14 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
4
+ var __exportAll = (all, no_symbols) => {
5
+ let target = {};
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
11
+ return target;
12
+ };
13
+ //#endregion
14
+ export { __exportAll as n, __commonJSMin as t };
@@ -1,5 +1,5 @@
1
1
  import { COUNTED_EVENT_TYPES, addActivityTotals, addTokenTotals, addTotals, emptyTotals, localDayKey } from "./usage.mjs";
2
- import { _ as sessionConflictRow, b as titleOfEventData, v as sessionInsertRow } from "./log-D5C8-TGs.mjs";
2
+ import { _ as sessionConflictRow, b as titleOfEventData, v as sessionInsertRow } from "./log-DYxdjJ-l.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { SESSION_FORMAT_VERSION, SessionId, SessionLogOffset, SessionSeq } from "@deepseek-ai/dsh-session";
5
5
  import { and, desc, eq, gte, inArray, isNotNull, lt, notInArray, sql } from "drizzle-orm";
@@ -1,8 +1,8 @@
1
- import { C as postgresTableDefs, T as WriteGuard, a as EVENT_ENCODING, c as eventDimensions, i as DEFAULT_BUSY_TIMEOUT_MS, r as createStorageRepository, t as SqliteBackend, w as toPostgresSchema } from "./sqlite-CMMSn5kE.mjs";
1
+ import { C as postgresTableDefs, T as WriteGuard, a as EVENT_ENCODING, c as eventDimensions, i as DEFAULT_BUSY_TIMEOUT_MS, r as createStorageRepository, t as SqliteBackend, w as toPostgresSchema } from "./sqlite-YCr2-Fov.mjs";
2
2
  import { a as SESSION_ROWS_PATH, t as SESSION_DELETE_PATH } from "./routes-DGBlBE_I.mjs";
3
3
  import { COUNTED_EVENT_TYPES, addActivityCount, addActivityTotals, addTokenTotals, addTotals, emptyTotals, localDayKey, registerSessionUsage } from "./usage.mjs";
4
- import { S as usageRowOf, _ as sessionConflictRow, b as titleOfEventData, g as sealOwnEvents, h as scanRows, m as rowToMeta, r as needsShapeAdoption, u as repairReadView, v as sessionInsertRow, x as toJsonlArtifact } from "./log-D5C8-TGs.mjs";
5
- import { c as isLegacyVersion, o as adoptLegacyRows, s as convertLegacyRows, t as SessionBranchRdb } from "./branch-IQii6Muq.mjs";
4
+ import { S as usageRowOf, _ as sessionConflictRow, b as titleOfEventData, g as sealOwnEvents, h as scanRows, m as rowToMeta, r as needsShapeAdoption, u as repairReadView, v as sessionInsertRow, x as toJsonlArtifact } from "./log-DYxdjJ-l.mjs";
5
+ import { c as isLegacyVersion, o as adoptLegacyRows, s as convertLegacyRows, t as SessionBranchRdb } from "./branch-aiXPmnKC.mjs";
6
6
  import { registerSessionImport } from "./import.mjs";
7
7
  import { registerSessionExport } from "./export.mjs";
8
8
  import { registerSessionGc } from "./gc.mjs";
@@ -1,14 +1,14 @@
1
- import { A as SessionRow, At as WriteGuard, Ct as tSessionProjcacheRows, D as SessionCountBucket, Dt as tWorkspaceSessions, E as EventRow, Et as tStorageUnits, F as UsageAggregate, Lt as StorageRepository, O as SessionListRowsPage, Ot as tWorkspaceState, St as tSessionEvents, T as BackendTx, Tt as tSessions, _t as tEventUsage, bt as tSchemaMeta, ct as DEFAULT_BUSY_TIMEOUT_MS, dt as EventRole, ft as JournalMode, gt as eventKind, ht as eventDimensions, j as SessionUsageBucket, k as SessionListRowsQuery, kt as tWorkspaces, lt as EVENT_ENCODING, mt as SESSION_PERSISTENCE_SQLITE_APPLICATION_ID, pt as SCHEMA_VERSION, ut as EventKind, vt as tEvents, w as Backend, wt as tSessionUsage, xt as tSessionCounts, yt as tPersistenceState } from "./log-tZMKFRKi.mjs";
1
+ import { A as SessionRow, At as WriteGuard, Ct as tSessionProjcacheRows, D as SessionCountBucket, Dt as tWorkspaceSessions, E as EventRow, Et as tStorageUnits, F as UsageAggregate, Lt as StorageRepository, O as SessionListRowsPage, Ot as tWorkspaceState, St as tSessionEvents, T as BackendTx, Tt as tSessions, _t as tEventUsage, bt as tSchemaMeta, ct as DEFAULT_BUSY_TIMEOUT_MS, dt as EventRole, ft as JournalMode, gt as eventKind, ht as eventDimensions, j as SessionUsageBucket, k as SessionListRowsQuery, kt as tWorkspaces, lt as EVENT_ENCODING, mt as SESSION_PERSISTENCE_SQLITE_APPLICATION_ID, pt as SCHEMA_VERSION, ut as EventKind, vt as tEvents, w as Backend, wt as tSessionUsage, xt as tSessionCounts, yt as tPersistenceState } from "./log-DYyxRh7j.mjs";
2
2
  import { SessionId } from "@deepseek-ai/dsh-session";
3
3
  import { DatabaseSync } from "node:sqlite";
4
4
  //#region src/sqlite.d.ts
5
- declare function openDatabase(path: string, journalMode: JournalMode, busyTimeout?: number): Promise<DatabaseSync>;
6
- interface SqliteBackendOptions {
5
+ export declare function openDatabase(path: string, journalMode: JournalMode, busyTimeout?: number): Promise<DatabaseSync>;
6
+ export interface SqliteBackendOptions {
7
7
  path: string;
8
8
  journalMode: JournalMode;
9
9
  busyTimeout: number;
10
10
  }
11
- declare class SqliteBackend implements Backend {
11
+ export declare class SqliteBackend implements Backend {
12
12
  private readonly options;
13
13
  readonly kind: "sqlite";
14
14
  storeIdentity: string;
@@ -56,4 +56,4 @@ declare class SqliteBackend implements Backend {
56
56
  private eventRows;
57
57
  }
58
58
  //#endregion
59
- export { DEFAULT_BUSY_TIMEOUT_MS, EVENT_ENCODING, EventKind, EventRole, type EventRow, JournalMode, SCHEMA_VERSION, SESSION_PERSISTENCE_SQLITE_APPLICATION_ID, type SessionRow, SqliteBackend, SqliteBackendOptions, WriteGuard, eventDimensions, eventKind, openDatabase, tEventUsage, tEvents, tPersistenceState, tSchemaMeta, tSessionCounts, tSessionEvents, tSessionProjcacheRows, tSessionUsage, tSessions, tStorageUnits, tWorkspaceSessions, tWorkspaceState, tWorkspaces };
59
+ export { DEFAULT_BUSY_TIMEOUT_MS, EVENT_ENCODING, EventKind, EventRole, type EventRow, JournalMode, SCHEMA_VERSION, SESSION_PERSISTENCE_SQLITE_APPLICATION_ID, type SessionRow, WriteGuard, eventDimensions, eventKind, tEventUsage, tEvents, tPersistenceState, tSchemaMeta, tSessionCounts, tSessionEvents, tSessionProjcacheRows, tSessionUsage, tSessions, tStorageUnits, tWorkspaceSessions, tWorkspaceState, tWorkspaces };
package/dist/storage.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { S as tWorkspaces, T as WriteGuard, _ as tSessionUsage, a as EVENT_ENCODING, b as tWorkspaceSessions, c as eventDimensions, d as tEvents, f as tPersistenceState, g as tSessionProjcacheRows, h as tSessionEvents, i as DEFAULT_BUSY_TIMEOUT_MS, l as eventKind, m as tSessionCounts, n as openDatabase, o as SCHEMA_VERSION, p as tSchemaMeta, s as SESSION_PERSISTENCE_SQLITE_APPLICATION_ID, t as SqliteBackend, u as tEventUsage, v as tSessions, x as tWorkspaceState, y as tStorageUnits } from "./sqlite-CMMSn5kE.mjs";
1
+ import { S as tWorkspaces, T as WriteGuard, _ as tSessionUsage, a as EVENT_ENCODING, b as tWorkspaceSessions, c as eventDimensions, d as tEvents, f as tPersistenceState, g as tSessionProjcacheRows, h as tSessionEvents, i as DEFAULT_BUSY_TIMEOUT_MS, l as eventKind, m as tSessionCounts, n as openDatabase, o as SCHEMA_VERSION, p as tSchemaMeta, s as SESSION_PERSISTENCE_SQLITE_APPLICATION_ID, t as SqliteBackend, u as tEventUsage, v as tSessions, x as tWorkspaceState, y as tStorageUnits } from "./sqlite-YCr2-Fov.mjs";
2
2
  export { DEFAULT_BUSY_TIMEOUT_MS, EVENT_ENCODING, SCHEMA_VERSION, SESSION_PERSISTENCE_SQLITE_APPLICATION_ID, SqliteBackend, WriteGuard, eventDimensions, eventKind, openDatabase, tEventUsage, tEvents, tPersistenceState, tSchemaMeta, tSessionCounts, tSessionEvents, tSessionProjcacheRows, tSessionUsage, tSessions, tStorageUnits, tWorkspaceSessions, tWorkspaceState, tWorkspaces };
@@ -1,4 +1,4 @@
1
- import { at as truncateLiveSession } from "./log-tZMKFRKi.mjs";
1
+ import { at as truncateLiveSession } from "./log-DYyxRh7j.mjs";
2
2
  import { SessionPersistence } from "@deepseek-ai/dsh-session-persistence";
3
3
  import { Session, SessionEvent, SessionHeader, SessionId } from "@deepseek-ai/dsh-session";
4
4
  import { Context, Fiber } from "@deepseek-ai/cordis";
@@ -11,10 +11,10 @@ interface ContractBackend extends ContractBackendInstance {
11
11
  reopen?: () => Promise<ContractBackendInstance>;
12
12
  corruptTail?: (id: SessionId, cwd: string | undefined) => Promise<void>;
13
13
  }
14
- declare function meta(id: string, cwd?: string): SessionHeader;
15
- declare function oneTurnLog(): SessionEvent[];
16
- declare function appendLog(session: Session, events: readonly SessionEvent[]): void;
17
- declare function runPersistenceContract(name: string, make: () => Promise<ContractBackend>): void;
14
+ export declare function meta(id: string, cwd?: string): SessionHeader;
15
+ export declare function oneTurnLog(): SessionEvent[];
16
+ export declare function appendLog(session: Session, events: readonly SessionEvent[]): void;
17
+ export declare function runPersistenceContract(name: string, make: () => Promise<ContractBackend>): void;
18
18
  //#endregion
19
19
  //#region src/testing/coordinator-contract.d.ts
20
20
  interface CoordinatorFixture {
@@ -22,6 +22,6 @@ interface CoordinatorFixture {
22
22
  corruptTail?: (id: SessionId, cwd: string | undefined) => Promise<void>;
23
23
  cleanup: () => Promise<void>;
24
24
  }
25
- declare function runCoordinatorContract(name: string, makeFixture: () => Promise<CoordinatorFixture>): void;
25
+ export declare function runCoordinatorContract(name: string, makeFixture: () => Promise<CoordinatorFixture>): void;
26
26
  //#endregion
27
- export { type ContractBackend, type CoordinatorFixture, appendLog, meta, oneTurnLog, runCoordinatorContract, runPersistenceContract, truncateLiveSession };
27
+ export { type ContractBackend, type CoordinatorFixture, truncateLiveSession };
package/dist/testing.mjs CHANGED
@@ -1,11 +1,9 @@
1
- import { a as truncateLiveSession } from "./branch-IQii6Muq.mjs";
1
+ import { t as __commonJSMin } from "./rolldown-runtime-EAsCxrDo.mjs";
2
+ import { a as truncateLiveSession } from "./branch-aiXPmnKC.mjs";
2
3
  import { SessionAlreadyExistsError, SessionAlreadyOwnedError, SessionFormatUnsupportedError, SessionHandleClosedError, SessionPersistenceNotFoundError, SessionReadOnlyError } from "@deepseek-ai/dsh-session-persistence";
3
4
  import SessionStore, { SESSION_FORMAT_VERSION, SessionId, SessionLogOffset, SessionSeq } from "@deepseek-ai/dsh-session";
4
5
  import { Context } from "@deepseek-ai/cordis";
5
6
  import { MessageId, createUserMessage, freezeMessage } from "@deepseek-ai/dsh-llm";
6
- //#region \0rolldown/runtime.js
7
- var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
8
- //#endregion
9
7
  //#region ../../../node_modules/.pnpm/vitest@5.0.2_@opentelemetry+api@1.9.1_@types+node@26.6.3_happy-dom@20.14.5_jsdom@30.1.1_5bd35cff0016eb681427af506a019366/node_modules/vitest/dist/chunks/tinyrainbow.Ht9iggcq.js
10
8
  var b$1 = {
11
9
  reset: [0, 0],
package/dist/usage.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { B as UsageTotals, F as UsageAggregate, G as emptyTotals, H as addActivityTotals, I as UsageBucket, It as SESSION_USAGE_PATH, J as resolveUsageSince, K as localDayKey, L as UsageRangeKey, M as COUNTED_EVENT_TYPES, N as SessionUsageReport, P as UsageActivityTotals, R as UsageSessionRow, U as addTokenTotals, V as addActivityCount, W as addTotals, q as registerSessionUsage, z as UsageTokenTotals } from "./log-tZMKFRKi.mjs";
1
+ import { B as UsageTotals, F as UsageAggregate, G as emptyTotals, H as addActivityTotals, I as UsageBucket, It as SESSION_USAGE_PATH, J as resolveUsageSince, K as localDayKey, L as UsageRangeKey, M as COUNTED_EVENT_TYPES, N as SessionUsageReport, P as UsageActivityTotals, R as UsageSessionRow, U as addTokenTotals, V as addActivityCount, W as addTotals, q as registerSessionUsage, z as UsageTokenTotals } from "./log-DYyxRh7j.mjs";
2
2
  export { COUNTED_EVENT_TYPES, SESSION_USAGE_PATH, SessionUsageReport, UsageActivityTotals, UsageAggregate, UsageBucket, UsageRangeKey, UsageSessionRow, UsageTokenTotals, UsageTotals, addActivityCount, addActivityTotals, addTokenTotals, addTotals, emptyTotals, localDayKey, registerSessionUsage, resolveUsageSince };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morlay/session-rdb",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "RDB durable session backend for DeepSeek Harness: implements both session-persistence and session-branch (rewind / retry / fork) providers.",
5
5
  "keywords": [
6
6
  "branch",
@@ -39,7 +39,7 @@
39
39
  "./locale/*.json": "./locale/*.json"
40
40
  },
41
41
  "dependencies": {
42
- "@morlay/session-branch": "0.1.2",
42
+ "@morlay/session-branch": "0.1.3",
43
43
  "drizzle-orm": "^1.0.0-rc.5-ab785fc",
44
44
  "fflate": "^0.8.2",
45
45
  "pg": "^8.23.0"
package/src/log.ts CHANGED
@@ -124,8 +124,12 @@ export function rowToEvent(row: EventRow): SessionEvent {
124
124
  } as SessionEvent;
125
125
  }
126
126
 
127
+ // 与上游 `SURFACE_EVENT_TYPES`(`…/core/session/src/surface.ts`)同一集合:`developer/message` 承载
128
+ // 工具清单的增删通知,同样是模型可见的 surface 事件,漏掉它会把它的 `surfaceOp` 当「非 surface 事件带的
129
+ // 标记」清掉,随后的持久化校验直接拒绝整条会话(agent-loop 在工具集变化时会写这种事件)。
127
130
  const SURFACE_EVENT_TYPES = new Set([
128
131
  "system/message",
132
+ "developer/message",
129
133
  "user/message",
130
134
  "assistant/message",
131
135
  "tool/result",