@codespar/cli 0.5.4 → 0.6.0

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/dist/banner.js CHANGED
@@ -30,7 +30,7 @@ export function printBanner(version) {
30
30
  out.write("\n");
31
31
  for (const line of LOGO)
32
32
  out.write(c.blue(line) + "\n");
33
- out.write(`\n ${c.bold("Commerce infrastructure for AI agents in Latin America")}\n`);
33
+ out.write(`\n ${c.bold("The agentic OS for money movement in Latin America")}\n`);
34
34
  out.write(` ${c.gray(`v${version} · codespar.dev/docs/cli · MIT`)}\n\n`);
35
35
  }
36
36
  //# sourceMappingURL=banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEhC,MAAM,IAAI,GAAG;IACX,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;CACrE,CAAC;AAEF,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,IAAI,CAAC,YAAY,EAAE;QAAE,OAAO;IAE5B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,IAAI;QAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,GAAG,CAAC,KAAK,CACP,OAAO,CAAC,CAAC,IAAI,CAAC,wDAAwD,CAAC,IAAI,CAC5E,CAAC;IACF,GAAG,CAAC,KAAK,CACP,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,oCAAoC,CAAC,MAAM,CACnE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEhC,MAAM,IAAI,GAAG;IACX,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;CACrE,CAAC;AAEF,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,IAAI,CAAC,YAAY,EAAE;QAAE,OAAO;IAE5B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,IAAI;QAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,GAAG,CAAC,KAAK,CACP,OAAO,CAAC,CAAC,IAAI,CAAC,oDAAoD,CAAC,IAAI,CACxE,CAAC;IACF,GAAG,CAAC,KAAK,CACP,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,oCAAoC,CAAC,MAAM,CACnE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,234 @@
