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,203 @@
1
+ /**
2
+ * dpth.io Economics Engine
3
+ *
4
+ * The credit system that makes agents want to contribute.
5
+ * Every contribution earns credits, every query costs credits.
6
+ * Designed for future token migration without rebuilding.
7
+ *
8
+ * Core concepts:
9
+ * - Credits are minted on contribution (storage, compute, GPU)
10
+ * - Credits are burned on consumption (queries, inference)
11
+ * - Tier multipliers reward long-term contributors
12
+ * - Rate limits prevent abuse without killing free access
13
+ * - Migration snapshots enable future token claims
14
+ */
15
+ export type CreditAction = 'earn' | 'spend' | 'bonus' | 'penalty' | 'transfer' | 'migration_snapshot';
16
+ export type CreditCategory = 'storage' | 'compute' | 'gpu' | 'inference' | 'query' | 'training' | 'bonus' | 'penalty' | 'transfer' | 'system';
17
+ export interface CreditTransaction {
18
+ id: string;
19
+ agentId: string;
20
+ action: CreditAction;
21
+ amount: number;
22
+ reason: string;
23
+ category: CreditCategory;
24
+ reference?: string;
25
+ balanceAfter: number;
26
+ timestamp: string;
27
+ /** For transfers: recipient agent */
28
+ toAgentId?: string;
29
+ }
30
+ export interface AgentBalance {
31
+ agentId: string;
32
+ balance: number;
33
+ totalEarned: number;
34
+ totalSpent: number;
35
+ earningsByCategory: Record<string, number>;
36
+ spendingByCategory: Record<string, number>;
37
+ transactionCount: number;
38
+ /** Claimable for future token migration */
39
+ claimableCredits: number;
40
+ /** Rate limit state */
41
+ rateLimit: RateLimitState;
42
+ /** Migration snapshot (if taken) */
43
+ migrationSnapshot?: {
44
+ balance: number;
45
+ timestamp: string;
46
+ snapshotId: string;
47
+ };
48
+ lastActivity: string;
49
+ createdAt: string;
50
+ }
51
+ export interface RateLimitState {
52
+ /** Queries remaining in current window */
53
+ queriesRemaining: number;
54
+ /** Inference requests remaining in current window */
55
+ inferenceRemaining: number;
56
+ /** Window reset time */
57
+ windowResetAt: string;
58
+ /** Current tier limits */
59
+ tier: string;
60
+ }
61
+ export interface CreditRates {
62
+ storagePerMbPerDay: number;
63
+ computePerTask: number;
64
+ gpuPerInferenceTask: number;
65
+ gpuPer1kTokens: number;
66
+ gpuPerImage: number;
67
+ storageProofBonus: number;
68
+ trainingRoundBonus: number;
69
+ queryBaseCost: number;
70
+ inferenceBaseCost: number;
71
+ /** Per 1k tokens for inference requests */
72
+ inferencePer1kTokens: number;
73
+ tierMultipliers: Record<string, number>;
74
+ }
75
+ export interface TierLimits {
76
+ /** Queries per hour */
77
+ queriesPerHour: number;
78
+ /** Inference requests per hour */
79
+ inferencePerHour: number;
80
+ /** Max single transaction */
81
+ maxTransactionSize: number;
82
+ /** Can participate in training */
83
+ canTrain: boolean;
84
+ /** Can transfer credits */
85
+ canTransfer: boolean;
86
+ }
87
+ export interface NetworkSupply {
88
+ totalMinted: number;
89
+ totalBurned: number;
90
+ totalCirculating: number;
91
+ totalTransactions: number;
92
+ /** Velocity: transactions in last 24h */
93
+ velocity24h: number;
94
+ /** Gini coefficient (0=equal, 1=concentrated) */
95
+ giniCoefficient: number;
96
+ }
97
+ export interface PricingSignal {
98
+ /** Current demand multiplier (>1 = high demand, <1 = low) */
99
+ demandMultiplier: number;
100
+ /** Network utilization (0-1) */
101
+ utilization: number;
102
+ /** Suggested query price */
103
+ queryPrice: number;
104
+ /** Suggested inference price */
105
+ inferencePrice: number;
106
+ timestamp: string;
107
+ }
108
+ export declare const DEFAULT_RATES: CreditRates;
109
+ export declare const TIER_LIMITS: Record<string, TierLimits>;
110
+ /**
111
+ * Earn credits for a contribution.
112
+ * Amount is multiplied by the agent's tier multiplier.
113
+ */
114
+ export declare function earnCredits(agentId: string, amount: number, reason: string, category: CreditCategory, options?: {
115
+ reference?: string;
116
+ tier?: string;
117
+ }): CreditTransaction;
118
+ /**
119
+ * Spend credits for a service (query, inference, etc).
120
+ * Throws if insufficient balance.
121
+ */
122
+ export declare function spendCredits(agentId: string, amount: number, reason: string, category: CreditCategory, options?: {
123
+ reference?: string;
124
+ }): CreditTransaction;
125
+ /**
126
+ * Transfer credits between agents.
127
+ * Requires trusted tier or above.
128
+ */
129
+ export declare function transferCredits(fromAgentId: string, toAgentId: string, amount: number, reason: string, fromTier?: string): {
130
+ fromTx: CreditTransaction;
131
+ toTx: CreditTransaction;
132
+ };
133
+ /**
134
+ * Apply a penalty (bad behavior, failed proofs, etc).
135
+ */
136
+ export declare function penalizeAgent(agentId: string, amount: number, reason: string, reference?: string): CreditTransaction;
137
+ /**
138
+ * Check if an agent can perform an action under rate limits.
139
+ * Automatically resets windows and adjusts by tier.
140
+ */
141
+ export declare function checkRateLimit(agentId: string, action: 'query' | 'inference', tier?: string): {
142
+ allowed: boolean;
143
+ remaining: number;
144
+ resetAt: string;
145
+ };
146
+ /**
147
+ * Calculate current pricing based on network conditions.
148
+ * High demand → higher prices → incentivizes more supply.
149
+ * Low demand → lower prices → encourages usage.
150
+ */
151
+ export declare function getPricingSignal(): PricingSignal;
152
+ /**
153
+ * Auto-calculate and award credits for a storage contribution.
154
+ */
155
+ export declare function rewardStorage(agentId: string, megabytes: number, tier?: string): CreditTransaction;
156
+ /**
157
+ * Auto-calculate and award credits for a compute task.
158
+ */
159
+ export declare function rewardCompute(agentId: string, taskId: string, tier?: string): CreditTransaction;
160
+ /**
161
+ * Auto-calculate and award credits for GPU inference.
162
+ */
163
+ export declare function rewardGpuInference(agentId: string, tokensGenerated: number, taskId: string, tier?: string): CreditTransaction;
164
+ /**
165
+ * Auto-calculate and award credits for a training round.
166
+ */
167
+ export declare function rewardTraining(agentId: string, roundId: string, tier?: string): CreditTransaction;
168
+ /**
169
+ * Charge for an inference request based on token count.
170
+ */
171
+ export declare function chargeInference(agentId: string, tokensUsed: number, requestId: string): CreditTransaction;
172
+ /**
173
+ * Create a migration snapshot of all balances.
174
+ * Used when transitioning from credits to tokens.
175
+ * Returns snapshot metadata.
176
+ */
177
+ export declare function createMigrationSnapshot(): {
178
+ snapshotId: string;
179
+ timestamp: string;
180
+ agentsSnapshotted: number;
181
+ totalClaimable: number;
182
+ };
183
+ export declare function getBalance(agentId: string): AgentBalance | undefined;
184
+ export declare function getSupply(): NetworkSupply;
185
+ export declare function getLeaderboard(limit?: number, sortBy?: 'balance' | 'earned' | 'spent'): Array<{
186
+ rank: number;
187
+ agentId: string;
188
+ balance: number;
189
+ totalEarned: number;
190
+ totalSpent: number;
191
+ }>;
192
+ export declare function getTransactionHistory(agentId: string, limit?: number): CreditTransaction[];
193
+ export declare function getRates(): CreditRates;
194
+ export declare function updateRates(updates: Partial<CreditRates>): CreditRates;
195
+ export declare function getTierLimits(tier: string): TierLimits;
196
+ export declare function clearEconomics(): void;
197
+ export declare class InsufficientCreditsError extends Error {
198
+ readonly agentId: string;
199
+ readonly balance: number;
200
+ readonly required: number;
201
+ constructor(agentId: string, balance: number, required: number);
202
+ }
203
+ //# sourceMappingURL=economics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"economics.d.ts","sourceRoot":"","sources":["../../src/experimental/economics.ts"],"names":[],"mappings":"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"}