@agenticprimitives/agent-naming 1.0.0-alpha.21 → 1.0.0-alpha.23

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 (66) hide show
  1. package/CLAUDE.md +34 -50
  2. package/README.md +7 -0
  3. package/dist/abis.d.ts +99 -0
  4. package/dist/abis.d.ts.map +1 -1
  5. package/dist/abis.js +40 -0
  6. package/dist/abis.js.map +1 -1
  7. package/dist/claim.d.ts +71 -0
  8. package/dist/claim.d.ts.map +1 -0
  9. package/dist/claim.js +73 -0
  10. package/dist/claim.js.map +1 -0
  11. package/dist/client.d.ts +24 -1
  12. package/dist/client.d.ts.map +1 -1
  13. package/dist/client.js +133 -3
  14. package/dist/client.js.map +1 -1
  15. package/dist/constants.d.ts +55 -5
  16. package/dist/constants.d.ts.map +1 -1
  17. package/dist/constants.js +128 -4
  18. package/dist/constants.js.map +1 -1
  19. package/dist/custody.d.ts +42 -0
  20. package/dist/custody.d.ts.map +1 -1
  21. package/dist/custody.js +98 -1
  22. package/dist/custody.js.map +1 -1
  23. package/dist/dns.d.ts +91 -0
  24. package/dist/dns.d.ts.map +1 -0
  25. package/dist/dns.js +196 -0
  26. package/dist/dns.js.map +1 -0
  27. package/dist/grammar.d.ts +62 -0
  28. package/dist/grammar.d.ts.map +1 -0
  29. package/dist/grammar.js +165 -0
  30. package/dist/grammar.js.map +1 -0
  31. package/dist/hash.d.ts +14 -0
  32. package/dist/hash.d.ts.map +1 -0
  33. package/dist/hash.js +22 -0
  34. package/dist/hash.js.map +1 -0
  35. package/dist/index.d.ts +10 -5
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +11 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/issuance.d.ts +70 -0
  40. package/dist/issuance.d.ts.map +1 -0
  41. package/dist/issuance.js +65 -0
  42. package/dist/issuance.js.map +1 -0
  43. package/dist/label.d.ts +10 -0
  44. package/dist/label.d.ts.map +1 -0
  45. package/dist/label.js +39 -0
  46. package/dist/label.js.map +1 -0
  47. package/dist/namehash.d.ts +10 -23
  48. package/dist/namehash.d.ts.map +1 -1
  49. package/dist/namehash.js +11 -35
  50. package/dist/namehash.js.map +1 -1
  51. package/dist/normalize.d.ts +9 -26
  52. package/dist/normalize.d.ts.map +1 -1
  53. package/dist/normalize.js +11 -67
  54. package/dist/normalize.js.map +1 -1
  55. package/dist/records.d.ts +12 -0
  56. package/dist/records.d.ts.map +1 -1
  57. package/dist/records.js +62 -2
  58. package/dist/records.js.map +1 -1
  59. package/dist/types.d.ts +60 -1
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/vertical.d.ts +43 -0
  62. package/dist/vertical.d.ts.map +1 -0
  63. package/dist/vertical.js +40 -0
  64. package/dist/vertical.js.map +1 -0
  65. package/docs/api.md +13 -1
  66. package/package.json +6 -6
