@cef-ai/vault-sdk 0.1.0 → 0.3.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.
Files changed (48) hide show
  1. package/README.md +113 -20
  2. package/dist/client.d.ts +103 -4
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +107 -3
  5. package/dist/client.js.map +1 -1
  6. package/dist/core/endpoints.d.ts +1 -0
  7. package/dist/core/endpoints.d.ts.map +1 -1
  8. package/dist/core/endpoints.js +1 -0
  9. package/dist/core/endpoints.js.map +1 -1
  10. package/dist/core/types.d.ts +5 -0
  11. package/dist/core/types.d.ts.map +1 -1
  12. package/dist/fluent/job.d.ts +16 -0
  13. package/dist/fluent/job.d.ts.map +1 -1
  14. package/dist/fluent/job.js +55 -0
  15. package/dist/fluent/job.js.map +1 -1
  16. package/dist/fluent/scope.d.ts +24 -0
  17. package/dist/fluent/scope.d.ts.map +1 -1
  18. package/dist/fluent/scope.js +70 -0
  19. package/dist/fluent/scope.js.map +1 -1
  20. package/dist/index.d.ts +3 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/internal/auto-add-proxy.d.ts +55 -0
  25. package/dist/internal/auto-add-proxy.d.ts.map +1 -0
  26. package/dist/internal/auto-add-proxy.js +89 -0
  27. package/dist/internal/auto-add-proxy.js.map +1 -0
  28. package/dist/internal/delegation-token.d.ts +26 -0
  29. package/dist/internal/delegation-token.d.ts.map +1 -0
  30. package/dist/internal/delegation-token.js +89 -0
  31. package/dist/internal/delegation-token.js.map +1 -0
  32. package/dist/internal/gateway-info.d.ts +16 -0
  33. package/dist/internal/gateway-info.d.ts.map +1 -0
  34. package/dist/internal/gateway-info.js +34 -0
  35. package/dist/internal/gateway-info.js.map +1 -0
  36. package/dist/internal/marketplace.d.ts +13 -0
  37. package/dist/internal/marketplace.d.ts.map +1 -1
  38. package/dist/internal/marketplace.js +6 -0
  39. package/dist/internal/marketplace.js.map +1 -1
  40. package/dist/internal/onboarding.d.ts +99 -0
  41. package/dist/internal/onboarding.d.ts.map +1 -0
  42. package/dist/internal/onboarding.js +148 -0
  43. package/dist/internal/onboarding.js.map +1 -0
  44. package/dist/internal/scopes.d.ts +9 -0
  45. package/dist/internal/scopes.d.ts.map +1 -1
  46. package/dist/internal/scopes.js +25 -2
  47. package/dist/internal/scopes.js.map +1 -1
  48. package/package.json +7 -1
package/README.md CHANGED
@@ -11,29 +11,91 @@ pnpm add @cef-ai/vault-sdk
11
11
 
12
12
  ## Quickstart
13
13
 
14
+ Browser app driving onboarding through an embed-wallet:
15
+
14
16
  ```ts
15
- import { VaultSDK, CereWallet } from "@cef-ai/vault-sdk";
17
+ import { VaultSDK, type EnsureProgressEvent } from "@cef-ai/vault-sdk";
16
18
 
17
- const wallet = await CereWallet.fromMnemonic(process.env.WALLET_MNEMONIC!);
18
19
  const sdk = new VaultSDK({
19
20
  endpoint: "https://vault.cere.io",
20
- garEndpoint: "https://gar.cere.io", // required for vault.agents.connect
21
- wallet,
21
+ garEndpoint: "https://gar.cere.io",
22
+ rpcEndpoint: "wss://rpc.devnet.cere.network/ws",
23
+ s3GatewayAuthInfoUrl: "https://ddc-s3-gateway.compute.dev.ddcdragon.com/auth/info",
24
+ // Override to point at the prod marketplace; defaults to the dev cluster URL.
25
+ marketplaceEndpoint: "https://agent-marketplace.compute.dev.ddcdragon.com",
26
+ wallet: myWallet, // any `Wallet` adapter
27
+ embedWalletForOnboarding: myEmbedWallet, // optional; chain-side autoAddProxy
28
+ });
29
+
30
+ const vault = await sdk.vault.ensure({
31
+ onProgress: (e: EnsureProgressEvent) => console.log(e.kind),
22
32
  });
23
- const vault = await sdk.vault.ensure({ delegationToken });
24
33
 
25
34
  await vault.scope("default").publish({
26
35
  type: "user_message",
27
36
  context: "conv-42",
28
37
  payload: { text: "Hi" },
29
38
  });
39
+ ```
30
40
 
