@agenticprimitives/agent-naming 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 (54) hide show
  1. package/AUDIT.md +86 -0
  2. package/CLAUDE.md +180 -0
  3. package/LICENSE +21 -0
  4. package/README.md +158 -0
  5. package/dist/abis.d.ts +1532 -0
  6. package/dist/abis.d.ts.map +1 -0
  7. package/dist/abis.js +417 -0
  8. package/dist/abis.js.map +1 -0
  9. package/dist/client.d.ts +102 -0
  10. package/dist/client.d.ts.map +1 -0
  11. package/dist/client.js +299 -0
  12. package/dist/client.js.map +1 -0
  13. package/dist/constants.d.ts +8 -0
  14. package/dist/constants.d.ts.map +1 -0
  15. package/dist/constants.js +7 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/custody.d.ts +133 -0
  18. package/dist/custody.d.ts.map +1 -0
  19. package/dist/custody.js +214 -0
  20. package/dist/custody.js.map +1 -0
  21. package/dist/errors.d.ts +15 -0
  22. package/dist/errors.d.ts.map +1 -0
  23. package/dist/errors.js +30 -0
  24. package/dist/errors.js.map +1 -0
  25. package/dist/index.d.ts +10 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +22 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/namehash.d.ts +31 -0
  30. package/dist/namehash.d.ts.map +1 -0
  31. package/dist/namehash.js +46 -0
  32. package/dist/namehash.js.map +1 -0
  33. package/dist/normalize.d.ts +28 -0
  34. package/dist/normalize.d.ts.map +1 -0
  35. package/dist/normalize.js +68 -0
  36. package/dist/normalize.js.map +1 -0
  37. package/dist/records.d.ts +88 -0
  38. package/dist/records.d.ts.map +1 -0
  39. package/dist/records.js +193 -0
  40. package/dist/records.js.map +1 -0
  41. package/dist/types.d.ts +117 -0
  42. package/dist/types.d.ts.map +1 -0
  43. package/dist/types.js +2 -0
  44. package/dist/types.js.map +1 -0
  45. package/docs/api.md +110 -0
  46. package/docs/concepts.md +159 -0
  47. package/docs/migration.md +93 -0
  48. package/docs/security.md +127 -0
  49. package/docs/troubleshooting.md +116 -0
  50. package/examples/basic.ts +31 -0
  51. package/examples/custody-rotation.ts +44 -0
  52. package/examples/records.ts +41 -0
  53. package/package.json +71 -0
  54. package/spec.md +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyIvB,CAAC;AAIX,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoFhC,CAAC;AAMX,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqC/B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BhC,CAAC;AAIX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2E1B,CAAC;AAIX,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8DnB,CAAC"}
