@agenticprimitives/agent-naming 1.0.0-alpha.6 → 1.0.0-alpha.8

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.
package/README.md CHANGED
@@ -1,44 +1,38 @@
1
1
  # @agenticprimitives/agent-naming
2
2
 
3
- Human-readable `.agent` **naming facets** for Smart Agents.
3
+ **The name is a facet. The address is the identity.** Agent naming is being settled right now — GoDaddy launched an Agent Naming Service, ERC-8004 put agent registries on mainnet, and every discovery stack needs an answer to "which agent answers to this name?" Most naming systems get the dependency backwards: the name becomes the identity, and losing the name (or the registrar) means losing everything attached to it. Here, every person, org, service agent, and treasury is a canonical ERC-4337 Smart Agent address — and a `.agent` name is a replaceable record pointing *at* that address ([ADR-0010](../../docs/architecture/decisions/0010-smart-agent-canonical-identifier.md)). Rotate the name, keep the identity. Rotate your credentials, keep the name. Nothing downstream breaks.
4
4
 
5
- The canonical identifier is the Smart Agent address
6
- (`@agenticprimitives/agent-account`). This package registers names and records
7
- that point **at** that address — it does not create or own identity.
5
+ Part of [agenticprimitives](../../README.md) — the trust substrate for the agent economy: one canonical Smart Agent identity with custody, delegation, naming, credentials, and audit evidence designed as one system.
6
+
7
+ Use this package to resolve names like `alice.agent` and `treasury.acme.agent` to Smart Agent addresses, read typed service-discovery records (A2A endpoint, MCP endpoint, CAIP-10 `nativeId`), and build encoded calls for name-management transactions. Names are hierarchical — orgs hand out subnames under their own subregistry — and normalization is deterministic and on-chain-verifiable.
8
8
 
9
9
  > **Layer:** Discover — a naming **facet** (not canonical identity — that is `agent-account`).
10
10
  > **Canonical key:** the Smart Agent address the name resolves to.
11
11
 
12
- Use this package to resolve names like `alice.agent`, `acme.agent`, and
13
- `treasury.acme.agent` to Smart Agent addresses, read typed service-discovery
14
- records, and build encoded calls for name-management transactions.
15
-
16
- ## Use This When
12
+ ## Use this when
17
13
 
18
- - You need forward resolution: `alice.agent -> 0x...`.
19
- - You need reverse resolution from a Smart Agent address to its primary name.
20
- - You need typed records such as `displayName`, `a2aEndpoint`, `mcpEndpoint`,
21
- `nativeId`, or `metadataUri`.
22
- - You need pure call builders for name registration, resolver updates, primary
23
- name updates, or owner rotation.
14
+ - You need forward resolution: `alice.agent → 0x…`.
15
+ - You need reverse resolution from a Smart Agent address to its primary name — with a round-trip check, so a name is only trusted when it resolves back to the same address.
16
+ - You need typed records such as `displayName`, `a2aEndpoint`, `mcpEndpoint`, `nativeId`, or `metadataUri` — service discovery without hardcoded URLs.
17
+ - You need pure call builders for name registration, resolver updates, primary-name updates, or owner rotation that compose into custody-policy ceremonies.
24
18
 
25
- ## Do Not Use This For
19
+ ## Do not use this for
26
20
 
27
- - Passkey ceremonies or auth flows. Use `@agenticprimitives/connect-auth`.
28
- - Smart-account deployment or UserOps. Use `@agenticprimitives/agent-account`.
29
- - Account safety policy and approval scheduling. Use `@agenticprimitives/account-custody`.
30
- - Permission-token minting or attenuation. Use `@agenticprimitives/delegation`.
31
- - MCP/A2A transport wiring. Use demo apps or runtime packages.
21
+ - Passkey ceremonies or auth flows — `@agenticprimitives/connect-auth`.
22
+ - Smart-account deployment or UserOps — `@agenticprimitives/agent-account`.
23
+ - Account safety policy and approval scheduling — `@agenticprimitives/account-custody`.
24
+ - Permission-token minting or attenuation — `@agenticprimitives/delegation`.
25
+ - MCP/A2A transport wiring — demo apps or runtime packages.
32
26
 
33
27
  ## Install
