@vibes.diy/prompts 14.3.58 → 14.3.59

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/d3.js CHANGED
@@ -21,7 +21,6 @@ export const d3Config = {
21
21
  "maps",
22
22
  "geographic",
23
23
  ],
24
- draftVariant: true,
25
24
  importModule: "d3",
26
25
  importName: "d3",
27
26
  importType: "namespace",
package/llms/d3.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"d3.js","sourceRoot":"","sources":["../../jsr/llms/d3.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,OAAO;IACd,WAAW,EACT,oRAAoR;IACtR,IAAI,EAAE;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,eAAe;QACf,eAAe;QACf,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,SAAS;QAGT,KAAK;QACL,MAAM;QACN,YAAY;KACb;IAGD,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,WAAW;CACxB,CAAC"}
1
+ {"version":3,"file":"d3.js","sourceRoot":"","sources":["../../jsr/llms/d3.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,OAAO;IACd,WAAW,EACT,oRAAoR;IACtR,IAAI,EAAE;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,eAAe;QACf,eAAe;QACf,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,SAAS;QAGT,KAAK;QACL,MAAM;QACN,YAAY;KACb;IACD,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,WAAW;CACxB,CAAC"}
package/llms/fireproof.js CHANGED
@@ -3,7 +3,6 @@ export const fireproofConfig = {
3
3
  label: "useFireproof",
4
4
  description: "cloud-backed document database with live sync",
5
5
  initialVariant: true,
6
- draftVariant: true,
7
6
  importModule: "use-fireproof",
8
7
  importName: "useFireproof",
9
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fireproof.js","sourceRoot":"","sources":["../../jsr/llms/fireproof.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAc;IACxC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,+CAA+C;IAC5D,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,cAAc;CAC3B,CAAC"}
1
+ {"version":3,"file":"fireproof.js","sourceRoot":"","sources":["../../jsr/llms/fireproof.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAc;IACxC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,+CAA+C;IAC5D,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,cAAc;CAC3B,CAAC"}
package/llms/p5.js CHANGED
@@ -21,7 +21,6 @@ export const p5Config = {
21
21
  "kaleidoscope",
22
22
  "screensaver",
23
23
  ],
24
- draftVariant: true,
25
24
  importModule: "https://esm.sh/p5@1.11.13",
26
25
  importName: "p5",
27
26
  importType: "default",
package/llms/p5.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p5.js","sourceRoot":"","sources":["../../jsr/llms/p5.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,OAAO;IACd,WAAW,EACT,uFAAuF;QACvF,wFAAwF;QACxF,sFAAsF;QACtF,wFAAwF;QACxF,0FAA0F;QAC1F,uFAAuF;QACvF,yFAAyF;IAC3F,IAAI,EAAE;QACJ,IAAI;QACJ,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,gBAAgB;QAChB,iBAAiB;QACjB,YAAY;QACZ,cAAc;QACd,gBAAgB;QAChB,cAAc;QACd,aAAa;KACd;IAMD,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,2BAA2B;IACzC,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,SAAS;CACtB,CAAC"}
1
+ {"version":3,"file":"p5.js","sourceRoot":"","sources":["../../jsr/llms/p5.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,OAAO;IACd,WAAW,EACT,uFAAuF;QACvF,wFAAwF;QACxF,sFAAsF;QACtF,wFAAwF;QACxF,0FAA0F;QAC1F,uFAAuF;QACvF,yFAAyF;IAC3F,IAAI,EAAE;QACJ,IAAI;QACJ,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,gBAAgB;QAChB,iBAAiB;QACjB,YAAY;QACZ,cAAc;QACd,gBAAgB;QAChB,cAAc;QACd,aAAa;KACd;IAID,YAAY,EAAE,2BAA2B;IACzC,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,SAAS;CACtB,CAAC"}
package/llms/spotify.js CHANGED
@@ -2,7 +2,6 @@ export const spotifyConfig = {
2
2
  name: "spotify",
3
3
  label: "Spotify catalog",
4
4
  description: "Reading Spotify's public catalog with the owner's own Spotify app credentials: the setup steps the app shows when SPOTIFY_CLIENT_ID/SPOTIFY_CLIENT_SECRET are missing, the client-credentials token minted in backend.js and cached in memory rather than stored, searching artists/albums/tracks, the boundary that a listener's own top tracks and playlists need a connection instead, and keeping every refusal's reason",
5
- draftVariant: true,
6
5
  cues: [
7
6
  "spotify",
8
7
  "spotify search",
@@ -1 +1 @@
1
- {"version":3,"file":"spotify.js","sourceRoot":"","sources":["../../jsr/llms/spotify.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,8ZAA8Z;IAGha,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE;QACJ,SAAS;QACT,gBAAgB;QAChB,WAAW;QACX,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB;KACjB;CACF,CAAC"}
1
+ {"version":3,"file":"spotify.js","sourceRoot":"","sources":["../../jsr/llms/spotify.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,8ZAA8Z;IACha,IAAI,EAAE;QACJ,SAAS;QACT,gBAAgB;QAChB,WAAW;QACX,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB;KACjB;CACF,CAAC"}
package/llms/three-js.js CHANGED
@@ -3,7 +3,6 @@ export const threeJsConfig = {
3
3
  label: "Three.js",
4
4
  description: "Three.js 3D graphics library for WebGL rendering: mesh geometry, materials, lighting, animation, cameras, textures, GLSL shaders, GLTF/OBJ/FBX model loading, physics, particle systems, post-processing, visual effects, 3js",
5
5
  cues: ["3d", "three.js", "threejs", "3js", "webgl", "shader", "shaders", "mesh", "gltf", "3d model", "3d scene"],
6
- draftVariant: true,
7
6
  importModule: "three",
8
7
  importName: "THREE",
9
8
  importType: "namespace",
@@ -1 +1 @@
1
- {"version":3,"file":"three-js.js","sourceRoot":"","sources":["../../jsr/llms/three-js.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,WAAW,EACT,+NAA+N;IACjO,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;IAGhH,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,WAAW;CACxB,CAAC"}
1
+ {"version":3,"file":"three-js.js","sourceRoot":"","sources":["../../jsr/llms/three-js.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,WAAW,EACT,+NAA+N;IACjO,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;IAChH,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,WAAW;CACxB,CAAC"}
package/llms/types.d.ts CHANGED
@@ -4,7 +4,6 @@ export interface LlmConfig {
4
4
  description: string;
5
5
  cues?: string[];
6
6
  initialVariant?: boolean;
7
- draftVariant?: boolean;
8
7
  importModule?: string;
9
8
  importName?: string;
10
9
  importType?: "named" | "namespace" | "default";
package/llms/voxel.js CHANGED
@@ -13,7 +13,6 @@ export const voxelConfig = {
13
13
  "minecraft, voxel, block world, sandbox, blocks, mining, building, first-person, 3d game, " +
14
14
  "procedural world, chunks, terrain, overworld, creative mode, survival, crafting, nether",
15
15
  cues: ["voxel", "voxels", "minecraft", "block world", "blocky", "sandbox game"],
16
- draftVariant: true,
17
16
  importModule: "three",
18
17
  importName: "THREE",
19
18
  importType: "namespace",
package/llms/voxel.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"voxel.js","sourceRoot":"","sources":["../../jsr/llms/voxel.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO;IACd,WAAW,EACT,yFAAyF;QACzF,6FAA6F;QAC7F,4FAA4F;QAC5F,yFAAyF;QACzF,uFAAuF;QACvF,gGAAgG;QAChG,2FAA2F;QAC3F,yFAAyF;QACzF,6CAA6C;QAC7C,2FAA2F;QAC3F,yFAAyF;IAC3F,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,CAAC;IAG/E,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,WAAW;CACxB,CAAC"}
1
+ {"version":3,"file":"voxel.js","sourceRoot":"","sources":["../../jsr/llms/voxel.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO;IACd,WAAW,EACT,yFAAyF;QACzF,6FAA6F;QAC7F,4FAA4F;QAC5F,yFAAyF;QACzF,uFAAuF;QACvF,gGAAgG;QAChG,2FAA2F;QAC3F,yFAAyF;QACzF,6CAA6C;QAC7C,2FAA2F;QAC3F,yFAAyF;IAC3F,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,CAAC;IAC/E,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,WAAW;CACxB,CAAC"}
package/llms/web-audio.js CHANGED
@@ -22,6 +22,5 @@ export const webAudioConfig = {
22
22
  "sampled sounds",
23
23
  "audio engine",
24
24
  ],
25
- draftVariant: true,
26
25
  };
27
26
  //# sourceMappingURL=web-audio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-audio.js","sourceRoot":"","sources":["../../jsr/llms/web-audio.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,2NAA2N;IAC7N,IAAI,EAAE;QACJ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,aAAa;QACb,YAAY;QACZ,WAAW;QACX,cAAc;QACd,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,WAAW;QACX,SAAS;QACT,SAAS;QACT,gBAAgB;QAChB,cAAc;KACf;IAGD,YAAY,EAAE,IAAI;CACnB,CAAC"}
1
+ {"version":3,"file":"web-audio.js","sourceRoot":"","sources":["../../jsr/llms/web-audio.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,2NAA2N;IAC7N,IAAI,EAAE;QACJ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,aAAa;QACb,YAAY;QACZ,WAAW;QACX,cAAc;QACd,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,WAAW;QACX,SAAS;QACT,SAAS;QACT,gBAAgB;QAChB,cAAc;KACf;CACF,CAAC"}
package/llms/webxr.js CHANGED
@@ -19,7 +19,6 @@ export const webxrConfig = {
19
19
  "quest",
20
20
  "vision pro",
21
21
  ],
22
- draftVariant: true,
23
22
  importModule: "@babylonjs/core",
24
23
  importName: "BABYLON",
25
24
  importType: "namespace",
package/llms/webxr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"webxr.js","sourceRoot":"","sources":["../../jsr/llms/webxr.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,gFAAgF;QAChF,4FAA4F;QAC5F,kFAAkF;QAClF,sFAAsF;QACtF,uDAAuD;IACzD,IAAI,EAAE;QACJ,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,iBAAiB;QACjB,mBAAmB;QACnB,SAAS;QACT,WAAW;QACX,eAAe;QACf,SAAS;QACT,OAAO;QACP,YAAY;KACb;IAGD,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,iBAAiB;IAC/B,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,WAAW;CACxB,CAAC"}
1
+ {"version":3,"file":"webxr.js","sourceRoot":"","sources":["../../jsr/llms/webxr.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,gFAAgF;QAChF,4FAA4F;QAC5F,kFAAkF;QAClF,sFAAsF;QACtF,uDAAuD;IACzD,IAAI,EAAE;QACJ,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,iBAAiB;QACjB,mBAAmB;QACnB,SAAS;QACT,WAAW;QACX,eAAe;QACf,SAAS;QACT,OAAO;QACP,YAAY;KACb;IACD,YAAY,EAAE,iBAAiB;IAC/B,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,WAAW;CACxB,CAAC"}
package/llms/youtube.js CHANGED
@@ -2,7 +2,6 @@ export const youtubeConfig = {
2
2
  name: "youtube",
3
3
  label: "YouTube channel stats",
4
4
  description: "YouTube channel dashboards on the owner's own YouTube Data API v3 key: the setup steps the app shows when the key is missing, keeping the key in backend.js, resolving a channel from a handle or URL, reading videos through the uploads playlist instead of the 100-unit search endpoint, daily snapshots to chart change over time, and labeling the numbers an API key cannot see",
5
- draftVariant: true,
6
5
  cues: [
7
6
  "youtube",
8
7
  "my channel",
@@ -1 +1 @@
1
- {"version":3,"file":"youtube.js","sourceRoot":"","sources":["../../jsr/llms/youtube.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EACT,uXAAuX;IAGzX,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE;QACJ,SAAS;QACT,YAAY;QACZ,kBAAkB;QAClB,aAAa;QACb,aAAa;QACb,eAAe;QACf,mBAAmB;KACpB;CACF,CAAC"}
1
+ {"version":3,"file":"youtube.js","sourceRoot":"","sources":["../../jsr/llms/youtube.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EACT,uXAAuX;IACzX,IAAI,EAAE;QACJ,SAAS;QACT,YAAY;QACZ,kBAAkB;QAClB,aAAa;QACb,aAAa;QACb,eAAe;QACf,mBAAmB;KACpB;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/prompts",
3
- "version": "14.3.58",
3
+ "version": "14.3.59",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "exports": {
@@ -37,9 +37,9 @@
37
37
  "license": "Apache-2.0",
38
38
  "dependencies": {
39
39
  "@adviser/cement": "~0.5.34",
40
- "@vibes.diy/call-ai-v2": "14.3.58",
41
- "@vibes.diy/identity": "14.3.58",
42
- "@vibes.diy/use-vibes-types": "14.3.58",
40
+ "@vibes.diy/call-ai-v2": "14.3.59",
41
+ "@vibes.diy/identity": "14.3.59",
42
+ "@vibes.diy/use-vibes-types": "14.3.59",
43
43
  "arktype": "~2.2.6",
44
44
  "json-schema-faker": "~0.6.3"
45
45
  },
package/prompts.d.ts CHANGED
@@ -20,7 +20,7 @@ export declare function generateImportStatements(llms: LlmCatalogEntry[]): strin
20
20
  export interface MakeBaseSystemPromptOptions {
21
21
  fetch?: typeof fetch;
22
22
  pkgBaseUrl?: string;
23
- variant?: "initial" | "initial-oneshot" | "initial-draft" | "continuation";
23
+ variant?: "initial" | "initial-oneshot" | "continuation";
24
24
  suppressDefaultStylePrompt?: boolean;
25
25
  look?: boolean;
26
26
  }
package/prompts.js CHANGED
@@ -35,15 +35,6 @@ export function generateImportStatements(llms) {
35
35
  .join("");
36
36
  }
37
37
  const keyedLoadAsset = new KeyedResolvOnce();
38
- const DRAFT_REPLACED_SKILLS = new Set([
39
- "fireproof",
40
- "image-gen",
41
- "use-vibe",
42
- "use-viewer",
43
- "callai",
44
- "access",
45
- "backend",
46
- ]);
47
38
  const DEFAULT_PKG_BASE_URL = "https://esm.sh/@vibes.diy/prompts/";
48
39
  export async function makeBaseSystemPrompt(model, sessionDoc) {
49
40
  const userPrompt = sessionDoc?.userPrompt || "";
@@ -57,43 +48,25 @@ export async function makeBaseSystemPrompt(model, sessionDoc) {
57
48
  if (selectedNames.length === 0) {
58
49
  selectedNames = [...(await getDefaultSkills())];
59
50
  }
60
- const isDraft = sessionDoc?.variant === "initial-draft";
61
- const draftWantsImages = isDraft && selectedNames.includes("image-gen");
62
- const draftExtras = isDraft
63
- ? llmsCatalog.filter((l) => selectedNames.includes(l.name) && DRAFT_REPLACED_SKILLS.has(l.name) === false).map((l) => l.name)
64
- : [];
65
- if (isDraft) {
66
- selectedNames = ["fireproof", ...(draftWantsImages ? ["image-gen"] : []), ...draftExtras].filter((name) => llmsCatalogNames.has(name));
67
- }
68
- if (!isDraft) {
69
- for (const required of ["use-vibe", "use-viewer"]) {
70
- if (llmsCatalogNames.has(required) && !selectedNames.includes(required)) {
71
- selectedNames.push(required);
72
- }
51
+ for (const required of ["use-vibe", "use-viewer"]) {
52
+ if (llmsCatalogNames.has(required) && !selectedNames.includes(required)) {
53
+ selectedNames.push(required);
73
54
  }
74
55
  }
75
- if (!isDraft) {
76
- for (const capability of ["image-gen", "callai"]) {
77
- if (llmsCatalogNames.has(capability) && !selectedNames.includes(capability)) {
78
- selectedNames.push(capability);
79
- }
56
+ for (const capability of ["image-gen", "callai"]) {
57
+ if (llmsCatalogNames.has(capability) && !selectedNames.includes(capability)) {
58
+ selectedNames.push(capability);
80
59
  }
81
60
  }
82
- const isFirstTurn = sessionDoc?.variant === "initial" || sessionDoc?.variant === "initial-oneshot" || sessionDoc?.variant === "initial-draft";
61
+ const isFirstTurn = sessionDoc?.variant === "initial" || sessionDoc?.variant === "initial-oneshot";
83
62
  if (isFirstTurn === false && llmsCatalogNames.has("backend") && selectedNames.includes("backend") === false) {
84
63
  selectedNames.push("backend");
85
64
  }
86
65
  const includeDemoData = sessionDoc?.demoData === true;
87
- const chosenLlms = isDraft
88
- ? selectedNames.flatMap((name) => llmsCatalog.filter((l) => l.name === name))
89
- : llmsCatalog.filter((l) => selectedNames.includes(l.name));
66
+ const chosenLlms = llmsCatalog.filter((l) => selectedNames.includes(l.name));
90
67
  const concatenatedLlmsTxts = [];
91
68
  for (const llm of chosenLlms) {
92
- const docFile = isDraft && llm.draftVariant === true
93
- ? `${llm.name}.draft.md`
94
- : isFirstTurn && llm.initialVariant === true
95
- ? `${llm.name}.initial.md`
96
- : `${llm.name}.md`;
69
+ const docFile = isFirstTurn && llm.initialVariant === true ? `${llm.name}.initial.md` : `${llm.name}.md`;
97
70
  const rText = await keyedLoadAsset.get(docFile).once(async () => {
98
71
  return loadAsset(`./llms/${docFile}`, {
99
72
  fallBackUrl: pkgBaseUrl,
@@ -196,25 +169,9 @@ export async function makeBaseSystemPrompt(model, sessionDoc) {
196
169
  ? "system-prompt-initial.md"
197
170
  : sessionDoc?.variant === "initial-oneshot"
198
171
  ? "system-prompt-initial-oneshot.md"
199
- : sessionDoc?.variant === "initial-draft"
200
- ? "system-prompt-initial-draft.md"
201
- : "system-prompt.md";
172
+ : "system-prompt.md";
202
173
  const template = await getSystemPromptTemplate(pkgBaseUrl, templateFilename, sessionDoc.fetch);
203
- const extraImports = chosenLlms
204
- .filter((l) => draftExtras.includes(l.name))
205
- .map((l) => {
206
- const statement = generateImportStatements([l]).trim();
207
- return statement.length > 0
208
- ? `, plus \`${statement}\` for ${l.label} (its doc is below)`
209
- : `, plus the browser's own ${l.label} for what the brief asks of it (its doc is below)`;
210
- })
211
- .join("");
212
- const imageLine = (draftWantsImages ? ', plus `import { ImgGen } from "use-vibes"` for the pictures the brief asks for (its doc is below)' : "") +
213
- extraImports;
214
- const substituteStable = (s) => s
215
- .replaceAll("{{DEMO_DATA}}", demoDataLines)
216
- .replaceAll("{{IMPORT_STATEMENTS}}", importStatements)
217
- .replaceAll("{{IMAGE_LINE}}", imageLine);
174
+ const substituteStable = (s) => s.replaceAll("{{DEMO_DATA}}", demoDataLines).replaceAll("{{IMPORT_STATEMENTS}}", importStatements);
218
175
  const llmsMarker = "{{CONCATENATED_LLMS}}";
219
176
  const markerIdx = template.indexOf(llmsMarker);
220
177
  const headPre = markerIdx === -1 ? substituteStable(template) : substituteStable(template.slice(0, markerIdx));
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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"}
package/llms/d3.draft.md DELETED
@@ -1,154 +0,0 @@
1
- # D3 — the first draft: a small live bar chart
2
-
3
- A D3 app's first draft is the whole page around the chart — the title, the
4
- card that frames it, a tiny form that adds a row, the seeded documents the
5
- chart reads — with one small, correct chart actually drawn by d3 inside the
6
- card: a bar chart of the seeded rows with a band scale, a linear scale and both
7
- axes, following the theme through its CSS variables. Add a row and the bar appears.
8
- Transitions, tooltips, brushing, maps and force layouts are the next pass. What
9
- the draft owes that pass is the right skeleton: d3 owns one `<svg>` through a
10
- ref, the width comes from the host through a `ResizeObserver`, and the draw
11
- effect is a select → data join → `join("rect")` that re-runs when `docs`
12
- change — so the next pass adds marks and interactions to that effect rather
13
- than rewriting the file.
14
-
15
- ### `App.jsx`
16
- ```jsx
17
- import React, { useEffect, useRef, useState } from "react";
18
- import { useFireproof } from "use-fireproof";
19
- import * as d3 from "d3";
20
- import { Button, Input, Badge, Card, CardHeader, CardTitle, CardContent } from "@vibes.diy/look";
21
-
22
- const HEIGHT = 260;
23
- const MARGIN = { top: 12, right: 12, bottom: 32, left: 40 };
24
-
25
- // One pass of the D3 pattern: select the svg, bind the rows, transform the marks.
26
- // Called on every data or width change; the join keeps it idempotent.
27
- function drawChart(svgEl, rows, width) {
28
- const innerW = Math.max(0, width - MARGIN.left - MARGIN.right);
29
- const innerH = HEIGHT - MARGIN.top - MARGIN.bottom;
30
- const x = d3.scaleBand().domain(rows.map((d) => d.label)).range([0, innerW]).padding(0.2);
31
- const y = d3.scaleLinear().domain([0, d3.max(rows, (d) => d.value) || 1]).nice().range([innerH, 0]);
32
-
33
- const svg = d3.select(svgEl).attr("width", width).attr("height", HEIGHT).attr("viewBox", `0 0 ${width} ${HEIGHT}`);
34
- const g = svg.selectAll("g.plot").data([null]).join("g").attr("class", "plot").attr("transform", `translate(${MARGIN.left},${MARGIN.top})`);
35
-
36
- g.selectAll("rect.bar")
37
- .data(rows, (d) => d._id)
38
- .join("rect")
39
- .attr("class", "bar")
40
- .attr("x", (d) => x(d.label))
41
- .attr("width", x.bandwidth())
42
- .attr("y", (d) => y(d.value))
43
- .attr("height", (d) => innerH - y(d.value))
44
- .attr("rx", 3)
45
- .style("fill", "var(--primary, currentColor)"); // the theme's primary, so a restyle recolors it
46
-
47
- g.selectAll("g.x-axis").data([null]).join("g").attr("class", "x-axis").attr("transform", `translate(0,${innerH})`).call(d3.axisBottom(x));
48
- g.selectAll("g.y-axis").data([null]).join("g").attr("class", "y-axis").call(d3.axisLeft(y).ticks(5));
49
- }
50
-
51
- export default function App() {
52
- const { database, useLiveQuery } = useFireproof("bakeryShelf");
53
- const { docs } = useLiveQuery("type", { key: "loaf" });
54
- const hostRef = useRef(null);
55
- const svgRef = useRef(null);
56
- const [width, setWidth] = useState(0);
57
- const [label, setLabel] = useState("");
58
- const [value, setValue] = useState("");
59
-
60
- // The width follows the card, not the window.
61
- useEffect(() => {
62
- const host = hostRef.current;
63
- const observer = new window.ResizeObserver(([entry]) => setWidth(Math.floor(entry.contentRect.width)));
64
- observer.observe(host);
65
- return () => observer.disconnect();
66
- }, []);
67
-
68
- // Redraw whenever the rows or the width change.
69
- useEffect(() => {
70
- if (!svgRef.current || width === 0) return;
71
- const rows = [...docs].sort((a, b) => a.createdAt - b.createdAt);
72
- drawChart(svgRef.current, rows, width);
73
- }, [docs, width]);
74
-
75
- const addRow = () => {
76
- const n = Number(value);
77
- if (label.trim().length === 0 || !Number.isFinite(n) || n < 0) return;
78
- database.put({ type: "loaf", label: label.trim(), value: n, createdAt: Date.now() });
79
- setLabel("");
80
- setValue("");
81
- };
82
-
83
- const total = docs.reduce((sum, d) => sum + d.value, 0);
84
-
85
- return (
86
- <main className="min-h-screen bg-background text-foreground font-sans p-6">
87
- <h1 className="text-3xl font-bold">Morning Loaves</h1>
88
- <p className="mt-1 text-muted-foreground">What left the shelf at Crumb &amp; Co. before ten. Add a bake and watch its bar rise.</p>
89
-
90
- <Card className="mt-6 max-w-2xl">
91
- <CardHeader>
92
- <CardTitle>Sold by 10am</CardTitle>
93
- </CardHeader>
94
- <CardContent>
95
- <div className="flex items-center gap-2">
96
- <Badge variant="secondary">{docs.length} bakes</Badge>
97
- <Badge variant="secondary">{total} loaves</Badge>
98
- </div>
99
- <div ref={hostRef} className="mt-4 w-full">
100
- <svg ref={svgRef} className="block text-muted-foreground" role="img" aria-label="Loaves sold by bake" />
101
- </div>
102
- {/* TODO(next pass): bars grow in with a transition, a tooltip per bar, brushing a range, and other chart kinds (maps, force layouts) */}
103
- <div className="mt-4 flex flex-wrap gap-2">
104
- <Input className="flex-1" value={label} onChange={(e) => setLabel(e.target.value)} placeholder="Bake, e.g. Rye" />
105
- <Input className="w-28" type="number" min={0} value={value} onChange={(e) => setValue(e.target.value)} placeholder="Loaves" />
106
- <Button onClick={addRow}>Add bake</Button>
107
- </div>
108
- </CardContent>
109
- </Card>
110
- </main>
111
- );
112
- }
113
- ```
114
-
115
- ### `seed.json`
116
- ```json
117
- {
118
- "bakeryShelf": [
119
- { "key": "sourdough", "type": "loaf", "label": "Sourdough", "value": 42, "createdAt": 1758400000000 },
120
- { "key": "baguette", "type": "loaf", "label": "Baguette", "value": 35, "createdAt": 1758400060000 },
121
- { "key": "rye", "type": "loaf", "label": "Rye", "value": 18, "createdAt": 1758400120000 },
122
- { "key": "brioche", "type": "loaf", "label": "Brioche", "value": 24, "createdAt": 1758400180000 },
123
- { "key": "focaccia", "type": "loaf", "label": "Focaccia", "value": 29, "createdAt": 1758400240000 },
124
- { "key": "seeded", "type": "loaf", "label": "Seeded", "value": 15, "createdAt": 1758400300000 }
125
- ]
126
- }
127
- ```
128
-
129
- Draft note: the next pass adds bars that grow in with transitions, a tooltip per bar, brushing a range, and richer chart kinds like maps and force layouts.
130
-
131
- ## What stays the same in a D3 draft
132
-
133
- - **The import is the namespace**: `import * as d3 from "d3"`, and d3 owns
134
- exactly one `<svg>` reached through a ref. React renders the svg element and
135
- the page around it; d3 renders everything inside it.
136
- - **The D3 pattern, idempotent**: select the svg, bind with
137
- `.data(rows, (d) => d._id)`, and `.join("rect")`; the group and each axis are
138
- joined the same way (`.data([null]).join("g")`), so a redraw updates in place
139
- and never appends a second chart.
140
- - **Scales and axes**: `scaleBand` for categories, `scaleLinear().nice()` from
141
- zero for values, `axisBottom` and `axisLeft` called into their own groups
142
- inside a margin.
143
- - **Width from the host**: a `ResizeObserver` on the wrapper sets `width` in
144
- React state; the height is a constant; the observer disconnects in cleanup.
145
- - **Redraw on data**: the draw effect depends on `[docs, width]`, and the rows
146
- come from `useLiveQuery`, so a row added by the form appears as a bar with no
147
- extra wiring.
148
- - **Theme colors, never hex**: bars fill with `var(--primary, currentColor)`
149
- as a style, and the axes draw in the svg's `text-muted-foreground` through
150
- d3's own `currentColor` defaults, so a restyle recolors the chart with no
151
- redraw.
152
- - **What waits for the next pass** is named in the `TODO(next pass)` comment
153
- and the draft note: transitions, tooltips, brushing, maps, force layouts. The
154
- draft draws none of it.
@@ -1,47 +0,0 @@
1
- # Fireproof on vibes.diy — the short version
2
-
3
- Fireproof is the app's database: a local-first document store that syncs in the background. Records are plain JSON documents. Everything on screen comes from a live query, so the UI updates itself after every save.
4
-
5
- ```jsx
6
- import { useFireproof } from "use-fireproof";
7
-
8
- export default function App() {
9
- const { database, useLiveQuery, useDocument } = useFireproof("myApp"); // one plain camelCase name per app
10
-
11
- // Read: every doc whose `type` is "note", newest first. `docs` re-renders on every change.
12
- const { docs: notes } = useLiveQuery("type", { key: "note", descending: true });
13
-
14
- // Create: one document per record. `type` names the record kind; stamp the author and the parent id.
15
- const addNote = (text) => database.put({ type: "note", text, authorHandle: "me", createdAt: Date.now() });
16
-
17
- // Update: spread the existing doc and change fields. Delete: by id.
18
- const toggle = (note) => database.put({ ...note, done: !note.done });
19
- const remove = (note) => database.del(note._id);
20
-
21
- // A form bound to one document (edit view): `doc`, `merge` to change fields, `save` to persist.
22
- const { doc, merge, save } = useDocument({ type: "note", text: "" });
23
-
24
- return (
25
- <main>
26
- <input value={doc.text} onChange={(e) => merge({ text: e.target.value })} />
27
- <button onClick={() => save()}>Save</button>
28
- {notes.map((n) => (
29
- <div key={n._id}>
30
- <span onClick={() => toggle(n)}>{n.done ? "✓" : "○"} {n.text}</span>
31
- <button onClick={() => remove(n)}>Delete</button>
32
- </div>
33
- ))}
34
- </main>
35
- );
36
- }
37
- ```
38
-
39
- Rules of the road:
40
-
41
- - `useFireproof(name)` is called once at the top of a component; `useLiveQuery` and `useDocument` come from it and are also called at the top, outside handlers and loops.
42
- - `useLiveQuery(field, { key })` returns `{ docs }` matching `doc[field] === key`; `useLiveQuery(field)` returns every doc that has the field, sorted by it. `{ descending: true }` and `{ limit: n }` are available. Filter and sort further in plain JavaScript.
43
- - Documents get an auto `_id`; write one explicitly only for a well-known singleton (`"settings"`) or a one-per-person-per-thing record (`` `vote-${handle}-${postId}` ``), so re-saves replace rather than duplicate.
44
- - Writes land instantly and the store is the feedback: after `database.put`, the live query shows the new record. A saved card is the confirmation.
45
- - One document per event or record, and a `type` string on every document. Keep documents small; a list is many documents, each with the id of the list it belongs to (`listId`), rather than one document holding an array that grows.
46
- - Related records reference each other by `_id`. Seed items that other seed items point at carry an explicit `_id`, and the reference uses that exact string.
47
- - A list that renders one field per row can carry that field on the row: `useLiveQuery((doc, emit) => emit(doc.listId, { label: doc.label }), { key: listId })` puts the summary in `rows[].value` — exactly what was passed, including `0`, `""`, `false`, `null`, or an explicit `undefined` — while `docs` still holds the whole documents. Calling `emit(key)` alone leaves the whole document as the value.