package/dist/abis.js ADDED
@@ -0,0 +1,417 @@
1
+ // Naming-contract ABIs — source of truth: packages/contracts/src/naming/*.sol
2
+ // and packages/contracts/src/ontology/*.sol (spec 215 / NS Phase 3,
3
+ // ADR-0009 ontology pivot). Hand-typed against `forge inspect` output
4
+ // so callers get full viem type-inference without runtime JSON loads.
5
+ //
6
+ // Convention matches packages/agent-account/src/abis.ts +
7
+ // packages/account-custody/src/abi.ts — typed `as const` arrays.
8
+ // ─── AgentNameRegistry ─────────────────────────────────────────────
9
+ export const agentNameRegistryAbi = [
10
+ { type: 'error', name: 'NotAuthorized', inputs: [] },
11
+ { type: 'error', name: 'NodeAlreadyExists', inputs: [] },
12
+ { type: 'error', name: 'NodeNotFound', inputs: [] },
13
+ { type: 'error', name: 'ParentNotFound', inputs: [] },
14
+ { type: 'error', name: 'NameExpired', inputs: [] },
15
+ { type: 'error', name: 'RootAlreadyInitialized', inputs: [] },
16
+ { type: 'error', name: 'EmptyLabel', inputs: [] },
17
+ { type: 'error', name: 'ZeroOwner', inputs: [] },
18
+ {
19
+ type: 'event', name: 'RootInitialized',
20
+ inputs: [
21
+ { name: 'rootNode', type: 'bytes32', indexed: true },
22
+ { name: 'label', type: 'string', indexed: false },
23
+ { name: 'owner', type: 'address', indexed: true },
24
+ { name: 'kind', type: 'bytes32', indexed: false },
25
+ ],
26
+ },
27
+ {
28
+ type: 'event', name: 'NameRegistered',
29
+ inputs: [
30
+ { name: 'node', type: 'bytes32', indexed: true },
31
+ { name: 'parent', type: 'bytes32', indexed: true },
32
+ { name: 'label', type: 'string', indexed: false },
33
+ { name: 'owner', type: 'address', indexed: false },
34
+ { name: 'resolver', type: 'address', indexed: false },
35
+ { name: 'expiry', type: 'uint64', indexed: false },
36
+ ],
37
+ },
38
+ {
39
+ type: 'event', name: 'OwnerChanged',
40
+ inputs: [
41
+ { name: 'node', type: 'bytes32', indexed: true },
42
+ { name: 'newOwner', type: 'address', indexed: true },
43
+ ],
44
+ },
45
+ {
46
+ type: 'event', name: 'ResolverChanged',
47
+ inputs: [
48
+ { name: 'node', type: 'bytes32', indexed: true },
49
+ { name: 'resolver', type: 'address', indexed: true },
50
+ ],
51
+ },
52
+ {
53
+ type: 'event', name: 'SubregistryChanged',
54
+ inputs: [
55
+ { name: 'node', type: 'bytes32', indexed: true },
56
+ { name: 'subregistry', type: 'address', indexed: true },
57
+ ],
58
+ },
59
+ {
60
+ type: 'event', name: 'NameRenewed',
61
+ inputs: [
62
+ { name: 'node', type: 'bytes32', indexed: true },
63
+ { name: 'newExpiry', type: 'uint64', indexed: false },
64
+ ],
65
+ },
66
+ {
67
+ type: 'event', name: 'PrimaryNameSet',
68
+ inputs: [
69
+ { name: 'agent', type: 'address', indexed: true },
70
+ { name: 'node', type: 'bytes32', indexed: true },
71
+ ],
72
+ },
73
+ {
74
+ type: 'event', name: 'PrimaryNameCleared',
75
+ inputs: [{ name: 'agent', type: 'address', indexed: true }],
76
+ },
77
+ { type: 'function', name: 'namehashRoot', stateMutability: 'pure',
78
+ inputs: [{ name: 'label', type: 'string' }], outputs: [{ type: 'bytes32' }] },
79
+ { type: 'function', name: 'AGENT_ROOT', stateMutability: 'pure',
80
+ inputs: [], outputs: [{ type: 'bytes32' }] },
81
+ { type: 'function', name: 'KIND_AGENT', stateMutability: 'view',
82
+ inputs: [], outputs: [{ type: 'bytes32' }] },
83
+ {
84
+ type: 'function', name: 'initializeRoot', stateMutability: 'nonpayable',
85
+ inputs: [
86
+ { name: 'label', type: 'string' },
87
+ { name: 'rootOwner', type: 'address' },
88
+ { name: 'resolverContract', type: 'address' },
89
+ { name: 'kind', type: 'bytes32' },
90
+ ],
91
+ outputs: [{ name: 'rootNode', type: 'bytes32' }],
92
+ },
93
+ { type: 'function', name: 'getRoots', stateMutability: 'view',
94
+ inputs: [], outputs: [{ type: 'bytes32[]' }] },
95
+ { type: 'function', name: 'rootByLabel', stateMutability: 'view',
96
+ inputs: [{ name: 'label', type: 'string' }], outputs: [{ type: 'bytes32' }] },
97
+ { type: 'function', name: 'isRoot', stateMutability: 'view',
98
+ inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
99
+ { type: 'function', name: 'rootKind', stateMutability: 'view',
100
+ inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
101
+ {
102
+ type: 'function', name: 'register', stateMutability: 'nonpayable',
103
+ inputs: [
104
+ { name: 'parentNode', type: 'bytes32' },
105
+ { name: 'label', type: 'string' },
106
+ { name: 'newOwner', type: 'address' },
107
+ { name: 'resolverContract', type: 'address' },
108
+ { name: 'expiry', type: 'uint64' },
109
+ ],
110
+ outputs: [{ name: 'childNode', type: 'bytes32' }],
111
+ },
112
+ { type: 'function', name: 'setOwner', stateMutability: 'nonpayable',
113
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'newOwner', type: 'address' }], outputs: [] },
114
+ { type: 'function', name: 'setResolver', stateMutability: 'nonpayable',
115
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'resolverContract', type: 'address' }], outputs: [] },
116
+ { type: 'function', name: 'setSubregistry', stateMutability: 'nonpayable',
117
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'subregistryContract', type: 'address' }], outputs: [] },
118
+ { type: 'function', name: 'renew', stateMutability: 'nonpayable',
119
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'newExpiry', type: 'uint64' }], outputs: [] },
120
+ { type: 'function', name: 'setPrimaryName', stateMutability: 'nonpayable',
121
+ inputs: [{ name: 'node', type: 'bytes32' }], outputs: [] },
122
+ { type: 'function', name: 'owner', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'address' }] },
123
+ { type: 'function', name: 'resolver', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'address' }] },
124
+ { type: 'function', name: 'subregistry', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'address' }] },
125
+ { type: 'function', name: 'parent', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
126
+ { type: 'function', name: 'labelhash', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
127
+ { type: 'function', name: 'expiry', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'uint64' }] },
128
+ { type: 'function', name: 'recordExists', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
129
+ { type: 'function', name: 'registeredAt', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'uint64' }] },
130
+ { type: 'function', name: 'isExpired', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
131
+ { type: 'function', name: 'childNode', stateMutability: 'view',
132
+ inputs: [{ name: 'parentNode', type: 'bytes32' }, { name: 'lh', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
133
+ { type: 'function', name: 'childCount', stateMutability: 'view', inputs: [{ name: 'parentNode', type: 'bytes32' }], outputs: [{ type: 'uint256' }] },
134
+ { type: 'function', name: 'childLabelhashes', stateMutability: 'view', inputs: [{ name: 'parentNode', type: 'bytes32' }], outputs: [{ type: 'bytes32[]' }] },
135
+ { type: 'function', name: 'primaryName', stateMutability: 'view', inputs: [{ name: 'agent', type: 'address' }], outputs: [{ type: 'bytes32' }] },
136
+ // Per-node label string (spec/222) — enables view-call reverse name reconstruction.
137
+ { type: 'function', name: 'label', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'string' }] },
138
+ { type: 'function', name: 'backfillLabel', stateMutability: 'nonpayable',
139
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'label', type: 'string' }], outputs: [] },
140
+ ];
141
+ // ─── AgentNameAttributeResolver (ontology-backed typed records) ────
142
+ export const agentNameAttributeResolverAbi = [
143
+ { type: 'error', name: 'NotAuthorized', inputs: [] },
144
+ { type: 'error', name: 'NodeNotFound', inputs: [] },
145
+ { type: 'error', name: 'PredicateNotActive', inputs: [] },
146
+ { type: 'error', name: 'AttributeNotSet', inputs: [] },
147
+ {
148
+ type: 'event', name: 'AttributeSet',
149
+ inputs: [
150
+ { name: 'subject', type: 'bytes32', indexed: true },
151
+ { name: 'predicate', type: 'bytes32', indexed: true },
152
+ { name: 'datatype', type: 'uint8', indexed: false },
153
+ { name: 'version', type: 'uint64', indexed: false },
154
+ ],
155
+ },
156
+ {
157
+ type: 'event', name: 'AttributeUnset',
158
+ inputs: [
159
+ { name: 'subject', type: 'bytes32', indexed: true },
160
+ { name: 'predicate', type: 'bytes32', indexed: true },
161
+ { name: 'version', type: 'uint64', indexed: false },
162
+ ],
163
+ },
164
+ {
165
+ type: 'event', name: 'AttributeAppended',
166
+ inputs: [
167
+ { name: 'subject', type: 'bytes32', indexed: true },
168
+ { name: 'predicate', type: 'bytes32', indexed: true },
169
+ { name: 'datatype', type: 'uint8', indexed: false },
170
+ { name: 'version', type: 'uint64', indexed: false },
171
+ ],
172
+ },
173
+ { type: 'event', name: 'SubjectFirstSeen', inputs: [{ name: 'subject', type: 'bytes32', indexed: true }] },
174
+ { type: 'function', name: 'REGISTRY', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
175
+ { type: 'function', name: 'ONTOLOGY', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
176
+ // ─── Typed setters (owner-gated, predicate-active-checked) ────────
177
+ { type: 'function', name: 'setStringAttribute', stateMutability: 'nonpayable',
178
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'string' }],
179
+ outputs: [] },
180
+ { type: 'function', name: 'setAddressAttribute', stateMutability: 'nonpayable',
181
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'address' }],
182
+ outputs: [] },
183
+ { type: 'function', name: 'setBoolAttribute', stateMutability: 'nonpayable',
184
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'bool' }],
185
+ outputs: [] },
186
+ { type: 'function', name: 'setUintAttribute', stateMutability: 'nonpayable',
187
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'uint256' }],
188
+ outputs: [] },
189
+ { type: 'function', name: 'setBytes32Attribute', stateMutability: 'nonpayable',
190
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'bytes32' }],
191
+ outputs: [] },
192
+ { type: 'function', name: 'setStringArrayAttribute', stateMutability: 'nonpayable',
193
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'values', type: 'string[]' }],
194
+ outputs: [] },
195
+ { type: 'function', name: 'setAddressArrayAttribute', stateMutability: 'nonpayable',
196
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'values', type: 'address[]' }],
197
+ outputs: [] },
198
+ { type: 'function', name: 'setBytes32ArrayAttribute', stateMutability: 'nonpayable',
199
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'values', type: 'bytes32[]' }],
200
+ outputs: [] },
201
+ { type: 'function', name: 'unsetAttribute', stateMutability: 'nonpayable',
202
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }],
203
+ outputs: [] },
204
+ // ─── Typed getters ─────────────────────────────────────────────────
205
+ { type: 'function', name: 'getString', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'string' }] },
206
+ { type: 'function', name: 'getAddress', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'address' }] },
207
+ { type: 'function', name: 'getBool', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
208
+ { type: 'function', name: 'getUint', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'uint256' }] },
209
+ { type: 'function', name: 'getBytes32', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
210
+ { type: 'function', name: 'getStringArr', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'string[]' }] },
211
+ { type: 'function', name: 'getAddressArr', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'address[]' }] },
212
+ { type: 'function', name: 'getBytes32Arr', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bytes32[]' }] },
213
+ // ─── Indexing / metadata ───────────────────────────────────────────
214
+ { type: 'function', name: 'predicatesOf', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }], outputs: [{ type: 'bytes32[]' }] },
215
+ { type: 'function', name: 'datatypeOf', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'uint8' }] },
216
+ { type: 'function', name: 'updatedAt', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'uint64' }] },
217
+ { type: 'function', name: 'isSet', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
218
+ { type: 'function', name: 'subjectVersion', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }], outputs: [{ type: 'uint64' }] },
219
+ { type: 'function', name: 'allSubjects', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32[]' }] },
220
+ { type: 'function', name: 'subjectCount', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }] },
221
+ ];
222
+ // ─── AgentNameUniversalResolver ────────────────────────────────────
223
+ // ─── PermissionlessSubregistry (permissionless child-name registration) ──
224
+ export const permissionlessSubregistryAbi = [
225
+ { type: 'error', name: 'AlreadyClaimed',
226
+ inputs: [{ name: 'existingNode', type: 'bytes32' }] },
227
+ { type: 'error', name: 'LabelTooShort', inputs: [] },
228
+ { type: 'error', name: 'EmptyLabel', inputs: [] },
229
+ { type: 'error', name: 'ZeroNewOwner', inputs: [] },
230
+ {
231
+ type: 'event', name: 'NameClaimed',
232
+ inputs: [
233
+ { name: 'caller', type: 'address', indexed: true },
234
+ { name: 'childNode', type: 'bytes32', indexed: true },
235
+ { name: 'label', type: 'string', indexed: false },
236
+ { name: 'newOwner', type: 'address', indexed: false },
237
+ ],
238
+ },
239
+ { type: 'function', name: 'REGISTRY', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
240
+ { type: 'function', name: 'PARENT_NODE', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32' }] },
241
+ { type: 'function', name: 'DEFAULT_RESOLVER', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
242
+ { type: 'function', name: 'MIN_LABEL_LENGTH', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }] },
243
+ {
244
+ type: 'function', name: 'register', stateMutability: 'nonpayable',
245
+ inputs: [
246
+ { name: 'label', type: 'string' },
247
+ { name: 'newOwner', type: 'address' },
248
+ ],
249
+ outputs: [{ name: 'childNode', type: 'bytes32' }],
250
+ },
251
+ { type: 'function', name: 'claimedBy', stateMutability: 'view',
252
+ inputs: [{ name: 'caller', type: 'address' }], outputs: [{ type: 'bytes32' }] },
253
+ { type: 'function', name: 'hasClaimed', stateMutability: 'view',
254
+ inputs: [{ name: 'caller', type: 'address' }], outputs: [{ type: 'bool' }] },
255
+ { type: 'function', name: 'claimCount', stateMutability: 'view',
256
+ inputs: [], outputs: [{ type: 'uint256' }] },
257
+ ];
258
+ export const agentNameUniversalResolverAbi = [
259
+ { type: 'function', name: 'REGISTRY', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
260
+ { type: 'function', name: 'resolveName', stateMutability: 'view',
261
+ inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'address' }] },
262
+ { type: 'function', name: 'resolveString', stateMutability: 'view',
263
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'string' }] },
264
+ { type: 'function', name: 'resolveBytes32', stateMutability: 'view',
265
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
266
+ { type: 'function', name: 'resolveAddress', stateMutability: 'view',
267
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'address' }] },
268
+ { type: 'function', name: 'resolveStringBatch', stateMutability: 'view',
269
+ inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicates', type: 'bytes32[]' }], outputs: [{ type: 'string[]' }] },
270
+ { type: 'function', name: 'reverseResolve', stateMutability: 'view',
271
+ inputs: [{ name: 'agent', type: 'address' }], outputs: [{ type: 'bytes32' }] },
272
+ // Spec/222 — single-call reverse to the full dotted name string. Walks
273
+ // the parent chain on chain via view calls; no SDK-side eth_getLogs.
274
+ { type: 'function', name: 'reverseResolveString', stateMutability: 'view',
275
+ inputs: [{ name: 'agent', type: 'address' }], outputs: [{ type: 'string' }] },
276
+ { type: 'function', name: 'nameOf', stateMutability: 'view',
277
+ inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'string' }] },
278
+ {
279
+ type: 'function', name: 'getChildren', stateMutability: 'view',
280
+ inputs: [{ name: 'parentNode', type: 'bytes32' }],
281
+ outputs: [{ type: 'bytes32[]', name: 'childNodes' }, { type: 'address[]', name: 'owners' }],
282
+ },
283
+ ];
284
+ // ─── OntologyTermRegistry (shared trust-fabric vocabulary) ─────────
285
+ export const ontologyTermRegistryAbi = [
286
+ { type: 'error', name: 'NotGovernor', inputs: [] },
287
+ { type: 'error', name: 'TermExists', inputs: [] },
288
+ { type: 'error', name: 'TermNotFound', inputs: [] },
289
+ { type: 'error', name: 'ZeroGovernor', inputs: [] },
290
+ {
291
+ type: 'event', name: 'TermRegistered',
292
+ inputs: [
293
+ { name: 'id', type: 'bytes32', indexed: true },
294
+ { name: 'curie', type: 'string', indexed: false },
295
+ { name: 'uri', type: 'string', indexed: false },
296
+ ],
297
+ },
298
+ { type: 'event', name: 'TermDeactivated', inputs: [{ name: 'id', type: 'bytes32', indexed: true }] },
299
+ { type: 'event', name: 'TermActivated', inputs: [{ name: 'id', type: 'bytes32', indexed: true }] },
300
+ {
301
+ type: 'event', name: 'GovernorTransferred',
302
+ inputs: [
303
+ { name: 'oldGovernor', type: 'address', indexed: true },
304
+ { name: 'newGovernor', type: 'address', indexed: true },
305
+ ],
306
+ },
307
+ { type: 'function', name: 'governor', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
308
+ { type: 'function', name: 'transferGovernor', stateMutability: 'nonpayable',
309
+ inputs: [{ name: 'newGovernor', type: 'address' }], outputs: [] },
310
+ {
311
+ type: 'function', name: 'registerTerm', stateMutability: 'nonpayable',
312
+ inputs: [
313
+ { name: 'id', type: 'bytes32' },
314
+ { name: 'curie', type: 'string' },
315
+ { name: 'uri', type: 'string' },
316
+ { name: 'label', type: 'string' },
317
+ { name: 'datatype', type: 'string' },
318
+ ], outputs: [],
319
+ },
320
+ {
321
+ type: 'function', name: 'registerTermBatch', stateMutability: 'nonpayable',
322
+ inputs: [
323
+ { name: 'ids', type: 'bytes32[]' },
324
+ { name: 'curies', type: 'string[]' },
325
+ { name: 'uris', type: 'string[]' },
326
+ { name: 'labels', type: 'string[]' },
327
+ { name: 'datatypes', type: 'string[]' },
328
+ ], outputs: [],
329
+ },
330
+ { type: 'function', name: 'deactivateTerm', stateMutability: 'nonpayable',
331
+ inputs: [{ name: 'id', type: 'bytes32' }], outputs: [] },
332
+ { type: 'function', name: 'activateTerm', stateMutability: 'nonpayable',
333
+ inputs: [{ name: 'id', type: 'bytes32' }], outputs: [] },
334
+ {
335
+ type: 'function', name: 'getTerm', stateMutability: 'view',
336
+ inputs: [{ name: 'id', type: 'bytes32' }],
337
+ outputs: [{
338
+ type: 'tuple',
339
+ components: [
340
+ { name: 'id', type: 'bytes32' },
341
+ { name: 'curie', type: 'string' },
342
+ { name: 'uri', type: 'string' },
343
+ { name: 'label', type: 'string' },
344
+ { name: 'datatype', type: 'string' },
345
+ { name: 'active', type: 'bool' },
346
+ { name: 'registeredAt', type: 'uint256' },
347
+ ],
348
+ }],
349
+ },
350
+ { type: 'function', name: 'isRegistered', stateMutability: 'view',
351
+ inputs: [{ name: 'id', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
352
+ { type: 'function', name: 'isActive', stateMutability: 'view',
353
+ inputs: [{ name: 'id', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
354
+ { type: 'function', name: 'termCount', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }] },
355
+ { type: 'function', name: 'getAllTermIds', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32[]' }] },
356
+ ];
357
+ // ─── ShapeRegistry (SHACL-style shape validation) ──────────────────
358
+ export const shapeRegistryAbi = [
359
+ { type: 'error', name: 'NotGovernor', inputs: [] },
360
+ { type: 'error', name: 'ShapeAlreadyDefined', inputs: [] },
361
+ { type: 'error', name: 'ShapeNotDefined', inputs: [] },
362
+ { type: 'error', name: 'ShapeNotActive', inputs: [] },
363
+ { type: 'error', name: 'MissingRequiredProperty',
364
+ inputs: [{ name: 'predicate', type: 'bytes32' }] },
365
+ { type: 'error', name: 'WrongDatatype',
366
+ inputs: [{ name: 'predicate', type: 'bytes32' }, { name: 'actual', type: 'uint8' }, { name: 'expected', type: 'uint8' }] },
367
+ { type: 'error', name: 'EnumValueNotAllowed',
368
+ inputs: [{ name: 'predicate', type: 'bytes32' }, { name: 'actualValue', type: 'bytes32' }] },
369
+ { type: 'error', name: 'EnumSetEmpty', inputs: [] },
370
+ { type: 'error', name: 'ZeroGovernor', inputs: [] },
371
+ {
372
+ type: 'event', name: 'ShapeDefined',
373
+ inputs: [
374
+ { name: 'classId', type: 'bytes32', indexed: true },
375
+ { name: 'version', type: 'uint16', indexed: false },
376
+ { name: 'shapeURI', type: 'string', indexed: false },
377
+ { name: 'shapeHash', type: 'bytes32', indexed: false },
378
+ ],
379
+ },
380
+ { type: 'function', name: 'governor', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
381
+ { type: 'function', name: 'isValid', stateMutability: 'view',
382
+ inputs: [{ name: 'classId', type: 'bytes32' }, { name: 'subject', type: 'bytes32' }, { name: 'store', type: 'address' }],
383
+ outputs: [{ type: 'bool' }] },
384
+ { type: 'function', name: 'validateSubject', stateMutability: 'view',
385
+ inputs: [{ name: 'classId', type: 'bytes32' }, { name: 'subject', type: 'bytes32' }, { name: 'store', type: 'address' }],
386
+ outputs: [] },
387
+ {
388
+ type: 'function', name: 'getShape', stateMutability: 'view',
389
+ inputs: [{ name: 'classId', type: 'bytes32' }],
390
+ outputs: [{
391
+ type: 'tuple',
392
+ components: [
393
+ { name: 'classId', type: 'bytes32' },
394
+ { name: 'shapeURI', type: 'string' },
395
+ { name: 'shapeHash', type: 'bytes32' },
396
+ { name: 'version', type: 'uint16' },
397
+ { name: 'active', type: 'bool' },
398
+ { name: 'exists', type: 'bool' },
399
+ ],
400
+ }],
401
+ },
402
+ {
403
+ type: 'function', name: 'getProperties', stateMutability: 'view',
404
+ inputs: [{ name: 'classId', type: 'bytes32' }],
405
+ outputs: [{
406
+ type: 'tuple[]',
407
+ components: [
408
+ { name: 'predicate', type: 'bytes32' },
409
+ { name: 'expectedDatatype', type: 'uint8' },
410
+ { name: 'cardinality', type: 'uint8' },
411
+ { name: 'enumSetId', type: 'bytes32' },
412
+ { name: 'expectedClass', type: 'bytes32' },
413
+ ],
414
+ }],
415
+ },
416
+ ];
417
+ //# sourceMappingURL=abis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abis.js","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import { type Address, type Hex, type WalletClient } from 'viem';
2
+ import type { AgentNameRecords, AgentNamingClientOpts, RegisterSubnameInput, SetAgentRecordsInput, SetPrimaryNameInput, SetSubregistryInput } from './types';
3
+ /**
4
+ * Optional per-call submission context. When provided, the write
5
+ * method submits the encoded call via `walletClient.sendTransaction`.
6
+ * When omitted, the method throws — callers who want to submit via a
7
+ * different path (AgentAccount.execute, CustodyPolicy ceremony,
8
+ * relayer, etc.) should use the pure builders in `./custody` instead.
9
+ */
10
+ export interface WriteContext {
11
+ walletClient: WalletClient;
12
+ }
13
+ /**
14
+ * Read + write client for the Agent Naming Service.
15
+ *
16
+ * Phase 2 lands the read paths (resolveName / reverseResolve /
17
+ * getRecords) against the live AgentNameUniversalResolver +
18
+ * AgentNameAttributeResolver. Write methods still throw `NS Phase 4`
19
+ * — they need ERC-1271 auth + the agent-naming/custody call builders.
20
+ *
21
+ * Round-trip discipline (security invariant from spec § 10):
22
+ * `reverseResolve(agent)` returns a name ONLY when the on-chain
23
+ * `resolveName(name) === agent`. The universal resolver enforces this
24
+ * on chain and returns the full dotted name in a single view call.
25
+ *
26
+ * NO-FALLBACK DOCTRINE (ADR-0012 + ADR-0013): every read here is one
27
+ * `readContract`. There is NO `eth_getLogs` walk, no "try fast path then
28
+ * fall back to log scan." If the resolver has no answer, the read returns
29
+ * null/empty — it does not reach for an alternative path.
30
+ */
31
+ export declare class AgentNamingClient {
32
+ readonly opts: AgentNamingClientOpts;
33
+ private readonly publicClient;
34
+ constructor(opts: AgentNamingClientOpts);
35
+ /**
36
+ * Resolve an agent name to its forward-record address. Returns
37
+ * `null` when the name is unregistered OR no `addr` record is set.
38
+ *
39
+ * Reads via `UniversalResolver.resolveName(node)` which:
40
+ * 1. Tries `resolver.getAddress(node, ATL_ADDR)`.
41
+ * 2. Falls back to `registry.owner(node)` if no resolver-addr set.
42
+ */
43
+ resolveName(name: string): Promise<Address | null>;
44
+ /**
45
+ * Reverse-resolve a Smart Agent address to its primary name string.
46
+ * Returns `null` when no primary name is set OR the round-trip
47
+ * check fails on chain (squat protection).
48
+ *
49
+ * Single on-chain read: `reverseResolveString` returns the full
50
+ * dotted name; the resolver concatenates ancestor labels via view
51
+ * calls. No SDK-side log walk, no fallback path (ADR-0013).
52
+ */
53
+ reverseResolve(agent: Address): Promise<string | null>;
54
+ /**
55
+ * Read the full typed record bundle for a name. Returns an empty
56
+ * bundle when the name has no resolver / no records set.
57
+ */
58
+ getRecords(name: string): Promise<AgentNameRecords>;
59
+ /**
60
+ * Register `<label>.<parent>` under the parent namespace. The
61
+ * provided `walletClient`'s account MUST be authorized to register
62
+ * children under `parent` (either direct owner OR subregistry
63
+ * delegate). Returns the registration tx hash; the new child node
64
+ * can be computed off-chain as
65
+ * `keccak256(parentNode || keccak256(label))` — equal to
66
+ * `namehash(label + '.' + parentName)`.
67
+ *
68
+ * For PSA-controlled registrations (where the parent's owner is a
69
+ * Smart Agent gated by CustodyPolicy), use the builders in
70
+ * `./custody` directly and compose them into the appropriate
71
+ * AgentAccount.execute / CustodyPolicy ceremony instead.
72
+ */
73
+ registerSubname(input: RegisterSubnameInput, ctx: WriteContext): Promise<Hex>;
74
+ /**
75
+ * Set the caller's primary name (reverse record). The wallet
76
+ * client's account MUST equal `input.agent` — the contract enforces
77
+ * `msg.sender == agent` (i.e. an agent sets its OWN primary name;
78
+ * authority over reverse records is per-account by construction).
79
+ */
80
+ setPrimaryName(input: SetPrimaryNameInput, ctx: WriteContext): Promise<Hex>;
81
+ /**
82
+ * Write the typed record bundle for `input.name`. The
83
+ * `walletClient`'s account MUST be the current name owner
84
+ * (`REGISTRY.owner(node) == msg.sender`). Returns one tx hash per
85
+ * record set — the caller may parallelize submission via a multi-call
86
+ * upstream if/when one becomes available.
87
+ */
88
+ setAgentRecords(input: SetAgentRecordsInput, ctx: WriteContext): Promise<Hex[]>;
89
+ /**
90
+ * Delegate child-name issuance authority for the subtree at
91
+ * `input.name` to a subregistry contract. The wallet client's
92
+ * account MUST be the current name owner.
93
+ */
94
+ setSubregistry(input: SetSubregistryInput, ctx: WriteContext): Promise<Hex>;
95
+ /**
96
+ * Submit a single ContractCall via the bound walletClient. Uses
97
+ * explicit nonce fetch + retry on "replacement underpriced" to
98
+ * tolerate Base Sepolia's read-after-write lag.
99
+ */
100
+ private _submit;
101
+ }
102
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,OAAO,EAAE,KAAK,GAAG,EAAqB,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAiB9G,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAGjB;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,iBAAiB;IAGhB,QAAQ,CAAC,IAAI,EAAE,qBAAqB;IAFhD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAEvB,IAAI,EAAE,qBAAqB;IAWhD;;;;;;;OAOG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAaxD;;;;;;;;OAQG;IACG,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAU5D;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwFzD;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAqBnF;;;;;OAKG;IACG,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAMjF;;;;;;OAMG;IACG,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAsBrF;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAUjF;;;;OAIG;YACW,OAAO;CAkCtB"}