@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,43 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "governance",
5
+ "inputs": [],
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "address",
10
+ "internalType": "address"
11
+ }
12
+ ],
13
+ "stateMutability": "view"
14
+ },
15
+ {
16
+ "type": "function",
17
+ "name": "paused",
18
+ "inputs": [],
19
+ "outputs": [
20
+ {
21
+ "name": "",
22
+ "type": "bool",
23
+ "internalType": "bool"
24
+ }
25
+ ],
26
+ "stateMutability": "view"
27
+ },
28
+ {
29
+ "type": "error",
30
+ "name": "NotGovernance",
31
+ "inputs": []
32
+ },
33
+ {
34
+ "type": "error",
35
+ "name": "SystemPaused",
36
+ "inputs": []
37
+ },
38
+ {
39
+ "type": "error",
40
+ "name": "ZeroGovernance",
41
+ "inputs": []
42
+ }
43
+ ]
@@ -0,0 +1,98 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "datatypeOf",
5
+ "inputs": [
6
+ {
7
+ "name": "subject",
8
+ "type": "bytes32",
9
+ "internalType": "bytes32"
10
+ },
11
+ {
12
+ "name": "predicate",
13
+ "type": "bytes32",
14
+ "internalType": "bytes32"
15
+ }
16
+ ],
17
+ "outputs": [
18
+ {
19
+ "name": "",
20
+ "type": "uint8",
21
+ "internalType": "uint8"
22
+ }
23
+ ],
24
+ "stateMutability": "view"
25
+ },
26
+ {
27
+ "type": "function",
28
+ "name": "getBytes32",
29
+ "inputs": [
30
+ {
31
+ "name": "subject",
32
+ "type": "bytes32",
33
+ "internalType": "bytes32"
34
+ },
35
+ {
36
+ "name": "predicate",
37
+ "type": "bytes32",
38
+ "internalType": "bytes32"
39
+ }
40
+ ],
41
+ "outputs": [
42
+ {
43
+ "name": "",
44
+ "type": "bytes32",
45
+ "internalType": "bytes32"
46
+ }
47
+ ],
48
+ "stateMutability": "view"
49
+ },
50
+ {
51
+ "type": "function",
52
+ "name": "getBytes32Arr",
53
+ "inputs": [
54
+ {
55
+ "name": "subject",
56
+ "type": "bytes32",
57
+ "internalType": "bytes32"
58
+ },
59
+ {
60
+ "name": "predicate",
61
+ "type": "bytes32",
62
+ "internalType": "bytes32"
63
+ }
64
+ ],
65
+ "outputs": [
66
+ {
67
+ "name": "",
68
+ "type": "bytes32[]",
69
+ "internalType": "bytes32[]"
70
+ }
71
+ ],
72
+ "stateMutability": "view"
73
+ },
74
+ {
75
+ "type": "function",
76
+ "name": "isSet",
77
+ "inputs": [
78
+ {
79
+ "name": "subject",
80
+ "type": "bytes32",
81
+ "internalType": "bytes32"
82
+ },
83
+ {
84
+ "name": "predicate",
85
+ "type": "bytes32",
86
+ "internalType": "bytes32"
87
+ }
88
+ ],
89
+ "outputs": [
90
+ {
91
+ "name": "",
92
+ "type": "bool",
93
+ "internalType": "bool"
94
+ }
95
+ ],
96
+ "stateMutability": "view"
97
+ }
98
+ ]
@@ -0,0 +1,98 @@
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
+ ]
@@ -0,0 +1,211 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "isRevoked",
5
+ "inputs": [
6
+ {
7
+ "name": "delegationHash",
8
+ "type": "bytes32",
9
+ "internalType": "bytes32"
10
+ }
11
+ ],
12
+ "outputs": [
13
+ {
14
+ "name": "",
15
+ "type": "bool",
16
+ "internalType": "bool"
17
+ }
18
+ ],
19
+ "stateMutability": "view"
20
+ },
21
+ {
22
+ "type": "function",
23
+ "name": "redeemDelegation",
24
+ "inputs": [
25
+ {
26
+ "name": "delegations",
27
+ "type": "tuple[]",
28
+ "internalType": "struct IDelegationManager.Delegation[]",
29
+ "components": [
30
+ {
31
+ "name": "delegator",
32
+ "type": "address",
33
+ "internalType": "address"
34
+ },
35
+ {
36
+ "name": "delegate",
37
+ "type": "address",
38
+ "internalType": "address"
39
+ },
40
+ {
41
+ "name": "authority",
42
+ "type": "bytes32",
43
+ "internalType": "bytes32"
44
+ },
45
+ {
46
+ "name": "caveats",
47
+ "type": "tuple[]",
48
+ "internalType": "struct IDelegationManager.Caveat[]",
49
+ "components": [
50
+ {
51
+ "name": "enforcer",
52
+ "type": "address",
53
+ "internalType": "address"
54
+ },
55
+ {
56
+ "name": "terms",
57
+ "type": "bytes",
58
+ "internalType": "bytes"
59
+ },
60
+ {
61
+ "name": "args",
62
+ "type": "bytes",
63
+ "internalType": "bytes"
64
+ }
65
+ ]
66
+ },
67
+ {
68
+ "name": "salt",
69
+ "type": "uint256",
70
+ "internalType": "uint256"
71
+ },
72
+ {
73
+ "name": "signature",
74
+ "type": "bytes",
75
+ "internalType": "bytes"
76
+ }
77
+ ]
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": "data",
91
+ "type": "bytes",
92
+ "internalType": "bytes"
93
+ }
94
+ ],
95
+ "outputs": [],
96
+ "stateMutability": "nonpayable"
97
+ },
98
+ {
99
+ "type": "function",
100
+ "name": "revokeDelegation",
101
+ "inputs": [
102
+ {
103
+ "name": "delegationHash",
104
+ "type": "bytes32",
105
+ "internalType": "bytes32"
106
+ }
107
+ ],
108
+ "outputs": [],
109
+ "stateMutability": "nonpayable"
110
+ },
111
+ {
112
+ "type": "function",
113
+ "name": "revokeDelegationByOwner",
114
+ "inputs": [
115
+ {
116
+ "name": "delegation",
117
+ "type": "tuple",
118
+ "internalType": "struct IDelegationManager.Delegation",
119
+ "components": [
120
+ {
121
+ "name": "delegator",
122
+ "type": "address",
123
+ "internalType": "address"
124
+ },
125
+ {
126
+ "name": "delegate",
127
+ "type": "address",
128
+ "internalType": "address"
129
+ },
130
+ {
131
+ "name": "authority",
132
+ "type": "bytes32",
133
+ "internalType": "bytes32"
134
+ },
135
+ {
136
+ "name": "caveats",
137
+ "type": "tuple[]",
138
+ "internalType": "struct IDelegationManager.Caveat[]",
139
+ "components": [
140
+ {
141
+ "name": "enforcer",
142
+ "type": "address",
143
+ "internalType": "address"
144
+ },
145
+ {
146
+ "name": "terms",
147
+ "type": "bytes",
148
+ "internalType": "bytes"
149
+ },
150
+ {
151
+ "name": "args",
152
+ "type": "bytes",
153
+ "internalType": "bytes"
154
+ }
155
+ ]
156
+ },
157
+ {
158
+ "name": "salt",
159
+ "type": "uint256",
160
+ "internalType": "uint256"
161
+ },
162
+ {
163
+ "name": "signature",
164
+ "type": "bytes",
165
+ "internalType": "bytes"
166
+ }
167
+ ]
168
+ }
169
+ ],
170
+ "outputs": [],
171
+ "stateMutability": "nonpayable"
172
+ },
173
+ {
174
+ "type": "event",
175
+ "name": "DelegationRedeemed",
176
+ "inputs": [
177
+ {
178
+ "name": "delegationHash",
179
+ "type": "bytes32",
180
+ "indexed": true,
181
+ "internalType": "bytes32"
182
+ },
183
+ {
184
+ "name": "delegator",
185
+ "type": "address",
186
+ "indexed": true,
187
+ "internalType": "address"
188
+ },
189
+ {
190
+ "name": "delegate",
191
+ "type": "address",
192
+ "indexed": true,
193
+ "internalType": "address"
194
+ }
195
+ ],
196
+ "anonymous": false
197
+ },
198
+ {
199
+ "type": "event",
200
+ "name": "DelegationRevoked",
201
+ "inputs": [
202
+ {
203
+ "name": "delegationHash",
204
+ "type": "bytes32",
205
+ "indexed": true,
206
+ "internalType": "bytes32"
207
+ }
208
+ ],
209
+ "anonymous": false
210
+ }
211
+ ]
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "isModuleType",
5
+ "inputs": [
6
+ {
7
+ "name": "moduleTypeId",
8
+ "type": "uint256",
9
+ "internalType": "uint256"
10
+ }
11
+ ],
12
+ "outputs": [
13
+ {
14
+ "name": "",
15
+ "type": "bool",
16
+ "internalType": "bool"
17
+ }
18
+ ],
19
+ "stateMutability": "view"
20
+ },
21
+ {
22
+ "type": "function",
23
+ "name": "moduleId",
24
+ "inputs": [],
25
+ "outputs": [
26
+ {
27
+ "name": "",
28
+ "type": "string",
29
+ "internalType": "string"
30
+ }
31
+ ],
32
+ "stateMutability": "view"
33
+ }
34
+ ]
@@ -0,0 +1,60 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "isModuleType",
5
+ "inputs": [
6
+ {
7
+ "name": "moduleTypeId",
8
+ "type": "uint256",
9
+ "internalType": "uint256"
10
+ }
11
+ ],
12
+ "outputs": [
13
+ {
14
+ "name": "",
15
+ "type": "bool",
16
+ "internalType": "bool"
17
+ }
18
+ ],
19
+ "stateMutability": "view"
20
+ },
21
+ {
22
+ "type": "function",
23
+ "name": "moduleId",
24
+ "inputs": [],
25
+ "outputs": [
26
+ {
27
+ "name": "",
28
+ "type": "string",
29
+ "internalType": "string"
30
+ }
31
+ ],
32
+ "stateMutability": "view"
33
+ },
34
+ {
35
+ "type": "function",
36
+ "name": "onInstall",
37
+ "inputs": [
38
+ {
39
+ "name": "data",
40
+ "type": "bytes",
41
+ "internalType": "bytes"
42
+ }
43
+ ],
44
+ "outputs": [],
45
+ "stateMutability": "nonpayable"
46
+ },
47
+ {
48
+ "type": "function",
49
+ "name": "onUninstall",
50
+ "inputs": [
51
+ {
52
+ "name": "data",
53
+ "type": "bytes",
54
+ "internalType": "bytes"
55
+ }
56
+ ],
57
+ "outputs": [],
58
+ "stateMutability": "nonpayable"
59
+ }
60
+ ]
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "isPaused",
5
+ "inputs": [],
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "bool",
10
+ "internalType": "bool"
11
+ }
12
+ ],
13
+ "stateMutability": "view"
14
+ },
15
+ {
16
+ "type": "function",
17
+ "name": "isSigner",
18
+ "inputs": [
19
+ {
20
+ "name": "who",
21
+ "type": "address",
22
+ "internalType": "address"
23
+ }
24
+ ],
25
+ "outputs": [
26
+ {
27
+ "name": "",
28
+ "type": "bool",
29
+ "internalType": "bool"
30
+ }
31
+ ],
32
+ "stateMutability": "view"
33
+ }
34
+ ]
@@ -0,0 +1,29 @@
1
+ [
2
+ {
3
+ "type": "error",
4
+ "name": "CallFailed",
5
+ "inputs": [
6
+ {
7
+ "name": "index",
8
+ "type": "uint256",
9
+ "internalType": "uint256"
10
+ },
11
+ {
12
+ "name": "returnData",
13
+ "type": "bytes",
14
+ "internalType": "bytes"
15
+ }
16
+ ]
17
+ },
18
+ {
19
+ "type": "error",
20
+ "name": "InvalidOperation",
21
+ "inputs": [
22
+ {
23
+ "name": "op",
24
+ "type": "uint8",
25
+ "internalType": "uint8"
26
+ }
27
+ ]
28
+ }
29
+ ]
@@ -0,0 +1,42 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "multiSend",
5
+ "inputs": [
6
+ {
7
+ "name": "transactions",
8
+ "type": "bytes",
9
+ "internalType": "bytes"
10
+ }
11
+ ],
12
+ "outputs": [],
13
+ "stateMutability": "payable"
14
+ },
15
+ {
16
+ "type": "error",
17
+ "name": "CallFailed",
18
+ "inputs": [
19
+ {
20
+ "name": "index",
21
+ "type": "uint256",
22
+ "internalType": "uint256"
23
+ },
24
+ {
25
+ "name": "returnData",
26
+ "type": "bytes",
27
+ "internalType": "bytes"
28
+ }
29
+ ]
30
+ },
31
+ {
32
+ "type": "error",
33
+ "name": "InvalidOperation",
34
+ "inputs": [
35
+ {
36
+ "name": "op",
37
+ "type": "uint8",
38
+ "internalType": "uint8"
39
+ }
40
+ ]
41
+ }
42
+ ]