aifastdb 0.2.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/aidb.win32-x64-msvc.node +0 -0
- package/aifastdb.win32-x64-msvc.node +0 -0
- package/dist/client.d.ts +140 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +270 -0
- package/dist/client.js.map +1 -0
- package/dist/connectme-adapter.d.ts +76 -0
- package/dist/connectme-adapter.d.ts.map +1 -0
- package/dist/connectme-adapter.js +456 -0
- package/dist/connectme-adapter.js.map +1 -0
- package/dist/family-tree.d.ts +482 -0
- package/dist/family-tree.d.ts.map +1 -0
- package/dist/family-tree.js +676 -0
- package/dist/family-tree.js.map +1 -0
- package/dist/family-types.d.ts +228 -0
- package/dist/family-types.d.ts.map +1 -0
- package/dist/family-types.js +108 -0
- package/dist/family-types.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/index.js.map +1 -0
- package/dist/memory-manager.d.ts +82 -0
- package/dist/memory-manager.d.ts.map +1 -0
- package/dist/memory-manager.js +273 -0
- package/dist/memory-manager.js.map +1 -0
- package/dist/native.d.ts +352 -0
- package/dist/native.d.ts.map +1 -0
- package/dist/native.js +35 -0
- package/dist/native.js.map +1 -0
- package/dist/query-builder.d.ts +143 -0
- package/dist/query-builder.d.ts.map +1 -0
- package/dist/query-builder.js +240 -0
- package/dist/query-builder.js.map +1 -0
- package/dist/social-graph.d.ts +392 -0
- package/dist/social-graph.d.ts.map +1 -0
- package/dist/social-graph.js +545 -0
- package/dist/social-graph.js.map +1 -0
- package/dist/social-types.d.ts +379 -0
- package/dist/social-types.d.ts.map +1 -0
- package/dist/social-types.js +34 -0
- package/dist/social-types.js.map +1 -0
- package/dist/types.d.ts +475 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +161 -0
- package/dist/types.js.map +1 -0
- package/dist/vibe-synapse.d.ts +174 -0
- package/dist/vibe-synapse.d.ts.map +1 -0
- package/dist/vibe-synapse.js +509 -0
- package/dist/vibe-synapse.js.map +1 -0
- package/package.json +61 -0
- package/vibebase.node +0 -0
- package/vibebase.win32-x64-msvc.node +0 -0
|
Binary file
|
|
Binary file
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level AiFastDb Client
|
|
3
|
+
*
|
|
4
|
+
* Provides a convenient wrapper around the native AiFastDb with:
|
|
5
|
+
* - Automatic embedding generation
|
|
6
|
+
* - OpenAI integration
|
|
7
|
+
* - Simplified API
|
|
8
|
+
*/
|
|
9
|
+
import type { IAiFastDb, AiFastDbConfig, MemoryInput, MemoryNode, QueryOptions, SearchResult, PreparedContext } from './native';
|
|
10
|
+
import { QueryBuilder } from './query-builder';
|
|
11
|
+
import { MemoryManager, MemoryManagerConfig } from './memory-manager';
|
|
12
|
+
import type { EmbeddingProvider, OpenAIEmbeddingConfig } from './types';
|
|
13
|
+
/**
|
|
14
|
+
* AiFastDb Client configuration
|
|
15
|
+
*/
|
|
16
|
+
export interface AiFastDbClientConfig extends AiFastDbConfig {
|
|
17
|
+
/** OpenAI configuration for embeddings */
|
|
18
|
+
openai?: OpenAIEmbeddingConfig;
|
|
19
|
+
/** Custom embedding provider */
|
|
20
|
+
embeddingProvider?: EmbeddingProvider;
|
|
21
|
+
/** Memory manager configuration */
|
|
22
|
+
memoryManager?: MemoryManagerConfig;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* High-level AiFastDb Client
|
|
26
|
+
*/
|
|
27
|
+
export declare class AiFastDbClient {
|
|
28
|
+
private config;
|
|
29
|
+
private db;
|
|
30
|
+
private embeddingProvider?;
|
|
31
|
+
private memoryManager;
|
|
32
|
+
private initialized;
|
|
33
|
+
private initPromise?;
|
|
34
|
+
constructor(config: AiFastDbClientConfig);
|
|
35
|
+
/**
|
|
36
|
+
* Initialize the client (called automatically)
|
|
37
|
+
*/
|
|
38
|
+
private initialize;
|
|
39
|
+
/**
|
|
40
|
+
* Ensure client is initialized
|
|
41
|
+
*/
|
|
42
|
+
private ensureInitialized;
|
|
43
|
+
/**
|
|
44
|
+
* Get the native database instance
|
|
45
|
+
*/
|
|
46
|
+
get native(): IAiFastDb;
|
|
47
|
+
/**
|
|
48
|
+
* Get the memory manager
|
|
49
|
+
*/
|
|
50
|
+
get memory(): MemoryManager;
|
|
51
|
+
/**
|
|
52
|
+
* Get database size
|
|
53
|
+
*/
|
|
54
|
+
get size(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Store a memory with automatic embedding
|
|
57
|
+
*/
|
|
58
|
+
remember(content: string, options?: Partial<MemoryInput>): Promise<MemoryNode>;
|
|
59
|
+
/**
|
|
60
|
+
* Store multiple memories
|
|
61
|
+
*/
|
|
62
|
+
rememberMany(items: Array<{
|
|
63
|
+
content: string;
|
|
64
|
+
options?: Partial<MemoryInput>;
|
|
65
|
+
}>): Promise<MemoryNode[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Recall memories by query
|
|
68
|
+
*/
|
|
69
|
+
recall(query: string, limit?: number): Promise<MemoryNode[]>;
|
|
70
|
+
/**
|
|
71
|
+
* Advanced recall with options
|
|
72
|
+
*/
|
|
73
|
+
recallAdvanced(options: QueryOptions): Promise<SearchResult[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Create a query builder
|
|
76
|
+
*/
|
|
77
|
+
query(): QueryBuilder;
|
|
78
|
+
/**
|
|
79
|
+
* Get a memory by ID
|
|
80
|
+
*/
|
|
81
|
+
get(id: string): MemoryNode | null;
|
|
82
|
+
/**
|
|
83
|
+
* Delete a memory
|
|
84
|
+
*/
|
|
85
|
+
forget(id: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Check if memory exists
|
|
88
|
+
*/
|
|
89
|
+
has(id: string): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Get context for LLM
|
|
92
|
+
*/
|
|
93
|
+
getContext(query: string, maxTokens?: number): Promise<PreparedContext>;
|
|
94
|
+
/**
|
|
95
|
+
* Find memories by tag
|
|
96
|
+
*/
|
|
97
|
+
findByTag(tag: string): MemoryNode[];
|
|
98
|
+
/**
|
|
99
|
+
* Find important memories
|
|
100
|
+
*/
|
|
101
|
+
findImportant(minImportance?: number): MemoryNode[];
|
|
102
|
+
/**
|
|
103
|
+
* Add an entity
|
|
104
|
+
*/
|
|
105
|
+
addEntity(name: string, type: string, properties?: Record<string, unknown>): string;
|
|
106
|
+
/**
|
|
107
|
+
* Add a relation
|
|
108
|
+
*/
|
|
109
|
+
addRelation(source: string, target: string, type: string, weight?: number): string;
|
|
110
|
+
/**
|
|
111
|
+
* Explore the knowledge graph
|
|
112
|
+
*/
|
|
113
|
+
explore(startId: string, maxHops?: number, relationTypes?: string[]): Record<string, unknown>[];
|
|
114
|
+
/**
|
|
115
|
+
* Flush changes to disk
|
|
116
|
+
*/
|
|
117
|
+
flush(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Close the database
|
|
120
|
+
*/
|
|
121
|
+
close(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Prune old memories
|
|
124
|
+
*/
|
|
125
|
+
prune(): number;
|
|
126
|
+
/**
|
|
127
|
+
* Get statistics
|
|
128
|
+
*/
|
|
129
|
+
stats(): {
|
|
130
|
+
totalMemories: number;
|
|
131
|
+
avgImportance: number;
|
|
132
|
+
oldestMemory: number;
|
|
133
|
+
newestMemory: number;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Create a new AiFastDb client
|
|
138
|
+
*/
|
|
139
|
+
export declare function createAiFastDb(config: AiFastDbClientConfig): Promise<AiFastDbClient>;
|
|
140
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../ts/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* High-level AiFastDb Client
|
|
4
|
+
*
|
|
5
|
+
* Provides a convenient wrapper around the native AiFastDb with:
|
|
6
|
+
* - Automatic embedding generation
|
|
7
|
+
* - OpenAI integration
|
|
8
|
+
* - Simplified API
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
+
}) : function(o, v) {
|
|
24
|
+
o["default"] = v;
|
|
25
|
+
});
|
|
26
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
+
var ownKeys = function(o) {
|
|
28
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
+
var ar = [];
|
|
30
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
return ownKeys(o);
|
|
34
|
+
};
|
|
35
|
+
return function (mod) {
|
|
36
|
+
if (mod && mod.__esModule) return mod;
|
|
37
|
+
var result = {};
|
|
38
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
+
__setModuleDefault(result, mod);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
})();
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.AiFastDbClient = void 0;
|
|
45
|
+
exports.createAiFastDb = createAiFastDb;
|
|
46
|
+
const native_1 = require("./native");
|
|
47
|
+
const query_builder_1 = require("./query-builder");
|
|
48
|
+
const memory_manager_1 = require("./memory-manager");
|
|
49
|
+
/**
|
|
50
|
+
* Create an OpenAI embedding provider
|
|
51
|
+
*/
|
|
52
|
+
async function createOpenAIProvider(config) {
|
|
53
|
+
// Dynamic import to avoid requiring openai when not used
|
|
54
|
+
const { default: OpenAI } = await Promise.resolve().then(() => __importStar(require('openai')));
|
|
55
|
+
const client = new OpenAI({
|
|
56
|
+
apiKey: config.apiKey,
|
|
57
|
+
baseURL: config.baseUrl,
|
|
58
|
+
});
|
|
59
|
+
const model = config.model ?? 'text-embedding-ada-002';
|
|
60
|
+
const dimension = model.includes('3-small') ? 1536 :
|
|
61
|
+
model.includes('3-large') ? 3072 : 1536;
|
|
62
|
+
return {
|
|
63
|
+
dimension,
|
|
64
|
+
async embed(text) {
|
|
65
|
+
const response = await client.embeddings.create({
|
|
66
|
+
model,
|
|
67
|
+
input: text,
|
|
68
|
+
});
|
|
69
|
+
return response.data[0].embedding;
|
|
70
|
+
},
|
|
71
|
+
async embedBatch(texts) {
|
|
72
|
+
const response = await client.embeddings.create({
|
|
73
|
+
model,
|
|
74
|
+
input: texts,
|
|
75
|
+
});
|
|
76
|
+
return response.data.map(d => d.embedding);
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* High-level AiFastDb Client
|
|
82
|
+
*/
|
|
83
|
+
class AiFastDbClient {
|
|
84
|
+
constructor(config) {
|
|
85
|
+
this.config = config;
|
|
86
|
+
this.initialized = false;
|
|
87
|
+
this.db = new native_1.AiFastDb({
|
|
88
|
+
path: config.path,
|
|
89
|
+
dimension: config.dimension,
|
|
90
|
+
hnsw: config.hnsw,
|
|
91
|
+
});
|
|
92
|
+
this.memoryManager = new memory_manager_1.MemoryManager(this.db, config.memoryManager);
|
|
93
|
+
// Start async initialization
|
|
94
|
+
this.initPromise = this.initialize();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Initialize the client (called automatically)
|
|
98
|
+
*/
|
|
99
|
+
async initialize() {
|
|
100
|
+
if (this.initialized)
|
|
101
|
+
return;
|
|
102
|
+
// Setup embedding provider
|
|
103
|
+
if (this.config.embeddingProvider) {
|
|
104
|
+
this.embeddingProvider = this.config.embeddingProvider;
|
|
105
|
+
}
|
|
106
|
+
else if (this.config.openai) {
|
|
107
|
+
this.embeddingProvider = await createOpenAIProvider(this.config.openai);
|
|
108
|
+
}
|
|
109
|
+
if (this.embeddingProvider) {
|
|
110
|
+
this.memoryManager.setEmbeddingProvider(this.embeddingProvider);
|
|
111
|
+
}
|
|
112
|
+
this.initialized = true;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Ensure client is initialized
|
|
116
|
+
*/
|
|
117
|
+
async ensureInitialized() {
|
|
118
|
+
if (!this.initialized && this.initPromise) {
|
|
119
|
+
await this.initPromise;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get the native database instance
|
|
124
|
+
*/
|
|
125
|
+
get native() {
|
|
126
|
+
return this.db;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get the memory manager
|
|
130
|
+
*/
|
|
131
|
+
get memory() {
|
|
132
|
+
return this.memoryManager;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get database size
|
|
136
|
+
*/
|
|
137
|
+
get size() {
|
|
138
|
+
return this.db.size;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Store a memory with automatic embedding
|
|
142
|
+
*/
|
|
143
|
+
async remember(content, options) {
|
|
144
|
+
await this.ensureInitialized();
|
|
145
|
+
return this.memoryManager.remember(content, options);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Store multiple memories
|
|
149
|
+
*/
|
|
150
|
+
async rememberMany(items) {
|
|
151
|
+
await this.ensureInitialized();
|
|
152
|
+
return this.memoryManager.rememberMany(items);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Recall memories by query
|
|
156
|
+
*/
|
|
157
|
+
async recall(query, limit) {
|
|
158
|
+
await this.ensureInitialized();
|
|
159
|
+
return this.memoryManager.recall(query, limit);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Advanced recall with options
|
|
163
|
+
*/
|
|
164
|
+
async recallAdvanced(options) {
|
|
165
|
+
await this.ensureInitialized();
|
|
166
|
+
// Auto-embed query text if needed
|
|
167
|
+
if (options.query && this.embeddingProvider && !options.vector) {
|
|
168
|
+
options.vector = await this.embeddingProvider.embed(options.query);
|
|
169
|
+
}
|
|
170
|
+
return this.db.recall(options);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Create a query builder
|
|
174
|
+
*/
|
|
175
|
+
query() {
|
|
176
|
+
return new query_builder_1.QueryBuilder(this.db);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get a memory by ID
|
|
180
|
+
*/
|
|
181
|
+
get(id) {
|
|
182
|
+
return this.db.get(id);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Delete a memory
|
|
186
|
+
*/
|
|
187
|
+
forget(id) {
|
|
188
|
+
return this.db.forget(id);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Check if memory exists
|
|
192
|
+
*/
|
|
193
|
+
has(id) {
|
|
194
|
+
return this.db.has(id);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Get context for LLM
|
|
198
|
+
*/
|
|
199
|
+
async getContext(query, maxTokens) {
|
|
200
|
+
await this.ensureInitialized();
|
|
201
|
+
return this.memoryManager.getContext(query, maxTokens);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Find memories by tag
|
|
205
|
+
*/
|
|
206
|
+
findByTag(tag) {
|
|
207
|
+
return this.db.findByTag(tag);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Find important memories
|
|
211
|
+
*/
|
|
212
|
+
findImportant(minImportance = 0.7) {
|
|
213
|
+
return this.db.findImportant(minImportance);
|
|
214
|
+
}
|
|
215
|
+
// === Knowledge Graph ===
|
|
216
|
+
/**
|
|
217
|
+
* Add an entity
|
|
218
|
+
*/
|
|
219
|
+
addEntity(name, type, properties) {
|
|
220
|
+
return this.db.addEntity(name, type, properties);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Add a relation
|
|
224
|
+
*/
|
|
225
|
+
addRelation(source, target, type, weight) {
|
|
226
|
+
return this.db.addRelation(source, target, type, weight);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Explore the knowledge graph
|
|
230
|
+
*/
|
|
231
|
+
explore(startId, maxHops, relationTypes) {
|
|
232
|
+
return this.db.explore(startId, maxHops, relationTypes);
|
|
233
|
+
}
|
|
234
|
+
// === Lifecycle ===
|
|
235
|
+
/**
|
|
236
|
+
* Flush changes to disk
|
|
237
|
+
*/
|
|
238
|
+
flush() {
|
|
239
|
+
this.db.flush();
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Close the database
|
|
243
|
+
*/
|
|
244
|
+
close() {
|
|
245
|
+
this.db.close();
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Prune old memories
|
|
249
|
+
*/
|
|
250
|
+
prune() {
|
|
251
|
+
return this.memoryManager.prune();
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Get statistics
|
|
255
|
+
*/
|
|
256
|
+
stats() {
|
|
257
|
+
return this.memoryManager.stats();
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
exports.AiFastDbClient = AiFastDbClient;
|
|
261
|
+
/**
|
|
262
|
+
* Create a new AiFastDb client
|
|
263
|
+
*/
|
|
264
|
+
async function createAiFastDb(config) {
|
|
265
|
+
const client = new AiFastDbClient(config);
|
|
266
|
+
// Wait for initialization
|
|
267
|
+
await client.initPromise;
|
|
268
|
+
return client;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../ts/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConnectMeAdapter - Data adapter for connectMeTrae2 format
|
|
3
|
+
*
|
|
4
|
+
* Provides import/export functionality between connectMeTrae2 JSON format
|
|
5
|
+
* and AiFastDb's social graph.
|
|
6
|
+
*/
|
|
7
|
+
import type { SocialGraph } from './social-graph';
|
|
8
|
+
import type { ConnectMeData, ImportResult, ExportOptions } from './social-types';
|
|
9
|
+
/**
|
|
10
|
+
* ConnectMeAdapter converts between connectMeTrae2 format and AiFastDb social graph.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { AiFastDb, SocialGraph, ConnectMeAdapter } from 'aifastdb';
|
|
15
|
+
* import * as fs from 'fs';
|
|
16
|
+
*
|
|
17
|
+
* const db = new AiFastDb({ path: './data', dimension: 768 });
|
|
18
|
+
* const social = new SocialGraph(db);
|
|
19
|
+
* const adapter = new ConnectMeAdapter(social);
|
|
20
|
+
*
|
|
21
|
+
* // Import from connectMeTrae2 format
|
|
22
|
+
* const data = {
|
|
23
|
+
* persons: JSON.parse(fs.readFileSync('persons.json', 'utf-8')),
|
|
24
|
+
* tags: JSON.parse(fs.readFileSync('tags.json', 'utf-8')),
|
|
25
|
+
* };
|
|
26
|
+
*
|
|
27
|
+
* const result = await adapter.import(data);
|
|
28
|
+
* console.log(`Imported ${result.persons.created} persons`);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare class ConnectMeAdapter {
|
|
32
|
+
private social;
|
|
33
|
+
constructor(social: SocialGraph);
|
|
34
|
+
/**
|
|
35
|
+
* Import data from connectMeTrae2 format
|
|
36
|
+
*/
|
|
37
|
+
import(data: ConnectMeData): Promise<ImportResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Import a single tag
|
|
40
|
+
*/
|
|
41
|
+
private importTag;
|
|
42
|
+
/**
|
|
43
|
+
* Import a single person
|
|
44
|
+
*/
|
|
45
|
+
private importPerson;
|
|
46
|
+
/**
|
|
47
|
+
* Determine tag type based on tag properties
|
|
48
|
+
*/
|
|
49
|
+
private determineTagType;
|
|
50
|
+
/**
|
|
51
|
+
* Sort tags by hierarchy (parents before children)
|
|
52
|
+
*/
|
|
53
|
+
private sortTagsByHierarchy;
|
|
54
|
+
/**
|
|
55
|
+
* Export data to connectMeTrae2 format
|
|
56
|
+
*/
|
|
57
|
+
export(options?: ExportOptions): Promise<ConnectMeData>;
|
|
58
|
+
/**
|
|
59
|
+
* Import friend relationships from an adjacency list
|
|
60
|
+
*
|
|
61
|
+
* @param friendships Array of [personA_id, personB_id] pairs
|
|
62
|
+
*/
|
|
63
|
+
importFriendships(friendships: Array<[string, string]>): Promise<{
|
|
64
|
+
created: number;
|
|
65
|
+
failed: number;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Validate connectMeTrae2 data format
|
|
69
|
+
*/
|
|
70
|
+
validate(data: unknown): {
|
|
71
|
+
valid: boolean;
|
|
72
|
+
errors: string[];
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export default ConnectMeAdapter;
|
|
76
|
+
//# sourceMappingURL=connectme-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectme-adapter.d.ts","sourceRoot":"","sources":["../ts/connectme-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EACV,aAAa,EAGb,YAAY,EACZ,aAAa,EAKd,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,EAAE,WAAW;IAQ/B;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA2JxD;;OAEG;IACH,OAAO,CAAC,SAAS;IAiBjB;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAyH7D;;;;OAIG;IACG,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB3G;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAoC9D;AAED,eAAe,gBAAgB,CAAC"}
|