@agenticprimitives/agent-profile 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 (85) hide show
  1. package/README.md +54 -6
  2. package/dist/a2a/binding.d.ts +99 -0
  3. package/dist/a2a/binding.d.ts.map +1 -0
  4. package/dist/a2a/binding.js +142 -0
  5. package/dist/a2a/binding.js.map +1 -0
  6. package/dist/a2a/canonical.d.ts +31 -0
  7. package/dist/a2a/canonical.d.ts.map +1 -0
  8. package/dist/a2a/canonical.js +43 -0
  9. package/dist/a2a/canonical.js.map +1 -0
  10. package/dist/a2a/field-binding.d.ts +125 -0
  11. package/dist/a2a/field-binding.d.ts.map +1 -0
  12. package/dist/a2a/field-binding.js +242 -0
  13. package/dist/a2a/field-binding.js.map +1 -0
  14. package/dist/a2a/import.d.ts +39 -0
  15. package/dist/a2a/import.d.ts.map +1 -0
  16. package/dist/a2a/import.js +134 -0
  17. package/dist/a2a/import.js.map +1 -0
  18. package/dist/a2a/index.d.ts +13 -0
  19. package/dist/a2a/index.d.ts.map +1 -0
  20. package/dist/a2a/index.js +24 -0
  21. package/dist/a2a/index.js.map +1 -0
  22. package/dist/a2a/jws.d.ts +76 -0
  23. package/dist/a2a/jws.d.ts.map +1 -0
  24. package/dist/a2a/jws.js +186 -0
  25. package/dist/a2a/jws.js.map +1 -0
  26. package/dist/a2a/playbook-binding.d.ts +29 -0
  27. package/dist/a2a/playbook-binding.d.ts.map +1 -0
  28. package/dist/a2a/playbook-binding.js +65 -0
  29. package/dist/a2a/playbook-binding.js.map +1 -0
  30. package/dist/a2a/pointer.d.ts +13 -0
  31. package/dist/a2a/pointer.d.ts.map +1 -0
  32. package/dist/a2a/pointer.js +78 -0
  33. package/dist/a2a/pointer.js.map +1 -0
  34. package/dist/a2a/release.d.ts +77 -0
  35. package/dist/a2a/release.d.ts.map +1 -0
  36. package/dist/a2a/release.js +197 -0
  37. package/dist/a2a/release.js.map +1 -0
  38. package/dist/a2a/types.d.ts +312 -0
  39. package/dist/a2a/types.d.ts.map +1 -0
  40. package/dist/a2a/types.js +32 -0
  41. package/dist/a2a/types.js.map +1 -0
  42. package/dist/a2a/validation.d.ts +81 -0
  43. package/dist/a2a/validation.d.ts.map +1 -0
  44. package/dist/a2a/validation.js +477 -0
  45. package/dist/a2a/validation.js.map +1 -0
  46. package/dist/calls.d.ts +12 -0
  47. package/dist/calls.d.ts.map +1 -1
  48. package/dist/calls.js +16 -0
  49. package/dist/calls.js.map +1 -1
  50. package/dist/card.d.ts +12 -6
  51. package/dist/card.d.ts.map +1 -1
  52. package/dist/card.js +12 -6
  53. package/dist/card.js.map +1 -1
  54. package/dist/client.d.ts +4 -4
  55. package/dist/client.d.ts.map +1 -1
  56. package/dist/client.js +20 -2
  57. package/dist/client.js.map +1 -1
  58. package/dist/constants.d.ts +23 -1
  59. package/dist/constants.d.ts.map +1 -1
  60. package/dist/constants.js +30 -1
  61. package/dist/constants.js.map +1 -1
  62. package/dist/derived-type.d.ts +14 -0
  63. package/dist/derived-type.d.ts.map +1 -0
  64. package/dist/derived-type.js +56 -0
  65. package/dist/derived-type.js.map +1 -0
  66. package/dist/distribution.d.ts +32 -0
  67. package/dist/distribution.d.ts.map +1 -0
  68. package/dist/distribution.js +167 -0
  69. package/dist/distribution.js.map +1 -0
  70. package/dist/errors.d.ts +6 -0
  71. package/dist/errors.d.ts.map +1 -1
  72. package/dist/errors.js +11 -0
  73. package/dist/errors.js.map +1 -1
  74. package/dist/index.d.ts +7 -5
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +12 -5
  77. package/dist/index.js.map +1 -1
  78. package/dist/profile.d.ts +4 -4
  79. package/dist/profile.d.ts.map +1 -1
  80. package/dist/profile.js +12 -1
  81. package/dist/profile.js.map +1 -1
  82. package/dist/types.d.ts +104 -7
  83. package/dist/types.d.ts.map +1 -1
  84. package/package.json +13 -6
  85. package/spec.md +5 -1