package/dist/namehash.js CHANGED
@@ -1,47 +1,23 @@
1
- import { keccak256, encodePacked, toBytes } from 'viem';
2
- import { normalizeAgentName } from './normalize.js';
1
+ import { onChainNameOf } from './grammar.js';
2
+ import { ZERO_NODE, labelhash, nodeOfLabels } from './hash.js';
3
+ export { ZERO_NODE, labelhash };
3
4
  /**
4
5
  * Compute the recursive namehash of an agent name
5
6
  * (`keccak256(parentNode || labelhash)` convention).
6
7
  *
7
- * namehash('') = 0x00…00
8
- * namehash('agent') = keccak256(namehash('') || labelhash('agent'))
9
- * namehash('alice.acme.agent')
10
- * = keccak256(namehash('acme.agent') || labelhash('alice'))
8
+ * namehash('') = 0x00…00
9
+ * namehash('agent') = keccak256(namehash('') || labelhash('agent'))
10
+ * namehash('alice.acme.agent') = keccak256(namehash('acme.agent') || labelhash('alice'))
11
+ * namehash('vault.svc@richcanvas.org') = namehash('vault.svc.richcanvas.org') (spec 346 §3.3)
11
12
  *
12
- * The hash is computed against the NORMALIZED name (see
13
- * `normalizeAgentName`). Two strings that normalize identically
14
- * produce identical namehashes.
13
+ * The hash is computed over the NORMALIZED dotted on-chain form (`onChainNameOf`), so every accepted
14
+ * rendering of the same name (`@`, path, dotted, `.ws` alias) hashes identically.
15
15
  *
16
- * Throws `InvalidNameError` (via `normalizeAgentName`) on malformed
17
- * input. Passing `''` returns `0x00…00` — the canonical "empty / root"
18
- * sentinel matching the recursive-namehash convention.
16
+ * Throws `InvalidNameError` on malformed input. Passing `''` returns `0x00…00`.
19
17
  */
20
18
  export function namehash(name) {
21
19
  if (name === '')
22
20
  return ZERO_NODE;
23
- const labels = normalizeAgentName(name).split('.');
24
- let node = ZERO_NODE;
25
- // Walk from rightmost (TLD-side) label inward so the root anchors
26
- // the recursion — the standard recursive-namehash algorithm.
27
- for (let i = labels.length - 1; i >= 0; i--) {
28
- const lh = labelhash(labels[i]);
29
- node = keccak256(encodePacked(['bytes32', 'bytes32'], [node, lh]));
30
- }
31
- return node;
21
+ return nodeOfLabels(onChainNameOf(name).split('.'));
32
22
  }
33
- /**
34
- * Compute the labelhash of a single label.
35
- *
36
- * `labelhash(label)` = keccak256(utf8Bytes(label))
37
- *
38
- * No normalization is applied here — the caller is expected to pass a
39
- * label produced by splitting a normalized name. Pass a non-normalized
40
- * label at your own risk.
41
- */
42
- export function labelhash(label) {
43
- return keccak256(toBytes(label));
44
- }
45
- /** The all-zeros 32-byte sentinel namehash (the root of the tree). */
46
- export const ZERO_NODE = '0x0000000000000000000000000000000000000000000000000000000000000000';
47
23
  //# sourceMappingURL=namehash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namehash.js","sourceRoot":"","sources":["../src/namehash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAY,MAAM,MAAM,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,IAAI,GAAQ,SAAS,CAAC;IAC1B,kEAAkE;IAClE,6DAA6D;IAC7D,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QACjC,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,SAAS,GAAQ,oEAAoE,CAAC"}
