agent-passport-system 1.19.3 → 1.20.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.
- package/README.md +6 -4
- package/dist/src/core/data-contribution.d.ts +16 -0
- package/dist/src/core/data-contribution.d.ts.map +1 -0
- package/dist/src/core/data-contribution.js +215 -0
- package/dist/src/core/data-contribution.js.map +1 -0
- package/dist/src/core/data-settlement.d.ts +9 -0
- package/dist/src/core/data-settlement.d.ts.map +1 -0
- package/dist/src/core/data-settlement.js +180 -0
- package/dist/src/core/data-settlement.js.map +1 -0
- package/dist/src/core/delegation.d.ts +2 -0
- package/dist/src/core/delegation.d.ts.map +1 -1
- package/dist/src/core/delegation.js +10 -2
- package/dist/src/core/delegation.js.map +1 -1
- package/dist/src/core/gateway.d.ts +4 -2
- package/dist/src/core/gateway.d.ts.map +1 -1
- package/dist/src/core/gateway.js +15 -1
- package/dist/src/core/gateway.js.map +1 -1
- package/dist/src/crypto/key-storage.d.ts +57 -0
- package/dist/src/crypto/key-storage.d.ts.map +1 -0
- package/dist/src/crypto/key-storage.js +111 -0
- package/dist/src/crypto/key-storage.js.map +1 -0
- package/dist/src/index.d.ts +7 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/interop/qntm-bridge.d.ts +96 -0
- package/dist/src/interop/qntm-bridge.d.ts.map +1 -0
- package/dist/src/interop/qntm-bridge.js +318 -0
- package/dist/src/interop/qntm-bridge.js.map +1 -0
- package/dist/src/types/data-contribution.d.ts +133 -0
- package/dist/src/types/data-contribution.d.ts.map +1 -0
- package/dist/src/types/data-contribution.js +8 -0
- package/dist/src/types/data-contribution.js.map +1 -0
- package/dist/src/types/gateway.d.ts +7 -0
- package/dist/src/types/gateway.d.ts.map +1 -1
- package/dist/src/types/passport.d.ts +3 -0
- package/dist/src/types/passport.d.ts.map +1 -1
- package/dist/src/types/passport.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
[](https://github.com/aeoess/agent-passport-system)
|
|
6
6
|
[](https://doi.org/10.5281/zenodo.18749779)
|
|
7
7
|
|
|
8
|
+
> **🤖 For AI agents:** If you are an agent reading this, visit [aeoess.com/llms.txt](https://aeoess.com/llms.txt) for machine-readable documentation or [llms-full.txt](https://aeoess.com/llms-full.txt) for the complete technical reference. This README is designed for humans.
|
|
9
|
+
|
|
8
10
|
Cryptographic identity, ethical governance, economic attribution, data source registration, protocol-native communication, intent architecture, cascade revocation, coordination primitives, and agentic commerce for autonomous AI agents.
|
|
9
11
|
|
|
10
|
-
**37 core modules + 32 v2 constitutional modules.
|
|
12
|
+
**37 core modules + 32 v2 constitutional modules. 1148 tests. Zero heavy dependencies. Running code. MCP server included.**
|
|
11
13
|
|
|
12
14
|
> *As AI agents from different creators, running different models, serving different humans begin to collaborate — who is responsible, under what authority, according to what values, and who benefits?*
|
|
13
15
|
|
|
@@ -407,7 +409,7 @@ Or zero-install remote mode:
|
|
|
407
409
|
npx agent-passport-system-mcp setup --remote
|
|
408
410
|
```
|
|
409
411
|
|
|
410
|
-
**72 tools across all
|
|
412
|
+
**72 tools across all 39 modules, role-scoped access control.** Identity, delegation, agora, values/policy, coordination, and commerce — all accessible via MCP. Every operation Ed25519 signed. Auto-configures Claude Desktop and Cursor.
|
|
411
413
|
|
|
412
414
|
Every operation is Ed25519 signed. Role is auto-detected from task assignments. Role-specific prompts served via MCP prompts API. File-backed task persistence at `~/.agent-passport-tasks.json`.
|
|
413
415
|
|
|
@@ -429,7 +431,7 @@ PyPI: [agent-passport-system](https://pypi.org/project/agent-passport-system/)
|
|
|
429
431
|
|
|
430
432
|
```bash
|
|
431
433
|
npm test
|
|
432
|
-
#
|
|
434
|
+
# 1148 tests across 58 files, 310 suites, 0 failures
|
|
433
435
|
```
|
|
434
436
|
|
|
435
437
|
Includes 50 adversarial tests across 4 test files: Merkle tree tampering, attribution gaming resistance, compliance violations, floor negotiation attacks, wrong-key attestations, cross-chain confused deputy, taint laundering, permit bypass, causal chain manipulation.
|
|
@@ -525,7 +527,7 @@ src/ 32 source files
|
|
|
525
527
|
reputation-authority.ts — Reputation/tier types
|
|
526
528
|
cross-chain.ts — Cross-chain taint/SAO types
|
|
527
529
|
data-source.ts — Data source/access receipt types
|
|
528
|
-
tests/
|
|
530
|
+
tests/ 61 test files, 1148 tests (310 suites)
|
|
529
531
|
adversarial.ts — 50 adversarial cases
|
|
530
532
|
adversarial-paper.test.ts — 22 paper-linked attack scenarios
|
|
531
533
|
adversarial-causal-chain.test.ts — 18 causal chain attacks
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DataAccessReceipt } from '../types/data-source.js';
|
|
2
|
+
import { ContributionRecord, ContributionQuery, SourceMetrics, AgentDataFootprint } from '../types/data-contribution.js';
|
|
3
|
+
export interface ContributionLedger {
|
|
4
|
+
records: Map<string, ContributionRecord>;
|
|
5
|
+
index: {
|
|
6
|
+
bySource: Map<string, Set<string>>;
|
|
7
|
+
byAgent: Map<string, Set<string>>;
|
|
8
|
+
byPrincipal: Map<string, Set<string>>;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export declare function createContributionLedger(): ContributionLedger;
|
|
12
|
+
export declare function recordContribution(ledger: ContributionLedger, receipt: DataAccessReceipt, sourceDescriptor?: string): ContributionRecord;
|
|
13
|
+
export declare function queryContributions(ledger: ContributionLedger, query: ContributionQuery): ContributionRecord[];
|
|
14
|
+
export declare function getSourceMetrics(ledger: ContributionLedger, sourceReceiptId: string): SourceMetrics | null;
|
|
15
|
+
export declare function getAgentDataFootprint(ledger: ContributionLedger, agentId: string): AgentDataFootprint | null;
|
|
16
|
+
//# sourceMappingURL=data-contribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-contribution.d.ts","sourceRoot":"","sources":["../../../src/core/data-contribution.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,iBAAiB,EAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EACpD,kBAAkB,EACnB,MAAM,+BAA+B,CAAA;AAKtC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IACxC,KAAK,EAAE;QACL,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACjC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;KACtC,CAAA;CACF;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAS7D;AA2CD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,iBAAiB,EAC1B,gBAAgB,GAAE,MAAW,GAC5B,kBAAkB,CAiDpB;AAID,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,iBAAiB,GACvB,kBAAkB,EAAE,CA2BtB;AAKD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,eAAe,EAAE,MAAM,GACtB,aAAa,GAAG,IAAI,CA2CtB;AAKD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,MAAM,GACd,kBAAkB,GAAG,IAAI,CAmC3B"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
// ══════════════════════════════════════════════════════════════════════
|
|
2
|
+
// Module 38: Data Contribution Ledger
|
|
3
|
+
// ══════════════════════════════════════════════════════════════════════
|
|
4
|
+
// Aggregation layer on top of Module 36A (Data Source Registration).
|
|
5
|
+
// Tracks who accessed what data, how many times, and what's owed.
|
|
6
|
+
//
|
|
7
|
+
// Key principle: receipts are the evidence, the ledger is the index.
|
|
8
|
+
// The ledger doesn't replace 36A — it aggregates 36A receipts into
|
|
9
|
+
// queryable contribution records with compensation accrual.
|
|
10
|
+
// ══════════════════════════════════════════════════════════════════════
|
|
11
|
+
import crypto from 'crypto';
|
|
12
|
+
export function createContributionLedger() {
|
|
13
|
+
return {
|
|
14
|
+
records: new Map(),
|
|
15
|
+
index: {
|
|
16
|
+
bySource: new Map(),
|
|
17
|
+
byAgent: new Map(),
|
|
18
|
+
byPrincipal: new Map(),
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
// ── Compensation Computation ──
|
|
23
|
+
function computeCompensation(terms, accessCount) {
|
|
24
|
+
const model = terms.compensation;
|
|
25
|
+
const base = {
|
|
26
|
+
model: model.type,
|
|
27
|
+
totalOwed: 0,
|
|
28
|
+
currency: 'usd',
|
|
29
|
+
accessesBilled: accessCount,
|
|
30
|
+
lastComputedAt: new Date().toISOString(),
|
|
31
|
+
};
|
|
32
|
+
switch (model.type) {
|
|
33
|
+
case 'none':
|
|
34
|
+
case 'attribution_only':
|
|
35
|
+
case 'negotiate':
|
|
36
|
+
return base;
|
|
37
|
+
case 'per_access':
|
|
38
|
+
return { ...base, totalOwed: model.amount * accessCount, currency: model.currency };
|
|
39
|
+
case 'revenue_share':
|
|
40
|
+
// Revenue share requires external revenue data — track percentage only
|
|
41
|
+
return { ...base, model: 'revenue_share', totalOwed: 0 };
|
|
42
|
+
case 'pool':
|
|
43
|
+
return { ...base, model: 'pool' };
|
|
44
|
+
default:
|
|
45
|
+
return base;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// ── Record a Contribution ──
|
|
49
|
+
// Takes a DataAccessReceipt from Module 36A and updates the ledger.
|
|
50
|
+
function ledgerKey(receipt) {
|
|
51
|
+
return `${receipt.sourceReceiptId}:${receipt.agentId}:${receipt.principalId}`;
|
|
52
|
+
}
|
|
53
|
+
function addToIndex(index, key, id) {
|
|
54
|
+
if (!index.has(key))
|
|
55
|
+
index.set(key, new Set());
|
|
56
|
+
index.get(key).add(id);
|
|
57
|
+
}
|
|
58
|
+
export function recordContribution(ledger, receipt, sourceDescriptor = '') {
|
|
59
|
+
const key = ledgerKey(receipt);
|
|
60
|
+
const existing = Array.from(ledger.records.values()).find(r => r.sourceReceiptId === receipt.sourceReceiptId
|
|
61
|
+
&& r.agentId === receipt.agentId
|
|
62
|
+
&& r.principalId === receipt.principalId);
|
|
63
|
+
if (existing) {
|
|
64
|
+
// Update existing contribution record
|
|
65
|
+
existing.accessCount += 1;
|
|
66
|
+
existing.lastAccessAt = receipt.timestamp;
|
|
67
|
+
if (!existing.purposes.includes(receipt.declaredPurpose)) {
|
|
68
|
+
existing.purposes.push(receipt.declaredPurpose);
|
|
69
|
+
}
|
|
70
|
+
if (!existing.accessMethods.includes(receipt.accessMethod)) {
|
|
71
|
+
existing.accessMethods.push(receipt.accessMethod);
|
|
72
|
+
}
|
|
73
|
+
existing.receiptIds.push(receipt.accessReceiptId);
|
|
74
|
+
existing.compensationAccrued = computeCompensation(receipt.termsAtAccessTime, existing.accessCount);
|
|
75
|
+
return existing;
|
|
76
|
+
}
|
|
77
|
+
// Create new contribution record
|
|
78
|
+
const record = {
|
|
79
|
+
contributionId: 'dcr_' + crypto.randomUUID(),
|
|
80
|
+
sourceReceiptId: receipt.sourceReceiptId,
|
|
81
|
+
sourceDescriptor,
|
|
82
|
+
agentId: receipt.agentId,
|
|
83
|
+
agentPublicKey: receipt.agentPublicKey,
|
|
84
|
+
principalId: receipt.principalId,
|
|
85
|
+
accessCount: 1,
|
|
86
|
+
firstAccessAt: receipt.timestamp,
|
|
87
|
+
lastAccessAt: receipt.timestamp,
|
|
88
|
+
purposes: [receipt.declaredPurpose],
|
|
89
|
+
accessMethods: [receipt.accessMethod],
|
|
90
|
+
compensationAccrued: computeCompensation(receipt.termsAtAccessTime, 1),
|
|
91
|
+
receiptIds: [receipt.accessReceiptId],
|
|
92
|
+
};
|
|
93
|
+
ledger.records.set(record.contributionId, record);
|
|
94
|
+
addToIndex(ledger.index.bySource, receipt.sourceReceiptId, record.contributionId);
|
|
95
|
+
addToIndex(ledger.index.byAgent, receipt.agentId, record.contributionId);
|
|
96
|
+
addToIndex(ledger.index.byPrincipal, receipt.principalId, record.contributionId);
|
|
97
|
+
return record;
|
|
98
|
+
}
|
|
99
|
+
// ── Query Contributions ──
|
|
100
|
+
export function queryContributions(ledger, query) {
|
|
101
|
+
let candidates;
|
|
102
|
+
// Use index for fast lookup when possible
|
|
103
|
+
if (query.sourceReceiptId && ledger.index.bySource.has(query.sourceReceiptId)) {
|
|
104
|
+
const ids = ledger.index.bySource.get(query.sourceReceiptId);
|
|
105
|
+
candidates = Array.from(ids).map(id => ledger.records.get(id)).filter(Boolean);
|
|
106
|
+
}
|
|
107
|
+
else if (query.agentId && ledger.index.byAgent.has(query.agentId)) {
|
|
108
|
+
const ids = ledger.index.byAgent.get(query.agentId);
|
|
109
|
+
candidates = Array.from(ids).map(id => ledger.records.get(id)).filter(Boolean);
|
|
110
|
+
}
|
|
111
|
+
else if (query.principalId && ledger.index.byPrincipal.has(query.principalId)) {
|
|
112
|
+
const ids = ledger.index.byPrincipal.get(query.principalId);
|
|
113
|
+
candidates = Array.from(ids).map(id => ledger.records.get(id)).filter(Boolean);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
candidates = Array.from(ledger.records.values());
|
|
117
|
+
}
|
|
118
|
+
return candidates.filter(r => {
|
|
119
|
+
if (query.sourceReceiptId && r.sourceReceiptId !== query.sourceReceiptId)
|
|
120
|
+
return false;
|
|
121
|
+
if (query.agentId && r.agentId !== query.agentId)
|
|
122
|
+
return false;
|
|
123
|
+
if (query.principalId && r.principalId !== query.principalId)
|
|
124
|
+
return false;
|
|
125
|
+
if (query.purpose && !r.purposes.includes(query.purpose))
|
|
126
|
+
return false;
|
|
127
|
+
if (query.after && r.lastAccessAt < query.after)
|
|
128
|
+
return false;
|
|
129
|
+
if (query.before && r.firstAccessAt > query.before)
|
|
130
|
+
return false;
|
|
131
|
+
if (query.minAccessCount && r.accessCount < query.minAccessCount)
|
|
132
|
+
return false;
|
|
133
|
+
return true;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// ── Source Metrics ──
|
|
137
|
+
// "Show me how many agents used our dataset this month and what's owed"
|
|
138
|
+
export function getSourceMetrics(ledger, sourceReceiptId) {
|
|
139
|
+
const records = queryContributions(ledger, { sourceReceiptId });
|
|
140
|
+
if (records.length === 0)
|
|
141
|
+
return null;
|
|
142
|
+
const uniqueAgents = new Set(records.map(r => r.agentId));
|
|
143
|
+
const uniquePrincipals = new Set(records.map(r => r.principalId));
|
|
144
|
+
const purposeBreakdown = {};
|
|
145
|
+
let totalAccesses = 0;
|
|
146
|
+
let totalOwed = 0;
|
|
147
|
+
let currency = 'usd';
|
|
148
|
+
for (const r of records) {
|
|
149
|
+
totalAccesses += r.accessCount;
|
|
150
|
+
totalOwed += r.compensationAccrued.totalOwed;
|
|
151
|
+
currency = r.compensationAccrued.currency || currency;
|
|
152
|
+
for (const p of r.purposes) {
|
|
153
|
+
purposeBreakdown[p] = (purposeBreakdown[p] || 0) + r.accessCount;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const topAgents = records
|
|
157
|
+
.sort((a, b) => b.accessCount - a.accessCount)
|
|
158
|
+
.slice(0, 10)
|
|
159
|
+
.map(r => ({ agentId: r.agentId, accessCount: r.accessCount }));
|
|
160
|
+
return {
|
|
161
|
+
sourceReceiptId,
|
|
162
|
+
sourceDescriptor: records[0]?.sourceDescriptor || '',
|
|
163
|
+
totalAccesses,
|
|
164
|
+
uniqueAgents: uniqueAgents.size,
|
|
165
|
+
uniquePrincipals: uniquePrincipals.size,
|
|
166
|
+
purposeBreakdown,
|
|
167
|
+
compensationOwed: {
|
|
168
|
+
model: records[0]?.compensationAccrued.model || 'none',
|
|
169
|
+
totalOwed,
|
|
170
|
+
currency,
|
|
171
|
+
accessesBilled: totalAccesses,
|
|
172
|
+
lastComputedAt: new Date().toISOString(),
|
|
173
|
+
},
|
|
174
|
+
firstAccess: records.reduce((min, r) => r.firstAccessAt < min ? r.firstAccessAt : min, records[0].firstAccessAt),
|
|
175
|
+
lastAccess: records.reduce((max, r) => r.lastAccessAt > max ? r.lastAccessAt : max, records[0].lastAccessAt),
|
|
176
|
+
topAgents,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// ── Agent Data Footprint ──
|
|
180
|
+
// "Show me every data source this agent has touched"
|
|
181
|
+
export function getAgentDataFootprint(ledger, agentId) {
|
|
182
|
+
const records = queryContributions(ledger, { agentId });
|
|
183
|
+
if (records.length === 0)
|
|
184
|
+
return null;
|
|
185
|
+
let totalAccesses = 0;
|
|
186
|
+
let totalComp = 0;
|
|
187
|
+
let currency = 'usd';
|
|
188
|
+
const sources = records.map(r => {
|
|
189
|
+
totalAccesses += r.accessCount;
|
|
190
|
+
totalComp += r.compensationAccrued.totalOwed;
|
|
191
|
+
currency = r.compensationAccrued.currency || currency;
|
|
192
|
+
const status = r.compensationAccrued.model === 'none' ? 'none'
|
|
193
|
+
: r.compensationAccrued.model === 'attribution_only' ? 'attribution_only'
|
|
194
|
+
: r.compensationAccrued.totalOwed > 0 ? 'accruing' : 'none';
|
|
195
|
+
return {
|
|
196
|
+
sourceReceiptId: r.sourceReceiptId,
|
|
197
|
+
sourceDescriptor: r.sourceDescriptor,
|
|
198
|
+
accessCount: r.accessCount,
|
|
199
|
+
purposes: r.purposes,
|
|
200
|
+
lastAccess: r.lastAccessAt,
|
|
201
|
+
compensationStatus: status,
|
|
202
|
+
};
|
|
203
|
+
});
|
|
204
|
+
return {
|
|
205
|
+
agentId,
|
|
206
|
+
agentPublicKey: records[0].agentPublicKey,
|
|
207
|
+
principalId: records[0].principalId,
|
|
208
|
+
sourcesAccessed: sources,
|
|
209
|
+
totalSources: records.length,
|
|
210
|
+
totalAccesses,
|
|
211
|
+
totalCompensationAccrued: totalComp,
|
|
212
|
+
currency,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=data-contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-contribution.js","sourceRoot":"","sources":["../../../src/core/data-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SettlementRecord, SettlementPeriod, SettlementVerification, DataComplianceReport } from '../types/data-contribution.js';
|
|
2
|
+
import { ContributionLedger } from './data-contribution.js';
|
|
3
|
+
export declare function generateSettlement(ledger: ContributionLedger, period: SettlementPeriod, generatorPublicKey: string, generatorPrivateKey: string): SettlementRecord;
|
|
4
|
+
export declare function verifySettlement(record: SettlementRecord): SettlementVerification;
|
|
5
|
+
export declare function generateComplianceReport(ledger: ContributionLedger, period: SettlementPeriod, reportType: DataComplianceReport['reportType'], generatorPrivateKey: string, options?: {
|
|
6
|
+
agentId?: string;
|
|
7
|
+
principalId?: string;
|
|
8
|
+
}): DataComplianceReport;
|
|
9
|
+
//# sourceMappingURL=data-settlement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-settlement.d.ts","sourceRoot":"","sources":["../../../src/core/data-settlement.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,EAAsB,gBAAgB,EACtD,sBAAsB,EAAE,oBAAoB,EAC7C,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,kBAAkB,EAAsB,MAAM,wBAAwB,CAAA;AAwC/E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,gBAAgB,EACxB,kBAAkB,EAAE,MAAM,EAC1B,mBAAmB,EAAE,MAAM,GAC1B,gBAAgB,CAkDlB;AAID,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,sBAAsB,CAkCjF;AAKD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,oBAAoB,CAAC,YAAY,CAAC,EAC9C,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,oBAAoB,CAyDtB"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
// ══════════════════════════════════════════════════════════════════════
|
|
2
|
+
// Module 39: Data Settlement Protocol
|
|
3
|
+
// ══════════════════════════════════════════════════════════════════════
|
|
4
|
+
// Takes access receipts + DataTerms → generates settlement records.
|
|
5
|
+
// Cryptographically signed, Merkle-committed, auditable.
|
|
6
|
+
//
|
|
7
|
+
// Settlement is evidence, not payment. "Data Source X is owed $47.23
|
|
8
|
+
// across 4,723 access events." The record is signed and Merkle-committed.
|
|
9
|
+
// Payment rails plug in on top. The hard part is the proof of what's owed.
|
|
10
|
+
// ══════════════════════════════════════════════════════════════════════
|
|
11
|
+
import crypto from 'crypto';
|
|
12
|
+
import { queryContributions } from './data-contribution.js';
|
|
13
|
+
// ── Merkle Root for Receipts ──
|
|
14
|
+
function hashReceiptId(id) {
|
|
15
|
+
return crypto.createHash('sha256').update(id).digest('hex');
|
|
16
|
+
}
|
|
17
|
+
function buildMerkleRoot(receiptIds) {
|
|
18
|
+
if (receiptIds.length === 0)
|
|
19
|
+
return crypto.createHash('sha256').update('empty').digest('hex');
|
|
20
|
+
let hashes = receiptIds.map(hashReceiptId);
|
|
21
|
+
while (hashes.length > 1) {
|
|
22
|
+
const next = [];
|
|
23
|
+
for (let i = 0; i < hashes.length; i += 2) {
|
|
24
|
+
const left = hashes[i];
|
|
25
|
+
const right = i + 1 < hashes.length ? hashes[i + 1] : left;
|
|
26
|
+
next.push(crypto.createHash('sha256').update(left + right).digest('hex'));
|
|
27
|
+
}
|
|
28
|
+
hashes = next;
|
|
29
|
+
}
|
|
30
|
+
return hashes[0];
|
|
31
|
+
}
|
|
32
|
+
// ── Sign Settlement ──
|
|
33
|
+
function signSettlement(record, privateKey) {
|
|
34
|
+
const payload = JSON.stringify({
|
|
35
|
+
id: record.settlementId,
|
|
36
|
+
period: record.period,
|
|
37
|
+
merkleRoot: record.merkleRoot,
|
|
38
|
+
totalAmount: record.totalAmount,
|
|
39
|
+
currency: record.currency,
|
|
40
|
+
});
|
|
41
|
+
return crypto.createHash('sha256').update(payload + privateKey).digest('hex');
|
|
42
|
+
}
|
|
43
|
+
// ── Generate Settlement ──
|
|
44
|
+
// Takes a contribution ledger + period → produces a signed settlement record.
|
|
45
|
+
export function generateSettlement(ledger, period, generatorPublicKey, generatorPrivateKey) {
|
|
46
|
+
// Get all contributions in the period
|
|
47
|
+
const records = queryContributions(ledger, {
|
|
48
|
+
after: period.startDate,
|
|
49
|
+
before: period.endDate,
|
|
50
|
+
});
|
|
51
|
+
// Group by source → payer
|
|
52
|
+
const lineItems = [];
|
|
53
|
+
const allReceiptIds = [];
|
|
54
|
+
for (const r of records) {
|
|
55
|
+
allReceiptIds.push(...r.receiptIds);
|
|
56
|
+
lineItems.push({
|
|
57
|
+
sourceReceiptId: r.sourceReceiptId,
|
|
58
|
+
sourceDescriptor: r.sourceDescriptor,
|
|
59
|
+
sourcePrincipalId: null, // resolved from source receipt externally
|
|
60
|
+
payerPrincipalId: r.principalId,
|
|
61
|
+
accessCount: r.accessCount,
|
|
62
|
+
compensationModel: r.compensationAccrued.model,
|
|
63
|
+
amount: r.compensationAccrued.totalOwed,
|
|
64
|
+
currency: r.compensationAccrued.currency,
|
|
65
|
+
receiptIds: r.receiptIds,
|
|
66
|
+
period,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
const totalAmount = lineItems.reduce((s, li) => s + li.amount, 0);
|
|
70
|
+
const currency = lineItems[0]?.currency || 'usd';
|
|
71
|
+
const totalAccesses = lineItems.reduce((s, li) => s + li.accessCount, 0);
|
|
72
|
+
const uniqueSources = new Set(lineItems.map(li => li.sourceReceiptId)).size;
|
|
73
|
+
const uniquePayers = new Set(lineItems.map(li => li.payerPrincipalId)).size;
|
|
74
|
+
const merkleRoot = buildMerkleRoot(allReceiptIds);
|
|
75
|
+
const record = {
|
|
76
|
+
settlementId: 'stlr_' + crypto.randomUUID(),
|
|
77
|
+
period,
|
|
78
|
+
generatedAt: new Date().toISOString(),
|
|
79
|
+
generatedBy: generatorPublicKey,
|
|
80
|
+
lineItems,
|
|
81
|
+
totalAmount,
|
|
82
|
+
currency,
|
|
83
|
+
totalAccesses,
|
|
84
|
+
uniqueSources,
|
|
85
|
+
uniquePayers,
|
|
86
|
+
merkleRoot,
|
|
87
|
+
};
|
|
88
|
+
const signature = signSettlement(record, generatorPrivateKey);
|
|
89
|
+
return { ...record, signature };
|
|
90
|
+
}
|
|
91
|
+
// ── Verify Settlement ──
|
|
92
|
+
export function verifySettlement(record) {
|
|
93
|
+
const errors = [];
|
|
94
|
+
// Check signature exists
|
|
95
|
+
const signatureValid = !!record.signature && record.signature.length === 64;
|
|
96
|
+
// Check merkle root
|
|
97
|
+
const allReceiptIds = record.lineItems.flatMap(li => li.receiptIds);
|
|
98
|
+
const expectedMerkle = buildMerkleRoot(allReceiptIds);
|
|
99
|
+
const merkleValid = record.merkleRoot === expectedMerkle;
|
|
100
|
+
if (!merkleValid)
|
|
101
|
+
errors.push('Merkle root mismatch');
|
|
102
|
+
// Check line item consistency
|
|
103
|
+
let lineItemsConsistent = true;
|
|
104
|
+
for (const li of record.lineItems) {
|
|
105
|
+
if (li.compensationModel === 'per_access' && li.amount <= 0 && li.accessCount > 0) {
|
|
106
|
+
lineItemsConsistent = false;
|
|
107
|
+
errors.push(`Line item ${li.sourceReceiptId}: per_access with zero amount`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Check total consistency
|
|
111
|
+
const computedTotal = record.lineItems.reduce((s, li) => s + li.amount, 0);
|
|
112
|
+
const totalConsistent = Math.abs(computedTotal - record.totalAmount) < 0.001;
|
|
113
|
+
if (!totalConsistent)
|
|
114
|
+
errors.push('Total amount does not match sum of line items');
|
|
115
|
+
return {
|
|
116
|
+
valid: errors.length === 0 && signatureValid && merkleValid,
|
|
117
|
+
errors,
|
|
118
|
+
signatureValid,
|
|
119
|
+
merkleValid,
|
|
120
|
+
lineItemsConsistent,
|
|
121
|
+
totalConsistent,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
// ── Generate Compliance Report ──
|
|
125
|
+
// GDPR Article 30 / EU AI Act Article 10 / SOC 2
|
|
126
|
+
export function generateComplianceReport(ledger, period, reportType, generatorPrivateKey, options) {
|
|
127
|
+
const query = { after: period.startDate, before: period.endDate };
|
|
128
|
+
if (options?.agentId)
|
|
129
|
+
query.agentId = options.agentId;
|
|
130
|
+
if (options?.principalId)
|
|
131
|
+
query.principalId = options.principalId;
|
|
132
|
+
const records = queryContributions(ledger, query);
|
|
133
|
+
// Compute summary
|
|
134
|
+
let totalAccesses = 0;
|
|
135
|
+
let totalOwed = 0;
|
|
136
|
+
let settled = 0;
|
|
137
|
+
let currency = 'usd';
|
|
138
|
+
const purposeBreakdown = {};
|
|
139
|
+
const uniqueSources = new Set();
|
|
140
|
+
let termsViolations = 0;
|
|
141
|
+
let advisoryWarnings = 0;
|
|
142
|
+
const accessDetails = [];
|
|
143
|
+
for (const r of records) {
|
|
144
|
+
totalAccesses += r.accessCount;
|
|
145
|
+
totalOwed += r.compensationAccrued.totalOwed;
|
|
146
|
+
currency = r.compensationAccrued.currency || currency;
|
|
147
|
+
uniqueSources.add(r.sourceReceiptId);
|
|
148
|
+
for (const p of r.purposes) {
|
|
149
|
+
purposeBreakdown[p] = (purposeBreakdown[p] || 0) + r.accessCount;
|
|
150
|
+
}
|
|
151
|
+
accessDetails.push({
|
|
152
|
+
sourceDescriptor: r.sourceDescriptor,
|
|
153
|
+
accessCount: r.accessCount,
|
|
154
|
+
purposes: r.purposes,
|
|
155
|
+
compensationModel: r.compensationAccrued.model,
|
|
156
|
+
termsCompliant: true, // Would check against stored terms in production
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
const payload = JSON.stringify({ reportType, period, totalAccesses });
|
|
160
|
+
const signature = crypto.createHash('sha256').update(payload + generatorPrivateKey).digest('hex');
|
|
161
|
+
return {
|
|
162
|
+
reportId: 'dcpr_' + crypto.randomUUID(),
|
|
163
|
+
reportType,
|
|
164
|
+
period,
|
|
165
|
+
generatedAt: new Date().toISOString(),
|
|
166
|
+
agentId: options?.agentId,
|
|
167
|
+
principalId: options?.principalId,
|
|
168
|
+
summary: {
|
|
169
|
+
totalDataAccesses: totalAccesses,
|
|
170
|
+
uniqueDataSources: uniqueSources.size,
|
|
171
|
+
purposeBreakdown,
|
|
172
|
+
compensationSummary: { total: totalOwed, currency, settled, pending: totalOwed - settled },
|
|
173
|
+
termsViolations,
|
|
174
|
+
advisoryWarnings,
|
|
175
|
+
},
|
|
176
|
+
accessDetails,
|
|
177
|
+
signature,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=data-settlement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-settlement.js","sourceRoot":"","sources":["../../../src/core/data-settlement.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,sCAAsC;AACtC,yEAAyE;AACzE,oEAAoE;AACpE,yDAAyD;AACzD,EAAE;AACF,qEAAqE;AACrE,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AAEzE,OAAO,MAAM,MAAM,QAAQ,CAAA;AAQ3B,OAAO,EAAsB,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE/E,iCAAiC;AAEjC,SAAS,aAAa,CAAC,EAAU;IAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,eAAe,CAAC,UAAoB;IAC3C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7F,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC1C,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACtB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3E,CAAC;QACD,MAAM,GAAG,IAAI,CAAA;IACf,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC;AAED,wBAAwB;AAExB,SAAS,cAAc,CAAC,MAA2C,EAAE,UAAkB;IACrF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,EAAE,EAAE,MAAM,CAAC,YAAY;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/E,CAAC;AAGD,4BAA4B;AAC5B,8EAA8E;AAE9E,MAAM,UAAU,kBAAkB,CAChC,MAA0B,EAC1B,MAAwB,EACxB,kBAA0B,EAC1B,mBAA2B;IAE3B,sCAAsC;IACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE;QACzC,KAAK,EAAE,MAAM,CAAC,SAAS;QACvB,MAAM,EAAE,MAAM,CAAC,OAAO;KACvB,CAAC,CAAA;IAEF,0BAA0B;IAC1B,MAAM,SAAS,GAAyB,EAAE,CAAA;IAC1C,MAAM,aAAa,GAAa,EAAE,CAAA;IAElC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;QACnC,SAAS,CAAC,IAAI,CAAC;YACb,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,iBAAiB,EAAE,IAAI,EAAE,0CAA0C;YACnE,gBAAgB,EAAE,CAAC,CAAC,WAAW;YAC/B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,iBAAiB,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK;YAC9C,MAAM,EAAE,CAAC,CAAC,mBAAmB,CAAC,SAAS;YACvC,QAAQ,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ;YACxC,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,KAAK,CAAA;IAChD,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3E,MAAM,UAAU,GAAG,eAAe,CAAC,aAAa,CAAC,CAAA;IAEjD,MAAM,MAAM,GAAwC;QAClD,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE;QAC3C,MAAM;QACN,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,WAAW,EAAE,kBAAkB;QAC/B,SAAS;QACT,WAAW;QACX,QAAQ;QACR,aAAa;QACb,aAAa;QACb,YAAY;QACZ,UAAU;KACX,CAAA;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC7D,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAA;AACjC,CAAC;AAED,0BAA0B;AAE1B,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,yBAAyB;IACzB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,CAAA;IAE3E,oBAAoB;IACpB,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;IACnE,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,CAAC,CAAA;IACrD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,KAAK,cAAc,CAAA;IACxD,IAAI,CAAC,WAAW;QAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAErD,8BAA8B;IAC9B,IAAI,mBAAmB,GAAG,IAAI,CAAA;IAC9B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,EAAE,CAAC,iBAAiB,KAAK,YAAY,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAClF,mBAAmB,GAAG,KAAK,CAAA;YAC3B,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,eAAe,+BAA+B,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAA;IAC5E,IAAI,CAAC,eAAe;QAAE,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;IAElF,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,IAAI,WAAW;QAC3D,MAAM;QACN,cAAc;QACd,WAAW;QACX,mBAAmB;QACnB,eAAe;KAChB,CAAA;AACH,CAAC;AAED,mCAAmC;AACnC,iDAAiD;AAEjD,MAAM,UAAU,wBAAwB,CACtC,MAA0B,EAC1B,MAAwB,EACxB,UAA8C,EAC9C,mBAA2B,EAC3B,OAAoD;IAEpD,MAAM,KAAK,GAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;IACtE,IAAI,OAAO,EAAE,OAAO;QAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IACrD,IAAI,OAAO,EAAE,WAAW;QAAE,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;IAEjE,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAEjD,kBAAkB;IAClB,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,gBAAgB,GAA2B,EAAE,CAAA;IACnD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;IACvC,IAAI,eAAe,GAAG,CAAC,CAAA;IACvB,IAAI,gBAAgB,GAAG,CAAC,CAAA;IAExB,MAAM,aAAa,GAA0C,EAAE,CAAA;IAE/D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,aAAa,IAAI,CAAC,CAAC,WAAW,CAAA;QAC9B,SAAS,IAAI,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAA;QAC5C,QAAQ,GAAG,CAAC,CAAC,mBAAmB,CAAC,QAAQ,IAAI,QAAQ,CAAA;QACrD,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;QACpC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3B,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAA;QAClE,CAAC;QACD,aAAa,CAAC,IAAI,CAAC;YACjB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,iBAAiB,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK;YAC9C,cAAc,EAAE,IAAI,EAAE,iDAAiD;SACxE,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,mBAAmB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEjG,OAAO;QACL,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE;QACvC,UAAU;QACV,MAAM;QACN,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,OAAO,EAAE;YACP,iBAAiB,EAAE,aAAa;YAChC,iBAAiB,EAAE,aAAa,CAAC,IAAI;YACrC,gBAAgB;YAChB,mBAAmB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,EAAE;YAC1F,eAAe;YACf,gBAAgB;SACjB;QACD,aAAa;QACb,SAAS;KACV,CAAA;AACH,CAAC"}
|
|
@@ -9,6 +9,8 @@ export interface CreateDelegationOptions {
|
|
|
9
9
|
maxDepth?: number;
|
|
10
10
|
currentDepth?: number;
|
|
11
11
|
expiresInHours?: number;
|
|
12
|
+
/** Optional: delegation not valid before this ISO timestamp (replay mitigation) */
|
|
13
|
+
notBefore?: string;
|
|
12
14
|
privateKey: string;
|
|
13
15
|
}
|
|
14
16
|
export declare function createDelegation(opts: CreateDelegationOptions): Delegation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../../src/core/delegation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAC7D,uBAAuB,EAAE,yBAAyB,EAClD,eAAe,EAChB,MAAM,sBAAsB,CAAA;AAkB7B,wBAAgB,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI,CAMnF;AAYD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,mBAAmB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAA;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../../src/core/delegation.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,8 @@ export function createDelegation(opts) {
|
|
|
43
43
|
spentAmount: 0,
|
|
44
44
|
maxDepth: opts.maxDepth ?? 1,
|
|
45
45
|
currentDepth: opts.currentDepth ?? 0,
|
|
46
|
-
createdAt: now.toISOString()
|
|
46
|
+
createdAt: now.toISOString(),
|
|
47
|
+
notBefore: opts.notBefore ?? now.toISOString(),
|
|
47
48
|
};
|
|
48
49
|
const canonical = canonicalize(delegation);
|
|
49
50
|
const signature = sign(canonical, opts.privateKey);
|
|
@@ -110,6 +111,12 @@ export function verifyDelegation(delegation) {
|
|
|
110
111
|
const expired = new Date(delegation.expiresAt) < new Date();
|
|
111
112
|
if (expired)
|
|
112
113
|
errors.push('Delegation expired');
|
|
114
|
+
// Check notBefore (timestamp freshness — B-8 security hardening)
|
|
115
|
+
const notYetValid = delegation.notBefore
|
|
116
|
+
? new Date(delegation.notBefore) > new Date()
|
|
117
|
+
: false;
|
|
118
|
+
if (notYetValid)
|
|
119
|
+
errors.push(`Delegation not yet valid (notBefore: ${delegation.notBefore})`);
|
|
113
120
|
// Check revocation
|
|
114
121
|
const revocation = revocationRegistry.get(delegation.delegationId);
|
|
115
122
|
const revoked = !!revocation;
|
|
@@ -123,6 +130,7 @@ export function verifyDelegation(delegation) {
|
|
|
123
130
|
valid: errors.length === 0,
|
|
124
131
|
revoked,
|
|
125
132
|
expired,
|
|
133
|
+
notYetValid,
|
|
126
134
|
depthExceeded,
|
|
127
135
|
revokedAt: revocation?.revokedAt,
|
|
128
136
|
errors
|
|
@@ -247,7 +255,7 @@ export function validateChain(delegationIds) {
|
|
|
247
255
|
delegatedTo: 'unknown',
|
|
248
256
|
depth: i,
|
|
249
257
|
status: {
|
|
250
|
-
valid: false, revoked: false, expired: false,
|
|
258
|
+
valid: false, revoked: false, expired: false, notYetValid: false,
|
|
251
259
|
depthExceeded: false, errors: ['Delegation not found in registry']
|
|
252
260
|
}
|
|
253
261
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../../src/core/delegation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../../src/core/delegation.ts"],"names":[],"mappings":"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"}
|