@@ -0,0 +1,167 @@
1
+ /**
2
+ * `AgentDistributionV1` — validation + on-chain string encoding (spec 347 §8.5;
3
+ * `docs/architecture/ard-acp-crosswalk.md` §2–§3).
4
+ *
5
+ * Pure. The wire form is the RFC 8785 (JCS) canonical JSON string of the object, stored as the SA-keyed
6
+ * `atl:distribution` string property; two semantically-equal distributions encode to identical bytes.
7
+ * The rules mirror the ACP registry `agent.schema.json` `distribution` definitions exactly (field names,
8
+ * platform enum, `additionalProperties:false`, `minProperties:1`, sha256 pattern) plus the two AP-owned
9
+ * fields (`acp`, `version`) and the schema's prose rule that installer archives are unsupported.
10
+ *
11
+ * `decodeDistribution` is fail-closed: anything that is not a valid `AgentDistributionV1` is `null` —
12
+ * an unreadable record is an answer, never a trigger to guess (ADR-0013).
13
+ */
14
+ import { jcsCanonicalize } from '@agenticprimitives/types';
15
+ import { ACP_PLATFORMS } from './constants.js';
16
+ import { InvalidProfileError } from './errors.js';
17
+ const SHA256_HEX = /^[a-fA-F0-9]{64}$/;
18
+ const SEMVER_PREFIX = /^[0-9]+\.[0-9]+\.[0-9]+/;
19
+ /** Installer formats the ACP schema says are NOT supported for `archive`. */
20
+ const INSTALLER_EXTENSIONS = ['.dmg', '.pkg', '.deb', '.rpm'];
21
+ const TOP_LEVEL_KEYS = new Set(['acp', 'version', 'npx', 'uvx', 'binary']);
22
+ const PACKAGE_KEYS = new Set(['package', 'args', 'env']);
23
+ const BINARY_TARGET_KEYS = new Set(['archive', 'cmd', 'sha256', 'args', 'env']);
24
+ const PLATFORM_SET = new Set(ACP_PLATFORMS);
25
+ const isPlainObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
26
+ /**
27
+ * Validate a candidate `AgentDistributionV1`. Returns `[]` when valid, else one human-readable issue per
28
+ * violation (JSON-pointer-ish `path: reason`). Never throws; accepts `unknown` so a decoded record can be
29
+ * checked before it is trusted as the type.
30
+ */
31
+ export function validateDistribution(d) {
32
+ const issues = [];
33
+ if (!isPlainObject(d))
34
+ return ['distribution: must be an object'];
35
+ for (const k of Object.keys(d)) {
36
+ if (!TOP_LEVEL_KEYS.has(k))
37
+ issues.push(`distribution.${k}: unknown property`);
38
+ }
39
+ if (d.acp !== undefined && typeof d.acp !== 'boolean')
40
+ issues.push('distribution.acp: must be a boolean');
41
+ if (d.version !== undefined) {
42
+ if (typeof d.version !== 'string' || !SEMVER_PREFIX.test(d.version)) {
43
+ issues.push('distribution.version: must be a semver string (MAJOR.MINOR.PATCH)');
44
+ }
45
+ }
46
+ if (d.npx !== undefined)
47
+ issues.push(...validatePackage(d.npx, 'distribution.npx'));
48
+ if (d.uvx !== undefined)
49
+ issues.push(...validatePackage(d.uvx, 'distribution.uvx'));
50
+ if (d.binary !== undefined)
51
+ issues.push(...validateBinary(d.binary));
52
+ if (d.npx === undefined && d.uvx === undefined && d.binary === undefined) {
53
+ issues.push('distribution: at least one of npx, uvx, binary is required');
54
+ }
55
+ return issues;
56
+ }
57
+ function validateArgsEnv(o, path) {
58
+ const issues = [];
59
+ if (o.args !== undefined) {
60
+ if (!Array.isArray(o.args) || !o.args.every((a) => typeof a === 'string')) {
61
+ issues.push(`${path}.args: must be an array of strings`);
62
+ }
63
+ }
64
+ if (o.env !== undefined) {
65
+ if (!isPlainObject(o.env))
66
+ issues.push(`${path}.env: must be an object of string values`);
67
+ else {
68
+ for (const [k, v] of Object.entries(o.env)) {
69
+ if (typeof v !== 'string')
70
+ issues.push(`${path}.env.${k}: must be a string`);
71
+ }
72
+ }
73
+ }
74
+ return issues;
75
+ }
76
+ function validatePackage(p, path) {
77
+ if (!isPlainObject(p))
78
+ return [`${path}: must be an object`];
79
+ const issues = [];
80
+ for (const k of Object.keys(p))
81
+ if (!PACKAGE_KEYS.has(k))
82
+ issues.push(`${path}.${k}: unknown property`);
83
+ if (typeof p.package !== 'string' || p.package.length === 0)
84
+ issues.push(`${path}.package: must be a non-empty string`);
85
+ issues.push(...validateArgsEnv(p, path));
86
+ return issues;
87
+ }
88
+ function validateBinary(b) {
89
+ const path = 'distribution.binary';
90
+ if (!isPlainObject(b))
91
+ return [`${path}: must be an object`];
92
+ const issues = [];
93
+ const keys = Object.keys(b);
94
+ if (keys.length === 0)
95
+ issues.push(`${path}: at least one platform target is required`);
96
+ for (const platform of keys) {
97
+ const tp = `${path}.${platform}`;
98
+ if (!PLATFORM_SET.has(platform)) {
99
+ issues.push(`${tp}: unknown platform (allowed: ${ACP_PLATFORMS.join(', ')})`);
100
+ continue;
101
+ }
102
+ const t = b[platform];
103
+ if (!isPlainObject(t)) {
104
+ issues.push(`${tp}: must be an object`);
105
+ continue;
106
+ }
107
+ for (const k of Object.keys(t))
108
+ if (!BINARY_TARGET_KEYS.has(k))
109
+ issues.push(`${tp}.${k}: unknown property`);
110
+ issues.push(...validateArchive(t.archive, `${tp}.archive`));
111
+ if (typeof t.cmd !== 'string' || t.cmd.length === 0)
112
+ issues.push(`${tp}.cmd: must be a non-empty string`);
113
+ if (t.sha256 !== undefined && (typeof t.sha256 !== 'string' || !SHA256_HEX.test(t.sha256))) {
114
+ issues.push(`${tp}.sha256: must be 64 hex characters`);
115
+ }
116
+ issues.push(...validateArgsEnv(t, tp));
117
+ }
118
+ return issues;
119
+ }
120
+ function validateArchive(archive, path) {
121
+ if (typeof archive !== 'string' || archive.length === 0)
122
+ return [`${path}: must be a non-empty string`];
123
+ let url;
124
+ try {
125
+ url = new URL(archive);
126
+ }
127
+ catch {
128
+ return [`${path}: must be an absolute URL`];
129
+ }
130
+ if (url.protocol !== 'https:')
131
+ return [`${path}: must be https`];
132
+ const lower = url.pathname.toLowerCase();
133
+ const installer = INSTALLER_EXTENSIONS.find((ext) => lower.endsWith(ext));
134
+ if (installer)
135
+ return [`${path}: installer format ${installer} is not supported (use an archive or raw binary)`];
136
+ return [];
137
+ }
138
+ /**
139
+ * The on-chain string form: RFC 8785 JCS of the validated object (sorted keys, no whitespace,
140
+ * `undefined` members omitted). Throws `InvalidProfileError` on any validation issue — the write path is
141
+ * fail-loud, so an invalid distribution never reaches the chain.
142
+ */
143
+ export function encodeDistribution(d) {
144
+ const issues = validateDistribution(d);
145
+ if (issues.length)
146
+ throw new InvalidProfileError(issues.join('; '), 'distribution');
147
+ return jcsCanonicalize(d);
148
+ }
149
+ /**
150
+ * Parse an on-chain / KB `atl:distribution` string. Fail-closed: not JSON, not an object, or any
151
+ * validation issue ⇒ `null`. Never throws.
152
+ */
153
+ export function decodeDistribution(s) {
154
+ if (typeof s !== 'string' || s.length === 0)
155
+ return null;
156
+ let parsed;
157
+ try {
158
+ parsed = JSON.parse(s);
159
+ }
160
+ catch {
161
+ return null;
162
+ }
163
+ if (validateDistribution(parsed).length)
164
+ return null;
165
+ return parsed;
166
+ }
167
+ //# sourceMappingURL=distribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../src/distribution.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -19,4 +19,10 @@ export declare class InvalidCaip10Error extends Error {
19
19
  readonly reason: string;