31
- const sub = vault.scope("default").subscribe(
32
- { context: "conv-42", types: ["assistant_message"] },
33
- (event) => console.log(event.payload),
34
- );
41
+ Server-side (pre-provisioned wallet, skip onboarding):
42
+
43
+ ```ts
44
+ import { VaultSDK, CereWallet } from "@cef-ai/vault-sdk";
45
+
46
+ const wallet = await CereWallet.fromMnemonic(process.env.WALLET_MNEMONIC!);
47
+ const sdk = new VaultSDK({
48
+ endpoint: "https://vault.cere.io",
49
+ garEndpoint: "https://gar.cere.io",
50
+ s3GatewayAuthInfoUrl: "https://ddc-s3-gateway.compute.dev.ddcdragon.com/auth/info",
51
+ wallet,
52
+ });
53
+ const vault = await sdk.vault.ensure({ onboard: false });
35
54
  ```
36
55
 
56
+ ## Onboarding
57
+
58
+ `vault.ensure()` runs the DDC onboarding pipeline by default. It probes the
59
+ gateway, optionally bootstraps a devnet wallet, submits the on-chain
60
+ `proxy.addProxy` extrinsic, and polls until the gateway sees the proxy.
61
+ Internally:
62
+
63
+ 1. **Status check** — `GET /auth/onboarding/status` (404 means prod, skip).
64
+ 2. **Bootstrap (devnet only)** — if `faucet_eligible` or `ddc_seed_eligible`,
65
+ `POST /auth/onboarding/bootstrap` to drip CERE and seed the DDC deposit.
66
+ 3. **autoAddProxy** — when the wallet is not yet a registered gateway proxy,
67
+ submit `proxy.addProxy(<gateway>, NonTransfer, 0)` via the configured
68
+ `embedWalletForOnboarding`.
69
+ 4. **Poll-until-ready** — re-fetch status until `gateway_is_proxy === true`
70
+ or the time budget is exhausted (defaults: 2 s interval / 60 s budget).
71
+
72
+ `onProgress` receives an `EnsureProgressEvent` for each stage:
73
+
74
+ | Kind | Meaning |
75
+ | --- | --- |
76
+ | `inspecting-wallet` | Gateway status probe is in flight. |
77
+ | `funding-wallet` | Devnet auto-fund (CERE drip + DDC seed deposit); never fires on prod. |
78
+ | `gateway-authorization-required` | Onboarding required; carries `status: OnboardingStatus`. |
79
+ | `authorizing-gateway` | Wallet popup is open for the `addProxy` signature. |
80
+ | `authorization-submitted` | Extrinsic accepted into the mempool; carries `txHash`. |
81
+ | `awaiting-chain-confirmation` | Polling the gateway until it sees the proxy. |
82
+ | `gateway-authorized` | Gateway confirmed the proxy on-chain. |
83
+ | `signing-delegation` | Building the DDC delegation token from the wallet. |
84
+ | `provisioning-vault` | Calling `POST /api/v1/vaults` to claim the record. |
85
+
86
+ Two errors can surface:
87
+
88
+ - `OnboardingTimeoutError` — the proxy poll exhausted its budget. The
89
+ extrinsic may still confirm later; calling `ensure()` again is safe.
90
+ - `OnboardingRequiredError` — `ensure({ onboard: false })` was passed but
91
+ the gateway reports the wallet still needs the proxy step. Server flows
92
+ catch this to fail fast.
93
+
94
+ `@cere-ddc-sdk/blockchain` (used by `autoAddProxy`) and
95
+ `@cere-ddc-sdk/ddc-client` (used to build the delegation token internally)
96
+ are declared as `optionalDependencies`. Apps that exercise the onboarding
97
+ or internal-token-build paths must install them as direct dependencies.
98
+
37
99
  ## Connecting an agent
38
100
 
39
101
  `vault.agents.connect({ manifest, scope, settings })` is the high-level entry
@@ -58,28 +120,49 @@ already have a pre-signed `agreementSignature` (e.g. from a custodial flow),
58
120
  drop down to the low-level `Agents.connect(vaultId, ConnectAgentRequest)`
59
121
  exported from `@cef-ai/vault-sdk/internal`.
60
122
 
61
- For delegation-token construction (`vault.ensure({ delegationToken })`),
62
- see `examples/vault-chat/utils/vault-token.ts` — the SDK accepts the token
63
- as opaque to avoid a runtime dep on `@cere-ddc-sdk/ddc-client`.
64
-
65
123
  ## Surface
66
124
 
67
125
  | Method | Maps to |
68
126
  | --- | --- |
69
- | `sdk.vault.ensure()` / `.current()` / `.rotateCredentials()` | `POST` / `GET` / `PUT /api/v1/vaults[/credentials]` |
127
+ | `sdk.vault.ensure({ onboard?, onProgress?, delegationToken? })` | runs the onboarding pipeline + `POST /api/v1/vaults` |
128
+ | `sdk.vault.current()` / `.rotateCredentials()` | `GET` / `PUT /api/v1/vaults[/credentials]` |
70
129
  | `vault.scopes.{list,get,create,update,delete}` | `/api/v1/vaults/:v/scopes` |