34
28
 
35
- This package is workspace-internal and not yet published.
29
+ Workspace-internal; not yet published.
36
30
 
37
31
  ```bash
38
32
  pnpm add @agenticprimitives/agent-naming
39
33
  ```
40
34
 
41
- ## 60-Second Quickstart
35
+ ## 60-second quickstart
42
36
 
43
37
  ```ts
44
38
  import {
@@ -64,22 +58,28 @@ const primaryName = await naming.reverseResolve('0x00000000000000000000000000000
64
58
  const records = await naming.getRecords('treasury.acme.agent');
65
59
  ```
66
60
 
67
- ## Main Concepts
61
+ ## How it's different
62
+
63
+ The reference points are **ENS and Unstoppable Domains** — both excellent at what they do, both built around a different center of gravity:
64
+
65
+ - **Name-as-asset vs. name-as-facet.** ENS and Unstoppable treat the name as the prized object; identity accretes around it. Here the Smart Agent address is canonical and forced-unique names are assigned at identity bootstrap ([spec 220 §5](../../specs/220-agent-identity-bootstrap.md)) — the name is a pointer, replaceable without identity loss, and `addr` + `nativeId` must reference the same Smart Agent.
66
+ - **Agent-native records.** Typed predicates for `a2aEndpoint`, `mcpEndpoint`, CAIP-10 `nativeId`, and a public-safe passkey credential digest — the records an agent economy actually resolves, not a TXT free-for-all. Unknown predicates are ignored on decode and rejected by typed encoders.
67
+ - **Custody-governed rotation.** Name-owner rotation ships as pure encoded call builders (`/custody` subpath) that compose into the owner Smart Agent's custody-policy ceremonies — quorums and trustees, not a private key that can be phished once.
68
+ - **Disciplined reads.** Product reads use `readContract` only — no `eth_getLogs` walks, no silent fallbacks ([ADR-0012](../../docs/architecture/decisions/0012-no-eth-getlogs-in-product-read-paths.md), [ADR-0013](../../docs/architecture/decisions/0013-no-silent-fallbacks.md)). Reverse resolution is a single on-chain `reverseResolveString` read, then a forward round-trip before it is trusted.
69
+
70
+ The `.agent` TLD is the naming protocol; which names a given deployment registers is app-layer configuration — this package stays generic.
68
71
 
69
- - **Canonical SA**: the ERC-4337 address every name must reference (`addr`,
70
- `nativeId`). Owned by `agent-account`, not this package.
72
+ ## Main concepts
73
+
74
+ - **Canonical SA**: the ERC-4337 address every name must reference (`addr`, `nativeId`). Owned by `agent-account`, not this package.
71
75
  - **AgentName**: a normalized dotted name under `.agent` (a facet label).
72
- - **Label**: one segment of a name, such as `treasury`.
73
- - **Node**: the recursive `namehash(name)`.
74
- - **Registry**: owns name records: owner, resolver, parent, subregistry.
75
- - **Resolver**: stores typed records for a node.
76
- - **Primary name**: reverse record for a Smart Agent address.
77
- - **Records**: typed data such as endpoints, display name, CAIP-10 `nativeId`,
78
- and public-safe passkey credential digest.
76
+ - **Label / Node**: one segment (`treasury`); the recursive `namehash(name)`.
77
+ - **Registry / Resolver**: name records (owner, resolver, parent, subregistry); typed records for a node.
78
+ - **Primary name**: the reverse record for a Smart Agent address.
79
79
 
80
80
  See [`docs/concepts.md`](docs/concepts.md).
81
81
 
82
- ## Common Recipes
82
+ ## Common recipes
83
83
 
84
84
  ```ts
85
85
  import {
@@ -102,40 +102,30 @@ const decoded = decodeRecords({
102
102
  });
103
103
  ```
104
104
 
105
- More examples:
106
-
107
- - [`examples/basic.ts`](examples/basic.ts)
108
- - [`examples/records.ts`](examples/records.ts)
109
- - [`examples/custody-rotation.ts`](examples/custody-rotation.ts)
105
+ More examples: [`examples/basic.ts`](examples/basic.ts) · [`examples/records.ts`](examples/records.ts) · [`examples/custody-rotation.ts`](examples/custody-rotation.ts)
110
106
 
