@agenticprimitives/agent-naming 1.0.0-alpha.4 → 1.0.0-alpha.40

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 (77) hide show
  1. package/AUDIT.md +15 -4
  2. package/CLAUDE.md +40 -53
  3. package/README.md +57 -54
  4. package/dist/abis.d.ts +641 -0
  5. package/dist/abis.d.ts.map +1 -1
  6. package/dist/abis.js +96 -0
  7. package/dist/abis.js.map +1 -1
  8. package/dist/claim.d.ts +71 -0
  9. package/dist/claim.d.ts.map +1 -0
  10. package/dist/claim.js +73 -0
  11. package/dist/claim.js.map +1 -0
  12. package/dist/client.d.ts +36 -1
  13. package/dist/client.d.ts.map +1 -1
  14. package/dist/client.js +197 -10
  15. package/dist/client.js.map +1 -1
  16. package/dist/constants.d.ts +55 -5
  17. package/dist/constants.d.ts.map +1 -1
  18. package/dist/constants.js +128 -4
  19. package/dist/constants.js.map +1 -1
  20. package/dist/custody.d.ts +54 -2
  21. package/dist/custody.d.ts.map +1 -1
  22. package/dist/custody.js +140 -4
  23. package/dist/custody.js.map +1 -1
  24. package/dist/dns.d.ts +91 -0
  25. package/dist/dns.d.ts.map +1 -0
  26. package/dist/dns.js +196 -0
  27. package/dist/dns.js.map +1 -0
  28. package/dist/federated.d.ts +31 -0
  29. package/dist/federated.d.ts.map +1 -0
  30. package/dist/federated.js +54 -0
  31. package/dist/federated.js.map +1 -0
  32. package/dist/grammar.d.ts +62 -0
  33. package/dist/grammar.d.ts.map +1 -0
  34. package/dist/grammar.js +165 -0
  35. package/dist/grammar.js.map +1 -0
  36. package/dist/hash.d.ts +14 -0
  37. package/dist/hash.d.ts.map +1 -0
  38. package/dist/hash.js +22 -0
  39. package/dist/hash.js.map +1 -0
  40. package/dist/index.d.ts +17 -9
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +21 -8
  43. package/dist/index.js.map +1 -1
  44. package/dist/issuance.d.ts +70 -0
  45. package/dist/issuance.d.ts.map +1 -0
  46. package/dist/issuance.js +65 -0
  47. package/dist/issuance.js.map +1 -0
  48. package/dist/label.d.ts +10 -0
  49. package/dist/label.d.ts.map +1 -0
  50. package/dist/label.js +39 -0
  51. package/dist/label.js.map +1 -0
  52. package/dist/namehash.d.ts +12 -24
  53. package/dist/namehash.d.ts.map +1 -1
  54. package/dist/namehash.js +13 -36
  55. package/dist/namehash.js.map +1 -1
  56. package/dist/normalize.d.ts +9 -17
  57. package/dist/normalize.d.ts.map +1 -1
  58. package/dist/normalize.js +11 -48
  59. package/dist/normalize.js.map +1 -1
  60. package/dist/price.d.ts +74 -0
  61. package/dist/price.d.ts.map +1 -0
  62. package/dist/price.js +58 -0
  63. package/dist/price.js.map +1 -0
  64. package/dist/records.d.ts +44 -3
  65. package/dist/records.d.ts.map +1 -1
  66. package/dist/records.js +203 -4
  67. package/dist/records.js.map +1 -1
  68. package/dist/types.d.ts +108 -3
  69. package/dist/types.d.ts.map +1 -1
  70. package/dist/vertical.d.ts +43 -0
  71. package/dist/vertical.d.ts.map +1 -0
  72. package/dist/vertical.js +40 -0
  73. package/dist/vertical.js.map +1 -0
  74. package/docs/api.md +15 -3
  75. package/docs/concepts.md +1 -1
  76. package/docs/migration.md +1 -1
  77. package/package.json +24 -15
package/dist/records.js CHANGED
@@ -16,8 +16,9 @@
16
16
  * - `agentKind`, `metadataHash`,
17
17
  * `passkeyCredentialDigest` → on-chain `bytes32`
18
18
  * - `displayName`, `a2aEndpoint`,
19
- * `mcpEndpoint`, `metadataUri`,
20
- * `nativeId` → on-chain `string`
19
+ * `mcpEndpoint`, `appContext`, `orgRole`,
20
+ * `serviceUrl`, `siteUrl`, `description`,
21
+ * `metadataUri`, `nativeId` → on-chain `string`
21
22
  *
22
23
  * The encoder routes each predicate to its typed setter; the decoder
23
24
  * routes each predicate to its typed getter. Unknown predicates are
@@ -25,6 +26,7 @@
25
26
  * predicates (fail-loud on write).
26
27
  */
27
28
  import { keccak256, toHex } from 'viem';
29
+ import { DERIVED_AGENT_TYPES } from '@agenticprimitives/types';
28
30
  // ─── Predicate ids (mirror AgentNamePredicates.sol) ─────────────────
