@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,259 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [
5
+ {
6
+ "name": "timelock_",
7
+ "type": "address",
8
+ "internalType": "address"
9
+ },
10
+ {
11
+ "name": "guardian_",
12
+ "type": "address",
13
+ "internalType": "address"
14
+ },
15
+ {
16
+ "name": "initialSigners",
17
+ "type": "address[]",
18
+ "internalType": "address[]"
19
+ }
20
+ ],
21
+ "stateMutability": "nonpayable"
22
+ },
23
+ {
24
+ "type": "receive",
25
+ "stateMutability": "payable"
26
+ },
27
+ {
28
+ "type": "function",
29
+ "name": "execute",
30
+ "inputs": [
31
+ {
32
+ "name": "target",
33
+ "type": "address",
34
+ "internalType": "address"
35
+ },
36
+ {
37
+ "name": "data",
38
+ "type": "bytes",
39
+ "internalType": "bytes"
40
+ },
41
+ {
42
+ "name": "value",
43
+ "type": "uint256",
44
+ "internalType": "uint256"
45
+ }
46
+ ],
47
+ "outputs": [
48
+ {
49
+ "name": "",
50
+ "type": "bytes",
51
+ "internalType": "bytes"
52
+ }
53
+ ],
54
+ "stateMutability": "payable"
55
+ },
56
+ {
57
+ "type": "function",
58
+ "name": "guardian",
59
+ "inputs": [],
60
+ "outputs": [
61
+ {
62
+ "name": "",
63
+ "type": "address",
64
+ "internalType": "address"
65
+ }
66
+ ],
67
+ "stateMutability": "view"
68
+ },
69
+ {
70
+ "type": "function",
71
+ "name": "isPaused",
72
+ "inputs": [],
73
+ "outputs": [
74
+ {
75
+ "name": "",
76
+ "type": "bool",
77
+ "internalType": "bool"
78
+ }
79
+ ],
80
+ "stateMutability": "view"
81
+ },
82
+ {
83
+ "type": "function",
84
+ "name": "isSigner",
85
+ "inputs": [
86
+ {
87
+ "name": "who",
88
+ "type": "address",
89
+ "internalType": "address"
90
+ }
91
+ ],
92
+ "outputs": [
93
+ {
94
+ "name": "",
95
+ "type": "bool",
96
+ "internalType": "bool"
97
+ }
98
+ ],
99
+ "stateMutability": "view"
100
+ },
101
+ {
102
+ "type": "function",
103
+ "name": "pause",
104
+ "inputs": [],
105
+ "outputs": [],
106
+ "stateMutability": "nonpayable"
107
+ },
108
+ {
109
+ "type": "function",
110
+ "name": "setSigner",
111
+ "inputs": [
112
+ {
113
+ "name": "who",
114
+ "type": "address",
115
+ "internalType": "address"
116
+ },
117
+ {
118
+ "name": "sig",
119
+ "type": "bool",
120
+ "internalType": "bool"
121
+ }
122
+ ],
123
+ "outputs": [],
124
+ "stateMutability": "nonpayable"
125
+ },
126
+ {
127
+ "type": "function",
128
+ "name": "timelock",
129
+ "inputs": [],
130
+ "outputs": [
131
+ {
132
+ "name": "",
133
+ "type": "address",
134
+ "internalType": "address"
135
+ }
136
+ ],
137
+ "stateMutability": "view"
138
+ },
139
+ {
140
+ "type": "function",
141
+ "name": "unpause",
142
+ "inputs": [],
143
+ "outputs": [],
144
+ "stateMutability": "nonpayable"
145
+ },
146
+ {
147
+ "type": "event",
148
+ "name": "Executed",
149
+ "inputs": [
150
+ {
151
+ "name": "target",
152
+ "type": "address",
153
+ "indexed": true,
154
+ "internalType": "address"
155
+ },
156
+ {
157
+ "name": "value",
158
+ "type": "uint256",
159
+ "indexed": false,
160
+ "internalType": "uint256"
161
+ },
162
+ {
163
+ "name": "data",
164
+ "type": "bytes",
165
+ "indexed": false,
166
+ "internalType": "bytes"
167
+ }
168
+ ],
169
+ "anonymous": false
170
+ },
171
+ {
172
+ "type": "event",
173
+ "name": "Paused",
174
+ "inputs": [
175
+ {
176
+ "name": "by",
177
+ "type": "address",
178
+ "indexed": true,
179
+ "internalType": "address"
180
+ }
181
+ ],
182
+ "anonymous": false
183
+ },
184
+ {
185
+ "type": "event",
186
+ "name": "SignerSet",
187
+ "inputs": [
188
+ {
189
+ "name": "who",
190
+ "type": "address",
191
+ "indexed": true,
192
+ "internalType": "address"
193
+ },
194
+ {
195
+ "name": "isSigner",
196
+ "type": "bool",
197
+ "indexed": false,
198
+ "internalType": "bool"
199
+ }
200
+ ],
201
+ "anonymous": false
202
+ },
203
+ {
204
+ "type": "event",
205
+ "name": "Unpaused",
206
+ "inputs": [
207
+ {
208
+ "name": "by",
209
+ "type": "address",
210
+ "indexed": true,
211
+ "internalType": "address"
212
+ }
213
+ ],
214
+ "anonymous": false
215
+ },
216
+ {
217
+ "type": "error",
218
+ "name": "ExecuteFailed",
219
+ "inputs": [
220
+ {
221
+ "name": "target",
222
+ "type": "address",
223
+ "internalType": "address"
224
+ },
225
+ {
226
+ "name": "returndata",
227
+ "type": "bytes",
228
+ "internalType": "bytes"
229
+ }
230
+ ]
231
+ },
232
+ {
233
+ "type": "error",
234
+ "name": "NotGuardian",
235
+ "inputs": [
236
+ {
237
+ "name": "caller",
238
+ "type": "address",
239
+ "internalType": "address"
240
+ }
241
+ ]
242
+ },
243
+ {
244
+ "type": "error",
245
+ "name": "NotTimelock",
246
+ "inputs": [
247
+ {
248
+ "name": "caller",
249
+ "type": "address",
250
+ "internalType": "address"
251
+ }
252
+ ]
253
+ },
254
+ {
255
+ "type": "error",
256
+ "name": "ZeroAddress",
257
+ "inputs": []
258
+ }
259
+ ]
@@ -0,0 +1,108 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "afterHook",
5
+ "inputs": [
6
+ {
7
+ "name": "",
8
+ "type": "bytes",
9
+ "internalType": "bytes"
10
+ },
11
+ {
12
+ "name": "",
13
+ "type": "bytes",
14
+ "internalType": "bytes"
15
+ },
16
+ {
17
+ "name": "",
18
+ "type": "bytes32",
19
+ "internalType": "bytes32"
20
+ },
21
+ {
22
+ "name": "",
23
+ "type": "address",
24
+ "internalType": "address"
25
+ },
26
+ {
27
+ "name": "",
28
+ "type": "address",
29
+ "internalType": "address"
30
+ },
31
+ {
32
+ "name": "",
33
+ "type": "address",
34
+ "internalType": "address"
35
+ },
36
+ {
37
+ "name": "",
38
+ "type": "uint256",
39
+ "internalType": "uint256"
40
+ },
41
+ {
42
+ "name": "",
43
+ "type": "bytes",
44
+ "internalType": "bytes"
45
+ }
46
+ ],
47
+ "outputs": [],
48
+ "stateMutability": "pure"
49
+ },
50
+ {
51
+ "type": "function",
52
+ "name": "beforeHook",
53
+ "inputs": [
54
+ {
55
+ "name": "terms",
56
+ "type": "bytes",
57
+ "internalType": "bytes"
58
+ },
59
+ {
60
+ "name": "",
61
+ "type": "bytes",
62
+ "internalType": "bytes"
63
+ },
64
+ {
65
+ "name": "",
66
+ "type": "bytes32",
67
+ "internalType": "bytes32"
68
+ },
69
+ {
70
+ "name": "",
71
+ "type": "address",
72
+ "internalType": "address"
73
+ },
74
+ {
75
+ "name": "",
76
+ "type": "address",
77
+ "internalType": "address"
78
+ },
79
+ {
80
+ "name": "",
81
+ "type": "address",
82
+ "internalType": "address"
83
+ },
84
+ {
85
+ "name": "",
86
+ "type": "uint256",
87
+ "internalType": "uint256"
88
+ },
89
+ {
90
+ "name": "callData",
91
+ "type": "bytes",
92
+ "internalType": "bytes"
93
+ }
94
+ ],
95
+ "outputs": [],
96
+ "stateMutability": "pure"
97
+ },
98
+ {
99
+ "type": "error",
100
+ "name": "CalldataTooShort",
101
+ "inputs": []
102
+ },
103
+ {
104
+ "type": "error",
105
+ "name": "MethodNotAllowed",
106
+ "inputs": []
107
+ }
108
+ ]
@@ -0,0 +1,103 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "afterHook",
5
+ "inputs": [
6
+ {
7
+ "name": "",
8
+ "type": "bytes",
9
+ "internalType": "bytes"
10
+ },
11
+ {
12
+ "name": "",
13
+ "type": "bytes",
14
+ "internalType": "bytes"
15
+ },
16
+ {
17
+ "name": "",
18
+ "type": "bytes32",
19
+ "internalType": "bytes32"
20
+ },
21
+ {
22
+ "name": "",
23
+ "type": "address",
24
+ "internalType": "address"
25
+ },
26
+ {
27
+ "name": "",
28
+ "type": "address",
29
+ "internalType": "address"
30
+ },
31
+ {
32
+ "name": "",
33
+ "type": "address",
34
+ "internalType": "address"
35
+ },
36
+ {
37
+ "name": "",
38
+ "type": "uint256",
39
+ "internalType": "uint256"
40
+ },
41
+ {
42
+ "name": "",
43
+ "type": "bytes",
44
+ "internalType": "bytes"
45
+ }
46
+ ],
47
+ "outputs": [],
48
+ "stateMutability": "pure"
49
+ },
50
+ {
51
+ "type": "function",
52
+ "name": "beforeHook",
53
+ "inputs": [
54
+ {
55
+ "name": "terms",
56
+ "type": "bytes",
57
+ "internalType": "bytes"
58
+ },
59
+ {
60
+ "name": "",
61
+ "type": "bytes",
62
+ "internalType": "bytes"
63
+ },
64
+ {
65
+ "name": "",
66
+ "type": "bytes32",
67
+ "internalType": "bytes32"
68
+ },
69
+ {
70
+ "name": "",
71
+ "type": "address",
72
+ "internalType": "address"
73
+ },
74
+ {
75
+ "name": "",
76
+ "type": "address",
77
+ "internalType": "address"
78
+ },
79
+ {
80
+ "name": "target",
81
+ "type": "address",
82
+ "internalType": "address"
83
+ },
84
+ {
85
+ "name": "",
86
+ "type": "uint256",
87
+ "internalType": "uint256"
88
+ },
89
+ {
90
+ "name": "",
91
+ "type": "bytes",
92
+ "internalType": "bytes"
93
+ }
94
+ ],
95
+ "outputs": [],
96
+ "stateMutability": "pure"
97
+ },
98
+ {
99
+ "type": "error",
100
+ "name": "TargetNotAllowed",
101
+ "inputs": []
102
+ }
103
+ ]
@@ -0,0 +1,114 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "approveHash",
5
+ "inputs": [
6
+ {
7
+ "name": "hash",
8
+ "type": "bytes32",
9
+ "internalType": "bytes32"
10
+ }
11
+ ],
12
+ "outputs": [],
13
+ "stateMutability": "nonpayable"
14
+ },
15
+ {
16
+ "type": "function",
17
+ "name": "approved",
18
+ "inputs": [
19
+ {
20
+ "name": "",
21
+ "type": "address",
22
+ "internalType": "address"
23
+ },
24
+ {
25
+ "name": "",
26
+ "type": "bytes32",
27
+ "internalType": "bytes32"
28
+ }
29
+ ],
30
+ "outputs": [
31
+ {
32
+ "name": "",
33
+ "type": "bool",
34
+ "internalType": "bool"
35
+ }
36
+ ],
37
+ "stateMutability": "view"
38
+ },
39
+ {
40
+ "type": "function",
41
+ "name": "isApproved",
42
+ "inputs": [
43
+ {
44
+ "name": "signer",
45
+ "type": "address",
46
+ "internalType": "address"
47
+ },
48
+ {
49
+ "name": "hash",
50
+ "type": "bytes32",
51
+ "internalType": "bytes32"
52
+ }
53
+ ],
54
+ "outputs": [
55
+ {
56
+ "name": "",
57
+ "type": "bool",
58
+ "internalType": "bool"
59
+ }
60
+ ],
61
+ "stateMutability": "view"
62
+ },
63
+ {
64
+ "type": "function",
65
+ "name": "revokeHash",
66
+ "inputs": [
67
+ {
68
+ "name": "hash",
69
+ "type": "bytes32",
70
+ "internalType": "bytes32"
71
+ }
72
+ ],
73
+ "outputs": [],
74
+ "stateMutability": "nonpayable"
75
+ },
76
+ {
77
+ "type": "event",
78
+ "name": "HashApproved",
79
+ "inputs": [
80
+ {
81
+ "name": "signer",
82
+ "type": "address",
83
+ "indexed": true,
84
+ "internalType": "address"
85
+ },
86
+ {
87
+ "name": "hash",
88
+ "type": "bytes32",
89
+ "indexed": true,
90
+ "internalType": "bytes32"
91
+ }
92
+ ],
93
+ "anonymous": false
94
+ },
95
+ {
96
+ "type": "event",
97
+ "name": "HashRevoked",
98
+ "inputs": [
99
+ {
100
+ "name": "signer",
101
+ "type": "address",
102
+ "indexed": true,
103
+ "internalType": "address"
104
+ },
105
+ {
106
+ "name": "hash",
107
+ "type": "bytes32",
108
+ "indexed": true,
109
+ "internalType": "bytes32"
110
+ }
111
+ ],
112
+ "anonymous": false
113
+ }
114
+ ]