@agenticprimitives/contracts 0.1.0-alpha.2

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 (84) hide show
  1. package/AUDIT.md +67 -0
  2. package/CLAUDE.md +40 -0
  3. package/LICENSE +21 -0
  4. package/README.md +45 -0
  5. package/deployments-anvil.json +1 -0
  6. package/deployments-base-sepolia.json +1 -0
  7. package/dist/abi/AgentNameAttributeResolver.json +798 -0
  8. package/dist/abi/AgentNamePredicates.json +1 -0
  9. package/dist/abi/AgentNameRegistry.json +826 -0
  10. package/dist/abi/AgentNameUniversalResolver.json +222 -0
  11. package/dist/abi/AgentProfilePredicates.json +1 -0
  12. package/dist/abi/AgentProfileResolver.json +1044 -0
  13. package/dist/abi/AgentRelationship.json +583 -0
  14. package/dist/abi/AgentRelationshipPredicates.json +1 -0
  15. package/dist/abi/AgenticGovernance.json +259 -0
  16. package/dist/abi/AllowedMethodsEnforcer.json +108 -0
  17. package/dist/abi/AllowedTargetsEnforcer.json +103 -0
  18. package/dist/abi/ApprovedHashRegistry.json +114 -0
  19. package/dist/abi/AttributeStorage.json +557 -0
  20. package/dist/abi/CaveatEnforcerBase.json +130 -0
  21. package/dist/abi/GovernanceManaged.json +43 -0
  22. package/dist/abi/IAttributeReader.json +98 -0
  23. package/dist/abi/ICaveatEnforcer.json +98 -0
  24. package/dist/abi/IDelegationManager.json +211 -0
  25. package/dist/abi/IERC7579Module.json +34 -0
  26. package/dist/abi/IERC7579ModuleLifecycle.json +60 -0
  27. package/dist/abi/IGovernanceView.json +34 -0
  28. package/dist/abi/MultiSendCallOnly.json +29 -0
  29. package/dist/abi/MultiSendCallOnlyHarness.json +42 -0
  30. package/dist/abi/OntologyTermRegistry.json +397 -0
  31. package/dist/abi/P256Verifier.json +1 -0
  32. package/dist/abi/PermissionlessSubregistry.json +207 -0
  33. package/dist/abi/RelationshipTypeRegistry.json +455 -0
  34. package/dist/abi/ShapeRegistry.json +627 -0
  35. package/dist/abi/SmartAgentModuleTypes.json +1 -0
  36. package/dist/abi/TimestampEnforcer.json +108 -0
  37. package/dist/abi/ValueEnforcer.json +103 -0
  38. package/dist/abi/WebAuthnLib.json +1 -0
  39. package/dist/abi/index.d.ts +35 -0
  40. package/dist/abi/index.js +35 -0
  41. package/package.json +48 -0
  42. package/spec.md +52 -0
  43. package/src/AgentAccount.sol +1374 -0
  44. package/src/AgentAccountFactory.sol +274 -0
  45. package/src/ApprovedHashRegistry.sol +57 -0
  46. package/src/IAgentAccount.sol +138 -0
  47. package/src/SmartAgentPaymaster.sol +281 -0
  48. package/src/UniversalSignatureValidator.sol +136 -0
  49. package/src/agency/DelegationManager.sol +374 -0
  50. package/src/agency/ICaveatEnforcer.sol +62 -0
  51. package/src/agency/IDelegationManager.sol +69 -0
  52. package/src/custody/CustodyPolicy.sol +892 -0
  53. package/src/custody/IERC7579Module.sol +60 -0
  54. package/src/enforcers/AllowedMethodsEnforcer.AUDIT.md +51 -0
  55. package/src/enforcers/AllowedMethodsEnforcer.sol +48 -0
  56. package/src/enforcers/AllowedTargetsEnforcer.AUDIT.md +49 -0
  57. package/src/enforcers/AllowedTargetsEnforcer.sol +44 -0
  58. package/src/enforcers/CaveatEnforcerBase.sol +19 -0
  59. package/src/enforcers/QuorumEnforcer.AUDIT.md +71 -0
  60. package/src/enforcers/QuorumEnforcer.sol +191 -0
  61. package/src/enforcers/TimestampEnforcer.AUDIT.md +50 -0
  62. package/src/enforcers/TimestampEnforcer.sol +43 -0
  63. package/src/enforcers/ValueEnforcer.AUDIT.md +51 -0
  64. package/src/enforcers/ValueEnforcer.sol +41 -0
  65. package/src/governance/AgenticGovernance.sol +140 -0
  66. package/src/governance/GovernanceManaged.sol +75 -0
  67. package/src/governance/IGovernance.sol +15 -0
  68. package/src/identity/AgentProfilePredicates.sol +40 -0
  69. package/src/identity/AgentProfileResolver.sol +194 -0
  70. package/src/libraries/MultiSendCallOnly.sol +95 -0
  71. package/src/libraries/P256Verifier.sol +47 -0
  72. package/src/libraries/SignatureSlotRecovery.sol +196 -0
  73. package/src/libraries/WebAuthnLib.sol +164 -0
  74. package/src/naming/AgentNameAttributeResolver.sol +95 -0
  75. package/src/naming/AgentNamePredicates.sol +74 -0
  76. package/src/naming/AgentNameRegistry.sol +362 -0
  77. package/src/naming/AgentNameUniversalResolver.sol +210 -0
  78. package/src/naming/PermissionlessSubregistry.sol +98 -0
  79. package/src/ontology/AttributeStorage.sol +289 -0
  80. package/src/ontology/OntologyTermRegistry.sol +146 -0
  81. package/src/ontology/ShapeRegistry.sol +240 -0
  82. package/src/relationships/AgentRelationship.sol +289 -0
  83. package/src/relationships/AgentRelationshipPredicates.sol +44 -0
  84. package/src/relationships/RelationshipTypeRegistry.sol +143 -0
