ai-database 0.1.0 → 2.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.
Files changed (72) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/CHANGELOG.md +9 -0
  3. package/README.md +381 -68
  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 +50 -191
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +79 -462
  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 -37
  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/dist/index.d.mts +0 -195
  72. package/dist/index.mjs +0 -430
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-promise-db.js","sourceRoot":"","sources":["../src/ai-promise-db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,531 @@
1
+ /**
2
+ * Authorization Primitives (FGA/RBAC)
3
+ *
4
+ * Based on WorkOS FGA design - Fine-Grained Authorization that:
5
+ * - Extends RBAC with resource-scoped, hierarchical permissions
6
+ * - Uses Subjects, Resources, Roles, Permissions, Assignments
7
+ * - Supports automatic inheritance through resource hierarchy
8
+ * - Integrates with Noun/Verb for action authorization
9
+ *
10
+ * @see https://workos.com/docs/fga
11
+ * @packageDocumentation
12
+ */
13
+ import type { Noun } from './schema.js';
14
+ /**
15
+ * Subject - who is requesting access
16
+ *
17
+ * Can be a user, group, service account, AI agent, or any entity
18
+ * that can be granted permissions.
19
+ */
20
+ export interface Subject {
21
+ /** Subject type (user, group, service, agent) */
22
+ type: string;
23
+ /** Unique identifier within the type */
24
+ id: string;
25
+ /** Optional display name */
26
+ name?: string;
27
+ /** Subject metadata */
28
+ metadata?: Record<string, unknown>;
29
+ }
30
+ /**
31
+ * Subject types
32
+ */
33
+ export type SubjectType = 'user' | 'group' | 'team' | 'service' | 'agent' | 'role' | string;
34
+ /**
35
+ * Resource - what is being accessed
36
+ *
37
+ * Any entity in the system that can have permissions.
38
+ * Resources form a hierarchy (up to 5 levels).
39
+ */
40
+ export interface Resource {
41
+ /** Resource type (maps to Noun) */
42
+ type: string;
43
+ /** Unique identifier */
44
+ id: string;
45
+ /** Parent resource (for hierarchy) */
46
+ parent?: ResourceRef;
47
+ /** Resource metadata */
48
+ metadata?: Record<string, unknown>;
49
+ }
50
+ /**
51
+ * Resource reference (lightweight)
52
+ */
53
+ export interface ResourceRef {
54
+ type: string;
55
+ id: string;
56
+ }
57
+ /**
58
+ * Resource type definition
59
+ */
60
+ export interface ResourceType {
61
+ /** Type name (should match a Noun) */
62
+ name: string;
63
+ /** Human-readable description */
64
+ description?: string;
65
+ /** Parent type in hierarchy (null = root) */
66
+ parentType?: string;
67
+ /** Actions available on this resource type */
68
+ actions?: string[];
69
+ /** Whether this is a high-cardinality type (kept local, not synced) */
70
+ local?: boolean;
71
+ }
72
+ /**
73
+ * Permission - what action can be performed on what resource type
74
+ */
75
+ export interface Permission {
76
+ /** Permission name (e.g., 'read', 'write', 'admin') */
77
+ name: string;
78
+ /** Description */
79
+ description?: string;
80
+ /** Resource type this permission applies to */
81
+ resourceType: string;
82
+ /** Actions granted (maps to Verb actions) */
83
+ actions: string[];
84
+ /** Whether this permission extends to child resource types */
85
+ inheritable?: boolean;
86
+ }
87
+ /**
88
+ * Role - a named collection of permissions
89
+ *
90
+ * Roles are scoped to resource types. A "Workspace Admin" role
91
+ * only makes sense on Workspace resources.
92
+ */
93
+ export interface Role {
94
+ /** Role identifier */
95
+ id: string;
96
+ /** Display name */
97
+ name: string;
98
+ /** Description */
99
+ description?: string;
100
+ /** Resource type this role is scoped to */
101
+ resourceType: string;
102
+ /** Permissions included in this role */
103
+ permissions: Permission[];
104
+ /** Parent roles (for role inheritance) */
105
+ inherits?: string[];
106
+ /** Metadata */
107
+ metadata?: Record<string, unknown>;
108
+ }
109
+ /**
110
+ * Standard role levels (can be customized)
111
+ */
112
+ export type RoleLevel = 'owner' | 'admin' | 'editor' | 'viewer' | 'guest' | string;
113
+ /**
114
+ * Assignment - binds a subject to a role on a resource
115
+ *
116
+ * This is the core authorization tuple: (subject, role, resource)
117
+ * Also called a "warrant" in some FGA systems.
118
+ */
119
+ export interface Assignment {
120
+ /** Unique assignment ID */
121
+ id: string;
122
+ /** Who is granted access */
123
+ subject: Subject;
124
+ /** What role is granted */
125
+ role: string;
126
+ /** On what resource */
127
+ resource: ResourceRef;
128
+ /** When the assignment was created */
129
+ createdAt: Date;
130
+ /** Who created the assignment */
131
+ createdBy?: Subject;
132
+ /** Optional expiration */
133
+ expiresAt?: Date;
134
+ /** Assignment metadata */
135
+ metadata?: Record<string, unknown>;
136
+ }
137
+ /**
138
+ * Assignment input (for creating assignments)
139
+ */
140
+ export interface AssignmentInput {
141
+ subject: Subject | string;
142
+ role: string;
143
+ resource: ResourceRef | string;
144
+ expiresAt?: Date;
145
+ metadata?: Record<string, unknown>;
146
+ }
147
+ /**
148
+ * Authorization check request
149
+ */
150
+ export interface AuthzCheckRequest {
151
+ /** Who is requesting */
152
+ subject: Subject | string;
153
+ /** What action */
154
+ action: string;
155
+ /** On what resource */
156
+ resource: ResourceRef | string;
157
+ /** Additional context */
158
+ context?: Record<string, unknown>;
159
+ }
160
+ /**
161
+ * Authorization check result
162
+ */
163
+ export interface AuthzCheckResult {
164
+ /** Whether access is allowed */
165
+ allowed: boolean;
166
+ /** Why (for debugging/audit) */
167
+ reason?: string;
168
+ /** Which assignment granted access (if allowed) */
169
+ assignment?: Assignment;
170
+ /** Check latency in ms */
171
+ latencyMs?: number;
172
+ }
173
+ /**
174
+ * Batch authorization check
175
+ */
176
+ export interface AuthzBatchCheckRequest {
177
+ checks: AuthzCheckRequest[];
178
+ }
179
+ export interface AuthzBatchCheckResult {
180
+ results: AuthzCheckResult[];
181
+ latencyMs: number;
182
+ }
183
+ /**
184
+ * Resource hierarchy definition
185
+ *
186
+ * Defines the parent-child relationships between resource types.
187
+ * Permissions can flow down through the hierarchy.
188
+ *
189
+ * @example
190
+ * ```ts
191
+ * const hierarchy: ResourceHierarchy = {
192
+ * levels: [
193
+ * { type: 'organization', depth: 0 },
194
+ * { type: 'workspace', depth: 1, parentType: 'organization' },
195
+ * { type: 'project', depth: 2, parentType: 'workspace' },
196
+ * { type: 'document', depth: 3, parentType: 'project' },
197
+ * ],
198
+ * maxDepth: 5,
199
+ * }
200
+ * ```
201
+ */
202
+ export interface ResourceHierarchy {
203
+ /** Hierarchy levels */
204
+ levels: ResourceType[];
205
+ /** Maximum depth (WorkOS supports up to 5) */
206
+ maxDepth: number;
207
+ }
208
+ /**
209
+ * Common SaaS resource hierarchies
210
+ */
211
+ export declare const StandardHierarchies: {
212
+ /** Organization → Workspace → Project → Resource */
213
+ readonly saas: {
214
+ readonly levels: [{
215
+ readonly name: "organization";
216
+ readonly description: "Top-level organization";
217
+ }, {
218
+ readonly name: "workspace";
219
+ readonly description: "Workspace within org";
220
+ readonly parentType: "organization";
221
+ }, {
222
+ readonly name: "project";
223
+ readonly description: "Project within workspace";
224
+ readonly parentType: "workspace";
225
+ }, {
226
+ readonly name: "resource";
227
+ readonly description: "Resource within project";
228
+ readonly parentType: "project";
229
+ }];
230
+ readonly maxDepth: 4;
231
+ };
232
+ /** Organization → Team → Repository */
233
+ readonly devtools: {
234
+ readonly levels: [{
235
+ readonly name: "organization";
236
+ readonly description: "Top-level organization";
237
+ }, {
238
+ readonly name: "team";
239
+ readonly description: "Team within org";
240
+ readonly parentType: "organization";
241
+ }, {
242
+ readonly name: "repository";
243
+ readonly description: "Repository owned by team";
244
+ readonly parentType: "team";
245
+ }];
246
+ readonly maxDepth: 3;
247
+ };
248
+ /** Account → Folder → Document */
249
+ readonly documents: {
250
+ readonly levels: [{
251
+ readonly name: "account";
252
+ readonly description: "User account";
253
+ }, {
254
+ readonly name: "folder";
255
+ readonly description: "Folder in account";
256
+ readonly parentType: "account";
257
+ }, {
258
+ readonly name: "document";
259
+ readonly description: "Document in folder";
260
+ readonly parentType: "folder";
261
+ }];
262
+ readonly maxDepth: 3;
263
+ };
264
+ };
265
+ /**
266
+ * Standard permissions
267
+ *
268
+ * Beyond CRUD, we add `act` for domain-specific verbs (send, pay, publish, etc.)
269
+ *
270
+ * Permission levels:
271
+ * - read → view data (GET operations)
272
+ * - edit → modify data (PUT/PATCH operations)
273
+ * - act → perform actions/verbs (POST operations with side effects)
274
+ * - delete → remove (DELETE operations)
275
+ * - manage → all + role assignment
276
+ */
277
+ export declare const StandardPermissions: {
278
+ create: (resourceType: string) => Permission;
279
+ read: (resourceType: string) => Permission;
280
+ edit: (resourceType: string) => Permission;
281
+ /**
282
+ * Act - perform domain-specific verbs/actions
283
+ *
284
+ * This is for state transitions and side effects:
285
+ * - invoice.send, invoice.pay, invoice.void
286
+ * - document.publish, document.archive
287
+ * - order.fulfill, order.refund
288
+ *
289
+ * Can be scoped: act:* (all), act:send, act:pay, etc.
290
+ */
291
+ act: (resourceType: string, verbs?: string[]) => Permission;
292
+ delete: (resourceType: string) => Permission;
293
+ manage: (resourceType: string) => Permission;
294
+ };
295
+ /**
296
+ * @deprecated Use StandardPermissions instead
297
+ */
298
+ export declare const CRUDPermissions: {
299
+ create: (resourceType: string) => Permission;
300
+ read: (resourceType: string) => Permission;
301
+ edit: (resourceType: string) => Permission;
302
+ /**
303
+ * Act - perform domain-specific verbs/actions
304
+ *
305
+ * This is for state transitions and side effects:
306
+ * - invoice.send, invoice.pay, invoice.void
307
+ * - document.publish, document.archive
308
+ * - order.fulfill, order.refund
309
+ *
310
+ * Can be scoped: act:* (all), act:send, act:pay, etc.
311
+ */
312
+ act: (resourceType: string, verbs?: string[]) => Permission;
313
+ delete: (resourceType: string) => Permission;
314
+ manage: (resourceType: string) => Permission;
315
+ };
316
+ /**
317
+ * Create a verb-scoped permission
318
+ *
319
+ * @example
320
+ * ```ts
321
+ * // Single verb
322
+ * const canPay = verbPermission('invoice', 'pay')
323
+ * // { name: 'invoice.pay', actions: ['pay'], resourceType: 'invoice' }
324
+ *
325
+ * // Multiple verbs
326
+ * const canManagePayments = verbPermission('invoice', ['send', 'pay', 'void', 'refund'])
327
+ * ```
328
+ */
329
+ export declare function verbPermission(resourceType: string, verbs: string | string[], options?: {
330
+ inheritable?: boolean;
331
+ description?: string;
332
+ }): Permission;
333
+ /**
334
+ * Create permissions from a Noun's actions
335
+ *
336
+ * @example
337
+ * ```ts
338
+ * const invoicePerms = nounPermissions(InvoiceNoun)
339
+ * // Creates: invoice.create, invoice.send, invoice.pay, invoice.void, etc.
340
+ * ```
341
+ */
342
+ export declare function nounPermissions(noun: Noun): Permission[];
343
+ /**
344
+ * Permission pattern matching
345
+ *
346
+ * Checks if an action matches a permission pattern.
347
+ *
348
+ * @example
349
+ * ```ts
350
+ * matchesPermission('pay', ['*']) // true - wildcard
351
+ * matchesPermission('pay', ['pay']) // true - exact
352
+ * matchesPermission('pay', ['send', 'pay']) // true - in list
353
+ * matchesPermission('pay', ['send']) // false
354
+ * ```
355
+ */
356
+ export declare function matchesPermission(action: string, allowedActions: string[]): boolean;
357
+ /**
358
+ * Create standard roles for a resource type
359
+ */
360
+ export declare function createStandardRoles(resourceType: string): Record<RoleLevel, Role>;
361
+ /**
362
+ * Authorization schema for a Noun
363
+ *
364
+ * Extends a Noun with authorization metadata.
365
+ */
366
+ export interface AuthorizedNoun extends Noun {
367
+ /** Resource type configuration */
368
+ authorization?: {
369
+ /** Parent resource type in hierarchy */
370
+ parentType?: string;
371
+ /** Available roles for this resource type */
372
+ roles?: Role[];
373
+ /** Custom permissions beyond CRUD */
374
+ permissions?: Permission[];
375
+ /** Whether this is a high-cardinality type */
376
+ local?: boolean;
377
+ /** Default role for new resources */
378
+ defaultRole?: string;
379
+ };
380
+ }
381
+ /**
382
+ * Add authorization to a Noun
383
+ */
384
+ export declare function authorizeNoun(noun: Noun, config: AuthorizedNoun['authorization']): AuthorizedNoun;
385
+ /**
386
+ * Authorization engine interface
387
+ *
388
+ * Implemented by providers (WorkOS, in-memory, custom).
389
+ */
390
+ export interface AuthorizationEngine {
391
+ createResource(resource: Resource): Promise<Resource>;
392
+ getResource(ref: ResourceRef): Promise<Resource | null>;
393
+ deleteResource(ref: ResourceRef): Promise<void>;
394
+ listResources(type: string, parentRef?: ResourceRef): Promise<Resource[]>;
395
+ assign(input: AssignmentInput): Promise<Assignment>;
396
+ unassign(assignmentId: string): Promise<void>;
397
+ getAssignment(id: string): Promise<Assignment | null>;
398
+ listAssignments(filter: {
399
+ subject?: Subject;
400
+ role?: string;
401
+ resource?: ResourceRef;
402
+ }): Promise<Assignment[]>;
403
+ check(request: AuthzCheckRequest): Promise<AuthzCheckResult>;
404
+ batchCheck(request: AuthzBatchCheckRequest): Promise<AuthzBatchCheckResult>;
405
+ listSubjectsWithAccess(resource: ResourceRef, action?: string): Promise<Subject[]>;
406
+ listResourcesForSubject(subject: Subject, resourceType: string, action?: string): Promise<Resource[]>;
407
+ }
408
+ /**
409
+ * Parse subject string to Subject object
410
+ *
411
+ * @example
412
+ * ```ts
413
+ * parseSubject('user:123') // { type: 'user', id: '123' }
414
+ * parseSubject('group:admins') // { type: 'group', id: 'admins' }
415
+ * ```
416
+ */
417
+ export declare function parseSubject(str: string): Subject;
418
+ /**
419
+ * Format Subject as string
420
+ */
421
+ export declare function formatSubject(subject: Subject): string;
422
+ /**
423
+ * Parse resource string to ResourceRef
424
+ *
425
+ * @example
426
+ * ```ts
427
+ * parseResource('workspace:456') // { type: 'workspace', id: '456' }
428
+ * ```
429
+ */
430
+ export declare function parseResource(str: string): ResourceRef;
431
+ /**
432
+ * Format ResourceRef as string
433
+ */
434
+ export declare function formatResource(resource: ResourceRef): string;
435
+ /**
436
+ * Check if a subject matches another (for assignment matching)
437
+ */
438
+ export declare function subjectMatches(a: Subject, b: Subject): boolean;
439
+ /**
440
+ * Check if a resource matches another
441
+ */
442
+ export declare function resourceMatches(a: ResourceRef, b: ResourceRef): boolean;
443
+ /**
444
+ * In-memory authorization engine
445
+ *
446
+ * Simple implementation for testing and development.
447
+ * For production, use WorkOS or a persistent provider.
448
+ */
449
+ export declare class InMemoryAuthorizationEngine implements AuthorizationEngine {
450
+ private resources;
451
+ private assignments;
452
+ private roles;
453
+ private hierarchy;
454
+ constructor(config?: {
455
+ hierarchy?: ResourceHierarchy;
456
+ roles?: Role[];
457
+ });
458
+ createResource(resource: Resource): Promise<Resource>;
459
+ getResource(ref: ResourceRef): Promise<Resource | null>;
460
+ deleteResource(ref: ResourceRef): Promise<void>;
461
+ listResources(type: string, parentRef?: ResourceRef): Promise<Resource[]>;
462
+ assign(input: AssignmentInput): Promise<Assignment>;
463
+ unassign(assignmentId: string): Promise<void>;
464
+ getAssignment(id: string): Promise<Assignment | null>;
465
+ listAssignments(filter: {
466
+ subject?: Subject;
467
+ role?: string;
468
+ resource?: ResourceRef;
469
+ }): Promise<Assignment[]>;
470
+ check(request: AuthzCheckRequest): Promise<AuthzCheckResult>;
471
+ batchCheck(request: AuthzBatchCheckRequest): Promise<AuthzBatchCheckResult>;
472
+ listSubjectsWithAccess(resource: ResourceRef, action?: string): Promise<Subject[]>;
473
+ listResourcesForSubject(subject: Subject, resourceType: string, action?: string): Promise<Resource[]>;
474
+ private resourceInScope;
475
+ private roleGrantsAction;
476
+ registerRole(role: Role): void;
477
+ getRole(id: string): Role | undefined;
478
+ }
479
+ /**
480
+ * Business role - organizational role (CEO, Engineer, Manager)
481
+ *
482
+ * Different from authorization Role - this represents a job function.
483
+ * Can be linked to authorization Roles for permissions.
484
+ */
485
+ export interface BusinessRole {
486
+ /** Role identifier */
487
+ id: string;
488
+ /** Display name (CEO, Software Engineer, Product Manager) */
489
+ name: string;
490
+ /** Description */
491
+ description?: string;
492
+ /** Department */
493
+ department?: string;
494
+ /** Level in organization (1 = IC, 2 = Manager, 3 = Director, 4 = VP, 5 = C-level) */
495
+ level?: number;
496
+ /** Reports to (parent role) */
497
+ reportsTo?: string;
498
+ /** Responsibilities */
499
+ responsibilities?: string[];
500
+ /** Required skills */
501
+ skills?: string[];
502
+ /** Authorization roles this business role grants */
503
+ authorizationRoles?: string[];
504
+ /** Metadata */
505
+ metadata?: Record<string, unknown>;
506
+ }
507
+ /**
508
+ * Link business roles to authorization roles
509
+ */
510
+ export declare function linkBusinessRole(businessRole: BusinessRole, authRoles: string[]): BusinessRole;
511
+ /**
512
+ * Role as a Noun - can be stored in ai-database
513
+ */
514
+ export declare const RoleNoun: Noun;
515
+ /**
516
+ * Assignment as a Noun
517
+ */
518
+ export declare const AssignmentNoun: Noun;
519
+ /**
520
+ * Permission as a Noun
521
+ */
522
+ export declare const PermissionNoun: Noun;
523
+ /**
524
+ * All authorization-related Nouns
525
+ */
526
+ export declare const AuthorizationNouns: {
527
+ Role: Noun;
528
+ Assignment: Noun;
529
+ Permission: Noun;
530
+ };
531
+ //# sourceMappingURL=authorization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../src/authorization.ts"],"names":[],"mappings":"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"}