@cef-ai/cli 1.12.1 → 2.0.1

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 CHANGED
@@ -23,9 +23,8 @@ invoke it via `pnpm exec cef <subcommand>`.
23
23
  | `cef build` | shipped | Lint the agent entry, bundle with esbuild (the bundle imports the SDK runtime shims and installs `globalThis.__handlers`), emit `dist/<agentId>/{bundle.js,manifest.json}`. |
24
24
  | `cef typegen` | shipped | Generate `.cef/generated.d.ts` (declaration-merged `KnownEventTypes`) and refresh `cef.lock.json`. |
25
25
  | `cef inspect <agentDir>` | shipped | Read a built `manifest.json`, run the bundle in `node:vm`, and report the handler names exposed on `__handlers` plus any routing targets the manifest references but the bundle doesn't expose. |
26
- | `cef publish` | shipped | Sign a built agent's card and POST it to the marketplace API (credentials resolved AWS-CLI-style). |
26
+ | `cef publish` | shipped | POST a built agent's card to the marketplace API (`--as-pubkey`, `--access-token`/`$CEF_ACCESS_TOKEN` — the same CLI access token `cef deploy` uses). |
27
27
  | `cef push` | shipped | Upload a built agent's `bundle.js` (+ widget dirs) to DDC and stamp the manifest's bundle ref. |
28
- | `cef keypair generate` | shipped | Materialise a new AS Ed25519 keypair (stdout, `--out` file, or `--profile`). |
29
28
  | `cef test` | stub | Placeholder — use `vitest` directly with `@cef-ai/testing` until the integrated runner lands. |
30
29
  | `cef dev` | stub | Placeholder — pending the packaged platform image. |
31
30
 
