ai-database 0.0.0-development → 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.
Files changed (79) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/.turbo/turbo-test.log +102 -0
  3. package/README.md +402 -47
  4. package/TESTING.md +410 -0
  5. package/TEST_SUMMARY.md +250 -0
  6. package/TODO.md +128 -0
  7. package/dist/ai-promise-db.d.ts +370 -0
  8. package/dist/ai-promise-db.d.ts.map +1 -0
  9. package/dist/ai-promise-db.js +839 -0
  10. package/dist/ai-promise-db.js.map +1 -0
  11. package/dist/authorization.d.ts +531 -0
  12. package/dist/authorization.d.ts.map +1 -0
  13. package/dist/authorization.js +632 -0
  14. package/dist/authorization.js.map +1 -0
  15. package/dist/durable-clickhouse.d.ts +193 -0
  16. package/dist/durable-clickhouse.d.ts.map +1 -0
  17. package/dist/durable-clickhouse.js +422 -0
  18. package/dist/durable-clickhouse.js.map +1 -0
  19. package/dist/durable-promise.d.ts +182 -0
  20. package/dist/durable-promise.d.ts.map +1 -0
  21. package/dist/durable-promise.js +409 -0
  22. package/dist/durable-promise.js.map +1 -0
  23. package/dist/execution-queue.d.ts +239 -0
  24. package/dist/execution-queue.d.ts.map +1 -0
  25. package/dist/execution-queue.js +400 -0
  26. package/dist/execution-queue.js.map +1 -0
  27. package/dist/index.d.ts +54 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +79 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/linguistic.d.ts +115 -0
  32. package/dist/linguistic.d.ts.map +1 -0
  33. package/dist/linguistic.js +379 -0
  34. package/dist/linguistic.js.map +1 -0
  35. package/dist/memory-provider.d.ts +304 -0
  36. package/dist/memory-provider.d.ts.map +1 -0
  37. package/dist/memory-provider.js +785 -0
  38. package/dist/memory-provider.js.map +1 -0
  39. package/dist/schema.d.ts +899 -0
  40. package/dist/schema.d.ts.map +1 -0
  41. package/dist/schema.js +1165 -0
  42. package/dist/schema.js.map +1 -0
  43. package/dist/tests.d.ts +107 -0
  44. package/dist/tests.d.ts.map +1 -0
  45. package/dist/tests.js +568 -0
  46. package/dist/tests.js.map +1 -0
  47. package/dist/types.d.ts +972 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +126 -0
  50. package/dist/types.js.map +1 -0
  51. package/package.json +37 -23
  52. package/src/ai-promise-db.ts +1243 -0
  53. package/src/authorization.ts +1102 -0
  54. package/src/durable-clickhouse.ts +596 -0
  55. package/src/durable-promise.ts +582 -0
  56. package/src/execution-queue.ts +608 -0
  57. package/src/index.test.ts +868 -0
  58. package/src/index.ts +337 -0
  59. package/src/linguistic.ts +404 -0
  60. package/src/memory-provider.test.ts +1036 -0
  61. package/src/memory-provider.ts +1119 -0
  62. package/src/schema.test.ts +1254 -0
  63. package/src/schema.ts +2296 -0
  64. package/src/tests.ts +725 -0
  65. package/src/types.ts +1177 -0
  66. package/test/README.md +153 -0
  67. package/test/edge-cases.test.ts +646 -0
  68. package/test/provider-resolution.test.ts +402 -0
  69. package/tsconfig.json +9 -0
  70. package/vitest.config.ts +19 -0
  71. package/LICENSE +0 -21
  72. package/dist/types/database.d.ts +0 -46
  73. package/dist/types/document.d.ts +0 -15
  74. package/dist/types/index.d.ts +0 -5
  75. package/dist/types/mdxdb/embedding.d.ts +0 -7
  76. package/dist/types/mdxdb/types.d.ts +0 -59
  77. package/dist/types/synthetic.d.ts +0 -9
  78. package/dist/types/tools.d.ts +0 -10
  79. package/dist/types/vector.d.ts +0 -16
@@ -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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"}