@onlyworlds/sdk 4.72.2 → 4.72.4

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/AGENTS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # For AI agents using @onlyworlds/sdk
2
2
 
3
- **Current as of**: SDK **4.x** · schema-dist **v0.33.0-dist.59** (canonical 00.33.00).
3
+ **Current as of**: SDK **4.x** · schema-dist **v0.33.0-dist.63** (canonical 00.33.00).
4
4
  This line is asserted by `codegen:check` in CI — if the pin moves and this file is not
5
5
  re-read against it, the check fails rather than letting this document rot quietly.
6
6
 
@@ -27,7 +27,7 @@ against live data). The v1 surface (`OnlyWorldsClient`, the `ElementType` enum)
27
27
  - Never send a `"world"` field in payloads — world identity comes from the API key (422 otherwise).
28
28
  - v2 link fields use ONE name both directions (no `_ids` suffix — that is v1 dialect only).
29
29
  - PATCH is destructive on sent fields; use `editLinks` (atomic add/remove) for relationships.
30
- - Offline or stale edits: pass `{ ifMatch: el.change_seq }` to `patch`/`editLinks` (since 4.9.0) and `delete` (since 4.61.0, keel #563).
30
+ - Offline or stale edits: pass `{ ifMatch: el.change_seq }` to `patch`/`editLinks` (since 4.9.0) and `delete` (since 4.61.0).
31
31
  If the element moved, nothing is written and `OwPreconditionFailedError` (412) carries
32
32
  `current`; the server never merges, the client decides.
33
33
  - Polling: `changesHead()` (since 4.15.0) gives `{head, cursor, epoch, unchanged}` without a
@@ -44,7 +44,7 @@ against live data). The v1 surface (`OnlyWorldsClient`, the `ElementType` enum)
44
44
  - Images: `uploadImage(bytes)` returns `{ url, ... }`; set `url` as `image_url`. The bytes go
45
45
  to the edge with a single-use ticket from keel, never with the API key. `removeImage(urlOrKey)`
46
46
  takes one back (its uploader or the world's owner); it leaves `image_url` on elements as is.
47
- - Files on elements (keel #393): `listFiles(type, id)`, `uploadFile(type, id, bytes, { name?,
47
+ - Files on elements: `listFiles(type, id)`, `uploadFile(type, id, bytes, { name?,
48
48
  label?, onProgress? })` (ticket from keel, bytes to the upload host; the kind from the name's
49
49
  extension), `fileDownloadLink(type, id, fileId)` (a 5-minute link: fetch it at once, never
50
50
  store it), `removeFile(type, id, fileId)`, `worldFiles()` (`used_bytes` of `cap_bytes`).
@@ -70,7 +70,7 @@ against live data). The v1 surface (`OnlyWorldsClient`, the `ElementType` enum)
70
70
  without spending: `{ token_rating, tokens_used_today, tokens_remaining, resets_at }`.
71
71
  - Who am I (since 4.22.0, a world key): `client.me()` is `{ world, scope, kind, role,
72
72
  membership, character, front_door }` (`membership` is what `created_by` holds for what you
73
- create; null for the owner); `front_door` (since 4.60.0, keel #558) names who answers for your
73
+ create; null for the owner); `front_door` (since 4.60.0) names who answers for your
74
74
  seat (`sponsor`, `sponsor_character`), your Character, and the world's Charter with up to five
75
75
  skill Objects: an agent reads `charter` first. `client.members()` is the roster's rows. An
76
76
  account token is a TypeError.
@@ -135,13 +135,13 @@ against live data). The v1 surface (`OnlyWorldsClient`, the `ElementType` enum)
135
135
  is lower case letters, digits and hyphens, 1 to 32 characters, else a TypeError at construction.
136
136
  keel stores it as `changed_client` on the element and `deleted_client` on a `/changes` delete:
137
137
  the client's claim, never proof, and null when none was sent.
