dpth 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +101 -148
  2. package/dist/adapter-sqlite.d.ts +17 -2
  3. package/dist/adapter-sqlite.d.ts.map +1 -1
  4. package/dist/adapter-sqlite.js +127 -16
  5. package/dist/adapter-sqlite.js.map +1 -1
  6. package/dist/dpth.d.ts +35 -2
  7. package/dist/dpth.d.ts.map +1 -1
  8. package/dist/dpth.js +157 -49
  9. package/dist/dpth.js.map +1 -1
  10. package/dist/entity.d.ts +1 -0
  11. package/dist/entity.d.ts.map +1 -1
  12. package/dist/entity.js +21 -5
  13. package/dist/entity.js.map +1 -1
  14. package/dist/errors.d.ts +43 -0
  15. package/dist/errors.d.ts.map +1 -0
  16. package/dist/errors.js +63 -0
  17. package/dist/errors.js.map +1 -0
  18. package/dist/experimental/agent-sdk.d.ts +157 -0
  19. package/dist/experimental/agent-sdk.d.ts.map +1 -0
  20. package/dist/experimental/agent-sdk.js +367 -0
  21. package/dist/experimental/agent-sdk.js.map +1 -0
  22. package/dist/experimental/economics.d.ts +203 -0
  23. package/dist/experimental/economics.d.ts.map +1 -0
  24. package/dist/experimental/economics.js +510 -0
  25. package/dist/experimental/economics.js.map +1 -0
  26. package/dist/experimental/fallback.d.ts +104 -0
  27. package/dist/experimental/fallback.d.ts.map +1 -0
  28. package/dist/experimental/fallback.js +359 -0
  29. package/dist/experimental/fallback.js.map +1 -0
  30. package/dist/experimental/federation.d.ts +224 -0
  31. package/dist/experimental/federation.d.ts.map +1 -0
  32. package/dist/experimental/federation.js +377 -0
  33. package/dist/experimental/federation.js.map +1 -0
  34. package/dist/experimental/index.d.ts +20 -0
  35. package/dist/experimental/index.d.ts.map +1 -0
  36. package/dist/experimental/index.js +20 -0
  37. package/dist/experimental/index.js.map +1 -0
  38. package/dist/index.d.ts +14 -14
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +13 -14
  41. package/dist/index.js.map +1 -1
  42. package/dist/storage.d.ts +10 -11
  43. package/dist/storage.d.ts.map +1 -1
  44. package/dist/storage.js +4 -11
  45. package/dist/storage.js.map +1 -1
  46. package/dist/types.d.ts +16 -1
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/types.js +11 -1
  49. package/dist/types.js.map +1 -1
  50. package/dist/util.d.ts +20 -0
  51. package/dist/util.d.ts.map +1 -0
  52. package/dist/util.js +28 -0
  53. package/dist/util.js.map +1 -0
  54. package/package.json +13 -25
