@wenathlan/cobaia 2.0.155 → 2.0.158

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/App.tsx CHANGED
@@ -7,8 +7,8 @@
7
7
  * directly and every page is public; the intro (/intro) is the one bare
8
8
  * presentation page the family grammar gives every app, mounted full-bleed
9
9
  * under the family fullscreen law. The root manages the theme as a single
10
- * file: it imports only the theme anchor (Sol/Sol.tsx — the file named
11
- * after the theme folder, beside Sol/sol.css), the theme stylesheet and the
10
+ * file: it imports only the theme anchor (sol/Sol.tsx — the file named
11
+ * after the theme folder, beside sol/sol.css), the theme stylesheet and the
12
12
  * root logics, wraps the anchor in the wouter router (the subpath the pages
13
13
  * deploy owns answers through the declared base, the same mount grammar
14
14
  * every sibling carries) and renders the theme into the root element —
@@ -18,10 +18,10 @@
18
18
  */
19
19
  import { createRoot } from "react-dom/client";
20
20
  import { Router as WouterRouter } from "wouter";
21
- import Sol from "./Sol/Sol";
21
+ import Sol from "./sol/Sol";
22
22
  import "@fontsource-variable/geist-mono";
23
23
  import "@fontsource-variable/inter";
24
- import "./Sol/sol.css";
24
+ import "./sol/sol.css";
25
25
  import { seedLabels } from "./labels";
26
26
 
27
27
  // the copy law rides the boot: the seed refreshes the label store rows from
package/Dockerfile CHANGED
@@ -14,8 +14,11 @@ ARG COBAIA_VERSION=2.0.134
14
14
 
15
15
  WORKDIR /src
16
16
  COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
17
+ COPY pnpmboot.package.json /tmp/pnpmboot/package.json
18
+ COPY pnpmboot.package-lock.json /tmp/pnpmboot/package-lock.json
17
19
  RUN apk add --no-cache python3 make g++ \
18
- && npm install -g --no-fund --no-audit pnpm@12.3.4 \
20
+ && npm ci --prefix /tmp/pnpmboot --no-fund --no-audit \
21
+ && ln -sf /tmp/pnpmboot/node_modules/.bin/pnpm /usr/local/bin/pnpm \
19
22
  && pnpm install --frozen-lockfile
20
23
  COPY . .
21
24
  RUN pnpm build
package/biome.jsonc CHANGED
@@ -23,9 +23,9 @@
23
23
  "!**/docs",
24
24
  "!**/tests/tmp",
25
25
  "!**/tests/code",
26
- "!**/Sol/dist",
27
- "!**/Sol/.vite",
28
- "!**/Sol/node_modules",
26
+ "!**/sol/dist",
27
+ "!**/sol/.vite",
28
+ "!**/sol/node_modules",
29
29
  "!**/coverage",
30
30
  "!**/android",
31
31
  "!**/releasecheck",
package/bun.lock CHANGED
@@ -15,18 +15,18 @@
15
15
  "@libsql/client": "^0.18.0",
16
16
  "@prisma/adapter-libsql": "^7.10.1",
17
17
  "@prisma/client": "^7.10.1",
18
- "@wenathlan/cadria": "^2.0.154",
19
- "@wenathlan/debonair": "^2.0.154",
20
- "@wenathlan/devthink": "^2.0.154",
21
- "@wenathlan/getry": "^2.0.154",
22
- "@wenathlan/saddle": "^2.0.154",
23
- "@wenathlan/vault": "^2.0.154",
18
+ "@wenathlan/cadria": "~2.0.155",
19
+ "@wenathlan/debonair": "~2.0.155",
20
+ "@wenathlan/devthink": "~2.0.154",
21
+ "@wenathlan/getry": "~2.0.155",
22
+ "@wenathlan/saddle": "~2.0.155",
23
+ "@wenathlan/vault": "~2.0.155",
24
24
  "better-sqlite3": "^13.0.3",
25
25
  "drizzle-orm": "^0.45.4",
26
26
  "gsap": "^3.15.0",
27
27
  "hono": "^4.13.16",
28
28
  "ink": "^7.1.1",
29
- "lucide-react": "^1.67.0",
29
+ "lucide-react": "^1.68.0",
30
30
  "motion": "^12.43.0",
31
31
  "react": "^19.3.1",
32
32
  "react-devtools-core": "^8.0.0",
@@ -36,7 +36,7 @@
36
36
  "z-ai-web-dev-sdk": "^0.0.18",
37
37
  },
