@covia/covia-sdk 1.6.0 → 1.7.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/README.md CHANGED
@@ -118,8 +118,26 @@ venue.metadata; // { name, description }
118
118
  | `venue.didDocument()` | Get the venue's DID document |
119
119
  | `venue.mcpDiscovery()` | Get MCP (Model Context Protocol) discovery info |
120
120
  | `venue.agentCard()` | Get A2A (Agent-to-Agent) agent card |
121
+ | `venue.setPrivate(enabled)` | Toggle private-jobs mode for this connection (see below) |
121
122
  | `venue.close()` | Release resources and clear caches |
122
123
 
124
+ #### Private jobs
125
+
126
+ `venue.setPrivate(true)` puts the connection in **private-jobs mode**: every
127
+ subsequent `operations.run()` executes as a memory-only job — never persisted
128
+ to the venue's job index, gone on venue restart. The venue must have
129
+ `enablePrivateJobs` set. Because a completed private job is immediately
130
+ forgotten by the venue, results are collected through the server-side invoke
131
+ `wait` window rather than polling — so private mode works with `run()`, and
132
+ poll-style `operations.invoke()` throws.
133
+
134
+ ```typescript
135
+ venue.setPrivate(true);
136
+ const result = await venue.operations.run("v/ops/schema/infer", {
137
+ value: { name: "Ada", age: 36 },
138
+ });
139
+ ```
140
+
123
141
  ---
124
142
 
125
143
  ### Operations — `venue.operations`