@@ -97,13 +97,13 @@ export interface AgentConfigLike {
97
97
  source?: string;
98
98
  card?: AgentCard;
99
99
  /**
100
- * Optional pre-existing topology AS pubkey (bare hex, no `0x`). When
101
- * set, the build step stamps it into `manifest.agentServicePubkey`
102
- * and `cef publish` uses it as the agentId prefix — letting the dev
103
- * point at a TSS-DKG'd AS that has no holdable private key while
104
- * still signing the publish envelope with a throwaway local keypair.
105
- * When omitted, the publisher's signing pubkey is used (legacy
106
- * behavior).
100
+ * Optional pre-existing topology AS pubkey (either hex form — `cef
101
+ * publish` normalizes to `0x`-prefixed). When set, the build step
102
+ * stamps it into `manifest.agentServicePubkey` and `cef publish` uses
103
+ * it as the agentId prefix — letting the dev point at a TSS-DKG'd AS
104
+ * that has no holdable private key. When omitted, `cef publish`
105
+ * requires `--as-pubkey` instead and throws if neither is set —
106
+ * there is no other identity to fall back to.
107
107
  */
108
108
  agentServicePubkey?: string;
109
109
  requiredScopes?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"cli-program.d.ts","sourceRoot":"","sources":["../src/cli-program.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAA+B,CAAC;AACpE,eAAO,MAAM,gBAAgB,QAAgC,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,CAAC;CACnC;AAQD,wBAAgB,YAAY,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAqkBpE"}
1
+ {"version":3,"file":"cli-program.d.ts","sourceRoot":"","sources":["../src/cli-program.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAA+B,CAAC;AACpE,eAAO,MAAM,gBAAgB,QAAgC,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,CAAC;CACnC;AAQD,wBAAgB,YAAY,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAigBpE"}
@@ -14,7 +14,6 @@ import { cefDeploy } from "./commands/deploy.js";
14
14
  import { cefDev } from "./commands/dev.js";
15
15
  import { cefInit } from "./commands/init.js";
16
16
  import { cefInspect } from "./commands/inspect.js";
17
- import { cefKeypairGenerate } from "./commands/keypair.js";
18
17
  import { cefPublish } from "./commands/publish.js";
19
18
  import { cefPush } from "./commands/push.js";
20
19
  import { cefTypegen } from "./commands/typegen.js";
@@ -156,12 +155,9 @@ export function buildProgram(opts = {}) {
156
155
  .option("--env <env>", "Environment: dev | stage | prod (default dev; overrides $CEF_ENV)")
157
156
  .option("--marketplace <url>", "Marketplace base URL (overrides --env / $CEF_MARKETPLACE_URL)")
158
157
  .option("--agent <id>", "Which dist/<id>/ to publish (defaults to the only built agent)")
159
- .option("--privkey <hex>", "AS private key (hex, 64 chars). Pair with --pubkey.")
160
- .option("--pubkey <hex>", "AS public key (hex, 64 chars). Pair with --privkey.")
161
- .option("--keystore <path>", "Path to a JSON keystore file `{ pubkey, privkey }`")
162
- .option("--profile <name>", "Profile section in ~/.config/cef/credentials (default: 'default')")
163
158
  .option("--out <dir>", "Output directory the build wrote to (defaults to dist)", "dist")
164
- .option("--as-pubkey <hex>", "On-platform AS pubkey for manifest.agentServicePubkey + agentId prefix (bare hex, no 0x). Overrides cef.config.ts.")
159
+ .option("--as-pubkey <hex>", "On-platform AS pubkey for manifest.agentServicePubkey + agentId prefix (either hex form). Overrides cef.config.ts.")
160
+ .option("--access-token <token>", "CLI access token proving you're authorized to publish for --as-pubkey, minted in ROC's Access tab or Quickstart guide — the same token cef deploy uses (overrides $CEF_ACCESS_TOKEN)")
165
161
  .action(async (subOpts) => {
166
162
  try {
167
163
  const marketplaceUrl = subOpts.marketplace ??
@@ -170,14 +166,13 @@ export function buildProgram(opts = {}) {
170
166
  const publishOpts = {
171
167
  marketplaceUrl,
172
168
  ...(subOpts.agent !== undefined ? { agentId: subOpts.agent } : {}),
173
- ...(subOpts.privkey !== undefined ? { privkey: subOpts.privkey } : {}),
174
- ...(subOpts.pubkey !== undefined ? { pubkey: subOpts.pubkey } : {}),
175
- ...(subOpts.keystore !== undefined ? { keystore: subOpts.keystore } : {}),
176
- ...(subOpts.profile !== undefined ? { profile: subOpts.profile } : {}),
177
169
  ...(subOpts.out !== undefined ? { distDir: subOpts.out } : {}),
178
170
  ...(subOpts.asPubkey !== undefined
179
171
  ? { agentServicePubkey: subOpts.asPubkey }
180
172
  : {}),
173
+ ...(subOpts.accessToken !== undefined
174
+ ? { accessToken: subOpts.accessToken }
175
+ : {}),
181
176
  ...(opts.fetchImpl !== undefined ? { fetchImpl: opts.fetchImpl } : {}),
182
177
  };
183
178
  const result = await cefPublish(publishOpts);
@@ -187,10 +182,6 @@ export function buildProgram(opts = {}) {
187
182
  console.log(` pubkey: ${result.pubkey}`);
188
183
  }
189
184
  catch (e) {
190
- // CredentialsError carries either a single-line typo message or
191
- // the canonical multi-line "no AS credentials configured" guidance
192
- // block. Both ship through `onError` unchanged — the default impl
193
- // writes to stderr, which is what we want.
194
185
  onError(e);
195
186
  }
196
187
  });
@@ -325,41 +316,6 @@ export function buildProgram(opts = {}) {
325
316
  onError(e);
326
317
  }
327
318
  });
328
- const keypair = program
329
- .command("keypair")
330
- .description("Manage AS Ed25519 keypairs (Agent Service identity)");
331
- keypair
332
- .command("generate")
333
- .description("Generate a new AS keypair (stdout, --out file, or --profile)")
334
- .option("--out <path>", "Write the JSON keypair to <path> (mode 0600); refuses existing unless --force")
335
- .option("--profile <name>", "Write/merge into ~/.config/cef/credentials under [<name>] (mode 0600)")
336
- .option("--force", "Overwrite an existing --out file or --profile section")
337
- .action(async (subOpts) => {
338
- try {
339
- const result = await cefKeypairGenerate({
340
- ...(subOpts.out !== undefined ? { out: subOpts.out } : {}),
341
- ...(subOpts.profile !== undefined ? { profile: subOpts.profile } : {}),
342
- ...(subOpts.force !== undefined ? { force: subOpts.force } : {}),
343
- });
344
- if (result.path === undefined && result.profile === undefined) {
345
- // Default sink: print the JSON to stdout.
346
- process.stdout.write(JSON.stringify({ pubkey: result.pubkey, privkey: result.privkey }) +
347
- "\n");
348
- return;
349
- }
350
- const profileSuffix = result.profile
351
- ? ` [profile: ${result.profile}]`
352
- : "";
353
- console.log(`✓ AS keypair written to ${result.path}${profileSuffix}`);
354
- console.log(` Pubkey: ${result.pubkey}`);
355
- console.log(" This keypair is your Agent Service identity. Keep the private key safe.");
356
- console.log(" To share with your team, hand them the file or sync it through your team's");
357
- console.log(" secrets manager — do NOT generate a new one for each developer.");
358
- }
359
- catch (e) {
360
- onError(e);
361
- }
362
- });
363
319
  program
364
320
  .command("dev")
365
321
  .argument("[widgetId]", "Which widget to serve (defaults to the first declared widget)")
@@ -1 +1 @@
1
- {"version":3,"file":"cli-program.js","sourceRoot":"","sources":["../src/cli-program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-program.js","sourceRoot":"","sources":["../src/cli-program.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,42 @@
1
- import { type AsCredentials, type ResolveCredentialsOptions } from "../lib/credentials.js";
2
1
  export interface CefPublishOptions {
3
2
  /** Resolved marketplace base URL — no trailing slash assumed. */
4
3
  marketplaceUrl: string;
5
4
  /** Which `dist/<id>/` to publish; auto-detected when undefined. */
6
5
  agentId?: string;
7
- /** Hex private seed (pairs with `pubkey`); highest-priority credential source. */
8
- privkey?: string;
9
- /** Hex public key paired with `privkey`. */
10
- pubkey?: string;
11
- /** Path to a JSON keystore file `{ pubkey, privkey }`. */
12
- keystore?: string;
13
- /** Profile name within the shared `~/.config/cef/credentials` file. */
14
- profile?: string;
15
6
  /** Defaults to `<cwd>/dist`. */
16
7
  distDir?: string;
17
8
  /** Defaults to `process.cwd()`. */
18
9
  cwd?: string;
19
10
  /**
20
11
  * Override the on-platform AS pubkey stamped into `manifest.agentId`
21
- * + `manifest.agentServicePubkey`. Bare hex (no `0x`). Highest
12
+ * + `manifest.agentServicePubkey`. Either form — a bare hex key is
13
+ * normalized to the `0x`-prefixed form the platform stores. Highest
22
14
  * precedence — overrides whatever `cef build` left in the manifest.
23
- * Use this to publish under a topology-DKG'd AS pubkey while still
24
- * signing the envelope with a local keypair. When omitted, the CLI
25
- * prefers `manifest.agentServicePubkey` from `cef.config.ts`, then
26
- * falls back to the publisher's signing pubkey.
15
+ * When omitted, falls back to `manifest.agentServicePubkey` from
16
+ * `cef.config.ts`.
27
17
  */
28
18
  agentServicePubkey?: string;
19
+ /**
20
+ * CLI access token (a wallet-api delegation minted in ROC's Access tab or
21
+ * Quickstart guide — the same one `cef deploy` uses), sent as
22
+ * `Authorization: Bearer <token>`. The marketplace verifies its delegator
23
+ * is authorized to publish for `agentServicePubkey` (its on-chain owner,
24
+ * or a member of that AS's roster) — this IS the publish credential;
25
+ * there is no other. Falls back to $CEF_ACCESS_TOKEN.
26
+ */
27
+ accessToken?: string;
29
28
  /**
30
29
  * `fetch` override — defaults to `globalThis.fetch`. Tests pass a stub so
31
30
  * the integration spec can assert on the wire shape without touching the
32
31
  * network.
33
32
  */
34
33
  fetchImpl?: typeof fetch;
35
- /**
36
- * Override the credential resolver. Tests inject a fixed keypair this way
37
- * so they don't have to set up flags/env/files.
38
- */
39
- resolveCredentialsImpl?: (opts: ResolveCredentialsOptions) => Promise<AsCredentials>;
40
34
  }
41
35
  export interface CefPublishResult {
42
36
  /** Whatever `agentId` the marketplace returned (plain alias today). */
43
37
  agentId: string;
44
38
  version: string;
45
- /** Pubkey the card was published as (hex). */
39
+ /** The on-platform AS pubkey this card was published under (hex). */
46
40
  pubkey: string;
47
41
  }
48
42
  export declare function cefPublish(opts: CefPublishOptions): Promise<CefPublishResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAsCA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CACvB,IAAI,EAAE,yBAAyB,KAC5B,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;CAChB;AAgCD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAwI3B"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;CAChB;AAgCD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA6I3B"}
@@ -9,10 +9,12 @@
9
9
  *
10
10
  * POST <marketplaceUrl>/api/v1/marketplace/agents
11
11
  * Headers:
12
- * Content-Type: application/json
13
- * X-AS-Pubkey: <hex Ed25519 pubkey>
14
- * X-AS-Signature: <hex Ed25519 signature over canonical body bytes>
15
- * Body (JCS-canonicalized JSON):
12
+ * Content-Type: application/json
13
+ * Authorization: Bearer <CLI access token> (a wallet-api delegation,
14
+ * same one cef deploy uses — proves the caller is
15
+ * authorized to publish for agentServicePubkey; see
16
+ * --access-token below)
17
+ * Body:
16
18
  * {
17
19
  * agentId: <composite "<asPubKey>:<alias>">,
18
20
  * version: <semver>,
@@ -25,19 +27,19 @@
25
27
  *
26
28
  * Response 201 JSON: { agentId, version } (nothing manifest-derived).
27
29
  *
30
+ * The CLI access token IS the authorization — its delegator must be the AS
31
+ * bucket's on-chain owner or a publish-capable member of its members.json.
32
+ * There is no separate signing keypair; `cef keypair` doesn't exist.
33
+ *
28
34
  * `cef build` emits the manifest with `agentId` / `agentServicePubkey` left
29
35
  * as empty strings; this command resolves them (composite `<asPubKey>:<alias>`
30
- * for `agentId`, the loaded AS pubkey for `agentServicePubkey`) and extracts
31
- * `manifest.card` for the body before signing the envelope. Vault enforces
36
+ * for `agentId`) and extracts `manifest.card` for the body. Vault enforces
32
37
  * the `<asPubKey>:` prefix on connect, so the canonical form is composite —
33
38
  * the plain alias is recorded only in the manifest (in the DDC registry).
34
39
  */
35
40
  import crypto from "node:crypto";
36
41
  import fs from "node:fs/promises";
37
42
  import path from "node:path";
38
- import { resolveCredentials, } from "../lib/credentials.js";
39
- import { canonicalize } from "../lib/jcs.js";
40
- import { signBody } from "../lib/signing.js";
41
43
  const DEFAULT_DIST = "dist";
42
44
  export async function cefPublish(opts) {
43
45
  const cwd = opts.cwd ? path.resolve(opts.cwd) : process.cwd();
@@ -48,6 +50,13 @@ export async function cefPublish(opts) {
48
50
  if (!fetchImpl) {
49
51
  throw new Error("[cef publish] no fetch implementation available (pass opts.fetchImpl or run on Node ≥18)");
50
52
  }
53
+ const rawAccessToken = opts.accessToken ?? process.env.CEF_ACCESS_TOKEN;
54
+ const accessToken = rawAccessToken && rawAccessToken.trim().length > 0 ? rawAccessToken : undefined;
55
+ if (!accessToken) {
56
+ throw new Error("[cef publish] no CLI access token.\n\n" +
57
+ "Pass --access-token <token> or set $CEF_ACCESS_TOKEN.\n" +
58
+ "Generate one in ROC → Quickstart step 6 (or the Access tab).");
59
+ }
51
60
  const agentId = opts.agentId ?? (await autodetectAgentId(distDir));
52
61
  const agentDir = path.join(distDir, agentId);
53
62
  const manifestPath = path.join(agentDir, "manifest.json");
@@ -77,43 +86,35 @@ export async function cefPublish(opts) {
77
86
  // (`<asPubkey>:<alias>`) is present, take the tail so re-composing the
78
87
  // agentId below doesn't double the pubkey.
79
88
  const alias = (manifest.alias ?? manifest.agentId?.split(":").pop());
80
- const resolver = opts.resolveCredentialsImpl ?? resolveCredentials;
81
- const credResolveOpts = {
82
- ...(opts.privkey !== undefined ? { privkeyFlag: opts.privkey } : {}),
83
- ...(opts.pubkey !== undefined ? { pubkeyFlag: opts.pubkey } : {}),
84
- ...(opts.keystore !== undefined ? { keystoreFlag: opts.keystore } : {}),
85
- ...(opts.profile !== undefined ? { profileFlag: opts.profile } : {}),
86
- };
87
- const { pubkey, privkeyBytes } = await resolver(credResolveOpts);
88
89
  // Resolve the on-platform AS pubkey for the agentId prefix +
89
90
  // manifest.agentServicePubkey. Precedence:
90
91
  // 1. Explicit --as-pubkey flag (opts.agentServicePubkey).
91
92
  // 2. manifest.agentServicePubkey already set by `cef build` (i.e.
92
93
  // cef.config.ts carried a topology AS pubkey).
93
- // 3. The publisher's signing pubkey (legacy behavior — random local
94
- // keypair, fine when topology has no entry for this agent yet).
95
- //
96
- // The signing pubkey (X-AS-Pubkey header + envelope signature) stays
97
- // independent. Marketplace verifies the signature against X-AS-Pubkey
98
- // but no longer ties X-AS-Pubkey to the agentId prefix — see
99
- // marketplace PR "drop agentId-prefix-equals-X-AS-Pubkey check".
100
- // Vault-api's connect saga still enforces
94
+ // Vault-api's connect saga enforces
101
95
  // `manifest.agentId.startsWith(manifest.agentServicePubKey + ':')`,
102
- // so we use the same value for both.
103
- const cleanPubkey = pubkey.startsWith("0x") ? pubkey.slice(2) : pubkey;
96
+ // so the same value is used for both.
104
97
  const explicitAsPubkey = opts.agentServicePubkey ??
105
98
  (typeof manifest.agentServicePubkey === "string" &&
106
99
  manifest.agentServicePubkey.length > 0
107
100
  ? manifest.agentServicePubkey
108
101
  : undefined);
109
- const asPubkey = (explicitAsPubkey ?? cleanPubkey).startsWith("0x")
110
- ? (explicitAsPubkey ?? cleanPubkey).slice(2)
111
- : (explicitAsPubkey ?? cleanPubkey);
102
+ if (!explicitAsPubkey) {
103
+ throw new Error("[cef publish] no AS pubkey to publish under — pass --as-pubkey or set agentServicePubkey in cef.config.ts");
104
+ }
105
+ // The orchestrator's agent_services row is keyed by an EXACT string match on
106
+ // `as_pubkey`, always "0x"-prefixed (how ROC displays and copies it) — see
107
+ // deploy.ts's identical normalization for why stripping it breaks lookups.
108
+ // publish doesn't call the orchestrator directly, but this same value is
109
+ // what vault-api's connect saga compares against `manifest.agentId`'s
110
+ // prefix, so it must match what deploy registered under the same flag.
111
+ const asPubkey = explicitAsPubkey.startsWith("0x")
112
+ ? explicitAsPubkey
113
+ : `0x${explicitAsPubkey}`;
112
114
  const compositeAgentId = `${asPubkey}:${alias}`;
113
115
  // Card-only wire body. The full manifest stays in the DDC bucket registry
114
116
  // (written by `cef push`); the marketplace only stores the card for
115
- // discovery. Sign the SAME envelope (headers, issuedAt, nonce) — only the
116
- // body shape changed from `manifest` to `card`.
117
+ // discovery.
117
118
  const body = {
118
119
  agentId: compositeAgentId,
119
120
  version: manifest.version,
@@ -122,17 +123,14 @@ export async function cefPublish(opts) {
122
123
  issuedAt: new Date().toISOString(),
123
124
  nonce: randomBase64UrlNonce(16),
124
125
  };
125
- const canonical = canonicalize(body);
126
- const signature = await signBody(canonical, privkeyBytes);
127
126
  const url = `${opts.marketplaceUrl.replace(/\/+$/, "")}/api/v1/marketplace/agents`;
128
127
  const res = await fetchImpl(url, {
129
128
  method: "POST",
130
129
  headers: {
131
130
  "content-type": "application/json",
132
- "X-AS-Pubkey": pubkey,
133
- "X-AS-Signature": signature,
131
+ Authorization: `Bearer ${accessToken}`,
134
132
  },
135
- body: canonical,
133
+ body: JSON.stringify(body),
136
134
  });
137
135
  if (res.status === 201) {
138
136
  const json = (await res.json());
@@ -142,14 +140,19 @@ export async function cefPublish(opts) {
142
140
  return {
143
141
  agentId: json.agentId,
144
142
  version: json.version,
145
- pubkey,
143
+ pubkey: asPubkey,
146
144
  };
147
145
  }
148
- // Friendly error path for replays. The marketplace returns
149
- // `{ error: "REPLAY", ... }` on 409 (see `recordNonce`).
150
146
  const text = await res.text();
151
- if (res.status === 409) {
152
- throw new Error(`[cef publish] REPLAY: nonce already used (${text})`);
147
+ let errBody;
148
+ try {
149
+ errBody = JSON.parse(text);
150
+ }
151
+ catch {
152
+ // Not JSON — fall through to the raw-text error below.
153
+ }
154
+ if (errBody?.error) {
155
+ throw new Error(`[cef publish] HTTP ${res.status} ${errBody.error}${errBody.message ? `: ${errBody.message}` : ""}`);
153
156
  }
154
157
  throw new Error(`[cef publish] marketplace returned HTTP ${res.status}: ${text}`);
155
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@
10
10
  *
11
11
  * Signing identity: `cef push` uses a SEPARATE substrate (Sr25519) signer
12
12
  * (`--secret-phrase` / `$CEF_DDC_SECRET_PHRASE`) — the DDC bucket owner —
13
- * distinct from the AS Ed25519 keypair that `cef publish` uses for the
14
- * marketplace envelope.
13
+ * distinct from the CLI access token (`--access-token` /
14
+ * `$CEF_ACCESS_TOKEN`) `cef publish` authorizes with.
15
15
  */
16
16
  import fs from "node:fs/promises";
17
17
  import path from "node:path";
package/dist/lib/ddc.d.ts CHANGED
@@ -88,8 +88,8 @@ export interface PushAgentVersionInput {
88
88
  buildManifestBytes: (refs: ManifestRefs) => Uint8Array | Promise<Uint8Array>;
89
89
  /**
90
90
  * Substrate secret phrase (Sr25519) — the DDC bucket owner. Distinct from
91
- * the AS Ed25519 keypair `cef publish` uses for the marketplace envelope.
92
- * Exactly one of `secretPhrase` or `accessToken` must be provided.
91
+ * the CLI access token `cef publish` authorizes with. Exactly one of
92
+ * `secretPhrase` or `accessToken` must be provided.
93
93
  */
94
94
  secretPhrase?: string;
95
95
  /**
package/dist/lib/jcs.d.ts CHANGED
@@ -3,9 +3,8 @@
3
3
  *
4
4
  * Re-exported from `@cef-ai/transport`, which wraps the same `canonicalize` npm
5
5
  * package the marketplace API uses and is byte-compatible with the wallet-api
6
- * Go `canonjson` oracle. Keeping one canonicalizer across the suite is what
7
- * keeps `cef publish` signatures verifiable server-side; this module stays so
8
- * existing `cef publish` call sites import `lib/jcs.js` unchanged.
6
+ * Go `canonjson` oracle. Used by `lib/cid.ts` to compute a manifest's content
7
+ * ID — `cef publish` no longer imports this (it stopped signing an envelope).
9
8
  */
10
9
  export { canonicalize, canonicalizeBytes } from "@cef-ai/transport";
11
10
  //# sourceMappingURL=jcs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jcs.d.ts","sourceRoot":"","sources":["../../src/lib/jcs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"jcs.d.ts","sourceRoot":"","sources":["../../src/lib/jcs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/lib/jcs.js CHANGED
@@ -3,9 +3,8 @@
3
3
  *
4
4
  * Re-exported from `@cef-ai/transport`, which wraps the same `canonicalize` npm
5
5
  * package the marketplace API uses and is byte-compatible with the wallet-api
6
- * Go `canonjson` oracle. Keeping one canonicalizer across the suite is what
7
- * keeps `cef publish` signatures verifiable server-side; this module stays so
8
- * existing `cef publish` call sites import `lib/jcs.js` unchanged.
6
+ * Go `canonjson` oracle. Used by `lib/cid.ts` to compute a manifest's content
7
+ * ID — `cef publish` no longer imports this (it stopped signing an envelope).
9
8
  */
10
9
  export { canonicalize, canonicalizeBytes } from "@cef-ai/transport";
11
10
  //# sourceMappingURL=jcs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jcs.js","sourceRoot":"","sources":["../../src/lib/jcs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"jcs.js","sourceRoot":"","sources":["../../src/lib/jcs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/lib.d.ts CHANGED
@@ -21,8 +21,4 @@ export { cefPush } from "./commands/push.js";
21
21
  export type { CefPushOptions, CefPushResult } from "./commands/push.js";
22
22
  export { cefDeploy } from "./commands/deploy.js";
23
23
  export type { CefDeployOptions, CefDeployResult } from "./commands/deploy.js";
24
- export { cefKeypairGenerate } from "./commands/keypair.js";
25
- export type { CefKeypairGenerateOptions, CefKeypairGenerateResult, } from "./commands/keypair.js";
26
- export { resolveCredentials, CredentialsError, defaultCredentialsFilePath, } from "./lib/credentials.js";
27
- export type { AsCredentials, CredentialSource, ResolveCredentialsOptions, } from "./lib/credentials.js";
28
24
  //# sourceMappingURL=lib.d.ts.map
package/dist/lib.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EACV,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,YAAY,EACV,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EACV,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,YAAY,EACV,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/lib.js CHANGED
@@ -12,6 +12,4 @@ export { cefInspect } from "./commands/inspect.js";
12
12
  export { cefPublish } from "./commands/publish.js";
13
13
  export { cefPush } from "./commands/push.js";
14
14
  export { cefDeploy } from "./commands/deploy.js";
15
- export { cefKeypairGenerate } from "./commands/keypair.js";
16
- export { resolveCredentials, CredentialsError, defaultCredentialsFilePath, } from "./lib/credentials.js";
17
15
  //# sourceMappingURL=lib.js.map
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAOnE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAMtE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAM3D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAOnE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAMtE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cef-ai/cli",
3
- "version": "1.12.1",
3
+ "version": "2.0.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -15,15 +15,14 @@
15
15
  "access": "public"
16
16
  },
17
17
  "dependencies": {
18
- "@noble/ed25519": "^2.1.0",
19
18
  "@noble/hashes": "^2.2.0",
20
19
  "commander": "^12.0.0",
21
20
  "esbuild": "^0.21.0",
22
21
  "json-schema-to-typescript": "^14.0.0",
23
22
  "typescript": "^5.4.0",
24
23
  "@cef-ai/agent-sdk": "3.0.0",
25
- "@cef-ai/transport": "1.1.0",
26
- "@cef-ai/widget-runtime": "1.0.0"
24
+ "@cef-ai/widget-runtime": "1.0.1",
25
+ "@cef-ai/transport": "1.1.0"
27
26
  },
28
27
  "optionalDependencies": {
29
28
  "@cere-ddc-sdk/ddc-client": "^2.16.1"
@@ -34,11 +34,21 @@ Each step and the external inputs it needs:
34
34
  3. `pnpm run deploy` — **makes a version live so you can run and test the agent**
35
35
  (including in a sandbox). Applies the `deployments/` folder; edit those files
36
36
  to target audiences or run A/B splits. Needs the platform `--endpoint`
37
- (defaults to dev; `$CEF_ENDPOINT` to override) + your AS pubkey.
37
+ (defaults to dev; `$CEF_ENDPOINT` to override), your **AS pubkey**, and a
38
+ **CLI access token you mint in the ROC UI** (ROC → your Agent Service →
39
+ **Access** → generate CLI access token — a different token from the DDC
40
+ one step 2 uses):
41
+ `cef deploy --as-pubkey <hex> --access-token <token>`
42
+ (or set `$CEF_ACCESS_TOKEN`; see `cef deploy --help`).
38
43
  4. `pnpm run publish` — **optional, and last.** Lists the agent's card in the
39
- marketplace for discovery (needs your **AS Ed25519 credentials** —
40
- `cef keypair generate` if you don't have them). Skip it for debug/test/sandbox;
41
- an agent runs because it's *deployed*, not because it's published.
44
+ marketplace for discovery. Needs your **AS pubkey** and the **same CLI
45
+ access token from step 3** — the marketplace checks its delegator owns
46
+ or is a publish-capable member of the AS. There's no separate signing
47
+ key to generate; these are the only two things this command needs:
48
+ `cef publish --as-pubkey <hex> --access-token <token>`
49
+ (or set `$CEF_ACCESS_TOKEN`; see `cef publish --help`). Skip it for
50
+ debug/test/sandbox; an agent runs because it's *deployed*, not because
51
+ it's published.
42
52
 
43
53
  ## AI-assisted development (Claude Code)
44
54
 
@@ -1,21 +0,0 @@
1
- export interface CefKeypairGenerateOptions {
2
- /** Write the JSON keypair to this path. Mutually exclusive with `profile`. */
3
- out?: string;
4
- /** Write/merge into the shared credentials file under this section. */
5
- profile?: string;
6
- /** Allow overwriting an existing file or profile. */
7
- force?: boolean;
8
- /** Override the credentials file path (tests). */
9
- configFilePath?: string;
10
- }
11
- export interface CefKeypairGenerateResult {
12
- pubkey: string;
13
- /** Hex-encoded private seed. */
14
- privkey: string;
15
- /** File path written, when `out` or `profile` was set. */
16
- path?: string;
17
- /** Profile name written, when `profile` was set. */
18
- profile?: string;
19
- }
20
- export declare function cefKeypairGenerate(opts?: CefKeypairGenerateOptions): Promise<CefKeypairGenerateResult>;
21
- //# sourceMappingURL=keypair.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keypair.d.ts","sourceRoot":"","sources":["../../src/commands/keypair.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiCD,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,wBAAwB,CAAC,CA8CnC"}
@@ -1,91 +0,0 @@
1
- /**
2
- * `cef keypair generate` — explicit AS Ed25519 keypair provisioning.
3
- *
4
- * The AS keypair represents an Agent Service identity, potentially shared
5
- * across a team. This command is the *only* place a keypair is materialised;
6
- * `cef publish` never auto-generates. Output sinks:
7
- *
8
- * - stdout (default): JSON `{ pubkey, privkey }`. Useful for `| pbcopy` or
9
- * piping into a secrets manager.
10
- * - `--out <path>`: writes the JSON to a file with mode 0600. Refuses
11
- * existing files unless `--force`.
12
- * - `--profile <name>`: writes/merges into the shared
13
- * `~/.config/cef/credentials` INI file, mode 0600. Refuses to overwrite
14
- * an existing profile unless `--force`. Atomic via temp + rename.
15
- *
16
- * The post-write banner reminds the developer this is identity material
17
- * meant to be shared with their team, not generated per-developer.
18
- */
19
- import fs from "node:fs/promises";
20
- import path from "node:path";
21
- import { defaultCredentialsFilePath, parseConfigFile, serializeConfigFile, } from "../lib/credentials.js";
22
- import { generateKeypair } from "../lib/signing.js";
23
- function bytesToHex(b) {
24
- let s = "";
25
- for (let i = 0; i < b.length; i++)
26
- s += b[i].toString(16).padStart(2, "0");
27
- return s;
28
- }
29
- async function exists(p) {
30
- try {
31
- await fs.stat(p);
32
- return true;
33
- }
34
- catch (e) {
35
- if (e.code === "ENOENT")
36
- return false;
37
- throw e;
38
- }
39
- }
40
- async function atomicWrite(filePath, content) {
41
- await fs.mkdir(path.dirname(filePath), { recursive: true });
42
- // Temp in the same dir so rename stays atomic across the same fs.
43
- const tmp = `${filePath}.tmp.${process.pid}.${Date.now()}`;
44
- await fs.writeFile(tmp, content, { encoding: "utf8", mode: 0o600 });
45
- try {
46
- await fs.rename(tmp, filePath);
47
- }
48
- catch (e) {
49
- await fs.rm(tmp, { force: true });
50
- throw e;
51
- }
52
- // chmod after rename in case the file pre-existed with looser perms.
53
- await fs.chmod(filePath, 0o600).catch(() => { });
54
- }
55
- export async function cefKeypairGenerate(opts = {}) {
56
- if (opts.out !== undefined && opts.profile !== undefined) {
57
- throw new Error("cef keypair generate: --out and --profile are mutually exclusive");
58
- }
59
- const { pubkey, privkeyBytes } = await generateKeypair();
60
- const privkey = bytesToHex(privkeyBytes);
61
- // Profile sink: merge into the shared credentials file.
62
- if (opts.profile !== undefined) {
63
- const filePath = opts.configFilePath ?? defaultCredentialsFilePath();
64
- let parsed = {};
65
- try {
66
- const existing = await fs.readFile(filePath, "utf8");
67
- parsed = parseConfigFile(existing);
68
- }
69
- catch (e) {
70
- if (e.code !== "ENOENT")
71
- throw e;
72
- }
73
- if (parsed[opts.profile] && !opts.force) {
74
- throw new Error(`cef keypair generate: profile [${opts.profile}] already exists in ${filePath} (pass --force to overwrite)`);
75
- }
76
- parsed[opts.profile] = { pubkey, privkey };
77
- await atomicWrite(filePath, serializeConfigFile(parsed));
78
- return { pubkey, privkey, path: filePath, profile: opts.profile };
79
- }
80
- // File sink: write the JSON keystore to `out`.
81
- if (opts.out !== undefined) {
82
- if ((await exists(opts.out)) && !opts.force) {
83
- throw new Error(`cef keypair generate: ${opts.out} already exists (pass --force to overwrite)`);
84
- }
85
- await atomicWrite(opts.out, JSON.stringify({ pubkey, privkey }, null, 2) + "\n");
86
- return { pubkey, privkey, path: opts.out };
87
- }
88
- // Default sink: stdout. Caller (CLI wrapper) prints the JSON.
89
- return { pubkey, privkey };
90
- }
91
- //# sourceMappingURL=keypair.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../src/commands/keypair.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- export type CredentialSource = "flags" | "env" | "keystore-flag" | "keystore-env" | "config-profile";
2
- export interface AsCredentials {
3
- /** 64-char lowercase hex (32 bytes), matches the wire format. */
4
- pubkey: string;
5
- /** Raw 32-byte Ed25519 seed. */
6
- privkeyBytes: Uint8Array;
7
- source: CredentialSource;
8
- /** Set only when `source === 'config-profile'`. */
9
- profileName?: string;
10
- }
11
- export interface ResolveCredentialsOptions {
12
- privkeyFlag?: string;
13
- pubkeyFlag?: string;
14
- keystoreFlag?: string;
15
- profileFlag?: string;
16
- /** Defaults to `process.env`. Tests pass an isolated map. */
17
- env?: NodeJS.ProcessEnv;
18
- /** Defaults to `<XDG_CONFIG_HOME|~/.config>/cef/credentials`. */
19
- configFilePath?: string;
20
- }
21
- export declare class CredentialsError extends Error {
22
- constructor(message: string);
23
- }
24
- export declare function defaultCredentialsFilePath(): string;
25
- /**
26
- * Parse a minimal INI file: section headers `[name]`, `key = value` pairs,
27
- * `;` and `#` line comments. No nested sections, no quoting, no escapes —
28
- * the credentials file shape is trivial and that's all we need.
29
- *
30
- * Returns a map of `{ section: { key: value } }`. Keys/values are trimmed.
31
- * Pre-section keys live under the empty-string section; the credentials
32
- * loader only reads named sections so those are ignored.
33
- */
34
- export declare function parseConfigFile(content: string): Record<string, Record<string, string>>;
35
- /**
36
- * Render a parsed INI map back to text. Sections are emitted in insertion
37
- * order; the empty-string section (if any) is dropped — this writer only
38
- * supports section-scoped credentials. Used by `cef keypair generate
39
- * --profile` when merging into the shared credentials file.
40
- */
41
- export declare function serializeConfigFile(data: Record<string, Record<string, string>>): string;
42
- export declare function resolveCredentials(opts: ResolveCredentialsOptions): Promise<AsCredentials>;
43
- //# sourceMappingURL=credentials.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/lib/credentials.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,KAAK,GACL,eAAe,GACf,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,YAAY,EAAE,UAAU,CAAC;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAgBD,wBAAgB,0BAA0B,IAAI,MAAM,CAInD;AAgED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA+BvF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3C,MAAM,CAYR;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,aAAa,CAAC,CAqHxB"}
@@ -1,241 +0,0 @@
1
- /**
2
- * Resolves the AS Ed25519 keypair `cef publish` (and any future signing
3
- * subcommand) needs to sign the publish envelope. The AS keypair represents
4
- * the Agent Service identity — potentially shared across a team — so it is
5
- * never silently auto-generated. Callers must explicitly provision it.
6
- *
7
- * Resolution follows AWS-CLI conventions and walks these sources in priority
8
- * order, returning the first one that produces a complete keypair:
9
- *
10
- * 1. CLI flags (`--privkey` + `--pubkey`)
11
- * 2. Env vars (`CEF_AS_PRIVATE_KEY` + `CEF_AS_PUBLIC_KEY`)
12
- * 3. Keystore file via flag(`--keystore <path>`)
13
- * 4. Keystore file via env (`CEF_AS_KEYSTORE`)
14
- * 5. Profile in shared config (`~/.config/cef/credentials`, INI, profile
15
- * selected by `--profile` / `CEF_PROFILE`, default `default`).
16
- *
17
- * If none produces credentials, a `CredentialsError` is thrown carrying the
18
- * canonical multi-line guidance message — the CLI surfaces that verbatim on
19
- * stderr before exiting non-zero.
20
- */
21
- import fs from "node:fs/promises";
22
- import os from "node:os";
23
- import path from "node:path";
24
- export class CredentialsError extends Error {
25
- constructor(message) {
26
- super(message);
27
- this.name = "CredentialsError";
28
- }
29
- }
30
- const NO_CREDENTIALS_MESSAGE = `Error: no AS credentials configured.
31
-
32
- Provide credentials via one of:
33
- - flags: --privkey <hex> --pubkey <hex>
34
- - env: CEF_AS_PRIVATE_KEY=<hex> CEF_AS_PUBLIC_KEY=<hex>
35
- - file: --keystore <path> (or CEF_AS_KEYSTORE env)
36
- - file: ~/.config/cef/credentials (with [default] or another profile via --profile)
37
-
38
- Generate a new keypair with:
39
- cef keypair generate
40
-
41
- Note: the AS keypair represents your Agent Service identity. If you're publishing for an
42
- existing team, ask your team for the existing keypair — don't generate a new one.`;
43
- export function defaultCredentialsFilePath() {
44
- const xdg = process.env.XDG_CONFIG_HOME;
45
- const base = xdg && xdg.length > 0 ? xdg : path.join(os.homedir(), ".config");
46
- return path.join(base, "cef", "credentials");
47
- }
48
- const HEX_RE = /^[0-9a-fA-F]{64}$/;
49
- function normalizePubkey(hex, ctx) {
50
- if (!HEX_RE.test(hex)) {
51
- throw new CredentialsError(`${ctx}: pubkey must be 64 hex chars (32 bytes), got ${hex.length} chars`);
52
- }
53
- return hex.toLowerCase();
54
- }
55
- function hexToBytes(hex, ctx) {
56
- if (!HEX_RE.test(hex)) {
57
- throw new CredentialsError(`${ctx}: privkey must be 64 hex chars (32 bytes Ed25519 seed), got ${hex.length} chars`);
58
- }
59
- const out = new Uint8Array(32);
60
- for (let i = 0; i < 32; i++) {
61
- out[i] = Number.parseInt(hex.slice(i * 2, i * 2 + 2), 16);
62
- }
63
- return out;
64
- }
65
- async function readKeystoreFile(filePath, ctx) {
66
- let raw;
67
- try {
68
- raw = await fs.readFile(filePath, "utf8");
69
- }
70
- catch (e) {
71
- const code = e.code;
72
- if (code === "ENOENT")
73
- return null;
74
- throw e;
75
- }
76
- let parsed;
77
- try {
78
- parsed = JSON.parse(raw);
79
- }
80
- catch (e) {
81
- throw new CredentialsError(`${ctx}: ${filePath} is not valid JSON: ${e.message}`);
82
- }
83
- if (!parsed ||
84
- typeof parsed !== "object" ||
85
- typeof parsed.pubkey !== "string" ||
86
- typeof parsed.privkey !== "string") {
87
- throw new CredentialsError(`${ctx}: ${filePath} is missing pubkey/privkey hex fields`);
88
- }
89
- return parsed;
90
- }
91
- /**
92
- * Parse a minimal INI file: section headers `[name]`, `key = value` pairs,
93
- * `;` and `#` line comments. No nested sections, no quoting, no escapes —
94
- * the credentials file shape is trivial and that's all we need.
95
- *
96
- * Returns a map of `{ section: { key: value } }`. Keys/values are trimmed.
97
- * Pre-section keys live under the empty-string section; the credentials
98
- * loader only reads named sections so those are ignored.
99
- */
100
- export function parseConfigFile(content) {
101
- const out = {};
102
- let current = "";
103
- out[current] = {};
104
- const lines = content.split(/\r?\n/);
105
- for (let i = 0; i < lines.length; i++) {
106
- const raw = lines[i] ?? "";
107
- const line = raw.trim();
108
- if (line.length === 0)
109
- continue;
110
- if (line.startsWith(";") || line.startsWith("#"))
111
- continue;
112
- if (line.startsWith("[") && line.endsWith("]")) {
113
- current = line.slice(1, -1).trim();
114
- if (!out[current])
115
- out[current] = {};
116
- continue;
117
- }
118
- const eq = line.indexOf("=");
119
- if (eq < 0) {
120
- throw new CredentialsError(`credentials file: malformed line ${i + 1}: ${raw}`);
121
- }
122
- const key = line.slice(0, eq).trim();
123
- const value = line.slice(eq + 1).trim();
124
- if (key.length === 0) {
125
- throw new CredentialsError(`credentials file: empty key on line ${i + 1}`);
126
- }
127
- (out[current] ??= {})[key] = value;
128
- }
129
- return out;
130
- }
131
- /**
132
- * Render a parsed INI map back to text. Sections are emitted in insertion
133
- * order; the empty-string section (if any) is dropped — this writer only
134
- * supports section-scoped credentials. Used by `cef keypair generate
135
- * --profile` when merging into the shared credentials file.
136
- */
137
- export function serializeConfigFile(data) {
138
- const parts = [];
139
- for (const section of Object.keys(data)) {
140
- if (section.length === 0)
141
- continue;
142
- parts.push(`[${section}]`);
143
- const kv = data[section] ?? {};
144
- for (const key of Object.keys(kv)) {
145
- parts.push(`${key} = ${kv[key]}`);
146
- }
147
- parts.push("");
148
- }
149
- return parts.join("\n");
150
- }
151
- export async function resolveCredentials(opts) {
152
- const env = opts.env ?? process.env;
153
- // (1) Flags. If either privkey or pubkey is set, both must be set.
154
- if (opts.privkeyFlag !== undefined || opts.pubkeyFlag !== undefined) {
155
- if (opts.privkeyFlag === undefined || opts.pubkeyFlag === undefined) {
156
- throw new CredentialsError("credentials: --privkey and --pubkey must be provided together");
157
- }
158
- return {
159
- pubkey: normalizePubkey(opts.pubkeyFlag, "--pubkey"),
160
- privkeyBytes: hexToBytes(opts.privkeyFlag, "--privkey"),
161
- source: "flags",
162
- };
163
- }
164
- // (2) Env vars. Same pairing rule — if one is set, both must be.
165
- const envPriv = env.CEF_AS_PRIVATE_KEY;
166
- const envPub = env.CEF_AS_PUBLIC_KEY;
167
- if (envPriv !== undefined || envPub !== undefined) {
168
- if (envPriv === undefined || envPub === undefined) {
169
- throw new CredentialsError("credentials: CEF_AS_PRIVATE_KEY and CEF_AS_PUBLIC_KEY must both be set");
170
- }
171
- return {
172
- pubkey: normalizePubkey(envPub, "CEF_AS_PUBLIC_KEY"),
173
- privkeyBytes: hexToBytes(envPriv, "CEF_AS_PRIVATE_KEY"),
174
- source: "env",
175
- };
176
- }
177
- // (3) --keystore <path>. Missing file is a hard error here — the user
178
- // explicitly named a path, so silently falling through to the next source
179
- // would mask a typo.
180
- if (opts.keystoreFlag !== undefined) {
181
- const file = await readKeystoreFile(opts.keystoreFlag, "--keystore");
182
- if (file === null) {
183
- throw new CredentialsError(`--keystore: ${opts.keystoreFlag} does not exist`);
184
- }
185
- return {
186
- pubkey: normalizePubkey(file.pubkey, opts.keystoreFlag),
187
- privkeyBytes: hexToBytes(file.privkey, opts.keystoreFlag),
188
- source: "keystore-flag",
189
- };
190
- }
191
- // (4) CEF_AS_KEYSTORE env. Same: if set, the file must exist.
192
- const envKeystore = env.CEF_AS_KEYSTORE;
193
- if (envKeystore !== undefined && envKeystore.length > 0) {
194
- const file = await readKeystoreFile(envKeystore, "CEF_AS_KEYSTORE");
195
- if (file === null) {
196
- throw new CredentialsError(`CEF_AS_KEYSTORE: ${envKeystore} does not exist`);
197
- }
198
- return {
199
- pubkey: normalizePubkey(file.pubkey, envKeystore),
200
- privkeyBytes: hexToBytes(file.privkey, envKeystore),
201
- source: "keystore-env",
202
- };
203
- }
204
- // (5) Shared credentials file → profile section. A missing file with no
205
- // explicit `--profile` flag is "no credentials", not an error. With
206
- // `--profile <name>` set we always require either the file or the
207
- // section to exist — silent fallthrough would mask the typo.
208
- const configFilePath = opts.configFilePath ?? defaultCredentialsFilePath();
209
- const profileName = opts.profileFlag ?? env.CEF_PROFILE ?? "default";
210
- const profileExplicit = opts.profileFlag !== undefined ||
211
- (env.CEF_PROFILE !== undefined && env.CEF_PROFILE.length > 0);
212
- let configText = null;
213
- try {
214
- configText = await fs.readFile(configFilePath, "utf8");
215
- }
216
- catch (e) {
217
- const code = e.code;
218
- if (code !== "ENOENT")
219
- throw e;
220
- }
221
- if (configText !== null) {
222
- const parsed = parseConfigFile(configText);
223
- const section = parsed[profileName];
224
- if (section && section.pubkey && section.privkey) {
225
- return {
226
- pubkey: normalizePubkey(section.pubkey, `${configFilePath} [${profileName}]`),
227
- privkeyBytes: hexToBytes(section.privkey, `${configFilePath} [${profileName}]`),
228
- source: "config-profile",
229
- profileName,
230
- };
231
- }
232
- if (profileExplicit) {
233
- throw new CredentialsError(`--profile: ${profileName} not found in ${configFilePath}`);
234
- }
235
- }
236
- else if (profileExplicit) {
237
- throw new CredentialsError(`--profile: credentials file ${configFilePath} does not exist`);
238
- }
239
- throw new CredentialsError(NO_CREDENTIALS_MESSAGE);
240
- }
241
- //# sourceMappingURL=credentials.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/lib/credentials.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- export interface Ed25519Keypair {
2
- /** Hex-encoded public key (32-byte Ed25519 pubkey, lowercase, no prefix). */
3
- pubkey: string;
4
- /** Raw 32-byte private seed. */
5
- privkeyBytes: Uint8Array;
6
- }
7
- export declare function generateKeypair(): Promise<Ed25519Keypair>;
8
- /**
9
- * Sign the UTF-8 bytes of `canonicalJson` with `privkeyBytes`. Returns
10
- * lowercase-hex signature (64 bytes → 128 hex chars).
11
- */
12
- export declare function signBody(canonicalJson: string, privkeyBytes: Uint8Array): Promise<string>;
13
- //# sourceMappingURL=signing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/lib/signing.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC,CAI/D;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,UAAU,GACvB,OAAO,CAAC,MAAM,CAAC,CAIjB"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Ed25519 keypair generation + body signing for `cef publish`. Produces the
3
- * lowercase-hex pubkey + signature pair that the marketplace's
4
- * `X-AS-Pubkey` / `X-AS-Signature` headers expect (raw hex, no `0x` prefix,
5
- * no encoding wrapper).
6
- *
7
- * Mirrors the marketplace's `lib/signing/sign.ts`. Signing input is the
8
- * UTF-8 bytes of the JCS-canonical body — callers are expected to pass the
9
- * exact string they place in the HTTP request body, so the signature
10
- * covers byte-for-byte what the server will re-canonicalize and verify.
11
- */
12
- import * as ed25519 from "@noble/ed25519";
13
- function bytesToHex(b) {
14
- let s = "";
15
- for (let i = 0; i < b.length; i++) {
16
- s += b[i].toString(16).padStart(2, "0");
17
- }
18
- return s;
19
- }
20
- export async function generateKeypair() {
21
- const privkeyBytes = ed25519.utils.randomPrivateKey();
22
- const pubkeyBytes = await ed25519.getPublicKeyAsync(privkeyBytes);
23
- return { pubkey: bytesToHex(pubkeyBytes), privkeyBytes };
24
- }
25
- /**
26
- * Sign the UTF-8 bytes of `canonicalJson` with `privkeyBytes`. Returns
27
- * lowercase-hex signature (64 bytes → 128 hex chars).
28
- */
29
- export async function signBody(canonicalJson, privkeyBytes) {
30
- const message = new TextEncoder().encode(canonicalJson);
31
- const sig = await ed25519.signAsync(message, privkeyBytes);
32
- return bytesToHex(sig);
33
- }
34
- //# sourceMappingURL=signing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/lib/signing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,SAAS,UAAU,CAAC,CAAa;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,IAAK,CAAC,CAAC,CAAC,CAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,aAAqB,EACrB,YAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}