38
38
  "devDependencies": {
39
- "@biomejs/biome": "^2.6.4",
39
+ "@biomejs/biome": "^2.6.5",
40
40
  "@capacitor/android": "^8.6.0",
41
41
  "@capacitor/cli": "^8.6.0",
42
42
  "@capacitor/core": "^8.6.0",
@@ -105,7 +105,7 @@
105
105
  "hono": "^4.13.16",
106
106
  "input-otp": "^1.5.0",
107
107
  "jsdom": "26.1.0",
108
- "lucide-react": "^1.67.0",
108
+ "lucide-react": "^1.68.0",
109
109
  "mysql2": "^3.24.6",
110
110
  "nanoid": "^6.0.2",
111
111
  "next-themes": "^0.4.6",
@@ -172,27 +172,27 @@
172
172
 
173
173
  "@balena/dockerignore": ["@balena/dockerignore@1.0.2", "", {}, "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q=="],
174
174
 
175
- "@biomejs/biome": ["@biomejs/biome@2.6.4", "", { "optionalDependencies": { "@biomejs/cli-android-arm64": "2.6.4", "@biomejs/cli-android-x64": "2.6.4", "@biomejs/cli-darwin-arm64": "2.6.4", "@biomejs/cli-darwin-x64": "2.6.4", "@biomejs/cli-linux-arm64": "2.6.4", "@biomejs/cli-linux-arm64-musl": "2.6.4", "@biomejs/cli-linux-x64": "2.6.4", "@biomejs/cli-linux-x64-musl": "2.6.4", "@biomejs/cli-win32-arm64": "2.6.4", "@biomejs/cli-win32-x64": "2.6.4" }, "bin": { "biome": "bin/biome" } }, "sha512-8sKKwaNW4ot22awZ3lBjwWLHnUFXgXnrBPYS2gNlBAXRbDC++7kqjK2H7dR/FgCDtPvO1xfKpgEhJkGxAKYkxA=="],
175
+ "@biomejs/biome": ["@biomejs/biome@2.6.5", "", { "optionalDependencies": { "@biomejs/cli-android-arm64": "2.6.5", "@biomejs/cli-android-x64": "2.6.5", "@biomejs/cli-darwin-arm64": "2.6.5", "@biomejs/cli-darwin-x64": "2.6.5", "@biomejs/cli-linux-arm64": "2.6.5", "@biomejs/cli-linux-arm64-musl": "2.6.5", "@biomejs/cli-linux-x64": "2.6.5", "@biomejs/cli-linux-x64-musl": "2.6.5", "@biomejs/cli-win32-arm64": "2.6.5", "@biomejs/cli-win32-x64": "2.6.5" }, "bin": { "biome": "bin/biome" } }, "sha512-n0sp74QbSVEkWXlH659TKv4oJNylwAvDeZ8K8vt/PbcF1xneuNWe57z/G0Bxfh00cufhWXF6DiStLM8+jcLUpg=="],
176
176
 
177
- "@biomejs/cli-android-arm64": ["@biomejs/cli-android-arm64@2.6.4", "", { "os": "android", "cpu": "arm64" }, "sha512-jwrwigP4tBcHxzuV8izioX/BOUhJL/4e2rNSOE5nCjBkVC018LQAQUGiH+CNkFYvLtQ1dcZo5/xXERmaAGc7JQ=="],
177
+ "@biomejs/cli-android-arm64": ["@biomejs/cli-android-arm64@2.6.5", "", { "os": "android", "cpu": "arm64" }, "sha512-fkLzc1WRU7wRIUNmAm7cxILb4dd6eESz/VycWvVFKVn6tXx0gFQKdUbPnwT42xys8AEvIJQpFGcK00kURwqorg=="],
178
178
 
179
- "@biomejs/cli-android-x64": ["@biomejs/cli-android-x64@2.6.4", "", { "os": "android", "cpu": "x64" }, "sha512-HdGInPJ4nZFwHxzvEtcp2nmSBtUyJrurmtIK43upFckuS3+ZqVM05HtsxQWnqGsuy/pxckIAjyKWlEKRlBXUyA=="],
179
+ "@biomejs/cli-android-x64": ["@biomejs/cli-android-x64@2.6.5", "", { "os": "android", "cpu": "x64" }, "sha512-fkZ9dPnDAzAcaPtPCiwqtkub5C9FQK/oGCGaU9sq+DysTaq13pE9FxBIMcEZ3ydn8/FfcMdXi/DDzKDP+qyn2Q=="],
180
180
 
181
- "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.6.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-0VvcUz46wbg59Q4TZ59KkIjDJrxEyu4Eoe79+F4SChxoWe+W7AEyIp6F5r72C9+p6MsB6dIovnZt1D30lGM3XA=="],
181
+ "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.6.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bKd0EOREgnVjeZm4s9knQ+WdPOkWS3JHB+eWGHlx+Pq66bqQA1/KybwU0O+zuyAyXiphSCBcrLruZt3YtnJoaQ=="],
182
182
 
183
- "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.6.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-fxmvkF81srlS3DiMyfm+aG3J0eG+6/BjaxRyjy57KbLSafnq0PO+hHfVWmtH2ty0S7nm6yDXBRwySfFeaRJKRQ=="],
183
+ "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.6.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-UkT9BECNOXSiW6SGddjyaRACy362Sc9n3vDaTFkccL0bC2gW7JzM16i4+JKPbEaDn1Sa+oETHV8KungnI/y40Q=="],
184
184
 
185
- "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.6.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-6+bK1Y/evmIUiJr7auertuMbiaYVicJhqA1bZyL47lCMWugv8l0gFQCqvR/gN1vZMHYm+HwoTKgeMxdNFCoQTg=="],
185
+ "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.6.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-H9cVMWBqW/lkFK9NHJdt0bpM2q7PacUDEjQoff9+m0dCV09H/jmBykfTCkbDthHf8+jCuWDJWiQFJ7bDkiGOcA=="],
186
186
 
187
- "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.6.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-31ZaH/MHqPX+O+evRwRrCHQ8W5/9adY+/eMytGGWZnRx1T41QsWIF09+/WujynLBhWZUxNGS5CtsWLwgOFTAyg=="],
187
+ "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.6.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-kfc3AePW1a0/d/gUpcIz95nf3Ce8YY2/xL0Fk3fLqAhKsotqUi6PN6BaVWss4p6ijWbiuacZ9NQ4NiQtpjbYpw=="],
188
188
 
189
- "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.6.4", "", { "os": "linux", "cpu": "x64" }, "sha512-tbFZMdL6dP/ws4edXxYG9WhvaVa1ZDzL4G5DzahnWW7Psib9H+VTdyU4XXVxpJk5j/nYZroSbvSNyYlpW3yCIw=="],
189
+ "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.6.5", "", { "os": "linux", "cpu": "x64" }, "sha512-e6/WMSN/+FhH+ZOoBevps/euxFQmv6BXqYNuTn1+ITR6O4XYFjHF5PeVSNZnjkgSYmvhcDkfepSX5lXczMijGA=="],
190
190
 
