2import { useState } from "https://esm.sh/react@18.2.0";
3
4export function App() {
5 const [clicked, setClicked] = useState(0);
6 return (
23});
24
25export function Messages ({
26 messages,
27 messageEndTimes,
58}
59
60function Message ({
61 message,
62 messageEndTimes,
86}
87
88function AssistantMessage ({ message, messageEndTimes, running }: {
89 message: Message;
90 messageEndTimes: Record<string, number>;
107}
108
109function Part ({ part }) {
110 switch (part.type) {
111 case "text":
122}
123
124function TextPart ({ part }) {
125 return (
126 <ReactMarkdown>
130}
131
132function Details ({ open, onClick, children, summary }) {
133 return (
134 <details
148}
149
150function ToolPart ({ part }) {
151 const { openSummaries, setOpenSummaries } = useContext(MessageContext);
152 const {
226}
227
228function EditorToolPart ({ part }) {
229 const { openSummaries, setOpenSummaries } = useContext(MessageContext);
230 const {
293}
294
295function UserMessage ({ message }: {
296 message: Message;
297}) {
5// ---------------- Val Town Standard Library ----------------
6// Val Town provides limited free hosted services, including
7// functions for sending emails and using OpenAI
8import { email } from "https://esm.town/v/std/email";
9import { OpenAI } from "https://esm.town/v/std/OpenAI";
16
17// --------------------- Cron Trigger ------------------------
18// Cron triggers run the exported function on the specified timer
19// Edit the timer by clicking the clock icon 🕑 above
20// Learn more about cron triggers: https://docs.val.town/vals/cron/
21
22export default async function() {
23 // Use OpenAI provided by Val Town to get weather reccomendation
24 // Experiment with changing the prompt
45`;
46
47function getYesterdayDateRange(): { startDate: string; endDate: string } {
48 const now = new Date();
49 const yesterday = new Date(now.setDate(now.getDate() - 1));
56}
57
58export async function exec(interval: Interval) {
59 const apiKey = Deno.env.get("LINEAR_API_KEY");
60 if (!apiKey) {
132 });
133
134 function determineMatchedContext(
135 history: any[],
136 startDate: string,
4import { MessageContext } from "./Messages.tsx";
5
6export function InlinePreview ({ part }) {
7 const project = useContext(ProjectContext);
8 const message = useContext(MessageContext);
73const SCREENSHOT_URL = "https://screenshots.valtown.net/screenshot.png";
74
75function getScreenshotURL ({
76 version,
77 endpoint,
17
18// alt single-column version of /chat route
19export function ChatRouteSingleColumn () {
20 const { projectId, branchId } = useParams() as {
21 projectId: string;
54}
55
56function Conversation ({
57 project,
58 files,
166}
167
168function shouldRefetch (message) {
169 for (let i = 0; i < message?.parts?.length; i++) {
170 let part = message.parts[i];
1export default async function(req: Request): Promise<Response> {
2 const url = new URL(req.url);
3 if (url.pathname === "/v1") {
2import { renderToString } from "npm:react-dom/server";
3
4export default async function(req: Request) {
5 return new Response(
6 renderToString(
67 const localCanvasHeight = canvas.height;
68
69 function drawCanvas(filledSquares) {
70 ctx.clearRect(0, 0, localCanvasWidth, localCanvasHeight);
71 ctx.fillStyle = "black";
79 }
80
81 async function fetchAndUpdateCanvas() {
82 try {
83 const response = await fetch("/api/canvas-state");
178};
179
180export default async function(req: Request) {
181 const url = new URL(req.url);
182
13];
14
15function App() {
16 const [noClicks, setNoClicks] = useState(0);
17 const [isValentine, setIsValentine] = useState(false);
98}
99
100function client() {
101 createRoot(document.getElementById("root")).render(<App />);
102}
103if (typeof document !== "undefined") { client(); }
104
105export default async function server(request: Request): Promise<Response> {
106 return new Response(
107 `
A helper function to build a file's email
Simple functional CSS library for Val Town
import { OpenAI } from "https://esm.town/v/std/openai";
export default async function(req: Request): Promise<Response> {
if (req.method === "OPTIONS") {
return new Response(null, {
headers: {
"Access-Control-Allow-Origin": "*",
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.