4import { parse } from "./parse";
56async function getData() {
7const src = await getPosts();
8const posts = await Promise.all(src.map((p) => parse(p, [frontmatter, markdown])));
surprisingEmbeddingsindex4 matches
13const THROTTLE = 1000
1415function blockAi(ua: string) {
16if (
17bots.some(b => {
9293// Based on https://github.com/Shawns2759/vector-similarity MIT
94function dotProduct(a: number[], b: number[]): number {
95return a.reduce((sum, value, index) => sum + value * b[index], 0)
96}
9798function vectorMagnitude(a: number[]): number {
99return Math.sqrt(a.reduce((sum, value) => sum + value * value, 0))
100}
101102function cosineSimilarity(a: number[], b: number[]): number {
103const dotProd = dotProduct(a, b)
104const magnitudeA = vectorMagnitude(a)
cerebras_codermain.tsx11 matches
24);
2526function Hero({
27prompt,
28setPrompt,
4546<p className="text-[#bababa] text-center max-w-[25ch] mx-auto my-4 font-dm-sans">
47Turn your ideas into fully functional apps in{" "}
48<span className="relative w-fit text-fuchsia-400 z-10 italic font-semibold rounded-full">
49less than a second
116}
117118function App() {
119const previewRef = React.useRef<HTMLDivElement>(null);
120const [prompt, setPrompt] = useState("");
170});
171172function handleStarterPromptClick(promptItem: typeof prompts[number]) {
173setLoading(true);
174setTimeout(() => handleSubmit(promptItem.prompt), 0);
175}
176177async function handleSubmit(e: React.FormEvent | string) {
178if (typeof e !== "string") {
179e.preventDefault();
226}
227228function handleVersionChange(direction: "back" | "forward") {
229const { currentVersionIndex, versions } = versionHistory;
230if (direction === "back" && currentVersionIndex > 0) {
974);
975976function client() {
977const path = window.location.pathname;
978const root = createRoot(document.getElementById("root")!);
1010}
10111012function extractCodeFromFence(text: string): string {
1013const htmlMatch = text.match(/```html\n([\s\S]*?)\n```/);
1014return htmlMatch ? htmlMatch[1].trim() : text;
1015}
10161017async function generateCode(prompt: string, currentCode: string) {
1018const starterPrompt = STARTER_PROMPTS.find(p => p.prompt === prompt);
1019if (starterPrompt) {
1060}
10611062export default async function cerebras_coder(req: Request): Promise<Response> {
1063// Dynamic import for SQLite to avoid client-side import
1064const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
1163<meta property="og:site_name" content="Cerebras Coder">
1164<meta property="og:url" content="https://cerebrascoder.com"/>
1165<meta property="og:description" content="Turn your ideas into fully functional apps in less than a second – powered by Llama3.3-70b on Cerebras's super-fast wafer chips. Code is 100% open-source, hosted on Val Town."">
1166<meta property="og:type" content="website">
1167<meta property="og:image" content="https://stevekrouse-blob_admin.web.val.run/api/public/CerebrasCoderOG.jpg">
OpenTownieindex4 matches
5import { generateCodeAnthropic, makeFullPrompt } from "./backend/generateCode";
67function App() {
8const [messages, setMessages] = useState<{ content: string; role: string }[]>([]);
9const [inputMessage, setInputMessage] = useState("make a todo app");
11const [bearerToken, _setBearerToken] = useState(localStorage.getItem("val-town-bearer"));
1213function setBearerToken(token: string) {
14_setBearerToken(token);
15localStorage.setItem("val-town-bearer", token);
79}
8081function client() {
82createRoot(document.getElementById("root")).render(<App />);
83}
84if (typeof document !== "undefined") { client(); }
8586export default async function server(req: Request): Promise<Response> {
87// console.log(req);
88if (req.method === "POST") {
OpenTowniegenerateCode2 matches
1import OpenAI from "https://esm.sh/openai";
23function parseValResponse(response: string) {
4const codeBlockRegex = /```val type=(\w+)\n([\s\S]*?)```/;
5const match = response.match(codeBlockRegex);
25}
2627export async function generateCodeAnthropic(messages: Message[]): Promise<ValResponse | null> {
28const system = await (await fetch(`${import.meta.url.split("/").slice(0, -1).join("/")}/system_prompt.txt`)).text();
29
reactRouter7server.tsx1 match
1import { handler } from "./entry.server.tsx";
23export default async function(request: Request) {
4const url = new URL(request.url);
5if (url.pathname == "/js/entry.client.js") {
reactRouter7about.tsx1 match
4import type loader from "./about.loader.js";
56export default function About() {
7let data = useLoaderData<typeof loader>();
8return <h1>{data.message}</h1>;
userEnrichmenthome.tsx1 match
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
23export default function Home() {
4return <h1>This is just a test!</h1>;
5}
OpenTowniesystem_prompt.txt17 matches
101. `http`: http vals export a default server request handler.
112. `script`: script vals can be imported into other vals, similar to an npm package.
123. `cron`: cron vals export a function that can automatically run at user-set intervals, similar to a cron command.
134. `email`: email vals export a function that runs when its associated email address receives an email.
1415Follow these requirements for Val Town when generating code.
49</requirements>
5051If the user asks for specific functionality, the Val Town standard library includes the following:
5253<libraries>
63```
6465Blob storage only works on the server. If the val includes client-side code, use dynamic imports to import this module in the server function, e.g.:
66`const { blob } = await import("https://esm.town/v/std/blob");`
67</library>
78If you are changing a SQLite table's schema, you should also change the table's name so it creates a fresh table, ie by adding _2 or _3 after it everywhere. Ensure that tables are created before they are used.
7980SQLite storage only works on the server. If the val includes client-side code, use dynamic imports to import this module in the server function, e.g.:
81`const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");`
82</library>
99```
100101OpenAI only works on the server. If the val includes client-side code, use dynamic imports to import this module in the server function, e.g.:
102`const { OpenAI } = await import "https://esm.town/v/std/openai");`
103</library>
113```
114115Email only works on the server. If the val includes client-side code, use dynamic imports to import this module in the server function, e.g.:
116`const { email } = await import "https://esm.town/v/std/email");`
117</library>
131Write the code in ```val code fences.
132Include the val type as metadata on the code fence, e.g.: ```val type=script
133If this is a new val, decide what val type is appropriate based on the user's prompt. Default to choosing http type vals unless the user has requested specific functionality that requires a different type.
134135* If the user requests diff format in their prompt, follow these steps:
157* Use fetch to communicate with the backend server portion.
158*/
159function App() {
160return (
161<div>
167/**
168* Client-only code
169* Any code that makes use of document or window should be scoped to the `client()` function.
170* This val should not cause errors when imported as a module in a browser.
171*/
172function client() {
173createRoot(document.getElementById("root")).render(<App />);
174}
177/**
178* Server-only code
179* Any code that is meant to run on the server should be included in the server function.
180* This can include endpoints that the client side component can send fetch requests to.
181*/
182export default async function server(request: Request): Promise<Response> {
183/** If needed, blob storage or sqlite can be imported as a dynamic import in this function.
184* Blob storage should never be used in the browser directly.
185* Other server-side specific modules can be imported in a similar way.
232```val type=script
233/** Use this template for creating script vals only */
234export default function () {
235return "Hello, world";
236}
243```val type=cron
244/** Use this template for creating cron vals only */
245export default async function (interval: Interval) {
246// code will run at an interval set by the user
247console.log(`Hello, world: ${Date.now()}`);
270// The email address for this val will be `<username>.<valname>@valtown.email` which can be derived from:
271// const emailAddress = new URL(import.meta.url).pathname.split("/").slice(-2).join(".") + "@valtown.email";
272export default async function (e: Email) {
273console.log("Email received!", email.from, email.subject, email.text);
274}
userEnrichmentserver.ts1 match
11let { query, dataRoutes } = createStaticHandler(routes);
1213export async function handler(request: Request) {
14// 1. run actions/loaders to get the routing context with `query`
15let context = await query(request);