29
31
  /**
30
32
  * keccak256 of the `atl:*` CURIE. Computed at module load. These
@@ -40,11 +42,33 @@ export const PREDICATE_ID = {
40
42
  displayName: _predId('atl:displayName'),
41
43
  a2aEndpoint: _predId('atl:a2aEndpoint'),
42
44
  mcpEndpoint: _predId('atl:mcpEndpoint'),
45
+ appContext: _predId('atl:appContext'),
46
+ orgRole: _predId('atl:orgRole'),
47
+ serviceUrl: _predId('atl:serviceUrl'),
48
+ siteUrl: _predId('atl:siteUrl'),
49
+ description: _predId('atl:description'),
43
50
  metadataUri: _predId('atl:metadataURI'),
44
51
  metadataHash: _predId('atl:metadataHash'),
45
52
  passkeyCredentialDigest: _predId('atl:passkeyCredentialDigest'),
46
53
  custodyPolicy: _predId('atl:custodyPolicy'),
47
54
  nativeId: _predId('atl:nativeId'),
55
+ // Connection bootstrap (spec 280) — opt-in, owner-set, public.
56
+ connectionKind: _predId('atl:connectionKind'),
57
+ connectionAddress: _predId('atl:connectionAddress'),
58
+ // Derived type (spec 346 §2.3) — SA-KEYED on the AgentProfileResolver subject, NOT a name-node
59
+ // record (spec 346 §14.3). Listed here because this module is the canonical `atl:*` id mirror.
60
+ agentType: _predId('atl:agentType'),
61
+ serviceRole: _predId('atl:serviceRole'),
62
+ // Vertical subtype (spec 346 §2.4) — SA-keyed string; the app layer defines the vocabulary.
63
+ agentSubtype: _predId('atl:agentSubtype'),
64
+ // Released A2A Agent Card publication (spec 347 §8.3) — name-node records, bytes32 + string.
65
+ cardDigest: _predId('atl:cardDigest'),
66
+ cardUri: _predId('atl:cardUri'),
67
+ // Accounts by chain (ap-federation spec 440 §C; spec 346 §3.8) — string[] of CAIP-10 ids, one per chain.
68
+ accounts: _predId('atl:accounts'),
69
+ // Client keys (spec 442 §3) — SA-KEYED string record on the AgentProfileResolver subject (agent-profile
70
+ // `CLIENT_KEYS`): the public half of every live ClientKeyBindingV1. Mirrored here as the canonical id table.
71
+ clientKeys: _predId('atl:clientKeys'),
48
72
  };
49
73
  // ─── Enum value ids (mirror AgentNamePredicates.sol AGENT_KIND_*) ──
50
74
  export const AGENT_KIND_ID = {
@@ -57,11 +81,70 @@ const KNOWN_AGENT_KINDS = new Set([
57
81
  'org',
58
82
  'service',
59
83
  ]);
84
+ // ─── Derived-type enum ids (spec 346; mirror AgentNamePredicates.sol AGENT_TYPE_*) ──
85
+ export const AGENT_TYPE_ID = {
86
+ person: _predId('person'),
87
+ org: _predId('org'),
88
+ team: _predId('team'),
89
+ service: _predId('service'),
90
+ workspace: _predId('workspace'),
91
+ treasury: _predId('treasury'),
92
+ registry: _predId('registry'),
93
+ church: _predId('church'),
94
+ circle: _predId('circle'),
95
+ household: _predId('household'),
96
+ };
97
+ const KNOWN_DERIVED_TYPES = new Set(DERIVED_AGENT_TYPES);
98
+ export function encodeAgentType(value) {
99
+ if (!KNOWN_DERIVED_TYPES.has(value)) {
100
+ throw new Error(`[agent-naming/records] agent-type must be one of ${DERIVED_AGENT_TYPES.join('|')} (got "${value}")`);
101
+ }
102
+ return AGENT_TYPE_ID[value];
103
+ }
104
+ /**
105
+ * Encodings a chain already carries for a type since RENAMED. `.workspace` agents declared before
106
+ * 2026-08-31 hold `keccak256("workspace-coordinator")`; decoding must honour that or a correctly typed
107
+ * agent reads as untyped. `encodeAgentType` never consults this — writes only ever use the current
108
+ * name. Append only.
109
+ */
110
+ const LEGACY_AGENT_TYPE_ID = Object.freeze({
111
+ [_predId('workspace-coordinator').toLowerCase()]: 'workspace',
112
+ });
113
+ export function decodeAgentType(id) {
114
+ for (const [name, value] of Object.entries(AGENT_TYPE_ID)) {
115
+ if (value.toLowerCase() === id.toLowerCase())
116
+ return name;
117
+ }
118
+ return LEGACY_AGENT_TYPE_ID[id.toLowerCase()];
119
+ }
120
+ // ─── Connection-kind enum ids (spec 280; mirror AgentNamePredicates.sol) ──
121
+ export const CONNECTION_KIND_ID = {
122
+ wallet: _predId('wallet'),
123
+ google: _predId('google'),
124
+ youversion: _predId('youversion'),
125
+ passkey: _predId('passkey'),
126
+ multi: _predId('multi'),
127
+ email: _predId('email'), // spec 319
128
+ phone: _predId('phone'), // spec 320
129
+ };
130
+ const KNOWN_CONNECTION_KINDS = new Set([
131
+ 'wallet',
132
+ 'google',
133
+ 'youversion',
134
+ 'passkey',
135
+ 'multi',
136
+ 'email',
137
+ 'phone',
138
+ ]);
60
139
  // ─── Class + enum-set ids ──────────────────────────────────────────