1
+ import { CliError } from "../config.js";
2
+ import { c, info, json, kv, success, warn } from "../output.js";
3
+ import { agentDidFromKid, decodeToken, parsePubkeyHex, reconstructSigningString, verifyEd25519, } from "../mandate-codec.js";
4
+ import { resolveDidKeys } from "../did.js";
5
+ /** did:web platform issuer DID derived from an agent DID's host segment. */
6
+ function platformIssuerDid(agentDid) {
7
+ if (!agentDid.startsWith("did:web:"))
8
+ return null;
9
+ const host = agentDid.slice("did:web:".length).split(":")[0];
10
+ return host ? `did:web:${host}` : null;
11
+ }
12
+ /** Try a signature against a set of candidate keys; first hit wins. */
13
+ function verifyAgainst(signingString, sig, keys) {
14
+ for (const k of keys) {
15
+ if (verifyEd25519(signingString, sig, k.pubkey))
16
+ return k;
17
+ }
18
+ return null;
19
+ }
20
+ /**
21
+ * Verify a V3 mandate presentation token.
22
+ *
23
+ * codespar mandate verify <token>
24
+ *
25
+ * Offline mode (any --agent-pubkey / --issuer-pubkey given): verify the named
26
+ * signatures against the supplied raw Ed25519 keys with zero network calls.
27
+ * Network mode (no pubkey flags): resolve the agent + issuer public keys from
28
+ * their did:web documents (standard route, api.codespar.dev fallback) and verify.
29
+ *
30
+ * A signature the token carries must verify for an overall pass. In offline mode
31
+ * a signature with no supplied key is "skipped" (not proven, not failed); at
32
+ * least one signature must verify and none may fail. In network mode an
33
+ * unresolvable key is a failure. Exit code is non-zero on any failure.
34
+ */
35
+ export async function mandateVerifyCommand(token, opts) {
36
+ const decoded = decodeToken(token);
37
+ if (!decoded.ok) {
38
+ if (opts.json) {
39
+ json({ verified: false, error: decoded.error });
40
+ process.exitCode = 1;
41
+ return;
42
+ }
43
+ throw new CliError(decoded.error === "mandate_format_unsupported"
44
+ ? "unsupported mandate format (need format_version >= 2)."
45
+ : "cannot decode token — not a valid base64url mandate presentation token.");
46
+ }
47
+ const t = decoded.token;
48
+ const m = t.mandate;
49
+ const signingString = reconstructSigningString(m);
50
+ const offline = Boolean(opts.agentPubkey || opts.issuerPubkey);
51
+ const agentKid = t.kid ?? m.agent_kid ?? undefined;
52
+ const agentDid = agentKid ? agentDidFromKid(agentKid) : undefined;
53
+ // ── Agent signature ──────────────────────────────────────────────
54
+ const agent = { present: Boolean(t.agent_sig), status: "skipped", source: "-" };
55
+ if (t.agent_sig) {
56
+ if (offline) {
57
+ if (opts.agentPubkey) {
58
+ const pub = parsePubkeyHex(opts.agentPubkey);
59
+ if (!pub)
60
+ throw new CliError("--agent-pubkey must be 64 hex chars (a raw 32-byte Ed25519 key).");
61
+ agent.source = "flag";
62
+ const hit = verifyAgainst(signingString, t.agent_sig, [{ kid: agentKid ?? "(flag)", pubkey: pub }]);
63
+ agent.status = hit ? "verified" : "failed";
64
+ agent.kid = agentKid;
65
+ }
66
+ else {
67
+ agent.status = "skipped";
68
+ agent.detail = "no --agent-pubkey supplied";
69
+ }
70
+ }
71
+ else {
72
+ agent.source = "did:web";
73
+ if (!agentDid) {
74
+ agent.status = "failed";
75
+ agent.detail = "token carries no agent_kid to resolve";
76
+ }
77
+ else {
78
+ const keys = await resolveDidKeys(agentDid, {
79
+ baseUrl: opts.baseUrl,
80
+ preferredKid: agentKid,
81
+ });
82
+ if (keys.length === 0) {
83
+ agent.status = "failed";
84
+ agent.detail = `could not resolve ${agentDid}`;
85
+ }
86
+ else {
87
+ const hit = verifyAgainst(signingString, t.agent_sig, keys);
88
+ agent.status = hit ? "verified" : "failed";
89
+ agent.kid = hit?.kid ?? agentKid;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ // ── Issuer signature ─────────────────────────────────────────────
95
+ const issuer = { present: Boolean(t.issuer_sig), status: "skipped", source: "-" };
96
+ if (t.issuer_sig) {
97
+ if (offline) {
98
+ if (opts.issuerPubkey) {
99
+ const pub = parsePubkeyHex(opts.issuerPubkey);
100
+ if (!pub)
101
+ throw new CliError("--issuer-pubkey must be 64 hex chars (a raw 32-byte Ed25519 key).");
102
+ issuer.source = "flag";
103
+ const hit = verifyAgainst(signingString, t.issuer_sig, [{ kid: "(flag)", pubkey: pub }]);
104
+ issuer.status = hit ? "verified" : "failed";
105
+ }
106
+ else {
107
+ issuer.status = "skipped";
108
+ issuer.detail = "no --issuer-pubkey supplied";
109
+ }
110
+ }
111
+ else {
112
+ issuer.source = "did:web";
113
+ const issuerDid = opts.issuerDid ?? (agentDid ? platformIssuerDid(agentDid) : null);
114
+ if (!issuerDid) {
115
+ issuer.status = "failed";
116
+ issuer.detail = "no issuer DID (pass --issuer-did)";
117
+ }
118
+ else {
119
+ // The envelope names the agent kid, not the issuer's, so try every
120
+ // Ed25519 key the issuer document publishes.
121
+ const keys = await resolveDidKeys(issuerDid, { baseUrl: opts.baseUrl });
122
+ if (keys.length === 0) {
123
+ issuer.status = "failed";
124
+ issuer.detail = `could not resolve ${issuerDid}`;
125
+ }
126
+ else {
127
+ const hit = verifyAgainst(signingString, t.issuer_sig, keys);
128
+ issuer.status = hit ? "verified" : "failed";
129
+ issuer.kid = hit?.kid;
130
+ }
131
+ }
132
+ }
133
+ }
134
+ const anyVerified = agent.status === "verified" || issuer.status === "verified";
135
+ const anyFailed = agent.status === "failed" || issuer.status === "failed";
136
+ const verified = anyVerified && !anyFailed;
137
+ const expiresIso = Number.isFinite(m.expires_at)
138
+ ? new Date(m.expires_at * 1000).toISOString()
139
+ : null;
140
+ const expired = Number.isFinite(m.expires_at) ? m.expires_at * 1000 < Date.now() : false;
141
+ if (opts.json) {
142
+ json({
143
+ verified,
144
+ mode: offline ? "offline" : "network",
145
+ format_version: m.format_version,
146
+ signatures: {
147
+ agent_sig: sigJson(agent),
148
+ issuer_sig: sigJson(issuer),
149
+ },
150
+ mandate: {
151
+ id: m.id,
152
+ agent_id: m.agent_id,
153
+ agent_did: agentDid ?? null,
154
+ kid: agentKid ?? null,
155
+ type: m.type,
156
+ amount: m.amount,
157
+ currency: m.currency,
158
+ max_amount: m.max_amount ?? null,
159
+ parent_id: m.parent_id ?? null,
160
+ denomination: m.denomination ?? null,
161
+ purposes: m.purposes,
162
+ // Redacted: never emit the CPF/CNPJ reference itself, only its presence.
163
+ principal_kyc_ref_present: Boolean(m.principal_kyc_ref),
164
+ expires_at: m.expires_at,
165
+ expires_at_iso: expiresIso,
166
+ expired,
167
+ format_version: m.format_version,
168
+ },
169
+ });
170
+ if (!verified)
171
+ process.exitCode = 1;
172
+ return;
173
+ }
174
+ // ── Human output ─────────────────────────────────────────────────
175
+ if (verified)
176
+ success(`mandate token verified (${offline ? "offline" : "network"} mode)`);
177
+ else
178
+ warn(`mandate token NOT verified (${offline ? "offline" : "network"} mode)`);
179
+ process.stdout.write(c.bold("\nsignatures\n"));
180
+ kv([
181
+ ["agent_sig", sigLine(agent)],
182
+ ["issuer_sig", sigLine(issuer)],
183
+ ]);
184
+ process.stdout.write(c.bold("\nmandate\n"));
185
+ kv([
186
+ ["id", m.id],
187
+ ["agent_id", m.agent_id],
188
+ ["agent_did", agentDid ?? "(none)"],
189
+ ["kid", agentKid ?? "(none)"],
190
+ ["type", m.type],
191
+ ["amount", `${m.amount} ${m.currency}`],
192
+ ["max_amount", m.max_amount ? `${m.max_amount} ${m.currency}` : "(none)"],
193
+ ["purposes", m.purposes.join(", ")],
194
+ ["principal_kyc", m.principal_kyc_ref ? "present" : "absent"],
195
+ [
196
+ "expires_at",
197
+ expiresIso ? `${m.expires_at} (${expiresIso})${expired ? c.yellow(" [expired]") : ""}` : String(m.expires_at),
198
+ ],
199
+ ["format", `v${m.format_version}`],
200
+ ]);
201
+ if (!verified) {
202
+ info("A NOT-verified result means a carried signature failed or could not be checked. See the per-signature status above.");
203
+ process.exitCode = 1;
204
+ }
205
+ }
206
+ function statusMark(status) {
207
+ if (status === "verified")
208
+ return c.green("✓ verified");
209
+ if (status === "failed")
210
+ return c.red("✗ failed");
211
+ return c.gray("– skipped");
212
+ }
213
+ function sigLine(r) {
214
+ if (!r.present)
215
+ return c.gray("– absent (not in token)");
216
+ const bits = [statusMark(r.status)];
217
+ if (r.kid)
218
+ bits.push(c.gray(`kid ${r.kid}`));
219
+ if (r.source && r.source !== "-")
220
+ bits.push(c.gray(`via ${r.source}`));
221
+ if (r.detail)
222
+ bits.push(c.gray(`(${r.detail})`));
223
+ return bits.join(" ");
224
+ }
225
+ function sigJson(r) {
226
+ return {
227
+ present: r.present,
228
+ status: r.present ? r.status : "absent",
229
+ kid: r.kid ?? null,
230
+ source: r.source === "-" ? null : r.source,
231
+ detail: r.detail ?? null,
232
+ };
233
+ }
234
+ //# sourceMappingURL=mandate-verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mandate-verify.js","sourceRoot":"","sources":["../../src/commands/mandate-verify.ts"],"names":[],"mappings":"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"}
package/dist/did.js ADDED
@@ -0,0 +1,106 @@
1
+ /**
2
+ * did:web resolution for the network verify path. Fetches an agent / issuer DID
3
+ * document and extracts its raw Ed25519 public keys so the codec can verify a
4
+ * presentation token's signatures.
5
+ *
6
+ * Resolution order (per the rollout in progress): try the standard did:web URL
7
+ * mapping first, then fall back to the api.codespar.dev encoded route that
8
+ * serves the same document today.
9
+ *
10
+ * Zero runtime deps — global `fetch` and the standard library only. Kept out of
11
+ * `mandate-codec.ts` so the offline verifier path stays pure and network-free.
12
+ */
13
+ /**
14
+ * Map a `did:web` identifier to its standard document URL.
15
+ * did:web:id.codespar.dev → https://id.codespar.dev/.well-known/did.json
16
+ * did:web:id.codespar.dev:org:agent → https://id.codespar.dev/org/agent/did.json
17
+ * Colon-separated path segments become URL path segments; a `%3A` in the domain
18
+ * segment decodes to a port. Returns null for a non-did:web input.
19
+ */
20
+ export function didWebToUrl(did) {
21
+ if (!did.startsWith("did:web:"))
22
+ return null;
23
+ const rest = did.slice("did:web:".length);
24
+ if (rest.length === 0)
25
+ return null;
26
+ const segments = rest.split(":");
27
+ const domain = decodeURIComponent(segments[0]);
28
+ const path = segments.slice(1).map((s) => decodeURIComponent(s));
29
+ if (path.length === 0) {
30
+ return `https://${domain}/.well-known/did.json`;
31
+ }
32
+ return `https://${domain}/${path.join("/")}/did.json`;
33
+ }
34
+ /** The api.codespar.dev fallback route that serves the DID doc today. */
35
+ export function apiFallbackUrl(did, baseUrl) {
36
+ const base = baseUrl.replace(/\/+$/, "");
37
+ return `${base}/v1/agents/${encodeURIComponent(did)}/did.json`;
38
+ }
39
+ async function fetchJson(url, timeoutMs) {
40
+ const controller = new AbortController();
41
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
42
+ try {
43
+ const res = await fetch(url, {
44
+ headers: { Accept: "application/did+json, application/json" },
45
+ signal: controller.signal,
46
+ });
47
+ if (!res.ok)
48
+ return null;
49
+ return (await res.json());
50
+ }
51
+ catch {
52
+ return null;
53
+ }
54
+ finally {
55
+ clearTimeout(timer);
56
+ }
57
+ }
58
+ /** Extract every Ed25519 (OKP) key from a DID document's verificationMethod. */
59
+ function keysFromDocument(doc) {
60
+ if (!doc || typeof doc !== "object")
61
+ return [];
62
+ const methods = doc.verificationMethod;
63
+ if (!Array.isArray(methods))
64
+ return [];
65
+ const keys = [];
66
+ for (const m of methods) {
67
+ const jwk = m?.publicKeyJwk;
68
+ if (!jwk || jwk.kty !== "OKP" || jwk.crv !== "Ed25519")
69
+ continue;
70
+ if (typeof jwk.x !== "string" || typeof m.id !== "string")
71
+ continue;
72
+ const pubkey = Buffer.from(jwk.x, "base64url");
73
+ if (pubkey.length !== 32)
74
+ continue;
75
+ keys.push({ kid: m.id, pubkey });
76
+ }
77
+ return keys;
78
+ }
79
+ /**
80
+ * Resolve a `did:web` identifier to its Ed25519 public keys. Tries the standard
81
+ * did:web URL, then the api.codespar.dev encoded fallback. Keys matching
82
+ * `preferredKid` are ordered first so the caller can verify against the exact
83
+ * signing key when the token names one. Returns [] if the document can't be
84
+ * fetched or carries no Ed25519 keys.
85
+ */
86
+ export async function resolveDidKeys(did, opts = {}) {
87
+ const baseUrl = opts.baseUrl ?? "https://api.codespar.dev";
88
+ const timeoutMs = opts.timeoutMs ?? 15_000;
89
+ const candidates = [];
90
+ const standard = didWebToUrl(did);
91
+ if (standard)
92
+ candidates.push(standard);
93
+ candidates.push(apiFallbackUrl(did, baseUrl));
94
+ for (const url of candidates) {
95
+ const doc = await fetchJson(url, timeoutMs);
96
+ const keys = keysFromDocument(doc);
97
+ if (keys.length > 0) {
98
+ if (opts.preferredKid) {
99
+ keys.sort((a, b) => a.kid === opts.preferredKid ? -1 : b.kid === opts.preferredKid ? 1 : 0);
100
+ }
101
+ return keys;
102
+ }
103
+ }
104
+ return [];
105
+ }
106
+ //# sourceMappingURL=did.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did.js","sourceRoot":"","sources":["../src/did.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ import { discoverCommand } from "./commands/discover.js";
14
14
  import { chargeCommand } from "./commands/charge.js";
15
15
  import { spendCommand } from "./commands/spend.js";
16
16
  import { mandateCreateCommand } from "./commands/mandate.js";
17
+ import { mandateVerifyCommand } from "./commands/mandate-verify.js";
17
18
  import { walletCommand } from "./commands/wallet.js";
18
19
  import { transferCommand } from "./commands/transfer.js";
19
20
  import { shipCommand } from "./commands/ship.js";
@@ -247,6 +248,20 @@ mandate
247
248
  const auth = await resolveAuth();
248
249
  await mandateCreateCommand({ ...opts, ...auth, json: rootJsonFlag() });
249
250
  });
251
+ mandate
252
+ .command("verify <token>")
253
+ .description("Verify a V3 mandate presentation token offline (agent + issuer Ed25519 signatures)")
254
+ .option("--agent-pubkey <hex>", "Raw 32-byte Ed25519 agent public key (hex). Forces pure-offline verification (no network).")
255
+ .option("--issuer-pubkey <hex>", "Raw 32-byte Ed25519 issuer public key (hex). Forces pure-offline verification (no network).")
256
+ .option("--issuer-did <did>", "Issuer DID for network mode (default: did:web derived from the agent DID host)")
257
+ .action(async (token, opts) => {
258
+ // Offline verification needs no API key — resolve the base URL (for the
259
+ // network fallback) from flags/env/config without requiring auth.
260
+ const config = await loadConfig();
261
+ const root = program.opts();
262
+ const baseUrl = root.baseUrl ?? config.baseUrl ?? "https://api.codespar.dev";
263
+ await mandateVerifyCommand(token, { ...opts, baseUrl, json: rootJsonFlag() });
264
+ });
250
265
  program
251
266
  .command("spend")
252
267
  .description("Execute an agentic spend against a consumer mandate (Pix / USDC / x402 by payee)")
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Offline V3 mandate verification — a dependency-free port of the canonical
3
+ * signing-string format from `codespar-enterprise/packages/mandate/canonical.ts`.
4
+ *
5
+ * This is the third-party verifier path: given only a presentation token and a
6
+ * raw 32-byte Ed25519 public key (from a did:web document), a counterparty can
7
+ * reconstruct the exact 14-field signing string and verify the agent + issuer
8
+ * signatures with `node:crypto` alone — no CodeSpar API call, no CodeSpar code.
9
+ *
10
+ * PORT, not import: the codec lives in the private enterprise repo. The byte
11
+ * format is frozen by `tests/fixtures/canonical.v3.fixture.json` (copied into
12
+ * this package's tests), so any drift here fails the fixture byte-lock.
13
+ *
14
+ * Zero runtime deps — `node:crypto` and the standard library only, matching the
15
+ * SDK's zero-dependency constraint.
16
+ */
17
+ import { createPublicKey, verify as nodeVerify } from "node:crypto";
18
+ /**
19
+ * Decode a signed token produced by the enterprise `computeToken`: a base64url
20
+ * UTF-8 JSON object carrying all MandateFields plus `signature` (org-HMAC hex)
21
+ * and — for V3 — the `agent_sig` / `issuer_sig` / `kid` envelope members.
22
+ *
23
+ * DOES NOT verify anything; it only splits the envelope from the signed fields
24
+ * so `mandate` is exactly the field set the signatures cover.
25
+ */
26
+ export function decodeToken(token) {
27
+ let raw;
28
+ try {
29
+ raw = JSON.parse(Buffer.from(token, "base64url").toString("utf8"));
30
+ }
31
+ catch {
32
+ return { ok: false, error: "invalid_payload" };
33
+ }
34
+ if (!raw || typeof raw !== "object") {
35
+ return { ok: false, error: "invalid_payload" };
36
+ }
37
+ const r = raw;
38
+ const version = r["format_version"];
39
+ if (typeof version !== "number" || !Number.isInteger(version) || version < 2) {
40
+ return { ok: false, error: "mandate_format_unsupported" };
41
+ }
42
+ if (!isValidMandateFields(r)) {
43
+ return { ok: false, error: "invalid_payload" };
44
+ }
45
+ // Pull the envelope members out so `mandate` is exactly the signed fields.
46
+ const { signature, agent_sig, issuer_sig, kid, ...fields } = r;
47
+ if (typeof signature !== "string") {
48
+ return { ok: false, error: "invalid_payload" };
49
+ }
50
+ const decoded = { mandate: fields, signature };
51
+ if (typeof agent_sig === "string")
52
+ decoded.agent_sig = agent_sig;
53
+ if (typeof issuer_sig === "string")
54
+ decoded.issuer_sig = issuer_sig;
55
+ if (typeof kid === "string")
56
+ decoded.kid = kid;
57
+ return { ok: true, token: decoded };
58
+ }
59
+ function isValidMandateFields(r) {
60
+ if (typeof r["format_version"] !== "number")
61
+ return false;
62
+ if (typeof r["id"] !== "string")
63
+ return false;
64
+ if (typeof r["agent_id"] !== "string")
65
+ return false;
66
+ if (!["payment", "subscription", "delegation"].includes(r["type"]))
67
+ return false;
68
+ if (typeof r["amount"] !== "string")
69
+ return false;
70
+ if (typeof r["currency"] !== "string")
71
+ return false;
72
+ if (!Array.isArray(r["purposes"]))
73
+ return false;
74
+ if (typeof r["expires_at"] !== "number")
75
+ return false;
76
+ if (typeof r["secret_version"] !== "number")
77
+ return false;
78
+ // V3 binds the KYC'd principal and the signing key into the signed string,
79
+ // so both are mandatory for a well-formed V3 payload.
80
+ if (r["format_version"] === 3) {
81
+ if (typeof r["principal_kyc_ref"] !== "string")
82
+ return false;
83
+ if (typeof r["agent_kid"] !== "string")
84
+ return false;
85
+ }
86
+ return true;
87
+ }
88
+ /**
89
+ * Reconstruct the canonical signing string the Ed25519 signatures cover.
90
+ *
91
+ * Field order (V3 = 14 fields, 13 `:` separators): V2's 12 fields, then the two
92
+ * V3-only fields appended (principal_kyc_ref, agent_kid). Absent optionals
93
+ * render as the empty string so the separator count is invariant. `purposes` is
94
+ * comma-joined after a lexicographic sort with escaping (`\` → `\\` first, then
95
+ * `,` → `\,`). Colons inside `agent_kid` (from the `did:web` prefix) are emitted
96
+ * verbatim — the signing string is a one-way serialization, never re-split.
97
+ *
98
+ * A V2 mandate reconstructs to 12 fields because its two V3 fields are absent
99
+ * (rendered empty would change the byte count), so this reads the fields it
100
+ * needs and appends the V3 tail only when `format_version >= 3`.
101
+ */
102
+ export function reconstructSigningString(f) {
103
+ const esc = (s) => s.replace(/\\/g, "\\\\").replace(/,/g, "\\,");
104
+ const purposes = (f["purposes"] ?? [])
105
+ .slice()
106
+ .sort()
107
+ .map(esc)
108
+ .join(",");
109
+ const version = Number(f["format_version"]);
110
+ const parts = [
111
+ String(f["format_version"]),
112
+ f["id"],
113
+ f["agent_id"],
114
+ f["type"],
115
+ f["amount"],
116
+ f["currency"],
117
+ purposes,
118
+ String(f["expires_at"]),
119
+ f["max_amount"] ?? "",
120
+ f["parent_id"] ?? "",
121
+ f["denomination"] ?? "",
122
+ String(f["secret_version"]),
123
+ ];
124
+ if (version >= 3) {
125
+ parts.push(f["principal_kyc_ref"] ?? "", f["agent_kid"] ?? "");
126
+ }
127
+ return parts.join(":");
128
+ }
129
+ // ── Ed25519 verify with only a raw 32-byte public key ─────────────────
130
+ //
131
+ // A raw Ed25519 public key becomes an SPKI KeyObject by prefixing the fixed
132
+ // RFC 8410 header (302a300506032b6570032100). This is the exact wrapper a bare
133
+ // third-party verifier uses; no key resolution happens here.
134
+ const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
135
+ function publicKeyFromRaw(pub) {
136
+ if (pub.length !== 32) {
137
+ throw new Error(`Ed25519 public key must be 32 bytes, got ${pub.length}`);
138
+ }
139
+ return createPublicKey({
140
+ key: Buffer.concat([ED25519_SPKI_PREFIX, pub]),
141
+ format: "der",
142
+ type: "spki",
143
+ });
144
+ }
145
+ /**
146
+ * Verify an Ed25519 signature (base64url) over a signing string with only the
147
+ * raw 32-byte public key. Returns false — never throws — on a malformed key or
148
+ * signature, so callers treat it as a single boolean gate.
149
+ */
150
+ export function verifyEd25519(signingString, signatureB64url, pub) {
151
+ try {
152
+ return nodeVerify(null, Buffer.from(signingString, "utf8"), publicKeyFromRaw(pub), Buffer.from(signatureB64url, "base64url"));
153
+ }
154
+ catch {
155
+ return false;
156
+ }
157
+ }
158
+ /**
159
+ * Parse a hex-encoded raw Ed25519 public key into a 32-byte Buffer.
160
+ * Returns null on any malformed input (odd length, non-hex, wrong byte count).
161
+ */
162
+ export function parsePubkeyHex(hex) {
163
+ const clean = hex.trim().toLowerCase().replace(/^0x/, "");
164
+ if (clean.length !== 64 || !/^[0-9a-f]+$/.test(clean))
165
+ return null;
166
+ return Buffer.from(clean, "hex");
167
+ }
168
+ /** Strip the `#<fragment>` from an agent key id to recover the bare agent DID. */
169
+ export function agentDidFromKid(kid) {
170
+ const hash = kid.indexOf("#");
171
+ return hash === -1 ? kid : kid.slice(0, hash);
172
+ }
173
+ //# sourceMappingURL=mandate-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mandate-codec.js","sourceRoot":"","sources":["../src/mandate-codec.ts"],"names":[],"mappings":"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"}
package/dist/version.js CHANGED
@@ -4,5 +4,5 @@
4
4
  * can never drift. Keep in sync with package.json on release (prepublishOnly
5
5
  * could assert equality if drift ever recurs).
6
6
  */
7
- export const VERSION = "0.5.4";
7
+ export const VERSION = "0.5.5";
8
8
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@codespar/cli",
3
- "version": "0.5.4",
4
- "description": "CodeSpar CLI — authenticate, browse servers, execute tools, manage sessions, stream logs, and scaffold projects from your terminal.",
3
+ "version": "0.6.0",
4
+ "description": "CodeSpar CLI. The agentic OS for money movement in Latin America, from your terminal: authenticate, browse servers, mint mandates, execute tools, manage sessions, stream logs.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "codespar": "./dist/index.js"
@@ -46,7 +46,7 @@
46
46
  "node": ">=20"
47
47
  },
48
48
  "dependencies": {
49
- "@codespar/sdk": "^0.10.1",
49
+ "@codespar/sdk": "^0.11.0",
50
50
  "commander": "^13.0.0"
51
51
  },
52
52
  "devDependencies": {