@civitai/app-sdk 0.51.0 → 0.51.1

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
@@ -150,10 +150,14 @@ own key:
150
150
  omits `mode` entirely and still lands here, unchanged.
151
151
  - **`WorkflowBodyCustomComfyInline`** (`mode: 'inline'`) — the block ships the ComfyUI graph
152
152
  itself as `workflow`, with a declared `resources` AIR manifest and a `maxBuzz` ceiling
153
- that is **also the step timeout in seconds**. Server-side this arm is **app-developer-only
154
- and page-token-only**, and code review is replaced by three fail-closed gates (AIR
155
- containment, entitlement, and a moderation sweep over every string leaf in the graph). A
156
- registered recipe remains the way to reach every viewer.
153
+ that is **also the step timeout in seconds**. Server-side this arm is **page-token-only**,
154
+ and code review is replaced by three fail-closed gates (AIR containment, entitlement, and a
155
+ moderation sweep over every string leaf in the graph). 🔴 It is **not** app-developer-only —
156
+ this line said it was, and nothing on either `customComfy` arm checks app-developer status,
157
+ so an ordinary viewer of your published block can reach it. `WorkflowBodyCustomComfyInline`'s
158
+ doc comment enumerates the refusals that DO run. A registered recipe is how you get a
159
+ reviewed graph you do not have to ship in the body, not a way onto a surface inline cannot
160
+ reach.
157
161
 
158
162
  `WorkflowBody`'s `step` member is likewise a union of two arms, mirroring the host's
159
163
  `blockStepMemberSchema`. Here the discriminator is the **presence of `step`**, so narrow with
@@ -856,13 +856,30 @@ export type InlineComfyNode = {
856
856
  * graph". That is FALSE and was removed: it predates the inline arm and cost a
857
857
  * developer a dogfooding session, who trusted it over a working feature.
858
858
  *
859
- * WHO CAN USE IT. Narrower than the recipe arm, and both gates are server-side:
860
- * - **App developers only** — the host runs `assertViewerIsAppDeveloper` on
861
- * every `customComfy` estimate AND submit. A non-developer viewer of your
862
- * published block cannot submit one.
859
+ * 🔴 IT IS NOT "APP DEVELOPERS ONLY", AND THAT CLAIM USED TO BE HERE. This
860
+ * block read "**App developers only** — the host runs
861
+ * `assertViewerIsAppDeveloper` on every `customComfy` estimate AND submit. A
862
+ * non-developer viewer of your published block cannot submit one." Both
863
+ * sentences are FALSE: NEITHER `customComfy` arm runs any app-developer check,
864
+ * on the estimate or on the submit. The host's own schema module records the
865
+ * same retraction. Do not reintroduce it, in any wording — it is a SECURITY
866
+ * claim, and believing it is what makes an author ship an inline graph they
867
+ * would not ship to every viewer. An ordinary viewer of your published block
868
+ * CAN reach this arm once the refusals below pass.
869
+ *
870
+ * WHO CAN USE IT — stated as the refusals the host actually runs, before either
871
+ * arm's body is inspected. Each is a path your block has to handle:
863
872
  * - **Page tokens only** — a model-bound token is rejected.
864
- * So treat inline as a build/iterate primitive today. If you need a graph
865
- * available to every viewer, get it registered as a recipe.
873
+ * - The token must carry the **`ai:write:budgeted`** consent scope.
874
+ * - The viewer must be **signed in** — a token whose subject does not resolve
875
+ * is refused.
876
+ * - The viewer must be **enabled for Apps** (the runtime kill-switch, evaluated
877
+ * on the token's subject; this is a closed beta).
878
+ * - On **submit** only: the token must carry a **positive per-call Buzz
879
+ * budget**. That budget is minted from YOUR OWN manifest
880
+ * (`page.buzzBudgetPerGen`) — it is not a property of the viewer.
881
+ * A registered recipe is how you get a reviewed graph you do not have to ship in
882
+ * the body. It is not a way onto a surface the inline arm cannot reach.
866
883
  *
867
884
  * WHAT REPLACED CODE REVIEW. A recipe is reviewed in-repo, and that review was
868
885
  * the trust root. An inline graph has none, so the host substitutes three
@@ -997,8 +1014,10 @@ export type WorkflowBodyCustomComfyInline = {
997
1014
  * - {@link WorkflowBodyCustomComfyRecipe} (`mode` omitted, or `'recipe'`) —
998
1015
  * names a server-registered, code-reviewed recipe. The default.
999
1016
  * - {@link WorkflowBodyCustomComfyInline} (`mode: 'inline'`) — ships the
1000
- * ComfyUI graph itself. Developer-only, page-tokens-only, and fenced by
1001
- * three server-side gates instead of code review.
1017
+ * ComfyUI graph itself. Page-tokens-only, and fenced by three server-side
1018
+ * gates instead of code review. 🔴 NOT developer-only — this line said it was,
1019
+ * and no `customComfy` arm runs an app-developer check. See that type's own
1020
+ * doc comment for the refusals that DO run.
1002
1021
  *
1003
1022
  * Both arms are `.strict()` server-side, so a body naming BOTH `recipe` and
1004
1023
  * `workflow` is rejected by both rather than resolved to a winner. Narrow on
@@ -1193,7 +1212,8 @@ export type WorkflowBodyPassThroughStep = {
1193
1212
  * itself a union on `mode`: a bounded, server-registered
1194
1213
  * {@link WorkflowBodyCustomComfyRecipe} (the default), or a
1195
1214
  * {@link WorkflowBodyCustomComfyInline} graph the block ships itself
1196
- * (`mode: 'inline'`; developer-only).
1215
+ * (`mode: 'inline'`; page-tokens-only, and NOT developer-only — that claim
1216
+ * used to be here and is false).
1197
1217
  * - {@link WorkflowBodyStep} (`kind: 'step'`, `step` PRESENT) — a bounded,
1198
1218
  * server-registered orchestrator step (the host's step registry; billing mode
1199
1219
  * and moderation posture are declared per entry).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@civitai/app-sdk",
3
- "version": "0.51.0",
3
+ "version": "0.51.1",
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",