71
130
  | `vault.agents.connect({ manifest, scope, settings })` (signs GAR internally) | `POST {garEndpoint}/api/v1/agreements` + `POST /api/v1/vaults/:v/agents` |
72
131
  | `vault.agents.{list,get}` → `AgentConnectionHandle` | `/api/v1/vaults/:v/agents` |
73
132
  | `handle.update(settings)` / `handle.disconnect()` | `PATCH` / `DELETE` |
74
133
  | `handle.cubby(alias).query(...)` / `.exec(...)` | `/scopes/:s/cubbies/:alias/{query,exec}` |
75
- | `handle.jobs.list()` | `/agents/:a/jobs` |
134
+ | `handle.jobs.list({ state?, cursor?, limit? })` | `/agents/:a/jobs` |
76
135
  | `vault.scope(s).publish(input)` | `POST /scopes/:s/events` |
77
- | `vault.scope(s).subscribe(filter, handler)` | poll-backed long-poll over `/streams/:c/events` |
136
+ | `vault.scope(s).subscribe(filter, handler, opts?)` | poll-backed long-poll over `/streams/:c/events` |
137
+ | `vault.scope(s).subscribeAll(filter, handler, { refreshIntervalMs? })` | fans out across `streams.list()`; refreshes every 30 s by default |
78
138
  | `vault.scope(s).streams.list()` / `.get(c)` / `.stream(c).events.list()` | `/scopes/:s/streams[/:c[/events]]` |
79
- | `vault.jobs.list()` / `.get(id).activities.list()` | `/jobs[/...]` |
80
- | `sdk.marketplace.getAgent(id, version?)` | public `GET /api/v1/marketplace/agents/...` |
139
+ | `vault.jobs.list({ state? })` / `.get(jobId).activities.list()` | `/jobs[/...]` |
140
+ | `handle.jobs.get(jobId).activities.subscribe({ since? }, handler)` | poll-backed activity tail with seen-id dedupe |
141
+ | `sdk.marketplace.getAgent(id, version?)` | public `GET /api/v1/marketplace/agents/:id[/versions/:v]` |
142
+ | `sdk.marketplace.list({ limit?, cursor?, query? })` | public `GET /api/v1/marketplace/agents` |
81
143
  | `sdk.health.live()` / `.ready()` | public `GET /health` / `/ready` |
82
144
 
145
+ ### `VaultSDKConfig` knobs
146
+
147
+ | Field | Description |
148
+ | --- | --- |
149
+ | `endpoint: string` | Base URL for the vault API (wallet-authenticated). |
150
+ | `garEndpoint?: string` | Base URL for the Global Agent Registry. Required for `vault.agents.connect`. |
151
+ | `marketplaceEndpoint?: string` | Base URL for the agent marketplace API (separate host from the vault API; reads are unauthenticated). Default: dev cluster URL (`https://agent-marketplace.compute.dev.ddcdragon.com`). |
152
+ | `s3GatewayAuthInfoUrl?: string` | Gateway `/auth/info` URL used to fetch the gateway pubkey when `s3GatewayPubkey` is not set. Default: dev cluster gateway. |
153
+ | `s3GatewayPubkey?: string` | Static gateway pubkey; skips the `/auth/info` round-trip during `vault.ensure()`. |
154
+ | `rpcEndpoint?: string` | Cere chain WebSocket RPC URL used by the onboarding pipeline's `autoAddProxy`. Default: Cere devnet RPC. |
155
+ | `wallet?: Wallet` / `auth?: AuthProvider` | Authenticated calls. Mutually exclusive — `auth` overrides `wallet`. |
156
+ | `embedWalletForOnboarding?` | Cere embed-wallet for onboarding-driven `proxy.addProxy` extrinsics. |
157
+ | `fetch?: typeof fetch` | Inject a custom fetch for tests / non-browser runtimes. |
158
+ | `timeoutMs?: number` | Per-request timeout (default 30 s). |
159
+
160
+ `Scope.metadata: Record<string, unknown>` is a free-form, server-stored map.
161
+ `vault.scopes.update(name, { metadata })` is a partial patch — server
162
+ semantics are shallow-merge per top-level key (keys in the patch overwrite,
163
+ others are preserved). The SDK whitelists the request body so only the keys
164
+ you supply reach the wire.
165
+
83
166
  ## Pluggable auth
84
167
 
85
168
  `VaultSDK` accepts either a `wallet` (default → `WalletAuthProvider`) or a
@@ -100,6 +183,11 @@ The `Wallet` interface is `{ pubkey(), sign(bytes), sigType?() }`.
100
183
  - `CereWallet.fromMnemonic(mnemonic, type?)` — wraps `UriSigner`.
101
184
  - `CereWallet.fromKeystore(json, passphrase, type?)` — Cere/Polkadot JSON keystore.
