@onlyworlds/sdk 4.57.1 → 4.57.2

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.46** (canonical 00.33.00).
3
+ **Current as of**: SDK **4.x** · schema-dist **v0.33.0-dist.47** (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
 
package/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ earlier history lives in git log only.
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [4.57.2] - 2026-10-22
9
+
10
+ ### Changed
11
+
12
+ - **Schema repinned to schema-dist `v0.33.0-dist.47`** (same canonical 00.33.00; no schema file moved, no generated type changed). The distribution gains `profiles/checks.md` and `profiles/checks.fixture.json`, the checks profile: a work world's Charter carries its house rules as `x_checks_rules`, beside the sentences a person reads (OW Council #559). `profiles/room.md` now defines "trimmed and without regard to case" once, for every profile that folds like the room's pairs: trimmed is leading and trailing whitespace removed, nothing inside touched; without regard to case is the trimmed value after simple case folding.
13
+
14
+ ### Fixed
15
+
16
+ - **`isRoomElement` trims Unicode White_Space exactly**, the 25 code points of the property, at both ends of the type and the supertype. It used JavaScript's `trim()`, which also strips U+FEFF, a byte order mark. Skeld's ruling (OW Parlor h66 #10415) is that a byte order mark stays, so a supertype `"\uFEFFMessage"` is no longer a room element; `" Message\u3000"` still is, and a leading U+200B (zero width space, not White_Space) still is not. The room fixture's 23 cases answer as before.
17
+
8
18
  ## [4.57.1] - 2026-10-22
9
19
 
10
20
  ### Fixed
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.46** — canonical schema **00.33.00**, published 2026-10-22.
3
+ **Source**: https://github.com/OnlyWorlds/schema-dist @ **v0.33.0-dist.47** — canonical schema **00.33.00**, published 2026-10-22.
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
@@ -3968,8 +3968,10 @@ declare function getElementLabel(elementType: ElementType): string;
3968
3968
  * and a room element opened by its id, show them whole. A tool that writes the world writes
3969
3969
  * room elements like any other, the mark kept byte for byte: the rule is the reader's.
3970
3970
  *
3971
- * Case is folded with Unicode simple case folding (simpleCaseFold, the table the `.owworld`
3972
- * reader uses), the same fold as the Python package's `is_room_element`.
3971
+ * Trimmed is Unicode White_Space at both ends (trimWhiteSpace above), so a value with a
3972
+ * leading byte order mark is not a match. Case is folded with Unicode simple case folding
3973
+ * (simpleCaseFold, the table the `.owworld` reader uses), the same fold as the Python
3974
+ * package's `is_room_element`.
3973
3975
  */
3974
3976
  declare function isRoomElement(el: {
3975
3977
  type?: string;
package/dist/index.js CHANGED
@@ -3073,7 +3073,41 @@ function writeWorldFile(files, topDir) {
3073
3073
  }
3074
3074
 
3075
3075
  // src/room.ts
3076
- var fold = (text) => simpleCaseFold(text.trim());
3076
+ var WHITE_SPACE = /* @__PURE__ */ new Set([
3077
+ 9,
3078
+ 10,
3079
+ 11,
3080
+ 12,
3081
+ 13,
3082
+ 32,
3083
+ 133,
3084
+ 160,
3085
+ 5760,
3086
+ 8192,
3087
+ 8193,
3088
+ 8194,
3089
+ 8195,
3090
+ 8196,
3091
+ 8197,
3092
+ 8198,
3093
+ 8199,
3094
+ 8200,
3095
+ 8201,
3096
+ 8202,
3097
+ 8232,
3098
+ 8233,
3099
+ 8239,
3100
+ 8287,
3101
+ 12288
3102
+ ]);
3103
+ function trimWhiteSpace(text) {
3104
+ let start = 0;
3105
+ let end = text.length;
3106
+ while (start < end && WHITE_SPACE.has(text.charCodeAt(start))) start++;
3107
+ while (end > start && WHITE_SPACE.has(text.charCodeAt(end - 1))) end--;
3108
+ return text.slice(start, end);
3109
+ }
3110
+ var fold = (text) => simpleCaseFold(trimWhiteSpace(text));
3077
3111
  function isRoomElement(el) {
3078
3112
  if (el == null || typeof el.type !== "string" || typeof el.supertype !== "string") return false;
3079
3113
  const mark = el[ROOM_MARK];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onlyworlds/sdk",
3
- "version": "4.57.1",
3
+ "version": "4.57.2",
4
4
  "description": "TypeScript SDK for the OnlyWorlds API - build world-building applications with type safety",
5
5
  "type": "module",
6
6
  "exports": {