@lemmaoracle/agent 0.0.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.
package/README.md ADDED
@@ -0,0 +1,190 @@
1
+ # @lemmaoracle/agent
2
+
3
+ Agent Identity + Authority Credential schema for Lemma — implemented as a Rust WASM module with ZK identity-proof circuit.
4
+
5
+ ## Schema: `agent-identity-authority-v1`
6
+
7
+ Represents a verifiable credential with these field groups:
8
+
9
+ - **Identity**: `agentId`, `subjectId`, `controllerId`, `orgId`
10
+ - **Authority**: `roles`, `scopes`, `permissions`
11
+ - **Financial**: `spendLimit`, `currency`, `paymentPolicy`
12
+ - **Lifecycle**: `issuedAt`, `expiresAt`, `revoked`, `revocationRef`
13
+ - **Provenance**: `issuerId`, `sourceSystem`, `generatorId`, `chainContext`
14
+
15
+ ## Build
16
+
17
+ ```bash
18
+ cd packages/agent
19
+ pnpm build # Build WASM via wasm-pack
20
+ pnpm type-check # Type-check registration scripts
21
+ pnpm test # Run Rust tests
22
+ pnpm register # Register schema with Lemma
23
+ pnpm register:circuit # Register circuit with Lemma
24
+ ```
25
+
26
+ ## Registration
27
+
28
+ First build the WASM, then register with Lemma:
29
+
30
+ ```bash
31
+ LEMMA_API_KEY=<key> PINATA_API_KEY=<key> PINATA_SECRET_API_KEY=<secret> pnpm register
32
+ ```
33
+
34
+ ## Usage with Lemma SDK
35
+
36
+ The WASM schema is loaded and executed by the Lemma SDK's `define()` function, which:
37
+ 1. Downloads the WASM blob (from IPFS or HTTPS)
38
+ 2. Instantiates the wasm-bindgen JS shim
39
+ 3. Calls `normalize(input)` to canonicalize credential data
40
+ 4. Calls `validate(input)` for structural validation
41
+
42
+ ```typescript
43
+ import { create, schemas } from "@lemmaoracle/sdk";
44
+
45
+ const client = create({ apiBase: "...", apiKey: "..." });
46
+
47
+ // Register the schema
48
+ await schemas.register(client, {
49
+ id: "agent-identity-authority-v1",
50
+ description: "Agent Identity + Authority Credential",
51
+ normalize: {
52
+ artifact: { type: "ipfs", wasm: "ipfs://...", js: "ipfs://..." },
53
+ hash: "0x...",
54
+ abi: {
55
+ raw: { identity: "object", authority: "object", ... },
56
+ norm: { "identity.agentId": "string", ... },
57
+ },
58
+ },
59
+ metadata: { type: "agent-identity-authority", version: "1.0.0", ... },
60
+ });
61
+ ```
62
+
63
+ ## Example Credential Payload
64
+
65
+ ```json
66
+ {
67
+ "schema": "agent-identity-authority-v1",
68
+ "identity": {
69
+ "agentId": "did:example:agent-42",
70
+ "subjectId": "0x1234567890ABCDEF1234567890ABCDEF12345678",
71
+ "controllerId": "did:example:controller-1",
72
+ "orgId": "org:lemma-labs"
73
+ },
74
+ "authority": {
75
+ "roles": [
76
+ { "name": "operator" },
77
+ { "name": "validator" }
78
+ ],
79
+ "scopes": [
80
+ { "name": "read:data" },
81
+ { "name": "write:data" }
82
+ ],
83
+ "permissions": [
84
+ { "resource": "api", "action": "invoke" },
85
+ { "resource": "ledger", "action": "query" }
86
+ ]
87
+ },
88
+ "financial": {
89
+ "spendLimit": 10000,
90
+ "currency": "USD",
91
+ "paymentPolicy": "pre-authorized"
92
+ },
93
+ "lifecycle": {
94
+ "issuedAt": 1714000000,
95
+ "expiresAt": 1745536000,
96
+ "revoked": false,
97
+ "revocationRef": "rev-list:123"
98
+ },
99
+ "provenance": {
100
+ "issuerId": "did:example:issuer-org",
101
+ "sourceSystem": "lemma-admin",
102
+ "generatorId": "gen:v1.0",
103
+ "chainContext": {
104
+ "chainId": 8453,
105
+ "network": "base"
106
+ }
107
+ }
108
+ }
109
+ ```
110
+
111
+ ## Example Normalized Output
112
+
113
+ The `normalize` function canonicalizes all fields:
114
+
115
+ ```json
116
+ {
117
+ "schema": "agent-identity-authority-v1",
118
+ "identity": {
119
+ "agentId": "did:example:agent-42",
120
+ "subjectId": "0x1234567890abcdef1234567890abcdef12345678",
121
+ "controllerId": "did:example:controller-1",
122
+ "orgId": "org:lemma-labs"
123
+ },
124
+ "authority": {
125
+ "roles": "operator,validator",
126
+ "scopes": "read:data,write:data",
127
+ "permissions": "api:invoke,ledger:query"
128
+ },
129
+ "financial": {
130
+ "spendLimit": "10000",
131
+ "currency": "USD",
132
+ "paymentPolicy": "pre-authorized"
133
+ },
134
+ "lifecycle": {
135
+ "issuedAt": "2024-04-25T01:46:40.000Z",
136
+ "expiresAt": "2025-04-25T01:46:40.000Z",
137
+ "revoked": "false",
138
+ "revocationRef": "rev-list:123"
139
+ },
140
+ "provenance": {
141
+ "issuerId": "did:example:issuer-org",
142
+ "sourceSystem": "lemma-admin",
143
+ "generatorId": "gen:v1.0",
144
+ "chainId": "8453",
145
+ "network": "base"
146
+ }
147
+ }
148
+ ```
149
+
150
+ ## ZK Circuit: `agent-identity-v1`
151
+
152
+ The `circuits/` directory contains the `agent-identity-v1` Groth16 circuit that proves an agent credential was issued by a trusted authority and is currently valid.
153
+
154
+ **Circuit signals:**
155
+
156
+ | Signal | Visibility | Description |
157
+ | :--- | :--- | :--- |
158
+ | `identityHash` | private | Poseidon hash of normalized identity fields |
159
+ | `authorityHash` | private | Poseidon hash of normalized authority fields |
160
+ | `financialHash` | private | Poseidon hash of normalized financial fields |
161
+ | `lifecycleHash` | private | Poseidon hash of normalized lifecycle fields |
162
+ | `provenanceHash` | private | Poseidon hash of normalized provenance fields |
163
+ | `salt` | private | Binding randomness |
164
+ | `issuerSecretKey` | private | Issuer's secret key for MAC verification |
165
+ | `mac` | private | Issuer's MAC over the credentialCommitment |
166
+ | `issuedAt` | private | Credential issuance timestamp |
167
+ | `expiresAt` | private | Credential expiration (0 = none) |
168
+ | `revoked` | private | Revocation flag (must be 0) |
169
+ | `credentialCommitment` | **public** | Poseidon commitment binding all credential fields |
170
+ | `issuerPublicKey` | **public** | Issuer's public key |
171
+ | `nowSec` | **public** | Current unix timestamp |
172
+
173
+ **Constraints:**
174
+ 1. `credentialCommitment = Poseidon6(identityHash, authorityHash, financialHash, lifecycleHash, provenanceHash, salt)`
175
+ 2. `issuerPublicKey = Poseidon1(issuerSecretKey)` — key derivation
176
+ 3. `mac = Poseidon2(credentialCommitment, issuerSecretKey)` — issuer signature
177
+ 4. `issuedAt <= nowSec` — credential has been issued
178
+ 5. `revoked === 0` — not revoked
179
+ 6. If `expiresAt != 0`: `nowSec < expiresAt` — not expired
180
+
181
+ Build the circuit:
182
+
183
+ ```bash
184
+ cd packages/agent/circuits
185
+ npm run build
186
+ ```
187
+
188
+ ## License
189
+
190
+ MIT
@@ -0,0 +1,17 @@
1
+ import type { LemmaClient } from "@lemmaoracle/spec";
2
+ import type { AgentCredential, CommitOutput, NormalizedAgentCredential, SectionedCommitResult } from "./types.js";
3
+ /**
4
+ * Compute the sectioned Poseidon commitment for a normalized credential.
5
+ *
6
+ * Pure function: groups fields into 5 sections, hashes each section via
7
+ * `toScalar(JSON.stringify(sectionObj))`, then computes the root as
8
+ * `poseidon([identityHash, authorityHash, financialHash, lifecycleHash,
9
+ * provenanceHash, saltScalar])`.
10
+ */
11
+ export declare const computeCredentialCommitment: (normalized: NormalizedAgentCredential, salt?: string) => SectionedCommitResult;
12
+ /**
13
+ * Normalize a credential via SDK `normalize`, then compute the sectioned
14
+ * Poseidon commitment matching `agent-identity.circom`.
15
+ */
16
+ export declare const commit: (client: LemmaClient, credential: AgentCredential) => Promise<CommitOutput<NormalizedAgentCredential>>;
17
+ //# sourceMappingURL=commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../src/commit.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AA+BpB;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GACtC,YAAY,yBAAyB,EACrC,OAAO,MAAM,KACZ,qBAkCF,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,MAAM,GACjB,QAAQ,WAAW,EACnB,YAAY,eAAe,KAC1B,OAAO,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAejD,CAAC"}
package/dist/commit.js ADDED
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Sectioned Poseidon commitment for agent-identity.circom.
3
+ *
4
+ * Groups normalized fields into 5 sections (identity, authority, financial,
5
+ * lifecycle, provenance), computes each section hash as
6
+ * `toScalar(JSON.stringify(sectionObj))`, and computes the root as
7
+ * `poseidon([identityHash, authorityHash, financialHash, lifecycleHash,
8
+ * provenanceHash, saltScalar])`.
9
+ */
10
+ import { randomBytes } from "node:crypto";
11
+ import * as R from "ramda";
12
+ import { poseidon6 } from "poseidon-lite";
13
+ import { toScalar } from "@lemmaoracle/sdk";
14
+ const SECTION_KEYS = [
15
+ "identityHash",
16
+ "authorityHash",
17
+ "financialHash",
18
+ "lifecycleHash",
19
+ "provenanceHash",
20
+ ];
21
+ /** Extract a section object for hashing from the normalized credential. */
22
+ const extractSection = (normalized, sectionKey) => {
23
+ const sectionMap = {
24
+ identityHash: normalized.identity,
25
+ authorityHash: normalized.authority,
26
+ financialHash: normalized.financial,
27
+ lifecycleHash: normalized.lifecycle,
28
+ provenanceHash: normalized.provenance,
29
+ };
30
+ return sectionMap[sectionKey] ?? {};
31
+ };
32
+ // ── computeCredentialCommitment ─────────────────────────────────────────
33
+ /**
34
+ * Compute the sectioned Poseidon commitment for a normalized credential.
35
+ *
36
+ * Pure function: groups fields into 5 sections, hashes each section via
37
+ * `toScalar(JSON.stringify(sectionObj))`, then computes the root as
38
+ * `poseidon([identityHash, authorityHash, financialHash, lifecycleHash,
39
+ * provenanceHash, saltScalar])`.
40
+ */
41
+ export const computeCredentialCommitment = (normalized, salt) => {
42
+ const saltHex = salt ?? randomBytes(32).toString("hex");
43
+ const saltScalar = BigInt(`0x${saltHex}`);
44
+ const sectionHashes = R.reduce((acc, key) => {
45
+ const sectionObj = extractSection(normalized, key);
46
+ const hash = toScalar(JSON.stringify(sectionObj));
47
+ return { ...acc, [key]: hash.toString() };
48
+ }, {}, SECTION_KEYS);
49
+ const identityHash = BigInt(sectionHashes.identityHash ?? "0");
50
+ const authorityHash = BigInt(sectionHashes.authorityHash ?? "0");
51
+ const financialHash = BigInt(sectionHashes.financialHash ?? "0");
52
+ const lifecycleHash = BigInt(sectionHashes.lifecycleHash ?? "0");
53
+ const provenanceHash = BigInt(sectionHashes.provenanceHash ?? "0");
54
+ const root = poseidon6([
55
+ identityHash,
56
+ authorityHash,
57
+ financialHash,
58
+ lifecycleHash,
59
+ provenanceHash,
60
+ saltScalar,
61
+ ]);
62
+ return {
63
+ root: root.toString(),
64
+ sectionHashes: sectionHashes,
65
+ salt: `0x${saltHex}`,
66
+ };
67
+ };
68
+ // ── commit ──────────────────────────────────────────────────────────────
69
+ /**
70
+ * Normalize a credential via SDK `normalize`, then compute the sectioned
71
+ * Poseidon commitment matching `agent-identity.circom`.
72
+ */
73
+ export const commit = async (client, credential) => {
74
+ const { normalize } = await import("@lemmaoracle/sdk");
75
+ const normalized = await normalize(client, { schema: credential.schema, payload: credential });
76
+ const commitment = computeCredentialCommitment(normalized);
77
+ return {
78
+ normalized,
79
+ root: commitment.root,
80
+ sectionHashes: commitment.sectionHashes,
81
+ salt: commitment.salt,
82
+ };
83
+ };
84
+ //# sourceMappingURL=commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["../src/commit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { AgentCredentialInput, CredentialOptions, ValidationResult } from "./types.js";
2
+ /**
3
+ * Build a validated AgentCredential from partial input.
4
+ *
5
+ * Defaults:
6
+ * - `schema` from `options.schemaId ?? "agent-identity-authority-v1"`
7
+ * - `issuedAt` from `Math.floor(Date.now() / 1000)`
8
+ * - `currency` from `"USD"`
9
+ * - Empty arrays for scopes/permissions
10
+ * - Empty strings for optional provenance fields
11
+ */
12
+ export declare const credential: (input: AgentCredentialInput, options?: CredentialOptions) => ValidationResult;
13
+ //# sourceMappingURL=credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential.d.ts","sourceRoot":"","sources":["../src/credential.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAKpB;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,oBAAoB,EAC3B,UAAU,iBAAiB,KAC1B,gBAwCF,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Credential factory — builds a validated AgentCredential from partial input.
3
+ *
4
+ * Fills defaults to produce output that, when normalized, yields deterministic
5
+ * results matching WASM normalization behavior.
6
+ */
7
+ import * as R from "ramda";
8
+ import { validate } from "./validate.js";
9
+ const DEFAULT_SCHEMA_ID = "agent-identity-authority-v1";
10
+ /**
11
+ * Build a validated AgentCredential from partial input.
12
+ *
13
+ * Defaults:
14
+ * - `schema` from `options.schemaId ?? "agent-identity-authority-v1"`
15
+ * - `issuedAt` from `Math.floor(Date.now() / 1000)`
16
+ * - `currency` from `"USD"`
17
+ * - Empty arrays for scopes/permissions
18
+ * - Empty strings for optional provenance fields
19
+ */
20
+ export const credential = (input, options) => {
21
+ const schemaId = options?.schemaId ?? DEFAULT_SCHEMA_ID;
22
+ const issuedAt = input.issuedAt ?? Math.floor(Date.now() / 1000);
23
+ const credentialObj = {
24
+ schema: schemaId,
25
+ identity: {
26
+ agentId: input.agentId,
27
+ subjectId: input.subjectId,
28
+ controllerId: input.controllerId ?? "",
29
+ orgId: input.orgId ?? "",
30
+ },
31
+ authority: {
32
+ roles: R.map((name) => ({ name }), input.roles),
33
+ scopes: R.map((name) => ({ name }), input.scopes ?? []),
34
+ permissions: input.permissions ?? [],
35
+ },
36
+ financial: {
37
+ spendLimit: input.spendLimit,
38
+ currency: input.currency ?? "USD",
39
+ paymentPolicy: input.paymentPolicy ?? "",
40
+ },
41
+ lifecycle: {
42
+ issuedAt,
43
+ expiresAt: input.expiresAt,
44
+ revoked: input.revoked,
45
+ revocationRef: input.revocationRef ?? "",
46
+ },
47
+ provenance: {
48
+ issuerId: input.issuerId,
49
+ sourceSystem: input.sourceSystem ?? "",
50
+ generatorId: input.generatorId ?? "",
51
+ chainContext: {
52
+ chainId: input.chainId,
53
+ network: input.network ?? "",
54
+ },
55
+ },
56
+ };
57
+ return validate(credentialObj, options);
58
+ };
59
+ //# sourceMappingURL=credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential.js","sourceRoot":"","sources":["../src/credential.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAO3B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAA2B,EAC3B,OAA2B,EACT,EAAE;IACpB,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,iBAAiB,CAAC;IACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEjE,MAAM,aAAa,GAAoB;QACrC,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE;YACR,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;YACtC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;SACzB;QACD,SAAS,EAAE;YACT,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;YACvD,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;YAC/D,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;SACrC;QACD,SAAS,EAAE;YACT,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;YACjC,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE;SACzC;QACD,SAAS,EAAE;YACT,QAAQ;YACR,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE;SACzC;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;YACtC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;YACpC,YAAY,EAAE;gBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;aAC7B;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @lemmaoracle/agent — Public API surface.
3
+ *
4
+ * Agent Identity & Authority Credential types, validation, and commitment.
5
+ */
6
+ export type { AgentIdentity, AgentAuthority, AgentFinancial, AgentLifecycle, AgentProvenance, ChainContext, Role, Scope, Permission, AgentCredential, AgentCredentialInput, NormalizedIdentity, NormalizedAuthority, NormalizedFinancial, NormalizedLifecycle, NormalizedProvenance, NormalizedAgentCredential, ValidationError, ValidationErrorKind, ValidationResult, CredentialOptions, SectionedCommitResult, CommitOutput, } from "./types.js";
7
+ export { credential } from "./credential.js";
8
+ export { validate, validateRequiredFields, validateSpendLimit, validateCurrency, validateTimestamps, validateProvenance } from "./validate.js";
9
+ export { computeCredentialCommitment, commit } from "./commit.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC/I,OAAO,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @lemmaoracle/agent — Public API surface.
3
+ *
4
+ * Agent Identity & Authority Credential types, validation, and commitment.
5
+ */
6
+ // Functions
7
+ export { credential } from "./credential.js";
8
+ export { validate, validateRequiredFields, validateSpendLimit, validateCurrency, validateTimestamps, validateProvenance } from "./validate.js";
9
+ export { computeCredentialCommitment, commit } from "./commit.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6BH,YAAY;AACZ,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC/I,OAAO,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * @lemmaoracle/agent — Type definitions for Agent Identity & Authority Credentials.
3
+ *
4
+ * Schema ID: agent-identity-authority-v1
5
+ * Source: https://github.com/lemmaoracle/lemma
6
+ */
7
+ /** @see agent-identity-authority-v1 → identity */
8
+ export type AgentIdentity = Readonly<{
9
+ /** @see identity.agentId — unique agent identifier */
10
+ agentId: string;
11
+ /** @see identity.subjectId — subject the agent acts on behalf of */
12
+ subjectId: string;
13
+ /** @see identity.controllerId — optional controller of the agent */
14
+ controllerId?: string;
15
+ /** @see identity.orgId — optional organisation the agent belongs to */
16
+ orgId?: string;
17
+ }>;
18
+ /** @see agent-identity-authority-v1 → authority.roles[] */
19
+ export type Role = Readonly<{
20
+ name: string;
21
+ }>;
22
+ /** @see agent-identity-authority-v1 → authority.scopes[] */
23
+ export type Scope = Readonly<{
24
+ name: string;
25
+ }>;
26
+ /** @see agent-identity-authority-v1 → authority.permissions[] */
27
+ export type Permission = Readonly<{
28
+ resource: string;
29
+ action: string;
30
+ }>;
31
+ /** @see agent-identity-authority-v1 → authority */
32
+ export type AgentAuthority = Readonly<{
33
+ /** @see authority.roles — at least one role required */
34
+ roles: ReadonlyArray<Role>;
35
+ /** @see authority.scopes */
36
+ scopes: ReadonlyArray<Scope>;
37
+ /** @see authority.permissions */
38
+ permissions: ReadonlyArray<Permission>;
39
+ }>;
40
+ /** @see agent-identity-authority-v1 → financial */
41
+ export type AgentFinancial = Readonly<{
42
+ /** @see financial.spendLimit — u64, max 1 000 000 000 000 */
43
+ spendLimit?: number;
44
+ /** @see financial.currency — 3-letter uppercase ISO 4217 */
45
+ currency?: string;
46
+ /** @see financial.paymentPolicy */
47
+ paymentPolicy?: string;
48
+ }>;
49
+ /** @see agent-identity-authority-v1 → lifecycle */
50
+ export type AgentLifecycle = Readonly<{
51
+ /** @see lifecycle.issuedAt — epoch seconds, u64 */
52
+ issuedAt: number;
53
+ /** @see lifecycle.expiresAt — epoch seconds, u64, must be > issuedAt */
54
+ expiresAt?: number;
55
+ /** @see lifecycle.revoked */
56
+ revoked?: boolean;
57
+ /** @see lifecycle.revocationRef */
58
+ revocationRef?: string;
59
+ }>;
60
+ /** @see agent-identity-authority-v1 → provenance.chainContext */
61
+ export type ChainContext = Readonly<{
62
+ /** @see provenance.chainContext.chainId — u64 */
63
+ chainId?: number;
64
+ /** @see provenance.chainContext.network */
65
+ network?: string;
66
+ }>;
67
+ /** @see agent-identity-authority-v1 → provenance */
68
+ export type AgentProvenance = Readonly<{
69
+ /** @see provenance.issuerId — required */
70
+ issuerId: string;
71
+ /** @see provenance.sourceSystem */
72
+ sourceSystem?: string;
73
+ /** @see provenance.generatorId */
74
+ generatorId?: string;
75
+ /** @see provenance.chainContext */
76
+ chainContext?: ChainContext;
77
+ }>;
78
+ /**
79
+ * Canonical Agent Credential type aligned to `agent-identity-authority-v1` schema ABI.
80
+ *
81
+ * All fields from `abi.raw` and `abi.norm` with JSDoc referencing schema ID
82
+ * and source repository at https://github.com/lemmaoracle/lemma.
83
+ *
84
+ * @see agent-identity-authority-v1
85
+ */
86
+ export type AgentCredential = Readonly<{
87
+ /** Schema identifier, e.g. "agent-identity-authority-v1" */
88
+ schema: string;
89
+ /** @see identity */
90
+ identity: AgentIdentity;
91
+ /** @see authority */
92
+ authority: AgentAuthority;
93
+ /** @see financial — optional section */
94
+ financial?: AgentFinancial;
95
+ /** @see lifecycle */
96
+ lifecycle: AgentLifecycle;
97
+ /** @see provenance */
98
+ provenance: AgentProvenance;
99
+ }>;
100
+ /**
101
+ * Partial input for the `credential()` factory.
102
+ * Only `agentId`, `subjectId`, `roles`, and `issuerId` are required;
103
+ * all other fields default automatically.
104
+ */
105
+ export type AgentCredentialInput = Readonly<{
106
+ agentId: string;
107
+ subjectId: string;
108
+ roles: ReadonlyArray<string>;
109
+ issuerId: string;
110
+ controllerId?: string;
111
+ orgId?: string;
112
+ scopes?: ReadonlyArray<string>;
113
+ permissions?: ReadonlyArray<Permission>;
114
+ spendLimit?: number;
115
+ currency?: string;
116
+ paymentPolicy?: string;
117
+ issuedAt?: number;
118
+ expiresAt?: number;
119
+ revoked?: boolean;
120
+ revocationRef?: string;
121
+ sourceSystem?: string;
122
+ generatorId?: string;
123
+ chainId?: number;
124
+ network?: string;
125
+ }>;
126
+ /** @see NormalizedAgentCredential.identity */
127
+ export type NormalizedIdentity = Readonly<{
128
+ agentId: string;
129
+ subjectId: string;
130
+ controllerId: string;
131
+ orgId: string;
132
+ }>;
133
+ /** @see NormalizedAgentCredential.authority */
134
+ export type NormalizedAuthority = Readonly<{
135
+ roles: string;
136
+ scopes: string;
137
+ permissions: string;
138
+ }>;
139
+ /** @see NormalizedAgentCredential.financial */
140
+ export type NormalizedFinancial = Readonly<{
141
+ spendLimit: string;
142
+ currency: string;
143
+ paymentPolicy: string;
144
+ }>;
145
+ /** @see NormalizedAgentCredential.lifecycle */
146
+ export type NormalizedLifecycle = Readonly<{
147
+ issuedAt: string;
148
+ expiresAt: string;
149
+ revoked: string;
150
+ revocationRef: string;
151
+ }>;
152
+ /** @see NormalizedAgentCredential.provenance */
153
+ export type NormalizedProvenance = Readonly<{
154
+ issuerId: string;
155
+ sourceSystem: string;
156
+ generatorId: string;
157
+ chainId: string;
158
+ network: string;
159
+ }>;
160
+ /**
161
+ * Normalized Agent Credential matching the WASM's `NormalizedAgentCredential`
162
+ * output structure.
163
+ *
164
+ * @see agent-identity-authority-v1 → abi.norm
165
+ */
166
+ export type NormalizedAgentCredential = Readonly<{
167
+ schema: string;
168
+ identity: NormalizedIdentity;
169
+ authority: NormalizedAuthority;
170
+ financial: NormalizedFinancial;
171
+ lifecycle: NormalizedLifecycle;
172
+ provenance: NormalizedProvenance;
173
+ }>;
174
+ /** Error kinds matching the WASM's ValidationError enum. */
175
+ export type ValidationErrorKind = "EmptyAgentId" | "EmptySubjectId" | "EmptyRoles" | "SpendLimitExceeded" | "InvalidCurrency" | "InvalidTimestamp" | "EmptyIssuerId" | "InvalidSchema";
176
+ /** Tagged union for validation errors. */
177
+ export type ValidationError = Readonly<{
178
+ kind: ValidationErrorKind;
179
+ message: string;
180
+ }>;
181
+ /**
182
+ * Discriminated union for validation results.
183
+ * - `{ valid: true, credential }` on success
184
+ * - `{ valid: false, errors }` on failure
185
+ */
186
+ export type ValidationResult = Readonly<{
187
+ valid: true;
188
+ credential: AgentCredential;
189
+ }> | Readonly<{
190
+ valid: false;
191
+ errors: ReadonlyArray<ValidationError>;
192
+ }>;
193
+ /** Optional configuration for `credential()` and `validate()`. */
194
+ export type CredentialOptions = Readonly<{
195
+ schemaId?: string;
196
+ }>;
197
+ /** Result of computing a sectioned Poseidon commitment. */
198
+ export type SectionedCommitResult = Readonly<{
199
+ /** Top-level Poseidon commitment (= credentialCommitment in agent-identity.circom) */
200
+ root: string;
201
+ /** Per-section hashes keyed by section name */
202
+ sectionHashes: Readonly<Record<string, string>>;
203
+ /** Binding salt */
204
+ salt: string;
205
+ }>;
206
+ /** Full output of `commit()` including normalized data. */
207
+ export type CommitOutput<Norm = NormalizedAgentCredential> = Readonly<{
208
+ normalized: Norm;
209
+ root: string;
210
+ sectionHashes: Readonly<Record<string, string>>;
211
+ salt: string;
212
+ }>;
213
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @lemmaoracle/agent — Type definitions for Agent Identity & Authority Credentials.
3
+ *
4
+ * Schema ID: agent-identity-authority-v1
5
+ * Source: https://github.com/lemmaoracle/lemma
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}