@vibes.diy/prompts 14.3.190 → 14.3.192

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/llms/access.md CHANGED
@@ -30,7 +30,7 @@ writes.
30
30
 
31
31
  **UserContext:** `{ userHandle: string, displayName?: string, backend?: "scheduled" | "onChange" | "fetch" }` — `userHandle` is stable unique id (use for all auth checks), `displayName` is display only (never use for identity checks), and `backend` is present only when the app's own `backend.js` issued this write, naming the handler that did (`scheduled`, `onChange` or `fetch`). Every write from a browser or the CLI arrives with `backend` absent, the app owner's own writes included — it says where a write came from, never who the writer is. Gate on `ctx.requireBackend(...)` rather than throwing on `user.backend` yourself: a bare `throw` on `user.backend` refuses the hand-repair lane admin mode exists for, and returns no descriptor for the write it refused.
32
32
 
33
- **Helpers (`ctx`):** Opaque closures over the materialized grant state. They throw or pass — you cannot enumerate channels, list members, or iterate grants. They also throw when `user` is null: `ctx.requireAccess(channelId)` throws if user is not in the channel, `ctx.requireRole(roleName)` throws if user is not in the role, and `ctx.requireBackend()` throws unless the app's own `backend.js` issued this write — `ctx.requireBackend("scheduled")` narrows that to one handler. All three no-op under admin mode.
33
+ **Helpers (`ctx`):** Opaque closures over the materialized grant state. They throw or pass — you cannot enumerate channels, list members, or iterate grants. They also throw when `user` is null: `ctx.requireAccess(channelId)` throws if user is not in the channel, `ctx.requireRole(roleName)` throws if user is not in the role, and `ctx.requireBackend()` throws unless the app's own `backend.js` issued this write — `ctx.requireBackend("scheduled")` narrows that to one handler. `ctx.requireBackend` reads the write's origin, not its writer, so it also passes when nobody is signed in (a guest calling your `fetch` handler, or an `onChange` run a signed-out write triggered), while `user` stays null and the write still needs `allowAnonymous: true`. All three no-op under admin mode.
34
34
 
35
35
  Express every refusal about **who may act** through the supplied validators — `ctx.requireAccess`, `ctx.requireRole`, `ctx.requireBackend` — so that admin mode passes them and the function still runs, applying your own channels and grants to the repaired document; a refusal about the document's own **shape**, like an unknown type or a missing field, stays a plain `throw` and is right to, while a write-once check sits in between and is worth naming in a comment, since a schema repair has to get past it.
36
36
 
package/llms/backend.md CHANGED
@@ -85,6 +85,15 @@ escalation. For documents only the server should control, use `scheduled` and
85
85
  gate them on the origin with `ctx.requireBackend("scheduled")`, which admits the
86
86
  run and turns every ordinary client write away.
87
87
 
88
+ The origin travels with the write even when nobody is signed in, for every
89
+ handler. A guest's `apiFetch` into the `fetch` handler arrives with `user` null,
90
+ and `ctx.requireBackend("fetch")` still passes for it, so a guest-checkout
91
+ record can be one only the handler writes; an `onChange` run triggered by a
92
+ signed-out writer passes `ctx.requireBackend("onChange")` the same way. The function still opts that anonymous
93
+ write in with `allowAnonymous: true`, and the app's anonymous-write setting
94
+ still has to admit signed-out writers; `user.backend` itself is read only off a
95
+ signed-in user, so gate with `ctx.requireBackend`.
96
+
88
97
  `scheduled` always runs in **admin mode**, the same override the owner gets
89
98
  from the client's admin toggle: `ctx.requireAccess(...)`, `ctx.requireRole(...)`
90
99
  and `ctx.requireBackend(...)` all no-op, and its `ctx.db.query` reads are
