@vibes.diy/prompts 14.3.154 → 14.3.156

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/callai.md CHANGED
@@ -28,7 +28,7 @@ import React, { useState } from "react";
28
28
  import { callAI } from "call-ai";
29
29
  import { useFireproof } from "use-fireproof";
30
30
  import { useVibe } from "use-vibes";
31
- import { Button, Field, Heading, Input, Row, RowCard, Stack, Text, Textarea } from "@vibes.diy/pouf";
31
+ import { Button, Field, Heading, Icon, IconButton, Input, Row, RowCard, Stack, Text, Textarea } from "@vibes.diy/pouf";
32
32
 
33
33
  const taskSchema = {
34
34
  type: "object",
@@ -156,6 +156,22 @@ export default function App() {
156
156
  setMessage(error.message);
157
157
  } finally { setBusy(false); }
158
158
  }
159
+ // The composer's sparkle: one example sentence in the box, which Add then extracts like typed words.
160
+ async function suggestSentence() {
161
+ if (busy || !ready || pending !== undefined) return;
162
+ setBusy(true); setMessage("");
163
+ try {
164
+ const response = await callAI(
165
+ `Write one example sentence a person might type to add tasks: two or three everyday tasks, each with a day or a deadline, different from these titles: ${JSON.stringify(docs.map(({ title }) => title))}.`,
166
+ { schema: { properties: { sentence: { type: "string" } }, required: ["sentence"] } }
167
+ );
168
+ const raw = JSON.parse(response);
169
+ if (typeof raw?.sentence !== "string" || raw.sentence.trim().length === 0) throw new Error("Press the sparkle again for another example.");
170
+ setSentence(raw.sentence.trim()); setCurrent(undefined);
171
+ } catch (error) {
172
+ setMessage(error.message);
173
+ } finally { setBusy(false); }
174
+ }
159
175
  // A new record is one del away; a corrected one is one put of its previous version away.