@@ -0,0 +1,377 @@
1
+ /**
2
+ * dpth.io Federated Learning Coordinator
3
+ *
4
+ * Network-trained models as public goods. Agents fine-tune locally,
5
+ * share only weight deltas (LoRA adapters), and the network aggregates
6
+ * them into models that couldn't exist outside dpth.io.
7
+ *
8
+ * How it works:
9
+ * 1. Coordinator publishes a training round with base model CID
10
+ * 2. Eligible agents (trusted tier+) claim the round
11
+ * 3. Each agent fine-tunes on local data, uploads weight delta
12
+ * 4. Coordinator aggregates deltas (federated averaging)
13
+ * 5. New model version published to network via CAS
14
+ * 6. Agents earn credits for training contributions
15
+ *
16
+ * Security:
17
+ * - Only trusted+ agents can participate (reputation gate)
18
+ * - Weight deltas are validated (norm clipping, anomaly detection)
19
+ * - Differential privacy noise added before aggregation
20
+ * - Byzantine-tolerant: median aggregation, not mean
21
+ */
22
+ import { randomUUID } from 'crypto';
23
+ const store = {
24
+ modelVersions: new Map(),
25
+ trainingRounds: new Map(),
26
+ weightDeltas: new Map(),
27
+ latestVersions: new Map(),
28
+ agentHistory: new Map(),
29
+ };
30
+ // ─── Model Version Management ────────────────────────
31
+ /**
32
+ * Register an initial base model version.
33
+ */
34
+ export function registerBaseModel(modelFamily, baseModelCid, metrics) {
35
+ const version = {
36
+ id: randomUUID(),
37
+ modelFamily,
38
+ version: 1,
39
+ baseModelCid,
40
+ adapterCid: null,
41
+ trainingRoundIds: [],
42
+ metrics: {
43
+ totalTrainingExamples: 0,
44
+ participantCount: 0,
45
+ ...metrics,
46
+ },
47
+ createdAt: new Date().toISOString(),
48
+ parentVersionId: null,
49
+ };
50
+ store.modelVersions.set(version.id, version);
51
+ store.latestVersions.set(modelFamily, version.id);
52
+ return version;
53
+ }
54
+ /**
55
+ * Get the latest version of a model family.
56
+ */
57
+ export function getLatestVersion(modelFamily) {
58
+ const versionId = store.latestVersions.get(modelFamily);
59
+ return versionId ? store.modelVersions.get(versionId) : undefined;
60
+ }
61
+ /**
62
+ * Get full version history for a model family.
63
+ */
64
+ export function getVersionHistory(modelFamily) {
65
+ return Array.from(store.modelVersions.values())
66
+ .filter(v => v.modelFamily === modelFamily)
67
+ .sort((a, b) => a.version - b.version);
68
+ }
69
+ // ─── Training Round Management ───────────────────────
70
+ /**
71
+ * Create a new training round for a model family.
72
+ */
73
+ export function createTrainingRound(modelFamily, config, options) {
74
+ const latestVersion = getLatestVersion(modelFamily);
75
+ if (!latestVersion) {
76
+ throw new Error(`No base model registered for family '${modelFamily}'. Call registerBaseModel first.`);
77
+ }
78
+ const now = new Date();
79
+ const deadline = new Date(now.getTime() + (options?.deadlineHours || 24) * 3600000);
80
+ const round = {
81
+ id: randomUUID(),
82
+ modelFamily,
83
+ baseVersionId: latestVersion.id,
84
+ configCid: options?.configCid || `config-${randomUUID().slice(0, 8)}`,
85
+ status: 'pending',
86
+ config,
87
+ participants: [],
88
+ minParticipants: options?.minParticipants || 3,
89
+ maxParticipants: options?.maxParticipants || 50,
90
+ deadline: deadline.toISOString(),
91
+ createdAt: now.toISOString(),
92
+ updatedAt: now.toISOString(),
93
+ };
94
+ store.trainingRounds.set(round.id, round);
95
+ return round;
96
+ }
97
+ /**
98
+ * Agent claims a training round.
99
+ */
100
+ export function claimTrainingRound(roundId, agentId) {
101
+ const round = store.trainingRounds.get(roundId);
102
+ if (!round)
103
+ throw new Error(`Training round '${roundId}' not found`);
104
+ if (round.status !== 'pending' && round.status !== 'active') {
105
+ throw new Error(`Round '${roundId}' is ${round.status}, cannot claim`);
106
+ }
107
+ if (round.participants.length >= round.maxParticipants) {
108
+ throw new Error(`Round '${roundId}' is full (${round.maxParticipants} participants)`);
109
+ }
110
+ if (round.participants.some(p => p.agentId === agentId)) {
111
+ throw new Error(`Agent '${agentId}' already claimed this round`);
112
+ }
113
+ if (new Date(round.deadline).getTime() < Date.now()) {
114
+ throw new Error(`Round '${roundId}' deadline has passed`);
115
+ }
116
+ const participant = {
117
+ agentId,
118
+ status: 'claimed',
119
+ claimedAt: new Date().toISOString(),
120
+ };
121
+ round.participants.push(participant);
122
+ // Move to active if first participant
123
+ if (round.status === 'pending') {
124
+ round.status = 'active';
125
+ }
126
+ round.updatedAt = new Date().toISOString();
127
+ // Track agent history
128
+ const history = store.agentHistory.get(agentId) || [];
129
+ history.push(roundId);
130
+ store.agentHistory.set(agentId, history);
131
+ return participant;
132
+ }
133
+ /**
134
+ * Agent uploads a weight delta for a training round.
135
+ */
136
+ export function submitWeightDelta(roundId, agentId, delta) {
137
+ const round = store.trainingRounds.get(roundId);
138
+ if (!round)
139
+ throw new Error(`Training round '${roundId}' not found`);
140
+ if (round.status !== 'active') {
141
+ throw new Error(`Round '${roundId}' is ${round.status}, cannot submit`);
142
+ }
143
+ const participant = round.participants.find(p => p.agentId === agentId);
144
+ if (!participant)
145
+ throw new Error(`Agent '${agentId}' is not a participant in round '${roundId}'`);
146
+ if (participant.status !== 'claimed' && participant.status !== 'training') {
147
+ throw new Error(`Agent '${agentId}' already submitted or was rejected`);
148
+ }
149
+ const weightDelta = {
150
+ ...delta,
151
+ agentId,
152
+ roundId,
153
+ };
154
+ // Validate the delta
155
+ const validation = validateDelta(weightDelta, round.config);
156
+ participant.validation = validation;
157
+ if (validation.valid) {
158
+ participant.status = 'uploaded';
159
+ participant.deltaCid = delta.cid;
160
+ participant.uploadedAt = new Date().toISOString();
161
+ store.weightDeltas.set(delta.cid, weightDelta);
162
+ }
163
+ else {
164
+ participant.status = 'rejected';
165
+ }
166
+ round.updatedAt = new Date().toISOString();
167
+ // Check if we can aggregate
168
+ const uploadedCount = round.participants.filter(p => p.status === 'uploaded').length;
169
+ if (uploadedCount >= round.minParticipants &&
170
+ (uploadedCount >= round.maxParticipants || new Date(round.deadline).getTime() < Date.now())) {
171
+ // Auto-trigger aggregation
172
+ aggregateRound(roundId);
173
+ }
174
+ return weightDelta;
175
+ }
176
+ // ─── Validation ──────────────────────────────────────
177
+ /**
178
+ * Validate a weight delta for anomalies and compliance.
179
+ * Returns validation result with anomaly scores.
180
+ */
181
+ function validateDelta(delta, config) {
182
+ const issues = [];
183
+ // Check L2 norm against expected range
184
+ // A very large norm suggests adversarial weights
185
+ const maxNorm = config.maxGradNorm * config.localEpochs * 2;
186
+ if (delta.l2Norm > maxNorm) {
187
+ issues.push(`L2 norm ${delta.l2Norm} exceeds max ${maxNorm}`);
188
+ }
189
+ // Check LoRA format matches config
190
+ if (delta.format.rank !== config.loraRank) {
191
+ issues.push(`LoRA rank mismatch: expected ${config.loraRank}, got ${delta.format.rank}`);
192
+ }
193
+ if (delta.format.alpha !== config.loraAlpha) {
194
+ issues.push(`LoRA alpha mismatch: expected ${config.loraAlpha}, got ${delta.format.alpha}`);
195
+ }
196
+ // Check minimum training data
197
+ if (delta.trainingExamples < config.minLocalExamples) {
198
+ issues.push(`Too few examples: ${delta.trainingExamples} < ${config.minLocalExamples}`);
199
+ }
200
+ // Anomaly score: 0 = normal, 1 = very suspicious
201
+ let anomalyScore = 0;
202
+ anomalyScore += Math.min(1, delta.l2Norm / maxNorm) * 0.5; // Norm contribution
203
+ if (delta.sizeBytes < 1000)
204
+ anomalyScore += 0.3; // Suspiciously small
205
+ if (delta.trainingExamples < config.minLocalExamples * 2)
206
+ anomalyScore += 0.2; // Low data
207
+ anomalyScore = Math.min(1, anomalyScore);
208
+ return {
209
+ valid: issues.length === 0 && anomalyScore < 0.8,
210
+ deltaL2Norm: delta.l2Norm,
211
+ anomalyScore: Math.round(anomalyScore * 1000) / 1000,
212
+ reason: issues.length > 0 ? issues.join('; ') : undefined,
213
+ };
214
+ }
215
+ // ─── Aggregation ─────────────────────────────────────
216
+ /**
217
+ * Aggregate weight deltas from a training round into a new model version.
218
+ * Uses federated median (Byzantine-tolerant) by default.
219
+ */
220
+ export function aggregateRound(roundId, method = 'fedmedian') {
221
+ const round = store.trainingRounds.get(roundId);
222
+ if (!round)
223
+ throw new Error(`Training round '${roundId}' not found`);
224
+ const validParticipants = round.participants.filter(p => p.status === 'uploaded');
225
+ if (validParticipants.length < round.minParticipants) {
226
+ throw new Error(`Not enough valid participants: ${validParticipants.length} < ${round.minParticipants}`);
227
+ }
228
+ round.status = 'aggregating';
229
+ round.updatedAt = new Date().toISOString();
230
+ const startTime = Date.now();
231
+ // Collect deltas
232
+ const deltas = validParticipants
233
+ .map(p => store.weightDeltas.get(p.deltaCid))
234
+ .filter((d) => d !== undefined);
235
+ // Calculate aggregate norm (simulated — real impl would do actual weight math)
236
+ let aggregateNorm;
237
+ const norms = deltas.map(d => d.l2Norm);
238
+ switch (method) {
239
+ case 'fedavg':
240
+ // Weighted average by training examples
241
+ const totalExamples = deltas.reduce((sum, d) => sum + d.trainingExamples, 0);
242
+ aggregateNorm = deltas.reduce((sum, d) => sum + (d.l2Norm * d.trainingExamples / totalExamples), 0);
243
+ break;
244
+ case 'fedmedian':
245
+ // Coordinate-wise median — most Byzantine-tolerant
246
+ norms.sort((a, b) => a - b);
247
+ aggregateNorm = norms[Math.floor(norms.length / 2)];
248
+ break;
249
+ case 'trimmed_mean':
250
+ // Remove top/bottom 10%, average the rest
251
+ norms.sort((a, b) => a - b);
252
+ const trim = Math.max(1, Math.floor(norms.length * 0.1));
253
+ const trimmed = norms.slice(trim, -trim);
254
+ aggregateNorm = trimmed.reduce((a, b) => a + b, 0) / trimmed.length;
255
+ break;
256
+ }
257
+ // Apply differential privacy noise if configured
258
+ let dpNoiseScale;
259
+ if (round.config.dpEpsilon) {
260
+ // Gaussian mechanism: noise proportional to sensitivity / epsilon
261
+ dpNoiseScale = round.config.maxGradNorm / round.config.dpEpsilon;
262
+ // In real impl, would add calibrated noise to each parameter
263
+ }
264
+ const totalExamples = deltas.reduce((sum, d) => sum + d.trainingExamples, 0);
265
+ const aggregationTimeMs = Date.now() - startTime;
266
+ // Create aggregated adapter CID (simulated)
267
+ const adapterCid = `adapter-${roundId.slice(0, 8)}-${randomUUID().slice(0, 8)}`;
268
+ // Create new model version
269
+ const baseVersion = store.modelVersions.get(round.baseVersionId);
270
+ const newVersion = {
271
+ id: randomUUID(),
272
+ modelFamily: round.modelFamily,
273
+ version: baseVersion.version + 1,
274
+ baseModelCid: baseVersion.baseModelCid,
275
+ adapterCid,
276
+ trainingRoundIds: [...baseVersion.trainingRoundIds, roundId],
277
+ metrics: {
278
+ totalTrainingExamples: baseVersion.metrics.totalTrainingExamples + totalExamples,
279
+ participantCount: baseVersion.metrics.participantCount + validParticipants.length,
280
+ },
281
+ createdAt: new Date().toISOString(),
282
+ parentVersionId: baseVersion.id,
283
+ };
284
+ store.modelVersions.set(newVersion.id, newVersion);
285
+ store.latestVersions.set(round.modelFamily, newVersion.id);
286
+ // Mark participants as validated
287
+ for (const p of validParticipants) {
288
+ p.status = 'validated';
289
+ }
290
+ // Update round
291
+ round.status = 'complete';
292
+ round.resultVersionId = newVersion.id;
293
+ round.aggregationStats = {
294
+ method,
295
+ participantsUsed: validParticipants.length,
296
+ participantsRejected: round.participants.filter(p => p.status === 'rejected').length,
297
+ aggregateDeltaNorm: Math.round(aggregateNorm * 1000) / 1000,
298
+ totalExamples,
299
+ aggregationTimeMs,
300
+ dpNoiseScale,
301
+ };
302
+ round.updatedAt = new Date().toISOString();
303
+ return newVersion;
304
+ }
305
+ // ─── Queries ─────────────────────────────────────────
306
+ export function getTrainingRound(roundId) {
307
+ return store.trainingRounds.get(roundId);
308
+ }
309
+ export function getModelVersion(versionId) {
310
+ return store.modelVersions.get(versionId);
311
+ }
312
+ /**
313
+ * Get active training rounds an agent can join.
314
+ */
315
+ export function getAvailableRounds(agentId) {
316
+ return Array.from(store.trainingRounds.values())
317
+ .filter(r => {
318
+ if (r.status !== 'pending' && r.status !== 'active')
319
+ return false;
320
+ if (new Date(r.deadline).getTime() < Date.now())
321
+ return false;
322
+ if (r.participants.length >= r.maxParticipants)
323
+ return false;
324
+ if (agentId && r.participants.some(p => p.agentId === agentId))
325
+ return false;
326
+ return true;
327
+ });
328
+ }
329
+ /**
330
+ * Get all rounds an agent has participated in.
331
+ */
332
+ export function getAgentTrainingHistory(agentId) {
333
+ const roundIds = store.agentHistory.get(agentId) || [];
334
+ return roundIds
335
+ .map(id => store.trainingRounds.get(id))
336
+ .filter((r) => r !== undefined);
337
+ }
338
+ /**
339
+ * Get network-wide training stats.
340
+ */
341
+ export function getTrainingStats() {
342
+ const rounds = Array.from(store.trainingRounds.values());
343
+ const families = new Set(rounds.map(r => r.modelFamily));
344
+ return {
345
+ totalRounds: rounds.length,
346
+ completedRounds: rounds.filter(r => r.status === 'complete').length,
347
+ activeRounds: rounds.filter(r => r.status === 'active' || r.status === 'pending').length,
348
+ totalParticipations: rounds.reduce((sum, r) => sum + r.participants.length, 0),
349
+ totalExamplesProcessed: rounds
350
+ .filter(r => r.aggregationStats)
351
+ .reduce((sum, r) => sum + (r.aggregationStats?.totalExamples || 0), 0),
352
+ modelFamilies: Array.from(families),
353
+ };
354
+ }
355
+ /**
356
+ * List all registered model families with their latest versions.
357
+ */
358
+ export function listModelFamilies() {
359
+ return Array.from(store.latestVersions.entries()).map(([family, versionId]) => {
360
+ const version = store.modelVersions.get(versionId);
361
+ return {
362
+ family,
363
+ latestVersion: version.version,
364
+ latestVersionId: versionId,
365
+ totalRounds: version.trainingRoundIds.length,
366
+ };
367
+ });
368
+ }
369
+ // ─── Reset (Testing) ────────────────────────────────
370
+ export function clearFederation() {
371
+ store.modelVersions.clear();
372
+ store.trainingRounds.clear();
373
+ store.weightDeltas.clear();
374
+ store.latestVersions.clear();
375
+ store.agentHistory.clear();
376
+ }
377
+ //# sourceMappingURL=federation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/experimental/federation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * dpth.io — Experimental Modules
3
+ *
4
+ * These modules implement the distributed agent network vision described
5
+ * in PROTOCOL.md. They are functional but not yet production-ready:
6
+ *
7
+ * - agent-sdk: REST client for agent registration and task management
8
+ * - federation: Federated learning coordinator (single-process, simulated)
9
+ * - economics: Credit system and reputation tracking (in-memory)
10
+ * - fallback: Centralized inference routing with model registry
11
+ *
12
+ * Use at your own risk. APIs may change significantly between versions.
13
+ *
14
+ * @module dpth/experimental
15
+ */
16
+ export * from './agent-sdk.js';
17
+ export * from './federation.js';
18
+ export * from './economics.js';
19
+ export * from './fallback.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/experimental/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * dpth.io — Experimental Modules
3
+ *
4
+ * These modules implement the distributed agent network vision described
5
+ * in PROTOCOL.md. They are functional but not yet production-ready:
6
+ *
7
+ * - agent-sdk: REST client for agent registration and task management
8
+ * - federation: Federated learning coordinator (single-process, simulated)
9
+ * - economics: Credit system and reputation tracking (in-memory)
10
+ * - fallback: Centralized inference routing with model registry
11
+ *
12
+ * Use at your own risk. APIs may change significantly between versions.
13
+ *
14
+ * @module dpth/experimental
15
+ */
16
+ export * from './agent-sdk.js';
17
+ export * from './federation.js';
18
+ export * from './economics.js';
19
+ export * from './fallback.js';
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/experimental/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,25 +1,25 @@
1
1
  /**
2
- * dpth.ioThe Distributed Intelligence Layer
3
- *
4
- * Decentralized AI inference, data intelligence, and agent coordination.
2
+ * dpth — Entity resolution, temporal history, and correlation detection
3
+ * for TypeScript. One npm install, zero dependencies.
5
4
  *
6
5
  * Core modules:
7
- * - Entity: Unified identity across sources with temporal history
8
- * - Correlation: Cross-source pattern detection and causality discovery
9
- * - Temporal: Time-native storage where every value has history
10
- * - Embed: Semantic search and similarity across all data
11
- * - Ingest: Data ingestion pipeline from connectors
12
- * - Agent SDK: Client for agents to participate in the network
13
- * - Fallback: Centralized inference when no agents available
6
+ * - Entity: Resolve identities across data sources with fuzzy matching
7
+ * - Temporal: Snapshot any data and track changes over time
8
+ * - Correlation: Detect cross-source patterns in your metrics
9
+ * - Embed: Semantic similarity and search
10
+ * - Storage: Pluggable adapters (memory, SQLite, vector)
11
+ * - dpth(): Unified API that wires everything together
12
+ *
13
+ * Experimental modules (agent network, federation, economics) are
14
+ * available via 'dpth/experimental' — see PROTOCOL.md for the vision.
14
15
  */