138
- - **Proposals** (keel #519): `propose(type, id, { fields, evidence, expires? })` suggests a change
138
+ - **Proposals**: `propose(type, id, { fields, evidence, expires? })` suggests a change
139
139
  without making it; any member who reads the element may, a read key included. The owner or a
140
140
  co-builder decides: `acceptProposal(type, id, pid)` (the write is theirs; 409 `stale_proposal`,
141
141
  an `OwStaleProposalError` with `conflicts` and `current`, when a proposed field moved since),
142
142
  `declineProposal(type, id, pid, { reason? })`; the proposer may `withdrawProposal`. Lists:
143
143
  `listProposals(type, id)`, `worldProposals({ state?, element? })`; the world's queue (since
144
- 4.66.0, keel #565) also lists each new element written as proposed (`kind: 'new_element'`
144
+ 4.66.0) also lists each new element written as proposed (`kind: 'new_element'`
145
145
  beside `kind: 'proposal'`), which a keeper settles with `reviewNewElement(type, id, { decision:
146
146
  'accept' | 'decline', reason? })` (decline deletes it; 422 `err.isNotProposed` when unmarked).
147
147
  A row's `fields` holds only what differs; `omitted` names what an upsert left empty. When the world's
package/CHANGELOG.md CHANGED
@@ -5,11 +5,23 @@ earlier history lives in git log only.
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [4.72.4] - 2026-10-25
9
+
10
+ ### Changed
11
+
12
+ - **Schema repinned to schema-dist `v0.33.0-dist.63`** (from dist.61; the same canonical 00.33.00, so `ONLYWORLDS_VERSION` stays `'00.33.00'`, no schema file moved and no generated type changed). Serials 62 and 63 change only the dist's folder checker, `walk/lint_folder.py`: it imports the schema walk only when run as a command. This package does not ship it; the repin keeps both client packages on one serial.
13
+
14
+ ## [4.72.3] - 2026-10-24
15
+
16
+ ### Changed
17
+
18
+ - **Schema repinned to schema-dist `v0.33.0-dist.61`** (from dist.59; the same canonical 00.33.00, so `ONLYWORLDS_VERSION` stays `'00.33.00'`, no schema file moved and no generated type changed). Serial 60 rules eight spine readings and adds `x_spine_retires`, the profile's thirteenth key; serial 61 gives `schema.json` the advisory minimum and maximum of the 15 integer fields that have them (this package's types and `FIELD_SCHEMA` are generated from the field list, which does not carry them), rules two more spine readings with four fixture cases, and has the folder lint name the format's version. The SDK reads no spine key; the profile pages it replays (names, room, review) moved only their ruled-when lines.
19
+
8
20
  ## [4.72.2] - 2026-10-24
9
21
 
10
22
  ### Fixed
11
23
 
12
- - **`OwElementBase.hidden`'s doc comment says what a create does with it.** It said a write ignores the mark. Since keel PR 199 (live 2026-10-23), a create (a POST, a PUT of a new id, a `/bulk` item that creates) carrying `hidden: true` creates the element hidden, from the owner's keys or a co-builder's; any other key gets 403 `hidden_not_allowed` and nothing is created. Every other write still ignores it. The SDK already sent the mark as the element had it; only the words were wrong, and they reach the docs' TypeScript reference.
24
+ - **`OwElementBase.hidden`'s doc comment says what a create does with it.** It said a write ignores the mark. Since keel PR 199 (live 2026-10-23), a create (a POST, a PUT of a new id, a `/bulk` item that creates) carrying `hidden: true` creates the element hidden, from the owner's keys or a co-builder's; any other key gets 403 `hidden_not_allowed` and nothing is created. Every other write still ignores it. The SDK already sent the mark as the element had it; only the words were wrong, in the types an editor shows (`dist/index.d.ts`). (Corrected after release: the entry first said they reach the docs' TypeScript reference, which lists the methods and not this field.)
13
25
  - Tests: `create`, `upsert` and `bulk` send `hidden` as given (it is not on the stripped list); a 403 `hidden_not_allowed` surfaces as `OwApiError.code`.
14
26
 
15
27
  ## [4.72.1] - 2026-10-24
