bazilion 0.0.0 → 0.1.0

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.
Files changed (265) hide show
  1. package/README.md +53 -152
  2. package/dist/cli.js +2730 -0
  3. package/dist/cli.js.map +1 -0
  4. package/dist/daemon.js +5888 -0
  5. package/dist/daemon.js.map +1 -0
  6. package/dist/worker.js +1830 -0
  7. package/dist/worker.js.map +1 -0
  8. package/package.json +57 -28
  9. package/.understand-anything/.understandignore +0 -25
  10. package/.understand-anything/fingerprints.json +0 -14267
  11. package/.understand-anything/knowledge-graph.json +0 -18128
  12. package/.understand-anything/meta.json +0 -6
  13. package/CLAUDE.md +0 -164
  14. package/apps/cli/package.json +0 -21
  15. package/apps/cli/src/auth-file.ts +0 -18
  16. package/apps/cli/src/client.ts +0 -37
  17. package/apps/cli/src/columnize.ts +0 -32
  18. package/apps/cli/src/commands/agent.ts +0 -574
  19. package/apps/cli/src/commands/auth.ts +0 -110
  20. package/apps/cli/src/commands/backup.ts +0 -135
  21. package/apps/cli/src/commands/completion.ts +0 -155
  22. package/apps/cli/src/commands/config.ts +0 -95
  23. package/apps/cli/src/commands/doctor.ts +0 -131
  24. package/apps/cli/src/commands/group.ts +0 -132
  25. package/apps/cli/src/commands/inbox.ts +0 -82
  26. package/apps/cli/src/commands/login.ts +0 -73
  27. package/apps/cli/src/commands/memory.ts +0 -106
  28. package/apps/cli/src/commands/profile.ts +0 -259
  29. package/apps/cli/src/commands/provider.ts +0 -170
  30. package/apps/cli/src/commands/send.ts +0 -24
  31. package/apps/cli/src/commands/serve.ts +0 -89
  32. package/apps/cli/src/commands/skill.ts +0 -120
  33. package/apps/cli/src/commands/token.ts +0 -148
  34. package/apps/cli/src/commands/trigger.ts +0 -129
  35. package/apps/cli/src/commands/uninstall.ts +0 -156
  36. package/apps/cli/src/index.ts +0 -196
  37. package/apps/cli/src/paths.ts +0 -12
  38. package/apps/cli/test/agent.test.ts +0 -213
  39. package/apps/cli/test/backup.test.ts +0 -95
  40. package/apps/cli/test/chat.test.ts +0 -539
  41. package/apps/cli/test/columnize.test.ts +0 -29
  42. package/apps/cli/test/completion.test.ts +0 -45
  43. package/apps/cli/test/config-page.test.ts +0 -151
  44. package/apps/cli/test/group.test.ts +0 -74
  45. package/apps/cli/test/helpers.ts +0 -70
  46. package/apps/cli/test/inbox-autodeliver.test.ts +0 -143
  47. package/apps/cli/test/inbox.test.ts +0 -147
  48. package/apps/cli/test/memory.test.ts +0 -69
  49. package/apps/cli/test/profile.test.ts +0 -110
  50. package/apps/cli/test/send.test.ts +0 -30
  51. package/apps/cli/test/server-fixture.ts +0 -212
  52. package/apps/cli/test/session-head.test.ts +0 -45
  53. package/apps/cli/test/skill.test.ts +0 -128
  54. package/apps/cli/test/token.test.ts +0 -109
  55. package/apps/cli/test/trigger.test.ts +0 -245
  56. package/apps/cli/tsconfig.json +0 -4
  57. package/apps/daemon/package.json +0 -31
  58. package/apps/daemon/src/app.ts +0 -41
  59. package/apps/daemon/src/core/agent/archive.ts +0 -8
  60. package/apps/daemon/src/core/agent/delete.ts +0 -30
  61. package/apps/daemon/src/core/agent/resolve.ts +0 -31
  62. package/apps/daemon/src/core/agent/spawn.ts +0 -95
  63. package/apps/daemon/src/core/agent/unarchive.ts +0 -11
  64. package/apps/daemon/src/core/availableModels.ts +0 -58
  65. package/apps/daemon/src/core/db/client.ts +0 -113
  66. package/apps/daemon/src/core/db/migrate.ts +0 -41
  67. package/apps/daemon/src/core/db/migrations/0001_init.sql +0 -179
  68. package/apps/daemon/src/core/group/delete.ts +0 -21
  69. package/apps/daemon/src/core/group/register.ts +0 -68
  70. package/apps/daemon/src/core/index.ts +0 -71
  71. package/apps/daemon/src/core/paths.ts +0 -56
  72. package/apps/daemon/src/core/profile/create.ts +0 -78
  73. package/apps/daemon/src/core/profile/delete.ts +0 -26
  74. package/apps/daemon/src/core/profile/identity.ts +0 -70
  75. package/apps/daemon/src/core/profile/load.ts +0 -45
  76. package/apps/daemon/src/core/profile/seed.ts +0 -74
  77. package/apps/daemon/src/core/profile/templates.ts +0 -60
  78. package/apps/daemon/src/core/profile/update.ts +0 -57
  79. package/apps/daemon/src/core/profile/validate.ts +0 -9
  80. package/apps/daemon/src/core/repos/agents.ts +0 -202
  81. package/apps/daemon/src/core/repos/config.ts +0 -78
  82. package/apps/daemon/src/core/repos/groups.ts +0 -55
  83. package/apps/daemon/src/core/repos/messages.ts +0 -127
  84. package/apps/daemon/src/core/repos/profiles.ts +0 -83
  85. package/apps/daemon/src/core/repos/providerModels.ts +0 -58
  86. package/apps/daemon/src/core/repos/providerState.ts +0 -37
  87. package/apps/daemon/src/core/repos/secrets.ts +0 -145
  88. package/apps/daemon/src/core/repos/skillMeta.ts +0 -49
  89. package/apps/daemon/src/core/repos/triggers.ts +0 -101
  90. package/apps/daemon/src/core/repos/webTokens.ts +0 -87
  91. package/apps/daemon/src/core/secrets.ts +0 -65
  92. package/apps/daemon/src/core/services.ts +0 -264
  93. package/apps/daemon/src/core/skills/discover.ts +0 -28
  94. package/apps/daemon/src/core/skills/import.ts +0 -136
  95. package/apps/daemon/src/core/skills/parse.ts +0 -52
  96. package/apps/daemon/src/core/skills/resolve.ts +0 -50
  97. package/apps/daemon/src/index.ts +0 -45
  98. package/apps/daemon/src/lib/agent-cancel.ts +0 -48
  99. package/apps/daemon/src/lib/agent-id.ts +0 -13
  100. package/apps/daemon/src/lib/agent-turn.ts +0 -56
  101. package/apps/daemon/src/lib/api-key.ts +0 -56
  102. package/apps/daemon/src/lib/auth.ts +0 -41
  103. package/apps/daemon/src/lib/cron.ts +0 -93
  104. package/apps/daemon/src/lib/ctx.ts +0 -80
  105. package/apps/daemon/src/lib/messaging-host.ts +0 -34
  106. package/apps/daemon/src/lib/middleware-auth.ts +0 -52
  107. package/apps/daemon/src/lib/scheduler.ts +0 -294
  108. package/apps/daemon/src/routes/agents.ts +0 -772
  109. package/apps/daemon/src/routes/auth-login.ts +0 -193
  110. package/apps/daemon/src/routes/config.ts +0 -267
  111. package/apps/daemon/src/routes/groups.ts +0 -133
  112. package/apps/daemon/src/routes/messages.ts +0 -29
  113. package/apps/daemon/src/routes/misc.ts +0 -239
  114. package/apps/daemon/src/routes/profiles.ts +0 -197
  115. package/apps/daemon/src/routes/skills.ts +0 -123
  116. package/apps/daemon/src/routes/triggers.ts +0 -29
  117. package/apps/daemon/src/runtime/auth/openai-codex.ts +0 -121
  118. package/apps/daemon/src/runtime/auto-reply/heartbeat.ts +0 -31
  119. package/apps/daemon/src/runtime/index.ts +0 -77
  120. package/apps/daemon/src/runtime/memory/files.ts +0 -103
  121. package/apps/daemon/src/runtime/memory/qmd.ts +0 -152
  122. package/apps/daemon/src/runtime/memory/types.ts +0 -16
  123. package/apps/daemon/src/runtime/pi/events.ts +0 -173
  124. package/apps/daemon/src/runtime/pi/session.ts +0 -536
  125. package/apps/daemon/src/runtime/pi/tools.ts +0 -85
  126. package/apps/daemon/src/runtime/providers/catalog.ts +0 -145
  127. package/apps/daemon/src/runtime/providers/pi-adapter.ts +0 -272
  128. package/apps/daemon/src/runtime/providers/registry.ts +0 -374
  129. package/apps/daemon/src/runtime/providers/retry.ts +0 -176
  130. package/apps/daemon/src/runtime/providers/types.ts +0 -33
  131. package/apps/daemon/src/runtime/session/prompt.ts +0 -83
  132. package/apps/daemon/src/runtime/tools/bootstrap.ts +0 -22
  133. package/apps/daemon/src/runtime/tools/home.ts +0 -114
  134. package/apps/daemon/src/runtime/tools/memory.ts +0 -81
  135. package/apps/daemon/src/runtime/tools/messaging.ts +0 -127
  136. package/apps/daemon/src/runtime/tools/registry.ts +0 -29
  137. package/apps/daemon/src/runtime/tools/types.ts +0 -13
  138. package/apps/daemon/src/runtime/tools/web-extract.ts +0 -110
  139. package/apps/daemon/src/runtime/tools/web-ssrf.ts +0 -245
  140. package/apps/daemon/src/runtime/tools/web.ts +0 -273
  141. package/apps/daemon/src/runtime/worker/entry.ts +0 -221
  142. package/apps/daemon/src/runtime/worker/ipc-protocol.ts +0 -75
  143. package/apps/daemon/src/runtime/worker/spawn.ts +0 -249
  144. package/apps/daemon/test/core/agents.test.ts +0 -319
  145. package/apps/daemon/test/core/available-models.test.ts +0 -63
  146. package/apps/daemon/test/core/config.test.ts +0 -99
  147. package/apps/daemon/test/core/groups.test.ts +0 -63
  148. package/apps/daemon/test/core/helpers.ts +0 -50
  149. package/apps/daemon/test/core/identity.test.ts +0 -85
  150. package/apps/daemon/test/core/migrations.test.ts +0 -83
  151. package/apps/daemon/test/core/profiles.test.ts +0 -182
  152. package/apps/daemon/test/core/provider-models.test.ts +0 -57
  153. package/apps/daemon/test/core/provider-state.test.ts +0 -36
  154. package/apps/daemon/test/core/skill-meta.test.ts +0 -45
  155. package/apps/daemon/test/core/skills.test.ts +0 -271
  156. package/apps/daemon/test/core/triggers.test.ts +0 -182
  157. package/apps/daemon/test/core/web-tokens.test.ts +0 -79
  158. package/apps/daemon/test/cron.test.ts +0 -90
  159. package/apps/daemon/test/runtime/heartbeat.test.ts +0 -34
  160. package/apps/daemon/test/runtime/memory-qmd.test.ts +0 -97
  161. package/apps/daemon/test/runtime/memory.test.ts +0 -78
  162. package/apps/daemon/test/runtime/messaging.test.ts +0 -213
  163. package/apps/daemon/test/runtime/mock-server.ts +0 -65
  164. package/apps/daemon/test/runtime/openai-codex-auth.test.ts +0 -116
  165. package/apps/daemon/test/runtime/providers.test.ts +0 -306
  166. package/apps/daemon/test/runtime/retry.test.ts +0 -191
  167. package/apps/daemon/test/runtime/session-head.test.ts +0 -90
  168. package/apps/daemon/test/runtime/tools-home.test.ts +0 -102
  169. package/apps/daemon/test/runtime/tools-web.test.ts +0 -206
  170. package/apps/daemon/tsconfig.json +0 -4
  171. package/apps/mobile/README.md +0 -60
  172. package/apps/mobile/app/_layout.tsx +0 -58
  173. package/apps/mobile/app/agents/[id]/chat.tsx +0 -486
  174. package/apps/mobile/app/agents/[id]/index.tsx +0 -166
  175. package/apps/mobile/app/agents/index.tsx +0 -212
  176. package/apps/mobile/app/index.tsx +0 -21
  177. package/apps/mobile/app/pair.tsx +0 -226
  178. package/apps/mobile/app/settings.tsx +0 -419
  179. package/apps/mobile/app.json +0 -49
  180. package/apps/mobile/assets/adaptive-icon.png +0 -0
  181. package/apps/mobile/assets/favicon.png +0 -0
  182. package/apps/mobile/assets/icon.png +0 -0
  183. package/apps/mobile/assets/splash-icon.png +0 -0
  184. package/apps/mobile/babel.config.js +0 -6
  185. package/apps/mobile/metro.config.js +0 -28
  186. package/apps/mobile/package.json +0 -44
  187. package/apps/mobile/src/auth.ts +0 -66
  188. package/apps/mobile/src/pair-url.ts +0 -48
  189. package/apps/mobile/src/theme-context.tsx +0 -88
  190. package/apps/mobile/src/theme.ts +0 -135
  191. package/apps/mobile/test/pair-url.test.ts +0 -46
  192. package/apps/mobile/tsconfig.json +0 -23
  193. package/apps/web/components.json +0 -25
  194. package/apps/web/package.json +0 -39
  195. package/apps/web/public/baziu.svg +0 -8
  196. package/apps/web/src/components/AgentTabs.tsx +0 -45
  197. package/apps/web/src/components/BaziuLogo.tsx +0 -21
  198. package/apps/web/src/components/ChatPane.tsx +0 -1033
  199. package/apps/web/src/components/ConfigTabs.tsx +0 -29
  200. package/apps/web/src/components/CopyButton.tsx +0 -68
  201. package/apps/web/src/components/CreateGroupDialog.tsx +0 -127
  202. package/apps/web/src/components/FieldRow.tsx +0 -94
  203. package/apps/web/src/components/Footer.tsx +0 -10
  204. package/apps/web/src/components/PawIcon.tsx +0 -15
  205. package/apps/web/src/components/Sidebar.tsx +0 -287
  206. package/apps/web/src/components/SpawnDialog.tsx +0 -129
  207. package/apps/web/src/components/ThemeToggle.tsx +0 -75
  208. package/apps/web/src/components/TopNav.tsx +0 -34
  209. package/apps/web/src/components/ui/button.tsx +0 -67
  210. package/apps/web/src/components/ui/card.tsx +0 -103
  211. package/apps/web/src/components/ui/checkbox.tsx +0 -31
  212. package/apps/web/src/components/ui/dialog.tsx +0 -168
  213. package/apps/web/src/components/ui/input.tsx +0 -19
  214. package/apps/web/src/components/ui/label.tsx +0 -22
  215. package/apps/web/src/components/ui/radio-group.tsx +0 -44
  216. package/apps/web/src/components/ui/select.tsx +0 -192
  217. package/apps/web/src/components/ui/separator.tsx +0 -26
  218. package/apps/web/src/components/ui/table.tsx +0 -116
  219. package/apps/web/src/components/ui/tabs.tsx +0 -88
  220. package/apps/web/src/components/ui/textarea.tsx +0 -18
  221. package/apps/web/src/lib/auth.ts +0 -50
  222. package/apps/web/src/lib/daemon-client.ts +0 -34
  223. package/apps/web/src/lib/md.ts +0 -45
  224. package/apps/web/src/lib/utils.ts +0 -6
  225. package/apps/web/src/lib/wire-constants.ts +0 -27
  226. package/apps/web/src/routeTree.gen.ts +0 -408
  227. package/apps/web/src/router.tsx +0 -20
  228. package/apps/web/src/routes/__root.tsx +0 -123
  229. package/apps/web/src/routes/agents/$id/inbox.tsx +0 -207
  230. package/apps/web/src/routes/agents/$id/index.tsx +0 -527
  231. package/apps/web/src/routes/agents/$id/triggers.tsx +0 -239
  232. package/apps/web/src/routes/agents/index.tsx +0 -265
  233. package/apps/web/src/routes/api/$.ts +0 -88
  234. package/apps/web/src/routes/config/index.tsx +0 -315
  235. package/apps/web/src/routes/config/services.tsx +0 -49
  236. package/apps/web/src/routes/config/tokens.tsx +0 -192
  237. package/apps/web/src/routes/groups/$id/index.tsx +0 -153
  238. package/apps/web/src/routes/groups/$id/memory.tsx +0 -321
  239. package/apps/web/src/routes/groups/index.tsx +0 -191
  240. package/apps/web/src/routes/index.tsx +0 -133
  241. package/apps/web/src/routes/login.tsx +0 -63
  242. package/apps/web/src/routes/profiles/$id.tsx +0 -549
  243. package/apps/web/src/routes/profiles/index.tsx +0 -458
  244. package/apps/web/src/routes/skills/index.tsx +0 -297
  245. package/apps/web/src/routes/welcome.tsx +0 -61
  246. package/apps/web/src/styles.css +0 -449
  247. package/apps/web/tsconfig.json +0 -25
  248. package/apps/web/vite.config.ts +0 -25
  249. package/biome.json +0 -23
  250. package/docs/agent-engine.md +0 -219
  251. package/docs/architecture.md +0 -627
  252. package/docs/backlog/README.md +0 -42
  253. package/docs/backlog/draft/BAZ-001-a2a-federation-spike.md +0 -125
  254. package/docs/openclaw-reference.md +0 -210
  255. package/packages/api-types/package.json +0 -11
  256. package/packages/api-types/src/entities.ts +0 -146
  257. package/packages/api-types/src/events.ts +0 -55
  258. package/packages/api-types/src/index.ts +0 -488
  259. package/packages/api-types/src/memory.ts +0 -15
  260. package/packages/client/package.json +0 -13
  261. package/packages/client/src/index.ts +0 -117
  262. package/pnpm-workspace.yaml +0 -3
  263. package/tsconfig.base.json +0 -23
  264. package/tsconfig.json +0 -11
  265. package/vitest.config.ts +0 -22
