agent-passport-system 1.1.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 (68) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +194 -0
  3. package/dist/src/cli/index.d.ts +3 -0
  4. package/dist/src/cli/index.d.ts.map +1 -0
  5. package/dist/src/cli/index.js +569 -0
  6. package/dist/src/cli/index.js.map +1 -0
  7. package/dist/src/contract.d.ts +97 -0
  8. package/dist/src/contract.d.ts.map +1 -0
  9. package/dist/src/contract.js +161 -0
  10. package/dist/src/contract.js.map +1 -0
  11. package/dist/src/core/attribution.d.ts +71 -0
  12. package/dist/src/core/attribution.d.ts.map +1 -0
  13. package/dist/src/core/attribution.js +277 -0
  14. package/dist/src/core/attribution.js.map +1 -0
  15. package/dist/src/core/canonical.d.ts +2 -0
  16. package/dist/src/core/canonical.d.ts.map +1 -0
  17. package/dist/src/core/canonical.js +23 -0
  18. package/dist/src/core/canonical.js.map +1 -0
  19. package/dist/src/core/delegation.d.ts +41 -0
  20. package/dist/src/core/delegation.d.ts.map +1 -0
  21. package/dist/src/core/delegation.js +173 -0
  22. package/dist/src/core/delegation.js.map +1 -0
  23. package/dist/src/core/index.d.ts +3 -0
  24. package/dist/src/core/index.d.ts.map +1 -0
  25. package/dist/src/core/index.js +3 -0
  26. package/dist/src/core/index.js.map +1 -0
  27. package/dist/src/core/passport.d.ts +9 -0
  28. package/dist/src/core/passport.d.ts.map +1 -0
  29. package/dist/src/core/passport.js +76 -0
  30. package/dist/src/core/passport.js.map +1 -0
  31. package/dist/src/core/values.d.ts +49 -0
  32. package/dist/src/core/values.d.ts.map +1 -0
  33. package/dist/src/core/values.js +320 -0
  34. package/dist/src/core/values.js.map +1 -0
  35. package/dist/src/crypto/index.d.ts +2 -0
  36. package/dist/src/crypto/index.d.ts.map +1 -0
  37. package/dist/src/crypto/index.js +2 -0
  38. package/dist/src/crypto/index.js.map +1 -0
  39. package/dist/src/crypto/keys.d.ts +6 -0
  40. package/dist/src/crypto/keys.d.ts.map +1 -0
  41. package/dist/src/crypto/keys.js +63 -0
  42. package/dist/src/crypto/keys.js.map +1 -0
  43. package/dist/src/index.d.ts +13 -0
  44. package/dist/src/index.d.ts.map +1 -0
  45. package/dist/src/index.js +27 -0
  46. package/dist/src/index.js.map +1 -0
  47. package/dist/src/types/index.d.ts +2 -0
  48. package/dist/src/types/index.d.ts.map +1 -0
  49. package/dist/src/types/index.js +2 -0
  50. package/dist/src/types/index.js.map +1 -0
  51. package/dist/src/types/passport.d.ts +260 -0
  52. package/dist/src/types/passport.d.ts.map +1 -0
  53. package/dist/src/types/passport.js +3 -0
  54. package/dist/src/types/passport.js.map +1 -0
  55. package/dist/src/verification/index.d.ts +3 -0
  56. package/dist/src/verification/index.d.ts.map +1 -0
  57. package/dist/src/verification/index.js +3 -0
  58. package/dist/src/verification/index.js.map +1 -0
  59. package/dist/src/verification/reputation.d.ts +4 -0
  60. package/dist/src/verification/reputation.d.ts.map +1 -0
  61. package/dist/src/verification/reputation.js +43 -0
  62. package/dist/src/verification/reputation.js.map +1 -0
  63. package/dist/src/verification/verify.d.ts +5 -0
  64. package/dist/src/verification/verify.d.ts.map +1 -0
  65. package/dist/src/verification/verify.js +69 -0
  66. package/dist/src/verification/verify.js.map +1 -0
  67. package/package.json +59 -0
  68. package/values/floor.yaml +204 -0