20
20
  constructor(value: string, reason: string);
21
21
  }
22
+ /** `publishProfile` refused: the card's `type` disagrees with the SA's on-chain `atl:agentType` (spec 346 §3.6 step 5). */
23
+ export declare class ProfileTypeMismatchError extends Error {
24
+ readonly profileType: string;
25
+ readonly declaredType: string;
26
+ constructor(profileType: string, declaredType: string);
27
+ }
22
28
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;gBAAvC,MAAM,EAAE,MAAM,EAAW,KAAK,CAAC,EAAE,MAAM,YAAA;CAO7D;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAzC,QAAQ,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAM/D;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAlE,MAAM,EAAE,MAAM,EAAW,QAAQ,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAIxF;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAtC,KAAK,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAI5D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;gBAAvC,MAAM,EAAE,MAAM,EAAW,KAAK,CAAC,EAAE,MAAM,YAAA;CAO7D;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAzC,QAAQ,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAM/D;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAlE,MAAM,EAAE,MAAM,EAAW,QAAQ,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAIxF;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAtC,KAAK,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAI5D;AAED,2HAA2H;AAC3H,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM;IAAE,QAAQ,CAAC,YAAY,EAAE,MAAM;gBAAlD,WAAW,EAAE,MAAM,EAAW,YAAY,EAAE,MAAM;CAIxE"}
package/dist/errors.js CHANGED
@@ -41,4 +41,15 @@ export class InvalidCaip10Error extends Error {
41
41
  this.name = 'InvalidCaip10Error';
42
42
  }
43
43
  }