package/README.md CHANGED
@@ -368,7 +368,7 @@ A lore view (a list, a count, search, a graph, a link picker, a story's context)
368
368
 
369
369
  ### A world's own words for the types
370
370
 
371
- A world may carry `x_names` on the World: its own word for a type (Character shown as *Employee* in a work world), and a finer word for a supertype inside one. `typeWord(world, type, { supertype, many })` returns that word, or `null` for the standard's name. `world` is a `getWorld()` body (keel serves `x_` keys on the World from Keel #571) or a folder's `world.json`. The API, the folder, the schema and every id keep the standard's names; the word is for display only.
371
+ A world may carry `x_names` on the World: its own word for a type (Character shown as *Employee* in a work world), and a finer word for a supertype inside one. `typeWord(world, type, { supertype, many })` returns that word, or `null` for the standard's name. `world` is a `getWorld()` body (keel serves `x_` keys on the World) or a folder's `world.json`. The API, the folder, the schema and every id keep the standard's names; the word is for display only.
372
372
 
373
373
  ```typescript
374
374
  import { typeWord } from '@onlyworlds/sdk';
@@ -404,4 +404,4 @@ Use this SDK for known operations in your own code (CRUD, sync, bulk). To let an
404
404
 
405
405
  ## Licence and contributions
406
406
 
407
- The code is MIT (`LICENSE`). Issues are welcome: a bug, a wrong word, a thing you could not do. Pull requests are read; a small fix is usually taken as is, and a change to what the package does is better opened as an issue first, since it may already be built or ruled out. A reply can take a few days. A vulnerability goes privately, never in an issue: `SECURITY.md`.
407
+ The code is MIT (`LICENSE`). Issues are welcome: a bug, a wrong word, a thing you could not do. Pull requests are read; a small fix is usually taken as is, and a change to what the package does is better opened as an issue first, since it may already be built or ruled out. A reply can take a few days. A vulnerability goes privately, never in an issue: `SECURITY.md`. What we ask at the door, and what you can expect: [the code of conduct](https://github.com/OnlyWorlds/OnlyWorlds/blob/main/CODE_OF_CONDUCT.md).
package/SCHEMA.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # OnlyWorlds Schema Reference
2
2
 
3
- **Source**: https://github.com/OnlyWorlds/schema-dist @ **v0.33.0-dist.59** — canonical schema **00.33.00**, published 2026-10-24.
3
+ **Source**: https://github.com/OnlyWorlds/schema-dist @ **v0.33.0-dist.63** — canonical schema **00.33.00**, published 2026-10-25.
4
4
 
5
5
  GENERATED from the canonical schema YAML — do not hand-edit (regenerate: `python codegen/generate_types.py`).
6
6
  Written for both humans and AI agents reading this package locally.
package/dist/index.d.ts CHANGED
@@ -2163,7 +2163,7 @@ interface OwBulkItem {
2163
2163
  * the NUMERIC HTTP status of that slot (201/400/...), success slots echo
2164
2164
  * created_at/updated_at, error slots carry an OwErrorBody under `error`.
2165
2165
  * A contributor's write on someone else's element fails in its slot as
2166
- * `{status: 403, error: {code: 'not_author'}}` (keel D72), never as a thrown error.
2166
+ * `{status: 403, error: {code: 'not_author'}}`, never as a thrown error.
2167
2167
  * After an `atomic: true` request with `errors` true NOTHING was written, yet the slots of
2168
2168
  * the items that would have succeeded still say 201 (keel's "counterfactual 201s"): do not
2169
2169
  * record their ids as created.
@@ -2617,7 +2617,7 @@ interface OwJoinPreview {
2617
2617
  }>;
2618
2618
  [k: string]: unknown;
2619
2619
  }
2620
- /** One of a world's invite links, as GET /account/worlds/{id}/links lists it (keel C1, 48c10d4). */
2620
+ /** One of a world's invite links, as GET /account/worlds/{id}/links lists it. */
2621
2621
  interface OwWorldLink {
2622
2622
  /** The link's id: revokeWorldLink takes it. */
2623
2623
  id: string;
@@ -2737,9 +2737,9 @@ interface OwSignedIn {
2737
2737
  /**
2738
2738
  * One world of the account, from GET /account/worlds: owned (`role: 'owner'`) or shared
2739
2739
  * (`'collaborator'`, with `member_role` the membership's role). Keys by name and last four only,
2740
- * never the key; on a shared world only the member's own keys (keel H8).
2740
+ * never the key; on a shared world only the member's own keys.
2741
2741
  */
2742
- /** The draught's policy (keel PR 155, D143): what GET /character/{id}/context serves and how. */
2742
+ /** The draught's policy (keel PR 155): what GET /character/{id}/context serves and how. */
2743
2743
  interface OwDraughtPolicy {
2744
2744
  /** Sections to serve; default every one but `messages`, `room` and `proposed`, each served only when named. */
2745
2745
  components?: OwDraughtComponent[];
@@ -2786,7 +2786,7 @@ interface OwDraughtItem {
2786
2786
  /** The element's body exactly as the list route serves it to the same reader. */
2787
2787
  element: OwElement;
2788
2788
  }
2789
- /** One Character's context in one read, GET /character/{id}/context (keel PR 155, D143; the draught). */
2789
+ /** One Character's context in one read, GET /character/{id}/context (keel PR 155; the draught). */
2790
2790
  /** The draught under `compact`: every section may be absent, and so may `cut` (nothing was cut). */
2791
2791
  type OwDraughtCompact = Omit<OwDraught, 'cut'> & {
2792
2792
  cut?: Record<string, number>;
@@ -2883,7 +2883,7 @@ interface OwCreateAccountWorldInput {
2883
2883
  /**
2884
2884
  * createAccountWorld's 201: the world's row as listAccountWorlds lists it, plus the full write key
2885
2885
  * once in `key` (never shown again). keel's document names it `AccountWorldCreated`, and
2886
- * Assembly's verify-sdk-wire holds this type to it key for key.
2886
+ * the maintainers' wire check holds this type to it key for key.
2887
2887
  */
2888
2888
  interface OwCreatedAccountWorld {
2889
2889
  id: string;
@@ -2902,8 +2902,8 @@ interface OwCreatedAccountWorld {
2902
2902
  }
2903
2903
  /**
2904
2904
  * A world key as minted by POST /account/worlds/{id}/keys: the row the account's key list shows,
2905
- * plus the full key once in `key` (never shown again). A member's key carries its `member` label
2906
- * (keel D72); an owner's row has no such field.
2905
+ * plus the full key once in `key` (never shown again). A member's key carries its `member` label;
2906
+ * an owner's row has no such field.
2907
2907
  */
2908
2908
  interface OwMintedKey {
2909
2909
  id: string;
@@ -3111,7 +3111,7 @@ interface ListParams {
3111
3111
  /**
3112
3112
  * Accepted: `name` (exact), `name__icontains`, `supertype`, `subtype`, and
3113
3113
  * `characters=<id>` (contains) on every type with a `characters` link (at schema
3114
- * 0.30.1: collective, construct, event, narrative, relation, title; keel D76d). Any other key 422s
3114
+ * 0.30.1: collective, construct, event, narrative, relation, title). Any other key 422s
3115
3115
  * server-side with the list of filters in the message -- the client passes keys
3116
3116
  * through unchecked and lets the platform say so. (`__in`, `__gte`, `__lte` and
3117
3117
  * `__isnull` are designed in keel's spec but not built; `ordering` 422s too.)
@@ -3213,7 +3213,7 @@ declare class OwApiError extends Error {
3213
3213
  /**
3214
3214
  * Seconds to wait before retrying, from the `Retry-After` header (a delay in
3215
3215
  * seconds or an HTTP date), else null. keel sends it on 503 `server_busy`
3216
- * (admission control, D71) and 429 `rate_limited`. This client never retries
3216
+ * (admission control) and 429 `rate_limited`. This client never retries
3217
3217
  * on its own; the value is here so callers can back off politely.
3218
3218
  * Readable in browsers too: keel exposes `Retry-After` over CORS and its
3219
3219
  * admission gate's 503 carries CORS headers (keel `4949406`, 2026-09-28).
@@ -3238,7 +3238,7 @@ declare class OwApiError extends Error {
3238
3238
  get isIdempotencyInFlight(): boolean;
3239
3239
  /**
3240
3240
  * The id is already taken (409 `id_conflict`): a create with an id that exists
3241
- * (keel D39), or a PUT whose id belongs to another world (D70). Retrying will not
3241
+ * or a PUT whose id belongs to another world. Retrying will not
3242
3242
  * help; the id is the problem. `/bulk` never throws for this: it answers 200 with a
3243
3243
  * per-item slot `{status: 409, error: {code: 'id_conflict'}}` — check the slot.
3244
3244
  */
@@ -3250,7 +3250,7 @@ declare class OwApiError extends Error {
3250
3250
  * the stored cursor and walk again from the start. What to do with what the local copy holds
3251
3251
  * that the new walk does not name is `resyncReason`'s: `role`, keep it; `view`, drop it.
3252
3252
  * Without a reason (keel's hidden mark off), keep it: a reset never empties a copy (keel PR
3253
- * 104, the Captain's ruling: sharing is forward-only). Never empty the copy on your own.
3253
+ * 104, ruled by Titus: sharing is forward-only). Never empty the copy on your own.
3254
3254
  */
3255
3255
  get isResyncRequired(): boolean;
3256
3256
  /**
@@ -3267,14 +3267,14 @@ declare class OwApiError extends Error {
3267
3267
  get isBusy(): boolean;
3268
3268
  /**
3269
3269
  * A contributor tried to change, replace, relink or delete an element someone else
3270
- * created (403 `not_author`, keel D72 membership phase 2). Retrying will not help; the
3270
+ * created (403 `not_author`). Retrying will not help; the
3271
3271
  * element is not theirs. `/bulk` never throws for this: it answers 200 with a per-item
3272
3272
  * slot `{status: 403, error: {code: 'not_author'}}`. Owners and co-builders never see it.
3273
3273
  */
3274
3274
  get isNotAuthor(): boolean;
3275
3275
  /**
3276
3276
  * A member key tried what only the owner may do: `patchWorld`, even with a co-builder's
3277
- * key (403 `owner_only`, keel D72; sharing's publish, republish and revoke answer
3277
+ * key (403 `owner_only`; sharing's publish, republish and revoke answer
3278
3278
  * contributors and guests with the same code). Retrying will not help. The owner's own
3279
3279
  * key never sees it.
3280
3280
  */
@@ -3514,7 +3514,7 @@ declare function pinExpectation(kind: OwKeyKind): 'never' | 'optional' | 'requir
3514
3514
 
3515
3515
  /**
3516
3516
  * Sign in with OnlyWorlds: OAuth 2.1's authorization code with PKCE (S256) for public clients
3517
- * (keel PR 154, live 2026-10-22; the handoff sheet, Orrery `keel/signin-handoff.md` §3).
3517
+ * (keel PR 154, live 2026-10-22).
3518
3518
  *
3519
3519
  * Two calls. `beginSignIn` mints `state` and a PKCE verifier, keeps them under the client id in a
3520
3520
  * storage the page shares with its callback (sessionStorage by default), and hands back the
@@ -3640,7 +3640,7 @@ declare class OwV2Client {
3640
3640
  /** GET /{type}/ -- one cursor page. */
3641
3641
  list(type: ElementType | string, params?: ListParams): Promise<OwPage>;
3642
3642
  /**
3643
- * GET /character/{id}/context -- the draught (keel PR 155, D143): what one Character knows, as the
3643
+ * GET /character/{id}/context -- the draught (keel PR 155): what one Character knows, as the
3644
3644
  * recorded world holds it, in one read: her element, what she holds and sits in, her open work,
3645
3645
  * how she works, the Events she was in, the Narratives she knows, everything else that names
3646
3646
  * her, her sheet, what changed around her (`since`), and who plays whom; the world's name and
@@ -4063,7 +4063,7 @@ declare class OwV2Client {
4063
4063
  acceptJoin(code: string): Promise<OwJoinedMembership>;
4064
4064
  /**
4065
4065
  * POST /account/worlds/{worldId}/links -- a new invite link for a world this client's
4066
- * `ow_a_` token owns (keel C1): `reader` is required (`person`, accepted with acceptJoin;
4066
+ * `ow_a_` token owns: `reader` is required (`person`, accepted with acceptJoin;
4067
4067
  * `agent`, redeemed at POST /join; `player`, a friend with no account, redeemed with
4068
4068
  * redeemJoin for a read key); `role`, when left out, is keel's default: guest for a
4069
4069
  * person link, contributor for an agent link (a player link is guest, and refuses any other), `days` (1, 7 or 30) to 7; `withCharacter` (agent links
@@ -4275,7 +4275,7 @@ declare class OwV2Client {
4275
4275
  * `navigate: false`). `redirectUri` is the registered return address as a string, `https:`
4276
4276
  * only, never built from `location.origin`: a tool's registration is read at
4277
4277
  * `GET /api/v2/auth/clients`. `resume` is small JSON handed back by `completeSignIn`. No request
4278
- * is sent; any client, keyless included. The handoff sheet: Orrery `keel/signin-handoff.md` §3.
4278
+ * is sent; any client, keyless included.
4279
4279
  */
4280
4280
  signInWithOnlyWorlds(opts: OwSignInBegin): Promise<OwSignInBegun>;
4281
4281
  /**
@@ -4525,7 +4525,7 @@ declare function typeWord(world: object | null | undefined, type: string, opts?:
4525
4525
  * The world file, `.owworld` (Folder Format spec §4.7; a `.zip` by another
4526
4526
  * name): one archive holding one whole world as a portable copy (§4.1), and
4527
4527
  * the reader that opens one back. Absorbed from Atlas's
4528
- * `src/store/world-file.ts` (Temper's, Atlas 1.17), so Atlas, Lantern and any
4528
+ * `src/store/world-file.ts` (Atlas 1.17), so Atlas, Lantern and any
4529
4529
  * script read one file the same way; brought to §4.7's checks OW-1 to OW-22
4530
4530
  * and their fixture set.
4531
4531
  *
@@ -4681,8 +4681,8 @@ declare function nfc(text: string): string;
4681
4681
 
4682
4682
  /**
4683
4683
  * World lookup: find the elements a plain-language question is about, in a
4684
- * world held in memory, with no model and no network. Ported from Assembly's
4685
- * Lantern Ask trial (`dossiers/lantern-ask/lookup.mjs`, round 2), with the
4684
+ * world held in memory, with no model and no network. Ported from the
4685
+ * Lantern Ask trial (round 2), with the
4686
4686
  * same ranking, so the trial's measurements on two real worlds describe this
4687
4687
  * code. Pure: runs in a browser and in Node alike.
4688
4688
  *
@@ -4898,7 +4898,7 @@ declare function buildAskContext<T extends OwLookupElement>(items: Array<OwLooku
4898
4898
  * Photo preparation: make a picture from a phone's camera or files ready for
4899
4899
  * `uploadImage` (webp, png, jpeg or avif, at most 15 MB), in the browser,
4900
4900
  * before it leaves the device. Lifted from the upload page's converter
4901
- * (upload.onlyworlds.com, Boss's): canvas, webp at quality 0.82, alpha kept.
4901
+ * (upload.onlyworlds.com): canvas, webp at quality 0.82, alpha kept.
4902
4902
  *
4903
4903
  * Two traps it handles:
4904
4904
  * - A browser that cannot encode webp hands back a PNG instead (Safari has
@@ -4963,8 +4963,8 @@ declare function preparePhoto(input: Blob, opts?: OwPhotoOptions): Promise<OwPre
4963
4963
  * Calendar kernel — pure arithmetic, formatting, and parsing over the world's
4964
4964
  * integer time line.
4965
4965
  *
4966
- * Contract: Forge/Notes/2026-07-14-calendar-design-final.md §5 + §5b (3-lens
4967
- * gated 2026-07-14). The binding rules, restated where they bite:
4966
+ * The contract is the calendar design of 2026-07-14 (its §5 and §5b). The
4967
+ * binding rules, restated where they bite:
4968
4968
  *
4969
4969
  * - The number line is the only truth. A calendar names it; it never owns it.
4970
4970
  * - Absolute year index is ZERO-based: step 0 opens absolute year 0. All
@@ -5355,7 +5355,7 @@ declare enum GameTier {
5355
5355
  * Since then keel mounts only `status/` and `encryption-info/` under /tokens/
5356
5356
  * (`accounts/token_api.py`; consume, access-key and both revokes answer 404 on
5357
5357
  * production, 2026-10-14), and spending moved server-side: the Council spends
5358
- * through keel's council proxy (Skeld's ruling), and
5358
+ * through keel's council proxy (ruled 2026-10-14), and
5359
5359
  * `OwV2Client.allowance()` reads the token rating. The four dead methods are
5360
5360
  * deprecated in 4.23.0 and leave in 5.0.
5361
5361
  */
@@ -5419,7 +5419,7 @@ declare class TokenResource {
5419
5419
  * Consume tokens for service usage
5420
5420
  *
5421
5421
  * @deprecated keel serves no consume route (404 on production since 2026-10;
5422
- * no client decides what its act costs, Skeld's ruling): spending
5422
+ * no client decides what its act costs, ruled 2026-10-14): spending
5423
5423
  * happens server-side in the route that does the work. Removed in 5.0.
5424
5424
  *
5425
5425
  * Reports token consumption to track daily usage. Allows consumption even if
package/dist/index.js CHANGED
@@ -108,7 +108,7 @@ var OwApiError = class extends Error {
108
108
  }
109
109
  /**
110
110
  * The id is already taken (409 `id_conflict`): a create with an id that exists
111
- * (keel D39), or a PUT whose id belongs to another world (D70). Retrying will not
111
+ * or a PUT whose id belongs to another world. Retrying will not
112
112
  * help; the id is the problem. `/bulk` never throws for this: it answers 200 with a
113
113
  * per-item slot `{status: 409, error: {code: 'id_conflict'}}` — check the slot.
114
114
  */
@@ -122,7 +122,7 @@ var OwApiError = class extends Error {
122
122
  * the stored cursor and walk again from the start. What to do with what the local copy holds
123
123
  * that the new walk does not name is `resyncReason`'s: `role`, keep it; `view`, drop it.
124
124
  * Without a reason (keel's hidden mark off), keep it: a reset never empties a copy (keel PR
125
- * 104, the Captain's ruling: sharing is forward-only). Never empty the copy on your own.
125
+ * 104, ruled by Titus: sharing is forward-only). Never empty the copy on your own.
126
126
  */
127
127
  get isResyncRequired() {
128
128
  return this.status === 409 && this.code === "resync_required";
@@ -149,7 +149,7 @@ var OwApiError = class extends Error {
149
149
  }
150
150
  /**
151
151
  * A contributor tried to change, replace, relink or delete an element someone else
152
- * created (403 `not_author`, keel D72 membership phase 2). Retrying will not help; the
152
+ * created (403 `not_author`). Retrying will not help; the
153
153
  * element is not theirs. `/bulk` never throws for this: it answers 200 with a per-item
154
154
  * slot `{status: 403, error: {code: 'not_author'}}`. Owners and co-builders never see it.
155
155
  */
@@ -158,7 +158,7 @@ var OwApiError = class extends Error {
158
158
  }
159
159
  /**
160
160
  * A member key tried what only the owner may do: `patchWorld`, even with a co-builder's
161
- * key (403 `owner_only`, keel D72; sharing's publish, republish and revoke answer
161
+ * key (403 `owner_only`; sharing's publish, republish and revoke answer
162
162
  * contributors and guests with the same code). Retrying will not help. The owner's own
163
163
  * key never sees it.
164
164
  */
@@ -1377,7 +1377,7 @@ var OwV2Client = class {
1377
1377
  }
1378
1378
  /**
1379
1379
  * POST /account/worlds/{worldId}/links -- a new invite link for a world this client's
1380
- * `ow_a_` token owns (keel C1): `reader` is required (`person`, accepted with acceptJoin;
1380
+ * `ow_a_` token owns: `reader` is required (`person`, accepted with acceptJoin;
1381
1381
  * `agent`, redeemed at POST /join; `player`, a friend with no account, redeemed with
1382
1382
  * redeemJoin for a read key); `role`, when left out, is keel's default: guest for a
1383
1383
  * person link, contributor for an agent link (a player link is guest, and refuses any other), `days` (1, 7 or 30) to 7; `withCharacter` (agent links
@@ -1722,7 +1722,7 @@ var OwV2Client = class {
1722
1722
  * `navigate: false`). `redirectUri` is the registered return address as a string, `https:`
1723
1723
  * only, never built from `location.origin`: a tool's registration is read at
1724
1724
  * `GET /api/v2/auth/clients`. `resume` is small JSON handed back by `completeSignIn`. No request
1725
- * is sent; any client, keyless included. The handoff sheet: Orrery `keel/signin-handoff.md` §3.
1725
+ * is sent; any client, keyless included.
1726
1726
  */
1727
1727
  async signInWithOnlyWorlds(opts) {
1728
1728
  only("signInWithOnlyWorlds", opts, ["clientId", "redirectUri", "resume", "storage", "navigate"]);
@@ -4780,7 +4780,7 @@ var TokenResource = class {
4780
4780
  * Consume tokens for service usage
4781
4781
  *
4782
4782
  * @deprecated keel serves no consume route (404 on production since 2026-10;
4783
- * no client decides what its act costs, Skeld's ruling): spending
4783
+ * no client decides what its act costs, ruled 2026-10-14): spending
4784
4784
  * happens server-side in the route that does the work. Removed in 5.0.
4785
4785
  *
4786
4786
  * Reports token consumption to track daily usage. Allows consumption even if
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onlyworlds/sdk",
3
- "version": "4.72.2",
3
+ "version": "4.72.4",
4
4
  "description": "TypeScript SDK for the OnlyWorlds API - build world-building applications with type safety",
5
5
  "type": "module",
6
6
  "exports": {