@agenticprimitives/agent-profile 1.0.0-alpha.5 → 1.0.0-alpha.7
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 +39 -35
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,34 +1,29 @@
|
|
|
1
1
|
# @agenticprimitives/agent-profile
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
and endpoint-verification methods.
|
|
3
|
+
**A profile describes the identity; it never becomes the identity.** Agent discovery is consolidating right now — ERC-8004 registries on mainnet, agent naming services shipping agent cards, HCS-11 profiles on Hedera. Each standard wants to be the place an agent "lives." This package takes the other position: every agent already lives at one canonical ERC-4337 Smart Agent address, and a profile is a typed, content-hashed manifest *about* that address ([ADR-0010](../../docs/architecture/decisions/0010-smart-agent-canonical-identifier.md)). Registry entries in any standard become facets that back-link to the same anchor — so one identity serves all of them, and no registry can quietly fork who the agent is.
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
ceremonies.
|
|
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
|
+
Where [`agent-naming`](../agent-naming) maps names → addresses, this package maps addresses → typed profiles and optional endpoint-control proofs: the `AgentCard` schema, deterministic content hashing for on-chain anchoring, and CAIP-10 `nativeId` helpers for cross-registry back-links.
|
|
10
8
|
|
|
11
9
|
> **Layer:** Discover — a profile **facet** (not login — that is `connect-auth`; not canonical identity — that is `agent-account`).
|
|
12
10
|
> **Canonical key:** the Smart Agent address the AgentCard describes.
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
maps addresses → typed profiles and optional endpoint-control proofs.
|
|
16
|
-
|
|
17
|
-
## Use This When
|
|
12
|
+
## Use this when
|
|
18
13
|
|
|
19
|
-
- You author or validate an `AgentCard` (person, org, service, MCP server,
|
|
20
|
-
- You need deterministic `profileContentHash` for on-chain `metadata-hash
|
|
21
|
-
- You need CAIP-10 `nativeId` encode/decode (strict encode, permissive decode).
|
|
22
|
-
- You need endpoint
|
|
14
|
+
- You author or validate an `AgentCard` (person, org, service, treasury, MCP server, multisig).
|
|
15
|
+
- You need a deterministic `profileContentHash` for the on-chain `metadata-hash` anchor — so a tampered profile is detectable by anyone holding the hash.
|
|
16
|
+
- You need CAIP-10 `nativeId` encode/decode (strict encode, permissive decode) aligned with HCS-14 / ERC-8004 ([ADR-0008](../../docs/architecture/decisions/0008-caip10-nativeid-record-predicate.md)).
|
|
17
|
+
- You need endpoint-verification methods (DNS TXT, signed URL, HTTP challenge, verifiable presentation) — Phase 2+.
|
|
23
18
|
- You build encoded calls to register or update on-chain profile anchors.
|
|
24
19
|
|
|
25
|
-
## Do
|
|
20
|
+
## Do not use this for
|
|
26
21
|
|
|
27
|
-
- `.agent` names or namehash
|
|
28
|
-
- Smart Agent deploy / UserOps
|
|
29
|
-
- Passkey / SIWE / JWT
|
|
30
|
-
- Trust-fabric edges
|
|
31
|
-
- UAID string generation
|
|
22
|
+
- `.agent` names or namehash — `agent-naming`.
|
|
23
|
+
- Smart Agent deploy / UserOps — `agent-account`.
|
|
24
|
+
- Passkey / SIWE / JWT — `connect-auth`.
|
|
25
|
+
- Trust-fabric edges — `agent-relationships`.
|
|
26
|
+
- UAID string generation — refused by design ([ADR-0008](../../docs/architecture/decisions/0008-caip10-nativeid-record-predicate.md)); we expose `nativeId` and consumers derive UAIDs locally.
|
|
32
27
|
|
|
33
28
|
## Install
|
|
34
29
|
|
|
@@ -38,7 +33,7 @@ Workspace-internal; not yet published.
|
|
|
38
33
|
pnpm add @agenticprimitives/agent-profile
|
|
39
34
|
```
|
|
40
35
|
|
|
41
|
-
## 60-
|
|
36
|
+
## 60-second quickstart
|
|
42
37
|
|
|
43
38
|
```ts
|
|
44
39
|
import {
|
|
@@ -64,34 +59,39 @@ const nativeId = buildCaip10Address({
|
|
|
64
59
|
// Anchor hash + nativeId on chain via agent-naming records or profile resolver.
|
|
65
60
|
```
|
|
66
61
|
|
|
67
|
-
##
|
|
62
|
+
## How it's different
|
|
63
|
+
|
|
64
|
+
The reference points are **ERC-8004 registries and agent-card formats** (including the GoDaddy ANS `agent-card.json` pattern, which inspired the manifest shape — without importing its PKI):
|
|
68
65
|
|
|
69
|
-
- **AgentCard
|
|
66
|
+
- **Anchor, not authority.** In registry-first designs, the registry entry *is* the agent, and each registry mints its own notion of identity. Here the `AgentCard` is HCS-11-aligned typed JSON discriminated on `type`, and every external registry facet must back-link to the canonical Smart Agent via CAIP-10 `nativeId` ([spec 220 §4](../../specs/220-agent-identity-bootstrap.md)). One agent, many registries, zero identity forks.
|
|
67
|
+
- **Tamper evidence built in.** `profileContentHash` is deterministic canonical JSON — sorted keys, fixed numeric format — matching the on-chain `metadata-hash` predicate. Two semantically equal profiles hash identically; a mutated profile cannot pass against its anchor.
|
|
68
|
+
- **Endpoint claims are not endpoint proof.** A profile may *claim* an MCP or A2A URL; `VerificationMethod` is the explicit, caller-selected proof that the Smart Agent controls it. We never silently pick a verification method — you always know what "verified" meant.
|
|
69
|
+
- **CAIP-10 done strictly.** Encoders reject unknown namespaces (Phase 1: eip155, hedera, solana); decoders accept any grammar-valid CAIP-10 string for forward compatibility.
|
|
70
|
+
|
|
71
|
+
## Main concepts
|
|
72
|
+
|
|
73
|
+
- **AgentCard**: HCS-11-aligned typed JSON discriminated by `type`, with type-specific sub-objects (`AiAgentProfile`, `McpServerProfile`, `MultisigProfile`, `ServiceProfile`).
|
|
70
74
|
- **Profile facet**: `metadata-uri` + `metadata-hash` pointing at the canonical SA.
|
|
71
|
-
- **CAIP-10 `nativeId`**: cross-registry back-link; must match SA on EVM chains.
|
|
72
|
-
- **Verification**: proves an MCP/A2A URL is controlled by the SA (
|
|
75
|
+
- **CAIP-10 `nativeId`**: the cross-registry back-link; must match the SA on EVM chains.
|
|
76
|
+
- **Verification**: proves an MCP/A2A URL is controlled by the SA (distinct from naming).
|
|
73
77
|
|
|
74
78
|
See [`docs/concepts.md`](docs/concepts.md).
|
|
75
79
|
|
|
76
|
-
## Subpath
|
|
80
|
+
## Subpath exports
|
|
77
81
|
|
|
78
|
-
- `@agenticprimitives/agent-profile/caip10` — CAIP-10 helpers only.
|
|
82
|
+
- `@agenticprimitives/agent-profile/caip10` — CAIP-10 helpers only (no client baggage).
|
|
79
83
|
- `@agenticprimitives/agent-profile/profile` — canonical JSON + content hash.
|
|
80
84
|
|
|
81
|
-
##
|
|
82
|
-
|
|
83
|
-
Phase 1 — pure helpers + client skeleton. `AgentIdentityClient` reads throw
|
|
84
|
-
`I Phase 2`; writes throw `I Phase 4`. Shape is locked for demo authoring.
|
|
85
|
-
|
|
86
|
-
## Security Invariants
|
|
85
|
+
## Security invariants
|
|
87
86
|
|
|
88
87
|
- Profile content-hash is deterministic (canonical JSON).
|
|
89
|
-
- No raw passkey material in profiles
|
|
88
|
+
- No raw passkey material in profiles — only `credentialIdDigest`.
|
|
90
89
|
- Verification methods are explicit, not auto-selected.
|
|
90
|
+
- No UAID generation ([ADR-0008](../../docs/architecture/decisions/0008-caip10-nativeid-record-predicate.md)).
|
|
91
91
|
|
|
92
92
|
See [`docs/security.md`](docs/security.md) and [`AUDIT.md`](AUDIT.md).
|
|
93
93
|
|
|
94
|
-
## Documentation
|
|
94
|
+
## Documentation map
|
|
95
95
|
|
|
96
96
|
- [`docs/concepts.md`](docs/concepts.md) — profile facet vs canonical SA.
|
|
97
97
|
- [`docs/api.md`](docs/api.md) — public API guide.
|
|
@@ -108,6 +108,10 @@ pnpm check:agent-profile
|
|
|
108
108
|
pnpm check:forbidden-terms
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
+
## Status
|
|
112
|
+
|
|
113
|
+
**Phase 1 — pure helpers + client skeleton.** The schema, CAIP-10 helpers, and content hashing are real and tested; `AgentIdentityClient` reads throw `I Phase 2` and writes throw `I Phase 4` — they are stubs by design, and the shape is locked for authoring today. Beyond that: 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).
|
|
114
|
+
|
|
111
115
|
## License
|
|
112
116
|
|
|
113
117
|
UNLICENSED.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenticprimitives/agent-profile",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.7",
|
|
4
4
|
"description": "Agent identity SDK: HCS-11-aligned typed profile schema (AgentCard), HCS-14 CAIP-10 nativeId helpers, mcpServer.verification methods (DNS TXT / signed URL / HTTP challenge / VP), canonical-JSON content-hash. Speaks identity-domain vocabulary only.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"viem": "^2.52.2",
|
|
43
|
-
"@agenticprimitives/agent-account": "1.0.0-alpha.
|
|
44
|
-
"@agenticprimitives/connect-auth": "1.0.0-alpha.
|
|
45
|
-
"@agenticprimitives/types": "1.0.0-alpha.
|
|
43
|
+
"@agenticprimitives/agent-account": "1.0.0-alpha.7",
|
|
44
|
+
"@agenticprimitives/connect-auth": "1.0.0-alpha.7",
|
|
45
|
+
"@agenticprimitives/types": "1.0.0-alpha.7"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/node": "^22.7.0",
|