191
- "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.6.4", "", { "os": "linux", "cpu": "x64" }, "sha512-bomSa2XdQAGGj6Cwdm4M13qE+lN9+AOlW8KtI4hdyVyRRF/Z71qPAi95T4wtdZK0QpBbkTW8hgbZZCwPi4xzIw=="],
191
+ "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.6.5", "", { "os": "linux", "cpu": "x64" }, "sha512-0mHVpLNt7/FugfZ2VPugUIEIiooWIyHGGJUqU9StxamBln9hz+maXRFIECU50jaf5/ZB93veGIViN5VKgw2AEA=="],
192
192
 
193
- "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.6.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-eCsqt8Ma3eVap+oyJCDnJZH60SIU464B66n3y38EUTJdM1T/HfZol1FJC9vb+sHToX0ix8XzqPcwJnOzyAJz0g=="],
193
+ "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.6.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-uBbfpdR/cH5up1iRJFGAPP97xKMzrgMs685CSrY7NM+Q4Unw7chY0o3JulEvJdmU6c6hGQxwqotMq7DDH0DzxA=="],
194
194
 
195
- "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.6.4", "", { "os": "win32", "cpu": "x64" }, "sha512-pYsMy5AThiHFOZAsngg8qN4PurM6nInKBhVX7sbj3eNpRQqo1Hb0MgCwPL7VqVMrmcEEMj9Ks3qbkallR65e8g=="],
195
+ "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.6.5", "", { "os": "win32", "cpu": "x64" }, "sha512-07LaCeN9vvmbAAMOMsUjMfL5UbsCDkvVeyMJIgwNRc0xYqhizBGkjVzx05LYEwCXl2AiHcdzqVPR4IOYAsI1QQ=="],
196
196
 
197
197
  "@capacitor/android": ["@capacitor/android@8.6.0", "", { "peerDependencies": { "@capacitor/core": "^8.6.0" } }, "sha512-6IJS0TCfV/F/8+324CCwYd3xL6r+TH0W7zzaxYzPz9IV3YWCNvsZDuCCPHUIBC5iASb9od827ddSJ6rz+9Pu1Q=="],
198
198
 
@@ -892,17 +892,19 @@
892
892
 
893
893
  "@webpack-cli/serve": ["@webpack-cli/serve@3.0.1", "", { "peerDependencies": { "webpack": "^5.82.0", "webpack-cli": "6.x.x", "webpack-dev-server": "*" }, "optionalPeers": ["webpack-dev-server"] }, "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg=="],
894
894
 