package/llms/cues.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cues.js","sourceRoot":"","sources":["../../jsr/llms/cues.ts"],"names":[],"mappings":"AAIA,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAGD,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,GAAW;IAClD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,IAAI,MAAM,CAAC,gBAAgB,IAAI,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AASD,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAmC;IAChF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,CAAC"}
1
+ {"version":3,"file":"cues.js","sourceRoot":"","sources":["../../jsr/llms/cues.ts"],"names":[],"mappings":"AAKA,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAGD,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,GAAW;IAClD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,IAAI,MAAM,CAAC,gBAAgB,IAAI,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AASD,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAmC;IAChF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,CAAC"}
@@ -17,9 +17,10 @@ export const customLookConfig = {
17
17
  "shadcn",
18
18
  "neo-brutalist",
19
19
  "neobrutalism",
20
- "gumroad",
20
+ "like gumroad",
21
21
  "terminal style",
22
- "newspaper",
22
+ "like a newspaper",
23
+ "newspaper style",
23
24
  "linear style",
24
25
  "like linear",
25
26
  "ios settings",
@@ -1 +1 @@
1
- {"version":3,"file":"custom-look.js","sourceRoot":"","sources":["../../jsr/llms/custom-look.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,gXAAgX;IAClX,IAAI,EAAE;QACJ,aAAa;QACb,iBAAiB;QACjB,eAAe;QACf,eAAe;QACf,cAAc;QACd,aAAa;QACb,YAAY;QACZ,UAAU;QACV,iBAAiB;QACjB,YAAY;QACZ,cAAc;QACd,QAAQ;QACR,eAAe;QACf,cAAc;QACd,SAAS;QACT,gBAAgB;QAChB,WAAW;QACX,cAAc;QACd,aAAa;QACb,cAAc;KACf;CACF,CAAC"}
1
+ {"version":3,"file":"custom-look.js","sourceRoot":"","sources":["../../jsr/llms/custom-look.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,gXAAgX;IAClX,IAAI,EAAE;QACJ,aAAa;QACb,iBAAiB;QACjB,eAAe;QACf,eAAe;QACf,cAAc;QACd,aAAa;QACb,YAAY;QACZ,UAAU;QACV,iBAAiB;QACjB,YAAY;QACZ,cAAc;QACd,QAAQ;QACR,eAAe;QACf,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,cAAc;KACf;CACF,CAAC"}
@@ -51,8 +51,7 @@ a link to the exact page and uses the words that page uses:
51
51
  or change a card, and the portal exists once it is saved.
52
52
  3. Come back to the app. The Join buttons work in test mode the moment both
53
53
  items are done; the card `4242 4242 4242 4242` with any future date pays.
54
- 4. Go live, one app at a time. Once a test payment goes through and live
55
- payments are open on vibes.diy, press **Go live with Stripe** under
54
+ 4. Go live, one app at a time. Once a test payment goes through, press **Go live with Stripe** under
56
55
  **Payments** on the Settings tab and finish Stripe's live setup (once, for
57
56
  every app). Then press **Take live payments in this app** on this app's
58
57
  Setup screen, and save the **Customer portal** once more in live mode at
package/llms/stripe.md CHANGED
@@ -59,8 +59,7 @@ a link to the exact page and uses the words that page uses:
59
59
  2. Come back to the app. The Pay buttons work in test mode the moment Stripe
60
60
  says the account is ready, with no redeploy; the card
61
61
  `4242 4242 4242 4242` with any future date pays.
62
- 3. Go live, one app at a time. Once a test payment goes through and live
63
- payments are open on vibes.diy, press **Go live with Stripe** under
62
+ 3. Go live, one app at a time. Once a test payment goes through, press **Go live with Stripe** under
64
63
  **Payments** on the Settings tab and finish Stripe's live setup (once, for
65
64
  every app). Then press **Take live payments in this app** on this app's
66
65
  Setup screen. This step stays on the Setup screen after the item is done,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/prompts",
3
- "version": "14.3.190",
3
+ "version": "14.3.192",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "exports": {
@@ -39,10 +39,10 @@
39
39
  "license": "Apache-2.0",
40
40
  "dependencies": {
41
41
  "@adviser/cement": "~0.5.34",
42
- "@vibes.diy/api-types": "14.3.190",
43
- "@vibes.diy/call-ai-v2": "14.3.190",
44
- "@vibes.diy/identity": "14.3.190",
45
- "@vibes.diy/use-vibes-types": "14.3.190",
42
+ "@vibes.diy/api-types": "14.3.192",
43
+ "@vibes.diy/call-ai-v2": "14.3.192",
44
+ "@vibes.diy/identity": "14.3.192",
45
+ "@vibes.diy/use-vibes-types": "14.3.192",
46
46
  "arktype": "~2.2.8",
47
47
  "json-schema-faker": "~0.6.3"
48
48
  },