44
+ /** `publishProfile` refused: the card's `type` disagrees with the SA's on-chain `atl:agentType` (spec 346 §3.6 step 5). */
45
+ export class ProfileTypeMismatchError extends Error {
46
+ profileType;
47
+ declaredType;
48
+ constructor(profileType, declaredType) {
49
+ super(`[agent-profile] profile type "${profileType}" is inconsistent with the agent's declared derived type "${declaredType}"`);
50
+ this.profileType = profileType;
51
+ this.declaredType = declaredType;
52
+ this.name = 'ProfileTypeMismatchError';
53
+ }
54
+ }
44
55
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACvB;IAAyB;IAA9C,YAAqB,MAAc,EAAW,KAAc;QAC1D,KAAK,CACH,oCAAoC,MAAM,EAAE;YAC1C,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACtC,CAAC;QAJiB,WAAM,GAAN,MAAM,CAAQ;QAAW,UAAK,GAAL,KAAK,CAAS;QAK1D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC5B;IAA2B;IAAhD,YAAqB,QAAgB,EAAW,MAAc;QAC5D,KAAK,CACH,4DAA4D,QAAQ,gBAAgB,MAAM,EAAE,CAC7F,CAAC;QAHiB,aAAQ,GAAR,QAAQ,CAAQ;QAAW,WAAM,GAAN,MAAM,CAAQ;QAI5D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAC7B;IAAyB;IAA2B;IAAzE,YAAqB,MAAc,EAAW,QAAgB,EAAW,MAAc;QACrF,KAAK,CAAC,mBAAmB,MAAM,4BAA4B,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;QAD/D,WAAM,GAAN,MAAM,CAAQ;QAAW,aAAQ,GAAR,QAAQ,CAAQ;QAAW,WAAM,GAAN,MAAM,CAAQ;QAErF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACtB;IAAwB;IAA7C,YAAqB,KAAa,EAAW,MAAc;QACzD,KAAK,CAAC,oCAAoC,KAAK,MAAM,MAAM,EAAE,CAAC,CAAC;QAD5C,UAAK,GAAL,KAAK,CAAQ;QAAW,WAAM,GAAN,MAAM,CAAQ;QAEzD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACvB;IAAyB;IAA9C,YAAqB,MAAc,EAAW,KAAc;QAC1D,KAAK,CACH,oCAAoC,MAAM,EAAE;YAC1C,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACtC,CAAC;QAJiB,WAAM,GAAN,MAAM,CAAQ;QAAW,UAAK,GAAL,KAAK,CAAS;QAK1D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC5B;IAA2B;IAAhD,YAAqB,QAAgB,EAAW,MAAc;QAC5D,KAAK,CACH,4DAA4D,QAAQ,gBAAgB,MAAM,EAAE,CAC7F,CAAC;QAHiB,aAAQ,GAAR,QAAQ,CAAQ;QAAW,WAAM,GAAN,MAAM,CAAQ;QAI5D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAC7B;IAAyB;IAA2B;IAAzE,YAAqB,MAAc,EAAW,QAAgB,EAAW,MAAc;QACrF,KAAK,CAAC,mBAAmB,MAAM,4BAA4B,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;QAD/D,WAAM,GAAN,MAAM,CAAQ;QAAW,aAAQ,GAAR,QAAQ,CAAQ;QAAW,WAAM,GAAN,MAAM,CAAQ;QAErF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACtB;IAAwB;IAA7C,YAAqB,KAAa,EAAW,MAAc;QACzD,KAAK,CAAC,oCAAoC,KAAK,MAAM,MAAM,EAAE,CAAC,CAAC;QAD5C,UAAK,GAAL,KAAK,CAAQ;QAAW,WAAM,GAAN,MAAM,CAAQ;QAEzD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,2HAA2H;AAC3H,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC5B;IAA8B;IAAnD,YAAqB,WAAmB,EAAW,YAAoB;QACrE,KAAK,CAAC,iCAAiC,WAAW,6DAA6D,YAAY,GAAG,CAAC,CAAC;QAD7G,gBAAW,GAAX,WAAW,CAAQ;QAAW,iBAAY,GAAZ,YAAY,CAAQ;QAErE,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
- export { CAIP10_NAMESPACE_ALLOWLIST, AGENT_CARD_SCHEMA_VERSION, AUTH_ORIGIN, } from './constants.js';
1
+ export { CAIP10_NAMESPACE_ALLOWLIST, AGENT_CARD_SCHEMA_VERSION, AUTH_ORIGIN, AGENT_TYPE, SERVICE_ROLE, DISTRIBUTION, ACP_PLATFORMS, } from './constants.js';
2
+ export { validateDistribution, encodeDistribution, decodeDistribution, } from './distribution.js';
3
+ export { derivedTypeId, decodeDerivedTypeId, profileTypesForDerivedType, isProfileTypeConsistent, } from './derived-type.js';
2
4
  export { buildCaip10Address, parseCaip10, isValidCaip10, type Caip10Parts, } from './caip10.js';
3
5
  export { canonicalProfileJson, profileContentHash, } from './profile.js';
4
- export { hashAgentCard, buildSignedAgentCardBundle, verifySignedAgentCardBundle, type Erc1271Verifier, type SmartAgentCardSigner, type BuildSignedAgentCardInput, type VerifySignedAgentCardResult, } from './card.js';
5
- export { InvalidProfileError, ProfileHashMismatchError, EndpointVerificationError, InvalidCaip10Error, } from './errors.js';
6
- export type { ProfileType, Caip10Address, VerificationMethod, AiAgentProfile, McpServerProfile, MultisigProfile, ServiceProfile, AgentCard, Sha256, SignedAgentCardBundleV1, AgentIdentityClientOpts, PublishProfileInput, } from './types.js';
6
+ export { hashCanonicalProfile, buildSignedCanonicalProfileBundle, verifySignedCanonicalProfileBundle, hashAgentCard, buildSignedAgentCardBundle, verifySignedAgentCardBundle, type Erc1271Verifier, type SmartAgentCardSigner, type BuildSignedAgentCardInput, type VerifySignedAgentCardResult, } from './card.js';
7
+ export { InvalidProfileError, ProfileHashMismatchError, EndpointVerificationError, InvalidCaip10Error, ProfileTypeMismatchError, } from './errors.js';
8
+ export type { ProfileType, Caip10Address, VerificationMethod, AiAgentProfile, McpServerProfile, MultisigProfile, ServiceProfile, CanonicalAgentProfileV1, AcpPlatform, AgentPackageDistributionV1, AgentBinaryTargetV1, AgentDistributionV1, ProtocolFeatureSetV1, Sha256, SignedCanonicalProfileBundleV1, AgentCard, SignedAgentCardBundleV1, AgentIdentityClientOpts, PublishProfileInput, } from './types.js';
7
9
  export { AgentIdentityClient, type WriteContext } from './client.js';
8
10
  export { agentProfileResolverAbi } from './abis.js';
9
- export { buildRegisterProfileCall, buildSetProfileMetadataCall, buildSetProfileStringCall, buildSetProfileAddressCall, buildSetProfileBytes32Call, buildSetProfileActiveCall, type ContractCall, } from './calls.js';
11
+ export { buildRegisterProfileCall, buildSetProfileMetadataCall, buildSetProfileStringCall, buildSetDistributionCall, buildSetProfileAddressCall, buildSetProfileBytes32Call, buildSetProfileActiveCall, type ContractCall, } from './calls.js';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,GACjC,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,SAAS,EACT,MAAM,EACN,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAMrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAIpD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,oBAAoB,EACpB,iCAAiC,EACjC,kCAAkC,EAElC,aAAa,EACb,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,GACjC,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,EACN,8BAA8B,EAE9B,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAMrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAIpD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -6,12 +6,19 @@
6
6
  // - specs/217-agent-profile.md — the contract