111
- ## Runtime Support
107
+ ## Runtime support
112
108
 
113
- Pure helpers and record encoders work in browser, Node, and Workers. The client
114
- uses `viem` public and wallet clients and requires an RPC URL for chain reads or
115
- transaction submission.
109
+ Pure helpers and record encoders work in browser, Node, and Workers. The client uses `viem` public and wallet clients and requires an RPC URL for chain reads or transaction submission.
116
110
 
117
- ## Subpath Exports
111
+ ## Subpath exports
118
112
 
119
113
  - `@agenticprimitives/agent-naming` — public helpers, client, ABIs, and types.
120
- - `@agenticprimitives/agent-naming/records` — predicate ids and typed
121
- record encode/decode helpers.
122
- - `@agenticprimitives/agent-naming/custody` — pure encoded call builders for
123
- name-management transactions.
114
+ - `@agenticprimitives/agent-naming/records` — predicate ids and typed record encode/decode helpers.
115
+ - `@agenticprimitives/agent-naming/custody` — pure encoded call builders for name-management transactions.
124
116
 
125
- ## Security Invariants
117
+ ## Security invariants
126
118
 
127
- - Product reads use `readContract`; no `eth_getLogs` in hot paths
128
- ([ADR-0012](../../docs/architecture/decisions/0012-no-eth-getlogs-in-product-read-paths.md)).
129
- `reverseResolve` string reconstruction is transitional log debt — do not copy.
130
- - Name normalization is deterministic.
119
+ - Name normalization is deterministic — equal normalizations produce equal namehashes.
131
120
  - Reverse resolution must round-trip before it is trusted.
132
121
  - Unknown predicates are ignored on decode and rejected by typed encoders.
133
- - Raw passkey credential IDs are never stored.
122
+ - Raw passkey credential IDs are never stored — only a digest.
134
123
  - Endpoint records are discovery hints, not proof of endpoint control.
124
+ - Product reads use `readContract`; no `eth_getLogs` in hot paths ([ADR-0012](../../docs/architecture/decisions/0012-no-eth-getlogs-in-product-read-paths.md)).
135
125
 
136
126
  See [`docs/security.md`](docs/security.md) and [`AUDIT.md`](AUDIT.md).
137
127
 
138
- ## Documentation Map
128
+ ## Documentation map
139
129
 
140
130
  - [`docs/concepts.md`](docs/concepts.md) — naming model and vocabulary.
141
131
  - [`docs/api.md`](docs/api.md) — human-readable public API guide.
@@ -153,6 +143,10 @@ pnpm check:public-exports
153
143
  pnpm check:forbidden-terms
