diff --git a/apps/realtime-audio/tsconfig.json b/apps/realtime-audio/tsconfig.json index f18d0b8c4..448c07133 100644 --- a/apps/realtime-audio/tsconfig.json +++ b/apps/realtime-audio/tsconfig.json @@ -10,14 +10,6 @@ ], "module": "ESNext", "moduleResolution": "bundler", - "paths": { - "@proj-airi/duckdb-wasm/*": [ - "../duckdb-wasm/src/*" - ], - "@proj-airi/duckdb-wasm": [ - "../duckdb-wasm/src/index.ts" - ] - }, "types": [ "vite/client", "@vitest/browser/providers/playwright", diff --git a/apps/stage-tamagotchi/package.json b/apps/stage-tamagotchi/package.json index 0128e63cb..0704b51c5 100644 --- a/apps/stage-tamagotchi/package.json +++ b/apps/stage-tamagotchi/package.json @@ -92,7 +92,7 @@ "@iconify-json/vscode-icons": "^1.2.18", "@iconify/utils": "^2.3.0", "@intlify/unplugin-vue-i18n": "^6.0.5", - "@proj-airi/drizzle-duckdb-wasm": "workspace:^", + "@proj-airi/drizzle-duckdb-wasm": "catalog:", "@proj-airi/lobe-icons": "^1.0.5", "@proj-airi/provider-transformers": "workspace:^", "@proj-airi/ui-transitions": "workspace:^", diff --git a/apps/stage-web/package.json b/apps/stage-web/package.json index 1f4a8796a..cc52b1cfa 100644 --- a/apps/stage-web/package.json +++ b/apps/stage-web/package.json @@ -37,7 +37,7 @@ "@pixiv/three-vrm-animation": "^3.3.6", "@pixiv/three-vrm-core": "^3.3.6", "@proj-airi/ccc": "workspace:^", - "@proj-airi/drizzle-duckdb-wasm": "workspace:^", + "@proj-airi/drizzle-duckdb-wasm": "catalog:", "@proj-airi/provider-transformers": "workspace:^", "@proj-airi/server-sdk": "workspace:^", "@proj-airi/stage-ui": "workspace:^", diff --git a/packages/drizzle-duckdb-wasm/README.md b/packages/drizzle-duckdb-wasm/README.md index 9199b314e..8b3e0a8f8 100644 --- a/packages/drizzle-duckdb-wasm/README.md +++ b/packages/drizzle-duckdb-wasm/README.md @@ -1,139 +1,3 @@ -# 🦆 Drizzle ORM driver for `@duckdb/duckdb-wasm` +# We have moved -This package provides a Drizzle ORM driver for the DuckDB WASM implementation. - -> [Playground](https://drizzle-orm-duckdb-wasm.netlify.app/) - -## Installation - -Pick the package manager of your choice: - -```shell -ni @proj-airi/drizzle-duckdb-wasm -D # from @antfu/ni, can be installed via `npm i -g @antfu/ni` -pnpm i @proj-airi/drizzle-duckdb-wasm -D -yarn i @proj-airi/drizzle-duckdb-wasm -D -npm i @proj-airi/drizzle-duckdb-wasm -D -``` - -## Usage - -```typescript -import { drizzle } from '@proj-airi/drizzle-duckdb-wasm' - -const db = drizzle('duckdb-wasm://?bundles=import-url', { schema }) -``` - -### Browser - -#### Vue.js - -```typescript -// ./db/schema.ts -import { sql } from 'drizzle-orm' -import { pgTable, uuid } from 'drizzle-orm/pg-core' - -export const users = pgTable('users', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), -})) -``` - -```shell -drizzle-kit generate -``` - -```html - - -``` - -### Node.js - -You will need to install `web-worker` too. - -```shell -ni web-worker # from @antfu/ni, can be installed via `npm i -g @antfu/ni` -pnpm i web-worker -yarn i web-worker -npm i web-worker -``` - -```typescript -// ./db/schema.ts -import { sql } from 'drizzle-orm' -import { pgTable, uuid } from 'drizzle-orm/pg-core' - -export const users = pgTable('users', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), -})) -``` - -```shell -drizzle-kit generate -``` - -```typescript -// ./src/index.ts -import { read } from 'node:fs/promises' -import { drizzle } from '@proj-airi/drizzle-duckdb-wasm' -import { getBundles } from '@proj-airi/drizzle-duckdb-wasm/bundles/default-node' - -import * as schema from './db/schema' -import { users } from './db/schema' - -async function main() { - const db = drizzle({ connection: { bundles: getBundles() } }, { schema }) - - // Run migration scripts - const migration1 = await read('./drizzle/0000_cute_kulan_gath.sql', 'utf-8') - await db.execute(migration1) - - const res = await db.execute('SELECT count(*)::INTEGER as v FROM generate_series(0, 100) t(v)') - console.log(res) // Output [{ v: 101 }] - - await db.insert(users).values({ id: '00000000-0000-0000-0000-000000000000' }) - const foundUsers = await db.select().from(users) - console.log(foundUsers) // Output [{ id: '00000000-0000-0000-0000-000000000000' }] - - // Remember to close it when you are done - const client = await db.$client - await client.close() -} -``` - -## Footnotes - -Check out [the package](https://github.com/moeru-ai/airi/tree/main/packages/duckdb-wasm/README.md) we made for easier call to `@duckdb/duckdb-wasm` as well! +Hello! This package has been moved to [proj-airi/duckdb-wasm](https://github.com/proj-airi/duckdb-wasm). You may keep tracking the updates of this package there. diff --git a/packages/drizzle-duckdb-wasm/drizzle.config.ts b/packages/drizzle-duckdb-wasm/drizzle.config.ts deleted file mode 100644 index ff63453eb..000000000 --- a/packages/drizzle-duckdb-wasm/drizzle.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'drizzle-kit' - -export default defineConfig({ - dialect: 'postgresql', - schema: './playground/db/schema.ts', - out: './playground/drizzle', -}) diff --git a/packages/drizzle-duckdb-wasm/index.html b/packages/drizzle-duckdb-wasm/index.html deleted file mode 100644 index ce99973e1..000000000 --- a/packages/drizzle-duckdb-wasm/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Project AIRI Memory Driver @duckdb/duckdb-wasm Playground - - - - - - -
- - - - diff --git a/packages/drizzle-duckdb-wasm/netlify.toml b/packages/drizzle-duckdb-wasm/netlify.toml deleted file mode 100755 index 86f71e3c9..000000000 --- a/packages/drizzle-duckdb-wasm/netlify.toml +++ /dev/null @@ -1,13 +0,0 @@ -[build] -base = "/" -command = "pnpm -F @proj-airi/drizzle-duckdb-wasm... run build" -publish = "/packages/drizzle-duckdb-wasm/playground/dist" - -[build.environment] -NODE_VERSION = "23" - -[[redirects]] -from = "/*" -to = "/index.html" -status = 200 -force = false diff --git a/packages/drizzle-duckdb-wasm/package.json b/packages/drizzle-duckdb-wasm/package.json deleted file mode 100644 index 95876ce2c..000000000 --- a/packages/drizzle-duckdb-wasm/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "@proj-airi/drizzle-duckdb-wasm", - "type": "module", - "version": "0.4.19", - "description": "🦆 Drizzle ORM driver for @duckdb/duckdb-wasm that works on both browser and Node.js environments", - "author": { - "name": "Neko Ayaka", - "email": "neko@ayaka.moe", - "url": "https://github.com/nekomeowww" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/moeru-ai/airi.git", - "directory": "packages/drizzle-duckdb-wasm" - }, - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "node": "./dist/index.cjs" - }, - "./bundles/default-browser": { - "types": "./dist/bundles/default-browser.d.ts", - "import": "./dist/bundles/default-browser.mjs" - }, - "./bundles/default-node": { - "types": "./dist/bundles/default-node.d.ts", - "import": "./dist/bundles/default-node.mjs", - "node": "./dist/bundles/default-node.cjs" - }, - "./bundles/import-url-browser": { - "types": "./dist/bundles/import-url-browser.d.ts", - "import": "./dist/bundles/import-url-browser.mjs" - }, - "./bundles/import-url-node": { - "types": "./dist/bundles/import-url-node.d.ts", - "import": "./dist/bundles/import-url-node.mjs", - "node": "./dist/bundles/import-url-node.cjs" - } - }, - "main": "./dist/index.cjs", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", - "files": [ - "README.md", - "dist", - "package.json" - ], - "scripts": { - "dev": "pnpm run stub", - "stub": "unbuild", - "build": "unbuild && pnpm run play:build", - "play:dev": "vite", - "play:build": "vite build", - "play:preview": "vite preview", - "typecheck": "vue-tsc --noEmit", - "db:generate": "drizzle-kit generate", - "test": "vitest", - "test:run": "vitest run" - }, - "peerDependencies": { - "web-worker": "^1.5.0" - }, - "peerDependenciesMeta": { - "web-worker": { - "optional": true - } - }, - "dependencies": { - "@date-fns/tz": "^1.2.0", - "@duckdb/duckdb-wasm": "1.29.1-dev68.0", - "@proj-airi/duckdb-wasm": "workspace:^", - "apache-arrow": "^19.0.1", - "date-fns": "^4.1.0", - "defu": "^6.1.4", - "drizzle-orm": "^0.41.0", - "es-toolkit": "^1.34.1" - }, - "devDependencies": { - "@iconify-json/solar": "^1.2.2", - "@types/d3": "^7.4.3", - "@types/d3-force": "^3.0.10", - "@unocss/reset": "^66.1.0-beta.9", - "@vitejs/plugin-vue": "^5.2.3", - "@vitest/browser": "^3.1.1", - "@vueuse/core": "^13.0.0", - "d3": "^7.9.0", - "d3-force": "^3.0.0", - "drizzle-kit": "^0.30.6", - "playwright": "^1.51.1", - "superjson": "^2.2.2", - "unplugin-vue-router": "^0.12.0", - "vite": "^6.2.5", - "vue": "^3.5.13", - "vue-router": "^4.5.0", - "vue-tsc": "^3.0.0-alpha.2" - } -} diff --git a/packages/drizzle-duckdb-wasm/playground/db/schema.ts b/packages/drizzle-duckdb-wasm/playground/db/schema.ts deleted file mode 100644 index 83b62b667..000000000 --- a/packages/drizzle-duckdb-wasm/playground/db/schema.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { sql } from 'drizzle-orm' -import { - bigint, - // bit, - boolean, - char, - date, - decimal, - doublePrecision, - integer, - interval, - json, - numeric, - pgTable, - real, - smallint, - text, - time, - timestamp, - uuid, - varchar, - vector, -} from 'drizzle-orm/pg-core' - -export const users = pgTable('users', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), - int16: smallint().notNull().default(0), - int32: integer().notNull().default(0), - int64: bigint({ mode: 'number' }).notNull().default(sql`0`), - int64BigInt: bigint({ mode: 'bigint' }).notNull().default(sql`0`), - decimal: decimal().notNull().default(sql`0`), - numeric: numeric().notNull().default(sql`0`), - real: real().notNull().default(sql`0`), - double: doublePrecision().notNull().default(sql`0`), - vector: vector({ dimensions: 4 }).notNull().default(sql`[0,0,0,0]`), - // Unimplemented type for cast (INTEGER[] -> BIT) from @duckdb/duckdb-wasm - // bit: bit({ dimensions: 4 }).notNull().default(sql`[0,0,0,0]`), - bool: boolean().notNull().default(false), - char: char().notNull().default(''), - varchar: varchar().notNull().default(''), - text: text().notNull().default(''), - json: json().notNull().default(sql`'{}'`), - date: date().notNull().default(sql`'2020-01-01'`), - time: time().notNull().default(sql`'00:00:00'`), - timestamp: timestamp().notNull().default(sql`'2020-01-01 00:00:00'`), - interval: interval().notNull().default(sql`'1 day'`), -})) - -export const nodeUsers = pgTable('node_users', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), - name: text().notNull().default(''), -})) - -export const nodePets = pgTable('node_pets', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), - name: text().notNull().default(''), -})) - -export const nodeGroups = pgTable('node_groups', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), - name: text().notNull().default(''), -})) - -export const edgePets = pgTable('edge_pets', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), - source: uuid(), - target: uuid(), -})) - -export const edgeOwners = pgTable('edge_owners', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), - source: uuid(), - target: uuid(), -})) - -export const edgeUsers = pgTable('edge_users', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), - source: uuid(), - target: uuid(), -})) - -export const edgeGroups = pgTable('edge_groups', () => ({ - id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`), - source: uuid(), - target: uuid(), -})) diff --git a/packages/drizzle-duckdb-wasm/playground/drizzle/0000_cute_kulan_gath.sql b/packages/drizzle-duckdb-wasm/playground/drizzle/0000_cute_kulan_gath.sql deleted file mode 100644 index 8bb76295d..000000000 --- a/packages/drizzle-duckdb-wasm/playground/drizzle/0000_cute_kulan_gath.sql +++ /dev/null @@ -1,22 +0,0 @@ -CREATE TABLE "users" ( - "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, - "int16" smallint DEFAULT 0 NOT NULL, - "int32" integer DEFAULT 0 NOT NULL, - "int64" bigint DEFAULT 0 NOT NULL, - "int64BigInt" bigint DEFAULT 0 NOT NULL, - "decimal" numeric DEFAULT 0 NOT NULL, - "numeric" numeric DEFAULT 0 NOT NULL, - "real" real DEFAULT 0 NOT NULL, - "double" double precision DEFAULT 0 NOT NULL, - "vector" FLOAT[4] DEFAULT [0,0,0,0] NOT NULL, - "bool" boolean DEFAULT false NOT NULL, - "char" char DEFAULT '' NOT NULL, - "varchar" varchar DEFAULT '' NOT NULL, - "text" text DEFAULT '' NOT NULL, - "json" json DEFAULT '{}' NOT NULL, - "date" date DEFAULT '2020-01-01' NOT NULL, - "time" time DEFAULT '00:00:00' NOT NULL, - "timestamp" timestamp DEFAULT '2020-01-01 00:00:00' NOT NULL, - "interval" interval DEFAULT '1 day' NOT NULL, - CONSTRAINT "users_id_unique" UNIQUE("id") -); diff --git a/packages/drizzle-duckdb-wasm/playground/drizzle/0001_parched_silver_centurion.sql b/packages/drizzle-duckdb-wasm/playground/drizzle/0001_parched_silver_centurion.sql deleted file mode 100644 index c51677560..000000000 --- a/packages/drizzle-duckdb-wasm/playground/drizzle/0001_parched_silver_centurion.sql +++ /dev/null @@ -1,45 +0,0 @@ -CREATE TABLE "edge_groups" ( - "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, - "source" uuid, - "target" uuid, - CONSTRAINT "edge_groups_id_unique" UNIQUE("id") -); ---> statement-breakpoint -CREATE TABLE "edge_owners" ( - "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, - "source" uuid, - "target" uuid, - CONSTRAINT "edge_owners_id_unique" UNIQUE("id") -); ---> statement-breakpoint -CREATE TABLE "edge_pets" ( - "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, - "source" uuid, - "target" uuid, - CONSTRAINT "edge_pets_id_unique" UNIQUE("id") -); ---> statement-breakpoint -CREATE TABLE "edge_users" ( - "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, - "source" uuid, - "target" uuid, - CONSTRAINT "edge_users_id_unique" UNIQUE("id") -); ---> statement-breakpoint -CREATE TABLE "node_groups" ( - "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, - "name" text DEFAULT '' NOT NULL, - CONSTRAINT "node_groups_id_unique" UNIQUE("id") -); ---> statement-breakpoint -CREATE TABLE "node_pets" ( - "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, - "name" text DEFAULT '' NOT NULL, - CONSTRAINT "node_pets_id_unique" UNIQUE("id") -); ---> statement-breakpoint -CREATE TABLE "node_users" ( - "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, - "name" text DEFAULT '' NOT NULL, - CONSTRAINT "node_users_id_unique" UNIQUE("id") -); diff --git a/packages/drizzle-duckdb-wasm/playground/drizzle/meta/0000_snapshot.json b/packages/drizzle-duckdb-wasm/playground/drizzle/meta/0000_snapshot.json deleted file mode 100644 index a7e192b93..000000000 --- a/packages/drizzle-duckdb-wasm/playground/drizzle/meta/0000_snapshot.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "id": "5305094b-45db-4a61-a74f-340b2b7da250", - "prevId": "00000000-0000-0000-0000-000000000000", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "uuid", - "primaryKey": true, - "notNull": true, - "default": "gen_random_uuid()" - }, - "int16": { - "name": "int16", - "type": "smallint", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "int32": { - "name": "int32", - "type": "integer", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "int64": { - "name": "int64", - "type": "bigint", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "int64BigInt": { - "name": "int64BigInt", - "type": "bigint", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "decimal": { - "name": "decimal", - "type": "numeric", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "numeric": { - "name": "numeric", - "type": "numeric", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "real": { - "name": "real", - "type": "real", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "double": { - "name": "double", - "type": "double precision", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "vector": { - "name": "vector", - "type": "vector(4)", - "primaryKey": false, - "notNull": true, - "default": "[0,0,0,0]" - }, - "bool": { - "name": "bool", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "char": { - "name": "char", - "type": "char", - "primaryKey": false, - "notNull": true, - "default": "''" - }, - "varchar": { - "name": "varchar", - "type": "varchar", - "primaryKey": false, - "notNull": true, - "default": "''" - }, - "text": { - "name": "text", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "''" - }, - "json": { - "name": "json", - "type": "json", - "primaryKey": false, - "notNull": true, - "default": "'{}'" - }, - "date": { - "name": "date", - "type": "date", - "primaryKey": false, - "notNull": true, - "default": "'2020-01-01'" - }, - "time": { - "name": "time", - "type": "time", - "primaryKey": false, - "notNull": true, - "default": "'00:00:00'" - }, - "timestamp": { - "name": "timestamp", - "type": "timestamp", - "primaryKey": false, - "notNull": true, - "default": "'2020-01-01 00:00:00'" - }, - "interval": { - "name": "interval", - "type": "interval", - "primaryKey": false, - "notNull": true, - "default": "'0'" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "users_id_unique": { - "name": "users_id_unique", - "nullsNotDistinct": false, - "columns": [ - "id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, - "views": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/packages/drizzle-duckdb-wasm/playground/drizzle/meta/0001_snapshot.json b/packages/drizzle-duckdb-wasm/playground/drizzle/meta/0001_snapshot.json deleted file mode 100644 index 2bef25cd8..000000000 --- a/packages/drizzle-duckdb-wasm/playground/drizzle/meta/0001_snapshot.json +++ /dev/null @@ -1,438 +0,0 @@ -{ - "id": "f64005fe-f9b9-4673-84cb-a24695abff11", - "prevId": "5305094b-45db-4a61-a74f-340b2b7da250", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.edge_groups": { - "name": "edge_groups", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "uuid", - "primaryKey": true, - "notNull": true, - "default": "gen_random_uuid()" - }, - "source": { - "name": "source", - "type": "uuid", - "primaryKey": false, - "notNull": false - }, - "target": { - "name": "target", - "type": "uuid", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "edge_groups_id_unique": { - "name": "edge_groups_id_unique", - "nullsNotDistinct": false, - "columns": [ - "id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.edge_owners": { - "name": "edge_owners", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "uuid", - "primaryKey": true, - "notNull": true, - "default": "gen_random_uuid()" - }, - "source": { - "name": "source", - "type": "uuid", - "primaryKey": false, - "notNull": false - }, - "target": { - "name": "target", - "type": "uuid", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "edge_owners_id_unique": { - "name": "edge_owners_id_unique", - "nullsNotDistinct": false, - "columns": [ - "id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.edge_pets": { - "name": "edge_pets", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "uuid", - "primaryKey": true, - "notNull": true, - "default": "gen_random_uuid()" - }, - "source": { - "name": "source", - "type": "uuid", - "primaryKey": false, - "notNull": false - }, - "target": { - "name": "target", - "type": "uuid", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "edge_pets_id_unique": { - "name": "edge_pets_id_unique", - "nullsNotDistinct": false, - "columns": [ - "id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.edge_users": { - "name": "edge_users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "uuid", - "primaryKey": true, - "notNull": true, - "default": "gen_random_uuid()" - }, - "source": { - "name": "source", - "type": "uuid", - "primaryKey": false, - "notNull": false - }, - "target": { - "name": "target", - "type": "uuid", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "edge_users_id_unique": { - "name": "edge_users_id_unique", - "nullsNotDistinct": false, - "columns": [ - "id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.node_groups": { - "name": "node_groups", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "uuid", - "primaryKey": true, - "notNull": true, - "default": "gen_random_uuid()" - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "''" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "node_groups_id_unique": { - "name": "node_groups_id_unique", - "nullsNotDistinct": false, - "columns": [ - "id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.node_pets": { - "name": "node_pets", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "uuid", - "primaryKey": true, - "notNull": true, - "default": "gen_random_uuid()" - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "''" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "node_pets_id_unique": { - "name": "node_pets_id_unique", - "nullsNotDistinct": false, - "columns": [ - "id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.node_users": { - "name": "node_users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "uuid", - "primaryKey": true, - "notNull": true, - "default": "gen_random_uuid()" - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "''" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "node_users_id_unique": { - "name": "node_users_id_unique", - "nullsNotDistinct": false, - "columns": [ - "id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "uuid", - "primaryKey": true, - "notNull": true, - "default": "gen_random_uuid()" - }, - "int16": { - "name": "int16", - "type": "smallint", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "int32": { - "name": "int32", - "type": "integer", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "int64": { - "name": "int64", - "type": "bigint", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "int64BigInt": { - "name": "int64BigInt", - "type": "bigint", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "decimal": { - "name": "decimal", - "type": "numeric", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "numeric": { - "name": "numeric", - "type": "numeric", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "real": { - "name": "real", - "type": "real", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "double": { - "name": "double", - "type": "double precision", - "primaryKey": false, - "notNull": true, - "default": "0" - }, - "vector": { - "name": "vector", - "type": "vector(4)", - "primaryKey": false, - "notNull": true, - "default": "[0,0,0,0]" - }, - "bool": { - "name": "bool", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "char": { - "name": "char", - "type": "char", - "primaryKey": false, - "notNull": true, - "default": "''" - }, - "varchar": { - "name": "varchar", - "type": "varchar", - "primaryKey": false, - "notNull": true, - "default": "''" - }, - "text": { - "name": "text", - "type": "text", - "primaryKey": false, - "notNull": true, - "default": "''" - }, - "json": { - "name": "json", - "type": "json", - "primaryKey": false, - "notNull": true, - "default": "'{}'" - }, - "date": { - "name": "date", - "type": "date", - "primaryKey": false, - "notNull": true, - "default": "'2020-01-01'" - }, - "time": { - "name": "time", - "type": "time", - "primaryKey": false, - "notNull": true, - "default": "'00:00:00'" - }, - "timestamp": { - "name": "timestamp", - "type": "timestamp", - "primaryKey": false, - "notNull": true, - "default": "'2020-01-01 00:00:00'" - }, - "interval": { - "name": "interval", - "type": "interval", - "primaryKey": false, - "notNull": true, - "default": "'1 day'" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "users_id_unique": { - "name": "users_id_unique", - "nullsNotDistinct": false, - "columns": [ - "id" - ] - } - }, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, - "views": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/packages/drizzle-duckdb-wasm/playground/drizzle/meta/_journal.json b/packages/drizzle-duckdb-wasm/playground/drizzle/meta/_journal.json deleted file mode 100644 index 3ea947ba7..000000000 --- a/packages/drizzle-duckdb-wasm/playground/drizzle/meta/_journal.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "version": "7", - "dialect": "postgresql", - "entries": [ - { - "idx": 0, - "version": "7", - "when": 1739121102268, - "tag": "0000_cute_kulan_gath", - "breakpoints": true - }, - { - "idx": 1, - "version": "7", - "when": 1740841981623, - "tag": "0001_parched_silver_centurion", - "breakpoints": true - } - ] -} \ No newline at end of file diff --git a/packages/drizzle-duckdb-wasm/playground/public/favicon-96x96.png b/packages/drizzle-duckdb-wasm/playground/public/favicon-96x96.png deleted file mode 100644 index a70eda1af..000000000 Binary files a/packages/drizzle-duckdb-wasm/playground/public/favicon-96x96.png and /dev/null differ diff --git a/packages/drizzle-duckdb-wasm/playground/public/favicon.svg b/packages/drizzle-duckdb-wasm/playground/public/favicon.svg deleted file mode 100644 index 17940af47..000000000 --- a/packages/drizzle-duckdb-wasm/playground/public/favicon.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/packages/drizzle-duckdb-wasm/playground/src/App.vue b/packages/drizzle-duckdb-wasm/playground/src/App.vue deleted file mode 100644 index 410a972ac..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/App.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Checkbox.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Checkbox.vue deleted file mode 100644 index 9b7971946..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Checkbox.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/DecayModelSettings.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/DecayModelSettings.vue deleted file mode 100644 index ddf5d25f7..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/DecayModelSettings.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/DecayTimeSettings.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/DecayTimeSettings.vue deleted file mode 100644 index fe507741a..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/DecayTimeSettings.vue +++ /dev/null @@ -1,226 +0,0 @@ - - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalMemoryChart.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalMemoryChart.vue deleted file mode 100644 index ee07824ec..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalMemoryChart.vue +++ /dev/null @@ -1,607 +0,0 @@ - - - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalMemoryDetail.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalMemoryDetail.vue deleted file mode 100644 index d178c0d02..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalMemoryDetail.vue +++ /dev/null @@ -1,339 +0,0 @@ - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalRecordDetail.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalRecordDetail.vue deleted file mode 100644 index d825cfeb9..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalRecordDetail.vue +++ /dev/null @@ -1,269 +0,0 @@ - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalSettings.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalSettings.vue deleted file mode 100644 index f90bbe231..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/EmotionalSettings.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/MemoryRetrievalHeatmap.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/MemoryRetrievalHeatmap.vue deleted file mode 100644 index 21faf2fad..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/MemoryRetrievalHeatmap.vue +++ /dev/null @@ -1,487 +0,0 @@ - - - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/RecordDetail.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/RecordDetail.vue deleted file mode 100644 index d7e71d37d..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/RecordDetail.vue +++ /dev/null @@ -1,190 +0,0 @@ - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/VisualizeChart.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/VisualizeChart.vue deleted file mode 100644 index 0c3af650a..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/VisualizeChart.vue +++ /dev/null @@ -1,575 +0,0 @@ - - - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/VisualizeTable.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Memory/VisualizeTable.vue deleted file mode 100644 index 4812192bb..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Memory/VisualizeTable.vue +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/components/Range.vue b/packages/drizzle-duckdb-wasm/playground/src/components/Range.vue deleted file mode 100644 index e44c64365..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/components/Range.vue +++ /dev/null @@ -1,328 +0,0 @@ - - - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/composables/memory/memory-decay-db.ts b/packages/drizzle-duckdb-wasm/playground/src/composables/memory/memory-decay-db.ts deleted file mode 100644 index 007792f56..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/composables/memory/memory-decay-db.ts +++ /dev/null @@ -1,262 +0,0 @@ -import { buildDSN } from '../../../../src/dsn' -import { drizzle } from '../../../../src/index' -import * as schema from '../../../db/schema' - -export async function connectToDatabase() { - return drizzle(buildDSN({ - scheme: 'duckdb-wasm:', - bundles: 'import-url', - logger: false, - }), { schema }) -} - -export async function createSchema(db) { - await db.execute(` - CREATE TABLE IF NOT EXISTS memories_decay_test_table ( - id VARCHAR, - score DOUBLE, - updated_at TIMESTAMP, - last_retrieved_at TIMESTAMP, - retrieval_count INTEGER DEFAULT 0 - ) - `) -} - -export async function loadSampleData(db) { - const now = new Date() - const sampleData = [] - - for (let i = 1; i <= 20; i++) { - const daysAgo = Math.random() * 60 - const lastUpdate = new Date(now.getTime() - (daysAgo * 24 * 60 * 60 * 1000)) - const retrievalCount = Math.floor(Math.random() * 10) - let retrievalDaysAgo = retrievalCount > 0 ? Math.random() * daysAgo * (1 - retrievalCount / 15) : daysAgo - retrievalDaysAgo = Math.max(0, retrievalDaysAgo) - const lastRetrievedAt = new Date(now.getTime() - (retrievalDaysAgo * 24 * 60 * 60 * 1000)) - const score = Math.floor(Math.random() * 900) + 100 - - sampleData.push({ - id: `story-${i}`, - score, - updated_at: lastUpdate.toISOString(), - last_retrieved_at: lastRetrievedAt.toISOString(), - retrieval_count: retrievalCount, - }) - } - - for (const item of sampleData) { - await db.execute(` - INSERT INTO memories_decay_test_table (id, score, updated_at, last_retrieved_at, retrieval_count) - VALUES ('${item.id}', ${item.score}, '${item.updated_at}', '${item.last_retrieved_at}', ${item.retrieval_count}) - `) - } -} - -export async function generateDecayQuery(db, { - simulatedTimeOffset, - decayRate, - timeUnitInSeconds, - longTermMemoryEnabled, - longTermMemoryThreshold, - longTermMemoryStability, - retrievalBoost, - retrievalDecaySlowdown, -}) { - const simulatedTimestamp = `(CAST(now() AS TIMESTAMP) + INTERVAL '${simulatedTimeOffset} seconds')` - - const ltmFactorClause = longTermMemoryEnabled - ? ` - CASE - WHEN retrieval_count >= ${longTermMemoryThreshold} - THEN 1.0 - ((${longTermMemoryStability}) ^ (retrieval_count / ${longTermMemoryThreshold})) - ELSE 0 - END AS ltm_factor, - ` - : '' - - const ltmDecayModifier = longTermMemoryEnabled - ? `* (1 - ltm_factor)` - : '' - - const query = ` - SELECT - id, - score, - updated_at, - last_retrieved_at, - retrieval_count, - CAST(updated_at AS VARCHAR) as updated_at_str, - CAST(last_retrieved_at AS VARCHAR) as last_retrieved_str, - (EXTRACT(EPOCH FROM (${simulatedTimestamp} - updated_at))) as age_in_seconds, - (EXTRACT(EPOCH FROM (${simulatedTimestamp} - last_retrieved_at))) as time_since_retrieval, - ${ltmFactorClause} - score * - exp(-${decayRate} * (EXTRACT(EPOCH FROM (${simulatedTimestamp} - updated_at)))/(${timeUnitInSeconds}) ${ltmDecayModifier}) * - (1 + (retrieval_count * ${retrievalBoost} * - exp(-${decayRate * retrievalDecaySlowdown} * - (EXTRACT(EPOCH FROM (${simulatedTimestamp} - last_retrieved_at)))/(${timeUnitInSeconds})))) - as decayed_score - FROM memories_decay_test_table - ORDER BY decayed_score DESC - ` - - return query -} - -export async function simulateRetrieval(db, storyId, simulatedTime) { - const simulatedTimestamp = simulatedTime.toISOString() - - await db.execute(` - UPDATE memories_decay_test_table - SET last_retrieved_at = '${simulatedTimestamp}', - retrieval_count = retrieval_count + 1 - WHERE id = '${storyId}' - `) -} - -export async function generateEmotionalDecayQuery(db, { - simulatedTimeOffset, - decayRate, - timeUnitInSeconds, - longTermMemoryEnabled, - longTermMemoryThreshold, - longTermMemoryStability, - retrievalBoost, - retrievalDecaySlowdown, - joyBoostFactor, - joyDecaySteepness, - aversionSpikeFactor, - aversionStability, - randomRecallProbability, - flashbackIntensity, -}) { - const simulatedTimestamp = `(CAST(now() AS TIMESTAMP) + INTERVAL '${simulatedTimeOffset} seconds')` - - const ltmFactorClause = longTermMemoryEnabled - ? ` - CASE - WHEN retrieval_count >= ${longTermMemoryThreshold} - THEN 1.0 - ((${longTermMemoryStability}) ^ (retrieval_count / ${longTermMemoryThreshold})) - ELSE 0 - END AS ltm_factor, - ` - : '' - - const ltmDecayModifier = longTermMemoryEnabled - ? `* (1 - ltm_factor)` - : '' - - // New emotional memory components - const emotionalComponents = ` - -- Random recall probability (flashback effect) - (CASE WHEN RANDOM() < ${randomRecallProbability} THEN ${flashbackIntensity} ELSE 1 END) * - - -- Joy/euphoria boost with steep decay - (1 + (joy_score * ${joyBoostFactor} * EXP(-${joyDecaySteepness} * - (EXTRACT(EPOCH FROM (${simulatedTimestamp} - last_retrieved_at)))/(${timeUnitInSeconds})))) * - - -- Aversion spike for traumatic memories - (1 + (aversion_score * ${aversionSpikeFactor} * - POWER(${aversionStability}, CEIL((retrieval_count / 5))))) - ` - - const query = ` - SELECT - id, - score, - updated_at, - last_retrieved_at, - retrieval_count, - joy_score, - aversion_score, - CAST(updated_at AS VARCHAR) as updated_at_str, - CAST(last_retrieved_at AS VARCHAR) as last_retrieved_str, - (EXTRACT(EPOCH FROM (${simulatedTimestamp} - updated_at))) as age_in_seconds, - (EXTRACT(EPOCH FROM (${simulatedTimestamp} - last_retrieved_at))) as time_since_retrieval, - ${ltmFactorClause} - score * - exp(-${decayRate} * (EXTRACT(EPOCH FROM (${simulatedTimestamp} - updated_at)))/(${timeUnitInSeconds}) ${ltmDecayModifier}) * - (1 + (retrieval_count * ${retrievalBoost} * - exp(-${decayRate * retrievalDecaySlowdown} * - (EXTRACT(EPOCH FROM (${simulatedTimestamp} - last_retrieved_at)))/(${timeUnitInSeconds})))) * - ${emotionalComponents} as decayed_score - FROM emotional_memories_test_table - ORDER BY decayed_score DESC - ` - - return query -} - -export async function createEmotionalSchema(db) { - await db.execute(` - CREATE TABLE IF NOT EXISTS emotional_memories_test_table ( - id VARCHAR, - score DOUBLE, - updated_at TIMESTAMP, - last_retrieved_at TIMESTAMP, - retrieval_count INTEGER DEFAULT 0, - joy_score DOUBLE DEFAULT 0, - aversion_score DOUBLE DEFAULT 0 - ) - `) -} - -export async function loadEmotionalSampleData(db) { - const now = new Date() - const sampleData = [] - - for (let i = 1; i <= 20; i++) { - const daysAgo = Math.random() * 60 - const lastUpdate = new Date(now.getTime() - (daysAgo * 24 * 60 * 60 * 1000)) - const retrievalCount = Math.floor(Math.random() * 10) - let retrievalDaysAgo = retrievalCount > 0 ? Math.random() * daysAgo * (1 - retrievalCount / 15) : daysAgo - retrievalDaysAgo = Math.max(0, retrievalDaysAgo) - const lastRetrievedAt = new Date(now.getTime() - (retrievalDaysAgo * 24 * 60 * 60 * 1000)) - const score = Math.floor(Math.random() * 900) + 100 - - // Generate emotional scores - const joyScore = Math.random() * (i % 3 === 0 ? 0.8 : 0.3) - const aversionScore = Math.random() * (i % 4 === 0 ? 0.7 : 0.2) - - sampleData.push({ - id: `memory-${i}`, - score, - updated_at: lastUpdate.toISOString(), - last_retrieved_at: lastRetrievedAt.toISOString(), - retrieval_count: retrievalCount, - joy_score: joyScore.toFixed(2), - aversion_score: aversionScore.toFixed(2), - }) - } - - for (const item of sampleData) { - await db.execute(` - INSERT INTO emotional_memories_test_table - (id, score, updated_at, last_retrieved_at, retrieval_count, joy_score, aversion_score) - VALUES - ('${item.id}', ${item.score}, '${item.updated_at}', '${item.last_retrieved_at}', - ${item.retrieval_count}, ${item.joy_score}, ${item.aversion_score}) - `) - } -} - -export async function simulateEmotionalRetrieval(db, memoryId, simulatedTime, { joyModifier = 0, aversionModifier = 0 }) { - const simulatedTimestamp = simulatedTime.toISOString() - - await db.execute(` - UPDATE emotional_memories_test_table - SET last_retrieved_at = '${simulatedTimestamp}', - retrieval_count = retrieval_count + 1, - joy_score = CASE - WHEN joy_score + ${joyModifier} < 0 THEN 0 - WHEN joy_score + ${joyModifier} > 1 THEN 1 - ELSE joy_score + ${joyModifier} - END, - aversion_score = CASE - WHEN aversion_score + ${aversionModifier} < 0 THEN 0 - WHEN aversion_score + ${aversionModifier} > 1 THEN 1 - ELSE aversion_score + ${aversionModifier} - END - WHERE id = '${memoryId}' - `) -} diff --git a/packages/drizzle-duckdb-wasm/playground/src/main.ts b/packages/drizzle-duckdb-wasm/playground/src/main.ts deleted file mode 100644 index 0bc7c48da..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/main.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { createApp } from 'vue' -import { createRouter, createWebHashHistory } from 'vue-router' -import { routes } from 'vue-router/auto-routes' - -import App from './App.vue' -import '@unocss/reset/tailwind.css' -import 'uno.css' -import './styles/themes.css' - -const router = createRouter({ routes, history: createWebHashHistory() }) - -createApp(App) - .use(router) - .mount('#app') diff --git a/packages/drizzle-duckdb-wasm/playground/src/pages/graph.vue b/packages/drizzle-duckdb-wasm/playground/src/pages/graph.vue deleted file mode 100644 index 36c2501be..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/pages/graph.vue +++ /dev/null @@ -1,859 +0,0 @@ - - - - - diff --git a/packages/drizzle-duckdb-wasm/playground/src/pages/index.vue b/packages/drizzle-duckdb-wasm/playground/src/pages/index.vue deleted file mode 100644 index f8fae74fe..000000000 --- a/packages/drizzle-duckdb-wasm/playground/src/pages/index.vue +++ /dev/null @@ -1,267 +0,0 @@ - - -