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.
- package/CHANGELOG.md +36 -0
- package/dist/actions.d.ts +247 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +260 -0
- package/dist/actions.js.map +1 -0
- package/dist/ai-promise-db.d.ts +34 -2
- package/dist/ai-promise-db.d.ts.map +1 -1
- package/dist/ai-promise-db.js +511 -66
- package/dist/ai-promise-db.js.map +1 -1
- package/dist/constants.d.ts +16 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +16 -0
- package/dist/constants.js.map +1 -0
- package/dist/events.d.ts +153 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +154 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/memory-provider.d.ts +144 -2
- package/dist/memory-provider.d.ts.map +1 -1
- package/dist/memory-provider.js +569 -13
- package/dist/memory-provider.js.map +1 -1
- package/dist/schema/cascade.d.ts +96 -0
- package/dist/schema/cascade.d.ts.map +1 -0
- package/dist/schema/cascade.js +528 -0
- package/dist/schema/cascade.js.map +1 -0
- package/dist/schema/index.d.ts +197 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +1211 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/parse.d.ts +225 -0
- package/dist/schema/parse.d.ts.map +1 -0
- package/dist/schema/parse.js +732 -0
- package/dist/schema/parse.js.map +1 -0
- package/dist/schema/provider.d.ts +176 -0
- package/dist/schema/provider.d.ts.map +1 -0
- package/dist/schema/provider.js +258 -0
- package/dist/schema/provider.js.map +1 -0
- package/dist/schema/resolve.d.ts +87 -0
- package/dist/schema/resolve.d.ts.map +1 -0
- package/dist/schema/resolve.js +474 -0
- package/dist/schema/resolve.js.map +1 -0
- package/dist/schema/semantic.d.ts +53 -0
- package/dist/schema/semantic.d.ts.map +1 -0
- package/dist/schema/semantic.js +247 -0
- package/dist/schema/semantic.js.map +1 -0
- package/dist/schema/types.d.ts +528 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +9 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/schema.d.ts +24 -867
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +41 -1124
- package/dist/schema.js.map +1 -1
- package/dist/semantic.d.ts +175 -0
- package/dist/semantic.d.ts.map +1 -0
- package/dist/semantic.js +338 -0
- package/dist/semantic.js.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +13 -4
- package/.turbo/turbo-build.log +0 -5
- package/TESTING.md +0 -410
- package/TEST_SUMMARY.md +0 -250
- package/TODO.md +0 -128
- package/src/ai-promise-db.ts +0 -1243
- package/src/authorization.ts +0 -1102
- package/src/durable-clickhouse.ts +0 -596
- package/src/durable-promise.ts +0 -582
- package/src/execution-queue.ts +0 -608
- package/src/index.test.ts +0 -868
- package/src/index.ts +0 -337
- package/src/linguistic.ts +0 -404
- package/src/memory-provider.test.ts +0 -1036
- package/src/memory-provider.ts +0 -1119
- package/src/schema.test.ts +0 -1254
- package/src/schema.ts +0 -2296
- package/src/tests.ts +0 -725
- package/src/types.ts +0 -1177
- package/test/README.md +0 -153
- package/test/edge-cases.test.ts +0 -646
- package/test/provider-resolution.test.ts +0 -402
- package/tsconfig.json +0 -9
- package/vitest.config.ts +0 -19
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/schema/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Provider Interface and Resolution
|
|
3
|
+
*
|
|
4
|
+
* Contains the DBProvider interface and provider resolution logic.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import type { ListOptions, SearchOptions, SemanticSearchOptions, HybridSearchOptions, DBEvent, DBAction, DBArtifact, CreateEventOptions, CreateActionOptions, EmbeddingsConfig } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Semantic search result with score
|
|
11
|
+
*/
|
|
12
|
+
export interface SemanticSearchResult {
|
|
13
|
+
$id: string;
|
|
14
|
+
$type: string;
|
|
15
|
+
$score: number;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Hybrid search result with RRF and component scores
|
|
20
|
+
*/
|
|
21
|
+
export interface HybridSearchResult extends SemanticSearchResult {
|
|
22
|
+
$rrfScore: number;
|
|
23
|
+
$ftsRank: number;
|
|
24
|
+
$semanticRank: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Database provider interface that adapters must implement
|
|
28
|
+
*/
|
|
29
|
+
export interface DBProvider {
|
|
30
|
+
/** Get an entity */
|
|
31
|
+
get(type: string, id: string): Promise<Record<string, unknown> | null>;
|
|
32
|
+
/** List entities */
|
|
33
|
+
list(type: string, options?: ListOptions): Promise<Record<string, unknown>[]>;
|
|
34
|
+
/** Search entities */
|
|
35
|
+
search(type: string, query: string, options?: SearchOptions): Promise<Record<string, unknown>[]>;
|
|
36
|
+
/** Create an entity */
|
|
37
|
+
create(type: string, id: string | undefined, data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
38
|
+
/** Update an entity */
|
|
39
|
+
update(type: string, id: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
40
|
+
/** Delete an entity */
|
|
41
|
+
delete(type: string, id: string): Promise<boolean>;
|
|
42
|
+
/** Get related entities */
|
|
43
|
+
related(type: string, id: string, relation: string): Promise<Record<string, unknown>[]>;
|
|
44
|
+
/** Create a relationship */
|
|
45
|
+
relate(fromType: string, fromId: string, relation: string, toType: string, toId: string, metadata?: {
|
|
46
|
+
matchMode?: 'exact' | 'fuzzy';
|
|
47
|
+
similarity?: number;
|
|
48
|
+
}): Promise<void>;
|
|
49
|
+
/** Remove a relationship */
|
|
50
|
+
unrelate(fromType: string, fromId: string, relation: string, toType: string, toId: string): Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Extended provider interface with semantic search, events, actions, and artifacts
|
|
54
|
+
*
|
|
55
|
+
* Providers that support advanced features implement this interface.
|
|
56
|
+
* Use type guards like `'semanticSearch' in provider` to check for support.
|
|
57
|
+
*/
|
|
58
|
+
export interface DBProviderExtended extends DBProvider {
|
|
59
|
+
/** Configure embeddings for auto-generation */
|
|
60
|
+
setEmbeddingsConfig(config: EmbeddingsConfig): void;
|
|
61
|
+
/** Semantic search using vector similarity */
|
|
62
|
+
semanticSearch(type: string, query: string, options?: SemanticSearchOptions): Promise<SemanticSearchResult[]>;
|
|
63
|
+
/** Hybrid search combining FTS and semantic */
|
|
64
|
+
hybridSearch(type: string, query: string, options?: HybridSearchOptions): Promise<HybridSearchResult[]>;
|
|
65
|
+
/** Subscribe to events matching a pattern */
|
|
66
|
+
on(pattern: string, handler: (event: DBEvent) => void | Promise<void>): () => void;
|
|
67
|
+
/** Emit an event */
|
|
68
|
+
emit(options: CreateEventOptions): Promise<DBEvent>;
|
|
69
|
+
emit(type: string, data: unknown): Promise<DBEvent>;
|
|
70
|
+
/** List events */
|
|
71
|
+
listEvents(options?: {
|
|
72
|
+
event?: string;
|
|
73
|
+
actor?: string;
|
|
74
|
+
object?: string;
|
|
75
|
+
since?: Date;
|
|
76
|
+
until?: Date;
|
|
77
|
+
limit?: number;
|
|
78
|
+
}): Promise<DBEvent[]>;
|
|
79
|
+
/** Replay events through a handler */
|
|
80
|
+
replayEvents(options: {
|
|
81
|
+
event?: string;
|
|
82
|
+
actor?: string;
|
|
83
|
+
since?: Date;
|
|
84
|
+
handler: (event: DBEvent) => void | Promise<void>;
|
|
85
|
+
}): Promise<void>;
|
|
86
|
+
/** Create a new action */
|
|
87
|
+
createAction(options: CreateActionOptions | {
|
|
88
|
+
type: string;
|
|
89
|
+
data: unknown;
|
|
90
|
+
total?: number;
|
|
91
|
+
}): Promise<DBAction>;
|
|
92
|
+
/** Get an action by ID */
|
|
93
|
+
getAction(id: string): Promise<DBAction | null>;
|
|
94
|
+
/** Update an action */
|
|
95
|
+
updateAction(id: string, updates: Partial<Pick<DBAction, 'status' | 'progress' | 'result' | 'error'>>): Promise<DBAction>;
|
|
96
|
+
/** List actions */
|
|
97
|
+
listActions(options?: {
|
|
98
|
+
status?: DBAction['status'];
|
|
99
|
+
action?: string;
|
|
100
|
+
actor?: string;
|
|
101
|
+
object?: string;
|
|
102
|
+
since?: Date;
|
|
103
|
+
until?: Date;
|
|
104
|
+
limit?: number;
|
|
105
|
+
}): Promise<DBAction[]>;
|
|
106
|
+
/** Retry a failed action */
|
|
107
|
+
retryAction(id: string): Promise<DBAction>;
|
|
108
|
+
/** Cancel an action */
|
|
109
|
+
cancelAction(id: string): Promise<void>;
|
|
110
|
+
/** Get an artifact */
|
|
111
|
+
getArtifact(url: string, type: string): Promise<DBArtifact | null>;
|
|
112
|
+
/** Set an artifact */
|
|
113
|
+
setArtifact(url: string, type: string, data: {
|
|
114
|
+
content: unknown;
|
|
115
|
+
sourceHash: string;
|
|
116
|
+
metadata?: Record<string, unknown>;
|
|
117
|
+
}): Promise<void>;
|
|
118
|
+
/** Delete an artifact */
|
|
119
|
+
deleteArtifact(url: string, type?: string): Promise<void>;
|
|
120
|
+
/** List artifacts for a URL */
|
|
121
|
+
listArtifacts(url: string): Promise<DBArtifact[]>;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Type guard to check if provider has semantic search
|
|
125
|
+
*/
|
|
126
|
+
export declare function hasSemanticSearch(provider: DBProvider): provider is DBProvider & Pick<DBProviderExtended, 'semanticSearch'>;
|
|
127
|
+
/**
|
|
128
|
+
* Type guard to check if provider has hybrid search
|
|
129
|
+
*/
|
|
130
|
+
export declare function hasHybridSearch(provider: DBProvider): provider is DBProvider & Pick<DBProviderExtended, 'hybridSearch'>;
|
|
131
|
+
/**
|
|
132
|
+
* Type guard to check if provider has events API
|
|
133
|
+
*/
|
|
134
|
+
export declare function hasEventsAPI(provider: DBProvider): provider is DBProvider & Pick<DBProviderExtended, 'on' | 'emit' | 'listEvents' | 'replayEvents'>;
|
|
135
|
+
/**
|
|
136
|
+
* Type guard to check if provider has actions API
|
|
137
|
+
*/
|
|
138
|
+
export declare function hasActionsAPI(provider: DBProvider): provider is DBProvider & Pick<DBProviderExtended, 'createAction' | 'getAction' | 'updateAction' | 'listActions' | 'retryAction' | 'cancelAction'>;
|
|
139
|
+
/**
|
|
140
|
+
* Type guard to check if provider has artifacts API
|
|
141
|
+
*/
|
|
142
|
+
export declare function hasArtifactsAPI(provider: DBProvider): provider is DBProvider & Pick<DBProviderExtended, 'getArtifact' | 'setArtifact' | 'deleteArtifact' | 'listArtifacts'>;
|
|
143
|
+
/**
|
|
144
|
+
* Type guard to check if provider has embeddings config
|
|
145
|
+
*/
|
|
146
|
+
export declare function hasEmbeddingsConfig(provider: DBProvider): provider is DBProvider & Pick<DBProviderExtended, 'setEmbeddingsConfig'>;
|
|
147
|
+
/**
|
|
148
|
+
* Set the global database provider
|
|
149
|
+
*/
|
|
150
|
+
export declare function setProvider(provider: DBProvider): void;
|
|
151
|
+
/**
|
|
152
|
+
* Resolve provider from DATABASE_URL environment variable
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```bash
|
|
156
|
+
* # Filesystem (default) - stores in ./content with .db/ metadata
|
|
157
|
+
* DATABASE_URL=./content
|
|
158
|
+
*
|
|
159
|
+
* # Local SQLite - stores in ./content/.db/index.sqlite
|
|
160
|
+
* DATABASE_URL=sqlite://./content
|
|
161
|
+
*
|
|
162
|
+
* # Remote Turso
|
|
163
|
+
* DATABASE_URL=libsql://your-db.turso.io
|
|
164
|
+
*
|
|
165
|
+
* # Local ClickHouse (chDB) - stores in ./content/.db/clickhouse/
|
|
166
|
+
* DATABASE_URL=chdb://./content
|
|
167
|
+
*
|
|
168
|
+
* # Remote ClickHouse
|
|
169
|
+
* DATABASE_URL=clickhouse://localhost:8123
|
|
170
|
+
*
|
|
171
|
+
* # In-memory (testing)
|
|
172
|
+
* DATABASE_URL=:memory:
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
export declare function resolveProvider(): Promise<DBProvider>;
|
|
176
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/schema/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,EACP,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAOnB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IAEtE,oBAAoB;IACpB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAE7E,sBAAsB;IACtB,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAErC,uBAAuB;IACvB,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAEnC,uBAAuB;IACvB,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAEnC,uBAAuB;IACvB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAElD,2BAA2B;IAC3B,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAErC,4BAA4B;IAC5B,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChE,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhB,4BAA4B;IAC5B,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,+CAA+C;IAC/C,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAEnD,8CAA8C;IAC9C,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAElC,+CAA+C;IAC/C,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAA;IAGhC,6CAA6C;IAC7C,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAA;IAClF,oBAAoB;IACpB,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnD,kBAAkB;IAClB,UAAU,CAAC,OAAO,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,IAAI,CAAA;QACZ,KAAK,CAAC,EAAE,IAAI,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACtB,sCAAsC;IACtC,YAAY,CAAC,OAAO,EAAE;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,IAAI,CAAA;QACZ,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAClD,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGjB,0BAA0B;IAC1B,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/G,0BAA0B;IAC1B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC/C,uBAAuB;IACvB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzH,mBAAmB;IACnB,WAAW,CAAC,OAAO,CAAC,EAAE;QACpB,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,IAAI,CAAA;QACZ,KAAK,CAAC,EAAE,IAAI,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC1C,uBAAuB;IACvB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGvC,sBAAsB;IACtB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAClE,sBAAsB;IACtB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzI,yBAAyB;IACzB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,+BAA+B;IAC/B,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAE3H;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAEvH;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,UAAU,GAAG,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,cAAc,CAAC,CAEnJ;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,UAAU,GAAG,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC,CAErM;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,eAAe,CAAC,CAE3K;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAElI;AAYD;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAKtD;AA6DD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CAoG3D"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Provider Interface and Resolution
|
|
3
|
+
*
|
|
4
|
+
* Contains the DBProvider interface and provider resolution logic.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import { setProviderResolver } from '../ai-promise-db.js';
|
|
9
|
+
/**
|
|
10
|
+
* Type guard to check if provider has semantic search
|
|
11
|
+
*/
|
|
12
|
+
export function hasSemanticSearch(provider) {
|
|
13
|
+
return 'semanticSearch' in provider;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Type guard to check if provider has hybrid search
|
|
17
|
+
*/
|
|
18
|
+
export function hasHybridSearch(provider) {
|
|
19
|
+
return 'hybridSearch' in provider;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Type guard to check if provider has events API
|
|
23
|
+
*/
|
|
24
|
+
export function hasEventsAPI(provider) {
|
|
25
|
+
return 'on' in provider && 'emit' in provider;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Type guard to check if provider has actions API
|
|
29
|
+
*/
|
|
30
|
+
export function hasActionsAPI(provider) {
|
|
31
|
+
return 'createAction' in provider && 'getAction' in provider;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Type guard to check if provider has artifacts API
|
|
35
|
+
*/
|
|
36
|
+
export function hasArtifactsAPI(provider) {
|
|
37
|
+
return 'getArtifact' in provider && 'setArtifact' in provider;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Type guard to check if provider has embeddings config
|
|
41
|
+
*/
|
|
42
|
+
export function hasEmbeddingsConfig(provider) {
|
|
43
|
+
return 'setEmbeddingsConfig' in provider;
|
|
44
|
+
}
|
|
45
|
+
// =============================================================================
|
|
46
|
+
// Provider Resolution
|
|
47
|
+
// =============================================================================
|
|
48
|
+
let globalProvider = null;
|
|
49
|
+
let providerPromise = null;
|
|
50
|
+
/** File count threshold for suggesting ClickHouse upgrade */
|
|
51
|
+
const FILE_COUNT_THRESHOLD = 10_000;
|
|
52
|
+
/**
|
|
53
|
+
* Set the global database provider
|
|
54
|
+
*/
|
|
55
|
+
export function setProvider(provider) {
|
|
56
|
+
globalProvider = provider;
|
|
57
|
+
providerPromise = null;
|
|
58
|
+
// Also update the ai-promise-db module's provider resolver
|
|
59
|
+
setProviderResolver(() => Promise.resolve(provider));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Parse DATABASE_URL into provider type and paths
|
|
63
|
+
*
|
|
64
|
+
* Local storage (all use .db/ folder):
|
|
65
|
+
* - `./content` => fs (default)
|
|
66
|
+
* - `sqlite://./content` => sqlite stored in ./content/.db/index.sqlite
|
|
67
|
+
* - `chdb://./content` => clickhouse stored in ./content/.db/clickhouse/
|
|
68
|
+
*
|
|
69
|
+
* Remote:
|
|
70
|
+
* - `libsql://your-db.turso.io` => Turso SQLite
|
|
71
|
+
* - `clickhouse://host:8123` => ClickHouse HTTP
|
|
72
|
+
* - `:memory:` => in-memory
|
|
73
|
+
*/
|
|
74
|
+
function parseDatabaseUrl(url) {
|
|
75
|
+
if (!url)
|
|
76
|
+
return { provider: 'fs', root: './content' };
|
|
77
|
+
// In-memory
|
|
78
|
+
if (url === ':memory:') {
|
|
79
|
+
return { provider: 'memory', root: '' };
|
|
80
|
+
}
|
|
81
|
+
// Remote Turso
|
|
82
|
+
if (url.startsWith('libsql://') || url.includes('.turso.io')) {
|
|
83
|
+
return { provider: 'sqlite', root: '', remoteUrl: url };
|
|
84
|
+
}
|
|
85
|
+
// Remote ClickHouse
|
|
86
|
+
if (url.startsWith('clickhouse://') && url.includes(':')) {
|
|
87
|
+
// clickhouse://host:port/db
|
|
88
|
+
return { provider: 'clickhouse', root: '', remoteUrl: url.replace('clickhouse://', 'https://') };
|
|
89
|
+
}
|
|
90
|
+
// Local SQLite: sqlite://./content => ./content/.db/index.sqlite
|
|
91
|
+
if (url.startsWith('sqlite://')) {
|
|
92
|
+
const root = url.replace('sqlite://', '') || './content';
|
|
93
|
+
return { provider: 'sqlite', root };
|
|
94
|
+
}
|
|
95
|
+
// Local ClickHouse (chDB): chdb://./content => ./content/.db/clickhouse/
|
|
96
|
+
if (url.startsWith('chdb://')) {
|
|
97
|
+
const root = url.replace('chdb://', '') || './content';
|
|
98
|
+
return { provider: 'clickhouse', root };
|
|
99
|
+
}
|
|
100
|
+
// Default: filesystem
|
|
101
|
+
return { provider: 'fs', root: url };
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Resolve provider from DATABASE_URL environment variable
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```bash
|
|
108
|
+
* # Filesystem (default) - stores in ./content with .db/ metadata
|
|
109
|
+
* DATABASE_URL=./content
|
|
110
|
+
*
|
|
111
|
+
* # Local SQLite - stores in ./content/.db/index.sqlite
|
|
112
|
+
* DATABASE_URL=sqlite://./content
|
|
113
|
+
*
|
|
114
|
+
* # Remote Turso
|
|
115
|
+
* DATABASE_URL=libsql://your-db.turso.io
|
|
116
|
+
*
|
|
117
|
+
* # Local ClickHouse (chDB) - stores in ./content/.db/clickhouse/
|
|
118
|
+
* DATABASE_URL=chdb://./content
|
|
119
|
+
*
|
|
120
|
+
* # Remote ClickHouse
|
|
121
|
+
* DATABASE_URL=clickhouse://localhost:8123
|
|
122
|
+
*
|
|
123
|
+
* # In-memory (testing)
|
|
124
|
+
* DATABASE_URL=:memory:
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export async function resolveProvider() {
|
|
128
|
+
if (globalProvider)
|
|
129
|
+
return globalProvider;
|
|
130
|
+
if (providerPromise)
|
|
131
|
+
return providerPromise;
|
|
132
|
+
providerPromise = (async () => {
|
|
133
|
+
const databaseUrl = (typeof process !== 'undefined' && process.env?.DATABASE_URL) || './content';
|
|
134
|
+
const parsed = parseDatabaseUrl(databaseUrl);
|
|
135
|
+
switch (parsed.provider) {
|
|
136
|
+
case 'memory': {
|
|
137
|
+
const { createMemoryProvider } = await import('../memory-provider.js');
|
|
138
|
+
globalProvider = createMemoryProvider();
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
case 'fs': {
|
|
142
|
+
try {
|
|
143
|
+
// `as any` cast required: @mdxdb/fs is an optional external package
|
|
144
|
+
// that may or may not have TypeScript declarations available
|
|
145
|
+
const { createFsProvider } = await import('@mdxdb/fs');
|
|
146
|
+
globalProvider = createFsProvider({ root: parsed.root });
|
|
147
|
+
// Check file count and warn if approaching threshold
|
|
148
|
+
checkFileCountThreshold(parsed.root);
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
console.warn('@mdxdb/fs not available, falling back to memory provider');
|
|
152
|
+
const { createMemoryProvider } = await import('../memory-provider.js');
|
|
153
|
+
globalProvider = createMemoryProvider();
|
|
154
|
+
}
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
case 'sqlite': {
|
|
158
|
+
try {
|
|
159
|
+
// `as any` cast required: @mdxdb/sqlite is an optional external package
|
|
160
|
+
// that may or may not have TypeScript declarations available
|
|
161
|
+
const { createSqliteProvider } = await import('@mdxdb/sqlite');
|
|
162
|
+
if (parsed.remoteUrl) {
|
|
163
|
+
// Remote Turso
|
|
164
|
+
globalProvider = await createSqliteProvider({ url: parsed.remoteUrl });
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
// Local SQLite in .db folder
|
|
168
|
+
const dbPath = `${parsed.root}/.db/index.sqlite`;
|
|
169
|
+
globalProvider = await createSqliteProvider({ url: `file:${dbPath}` });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
console.warn('@mdxdb/sqlite not available, falling back to memory provider');
|
|
174
|
+
const { createMemoryProvider } = await import('../memory-provider.js');
|
|
175
|
+
globalProvider = createMemoryProvider();
|
|
176
|
+
}
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case 'clickhouse': {
|
|
180
|
+
try {
|
|
181
|
+
// `as any` cast required: @mdxdb/clickhouse is an optional external package
|
|
182
|
+
// that may or may not have TypeScript declarations available
|
|
183
|
+
const { createClickhouseProvider } = await import('@mdxdb/clickhouse');
|
|
184
|
+
if (parsed.remoteUrl) {
|
|
185
|
+
// Remote ClickHouse
|
|
186
|
+
globalProvider = await createClickhouseProvider({
|
|
187
|
+
mode: 'http',
|
|
188
|
+
url: parsed.remoteUrl,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
// Local chDB in .db folder
|
|
193
|
+
const dbPath = `${parsed.root}/.db/clickhouse`;
|
|
194
|
+
globalProvider = await createClickhouseProvider({
|
|
195
|
+
mode: 'chdb',
|
|
196
|
+
url: dbPath,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
console.warn('@mdxdb/clickhouse not available, falling back to memory provider');
|
|
202
|
+
const { createMemoryProvider } = await import('../memory-provider.js');
|
|
203
|
+
globalProvider = createMemoryProvider();
|
|
204
|
+
}
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
default: {
|
|
208
|
+
const { createMemoryProvider } = await import('../memory-provider.js');
|
|
209
|
+
globalProvider = createMemoryProvider();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// Update the ai-promise-db module's provider resolver
|
|
213
|
+
if (globalProvider) {
|
|
214
|
+
setProviderResolver(() => Promise.resolve(globalProvider));
|
|
215
|
+
}
|
|
216
|
+
return globalProvider;
|
|
217
|
+
})();
|
|
218
|
+
return providerPromise;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Check file count and warn if approaching threshold
|
|
222
|
+
*/
|
|
223
|
+
async function checkFileCountThreshold(root) {
|
|
224
|
+
try {
|
|
225
|
+
const fs = await import('node:fs/promises');
|
|
226
|
+
const path = await import('node:path');
|
|
227
|
+
async function countFiles(dir) {
|
|
228
|
+
let count = 0;
|
|
229
|
+
try {
|
|
230
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
231
|
+
for (const entry of entries) {
|
|
232
|
+
if (entry.name.startsWith('.'))
|
|
233
|
+
continue;
|
|
234
|
+
if (entry.isDirectory()) {
|
|
235
|
+
count += await countFiles(path.join(dir, entry.name));
|
|
236
|
+
}
|
|
237
|
+
else if (entry.name.endsWith('.mdx') || entry.name.endsWith('.md')) {
|
|
238
|
+
count++;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
// Directory doesn't exist yet
|
|
244
|
+
}
|
|
245
|
+
return count;
|
|
246
|
+
}
|
|
247
|
+
const count = await countFiles(root);
|
|
248
|
+
if (count > FILE_COUNT_THRESHOLD) {
|
|
249
|
+
console.warn(`\n You have ${count.toLocaleString()} MDX files. ` +
|
|
250
|
+
`Consider upgrading to ClickHouse for better performance:\n` +
|
|
251
|
+
` DATABASE_URL=chdb://./data/clickhouse\n`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
// Ignore errors in file counting
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/schema/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reference Resolution Functions
|
|
3
|
+
*
|
|
4
|
+
* Contains forward/backward resolution functions for relationships,
|
|
5
|
+
* context resolution, and entity hydration.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { ParsedField, ParsedEntity, ParsedSchema } from '../types.js';
|
|
10
|
+
import type { DBProvider } from './provider.js';
|
|
11
|
+
import type { ReferenceSpec } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Check if a string looks like an entity ID (UUID format or type-prefixed)
|
|
14
|
+
*/
|
|
15
|
+
export declare function isEntityId(value: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Infer the entity type from a field name using schema relationships
|
|
18
|
+
*/
|
|
19
|
+
export declare function inferTypeFromField(fieldName: string, entity: ParsedEntity, schema: ParsedSchema): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a context path like "task.occupation.industry.name" against an entity
|
|
22
|
+
*
|
|
23
|
+
* This traverses relationships and fetches related entities as needed.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveContextPath(path: string, entity: Record<string, unknown>, currentTypeName: string, schema: ParsedSchema, provider: DBProvider): Promise<unknown>;
|
|
26
|
+
/**
|
|
27
|
+
* Resolve template variables in $instructions
|
|
28
|
+
*
|
|
29
|
+
* Template variables use the syntax {path.to.field} where the path
|
|
30
|
+
* can traverse relationships (e.g., {task.occupation.title})
|
|
31
|
+
*
|
|
32
|
+
* @param instructions - The instruction string with template variables
|
|
33
|
+
* @param entity - The current entity data
|
|
34
|
+
* @param typeName - The current entity type name
|
|
35
|
+
* @param schema - The parsed schema
|
|
36
|
+
* @param provider - The database provider for fetching related entities
|
|
37
|
+
* @returns The instructions with all template variables resolved
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveInstructions(instructions: string, entity: Record<string, unknown>, typeName: string, schema: ParsedSchema, provider: DBProvider): Promise<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Pre-fetch context dependencies declared in $context
|
|
42
|
+
*
|
|
43
|
+
* The $context field declares explicit context dependencies that should
|
|
44
|
+
* be pre-fetched before generating AI fields. This ensures all referenced
|
|
45
|
+
* entities are available for template variable resolution.
|
|
46
|
+
*
|
|
47
|
+
* @param contextDeps - Array of context dependency types (e.g., ['Startup', 'ICP'])
|
|
48
|
+
* @param entity - The current entity data
|
|
49
|
+
* @param typeName - The current entity type name
|
|
50
|
+
* @param schema - The parsed schema
|
|
51
|
+
* @param provider - The database provider for fetching related entities
|
|
52
|
+
* @returns Map of context name to fetched entity data
|
|
53
|
+
*/
|
|
54
|
+
export declare function prefetchContext(contextDeps: string[], entity: Record<string, unknown>, typeName: string, schema: ParsedSchema, provider: DBProvider): Promise<Map<string, Record<string, unknown>>>;
|
|
55
|
+
/**
|
|
56
|
+
* Check if a field type is a prompt (contains spaces, indicating AI generation)
|
|
57
|
+
*/
|
|
58
|
+
export declare function isPromptField(field: ParsedField): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Resolve pending nested relations in generated data
|
|
61
|
+
*
|
|
62
|
+
* When generateEntity encounters nested -> relations, it stores them as
|
|
63
|
+
* _pending_fieldName entries. This function creates those entities and
|
|
64
|
+
* replaces the pending entries with actual IDs.
|
|
65
|
+
*/
|
|
66
|
+
export declare function resolveNestedPending(data: Record<string, unknown>, entity: ParsedEntity, schema: ParsedSchema, provider: DBProvider): Promise<Record<string, unknown>>;
|
|
67
|
+
/**
|
|
68
|
+
* Resolve a single reference specification to an entity ID
|
|
69
|
+
*
|
|
70
|
+
* For exact matches (-> and <-), creates new entities.
|
|
71
|
+
* For fuzzy matches (~> and <~), searches for existing entities first.
|
|
72
|
+
*/
|
|
73
|
+
export declare function resolveReferenceSpec(spec: ReferenceSpec, contextData: Record<string, unknown>, schema: ParsedSchema, provider: DBProvider, generateContextAwareValue: (fieldName: string, type: string, fullContext: string, hint: string | undefined, parentData: Record<string, unknown>) => string): Promise<string | null>;
|
|
74
|
+
/**
|
|
75
|
+
* Hydrate an entity with lazy-loaded relations
|
|
76
|
+
*
|
|
77
|
+
* For backward edges (direction === 'backward'), we query for entities
|
|
78
|
+
* of the related type that have a reference pointing TO this entity.
|
|
79
|
+
* This enables reverse lookups like "get all comments for a post".
|
|
80
|
+
*
|
|
81
|
+
* Backward reference resolution:
|
|
82
|
+
* - Single backward ref with stored ID: resolve directly (e.g., member.team = teamId -> get Team by ID)
|
|
83
|
+
* - Single backward ref without stored ID: find related entity that points to us via relations
|
|
84
|
+
* - Array backward ref: find all entities of related type where their forward ref points to us
|
|
85
|
+
*/
|
|
86
|
+
export declare function hydrateEntity(data: Record<string, unknown>, entity: ParsedEntity, schema: ParsedSchema, resolveProvider: () => Promise<DBProvider>): Record<string, unknown>;
|
|
87
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/schema/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EAEb,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAA;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAO/C;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOjD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAcpH;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,OAAO,CAAC,CAqClB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAsC/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAIzD;AAMD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoBlC;AAMD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,UAAU,EACpB,yBAAyB,EAAE,CACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAChC,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyExB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoNzB"}
|