61
140
  /** `keccak256("atl:AgentName")` — the ShapeRegistry class id. */
62
141
  export const CLASS_AGENT_NAME = _predId('atl:AgentName');
63
142
  /** `keccak256("atl:AgentKindEnum")` — the enum-set id bound to `atl:agentKind`. */
64
143
  export const AGENT_KIND_ENUM = _predId('atl:AgentKindEnum');
144
+ /** `keccak256("atl:ConnectionKindEnum")` — the enum-set id bound to `atl:connectionKind`. */
145
+ export const CONNECTION_KIND_ENUM = _predId('atl:ConnectionKindEnum');
146
+ /** `keccak256("atl:AgentTypeEnum")` — the enum-set id bound to `atl:agentType` (spec 346). */
147
+ export const AGENT_TYPE_ENUM = _predId('atl:AgentTypeEnum');
65
148
  // ─── CAIP-10 namespace allowlist (ADR-0008) ────────────────────────
66
149
  /**
67
150
  * Phase 1 CAIP-10 namespace allowlist for `nativeId`. Strict on
@@ -95,12 +178,33 @@ export function encodeRecords(records) {
95
178
  if (records.mcpEndpoint !== undefined) {
96
179
  out.push({ predicate: PREDICATE_ID.mcpEndpoint, datatype: 'string', value: records.mcpEndpoint });
97
180
  }
181
+ if (records.appContext !== undefined) {
182
+ out.push({ predicate: PREDICATE_ID.appContext, datatype: 'string', value: records.appContext });
183
+ }
184
+ if (records.orgRole !== undefined) {
185
+ out.push({ predicate: PREDICATE_ID.orgRole, datatype: 'string', value: records.orgRole });
186
+ }
187
+ if (records.serviceUrl !== undefined) {
188
+ out.push({ predicate: PREDICATE_ID.serviceUrl, datatype: 'string', value: records.serviceUrl });
189
+ }
190
+ if (records.siteUrl !== undefined) {
191
+ out.push({ predicate: PREDICATE_ID.siteUrl, datatype: 'string', value: records.siteUrl });
192
+ }
193
+ if (records.description !== undefined) {
194
+ out.push({ predicate: PREDICATE_ID.description, datatype: 'string', value: records.description });
195
+ }
98
196
  if (records.metadataUri !== undefined) {
99
197
  out.push({ predicate: PREDICATE_ID.metadataUri, datatype: 'string', value: records.metadataUri });
100
198
  }
101
199
  if (records.metadataHash !== undefined) {
102
200
  out.push({ predicate: PREDICATE_ID.metadataHash, datatype: 'bytes32', value: _validateBytes32(records.metadataHash) });
103
201
  }
202
+ if (records.cardDigest !== undefined) {
203
+ out.push({ predicate: PREDICATE_ID.cardDigest, datatype: 'bytes32', value: _validateBytes32(records.cardDigest) });
204
+ }
205
+ if (records.cardUri !== undefined) {
206
+ out.push({ predicate: PREDICATE_ID.cardUri, datatype: 'string', value: records.cardUri });
207
+ }
104
208
  if (records.passkeyCredentialDigest !== undefined) {
105
209
  out.push({ predicate: PREDICATE_ID.passkeyCredentialDigest, datatype: 'bytes32', value: _validateBytes32(records.passkeyCredentialDigest) });
106
210
  }
@@ -110,6 +214,15 @@ export function encodeRecords(records) {
110
214
  if (records.nativeId !== undefined) {
111
215
  out.push({ predicate: PREDICATE_ID.nativeId, datatype: 'string', value: _encodeNativeId(records.nativeId) });
112
216
  }
217
+ if (records.connectionKind !== undefined) {
218
+ out.push({ predicate: PREDICATE_ID.connectionKind, datatype: 'bytes32', value: _encodeConnectionKind(records.connectionKind) });
219
+ }
220
+ if (records.connectionAddress !== undefined) {
221
+ out.push({ predicate: PREDICATE_ID.connectionAddress, datatype: 'address', value: _validateAddress(records.connectionAddress) });
222
+ }
223
+ if (records.accounts !== undefined) {
224
+ out.push({ predicate: PREDICATE_ID.accounts, datatype: 'string[]', value: encodeAccounts(records.accounts) });
225
+ }
113
226
  return out;
114
227
  }
115
228
  export function decodeRecords(input) {
@@ -119,7 +232,7 @@ export function decodeRecords(input) {
119
232
  out.addr = addr;
120
233
  const kind = input.bytes32s[PREDICATE_ID.agentKind];
121
234
  if (kind) {
122
- const k = _decodeAgentKind(kind);
235
+ const k = decodeAgentKind(kind);
123
236
  if (k)
124
237
  out.agentKind = k;
125
238
  }
@@ -132,12 +245,33 @@ export function decodeRecords(input) {
132
245
  const mcpEndpoint = input.strings[PREDICATE_ID.mcpEndpoint];
133
246
  if (mcpEndpoint)
134
247
  out.mcpEndpoint = mcpEndpoint;
248
+ const appContext = input.strings[PREDICATE_ID.appContext];
249
+ if (appContext)
250
+ out.appContext = appContext;
251
+ const orgRole = input.strings[PREDICATE_ID.orgRole];
252
+ if (orgRole)
253
+ out.orgRole = orgRole;
254
+ const serviceUrl = input.strings[PREDICATE_ID.serviceUrl];
255
+ if (serviceUrl)
256
+ out.serviceUrl = serviceUrl;
257
+ const siteUrl = input.strings[PREDICATE_ID.siteUrl];
258
+ if (siteUrl)
259
+ out.siteUrl = siteUrl;
260
+ const description = input.strings[PREDICATE_ID.description];
261
+ if (description)
262
+ out.description = description;
135
263
  const metadataUri = input.strings[PREDICATE_ID.metadataUri];
136
264
  if (metadataUri)
137
265
  out.metadataUri = metadataUri;
138
266
  const metadataHash = input.bytes32s[PREDICATE_ID.metadataHash];
139
267
  if (metadataHash)
140
268
  out.metadataHash = metadataHash;
269
+ const cardDigest = input.bytes32s[PREDICATE_ID.cardDigest];
270
+ if (cardDigest)
271
+ out.cardDigest = cardDigest;
272
+ const cardUri = input.strings[PREDICATE_ID.cardUri];
273
+ if (cardUri)
274
+ out.cardUri = cardUri;
141
275
  const digest = input.bytes32s[PREDICATE_ID.passkeyCredentialDigest];
142
276
  if (digest)
143
277
  out.passkeyCredentialDigest = digest;
@@ -147,6 +281,18 @@ export function decodeRecords(input) {
147
281
  const nativeId = input.strings[PREDICATE_ID.nativeId];
148
282
  if (nativeId)
149
283
  out.nativeId = nativeId;
284
+ const connectionKind = input.bytes32s[PREDICATE_ID.connectionKind];
285
+ if (connectionKind) {
286
+ const ck = _decodeConnectionKind(connectionKind);
287
+ if (ck)
288
+ out.connectionKind = ck;
289
+ }
290
+ const connectionAddress = input.addresses[PREDICATE_ID.connectionAddress];
291
+ if (connectionAddress)
292
+ out.connectionAddress = connectionAddress;
293
+ const accounts = input.stringArrs?.[PREDICATE_ID.accounts];
294
+ if (accounts && accounts.length)
295
+ out.accounts = decodeAccounts(accounts);
150
296
  return out;
151
297
  }
152
298
  // ─── Internal validators ───────────────────────────────────────────
@@ -168,13 +314,26 @@ function _encodeAgentKind(value) {
168
314
  }
169
315
  return AGENT_KIND_ID[value];
170
316
  }
171
- function _decodeAgentKind(id) {
317
+ export function decodeAgentKind(id) {
172
318
  for (const [name, value] of Object.entries(AGENT_KIND_ID)) {
173
319
  if (value.toLowerCase() === id.toLowerCase())
174
320
  return name;
175
321
  }
176
322
  return undefined;
177
323
  }
324
+ function _encodeConnectionKind(value) {
325
+ if (!KNOWN_CONNECTION_KINDS.has(value)) {
326
+ throw new Error(`[agent-naming/records] connection-kind must be one of wallet|google|youversion|passkey|multi (got "${value}")`);
327
+ }
328
+ return CONNECTION_KIND_ID[value];
329
+ }
330
+ function _decodeConnectionKind(id) {
331
+ for (const [name, value] of Object.entries(CONNECTION_KIND_ID)) {
332
+ if (value.toLowerCase() === id.toLowerCase())
333
+ return name;
334
+ }
335
+ return undefined;
336
+ }
178
337
  function _encodeNativeId(value) {
179
338
  const m = CAIP10_GRAMMAR.exec(value);
180
339
  if (!m) {
@@ -190,4 +349,44 @@ function _encodeNativeId(value) {
190
349
  }
191
350
  return value;
192
351
  }
352
+ // ─── Accounts by chain (ap-federation spec 440 §C; spec 346 §3.8) ──
353
+ /**
354
+ * Validate-at-write for `atl:accounts`: every entry a CAIP-10 id under the allowlist (ADR-0008), at most ONE
355
+ * per CAIP-2 chain (a name has one account per chain, as ENSIP-9 has one address per coin type), eip155
356
+ * addresses lower-cased, the list sorted by chain so two owners writing the same set write the same bytes.
357
+ */
358
+ export function encodeAccounts(accounts) {
359
+ const byChain = new Map();
360
+ for (const raw of accounts) {
361
+ const value = raw.trim();
362
+ const m = CAIP10_GRAMMAR.exec(value);
363
+ if (!m)
364
+ throw new Error(`[agent-naming/records] accounts: "${raw}" is not a CAIP-10 account id`);
365
+ const [, ns, ref, addr] = m;
366
+ if (!CAIP10_NAMESPACE_ALLOWLIST.has(ns))
367
+ throw new Error(`[agent-naming/records] accounts: namespace "${ns}" is not allow-listed`);
368
+ const chain = `${ns}:${ref}`;
369
+ const account = ns === 'eip155' ? `${chain}:${_validateAddress(addr)}` : value;
370
+ if (byChain.has(chain))
371
+ throw new Error(`[agent-naming/records] accounts: two entries for chain ${chain} — a name has one account per chain`);
372
+ byChain.set(chain, account);
373
+ }
374
+ return [...byChain.entries()].sort(([a], [b]) => a.localeCompare(b)).map(([, v]) => v);
375
+ }
376
+ /** Permissive on decode (forward-compat): keep well-formed entries, drop the rest. */
377
+ export function decodeAccounts(values) {
378
+ return values.filter((v) => CAIP10_GRAMMAR.test(v));
379
+ }
380
+ /** The account a name resolves to on one chain (`eip155:8453`), or null when the name has none there. */
381
+ export function accountForChain(records, chain) {
382
+ const want = chain.trim().toLowerCase();
383
+ for (const a of records.accounts ?? []) {
384
+ if (a.toLowerCase().startsWith(`${want}:`))
385
+ return a;
386
+ }
387
+ // The home account is an account too: a reader asking for the chain `nativeId` names gets it.
388
+ if (records.nativeId && records.nativeId.toLowerCase().startsWith(`${want}:`))
389
+ return records.nativeId;
390
+ return null;
391
+ }
193
392
  //# sourceMappingURL=records.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"records.js","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { Address, Hex } from '@agenticprimitives/types';