7
7
  // - docs/architecture/decisions/0007-agent-identity-stack-three-packages.md
8
8
  // - docs/architecture/decisions/0008-caip10-nativeid-record-predicate.md
9
- export { CAIP10_NAMESPACE_ALLOWLIST, AGENT_CARD_SCHEMA_VERSION, AUTH_ORIGIN, } from './constants.js';
9
+ export { CAIP10_NAMESPACE_ALLOWLIST, AGENT_CARD_SCHEMA_VERSION, AUTH_ORIGIN, AGENT_TYPE, SERVICE_ROLE, DISTRIBUTION, ACP_PLATFORMS, } from './constants.js';
10
+ // `distribution` canonical-profile fact (spec 347 §8.5): how to obtain + run the agent's software.
11
+ export { validateDistribution, encodeDistribution, decodeDistribution, } from './distribution.js';
12
+ // Derived-type consistency (spec 346 §2.3 / §6.2).
13
+ export { derivedTypeId, decodeDerivedTypeId, profileTypesForDerivedType, isProfileTypeConsistent, } from './derived-type.js';
10
14
  export { buildCaip10Address, parseCaip10, isValidCaip10, } from './caip10.js';
11
15
  export { canonicalProfileJson, profileContentHash, } from './profile.js';
12
- // Signed agent card bundle (spec 279 §3.2) — prove `cardHash → subjectAgent` without trusting the server.
13
- export { hashAgentCard, buildSignedAgentCardBundle, verifySignedAgentCardBundle, } from './card.js';
14
- export { InvalidProfileError, ProfileHashMismatchError, EndpointVerificationError, InvalidCaip10Error, } from './errors.js';
16
+ // Signed canonical-profile bundle (spec 279 §3.2) — prove `cardHash → subjectAgent` without trusting the
17
+ // server. NOT the A2A Agent Card: that is `@agenticprimitives/agent-profile/a2a` (spec 347 §4).
18
+ export { hashCanonicalProfile, buildSignedCanonicalProfileBundle, verifySignedCanonicalProfileBundle,
19
+ // @deprecated pre-spec-347 names (one release).
20
+ hashAgentCard, buildSignedAgentCardBundle, verifySignedAgentCardBundle, } from './card.js';
21
+ export { InvalidProfileError, ProfileHashMismatchError, EndpointVerificationError, InvalidCaip10Error, ProfileTypeMismatchError, } from './errors.js';
15
22
  export { AgentIdentityClient } from './client.js';
16
23
  // Phase 3 contract ABIs (live at deployed addresses recorded in
17
24
  // packages/contracts/deployments-<network>.json). Profile resolver
@@ -20,5 +27,5 @@ export { AgentIdentityClient } from './client.js';
20
27
  export { agentProfileResolverAbi } from './abis.js';
21
28
  // Phase 4 pure call builders. Compose into AgentAccount.execute /
22
29
  // CustodyPolicy ceremonies / ERC-4337 UserOps as needed.
23
- export { buildRegisterProfileCall, buildSetProfileMetadataCall, buildSetProfileStringCall, buildSetProfileAddressCall, buildSetProfileBytes32Call, buildSetProfileActiveCall, } from './calls.js';
30
+ export { buildRegisterProfileCall, buildSetProfileMetadataCall, buildSetProfileStringCall, buildSetDistributionCall, buildSetProfileAddressCall, buildSetProfileBytes32Call, buildSetProfileActiveCall, } from './calls.js';
24
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,OAAO;AACP,0CAA0C;AAC1C,2BAA2B;AAC3B,gDAAgD;AAChD,8EAA8E;AAC9E,2EAA2E;AAE3E,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GAEd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,0GAA0G;AAC1G,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,2BAA2B,GAK5B,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAiBrB,OAAO,EAAE,mBAAmB,EAAqB,MAAM,aAAa,CAAC;AAErE,gEAAgE;AAChE,mEAAmE;AACnE,+DAA+D;AAC/D,0CAA0C;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,kEAAkE;AAClE,yDAAyD;AACzD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAE1B,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,OAAO;AACP,0CAA0C;AAC1C,2BAA2B;AAC3B,gDAAgD;AAChD,8EAA8E;AAC9E,2EAA2E;AAE3E,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,mGAAmG;AACnG,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,mDAAmD;AACnD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GAEd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,yGAAyG;AACzG,gGAAgG;AAChG,OAAO,EACL,oBAAoB,EACpB,iCAAiC,EACjC,kCAAkC;AAClC,gDAAgD;AAChD,aAAa,EACb,0BAA0B,EAC1B,2BAA2B,GAK5B,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAyBrB,OAAO,EAAE,mBAAmB,EAAqB,MAAM,aAAa,CAAC;AAErE,gEAAgE;AAChE,mEAAmE;AACnE,+DAA+D;AAC/D,0CAA0C;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,kEAAkE;AAClE,yDAAyD;AACzD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAE1B,MAAM,YAAY,CAAC"}
package/dist/profile.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Canonical-JSON serialization + content-hash for AgentCard profiles.
2
+ * Canonical-JSON serialization + content-hash for CanonicalAgentProfileV1 profiles (the AP-native profile — NOT the A2A card).
3
3
  *
4
4
  * Subpath: `@agenticprimitives/agent-profile/profile`.
