ai-database 2.0.2 → 2.1.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 (88) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/actions.d.ts +247 -0
  3. package/dist/actions.d.ts.map +1 -0
  4. package/dist/actions.js +260 -0
  5. package/dist/actions.js.map +1 -0
  6. package/dist/ai-promise-db.d.ts +34 -2
  7. package/dist/ai-promise-db.d.ts.map +1 -1
  8. package/dist/ai-promise-db.js +511 -66
  9. package/dist/ai-promise-db.js.map +1 -1
  10. package/dist/constants.d.ts +16 -0
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/constants.js +16 -0
  13. package/dist/constants.js.map +1 -0
  14. package/dist/events.d.ts +153 -0
  15. package/dist/events.d.ts.map +1 -0
  16. package/dist/events.js +154 -0
  17. package/dist/events.js.map +1 -0
  18. package/dist/index.d.ts +8 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +13 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/memory-provider.d.ts +144 -2
  23. package/dist/memory-provider.d.ts.map +1 -1
  24. package/dist/memory-provider.js +569 -13
  25. package/dist/memory-provider.js.map +1 -1
  26. package/dist/schema/cascade.d.ts +96 -0
  27. package/dist/schema/cascade.d.ts.map +1 -0
  28. package/dist/schema/cascade.js +528 -0
  29. package/dist/schema/cascade.js.map +1 -0
  30. package/dist/schema/index.d.ts +197 -0
  31. package/dist/schema/index.d.ts.map +1 -0
  32. package/dist/schema/index.js +1211 -0
  33. package/dist/schema/index.js.map +1 -0
  34. package/dist/schema/parse.d.ts +225 -0
  35. package/dist/schema/parse.d.ts.map +1 -0
  36. package/dist/schema/parse.js +732 -0
  37. package/dist/schema/parse.js.map +1 -0
  38. package/dist/schema/provider.d.ts +176 -0
  39. package/dist/schema/provider.d.ts.map +1 -0
  40. package/dist/schema/provider.js +258 -0
  41. package/dist/schema/provider.js.map +1 -0
  42. package/dist/schema/resolve.d.ts +87 -0
  43. package/dist/schema/resolve.d.ts.map +1 -0
  44. package/dist/schema/resolve.js +474 -0
  45. package/dist/schema/resolve.js.map +1 -0
  46. package/dist/schema/semantic.d.ts +53 -0
  47. package/dist/schema/semantic.d.ts.map +1 -0
  48. package/dist/schema/semantic.js +247 -0
  49. package/dist/schema/semantic.js.map +1 -0
  50. package/dist/schema/types.d.ts +528 -0
  51. package/dist/schema/types.d.ts.map +1 -0
  52. package/dist/schema/types.js +9 -0
  53. package/dist/schema/types.js.map +1 -0
  54. package/dist/schema.d.ts +24 -867
  55. package/dist/schema.d.ts.map +1 -1
  56. package/dist/schema.js +41 -1124
  57. package/dist/schema.js.map +1 -1
  58. package/dist/semantic.d.ts +175 -0
  59. package/dist/semantic.d.ts.map +1 -0
  60. package/dist/semantic.js +338 -0
  61. package/dist/semantic.js.map +1 -0
  62. package/dist/types.d.ts +14 -0
  63. package/dist/types.d.ts.map +1 -1
  64. package/dist/types.js.map +1 -1
  65. package/package.json +13 -4
  66. package/.turbo/turbo-build.log +0 -5
  67. package/TESTING.md +0 -410
  68. package/TEST_SUMMARY.md +0 -250
  69. package/TODO.md +0 -128
  70. package/src/ai-promise-db.ts +0 -1243
  71. package/src/authorization.ts +0 -1102
  72. package/src/durable-clickhouse.ts +0 -596
  73. package/src/durable-promise.ts +0 -582
  74. package/src/execution-queue.ts +0 -608
  75. package/src/index.test.ts +0 -868
  76. package/src/index.ts +0 -337
  77. package/src/linguistic.ts +0 -404
  78. package/src/memory-provider.test.ts +0 -1036
  79. package/src/memory-provider.ts +0 -1119
  80. package/src/schema.test.ts +0 -1254
  81. package/src/schema.ts +0 -2296
  82. package/src/tests.ts +0 -725
  83. package/src/types.ts +0 -1177
  84. package/test/README.md +0 -153
  85. package/test/edge-cases.test.ts +0 -646
  86. package/test/provider-resolution.test.ts +0 -402
  87. package/tsconfig.json +0 -9
  88. package/vitest.config.ts +0 -19
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Schema-first Database Definition
3
+ *
4
+ * Declarative schema with automatic bi-directional relationships.
5
+ * Uses mdxld conventions for entity structure.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const { db } = DB({
10
+ * Post: {
11
+ * title: 'string',
12
+ * author: 'Author.posts', // one-to-many: Post.author -> Author, Author.posts -> Post[]
13
+ * tags: ['Tag.posts'], // many-to-many: Post.tags -> Tag[], Tag.posts -> Post[]
14
+ * },
15
+ * Author: {
16
+ * name: 'string',
17
+ * // posts: Post[] auto-created from backref
18
+ * },
19
+ * Tag: {
20
+ * name: 'string',
21
+ * // posts: Post[] auto-created from backref
22
+ * }
23
+ * })
24
+ *
25
+ * // Typed access
26
+ * const post = await db.Post.get('123')
27
+ * post.author // Author (single)
28
+ * post.tags // Tag[] (array)
29
+ * ```
30
+ *
31
+ * @packageDocumentation
32
+ */
33
+ import { DBPromise, type ForEachOptions, type ForEachResult } from '../ai-promise-db.js';
34
+ export type { ReferenceSpec, Draft, Resolved, DraftOptions, ResolveOptions, CascadeProgress, CreateEntityOptions, OperatorParseResult, ListOptions, SearchOptions, SemanticSearchOptions, HybridSearchOptions, EmbeddingTypeConfig, ActorData, DBEvent, CreateEventOptions, DBAction, CreateActionOptions, DBArtifact, EventsAPI, ActionsAPI, ArtifactsAPI, NounsAPI, VerbsAPI, NLQueryResult, NLQueryFn, NLQueryContext, NLQueryPlan, NLQueryGenerator, GenerateOptions, DBOptions, } from './types.js';
35
+ export { parseOperator, parseField, parseSchema, isPrimitiveType } from './parse.js';
36
+ export type { DBProvider, DBProviderExtended, SemanticSearchResult, HybridSearchResult } from './provider.js';
37
+ export { setProvider, resolveProvider, hasSemanticSearch, hasHybridSearch, hasEventsAPI, hasActionsAPI, hasArtifactsAPI, hasEmbeddingsConfig, } from './provider.js';
38
+ export { isEntityId, inferTypeFromField, resolveContextPath, resolveInstructions, prefetchContext, isPromptField, resolveNestedPending, resolveReferenceSpec, hydrateEntity, } from './resolve.js';
39
+ export { generateContextAwareValue, generateAIFields, generateEntity, resolveForwardExact, generateNaturalLanguageContent, } from './cascade.js';
40
+ export { resolveBackwardFuzzy, resolveForwardFuzzy } from './semantic.js';
41
+ import type { EntitySchema, DatabaseSchema, ParsedEntity, ParsedSchema, Verb, Noun } from '../types.js';
42
+ import type { DraftOptions, ResolveOptions, CreateEntityOptions, ListOptions, SearchOptions, SemanticSearchOptions, HybridSearchOptions, EventsAPI, ActionsAPI, ArtifactsAPI, NounsAPI, VerbsAPI, NLQueryFn, NLQueryGenerator, GenerateOptions, DBOptions, Draft, Resolved } from './types.js';
43
+ /**
44
+ * Create a Noun definition with type inference
45
+ */
46
+ export declare function defineNoun<T extends Noun>(noun: T): T;
47
+ /**
48
+ * Create a Verb definition with type inference
49
+ */
50
+ export declare function defineVerb<T extends Verb>(verb: T): T;
51
+ /**
52
+ * Convert a Noun to an EntitySchema for use with DB()
53
+ */
54
+ export declare function nounToSchema(noun: Noun): EntitySchema;
55
+ /**
56
+ * Built-in Thing schema - base type for all entities
57
+ */
58
+ export declare const ThingSchema: EntitySchema;
59
+ /**
60
+ * Built-in Noun schema for storing type definitions
61
+ */
62
+ export declare const NounSchema: EntitySchema;
63
+ /**
64
+ * Built-in Verb schema for storing action definitions
65
+ */
66
+ export declare const VerbSchema: EntitySchema;
67
+ /**
68
+ * Built-in Edge schema for relationships between types
69
+ */
70
+ export declare const EdgeSchema: EntitySchema;
71
+ /**
72
+ * System types that are auto-created in every database
73
+ */
74
+ export declare const SystemSchema: DatabaseSchema;
75
+ /**
76
+ * Create Edge records from schema relationships
77
+ */
78
+ export declare function createEdgeRecords(typeName: string, schema: EntitySchema, parsedEntity: ParsedEntity): Array<Record<string, unknown>>;
79
+ /**
80
+ * Create a Noun record from a type name and optional schema
81
+ */
82
+ export declare function createNounRecord(typeName: string, schema?: EntitySchema, nounDef?: Partial<Noun>): Record<string, unknown>;
83
+ /**
84
+ * Map field type to TypeScript type
85
+ */
86
+ type FieldToTS<T extends string> = T extends 'string' ? string : T extends 'number' ? number : T extends 'boolean' ? boolean : T extends 'date' | 'datetime' ? Date : T extends 'json' ? Record<string, unknown> : T extends 'markdown' ? string : T extends 'url' ? string : unknown;
87
+ /**
88
+ * Infer entity type from schema definition
89
+ */
90
+ export type InferEntity<TSchema extends DatabaseSchema, TEntity extends keyof TSchema> = {
91
+ $id: string;
92
+ $type: TEntity;
93
+ } & {
94
+ [K in keyof TSchema[TEntity]]: TSchema[TEntity][K] extends `${infer Type}.${string}` ? Type extends keyof TSchema ? InferEntity<TSchema, Type> : unknown : TSchema[TEntity][K] extends `${infer Type}[]` ? Type extends keyof TSchema ? InferEntity<TSchema, Type>[] : FieldToTS<Type>[] : TSchema[TEntity][K] extends `${infer Type}?` ? FieldToTS<Type> | undefined : FieldToTS<TSchema[TEntity][K] & string>;
95
+ };
96
+ /**
97
+ * Operations available on each entity type
98
+ */
99
+ export interface EntityOperations<T> {
100
+ get(id: string): Promise<T | null>;
101
+ list(options?: ListOptions): Promise<T[]>;
102
+ find(where: Partial<T>): Promise<T[]>;
103
+ search(query: string, options?: SearchOptions): Promise<T[]>;
104
+ create(data: Omit<T, '$id' | '$type'>): Promise<T>;
105
+ create(id: string, data: Omit<T, '$id' | '$type'>): Promise<T>;
106
+ update(id: string, data: Partial<Omit<T, '$id' | '$type'>>): Promise<T>;
107
+ upsert(id: string, data: Omit<T, '$id' | '$type'>): Promise<T>;
108
+ delete(id: string): Promise<boolean>;
109
+ forEach(callback: (entity: T) => void | Promise<void>): Promise<void>;
110
+ forEach(options: ListOptions, callback: (entity: T) => void | Promise<void>): Promise<void>;
111
+ semanticSearch?(query: string, options?: SemanticSearchOptions): Promise<Array<T & {
112
+ $score: number;
113
+ }>>;
114
+ hybridSearch?(query: string, options?: HybridSearchOptions): Promise<Array<T & {
115
+ $rrfScore: number;
116
+ $ftsRank: number;
117
+ $semanticRank: number;
118
+ $score: number;
119
+ }>>;
120
+ draft?(data: Partial<Omit<T, '$id' | '$type'>>, options?: DraftOptions): Promise<Draft<T>>;
121
+ resolve?(draft: Draft<T>, options?: ResolveOptions): Promise<Resolved<T>>;
122
+ }
123
+ /**
124
+ * Operations with promise pipelining support
125
+ */
126
+ export interface PipelineEntityOperations<T> {
127
+ get(id: string): DBPromise<T | null>;
128
+ list(options?: ListOptions): DBPromise<T[]>;
129
+ find(where: Partial<T>): DBPromise<T[]>;
130
+ search(query: string, options?: SearchOptions): DBPromise<T[]>;
131
+ first(): DBPromise<T | null>;
132
+ create(data: Omit<T, '$id' | '$type'>, options?: CreateEntityOptions): Promise<T | Draft<T>>;
133
+ create(id: string, data: Omit<T, '$id' | '$type'>, options?: CreateEntityOptions): Promise<T | Draft<T>>;
134
+ draft(data: Partial<Omit<T, '$id' | '$type'>>, options?: DraftOptions): Promise<Draft<T>>;
135
+ resolve(draft: Draft<T>, options?: ResolveOptions): Promise<Resolved<T>>;
136
+ update(id: string, data: Partial<Omit<T, '$id' | '$type'>>): Promise<T>;
137
+ upsert(id: string, data: Omit<T, '$id' | '$type'>): Promise<T>;
138
+ delete(id: string): Promise<boolean>;
139
+ forEach<U>(callback: (entity: T, index: number) => U | Promise<U>, options?: ForEachOptions<T>): Promise<ForEachResult>;
140
+ semanticSearch(query: string, options?: SemanticSearchOptions): Promise<Array<T & {
141
+ $score: number;
142
+ }>>;
143
+ hybridSearch(query: string, options?: HybridSearchOptions): Promise<Array<T & {
144
+ $rrfScore: number;
145
+ $ftsRank: number;
146
+ $semanticRank: number;
147
+ $score: number;
148
+ }>>;
149
+ }
150
+ /**
151
+ * Typed database client based on schema
152
+ */
153
+ export type TypedDB<TSchema extends DatabaseSchema> = {
154
+ [K in keyof TSchema]: PipelineEntityOperations<InferEntity<TSchema, K>> & NLQueryFn<InferEntity<TSchema, K>>;
155
+ } & {
156
+ readonly $schema: ParsedSchema;
157
+ get(url: string): Promise<unknown>;
158
+ search(query: string, options?: SearchOptions): Promise<unknown[]>;
159
+ count(type: string, where?: Record<string, unknown>): Promise<number>;
160
+ forEach(options: {
161
+ type: string;
162
+ where?: Record<string, unknown>;
163
+ concurrency?: number;
164
+ }, callback: (entity: unknown) => void | Promise<void>): Promise<void>;
165
+ set(type: string, id: string, data: Record<string, unknown>): Promise<unknown>;
166
+ generate(options: GenerateOptions): Promise<unknown | {
167
+ id: string;
168
+ }>;
169
+ ask: NLQueryFn;
170
+ semanticSearch(query: string, options?: SemanticSearchOptions): Promise<Array<{
171
+ $id: string;
172
+ $type: string;
173
+ $score: number;
174
+ [key: string]: unknown;
175
+ }>>;
176
+ on(event: string, handler: (data: unknown) => void): () => void;
177
+ };
178
+ /**
179
+ * Result of DB() factory
180
+ */
181
+ export type DBResult<TSchema extends DatabaseSchema> = TypedDB<TSchema> & {
182
+ db: TypedDB<TSchema>;
183
+ events: EventsAPI;
184
+ actions: ActionsAPI;
185
+ artifacts: ArtifactsAPI;
186
+ nouns: NounsAPI;
187
+ verbs: VerbsAPI;
188
+ };
189
+ /**
190
+ * Set the AI generator for natural language queries
191
+ */
192
+ export declare function setNLQueryGenerator(generator: NLQueryGenerator): void;
193
+ /**
194
+ * Create a typed database from a schema definition
195
+ */
196
+ export declare function DB<TSchema extends DatabaseSchema>(schema: TSchema, options?: DBOptions): DBResult<TSchema>;
197
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}