160
176
  async function undoLast() {
161
177
  if (busy || lastWrite === undefined) return;
@@ -177,6 +193,7 @@ export default function App() {
177
193
  <Row gap={2} wrap>
178
194
  <Button type="submit" disabled={!ready || busy || sentence.trim().length === 0}>{busy ? "Adding your changes…" : pending !== undefined ? "Retry remaining tasks" : current === undefined ? "Add tasks" : "Apply correction"}</Button>
179
195
  <Button type="button" variant="quiet" disabled={!ready || busy || pending !== undefined || sentence.trim().length === 0} onClick={askRecords}>Ask about tasks</Button>
196
+ <IconButton type="button" variant="quiet" tone="purple" label="Suggest tasks" disabled={!ready || busy || pending !== undefined} icon={<Icon name="sparkle" size="sm" />} onClick={suggestSentence} />
180
197
  </Row>
181
198
  </Stack>
182
199
  </form>
@@ -208,6 +225,108 @@ async function askRecords(question) {
208
225
  }
209
226
  ```
210
227
 
228
+ ## Fill a form with a suggestion
229
+
230
+ Every form in the app carries one sparkle button that fills its fields with a suggestion from callAI, so the person can save without typing. It is a quiet `IconButton` with `icon={<Icon name="sparkle" size="sm" />}` and a label in the app's own words ("Suggest an offer"), placed beside the form's submit action, one per form: the Add form, the edit view of a saved record and the sentence composer each carry their own. The press asks callAI for one plausible, specific example through the form's own schema (the same editable fields the form saves) and writes the normalized answer into the form's field state; the sparkle fills and the submit action saves. The person reads the suggestion, changes anything, and presses the form's own save; while a suggestion or a save is in flight the fields, the submit and the sparkle wait together, so a suggestion never lands over fresh typing or under a clear. For a sentence composer the suggestion is one example sentence written into the box, which the Add action then extracts like typed words. Ask for variety so each press suggests something new, and reuse the form's schema and normalizer rather than writing a second pair for suggestions.
231
+
232
+ ### `App.jsx`
233
+ ```jsx
234
+ import React, { useState } from "react";
235
+ import { callAI } from "call-ai";
236
+ import { useFireproof } from "use-fireproof";
237
+ import { useVibe } from "use-vibes";
238
+ import { Button, Field, Heading, Icon, IconButton, Input, Row, RowCard, Stack, Text } from "@vibes.diy/pouf";
239
+
240
+ const offerSchema = {
241
+ type: "object",
242
+ properties: {
243
+ name: { type: "string", description: "Who is bringing it" },
244
+ plant: { type: "string", description: "The specific plant they bring" },
245
+ pots: { type: "number", description: "How many pots of it" },
246
+ },
247
+ required: ["name", "plant", "pots"],
248
+ };
249
+
250
+ // The form and the sparkle share one normalizer, so a suggestion lands in exactly the shape the form saves.
251
+ function normalizeOffer(raw) {
252
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return undefined;
253
+ const name = typeof raw.name === "string" ? raw.name.trim() : "";
254
+ const plant = typeof raw.plant === "string" ? raw.plant.trim() : "";
255
+ const pots = Number.isFinite(Number(raw.pots)) ? Math.max(1, Math.round(Number(raw.pots))) : 1;
256
+ return name.length > 0 && plant.length > 0 ? { name, plant, pots } : undefined;
257
+ }
258
+
259
+ const EMPTY = { name: "", plant: "", pots: 1 };
260
+
261
+ export default function App() {
262
+ const { database, useLiveQuery } = useFireproof("garden-swap");
263
+ const { me, can, ready } = useVibe("garden-swap");
264
+ const { docs } = useLiveQuery("type", { key: "offer" });
265
+ const [draft, setDraft] = useState(EMPTY);
266
+ const [suggesting, setSuggesting] = useState(false);
267
+ const [saving, setSaving] = useState(false);
268
+ const [message, setMessage] = useState("");
269
+
270
+ // The sparkle fills the same fields the form saves and leaves saving to the form's own submit.
271
+ async function suggestOffer() {
272
+ if (suggesting) return;
273
+ setSuggesting(true);
274
+ setMessage("");
275
+ try {
276
+ const response = await callAI(
277
+ `Invent one plausible neighbor for a garden swap table: a first name, the specific plant they bring, and how many pots of it. Pick a different kind of plant each time so the table reads like a real street.`,
278
+ { schema: offerSchema }
279
+ );
280
+ const offer = normalizeOffer(JSON.parse(response));
281
+ if (offer === undefined) throw new Error("Press the sparkle again for another suggestion.");
282
+ setDraft(offer);
283
+ } catch (error) {
284
+ setMessage(error.message);
285
+ } finally {
286
+ setSuggesting(false);
287
+ }
288
+ }
289
+
290
+ async function addOffer(event) {
291
+ event.preventDefault();
292
+ const offer = normalizeOffer(draft);
293
+ if (!ready || offer === undefined) return;
294
+ const doc = { _id: crypto.randomUUID(), type: "offer", ...offer, authorHandle: me?.userHandle };
295
+ if (can.create(doc).ok === false) {
296
+ setMessage("This table is read-only for you right now.");
297
+ return;
298
+ }
299
+ setSaving(true);
300
+ try {
301
+ await database.put(doc);
302
+ setDraft(EMPTY);
303
+ } catch (error) {
304
+ setMessage(error.message);
305
+ } finally {
306
+ setSaving(false);
307
+ }
308
+ }
309
+
310
+ const complete = normalizeOffer(draft) !== undefined;
311
+ return <main className="min-h-screen bg-background text-foreground font-sans p-6"><Stack gap={5}>
312
+ <Heading level={1}>Garden swap table</Heading>
313
+ <form onSubmit={addOffer}>
314
+ <Stack gap={3}>
315
+ <Field label="Name">{(id, describedBy) => <Input id={id} describedBy={describedBy} disabled={saving || suggesting} value={draft.name} onChange={(name) => setDraft({ ...draft, name })} />}</Field>
316
+ <Field label="Plant">{(id, describedBy) => <Input id={id} describedBy={describedBy} disabled={saving || suggesting} value={draft.plant} onChange={(plant) => setDraft({ ...draft, plant })} />}</Field>
317
+ <Field label="How many pots">{(id, describedBy) => <Input id={id} describedBy={describedBy} type="number" disabled={saving || suggesting} value={String(draft.pots)} onChange={(pots) => setDraft({ ...draft, pots: Number(pots) })} />}</Field>
318
+ <Row gap={2} align="center">
319
+ <Button type="submit" loading={saving} disabled={!ready || saving || suggesting || !complete}>Add to the table</Button>
320
+ <IconButton type="button" variant="quiet" tone="purple" label="Suggest an offer" loading={suggesting} disabled={saving} icon={<Icon name="sparkle" size="sm" />} onClick={suggestOffer} />
321
+ </Row>
322
+ </Stack>
323
+ </form>
324
+ <p role="status">{message}</p>
325
+ {docs.map((offer) => <RowCard key={offer._id}><Text>{offer.name} brings {offer.plant}, {offer.pots} pots</Text></RowCard>)}
326
+ </Stack></main>;
327
+ }
328
+ ```
329
+
211
330
  ## Reading an Image
212
331
 
213
332
  Send an image by passing the prompt as an array of content parts: an `image_url` part carrying the picture beside a `text` part asking the question.
package/llms/fireproof.md CHANGED
@@ -94,7 +94,7 @@ import React, { useState } from "react";
94
94
  import { callAI } from "call-ai";
95
95
  import { useFireproof } from "use-fireproof";
96
96
  import { useVibe } from "use-vibes";
97
- import { Button, Field, Heading, Input, Row, RowCard, Stack, Text, Textarea } from "@vibes.diy/pouf";
97
+ import { Button, Field, Heading, Icon, IconButton, Input, Row, RowCard, Stack, Text, Textarea } from "@vibes.diy/pouf";
98
98
 
99
99
  const taskSchema = {
100
100
  type: "object",
@@ -222,6 +222,22 @@ export default function App() {
222
222
  setMessage(error.message);
223
223
  } finally { setBusy(false); }
224
224
  }
225
+ // The composer's sparkle: one example sentence in the box, which Add then extracts like typed words.
226
+ async function suggestSentence() {
227
+ if (busy || !ready || pending !== undefined) return;
228
+ setBusy(true); setMessage("");
229
+ try {
230
+ const response = await callAI(
231
+ `Write one example sentence a person might type to add tasks: two or three everyday tasks, each with a day or a deadline, different from these titles: ${JSON.stringify(docs.map(({ title }) => title))}.`,
232
+ { schema: { properties: { sentence: { type: "string" } }, required: ["sentence"] } }
233
+ );
234
+ const raw = JSON.parse(response);
235
+ if (typeof raw?.sentence !== "string" || raw.sentence.trim().length === 0) throw new Error("Press the sparkle again for another example.");
236
+ setSentence(raw.sentence.trim()); setCurrent(undefined);
237
+ } catch (error) {
238
+ setMessage(error.message);
239
+ } finally { setBusy(false); }
240
+ }
225
241
  // A new record is one del away; a corrected one is one put of its previous version away.
226
242
  async function undoLast() {
227
243
  if (busy || lastWrite === undefined) return;
@@ -243,6 +259,7 @@ export default function App() {
243
259
  <Row gap={2} wrap>
244
260
  <Button type="submit" disabled={!ready || busy || sentence.trim().length === 0}>{busy ? "Adding your changes…" : pending !== undefined ? "Retry remaining tasks" : current === undefined ? "Add tasks" : "Apply correction"}</Button>
245
261
  <Button type="button" variant="quiet" disabled={!ready || busy || pending !== undefined || sentence.trim().length === 0} onClick={askRecords}>Ask about tasks</Button>
262
+ <IconButton type="button" variant="quiet" tone="purple" label="Suggest tasks" disabled={!ready || busy || pending !== undefined} icon={<Icon name="sparkle" size="sm" />} onClick={suggestSentence} />
246
263
  </Row>
247
264
  </Stack>
248
265
  </form>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/prompts",
3
- "version": "14.3.154",
3
+ "version": "14.3.156",
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.154",
43
- "@vibes.diy/call-ai-v2": "14.3.154",
44
- "@vibes.diy/identity": "14.3.154",
45
- "@vibes.diy/use-vibes-types": "14.3.154",
42
+ "@vibes.diy/api-types": "14.3.156",
43
+ "@vibes.diy/call-ai-v2": "14.3.156",
44
+ "@vibes.diy/identity": "14.3.156",
45
+ "@vibes.diy/use-vibes-types": "14.3.156",
46
46
  "arktype": "~2.2.6",
47
47
  "json-schema-faker": "~0.6.3"
48
48
  },
package/prompts.js CHANGED
@@ -190,7 +190,7 @@ export async function makeBaseSystemPrompt(model, sessionDoc) {
190
190
  const styleFallback = sessionDoc?.suppressDefaultStylePrompt ? "" : defaultStylePrompt;
191
191
  const stylePrompt = sessionDoc?.stylePrompt || (validatedTheme === undefined ? styleFallback : "");
192
192
  const demoDataLines = includeDemoData
193
- ? "\n- Demo data goes in `seed.json`, never behind an in-app button. If your app has a function that uses callAI with a schema to save data, write the seed items as documents of the shape that function saves — the same fields and `type`, plus the required seed `key` on each item — so the launch content illustrates what it looks like to use the app. Do NOT add a button, menu item, or empty-state control that loads, applies, or clears launch data; the app has no such feature. The example chips above belong to the intake flow: they fill the composer with a sentence; submitting it uses the same extraction and automatic-save flow as typed input, then shows the saved record with an edit option.\n- Never have an instance of callAI that is only used to generate demo data, always use the same calls that are triggered by user actions in the app."
193
+ ? "\n- Demo data goes in `seed.json`, never behind an in-app button. If your app has a function that uses callAI with a schema to save data, write the seed items as documents of the shape that function saves — the same fields and `type`, plus the required seed `key` on each item — so the launch content illustrates what it looks like to use the app. The app itself has no control that loads, applies, or clears launch data; the one in-app shortcut is each form's sparkle button, which fills that form's fields with a fresh suggestion and leaves saving to the form's own submit. The example chips above belong to the intake flow: they fill the composer with a sentence; submitting it uses the same extraction and automatic-save flow as typed input, then shows the saved record with an edit option.\n- The sparkle reuses the form's own schema and normalizer, so the app has one callAI path per form and no separate call that only makes example data."
194
194
  : "";
195
195
  const titleSection = sessionDoc?.title
196
196
  ? `The app is called "${sessionDoc.title}". Use this exact name in the app's heading and anywhere the app refers to itself.\n\n`
package/prompts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../jsr/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../jsr/prompts.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,7 @@ An app is the person's own records and the rules they set for them; the page is
53
53
  A value the person already has in mind stays a direct control when setting or adjusting that value: use a picker, stepper, slider or toggle, and a critical value (a dose, a price, a deadline, a timer, a recipient) is never inferred from a sentence. Ordinary quantities described in a new record, such as two tents or six servings, can be extracted; the saved row retains its quantity control. Keep a simple message or a name direct when its text already is the whole record; use extraction where the person would otherwise fill several fields. Never render the raw parse: normalize it into the shape the app renders first (project known fields, check primitive types and enum values, check arrays and each member before mapping) and let the app supply identity, author, parent and sharing fields. Keep the typed words available through loading, refusal and correction. When the app acts on its own later, it leaves a visible record of what it did. The callai skill's Text to records example teaches the single-record, batch, correction and undo paths, and its Ask about your records section teaches the question path.
54
54
  - List data items on the main page of your app so people can browse and open each saved record.
55
55
  - Keep saved records visible as cards or rows with direct editing. For structured intake with the callai skill, add a sentence-based correction action.
56
- - For an app with the callai skill, let an example chip put an example sentence into the same intake box. Submitting it runs the same parser and automatic save path as the person's own words. Extraction of the person's facts into structured records is a default use of callAI, including when the request describes an ordinary useful app. Reserve additional analysis (such as sentiment scoring or inferred tags) for a feature the person requests. A message board can save the person's message directly when its text already is the record.{{DEMO_DATA}}
56
+ - For an app with the callai skill, let an example chip put an example sentence into the same intake box. Submitting it runs the same parser and automatic save path as the person's own words. Extraction of the person's facts into structured records is a default use of callAI, including when the request describes an ordinary useful app. Reserve additional analysis (such as sentiment scoring or inferred tags) for a feature the person requests. A message board can save the person's message directly when its text already is the record. Every form carries one sparkle button that fills its fields with a suggestion from callAI, so the person can save without typing: the callai skill's Fill a form with a suggestion section shows the shape, the sparkle fills, and the form's own submit saves.{{DEMO_DATA}}
57
57
 
58
58
  {{CONCATENATED_LLMS}}
59
59
  IMPORTANT: Your main file is `App.jsx` (the React component). This is the **first turn** — `App.jsx` does not exist yet, so write the whole thing at once: emit the complete, working `App.jsx` as a single full-file block (every feature wired, hooks and data in place — not a stub, not a placeholder shell), then the app's `access.js` (every app ships one, an app the person keeps to themselves included), then the companion feature files (each as its own complete full-file block — splitting features out is the default for any app with more than a couple of them), then `backend.js` when the app needs server work, then a `seed.json` block with the app's launch content — the user's concrete example data when the prompt gave you some, otherwise the vivid seeded world described below, on every first build of an app that holds records (specified or open-ended, shared or private-by-nature, the owner's catalog or the person's own entries: the file is the demo the screenshot renders and is never applied to the live app unasked, so a specified request still opens empty and ready for the person's first entry); only a stateless toy that stores nothing skips it. That is the entire first turn — the whole app: one `App.jsx` block, its `access.js` when it has one, companion feature files if any, `backend.js` when it needs one, then `seed.json` (order: App.jsx → access.js when present → companion files → backend.js → seed.json). Do NOT split the build into a scaffold plus edits, and do NOT use `SEARCH`/`REPLACE` on this turn; that targeted small-edit format is only for follow-up turns, once `App.jsx` already exists.
@@ -53,7 +53,7 @@ An app is the person's own records and the rules they set for them; the page is
53
53
  A value the person already has in mind stays a direct control when setting or adjusting that value: use a picker, stepper, slider or toggle, and a critical value (a dose, a price, a deadline, a timer, a recipient) is never inferred from a sentence. Ordinary quantities described in a new record, such as two tents or six servings, can be extracted; the saved row retains its quantity control. Keep a simple message or a name direct when its text already is the whole record; use extraction where the person would otherwise fill several fields. Never render the raw parse: normalize it into the shape the app renders first (project known fields, check primitive types and enum values, check arrays and each member before mapping) and let the app supply identity, author, parent and sharing fields. Keep the typed words available through loading, refusal and correction. When the app acts on its own later, it leaves a visible record of what it did. The callai skill's Text to records example teaches the single-record, batch, correction and undo paths, and its Ask about your records section teaches the question path.
54
54
  - List data items on the main page of your app so people can browse and open each saved record.
55
55
  - Keep saved records visible as cards or rows with direct editing. For structured intake with the callai skill, add a sentence-based correction action.
56
- - For an app with the callai skill, let an example chip put an example sentence into the same intake box. Submitting it runs the same parser and automatic save path as the person's own words. Extraction of the person's facts into structured records is a default use of callAI, including when the request describes an ordinary useful app. Reserve additional analysis (such as sentiment scoring or inferred tags) for a feature the person requests. A message board can save the person's message directly when its text already is the record.{{DEMO_DATA}}
56
+ - For an app with the callai skill, let an example chip put an example sentence into the same intake box. Submitting it runs the same parser and automatic save path as the person's own words. Extraction of the person's facts into structured records is a default use of callAI, including when the request describes an ordinary useful app. Reserve additional analysis (such as sentiment scoring or inferred tags) for a feature the person requests. A message board can save the person's message directly when its text already is the record. Every form carries one sparkle button that fills its fields with a suggestion from callAI, so the person can save without typing: the callai skill's Fill a form with a suggestion section shows the shape, the sparkle fills, and the form's own submit saves.{{DEMO_DATA}}
57
57
 
58
58
  {{CONCATENATED_LLMS}}
59
59
  IMPORTANT: Your main file is `App.jsx` (the React component). This is the **first turn** — `App.jsx` does not exist yet. Ship the complete working app starting from a colored shell, then wire each feature with small refinement edits, and finish with a `seed.json` block of launch content.
package/system-prompt.md CHANGED
@@ -59,7 +59,7 @@ An app is the person's own records and the rules they set for them; the page is
59
59
  A value the person already has in mind stays a direct control when setting or adjusting that value: use a picker, stepper, slider or toggle, and a critical value (a dose, a price, a deadline, a timer, a recipient) is never inferred from a sentence. Ordinary quantities described in a new record, such as two tents or six servings, can be extracted; the saved row retains its quantity control. Keep a simple message or a name direct when its text already is the whole record; use extraction where the person would otherwise fill several fields. Never render the raw parse: normalize it into the shape the app renders first (project known fields, check primitive types and enum values, check arrays and each member before mapping) and let the app supply identity, author, parent and sharing fields. Keep the typed words available through loading, refusal and correction. When the app acts on its own later, it leaves a visible record of what it did. The callai skill's Text to records example teaches the single-record, batch, correction and undo paths, and its Ask about your records section teaches the question path.
60
60
  - List data items on the main page of your app so people can browse and open each saved record.
61
61
  - Keep saved records visible as cards or rows with direct editing. For structured intake with the callai skill, add a sentence-based correction action.
62
- - For an app with the callai skill, let an example chip put an example sentence into the same intake box. Submitting it runs the same parser and automatic save path as the person's own words. Extraction of the person's facts into structured records is a default use of callAI, including when the request describes an ordinary useful app. Reserve additional analysis (such as sentiment scoring or inferred tags) for a feature the person requests. A message board can save the person's message directly when its text already is the record.{{DEMO_DATA}}
62
+ - For an app with the callai skill, let an example chip put an example sentence into the same intake box. Submitting it runs the same parser and automatic save path as the person's own words. Extraction of the person's facts into structured records is a default use of callAI, including when the request describes an ordinary useful app. Reserve additional analysis (such as sentiment scoring or inferred tags) for a feature the person requests. A message board can save the person's message directly when its text already is the record. Every form carries one sparkle button that fills its fields with a suggestion from callAI, so the person can save without typing: the callai skill's Fill a form with a suggestion section shows the shape, the sparkle fills, and the form's own submit saves.{{DEMO_DATA}}
63
63
 
64
64
  {{CONCATENATED_LLMS}}
65
65
  IMPORTANT: Your main file is `App.jsx` (the React component). If the app needs an access function for per-document write validation or channel-based read isolation, emit it as a separate file named `access.js` — never put access function code inside `App.jsx`. The first pass is a thin scaffold the user sees immediately — features and styling land afterwards via incremental SEARCH/REPLACE edits.