1
+ {"version":3,"file":"namehash.js","sourceRoot":"","sources":["../src/namehash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAEhC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -1,34 +1,17 @@
1
+ export { normalizeLabel } from './label.js';
1
2
  /**
2
- * Normalize an agent name to canonical form.
3
+ * Normalize an agent name to canonical display form (spec 346 §3.1):
3
4
  *
4
- * Phase 1 normalization (US-ASCII subset; spec § 4 normalization
5
- * rules; matches `smart-agent/packages/sdk/src/naming.ts:normalize`
6
- * with stricter label validation):
5
+ * - NFC, trim, lowercase; every label validated (`[a-z0-9-]`, no edge hyphens, ≤ 63).
6
+ * - `.ws` rewritten to `.workspace`.
7
+ * - Scoped / contextual names return the `@` form (`vault.svc@richcanvas.org`), whichever accepted
8
+ * rendering was given (`@`, `c.u/x.t`, or dotted `x.t.c.u`).
9
+ * - Root, type-node and legacy (`.impact` / `.agent`) names return their dotted form.
7
10
  *
8
- * 1. NFC normalize the input.
9
- * 2. Trim outer whitespace.
10
- * 3. Lowercase (`String.prototype.toLowerCase` — note Turkish-i
11
- * edge case; acceptable in Phase 1 since labels are ASCII-only).
12
- * 4. Split on `.`. For each label:
13
- * - Reject empty.
14
- * - Reject leading or trailing `-`.
15
- * - Reject characters outside `[a-z 0-9 -]`.
16
- * - Reject length > 63.
17
- * 5. Return joined.
18
- *
19
- * Throws `InvalidNameError` on any rule violation. Use this BEFORE
20
- * `namehash` so the namehash is computed against the canonical form.
11
+ * Throws `InvalidNameError` on any rule violation. `namehash` hashes the on-chain form of the same
12
+ * parse, so two inputs that normalize identically hash identically.
21
13
  */
22
14
  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;
32
15
  /**
33
16
  * Predicate variant — returns true / false instead of throwing.
34
17
  * 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;AAID;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUpD;AAuBD;;;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,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOtD"}
package/dist/normalize.js CHANGED
@@ -1,75 +1,19 @@
1
- import { InvalidNameError } from './errors.js';
1
+ import { parseAgentName } from './grammar.js';
2
+ export { normalizeLabel } from './label.js';
2
3
  /**
3
- * Normalize an agent name to canonical form.
4
+ * Normalize an agent name to canonical display form (spec 346 §3.1):
4
5
  *
5
- * Phase 1 normalization (US-ASCII subset; spec § 4 normalization
6
- * rules; matches `smart-agent/packages/sdk/src/naming.ts:normalize`
7
- * with stricter label validation):
6
+ * - NFC, trim, lowercase; every label validated (`[a-z0-9-]`, no edge hyphens, ≤ 63).
7
+ * - `.ws` rewritten to `.workspace`.
8
+ * - Scoped / contextual names return the `@` form (`vault.svc@richcanvas.org`), whichever accepted
9
+ * rendering was given (`@`, `c.u/x.t`, or dotted `x.t.c.u`).
10
+ * - Root, type-node and legacy (`.impact` / `.agent`) names return their dotted form.
8
11
  *
9
- * 1. NFC normalize the input.
10
- * 2. Trim outer whitespace.
11
- * 3. Lowercase (`String.prototype.toLowerCase` — note Turkish-i
12
- * edge case; acceptable in Phase 1 since labels are ASCII-only).
13
- * 4. Split on `.`. For each label:
14
- * - Reject empty.
15
- * - Reject leading or trailing `-`.
16
- * - Reject characters outside `[a-z 0-9 -]`.
17
- * - Reject length > 63.
18
- * 5. Return joined.
19
- *
20
- * Throws `InvalidNameError` on any rule violation. Use this BEFORE
21
- * `namehash` so the namehash is computed against the canonical form.
12
+ * Throws `InvalidNameError` on any rule violation. `namehash` hashes the on-chain form of the same
13
+ * parse, so two inputs that normalize identically hash identically.
22
14
  */
23
15
  export function normalizeAgentName(name) {
24
- if (typeof name !== 'string') {
25
- throw new InvalidNameError(String(name), 'must be a string');
26
- }
27
- const trimmed = name.normalize('NFC').trim().toLowerCase();
28
- if (trimmed.length === 0) {
29
- throw new InvalidNameError(name, 'empty');
30
- }
31
- const labels = trimmed.split('.');
32
- for (const label of labels) {
33
- validateLabel(name, label);
34
- }
35
- return labels.join('.');
36
- }
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
- }
57
- function validateLabel(fullName, label) {
58
- if (label.length === 0) {
59
- throw new InvalidNameError(fullName, 'empty label (consecutive dots or leading/trailing dot)');
60
- }
61
- if (label.length > 63) {
62
- throw new InvalidNameError(fullName, `label "${label}" exceeds 63 chars`);
63
- }
64
- if (label.startsWith('-')) {
65
- throw new InvalidNameError(fullName, `label "${label}" starts with hyphen`);
66
- }
67
- if (label.endsWith('-')) {
68
- throw new InvalidNameError(fullName, `label "${label}" ends with hyphen`);
69
- }
70
- if (!LABEL_RE.test(label)) {
71
- throw new InvalidNameError(fullName, `label "${label}" contains characters outside [a-z 0-9 -]`);
72
- }
16
+ return parseAgentName(name).normalized;
73
17
  }
74
18
  /**
75
19
  * Predicate variant — returns true / false instead of throwing.
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;AACzC,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/dist/records.d.ts CHANGED
@@ -26,6 +26,7 @@
26
26
  * predicates (fail-loud on write).
27
27
  */
28
28
  import { type Hex } from 'viem';
29
+ import type { DerivedAgentType } from '@agenticprimitives/types';
29
30
  import type { AgentKind, AgentNameRecords, ConnectionKind } from './types.js';
30
31
  export declare const PREDICATE_ID: {
31
32
  readonly addr: `0x${string}`;
@@ -45,9 +46,17 @@ export declare const PREDICATE_ID: {
45
46
  readonly nativeId: `0x${string}`;
46
47
  readonly connectionKind: `0x${string}`;
47
48
  readonly connectionAddress: `0x${string}`;
49
+ readonly agentType: `0x${string}`;
50
+ readonly serviceRole: `0x${string}`;
51
+ readonly agentSubtype: `0x${string}`;
52
+ readonly cardDigest: `0x${string}`;
53
+ readonly cardUri: `0x${string}`;
48
54
  };
49
55
  export type PredicateName = keyof typeof PREDICATE_ID;
50
56
  export declare const AGENT_KIND_ID: Record<AgentKind, Hex>;
57
+ export declare const AGENT_TYPE_ID: Record<DerivedAgentType, Hex>;
58
+ export declare function encodeAgentType(value: DerivedAgentType): Hex;
59
+ export declare function decodeAgentType(id: Hex): DerivedAgentType | undefined;
51
60
  export declare const CONNECTION_KIND_ID: Record<ConnectionKind, Hex>;
52
61
  /** `keccak256("atl:AgentName")` — the ShapeRegistry class id. */
53
62
  export declare const CLASS_AGENT_NAME: Hex;
@@ -55,6 +64,8 @@ export declare const CLASS_AGENT_NAME: Hex;
55
64
  export declare const AGENT_KIND_ENUM: Hex;
56
65
  /** `keccak256("atl:ConnectionKindEnum")` — the enum-set id bound to `atl:connectionKind`. */
57
66
  export declare const CONNECTION_KIND_ENUM: Hex;
67
+ /** `keccak256("atl:AgentTypeEnum")` — the enum-set id bound to `atl:agentType` (spec 346). */
68
+ export declare const AGENT_TYPE_ENUM: Hex;
58
69
  /**
59
70
  * Phase 1 CAIP-10 namespace allowlist for `nativeId`. Strict on
60
71
  * encode (validate-at-write), permissive on decode (forward-compat).
@@ -96,4 +107,5 @@ export interface DecodeInput {
96
107
  bytes32s: Partial<Record<Hex, Hex>>;
97
108
  }
98
109
  export declare function decodeRecords(input: DecodeInput): AgentNameRecords;
110
+ export declare function decodeAgentKind(id: Hex): AgentKind | undefined;
99
111
  //# sourceMappingURL=records.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAoB,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAa9E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;CAmBf,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,YAAY,CAAC;AAItD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAIhD,CAAC;AAUF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAQ1D,CAAC;AAcF,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,EAAE,GAA8B,CAAC;AAC9D,mFAAmF;AACnF,eAAO,MAAM,eAAe,EAAE,GAAkC,CAAC;AACjE,6FAA6F;AAC7F,eAAO,MAAM,oBAAoB,EAAE,GAAuC,CAAC;AAI3E;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAIzD,CAAC;AAMH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,SAAS,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,SAAS,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,GAC7D;IAAE,SAAS,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAsDxE;AAID;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/C,QAAQ,EAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;CACtC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CA2ClE"}
1
+ {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAoB,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAa9E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;CA4Bf,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,YAAY,CAAC;AAItD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAIhD,CAAC;AAUF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAWvD,CAAC;AAIF,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAK5D;AAYD,wBAAgB,eAAe,CAAC,EAAE,EAAE,GAAG,GAAG,gBAAgB,GAAG,SAAS,CAKrE;AAID,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAQ1D,CAAC;AAcF,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,EAAE,GAA8B,CAAC;AAC9D,mFAAmF;AACnF,eAAO,MAAM,eAAe,EAAE,GAAkC,CAAC;AACjE,6FAA6F;AAC7F,eAAO,MAAM,oBAAoB,EAAE,GAAuC,CAAC;AAC3E,8FAA8F;AAC9F,eAAO,MAAM,eAAe,EAAE,GAAkC,CAAC;AAIjE;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAIzD,CAAC;AAMH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,SAAS,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,SAAS,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,GAC7D;IAAE,SAAS,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA4DxE;AAID;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/C,QAAQ,EAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;CACtC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CA+ClE;AA2BD,wBAAgB,eAAe,CAAC,EAAE,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAK9D"}
package/dist/records.js CHANGED
@@ -26,6 +26,7 @@
26
26
  * predicates (fail-loud on write).
27
27
  */
28
28
  import { keccak256, toHex } from 'viem';
29
+ import { DERIVED_AGENT_TYPES } from '@agenticprimitives/types';
29
30
  // ─── Predicate ids (mirror AgentNamePredicates.sol) ─────────────────
30
31
  /**
31
32
  * keccak256 of the `atl:*` CURIE. Computed at module load. These
@@ -54,6 +55,15 @@ export const PREDICATE_ID = {
54
55
  // Connection bootstrap (spec 280) — opt-in, owner-set, public.
55
56
  connectionKind: _predId('atl:connectionKind'),
56
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'),
57
67
  };
58
68
  // ─── Enum value ids (mirror AgentNamePredicates.sol AGENT_KIND_*) ──
59
69
  export const AGENT_KIND_ID = {
@@ -66,6 +76,42 @@ const KNOWN_AGENT_KINDS = new Set([
66
76
  'org',
67
77
  'service',
68
78
  ]);
79
+ // ─── Derived-type enum ids (spec 346; mirror AgentNamePredicates.sol AGENT_TYPE_*) ──
80
+ export const AGENT_TYPE_ID = {
81
+ person: _predId('person'),
82
+ org: _predId('org'),
83
+ team: _predId('team'),
84
+ service: _predId('service'),
85
+ workspace: _predId('workspace'),
86
+ treasury: _predId('treasury'),
87
+ registry: _predId('registry'),
88
+ church: _predId('church'),
89
+ circle: _predId('circle'),
90
+ household: _predId('household'),
91
+ };
92
+ const KNOWN_DERIVED_TYPES = new Set(DERIVED_AGENT_TYPES);
93
+ export function encodeAgentType(value) {
94
+ if (!KNOWN_DERIVED_TYPES.has(value)) {
95
+ throw new Error(`[agent-naming/records] agent-type must be one of ${DERIVED_AGENT_TYPES.join('|')} (got "${value}")`);
96
+ }
97
+ return AGENT_TYPE_ID[value];
98
+ }
99
+ /**
100
+ * Encodings a chain already carries for a type since RENAMED. `.workspace` agents declared before
101
+ * 2026-08-31 hold `keccak256("workspace-coordinator")`; decoding must honour that or a correctly typed
102
+ * agent reads as untyped. `encodeAgentType` never consults this — writes only ever use the current
103
+ * name. Append only.
104
+ */
105
+ const LEGACY_AGENT_TYPE_ID = Object.freeze({
106
+ [_predId('workspace-coordinator').toLowerCase()]: 'workspace',
107
+ });
108
+ export function decodeAgentType(id) {
109
+ for (const [name, value] of Object.entries(AGENT_TYPE_ID)) {
110
+ if (value.toLowerCase() === id.toLowerCase())
111
+ return name;
112
+ }
113
+ return LEGACY_AGENT_TYPE_ID[id.toLowerCase()];
114
+ }
69
115
  // ─── Connection-kind enum ids (spec 280; mirror AgentNamePredicates.sol) ──
70
116
  export const CONNECTION_KIND_ID = {
71
117
  wallet: _predId('wallet'),
@@ -92,6 +138,8 @@ export const CLASS_AGENT_NAME = _predId('atl:AgentName');
92
138
  export const AGENT_KIND_ENUM = _predId('atl:AgentKindEnum');
93
139
  /** `keccak256("atl:ConnectionKindEnum")` — the enum-set id bound to `atl:connectionKind`. */
94
140
  export const CONNECTION_KIND_ENUM = _predId('atl:ConnectionKindEnum');
141
+ /** `keccak256("atl:AgentTypeEnum")` — the enum-set id bound to `atl:agentType` (spec 346). */
142
+ export const AGENT_TYPE_ENUM = _predId('atl:AgentTypeEnum');
95
143
  // ─── CAIP-10 namespace allowlist (ADR-0008) ────────────────────────
96
144
  /**
97
145
  * Phase 1 CAIP-10 namespace allowlist for `nativeId`. Strict on
@@ -146,6 +194,12 @@ export function encodeRecords(records) {
146
194
  if (records.metadataHash !== undefined) {
147
195
  out.push({ predicate: PREDICATE_ID.metadataHash, datatype: 'bytes32', value: _validateBytes32(records.metadataHash) });
148
196
  }
197
+ if (records.cardDigest !== undefined) {
198
+ out.push({ predicate: PREDICATE_ID.cardDigest, datatype: 'bytes32', value: _validateBytes32(records.cardDigest) });
199
+ }
200
+ if (records.cardUri !== undefined) {
201
+ out.push({ predicate: PREDICATE_ID.cardUri, datatype: 'string', value: records.cardUri });
202
+ }
149
203
  if (records.passkeyCredentialDigest !== undefined) {
150
204
  out.push({ predicate: PREDICATE_ID.passkeyCredentialDigest, datatype: 'bytes32', value: _validateBytes32(records.passkeyCredentialDigest) });
151
205
  }
@@ -170,7 +224,7 @@ export function decodeRecords(input) {
170
224
  out.addr = addr;
171
225
  const kind = input.bytes32s[PREDICATE_ID.agentKind];
172
226
  if (kind) {
173
- const k = _decodeAgentKind(kind);
227
+ const k = decodeAgentKind(kind);
174
228
  if (k)
175
229
  out.agentKind = k;
176
230
  }
@@ -204,6 +258,12 @@ export function decodeRecords(input) {
204
258
  const metadataHash = input.bytes32s[PREDICATE_ID.metadataHash];
205
259
  if (metadataHash)
206
260
  out.metadataHash = metadataHash;
261
+ const cardDigest = input.bytes32s[PREDICATE_ID.cardDigest];
262
+ if (cardDigest)
263
+ out.cardDigest = cardDigest;
264
+ const cardUri = input.strings[PREDICATE_ID.cardUri];
265
+ if (cardUri)
266
+ out.cardUri = cardUri;
207
267
  const digest = input.bytes32s[PREDICATE_ID.passkeyCredentialDigest];
208
268
  if (digest)
209
269
  out.passkeyCredentialDigest = digest;
@@ -243,7 +303,7 @@ function _encodeAgentKind(value) {
243
303
  }
244
304
  return AGENT_KIND_ID[value];
245
305
  }
246
- function _decodeAgentKind(id) {
306
+ export function decodeAgentKind(id) {
247
307
  for (const [name, value] of Object.entries(AGENT_KIND_ID)) {
248
308
  if (value.toLowerCase() === id.toLowerCase())
249
309
  return name;
@@ -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
@@ -52,6 +53,14 @@ export interface AgentNameRecords {
52
53
  description?: string;
53
54
  /** Off-chain JSON manifest URL. */
54
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;
55
64
  /**
56
65
  * Public-safe identifier for the controlling passkey
57
66
  * (`keccak256(credentialId)` — NEVER raw credentialId).
@@ -151,5 +160,55 @@ export interface AgentNamingClientOpts {
151
160
  registry: Address;
152
161
  /** AgentNameUniversalResolver contract address for this chain. */
153
162
  universalResolver: Address;
163
+ /**
164
+ * AgentProfileResolver address — where the SA-keyed `atl:agentType` / `atl:serviceRole` records live
165
+ * (spec 346 §2.3). Required by `resolveTyped` / `readDerivedType`; those throw a configuration error
166
+ * when it is absent (never a silent downgrade to an untyped read — ADR-0013).
167
+ */
168
+ profileResolver?: Address;
169
+ /** Per-suffix `PermissionlessSubregistry` addresses (deployment JSON `permissionlessSubregistries`), generic + vertical. */
170
+ subregistries?: Partial<Record<string, Address>>;
171
+ }
172
+ /** The SA-keyed derived-type declaration (spec 346 §2.3). */
173
+ export interface DerivedTypeRecord {
174
+ agentType: DerivedAgentType | null;
175
+ serviceRole: string | null;
176
+ /** `atl:agentSubtype` — the vertical subtype (spec 346 §2.4), when declared. */
177
+ agentSubtype: string | null;
178
+ /** `atl:agentKind` on the profile subject (root), when set. */
179
+ agentKind: AgentKind | null;
180
+ }
181
+ /**
182
+ * Result of `AgentNamingClient.resolveTyped`: a name whose suffix, on-chain derived-type record and root
183
+ * kind all agree (`typeConsistent: true`). Legacy names carry `legacy: true` and whatever derived type the
184
+ * record declares (possibly `null`) — they are never suffix-validated (spec 346 §3.5).
185
+ */
186
+ export interface TypedNameRecord {
187
+ /** Canonical display form (`x.t` / `x.t@c.u`). */
188
+ name: string;
189
+ onChainName: string;
190
+ node: Hex;
191
+ address: Address;
192
+ tld: AgentTld | LegacyTld | (string & {}) | null;
193
+ derivedType: DerivedAgentType | null;
194
+ /** Vertical subtype named by the suffix (spec 346 §2.4), when any. */
195
+ subtype: string | null;
196
+ root: AgentType | null;
197
+ serviceRole: string | null;
198
+ legacy: boolean;
199
+ typeConsistent: boolean;
200
+ /** Present for scoped / contextual names. */
201
+ context?: {
202
+ name: string;
203
+ derivedType: DerivedAgentType;
204
+ };
154
205
  }
206
+ export type TypedNameCheck = {
207
+ ok: true;
208
+ record: TypedNameRecord;
209
+ } | {
210
+ ok: false;
211
+ reason: 'unregistered' | 'type_mismatch' | 'type_undeclared' | 'kind_mismatch' | 'role_required' | 'subtype_mismatch' | 'not_typed' | 'label_reads_as_type';
212
+ detail?: string;
213
+ };
155
214
  //# 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;;;;;GAKG;AAKH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1G,oGAAoG;AACpG,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEhD,sDAAsD;AACtD,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElE;;;;;;;;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,iDAAiD;IACjD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,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;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;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"}