102
185
 
186
+ Browser apps using `@cere/embed-wallet` should write a thin adapter
187
+ implementing the 3-method `Wallet` interface against the embed-wallet's
188
+ signer surface; the chat-app pattern at `cef-chat/src/lib/wallet/embed-adapter.ts`
189
+ is a working reference.
190
+
103
191
  The `UriSigner` / `JsonSigner` classes powering `CereWallet` are vendored
104
192
  from [`@cere-activity-sdk/signers`](https://github.com/cere-io/cere-activity-sdk/tree/main/packages/signers)
105
193
  (Apache-2.0); see `src/wallet/cere-internal/README.md` for attribution and
@@ -113,8 +201,13 @@ Browser-extension and CereWalletNative adapters live in their own packages.
113
201
 
114
202
  `@cef-ai/vault-sdk/internal` re-exports `Vaults`, `Scopes`, `Agents`,
115
203
  `Events`, `Browse`, `Cubbies`, `Health`, `Marketplace`, plus
116
- `VaultHttpClient` and `endpoints`. Use it only when the fluent surface
117
- isn't enough.
204
+ `VaultHttpClient` and `endpoints`.
205
+
206
+ Onboarding primitives (`runOnboarding`, `pollUntilProxyReady`,
207
+ `getOnboardingStatus`, `runBootstrap`, `walletToOnboardingSigner`),
208
+ `autoAddProxy`, and `getGatewayInfo` live under their respective files in
209
+ `src/internal/` for advanced consumers that need to drive the pipeline
210
+ piecewise. Use them only when the fluent surface isn't enough.
118
211
 
119
212
  ## Spec
120
213
 
package/dist/client.d.ts CHANGED
@@ -1,11 +1,17 @@
1
1
  import { Marketplace } from "./internal/marketplace.js";
2
2
  import { Health } from "./internal/health.js";
3
3
  import { Vault } from "./fluent/vault.js";
4
+ import { type OnboardingStatus } from "./internal/onboarding.js";
4
5
  import type { AuthProvider } from "./auth/provider.js";
5
6
  import type { Wallet } from "./wallet/adapter.js";
6
7
  export interface VaultSDKConfig {
7
8
  endpoint: string;
8
- /** Marketplace API base URL. Defaults to `endpoint`. */
9
+ /**
10
+ * Base URL for the agent marketplace API. The marketplace is a separate
11
+ * service from the vault API and is accessed unauthenticated — the SDK
12
+ * builds a dedicated HTTP client for it that does NOT carry the vault
13
+ * wallet's auth headers. Defaults to the dev cluster URL.
14
+ */
9
15
  marketplaceEndpoint?: string;
10
16
  /**
11
17
  * Global Agent Registry endpoint. When set, `vault.agents.connect` becomes
@@ -23,23 +29,116 @@ export interface VaultSDKConfig {
23
29
  auth?: AuthProvider;
24
30
  fetch?: typeof fetch;
25
31
  timeoutMs?: number;
32
+ /**
33
+ * S3 Gateway ed25519 pubkey (`0x`-hex or bare hex). When set, the SDK can
34
+ * build a delegation token internally on `vault.ensure()` if none is passed.
35
+ * Skip the round-trip when you know the gateway identity ahead of time.
36
+ */
37
+ s3GatewayPubkey?: string;
38
+ /**
39
+ * Fallback URL used to fetch the gateway pubkey when `s3GatewayPubkey` is
40
+ * not set. Defaults to the dev gateway. Override for prod.
41
+ */
42
+ s3GatewayAuthInfoUrl?: string;
43
+ /**
44
+ * Cere chain WebSocket RPC endpoint. Used by the onboarding pipeline when
45
+ * the wallet has not yet registered the gateway as an on-chain proxy and
46
+ * `vault.ensure()` needs to submit `proxy.addProxy` on the user's behalf.
47
+ * Defaults to the Cere devnet RPC.
48
+ */
49
+ rpcEndpoint?: string;
50
+ /**
51
+ * Cere embed-wallet instance (NOT the SDK `Wallet` adapter) used by the
52
+ * onboarding pipeline when it must submit an extrinsic via
53
+ * `@cere-ddc-sdk/blockchain`'s `CereWalletSigner`. Carries the
54
+ * Polkadot-extension-style API the chain client needs — a level lower
55
+ * than the pure signing surface our `Wallet` adapter exposes. Required
56
+ * only when `vault.ensure()` discovers onboarding-needed; can be omitted
57
+ * if `ensure({ onboard: false })` is used or the wallet is already a
58
+ * registered proxy.
59
+ */
60
+ embedWalletForOnboarding?: unknown;
26
61
  }
27
62
  export interface EnsureVaultOptions {
28
63
  name?: string;
29
- /** DDC delegation token issued during onboarding. Opaque base58 string. */
30
- delegationToken: string;
64
+ /**
65
+ * Pre-built DDC delegation token. Optional: if omitted, the SDK builds one
66
+ * internally using the configured `wallet` and either `s3GatewayPubkey`
67
+ * (static) or `s3GatewayAuthInfoUrl` (fetched). Building requires the
68
+ * optional dep `@cere-ddc-sdk/ddc-client` to be installed.
69
+ */
70
+ delegationToken?: string;
71
+ /**
72
+ * Run the DDC onboarding pipeline (status / bootstrap / addProxy / poll)
73
+ * before claiming the vault. Defaults to `true`. Set `false` for server
74
+ * flows that assume pre-provisioned wallets — in that case, an
75
+ * `OnboardingRequiredError` is raised if the gateway later reports the
76
+ * wallet still needs the proxy registration step.
77
+ */
78
+ onboard?: boolean;
79
+ /** Progress hook for UIs that want to drive a stepper / spinner. */
80
+ onProgress?: (e: EnsureProgressEvent) => void;
81
+ /** Poll cadence while waiting for the gateway to see the new proxy. */
82
+ proxyPollIntervalMs?: number;
83
+ /** Total time budget for the proxy-confirmation poll. */
84
+ proxyPollTimeoutMs?: number;
31
85
  }
86
+ /**
87
+ * Progress signal emitted by `vault.ensure()` so UIs can render a
88
+ * stepper without polling internal state. The order is roughly the
89
+ * order of emission, but `gateway-authorization-required` and friends
90
+ * only fire on the onboarding-required path.
91
+ */
92
+ export type EnsureProgressEvent = {
93
+ kind: "inspecting-wallet";
94
+ } | {
95
+ kind: "funding-wallet";
96
+ } | {
97
+ kind: "gateway-authorization-required";
98
+ status: OnboardingStatus;
99
+ } | {
100
+ kind: "authorizing-gateway";
101
+ } | {
102
+ kind: "authorization-submitted";
103
+ txHash: string;
104
+ } | {
105
+ kind: "awaiting-chain-confirmation";
106
+ } | {
107
+ kind: "gateway-authorized";
108
+ } | {
109
+ kind: "signing-delegation";
110
+ } | {
111
+ kind: "provisioning-vault";
112
+ };
32
113
  export declare class VaultSDK {
33
114
  private readonly http;
34
115
  private readonly marketplaceHttp;
35
116
  private readonly vaults;
36
117
  private readonly gar?;
37
118
  private readonly wallet?;
119
+ private readonly s3GatewayPubkey?;
120
+ private readonly s3GatewayAuthInfoUrl;
121
+ private readonly rpcEndpoint;
122
+ private readonly embedWalletForOnboarding?;
123
+ private readonly fetchFn;
124
+ private cachedGatewayPubkey?;
38
125
  readonly marketplace: Marketplace;
39
126
  readonly health: Health;
40
127
  constructor(config: VaultSDKConfig);
128
+ /**
129
+ * Resolves the gateway pubkey: prefers the static config, falls back to
130
+ * `/auth/info` (cached for the SDK's lifetime).
131
+ */
132
+ private resolveGatewayPubkey;
133
+ /**
134
+ * Strip `/auth/info` (and any trailing slash) off the configured auth-info
135
+ * URL to reach the gateway base — the prefix the onboarding endpoints sit
136
+ * under. Belongs here, not in onboarding.ts, because the strip is purely
137
+ * a config-shape concern.
138
+ */
139
+ private gatewayBaseUrl;
41
140
  vault: {
42
- ensure: (opts: EnsureVaultOptions) => Promise<Vault>;
141
+ ensure: (opts?: EnsureVaultOptions) => Promise<Vault>;
43
142
  current: () => Promise<Vault>;
44
143
  /** Rotate the SigV4 delegation credential. */
45
144
  rotateCredentials: (vaultId: string, delegationToken: string) => Promise<Vault>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,cAAc;IA8BlC,KAAK;uBACkB,kBAAkB,KAAG,OAAO,CAAC,KAAK,CAAC;uBAOrC,OAAO,CAAC,KAAK,CAAC;QAIjC,8CAA8C;qCAEnC,MAAM,mBACE,MAAM,KACtB,OAAO,CAAC,KAAK,CAAC;MAMjB;CACH"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -6,12 +6,24 @@ import { Health } from "./internal/health.js";
6
6
  import { Vault } from "./fluent/vault.js";
7
7
  import { WalletAuthProvider } from "./auth/wallet.js";
8
8
  import { GarClient } from "./agreements/gar-client.js";
9
+ import { buildVaultDelegationToken, fetchGatewayPubkey, } from "./internal/delegation-token.js";
10
+ import { OnboardingRequiredError, OnboardingTimeoutError, pollUntilProxyReady, runOnboarding, walletToOnboardingSigner, } from "./internal/onboarding.js";
11
+ import { autoAddProxy } from "./internal/auto-add-proxy.js";
12
+ const DEFAULT_S3_GATEWAY_AUTH_INFO_URL = "https://ddc-s3-gateway.compute.dev.ddcdragon.com/auth/info";
13
+ const DEFAULT_MARKETPLACE_ENDPOINT = "https://agent-marketplace.compute.dev.ddcdragon.com";
14
+ const DEFAULT_RPC_ENDPOINT = "wss://rpc.devnet.cere.network/ws";
9
15
  export class VaultSDK {
10
16
  http;
11
17
  marketplaceHttp;
12
18
  vaults;
13
19
  gar;
14
20
  wallet;
21
+ s3GatewayPubkey;
22
+ s3GatewayAuthInfoUrl;
23
+ rpcEndpoint;
24
+ embedWalletForOnboarding;
25
+ fetchFn;
26
+ cachedGatewayPubkey;
15
27
  marketplace;
16
28
  health;
17
29
  constructor(config) {
@@ -22,8 +34,13 @@ export class VaultSDK {
22
34
  fetch: config.fetch,
23
35
  timeoutMs: config.timeoutMs,
24
36
  });
37
+ // Marketplace runs on its own host (see `pkg/compute/marketplace` in
38
+ // ddc-node) and accepts unauthenticated GETs. Build a dedicated HTTP
39
+ // client with NO default auth provider so wallet headers never leak
40
+ // onto public catalog reads, even if a wallet is configured for the
41
+ // vault API.
25
42
  this.marketplaceHttp = new VaultHttpClient({
26
- url: config.marketplaceEndpoint ?? config.endpoint,
43
+ url: config.marketplaceEndpoint ?? DEFAULT_MARKETPLACE_ENDPOINT,
27
44
  fetch: config.fetch,
28
45
  timeoutMs: config.timeoutMs,
29
46
  });
@@ -36,15 +53,102 @@ export class VaultSDK {
36
53
  }));
37
54
  }
38
55
  this.wallet = config.wallet;
56
+ this.s3GatewayPubkey = config.s3GatewayPubkey;
57
+ this.s3GatewayAuthInfoUrl =
58
+ config.s3GatewayAuthInfoUrl ?? DEFAULT_S3_GATEWAY_AUTH_INFO_URL;
59
+ this.rpcEndpoint = config.rpcEndpoint ?? DEFAULT_RPC_ENDPOINT;
60
+ this.embedWalletForOnboarding = config.embedWalletForOnboarding;
61
+ this.fetchFn = config.fetch ?? fetch.bind(globalThis);
39
62
  this.vaults = new Vaults(this.http);
40
63
  this.marketplace = new Marketplace(this.marketplaceHttp);
41
64
  this.health = new Health(this.http);
42
65
  }
