@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,397 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [
5
+ {
6
+ "name": "governor_",
7
+ "type": "address",
8
+ "internalType": "address"
9
+ }
10
+ ],
11
+ "stateMutability": "nonpayable"
12
+ },
13
+ {
14
+ "type": "function",
15
+ "name": "activateTerm",
16
+ "inputs": [
17
+ {
18
+ "name": "id",
19
+ "type": "bytes32",
20
+ "internalType": "bytes32"
21
+ }
22
+ ],
23
+ "outputs": [],
24
+ "stateMutability": "nonpayable"
25
+ },
26
+ {
27
+ "type": "function",
28
+ "name": "deactivateTerm",
29
+ "inputs": [
30
+ {
31
+ "name": "id",
32
+ "type": "bytes32",
33
+ "internalType": "bytes32"
34
+ }
35
+ ],
36
+ "outputs": [],
37
+ "stateMutability": "nonpayable"
38
+ },
39
+ {
40
+ "type": "function",
41
+ "name": "getAllTermIds",
42
+ "inputs": [],
43
+ "outputs": [
44
+ {
45
+ "name": "",
46
+ "type": "bytes32[]",
47
+ "internalType": "bytes32[]"
48
+ }
49
+ ],
50
+ "stateMutability": "view"
51
+ },
52
+ {
53
+ "type": "function",
54
+ "name": "getTerm",
55
+ "inputs": [
56
+ {
57
+ "name": "id",
58
+ "type": "bytes32",
59
+ "internalType": "bytes32"
60
+ }
61
+ ],
62
+ "outputs": [
63
+ {
64
+ "name": "",
65
+ "type": "tuple",
66
+ "internalType": "struct OntologyTermRegistry.Term",
67
+ "components": [
68
+ {
69
+ "name": "id",
70
+ "type": "bytes32",
71
+ "internalType": "bytes32"
72
+ },
73
+ {
74
+ "name": "curie",
75
+ "type": "string",
76
+ "internalType": "string"
77
+ },
78
+ {
79
+ "name": "uri",
80
+ "type": "string",
81
+ "internalType": "string"
82
+ },
83
+ {
84
+ "name": "label",
85
+ "type": "string",
86
+ "internalType": "string"
87
+ },
88
+ {
89
+ "name": "datatype",
90
+ "type": "string",
91
+ "internalType": "string"
92
+ },
93
+ {
94
+ "name": "active",
95
+ "type": "bool",
96
+ "internalType": "bool"
97
+ },
98
+ {
99
+ "name": "registeredAt",
100
+ "type": "uint256",
101
+ "internalType": "uint256"
102
+ }
103
+ ]
104
+ }
105
+ ],
106
+ "stateMutability": "view"
107
+ },
108
+ {
109
+ "type": "function",
110
+ "name": "getTermAt",
111
+ "inputs": [
112
+ {
113
+ "name": "index",
114
+ "type": "uint256",
115
+ "internalType": "uint256"
116
+ }
117
+ ],
118
+ "outputs": [
119
+ {
120
+ "name": "",
121
+ "type": "tuple",
122
+ "internalType": "struct OntologyTermRegistry.Term",
123
+ "components": [
124
+ {
125
+ "name": "id",
126
+ "type": "bytes32",
127
+ "internalType": "bytes32"
128
+ },
129
+ {
130
+ "name": "curie",
131
+ "type": "string",
132
+ "internalType": "string"
133
+ },
134
+ {
135
+ "name": "uri",
136
+ "type": "string",
137
+ "internalType": "string"
138
+ },
139
+ {
140
+ "name": "label",
141
+ "type": "string",
142
+ "internalType": "string"
143
+ },
144
+ {
145
+ "name": "datatype",
146
+ "type": "string",
147
+ "internalType": "string"
148
+ },
149
+ {
150
+ "name": "active",
151
+ "type": "bool",
152
+ "internalType": "bool"
153
+ },
154
+ {
155
+ "name": "registeredAt",
156
+ "type": "uint256",
157
+ "internalType": "uint256"
158
+ }
159
+ ]
160
+ }
161
+ ],
162
+ "stateMutability": "view"
163
+ },
164
+ {
165
+ "type": "function",
166
+ "name": "governor",
167
+ "inputs": [],
168
+ "outputs": [
169
+ {
170
+ "name": "",
171
+ "type": "address",
172
+ "internalType": "address"
173
+ }
174
+ ],
175
+ "stateMutability": "view"
176
+ },
177
+ {
178
+ "type": "function",
179
+ "name": "isActive",
180
+ "inputs": [
181
+ {
182
+ "name": "id",
183
+ "type": "bytes32",
184
+ "internalType": "bytes32"
185
+ }
186
+ ],
187
+ "outputs": [
188
+ {
189
+ "name": "",
190
+ "type": "bool",
191
+ "internalType": "bool"
192
+ }
193
+ ],
194
+ "stateMutability": "view"
195
+ },
196
+ {
197
+ "type": "function",
198
+ "name": "isRegistered",
199
+ "inputs": [
200
+ {
201
+ "name": "id",
202
+ "type": "bytes32",
203
+ "internalType": "bytes32"
204
+ }
205
+ ],
206
+ "outputs": [
207
+ {
208
+ "name": "",
209
+ "type": "bool",
210
+ "internalType": "bool"
211
+ }
212
+ ],
213
+ "stateMutability": "view"
214
+ },
215
+ {
216
+ "type": "function",
217
+ "name": "registerTerm",
218
+ "inputs": [
219
+ {
220
+ "name": "id",
221
+ "type": "bytes32",
222
+ "internalType": "bytes32"
223
+ },
224
+ {
225
+ "name": "curie",
226
+ "type": "string",
227
+ "internalType": "string"
228
+ },
229
+ {
230
+ "name": "uri",
231
+ "type": "string",
232
+ "internalType": "string"
233
+ },
234
+ {
235
+ "name": "label",
236
+ "type": "string",
237
+ "internalType": "string"
238
+ },
239
+ {
240
+ "name": "datatype",
241
+ "type": "string",
242
+ "internalType": "string"
243
+ }
244
+ ],
245
+ "outputs": [],
246
+ "stateMutability": "nonpayable"
247
+ },
248
+ {
249
+ "type": "function",
250
+ "name": "registerTermBatch",
251
+ "inputs": [
252
+ {
253
+ "name": "ids",
254
+ "type": "bytes32[]",
255
+ "internalType": "bytes32[]"
256
+ },
257
+ {
258
+ "name": "curies",
259
+ "type": "string[]",
260
+ "internalType": "string[]"
261
+ },
262
+ {
263
+ "name": "uris",
264
+ "type": "string[]",
265
+ "internalType": "string[]"
266
+ },
267
+ {
268
+ "name": "labels",
269
+ "type": "string[]",
270
+ "internalType": "string[]"
271
+ },
272
+ {
273
+ "name": "datatypes",
274
+ "type": "string[]",
275
+ "internalType": "string[]"
276
+ }
277
+ ],
278
+ "outputs": [],
279
+ "stateMutability": "nonpayable"
280
+ },
281
+ {
282
+ "type": "function",
283
+ "name": "termCount",
284
+ "inputs": [],
285
+ "outputs": [
286
+ {
287
+ "name": "",
288
+ "type": "uint256",
289
+ "internalType": "uint256"
290
+ }
291
+ ],
292
+ "stateMutability": "view"
293
+ },
294
+ {
295
+ "type": "function",
296
+ "name": "transferGovernor",
297
+ "inputs": [
298
+ {
299
+ "name": "newGovernor",
300
+ "type": "address",
301
+ "internalType": "address"
302
+ }
303
+ ],
304
+ "outputs": [],
305
+ "stateMutability": "nonpayable"
306
+ },
307
+ {
308
+ "type": "event",
309
+ "name": "GovernorTransferred",
310
+ "inputs": [
311
+ {
312
+ "name": "oldGovernor",
313
+ "type": "address",
314
+ "indexed": true,
315
+ "internalType": "address"
316
+ },
317
+ {
318
+ "name": "newGovernor",
319
+ "type": "address",
320
+ "indexed": true,
321
+ "internalType": "address"
322
+ }
323
+ ],
324
+ "anonymous": false
325
+ },
326
+ {
327
+ "type": "event",
328
+ "name": "TermActivated",
329
+ "inputs": [
330
+ {
331
+ "name": "id",
332
+ "type": "bytes32",
333
+ "indexed": true,
334
+ "internalType": "bytes32"
335
+ }
336
+ ],
337
+ "anonymous": false
338
+ },
339
+ {
340
+ "type": "event",
341
+ "name": "TermDeactivated",
342
+ "inputs": [
343
+ {
344
+ "name": "id",
345
+ "type": "bytes32",
346
+ "indexed": true,
347
+ "internalType": "bytes32"
348
+ }
349
+ ],
350
+ "anonymous": false
351
+ },
352
+ {
353
+ "type": "event",
354
+ "name": "TermRegistered",
355
+ "inputs": [
356
+ {
357
+ "name": "id",
358
+ "type": "bytes32",
359
+ "indexed": true,
360
+ "internalType": "bytes32"
361
+ },
362
+ {
363
+ "name": "curie",
364
+ "type": "string",
365
+ "indexed": false,
366
+ "internalType": "string"
367
+ },
368
+ {
369
+ "name": "uri",
370
+ "type": "string",
371
+ "indexed": false,
372
+ "internalType": "string"
373
+ }
374
+ ],
375
+ "anonymous": false
376
+ },
377
+ {
378
+ "type": "error",
379
+ "name": "NotGovernor",
380
+ "inputs": []
381
+ },
382
+ {
383
+ "type": "error",
384
+ "name": "TermExists",
385
+ "inputs": []
386
+ },
387
+ {
388
+ "type": "error",
389
+ "name": "TermNotFound",
390
+ "inputs": []
391
+ },
392
+ {
393
+ "type": "error",
394
+ "name": "ZeroGovernor",
395
+ "inputs": []
396
+ }
397
+ ]
@@ -0,0 +1 @@
1
+ []
@@ -0,0 +1,207 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [
5
+ {
6
+ "name": "registry",
7
+ "type": "address",
8
+ "internalType": "contract AgentNameRegistry"
9
+ },
10
+ {
11
+ "name": "parentNode",
12
+ "type": "bytes32",
13
+ "internalType": "bytes32"
14
+ },
15
+ {
16
+ "name": "defaultResolver",
17
+ "type": "address",
18
+ "internalType": "address"
19
+ }
20
+ ],
21
+ "stateMutability": "nonpayable"
22
+ },
23
+ {
24
+ "type": "function",
25
+ "name": "DEFAULT_RESOLVER",
26
+ "inputs": [],
27
+ "outputs": [
28
+ {
29
+ "name": "",
30
+ "type": "address",
31
+ "internalType": "address"
32
+ }
33
+ ],
34
+ "stateMutability": "view"
35
+ },
36
+ {
37
+ "type": "function",
38
+ "name": "MIN_LABEL_LENGTH",
39
+ "inputs": [],
40
+ "outputs": [
41
+ {
42
+ "name": "",
43
+ "type": "uint256",
44
+ "internalType": "uint256"
45
+ }
46
+ ],
47
+ "stateMutability": "view"
48
+ },
49
+ {
50
+ "type": "function",
51
+ "name": "PARENT_NODE",
52
+ "inputs": [],
53
+ "outputs": [
54
+ {
55
+ "name": "",
56
+ "type": "bytes32",
57
+ "internalType": "bytes32"
58
+ }
59
+ ],
60
+ "stateMutability": "view"
61
+ },
62
+ {
63
+ "type": "function",
64
+ "name": "REGISTRY",
65
+ "inputs": [],
66
+ "outputs": [
67
+ {
68
+ "name": "",
69
+ "type": "address",
70
+ "internalType": "contract AgentNameRegistry"
71
+ }
72
+ ],
73
+ "stateMutability": "view"
74
+ },
75
+ {
76
+ "type": "function",
77
+ "name": "claimCount",
78
+ "inputs": [],
79
+ "outputs": [
80
+ {
81
+ "name": "",
82
+ "type": "uint256",
83
+ "internalType": "uint256"
84
+ }
85
+ ],
86
+ "stateMutability": "view"
87
+ },
88
+ {
89
+ "type": "function",
90
+ "name": "claimedBy",
91
+ "inputs": [
92
+ {
93
+ "name": "",
94
+ "type": "address",
95
+ "internalType": "address"
96
+ }
97
+ ],
98
+ "outputs": [
99
+ {
100
+ "name": "",
101
+ "type": "bytes32",
102
+ "internalType": "bytes32"
103
+ }
104
+ ],
105
+ "stateMutability": "view"
106
+ },
107
+ {
108
+ "type": "function",
109
+ "name": "hasClaimed",
110
+ "inputs": [
111
+ {
112
+ "name": "caller",
113
+ "type": "address",
114
+ "internalType": "address"
115
+ }
116
+ ],
117
+ "outputs": [
118
+ {
119
+ "name": "",
120
+ "type": "bool",
121
+ "internalType": "bool"
122
+ }
123
+ ],
124
+ "stateMutability": "view"
125
+ },
126
+ {
127
+ "type": "function",
128
+ "name": "register",
129
+ "inputs": [
130
+ {
131
+ "name": "label",
132
+ "type": "string",
133
+ "internalType": "string"
134
+ },
135
+ {
136
+ "name": "newOwner",
137
+ "type": "address",
138
+ "internalType": "address"
139
+ }
140
+ ],
141
+ "outputs": [
142
+ {
143
+ "name": "childNode",
144
+ "type": "bytes32",
145
+ "internalType": "bytes32"
146
+ }
147
+ ],
148
+ "stateMutability": "nonpayable"
149
+ },
150
+ {
151
+ "type": "event",
152
+ "name": "NameClaimed",
153
+ "inputs": [
154
+ {
155
+ "name": "caller",
156
+ "type": "address",
157
+ "indexed": true,
158
+ "internalType": "address"
159
+ },
160
+ {
161
+ "name": "childNode",
162
+ "type": "bytes32",
163
+ "indexed": true,
164
+ "internalType": "bytes32"
165
+ },
166
+ {
167
+ "name": "label",
168
+ "type": "string",
169
+ "indexed": false,
170
+ "internalType": "string"
171
+ },
172
+ {
173
+ "name": "newOwner",
174
+ "type": "address",
175
+ "indexed": false,
176
+ "internalType": "address"
177
+ }
178
+ ],
179
+ "anonymous": false
180
+ },
181
+ {
182
+ "type": "error",
183
+ "name": "AlreadyClaimed",
184
+ "inputs": [
185
+ {
186
+ "name": "existingNode",
187
+ "type": "bytes32",
188
+ "internalType": "bytes32"
189
+ }
190
+ ]
191
+ },
192
+ {
193
+ "type": "error",
194
+ "name": "EmptyLabel",
195
+ "inputs": []
196
+ },
197
+ {
198
+ "type": "error",
199
+ "name": "LabelTooShort",
200
+ "inputs": []
201
+ },
202
+ {
203
+ "type": "error",
204
+ "name": "ZeroNewOwner",
205
+ "inputs": []
206
+ }
207
+ ]