@pouchy_ai/world-sdk 0.25.0 → 0.26.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/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @pouchy_ai/world-sdk
2
2
 
3
+ ## 0.26.0
4
+
5
+ - **`WorldDeliberationResponse.viewTrimmed`** — whether the role's view had to
6
+ be trimmed to fit the previewer's input budget. The budget grows with the
7
+ worldline, so a long session reaches it where a short one never does, and a
8
+ previewer working from a cut-down view is not the same instrument as one that
9
+ saw the whole state.
10
+ - The server has always computed it and told nobody. A field test read its
11
+ absence in a downstream response as "no trimming happened" — a different claim
12
+ from "nobody reports this" — and retired a live hypothesis on that reading.
13
+ Always present, `true` or `false`: a flag that appears on only one branch
14
+ cannot separate "it did not happen" from "we did not look".
15
+ - Additive; nothing else on the deliberation surface moved.
16
+
17
+ ## 0.25.1
18
+
19
+ - **Docs links now resolve.** The README sent readers to `docs/*.md` "in the Pouchy
20
+ repo" — which is PRIVATE, so every pointer in the shipped package was a dead end
21
+ for the people the package is for. The world documentation is now published at
22
+ pouchy.ai/docs, and the README links there.
23
+ - No code change; the client surface is byte-identical to 0.25.0.
24
+
3
25
  ## 0.25.0
4
26
 
5
27
  - **`WorldApiError.rejectedEffects`** — a rejected turn (422) now arrives with
package/README.md CHANGED
@@ -266,8 +266,8 @@ It returns the recent refusals with a closed reason vocabulary — `missing`,
266
266
  `malformed`, `unknown_key`, `stale`, `bad_signature`, `no_keys` — plus how many
267
267
  audit rows it scanned, because an empty feed is not a clean bill of health.
268
268
 
269
- `docs/world-sdk-errors.md` in the Pouchy repo maps every reason and every
270
- `WorldApiError` code to what to change.
269
+ [World SDK — errors and refusals](https://pouchy.ai/docs/world-sdk-errors) maps
270
+ every reason and every `WorldApiError` code to what to change.
271
271
 
272
272
  ## The three things integrators get wrong
273
273
 
@@ -310,11 +310,13 @@ and exits non-zero on the first structural failure.
310
310
 
311
311
  ## Quickstarts
312
312
 
313
- - `docs/world-quickstart-drama.md` — screenplay → world → new screenplay draft
314
- - `docs/world-quickstart-npc.md` — one town, three NPCs, one shared state
315
- - `docs/world-quickstart-nextjs.md`a Next.js app: one route handler, one page,
313
+ - [An interactive drama](https://pouchy.ai/docs/world-quickstart-drama) — screenplay → world → new screenplay draft
314
+ - [NPCs that share one world](https://pouchy.ai/docs/world-quickstart-npc) — one town, three NPCs, one shared state
315
+ - [Inside your Next.js app](https://pouchy.ai/docs/world-quickstart-nextjs) — one route handler, one page,
316
316
  no browser login anywhere in the deployment
317
317
 
318
+ Everything else starts at the [documentation index](https://pouchy.ai/docs/pouchy-world).
319
+
318
320
  ## License
319
321
 
320
322
  See LICENSE.
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * a project is running — which is exactly the field you reach for when a
5
5
  * customer's integration behaves like an older SDK than they say they have.
6
6
  * It sat at '0.1.0' for eight releases before anything compared the two. */
7
- export declare const WORLD_SDK_VERSION = "0.25.0";
7
+ export declare const WORLD_SDK_VERSION = "0.26.0";
8
8
  export declare const DEFAULT_BASE_URL = "https://pouchy.ai/v1";
9
9
  /** One direction a beat could take. The WHOLE of what a deliberation shows a
10
10
  * player: no reasoning, no role secrets, no simulated effects, no scores. */
@@ -30,6 +30,16 @@ export interface WorldDeliberationResponse {
30
30
  /** Why it stopped. A run that hit a ceiling says so rather than letting a
31
31
  * short list pass for a complete one. */
32
32
  stop: 'complete' | 'candidate_cap' | 'model_call_cap' | 'token_cap' | 'time_cap' | 'no_roles';
33
+ /** True when the role's view had to be trimmed to fit the previewer's input
34
+ * budget — which grows with the worldline, so a long session can reach it
35
+ * where a short one never does.
36
+ *
37
+ * It matters because a previewer working from a cut-down view is not the
38
+ * same instrument as one that saw the whole state, and until 0.26.0 the
39
+ * server computed this and told nobody. A field test then read its absence
40
+ * as "no trimming happened" — a different claim from "nobody reports this"
41
+ * — and retired a live hypothesis on it. Always present, true or false. */
42
+ viewTrimmed: boolean;
33
43
  }
34
44
  /** The refusal classes a world call can produce. `unknown` is deliberate: an
35
45
  * unrecognized status is never quietly folded into a neighbour. */
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ import { createHash, createHmac, randomUUID } from 'node:crypto';
23
23
  * a project is running — which is exactly the field you reach for when a
24
24
  * customer's integration behaves like an older SDK than they say they have.
25
25
  * It sat at '0.1.0' for eight releases before anything compared the two. */
26
- export const WORLD_SDK_VERSION = '0.25.0';
26
+ export const WORLD_SDK_VERSION = '0.26.0';
27
27
  export const DEFAULT_BASE_URL = 'https://pouchy.ai/v1';
28
28
  /** Read the commit turn id out of an envelope, so the signature covers the id
29
29
  * the server will commit under. The payload half is base64url JSON; the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pouchy_ai/world-sdk",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
4
4
  "description": "Server-side TypeScript client for Pouchy World \u2014 story packages, world definitions, world sessions, coordinated turns, trusted events, replay verification and script drafts. Node only: it holds a project Secret Key and a source signing key, which never belong in a browser or a mobile app.",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE",