dateHelpersmain.tsx2 matches
1export function formatDateRange(startDateString, endDateString, format) {
2const startDate = new Date(startDateString);
3const endDate = new Date(endDateString);
17}
1819function formatSingleDate(date, format) {
20const options = {};
21
freeformServerREADME.md1 match
5This val was adapted from @tmcw [obsidian plugin](https://github.com/tmcw/obsidian-freeform).
67Instead of using the `display` function, this port use `export default`.
89```
embeddingsSearchExamplemain.tsx10 matches
45// Step 1: Get Embeddings
6// Function to get a single embedding
7async function getEmbedding(text) {
8console.log(`Getting embedding for: ${text}`);
9const { embedding } = await embed({
15}
1617// Function to get embeddings for multiple texts
18async function getEmbeddings(texts) {
19console.log(`Getting embeddings for texts: ${texts}`);
20const { embeddings } = await embedMany({
34];
3536async function prepareDocumentsWithEmbeddings() {
37const contents = documents.map(doc => doc.content);
38const embeddings = await getEmbeddings(contents);
4748// Step 3: Nearest Neighbor Search
49function cosineSimilarity(a, b) {
50const dotProduct = a.reduce((sum, val, idx) => sum + val * b[idx], 0);
51const magnitudeA = Math.sqrt(a.reduce((sum, val) => sum + val * val, 0));
54}
5556function findNearestNeighbors(embedding, k = 1) {
57const neighbors = documents
58.map(doc => ({ doc, similarity: cosineSimilarity(doc.embedding, embedding) }))
6566// Step 4: Use Lunr.js for Full-Text Search
67const idx = lunr(function () {
68this.ref('id');
69this.field('content');
73});
7475// Combined Search Function
76async function search(query, similarityThreshold = 0.2) {
77console.log(`Searching for query: ${query}`);
78const queryEmbedding = await getEmbedding(query);
semanticSearchREADME.md1 match
13];
1415async function runExample() {
16// Add documents to the semantic search instance
17await semanticSearch.addDocuments(documents);
29}`;
3031export default async function changeUserStatus(
32input: Input,
33token: string,
176const duration = 300 + ((300 * dist) / 100);
177var startTime = null;
178function step(time) {
179if (startTime == null) {
180startTime = time;
206}
207// Create HTML choices from ink choices
208_inkStory.currentChoices.forEach(function (choice) {
209// Create paragraph with anchor element
210var choiceParagraphElement = document.createElement("p");
219var choiceAnchorEl =
220choiceParagraphElement.querySelectorAll("a")[0];
221const eventListener = function (event) {
222// Do not follow <a> link
223event.preventDefault();
270};
271temp1(t1);
272_inkStory.BindExternalFunction("str_concat", (a, b) => {
273return a.toString().concat(b.toString());
274});
275_inkStory.BindExternalFunction("urlfetch", (url) => {
276throw new Error("Not yet implemented!");
277});
278_inkStory.BindExternalFunction("json_subscript", (json_data, sub) => {
279return JSON.stringify(JSON.parse(json_data)[sub]);
280});
281_inkStory.BindExternalFunction(
282"json_set_subscript",
283(json_data, sub, item) => {
287},
288);
289_inkStory.BindExternalFunction("json_array_length", (json_data) => {
290return JSON.parse(json_data).length;
291});
292_inkStory.BindExternalFunction("query", (message, defaultValue) => {
293return prompt(message, defaultValue);
294});
295_inkStory.BindExternalFunction("urlpost", (url, payload) => {
296const response_p = fetch(url, {
297method: "POST",
309});
310});
311_inkStory.BindExternalFunction("parseInt", (str) => {
312return parseInt(str, 10);
313});
314_inkStory.allowExternalFunctionFallbacks = true;
315_inkStory.onError = (msg, type) => {
316errorHandlerForAll("Ink story error: ".concat(type, " ", msg));
2import { renderToString } from "npm:react-dom/server";
34export default async function(req: Request) {
5return new Response(
6renderToString(
2import { fetch } from "https://esm.town/v/std/fetch";
34export async function reminders(interval: Interval) {
5function* walk(node, path = []) {
6yield node;
7if (node && Array.isArray(node.value)) {
25* Make sure to set the `CACHE_TABLE_NAME` environment variable first.
26*/
27export async function setup() {
28await sqlite.execute(`
29CREATE TABLE IF NOT EXISTS ${tableName} (
42* @returns The value indicating whether the key is present in cache.
43*/
44export async function exists(key): Promise<Boolean> {
45const result = await sqlite.execute({
46sql: `SELECT 1 FROM ${tableName} WHERE key = :key AND (expires_at IS NULL OR expires_at > datetime('now'))`,
55* @returns The value for the key, or `null` if the key does not exist or has expired
56*/
57export async function get<T = unknown>(key): Promise<T | null> {
58const result = await sqlite.execute({
59sql: `SELECT content FROM ${tableName} WHERE key = :key AND (expires_at IS NULL OR expires_at > datetime('now'))`,
72* @returns The number of keys set (1 if the key was inserted/updated, 0 if the ttl was 0)
73*/
74export async function set(key, value, ttl: number = defaultTTL): Promise<number> {
75if (ttl <= 0) return 0;
76const expires_at = ttl ? `datetime('now', '+${ttl} seconds')` : null;
90* @returns The number of keys set (1 if the key was inserted/updated, 0 if the expiresAt was in the past)
91*/
92export async function setUntil(key: string, value: unknown, expiresAt: string): Promise<number> {
93const currentDateTime = new Date().toISOString();
94if (expiresAt <= currentDateTime) return 0;
108* @returns The number of keys updated (1 if updated, 0 if not found or ttl was 0).
109*/
110export async function setExpiration(key: string, ttl: number = defaultTTL): Promise<number> {
111if (ttl <= 0) return 0;
112const expires_at = `datetime('now', '+${ttl} seconds')`;
127* @returns The number of keys updated (1 if updated, 0 if not found or expiresAt was in the past).
128*/
129export async function setExpirationUntil(key: string, expiresAt: string): Promise<number> {
130const currentDateTime = new Date().toISOString();
131if (expiresAt <= currentDateTime) return 0;
146* @returns A list of keys. Can be an empty list (array) if no keys match.
147*/
148export async function listKeys(
149prefix: string | undefined = undefined,
150): Promise<string[]> {
164* @returns An array of key-value pairs. Each pair is an object with 'key' and 'value' properties.
165*/
166export async function getMany<T = unknown>(
167prefix: string | undefined = undefined,
168limit: number = 0,
201* @returns The number of keys deleted (1 if the key was deleted, 0 if the key did not exist)
202*/
203export async function deleteKey(key): Promise<number> {
204const result = await sqlite.execute({
205sql: `DELETE FROM ${tableName} WHERE key = :key`,
215* @returns The number of keys deleted
216*/
217export async function deleteKeys(
218prefix: string | undefined = undefined,
219): Promise<number> {
231* Perfect for running on a schedule to keep the cache small and fast.
232*/
233export async function deleteExpired(): Promise<number> {
234const result = await sqlite.execute({
235sql: `DELETE FROM ${tableName} WHERE expires_at IS NOT NULL AND expires_at <= datetime('now')`,
239}
240241// Export all functions as a single object to allow for easy importing
242export const cache = {
243setup,
nighthawksChatmain.tsx4 matches
10const kv = new KV();
1112async function generateText(prompt, charId) {
13if (charId) {
14await nighthawks.loadCharacter(charId);
23}
2425async function createCharacter(obj) {
26console.log('Creating character with:', obj)
27await nighthawks.createCharacter(obj);
31}
3233async function saveCharacter(char) {
34console.log('Saving character:', char)
35await nighthawks.saveCharacter(char);
383940async function getStoredCharacter(charId) {
41await nighthawks.loadCharacter(charId);
42if (nighthawks.characters.length > 0) {