@@ -160,6 +178,22 @@ const job = await venue.operations.invoke("sensitive:op", input, {
160
178
 
161
179
  ---
162
180
 
181
+ ### Adapters — `venue.adapters`
182
+
183
+ List the adapters registered on a venue — the true registry, including adapters
184
+ with zero catalogued operations. Backed by the venue's canonical
185
+ `v/info/adapters/<name>` lattice data, read job-free via the values API.
186
+
187
+ ```typescript
188
+ // All registered adapters
189
+ const adapters = await venue.adapters.list();
190
+ adapters.forEach((a) => console.log(`${a.name}: ${a.operations.length} ops`));
191
+
192
+ // One adapter's summary (null if not registered)
193
+ const covia = await venue.adapters.get("covia");
194
+ console.log(covia?.description, covia?.operations);
195
+ ```
196
+
163
197
  ### Assets — `venue.assets`
164
198
 
165
199
  Manage data assets and operations registered on the venue.
@@ -509,7 +543,31 @@ const token = await venue.ucan.issue("did:key:z6MkBob", att, exp);
509
543
 
510
544
  | Method | Returns | Description |
511
545
  |---|---|---|
512
- | `ucan.issue(aud, att, exp)` | `UCANIssueResult` | Issue a UCAN token |
546
+ | `ucan.issue(aud, att, exp)` | `UCANIssueResult` | Issue a venue-signed UCAN token |
547
+ | `ucan.verify(token, check?)` | `UCANVerifyResult` | Diagnose a token against the venue's trust policy |
548
+
549
+ `ucan.verify` explains a token's verdict — `valid`/`reason`, `chainDepth`,
550
+ `rootIssuer`, and a per-capability `rootAuthority` (`owner` / `venue` /
551
+ `refused`). Pass `check: { with, can, aud }` to also ask whether the token
552
+ would authorise a specific request (`authorises`).
553
+
554
+ #### Client-side minting
555
+
556
+ Tokens can also be minted locally with your own Ed25519 key — no venue
557
+ round-trip:
558
+
559
+ ```typescript
560
+ import { grant, identityToken, relayDelegation, didFor } from "@covia/covia-sdk";
561
+
562
+ // Self-sovereign grant over your own namespace — verifies on ANY venue
563
+ const token = grant(privateKey, "did:key:z6MkBob", `${didFor(privateKey)}/w/shared/`, "crud/read", 3600);
564
+
565
+ // Identity token — proves control of your DID to a venue (empty attenuation)
566
+ const idToken = identityToken(privateKey, venue.venueId);
567
+
568
+ // Relay delegation — authorises the venue to forward your authority cross-venue
569
+ const relay = relayDelegation(privateKey, venue.venueId, 300, [{ with: `${didFor(privateKey)}/w/`, can: "crud/read" }]);
570
+ ```
513
571
 
514
572
  ---
515
573
 
@@ -527,6 +585,7 @@ import {
527
585
  CoviaConnectionError,// Connection failures
528
586
  CoviaTimeoutError, // Timeout exceeded
529
587
  JobFailedError, // Job finished with non-COMPLETE status
588
+ RateLimitError, // 429 after bounded retries (carries retryAfterSeconds)
530
589
  } from "@covia/covia-sdk";
531
590
 
532
591
  try {
@@ -579,7 +638,7 @@ RunStatus.AUTH_REQUIRED; // Waiting for authentication
579
638
  ```typescript
580
639
  import {
581
640
  Venue, Grid, Job, Agent, ChatSession, Asset, Operation, DataAsset,
582
- AssetManager, OperationManager, JobManager,
641
+ AdapterManager, AssetManager, OperationManager, JobManager,
583
642
  AgentManager, WorkspaceManager, SecretManager, UCANManager,
584
643
  KeyPairAuth, BearerAuth,
585
644
  RunStatus, CoviaError,
package/dist/index.d.mts CHANGED
@@ -296,12 +296,57 @@ declare class CredentialsHTTP implements Credentials {
296
296
  constructor(venueId: string, apiKey: string, userId: string);
297
297
  }
298
298
 
299
+ interface AdapterManagerVenue {
300
+ workspace: {
301
+ slice(path: string, offset?: number, limit?: number, ucans?: string[]): Promise<WorkspaceSliceResult>;
302
+ read(path: string, maxSize?: number, ucans?: string[]): Promise<WorkspaceReadResult>;
303
+ };
304
+ }
305
+ /**
306
+ * Adapter introspection for a venue.
307
+ *
308
+ * Reads go through the workspace manager, so they are job-free (`GET
309
+ * /api/v1/values/*`, covia #177) on 0.3+ venues and transparently fall back
310
+ * to the invoke path on older ones — the same job-free/fallback behaviour
311
+ * every other workspace-backed read gets, rather than a hand-rolled fetch.
312
+ */
313
+ declare class AdapterManager {
314
+ private venue;
315
+ constructor(venue: AdapterManagerVenue);
316
+ /**
317
+ * List the adapters registered on the venue, with their descriptions and
318
+ * invocable operation catalog paths. Registered-but-inactive or zero-op
319
+ * adapters are included — this is the true registry, not an inference
320
+ * from the operations catalog.
321
+ */
322
+ list(): Promise<AdapterInfo[]>;
323
+ /**
324
+ * Get a single adapter's summary by name.
325
+ * @param name - Adapter name, e.g. "mcp"
326
+ * @returns {Promise<AdapterInfo | null>} `null` if no adapter with that name is registered
327
+ */
328
+ get(name: string): Promise<AdapterInfo | null>;
329
+ }
330
+
299
331
  interface AgentManagerVenue {
332
+ baseUrl: string;
333
+ venueId: string;
334
+ auth: {
335
+ apply(headers: Record<string, string>, audience?: string): void;
336
+ };
300
337
  operations: OperationRunner;
338
+ lastKnownStatus?: StatusData;
301
339
  }
302
340
  declare class AgentManager {
303
341
  private venue;
342
+ private agentsGetSupported;
304
343
  constructor(venue: AgentManagerVenue);
344
+ private _headers;
345
+ /** Whether the venue serves `GET /api/v1/agents`: no if a probe already
346
+ * 404'd, or if the venue's last known status identifies it as pre-0.4. */
347
+ private supportsAgentsGet;
348
+ /** A job-free agents GET, falling back to the invoke path on pre-0.4 venues. */
349
+ private _agentsOr;
305
350
  create(input: AgentCreateInput): Promise<AgentCreateResult>;
306
351
  request(agentId: string, input?: unknown, wait?: boolean | number): Promise<AgentRequestResult>;
307
352
  message(agentId: string, message: unknown): Promise<AgentMessageResult>;
@@ -323,12 +368,19 @@ declare class AgentManager {
323
368
  */
324
369
  chat(agentId: string, message: unknown, sessionId?: string): Promise<AgentChatResult>;
325
370
  trigger(agentId: string): Promise<AgentTriggerResult>;
371
+ /**
372
+ * List the caller's agents. **Job-free** on covia ≥ 0.4: goes through
373
+ * `GET /api/v1/agents` (covia#180) — synchronous, no Job persisted. Older
374
+ * venues transparently fall back to the invoke path (one probe, remembered).
375
+ */
326
376
  list(includeTerminated?: boolean): Promise<AgentListResult>;
327
377
  delete(agentId: string, remove?: boolean): Promise<AgentDeleteResult>;
328
378
  suspend(agentId: string): Promise<AgentSuspendResult>;
329
379
  resume(agentId: string, autoWake?: boolean): Promise<AgentSuspendResult>;
330
380
  update(input: AgentUpdateInput): Promise<unknown>;
331
381
  cancelTask(agentId: string, taskId: string): Promise<unknown>;
382
+ /** Agent info. **Job-free** on covia ≥ 0.4 (`GET /api/v1/agents/{id}`,
383
+ * covia#180); older venues fall back to the invoke path. */
332
384
  info(agentId: string): Promise<AgentInfoResult>;
333
385
  fork(input: AgentForkInput): Promise<AgentForkResult>;
334
386
  context(agentId: string, task?: unknown): Promise<string>;
@@ -425,6 +477,7 @@ interface OperationManagerVenue {
425
477
  auth: {
426
478
  apply(headers: Record<string, string>, audience?: string): void;
427
479
  };
480
+ privateJobs?: boolean;
428
481
  }
429
482
  declare class OperationManager {
430
483
  private venue;
@@ -445,6 +498,15 @@ declare class OperationManager {
445
498
  * @param options - Invoke options (e.g., ucans)
446
499
  */
447
500
  run<T = unknown>(assetId: string, input?: unknown, options?: InvokeOptions): Promise<T>;
501
+ /**
502
+ * Private-mode execution (covia #192): a memory-only job whose result is
503
+ * collected through the invoke `wait` window — a completed private job is
504
+ * immediately forgotten by the venue, so polling cannot be used. If the
505
+ * operation outlives the venue's wait cap, polling continues while the job
506
+ * runs; a job that completes between polls is unobservable and surfaces as
507
+ * a clear error rather than a confusing 404.
508
+ */
509
+ private _runPrivate;
448
510
  /**
449
511
  * Execute an operation and return a Job for tracking
450
512
  * @param assetId - Operation asset ID or named operation
@@ -547,6 +609,18 @@ declare class UCANManager {
547
609
  private venue;
548
610
  constructor(venue: UCANManagerVenue);
549
611
  issue(aud: string, att: UCANAttenuation[], exp: number): Promise<UCANIssueResult>;
612
+ /**
613
+ * Verify a UCAN against the venue's trust policy and get the verdict
614
+ * explained — validity with a diagnosable reason, chain depth and root
615
+ * issuer, per-capability root-authority (owner / venue / refused), and,
616
+ * when `check` is supplied, whether the token would authorise that request
617
+ * here. The diagnostic counterpart to an enforcement "Access denied".
618
+ */
619
+ verify(token: string | object, check?: {
620
+ with?: string;
621
+ can?: string;
622
+ aud?: string;
623
+ }): Promise<UCANVerifyResult>;
550
624
  }
551
625
 
552
626
  interface SecretManagerVenue {
@@ -578,6 +652,19 @@ declare class SecretManager {
578
652
  */
579
653
  declare function venueBaseUrlCandidates(venueId: string): string[];
580
654
  declare class Venue implements VenueInterface {
655
+ /** Connection-level private-jobs mode — see {@link setPrivate}. */
656
+ privateJobs: boolean;
657
+ /**
658
+ * Puts this connection in **private-jobs mode**: every subsequent
659
+ * `operations.run(...)` executes as a memory-only job (covia #192) — never
660
+ * persisted to the venue's job index, no durable record, gone on venue
661
+ * restart. Requires `enablePrivateJobs` on the venue.
662
+ *
663
+ * Because a completed private job is immediately forgotten, results are
664
+ * collected through the invoke `wait` window rather than polling — so
665
+ * private mode works with `run()`; a poll-style `invoke()` throws.
666
+ */
667
+ setPrivate(enabled: boolean): void;
581
668
  baseUrl: string;
582
669
  venueId: string;
583
670
  auth: Auth;
@@ -590,6 +677,7 @@ declare class Venue implements VenueInterface {
590
677
  * `version`); it is a cache, not a liveness check.
591
678
  */
592
679
  lastKnownStatus?: StatusData;
680
+ private _adapters?;
593
681
  private _agents?;
594
682
  private _jobs?;
595
683
  private _assets?;
@@ -597,6 +685,7 @@ declare class Venue implements VenueInterface {
597
685
  private _workspace?;
598
686
  private _ucan?;
599
687
  private _secrets?;
688
+ get adapters(): AdapterManager;
600
689
  get agents(): AgentManager;
601
690
  get jobs(): JobManager;
602
691
  get assets(): AssetManager;
@@ -1151,6 +1240,26 @@ interface UCANIssueInput {
1151
1240
  att: UCANAttenuation[];
1152
1241
  exp: number;
1153
1242
  }
1243
+ /** Result of `ucan:verify` — the diagnostic verdict on a token. */
1244
+ interface UCANVerifyResult {
1245
+ valid: boolean;
1246
+ /** When invalid: a diagnosable reason (expired, bad signature, unparseable, ...). */
1247
+ reason?: string;
1248
+ iss?: string;
1249
+ aud?: string;
1250
+ exp?: number;
1251
+ /** Delegation hops above this token (0 = a root grant). */
1252
+ chainDepth?: number;
1253
+ /** The DID that signed the root of the delegation chain. */
1254
+ rootIssuer?: string;
1255
+ /** Capabilities, each annotated with rootAuthority: owner | venue | refused. */
1256
+ att?: Array<UCANAttenuation & {
1257
+ rootAuthority?: string;
1258
+ }>;
1259
+ /** Present when with/can supplied: whether the token authorises that request. */
1260
+ authorises?: boolean;
1261
+ [key: string]: unknown;
1262
+ }
1154
1263
  interface UCANIssueResult {
1155
1264
  /** The issued delegation token — pass as an element of the `ucans` array on
1156
1265
  * subsequent invokes. */
@@ -1180,9 +1289,13 @@ interface FunctionInfo {
1180
1289
  interface FunctionsResult {
1181
1290
  functions: FunctionInfo[];
1182
1291
  }
1292
+ /** Per-adapter summary the venue materialises at `v/info/adapters/<name>`
1293
+ * (OPERATIONS.md §3). */
1183
1294
  interface AdapterInfo {
1184
1295
  name: string;
1185
1296
  description?: string;
1297
+ /** Full catalog paths of the adapter's invocable operations
1298
+ * (`v/ops/...`, `v/test/ops/...`), each runnable via `operations.run`. */
1186
1299
  operations: string[];
1187
1300
  }
1188
1301
  interface AdaptersResult {
@@ -1212,6 +1325,13 @@ declare class JobFailedError extends CoviaError {
1212
1325
  constructor(jobData: JobMetadata);
1213
1326
  }
1214
1327
  /** Raised when a requested resource is not found (404). */
1328
+ /** HTTP 429 from the venue — a rate limit or concurrent-job cap. Carries the
1329
+ * server's Retry-After hint (seconds). Thrown only after the SDK's bounded
1330
+ * automatic retries are exhausted. */
1331
+ declare class RateLimitError extends GridError {
1332
+ retryAfterSeconds: number;
1333
+ constructor(message: string, retryAfterSeconds: number, body?: unknown);
1334
+ }
1215
1335
  declare class NotFoundError extends GridError {
1216
1336
  constructor(message: string);
1217
1337
  }
@@ -1226,12 +1346,11 @@ declare class JobNotFoundError extends NotFoundError {
1226
1346
  constructor(jobId: string);
1227
1347
  }
1228
1348
 
1229
- /**
1230
- * Utility function to handle API calls with consistent error handling
1231
- * @param url - The URL to fetch
1232
- * @param options - Fetch options
1233
- * @returns {Promise<T>} The response data
1234
- */
1349
+ /** Parse a Retry-After header (delta-seconds or HTTP-date) to ms from now. */
1350
+ declare function parseRetryAfterMs(header: string | null, nowMs: number): number;
1351
+ /** Delay before the next attempt after a 429, or -1 to give up. Pure — random
1352
+ * in [0,1) supplied by the caller so tests are deterministic. */
1353
+ declare function retryDelayMs(attempt: number, retryAfterMs: number, remainingBudgetMs: number, random: number): number;
1235
1354
  declare function fetchWithError<T>(url: string, options?: RequestInit): Promise<T>;
1236
1355
  /**
1237
1356
  * Utility function to handle fetch requests that return streams
@@ -1426,4 +1545,58 @@ declare function decodePublicKey(multikey: string): Uint8Array;
1426
1545
  */
1427
1546
  declare function didFromPublicKey(publicKey: Uint8Array): string;
1428
1547
 
1429
- export { type AdapterInfo, type AdaptersResult, Agent, type AgentCancelTaskInput, type AgentCard, type AgentChatInput, type AgentChatResult, type AgentCompleteTaskResult, type AgentContextInput, type AgentCreateInput, type AgentCreateResult, type AgentDeleteInput, type AgentDeleteResult, type AgentFailTaskResult, type AgentForkInput, type AgentForkResult, type AgentInfoResult, type AgentListInput, type AgentListResult, AgentManager, type AgentMessageInput, type AgentMessageResult, type AgentRequestInput, type AgentRequestResult, type AgentResumeInput, AgentStatus, type AgentSuspendResult, type AgentTriggerInput, type AgentTriggerResult, type AgentUpdateInput, Asset, type AssetID, type AssetList, type AssetListOptions, AssetManager, type AssetMetadata, AssetNotFoundError, type AssetPinResult, Auth, BasicAuth, BearerAuth, ChatSession, type ContentDetails, type ContentHashResult, CoviaConnectionError, CoviaError, CoviaTimeoutError, type Credentials, CredentialsHTTP, type DIDDocument, type DIDURL, DataAsset, Ed25519Auth, type FunctionInfo, type FunctionsResult, Grid, GridError, type GroupCount, type InvokeOptions, type InvokePayload, Job, JobFailedError, JobManager, type JobMetadata, JobNotFoundError, JobStatus, KeyPairAuth, type MCPDiscovery, Namespace, NoAuth, NotFoundError, Operation, type OperationDetails, type OperationInfo, OperationManager, type OperationPayload, type OperationRunner, RunStatus, type SSEEvent, type SecretExtractInput, type SecretExtractResult, SecretManager, type SecretSetInput, type SecretSetResult, type StatsData, type StatusData, type UCANAttenuation, type UCANIssueInput, type UCANIssueResult, UCANManager, Venue, type VenueConstructor, type VenueData, type VenueInterface, type VenueOptions, type WorkspaceAggregateResult, type WorkspaceAppendInput, type WorkspaceAppendResult, type WorkspaceCopyResult, type WorkspaceCountResult, type WorkspaceDeleteInput, type WorkspaceDeleteResult, type WorkspaceInspectInput, type WorkspaceInspectResult, type WorkspaceListInput, type WorkspaceListResult, WorkspaceManager, type WorkspaceReadInput, type WorkspaceReadResult, type WorkspaceSliceInput, type WorkspaceSliceResult, type WorkspaceWriteInput, type WorkspaceWriteResult, assetHash, createSSEEvent, decodePublicKey, didFromPublicKey, didMethod, didUrl, encodePublicKey, fetchStreamWithError, fetchWithError, generateKeyPair, getAssetIdFromPath, getAssetIdFromVenueId, getParsedAssetId, hexToPrivateKey, isDid, isJobComplete, isJobFinished, isJobPaused, logger, parseDidUrl, parseSSEStream, privateKeyToHex, venueBaseUrlCandidates };
1548
+ /**
1549
+ * Client-side UCAN minting for self-sovereign callers — the tokens a principal
1550
+ * signs with their OWN key (a venue cannot sign as the caller, so these have
1551
+ * no venue-op counterpart; venues only verify). Java parity:
1552
+ * covia-core `covia.grid.auth.UcanTokens`.
1553
+ *
1554
+ * All helpers return the JWT encoding — the transport form carried in the
1555
+ * `ucans` request array and relayed across cross-venue hops. Delegation chains
1556
+ * embed parent tokens as JWT strings in `prf`.
1557
+ */
1558
+ /** The ability that instructs a venue to relay a cross-venue hop as itself. */
1559
+ declare const VENUE_RELAY = "venue/relay";
1560
+ interface UCANCapability {
1561
+ with: string;
1562
+ can: string;
1563
+ }
1564
+ /** The did:key DID for a private key. */
1565
+ declare function didFor(privateKey: Uint8Array): string;
1566
+ /**
1567
+ * Mint a UCAN as an EdDSA JWT: `{iss, aud, att, exp[, prf]}` signed by
1568
+ * `privateKey` (iss = its did:key).
1569
+ *
1570
+ * @param privateKey 32-byte Ed25519 private key (the issuer)
1571
+ * @param audienceDID who receives the token (`aud`)
1572
+ * @param att capabilities delegated (empty array = pure identity token)
1573
+ * @param lifetimeSeconds validity window
1574
+ * @param proofs parent UCAN JWT strings (`prf`) for delegation chains
1575
+ */
1576
+ declare function createUCANJWT(privateKey: Uint8Array, audienceDID: string, att: UCANCapability[], lifetimeSeconds: number, proofs?: string[]): string;
1577
+ /**
1578
+ * Mint an **identity token**: a UCAN with an EMPTY attenuation list, audienced
1579
+ * to `venueDID`. Pure proof of identity — it grants nothing, and being
1580
+ * audience-bound it is unusable at any other venue. Present it in the `ucans`
1581
+ * array; the venue accepts it as the caller identity on an
1582
+ * otherwise-unauthenticated transport (how identity crosses cross-venue
1583
+ * relays — COG-3 §6, COG-15).
1584
+ */
1585
+ declare function identityToken(privateKey: Uint8Array, venueDID: string, lifetimeSeconds?: number): string;
1586
+ /**
1587
+ * Mint an owner-signed (**self-sovereign**) grant: delegates `(with, can)` to
1588
+ * `audienceDID`, rooted by the signer. Because the root issuer is the resource
1589
+ * owner, the grant verifies on ANY venue hosting the data — no venue involved
1590
+ * in issuance.
1591
+ */
1592
+ declare function grant(ownerPrivateKey: Uint8Array, audienceDID: string, withResource: string, can: string, lifetimeSeconds: number): string;
1593
+ /**
1594
+ * Mint a **relay delegation**: instructs and authorises `venueDID` to make a
1595
+ * cross-venue hop authenticated as itself, exercising the caller's authority.
1596
+ * Carries the `venue/relay` instruction plus the substantive capabilities the
1597
+ * venue may exercise. The venue honours it only when its issuer is the
1598
+ * authenticated caller (COG-15).
1599
+ */
1600
+ declare function relayDelegation(privateKey: Uint8Array, venueDID: string, lifetimeSeconds: number, caps?: UCANCapability[]): string;
1601
+
1602
+ export { type AdapterInfo, AdapterManager, type AdaptersResult, Agent, type AgentCancelTaskInput, type AgentCard, type AgentChatInput, type AgentChatResult, type AgentCompleteTaskResult, type AgentContextInput, type AgentCreateInput, type AgentCreateResult, type AgentDeleteInput, type AgentDeleteResult, type AgentFailTaskResult, type AgentForkInput, type AgentForkResult, type AgentInfoResult, type AgentListInput, type AgentListResult, AgentManager, type AgentMessageInput, type AgentMessageResult, type AgentRequestInput, type AgentRequestResult, type AgentResumeInput, AgentStatus, type AgentSuspendResult, type AgentTriggerInput, type AgentTriggerResult, type AgentUpdateInput, Asset, type AssetID, type AssetList, type AssetListOptions, AssetManager, type AssetMetadata, AssetNotFoundError, type AssetPinResult, Auth, BasicAuth, BearerAuth, ChatSession, type ContentDetails, type ContentHashResult, CoviaConnectionError, CoviaError, CoviaTimeoutError, type Credentials, CredentialsHTTP, type DIDDocument, type DIDURL, DataAsset, Ed25519Auth, type FunctionInfo, type FunctionsResult, Grid, GridError, type GroupCount, type InvokeOptions, type InvokePayload, Job, JobFailedError, JobManager, type JobMetadata, JobNotFoundError, JobStatus, KeyPairAuth, type MCPDiscovery, Namespace, NoAuth, NotFoundError, Operation, type OperationDetails, type OperationInfo, OperationManager, type OperationPayload, type OperationRunner, RateLimitError, RunStatus, type SSEEvent, type SecretExtractInput, type SecretExtractResult, SecretManager, type SecretSetInput, type SecretSetResult, type StatsData, type StatusData, type UCANAttenuation, type UCANCapability, type UCANIssueInput, type UCANIssueResult, UCANManager, type UCANVerifyResult, VENUE_RELAY, Venue, type VenueConstructor, type VenueData, type VenueInterface, type VenueOptions, type WorkspaceAggregateResult, type WorkspaceAppendInput, type WorkspaceAppendResult, type WorkspaceCopyResult, type WorkspaceCountResult, type WorkspaceDeleteInput, type WorkspaceDeleteResult, type WorkspaceInspectInput, type WorkspaceInspectResult, type WorkspaceListInput, type WorkspaceListResult, WorkspaceManager, type WorkspaceReadInput, type WorkspaceReadResult, type WorkspaceSliceInput, type WorkspaceSliceResult, type WorkspaceWriteInput, type WorkspaceWriteResult, assetHash, createSSEEvent, createUCANJWT, decodePublicKey, didFor, didFromPublicKey, didMethod, didUrl, encodePublicKey, fetchStreamWithError, fetchWithError, generateKeyPair, getAssetIdFromPath, getAssetIdFromVenueId, getParsedAssetId, grant, hexToPrivateKey, identityToken, isDid, isJobComplete, isJobFinished, isJobPaused, logger, parseDidUrl, parseRetryAfterMs, parseSSEStream, privateKeyToHex, relayDelegation, retryDelayMs, venueBaseUrlCandidates };