1
+ import type { Address, Hex, AgentType, DerivedAgentType } from '@agenticprimitives/types';
2
+ import type { AgentTld, LegacyTld } from './constants.js';
2
3
  /**
3
4
  * Discriminator for the KIND of Smart Agent a name points to. Three kinds only
4
5
  * — mirrors `@agenticprimitives/types` `AgentType` and the on-chain
@@ -9,6 +10,17 @@ import type { Address, Hex } from '@agenticprimitives/types';
9
10
  * forensics can filter "all events involving a service agent."
10
11
  */
11
12
  export type AgentKind = 'person' | 'org' | 'service';
13
+ /**
14
+ * How a Smart Agent is connectable — the credential KIND a returning person
15
+ * presents to bootstrap a connection by name (spec 280). `multi` = more than
16
+ * one connectable credential is published. Distinct from {@link AgentKind}
17
+ * (what the agent IS) — this is HOW you authenticate to it.
18
+ */
19
+ export type ConnectionKind = 'wallet' | 'google' | 'youversion' | 'passkey' | 'multi' | 'email' | 'phone';
20
+ /** Public app-level discovery context. Not authority; consumers still verify grants/delegations. */
21
+ export type AppContext = 'uupg' | (string & {});
22
+ /** Public organization role within an app context. */
23
+ export type OrgRole = 'organization' | 'alliance' | (string & {});
12
24
  /**
13
25
  * The typed bag of records a resolver may hold for a name. Every
14
26
  * field is optional; an unresolved record is `undefined`. Encoders
@@ -29,8 +41,26 @@ export interface AgentNameRecords {
29
41
  a2aEndpoint?: string;
30
42
  /** MCP service endpoint URL. */
