@wenathlan/argan 2.0.165 → 2.0.166

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/docs/argan.md ADDED
@@ -0,0 +1,32 @@
1
+ # argan — the dossier
2
+
3
+ The network and DNS gateway library of the family. Argan owns every network logic: zones, records, dnssec, handshake, resolvers.
4
+
5
+ ## Identity
6
+
7
+ - Category: network library / DNS gateway.
8
+ - Competitor space: Cloudflare DNS, AWS Route 53.
9
+ - Consumer law: the family imports argan as a library; no sibling repeats a network logic argan owns.
10
+
11
+ ## Objective
12
+
13
+ Give the family one honest network engine: every DNS query, every record walk and every gateway handshake resolves through argan — never duplicated inside another app.
14
+
15
+ ## Features
16
+
17
+ - DNS zone management: create, walk and validate zones and records.
18
+ - DNSSEC signing chain and validation seats.
19
+ - Gateway handshake logic for the provider family.
20
+ - Clean URL normalization and network seam helpers.
21
+ - DNS-over-HTTPS wire composition (RFC 8484) consumed by the family via library import.
22
+ - Resolver catalog and network policy seats.
23
+
24
+ ## Interactions
25
+
26
+ - Library surface consumed by devthink, getry and vault (the network seam).
27
+ - CLI console with the family chat design (same face, terminal seat).
28
+
29
+ ## Doctrine
30
+
31
+ - One engine, one owner: network logic lives here alone.
32
+ - English professional surface, minimalist text, title and description only.
@@ -6,7 +6,7 @@ The eleven distribution lanes of the PR14 law and the honest status each lane an
6
6
  | --- | --- | --- | --- |
7
7
  | npmjs | package.json — @wenathlan/argan | live | the family-npmjs lane publishes the envelope every release rung |
8
8
  | GitHub Packages npm | package.json — @wenathlan/argan | live | the family-githubnpm lane publishes the same envelope idempotently |
9
- | Maven | pom.xml — io.github.wenathlan:argan | live | the family-maven lane deploys the jar |
9
+ | Maven | pom.xml — com.wenathlan:argan | live | the family-maven lane deploys the jar |
10
10
  | NuGet | argan.csproj | live | the family-nuget lane packs the envelope |
11
11
  | Gradle | build.gradle.kts — com.wenathlan:argan | live | the family-gradle lane publishes the module |
12
12
  | Ruby Gems | argan.gemspec | live | the family-rubygems lane pushes the gem |