66
+ /**
67
+ * Resolves the gateway pubkey: prefers the static config, falls back to
68
+ * `/auth/info` (cached for the SDK's lifetime).
69
+ */
70
+ async resolveGatewayPubkey() {
71
+ if (this.s3GatewayPubkey)
72
+ return this.s3GatewayPubkey;
73
+ if (this.cachedGatewayPubkey)
74
+ return this.cachedGatewayPubkey;
75
+ const pk = await fetchGatewayPubkey(this.s3GatewayAuthInfoUrl, this.fetchFn);
76
+ this.cachedGatewayPubkey = pk;
77
+ return pk;
78
+ }
79
+ /**
80
+ * Strip `/auth/info` (and any trailing slash) off the configured auth-info
81
+ * URL to reach the gateway base — the prefix the onboarding endpoints sit
82
+ * under. Belongs here, not in onboarding.ts, because the strip is purely
83
+ * a config-shape concern.
84
+ */
85
+ gatewayBaseUrl() {
86
+ return this.s3GatewayAuthInfoUrl
87
+ .replace(/\/auth\/info\/?$/, "")
88
+ .replace(/\/+$/, "");
89
+ }
43
90
  vault = {
44
- ensure: async (opts) => {
91
+ ensure: async (opts = {}) => {
92
+ const onProgress = opts.onProgress ?? (() => { });
93
+ const wantOnboard = opts.onboard !== false;
94
+ // Onboarding pipeline. Only runs when (a) the consumer hasn't opted
95
+ // out, and (b) we have a wallet to drive the gateway interactions.
96
+ // The wallet-less path skips silently — server-side flows that pass
97
+ // a pre-built `delegationToken` shouldn't touch the chain.
98
+ if (wantOnboard && this.wallet) {
99
+ const signer = walletToOnboardingSigner(this.wallet);
100
+ const gw = this.gatewayBaseUrl();
101
+ onProgress({ kind: "inspecting-wallet" });
102
+ const onb = await runOnboarding(gw, signer, this.fetchFn, () => {
103
+ onProgress({ kind: "funding-wallet" });
104
+ });
105
+ if (onb.kind === "awaiting-proxy") {
106
+ if (!this.embedWalletForOnboarding) {
107
+ throw new OnboardingRequiredError("Onboarding required but no embed-wallet was provided to VaultSDK config. "
108
+ + "Pass `embedWalletForOnboarding` or call ensure({ onboard: false }) and "
109
+ + "run onboarding externally.");
110
+ }
111
+ onProgress({ kind: "gateway-authorization-required", status: onb.status });
112
+ const gatewayPubkey = await this.resolveGatewayPubkey();
113
+ onProgress({ kind: "authorizing-gateway" });
114
+ const { txHash } = await autoAddProxy({
115
+ rpcEndpoint: this.rpcEndpoint,
116
+ gatewayPubKeyHex: gatewayPubkey,
117
+ embedWallet: this.embedWalletForOnboarding,
118
+ });
119
+ onProgress({ kind: "authorization-submitted", txHash });
120
+ onProgress({ kind: "awaiting-chain-confirmation" });
121
+ const ready = await pollUntilProxyReady(gw, signer, {
122
+ intervalMs: opts.proxyPollIntervalMs ?? 2000,
123
+ timeoutMs: opts.proxyPollTimeoutMs ?? 60_000,
124
+ fetchImpl: this.fetchFn,
125
+ });
126
+ if (!ready) {
127
+ throw new OnboardingTimeoutError("Gateway did not see the on-chain proxy within the timeout window. "
128
+ + "The transaction may still confirm later — try ensure() again.");
129
+ }
130
+ onProgress({ kind: "gateway-authorized" });
131
+ }
132
+ // 'skipped' (production gateway 404'd) and 'ready' both fall
133
+ // through silently to the existing claim path.
134
+ }
135
+ let delegationToken = opts.delegationToken;
136
+ if (!delegationToken) {
137
+ if (!this.wallet) {
138
+ throw new Error("vault.ensure() needs either a `delegationToken` or a `wallet` "
139
+ + "configured on VaultSDKConfig to build one internally.");
140
+ }
141
+ onProgress({ kind: "signing-delegation" });
142
+ const gatewayPubkey = await this.resolveGatewayPubkey();
143
+ delegationToken = await buildVaultDelegationToken({
144
+ wallet: this.wallet,
145
+ gatewayPubkey,
146
+ });
147
+ }
148
+ onProgress({ kind: "provisioning-vault" });
45
149
  const rec = await this.vaults.claim({
46
150
  name: opts.name,
47
- delegation_token: opts.delegationToken,
151
+ delegation_token: delegationToken,
48
152
  });
49
153
  return new Vault(this.http, rec, { gar: this.gar, wallet: this.wallet });
50
154
  },
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export declare const endpoints: {
17
17
  readonly jobActivity: (v: string, j: string, a: string) => string;
18
18
  readonly cubbyQuery: (v: string, s: string, alias: string) => string;
19
19
  readonly cubbyExec: (v: string, s: string, alias: string) => string;
20
+ readonly marketplaceAgents: () => string;
20
21
  readonly marketplaceAgent: (a: string) => string;
21
22
  readonly marketplaceAgentVersion: (a: string, v: string) => string;
22
23
  readonly health: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/core/endpoints.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS;;wBAET,MAAM;mCACK,MAAM;yBAChB,MAAM;wBACP,MAAM,KAAK,MAAM;yBAChB,MAAM;wBACP,MAAM,KAAK,MAAM;8BACX,MAAM,KAAK,MAAM;+BAChB,MAAM,KAAK,MAAM;yBACvB,MAAM,KAAK,MAAM,OAAO,MAAM;+BAExB,MAAM,KAAK,MAAM,OAAO,MAAM;uBAEtC,MAAM;sBACP,MAAM,KAAK,MAAM;4BACX,MAAM,KAAK,MAAM;gCACb,MAAM,KAAK,MAAM;8BACnB,MAAM,KAAK,MAAM,KAAK,MAAM;6BAE7B,MAAM,KAAK,MAAM,SAAS,MAAM;4BAEjC,MAAM,KAAK,MAAM,SAAS,MAAM;mCAEzB,MAAM;0CACC,MAAM,KAAK,MAAM;;;;CAKtC,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC"}
1
+ {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/core/endpoints.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS;;wBAET,MAAM;mCACK,MAAM;yBAChB,MAAM;wBACP,MAAM,KAAK,MAAM;yBAChB,MAAM;wBACP,MAAM,KAAK,MAAM;8BACX,MAAM,KAAK,MAAM;+BAChB,MAAM,KAAK,MAAM;yBACvB,MAAM,KAAK,MAAM,OAAO,MAAM;+BAExB,MAAM,KAAK,MAAM,OAAO,MAAM;uBAEtC,MAAM;sBACP,MAAM,KAAK,MAAM;4BACX,MAAM,KAAK,MAAM;gCACb,MAAM,KAAK,MAAM;8BACnB,MAAM,KAAK,MAAM,KAAK,MAAM;6BAE7B,MAAM,KAAK,MAAM,SAAS,MAAM;4BAEjC,MAAM,KAAK,MAAM,SAAS,MAAM;;mCAGzB,MAAM;0CACC,MAAM,KAAK,MAAM;;;;CAKtC,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC"}
@@ -19,6 +19,7 @@ export const endpoints = {
19
19
  jobActivity: (v, j, a) => `${API_BASE}/vaults/${seg(v)}/jobs/${seg(j)}/activities/${seg(a)}`,
20
20
  cubbyQuery: (v, s, alias) => `${API_BASE}/vaults/${seg(v)}/scopes/${seg(s)}/cubbies/${seg(alias)}/query`,
21
21
  cubbyExec: (v, s, alias) => `${API_BASE}/vaults/${seg(v)}/scopes/${seg(s)}/cubbies/${seg(alias)}/exec`,
22
+ marketplaceAgents: () => `${API_BASE}/marketplace/agents`,
22
23
  marketplaceAgent: (a) => `${API_BASE}/marketplace/agents/${seg(a)}`,
23
24
  marketplaceAgentVersion: (a, v) => `${API_BASE}/marketplace/agents/${seg(a)}/versions/${seg(v)}`,
24
25
  health: () => `/health`,
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/core/endpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/core/endpoints.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,11 @@ export interface Scope {
13
13
  name: string;
14
14
  displayName?: string;
15
15
  streamLabel?: string;
16
+ /**
17
+ * Free-form, top-level shallow-merge map. Server semantics: keys present
18
+ * in the patch overwrite stored keys; absent keys are preserved.
19
+ */
20
+ metadata?: Record<string, unknown>;
16
21
  createdAt: string;
17
22
  }
18
23
  export type AgentConnectionStatus = "provisioning" | "active" | "revoking" | "revoked";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,17 @@
1
1
  import type { VaultHttpClient } from "../core/http.js";
2
2
  import { type ListActivitiesOptions } from "../internal/browse.js";
3
3
  import type { Activity, ActivitiesPage, Job } from "../core/types.js";
4
+ import type { SubscribeOptions, Subscription } from "./subscribe.js";
5
+ export interface ActivitySubscribeFilter {
6
+ /**
7
+ * Only deliver activities whose `startedAt` (or `endedAt` for terminal
8
+ * states) is at or after this ISO-8601 timestamp. Applied client-side.
9
+ */
10
+ since?: string;
11
+ }
12
+ export type ActivityHandler = (activity: Activity) => void | Promise<void>;
4
13
  export declare class JobHandle {
14
+ private readonly http;
5
15
  private readonly vaultId;
6
16
  readonly jobId: string;
7
17
  private readonly browse;
@@ -10,6 +20,12 @@ export declare class JobHandle {
10
20
  activities: {
11
21
  list: (o?: ListActivitiesOptions) => Promise<ActivitiesPage>;
12
22
  get: (a: string) => Promise<Activity>;
23
+ /**
24
+ * Poll-backed subscription over `ListActivities`. Mirrors the structure
25
+ * of `subscribe.ts`: tracks seen activity ids, filters duplicates,
26
+ * supports `unsubscribe()`. Stops cleanly via the returned handle.
27
+ */
28
+ subscribe: (filter: ActivitySubscribeFilter, handler: ActivityHandler, opts?: SubscribeOptions) => Subscription;
13
29
  };
14
30
  /**
15
31
  * Walk caused-by edges. Server tree route is not yet implemented (returns
@@ -1 +1 @@
1
- {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/fluent/job.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAU,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEtE,qBAAa,SAAS;IAIlB,OAAO,CAAC,QAAQ,CAAC,OAAO;aACR,KAAK,EAAE,MAAM;IAJ/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAE9B,IAAI,EAAE,eAAe,EACJ,OAAO,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM;IAI/B,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACnB,UAAU;mBACE,qBAAqB,KAAQ,OAAO,CAAC,cAAc,CAAC;iBAErD,MAAM,KAAG,OAAO,CAAC,QAAQ,CAAC;MACnC;IACF;;;OAGG;IACH,IAAI,IAAI,KAAK;CAKd"}
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/fluent/job.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAU,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3E,qBAAa,SAAS;IAGlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;aACR,KAAK,EAAE,MAAM;IAJ/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEb,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM;IAI/B,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACnB,UAAU;mBACE,qBAAqB,KAAQ,OAAO,CAAC,cAAc,CAAC;iBAErD,MAAM,KAAG,OAAO,CAAC,QAAQ,CAAC;QACnC;;;;WAIG;4BAEO,uBAAuB,WACtB,eAAe,SAClB,gBAAgB,KACrB,YAAY;MAGf;IACF;;;OAGG;IACH,IAAI,IAAI,KAAK;CAKd"}