15
16
  export * from './types.js';
16
17
  export * from './storage.js';
18
+ export * from './errors.js';
17
19
  export * from './entity.js';
18
20
  export * from './correlation.js';
19
21
  export * from './temporal.js';
20
22
  export * from './embed.js';
21
- export * from './agent-sdk.js';
22
- export * from './fallback.js';
23
- export * from './economics.js';
24
- export * from './federation.js';
23
+ export { dpth, Dpth } from './dpth.js';
24
+ export type { DpthOptions, ResolveOptions, ResolveResult, SnapshotRecord, DiffResult, CorrelationHit } from './dpth.js';
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,25 +1,24 @@
1
1
  /**
2
- * dpth.ioThe Distributed Intelligence Layer
3
- *
4
- * Decentralized AI inference, data intelligence, and agent coordination.
2
+ * dpth — Entity resolution, temporal history, and correlation detection
3
+ * for TypeScript. One npm install, zero dependencies.
5
4
  *
6
5
  * Core modules:
7
- * - Entity: Unified identity across sources with temporal history
8
- * - Correlation: Cross-source pattern detection and causality discovery
9
- * - Temporal: Time-native storage where every value has history
10
- * - Embed: Semantic search and similarity across all data
11
- * - Ingest: Data ingestion pipeline from connectors
12
- * - Agent SDK: Client for agents to participate in the network
13
- * - Fallback: Centralized inference when no agents available
6
+ * - Entity: Resolve identities across data sources with fuzzy matching
7
+ * - Temporal: Snapshot any data and track changes over time
8
+ * - Correlation: Detect cross-source patterns in your metrics
9
+ * - Embed: Semantic similarity and search
10
+ * - Storage: Pluggable adapters (memory, SQLite, vector)
11
+ * - dpth(): Unified API that wires everything together
12
+ *
13
+ * Experimental modules (agent network, federation, economics) are
14
+ * available via 'dpth/experimental' — see PROTOCOL.md for the vision.
14
15
  */
