@wfm-cn/dsh-storage 0.0.0-stage → 0.2.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/CHANGELOG.md +23 -0
- package/LICENSE +21 -0
- package/README.md +128 -2
- package/cordis.patch.yml +3 -0
- package/lib/backends/database.js +578 -0
- package/lib/backfill.js +331 -0
- package/lib/client/index.js +79 -0
- package/lib/client/panel.js +299 -0
- package/lib/client/toast.js +66 -0
- package/lib/client.js +1 -0
- package/lib/compaction.js +108 -0
- package/lib/config.js +171 -0
- package/lib/ddl.js +323 -0
- package/lib/generated/mysql/browser.js +17 -0
- package/lib/generated/mysql/client.js +34 -0
- package/lib/generated/mysql/commonInputTypes.js +10 -0
- package/lib/generated/mysql/enums.js +10 -0
- package/lib/generated/mysql/internal/class.js +49 -0
- package/lib/generated/mysql/internal/prismaNamespace.js +146 -0
- package/lib/generated/mysql/internal/prismaNamespaceBrowser.js +117 -0
- package/lib/generated/mysql/models/AiChatHistory.js +1 -0
- package/lib/generated/mysql/models/AiMessage.js +1 -0
- package/lib/generated/mysql/models.js +1 -0
- package/lib/generated/postgresql/browser.js +17 -0
- package/lib/generated/postgresql/client.js +34 -0
- package/lib/generated/postgresql/commonInputTypes.js +10 -0
- package/lib/generated/postgresql/enums.js +10 -0
- package/lib/generated/postgresql/internal/class.js +49 -0
- package/lib/generated/postgresql/internal/prismaNamespace.js +131 -0
- package/lib/generated/postgresql/internal/prismaNamespaceBrowser.js +102 -0
- package/lib/generated/postgresql/models/AiChatHistory.js +1 -0
- package/lib/generated/postgresql/models/AiMessage.js +1 -0
- package/lib/generated/postgresql/models.js +1 -0
- package/lib/generated/sqlite/browser.js +17 -0
- package/lib/generated/sqlite/client.js +34 -0
- package/lib/generated/sqlite/commonInputTypes.js +10 -0
- package/lib/generated/sqlite/enums.js +10 -0
- package/lib/generated/sqlite/internal/class.js +49 -0
- package/lib/generated/sqlite/internal/prismaNamespace.js +128 -0
- package/lib/generated/sqlite/internal/prismaNamespaceBrowser.js +99 -0
- package/lib/generated/sqlite/models/AiChatHistory.js +1 -0
- package/lib/generated/sqlite/models/AiMessage.js +1 -0
- package/lib/generated/sqlite/models.js +1 -0
- package/lib/generated/sqlserver/browser.js +17 -0
- package/lib/generated/sqlserver/client.js +34 -0
- package/lib/generated/sqlserver/commonInputTypes.js +10 -0
- package/lib/generated/sqlserver/enums.js +10 -0
- package/lib/generated/sqlserver/internal/class.js +49 -0
- package/lib/generated/sqlserver/internal/prismaNamespace.js +119 -0
- package/lib/generated/sqlserver/internal/prismaNamespaceBrowser.js +90 -0
- package/lib/generated/sqlserver/models/AiChatHistory.js +1 -0
- package/lib/generated/sqlserver/models/AiMessage.js +1 -0
- package/lib/generated/sqlserver/models.js +1 -0
- package/lib/health.js +180 -0
- package/lib/index.js +676 -0
- package/lib/notify.js +56 -0
- package/lib/projector.js +191 -0
- package/lib/status-route.js +172 -0
- package/lib/types/backends/database.d.ts +78 -0
- package/lib/types/backfill.d.ts +67 -0
- package/lib/types/client/index.d.ts +12 -0
- package/lib/types/client/panel.d.ts +79 -0
- package/lib/types/client/toast.d.ts +38 -0
- package/lib/types/compaction.d.ts +3 -0
- package/lib/types/config.d.ts +52 -0
- package/lib/types/ddl.d.ts +49 -0
- package/lib/types/generated/mysql/browser.d.ts +14 -0
- package/lib/types/generated/mysql/client.d.ts +33 -0
- package/lib/types/generated/mysql/commonInputTypes.d.ts +396 -0
- package/lib/types/generated/mysql/enums.d.ts +1 -0
- package/lib/types/generated/mysql/internal/class.d.ts +143 -0
- package/lib/types/generated/mysql/internal/prismaNamespace.d.ts +709 -0
- package/lib/types/generated/mysql/internal/prismaNamespaceBrowser.d.ts +112 -0
- package/lib/types/generated/mysql/models/AiChatHistory.d.ts +1258 -0
- package/lib/types/generated/mysql/models/AiMessage.d.ts +1359 -0
- package/lib/types/generated/mysql/models.d.ts +3 -0
- package/lib/types/generated/postgresql/browser.d.ts +14 -0
- package/lib/types/generated/postgresql/client.d.ts +33 -0
- package/lib/types/generated/postgresql/commonInputTypes.d.ts +392 -0
- package/lib/types/generated/postgresql/enums.d.ts +1 -0
- package/lib/types/generated/postgresql/internal/class.d.ts +143 -0
- package/lib/types/generated/postgresql/internal/prismaNamespace.d.ts +728 -0
- package/lib/types/generated/postgresql/internal/prismaNamespaceBrowser.d.ts +95 -0
- package/lib/types/generated/postgresql/models/AiChatHistory.d.ts +1373 -0
- package/lib/types/generated/postgresql/models/AiMessage.d.ts +1496 -0
- package/lib/types/generated/postgresql/models.d.ts +3 -0
- package/lib/types/generated/sqlite/browser.d.ts +14 -0
- package/lib/types/generated/sqlite/client.d.ts +33 -0
- package/lib/types/generated/sqlite/commonInputTypes.d.ts +373 -0
- package/lib/types/generated/sqlite/enums.d.ts +1 -0
- package/lib/types/generated/sqlite/internal/class.d.ts +143 -0
- package/lib/types/generated/sqlite/internal/prismaNamespace.d.ts +705 -0
- package/lib/types/generated/sqlite/internal/prismaNamespaceBrowser.d.ts +92 -0
- package/lib/types/generated/sqlite/models/AiChatHistory.d.ts +1371 -0
- package/lib/types/generated/sqlite/models/AiMessage.d.ts +1493 -0
- package/lib/types/generated/sqlite/models.d.ts +3 -0
- package/lib/types/generated/sqlserver/browser.d.ts +14 -0
- package/lib/types/generated/sqlserver/client.d.ts +33 -0
- package/lib/types/generated/sqlserver/commonInputTypes.d.ts +333 -0
- package/lib/types/generated/sqlserver/enums.d.ts +1 -0
- package/lib/types/generated/sqlserver/internal/class.d.ts +143 -0
- package/lib/types/generated/sqlserver/internal/prismaNamespace.d.ts +669 -0
- package/lib/types/generated/sqlserver/internal/prismaNamespaceBrowser.d.ts +80 -0
- package/lib/types/generated/sqlserver/models/AiChatHistory.d.ts +1257 -0
- package/lib/types/generated/sqlserver/models/AiMessage.d.ts +1375 -0
- package/lib/types/generated/sqlserver/models.d.ts +3 -0
- package/lib/types/health.d.ts +52 -0
- package/lib/types/index.d.ts +91 -0
- package/lib/types/notify.d.ts +35 -0
- package/lib/types/projector.d.ts +51 -0
- package/lib/types/status-route.d.ts +48 -0
- package/lib/types/types.d.ts +58 -0
- package/lib/types.js +8 -0
- package/package.json +126 -3
- package/preview.png +0 -0
- package/prisma/schema.mysql.prisma +78 -0
- package/prisma/schema.postgresql.prisma +70 -0
- package/prisma/schema.sqlite.prisma +70 -0
- package/prisma/schema.sqlserver.prisma +76 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Prisma schema for the dsh-storage database backend — SQLite variant (Prisma 7).
|
|
2
|
+
//
|
|
3
|
+
// Same models as schema.mysql.prisma, without native type attributes
|
|
4
|
+
// (SQLite has no `@db.*` vocabulary here). Client pre-generation and table
|
|
5
|
+
// creation work as described in schema.mysql.prisma's header. Connection URL
|
|
6
|
+
// shape: file:/absolute/path/to/db.sqlite.
|
|
7
|
+
|
|
8
|
+
generator client {
|
|
9
|
+
provider = "prisma-client"
|
|
10
|
+
output = "../src/generated/sqlite"
|
|
11
|
+
importFileExtension = "js"
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
datasource db {
|
|
15
|
+
provider = "sqlite"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/// User and assistant messages; tool results update the assistant row's tool_calls.
|
|
19
|
+
model AiMessage {
|
|
20
|
+
id String @id @default(cuid())
|
|
21
|
+
sessionId String @map("session_id")
|
|
22
|
+
historyId String? @map("history_id")
|
|
23
|
+
type String
|
|
24
|
+
content String
|
|
25
|
+
thoughts Json?
|
|
26
|
+
model String?
|
|
27
|
+
tokens Json?
|
|
28
|
+
toolCalls Json? @map("tool_calls")
|
|
29
|
+
agentId String? @map("agent_id")
|
|
30
|
+
metadata Json?
|
|
31
|
+
device String?
|
|
32
|
+
createdAt DateTime @default(now()) @map("created_at")
|
|
33
|
+
updatedAt DateTime @default(now()) @updatedAt @map("updated_at")
|
|
34
|
+
deletedAt DateTime? @map("deleted_at")
|
|
35
|
+
|
|
36
|
+
// Relations
|
|
37
|
+
history AiChatHistory? @relation(fields: [historyId], references: [id], onDelete: NoAction)
|
|
38
|
+
|
|
39
|
+
@@index([sessionId], map: "idx_session")
|
|
40
|
+
@@index([historyId], map: "idx_history")
|
|
41
|
+
@@index([createdAt], map: "idx_created")
|
|
42
|
+
@@index([deletedAt], map: "idx_deleted")
|
|
43
|
+
@@index([agentId], map: "idx_agent")
|
|
44
|
+
@@index([sessionId, agentId, type, createdAt], map: "idx_session_agent_type_created")
|
|
45
|
+
@@index([sessionId, historyId, deletedAt, type, createdAt, id], map: "idx_tool_call_lookup")
|
|
46
|
+
@@index([sessionId, deletedAt, updatedAt, id], map: "idx_archive_recovery")
|
|
47
|
+
@@map("ai_messages")
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/// Per-session rollup, maintained incrementally by the projector.
|
|
51
|
+
model AiChatHistory {
|
|
52
|
+
id String @id @default(cuid())
|
|
53
|
+
sessionId String @map("session_id")
|
|
54
|
+
title String?
|
|
55
|
+
summary String?
|
|
56
|
+
messageCount Int @default(0) @map("message_count")
|
|
57
|
+
totalTokens BigInt @default(0) @map("total_tokens")
|
|
58
|
+
firstMessageAt DateTime? @map("first_message_at")
|
|
59
|
+
lastMessageAt DateTime? @map("last_message_at")
|
|
60
|
+
metadata Json?
|
|
61
|
+
device String?
|
|
62
|
+
deletedAt DateTime? @map("deleted_at")
|
|
63
|
+
|
|
64
|
+
// Relations
|
|
65
|
+
messages AiMessage[]
|
|
66
|
+
|
|
67
|
+
@@index([sessionId], map: "idx_chat_history_session")
|
|
68
|
+
@@index([deletedAt], map: "idx_chat_history_deleted")
|
|
69
|
+
@@map("ai_chat_histories")
|
|
70
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// Prisma schema for the dsh-storage database backend — SQL Server variant (Prisma 7).
|
|
2
|
+
//
|
|
3
|
+
// Same models as schema.mysql.prisma, with SQL Server native types. Prisma's
|
|
4
|
+
// sqlserver connector has NO Json type, so every JSON column is a plain text
|
|
5
|
+
// column here — the backend serializes them on write automatically (derived
|
|
6
|
+
// from `provider: sqlserver`; SQL Server's own ISJSON/JSON_VALUE still query
|
|
7
|
+
// the text as JSON).
|
|
8
|
+
//
|
|
9
|
+
// Connection URL shape (parsed by the backend into a node-mssql config):
|
|
10
|
+
// sqlserver://host:1433;database=dbname;user=sa;password=p;encrypt=true;trustServerCertificate=true
|
|
11
|
+
// Client pre-generation and table creation work as described in
|
|
12
|
+
// schema.mysql.prisma's header.
|
|
13
|
+
|
|
14
|
+
generator client {
|
|
15
|
+
provider = "prisma-client"
|
|
16
|
+
output = "../src/generated/sqlserver"
|
|
17
|
+
importFileExtension = "js"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
datasource db {
|
|
21
|
+
provider = "sqlserver"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/// User and assistant messages; tool results update the assistant row's tool_calls.
|
|
25
|
+
model AiMessage {
|
|
26
|
+
id String @id @default(cuid()) @db.Char(36)
|
|
27
|
+
sessionId String @map("session_id") @db.VarChar(100)
|
|
28
|
+
historyId String? @map("history_id") @db.Char(36)
|
|
29
|
+
type String @db.VarChar(50)
|
|
30
|
+
content String @db.NVarChar(Max)
|
|
31
|
+
thoughts String? @db.NVarChar(Max)
|
|
32
|
+
model String? @db.VarChar(100)
|
|
33
|
+
tokens String? @db.NVarChar(Max)
|
|
34
|
+
toolCalls String? @map("tool_calls") @db.NVarChar(Max)
|
|
35
|
+
agentId String? @map("agent_id") @db.VarChar(100)
|
|
36
|
+
metadata String? @db.NVarChar(Max)
|
|
37
|
+
device String? @map("device") @db.VarChar(100)
|
|
38
|
+
createdAt DateTime @default(now()) @map("created_at") @db.DateTime2
|
|
39
|
+
updatedAt DateTime @default(now()) @updatedAt @map("updated_at") @db.DateTime2
|
|
40
|
+
deletedAt DateTime? @map("deleted_at") @db.DateTime2
|
|
41
|
+
|
|
42
|
+
// Relations
|
|
43
|
+
history AiChatHistory? @relation(fields: [historyId], references: [id], onDelete: NoAction)
|
|
44
|
+
|
|
45
|
+
@@index([sessionId], map: "idx_session")
|
|
46
|
+
@@index([historyId], map: "idx_history")
|
|
47
|
+
@@index([createdAt], map: "idx_created")
|
|
48
|
+
@@index([deletedAt], map: "idx_deleted")
|
|
49
|
+
@@index([agentId], map: "idx_agent")
|
|
50
|
+
@@index([sessionId, agentId, type, createdAt], map: "idx_session_agent_type_created")
|
|
51
|
+
@@index([sessionId, historyId, deletedAt, type, createdAt, id], map: "idx_tool_call_lookup")
|
|
52
|
+
@@index([sessionId, deletedAt, updatedAt, id], map: "idx_archive_recovery")
|
|
53
|
+
@@map("ai_messages")
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/// Per-session rollup, maintained incrementally by the projector.
|
|
57
|
+
model AiChatHistory {
|
|
58
|
+
id String @id @default(cuid()) @db.Char(36)
|
|
59
|
+
sessionId String @map("session_id") @db.VarChar(100)
|
|
60
|
+
title String? @db.VarChar(255)
|
|
61
|
+
summary String? @db.NVarChar(Max)
|
|
62
|
+
messageCount Int @default(0) @map("message_count")
|
|
63
|
+
totalTokens BigInt @default(0) @map("total_tokens")
|
|
64
|
+
firstMessageAt DateTime? @map("first_message_at") @db.DateTime2
|
|
65
|
+
lastMessageAt DateTime? @map("last_message_at") @db.DateTime2
|
|
66
|
+
metadata String? @db.NVarChar(Max)
|
|
67
|
+
device String? @map("device") @db.VarChar(100)
|
|
68
|
+
deletedAt DateTime? @map("deleted_at") @db.DateTime2
|
|
69
|
+
|
|
70
|
+
// Relations
|
|
71
|
+
messages AiMessage[]
|
|
72
|
+
|
|
73
|
+
@@index([sessionId], map: "idx_chat_history_session")
|
|
74
|
+
@@index([deletedAt], map: "idx_chat_history_deleted")
|
|
75
|
+
@@map("ai_chat_histories")
|
|
76
|
+
}
|