@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,557 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "DT_ADDRESS_ARR_PUB",
5
+ "inputs": [],
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "uint8",
10
+ "internalType": "uint8"
11
+ }
12
+ ],
13
+ "stateMutability": "pure"
14
+ },
15
+ {
16
+ "type": "function",
17
+ "name": "DT_ADDRESS_PUB",
18
+ "inputs": [],
19
+ "outputs": [
20
+ {
21
+ "name": "",
22
+ "type": "uint8",
23
+ "internalType": "uint8"
24
+ }
25
+ ],
26
+ "stateMutability": "pure"
27
+ },
28
+ {
29
+ "type": "function",
30
+ "name": "DT_BOOL_PUB",
31
+ "inputs": [],
32
+ "outputs": [
33
+ {
34
+ "name": "",
35
+ "type": "uint8",
36
+ "internalType": "uint8"
37
+ }
38
+ ],
39
+ "stateMutability": "pure"
40
+ },
41
+ {
42
+ "type": "function",
43
+ "name": "DT_BYTES32_ARR_PUB",
44
+ "inputs": [],
45
+ "outputs": [
46
+ {
47
+ "name": "",
48
+ "type": "uint8",
49
+ "internalType": "uint8"
50
+ }
51
+ ],
52
+ "stateMutability": "pure"
53
+ },
54
+ {
55
+ "type": "function",
56
+ "name": "DT_BYTES32_PUB",
57
+ "inputs": [],
58
+ "outputs": [
59
+ {
60
+ "name": "",
61
+ "type": "uint8",
62
+ "internalType": "uint8"
63
+ }
64
+ ],
65
+ "stateMutability": "pure"
66
+ },
67
+ {
68
+ "type": "function",
69
+ "name": "DT_STRING_ARR_PUB",
70
+ "inputs": [],
71
+ "outputs": [
72
+ {
73
+ "name": "",
74
+ "type": "uint8",
75
+ "internalType": "uint8"
76
+ }
77
+ ],
78
+ "stateMutability": "pure"
79
+ },
80
+ {
81
+ "type": "function",
82
+ "name": "DT_STRING_PUB",
83
+ "inputs": [],
84
+ "outputs": [
85
+ {
86
+ "name": "",
87
+ "type": "uint8",
88
+ "internalType": "uint8"
89
+ }
90
+ ],
91
+ "stateMutability": "pure"
92
+ },
93
+ {
94
+ "type": "function",
95
+ "name": "DT_UINT256_PUB",
96
+ "inputs": [],
97
+ "outputs": [
98
+ {
99
+ "name": "",
100
+ "type": "uint8",
101
+ "internalType": "uint8"
102
+ }
103
+ ],
104
+ "stateMutability": "pure"
105
+ },
106
+ {
107
+ "type": "function",
108
+ "name": "ONTOLOGY",
109
+ "inputs": [],
110
+ "outputs": [
111
+ {
112
+ "name": "",
113
+ "type": "address",
114
+ "internalType": "contract OntologyTermRegistry"
115
+ }
116
+ ],
117
+ "stateMutability": "view"
118
+ },
119
+ {
120
+ "type": "function",
121
+ "name": "allSubjects",
122
+ "inputs": [],
123
+ "outputs": [
124
+ {
125
+ "name": "",
126
+ "type": "bytes32[]",
127
+ "internalType": "bytes32[]"
128
+ }
129
+ ],
130
+ "stateMutability": "view"
131
+ },
132
+ {
133
+ "type": "function",
134
+ "name": "datatypeOf",
135
+ "inputs": [
136
+ {
137
+ "name": "subject",
138
+ "type": "bytes32",
139
+ "internalType": "bytes32"
140
+ },
141
+ {
142
+ "name": "predicate",
143
+ "type": "bytes32",
144
+ "internalType": "bytes32"
145
+ }
146
+ ],
147
+ "outputs": [
148
+ {
149
+ "name": "",
150
+ "type": "uint8",
151
+ "internalType": "uint8"
152
+ }
153
+ ],
154
+ "stateMutability": "view"
155
+ },
156
+ {
157
+ "type": "function",
158
+ "name": "getAddress",
159
+ "inputs": [
160
+ {
161
+ "name": "subject",
162
+ "type": "bytes32",
163
+ "internalType": "bytes32"
164
+ },
165
+ {
166
+ "name": "predicate",
167
+ "type": "bytes32",
168
+ "internalType": "bytes32"
169
+ }
170
+ ],
171
+ "outputs": [
172
+ {
173
+ "name": "",
174
+ "type": "address",
175
+ "internalType": "address"
176
+ }
177
+ ],
178
+ "stateMutability": "view"
179
+ },
180
+ {
181
+ "type": "function",
182
+ "name": "getAddressArr",
183
+ "inputs": [
184
+ {
185
+ "name": "subject",
186
+ "type": "bytes32",
187
+ "internalType": "bytes32"
188
+ },
189
+ {
190
+ "name": "predicate",
191
+ "type": "bytes32",
192
+ "internalType": "bytes32"
193
+ }
194
+ ],
195
+ "outputs": [
196
+ {
197
+ "name": "",
198
+ "type": "address[]",
199
+ "internalType": "address[]"
200
+ }
201
+ ],
202
+ "stateMutability": "view"
203
+ },
204
+ {
205
+ "type": "function",
206
+ "name": "getBool",
207
+ "inputs": [
208
+ {
209
+ "name": "subject",
210
+ "type": "bytes32",
211
+ "internalType": "bytes32"
212
+ },
213
+ {
214
+ "name": "predicate",
215
+ "type": "bytes32",
216
+ "internalType": "bytes32"
217
+ }
218
+ ],
219
+ "outputs": [
220
+ {
221
+ "name": "",
222
+ "type": "bool",
223
+ "internalType": "bool"
224
+ }
225
+ ],
226
+ "stateMutability": "view"
227
+ },
228
+ {
229
+ "type": "function",
230
+ "name": "getBytes32",
231
+ "inputs": [
232
+ {
233
+ "name": "subject",
234
+ "type": "bytes32",
235
+ "internalType": "bytes32"
236
+ },
237
+ {
238
+ "name": "predicate",
239
+ "type": "bytes32",
240
+ "internalType": "bytes32"
241
+ }
242
+ ],
243
+ "outputs": [
244
+ {
245
+ "name": "",
246
+ "type": "bytes32",
247
+ "internalType": "bytes32"
248
+ }
249
+ ],
250
+ "stateMutability": "view"
251
+ },
252
+ {
253
+ "type": "function",
254
+ "name": "getBytes32Arr",
255
+ "inputs": [
256
+ {
257
+ "name": "subject",
258
+ "type": "bytes32",
259
+ "internalType": "bytes32"
260
+ },
261
+ {
262
+ "name": "predicate",
263
+ "type": "bytes32",
264
+ "internalType": "bytes32"
265
+ }
266
+ ],
267
+ "outputs": [
268
+ {
269
+ "name": "",
270
+ "type": "bytes32[]",
271
+ "internalType": "bytes32[]"
272
+ }
273
+ ],
274
+ "stateMutability": "view"
275
+ },
276
+ {
277
+ "type": "function",
278
+ "name": "getString",
279
+ "inputs": [
280
+ {
281
+ "name": "subject",
282
+ "type": "bytes32",
283
+ "internalType": "bytes32"
284
+ },
285
+ {
286
+ "name": "predicate",
287
+ "type": "bytes32",
288
+ "internalType": "bytes32"
289
+ }
290
+ ],
291
+ "outputs": [
292
+ {
293
+ "name": "",
294
+ "type": "string",
295
+ "internalType": "string"
296
+ }
297
+ ],
298
+ "stateMutability": "view"
299
+ },
300
+ {
301
+ "type": "function",
302
+ "name": "getStringArr",
303
+ "inputs": [
304
+ {
305
+ "name": "subject",
306
+ "type": "bytes32",
307
+ "internalType": "bytes32"
308
+ },
309
+ {
310
+ "name": "predicate",
311
+ "type": "bytes32",
312
+ "internalType": "bytes32"
313
+ }
314
+ ],
315
+ "outputs": [
316
+ {
317
+ "name": "",
318
+ "type": "string[]",
319
+ "internalType": "string[]"
320
+ }
321
+ ],
322
+ "stateMutability": "view"
323
+ },
324
+ {
325
+ "type": "function",
326
+ "name": "getUint",
327
+ "inputs": [
328
+ {
329
+ "name": "subject",
330
+ "type": "bytes32",
331
+ "internalType": "bytes32"
332
+ },
333
+ {
334
+ "name": "predicate",
335
+ "type": "bytes32",
336
+ "internalType": "bytes32"
337
+ }
338
+ ],
339
+ "outputs": [
340
+ {
341
+ "name": "",
342
+ "type": "uint256",
343
+ "internalType": "uint256"
344
+ }
345
+ ],
346
+ "stateMutability": "view"
347
+ },
348
+ {
349
+ "type": "function",
350
+ "name": "isSet",
351
+ "inputs": [
352
+ {
353
+ "name": "subject",
354
+ "type": "bytes32",
355
+ "internalType": "bytes32"
356
+ },
357
+ {
358
+ "name": "predicate",
359
+ "type": "bytes32",
360
+ "internalType": "bytes32"
361
+ }
362
+ ],
363
+ "outputs": [
364
+ {
365
+ "name": "",
366
+ "type": "bool",
367
+ "internalType": "bool"
368
+ }
369
+ ],
370
+ "stateMutability": "view"
371
+ },
372
+ {
373
+ "type": "function",
374
+ "name": "predicatesOf",
375
+ "inputs": [
376
+ {
377
+ "name": "subject",
378
+ "type": "bytes32",
379
+ "internalType": "bytes32"
380
+ }
381
+ ],
382
+ "outputs": [
383
+ {
384
+ "name": "",
385
+ "type": "bytes32[]",
386
+ "internalType": "bytes32[]"
387
+ }
388
+ ],
389
+ "stateMutability": "view"
390
+ },
391
+ {
392
+ "type": "function",
393
+ "name": "subjectCount",
394
+ "inputs": [],
395
+ "outputs": [
396
+ {
397
+ "name": "",
398
+ "type": "uint256",
399
+ "internalType": "uint256"
400
+ }
401
+ ],
402
+ "stateMutability": "view"
403
+ },
404
+ {
405
+ "type": "function",
406
+ "name": "subjectVersion",
407
+ "inputs": [
408
+ {
409
+ "name": "subject",
410
+ "type": "bytes32",
411
+ "internalType": "bytes32"
412
+ }
413
+ ],
414
+ "outputs": [
415
+ {
416
+ "name": "",
417
+ "type": "uint64",
418
+ "internalType": "uint64"
419
+ }
420
+ ],
421
+ "stateMutability": "view"
422
+ },
423
+ {
424
+ "type": "function",
425
+ "name": "updatedAt",
426
+ "inputs": [
427
+ {
428
+ "name": "subject",
429
+ "type": "bytes32",
430
+ "internalType": "bytes32"
431
+ },
432
+ {
433
+ "name": "predicate",
434
+ "type": "bytes32",
435
+ "internalType": "bytes32"
436
+ }
437
+ ],
438
+ "outputs": [
439
+ {
440
+ "name": "",
441
+ "type": "uint64",
442
+ "internalType": "uint64"
443
+ }
444
+ ],
445
+ "stateMutability": "view"
446
+ },
447
+ {
448
+ "type": "event",
449
+ "name": "AttributeAppended",
450
+ "inputs": [
451
+ {
452
+ "name": "subject",
453
+ "type": "bytes32",
454
+ "indexed": true,
455
+ "internalType": "bytes32"
456
+ },
457
+ {
458
+ "name": "predicate",
459
+ "type": "bytes32",
460
+ "indexed": true,
461
+ "internalType": "bytes32"
462
+ },
463
+ {
464
+ "name": "datatype",
465
+ "type": "uint8",
466
+ "indexed": false,
467
+ "internalType": "uint8"
468
+ },
469
+ {
470
+ "name": "version",
471
+ "type": "uint64",
472
+ "indexed": false,
473
+ "internalType": "uint64"
474
+ }
475
+ ],
476
+ "anonymous": false
477
+ },
478
+ {
479
+ "type": "event",
480
+ "name": "AttributeSet",
481
+ "inputs": [
482
+ {
483
+ "name": "subject",
484
+ "type": "bytes32",
485
+ "indexed": true,
486
+ "internalType": "bytes32"
487
+ },
488
+ {
489
+ "name": "predicate",
490
+ "type": "bytes32",
491
+ "indexed": true,
492
+ "internalType": "bytes32"
493
+ },
494
+ {
495
+ "name": "datatype",
496
+ "type": "uint8",
497
+ "indexed": false,
498
+ "internalType": "uint8"
499
+ },
500
+ {
501
+ "name": "version",
502
+ "type": "uint64",
503
+ "indexed": false,
504
+ "internalType": "uint64"
505
+ }
506
+ ],
507
+ "anonymous": false
508
+ },
509
+ {
510
+ "type": "event",
511
+ "name": "AttributeUnset",
512
+ "inputs": [
513
+ {
514
+ "name": "subject",
515
+ "type": "bytes32",
516
+ "indexed": true,
517
+ "internalType": "bytes32"
518
+ },
519
+ {
520
+ "name": "predicate",
521
+ "type": "bytes32",
522
+ "indexed": true,
523
+ "internalType": "bytes32"
524
+ },
525
+ {
526
+ "name": "version",
527
+ "type": "uint64",
528
+ "indexed": false,
529
+ "internalType": "uint64"
530
+ }
531
+ ],
532
+ "anonymous": false
533
+ },
534
+ {
535
+ "type": "event",
536
+ "name": "SubjectFirstSeen",
537
+ "inputs": [
538
+ {
539
+ "name": "subject",
540
+ "type": "bytes32",
541
+ "indexed": true,
542
+ "internalType": "bytes32"
543
+ }
544
+ ],
545
+ "anonymous": false
546
+ },
547
+ {
548
+ "type": "error",
549
+ "name": "AttributeNotSet",
550
+ "inputs": []
551
+ },
552
+ {
553
+ "type": "error",
554
+ "name": "PredicateNotActive",
555
+ "inputs": []
556
+ }
557
+ ]
@@ -0,0 +1,130 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "afterHook",
5
+ "inputs": [
6
+ {
7
+ "name": "terms",
8
+ "type": "bytes",
9
+ "internalType": "bytes"
10
+ },
11
+ {
12
+ "name": "args",
13
+ "type": "bytes",
14
+ "internalType": "bytes"
15
+ },
16
+ {
17
+ "name": "delegationHash",
18
+ "type": "bytes32",
19
+ "internalType": "bytes32"
20
+ },
21
+ {
22
+ "name": "delegator",
23
+ "type": "address",
24
+ "internalType": "address"
25
+ },
26
+ {
27
+ "name": "redeemer",
28
+ "type": "address",
29
+ "internalType": "address"
30
+ },
31
+ {
32
+ "name": "target",
33
+ "type": "address",
34
+ "internalType": "address"
35
+ },
36
+ {
37
+ "name": "value",
38
+ "type": "uint256",
39
+ "internalType": "uint256"
40
+ },
41
+ {
42
+ "name": "callData",
43
+ "type": "bytes",
44
+ "internalType": "bytes"
45
+ }
46
+ ],
47
+ "outputs": [],
48
+ "stateMutability": "nonpayable"
49
+ },
50
+ {
51
+ "type": "function",
52
+ "name": "beforeHook",
53
+ "inputs": [
54
+ {
55
+ "name": "terms",
56
+ "type": "bytes",
57
+ "internalType": "bytes"
58
+ },
59
+ {
60
+ "name": "args",
61
+ "type": "bytes",
62
+ "internalType": "bytes"
63
+ },
64
+ {
65
+ "name": "delegationHash",
66
+ "type": "bytes32",
67
+ "internalType": "bytes32"
68
+ },
69
+ {
70
+ "name": "delegator",
71
+ "type": "address",
72
+ "internalType": "address"
73
+ },
74
+ {
75
+ "name": "redeemer",
76
+ "type": "address",
77
+ "internalType": "address"
78
+ },
79
+ {
80
+ "name": "target",
81
+ "type": "address",
82
+ "internalType": "address"
83
+ },
84
+ {
85
+ "name": "value",
86
+ "type": "uint256",
87
+ "internalType": "uint256"
88
+ },
89
+ {
90
+ "name": "callData",
91
+ "type": "bytes",
92
+ "internalType": "bytes"
93
+ }
94
+ ],
95
+ "outputs": [],
96
+ "stateMutability": "nonpayable"
97
+ },
98
+ {
99
+ "type": "function",
100
+ "name": "isModuleType",
101
+ "inputs": [
102
+ {
103
+ "name": "moduleTypeId",
104
+ "type": "uint256",
105
+ "internalType": "uint256"
106
+ }
107
+ ],
108
+ "outputs": [
109
+ {
110
+ "name": "",
111
+ "type": "bool",
112
+ "internalType": "bool"
113
+ }
114
+ ],
115
+ "stateMutability": "pure"
116
+ },
117
+ {
118
+ "type": "function",
119
+ "name": "moduleId",
120
+ "inputs": [],
121
+ "outputs": [
122
+ {
123
+ "name": "",
124
+ "type": "string",
125
+ "internalType": "string"
126
+ }
127
+ ],
128
+ "stateMutability": "pure"
129
+ }
130
+ ]