31
43
  mcpEndpoint?: string;
44
+ /** Public app/discovery context, e.g. `uupg`. */
45
+ appContext?: AppContext;
46
+ /** Public role within the app context, e.g. `alliance` or `organization`. */
47
+ orgRole?: OrgRole;
48
+ /** Public service URL for the agent's app-specific surface. */
49
+ serviceUrl?: string;
50
+ /** Public website URL for the agent. */
51
+ siteUrl?: string;
52
+ /** Public description for search/discovery. */
53
+ description?: string;
32
54
  /** Off-chain JSON manifest URL. */
33
55
  metadataUri?: string;
56
+ /**
57
+ * sha256 of the RELEASED A2A Agent Card this name currently publishes (spec 347 §8.3), as bytes32.
58
+ * Content-addresses the card served at the a2aEndpoint host's `/.well-known/agent-card.json`
59
+ * (or at `cardUri`). Evidence for verifiers, never authority.
60
+ */
61
+ cardDigest?: Hex;
62
+ /** Explicit released-card URI when it is not at the default well-known path (spec 347 §8.3). */
63
+ cardUri?: string;
34
64
  /**
35
65
  * Public-safe identifier for the controlling passkey
36
66
  * (`keccak256(credentialId)` — NEVER raw credentialId).
@@ -40,6 +70,31 @@ export interface AgentNameRecords {
40
70
  passkeyCredentialDigest?: Hex;
41
71
  /** Address of the CustodyPolicy governing the owner Smart Agent. */
42
72
  custodyPolicy?: Address;