15
16
  export * from './types.js';
16
17
  export * from './storage.js';
18
+ export * from './errors.js';
17
19
  export * from './entity.js';
18
20
  export * from './correlation.js';
19
21
  export * from './temporal.js';
20
22
  export * from './embed.js';
21
- export * from './agent-sdk.js';
22
- export * from './fallback.js';
23
- export * from './economics.js';
24
- export * from './federation.js';
23
+ export { dpth, Dpth } from './dpth.js';
25
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
package/dist/storage.d.ts CHANGED
@@ -51,6 +51,12 @@ export interface StorageAdapter {
51
51
  clear(collection?: string): Promise<void>;
52
52
  /** Close the adapter (cleanup connections, flush writes) */
53
53
  close(): Promise<void>;
54
+ /** Optional: bulk write operations in a single batch (faster than individual puts) */
55
+ putBatch?(operations: Array<{
56
+ collection: string;
57
+ key: string;
58
+ value: unknown;
59
+ }>): Promise<void>;
54
60
  }
55
61
  /** Vector search capabilities (extends base adapter) */
56
62
  export interface VectorAdapter extends StorageAdapter {
@@ -80,17 +86,10 @@ export declare class MemoryAdapter implements StorageAdapter {
80
86
  close(): Promise<void>;
81
87
  }
82
88
  /**
83
- * Configure dpth with a storage adapter.
84
- * Call before using any dpth modules.
85
- *
86
- * @example
87
- * import { configure, MemoryAdapter } from 'dpth/storage';
88
- * configure({ adapter: new MemoryAdapter() }); // default
89
- *
90
- * @example
91
- * import { configure } from 'dpth/storage';
92
- * import { SQLiteAdapter } from 'dpth/adapter-sqlite';
93
- * configure({ adapter: new SQLiteAdapter('./data.db') });
89
+ * @deprecated Use dpth() factory instead:
90
+ * const db = dpth('./data.db'); // SQLite
91
+ * const db = dpth(); // in-memory
92
+ * Global configure() will be removed in v1.0.
94
93
  */
95
94
  export declare function configure(options: {
96
95
  adapter: StorageAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/storage.js CHANGED
@@ -105,17 +105,10 @@ export class MemoryAdapter {
105
105
  // ─── Global Configuration ────────────────────────────
106
106
  let globalAdapter = new MemoryAdapter();
107
107
  /**
108
- * Configure dpth with a storage adapter.
109
- * Call before using any dpth modules.
110
- *
111
- * @example
112
- * import { configure, MemoryAdapter } from 'dpth/storage';
113
- * configure({ adapter: new MemoryAdapter() }); // default
114
- *
115
- * @example
116
- * import { configure } from 'dpth/storage';
117
- * import { SQLiteAdapter } from 'dpth/adapter-sqlite';
118
- * configure({ adapter: new SQLiteAdapter('./data.db') });
108
+ * @deprecated Use dpth() factory instead:
109
+ * const db = dpth('./data.db'); // SQLite
110
+ * const db = dpth(); // in-memory
111
+ * Global configure() will be removed in v1.0.
119
112
  */
120
113
  export function configure(options) {
121
114
  globalAdapter = options.adapter;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}