@khoralabs/chat 0.1.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.
Files changed (85) hide show
  1. package/README.md +7 -0
  2. package/dist/domain.d.ts +10 -0
  3. package/dist/domain.d.ts.map +1 -0
  4. package/dist/errors.d.ts +20 -0
  5. package/dist/errors.d.ts.map +1 -0
  6. package/dist/events.d.ts +59 -0
  7. package/dist/events.d.ts.map +1 -0
  8. package/dist/hash.d.ts +47 -0
  9. package/dist/hash.d.ts.map +1 -0
  10. package/dist/http/client.d.ts +21 -0
  11. package/dist/http/client.d.ts.map +1 -0
  12. package/dist/http/client.js +367 -0
  13. package/dist/http/config.d.ts +5 -0
  14. package/dist/http/config.d.ts.map +1 -0
  15. package/dist/http/index.d.ts +6 -0
  16. package/dist/http/index.d.ts.map +1 -0
  17. package/dist/http/index.js +1084 -0
  18. package/dist/http/routes.d.ts +15 -0
  19. package/dist/http/routes.d.ts.map +1 -0
  20. package/dist/http/routes.js +645 -0
  21. package/dist/http/server.d.ts +19 -0
  22. package/dist/http/server.d.ts.map +1 -0
  23. package/dist/http/server.js +973 -0
  24. package/dist/http/service.d.ts +34 -0
  25. package/dist/http/service.d.ts.map +1 -0
  26. package/dist/http/service.js +501 -0
  27. package/dist/ids.d.ts +8 -0
  28. package/dist/ids.d.ts.map +1 -0
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +453 -0
  32. package/dist/lineage.d.ts +5 -0
  33. package/dist/lineage.d.ts.map +1 -0
  34. package/dist/persistence/core/index.d.ts +2 -0
  35. package/dist/persistence/core/index.d.ts.map +1 -0
  36. package/dist/persistence/core/persistence/base-persistence.d.ts +12 -0
  37. package/dist/persistence/core/persistence/base-persistence.d.ts.map +1 -0
  38. package/dist/persistence/core/persistence/helpers.d.ts +30 -0
  39. package/dist/persistence/core/persistence/helpers.d.ts.map +1 -0
  40. package/dist/persistence/core/persistence/index.d.ts +6 -0
  41. package/dist/persistence/core/persistence/index.d.ts.map +1 -0
  42. package/dist/persistence/core/persistence/index.js +1276 -0
  43. package/dist/persistence/core/persistence/memory-persistence.d.ts +55 -0
  44. package/dist/persistence/core/persistence/memory-persistence.d.ts.map +1 -0
  45. package/dist/persistence/core/persistence/signed-persistence.d.ts +18 -0
  46. package/dist/persistence/core/persistence/signed-persistence.d.ts.map +1 -0
  47. package/dist/persistence/core/persistence/types.d.ts +210 -0
  48. package/dist/persistence/core/persistence/types.d.ts.map +1 -0
  49. package/dist/persistence/sqlite/index.d.ts +3 -0
  50. package/dist/persistence/sqlite/index.d.ts.map +1 -0
  51. package/dist/persistence/sqlite/index.js +1544 -0
  52. package/dist/persistence/sqlite/persistence/persistence.d.ts +49 -0
  53. package/dist/persistence/sqlite/persistence/persistence.d.ts.map +1 -0
  54. package/dist/persistence/sqlite/persistence/schema.d.ts +4 -0
  55. package/dist/persistence/sqlite/persistence/schema.d.ts.map +1 -0
  56. package/dist/persistence/sqlite/persistence/streaming.d.ts +27 -0
  57. package/dist/persistence/sqlite/persistence/streaming.d.ts.map +1 -0
  58. package/dist/persistence/testing/index.d.ts +2 -0
  59. package/dist/persistence/testing/index.d.ts.map +1 -0
  60. package/dist/persistence/testing/index.js +689 -0
  61. package/dist/persistence/testing/persistence/contract.d.ts +3 -0
  62. package/dist/persistence/testing/persistence/contract.d.ts.map +1 -0
  63. package/dist/persistence/turso-serverless/index.d.ts +10 -0
  64. package/dist/persistence/turso-serverless/index.d.ts.map +1 -0
  65. package/dist/persistence/turso-serverless/index.js +1812 -0
  66. package/dist/persistence/turso-serverless/persistence/local-sqlite.d.ts +5 -0
  67. package/dist/persistence/turso-serverless/persistence/local-sqlite.d.ts.map +1 -0
  68. package/dist/persistence/turso-serverless/persistence/persistence.d.ts +49 -0
  69. package/dist/persistence/turso-serverless/persistence/persistence.d.ts.map +1 -0
  70. package/dist/persistence/turso-serverless/persistence/schema.d.ts +4 -0
  71. package/dist/persistence/turso-serverless/persistence/schema.d.ts.map +1 -0
  72. package/dist/persistence/turso-serverless/persistence/sql.d.ts +20 -0
  73. package/dist/persistence/turso-serverless/persistence/sql.d.ts.map +1 -0
  74. package/dist/persistence/turso-serverless/persistence/sql.js +53 -0
  75. package/dist/persistence/turso-serverless/persistence/streaming.d.ts +27 -0
  76. package/dist/persistence/turso-serverless/persistence/streaming.d.ts.map +1 -0
  77. package/dist/service.d.ts +49 -0
  78. package/dist/service.d.ts.map +1 -0
  79. package/dist/stream.d.ts +32 -0
  80. package/dist/stream.d.ts.map +1 -0
  81. package/dist/types.d.ts +201 -0
  82. package/dist/types.d.ts.map +1 -0
  83. package/dist/validation.d.ts +4 -0
  84. package/dist/validation.d.ts.map +1 -0
  85. package/package.json +104 -0
@@ -0,0 +1,55 @@
1
+ import type { AbortStreamedPostInput, AbortStreamedPostResult, AddChannelMemberInput, AddThreadParticipantInput, AppendPostInput, AppendPostResult, ApplyPostDeltaInput, ApplyPostDeltaResult, Channel, ChatAclEvent, ChatPersistence, CompleteStreamedPostInput, CompleteStreamedPostResult, CreateChannelInput, CreateThreadInput, DeletePostInput, EditPostInput, EditPostResult, ListPostsInput, ListThreadsInput, Post, PostPage, PostStreamEvent, PostVersion, RemoveChannelMemberInput, RemoveThreadParticipantInput, ScopeRef, StartStreamedPostInput, StartStreamedPostResult, Thread, ThreadHead, ThreadPage, ThreadTip } from "../../../domain.js";
2
+ import { BaseChatPersistence } from "./base-persistence.js";
3
+ export declare class MemoryChatPersistence extends BaseChatPersistence implements ChatPersistence {
4
+ private readonly channels;
5
+ private readonly threads;
6
+ private readonly posts;
7
+ private readonly versions;
8
+ private readonly streamEvents;
9
+ private readonly streamIdempotency;
10
+ private readonly heads;
11
+ private readonly channelMembers;
12
+ private readonly threadParticipants;
13
+ private readonly aclEvents;
14
+ private readonly idempotency;
15
+ private readonly threadIndexes;
16
+ createChannel(input: CreateChannelInput): Promise<Channel>;
17
+ createThread(input: CreateThreadInput): Promise<Thread>;
18
+ getChannel(id: string): Promise<Channel | null>;
19
+ getThread(id: string): Promise<Thread | null>;
20
+ private postFromRecord;
21
+ getPost(id: string): Promise<Post | null>;
22
+ getPostVersion(id: string): Promise<PostVersion | null>;
23
+ getThreadHead(threadId: string, headId?: string): Promise<ThreadHead | null>;
24
+ getThreadTip(threadId: string): Promise<ThreadTip | null>;
25
+ listThreads(input: ListThreadsInput): Promise<ThreadPage>;
26
+ listPosts(input: ListPostsInput): Promise<PostPage>;
27
+ appendPost(input: AppendPostInput): Promise<AppendPostResult>;
28
+ editPost(input: EditPostInput): Promise<EditPostResult>;
29
+ deletePost(input: DeletePostInput): Promise<Post>;
30
+ addChannelMember(input: AddChannelMemberInput): Promise<ChatAclEvent>;
31
+ removeChannelMember(input: RemoveChannelMemberInput): Promise<ChatAclEvent>;
32
+ addThreadParticipant(input: AddThreadParticipantInput): Promise<ChatAclEvent>;
33
+ removeThreadParticipant(input: RemoveThreadParticipantInput): Promise<ChatAclEvent>;
34
+ createThreadHead(input: {
35
+ threadId: string;
36
+ name: string;
37
+ headPostVersionId: string;
38
+ }): Promise<ThreadHead>;
39
+ listChannelMembers(channelId: string): Promise<ScopeRef[]>;
40
+ listThreadParticipants(threadId: string): Promise<ScopeRef[]>;
41
+ listAclEvents(input: {
42
+ channelId?: string;
43
+ threadId?: string;
44
+ limit?: number;
45
+ }): Promise<ChatAclEvent[]>;
46
+ listPostStreamEvents(postId: string): Promise<PostStreamEvent[]>;
47
+ startStreamedPost(input: StartStreamedPostInput): Promise<StartStreamedPostResult>;
48
+ applyPostDelta(input: ApplyPostDeltaInput): Promise<ApplyPostDeltaResult>;
49
+ completeStreamedPost(input: CompleteStreamedPostInput): Promise<CompleteStreamedPostResult>;
50
+ abortStreamedPost(input: AbortStreamedPostInput): Promise<AbortStreamedPostResult>;
51
+ rebuildStreamedPostCache(postId: string): Promise<import("../../../domain.js").StreamingPost>;
52
+ setPostVersionSignature(versionId: string, signature: import("../../../domain.js").SignedEnvelope): Promise<void>;
53
+ }
54
+ export declare function createMemoryChatPersistence(): MemoryChatPersistence;
55
+ //# sourceMappingURL=memory-persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-persistence.d.ts","sourceRoot":"","sources":["../../../../src/persistence/core/persistence/memory-persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { AppendPostInput, ChatPersistence, ChatSigner, ChatVerifier, PreparedAppendPost, ScopeRef, SignedEnvelope } from "../../../domain.js";
2
+ export type SignedChatPersistenceOptions = {
3
+ /** Used for stream-complete auto-sign. */
4
+ signer: ChatSigner;
5
+ /** Used for append signature verification. */
6
+ verifier: ChatVerifier;
7
+ };
8
+ /** Tip lookup + prepareAppendPost for host-side signing before append. */
9
+ export declare function prepareAppendForSigning(persistence: ChatPersistence, input: AppendPostInput): Promise<PreparedAppendPost>;
10
+ /** Sign a prepared append using the host ChatSigner and core canonical payload. */
11
+ export declare function signPreparedAppendPost(signer: ChatSigner, author: ScopeRef, prepared: PreparedAppendPost): Promise<SignedEnvelope>;
12
+ /**
13
+ * Wrap persistence so committed posts require signatures:
14
+ * - appendPost: requires and verifies `input.signature`
15
+ * - completeStreamedPost: auto-signs the resulting version via `signer`
16
+ */
17
+ export declare function withSignedChatPersistence(persistence: ChatPersistence, options: SignedChatPersistenceOptions): ChatPersistence;
18
+ //# sourceMappingURL=signed-persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed-persistence.d.ts","sourceRoot":"","sources":["../../../../src/persistence/core/persistence/signed-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAEf,eAAe,EACf,UAAU,EACV,YAAY,EAGZ,kBAAkB,EAClB,QAAQ,EAER,cAAc,EACf,MAAM,oBAAoB,CAAC;AAS5B,MAAM,MAAM,4BAA4B,GAAG;IACzC,0CAA0C;IAC1C,MAAM,EAAE,UAAU,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAyBF,0EAA0E;AAC1E,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,eAAe,EAC5B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAO7B;AAED,mFAAmF;AACnF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAGzB;AAuCD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,4BAA4B,GACpC,eAAe,CAiDjB"}
@@ -0,0 +1,210 @@
1
+ import type { UIMessage } from "ai";
2
+ import type { Channel, ChatAclEvent, JsonObject, Mention, Post, PostPage, PostVersion, ScopeRef, Thread, ThreadHead, ThreadPage, ThreadRoot, ThreadTip } from "../../../types.js";
3
+ export type CreateChannelInput = {
4
+ id?: string;
5
+ metadata?: JsonObject;
6
+ };
7
+ export type CreateThreadInput = {
8
+ id?: string;
9
+ root: ThreadRoot;
10
+ metadata?: JsonObject;
11
+ };
12
+ export type AppendPostInput = {
13
+ threadId: string;
14
+ author: ScopeRef;
15
+ message: UIMessage;
16
+ mentions?: Mention[];
17
+ model?: import("../../../types.js").PostModelMetadata;
18
+ usage?: import("../../../types.js").PostUsage;
19
+ expectedHeadPostVersionId?: string | null;
20
+ idempotencyKey?: string;
21
+ signature?: import("../../../types.js").SignedEnvelope;
22
+ versionId?: string;
23
+ createdAtMs?: number;
24
+ };
25
+ export type EditPostInput = {
26
+ postId: string;
27
+ parentVersionId: string;
28
+ author: ScopeRef;
29
+ message: UIMessage;
30
+ mentions?: Mention[];
31
+ model?: import("../../../types.js").PostModelMetadata;
32
+ usage?: import("../../../types.js").PostUsage;
33
+ expectedHeadPostVersionId?: string | null;
34
+ idempotencyKey?: string;
35
+ };
36
+ export type DeletePostInput = {
37
+ postId: string;
38
+ deletedAtMs?: number;
39
+ };
40
+ export type ListThreadsInput = {
41
+ channelId?: string;
42
+ postId?: string;
43
+ /** When set, only threads where this scope is a participant. */
44
+ participant?: ScopeRef;
45
+ cursor?: string;
46
+ limit?: number;
47
+ };
48
+ export type ListPostsInput = {
49
+ threadId: string;
50
+ headId?: string;
51
+ headPostVersionId?: string;
52
+ cursor?: string;
53
+ limit?: number;
54
+ };
55
+ export type AddChannelMemberInput = {
56
+ channelId: string;
57
+ scope: ScopeRef;
58
+ role: string;
59
+ actor: ScopeRef;
60
+ signature?: ChatAclEvent["signature"];
61
+ };
62
+ export type RemoveChannelMemberInput = {
63
+ channelId: string;
64
+ scope: ScopeRef;
65
+ actor: ScopeRef;
66
+ signature?: ChatAclEvent["signature"];
67
+ };
68
+ export type AddThreadParticipantInput = {
69
+ threadId: string;
70
+ scope: ScopeRef;
71
+ role: string;
72
+ actor: ScopeRef;
73
+ signature?: ChatAclEvent["signature"];
74
+ };
75
+ export type RemoveThreadParticipantInput = {
76
+ threadId: string;
77
+ scope: ScopeRef;
78
+ actor: ScopeRef;
79
+ signature?: ChatAclEvent["signature"];
80
+ };
81
+ export type AppendPostResult = {
82
+ ok: true;
83
+ post: Post;
84
+ head: ThreadHead;
85
+ } | {
86
+ ok: false;
87
+ reason: "head_conflict";
88
+ currentHead: ThreadHead;
89
+ };
90
+ export type EditPostResult = {
91
+ ok: true;
92
+ post: Post;
93
+ head: ThreadHead;
94
+ } | {
95
+ ok: false;
96
+ reason: "head_conflict";
97
+ currentHead: ThreadHead;
98
+ };
99
+ export type CompleteStreamedPostResult = {
100
+ ok: true;
101
+ post: import("../../../types.js").CommittedPost;
102
+ head: ThreadHead;
103
+ } | {
104
+ ok: false;
105
+ reason: "head_conflict";
106
+ currentHead: ThreadHead;
107
+ };
108
+ export type StartStreamedPostInput = {
109
+ threadId: string;
110
+ author: ScopeRef;
111
+ message: UIMessage;
112
+ mentions?: Mention[];
113
+ model?: import("../../../types.js").PostModelMetadata;
114
+ usage?: import("../../../types.js").PostUsage;
115
+ idempotencyKey?: string;
116
+ };
117
+ export type ApplyPostDeltaInput = {
118
+ postId: string;
119
+ message: UIMessage;
120
+ mentions?: Mention[];
121
+ model?: import("../../../types.js").PostModelMetadata;
122
+ usage?: import("../../../types.js").PostUsage;
123
+ delta?: JsonObject;
124
+ expectedRevision?: number;
125
+ idempotencyKey?: string;
126
+ };
127
+ export type CompleteStreamedPostInput = {
128
+ postId: string;
129
+ expectedRevision?: number;
130
+ expectedHeadPostVersionId?: string | null;
131
+ idempotencyKey?: string;
132
+ };
133
+ export type AbortStreamedPostInput = {
134
+ postId: string;
135
+ deletedAtMs?: number;
136
+ };
137
+ export type StartStreamedPostResult = {
138
+ post: import("../../../types.js").StreamingPost;
139
+ revision: number;
140
+ };
141
+ export type ApplyPostDeltaResult = {
142
+ post: import("../../../types.js").StreamingPost;
143
+ revision: number;
144
+ };
145
+ export type AbortStreamedPostResult = {
146
+ post: import("../../../types.js").AbortedPost;
147
+ };
148
+ export type ChatReadPersistence = {
149
+ getChannel(id: string): Promise<Channel | null>;
150
+ getThread(id: string): Promise<Thread | null>;
151
+ getPost(id: string): Promise<Post | null>;
152
+ getPostVersion(id: string): Promise<PostVersion | null>;
153
+ getThreadHead(threadId: string, headId?: string): Promise<ThreadHead | null>;
154
+ /** Tip of the thread default head (`id` + `lineageHash`), or null if empty. */
155
+ getThreadTip(threadId: string): Promise<ThreadTip | null>;
156
+ listThreads(input: ListThreadsInput): Promise<ThreadPage>;
157
+ listPosts(input: ListPostsInput): Promise<PostPage>;
158
+ listChannelMembers(channelId: string): Promise<ScopeRef[]>;
159
+ listThreadParticipants(threadId: string): Promise<ScopeRef[]>;
160
+ listAclEvents(input: {
161
+ channelId?: string;
162
+ threadId?: string;
163
+ limit?: number;
164
+ }): Promise<ChatAclEvent[]>;
165
+ listPostStreamEvents(postId: string): Promise<import("../../../types.js").PostStreamEvent[]>;
166
+ };
167
+ export type ChatWritePersistence = {
168
+ createChannel(input: CreateChannelInput): Promise<Channel>;
169
+ createThread(input: CreateThreadInput): Promise<Thread>;
170
+ appendPost(input: AppendPostInput): Promise<AppendPostResult>;
171
+ editPost(input: EditPostInput): Promise<EditPostResult>;
172
+ deletePost(input: DeletePostInput): Promise<Post>;
173
+ addChannelMember(input: AddChannelMemberInput): Promise<ChatAclEvent>;
174
+ removeChannelMember(input: RemoveChannelMemberInput): Promise<ChatAclEvent>;
175
+ addThreadParticipant(input: AddThreadParticipantInput): Promise<ChatAclEvent>;
176
+ removeThreadParticipant(input: RemoveThreadParticipantInput): Promise<ChatAclEvent>;
177
+ createThreadHead(input: {
178
+ threadId: string;
179
+ name: string;
180
+ headPostVersionId: string;
181
+ }): Promise<ThreadHead>;
182
+ startStreamedPost(input: StartStreamedPostInput): Promise<StartStreamedPostResult>;
183
+ applyPostDelta(input: ApplyPostDeltaInput): Promise<ApplyPostDeltaResult>;
184
+ completeStreamedPost(input: CompleteStreamedPostInput): Promise<CompleteStreamedPostResult>;
185
+ abortStreamedPost(input: AbortStreamedPostInput): Promise<AbortStreamedPostResult>;
186
+ rebuildStreamedPostCache(postId: string): Promise<import("../../../types.js").StreamingPost>;
187
+ /** Persist a signature on an existing post version (idempotent overwrite). */
188
+ setPostVersionSignature(versionId: string, signature: import("../../../types.js").SignedEnvelope): Promise<void>;
189
+ };
190
+ export type ChatPersistence = ChatReadPersistence & ChatWritePersistence;
191
+ export type PreparedAppendPost = {
192
+ postId: string;
193
+ versionId: string;
194
+ threadId: string;
195
+ author: ScopeRef;
196
+ message: UIMessage;
197
+ mentions?: Mention[];
198
+ model?: import("../../../types.js").PostModelMetadata;
199
+ usage?: import("../../../types.js").PostUsage;
200
+ previousPostVersionId: string | null;
201
+ previousLineageHash: string | null;
202
+ parentVersionId?: string | null;
203
+ createdAtMs: number;
204
+ contentHash: string;
205
+ lineageHash: string;
206
+ };
207
+ export type PreparedEditPost = PreparedAppendPost & {
208
+ parentVersionId: string;
209
+ };
210
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/persistence/core/persistence/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createSqliteChatPersistence, SqliteChatPersistence } from "./persistence/persistence.js";
2
+ export { createChatDatabase, ensureChatSqliteSchema } from "./persistence/schema.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/persistence/sqlite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC"}