73
+ /**
74
+ * The name's accounts BY CHAIN (ap-federation spec 440 §C; spec 346 §3.8; the ENSIP-9 pattern): CAIP-10 ids,
75
+ * at most one per CAIP-2 chain, sorted by chain. `addr` stays the root-chain forward record and `nativeId`
76
+ * the home account; this lists home and satellites so a reader on another chain finds the account that
77
+ * stands there. A reverse claim on that chain is honoured only when the entry here agrees. Evidence, never
78
+ * authority.
79
+ */
80
+ accounts?: string[];
81
+ /**
82
+ * Connection-bootstrap KIND (spec 280) — `wallet|google|youversion|passkey|multi`.
83
+ * OPT-IN, owner-set, PUBLIC: advertises which credential flow a returning person
84
+ * should use to connect to this SA by name. Never set automatically. Distinct from
85
+ * `agentKind` (what the agent is) — this is how you authenticate to it.
86
+ */
87
+ connectionKind?: ConnectionKind;
88
+ /**
89
+ * Connection-bootstrap ADDRESS (spec 280) — the controlling EOA (wallet/SIWE) or the
90
+ * social control address (the per-subject C_sub) — published ONLY as an explicit,
91
+ * owner-set, PUBLIC convenience so the wallet picker can pre-select. That EOA is already
92
+ * public on-chain (it appears in the account's control-credential add log); this is a
93
+ * deliberate, opt-in name→credential index (ADR-0040 amendment). NOT required to connect
94
+ * (on-chain control validation + discoverable-passkey/OIDC re-derive already work) —
95
+ * purely a pre-select hint. NEVER set automatically.
96
+ */
97
+ connectionAddress?: Address;
43
98
  /**
44
99
  * Off-chain JSON profile content-hash
45
100
  * (matches `agent-profile.profileContentHash(profile)`). Stored
@@ -51,8 +106,8 @@ export interface AgentNameRecords {
51
106
  /**
52
107
  * CAIP-10 chain-agnostic account identifier (e.g.
53
108
  * `eip155:84532:0xabc...`). Per ADR-0008, this enables low-cost
54
- * cross-resolver interop with HCS-14 / ERC-8004 indexers without
55
- * us generating UAID strings. Consumers MAY derive a UAID locally
109
+ * external resolver/card/registry projections without us generating
110
+ * protocol-specific IDs. Consumers MAY derive external IDs locally
56
111
  * by canonical-JSON-hashing this with their own context.
57
112
  */
58
113
  nativeId?: string;
@@ -113,5 +168,55 @@ export interface AgentNamingClientOpts {
113
168
  registry: Address;
114
169
  /** AgentNameUniversalResolver contract address for this chain. */
115
170
  universalResolver: Address;
171
+ /**
172
+ * AgentProfileResolver address — where the SA-keyed `atl:agentType` / `atl:serviceRole` records live
173
+ * (spec 346 §2.3). Required by `resolveTyped` / `readDerivedType`; those throw a configuration error
174
+ * when it is absent (never a silent downgrade to an untyped read — ADR-0013).
175
+ */
176
+ profileResolver?: Address;
177
+ /** Per-suffix `PermissionlessSubregistry` addresses (deployment JSON `permissionlessSubregistries`), generic + vertical. */
178
+ subregistries?: Partial<Record<string, Address>>;
179
+ }
180
+ /** The SA-keyed derived-type declaration (spec 346 §2.3). */
181
+ export interface DerivedTypeRecord {
182
+ agentType: DerivedAgentType | null;
183
+ serviceRole: string | null;
184
+ /** `atl:agentSubtype` — the vertical subtype (spec 346 §2.4), when declared. */
185
+ agentSubtype: string | null;
186
+ /** `atl:agentKind` on the profile subject (root), when set. */
187
+ agentKind: AgentKind | null;
188
+ }
189
+ /**
190
+ * Result of `AgentNamingClient.resolveTyped`: a name whose suffix, on-chain derived-type record and root
191
+ * kind all agree (`typeConsistent: true`). Legacy names carry `legacy: true` and whatever derived type the
192
+ * record declares (possibly `null`) — they are never suffix-validated (spec 346 §3.5).
193
+ */
194
+ export interface TypedNameRecord {
195
+ /** Canonical display form (`x.t` / `x.t@c.u`). */
196
+ name: string;
197
+ onChainName: string;
198
+ node: Hex;
199
+ address: Address;
200
+ tld: AgentTld | LegacyTld | (string & {}) | null;
201
+ derivedType: DerivedAgentType | null;
202
+ /** Vertical subtype named by the suffix (spec 346 §2.4), when any. */
203
+ subtype: string | null;
204
+ root: AgentType | null;
205
+ serviceRole: string | null;
206
+ legacy: boolean;
207
+ typeConsistent: boolean;
208
+ /** Present for scoped / contextual names. */
209
+ context?: {
210
+ name: string;
211
+ derivedType: DerivedAgentType;
212
+ };
116
213
  }