@@ -1,449 +0,0 @@
1
- @import 'tailwindcss';
2
- @import "tw-animate-css";
3
- @import "shadcn/tailwind.css";
4
-
5
- @custom-variant dark (&:is(.dark *));
6
-
7
- /* Neva Masquerade palette — dedicated to Baziu.
8
- shadcn semantic tokens are remapped to Baziu colors below so every
9
- `bg-card`, `text-muted-foreground`, `border-border`, `ring`, etc.
10
- utility resolves to the Baziu palette without per-component edits.
11
- The parallel @theme block exposes the raw palette as Tailwind utilities
12
- (`bg-cream`, `font-display`, `border-frost`) for cases where the
13
- semantic name doesn't match what we want to express.
14
- NOT @theme inline: utilities must emit `var(--color-cream)` etc. so
15
- :root.dark overrides flip them at runtime. With `inline`, Tailwind bakes
16
- the literal hex into every utility at build time and dark-mode rules can't
17
- reach them — `text-charcoal` would stay #2A1F16 on a dark background. */
18
- @theme {
19
- --font-heading: 'DM Serif Display', Georgia, serif;
20
- --font-sans: 'DM Sans', system-ui, sans-serif;
21
- --font-mono: 'JetBrains Mono', 'Fira Code', monospace;
22
-
23
- --font-display: 'DM Serif Display', Georgia, serif;
24
- --font-body: 'DM Sans', system-ui, sans-serif;
25
- --font-mono-baziu: 'JetBrains Mono', 'Fira Code', monospace;
26
-
27
- --color-cream: #F5F0E8;
28
- --color-ivory: #FAF8F4;
29
- --color-frost: #E8E2D8;
30
- --color-fawn: #D4CAB8;
31
- --color-chocolate: #3D2B1F;
32
- --color-charcoal: #2A1F16;
33
- --color-mocha: #7A6555;
34
- --color-mocha-light: #9E8E7E;
35
- --color-sapphire: #4A7C9B;
36
- --color-sapphire-deep: #3A6580;
37
- --color-sapphire-light: #6BA3C2;
38
- --color-sapphire-glow: rgba(74, 124, 155, 0.12);
39
- --color-rose-baziu: #C4878A;
40
- --color-snow: #FFFFFF;
41
-
42
- --shadow-baziu-sm: 0 1px 3px rgba(42, 31, 22, 0.06);
43
- --shadow-baziu-md: 0 4px 12px rgba(42, 31, 22, 0.08);
44
- --shadow-baziu-lg: 0 8px 30px rgba(42, 31, 22, 0.10);
45
-
46
- --color-sidebar-ring: var(--sidebar-ring);
47
- --color-sidebar-border: var(--sidebar-border);
48
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
49
- --color-sidebar-accent: var(--sidebar-accent);
50
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
51
- --color-sidebar-primary: var(--sidebar-primary);
52
- --color-sidebar-foreground: var(--sidebar-foreground);
53
- --color-sidebar: var(--sidebar);
54
- --color-chart-5: var(--chart-5);
55
- --color-chart-4: var(--chart-4);
56
- --color-chart-3: var(--chart-3);
57
- --color-chart-2: var(--chart-2);
58
- --color-chart-1: var(--chart-1);
59
- --color-ring: var(--ring);
60
- --color-input: var(--input);
61
- --color-border: var(--border);
62
- --color-destructive: var(--destructive);
63
- --color-accent-foreground: var(--accent-foreground);
64
- --color-accent: var(--accent);
65
- --color-muted-foreground: var(--muted-foreground);
66
- --color-muted: var(--muted);
67
- --color-secondary-foreground: var(--secondary-foreground);
68
- --color-secondary: var(--secondary);
69
- --color-primary-foreground: var(--primary-foreground);
70
- --color-primary: var(--primary);
71
- --color-popover-foreground: var(--popover-foreground);
72
- --color-popover: var(--popover);
73
- --color-card-foreground: var(--card-foreground);
74
- --color-card: var(--card);
75
- --color-foreground: var(--foreground);
76
- --color-background: var(--background);
77
-
78
- --radius-sm: 6px;
79
- --radius-md: 10px;
80
- --radius-lg: 16px;
81
- --radius-xl: 22px;
82
- --radius-2xl: 28px;
83
- --radius-3xl: 36px;
84
- --radius-4xl: 48px;
85
- }
86
-
87
- :root {
88
- /* shadcn semantic tokens, remapped to Baziu colors */
89
- --background: #F5F0E8; /* cream */
90
- --foreground: #3D2B1F; /* chocolate */
91
- --card: #FFFFFF; /* snow */
92
- --card-foreground: #3D2B1F;
93
- --popover: #FFFFFF;
94
- --popover-foreground: #3D2B1F;
95
- --primary: #4A7C9B; /* sapphire */
96
- --primary-foreground: #FFFFFF;
97
- --secondary: #FAF8F4; /* ivory */
98
- --secondary-foreground: #3D2B1F;
99
- --muted: #FAF8F4;
100
- --muted-foreground: #9E8E7E; /* mocha-light */
101
- --accent: rgba(74, 124, 155, 0.12); /* sapphire-glow */
102
- --accent-foreground: #3A6580; /* sapphire-deep */
103
- --destructive: #9B3D3D;
104
- --border: #E8E2D8; /* frost */
105
- --input: #E8E2D8;
106
- --ring: #4A7C9B; /* sapphire focus ring */
107
- --chart-1: #4A7C9B;
108
- --chart-2: #C4878A;
109
- --chart-3: #7A6555;
110
- --chart-4: #D4CAB8;
111
- --chart-5: #6BA3C2;
112
- --radius: 16px;
113
- --sidebar: #FAF8F4;
114
- --sidebar-foreground: #3D2B1F;
115
- --sidebar-primary: #4A7C9B;
116
- --sidebar-primary-foreground: #FFFFFF;
117
- --sidebar-accent: rgba(74, 124, 155, 0.12);
118
- --sidebar-accent-foreground: #3A6580;
119
- --sidebar-border: #E8E2D8;
120
- --sidebar-ring: #4A7C9B;
121
- }
122
-
123
- /* Dark theme — "Mask & Moonlight".
124
- A Neva Masquerade after dark: the seal-point mask becomes the page,
125
- cream body fur becomes text, sapphire eyes glow brighter against the
126
- dark fur. Flips both the raw palette tokens (so component CSS using
127
- var(--color-snow)/var(--color-chocolate) etc. auto-inverts) AND the
128
- shadcn semantic tokens (so Tailwind utilities like bg-card/bg-muted
129
- resolve correctly). Applied via .dark on <html> by the pre-hydration
130
- script in __root.tsx — it picks 'system' / 'light' / 'dark' from
131
- localStorage and falls back to prefers-color-scheme. */
132
- :root.dark {
133
- /* Raw palette — re-mapped to the dark side of Baziu */
134
- --color-cream: #1A140F;
135
- --color-ivory: #211A13;
136
- --color-frost: #3B2E24;
137
- --color-fawn: #5C4A3D;
138
- --color-chocolate: #F5F0E8;
139
- --color-charcoal: #FAF8F4;
140
- --color-mocha: #C4B3A0;
141
- --color-mocha-light: #A89789;
142
- --color-sapphire: #7BB4D2;
143
- --color-sapphire-deep: #5E9BBA;
144
- --color-sapphire-light: #A0CEE3;
145
- --color-sapphire-glow: rgba(123, 180, 210, 0.18);
146
- --color-rose-baziu: #D89A9D;
147
- --color-snow: #2A211A;
148
-
149
- --shadow-baziu-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
150
- --shadow-baziu-md: 0 4px 12px rgba(0, 0, 0, 0.5);
151
- --shadow-baziu-lg: 0 8px 30px rgba(0, 0, 0, 0.6);
152
-
153
- /* shadcn semantic tokens */
154
- --background: #1A140F;
155
- --foreground: #F5F0E8;
156
- --card: #2A211A;
157
- --card-foreground: #F5F0E8;
158
- --popover: #2A211A;
159
- --popover-foreground: #F5F0E8;
160
- --primary: #7BB4D2;
161
- --primary-foreground: #0F0A07;
162
- --secondary: #211A13;
163
- --secondary-foreground: #F5F0E8;
164
- --muted: #211A13;
165
- --muted-foreground: #A89789;
166
- --accent: rgba(123, 180, 210, 0.18);
167
- --accent-foreground: #A0CEE3;
168
- --destructive: #D87878;
169
- --border: #3B2E24;
170
- --input: #3B2E24;
171
- --ring: #7BB4D2;
172
- --chart-1: #7BB4D2;
173
- --chart-2: #D89A9D;
174
- --chart-3: #C4B3A0;
175
- --chart-4: #5C4A3D;
176
- --chart-5: #A0CEE3;
177
- --sidebar: #1F1812;
178
- --sidebar-foreground: #F5F0E8;
179
- --sidebar-primary: #7BB4D2;
180
- --sidebar-primary-foreground: #0F0A07;
181
- --sidebar-accent: rgba(123, 180, 210, 0.18);
182
- --sidebar-accent-foreground: #A0CEE3;
183
- --sidebar-border: #3B2E24;
184
- --sidebar-ring: #7BB4D2;
185
- }
186
-
187
- @layer base {
188
- * {
189
- @apply border-border outline-ring/50;
190
- }
191
- body {
192
- @apply bg-background text-foreground;
193
- font-family: var(--font-body);
194
- font-size: 15px;
195
- line-height: 1.6;
196
- -webkit-font-smoothing: antialiased;
197
- min-height: 100vh;
198
- }
199
- html {
200
- @apply font-sans;
201
- overflow-y: scroll;
202
- scrollbar-gutter: stable;
203
- }
204
- /* Subtle paper grain — the single most distinctive Baziu signal. */
205
- body::before {
206
- content: '';
207
- position: fixed;
208
- inset: 0;
209
- opacity: 0.025;
210
- pointer-events: none;
211
- z-index: 9999;
212
- background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
213
- background-repeat: repeat;
214
- background-size: 256px;
215
- }
216
- h1, h2, h3 {
217
- font-family: var(--font-display);
218
- color: var(--color-charcoal);
219
- font-weight: 400;
220
- letter-spacing: -0.01em;
221
- }
222
- h1 { font-size: 2rem; margin-bottom: 0.25rem; }
223
- h2 { font-size: 1.5rem; }
224
- h3 { font-size: 1.15rem; margin-bottom: 0.4rem; color: var(--color-mocha); }
225
- code {
226
- font-family: var(--font-mono);
227
- font-size: 0.88em;
228
- background: var(--color-frost);
229
- padding: 0.15em 0.4em;
230
- border-radius: var(--radius-sm);
231
- color: var(--color-mocha);
232
- }
233
- a {
234
- color: var(--color-sapphire);
235
- text-decoration: none;
236
- transition: color 0.2s;
237
- }
238
- a:hover { color: var(--color-sapphire-deep); }
239
- }
240
-
241
- @layer components {
242
- /* --- forms --- */
243
- label { display: block; margin: 0.6rem 0; font-size: 0.9em; color: var(--color-mocha); }
244
- input[type=text], input[type=password], input[type=number], input:not([type]),
245
- select, textarea {
246
- padding: 0.5rem 0.75rem;
247
- font: inherit; font-size: 0.95em;
248
- border: 1.5px solid var(--color-frost);
249
- border-radius: var(--radius-md);
250
- width: 100%;
251
- background: var(--color-ivory);
252
- color: var(--color-chocolate);
253
- transition: all 0.2s;
254
- outline: none;
255
- }
256
- input:focus, select:focus, textarea:focus {
257
- border-color: var(--color-sapphire);
258
- box-shadow: 0 0 0 3px var(--color-sapphire-glow);
259
- background: var(--color-snow);
260
- }
261
- input::placeholder { color: var(--color-fawn); }
262
- input[type=checkbox] {
263
- accent-color: var(--color-sapphire);
264
- width: 16px; height: 16px;
265
- vertical-align: middle; margin-right: 0.35rem;
266
- }
267
-
268
- /* --- buttons ---
269
- Primary-CTA styling applies ONLY to form submits and explicit
270
- .btn-primary opt-ins. Bare <button type="button"> (icons, menu items,
271
- toggles) keeps Tailwind's preflight (transparent bg + inherited text)
272
- so their per-instance Tailwind classes don't fight a global sapphire
273
- background. */
274
- button[type='submit']:not(.unstyled),
275
- .btn-primary {
276
- display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
277
- padding: 0.5rem 1.25rem;
278
- font: inherit; font-size: 0.92em; font-weight: 600; letter-spacing: 0.01em;
279
- border: none; border-radius: var(--radius-md); cursor: pointer;
280
- transition: all 0.2s;
281
- background: var(--color-sapphire); color: var(--color-snow);
282
- }
283
- button[type='submit']:not(.unstyled):hover,
284
- .btn-primary:hover {
285
- background: var(--color-sapphire-deep);
286
- color: var(--color-snow);
287
- box-shadow: var(--shadow-baziu-md);
288
- transform: translateY(-1px);
289
- }
290
- button[type='submit']:not(.unstyled):active,
291
- .btn-primary:active { transform: translateY(0); }
292
- button[type='submit']:not(.unstyled):disabled,
293
- button[type='submit']:not(.unstyled)[disabled],
294
- .btn-primary:disabled,
295
- .btn-primary[disabled] {
296
- opacity: 0.5; cursor: not-allowed;
297
- transform: none; box-shadow: none;
298
- }
299
- .ghost-btn {
300
- display: inline-flex; align-items: center; gap: 0.3rem;
301
- background: transparent; color: var(--color-mocha);
302
- border: 1.5px solid var(--color-frost);
303
- padding: 0.35rem 0.85rem; font: inherit; font-weight: 500; font-size: 0.92em;
304
- border-radius: var(--radius-md); cursor: pointer;
305
- transition: all 0.2s;
306
- }
307
- .ghost-btn:hover {
308
- border-color: var(--color-sapphire-light); color: var(--color-sapphire);
309
- background: var(--color-sapphire-glow);
310
- }
311
- .ghost-btn:disabled, .ghost-btn[disabled] {
312
- opacity: 0.5; cursor: not-allowed;
313
- }
314
-
315
- /* --- tables --- */
316
- table {
317
- width: 100%; border-collapse: separate; border-spacing: 0;
318
- margin: 1rem 0; background: var(--color-snow);
319
- border: 1px solid var(--color-frost); border-radius: var(--radius-lg); overflow: hidden;
320
- }
321
- thead { background: var(--color-ivory); }
322
- th {
323
- text-align: left; padding: 0.65rem 1rem;
324
- font-size: 0.82em; font-weight: 600; text-transform: uppercase;
325
- letter-spacing: 0.06em; color: var(--color-mocha-light);
326
- border-bottom: 1px solid var(--color-frost);
327
- }
328
- td {
329
- padding: 0.6rem 1rem; border-bottom: 1px solid var(--color-frost);
330
- vertical-align: middle; font-size: 0.93em;
331
- }
332
- tr:last-child td { border-bottom: none; }
333
- tbody tr { transition: background 0.2s; }
334
- tbody tr:hover { background: var(--color-sapphire-glow); }
335
-
336
- /* --- markdown (chat output) ---
337
- `marked` produces standard HTML (<p>/<h*>/<ul>/<code>/<pre>/<blockquote>);
338
- Tailwind preflight strips margins + list markers, so without these rules
339
- the chat reads as flat plain text. Scoped under .md-content so we don't
340
- bleed into form labels or other authored markup. */
341
- .md-content > * + * { margin-top: 0.65em; }
342
- .md-content h1, .md-content h2, .md-content h3,
343
- .md-content h4, .md-content h5, .md-content h6 {
344
- font-family: var(--font-serif);
345
- font-weight: 600;
346
- color: var(--color-chocolate);
347
- line-height: 1.3;
348
- margin-top: 1.1em;
349
- }
350
- .md-content h1 { font-size: 1.45em; }
351
- .md-content h2 { font-size: 1.25em; }
352
- .md-content h3 { font-size: 1.1em; }
353
- .md-content h4, .md-content h5, .md-content h6 { font-size: 1em; }
354
- .md-content p { line-height: 1.55; }
355
- .md-content ul, .md-content ol {
356
- padding-left: 1.5em;
357
- line-height: 1.55;
358
- }
359
- .md-content ul { list-style: disc; }
360
- .md-content ol { list-style: decimal; }
361
- .md-content li + li { margin-top: 0.25em; }
362
- .md-content li > ul, .md-content li > ol { margin-top: 0.25em; }
363
- .md-content a {
364
- color: var(--color-sapphire);
365
- text-decoration: underline;
366
- text-underline-offset: 2px;
367
- }
368
- .md-content a:hover { color: var(--color-sapphire-deep); }
369
- .md-content strong { font-weight: 600; color: var(--color-chocolate); }
370
- .md-content em { font-style: italic; }
371
- .md-content code {
372
- font-family: var(--font-mono, ui-monospace, monospace);
373
- font-size: 0.88em;
374
- padding: 0.1em 0.35em;
375
- background: var(--color-frost);
376
- border-radius: var(--radius-sm, 4px);
377
- color: var(--color-chocolate);
378
- }
379
- .md-content pre {
380
- margin: 0.7em 0;
381
- padding: 0.75rem 1rem;
382
- background: var(--color-ivory);
383
- border: 1px solid var(--color-frost);
384
- border-radius: var(--radius-md);
385
- overflow-x: auto;
386
- font-size: 0.88em;
387
- line-height: 1.5;
388
- }
389
- .md-content pre code {
390
- padding: 0;
391
- background: transparent;
392
- border-radius: 0;
393
- font-size: inherit;
394
- }
395
- .md-content blockquote {
396
- border-left: 3px solid var(--color-frost);
397
- padding-left: 0.9rem;
398
- color: var(--color-mocha-light);
399
- font-style: italic;
400
- }
401
- .md-content hr {
402
- border: none;
403
- border-top: 1px solid var(--color-frost);
404
- margin: 1em 0;
405
- }
406
- .md-content table {
407
- margin: 0.5em 0;
408
- border-collapse: collapse;
409
- font-size: 0.93em;
410
- }
411
- .md-content th, .md-content td {
412
- padding: 0.4rem 0.7rem;
413
- border: 1px solid var(--color-frost);
414
- text-align: left;
415
- }
416
- .md-content th {
417
- background: var(--color-frost);
418
- font-weight: 600;
419
- }
420
- .md-content img { max-width: 100%; height: auto; border-radius: var(--radius-sm, 4px); }
421
-
422
- /* --- cards --- */
423
- .card {
424
- background: var(--color-snow);
425
- border: 1px solid var(--color-frost);
426
- border-radius: var(--radius-lg);
427
- padding: 1.5rem;
428
- margin: 1.25rem 0;
429
- box-shadow: var(--shadow-baziu-sm);
430
- transition: box-shadow 0.2s;
431
- }
432
- .card:hover { box-shadow: var(--shadow-baziu-md); }
433
- .card h3 {
434
- font-family: var(--font-body);
435
- font-weight: 600; font-size: 0.92em;
436
- text-transform: uppercase; letter-spacing: 0.06em;
437
- color: var(--color-mocha-light); margin-bottom: 1rem;
438
- }
439
-
440
- /* --- helpers --- */
441
- .muted { color: var(--color-mocha-light); font-size: 0.9em; }
442
- .err {
443
- color: var(--destructive); padding: 0.75rem 1rem;
444
- background: color-mix(in srgb, var(--destructive) 12%, transparent);
445
- border: 1px solid color-mix(in srgb, var(--destructive) 25%, transparent);
446
- border-radius: var(--radius-md);
447
- font-size: 0.92em; margin-bottom: 1rem;
448
- }
449
- }
@@ -1,25 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "ESNext",
5
- "moduleResolution": "Bundler",
6
- "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
- "jsx": "react-jsx",
8
- "strict": true,
9
- "noUncheckedIndexedAccess": true,
10
- "verbatimModuleSyntax": true,
11
- "esModuleInterop": true,
12
- "allowImportingTsExtensions": true,
13
- "noEmit": true,
14
- "skipLibCheck": true,
15
- "resolveJsonModule": true,
16
- "isolatedModules": true,
17
- "types": ["vite/client"],
18
- "baseUrl": ".",
19
- "paths": {
20
- "@/*": ["./src/*"]
21
- }
22
- },
23
- "include": ["src/**/*", "vite.config.ts", "*.ts", "*.tsx"],
24
- "exclude": ["node_modules", "dist", ".output", ".tanstack", ".nitro"]
25
- }
@@ -1,25 +0,0 @@
1
- import { fileURLToPath } from 'node:url'
2
- import tailwindcss from '@tailwindcss/vite'
3
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
4
- import viteReact from '@vitejs/plugin-react'
5
- import { defineConfig } from 'vite'
6
-
7
- // Plugin order matters: tailwindcss → tanstackStart → viteReact. The Start
8
- // plugin auto-includes the router file-based codegen, so no separate
9
- // `@tanstack/react-router/plugin/vite` import.
10
- export default defineConfig({
11
- server: {
12
- // The daemon owns 4321; web2 binds 4322 by default. WEB_HOST/WEB_PORT
13
- // override at boot — kept symmetric with apps/web's config.
14
- host: process.env.WEB_HOST ?? '127.0.0.1',
15
- port: Number(process.env.WEB_PORT ?? 4322),
16
- },
17
- resolve: {
18
- alias: {
19
- // Mirrors the tsconfig `@/*` paths so shadcn-style `@/components/...`
20
- // imports resolve identically in TS-check, dev, and build.
21
- '@': fileURLToPath(new URL('./src', import.meta.url)),
22
- },
23
- },
24
- plugins: [tailwindcss(), tanstackStart(), viteReact()],
25
- })
package/biome.json DELETED
@@ -1,23 +0,0 @@
1
- {
2
- "$schema": "https://biomejs.dev/schemas/2.4.12/schema.json",
3
- "files": {
4
- "includes": ["**", "!**/node_modules", "!**/dist", "!apps/web", "!apps/mobile"]
5
- },
6
- "formatter": {
7
- "enabled": true,
8
- "indentStyle": "space",
9
- "indentWidth": 2,
10
- "lineWidth": 100
11
- },
12
- "linter": {
13
- "enabled": true,
14
- "rules": { "recommended": true }
15
- },
16
- "javascript": {
17
- "formatter": {
18
- "quoteStyle": "single",
19
- "semicolons": "asNeeded",
20
- "trailingCommas": "all"
21
- }
22
- }
23
- }