@vibes.diy/prompts 14.3.188 → 14.3.190

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/backend.md CHANGED
@@ -165,6 +165,7 @@ const stripe = await ctx.stripe.status(); // { test: { available, state }, live:
165
165
  ```
166
166
 
167
167
  - An app that takes money loads the `stripe` skill (one-time charges) or the `stripe-subscriptions` skill (recurring): the Connect Stripe setup item, `ctx.stripe.fetch` with the order's `mode` on every call, hosted Checkout and a complete example.
168
+ - The account a charge uses is the owner's per-app choice, a `setup:live` document the owner writes from the Setup screen; `ctx.stripe.status()` says which accounts are ready, and a ready live account alone leaves the app in test. The `stripe` skill carries that choice, the Setup screen and the sweep for buyers who never come back.
168
169
 
169
170
  - An app that works with somebody's GitHub repo loads the `github` skill: the connect link, `config.github`, `ctx.github.routes()`, deliveries and a complete example.
170
171
  - `ctx.github.fetch(path, init)` calls the GitHub REST API **as the GitHub App
@@ -278,6 +279,25 @@ const stripe = await ctx.stripe.status(); // { test: { available, state }, live:
278
279
  throw err;
279
280
  }
280
281
  ```
282
+ - **A record a handler may write twice is created once and read back.** A
283
+ return page that reloads, a webhook that retries and a sweep beside them can
284
+ all reach the same record, even at the same moment. Create it with
285
+ `ifRev: null`; a second writer then gets `err.code === "conflict"`, or
286
+ `"access-denied"` when `access.js` keeps the record write-once
287
+ (`if (oldDoc) throw { forbidden: ... }`). Either way, read the record with
288
+ `ctx.db.get` and answer from it: when it holds the same completed operation
289
+ (the same session id and amount), that is success; anything else is a real
290
+ error to report.
291
+
292
+ ```js
293
+ try {
294
+ await ctx.db.put(tip, { db: "tips", id: "tip:" + tip.sessionId, ifRev: null });
295
+ } catch (err) {
296
+ if (err.code !== "conflict" && err.code !== "access-denied") throw err;
297
+ const stored = await ctx.db.get("tip:" + tip.sessionId, { db: "tips" });
298
+ if (stored?.sessionId !== tip.sessionId || stored.amount !== tip.amount) throw err;
299
+ }
300
+ ```
281
301
  - `ctx.db.get(id, { db })` resolves the single document with that `_id`, or
282
302
  `null` when it is missing or deleted. It is the right read whenever you can
283
303
  name the document — a tick's state doc, a token lookup, a singleton. Never
@@ -0,0 +1,2 @@
1
+ import type { LlmConfig } from "./types.js";
2
+ export declare const customLookConfig: LlmConfig;
@@ -0,0 +1,28 @@
1
+ export const customLookConfig = {
2
+ name: "custom-look",
3
+ label: "Custom look",
4
+ description: "The person names an outside style, brand or design system for the app — like a Claude artifact, Material, shadcn, Linear, neo-brutalist like Gumroad, terminal, newspaper, iOS settings, or their own brand colours and font — so the app wears that style: its palette written onto the theme variables in its own :root block, Google Fonts, plain JSX + Tailwind components",
5
+ cues: [
6
+ "styled like",
7
+ "in the style of",
8
+ "design system",
9
+ "brand colours",
10
+ "brand colors",
11
+ "our colours",
12
+ "our colors",
13
+ "our font",
14
+ "claude artifact",
15
+ "material 3",
16
+ "material you",
17
+ "shadcn",
18
+ "neo-brutalist",
19
+ "neobrutalism",
20
+ "gumroad",
21
+ "terminal style",
22
+ "newspaper",
23
+ "linear style",
24
+ "like linear",
25
+ "ios settings",
26
+ ],
27
+ };
28
+ //# sourceMappingURL=custom-look.js.map
@@ -0,0 +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"}