@1claw/sdk 0.59.9 → 0.59.10

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
@@ -1,4 +1,4 @@
1
- # @1claw/sdk (v0.59.4)
1
+ # @1claw/sdk (v0.59.10)
2
2
 
3
3
  > ⭐ **Star [1clawAI/agent-templates](https://github.com/1clawAI/agent-templates)** — ready-to-run agent templates wired to 1Claw. It is our single starred repo.
4
4
 
@@ -233,6 +233,7 @@ The SDK exports a typed error hierarchy for catch-based flows:
233
233
  | `ResourceLimitExceededError` | 403 | Tier limit reached (vaults, agents, secrets) |
234
234
  | `ApprovalRequiredError` | 403 | Human approval gate triggered |
235
235
  | `NotFoundError` | 404 | Resource not found |
236
+ | `ConflictError` | 409 | Resource already exists — e.g. a duplicate vault name |
236
237
  | `RateLimitError` | 429 | Rate limit exceeded |
237
238
  | `ValidationError` | 400 | Invalid request body |
238
239
  | `ServerError` | 500+ | Server-side failure |
@@ -41,6 +41,17 @@ export declare class ApprovalRequiredError extends OneclawError {
41
41
  export declare class NotFoundError extends OneclawError {
42
42
  constructor(message?: string);
43
43
  }
44
+ /**
45
+ * Thrown on 409 Conflict — the resource already exists.
46
+ *
47
+ * Reachable since 0.59.10 on `POST /v1/vaults`, where a duplicate name used to
48
+ * surface as a 500. Without this class a 409 fell through to a bare
49
+ * `OneclawError` typed "unknown", which reads as our fault rather than as
50
+ * something the caller chose and can change.
51
+ */
52
+ export declare class ConflictError extends OneclawError {
53
+ constructor(message?: string);
54
+ }
44
55
  /** Thrown on 429 Too Many Requests responses. Includes retry timing when available. */
45
56
  export declare class RateLimitError extends OneclawError {
46
57
  readonly retryAfterMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAGrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM;CAQtB;AAED,6DAA6D;AAC7D,qBAAa,SAAU,SAAQ,YAAY;gBAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,GAAG,GAAS;CAIvD;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;gBAC5C,OAAO,EAAE,MAAM;CAI9B;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IAClD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBAEpC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB;CAKtE;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACnD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAEvB,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAS1D;AAED,yCAAyC;AACzC,qBAAa,aAAc,SAAQ,YAAY;gBAC/B,OAAO,GAAE,MAA6B;CAIrD;AAED,uFAAuF;AACvF,qBAAa,cAAe,SAAQ,YAAY;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAG3B,OAAO,GAAE,MAA8B,EACvC,YAAY,CAAC,EAAE,MAAM;CAM5B;AAED,mEAAmE;AACnE,qBAAa,eAAgB,SAAQ,YAAY;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAK/D;AAED,yCAAyC;AACzC,qBAAa,WAAY,SAAQ,YAAY;gBAErC,OAAO,GAAE,MAAgC,EACzC,MAAM,GAAE,MAAY;CAK3B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAkD5E"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAGrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM;CAQtB;AAED,6DAA6D;AAC7D,qBAAa,SAAU,SAAQ,YAAY;gBAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,GAAG,GAAS;CAIvD;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;gBAC5C,OAAO,EAAE,MAAM;CAI9B;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IAClD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBAEpC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB;CAKtE;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACnD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAEvB,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAS1D;AAED,yCAAyC;AACzC,qBAAa,aAAc,SAAQ,YAAY;gBAC/B,OAAO,GAAE,MAA6B;CAIrD;AAED;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,YAAY;gBAC/B,OAAO,GAAE,MAAkC;CAI1D;AAED,uFAAuF;AACvF,qBAAa,cAAe,SAAQ,YAAY;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAG3B,OAAO,GAAE,MAA8B,EACvC,YAAY,CAAC,EAAE,MAAM;CAM5B;AAED,mEAAmE;AACnE,qBAAa,eAAgB,SAAQ,YAAY;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAK/D;AAED,yCAAyC;AACzC,qBAAa,WAAY,SAAQ,YAAY;gBAErC,OAAO,GAAE,MAAgC,EACzC,MAAM,GAAE,MAAY;CAK3B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAoD5E"}
@@ -58,6 +58,20 @@ export class NotFoundError extends OneclawError {
58
58
  this.name = "NotFoundError";
59
59
  }
60
60
  }
61
+ /**
62
+ * Thrown on 409 Conflict — the resource already exists.
63
+ *
64
+ * Reachable since 0.59.10 on `POST /v1/vaults`, where a duplicate name used to
65
+ * surface as a 500. Without this class a 409 fell through to a bare
66
+ * `OneclawError` typed "unknown", which reads as our fault rather than as
67
+ * something the caller chose and can change.
68
+ */
69
+ export class ConflictError extends OneclawError {
70
+ constructor(message = "Resource already exists") {
71
+ super(message, 409, "conflict");
72
+ this.name = "ConflictError";
73
+ }
74
+ }
61
75
  /** Thrown on 429 Too Many Requests responses. Includes retry timing when available. */
62
76
  export class RateLimitError extends OneclawError {
63
77
  constructor(message = "Rate limit exceeded", retryAfterMs) {
@@ -119,6 +133,8 @@ export async function errorFromResponse(res) {
119
133
  }
120
134
  case 404:
121
135
  return new NotFoundError(message);
136
+ case 409:
137
+ return new ConflictError(message);
122
138
  case 429: {
123
139
  const retryHeader = res.headers.get("Retry-After");
124
140
  const retryAfterMs = retryHeader
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -9244,7 +9244,8 @@ export interface paths {
9244
9244
  path?: never;
9245
9245
  cookie?: never;
9246
9246
  };
9247
- get?: never;
9247
+ /** List the browser bridges paired to this organization. Revoked devices are included: 'was this machine ever paired' is the question asked after a laptop goes missing. */
9248
+ get: operations["list_browser_devices"];
9248
9249
  put?: never;
9249
9250
  /** Pair a browser bridge and mint its credential. Human callers only, behind a step-up re-auth: pairing is what gives a browser the standing to ask for credentials later. */
9250
9251
  post: operations["pair_browser_device"];
@@ -9254,6 +9255,23 @@ export interface paths {
9254
9255
  patch?: never;
9255
9256
  trace?: never;
9256
9257
  };
9258
+ "/v1/browser/devices/{id}": {
9259
+ parameters: {
9260
+ query?: never;
9261
+ header?: never;
9262
+ path?: never;
9263
+ cookie?: never;
9264
+ };
9265
+ get?: never;
9266
+ put?: never;
9267
+ post?: never;
9268
+ /** Revoke a paired bridge. This is what makes a leaked bb_ credential stop working. */
9269
+ delete: operations["revoke_browser_device"];
9270
+ options?: never;
9271
+ head?: never;
9272
+ patch?: never;
9273
+ trace?: never;
9274
+ };
9257
9275
  "/v1/browser/credentials": {
9258
9276
  parameters: {
9259
9277
  query?: never;
@@ -9712,6 +9730,7 @@ export interface components {
9712
9730
  keys?: components["schemas"]["ApiKeyResponse"][];
9713
9731
  };
9714
9732
  CreateVaultRequest: {
9733
+ /** @description Unique within the organization. Trimmed before it is stored, and the trimmed value is what must be unique. Counted in characters, not bytes. */
9715
9734
  name: string;
9716
9735
  description?: string;
9717
9736
  /** @description MPC custody mode to enable at creation (e.g. "2-of-2", "2-of-3") */
@@ -16616,7 +16635,24 @@ export interface operations {
16616
16635
  "application/json": components["schemas"]["VaultResponse"];
16617
16636
  };
16618
16637
  };
16619
- 400: components["responses"]["BadRequest"];
16638
+ /** @description The name is empty or longer than 255 characters. Checked before the consensus gate and the quota, so a malformed request consumes neither an approval nor a rate-limit slot. */
16639
+ 400: {
16640
+ headers: {
16641
+ [name: string]: unknown;
16642
+ };
16643
+ content: {
16644
+ "application/json": components["schemas"]["ProblemDetails"];
16645
+ };
16646
+ };
16647
+ /** @description A vault with that name already exists in this organization. Names are unique per org; this previously surfaced as a 500. */
16648
+ 409: {
16649
+ headers: {
16650
+ [name: string]: unknown;
16651
+ };
16652
+ content: {
16653
+ "application/json": components["schemas"]["ProblemDetails"];
16654
+ };
16655
+ };
16620
16656
  };
16621
16657
  };
16622
16658
  getVault: {
@@ -24607,6 +24643,21 @@ export interface operations {
24607
24643
  401: components["responses"]["Unauthorized"];
24608
24644
  403: components["responses"]["Forbidden"];
24609
24645
  404: components["responses"]["NotFound"];
24646
+ /**
24647
+ * @description The runtime's last start failed less than 120 seconds ago and is not
24648
+ * being retried yet. Chat starts a stopped runtime, so a client that
24649
+ * retries on failure turns every attempt into another deploy — one
24650
+ * polling client did exactly that every 8 seconds for days. Wait out
24651
+ * the cooldown, or call the start endpoint to see the underlying error.
24652
+ */
24653
+ 503: {
24654
+ headers: {
24655
+ [name: string]: unknown;
24656
+ };
24657
+ content: {
24658
+ "application/json": components["schemas"]["ProblemDetails"];
24659
+ };
24660
+ };
24610
24661
  };
24611
24662
  };
24612
24663
  listMemoryNamespaces: {
@@ -29460,6 +29511,50 @@ export interface operations {
29460
29511
  };
29461
29512
  };
29462
29513
  };
29514
+ list_browser_devices: {
29515
+ parameters: {
29516
+ query?: never;
29517
+ header?: never;
29518
+ path?: never;
29519
+ cookie?: never;
29520
+ };
29521
+ requestBody?: never;
29522
+ responses: {
29523
+ /** @description The paired devices. No credential material is returned — the row holds an Argon2 hash and a prefix, and neither is exposed. */
29524
+ 200: {
29525
+ headers: {
29526
+ [name: string]: unknown;
29527
+ };
29528
+ content: {
29529
+ "application/json": {
29530
+ devices?: {
29531
+ /** Format: uuid */
29532
+ id?: string;
29533
+ label?: string;
29534
+ platform?: string | null;
29535
+ bridge_version?: string | null;
29536
+ /** Format: date-time */
29537
+ last_seen_at?: string | null;
29538
+ /**
29539
+ * Format: date-time
29540
+ * @description Set once revoked. A revoked credential stops resolving.
29541
+ */
29542
+ revoked_at?: string | null;
29543
+ /** Format: date-time */
29544
+ created_at?: string;
29545
+ }[];
29546
+ };
29547
+ };
29548
+ };
29549
+ /** @description Unauthenticated */
29550
+ 401: {
29551
+ headers: {
29552
+ [name: string]: unknown;
29553
+ };
29554
+ content?: never;
29555
+ };
29556
+ };
29557
+ };
29463
29558
  pair_browser_device: {
29464
29559
  parameters: {
29465
29560
  query?: never;
@@ -29518,6 +29613,40 @@ export interface operations {
29518
29613
  };
29519
29614
  };
29520
29615
  };
29616
+ revoke_browser_device: {
29617
+ parameters: {
29618
+ query?: never;
29619
+ header?: never;
29620
+ path: {
29621
+ id: string;
29622
+ };
29623
+ cookie?: never;
29624
+ };
29625
+ requestBody?: never;
29626
+ responses: {
29627
+ /** @description Revoked. Subsequent use of that credential resolves to nothing. */
29628
+ 204: {
29629
+ headers: {
29630
+ [name: string]: unknown;
29631
+ };
29632
+ content?: never;
29633
+ };
29634
+ /** @description Unauthenticated */
29635
+ 401: {
29636
+ headers: {
29637
+ [name: string]: unknown;
29638
+ };
29639
+ content?: never;
29640
+ };
29641
+ /** @description No such device in this organization */
29642
+ 404: {
29643
+ headers: {
29644
+ [name: string]: unknown;
29645
+ };
29646
+ content?: never;
29647
+ };
29648
+ };
29649
+ };
29521
29650
  list_browser_credentials: {
29522
29651
  parameters: {
29523
29652
  query?: never;
@@ -29556,7 +29685,7 @@ export interface operations {
29556
29685
  secret_path: string;
29557
29686
  /** @description https only, and its host must be in allowed_hosts or sso_hosts — the bridge navigates here itself, one step before a password is typed. */
29558
29687
  login_url: string;
29559
- /** @description Bare hostnames, compared exactly. URLs, ports and wildcards are refused: a wildcard would match nothing while looking like it allowed something. */
29688
+ /** @description Hostnames. A bare entry matches only itself; a leading dot ('.example.com') matches that host and any subdomain. URLs, ports and '*' are refused '*' has no meaning to the matcher, so it would be stored and then match nothing. */
29560
29689
  allowed_hosts: string[];
29561
29690
  /** @description Identity-provider hosts the login legitimately bounces through. */
29562
29691
  sso_hosts?: string[];
@@ -29725,8 +29854,19 @@ export interface operations {
29725
29854
  * @description The bridge's navigation counter. Compared again at consume: a navigation in between means the page decided about is no longer the page in front of the bridge.
29726
29855
  */
29727
29856
  generation: number;
29728
- /** @description Where the form would POST. Checked as well as the two origins — a login form on an allowed page can still submit to somebody else's host. */
29857
+ /** @description Where the form would POST. Checked as well as the two origins — a login form on an allowed page can still submit to somebody else's host. Absent is not treated as 'same as the tab'; it denies. */
29729
29858
  form_action_origin?: string;
29859
+ /** @description Path of the form being filled, checked against the binding's fingerprint. */
29860
+ form_path: string;
29861
+ /** @description Field names on that form. Every field the fingerprint expects must be present; extra fields are fine, since sites add hidden inputs. */
29862
+ field_names: string[];
29863
+ /** @description Hosts the login has redirected through, in order. Each is checked against the binding's allowed hosts union its sso hosts. */
29864
+ redirect_chain: string[];
29865
+ /**
29866
+ * Format: int64
29867
+ * @description The target's generation now. A mismatch with `generation` means the page moved and the fill is denied.
29868
+ */
29869
+ current_generation: number;
29730
29870
  /** @description Origin of the tab being driven. Checked against the binding's allowed and sso hosts by exact host match. */
29731
29871
  tab_origin: string;
29732
29872
  /** @description Origin of the frame holding the form. Checked separately — a credential typed into an allowed tab can still land in an attacker's iframe. */