@@ -0,0 +1,583 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "activateEdge",
5
+ "inputs": [
6
+ {
7
+ "name": "edgeId",
8
+ "type": "bytes32",
9
+ "internalType": "bytes32"
10
+ }
11
+ ],
12
+ "outputs": [],
13
+ "stateMutability": "nonpayable"
14
+ },
15
+ {
16
+ "type": "function",
17
+ "name": "addRole",
18
+ "inputs": [
19
+ {
20
+ "name": "edgeId",
21
+ "type": "bytes32",
22
+ "internalType": "bytes32"
23
+ },
24
+ {
25
+ "name": "role",
26
+ "type": "bytes32",
27
+ "internalType": "bytes32"
28
+ }
29
+ ],
30
+ "outputs": [],
31
+ "stateMutability": "nonpayable"
32
+ },
33
+ {
34
+ "type": "function",
35
+ "name": "computeEdgeId",
36
+ "inputs": [
37
+ {
38
+ "name": "subject",
39
+ "type": "address",
40
+ "internalType": "address"
41
+ },
42
+ {
43
+ "name": "object_",
44
+ "type": "address",
45
+ "internalType": "address"
46
+ },
47
+ {
48
+ "name": "relationshipType",
49
+ "type": "bytes32",
50
+ "internalType": "bytes32"
51
+ }
52
+ ],
53
+ "outputs": [
54
+ {
55
+ "name": "",
56
+ "type": "bytes32",
57
+ "internalType": "bytes32"
58
+ }
59
+ ],
60
+ "stateMutability": "pure"
61
+ },
62
+ {
63
+ "type": "function",
64
+ "name": "confirmEdge",
65
+ "inputs": [
66
+ {
67
+ "name": "edgeId",
68
+ "type": "bytes32",
69
+ "internalType": "bytes32"
70
+ }
71
+ ],
72
+ "outputs": [],
73
+ "stateMutability": "nonpayable"
74
+ },
75
+ {
76
+ "type": "function",
77
+ "name": "edgeExists",
78
+ "inputs": [
79
+ {
80
+ "name": "edgeId",
81
+ "type": "bytes32",
82
+ "internalType": "bytes32"
83
+ }
84
+ ],
85
+ "outputs": [
86
+ {
87
+ "name": "",
88
+ "type": "bool",
89
+ "internalType": "bool"
90
+ }
91
+ ],
92
+ "stateMutability": "view"
93
+ },
94
+ {
95
+ "type": "function",
96
+ "name": "getEdge",
97
+ "inputs": [
98
+ {
99
+ "name": "edgeId",
100
+ "type": "bytes32",
101
+ "internalType": "bytes32"
102
+ }
103
+ ],
104
+ "outputs": [
105
+ {
106
+ "name": "",
107
+ "type": "tuple",
108
+ "internalType": "struct AgentRelationship.Edge",
109
+ "components": [
110
+ {
111
+ "name": "edgeId",
112
+ "type": "bytes32",
113
+ "internalType": "bytes32"
114
+ },
115
+ {
116
+ "name": "subject",
117
+ "type": "address",
118
+ "internalType": "address"
119
+ },
120
+ {
121
+ "name": "object_",
122
+ "type": "address",
123
+ "internalType": "address"
124
+ },
125
+ {
126
+ "name": "relationshipType",
127
+ "type": "bytes32",
128
+ "internalType": "bytes32"
129
+ },
130
+ {
131
+ "name": "status",
132
+ "type": "uint8",
133
+ "internalType": "enum AgentRelationship.EdgeStatus"
134
+ },
135
+ {
136
+ "name": "createdBy",
137
+ "type": "address",
138
+ "internalType": "address"
139
+ },
140
+ {
141
+ "name": "createdAt",
142
+ "type": "uint64",
143
+ "internalType": "uint64"
144
+ },
145
+ {
146
+ "name": "updatedAt",
147
+ "type": "uint64",
148
+ "internalType": "uint64"
149
+ },
150
+ {
151
+ "name": "metadataURI",
152
+ "type": "string",
153
+ "internalType": "string"
154
+ },
155
+ {
156
+ "name": "metadataHash",
157
+ "type": "bytes32",
158
+ "internalType": "bytes32"
159
+ }
160
+ ]
161
+ }
162
+ ],
163
+ "stateMutability": "view"
164
+ },
165
+ {
166
+ "type": "function",
167
+ "name": "getEdgeByTriple",
168
+ "inputs": [
169
+ {
170
+ "name": "subject",
171
+ "type": "address",
172
+ "internalType": "address"
173
+ },
174
+ {
175
+ "name": "object_",
176
+ "type": "address",
177
+ "internalType": "address"
178
+ },
179
+ {
180
+ "name": "relationshipType",
181
+ "type": "bytes32",
182
+ "internalType": "bytes32"
183
+ }
184
+ ],
185
+ "outputs": [
186
+ {
187
+ "name": "",
188
+ "type": "bytes32",
189
+ "internalType": "bytes32"
190
+ }
191
+ ],
192
+ "stateMutability": "view"
193
+ },
194
+ {
195
+ "type": "function",
196
+ "name": "getEdgesByObject",
197
+ "inputs": [
198
+ {
199
+ "name": "object_",
200
+ "type": "address",
201
+ "internalType": "address"
202
+ }
203
+ ],
204
+ "outputs": [
205
+ {
206
+ "name": "",
207
+ "type": "bytes32[]",
208
+ "internalType": "bytes32[]"
209
+ }
210
+ ],
211
+ "stateMutability": "view"
212
+ },
213
+ {
214
+ "type": "function",
215
+ "name": "getEdgesBySubject",
216
+ "inputs": [
217
+ {
218
+ "name": "subject",
219
+ "type": "address",
220
+ "internalType": "address"
221
+ }
222
+ ],
223
+ "outputs": [
224
+ {
225
+ "name": "",
226
+ "type": "bytes32[]",
227
+ "internalType": "bytes32[]"
228
+ }
229
+ ],
230
+ "stateMutability": "view"
231
+ },
232
+ {
233
+ "type": "function",
234
+ "name": "getRoles",
235
+ "inputs": [
236
+ {
237
+ "name": "edgeId",
238
+ "type": "bytes32",
239
+ "internalType": "bytes32"
240
+ }
241
+ ],
242
+ "outputs": [
243
+ {
244
+ "name": "",
245
+ "type": "bytes32[]",
246
+ "internalType": "bytes32[]"
247
+ }
248
+ ],
249
+ "stateMutability": "view"
250
+ },
251
+ {
252
+ "type": "function",
253
+ "name": "hasRole",
254
+ "inputs": [
255
+ {
256
+ "name": "edgeId",
257
+ "type": "bytes32",
258
+ "internalType": "bytes32"
259
+ },
260
+ {
261
+ "name": "role",
262
+ "type": "bytes32",
263
+ "internalType": "bytes32"
264
+ }
265
+ ],
266
+ "outputs": [
267
+ {
268
+ "name": "",
269
+ "type": "bool",
270
+ "internalType": "bool"
271
+ }
272
+ ],
273
+ "stateMutability": "view"
274
+ },
275
+ {
276
+ "type": "function",
277
+ "name": "proposeEdge",
278
+ "inputs": [
279
+ {
280
+ "name": "subject",
281
+ "type": "address",
282
+ "internalType": "address"
283
+ },
284
+ {
285
+ "name": "object_",
286
+ "type": "address",
287
+ "internalType": "address"
288
+ },
289
+ {
290
+ "name": "relationshipType",
291
+ "type": "bytes32",
292
+ "internalType": "bytes32"
293
+ },
294
+ {
295
+ "name": "initialRoles",
296
+ "type": "bytes32[]",
297
+ "internalType": "bytes32[]"
298
+ },
299
+ {
300
+ "name": "metadataURI",
301
+ "type": "string",
302
+ "internalType": "string"
303
+ },
304
+ {
305
+ "name": "metadataHash",
306
+ "type": "bytes32",
307
+ "internalType": "bytes32"
308
+ }
309
+ ],
310
+ "outputs": [
311
+ {
312
+ "name": "edgeId",
313
+ "type": "bytes32",
314
+ "internalType": "bytes32"
315
+ }
316
+ ],
317
+ "stateMutability": "nonpayable"
318
+ },
319
+ {
320
+ "type": "function",
321
+ "name": "removeRole",
322
+ "inputs": [
323
+ {
324
+ "name": "edgeId",
325
+ "type": "bytes32",
326
+ "internalType": "bytes32"
327
+ },
328
+ {
329
+ "name": "role",
330
+ "type": "bytes32",
331
+ "internalType": "bytes32"
332
+ }
333
+ ],
334
+ "outputs": [],
335
+ "stateMutability": "nonpayable"
336
+ },
337
+ {
338
+ "type": "function",
339
+ "name": "revokeEdge",
340
+ "inputs": [
341
+ {
342
+ "name": "edgeId",
343
+ "type": "bytes32",
344
+ "internalType": "bytes32"
345
+ }
346
+ ],
347
+ "outputs": [],
348
+ "stateMutability": "nonpayable"
349
+ },
350
+ {
351
+ "type": "function",
352
+ "name": "setMetadata",
353
+ "inputs": [
354
+ {
355
+ "name": "edgeId",
356
+ "type": "bytes32",
357
+ "internalType": "bytes32"
358
+ },
359
+ {
360
+ "name": "metadataURI",
361
+ "type": "string",
362
+ "internalType": "string"
363
+ },
364
+ {
365
+ "name": "metadataHash",
366
+ "type": "bytes32",
367
+ "internalType": "bytes32"
368
+ }
369
+ ],
370
+ "outputs": [],
371
+ "stateMutability": "nonpayable"
372
+ },
373
+ {
374
+ "type": "event",
375
+ "name": "EdgeActivated",
376
+ "inputs": [
377
+ {
378
+ "name": "edgeId",
379
+ "type": "bytes32",
380
+ "indexed": true,
381
+ "internalType": "bytes32"
382
+ },
383
+ {
384
+ "name": "activatedBy",
385
+ "type": "address",
386
+ "indexed": true,
387
+ "internalType": "address"
388
+ }
389
+ ],
390
+ "anonymous": false
391
+ },
392
+ {
393
+ "type": "event",
394
+ "name": "EdgeConfirmed",
395
+ "inputs": [
396
+ {
397
+ "name": "edgeId",
398
+ "type": "bytes32",
399
+ "indexed": true,
400
+ "internalType": "bytes32"
401
+ },
402
+ {
403
+ "name": "confirmedBy",
404
+ "type": "address",
405
+ "indexed": true,
406
+ "internalType": "address"
407
+ }
408
+ ],
409
+ "anonymous": false
410
+ },
411
+ {
412
+ "type": "event",
413
+ "name": "EdgeMetadataUpdated",
414
+ "inputs": [
415
+ {
416
+ "name": "edgeId",
417
+ "type": "bytes32",
418
+ "indexed": true,
419
+ "internalType": "bytes32"
420
+ },
421
+ {
422
+ "name": "metadataURI",
423
+ "type": "string",
424
+ "indexed": false,
425
+ "internalType": "string"
426
+ },
427
+ {
428
+ "name": "metadataHash",
429
+ "type": "bytes32",
430
+ "indexed": false,
431
+ "internalType": "bytes32"
432
+ },
433
+ {
434
+ "name": "updater",
435
+ "type": "address",
436
+ "indexed": true,
437
+ "internalType": "address"
438
+ }
439
+ ],
440
+ "anonymous": false
441
+ },
442
+ {
443
+ "type": "event",
444
+ "name": "EdgeProposed",
445
+ "inputs": [
446
+ {
447
+ "name": "edgeId",
448
+ "type": "bytes32",
449
+ "indexed": true,
450
+ "internalType": "bytes32"
451
+ },
452
+ {
453
+ "name": "subject",
454
+ "type": "address",
455
+ "indexed": true,
456
+ "internalType": "address"
457
+ },
458
+ {
459
+ "name": "object_",
460
+ "type": "address",
461
+ "indexed": true,
462
+ "internalType": "address"
463
+ },
464
+ {
465
+ "name": "relationshipType",
466
+ "type": "bytes32",
467
+ "indexed": false,
468
+ "internalType": "bytes32"
469
+ },
470
+ {
471
+ "name": "createdBy",
472
+ "type": "address",
473
+ "indexed": false,
474
+ "internalType": "address"
475
+ }
476
+ ],
477
+ "anonymous": false
478
+ },
479
+ {
480
+ "type": "event",
481
+ "name": "EdgeRevoked",
482
+ "inputs": [
483
+ {
484
+ "name": "edgeId",
485
+ "type": "bytes32",
486
+ "indexed": true,
487
+ "internalType": "bytes32"
488
+ },
489
+ {
490
+ "name": "revokedBy",
491
+ "type": "address",
492
+ "indexed": true,
493
+ "internalType": "address"
494
+ }
495
+ ],
496
+ "anonymous": false
497
+ },
498
+ {
499
+ "type": "event",
500
+ "name": "RoleAdded",
501
+ "inputs": [
502
+ {
503
+ "name": "edgeId",
504
+ "type": "bytes32",
505
+ "indexed": true,
506
+ "internalType": "bytes32"
507
+ },
508
+ {
509
+ "name": "role",
510
+ "type": "bytes32",
511
+ "indexed": true,
512
+ "internalType": "bytes32"
513
+ },
514
+ {
515
+ "name": "updater",
516
+ "type": "address",
517
+ "indexed": true,
518
+ "internalType": "address"
519
+ }
520
+ ],
521
+ "anonymous": false
522
+ },
523
+ {
524
+ "type": "event",
525
+ "name": "RoleRemoved",
526
+ "inputs": [
527
+ {
528
+ "name": "edgeId",
529
+ "type": "bytes32",
530
+ "indexed": true,
531
+ "internalType": "bytes32"
532
+ },
533
+ {
534
+ "name": "role",
535
+ "type": "bytes32",
536
+ "indexed": true,
537
+ "internalType": "bytes32"
538
+ },
539
+ {
540
+ "name": "updater",
541
+ "type": "address",
542
+ "indexed": true,
543
+ "internalType": "address"
544
+ }
545
+ ],
546
+ "anonymous": false
547
+ },
548
+ {
549
+ "type": "error",
550
+ "name": "EdgeAlreadyExists",
551
+ "inputs": []
552
+ },
553
+ {
554
+ "type": "error",
555
+ "name": "EdgeNotFound",
556
+ "inputs": []
557
+ },
558
+ {
559
+ "type": "error",
560
+ "name": "InvalidEdge",
561
+ "inputs": []
562
+ },
563
+ {
564
+ "type": "error",
565
+ "name": "InvalidTransition",
566
+ "inputs": []
567
+ },
568
+ {
569
+ "type": "error",
570
+ "name": "NotAuthorized",
571
+ "inputs": []
572
+ },
573
+ {
574
+ "type": "error",
575
+ "name": "RoleAlreadyExists",
576
+ "inputs": []
577
+ },
578
+ {
579
+ "type": "error",
580
+ "name": "RoleNotFound",
581
+ "inputs": []
582
+ }
583
+ ]