214
+ export type TypedNameCheck = {
215
+ ok: true;
216
+ record: TypedNameRecord;
217
+ } | {
218
+ ok: false;
219
+ reason: 'unregistered' | 'type_mismatch' | 'type_undeclared' | 'kind_mismatch' | 'role_required' | 'subtype_mismatch' | 'not_typed' | 'label_reads_as_type';
220
+ detail?: string;
221
+ };
117
222
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,GAAG,CAAC;IAC9B,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sCAAsC;IACtC,cAAc,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,4CAA4C;AAC5C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,QAAQ,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,iBAAiB,EAAE,OAAO,CAAC;CAK5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Vertical (app-registered) agent types — spec 346 §2.4.
3
+ *
4
+ * Ring 0 ships the seven GENERIC derived types (`AGENT_TLDS`). A vertical deployment may need finer,
5
+ * domain-specific kinds ("a gathered-community-shaped organization", "a small-group-shaped organization"). Those
6
+ * are SUBTYPES of a generic derived type, registered by the APP layer's white-label config (ADR-0021: no
7
+ * vertical vocabulary in packages), and the naming plane treats them uniformly:
8
+ *
9
+ * - the suffix names the vertical subtype (`<label>.<tld>`)
10
+ * - the on-chain derived-type record stays the GENERIC type (`atl:agentType` = the parent, e.g. `org`)
11
+ * - the vertical refinement is its own SA-keyed record (`atl:agentSubtype` = the subtype slug)
12
+ * - claim/resolution validate suffix ↔ subtype ↔ generic type ↔ root, fail-closed
13
+ *
14
+ * Every consumer typed with `DerivedAgentType` keeps working (it sees the generic parent); consumers that
15
+ * care about the vertical read `subtype`. Registration is process-global and idempotent by tld; a conflicting
16
+ * re-registration throws (a tld names exactly one subtype).
17
+ */
18
+ import type { DerivedAgentType, Hex } from '@agenticprimitives/types';
19
+ export interface VerticalAgentTypeDefinition {
20
+ /** The suffix (a normalized label: `[a-z0-9-]`, 2–63 chars). Must not collide with a generic suffix or alias. */
21
+ tld: string;
22
+ /** The subtype slug stored under `atl:agentSubtype` (defaults to `tld`). */
23
+ subtype?: string;
24
+ /** The GENERIC derived type this vertical refines (what `atl:agentType` stores). */
25
+ derivedType: DerivedAgentType;
26
+ /** Human label for UI grouping (never authority). */
27
+ label?: string;
28
+ }
29
+ export interface VerticalAgentType extends Required<Pick<VerticalAgentTypeDefinition, 'tld' | 'subtype' | 'derivedType'>> {
30
+ label?: string;
31
+ }
32
+ /** Register vertical agent types (app startup / white-label config). Idempotent per identical definition. */
33
+ export declare function registerVerticalAgentTypes(defs: readonly VerticalAgentTypeDefinition[], guards: {
34
+ reserved: readonly string[];
35
+ }): void;
36
+ /** Test/dev only — drop every registered vertical type. */
37
+ export declare function clearVerticalAgentTypes(): void;
38
+ export declare function verticalAgentTypeForTld(tld: string): VerticalAgentType | null;
39
+ export declare function verticalAgentTypeForSubtype(subtype: string): VerticalAgentType | null;
40
+ export declare function verticalAgentTlds(): readonly string[];
41
+ /** The per-root `rootKind` tag for a vertical root: `keccak256("namespace:vertical:<tld>")` (mirrors AddVerticalRoots.s.sol). */
42
+ export declare function verticalRootKindForTld(tld: string): Hex;
43
+ //# sourceMappingURL=vertical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertical.d.ts","sourceRoot":"","sources":["../src/vertical.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAGtE,MAAM,WAAW,2BAA2B;IAC1C,iHAAiH;IACjH,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,WAAW,EAAE,gBAAgB,CAAC;IAC9B,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,GAAG,SAAS,GAAG,aAAa,CAAC,CAAC;IACvH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,6GAA6G;AAC7G,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,SAAS,2BAA2B,EAAE,EAAE,MAAM,EAAE;IAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAYtI;AAED,2DAA2D;AAC3D,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAE7E;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAGrF;AAED,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAED,iIAAiI;AACjI,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAEvD"}
@@ -0,0 +1,40 @@
1
+ import { keccak256, toHex } from 'viem';
2
+ const REGISTRY = new Map();
3
+ const TLD_RE = /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/;
4
+ /** Register vertical agent types (app startup / white-label config). Idempotent per identical definition. */
5
+ export function registerVerticalAgentTypes(defs, guards) {
6
+ for (const d of defs) {
7
+ const tld = d.tld.trim().toLowerCase();
8
+ if (!TLD_RE.test(tld) || tld.length < 2)
9
+ throw new Error(`[agent-naming] vertical tld "${d.tld}" is not a valid label`);
10
+ if (guards.reserved.includes(tld))
11
+ throw new Error(`[agent-naming] vertical tld "${tld}" collides with a generic suffix, alias or reserved label`);
12
+ const v = { tld, subtype: (d.subtype ?? tld).trim().toLowerCase(), derivedType: d.derivedType, ...(d.label ? { label: d.label } : {}) };
13
+ const prev = REGISTRY.get(tld);
14
+ if (prev && (prev.subtype !== v.subtype || prev.derivedType !== v.derivedType)) {
15
+ throw new Error(`[agent-naming] vertical tld "${tld}" already registered as ${prev.subtype} ⊑ ${prev.derivedType}`);
16
+ }
17
+ REGISTRY.set(tld, v);
18
+ }
19
+ }
20
+ /** Test/dev only — drop every registered vertical type. */
21
+ export function clearVerticalAgentTypes() {
22
+ REGISTRY.clear();
23
+ }
24
+ export function verticalAgentTypeForTld(tld) {
25
+ return REGISTRY.get(tld) ?? null;
26
+ }
27
+ export function verticalAgentTypeForSubtype(subtype) {
28
+ for (const v of REGISTRY.values())
29
+ if (v.subtype === subtype)
30
+ return v;
31
+ return null;
32
+ }
33
+ export function verticalAgentTlds() {
34
+ return [...REGISTRY.keys()];
35
+ }
36
+ /** The per-root `rootKind` tag for a vertical root: `keccak256("namespace:vertical:<tld>")` (mirrors AddVerticalRoots.s.sol). */
37
+ export function verticalRootKindForTld(tld) {
38
+ return keccak256(toHex(`namespace:vertical:${tld}`));
39
+ }
40
+ //# sourceMappingURL=vertical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertical.js","sourceRoot":"","sources":["../src/vertical.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAiBxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;AACtD,MAAM,MAAM,GAAG,sCAAsC,CAAC;AAEtD,6GAA6G;AAC7G,MAAM,UAAU,0BAA0B,CAAC,IAA4C,EAAE,MAAuC;IAC9H,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC;QACxH,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,2DAA2D,CAAC,CAAC;QACnJ,MAAM,CAAC,GAAsB,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3J,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,2BAA2B,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtH,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,uBAAuB;IACrC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAe;IACzD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,iIAAiI;AACjI,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,OAAO,SAAS,CAAC,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC"}
package/docs/api.md CHANGED
@@ -3,11 +3,23 @@
3
3
  This is the human-readable guide to the public exports in
