@morlay/session-rdb 0.0.20 → 0.0.21-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 +59 -31
- package/dist/artifact.d.mts +25 -65
- package/dist/artifact.mjs +2 -2
- package/dist/{schema-BkQN5GyT.d.mts → backend-DpdtxYpz.d.mts} +346 -93
- package/dist/{branch-Co6xlbi0.mjs → branch-5JzX9rUq.mjs} +163 -52
- package/dist/deletion.d.mts +7 -0
- package/dist/deletion.mjs +2 -0
- package/dist/dist-vIVO6bA-.mjs +1524 -0
- package/dist/import.d.mts +4 -4
- package/dist/import.mjs +28 -11
- package/dist/index.d.mts +2 -3
- package/dist/index.mjs +4 -1631
- package/dist/{log-DO69NQnn.mjs → log-CnYct2Dv.mjs} +37 -82
- package/dist/{sqlite-DYExtbLo.mjs → sqlite-fpvm5Dzs.mjs} +205 -75
- package/dist/src-CWTWV7vx.mjs +1904 -0
- package/dist/storage.d.mts +14 -5
- package/dist/storage.mjs +2 -2
- package/dist/testing.d.mts +1 -26
- package/dist/testing.mjs +10503 -9614
- package/drizzle/postgres/20260918120000_v3_event_usage/migration.sql +14 -0
- package/drizzle/postgres/20260918120000_v3_event_usage/snapshot.json +1309 -0
- package/drizzle/sqlite/20260918120000_v3_event_usage/migration.sql +14 -0
- package/drizzle/sqlite/20260918120000_v3_event_usage/snapshot.json +1031 -0
- package/package.json +28 -29
- package/src/adapters/to-postgres.ts +1 -3
- package/src/adapters/to-sqlite.ts +0 -2
- package/src/adapters/types.ts +0 -3
- package/src/artifact.ts +0 -2
- package/src/backend.ts +31 -2
- package/src/branch.ts +223 -135
- package/src/deletion.ts +87 -0
- package/src/drizzle/postgres-v2.ts +0 -1
- package/src/drizzle/postgres-v3.ts +0 -1
- package/src/drizzle/sqlite-v2.ts +0 -1
- package/src/drizzle/sqlite-v3.ts +0 -1
- package/src/entities/v2/session-events.ts +0 -1
- package/src/entities/v3/event-usage.ts +25 -0
- package/src/entities/v3/events.ts +1 -3
- package/src/entities/v3/index.ts +4 -0
- package/src/entities/v3/session-events.ts +1 -2
- package/src/entities/v3/session-projcache-rows.ts +0 -8
- package/src/entities/v3/sessions.ts +3 -3
- package/src/entities/v3/storage-units.ts +0 -1
- package/src/entities/v3/workspace-sessions.ts +0 -5
- package/src/entities/v3/workspace-state.ts +0 -6
- package/src/entities/v3/workspaces.ts +0 -5
- package/src/export.ts +103 -0
- package/src/gc.ts +76 -0
- package/src/import-storages.ts +4 -37
- package/src/import.ts +54 -31
- package/src/index.ts +150 -114
- package/src/legacy.ts +4 -42
- package/src/log.ts +63 -106
- package/src/postgres.ts +249 -22
- package/src/schema.ts +6 -6
- package/src/session-query.ts +0 -4
- package/src/sqlite.ts +231 -55
- package/src/storage-takeover/index.ts +2 -28
- package/src/storage-takeover/projection-cache.ts +30 -134
- package/src/storage-takeover/repository.ts +20 -59
- package/src/storage-takeover/storage-backend.ts +3 -33
- package/src/storage-takeover/types.ts +14 -56
- package/src/storage.ts +0 -2
- package/src/testing/contract.ts +19 -50
- package/src/testing/coordinator-contract.ts +10 -25
- package/src/testing.ts +1 -4
- package/src/usage.ts +191 -0
- package/dist/index-D55G9n4k.d.mts +0 -271
- package/dist/magic-string.es-BgJoa-3K.mjs +0 -1017
package/README.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
RDB(SQLite / PostgreSQL)持久会话后端(`ctx.sessionPersistence`):实现上游
|
|
4
4
|
`SessionHandle` 模型(`create`/`open`/`flush`/`stat`/`list`),支持配置选择
|
|
5
|
-
SQLite 或 PostgreSQL
|
|
6
|
-
|
|
5
|
+
SQLite 或 PostgreSQL 后端。表结构、原样存储与各条流程的设计见
|
|
6
|
+
[设计总览](.agents/designs/20260917-设计总览.md),决策见 [`.agents/adrs/`](.agents/adrs)。
|
|
7
7
|
|
|
8
8
|
## 配置
|
|
9
9
|
|
|
@@ -50,45 +50,73 @@ type Config =
|
|
|
50
50
|
type: "postgres";
|
|
51
51
|
/** node-postgres 连接串;首次打开自动建表并写入 store 身份。 */
|
|
52
52
|
connectionString: string;
|
|
53
|
-
/** 目标 schema(默认 public
|
|
53
|
+
/** 目标 schema(默认 public,必须已存在)。 */
|
|
54
54
|
schema?: string;
|
|
55
55
|
};
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
## 分支能力(session-branch 闭环)
|
|
59
59
|
|
|
60
|
-
除 `ctx.sessionPersistence` 外,本包还实现 `@morlay/session-branch` 的
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
- `rewind`:直接操作后端事务截断(只删桥接行),支持 live 与 cold 会话;
|
|
66
|
-
- `timeline`:lineage 版本树投影。
|
|
67
|
-
|
|
68
|
-
三个原语的完整语义(含 live 同步步骤、事件行复用机制、坐标论证与已知限制)
|
|
69
|
-
见 [docs/branch.md](docs/branch.md)。
|
|
60
|
+
除 `ctx.sessionPersistence` 外,本包还实现 `@morlay/session-branch` 的 provider
|
|
61
|
+
抽象并**随插件自动注册 `ctx.sessionBranch`**(`SessionBranchRdb`),在不修改上游
|
|
62
|
+
代码的前提下提供 `rewind / retry / fork` 的持久化闭环(原语:`forkFrom` 纯 append
|
|
63
|
+
派生、`rewind` 后端事务截断、`timeline` 版本树投影)——语义、坐标论证与已知限制见
|
|
64
|
+
[分支能力](.agents/designs/20260917-分支能力.md)。
|
|
70
65
|
|
|
71
66
|
上层编排(edit / reroll / retry / rewind / fork 完整功能)由
|
|
72
67
|
`@morlay/ui-conversation-message-actions` 提供,或直接在 `ctx.sessionBranch` /
|
|
73
68
|
`ctx.sessionEditor` 之上编程。
|
|
74
69
|
|
|
70
|
+
## 会话删除(仅已归档)
|
|
71
|
+
|
|
72
|
+
delete 面由本包自持:`deleteSession(id)` 只允许删除**已归档**会话(未归档报
|
|
73
|
+
`SESSION_NOT_ARCHIVED`),live(有打开的 handle 或未 materialize)报 `SESSION_LIVE`。
|
|
74
|
+
删除只落该会话的行(桥接行、workspace 归属行、投影 checkpoint、会话行)——被删会话的事件行
|
|
75
|
+
成为**孤儿**留在 `t_events`,不影响删除后的可见性,回收见下节。
|
|
76
|
+
|
|
77
|
+
web 模式经 `POST /api/session.delete`(body `{ sessionId }`)暴露,状态映射:
|
|
78
|
+
200 已删除 / 404 不存在 / 409 未归档或 live。决策与边界见
|
|
79
|
+
[ADR-会话删除仅限已归档且硬删](.agents/adrs/20260917-会话删除仅限已归档且硬删.md) 与
|
|
80
|
+
[ADR-删除不再清孤儿与vacuum独立成gc通道](.agents/adrs/20260918-删除不再清孤儿与vacuum独立成gc通道.md)。
|
|
81
|
+
|
|
82
|
+
## 导出
|
|
83
|
+
|
|
84
|
+
`POST /api/session.export`(body `{ sessionId }`)直接把会话日志打成 zip **响应体**:
|
|
85
|
+
`content-type: application/zip` + `Content-Disposition` 文件名,包内 artifact 与导入通道读的
|
|
86
|
+
是同一份(`readRaw` 的 `session.vN.jsonl`)。会话不存在 404,body 非法 400。只读,不限归档状态。
|
|
87
|
+
|
|
88
|
+
## 孤儿回收与 VACUUM(GC)
|
|
89
|
+
|
|
90
|
+
`POST /api/session.gc` 一次做完四件事:让所有运行中的 agent 退场
|
|
91
|
+
(`ctx.agents.list()` 逐个 cancel 并等 `whenIdle`)→ `collectOrphanSessions()` 回收**父已不存在的
|
|
92
|
+
subagent 会话**(`origin = 'subagent'`、父不在表里;有 open handle / pending 的跳过)→
|
|
93
|
+
`collectOrphans()` 回收已无桥接行引用的事件行 → `vacuum()`(SQLite `VACUUM`、Postgres
|
|
94
|
+
`VACUUM ANALYZE`,均不得在事务内执行)。顺序上先删会话再清事件行,被删会话独占的事件行才刚成为孤儿。
|
|
95
|
+
响应 `{ orphanSessions, orphanEvents, stoppedAgents, vacuumed }`。
|
|
96
|
+
|
|
97
|
+
为什么独立成通道(而不是删除时顺带做):实测删除的成本大头就是那句全库孤儿清理
|
|
98
|
+
(1 万行会话:545ms → 加孤儿清理后 2.3s),且它无法让库文件变小。代价是删除后库体积不降,
|
|
99
|
+
直到执行 GC;入口在「对话管理」页,执行期间阻塞界面。
|
|
100
|
+
|
|
101
|
+
## 用量统计
|
|
102
|
+
|
|
103
|
+
`POST /api/session.usage` 一次回报三份数据:`totals`(含 `subagent` / `human` 拆分)、按
|
|
104
|
+
天 × provider/model × subagent 的桶、按会话的行。
|
|
105
|
+
|
|
106
|
+
用量写在**专用表 `t_event_usage`**(写路径顺带记录,一条 `assistant/message` 事件行一行),统计只读它,
|
|
107
|
+
不再逐行解析事件 JSON——真实库实测 **1.6s → ~140ms**。老库在首次打开时**一次性回填**(表为空才跑,
|
|
108
|
+
约 2.2s / 1.99 万行),两种 `f_data` 结构都认。口径不变:只算被会话引用的事件行(fork 共享行计一次、
|
|
109
|
+
孤儿行不计),GC 顺带回收不再有事件行的用量行。口径与取舍见
|
|
110
|
+
[ADR-用量统计走专用用量日志表](.agents/adrs/20260918-用量统计走专用用量日志表.md)。
|
|
111
|
+
|
|
75
112
|
## storages 接管(workspace 与投影缓存)
|
|
76
113
|
|
|
77
114
|
`$DSH_HOME/storages` 不再产生文件:官方 `storage-json` 与
|
|
78
|
-
`session-projection-cache` 由 `@morlay/better-session` 的 patch
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
KV 后端(`storage-domain` 的 backend 路由为 `rdb`),记录、归属、显示顺序
|
|
84
|
-
与归档分别落 `t_workspaces` / `t_workspace_sessions` / `t_workspace_state`
|
|
85
|
-
与 `t_sessions.f_archived_at`;
|
|
86
|
-
- **投影 checkpoint**:本包提供 `ctx.sessionProjectionCache` 服务(替换官方
|
|
87
|
-
插件,API 与语义逐一对齐),每个投影 key 一行落 `t_session_projcache_row`
|
|
88
|
-
(identity 直接复用 `t_sessions` 的会话行);SQLite 下读路径**直接查表**
|
|
89
|
-
(进程内不再维护 checkpoint 镜像),PostgreSQL 因驱动异步保留写穿镜像。
|
|
90
|
-
- **会话标题是会话数据**:`t_sessions.f_title` 由 rdb 按 `session/title` 事件
|
|
91
|
-
维护(rewind 截断后重算),列表消费在没有 checkpoint 行时直接取该列。
|
|
115
|
+
`session-projection-cache` 由 `@morlay/better-session` 的 patch 禁用,数据落本包的
|
|
116
|
+
语义专用表——workspace 域经本包注册的 `rdb` KV 后端,投影 checkpoint 经本包的
|
|
117
|
+
`ctx.sessionProjectionCache` 服务。表结构见
|
|
118
|
+
[表结构](.agents/designs/20260917-表结构.md),决策见
|
|
119
|
+
[ADR-接管storages到rdb语义表](.agents/adrs/20260917-接管storages到rdb语义表.md)。
|
|
92
120
|
|
|
93
121
|
写节流参数(默认 200 / 5000,与官方 base 装配一致)可经 settings 覆盖:
|
|
94
122
|
|
|
@@ -101,9 +129,9 @@ session-rdb:
|
|
|
101
129
|
writeIntervalMs: 5000
|
|
102
130
|
```
|
|
103
131
|
|
|
104
|
-
旧 `storages` JSON
|
|
132
|
+
旧 `storages` JSON 的导入是**包内 API**(先停掉 dsh,旧文件保留不删)——没有 CLI
|
|
133
|
+
入口、也不在 `exports` 里:
|
|
105
134
|
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
--path apps/dsh-custom-next/.dsh-store/sessions/sessions.sqlite
|
|
135
|
+
```ts
|
|
136
|
+
await importStorages(repository, { dshHome }); // 用法见 src/import-storages.ts
|
|
109
137
|
```
|
package/dist/artifact.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as SessionRow, r as EventRow } from "./backend-DpdtxYpz.mjs";
|
|
2
2
|
import { SESSION_IMPORT_PATH, SESSION_LOG_ARTIFACT_FILENAME, parseImportZip, parseJsonlArtifact, persistImport, registerSessionImport } from "./import.mjs";
|
|
3
3
|
import { SessionStorageMetadata } from "@deepseek-ai/dsh-session-persistence";
|
|
4
4
|
import { SessionEvent, SessionHeader } from "@deepseek-ai/dsh-session";
|
|
@@ -28,18 +28,6 @@ declare function sessionConflictRow(storage: SessionStorageMetadata): {
|
|
|
28
28
|
fDelegationDepth: number | null;
|
|
29
29
|
};
|
|
30
30
|
declare function rowToEvent(row: EventRow): SessionEvent;
|
|
31
|
-
/**
|
|
32
|
-
* 读取时重计算 replace 的 sourceEventSeqs(sourceEventSeqs 不落库)。
|
|
33
|
-
*
|
|
34
|
-
* 优先采用紧邻 metering 事件(compaction/summary | compaction/prune)的
|
|
35
|
-
* shadowedSeqs:它是压缩事务落库的**权威被遮蔽节点列表**(range 只是首尾
|
|
36
|
-
* 边界对,压缩竞态下可能漏掉并发落地的节点——range 数值扫描会漏掉这些
|
|
37
|
-
* 节点,使上游 assertProvenance 报 missing)。shadowedSeqs 已由 rowToEvent
|
|
38
|
-
* 重映射到稠密坐标,与 replace 的 surfaceOp range 同空间。
|
|
39
|
-
*
|
|
40
|
-
* 无紧邻 metering 事件时回退到 range 数值扫描(历史数据 / 非压缩 replace,
|
|
41
|
-
* 如 tool-result pruner 的旧样式),保证既有行为不变。
|
|
42
|
-
*/
|
|
43
31
|
declare function recomputeReplaceProvenance(events: SessionEvent[]): void;
|
|
44
32
|
declare function findSurfaceRepairs(events: readonly SessionEvent[]): {
|
|
45
33
|
degradeToAppend: Set<number>;
|
|
@@ -48,70 +36,42 @@ declare function findSurfaceRepairs(events: readonly SessionEvent[]): {
|
|
|
48
36
|
clampEnd: Map<number, number>;
|
|
49
37
|
};
|
|
50
38
|
declare function repairSurfaceOps(events: SessionEvent[]): void;
|
|
51
|
-
/**
|
|
52
|
-
* 读取时补全 assistant 结算字段:旧写入器不落库 `stream`(v2 才把流式记录
|
|
53
|
-
* 嵌入消息),读回时缺失即补空数组——上游 seed 校验要求 turn/step/stream
|
|
54
|
-
* 三者齐备,缺失会让整个会话加载失败。
|
|
55
|
-
*/
|
|
56
39
|
declare function repairAssistantSettlement(events: SessionEvent[]): void;
|
|
57
|
-
/**
|
|
58
|
-
* 读取时把旧格式 `request/header` 归一为当前格式:v3 起 system prompt 由
|
|
59
|
-
* surface 上的 `system/message` 承载,header 必须省略 `system`,空 `tools` /
|
|
60
|
-
* `adapterDefaults` 也必须省略(上游 v3 事件校验 fail loud)。混合世代回退
|
|
61
|
-
* 视图直接采用存储行,不归一会让整个会话加载失败。system prompt 因此不再
|
|
62
|
-
* 进入模型请求;会话下次运行由 v3 的 system/message 机制重建。
|
|
63
|
-
*/
|
|
64
40
|
declare function repairRequestHeaders(events: SessionEvent[]): void;
|
|
65
|
-
/**
|
|
66
|
-
* 把紧邻 replace 的 metering 事件的 `shadowedRange` / `shadowedSeqs` 对齐到
|
|
67
|
-
* replace 最终的稠密 range。
|
|
68
|
-
*
|
|
69
|
-
* 旧写入器重编号事件后,metering 与 replace 一起落在旧坐标空间:二者数值
|
|
70
|
-
* 相等但与当前 surface 无关。夹取(或 range 本身已落在稠密空间而 metering
|
|
71
|
-
* 仍是旧值)后二者不再相等,而上游 token-meter 契约要求紧邻的 metering
|
|
72
|
-
* range 与 replace range 完全一致(否则报 no adjacent shadow price)。range
|
|
73
|
-
* 已一致时不改写——当前写入器保证一致,shadowedSeqs 的额外并发节点因此
|
|
74
|
-
* 原样保留。
|
|
75
|
-
*/
|
|
76
41
|
declare function syncMeteringRanges(events: SessionEvent[]): void;
|
|
77
|
-
/**
|
|
78
|
-
* 读取时把 v2 时代的 PTC 词汇归一为当前词汇。
|
|
79
|
-
*
|
|
80
|
-
* 上游 v2→v3 迁移把 `tool/code-dispatch(-start)` 改名为
|
|
81
|
-
* `tool/ptc-dispatch(-start)`、把 `tools-code-mode` 插件来源改名为 `tools-ptc`、
|
|
82
|
-
* 把 agent preset 值 `code` 改名为 `ptc`。混合世代回退视图直接采用存储行,
|
|
83
|
-
* 不重命名会被上游 v3 校验以「unknown event type」拒绝整个会话。词汇改写
|
|
84
|
-
* 与上游迁移链的 renamePtcEvent 对齐。
|
|
85
|
-
*/
|
|
86
42
|
declare function renameLegacyPtcEvents(events: SessionEvent[]): void;
|
|
87
|
-
/**
|
|
88
|
-
* 读取视图修复总入口:形状补全(结算字段 / request header)→ PTC 词汇归一
|
|
89
|
-
* → surface 语义修复 → metering 对齐 → provenance 重算 → 孤儿 inbox splice
|
|
90
|
-
* 改写。全部只作用于内存视图,不落库。
|
|
91
|
-
*/
|
|
92
43
|
declare function repairReadView(events: SessionEvent[]): void;
|
|
93
|
-
/**
|
|
94
|
-
* 定位无法从空状态增量重放的 agent/inbox/spliced 事件(孤儿操作)。
|
|
95
|
-
*
|
|
96
|
-
* 上游 Inbox 每次构造都从会话起点重放全部 inbox splice,失败即拒绝整个
|
|
97
|
-
* 会话(resume / 编辑重放不可用)。rewind 截断历史轮次后若残留 splice 引用
|
|
98
|
-
* 已被截断的排队消息(插入被删、消费保留,或反之),重放时越界或重复——
|
|
99
|
-
* 无法独立重放。
|
|
100
|
-
*/
|
|
101
44
|
declare function orphanInboxSpliceSeqs(events: readonly SessionEvent[]): Set<number>;
|
|
102
|
-
/** 内存修复:把孤儿 inbox splice 改写为 no-op(调用方负责持久化)。 */
|
|
103
45
|
declare function repairOrphanInboxSplices(events: SessionEvent[]): void;
|
|
104
46
|
declare function scanRows(rows: readonly EventRow[], base?: number): {
|
|
105
47
|
preserved: SessionEvent[];
|
|
106
48
|
tornFrom?: number;
|
|
107
49
|
};
|
|
108
50
|
declare function toJsonlArtifact(meta: SessionHeader, inheritedEventCount: number, events: readonly SessionEvent[]): string;
|
|
51
|
+
declare function titleOfEventData(data: string): string | undefined;
|
|
52
|
+
/** 用量行的列(`t_event_usage`)。 */
|
|
53
|
+
interface EventUsageRow {
|
|
54
|
+
fEventId: string;
|
|
55
|
+
fCreatedAt: number;
|
|
56
|
+
fProvider: string | null;
|
|
57
|
+
fModel: string | null;
|
|
58
|
+
fInputTokens: number;
|
|
59
|
+
fOutputTokens: number;
|
|
60
|
+
fCacheReadTokens: number;
|
|
61
|
+
fReasoningTokens: number;
|
|
62
|
+
fTotalTokens: number;
|
|
63
|
+
}
|
|
109
64
|
/**
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* @param
|
|
113
|
-
* @returns
|
|
65
|
+
* 一条事件行的用量(只有带 `usage` 的 `assistant/message` 才有):写路径据此记录
|
|
66
|
+
* `t_event_usage`,统计因此不必逐行解析 JSON。两种 `f_data` 结构(带信封 / 老格式)都认。
|
|
67
|
+
* @param event - 待写入的事件行。
|
|
68
|
+
* @returns 用量行,或该事件没有用量时的 undefined。
|
|
114
69
|
*/
|
|
115
|
-
declare function
|
|
70
|
+
declare function usageRowOf(event: {
|
|
71
|
+
fEventId: string;
|
|
72
|
+
fCreatedAt: number;
|
|
73
|
+
fType: string;
|
|
74
|
+
fData: string;
|
|
75
|
+
}): EventUsageRow | undefined;
|
|
116
76
|
//#endregion
|
|
117
|
-
export { SESSION_IMPORT_PATH, SESSION_LOG_ARTIFACT_FILENAME, findSurfaceRepairs, orphanInboxSpliceSeqs, parseImportZip, parseJsonlArtifact, persistImport, recomputeReplaceProvenance, registerSessionImport, renameLegacyPtcEvents, repairAssistantSettlement, repairOrphanInboxSplices, repairReadView, repairRequestHeaders, repairSurfaceOps, rowToEvent, rowToMeta, scanRows, sessionConflictRow, sessionInsertRow, syncMeteringRanges, titleOfEventData, toJsonlArtifact };
|
|
77
|
+
export { EventUsageRow, SESSION_IMPORT_PATH, SESSION_LOG_ARTIFACT_FILENAME, findSurfaceRepairs, orphanInboxSpliceSeqs, parseImportZip, parseJsonlArtifact, persistImport, recomputeReplaceProvenance, registerSessionImport, renameLegacyPtcEvents, repairAssistantSettlement, repairOrphanInboxSplices, repairReadView, repairRequestHeaders, repairSurfaceOps, rowToEvent, rowToMeta, scanRows, sessionConflictRow, sessionInsertRow, syncMeteringRanges, titleOfEventData, toJsonlArtifact, usageRowOf };
|
package/dist/artifact.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as toJsonlArtifact, a as repairAssistantSettlement, c as repairRequestHeaders, d as rowToMeta, f as scanRows, g as titleOfEventData, h as syncMeteringRanges, i as renameLegacyPtcEvents, l as repairSurfaceOps, m as sessionInsertRow, n as orphanInboxSpliceSeqs, o as repairOrphanInboxSplices, p as sessionConflictRow, r as recomputeReplaceProvenance, s as repairReadView, t as findSurfaceRepairs, u as rowToEvent } from "./log-
|
|
1
|
+
import { _ as toJsonlArtifact, a as repairAssistantSettlement, c as repairRequestHeaders, d as rowToMeta, f as scanRows, g as titleOfEventData, h as syncMeteringRanges, i as renameLegacyPtcEvents, l as repairSurfaceOps, m as sessionInsertRow, n as orphanInboxSpliceSeqs, o as repairOrphanInboxSplices, p as sessionConflictRow, r as recomputeReplaceProvenance, s as repairReadView, t as findSurfaceRepairs, u as rowToEvent, v as usageRowOf } from "./log-CnYct2Dv.mjs";
|
|
2
2
|
import { SESSION_IMPORT_PATH, SESSION_LOG_ARTIFACT_FILENAME, parseImportZip, parseJsonlArtifact, persistImport, registerSessionImport } from "./import.mjs";
|
|
3
|
-
export { SESSION_IMPORT_PATH, SESSION_LOG_ARTIFACT_FILENAME, findSurfaceRepairs, orphanInboxSpliceSeqs, parseImportZip, parseJsonlArtifact, persistImport, recomputeReplaceProvenance, registerSessionImport, renameLegacyPtcEvents, repairAssistantSettlement, repairOrphanInboxSplices, repairReadView, repairRequestHeaders, repairSurfaceOps, rowToEvent, rowToMeta, scanRows, sessionConflictRow, sessionInsertRow, syncMeteringRanges, titleOfEventData, toJsonlArtifact };
|
|
3
|
+
export { SESSION_IMPORT_PATH, SESSION_LOG_ARTIFACT_FILENAME, findSurfaceRepairs, orphanInboxSpliceSeqs, parseImportZip, parseJsonlArtifact, persistImport, recomputeReplaceProvenance, registerSessionImport, renameLegacyPtcEvents, repairAssistantSettlement, repairOrphanInboxSplices, repairReadView, repairRequestHeaders, repairSurfaceOps, rowToEvent, rowToMeta, scanRows, sessionConflictRow, sessionInsertRow, syncMeteringRanges, titleOfEventData, toJsonlArtifact, usageRowOf };
|