package/package.json CHANGED
@@ -1,74 +1,8 @@
1
1
  {
2
2
  "name": "@wenathlan/argan",
3
- "version": "2.0.165",
3
+ "version": "2.0.166",
4
+ "private": false,
4
5
  "description": "argan is the DNS and gateway library of the wenathlan family: zones, records, dnssec and handshake — the system network library whose site shares the unified database. The envelope distributes the documentation set, the zero-build site and the tests directory as one package.",
5
- "keywords": [
6
- "argan",
7
- "dns",
8
- "gateway",
9
- "zones",
10
- "dnssec",
11
- "network",
12
- "documentation",
13
- "static-site"
14
- ],
15
- "homepage": "https://github.com/wenathlan/devthink/tree/main/argan",
16
- "bugs": {
17
- "url": "https://github.com/wenathlan/devthink/issues"
18
- },
19
- "repository": {
20
- "type": "git",
21
- "url": "https://github.com/wenathlan/devthink"
22
- },
23
- "license": "GPL-3.0-only",
24
- "type": "module",
25
- "bin": {
26
- "argan": "./cli.ts"
27
- },
28
- "exports": {
29
- "./mimetypes": {
30
- "types": "./mimetypes.ts",
31
- "import": "./mimetypes.ts",
32
- "default": "./mimetypes.ts"
33
- }
34
- },
35
- "files": [
36
- "README.md",
37
- "docs",
38
- "tests",
39
- "cli.ts",
40
- "mimetypes.ts"
41
- ],
42
- "engines": {
43
- "babel": "^7.28.0",
44
- "bare": "^1.18.0",
45
- "bun": "^1.4.4",
46
- "cargo": ">=1.85.0",
47
- "chrome": "^16.0.912",
48
- "cnpm": "^9.4.0",
49
- "corepack": "^0.35.0",
50
- "deno": "^2.9.5",
51
- "dotnet": ">=8.0.0",
52
- "ecmascript": "^5.0.0",
53
- "firefox": ">=0.8.0",
54
- "go": ">=1.24.0",
55
- "iojs": "^1.0.0",
56
- "java": ">=17",
57
- "node": ">=26.13.0 <27",
58
- "npm": "^12.2.1",
59
- "pnpm": "^12.6.0",
60
- "python": ">=3.11.0",
61
- "rust": ">=1.85.0",
62
- "teleport": ">=0.2.0",
63
- "typescript": "^5.8.0",
64
- "v": "^0.5.2",
65
- "vscode": "^1.118.0",
66
- "yaml": "^2.9.1",
67
- "yarn": "^4.17.1"
68
- },
69
- "peerDependencies": {
70
- "playwright": "^1.63.0"
71
- },
72
6
  "scripts": {
73
7
  "dev": "vite --host",
74
8
  "build": "vite build",
@@ -80,45 +14,208 @@
80
14
  "restore:entry": "node -e \"const{readFileSync}=require('node:fs');const{execSync}=require('node:child_process');const script=/script[^>]*App\\.tsx/;const triad=/family=Inter[\\s\\S]*Geist\\+Mono/;const face=(h)=>script.test(h)&&triad.test(h);if(face(readFileSync('index.html','utf8'))){console.log('index.html already rides the source face');process.exit(0)}if(!face(execSync('git show HEAD:./index.html',{encoding:'utf8'}))){console.error('refusing: HEAD index.html is not the canonical source face yet (script App.tsx + the font triad) - land the source-face fix first; nothing was touched');process.exit(1)}execSync('git checkout -- index.html',{stdio:'inherit'});console.log('index.html restored from HEAD (the source face)')\""
81
15
  },
82
16
  "dependencies": {
17
+ "@ai-sdk/openai": "^4.0.109",
18
+ "@ai-sdk/openai-compatible": "^3.0.85",
19
+ "@ai-sdk/provider-utils": "^5.0.75",
20
+ "@anthropic-ai/sdk": "^1.6.0",
21
+ "@biomejs/biome": "^2.6.5",
22
+ "@capacitor/android": "^8.6.0",
23
+ "@capacitor/cli": "^8.6.0",
24
+ "@capacitor/core": "^8.6.0",
25
+ "@capacitor/ios": "^8.6.0",
26
+ "@dnd-kit/core": "^6.3.1",
27
+ "@dnd-kit/sortable": "^10.0.0",
28
+ "@dnd-kit/utilities": "^3.2.2",
83
29
  "@fluentui/react-icons": "^2.0.345",
84
30
  "@fontsource-variable/bricolage-grotesque": "^5.3.0",
85
31
  "@fontsource-variable/geist-mono": "^5.3.0",
86
32
  "@fontsource-variable/inter": "^5.3.0",
87
33
  "@fontsource-variable/jetbrains-mono": "^5.3.0",
88
34
  "@fontsource-variable/outfit": "^5.3.0",
35
+ "@fontsource-variable/urbanist": "^5.3.0",
36
+ "@grpc/grpc-js": "^1.14.7",
89
37
  "@hono/node-server": "^2.1.6",
38
+ "@hookform/resolvers": "^7.0.3",
39
+ "@humanfs/node": "^0.17.0",
90
40
  "@libsql/client": "^0.18.0",
41
+ "@mdxeditor/editor": "^4.5.0",
42
+ "@opencode-ai/sdk": "^1.19.5",
91
43
  "@prisma/adapter-libsql": "^7.10.1",
92
44
  "@prisma/client": "^7.10.1",
93
- "@wenathlan/argan": "~2.0.155",
94
- "@wenathlan/cadria": "~2.0.155",
95
- "@wenathlan/debonair": "~2.0.155",
96
- "@wenathlan/devthink": "~2.0.154",
97
- "@wenathlan/getry": "~2.0.155",
98
- "@wenathlan/saddle": "~2.0.155",
99
- "@wenathlan/vault": "~2.0.155",
45
+ "@radix-ui/react-accordion": "^1.3.1",
46
+ "@radix-ui/react-alert-dialog": "^1.2.1",
47
+ "@radix-ui/react-aspect-ratio": "^1.2.0",
48
+ "@radix-ui/react-avatar": "^1.3.1",
49
+ "@radix-ui/react-checkbox": "^1.4.1",
50
+ "@radix-ui/react-collapsible": "^1.2.1",
51
+ "@radix-ui/react-context-menu": "^2.4.1",
52
+ "@radix-ui/react-dialog": "^1.3.1",
53
+ "@radix-ui/react-dropdown-menu": "^2.2.1",
54
+ "@radix-ui/react-hover-card": "^1.2.1",
55
+ "@radix-ui/react-label": "^2.1.17",
56
+ "@radix-ui/react-menubar": "^1.2.1",
57
+ "@radix-ui/react-navigation-menu": "^1.4.1",
58
+ "@radix-ui/react-popover": "^1.3.1",
59
+ "@radix-ui/react-progress": "^1.2.1",
60
+ "@radix-ui/react-radio-group": "^1.5.1",
61
+ "@radix-ui/react-scroll-area": "^1.4.0",
62
+ "@radix-ui/react-select": "^2.4.1",
63
+ "@radix-ui/react-separator": "^1.2.0",
64
+ "@radix-ui/react-slider": "^1.6.1",
65
+ "@radix-ui/react-slot": "^1.5.0",
66
+ "@radix-ui/react-switch": "^1.4.1",
67
+ "@radix-ui/react-tabs": "^1.2.1",
68
+ "@radix-ui/react-toast": "^1.3.1",
69
+ "@radix-ui/react-toggle": "^1.2.1",
70
+ "@radix-ui/react-toggle-group": "^1.2.1",
71
+ "@radix-ui/react-tooltip": "^1.4.1",
72
+ "@reactuses/core": "^6.6.1",
73
+ "@tailwindcss/postcss": "^4.3.4",
74
+ "@tailwindcss/typography": "^0.5.20",
75
+ "@tailwindcss/vite": "^4.3.4",
76
+ "@tanstack/react-query": "^5.106.1",
77
+ "@tanstack/react-table": "^9.3.1",
78
+ "@tsconfig/node26": "^26.0.1",
79
+ "@types/babel__core": "^7.20.5",
80
+ "@types/better-sqlite3": "^9.6.0",
81
+ "@types/chrome": "^0.3.7",
82
+ "@types/express": "^5.0.6",
83
+ "@types/google.maps": "^3.66.9",
84
+ "@types/node": "^26.6.6",
85
+ "@types/react": "^19.3.0",
86
+ "@types/react-dom": "^19.3.0",
87
+ "@types/three": "^0.187.0",
88
+ "@vitejs/plugin-react": "^6.2.1",
89
+ "@wenathlan/argan": "~2.0.165",
90
+ "@wenathlan/cadria": "~2.0.165",
91
+ "@wenathlan/debonair": "~2.0.165",
92
+ "@wenathlan/devthink": "~2.0.165",
93
+ "@wenathlan/getry": "~2.0.165",
94
+ "@wenathlan/saddle": "~2.0.165",
95
+ "@wenathlan/vault": "~2.0.165",
96
+ "add": "^2.0.9",
97
+ "ai": "^7.0.163",
98
+ "autoprefixer": "^10.6.2",
99
+ "axios": "^1.21.0",
100
+ "baseline-browser-mapping": "^2.11.35",
100
101
  "better-sqlite3": "^13.0.3",
102
+ "body-parser": "^2.4.0",
103
+ "bun-types": "^1.4.4",
104
+ "cheerio": "^1.2.0",
105
+ "class-variance-authority": "^0.7.1",
106
+ "clsx": "^2.1.1",
107
+ "cmdk": "^1.1.1",
108
+ "commander": "^15.0.0",
109
+ "date-fns": "^4.4.0",
110
+ "deepmerge-ts": "^8.0.2",
111
+ "dockerode": "^5.0.1",
112
+ "drizzle-kit": "^0.31.11",
101
113
  "drizzle-orm": "^0.45.4",
114
+ "embla-carousel-react": "^8.6.0",
115
+ "emittery": "^2.2.0",
116
+ "esbuild": "^0.28.2",
117
+ "eslint": "^10.14.0",
118
+ "eslint-config-next": "^16.4.5",
119
+ "express": "^5.3.0",
120
+ "fast-check": "^4.10.2",
121
+ "fast-uri": "^4.2.3",
122
+ "follow-redirects": "^1.16.2",
123
+ "framer-motion": "^14.9.1",
124
+ "glob": "^14.0.4",
102
125
  "gsap": "^3.15.1",
103
126
  "hono": "^4.13.16",
104
- "ink": "^7.1.1",
105
- "lucide-react": "^1.68.0",
106
- "motion": "^12.43.0",
127
+ "ink": "^8.0.0",
128
+ "input-otp": "^1.5.0",
129
+ "js-yaml": "^5.5.0",
130
+ "jsdom": "^31.0.0",
131
+ "katex": "^0.19.1",
132
+ "lucide-react": "^1.69.0",
133
+ "minimatch": "^11.0.5",
134
+ "motion": "^14.9.1",
135
+ "mysql2": "^3.24.6",
136
+ "nanoid": "^6.0.2",
137
+ "next": "^16.4.5",
138
+ "next-auth": "^4.24.15",
139
+ "next-intl": "^4.14.9",
140
+ "next-themes": "^0.4.6",
141
+ "openai": "^7.52.0",
142
+ "p-limit": "^7.3.3",
143
+ "p-retry": "^9.0.0",
144
+ "playwright": "^1.65.0",
145
+ "pnpm": "^12.18.0",
146
+ "postcss": "^8.5.32",
147
+ "postcss-selector-parser": "^7.1.7",
148
+ "prettier": "^3.9.10",
149
+ "prisma": "^7.10.1",
150
+ "proxy-addr": "^2.0.8",
107
151
  "react": "^19.3.1",
152
+ "react-day-picker": "^10.0.2",
108
153
  "react-devtools-core": "^8.0.0",
109
154
  "react-dom": "^19.3.1",
155
+ "react-hook-form": "^7.91.0",
156
+ "react-markdown": "^10.1.0",
157
+ "react-resizable-panels": "^4.18.1",
158
+ "react-syntax-highlighter": "^16.1.2",
159
+ "recharts": "^3.10.1",
160
+ "request-ip": "^3.3.0",
161
+ "sharp": "^0.35.5",
162
+ "shell-quote": "^1.12.0",
163
+ "smol-toml": "^1.9.1",
164
+ "sonner": "^2.0.8",
165
+ "source-map-js": "^1.2.2",
166
+ "streamdown": "^2.7.1",
167
+ "tailwind-merge": "^3.7.0",
168
+ "tailwindcss": "^4.3.4",
169
+ "tailwindcss-animate": "^1.0.7",
110
170
  "three": "^0.187.0",
171
+ "ts-node": "^10.9.2",
172
+ "tsup": "^9.0.0",
173
+ "tsx": "^4.23.15",
174
+ "tw-animate-css": "^1.4.0",
175
+ "typescript": "^7.0.2",
176
+ "undici": "^8.12.4",
177
+ "uuid": "^14.0.3",
178
+ "vaul": "^1.1.2",
179
+ "vite": "^8.3.6",
180
+ "vite-plugin-manus-runtime": "^0.0.59",
181
+ "vitest": "^5.1.0",
182
+ "webpack": "^5.112.2",
183
+ "webpack-cli": "^7.3.1",
111
184
  "wouter": "^3.13.0",
112
- "z-ai-web-dev-sdk": "^0.0.18"
185
+ "yaml": "^2.9.1",
186
+ "z-ai-web-dev-sdk": "^0.0.18",
187
+ "zod": "^4.6.7",
188
+ "zustand": "^5.0.15"
113
189
  },
114
190
  "devDependencies": {
191
+ "@ai-sdk/openai": "^4.0.109",
192
+ "@ai-sdk/openai-compatible": "^3.0.85",
193
+ "@ai-sdk/provider-utils": "^5.0.75",
194
+ "@anthropic-ai/sdk": "^1.6.0",
115
195
  "@biomejs/biome": "^2.6.5",
116
196
  "@capacitor/android": "^8.6.0",
117
197
  "@capacitor/cli": "^8.6.0",
118
198
  "@capacitor/core": "^8.6.0",
119
199
  "@capacitor/ios": "^8.6.0",
120
- "@hookform/resolvers": "^5.9.2",
200
+ "@dnd-kit/core": "^6.3.1",
201
+ "@dnd-kit/sortable": "^10.0.0",
202
+ "@dnd-kit/utilities": "^3.2.2",
203
+ "@fluentui/react-icons": "^2.0.345",
204
+ "@fontsource-variable/bricolage-grotesque": "^5.3.0",
205
+ "@fontsource-variable/geist-mono": "^5.3.0",
206
+ "@fontsource-variable/inter": "^5.3.0",
207
+ "@fontsource-variable/jetbrains-mono": "^5.3.0",
208
+ "@fontsource-variable/outfit": "^5.3.0",
209
+ "@fontsource-variable/urbanist": "^5.3.0",
210
+ "@grpc/grpc-js": "^1.14.7",
211
+ "@hono/node-server": "^2.1.6",
212
+ "@hookform/resolvers": "^7.0.3",
213
+ "@humanfs/node": "^0.17.0",
214
+ "@libsql/client": "^0.18.0",
215
+ "@mdxeditor/editor": "^4.5.0",
121
216
  "@opencode-ai/sdk": "^1.19.5",
217
+ "@prisma/adapter-libsql": "^7.10.1",
218
+ "@prisma/client": "^7.10.1",
122
219
  "@radix-ui/react-accordion": "^1.3.1",
123
220
  "@radix-ui/react-alert-dialog": "^1.2.1",
124
221
  "@radix-ui/react-aspect-ratio": "^1.2.0",
@@ -142,13 +239,18 @@
142
239
  "@radix-ui/react-slot": "^1.5.0",
143
240
  "@radix-ui/react-switch": "^1.4.1",
144
241
  "@radix-ui/react-tabs": "^1.2.1",
242
+ "@radix-ui/react-toast": "^1.3.1",
145
243
  "@radix-ui/react-toggle": "^1.2.1",
146
244
  "@radix-ui/react-toggle-group": "^1.2.1",
147
245
  "@radix-ui/react-tooltip": "^1.4.1",
246
+ "@reactuses/core": "^6.6.1",
148
247
  "@tailwindcss/postcss": "^4.3.4",
149
248
  "@tailwindcss/typography": "^0.5.20",
150
249
  "@tailwindcss/vite": "^4.3.4",
250
+ "@tanstack/react-query": "^5.106.1",
251
+ "@tanstack/react-table": "^9.3.1",
151
252
  "@tsconfig/node26": "^26.0.1",
253
+ "@types/babel__core": "^7.20.5",
152
254
  "@types/better-sqlite3": "^9.6.0",
153
255
  "@types/chrome": "^0.3.7",
154
256
  "@types/express": "^5.0.6",
@@ -158,80 +260,307 @@
158
260
  "@types/react-dom": "^19.3.0",
159
261
  "@types/three": "^0.187.0",
160
262
  "@vitejs/plugin-react": "^6.2.1",
263
+ "@wenathlan/argan": "~2.0.165",
264
+ "@wenathlan/cadria": "~2.0.165",
265
+ "@wenathlan/debonair": "~2.0.165",
266
+ "@wenathlan/devthink": "~2.0.165",
267
+ "@wenathlan/getry": "~2.0.165",
268
+ "@wenathlan/saddle": "~2.0.165",
269
+ "@wenathlan/vault": "~2.0.165",
161
270
  "add": "^2.0.9",
271
+ "ai": "^7.0.163",
162
272
  "autoprefixer": "^10.6.2",
163
273
  "axios": "^1.21.0",
274
+ "baseline-browser-mapping": "^2.11.35",
275
+ "better-sqlite3": "^13.0.3",
276
+ "body-parser": "^2.4.0",
164
277
  "bun-types": "^1.4.4",
165
278
  "cheerio": "^1.2.0",
166
279
  "class-variance-authority": "^0.7.1",
167
280
  "clsx": "^2.1.1",
168
281
  "cmdk": "^1.1.1",
282
+ "commander": "^15.0.0",
283
+ "date-fns": "^4.4.0",
284
+ "deepmerge-ts": "^8.0.2",
285
+ "dockerode": "^5.0.1",
169
286
  "drizzle-kit": "^0.31.11",
287
+ "drizzle-orm": "^0.45.4",
170
288
  "embla-carousel-react": "^8.6.0",
171
289
  "emittery": "^2.2.0",
172
290
  "esbuild": "^0.28.2",
291
+ "eslint": "^10.14.0",
292
+ "eslint-config-next": "^16.4.5",
173
293
  "express": "^5.3.0",
174
294
  "fast-check": "^4.10.2",
175
- "framer-motion": "^13.5.1",
295
+ "fast-uri": "^4.2.3",
296
+ "follow-redirects": "^1.16.2",
297
+ "framer-motion": "^14.9.1",
298
+ "glob": "^14.0.4",
299
+ "gsap": "^3.15.1",
300
+ "hono": "^4.13.16",
301
+ "ink": "^8.0.0",
176
302
  "input-otp": "^1.5.0",
177
- "jsdom": "26.1.0",
303
+ "js-yaml": "^5.5.0",
304
+ "jsdom": "^31.0.0",
305
+ "katex": "^0.19.1",
306
+ "lucide-react": "^1.69.0",
307
+ "minimatch": "^11.0.5",
308
+ "motion": "^14.9.1",
178
309
  "mysql2": "^3.24.6",
179
310
  "nanoid": "^6.0.2",
311
+ "next": "^16.4.5",
312
+ "next-auth": "^4.24.15",
313
+ "next-intl": "^4.14.9",
180
314
  "next-themes": "^0.4.6",
315
+ "openai": "^7.52.0",
181
316
  "p-limit": "^7.3.3",
182
- "p-retry": "^8.0.1",
183
- "playwright": "^1.64.1",
184
- "pnpm": "^12.16.1",
317
+ "p-retry": "^9.0.0",
318
+ "playwright": "^1.65.0",
319
+ "pnpm": "^12.18.0",
185
320
  "postcss": "^8.5.32",
321
+ "postcss-selector-parser": "^7.1.7",
186
322
  "prettier": "^3.9.10",
187
323
  "prisma": "^7.10.1",
324
+ "proxy-addr": "^2.0.8",
325
+ "react": "^19.3.1",
188
326
  "react-day-picker": "^10.0.2",
327
+ "react-devtools-core": "^8.0.0",
328
+ "react-dom": "^19.3.1",
189
329
  "react-hook-form": "^7.91.0",
330
+ "react-markdown": "^10.1.0",
190
331
  "react-resizable-panels": "^4.18.1",
332
+ "react-syntax-highlighter": "^16.1.2",
191
333
  "recharts": "^3.10.1",
334
+ "request-ip": "^3.3.0",
335
+ "sharp": "^0.35.5",
336
+ "shell-quote": "^1.12.0",
337
+ "smol-toml": "^1.9.1",
192
338
  "sonner": "^2.0.8",
339
+ "source-map-js": "^1.2.2",
193
340
  "streamdown": "^2.7.1",
194
341
  "tailwind-merge": "^3.7.0",
195
342
  "tailwindcss": "^4.3.4",
196
343
  "tailwindcss-animate": "^1.0.7",
197
- "tsup": "^8.5.1",
344
+ "three": "^0.187.0",
345
+ "ts-node": "^10.9.2",
346
+ "tsup": "^9.0.0",
198
347
  "tsx": "^4.23.15",
199
348
  "tw-animate-css": "^1.4.0",
200
349
  "typescript": "^7.0.2",
350
+ "undici": "^8.12.4",
351
+ "uuid": "^14.0.3",
201
352
  "vaul": "^1.1.2",
202
- "vite": "^8.3.5",
353
+ "vite": "^8.3.6",
203
354
  "vite-plugin-manus-runtime": "^0.0.59",
204
355
  "vitest": "^5.1.0",
205
356
  "webpack": "^5.112.2",
206
- "webpack-cli": "^6.0.1",
357
+ "webpack-cli": "^7.3.1",
358
+ "wouter": "^3.13.0",
207
359
  "yaml": "^2.9.1",
208
- "zod": "^4.6.7"
360
+ "z-ai-web-dev-sdk": "^0.0.18",
361
+ "zod": "^4.6.7",
362
+ "zustand": "^5.0.15"
209
363
  },
210
364
  "overrides": {
211
- "uuid": "^11.1.1",
212
- "deepmerge-ts": "^8.0.0",
365
+ "@ai-sdk/openai": "^4.0.109",
366
+ "@ai-sdk/openai-compatible": "^3.0.85",
367
+ "@ai-sdk/provider-utils": "^5.0.75",
368
+ "@anthropic-ai/sdk": "^1.6.0",
369
+ "@biomejs/biome": "^2.6.5",
370
+ "@capacitor/android": "^8.6.0",
371
+ "@capacitor/cli": "^8.6.0",
372
+ "@capacitor/core": "^8.6.0",
373
+ "@capacitor/ios": "^8.6.0",
374
+ "@dnd-kit/core": "^6.3.1",
375
+ "@dnd-kit/sortable": "^10.0.0",
376
+ "@dnd-kit/utilities": "^3.2.2",
377
+ "@fluentui/react-icons": "^2.0.345",
378
+ "@fontsource-variable/bricolage-grotesque": "^5.3.0",
379
+ "@fontsource-variable/geist-mono": "^5.3.0",
380
+ "@fontsource-variable/inter": "^5.3.0",
381
+ "@fontsource-variable/jetbrains-mono": "^5.3.0",
382
+ "@fontsource-variable/outfit": "^5.3.0",
383
+ "@fontsource-variable/urbanist": "^5.3.0",
384
+ "@grpc/grpc-js": "^1.14.7",
385
+ "@hono/node-server": "^2.1.6",
386
+ "@hookform/resolvers": "^7.0.3",
387
+ "@humanfs/node": "^0.17.0",
388
+ "@libsql/client": "^0.18.0",
389
+ "@mdxeditor/editor": "^4.5.0",
390
+ "@opencode-ai/sdk": "^1.19.5",
391
+ "@prisma/adapter-libsql": "^7.10.1",
392
+ "@prisma/client": "^7.10.1",
393
+ "@radix-ui/react-accordion": "^1.3.1",
394
+ "@radix-ui/react-alert-dialog": "^1.2.1",
395
+ "@radix-ui/react-aspect-ratio": "^1.2.0",
396
+ "@radix-ui/react-avatar": "^1.3.1",
397
+ "@radix-ui/react-checkbox": "^1.4.1",
398
+ "@radix-ui/react-collapsible": "^1.2.1",
399
+ "@radix-ui/react-context-menu": "^2.4.1",
400
+ "@radix-ui/react-dialog": "^1.3.1",
401
+ "@radix-ui/react-dropdown-menu": "^2.2.1",
402
+ "@radix-ui/react-hover-card": "^1.2.1",
403
+ "@radix-ui/react-label": "^2.1.17",
404
+ "@radix-ui/react-menubar": "^1.2.1",
405
+ "@radix-ui/react-navigation-menu": "^1.4.1",
406
+ "@radix-ui/react-popover": "^1.3.1",
407
+ "@radix-ui/react-progress": "^1.2.1",
408
+ "@radix-ui/react-radio-group": "^1.5.1",
409
+ "@radix-ui/react-scroll-area": "^1.4.0",
410
+ "@radix-ui/react-select": "^2.4.1",
411
+ "@radix-ui/react-separator": "^1.2.0",
412
+ "@radix-ui/react-slider": "^1.6.1",
413
+ "@radix-ui/react-slot": "^1.5.0",
414
+ "@radix-ui/react-switch": "^1.4.1",
415
+ "@radix-ui/react-tabs": "^1.2.1",
416
+ "@radix-ui/react-toast": "^1.3.1",
417
+ "@radix-ui/react-toggle": "^1.2.1",
418
+ "@radix-ui/react-toggle-group": "^1.2.1",
419
+ "@radix-ui/react-tooltip": "^1.4.1",
420
+ "@reactuses/core": "^6.6.1",
421
+ "@tailwindcss/postcss": "^4.3.4",
422
+ "@tailwindcss/typography": "^0.5.20",
423
+ "@tailwindcss/vite": "^4.3.4",
424
+ "@tanstack/react-query": "^5.106.1",
425
+ "@tanstack/react-table": "^9.3.1",
426
+ "@tsconfig/node26": "^26.0.1",
427
+ "@types/babel__core": "^7.20.5",
428
+ "@types/better-sqlite3": "^9.6.0",
429
+ "@types/chrome": "^0.3.7",
430
+ "@types/express": "^5.0.6",
431
+ "@types/google.maps": "^3.66.9",
432
+ "@types/node": "^26.6.6",
433
+ "@types/react": "^19.3.0",
434
+ "@types/react-dom": "^19.3.0",
435
+ "@types/three": "^0.187.0",
436
+ "@vitejs/plugin-react": "^6.2.1",
437
+ "@wenathlan/argan": "~2.0.165",
438
+ "@wenathlan/cadria": "~2.0.165",
439
+ "@wenathlan/debonair": "~2.0.165",
440
+ "@wenathlan/devthink": "~2.0.165",
441
+ "@wenathlan/getry": "~2.0.165",
442
+ "@wenathlan/saddle": "~2.0.165",
443
+ "@wenathlan/vault": "~2.0.165",
444
+ "add": "^2.0.9",
445
+ "ai": "^7.0.163",
446
+ "autoprefixer": "^10.6.2",
447
+ "axios": "^1.21.0",
448
+ "baseline-browser-mapping": "^2.11.35",
449
+ "better-sqlite3": "^13.0.3",
450
+ "body-parser": "^2.4.0",
451
+ "bun-types": "^1.4.4",
452
+ "cheerio": "^1.2.0",
453
+ "class-variance-authority": "^0.7.1",
454
+ "clsx": "^2.1.1",
455
+ "cmdk": "^1.1.1",
456
+ "commander": "^15.0.0",
457
+ "date-fns": "^4.4.0",
458
+ "deepmerge-ts": "^8.0.2",
459
+ "dockerode": "^5.0.1",
460
+ "drizzle-kit": "^0.31.11",
461
+ "drizzle-orm": "^0.45.4",
462
+ "embla-carousel-react": "^8.6.0",
463
+ "emittery": "^2.2.0",
213
464
  "esbuild": "^0.28.2",
465
+ "eslint": "^10.14.0",
466
+ "eslint-config-next": "^16.4.5",
467
+ "express": "^5.3.0",
468
+ "fast-check": "^4.10.2",
469
+ "fast-uri": "^4.2.3",
214
470
  "follow-redirects": "^1.16.2",
215
- "minimatch": "^11.0.3",
216
- "glob": "^14.0.3",
471
+ "framer-motion": "^14.9.1",
472
+ "glob": "^14.0.4",
473
+ "gsap": "^3.15.1",
474
+ "hono": "^4.13.16",
475
+ "ink": "^8.0.0",
476
+ "input-otp": "^1.5.0",
477
+ "js-yaml": "^5.5.0",
478
+ "jsdom": "^31.0.0",
479
+ "katex": "^0.19.1",
480
+ "lucide-react": "^1.69.0",
481
+ "minimatch": "^11.0.5",
482
+ "motion": "^14.9.1",
217
483
  "mysql2": "^3.24.6",
218
- "postcss-selector-parser": "^7.1.6",
219
- "source-map-js": "1.2.2",
220
- "proxy-addr": "2.0.8",
221
- "body-parser": "^2.4.0",
222
- "fast-uri": "^3.1.9",
484
+ "nanoid": "^6.0.2",
485
+ "next": "^16.4.5",
486
+ "next-auth": "^4.24.15",
487
+ "next-intl": "^4.14.9",
488
+ "next-themes": "^0.4.6",
489
+ "openai": "^7.52.0",
490
+ "p-limit": "^7.3.3",
491
+ "p-retry": "^9.0.0",
492
+ "playwright": "^1.65.0",
493
+ "pnpm": "^12.18.0",
494
+ "postcss": "^8.5.32",
495
+ "postcss-selector-parser": "^7.1.7",
496
+ "prettier": "^3.9.10",
497
+ "prisma": "^7.10.1",
498
+ "proxy-addr": "^2.0.8",
499
+ "react": "^19.3.1",
500
+ "react-day-picker": "^10.0.2",
501
+ "react-devtools-core": "^8.0.0",
502
+ "react-dom": "^19.3.1",
503
+ "react-hook-form": "^7.91.0",
504
+ "react-markdown": "^10.1.0",
505
+ "react-resizable-panels": "^4.18.1",
506
+ "react-syntax-highlighter": "^16.1.2",
507
+ "recharts": "^3.10.1",
508
+ "request-ip": "^3.3.0",
509
+ "sharp": "^0.35.5",
510
+ "shell-quote": "^1.12.0",
511
+ "smol-toml": "^1.9.1",
512
+ "sonner": "^2.0.8",
513
+ "source-map-js": "^1.2.2",
514
+ "streamdown": "^2.7.1",
515
+ "tailwind-merge": "^3.7.0",
516
+ "tailwindcss": "^4.3.4",
517
+ "tailwindcss-animate": "^1.0.7",
518
+ "three": "^0.187.0",
519
+ "ts-node": "^10.9.2",
520
+ "tsup": "^9.0.0",
521
+ "tsx": "^4.23.15",
522
+ "tw-animate-css": "^1.4.0",
523
+ "typescript": "^7.0.2",
524
+ "undici": "^8.12.4",
525
+ "uuid": "^14.0.3",
526
+ "vaul": "^1.1.2",
527
+ "vite": "^8.3.6",
528
+ "vite-plugin-manus-runtime": "^0.0.59",
529
+ "vitest": "^5.1.0",
530
+ "webpack": "^5.112.2",
531
+ "webpack-cli": "^7.3.1",
532
+ "wouter": "^3.13.0",
533
+ "yaml": "^2.9.1",
534
+ "z-ai-web-dev-sdk": "^0.0.18",
223
535
  "zod": "^4.6.7",
224
- "undici": "^7.30.1",
225
- "katex": "^0.18.2",
226
- "shell-quote": "^1.11.0",
536
+ "zustand": "^5.0.15",
227
537
  "xcode": {
228
538
  "uuid": "11.1.1"
229
- },
230
- "@grpc/grpc-js": "1.14.5"
539
+ }
231
540
  },