5
5
  *
@@ -7,7 +7,7 @@
7
7
  * in agent-naming. Two semantically-equal profiles MUST produce the
8
8
  * same hash — sort keys, fixed numeric format, no whitespace.
9
9
  */
10
- import type { AgentCard } from './types.js';
10
+ import type { CanonicalAgentProfileV1 } from './types.js';
11
11
  /**
12
12
  * Canonical-JSON encoding. Sorts object keys recursively, omits
13
13
  * `undefined`, refuses non-finite numbers, refuses functions.
@@ -15,11 +15,11 @@ import type { AgentCard } from './types.js';
15
15
  * Note: `JSON.stringify` does NOT sort keys, so we do it manually.
16
16
  * Arrays preserve insertion order (semantically meaningful).
17
17
  */
18
- export declare function canonicalProfileJson(profile: AgentCard): string;
18
+ export declare function canonicalProfileJson(profile: CanonicalAgentProfileV1): string;
19
19
  /**
20
20
  * Keccak-256 of the canonical-JSON encoding of a profile. Matches
21
21
  * the `metadata-hash` predicate in `agent-naming/records`. Stable
22
22
  * across runtimes — UTF-8 byte-level deterministic.
23
23
  */
24
- export declare function profileContentHash(profile: AgentCard): `0x${string}`;
24
+ export declare function profileContentHash(profile: CanonicalAgentProfileV1): `0x${string}`;
25
25
  //# sourceMappingURL=profile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAI/D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,KAAK,MAAM,EAAE,CAGpE"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAI7E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,KAAK,MAAM,EAAE,CAGlF"}
package/dist/profile.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Canonical-JSON serialization + content-hash for AgentCard profiles.
2
+ * Canonical-JSON serialization + content-hash for CanonicalAgentProfileV1 profiles (the AP-native profile — NOT the A2A card).
3
3
  *
4
4
  * Subpath: `@agenticprimitives/agent-profile/profile`.
5
5
  *
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { keccak256, toHex } from 'viem';
11
11
  import { AGENT_CARD_SCHEMA_VERSION } from './constants.js';
12
+ import { validateDistribution } from './distribution.js';
12
13
  import { InvalidProfileError } from './errors.js';
13
14
  /**
14
15
  * Canonical-JSON encoding. Sorts object keys recursively, omits
@@ -42,6 +43,10 @@ function validateProfile(profile) {
42
43
  switch (profile.type) {
43
44
  case 'person':
44
45
  case 'org':
46
+ case 'team':
47
+ case 'alliance':
48
+ case 'church':
49
+ case 'circle':
45
50
  case 'service':
46
51
  case 'treasury':
47
52
  case 'mcpServer':
@@ -50,6 +55,12 @@ function validateProfile(profile) {
50
55
  default:
51
56
  throw new InvalidProfileError(`unknown profile.type "${profile.type}"`, 'type');
52
57
  }
58
+ // spec 347 §8.5 — an invalid `distribution` never reaches the content hash / the chain (fail-loud on write).
59
+ if (profile.distribution !== undefined) {
60
+ const issues = validateDistribution(profile.distribution);
61
+ if (issues.length)
62
+ throw new InvalidProfileError(issues.join('; '), 'distribution');
63
+ }
53
64
  if (profile.type === 'mcpServer') {
54
65
  if (typeof profile.endpoint !== 'string' || profile.endpoint.length === 0) {
55
66
  throw new InvalidProfileError('mcpServer profile requires endpoint', 'endpoint');
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { Address, Hex, Caip10Address } from '@agenticprimitives/types';
1
+ import type { Address, Hex, Caip10Address, AdvertisedCapabilityV1 } from '@agenticprimitives/types';
2
+ import type { A2AAgentExtensionV1 } from './a2a/types.js';
2
3
  export type { Caip10Address };
3
4
  /**
4
5
  * Discriminator for AP-native AgentCard sub-shapes. Borrows the useful
@@ -11,7 +12,7 @@ export type { Caip10Address };
11
12
  * (b) handling in `canonicalProfileJson`, (c) a golden vector test
12
13
  * in `test/profile.test.ts`.
13
14
  */
14
- export type ProfileType = 'person' | 'org' | 'service' | 'treasury' | 'mcpServer' | 'multisig';
15
+ export type ProfileType = 'person' | 'org' | 'team' | 'alliance' | 'church' | 'circle' | 'household' | 'service' | 'treasury' | 'mcpServer' | 'multisig';
15
16
  /**
16
17
  * Endpoint-control verification methods. Inspired by external agent-card
17
18
  * verification patterns, but not tied to any DNS/PKI registry integration.
@@ -25,6 +26,59 @@ export type ProfileType = 'person' | 'org' | 'service' | 'treasury' | 'mcpServer
25
26
  * - `verifiable-presentation` — W3C VP signed by the owner.
26
27
  */
27
28
  export type VerificationMethod = 'dns-txt' | 'signed-url' | 'http-challenge' | 'verifiable-presentation';
