@stackory/gateway-persistence 0.0.1
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 +49 -0
- package/dist/esm/database/index.d.ts +3 -0
- package/dist/esm/database/index.d.ts.map +1 -0
- package/dist/esm/database/index.js +3 -0
- package/dist/esm/database/index.js.map +1 -0
- package/dist/esm/database.d.ts +23 -0
- package/dist/esm/database.d.ts.map +1 -0
- package/dist/esm/database.js +53 -0
- package/dist/esm/database.js.map +1 -0
- package/dist/esm/gateway-database.d.ts +6 -0
- package/dist/esm/gateway-database.d.ts.map +1 -0
- package/dist/esm/gateway-database.js +19 -0
- package/dist/esm/gateway-database.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/migrations/generated.d.ts +3 -0
- package/dist/esm/migrations/generated.d.ts.map +1 -0
- package/dist/esm/migrations/generated.js +7 -0
- package/dist/esm/migrations/generated.js.map +1 -0
- package/dist/esm/migrations/index.d.ts +3 -0
- package/dist/esm/migrations/index.d.ts.map +1 -0
- package/dist/esm/migrations/index.js +2 -0
- package/dist/esm/migrations/index.js.map +1 -0
- package/dist/esm/migrations/types.d.ts +5 -0
- package/dist/esm/migrations/types.d.ts.map +1 -0
- package/dist/esm/migrations/types.js +2 -0
- package/dist/esm/migrations/types.js.map +1 -0
- package/dist/esm/schema.d.ts +579 -0
- package/dist/esm/schema.d.ts.map +1 -0
- package/dist/esm/schema.js +91 -0
- package/dist/esm/schema.js.map +1 -0
- package/dist/esm/stores/dedup-store.d.ts +14 -0
- package/dist/esm/stores/dedup-store.d.ts.map +1 -0
- package/dist/esm/stores/dedup-store.js +62 -0
- package/dist/esm/stores/dedup-store.js.map +1 -0
- package/dist/esm/stores/in-memory-session-store.d.ts +12 -0
- package/dist/esm/stores/in-memory-session-store.d.ts.map +1 -0
- package/dist/esm/stores/in-memory-session-store.js +64 -0
- package/dist/esm/stores/in-memory-session-store.js.map +1 -0
- package/dist/esm/stores/index.d.ts +7 -0
- package/dist/esm/stores/index.d.ts.map +1 -0
- package/dist/esm/stores/index.js +8 -0
- package/dist/esm/stores/index.js.map +1 -0
- package/dist/esm/stores/sqlite-binding-store.d.ts +14 -0
- package/dist/esm/stores/sqlite-binding-store.d.ts.map +1 -0
- package/dist/esm/stores/sqlite-binding-store.js +58 -0
- package/dist/esm/stores/sqlite-binding-store.js.map +1 -0
- package/dist/esm/stores/sqlite-pair-request-store.d.ts +11 -0
- package/dist/esm/stores/sqlite-pair-request-store.d.ts.map +1 -0
- package/dist/esm/stores/sqlite-pair-request-store.js +64 -0
- package/dist/esm/stores/sqlite-pair-request-store.js.map +1 -0
- package/dist/esm/stores/sqlite-policy-store.d.ts +12 -0
- package/dist/esm/stores/sqlite-policy-store.d.ts.map +1 -0
- package/dist/esm/stores/sqlite-policy-store.js +95 -0
- package/dist/esm/stores/sqlite-policy-store.js.map +1 -0
- package/dist/esm/stores/sqlite-session-store.d.ts +13 -0
- package/dist/esm/stores/sqlite-session-store.d.ts.map +1 -0
- package/dist/esm/stores/sqlite-session-store.js +107 -0
- package/dist/esm/stores/sqlite-session-store.js.map +1 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# @stackory/gateway-persistence
|
|
2
|
+
|
|
3
|
+
SQLite 持久化实现(基于 Drizzle ORM)。实现 `gateway-core` 定义的 `IGatewayDatabase` 接口。
|
|
4
|
+
|
|
5
|
+
## Rules & Guardrails
|
|
6
|
+
|
|
7
|
+
- 严禁导出 `schema.ts` 中的列名常量;schema 是内部实现细节,列名变更不构成对外破坏性变更。
|
|
8
|
+
- 严禁在 store 层之外直接执行 SQL;所有数据库操作必须通过 store 方法封装。
|
|
9
|
+
- schema 变更必须通过 Drizzle migration(`pnpm drizzle:generate`),不得手写 DDL。
|
|
10
|
+
- `openGatewayDatabase()` 返回值包含 `close()` 方法,调用方必须在进程退出前调用,防止 WAL 文件残留。
|
|
11
|
+
- `serializers` 参数必须为每个已注册的 platform 提供对应的 `IBindingSerializer`,否则 binding 反序列化时会抛出运行时错误。
|
|
12
|
+
|
|
13
|
+
## 三级导出
|
|
14
|
+
|
|
15
|
+
外部消费者按需选择复用粒度:
|
|
16
|
+
|
|
17
|
+
| 入口 | 内容 | 适用场景 |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `@stackory/gateway-persistence` | `openGatewayDatabase(options)` → `IGatewayDatabase` | 直接使用完整 DB,最常见 |
|
|
20
|
+
| `@stackory/gateway-persistence/stores` | 各 Store 类(`SqliteAdapterBindingStore` 等) | 只需要某个 store,自行管理连接 |
|
|
21
|
+
| `@stackory/gateway-persistence/database` | 原始 Drizzle 连接对象 | 需要在业务库中共享同一 SQLite 连接 |
|
|
22
|
+
|
|
23
|
+
## 子 Store 职责
|
|
24
|
+
|
|
25
|
+
| Store | 接口 | 职责 |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| `SqliteAdapterBindingStore` | `IAdapterBindingRegistry` | 存储 adapter 注册信息,支持 platform-specific 序列化/反序列化 |
|
|
28
|
+
| `SqliteAccessPolicyStore` | `IAccessPolicyStore` | 存储每个 (adapterId, chatId) 的访问策略 |
|
|
29
|
+
| `SqlitePairRequestStore` | `IPairRequestManager` | 存储配对请求,支持 10 分钟 TTL 自动过期 |
|
|
30
|
+
| `SqliteSessionStore` | `ISessionStore` | 存储会话状态机记录和 token 消耗 |
|
|
31
|
+
| `SqliteDedupStore` | `IDedupStore` | 消息去重标记,基于消息 ID 和 TTL |
|
|
32
|
+
|
|
33
|
+
## schema 变更流程
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 1. 修改 src/schema.ts
|
|
37
|
+
# 2. 生成 migration 文件
|
|
38
|
+
pnpm drizzle:generate
|
|
39
|
+
# 3. 验证 migration 无冲突
|
|
40
|
+
pnpm drizzle:check
|
|
41
|
+
# 4. 重新构建
|
|
42
|
+
pnpm nx run @stackory/gateway-persistence:build
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
migration 文件提交到仓库,`openGatewayDatabase()` 启动时自动执行未应用的 migration。
|
|
46
|
+
|
|
47
|
+
## 替换数据库
|
|
48
|
+
|
|
49
|
+
实现 `IGatewayDatabase` 接口(5 个子 store + `close()`),在 `gateway/src/runtime/container.ts` 的 `initContainer()` 中替换 `openGatewayDatabase()` 调用即可。Kernel 层不感知具体数据库类型。
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAG1B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
import { type NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
|
|
3
|
+
import * as schema from './schema';
|
|
4
|
+
export interface IDatabaseHandle {
|
|
5
|
+
close(): void;
|
|
6
|
+
}
|
|
7
|
+
export interface IInternalDatabaseHandle extends IDatabaseHandle {
|
|
8
|
+
readonly drizzle: NodeSQLiteDatabase<typeof schema>;
|
|
9
|
+
readonly raw: DatabaseSync;
|
|
10
|
+
}
|
|
11
|
+
export interface IOpenDatabaseOptions {
|
|
12
|
+
readonly databasePath: string;
|
|
13
|
+
readonly inMemory?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function openDatabase(opts: IOpenDatabaseOptions): IInternalDatabaseHandle;
|
|
16
|
+
export declare function runMigrations(db: DatabaseSync): void;
|
|
17
|
+
export declare class MigrationError extends Error {
|
|
18
|
+
readonly migrationName: string;
|
|
19
|
+
readonly targetVersion: number;
|
|
20
|
+
readonly cause: unknown;
|
|
21
|
+
constructor(migrationName: string, targetVersion: number, cause: unknown);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/database.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAW,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC/B,KAAK,IAAI,IAAI,CAAC;CACd;AAED,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC/D,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,YAAY,CAC3B,IAAI,EAAE,oBAAoB,GACxB,uBAAuB,CAsBzB;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,QAiB7C;AAED,qBAAa,cAAe,SAAQ,KAAK;IAEvC,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO;gBAFd,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,OAAO;CAOxB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { mkdirSync } from 'node:fs';
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
4
|
+
import { drizzle } from 'drizzle-orm/node-sqlite';
|
|
5
|
+
import { migrations } from './migrations';
|
|
6
|
+
import * as schema from './schema';
|
|
7
|
+
export function openDatabase(opts) {
|
|
8
|
+
const path = opts.inMemory ? ':memory:' : opts.databasePath;
|
|
9
|
+
if (!opts.inMemory) {
|
|
10
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
11
|
+
}
|
|
12
|
+
const db = new DatabaseSync(path);
|
|
13
|
+
if (!opts.inMemory) {
|
|
14
|
+
db.exec('PRAGMA journal_mode = WAL');
|
|
15
|
+
db.exec('PRAGMA synchronous = NORMAL');
|
|
16
|
+
}
|
|
17
|
+
db.exec('PRAGMA foreign_keys = ON');
|
|
18
|
+
runMigrations(db);
|
|
19
|
+
return {
|
|
20
|
+
drizzle: drizzle({ client: db, schema }),
|
|
21
|
+
raw: db,
|
|
22
|
+
close: () => db.close(),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function runMigrations(db) {
|
|
26
|
+
const current = Number(db.prepare('PRAGMA user_version').get()?.user_version ?? 0);
|
|
27
|
+
for (let i = current; i < migrations.length; i++) {
|
|
28
|
+
const migration = migrations[i];
|
|
29
|
+
try {
|
|
30
|
+
db.exec('BEGIN');
|
|
31
|
+
db.exec(migration.sql);
|
|
32
|
+
db.exec(`PRAGMA user_version = ${i + 1}`);
|
|
33
|
+
db.exec('COMMIT');
|
|
34
|
+
}
|
|
35
|
+
catch (cause) {
|
|
36
|
+
db.exec('ROLLBACK');
|
|
37
|
+
throw new MigrationError(migration.name, i + 1, cause);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class MigrationError extends Error {
|
|
42
|
+
migrationName;
|
|
43
|
+
targetVersion;
|
|
44
|
+
cause;
|
|
45
|
+
constructor(migrationName, targetVersion, cause) {
|
|
46
|
+
super(`迁移 ${migrationName} 失败 (target user_version=${targetVersion}): ${cause?.message ?? cause}`);
|
|
47
|
+
this.migrationName = migrationName;
|
|
48
|
+
this.targetVersion = targetVersion;
|
|
49
|
+
this.cause = cause;
|
|
50
|
+
this.name = 'MigrationError';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,OAAO,EAA2B,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAgBnC,MAAM,UAAU,YAAY,CAC3B,IAA0B;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IAE5D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACrC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACxC,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEpC,aAAa,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO;QACN,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACxC,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;KACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAgB;IAC7C,MAAM,OAAO,GAAG,MAAM,CACrB,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAE,EAAE,YAAY,IAAI,CAAC,CAC1D,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC;YACJ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvB,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1C,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpB,MAAM,IAAI,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IAE9B;IACA;IACA;IAHV,YACU,aAAqB,EACrB,aAAqB,EACrB,KAAc;QAEvB,KAAK,CACJ,MAAM,aAAa,4BAA4B,aAAa,MAAO,KAAe,EAAE,OAAO,IAAI,KAAK,EAAE,CACtG,CAAC;QANO,kBAAa,GAAb,aAAa,CAAQ;QACrB,kBAAa,GAAb,aAAa,CAAQ;QACrB,UAAK,GAAL,KAAK,CAAS;QAKvB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC9B,CAAC;CACD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IBindingSerializer, IGatewayDatabase } from '@stackory/gateway-core';
|
|
2
|
+
export declare function openGatewayDatabase(opts: {
|
|
3
|
+
databasePath: string;
|
|
4
|
+
serializers?: ReadonlyMap<string, IBindingSerializer>;
|
|
5
|
+
}): IGatewayDatabase;
|
|
6
|
+
//# sourceMappingURL=gateway-database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-database.d.ts","sourceRoot":"","sources":["../../src/gateway-database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,wBAAwB,CAAC;AAQhC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CACtD,GAAG,gBAAgB,CAYnB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { openDatabase } from './database';
|
|
2
|
+
import { createDedupStore } from './stores/dedup-store';
|
|
3
|
+
import { SqliteAdapterBindingStore } from './stores/sqlite-binding-store';
|
|
4
|
+
import { SqlitePairRequestStore } from './stores/sqlite-pair-request-store';
|
|
5
|
+
import { SqliteAccessPolicyStore } from './stores/sqlite-policy-store';
|
|
6
|
+
import { SqliteSessionStore } from './stores/sqlite-session-store';
|
|
7
|
+
export function openGatewayDatabase(opts) {
|
|
8
|
+
const db = openDatabase({ databasePath: opts.databasePath });
|
|
9
|
+
const serializers = opts.serializers ?? new Map();
|
|
10
|
+
return {
|
|
11
|
+
sessions: new SqliteSessionStore(db),
|
|
12
|
+
bindings: new SqliteAdapterBindingStore(db, serializers),
|
|
13
|
+
policies: new SqliteAccessPolicyStore(db),
|
|
14
|
+
pairs: new SqlitePairRequestStore(db),
|
|
15
|
+
dedup: createDedupStore(db),
|
|
16
|
+
close: () => db.close(),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=gateway-database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-database.js","sourceRoot":"","sources":["../../src/gateway-database.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,UAAU,mBAAmB,CAAC,IAGnC;IACA,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,GAAG,EAAE,CAAC;IAElD,OAAO;QACN,QAAQ,EAAE,IAAI,kBAAkB,CAAC,EAAE,CAAC;QACpC,QAAQ,EAAE,IAAI,yBAAyB,CAAC,EAAE,EAAE,WAAW,CAAC;QACxD,QAAQ,EAAE,IAAI,uBAAuB,CAAC,EAAE,CAAC;QACzC,KAAK,EAAE,IAAI,sBAAsB,CAAC,EAAE,CAAC;QACrC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC3B,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;KACvB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../../src/migrations/generated.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,eAAO,MAAM,mBAAmB,EAAE,SAAS,UAAU,EAEpD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// AUTO-GENERATED by `pnpm drizzle:codegen`. Do not edit by hand.
|
|
2
|
+
// To regenerate: edit src/schema.ts → run `pnpm drizzle:generate` → `pnpm drizzle:codegen`.
|
|
3
|
+
const _20260610000227_square_argent = "CREATE TABLE `adapter_bindings` (\n\t`adapter_id` text PRIMARY KEY,\n\t`platform` text NOT NULL,\n\t`config_json` text DEFAULT '{}' NOT NULL,\n\t`secrets_json` text DEFAULT '{}' NOT NULL\n);\n\nCREATE TABLE `chat_policy` (\n\t`adapter_id` text NOT NULL,\n\t`chat_id` text NOT NULL,\n\t`policy` text NOT NULL,\n\t`require_mention` integer DEFAULT 0 NOT NULL,\n\t`allowlist_json` text DEFAULT '[]' NOT NULL,\n\t`blacklist_json` text DEFAULT '[]' NOT NULL,\n\t`updated_by` text NOT NULL,\n\t`updated_at_ms` integer NOT NULL,\n\tCONSTRAINT `chat_policy_pkey` PRIMARY KEY(`adapter_id`, `chat_id`)\n);\n\nCREATE TABLE `inbound_dedup` (\n\t`adapter_id` text NOT NULL,\n\t`message_id` text NOT NULL,\n\t`seen_at_ms` integer NOT NULL,\n\tCONSTRAINT `inbound_dedup_pkey` PRIMARY KEY(`adapter_id`, `message_id`)\n);\n\nCREATE TABLE `pair_requests` (\n\t`code` text PRIMARY KEY,\n\t`adapter_id` text NOT NULL,\n\t`user_id` text NOT NULL,\n\t`chat_id` text NOT NULL,\n\t`expires_at_ms` integer NOT NULL\n);\n\nCREATE TABLE `sessions` (\n\t`adapter_id` text NOT NULL,\n\t`chat_id` text NOT NULL,\n\t`thread_id` text DEFAULT '' NOT NULL,\n\t`user_id` text DEFAULT '' NOT NULL,\n\t`session_id` text NOT NULL,\n\t`state_kind` text NOT NULL,\n\t`state_data` text NOT NULL,\n\t`origin_json` text NOT NULL,\n\t`created_at_ms` integer NOT NULL,\n\t`last_turn_at_ms` integer NOT NULL,\n\t`token_input` integer DEFAULT 0 NOT NULL,\n\t`token_output` integer DEFAULT 0 NOT NULL,\n\tCONSTRAINT `sessions_pkey` PRIMARY KEY(`adapter_id`, `chat_id`, `thread_id`, `user_id`)\n);\n\nCREATE INDEX `idx_inbound_dedup_seen` ON `inbound_dedup` (`adapter_id`,`seen_at_ms`);\nCREATE INDEX `idx_sessions_adapter_state` ON `sessions` (`adapter_id`,`state_kind`);\nCREATE INDEX `idx_sessions_adapter_idle` ON `sessions` (`adapter_id`,`last_turn_at_ms`);";
|
|
4
|
+
export const generatedMigrations = [
|
|
5
|
+
{ name: "20260610000227_square_argent", sql: _20260610000227_square_argent },
|
|
6
|
+
];
|
|
7
|
+
//# sourceMappingURL=generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated.js","sourceRoot":"","sources":["../../../src/migrations/generated.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,4FAA4F;AAI5F,MAAM,6BAA6B,GAAG,uxDAAuxD,CAAC;AAE9zD,MAAM,CAAC,MAAM,mBAAmB,GAA0B;IACzD,EAAE,IAAI,EAAE,8BAA8B,EAAE,GAAG,EAAE,6BAA6B,EAAE;CAC5E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC3E,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/migrations/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/migrations/types.ts"],"names":[],"mappings":""}
|