@@ -0,0 +1,23 @@
1
+ // Canonical JSON — deterministic serialization for signing
2
+ // Sorts keys alphabetically, omits null/undefined values
3
+ export function canonicalize(obj) {
4
+ if (obj === null || obj === undefined)
5
+ return '';
6
+ if (typeof obj !== 'object')
7
+ return JSON.stringify(obj);
8
+ if (Array.isArray(obj)) {
9
+ return '[' + obj.map(item => canonicalize(item)).join(',') + ']';
10
+ }
11
+ const sorted = Object.keys(obj)
12
+ .sort()
13
+ .filter(key => {
14
+ const val = obj[key];
15
+ return val !== null && val !== undefined;
16
+ })
17
+ .map(key => {
18
+ const val = obj[key];
19
+ return `${JSON.stringify(key)}:${canonicalize(val)}`;
20
+ });
21
+ return '{' + sorted.join(',') + '}';
22
+ }
23
+ //# sourceMappingURL=canonical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../../src/core/canonical.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,yDAAyD;AAEzD,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACvD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IAClE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC;SACvD,IAAI,EAAE;SACN,MAAM,CAAC,GAAG,CAAC,EAAE;QACZ,MAAM,GAAG,GAAI,GAA+B,CAAC,GAAG,CAAC,CAAA;QACjD,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAA;IAC1C,CAAC,CAAC;SACD,GAAG,CAAC,GAAG,CAAC,EAAE;QACT,MAAM,GAAG,GAAI,GAA+B,CAAC,GAAG,CAAC,CAAA;QACjD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAA;IACtD,CAAC,CAAC,CAAA;IACJ,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;AACrC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { Delegation, ActionReceipt, RevocationRecord, DelegationStatus } from '../types/passport.js';
2
+ export interface CreateDelegationOptions {
3
+ delegatedTo: string;
4
+ delegatedBy: string;
5
+ scope: string[];
6
+ spendLimit?: number;
7
+ maxDepth?: number;
8
+ currentDepth?: number;
9
+ expiresInHours?: number;
10
+ privateKey: string;
11
+ }
12
+ export declare function createDelegation(opts: CreateDelegationOptions): Delegation;
13
+ export interface SubDelegateOptions {
14
+ parentDelegation: Delegation;
15
+ delegatedTo: string;
16
+ scope: string[];
17
+ spendLimit?: number;
18
+ privateKey: string;
19
+ }
20
+ export declare function subDelegate(opts: SubDelegateOptions): Delegation;
21
+ export declare function verifyDelegation(delegation: Delegation): DelegationStatus;
22
+ export declare function revokeDelegation(delegationId: string, revokedBy: string, reason: string, privateKey: string): RevocationRecord;
23
+ export declare function verifyRevocation(revocation: RevocationRecord): boolean;
24
+ export interface CreateReceiptOptions {
25
+ agentId: string;
26
+ delegationId: string;
27
+ delegation: Delegation;
28
+ action: ActionReceipt['action'];
29
+ result: ActionReceipt['result'];
30
+ delegationChain: string[];
31
+ privateKey: string;
32
+ }
33
+ export declare function createReceipt(opts: CreateReceiptOptions): ActionReceipt;
34
+ export declare function verifyReceipt(receipt: ActionReceipt, agentPublicKey: string): {
35
+ valid: boolean;
36
+ errors: string[];
37
+ };
38
+ export declare function getReceipts(agentId?: string): ActionReceipt[];
39
+ export declare function getRevocation(delegationId: string): RevocationRecord | undefined;
40
+ export declare function clearStores(): void;
41
+ //# sourceMappingURL=delegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../../../src/core/delegation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAC9D,MAAM,sBAAsB,CAAA;AAY7B,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,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,CAsB1E;AAMD,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,UAAU,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,UAAU,CAqChE;AAMD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,gBAAgB,CA+BzE;AAMD,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,gBAAgB,CAgBlB;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAItE;AAMD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/B,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CA4CvE;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,MAAM,GACrB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAWtC;AAGD,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAG7D;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEhF;AAED,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
@@ -0,0 +1,173 @@
1
+ // Delegation System — create, verify, revoke, and enforce depth limits
2
+ // v1.1: Action Receipts + Revocation + Depth Limits
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import { sign, verify } from '../crypto/keys.js';
5
+ import { canonicalize } from '../core/canonical.js';
6
+ // In-memory revocation registry (in production, this would be persistent)
7
+ const revocationRegistry = new Map();
8
+ // In-memory receipt store
9
+ const receiptStore = [];
10
+ export function createDelegation(opts) {
11
+ const now = new Date();
12
+ const expiry = new Date(now);
13
+ expiry.setHours(expiry.getHours() + (opts.expiresInHours || 24));
14
+ const delegation = {
15
+ delegationId: 'del_' + uuidv4().slice(0, 12),
16
+ delegatedTo: opts.delegatedTo,
17
+ delegatedBy: opts.delegatedBy,
18
+ scope: opts.scope,
19
+ expiresAt: expiry.toISOString(),
20
+ spendLimit: opts.spendLimit,
21
+ spentAmount: 0,
22
+ maxDepth: opts.maxDepth ?? 1,
23
+ currentDepth: opts.currentDepth ?? 0,
24
+ createdAt: now.toISOString()
25
+ };
26
+ const canonical = canonicalize(delegation);
27
+ const signature = sign(canonical, opts.privateKey);
28
+ return { ...delegation, signature };
29
+ }
30
+ export function subDelegate(opts) {
31
+ const parent = opts.parentDelegation;
32
+ // Enforce depth limit — new delegation would be at parent.currentDepth + 1
33
+ const newDepth = parent.currentDepth + 1;
34
+ if (newDepth > parent.maxDepth) {
35
+ throw new Error(`Depth limit exceeded: would be depth ${newDepth}, max allowed is ${parent.maxDepth}`);
36
+ }
37
+ // Enforce scope narrowing
38
+ const invalidScopes = opts.scope.filter(s => !parent.scope.includes(s));
39
+ if (invalidScopes.length > 0) {
40
+ throw new Error(`Scope violation: [${invalidScopes}] not in parent scope [${parent.scope}]`);
41
+ }
42
+ // Enforce spend limit
43
+ const parentRemaining = (parent.spendLimit || Infinity) - (parent.spentAmount || 0);
44
+ if (opts.spendLimit && opts.spendLimit > parentRemaining) {
45
+ throw new Error(`Spend limit ${opts.spendLimit} exceeds parent remaining ${parentRemaining}`);
46
+ }
47
+ return createDelegation({
48
+ delegatedTo: opts.delegatedTo,
49
+ delegatedBy: parent.delegatedTo, // the current delegate becomes delegator
50
+ scope: opts.scope,
51
+ spendLimit: opts.spendLimit || parentRemaining,
52
+ maxDepth: parent.maxDepth,
53
+ currentDepth: parent.currentDepth + 1,
54
+ expiresInHours: 24,
55
+ privateKey: opts.privateKey
56
+ });
57
+ }
58
+ // ══════════════════════════════════════
59
+ // DELEGATION VERIFICATION
60
+ // ══════════════════════════════════════
61
+ export function verifyDelegation(delegation) {
62
+ const errors = [];
63
+ // Check signature
64
+ const { signature, ...unsigned } = delegation;
65
+ const canonical = canonicalize(unsigned);
66
+ const sigValid = verify(canonical, signature, delegation.delegatedBy);
67
+ if (!sigValid)
68
+ errors.push('Invalid delegation signature');
69
+ // Check expiry
70
+ const expired = new Date(delegation.expiresAt) < new Date();
71
+ if (expired)
72
+ errors.push('Delegation expired');
73
+ // Check revocation
74
+ const revocation = revocationRegistry.get(delegation.delegationId);
75
+ const revoked = !!revocation;
76
+ if (revoked)
77
+ errors.push(`Revoked at ${revocation.revokedAt}: ${revocation.reason}`);
78
+ // Check depth
79
+ const depthExceeded = delegation.currentDepth > delegation.maxDepth;
80
+ if (depthExceeded)
81
+ errors.push('Depth limit exceeded');
82
+ return {
83
+ valid: errors.length === 0,
84
+ revoked,
85
+ expired,
86
+ depthExceeded,
87
+ revokedAt: revocation?.revokedAt,
88
+ errors
89
+ };
90
+ }
91
+ // ══════════════════════════════════════
92
+ // REVOCATION
93
+ // ══════════════════════════════════════
94
+ export function revokeDelegation(delegationId, revokedBy, reason, privateKey) {
95
+ const record = {
96
+ revocationId: 'rev_' + uuidv4().slice(0, 12),
97
+ delegationId,
98
+ revokedBy,
99
+ revokedAt: new Date().toISOString(),
100
+ reason
101
+ };
102
+ const canonical = canonicalize(record);
103
+ const signature = sign(canonical, privateKey);
104
+ const revocation = { ...record, signature };
105
+ // Store in registry
106
+ revocationRegistry.set(delegationId, revocation);
107
+ return revocation;
108
+ }
109
+ export function verifyRevocation(revocation) {
110
+ const { signature, ...unsigned } = revocation;
111
+ const canonical = canonicalize(unsigned);
112
+ return verify(canonical, signature, revocation.revokedBy);
113
+ }
114
+ export function createReceipt(opts) {
115
+ // Verify delegation is still valid
116
+ const status = verifyDelegation(opts.delegation);
117
+ if (!status.valid) {
118
+ throw new Error(`Cannot create receipt: delegation invalid — ${status.errors.join(', ')}`);
119
+ }
120
+ // Verify scope
121
+ if (!opts.delegation.scope.includes(opts.action.scopeUsed)) {
122
+ throw new Error(`Scope '${opts.action.scopeUsed}' not in delegation [${opts.delegation.scope}]`);
123
+ }
124
+ // Verify spend
125
+ if (opts.action.spend) {
126
+ const remaining = (opts.delegation.spendLimit || Infinity) -
127
+ (opts.delegation.spentAmount || 0);
128
+ if (opts.action.spend.amount > remaining) {
129
+ throw new Error(`Spend ${opts.action.spend.amount} exceeds remaining ${remaining}`);
130
+ }
131
+ }
132
+ const receipt = {
133
+ receiptId: 'rcpt_' + uuidv4().slice(0, 12),
134
+ version: '1.1',
135
+ timestamp: new Date().toISOString(),
136
+ agentId: opts.agentId,
137
+ delegationId: opts.delegationId,
138
+ action: opts.action,
139
+ result: opts.result,
140
+ delegationChain: opts.delegationChain
141
+ };
142
+ const canonical = canonicalize(receipt);
143
+ const signature = sign(canonical, opts.privateKey);
144
+ const signedReceipt = { ...receipt, signature };
145
+ // Store receipt
146
+ receiptStore.push(signedReceipt);
147
+ return signedReceipt;
148
+ }
149
+ export function verifyReceipt(receipt, agentPublicKey) {
150
+ const errors = [];
151
+ const { signature, ...unsigned } = receipt;
152
+ const canonical = canonicalize(unsigned);
153
+ const sigValid = verify(canonical, signature, agentPublicKey);
154
+ if (!sigValid)
155
+ errors.push('Invalid receipt signature');
156
+ if (receipt.version !== '1.1')
157
+ errors.push('Unsupported receipt version');
158
+ return { valid: errors.length === 0, errors };
159
+ }
160
+ // Getters
161
+ export function getReceipts(agentId) {
162
+ if (agentId)
163
+ return receiptStore.filter(r => r.agentId === agentId);
164
+ return [...receiptStore];
165
+ }
166
+ export function getRevocation(delegationId) {
167
+ return revocationRegistry.get(delegationId);
168
+ }
169
+ export function clearStores() {
170
+ revocationRegistry.clear();
171
+ receiptStore.length = 0;
172
+ }
173
+ //# sourceMappingURL=delegation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../../src/core/delegation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createPassport, signPassport, updatePassport, isExpired } from './passport.js';
2
+ export { canonicalize } from './canonical.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { createPassport, signPassport, updatePassport, isExpired } from './passport.js';
2
+ export { canonicalize } from './canonical.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { AgentPassport, SignedPassport, KeyPair, CreatePassportOptions } from '../types/passport.js';
2
+ export declare function createPassport(options: CreatePassportOptions): {
3
+ signedPassport: SignedPassport;
4
+ keyPair: KeyPair;
5
+ };
6
+ export declare function signPassport(passport: AgentPassport, privateKey: string): SignedPassport;
7
+ export declare function updatePassport(passport: AgentPassport, updates: Partial<AgentPassport>, privateKey: string): SignedPassport;
8
+ export declare function isExpired(passport: AgentPassport): boolean;
9
+ //# sourceMappingURL=passport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passport.d.ts","sourceRoot":"","sources":["../../../src/core/passport.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EAAE,cAAc,EAAE,OAAO,EACtC,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;AAiC7B,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG;IAC9D,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;CACjB,CAyBA;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAQxF;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,EAC/B,UAAU,EAAE,MAAM,GACjB,cAAc,CAOhB;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAE1D"}
@@ -0,0 +1,76 @@
1
+ // Core Passport Operations — create, sign, update, expire
2
+ import { generateKeyPair, sign } from '../crypto/keys.js';
3
+ import { canonicalize } from './canonical.js';
4
+ const DEFAULT_EXPIRY_DAYS = 365;
5
+ function defaultReputation() {
6
+ return {
7
+ overall: 1,
8
+ collaborationsCompleted: 0,
9
+ proposalsSubmitted: 0,
10
+ proposalsApproved: 0,
11
+ tokensContributed: 0,
12
+ tasksCompleted: 0,
13
+ lastUpdated: new Date().toISOString()
14
+ };
15
+ }
16
+ function calculateVoteWeight(capabilities) {
17
+ // Base weight 1, increases with capabilities
18
+ const weights = {
19
+ code_execution: 0.5,
20
+ system_control: 0.5,
21
+ web_search: 0.2,
22
+ email_management: 0.3,
23
+ file_management: 0.3,
24
+ git_operations: 0.3,
25
+ browser_automation: 0.2,
26
+ voice_transcription: 0.1,
27
+ social_media_posting: 0.1
28
+ };
29
+ const bonus = capabilities.reduce((sum, cap) => sum + (weights[cap] || 0.1), 0);
30
+ return Math.max(1, Math.round(1 + bonus));
31
+ }
32
+ export function createPassport(options) {
33
+ const keyPair = generateKeyPair();
34
+ const now = new Date();
35
+ const expiry = new Date(now);
36
+ expiry.setDate(expiry.getDate() + (options.expiresInDays || DEFAULT_EXPIRY_DAYS));
37
+ const passport = {
38
+ version: '1.0.0',
39
+ agentId: options.agentId,
40
+ agentName: options.agentName,
41
+ ownerAlias: options.ownerAlias,
42
+ publicKey: keyPair.publicKey,
43
+ mission: options.mission,
44
+ capabilities: options.capabilities,
45
+ runtime: options.runtime,
46
+ createdAt: now.toISOString(),
47
+ expiresAt: expiry.toISOString(),
48
+ voteWeight: calculateVoteWeight(options.capabilities),
49
+ reputation: defaultReputation(),
50
+ delegations: options.delegations || [],
51
+ metadata: options.metadata || {}
52
+ };
53
+ const signedPassport = signPassport(passport, keyPair.privateKey);
54
+ return { signedPassport, keyPair };
55
+ }
56
+ export function signPassport(passport, privateKey) {
57
+ const canonical = canonicalize(passport);
58
+ const signature = sign(canonical, privateKey);
59
+ return {
60
+ passport,
61
+ signature,
62
+ signedAt: new Date().toISOString()
63
+ };
64
+ }
65
+ export function updatePassport(passport, updates, privateKey) {
66
+ const updated = { ...passport, ...updates };
67
+ // Recalculate vote weight if capabilities changed
68
+ if (updates.capabilities) {
69
+ updated.voteWeight = calculateVoteWeight(updates.capabilities);
70
+ }
71
+ return signPassport(updated, privateKey);
72
+ }
73
+ export function isExpired(passport) {
74
+ return new Date(passport.expiresAt) < new Date();
75
+ }
76
+ //# sourceMappingURL=passport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passport.js","sourceRoot":"","sources":["../../../src/core/passport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { ValuesFloor, FloorAttestation, ComplianceReport, SharedGround, AgentPassport, ActionReceipt } from '../types/passport.js';
2
+ /**
3
+ * Parse the Values Floor from a JSON object.
4
+ *
5
+ * v2 design: JSON, not YAML. The floor is a protocol artifact,
6
+ * not a config file. JSON is unambiguous, universally parseable,
7
+ * and requires zero dependencies. Every language on earth can
8
+ * read JSON. Not every language can read YAML the same way.
9
+ *
10
+ * We still support YAML for human authoring (loadFloorFromYaml),
11
+ * but the canonical representation is JSON.
12
+ */
13
+ export declare function loadFloor(input: string): ValuesFloor;
14
+ export declare function loadFloorFromFile(filePath: string): ValuesFloor;
15
+ /**
16
+ * An attestation is minimal: agent signs {floorVersion, extensions, timestamp}.
17
+ * That's it. No performative commitment text.
18
+ *
19
+ * The attestation says: "I recognize this floor version."
20
+ * The receipts say: "Here's what I actually did."
21
+ * The compliance check compares the two.
22
+ *
23
+ * Truth is in the receipts, not in the attestation.
24
+ */
25
+ export declare function attestFloor(agentId: string, publicKey: string, floorVersion: string, extensions: string[], privateKey: string, expiresInDays?: number): FloorAttestation;
26
+ export declare function verifyAttestation(attestation: FloorAttestation): {
27
+ valid: boolean;
28
+ errors: string[];
29
+ };
30
+ /**
31
+ * Evaluate compliance by producing FACTS about each principle.
32
+ *
33
+ * Previous version: returned overallCompliance: 0.943 (opinion).
34
+ * This version: returns each principle's status as a verifiable fact,
35
+ * PLUS a summary that separates what's proven from what's claimed.
36
+ *
37
+ * The compliance report is evidence. What you do with evidence
38
+ * is your decision — not the protocol's.
39
+ */
40
+ export declare function evaluateCompliance(agentId: string, receipts: ActionReceipt[], floor: ValuesFloor, delegations: Map<string, {
41
+ scope: string[];
42
+ revoked: boolean;
43
+ }>, verifierPrivateKey: string): ComplianceReport;
44
+ /**
45
+ * Determine shared ethical ground between two agents.
46
+ * Simple: same major floor version + intersection of extensions.
47
+ */
48
+ export declare function negotiateCommonGround(passportA: AgentPassport, attestationA: FloorAttestation, passportB: AgentPassport, attestationB: FloorAttestation): SharedGround;
49
+ //# sourceMappingURL=values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../src/core/values.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,WAAW,EAAkB,gBAAgB,EAC5B,gBAAgB,EAAE,YAAY,EAC/C,aAAa,EAAE,aAAa,EAC7B,MAAM,sBAAsB,CAAA;AAM7B;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAYpD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAG/D;AAiFD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,aAAa,GAAE,MAAY,GAC1B,gBAAgB,CAqBlB;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,gBAAgB,GAC5B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAgBtC;AAMD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,EAAE,EACzB,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EAC/D,kBAAkB,EAAE,MAAM,GACzB,gBAAgB,CAyClB;AAiED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,gBAAgB,GAC7B,YAAY,CA8Bd"}