@civitai/app-sdk 0.7.0 → 0.8.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
@@ -28,6 +28,105 @@ import { defineBlock, BLOCK_SCOPES } from '@civitai/app-sdk/blocks';
28
28
  import manifestSchema from '@civitai/app-sdk/schemas/app-block/v1.json' with { type: 'json' };
29
29
  ```
30
30
 
31
+ ## App Blocks contract (`@civitai/app-sdk/blocks`)
32
+
33
+ > Building an **App Block** (an iframe-embedded UI on a civitai.com page)? This
34
+ > subpath is the framework-agnostic contract — manifest types, scope strings,
35
+ > the `postMessage` protocol, and the `defineBlock` validator. The React hooks +
36
+ > transport that consume it live in
37
+ > [`@civitai/blocks-react`](https://www.npmjs.com/package/@civitai/blocks-react).
38
+ > Start from the runnable [examples](https://github.com/civitai/civitai-app-starters/tree/main/starters/examples).
39
+ >
40
+ > This is distinct from the OAuth flow above: a *block* runs inside civitai.com
41
+ > and gets a short-lived block-scoped JWT handed to it; an *app* (the OAuth
42
+ > starters) runs on your own domain and does the Authorization-Code dance.
43
+
44
+ ### The transport / message contract
45
+
46
+ A block runs in a sandboxed iframe. The host (civitai.com) and the block speak
47
+ over `window.postMessage({ type, payload }, targetOrigin)`, discriminated by
48
+ `type`. The full union is exported:
49
+
50
+ - **parent → block**: `BLOCK_INIT`, `TOKEN_REFRESH`, `TOKEN_REFRESH_RESPONSE`,
51
+ `ESTIMATE_RESULT`, `WORKFLOW_SUBMITTED`, `WORKFLOW_STATUS`,
52
+ `BUZZ_PURCHASE_RESULT`, `CHECKPOINT_PICKER_RESULT`, `USER_CHECKPOINT_SET`,
53
+ `APP_STORAGE_*_RESULT`, `SUSPEND`, `RESUME` (`ParentToBlockMessage`).
54
+ - **block → parent**: `BLOCK_READY`, `BLOCK_ERROR`, `REQUEST_TOKEN`,
55
+ `RESIZE_IFRAME`, `SUBMIT_WORKFLOW`, `ESTIMATE_WORKFLOW`, `POLL_WORKFLOW`,
56
+ `OPEN_BUZZ_PURCHASE`, `OPEN_CHECKPOINT_PICKER`, `SET_USER_CHECKPOINT`,
57
+ `NAVIGATE`, `TRACK_EVENT`, `APP_STORAGE_*` (`BlockToParentMessage`).
58
+
59
+ `isMessage(data, 'BLOCK_INIT')` is a **discriminator-only** narrowing helper — it
60
+ checks `data.type`, NOT the payload shape. Anything crossing the iframe trust
61
+ boundary must be payload-validated at the boundary (the React transport does this
62
+ for you).
63
+
64
+ ### `BLOCK_INIT` — the first message
65
+
66
+ The host waits for the iframe `load` event AND a minted token, then posts:
67
+
68
+ ```ts
69
+ interface BlockInitPayload {
70
+ blockInstanceId: string;
71
+ blockId: string;
72
+ appId: string; // the OauthClient (app) this block belongs to
73
+ token: WrappedToken; // { raw, scopes[], expiresAt (ISO), buzzBudget? }
74
+ context: BlockContext; // { slotId, … } — narrow to ModelSlotContext
75
+ settings: BlockSettings; // { publisherSettings, userSettings }
76
+ viewer: ViewerInfo | null; // null = anonymous
77
+ theme: 'light' | 'dark';
78
+ renderMode: 'iframe' | 'inline';
79
+ }
80
+ ```
81
+
82
+ `token.buzzBudget` is only present when the manifest declares `ai:write:budgeted`.
83
+ `expiresAt` is an ISO string on the wire; the React transport rehydrates it to a
84
+ `Date`.
85
+
86
+ ### Primitives
87
+
88
+ | Export | What |
89
+ |---|---|
90
+ | `defineBlock({ manifest })` | Validates a `BlockManifestV1` (subset of the server checks) and returns it. Call at module scope so authoring mistakes throw before mount. Throws `BlockManifestError` (has a `.field` dot-path). |
91
+ | `BLOCK_SCOPES` / `BLOCK_SCOPE_PATTERN` | The known block scope strings + the `domain:verb:target` regex. |
92
+ | `isMessage(data, type)` | Discriminator-only message narrowing (see above). |
93
+ | types | `BlockManifestV1`, `ManifestSettings` (+ field types), `BlockContext`, `ModelSlotContext`, `BlockCheckpointInfo`, `ShowcaseImage`, `BlockToken`, `WrappedToken`, `BlockSettings`, `ViewerInfo`, `Theme`, `WorkflowBody`, `BlockTextToImageParams`, `BlockWorkflowSnapshot`, `WorkflowStatus`, `BlockInitPayload`, `ParentToBlockMessage`, `BlockToParentMessage`. |
94
+
95
+ ### `defineBlock` validator rules
96
+
97
+ Mirrors a strict subset of the civitai/civitai server gate. It throws on:
98
+
99
+ - A missing **required** field: `$schema`, `appId`, `blockId`, `version`, `name`,
100
+ `type`, `targets`, `scopes`, `iframe`, `contentRating`, `minApiVersion`.
101
+ - `$schema` ≠ `https://civitai.com/schemas/app-block/v1.json`.
102
+ - `blockId` not matching `/^[a-z0-9-]{3,64}$/`; `version` not semver; `name` > 80 chars.
103
+ - `type` not `block` | `embed`; `contentRating` not `g|pg|pg13|r|x`.
104
+ - **Empty `scopes`** (must be a non-empty array) or any scope not matching
105
+ `domain:verb:target` lowercase — PascalCase like `ModelsReadSelf` gets a
106
+ pointed error.
107
+ - **Empty `targets`**, or a target with a non-string `slotId` / non-integer `priority`.
108
+ - `iframe.src` not https (http only for `localhost`/`127.0.0.1`/`[::1]`/`*.localhost`);
109
+ a banned sandbox token (`allow-same-origin`, any `allow-top-navigation*`);
110
+ non-positive integer `minHeight`; bad `maxHeight`; non-boolean `resizable`.
111
+ - `settings` with a bad key (must be `snake_case`), > 32 fields, or a field
112
+ missing/mis-typed `scope` / `type` / `label` / `description`.
113
+
114
+ > The validator does **not** check that `iframe.src` hostname equals
115
+ > `<blockId>.<APPS_DOMAIN>` or that the path is root — those are enforced
116
+ > **server-side** at submit time (gotcha #33). Keep `iframe.src` =
117
+ > `https://<blockId>.civit.ai/` (root, no path prefix) and your Vite `base: '/'`.
118
+
119
+ ### Version compatibility
120
+
121
+ | `@civitai/app-sdk` | adds (blocks surface) |
122
+ |---|---|
123
+ | `0.7.0` | `CANCEL_WORKFLOW` / `WORKFLOW_CANCELED` messages (real cancel, gotcha #51) |
124
+ | `0.6.0` | `APP_STORAGE_*` messages, `ManifestSettings` types |
125
+ | `0.5.0` | settings types, earlier message set |
126
+
127
+ Pair with `@civitai/blocks-react` at the matching minor (it peer-depends on this
128
+ contract). See the blocks-react README's compatibility table.
129
+
31
130
  ## Minimal usage example
32
131
 
33
132
  ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDb,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,OAAO,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAE3E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BnD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;CA+BpB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAEjE,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CASlE;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAI1E;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAO3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDb,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,OAAO,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAE3E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BnD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;CAmCpB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAEjE,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CASlE;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAI1E;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAO3E"}
@@ -59,7 +59,7 @@ export const TokenScope = {
59
59
  Full: (1 << 25) - 1,
60
60
  };
61
61
  export const tokenScopeLabels = {
62
- [TokenScope.UserRead]: 'Read profile & settings',
62
+ [TokenScope.UserRead]: 'Read profile, settings & email',
63
63
  [TokenScope.UserWrite]: 'Update profile & settings',
64
64
  [TokenScope.ModelsRead]: 'Browse & download models',
65
65
  [TokenScope.ModelsWrite]: 'Upload & edit models',
@@ -112,7 +112,10 @@ export const TokenScopePresets = {
112
112
  TokenScope.BountiesWrite |
113
113
  TokenScope.CollectionsWrite |
114
114
  TokenScope.SocialWrite,
115
- AIServices: TokenScope.AIServicesWrite | TokenScope.AIServicesRead | TokenScope.BuzzRead,
115
+ AIServices: TokenScope.UserRead |
116
+ TokenScope.AIServicesWrite |
117
+ TokenScope.AIServicesRead |
118
+ TokenScope.BuzzRead,
116
119
  Full: TokenScope.Full,
117
120
  };
118
121
  /** True if the given bitmask grants the named scope. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,gDAAgD;AAChD,mEAAmE;AACnE,0EAA0E;AAC1E,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,sCAAsC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,CAAC;IAEP,oBAAoB;IACpB,QAAQ,EAAE,CAAC,IAAI,CAAC;IAChB,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,qBAAqB;IACrB,UAAU,EAAE,CAAC,IAAI,CAAC;IAClB,WAAW,EAAE,CAAC,IAAI,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,CAAC;IAEpB,wCAAwC;IACxC,SAAS,EAAE,CAAC,IAAI,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,CAAC;IAClB,WAAW,EAAE,CAAC,IAAI,CAAC;IAEnB,WAAW;IACX,YAAY,EAAE,CAAC,IAAI,CAAC;IACpB,aAAa,EAAE,CAAC,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE;IAEvB,oEAAoE;IACpE,YAAY,EAAE,CAAC,IAAI,EAAE;IACrB,aAAa,EAAE,CAAC,IAAI,EAAE;IACtB,cAAc,EAAE,CAAC,IAAI,EAAE;IAEvB,0EAA0E;IAC1E,4DAA4D;IAC5D,cAAc,EAAE,CAAC,IAAI,EAAE;IACvB,eAAe,EAAE,CAAC,IAAI,EAAE;IAExB,kBAAkB;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE;IAEjB,6BAA6B;IAC7B,eAAe,EAAE,CAAC,IAAI,EAAE;IACxB,gBAAgB,EAAE,CAAC,IAAI,EAAE;IACzB,WAAW,EAAE,CAAC,IAAI,EAAE;IACpB,SAAS,EAAE,CAAC,IAAI,EAAE;IAElB,gBAAgB;IAChB,iBAAiB,EAAE,CAAC,IAAI,EAAE;IAC1B,kBAAkB,EAAE,CAAC,IAAI,EAAE;IAE3B,QAAQ;IACR,SAAS,EAAE,CAAC,IAAI,EAAE;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE;IAEnB,aAAa;IACb,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;CACX,CAAC;AAKX,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,gCAAgC;IACvD,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,2BAA2B;IACnD,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,0BAA0B;IACnD,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,sBAAsB;IAChD,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,eAAe;IAC1C,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,6BAA6B;IACrD,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACtD,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,sBAAsB;IAChD,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,eAAe;IAC1C,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,wBAAwB;IACpD,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,iBAAiB;IAC9C,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,eAAe;IAC1C,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,0BAA0B;IACtD,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,iBAAiB;IAC9C,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,oCAAoC;IACjE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,wBAAwB;IACtD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,6BAA6B;IACpD,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,kBAAkB;IAChD,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,oBAAoB;IACnD,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,iCAAiC;IAC3D,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,iBAAiB;IACzC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,oBAAoB;IACpD,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,iCAAiC;IAClE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,YAAY;IACpC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,cAAc;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EACN,UAAU,CAAC,QAAQ;QACnB,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,QAAQ;QACnB,UAAU,CAAC,eAAe;QAC1B,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;QAC5B,UAAU,CAAC,SAAS;IACtB,OAAO,EACL,UAAU,CAAC,QAAQ;QACnB,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,QAAQ;QACnB,UAAU,CAAC,eAAe;QAC1B,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;QAC5B,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,aAAa;QACxB,UAAU,CAAC,aAAa;QACxB,UAAU,CAAC,gBAAgB;QAC3B,UAAU,CAAC,WAAW;IACxB,UAAU,EACR,UAAU,CAAC,QAAQ;QACnB,UAAU,CAAC,eAAe;QAC1B,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,QAAQ;IACrB,IAAI,EAAE,UAAU,CAAC,IAAI;CACb,CAAC;AAIX,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAAa;IACrD,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC;AACrC,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;YAAE,SAAS;QACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC,IAAqB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,iBAAiB,CAAC,MAAgC;IAChE,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,UAAqC;IACjE,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IACxC,IAAI,UAAU,KAAK,UAAU,CAAC,IAAI;QAAE,OAAO,aAAa,CAAC;IACzD,IAAI,UAAU,KAAK,iBAAiB,CAAC,QAAQ;QAAE,OAAO,WAAW,CAAC;IAClE,IAAI,UAAU,KAAK,iBAAiB,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/D,IAAI,UAAU,KAAK,iBAAiB,CAAC,UAAU;QAAE,OAAO,aAAa,CAAC;IACtE,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@civitai/app-sdk",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "OAuth + PKCE, encrypted-cookie sessions, scopes, and orchestrator helpers for building third-party Civitai apps.",
5
5
  "license": "MIT",
6
6
  "type": "module",