ai-database 0.1.0 → 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/.turbo/turbo-build.log +5 -0
- package/.turbo/turbo-test.log +102 -0
- package/README.md +381 -68
- package/TESTING.md +410 -0
- package/TEST_SUMMARY.md +250 -0
- package/TODO.md +128 -0
- package/dist/ai-promise-db.d.ts +370 -0
- package/dist/ai-promise-db.d.ts.map +1 -0
- package/dist/ai-promise-db.js +839 -0
- package/dist/ai-promise-db.js.map +1 -0
- package/dist/authorization.d.ts +531 -0
- package/dist/authorization.d.ts.map +1 -0
- package/dist/authorization.js +632 -0
- package/dist/authorization.js.map +1 -0
- package/dist/durable-clickhouse.d.ts +193 -0
- package/dist/durable-clickhouse.d.ts.map +1 -0
- package/dist/durable-clickhouse.js +422 -0
- package/dist/durable-clickhouse.js.map +1 -0
- package/dist/durable-promise.d.ts +182 -0
- package/dist/durable-promise.d.ts.map +1 -0
- package/dist/durable-promise.js +409 -0
- package/dist/durable-promise.js.map +1 -0
- package/dist/execution-queue.d.ts +239 -0
- package/dist/execution-queue.d.ts.map +1 -0
- package/dist/execution-queue.js +400 -0
- package/dist/execution-queue.js.map +1 -0
- package/dist/index.d.ts +50 -191
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -462
- package/dist/index.js.map +1 -0
- package/dist/linguistic.d.ts +115 -0
- package/dist/linguistic.d.ts.map +1 -0
- package/dist/linguistic.js +379 -0
- package/dist/linguistic.js.map +1 -0
- package/dist/memory-provider.d.ts +304 -0
- package/dist/memory-provider.d.ts.map +1 -0
- package/dist/memory-provider.js +785 -0
- package/dist/memory-provider.js.map +1 -0
- package/dist/schema.d.ts +899 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +1165 -0
- package/dist/schema.js.map +1 -0
- package/dist/tests.d.ts +107 -0
- package/dist/tests.d.ts.map +1 -0
- package/dist/tests.js +568 -0
- package/dist/tests.js.map +1 -0
- package/dist/types.d.ts +972 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +126 -0
- package/dist/types.js.map +1 -0
- package/package.json +37 -37
- package/src/ai-promise-db.ts +1243 -0
- package/src/authorization.ts +1102 -0
- package/src/durable-clickhouse.ts +596 -0
- package/src/durable-promise.ts +582 -0
- package/src/execution-queue.ts +608 -0
- package/src/index.test.ts +868 -0
- package/src/index.ts +337 -0
- package/src/linguistic.ts +404 -0
- package/src/memory-provider.test.ts +1036 -0
- package/src/memory-provider.ts +1119 -0
- package/src/schema.test.ts +1254 -0
- package/src/schema.ts +2296 -0
- package/src/tests.ts +725 -0
- package/src/types.ts +1177 -0
- package/test/README.md +153 -0
- package/test/edge-cases.test.ts +646 -0
- package/test/provider-resolution.test.ts +402 -0
- package/tsconfig.json +9 -0
- package/vitest.config.ts +19 -0
- package/dist/index.d.mts +0 -195
- package/dist/index.mjs +0 -430
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory Database Provider
|
|
3
|
+
*
|
|
4
|
+
* Simple provider implementation for testing and development.
|
|
5
|
+
* Includes concurrency control via Semaphore for rate limiting.
|
|
6
|
+
*/
|
|
7
|
+
import type { DBProvider, ListOptions, SearchOptions } from './schema.js';
|
|
8
|
+
/**
|
|
9
|
+
* Simple semaphore for concurrency control
|
|
10
|
+
* Used to limit parallel operations (e.g., embedding, generation)
|
|
11
|
+
*/
|
|
12
|
+
export declare class Semaphore {
|
|
13
|
+
private concurrency;
|
|
14
|
+
private queue;
|
|
15
|
+
private running;
|
|
16
|
+
constructor(concurrency: number);
|
|
17
|
+
/**
|
|
18
|
+
* Acquire a slot. Returns a release function.
|
|
19
|
+
*/
|
|
20
|
+
acquire(): Promise<() => void>;
|
|
21
|
+
private release;
|
|
22
|
+
/**
|
|
23
|
+
* Run a function with concurrency control
|
|
24
|
+
*/
|
|
25
|
+
run<T>(fn: () => Promise<T>): Promise<T>;
|
|
26
|
+
/**
|
|
27
|
+
* Run multiple functions with concurrency control
|
|
28
|
+
*/
|
|
29
|
+
map<T, R>(items: T[], fn: (item: T) => Promise<R>): Promise<R[]>;
|
|
30
|
+
get pending(): number;
|
|
31
|
+
get active(): number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Actor metadata for events and actions
|
|
35
|
+
*/
|
|
36
|
+
export interface ActorData {
|
|
37
|
+
name?: string;
|
|
38
|
+
email?: string;
|
|
39
|
+
org?: string;
|
|
40
|
+
role?: string;
|
|
41
|
+
[key: string]: unknown;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Event with Actor-Event-Object-Result pattern
|
|
45
|
+
*
|
|
46
|
+
* Following ActivityStreams semantics:
|
|
47
|
+
* - Actor: Who did it (user, system, agent)
|
|
48
|
+
* - Event: What happened (created, updated, published)
|
|
49
|
+
* - Object: What it was done to
|
|
50
|
+
* - Result: What was the outcome
|
|
51
|
+
*/
|
|
52
|
+
export interface Event {
|
|
53
|
+
id: string;
|
|
54
|
+
/** Actor identifier (user:id, system, agent:name) */
|
|
55
|
+
actor: string;
|
|
56
|
+
/** Actor metadata */
|
|
57
|
+
actorData?: ActorData;
|
|
58
|
+
/** Event type (Entity.action format) */
|
|
59
|
+
event: string;
|
|
60
|
+
/** Object URL/identifier */
|
|
61
|
+
object?: string;
|
|
62
|
+
/** Object data snapshot */
|
|
63
|
+
objectData?: Record<string, unknown>;
|
|
64
|
+
/** Result URL/identifier */
|
|
65
|
+
result?: string;
|
|
66
|
+
/** Result data */
|
|
67
|
+
resultData?: Record<string, unknown>;
|
|
68
|
+
/** Additional metadata */
|
|
69
|
+
meta?: Record<string, unknown>;
|
|
70
|
+
/** When the event occurred */
|
|
71
|
+
timestamp: Date;
|
|
72
|
+
/** @deprecated Use 'event' instead */
|
|
73
|
+
type?: string;
|
|
74
|
+
/** @deprecated Use 'object' instead */
|
|
75
|
+
url?: string;
|
|
76
|
+
/** @deprecated Use 'objectData' instead */
|
|
77
|
+
data?: unknown;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Action with linguistic verb conjugations
|
|
81
|
+
*
|
|
82
|
+
* Uses act/action/activity pattern for semantic clarity:
|
|
83
|
+
* - act: Present tense 3rd person (creates, publishes)
|
|
84
|
+
* - action: Base verb form (create, publish)
|
|
85
|
+
* - activity: Gerund/progressive (creating, publishing)
|
|
86
|
+
*/
|
|
87
|
+
export interface Action {
|
|
88
|
+
id: string;
|
|
89
|
+
/** Actor identifier */
|
|
90
|
+
actor: string;
|
|
91
|
+
/** Actor metadata */
|
|
92
|
+
actorData?: ActorData;
|
|
93
|
+
/** Present tense verb (creates, publishes) */
|
|
94
|
+
act: string;
|
|
95
|
+
/** Base verb form (create, publish) */
|
|
96
|
+
action: string;
|
|
97
|
+
/** Gerund form (creating, publishing) */
|
|
98
|
+
activity: string;
|
|
99
|
+
/** Object being acted upon */
|
|
100
|
+
object?: string;
|
|
101
|
+
/** Object data/parameters */
|
|
102
|
+
objectData?: Record<string, unknown>;
|
|
103
|
+
/** Action status */
|
|
104
|
+
status: 'pending' | 'active' | 'completed' | 'failed' | 'cancelled';
|
|
105
|
+
/** Progress count */
|
|
106
|
+
progress?: number;
|
|
107
|
+
/** Total items */
|
|
108
|
+
total?: number;
|
|
109
|
+
/** Result data */
|
|
110
|
+
result?: Record<string, unknown>;
|
|
111
|
+
/** Error message */
|
|
112
|
+
error?: string;
|
|
113
|
+
/** Additional metadata */
|
|
114
|
+
meta?: Record<string, unknown>;
|
|
115
|
+
/** Created timestamp */
|
|
116
|
+
createdAt: Date;
|
|
117
|
+
/** Started timestamp */
|
|
118
|
+
startedAt?: Date;
|
|
119
|
+
/** Completed timestamp */
|
|
120
|
+
completedAt?: Date;
|
|
121
|
+
/** @deprecated Use 'action' instead */
|
|
122
|
+
type?: string;
|
|
123
|
+
/** @deprecated Use 'objectData' instead */
|
|
124
|
+
data?: unknown;
|
|
125
|
+
}
|
|
126
|
+
export interface Artifact {
|
|
127
|
+
url: string;
|
|
128
|
+
type: string;
|
|
129
|
+
sourceHash: string;
|
|
130
|
+
content: unknown;
|
|
131
|
+
metadata?: Record<string, unknown>;
|
|
132
|
+
createdAt: Date;
|
|
133
|
+
}
|
|
134
|
+
export interface MemoryProviderOptions {
|
|
135
|
+
/** Concurrency limit for operations (default: 10) */
|
|
136
|
+
concurrency?: number;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* In-memory storage for entities, relationships, events, actions, and artifacts
|
|
140
|
+
*/
|
|
141
|
+
export declare class MemoryProvider implements DBProvider {
|
|
142
|
+
private entities;
|
|
143
|
+
private relations;
|
|
144
|
+
private events;
|
|
145
|
+
private eventHandlers;
|
|
146
|
+
private actions;
|
|
147
|
+
private artifacts;
|
|
148
|
+
private semaphore;
|
|
149
|
+
constructor(options?: MemoryProviderOptions);
|
|
150
|
+
private getTypeStore;
|
|
151
|
+
get(type: string, id: string): Promise<Record<string, unknown> | null>;
|
|
152
|
+
list(type: string, options?: ListOptions): Promise<Record<string, unknown>[]>;
|
|
153
|
+
search(type: string, query: string, options?: SearchOptions): Promise<Record<string, unknown>[]>;
|
|
154
|
+
create(type: string, id: string | undefined, data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
155
|
+
update(type: string, id: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
156
|
+
delete(type: string, id: string): Promise<boolean>;
|
|
157
|
+
private relationKey;
|
|
158
|
+
related(type: string, id: string, relation: string): Promise<Record<string, unknown>[]>;
|
|
159
|
+
relate(fromType: string, fromId: string, relation: string, toType: string, toId: string): Promise<void>;
|
|
160
|
+
unrelate(fromType: string, fromId: string, relation: string, toType: string, toId: string): Promise<void>;
|
|
161
|
+
/**
|
|
162
|
+
* Emit an event using Actor-Event-Object-Result pattern
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```ts
|
|
166
|
+
* // New pattern
|
|
167
|
+
* await provider.emit({
|
|
168
|
+
* actor: 'user:john',
|
|
169
|
+
* event: 'Post.created',
|
|
170
|
+
* object: 'Post/hello-world',
|
|
171
|
+
* objectData: { title: 'Hello World' },
|
|
172
|
+
* })
|
|
173
|
+
*
|
|
174
|
+
* // Legacy pattern (still supported)
|
|
175
|
+
* await provider.emit('Post.created', { title: 'Hello World' })
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
emit(eventOrType: string | {
|
|
179
|
+
actor?: string;
|
|
180
|
+
actorData?: ActorData;
|
|
181
|
+
event: string;
|
|
182
|
+
object?: string;
|
|
183
|
+
objectData?: Record<string, unknown>;
|
|
184
|
+
result?: string;
|
|
185
|
+
resultData?: Record<string, unknown>;
|
|
186
|
+
meta?: Record<string, unknown>;
|
|
187
|
+
}, data?: unknown): Promise<Event>;
|
|
188
|
+
private getEventHandlers;
|
|
189
|
+
private matchesPattern;
|
|
190
|
+
on(pattern: string, handler: (event: Event) => void | Promise<void>): () => void;
|
|
191
|
+
listEvents(options?: {
|
|
192
|
+
event?: string;
|
|
193
|
+
actor?: string;
|
|
194
|
+
object?: string;
|
|
195
|
+
since?: Date;
|
|
196
|
+
until?: Date;
|
|
197
|
+
limit?: number;
|
|
198
|
+
/** @deprecated Use 'event' instead */
|
|
199
|
+
type?: string;
|
|
200
|
+
}): Promise<Event[]>;
|
|
201
|
+
replayEvents(options: {
|
|
202
|
+
event?: string;
|
|
203
|
+
actor?: string;
|
|
204
|
+
since?: Date;
|
|
205
|
+
handler: (event: Event) => void | Promise<void>;
|
|
206
|
+
/** @deprecated Use 'event' instead */
|
|
207
|
+
type?: string;
|
|
208
|
+
}): Promise<void>;
|
|
209
|
+
/**
|
|
210
|
+
* Create an action with automatic verb conjugation
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* // New pattern with verb conjugation
|
|
215
|
+
* const action = await provider.createAction({
|
|
216
|
+
* actor: 'system',
|
|
217
|
+
* action: 'generate', // auto-conjugates to act='generates', activity='generating'
|
|
218
|
+
* object: 'Post',
|
|
219
|
+
* objectData: { count: 100 },
|
|
220
|
+
* total: 100,
|
|
221
|
+
* })
|
|
222
|
+
*
|
|
223
|
+
* // Legacy pattern (still supported)
|
|
224
|
+
* const action = await provider.createAction({
|
|
225
|
+
* type: 'generate',
|
|
226
|
+
* data: { count: 100 },
|
|
227
|
+
* total: 100,
|
|
228
|
+
* })
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
createAction(data: {
|
|
232
|
+
actor?: string;
|
|
233
|
+
actorData?: ActorData;
|
|
234
|
+
action?: string;
|
|
235
|
+
object?: string;
|
|
236
|
+
objectData?: Record<string, unknown>;
|
|
237
|
+
total?: number;
|
|
238
|
+
meta?: Record<string, unknown>;
|
|
239
|
+
type?: string;
|
|
240
|
+
data?: unknown;
|
|
241
|
+
}): Promise<Action>;
|
|
242
|
+
getAction(id: string): Promise<Action | null>;
|
|
243
|
+
updateAction(id: string, updates: Partial<Pick<Action, 'status' | 'progress' | 'result' | 'error'>>): Promise<Action>;
|
|
244
|
+
listActions(options?: {
|
|
245
|
+
status?: Action['status'];
|
|
246
|
+
action?: string;
|
|
247
|
+
actor?: string;
|
|
248
|
+
object?: string;
|
|
249
|
+
since?: Date;
|
|
250
|
+
until?: Date;
|
|
251
|
+
limit?: number;
|
|
252
|
+
/** @deprecated Use 'action' instead */
|
|
253
|
+
type?: string;
|
|
254
|
+
}): Promise<Action[]>;
|
|
255
|
+
retryAction(id: string): Promise<Action>;
|
|
256
|
+
cancelAction(id: string): Promise<void>;
|
|
257
|
+
private artifactKey;
|
|
258
|
+
getArtifact(url: string, type: string): Promise<Artifact | null>;
|
|
259
|
+
setArtifact(url: string, type: string, data: {
|
|
260
|
+
content: unknown;
|
|
261
|
+
sourceHash: string;
|
|
262
|
+
metadata?: Record<string, unknown>;
|
|
263
|
+
}): Promise<void>;
|
|
264
|
+
deleteArtifact(url: string, type?: string): Promise<void>;
|
|
265
|
+
private invalidateArtifacts;
|
|
266
|
+
listArtifacts(url: string): Promise<Artifact[]>;
|
|
267
|
+
/**
|
|
268
|
+
* Run an operation with concurrency control
|
|
269
|
+
*/
|
|
270
|
+
withConcurrency<T>(fn: () => Promise<T>): Promise<T>;
|
|
271
|
+
/**
|
|
272
|
+
* Run multiple operations with concurrency control
|
|
273
|
+
*/
|
|
274
|
+
mapWithConcurrency<T, R>(items: T[], fn: (item: T) => Promise<R>): Promise<R[]>;
|
|
275
|
+
/**
|
|
276
|
+
* Clear all data (useful for testing)
|
|
277
|
+
*/
|
|
278
|
+
clear(): void;
|
|
279
|
+
/**
|
|
280
|
+
* Get stats
|
|
281
|
+
*/
|
|
282
|
+
stats(): {
|
|
283
|
+
entities: number;
|
|
284
|
+
relations: number;
|
|
285
|
+
events: number;
|
|
286
|
+
actions: {
|
|
287
|
+
pending: number;
|
|
288
|
+
active: number;
|
|
289
|
+
completed: number;
|
|
290
|
+
failed: number;
|
|
291
|
+
cancelled: number;
|
|
292
|
+
};
|
|
293
|
+
artifacts: number;
|
|
294
|
+
concurrency: {
|
|
295
|
+
active: number;
|
|
296
|
+
pending: number;
|
|
297
|
+
};
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Create an in-memory provider
|
|
302
|
+
*/
|
|
303
|
+
export declare function createMemoryProvider(options?: MemoryProviderOptions): MemoryProvider;
|
|
304
|
+
//# sourceMappingURL=memory-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-provider.d.ts","sourceRoot":"","sources":["../src/memory-provider.ts"],"names":[],"mappings":"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"}
|