29
+ /**
30
+ * The six install targets the ACP registry `binaryDistribution` accepts (`agent.schema.json`
31
+ * `propertyNames.enum`). Mirrored verbatim — the key IS the wire key.
32
+ */
33
+ export type AcpPlatform = 'darwin-aarch64' | 'darwin-x86_64' | 'linux-aarch64' | 'linux-x86_64' | 'windows-aarch64' | 'windows-x86_64';
34
+ /** `npx` / `uvx` package distribution (ACP `packageDistribution`). `package` may carry a version suffix. */
35
+ export interface AgentPackageDistributionV1 {
36
+ /** Package name (with optional version), non-empty. */
37
+ package: string;
38
+ /** Command line arguments. */
39
+ args?: string[];
40
+ /** Environment variables (string values only). */
41
+ env?: Record<string, string>;
42
+ }
43
+ /** One per-platform binary target (ACP `binaryTarget`). */
44
+ export interface AgentBinaryTargetV1 {
45
+ /**
46
+ * https URL of the archive (.zip, .tar.gz, .tgz, .tar.bz2, .tbz2 or a raw binary). Installer formats
47
+ * (.dmg, .pkg, .deb, .rpm) are NOT allowed — `validateDistribution` refuses them.
48
+ */
49
+ archive: string;
50
+ /** Command to execute after extraction, non-empty. */
51
+ cmd: string;
52
+ /** Optional SHA-256 of the archive — 64 hex characters, no `0x`. */
53
+ sha256?: string;
54
+ /** Command line arguments. */
55
+ args?: string[];
56
+ /** Environment variables (string values only). */
57
+ env?: Record<string, string>;
58
+ }
59
+ /**
60
+ * How to OBTAIN AND RUN this agent's software (spec 347 §8.5; `docs/architecture/ard-acp-crosswalk.md`
61
+ * §2). A registry-neutral canonical-profile fact, stored on chain as the SA-keyed `atl:distribution`
62
+ * string property (JCS-canonical JSON, `encodeDistribution`) and projected to the discovery KB as
63
+ * `approf:distribution`. Public and on-chain-derivable by construction (ADR-0040) — never put a secret
64
+ * in `env`.
65
+ *
66
+ * Field names mirror the ACP registry `agent.schema.json` `distribution` object exactly so a registry
67
+ * projection is a copy, never a translation. Two AP-owned extras sit beside them: `acp` (this agent
68
+ * speaks the Agent Client Protocol and may be listed in an ACP `registry.json`) and `version` (the
69
+ * agent IMPLEMENTATION's semver — the ACP entry REQUIRES one and the canonical profile has no other
70
+ * implementation-version field). At least one of `npx` / `uvx` / `binary` MUST be present.
71
+ */
72
+ export interface AgentDistributionV1 {
73
+ /** Declares ACP conformance → eligible for the hosted ACP registry projection. Absent ≠ false-claimed; it means "not declared". */
74
+ acp?: boolean;
75
+ /** Implementation semver `MAJOR.MINOR.PATCH[…]` (ACP `^[0-9]+\.[0-9]+\.[0-9]+`). */
76
+ version?: string;
77
+ npx?: AgentPackageDistributionV1;
78
+ uvx?: AgentPackageDistributionV1;
79
+ /** Keys restricted to `ACP_PLATFORMS`; at least one target when present. */
80
+ binary?: Partial<Record<AcpPlatform, AgentBinaryTargetV1>>;
81
+ }
28
82
  /** Common fields across all profile sub-shapes. */