895
- "@wenathlan/cadria": ["@wenathlan/cadria@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Sq3bKTmnr1RA8xdWerKET5txfhTeG3V0ALqKskuDjgM+pKthkzNvmj4Ql0h30Vul4lGYu/q1NlCUZccjkbZnog=="],
895
+ "@wenathlan/argan": ["@wenathlan/argan@2.0.155", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.0.154", "@wenathlan/debonair": "^2.0.154", "@wenathlan/devthink": "^2.0.154", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.0.154", "@wenathlan/vault": "^2.0.154", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-1eoYqAGTA+cnQjnmMsNQsUbnscx/wE+ug1fwVhKQenLnff6Vu/cfHgXPZMZPbBVuGci98+BQUBfYi909AouysQ=="],
896
896
 
897
- "@wenathlan/debonair": ["@wenathlan/debonair@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-o35lj5DbxAwhwyuSqb1egCKbvZplDt6LTT6COtBmfdzxH7nO9R0pFGrkCtmK8twgAJ7FMzpEY5pycvigH82EEA=="],
897
+ "@wenathlan/cadria": ["@wenathlan/cadria@2.0.155", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.0.154", "@wenathlan/debonair": "^2.0.154", "@wenathlan/devthink": "^2.0.154", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.0.154", "@wenathlan/vault": "^2.0.154", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-PMXtM+uj6O71HfkIbYpE5zGltnoJ9WFgXuspLRyv4Lsu8OUz0MoOlubWy7p8WVQk5BjJxkuvSdmPbhRVmE4NmQ=="],
898
898
 
899
- "@wenathlan/devthink": ["@wenathlan/devthink@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.6", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "bin": { "devthink": "cli.js" } }, "sha512-t01qEfkLWdPxdQLaw9nT7MaQjHyeQqpZKc2GmmViDbsm2+fDdY4xB+fWj9pvHqL34o0JRbGOeDqpIL40dP5JqA=="],
899
+ "@wenathlan/debonair": ["@wenathlan/debonair@2.0.155", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.0.154", "@wenathlan/debonair": "^2.0.154", "@wenathlan/devthink": "^2.0.154", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.0.154", "@wenathlan/vault": "^2.0.154", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-8mXNDdSYyaPXSe+19BDRCWTTlZP8v2s9A14qVuSBreCwTJVJu+0/1HRrGvz2gPeuHObMMH1Nuapk3s19kTp73g=="],
900
900
 
901
- "@wenathlan/getry": ["@wenathlan/getry@2.0.154", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/saddle": "^2.1.6", "@wenathlan/vault": "^2.0.153", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.66.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-edkDRzjFfACVCJT8jDiQp4Tsh6yG3EOHa0WNQETwBBvT2m6fGcxRvZj64mcIjWmAnHvcF2WqYI+NDcUscCIERQ=="],
901
+ "@wenathlan/devthink": ["@wenathlan/devthink@2.0.154", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/getry": "^2.0.152", "@wenathlan/saddle": "^2.1.6", "@wenathlan/vault": "^2.0.153", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.66.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "bin": { "devthink": "cli.js" } }, "sha512-5BgkAqMfeGvGPIqc1fIKrehbdL3rpOTDNVHghADTeMTmSK/1/DC/ppjw4iimZ8DlwGdvsp6PgP3njuTO/xJCPQ=="],
902
902
 
903
- "@wenathlan/saddle": ["@wenathlan/saddle@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "optionalDependencies": { "commander": "^15.0.0", "dockerode": "^5.0.1", "express": "^5.3.0" }, "peerDependencies": { "playwright": "^1.63.0" }, "optionalPeers": ["playwright"], "bin": { "saddle": "cli.ts" } }, "sha512-8E0eHNXgtjhxXbm5WO8iB/llufdZhitX44vUwjqgAbjU6MHjpMFB1uHa1Zpy1raSIK6t6ITsArY7V4/BuqaBBQ=="],
903
+ "@wenathlan/getry": ["@wenathlan/getry@2.0.155", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.0.154", "@wenathlan/debonair": "^2.0.154", "@wenathlan/devthink": "^2.0.154", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.0.154", "@wenathlan/vault": "^2.0.154", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Vx66FaMCWP9FvkemqXIa0lkRA/NCJwtVxIK1fBybujGJUCY92wBaK63QauJM7Jzv/L9zXy2aedpuTjJSS1jydg=="],
904
904
 
905
- "@wenathlan/vault": ["@wenathlan/vault@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-V1ueG/nhdRF5hDuqwZGkN4es9Qiz7na0ymfGQine/NEQBG4h3TZUYJrZ1oxAgCA2/A8XtUh3lPA8juNio5waOA=="],
905
+ "@wenathlan/saddle": ["@wenathlan/saddle@2.0.155", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.0.154", "@wenathlan/debonair": "^2.0.154", "@wenathlan/devthink": "^2.0.154", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.0.154", "@wenathlan/vault": "^2.0.154", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "optionalDependencies": { "commander": "^15.0.0", "dockerode": "^5.0.1", "express": "^5.3.0" }, "peerDependencies": { "playwright": "^1.63.0" }, "optionalPeers": ["playwright"], "bin": { "saddle": "cli.ts" } }, "sha512-FvgqZh89DOASfAF1F/26aGhCbWMrzfvhkJrAvoT5UHGV7hjHm/Y3K/R6HToNCd4YgjN1oOGMW6WliX+0cPn4wA=="],
906
+
907
+ "@wenathlan/vault": ["@wenathlan/vault@2.0.155", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/argan": "^2.0.154", "@wenathlan/cadria": "^2.0.154", "@wenathlan/debonair": "^2.0.154", "@wenathlan/devthink": "^2.0.154", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.0.154", "@wenathlan/vault": "^2.0.154", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Hb0Hw/aHRXfGOLssnO3NdNVyv2Pf4FNy/vTxDBb6cCO2vqlXxU5iK+mVU7k7y0Msg6lTpMwSW62MmJ3bCsUb8A=="],
906
908
 
907
909
  "@xmldom/xmldom": ["@xmldom/xmldom@0.9.12", "", {}, "sha512-5AXjrcMClTryPe9LgZrygpB1lj7s0S9E0+W+AHaVKAVyHanafK86iPSvG5xHVSp/jC+VH1UXu0TAEmY279xH7A=="],
908
910
 
@@ -1492,7 +1494,7 @@
1492
1494
 
1493
1495
  "lru.min": ["lru.min@1.1.5", "", {}, "sha512-5J9ysMYUpYIg9RF2vJpy9SinEmSviFSe0GyPpCQ4L5QSkLAgeLXlTAOu2ZwWUU5m+0SBl6gUU1R1ZQB3aKypfA=="],
1494
1496
 
1495
- "lucide-react": ["lucide-react@1.67.0", "", { "peerDependencies": { "@types/react": "*", "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-z7kd21YNm/Gw3E7mTnq5dTuvV+yc+OEwA//oDENSG1SbZ/NVgKdjxALJFNdGoC0Ji7HaJR2Dha9ev7VUPxy9CQ=="],
1497
+ "lucide-react": ["lucide-react@1.68.0", "", { "peerDependencies": { "@types/react": "*", "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-9i7NKWm2QlOprMhcwkhBOlIt9zB7cp2GIyFY+oMue0EsprolUFxva5rkdBbyfs4k1eejpa0JRnRgVOGiart+Xg=="],
1496
1498
 
1497
1499
  "magic-string": ["magic-string@1.4.3", "", { "dependencies": { "@jridgewell/sourcemap-codec": "1.6.0" } }, "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ=="],
1498
1500
 
@@ -2186,10 +2188,66 @@
2186
2188
 
2187
2189
  "@visx/vendor/d3-array": ["d3-array@3.2.1", "", { "dependencies": { "internmap": "2.0.3" } }, "sha512-gUY/qeHq/yNqqoCKNq4vtpFLdoCdvyNpWoC/KNjhGbhDuQpAM9sIQQKkXSNpXa9h5KySs/gzm7R88WkUutgwWQ=="],
2188
2190
 
2191
+ "@wenathlan/argan/@hono/node-server": ["@hono/node-server@2.1.6", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-p/KH9MnfNcsm3sR6x4lNgm5j+QN4Et8srKredl9DZfXiyZ1UQ3aQ2YVpFLbqktYN5JI+DB+VZFKM2PqE5hLKjQ=="],
2192
+
2193
+ "@wenathlan/argan/@wenathlan/cadria": ["@wenathlan/cadria@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Sq3bKTmnr1RA8xdWerKET5txfhTeG3V0ALqKskuDjgM+pKthkzNvmj4Ql0h30Vul4lGYu/q1NlCUZccjkbZnog=="],
2194
+
2195
+ "@wenathlan/argan/@wenathlan/debonair": ["@wenathlan/debonair@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-o35lj5DbxAwhwyuSqb1egCKbvZplDt6LTT6COtBmfdzxH7nO9R0pFGrkCtmK8twgAJ7FMzpEY5pycvigH82EEA=="],
2196
+
2197
+ "@wenathlan/argan/@wenathlan/saddle": ["@wenathlan/saddle@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "optionalDependencies": { "commander": "^15.0.0", "dockerode": "^5.0.1", "express": "^5.3.0" }, "peerDependencies": { "playwright": "^1.63.0" }, "optionalPeers": ["playwright"], "bin": { "saddle": "cli.ts" } }, "sha512-8E0eHNXgtjhxXbm5WO8iB/llufdZhitX44vUwjqgAbjU6MHjpMFB1uHa1Zpy1raSIK6t6ITsArY7V4/BuqaBBQ=="],
2198
+
2199
+ "@wenathlan/argan/@wenathlan/vault": ["@wenathlan/vault@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-V1ueG/nhdRF5hDuqwZGkN4es9Qiz7na0ymfGQine/NEQBG4h3TZUYJrZ1oxAgCA2/A8XtUh3lPA8juNio5waOA=="],
2200
+
2201
+ "@wenathlan/cadria/@hono/node-server": ["@hono/node-server@2.1.6", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-p/KH9MnfNcsm3sR6x4lNgm5j+QN4Et8srKredl9DZfXiyZ1UQ3aQ2YVpFLbqktYN5JI+DB+VZFKM2PqE5hLKjQ=="],
2202
+
2203
+ "@wenathlan/cadria/@wenathlan/cadria": ["@wenathlan/cadria@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Sq3bKTmnr1RA8xdWerKET5txfhTeG3V0ALqKskuDjgM+pKthkzNvmj4Ql0h30Vul4lGYu/q1NlCUZccjkbZnog=="],
2204
+
2205
+ "@wenathlan/cadria/@wenathlan/debonair": ["@wenathlan/debonair@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-o35lj5DbxAwhwyuSqb1egCKbvZplDt6LTT6COtBmfdzxH7nO9R0pFGrkCtmK8twgAJ7FMzpEY5pycvigH82EEA=="],
2206
+
2207
+ "@wenathlan/cadria/@wenathlan/saddle": ["@wenathlan/saddle@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "optionalDependencies": { "commander": "^15.0.0", "dockerode": "^5.0.1", "express": "^5.3.0" }, "peerDependencies": { "playwright": "^1.63.0" }, "optionalPeers": ["playwright"], "bin": { "saddle": "cli.ts" } }, "sha512-8E0eHNXgtjhxXbm5WO8iB/llufdZhitX44vUwjqgAbjU6MHjpMFB1uHa1Zpy1raSIK6t6ITsArY7V4/BuqaBBQ=="],
2208
+
2209
+ "@wenathlan/cadria/@wenathlan/vault": ["@wenathlan/vault@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-V1ueG/nhdRF5hDuqwZGkN4es9Qiz7na0ymfGQine/NEQBG4h3TZUYJrZ1oxAgCA2/A8XtUh3lPA8juNio5waOA=="],
2210
+
2211
+ "@wenathlan/debonair/@hono/node-server": ["@hono/node-server@2.1.6", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-p/KH9MnfNcsm3sR6x4lNgm5j+QN4Et8srKredl9DZfXiyZ1UQ3aQ2YVpFLbqktYN5JI+DB+VZFKM2PqE5hLKjQ=="],
2212
+
2213
+ "@wenathlan/debonair/@wenathlan/cadria": ["@wenathlan/cadria@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Sq3bKTmnr1RA8xdWerKET5txfhTeG3V0ALqKskuDjgM+pKthkzNvmj4Ql0h30Vul4lGYu/q1NlCUZccjkbZnog=="],
2214
+
2215
+ "@wenathlan/debonair/@wenathlan/debonair": ["@wenathlan/debonair@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-o35lj5DbxAwhwyuSqb1egCKbvZplDt6LTT6COtBmfdzxH7nO9R0pFGrkCtmK8twgAJ7FMzpEY5pycvigH82EEA=="],
2216
+
2217
+ "@wenathlan/debonair/@wenathlan/saddle": ["@wenathlan/saddle@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "optionalDependencies": { "commander": "^15.0.0", "dockerode": "^5.0.1", "express": "^5.3.0" }, "peerDependencies": { "playwright": "^1.63.0" }, "optionalPeers": ["playwright"], "bin": { "saddle": "cli.ts" } }, "sha512-8E0eHNXgtjhxXbm5WO8iB/llufdZhitX44vUwjqgAbjU6MHjpMFB1uHa1Zpy1raSIK6t6ITsArY7V4/BuqaBBQ=="],
2218
+
2219
+ "@wenathlan/debonair/@wenathlan/vault": ["@wenathlan/vault@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-V1ueG/nhdRF5hDuqwZGkN4es9Qiz7na0ymfGQine/NEQBG4h3TZUYJrZ1oxAgCA2/A8XtUh3lPA8juNio5waOA=="],
2220
+
2189
2221
  "@wenathlan/devthink/@hono/node-server": ["@hono/node-server@2.1.6", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-p/KH9MnfNcsm3sR6x4lNgm5j+QN4Et8srKredl9DZfXiyZ1UQ3aQ2YVpFLbqktYN5JI+DB+VZFKM2PqE5hLKjQ=="],
2190
2222
 
2223
+ "@wenathlan/devthink/@wenathlan/saddle": ["@wenathlan/saddle@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "optionalDependencies": { "commander": "^15.0.0", "dockerode": "^5.0.1", "express": "^5.3.0" }, "peerDependencies": { "playwright": "^1.63.0" }, "optionalPeers": ["playwright"], "bin": { "saddle": "cli.ts" } }, "sha512-8E0eHNXgtjhxXbm5WO8iB/llufdZhitX44vUwjqgAbjU6MHjpMFB1uHa1Zpy1raSIK6t6ITsArY7V4/BuqaBBQ=="],
2224
+
2225
+ "@wenathlan/devthink/@wenathlan/vault": ["@wenathlan/vault@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-V1ueG/nhdRF5hDuqwZGkN4es9Qiz7na0ymfGQine/NEQBG4h3TZUYJrZ1oxAgCA2/A8XtUh3lPA8juNio5waOA=="],
2226
+
2227
+ "@wenathlan/getry/@hono/node-server": ["@hono/node-server@2.1.6", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-p/KH9MnfNcsm3sR6x4lNgm5j+QN4Et8srKredl9DZfXiyZ1UQ3aQ2YVpFLbqktYN5JI+DB+VZFKM2PqE5hLKjQ=="],
2228
+
2229
+ "@wenathlan/saddle/@hono/node-server": ["@hono/node-server@2.1.6", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-p/KH9MnfNcsm3sR6x4lNgm5j+QN4Et8srKredl9DZfXiyZ1UQ3aQ2YVpFLbqktYN5JI+DB+VZFKM2PqE5hLKjQ=="],
2230
+
2231
+ "@wenathlan/saddle/@wenathlan/cadria": ["@wenathlan/cadria@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Sq3bKTmnr1RA8xdWerKET5txfhTeG3V0ALqKskuDjgM+pKthkzNvmj4Ql0h30Vul4lGYu/q1NlCUZccjkbZnog=="],
2232
+
2233
+ "@wenathlan/saddle/@wenathlan/debonair": ["@wenathlan/debonair@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-o35lj5DbxAwhwyuSqb1egCKbvZplDt6LTT6COtBmfdzxH7nO9R0pFGrkCtmK8twgAJ7FMzpEY5pycvigH82EEA=="],
2234
+
2235
+ "@wenathlan/saddle/@wenathlan/saddle": ["@wenathlan/saddle@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "optionalDependencies": { "commander": "^15.0.0", "dockerode": "^5.0.1", "express": "^5.3.0" }, "peerDependencies": { "playwright": "^1.63.0" }, "optionalPeers": ["playwright"], "bin": { "saddle": "cli.ts" } }, "sha512-8E0eHNXgtjhxXbm5WO8iB/llufdZhitX44vUwjqgAbjU6MHjpMFB1uHa1Zpy1raSIK6t6ITsArY7V4/BuqaBBQ=="],
2236
+
2237
+ "@wenathlan/saddle/@wenathlan/vault": ["@wenathlan/vault@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-V1ueG/nhdRF5hDuqwZGkN4es9Qiz7na0ymfGQine/NEQBG4h3TZUYJrZ1oxAgCA2/A8XtUh3lPA8juNio5waOA=="],
2238
+
2191
2239
  "@wenathlan/saddle/commander": ["commander@15.0.0", "", {}, "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="],
2192
2240
 
2241
+ "@wenathlan/vault/@hono/node-server": ["@hono/node-server@2.1.6", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-p/KH9MnfNcsm3sR6x4lNgm5j+QN4Et8srKredl9DZfXiyZ1UQ3aQ2YVpFLbqktYN5JI+DB+VZFKM2PqE5hLKjQ=="],
2242
+
2243
+ "@wenathlan/vault/@wenathlan/cadria": ["@wenathlan/cadria@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Sq3bKTmnr1RA8xdWerKET5txfhTeG3V0ALqKskuDjgM+pKthkzNvmj4Ql0h30Vul4lGYu/q1NlCUZccjkbZnog=="],
2244
+
2245
+ "@wenathlan/vault/@wenathlan/debonair": ["@wenathlan/debonair@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-o35lj5DbxAwhwyuSqb1egCKbvZplDt6LTT6COtBmfdzxH7nO9R0pFGrkCtmK8twgAJ7FMzpEY5pycvigH82EEA=="],
2246
+
2247
+ "@wenathlan/vault/@wenathlan/saddle": ["@wenathlan/saddle@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" }, "optionalDependencies": { "commander": "^15.0.0", "dockerode": "^5.0.1", "express": "^5.3.0" }, "peerDependencies": { "playwright": "^1.63.0" }, "optionalPeers": ["playwright"], "bin": { "saddle": "cli.ts" } }, "sha512-8E0eHNXgtjhxXbm5WO8iB/llufdZhitX44vUwjqgAbjU6MHjpMFB1uHa1Zpy1raSIK6t6ITsArY7V4/BuqaBBQ=="],
2248
+
2249
+ "@wenathlan/vault/@wenathlan/vault": ["@wenathlan/vault@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-V1ueG/nhdRF5hDuqwZGkN4es9Qiz7na0ymfGQine/NEQBG4h3TZUYJrZ1oxAgCA2/A8XtUh3lPA8juNio5waOA=="],
2250
+
2193
2251
  "c12/chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "5.1.1" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="],
2194
2252
 
2195
2253
  "cliui/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
@@ -2284,6 +2342,68 @@
2284
2342
 
2285
2343
  "@prisma/studio-core/@radix-ui/react-toggle/@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.2", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.3.0" }, "peerDependencies": { "react": "19.3.0" } }, "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg=="],
2286
2344
 
2345
+ "@wenathlan/argan/@wenathlan/cadria/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2346
+
2347
+ "@wenathlan/argan/@wenathlan/debonair/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2348
+
2349
+ "@wenathlan/argan/@wenathlan/saddle/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2350
+
2351
+ "@wenathlan/argan/@wenathlan/saddle/commander": ["commander@15.0.0", "", {}, "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="],
2352
+
2353
+ "@wenathlan/argan/@wenathlan/vault/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2354
+
2355
+ "@wenathlan/cadria/@wenathlan/cadria/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2356
+
2357
+ "@wenathlan/cadria/@wenathlan/debonair/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2358
+
2359
+ "@wenathlan/cadria/@wenathlan/saddle/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2360
+
2361
+ "@wenathlan/cadria/@wenathlan/saddle/commander": ["commander@15.0.0", "", {}, "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="],
2362
+
2363
+ "@wenathlan/cadria/@wenathlan/vault/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2364
+
2365
+ "@wenathlan/debonair/@wenathlan/cadria/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2366
+
2367
+ "@wenathlan/debonair/@wenathlan/debonair/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2368
+
2369
+ "@wenathlan/debonair/@wenathlan/saddle/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2370
+
2371
+ "@wenathlan/debonair/@wenathlan/saddle/commander": ["commander@15.0.0", "", {}, "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="],
2372
+
2373
+ "@wenathlan/debonair/@wenathlan/vault/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2374
+
2375
+ "@wenathlan/devthink/@wenathlan/saddle/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2376
+
2377
+ "@wenathlan/devthink/@wenathlan/saddle/@wenathlan/cadria": ["@wenathlan/cadria@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Sq3bKTmnr1RA8xdWerKET5txfhTeG3V0ALqKskuDjgM+pKthkzNvmj4Ql0h30Vul4lGYu/q1NlCUZccjkbZnog=="],
2378
+
2379
+ "@wenathlan/devthink/@wenathlan/saddle/@wenathlan/debonair": ["@wenathlan/debonair@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-o35lj5DbxAwhwyuSqb1egCKbvZplDt6LTT6COtBmfdzxH7nO9R0pFGrkCtmK8twgAJ7FMzpEY5pycvigH82EEA=="],
2380
+
2381
+ "@wenathlan/devthink/@wenathlan/saddle/commander": ["commander@15.0.0", "", {}, "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="],
2382
+
2383
+ "@wenathlan/devthink/@wenathlan/vault/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2384
+
2385
+ "@wenathlan/devthink/@wenathlan/vault/@wenathlan/cadria": ["@wenathlan/cadria@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-Sq3bKTmnr1RA8xdWerKET5txfhTeG3V0ALqKskuDjgM+pKthkzNvmj4Ql0h30Vul4lGYu/q1NlCUZccjkbZnog=="],
2386
+
2387
+ "@wenathlan/devthink/@wenathlan/vault/@wenathlan/debonair": ["@wenathlan/debonair@2.1.8", "", { "dependencies": { "@fluentui/react-icons": "^2.0.345", "@fontsource-variable/bricolage-grotesque": "^5.3.0", "@fontsource-variable/geist-mono": "^5.3.0", "@fontsource-variable/inter": "^5.3.0", "@fontsource-variable/jetbrains-mono": "^5.3.0", "@fontsource-variable/outfit": "^5.3.0", "@hono/node-server": "^2.1.5", "@libsql/client": "^0.18.0", "@prisma/adapter-libsql": "^7.10.1", "@prisma/client": "^7.10.1", "@wenathlan/cadria": "^2.1.7", "@wenathlan/debonair": "^2.1.7", "@wenathlan/getry": "^2.0.154", "@wenathlan/saddle": "^2.1.7", "@wenathlan/vault": "^2.1.7", "better-sqlite3": "^13.0.3", "drizzle-orm": "^0.45.4", "gsap": "^3.15.0", "hono": "^4.13.16", "ink": "^7.1.1", "lucide-react": "^1.67.0", "motion": "^12.43.0", "react": "^19.3.1", "react-devtools-core": "^8.0.0", "react-dom": "^19.3.1", "three": "^0.187.0", "wouter": "^3.13.0", "z-ai-web-dev-sdk": "^0.0.18" } }, "sha512-o35lj5DbxAwhwyuSqb1egCKbvZplDt6LTT6COtBmfdzxH7nO9R0pFGrkCtmK8twgAJ7FMzpEY5pycvigH82EEA=="],
2388
+
2389
+ "@wenathlan/saddle/@wenathlan/cadria/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2390
+
2391
+ "@wenathlan/saddle/@wenathlan/debonair/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2392
+
2393
+ "@wenathlan/saddle/@wenathlan/saddle/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2394
+
2395
+ "@wenathlan/saddle/@wenathlan/vault/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2396
+
2397
+ "@wenathlan/vault/@wenathlan/cadria/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2398
+
2399
+ "@wenathlan/vault/@wenathlan/debonair/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2400
+
2401
+ "@wenathlan/vault/@wenathlan/saddle/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2402
+
2403
+ "@wenathlan/vault/@wenathlan/saddle/commander": ["commander@15.0.0", "", {}, "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="],
2404
+
2405
+ "@wenathlan/vault/@wenathlan/vault/@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
2406
+
2287
2407
  "c12/chokidar/readdirp": ["readdirp@5.1.1", "", {}, "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA=="],
2288
2408
 
2289
2409
  "cliui/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
package/cli.ts ADDED
@@ -0,0 +1,114 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @file cli.ts — the cobaia binary seat of the clibin wave (PR13 — CLI
4
+ * binário mesmo design): the same Windows 11 chat console as the web and
5
+ * desktop surfaces, rendered inside the terminal as a subapp — the only
6
+ * difference is responsiveness / DPI (the 28px top rule becomes one line
7
+ * and the accent falls back to the ANSI 256 palette).
8
+ * @module cobaia/cli
9
+ * @family wave/clibin
10
+ * @law same design as web / desktop, difference only responsiveness / DPI
11
+ * @seat 2026 · rung 2.0.157 · hierarchical JSDoc, tokens/flags, no hardcoded
12
+ * data — the version is read from package.json at runtime and the engine
13
+ * one-liner is quoted from the app docs.
14
+ * @runtime node strips the types; the shebang hands the file to the runtime
15
+ * (the saddle law).
16
+ * @deps zero — node builtins only (readline/promises, process, fs/promises).
17
+ */
18
+
19
+ import { createInterface } from "node:readline/promises";
20
+ import { argv, exit, stdin, stdout } from "node:process";
21
+ import { readFile } from "node:fs/promises";
22
+
23
+ /* ════════════════════════════════════════════════════════════════════ */
24
+ /* Section 1: the chrome tokens — the windows 11 palette folded to the DPI of the terminal (the accent #a3d7e6 lands on ansi 117, the focus #4cc2ff on 75, the hover red rgb(232,17,35) on 203; the 28px top rule becomes one line). */
25
+ /* ════════════════════════════════════════════════════════════════════ */
26
+
27
+ /** the chat accent of the prompt and the titlebar name. */
28
+ const ACCENT = "\x1b[38;5;117m" as const; // #a3d7e6
29
+ /** the focus ink of the active top rule. */
30
+ const FOCUS = "\x1b[38;5;75m" as const; // #4cc2ff
31
+ /** the hover red of the unknown-command rows. */
32
+ const HOVER = "\x1b[38;5;203m" as const; // rgb(232, 17, 35)
33
+ /** the dim ink of the description rows (the minimal text law). */
34
+ const INK = "\x1b[2m" as const;
35
+ /** the reset token that closes every colored run. */
36
+ const RESET = "\x1b[0m" as const;
37
+ /** the single glyph of the rules and the rails. */
38
+ const BAR = "─" as const;
39
+
40
+ /** the app name of this binary seat — the titlebar text. */
41
+ const APP = "cobaia" as const;
42
+ /** the engine ownership one-liner, quoted from the app docs. */
43
+ const ENGINE =
44
+ "owns no engine file — the content site is the monetization surface: static plans, support rails and honest ad slots, no backend no tracking (docs/features.md)" as const;
45
+
46
+ /** the titlebar bar: the app name on the left rail, the window controls on the right — the windows 11 chrome inside the terminal. */
47
+ function titlebar(): string {
48
+ return `${ACCENT}┌ ${APP} ─ cli${RESET} ${INK}${BAR.repeat(24)} ─ ❐ ✕${RESET}`;
49
+ }
50
+
51
+ /** the top rule: the 28px divider of the web surface folded to one terminal line. */
52
+ function toprule(): string {
53
+ return `${FOCUS}${BAR.repeat(3)} ${APP} ${BAR.repeat(3)}${RESET}`;
54
+ }
55
+
56
+ /* ════════════════════════════════════════════════════════════════════ */
57
+ /* Section 2: the runtime reads — no hardcoded data; the version comes from package.json at runtime. */
58
+ /* ════════════════════════════════════════════════════════════════════ */
59
+
60
+ /** reads the version of this seat from the sibling package.json — never a literal. */
61
+ async function readversion(): Promise<string> {
62
+ try {
63
+ const manifest = JSON.parse(await readFile(new URL("./package.json", import.meta.url), "utf8")) as { version?: string };
64
+ return manifest.version ?? "0.0.0";
65
+ } catch {
66
+ return "0.0.0";
67
+ }
68
+ }
69
+
70
+ /* ════════════════════════════════════════════════════════════════════ */
71
+ /* Section 3: the chat console — the REPL with the ❯ prompt, the command dispatch and the same chat look as the web surface. */
72
+ /* ════════════════════════════════════════════════════════════════════ */
73
+
74
+ /** the command help of the console — minimal text law: title + description only. */
75
+ function help(): string[] {
76
+ return [
77
+ `${INK}commands${RESET}`,
78
+ ` help ${INK}this list${RESET}`,
79
+ ` version ${INK}the package version, read from package.json at runtime${RESET}`,
80
+ ` engine ${INK}the engine ownership one-liner of the app${RESET}`,
81
+ ` exit ${INK}close the console${RESET}`,
82
+ ];
83
+ }
84
+
85
+ /** runs the chat console: the titlebar, the top rule, the ❯ prompt and the dispatch (help, version, engine, exit); an eof on stdin closes the console the same way exit does. */
86
+ export async function main(): Promise<void> {
87
+ /* the version read happens before the interface exists, so a piped stdin never races the readline open (node buffers the pipe until the reader resumes it). */
88
+ const version = await readversion();
89
+ const rl = createInterface({ input: stdin, output: stdout });
90
+ let eof = false;
91
+ rl.on("close", () => { eof = true; });
92
+ console.log(titlebar());
93
+ console.log(toprule());
94
+ console.log(`${ACCENT}${APP}${RESET} ${INK}v${version}${RESET}`);
95
+ console.log(`${INK}the ${APP} console — same design as web / desktop, only the DPI differs. type help.${RESET}`);
96
+ rl.setPrompt(`${ACCENT}❯${RESET} `);
97
+ rl.prompt();
98
+ for await (const raw of rl) {
99
+ const line = raw.trim();
100
+ const command = line.length > 0 ? line.split(/\s+/)[0]!.toLowerCase() : "";
101
+ if (command === "exit") rl.close();
102
+ else if (command === "help") for (const row of help()) console.log(row);
103
+ else if (command === "version") console.log(`${ACCENT}${APP}${RESET} ${version}`);
104
+ else if (command === "engine") console.log(`${INK}${ENGINE}${RESET}`);
105
+ else if (command.length > 0) console.log(`${HOVER}✕${RESET} ${INK}unknown command: ${command} — type help${RESET}`);
106
+ if (command === "exit") break;
107
+ /* the prompt is cosmetic chrome: a piped stdin that already reached eof skips it, the buffered lines still answer. */
108
+ if (!eof) rl.prompt();
109
+ }
110
+ console.log(`${INK}${APP} console closed.${RESET}`);
111
+ }
112
+
113
+ /* the autorun guard (the saddle law): only a direct `node cli.ts` (or a bun run) boots the console here — an import stays quiet. */
114
+ if (import.meta.url === `file://${argv[1]}`) main().catch((error) => { console.error(error); exit(1); });