4
4
  `capability.manifest.json`. Keep it in sync with `src/index.ts`.
5
5
 
6
+ ## Typed naming (spec 346)
7
+
8
+ | Export | Purpose |
9
+ | --- | --- |
10
+ | `AGENT_TLDS`, `AGENT_TLD_ALIASES`, `LEGACY_TLDS`, `RESERVED_LABELS` | The six canonical suffixes (`me org team svc workspace treasury registry church circle`), the `ws → workspace` alias, the untyped legacy roots, the labels no one may claim. |
11
+ | `derivedTypeForTld`, `tldForDerivedType`, `rootClassForTld`, `rootClassForDerivedType`, `rootKindForTld` | suffix → derived type → root; the per-root `rootKind` tag (`keccak256("namespace:<Type>")`). |
12
+ | `parseAgentName`, `formatAgentName`, `onChainNameOf`, `normalizeAgentName` | The grammar: `x.t`, `x.t@c.u`, `c.u/x.t`, dotted `x.t.c.u`, type-nodes, roots, legacy. |
13
+ | `dnsHostForHandle`, `agentCardUrlForHost`, `a2aEndpointForHost`, `edgeA2aPathForHandle` | The §5 deployment-binding projection; the zone is always caller-supplied. |
14
+ | `findUniqueLabel`, `childNodeOf`, `validateTypedClaim` | Forced-unique labels (spec 220 §5) and the suffix ↔ `atl:agentType` ↔ root invariant. |
15
+ | `buildDeclareAgentTypeCalls`, `buildTypedClaimCalls` | Pure call builders for bootstrap steps 1b and 2–3 (compose into the SA's execute batch). |
16
+ | `AgentNamingClient.resolveTyped` / `checkTypedName` / `readDerivedType` / `findUniqueLabel` / `subregistryFor` | Typed reads; require `opts.profileResolver` (+ `opts.subregistries` for claims). |
17
+
6
18
  ## Constants
7
19
 
8
- - `AGENT_TLD`: the canonical top-level label, currently `"agent"`.
20
+ - `AGENT_TLDS`: the six typed suffixes (`me org team svc workspace treasury registry church circle`); `LEGACY_TLDS` = `impact`, `agent` (untyped, resolvable, closed to new claims after app adoption).
9
21
  - `AgentTld`: type of the canonical top-level label.
10
- - `ZERO_NODE`: the all-zero ENS root node.
22
+ - `ZERO_NODE`: the all-zero root node.
11
23
 
12
24
  ## Name Helpers
13
25
 
@@ -15,7 +27,7 @@ This is the human-readable guide to the public exports in
15
27
  throws `InvalidNameError`.
16
28
  - `isValidAgentName(name)`: boolean wrapper around `normalizeAgentName`.
17
29
  - `labelhash(label)`: keccak256 hash of a single label.
18
- - `namehash(name)`: ENS-compatible recursive namehash of a normalized name.
30
+ - `namehash(name)`: recursive namehash (`keccak256(parentNode || labelhash)`) of a normalized name.
19
31
 
20
32
  ## Client
21
33