29
83
  interface BaseProfile {
30
84
  /** Human-friendly display name (may differ from agent-naming `displayName`). */
@@ -37,9 +91,36 @@ interface BaseProfile {
37
91
  nativeId?: Caip10Address;
38
92
  /** Optional avatar / logo URL. */
39
93
  avatar?: string;
94
+ /** How to obtain + run this agent's software (spec 347 §8.5). Validated by `validateDistribution` on every write path. */
95
+ distribution?: AgentDistributionV1;
96
+ /**
97
+ * What this agent can do — the SYSTEM OF RECORD for it (ADR-0051).
98
+ *
99
+ * The A2A card's `skills[]` and ARD's `capabilities[]` are both PROJECTIONS of this list, produced by
100
+ * the A2A projector. Before this existed the card was the only place advertised abilities lived, which
101
+ * made the signed wire document the source of truth for a fact the owner should own.
102
+ */
103
+ capabilities?: AdvertisedCapabilityV1[];
104
+ /**
105
+ * A2A PROTOCOL flags — streaming, push, extensions. Not business capabilities, despite A2A calling
106
+ * this object `capabilities` on the wire. The two are separate fields here precisely because the
107
+ * protocol's name for its transport flags collides with our name for what an agent can do, and the
108
+ * card editor's two sections used to be titled "Capabilities" and "Skills" for exactly these two
109
+ * things — backwards in both cases.
110
+ */
111
+ protocolFeatures?: ProtocolFeatureSetV1;
112
+ }
113
+ /** The A2A protocol feature flags an agent declares. Projects to the card's `capabilities` object. */
114
+ export interface ProtocolFeatureSetV1 {
115
+ streaming?: boolean;
116
+ /** DERIVED by the runtime. Claiming it without runtime evidence is `CAPABILITY_UNVERIFIED`. */
117
+ pushNotifications?: boolean;
118
+ stateTransitionHistory?: boolean;
119
+ extendedAgentCard?: boolean;
120
+ extensions?: A2AAgentExtensionV1[];
40
121
  }
41
122
  export interface AiAgentProfile extends BaseProfile {
42
- type: 'person' | 'org';
123
+ type: 'person' | 'org' | 'team' | 'alliance' | 'church' | 'circle';
43
124
  /** For `org`: list of member Smart Agent addresses (informational only — authority lives in agent-relationships edges). */
44
125
  members?: Address[];
45
126
  }
@@ -63,8 +144,21 @@ export interface ServiceProfile extends BaseProfile {
63
144
  type: 'service' | 'treasury';
64
145
  /** Canonical service endpoint (A2A / MCP / HTTP). */
65
146
  endpoint?: string;
147
+ /**
148
+ * Open-set service ROLE (ADR-0046: indexer, relay, marketplace, assistant, …). `'workspace'`
149
+ * and `'registry'` are the roles that are also derived types (`.workspace` / `.registry` name them —
150
+ * spec 346 §2.1); each MUST match the SA-keyed on-chain `atl:serviceRole` record.
151
+ */
152
+ serviceRole?: string;
66
153
  }
67
- export type AgentCard = AiAgentProfile | McpServerProfile | MultisigProfile | ServiceProfile;
154
+ /**
155
+ * The AP-native, registry-neutral Canonical Agent Profile (spec 347 §2; ADR-0062). Facts and claims ABOUT
156
+ * the canonical Smart Agent — never the identity, and NOT the A2A Agent Card. The A2A card (what this A2A
157
+ * server does and how to reach it) is `A2AAgentCardV1` under `@agenticprimitives/agent-profile/a2a`.
158
+ */
159
+ export type CanonicalAgentProfileV1 = AiAgentProfile | McpServerProfile | MultisigProfile | ServiceProfile;
160
+ /** @deprecated Renamed `CanonicalAgentProfileV1` (spec 347 §0.3). Alias kept for one release. */
161
+ export type AgentCard = CanonicalAgentProfileV1;
68
162
  /** sha256 content hash, e.g. `sha256:ab12…`. The discovery substrate hashes cards with sha256
69
163
  * (distinct from the keccac `profileContentHash` used as the on-chain `metadata-hash` predicate). */
70
164
  export type Sha256 = `sha256:${string}`;
@@ -74,9 +168,10 @@ export type Sha256 = `sha256:${string}`;
74
168
  * Smart Agent signs (via ERC-1271) a digest binding the card hash to its own address + chain. This is the
75
169
  * card that a registry entry's `cardHash` references; it is descriptive evidence and carries NO authority to act.
76
170
  */
77
- export interface SignedAgentCardBundleV1 {
171
+ export interface SignedCanonicalProfileBundleV1 {
172
+ /** Wire discriminator unchanged by the spec-347 rename — existing signed bundles stay valid. */
78
173
  type: 'SignedAgentCardBundleV1';
79
- card: AgentCard;
174
+ card: CanonicalAgentProfileV1;
80
175
  /** sha256 over the canonical-JSON card (`hashAgentCard`). */
81
176
  cardHash: Sha256;
82
177
  /** The canonical Smart Agent this card is a facet of (= signer = verifyingContract in V1). */
@@ -93,6 +188,8 @@ export interface SignedAgentCardBundleV1 {
93
188
  signature: Hex;
94
189
  };
95
190
  }
191
+ /** @deprecated Renamed `SignedCanonicalProfileBundleV1` (spec 347 §0.3). Alias kept for one release. */
192
+ export type SignedAgentCardBundleV1 = SignedCanonicalProfileBundleV1;
96
193
  export interface AgentIdentityClientOpts {
97
194
  rpcUrl: string;
98
195
  chainId: number;
@@ -106,7 +203,7 @@ export interface PublishProfileInput {
106
203
  /** Smart Agent address publishing the profile. */
107
204
  agent: Address;
108
205
  /** Profile JSON to publish. The SDK computes its canonical content-hash. */
109
- profile: AgentCard;
206
+ profile: CanonicalAgentProfileV1;
110
207
  /**
111
208
  * URI where the canonical-JSON profile is hosted. The caller is
112
209
  * responsible for uploading the JSON to this URI BEFORE calling
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agenticprimitives/agent-profile",
3
- "version": "1.0.0-alpha.21",
4
- "description": "Agent identity SDK: AP-native typed profile/card schema (AgentCard), CAIP-10 nativeId helpers, endpoint verification methods (DNS TXT / signed URL / HTTP challenge / VP), canonical-JSON content-hash. External registry projections stay outside Ring 0.",
3
+ "version": "1.0.0-alpha.23",
4
+ "description": "Agent identity SDK: AP-native Canonical Agent Profile (CanonicalAgentProfileV1) + signed profile bundle, CAIP-10 nativeId helpers, endpoint verification methods, and the A2A 1.0 Agent Card model (./a2a: JCS canonical bytes, ES256 JWS, EIP-712 Smart Agent binding, field provenance, pure validation, import, release lifecycle). External registry projections stay outside Ring 0.",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -31,6 +31,10 @@
31
31
  "./card": {
32
32
  "types": "./dist/card.d.ts",
33
33
  "import": "./dist/card.js"
34
+ },
35
+ "./a2a": {
36
+ "types": "./dist/a2a/index.d.ts",
37
+ "import": "./dist/a2a/index.js"
34
38
  }
35
39
  },
36
40
  "files": [
@@ -44,9 +48,9 @@
44
48
  },
45
49
  "peerDependencies": {
46
50
  "viem": "^2.52.2",
47
- "@agenticprimitives/agent-account": "1.0.0-alpha.21",
48
- "@agenticprimitives/connect-auth": "1.0.0-alpha.21",
49
- "@agenticprimitives/types": "1.0.0-alpha.21"
51
+ "@agenticprimitives/agent-account": "1.0.0-alpha.23",
52
+ "@agenticprimitives/connect-auth": "1.0.0-alpha.23",
53
+ "@agenticprimitives/types": "1.0.0-alpha.23"
50
54
  },
51
55
  "devDependencies": {
52
56
  "@types/node": "^22.7.0",
@@ -59,7 +63,10 @@
59
63
  "hcs-14",
60
64
  "erc-8004",
61
65
  "caip-10",
62
- "agentic"
66
+ "agentic",
67
+ "a2a",
68
+ "agent-card",
69
+ "jws"
63
70
  ],
64
71
  "scripts": {
65
72
  "build": "tsc -p tsconfig.build.json",