232
- "publishConfig": {
233
- "access": "public",
234
- "registry": "https://registry.npmjs.org/"
541
+ "type": "module",
542
+ "sideEffects": false,
543
+ "bin": {
544
+ "argan": "./cli.ts"
545
+ },
546
+ "exports": {
547
+ "./mimetypes": {
548
+ "types": "./mimetypes.ts",
549
+ "import": "./mimetypes.ts",
550
+ "default": "./mimetypes.ts"
551
+ }
235
552
  },
236
- "packageManager": "pnpm@12.3.4"
553
+ "files": [
554
+ "README.md",
555
+ "docs",
556
+ "tests",
557
+ "cli.ts",
558
+ "mimetypes.ts"
559
+ ],
560
+ "trustedDependencies": [
561
+ "@parcel/watcher",
562
+ "@swc/core",
563
+ "pnpm",
564
+ "protobufjs"
565
+ ]
237
566
  }
@@ -144,4 +144,14 @@ describe("design contract", () => {
144
144
  expect(DB).toMatch(/getonboardingstate/);
145
145
  expect(DB).toMatch(/setonboardingstage/);
146
146
  });
147
+
148
+ it("reads the record type chips from the catalog lane — no hardcoded type table in a face", () => {
149
+ const HOME = read("../sol/home/home.tsx");
150
+ const CATALOG = read("../catalog.ts");
151
+ const SEED = read("../seed.ts");
152
+ expect(HOME).toMatch(/listRecordTypes/);
153
+ expect(HOME).not.toMatch(/const CHIP_TYPES/);
154
+ expect(CATALOG).toMatch(/listRecordTypes/);
155
+ expect(SEED).toMatch(/seedRecordTypes/);
156
+ });
147
157
  });