154
144
  ```
155
145
 
146
+ ## Status
147
+
148
+ Testnet/pilot-ready. Production launch is gated on the public checklist in the root [`README.md`](../../README.md#status--honest-version) — including third-party contract audit and governance key rotation. Track every security finding live in [`docs/audits/findings.yaml`](../../docs/audits/findings.yaml).
149
+
156
150
  ## License
157
151
 
158
152
  UNLICENSED.
@@ -1 +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"}
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;AAIjB;;;;;;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;IAwBnF;;;;;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"}
package/dist/client.js CHANGED
@@ -3,6 +3,7 @@ import { agentNameAttributeResolverAbi, agentNameRegistryAbi, agentNameUniversal
3
3
  import { PREDICATE_ID, decodeRecords, } from './records';
4
4
  import { buildRegisterSubnameCall, buildRecordCalls, buildSetPrimaryNameCall, buildSetSubregistryCall, } from './custody';
5
5
  import { namehash, ZERO_NODE } from './namehash';
6
+ import { normalizeLabel } from './normalize';
6
7
  /**
7
8
  * Read + write client for the Agent Naming Service.
8
9
  *
@@ -181,11 +182,14 @@ export class AgentNamingClient {
181
182
  * AgentAccount.execute / CustodyPolicy ceremony instead.
182
183
  */
183
184
  async registerSubname(input, ctx) {
185
+ // AN-1: normalize + reject at the client boundary so the on-chain label, the derived child
186
+ // node, and any record writes all reference the same canonical label.
187
+ const label = normalizeLabel(input.label);
184
188
  const parentNode = namehash(input.parent);
185
189
  const call = buildRegisterSubnameCall({
186
190
  registry: this.opts.registry,
187
191
  parentNode,
188
- label: input.label,
192
+ label,
189
193
  newOwner: input.owner,
190
194
  resolver: input.resolver,
191
195
  });
@@ -193,7 +197,7 @@ export class AgentNamingClient {
193
197
  if (input.initialRecords) {
194
198
  // Compute the new child node off-chain so we don't have to
195
199
  // re-read against a possibly-lagging RPC.
196
- const childNode = namehash(`${input.label}.${input.parent}`);
200
+ const childNode = namehash(`${label}.${input.parent}`);
197
201
  const resolver = input.resolver ?? this.opts.universalResolver; // best-effort default
198
202
  const calls = buildRecordCalls({ resolver, node: childNode, records: input.initialRecords });
199
203
  for (const c of calls)
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"custody.d.ts","sourceRoot":"","sources":["../src/custody.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAM7D,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAG5E,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;CACX;AAID;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,YAAY,CAgBf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,YAAY,CAUf;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,YAAY,CAUf;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,YAAY,CAUf;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,YAAY,CAUf;AAID,uEAAuE;AACvE,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,YAAY,CAUf;AAED,wEAAwE;AACxE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,YAAY,CAUf;AAED,wEAAwE;AACxE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ,GAAG,YAAY,CAUf;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,OAAO,SAAS,EAAE,gBAAgB,CAAC;CAC7C,GAAG,YAAY,EAAE,CAsCjB;AAID;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,YAAY,CAUf;AAED;;;;;GAKG;AACH,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"custody.d.ts","sourceRoot":"","sources":["../src/custody.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAO7D,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAG5E,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;CACX;AAID;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,YAAY,CAkBf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,YAAY,CAUf;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,YAAY,CAUf;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,YAAY,CAUf;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,YAAY,CAUf;AAID,uEAAuE;AACvE,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,YAAY,CAUf;AAED,wEAAwE;AACxE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,YAAY,CAUf;AAED,wEAAwE;AACxE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ,GAAG,YAAY,CAUf;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,OAAO,SAAS,EAAE,gBAAgB,CAAC;CAC7C,GAAG,YAAY,EAAE,CAsCjB;AAID;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,YAAY,CAYf;AAED;;;;;GAKG;AACH,YAAY,EAAE,aAAa,EAAE,CAAC"}
package/dist/custody.js CHANGED
@@ -16,6 +16,7 @@
16
16
  * walletClient submission on top.
17
17
  */
18
18
  import { encodeFunctionData } from 'viem';
19
+ import { normalizeLabel } from './normalize';
19
20
  import { agentNameAttributeResolverAbi, agentNameRegistryAbi, permissionlessSubregistryAbi, } from './abis';
20
21
  import { PREDICATE_ID, AGENT_KIND_ID } from './records';
21
22
  // ─── Registry writes ───────────────────────────────────────────────
@@ -25,6 +26,8 @@ import { PREDICATE_ID, AGENT_KIND_ID } from './records';
25
26
  * delegate (msg.sender check on chain).
26
27
  */
27
28
  export function buildRegisterSubnameCall(args) {
29
+ // AN-1: normalize + reject on the WRITE path (homoglyph/case/zero-width squat defense).
30
+ const label = normalizeLabel(args.label);
28
31
  return {
29
32
  to: args.registry,
30
33
  value: 0n,
@@ -33,7 +36,7 @@ export function buildRegisterSubnameCall(args) {
33
36
  functionName: 'register',
34
37
  args: [
35
38
  args.parentNode,
36
- args.label,
39
+ label,
37
40
  args.newOwner,
38
41
  args.resolver ?? '0x0000000000000000000000000000000000000000',
39
42
  args.expiry ?? 0n,
@@ -201,13 +204,15 @@ export function buildRecordCalls(args) {
201
204
  * has previously claimed a name through this subregistry instance.
202
205
  */
203
206
  export function buildSubregistryRegisterCall(args) {
207
+ // AN-1: normalize + reject on the WRITE path (homoglyph/case/zero-width squat defense).
208
+ const label = normalizeLabel(args.label);
204
209
  return {
205
210
  to: args.subregistry,
206
211
  value: 0n,
207
212
  data: encodeFunctionData({
208
213
  abi: permissionlessSubregistryAbi,
209
214
  functionName: 'register',
210
- args: [args.label, args.newOwner],
215
+ args: [label, args.newOwner],
211
216
  }),
212
217
  };
213
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"custody.js","sourceRoot":"","sources":["../src/custody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custody.js","sourceRoot":"","sources":["../src/custody.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { AGENT_TLD, type AgentTld } from './constants';
2
- export { normalizeAgentName, isValidAgentName } from './normalize';
2
+ export { normalizeAgentName, normalizeLabel, isValidAgentName } from './normalize';
3
3
  export { labelhash, namehash, ZERO_NODE } from './namehash';
4
4
  export { InvalidNameError, NameNotFoundError, UnauthorizedNameOwnerError, } from './errors';
5
5
  export type { AgentKind, AgentNameRecords, RegisterSubnameInput, SetPrimaryNameInput, SetAgentRecordsInput, SetSubregistryInput, AgentNamingClientOpts, } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAIhE,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,EAC5B,KAAK,YAAY,GAClB,MAAM,WAAW,CAAC;AAKnB,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,QAAQ,CAAC;AAIhB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACb,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAIhE,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,EAC5B,KAAK,YAAY,GAClB,MAAM,WAAW,CAAC;AAKnB,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,QAAQ,CAAC;AAIhB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACb,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  // - CLAUDE.md — doctrine
6
6
  // - specs/215-agent-naming.md — the contract
7
7
  export { AGENT_TLD } from './constants';
8
- export { normalizeAgentName, isValidAgentName } from './normalize';
8
+ export { normalizeAgentName, normalizeLabel, isValidAgentName } from './normalize';
9
9
  export { labelhash, namehash, ZERO_NODE } from './namehash';
10
10
  export { InvalidNameError, NameNotFoundError, UnauthorizedNameOwnerError, } from './errors';
11
11
  export { AgentNamingClient } from './client';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,OAAO;AACP,0CAA0C;AAC1C,2BAA2B;AAC3B,+CAA+C;AAE/C,OAAO,EAAE,SAAS,EAAiB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,UAAU,CAAC;AAUlB,OAAO,EAAE,iBAAiB,EAAqB,MAAM,UAAU,CAAC;AAEhE,gFAAgF;AAChF,+CAA+C;AAC/C,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,GAE7B,MAAM,WAAW,CAAC;AAEnB,gEAAgE;AAChE,sEAAsE;AACtE,oEAAoE;AACpE,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,QAAQ,CAAC;AAEhB,uEAAuE;AACvE,6CAA6C;AAC7C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACb,aAAa,GAId,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,OAAO;AACP,0CAA0C;AAC1C,2BAA2B;AAC3B,+CAA+C;AAE/C,OAAO,EAAE,SAAS,EAAiB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,UAAU,CAAC;AAUlB,OAAO,EAAE,iBAAiB,EAAqB,MAAM,UAAU,CAAC;AAEhE,gFAAgF;AAChF,+CAA+C;AAC/C,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,GAE7B,MAAM,WAAW,CAAC;AAEnB,gEAAgE;AAChE,sEAAsE;AACtE,oEAAoE;AACpE,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,QAAQ,CAAC;AAEhB,uEAAuE;AACvE,6CAA6C;AAC7C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACb,aAAa,GAId,MAAM,WAAW,CAAC"}
@@ -20,6 +20,15 @@
20
20
  * `namehash` so the namehash is computed against the canonical form.
21
21
  */
22
22
  export declare function normalizeAgentName(name: string): string;
23
+ /**
24
+ * Normalize + validate a SINGLE label (no dots) to canonical form, throwing
25
+ * `InvalidNameError` on any rule violation. AN-1 (audit 2026-06-09): the registration WRITE
26
+ * path MUST run this so a homoglyph / mixed-case / zero-width label can never be anchored as a
27
+ * node whose raw stored label renders indistinguishably from a real name. Two inputs that
28
+ * normalize identically MUST hash identically — so the write path and the read/derive path
29
+ * (`normalizeAgentName` → `namehash`) agree.
30
+ */
31
+ export declare function normalizeLabel(label: string): string;
23
32
  /**
24
33
  * Predicate variant — returns true / false instead of throwing.
25
34
  * Useful for UI input validation.
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAavD;AAyBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOtD"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAavD;AAID;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUpD;AAuBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOtD"}
package/dist/normalize.js CHANGED
@@ -35,6 +35,25 @@ export function normalizeAgentName(name) {
35
35
  return labels.join('.');
36
36
  }
37
37
  const LABEL_RE = /^[a-z0-9-]+$/;
38
+ /**
39
+ * Normalize + validate a SINGLE label (no dots) to canonical form, throwing
40
+ * `InvalidNameError` on any rule violation. AN-1 (audit 2026-06-09): the registration WRITE
41
+ * path MUST run this so a homoglyph / mixed-case / zero-width label can never be anchored as a
42
+ * node whose raw stored label renders indistinguishably from a real name. Two inputs that
43
+ * normalize identically MUST hash identically — so the write path and the read/derive path
44
+ * (`normalizeAgentName` → `namehash`) agree.
45
+ */
46
+ export function normalizeLabel(label) {
47
+ if (typeof label !== 'string') {
48
+ throw new InvalidNameError(String(label), 'must be a string');
49
+ }
50
+ const norm = label.normalize('NFC').trim().toLowerCase();
51
+ if (norm.includes('.')) {
52
+ throw new InvalidNameError(label, 'a label MUST NOT contain "." (register one label at a time)');
53
+ }
54
+ validateLabel(label, norm);
55
+ return norm;
56
+ }
38
57
  function validateLabel(fullName, label) {
39
58
  if (label.length === 0) {
40
59
  throw new InvalidNameError(fullName, 'empty label (consecutive dots or leading/trailing dot)');
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,SAAS,aAAa,CAAC,QAAgB,EAAE,KAAa;IACpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,wDAAwD,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,KAAK,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,KAAK,sBAAsB,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,KAAK,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CACxB,QAAQ,EACR,UAAU,KAAK,2CAA2C,CAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,gBAAgB,CAAC,KAAK,EAAE,6DAA6D,CAAC,CAAC;IACnG,CAAC;IACD,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,KAAa;IACpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,wDAAwD,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,KAAK,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,KAAK,sBAAsB,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,KAAK,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CACxB,QAAQ,EACR,UAAU,KAAK,2CAA2C,CAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticprimitives/agent-naming",
3
- "version": "1.0.0-alpha.6",
3
+ "version": "1.0.0-alpha.8",
4
4
  "description": "Agent Naming Service SDK: hierarchical naming for Smart Agents (.agent TLD). Owns name normalization, namehash/labelhash, records schemas, and the AgentNamingClient (resolve / reverse / registry). Speaks naming-domain vocabulary only — no delegation / caveat / custody concepts.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -44,9 +44,9 @@
44
44
  },
45
45
  "peerDependencies": {
46
46
  "viem": "^2.52.2",
47
- "@agenticprimitives/agent-account": "1.0.0-alpha.6",
48
- "@agenticprimitives/connect-auth": "1.0.0-alpha.6",
49
- "@agenticprimitives/types": "1.0.0-alpha.6"
47
+ "@agenticprimitives/agent-account": "1.0.0-alpha.8",
48
+ "@agenticprimitives/connect-auth": "1.0.0-alpha.8",
49
+ "@agenticprimitives/types": "1.0.0-alpha.8"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/node": "^22.7.0",
@@ -63,8 +63,8 @@
63
63
  "build": "tsc -p tsconfig.build.json",
64
64
  "typecheck": "tsc -p tsconfig.json --noEmit",
65
65
  "test": "vitest run",
66
- "test:unit": "vitest run test/normalize.test.ts test/namehash.test.ts test/records.test.ts",
67
- "test:integration": "vitest run test/integration.test.ts",
66
+ "test:unit": "vitest run test/normalize.test.ts test/namehash.test.ts test/records.test.ts --passWithNoTests",
67
+ "test:integration": "vitest run test/integration.test.ts --passWithNoTests",
68
68
  "test:watch": "vitest",
69
69
  "clean": "rm -rf dist"
70
70
  }