@cerefox/memory 0.5.4 → 0.7.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.
@@ -331,6 +331,175 @@ test path and works for power users who want a specific file location.
331
331
 
332
332
  ---
333
333
 
334
+ ## v0.6.0 moved the web server to TypeScript
335
+
336
+ **TL;DR**: `cerefox web` from the npm package now boots an in-process
337
+ Hono server (TypeScript on Bun) instead of pointing you at
338
+ `uv run cerefox web`. Three ingestion endpoints temporarily return
339
+ 503; the web UI shows a friendly toast pointing at the working CLI
340
+ fallback. Full ingestion support lands in v0.7.
341
+
342
+ ### What's new
343
+
344
+ - **`cerefox web` works from npm.** No clone, no `uv`. `npm install
345
+ -g @cerefox/memory` followed by `cerefox web` boots the local web
346
+ UI + JSON API on `http://127.0.0.1:8000/`.
347
+ - **React SPA bundled** into `@cerefox/memory`. The web UI is part
348
+ of the npm tarball; you get the same UI Python's `uv run cerefox
349
+ web` serves, no extra install.
350
+ - **Configure-agent grew Phase 2 writers**: `cerefox configure-agent
351
+ --tool cursor` / `--tool codex` / `--tool gemini` join the existing
352
+ `--tool claude-code` / `--tool claude-desktop`. Codex's config is
353
+ TOML (`~/.codex/config.toml`); the rest are JSON.
354
+
355
+ ### The 503-ingestion-stubs window
356
+
357
+ Three endpoints return 503 with `{error: "Ingestion lands in v0.7",
358
+ see: <url>, note: …}`:
359
+
360
+ - `POST /api/v1/ingest` (paste)
361
+ - `POST /api/v1/ingest/file` (file upload)
362
+ - `POST /api/v1/documents/{id}/upload` (replace)
363
+
364
+ The web UI detects this and shows a yellow Mantine toast — no scary
365
+ error banner. `/documents/{id}/edit` also returns 503 if you try to
366
+ change content (it compares SHA-256 hashes against the stored
367
+ `content_hash` — title / metadata / project changes work fine).
368
+
369
+ ### Working fallbacks during the v0.6 window
370
+
371
+ Both fully functional, no behaviour change:
372
+
373
+ ```bash
374
+ # Option A — npm-installed CLI hits the deployed Edge Function.
375
+ cerefox ingest my-notes.md
376
+ cerefox ingest-dir docs/
377
+
378
+ # Option B — keep using the Python web for ingestion until v0.7.
379
+ uv run cerefox web
380
+ ```
381
+
382
+ v0.7 swaps the 503 stubs for in-process pipeline calls. The toast
383
+ just stops firing — no frontend changes, no config changes, no
384
+ re-install.
385
+
386
+ ### Should I upgrade from v0.5.4 to v0.6.0?
387
+
388
+ | Workflow | Recommendation |
389
+ |---|---|
390
+ | MCP client only (Claude Code, Cursor, etc.) | Yes — Phase 2 writers + faster install matter. No risk. |
391
+ | `cerefox` CLI for ingest / search | Yes — same CLI, no API changes. Ingest still works via the Edge Function. |
392
+ | Web UI to ingest documents | Optional — wait a few days for v0.7 if ingestion-via-web is your main flow. Or upgrade and use the CLI for ingest until v0.7. |
393
+ | `uv run cerefox web` | Keep using it through v0.7; the Python web is unchanged. The deprecation banner lands in v0.7 once the TS web is feature-complete. |
394
+
395
+ ### Python web kept through v0.7.x
396
+
397
+ `src/cerefox/api/app.py` and `routes_api.py` ship unchanged in v0.6.
398
+ The Python web-specific deprecation banner is **deferred to v0.7's
399
+ Part 25L** — we won't nudge users away from a fully-working Python
400
+ web while the TS web's 3 ingest endpoints are still 503. v0.8 makes
401
+ the banner prominent; v0.9 deletes the Python web code.
402
+
403
+ ---
404
+
405
+ ## v0.7.0 completes the TS migration arc
406
+
407
+ **TL;DR**: the 3 ingestion endpoints that returned 503 in v0.6 now
408
+ work. `cerefox ingest` and `cerefox ingest-dir` run in-process (no
409
+ Edge Function round-trip). `cerefox reindex` (a v0.5 deferred stub)
410
+ is a real command. PDF/DOCX support dropped. Python web prints a
411
+ deprecation banner. Python MCP server keeps working unchanged.
412
+
413
+ ### The 503 toast is gone
414
+
415
+ If you saw "Ingestion lands in v0.7 — use `cerefox ingest <file>` from
416
+ the CLI for now" anywhere in the web UI during v0.6, that's gone in
417
+ v0.7. The 3 ingestion endpoints (`POST /api/v1/ingest`,
418
+ `POST /api/v1/ingest/file`, `POST /api/v1/documents/{id}/upload`) now
419
+ call the in-process TS pipeline. The frontend's
420
+ `V07IngestionDeferredError` toast detector stays in `api/client.ts`
421
+ as dead code — no churn there, just stops firing.
422
+
423
+ ### CLI gets faster (no EF round-trip)
424
+
425
+ `cerefox ingest <file>` and `cerefox ingest-dir <dir>` pre-v0.7 made
426
+ an HTTP call to the `cerefox-ingest` Edge Function (Deno on Supabase).
427
+ In v0.7+ they run the in-process TS pipeline directly: chunk +
428
+ embed + atomic RPC, all in the same Bun/Node process. Faster + no
429
+ network egress to Supabase Functions (only to Postgres + OpenAI).
430
+
431
+ `cerefox reindex` is no longer a v0.5 stub. It re-embeds chunks via
432
+ the same in-process pipeline. Defaults to stale-only (chunks with a
433
+ different embedder model recorded); `--all` reindexes everything.
434
+ `--batch <n>` controls the batch size. `--document-id <uuid>` scopes
435
+ to one doc. `--dry-run` previews.
436
+
437
+ ### PDF / DOCX support dropped
438
+
439
+ The `src/cerefox/chunking/converters.py` module and its tests are
440
+ deleted. The Python CLI's `.pdf` / `.docx` branches now print a clear
441
+ "support dropped in v0.7.0" error pointing at pandoc / docling for
442
+ client-side conversion. The TS surfaces never had PDF/DOCX support;
443
+ no UX change there.
444
+
445
+ If you were using the Python CLI to ingest PDFs/DOCXs: convert them
446
+ to markdown client-side first (`pandoc input.pdf -o input.md` or
447
+ similar), then ingest the .md.
448
+
449
+ ### Python web shows a deprecation banner
450
+
451
+ `uv run cerefox web` now prints a yellow ⚠ deprecation banner at
452
+ startup:
453
+
454
+ ```
455
+ ⚠ Cerefox Python web server is deprecated as of v0.7.0.
456
+ The canonical web UI is `cerefox web` from `@cerefox/memory`
457
+ (npm install -g @cerefox/memory). The Python web stays through
458
+ v0.7.x and v0.8 as a husk; consider switching now.
459
+ See docs/guides/migration-v0.5.md § v0.7 for the migration path.
460
+ ```
461
+
462
+ The Python web stays through v0.7.x and v0.8 (likely as a husk that
463
+ returns 503 on every route in v0.8). v0.9's call on the Python web is
464
+ TBD per the iter-26 design pass. Switch to `cerefox web` from npm
465
+ when you can — it's been functionally complete since v0.6 + has had
466
+ ingestion since v0.7.
467
+
468
+ ### Python MCP server stays unchanged
469
+
470
+ Per the "Python minimization, not removal" policy locked at iter-24,
471
+ the Python MCP server stays fully functional through v0.9+. If you
472
+ check out the repo and run `uv run cerefox mcp`, that keeps working
473
+ indefinitely. `CerefoxClient` stays in the Python tree for the same
474
+ reason — MCP uses it.
475
+
476
+ ### Scripts: 3 ported, 2 stay Python
477
+
478
+ | Script | Status in v0.7.0 |
479
+ |---|---|
480
+ | `scripts/db_deploy.py` | Husk; use `bun scripts/db_deploy.ts` |
481
+ | `scripts/db_migrate.py` | Husk; use `bun scripts/db_migrate.ts` |
482
+ | `scripts/reindex_all.py` | Husk; use `bun scripts/reindex_all.ts` |
483
+ | `scripts/backup_create.py` | Stays Python through v0.7.x (port deferred) |
484
+ | `scripts/backup_restore.py` | Stays Python through v0.7.x (port deferred) |
485
+
486
+ The Postgres client used by `db_deploy.ts` / `db_migrate.ts` is the
487
+ `postgres` (Porsager) library — small, well-typed, no native deps.
488
+ Cross-runtime (Bun + Node).
489
+
490
+ ### Should I upgrade from v0.6.0 to v0.7.0?
491
+
492
+ | Workflow | Recommendation |
493
+ |---|---|
494
+ | Web UI for ingestion | **Yes — that's the whole point.** v0.6 sent you to the CLI for ingest; v0.7 has it in the browser. |
495
+ | MCP client only (Claude Code, Cursor, etc.) | Yes — no functional change for you, but you'll get the v0.7 npm cleanup. |
496
+ | `cerefox` CLI | Yes — faster ingest paths + working reindex. |
497
+ | `uv run cerefox web` (Python) | Optional — banner appears; can ignore for now. v0.8 will make this prominent. |
498
+ | `uv run cerefox mcp` (Python) | No-op — Python MCP unchanged. |
499
+ | PDF/DOCX ingest via Python CLI | Convert to markdown client-side before upgrading. |
500
+
501
+ ---
502
+
334
503
  ## Known gotchas
335
504
 
336
505
  ### `npx` from inside an npm workspace
@@ -1,224 +1,104 @@
1
- # Quickstart -- Zero to First Document in 15 Minutes
1
+ # Quickstart -- Zero to First Document in 5 Minutes
2
2
 
3
- Get Cerefox running locally and ingest your first document.
3
+ Get Cerefox running on your machine via the npm install path. **No source
4
+ clone, no Python required.**
4
5
 
5
- > **Upgrading from a previous version?** See the [Upgrading Guide](upgrading.md) for migration steps instead.
6
+ > **Upgrading from an earlier version?** See [`upgrading.md`](upgrading.md)
7
+ > for migration steps instead.
6
8
 
7
- ## Two install paths
9
+ ---
8
10
 
9
- | You want | Read this section | Why |
10
- |---|---|---|
11
- | **Use Cerefox as an MCP server / CLI** | "Path A — npm install" below (fastest) | One install, callable from any directory. No Python needed. Recommended for end users since v0.5. |
12
- | **Contribute to Cerefox, run the web UI, deploy schema** | "Path B — source checkout" below | Full source: schema deploy, web UI, ingestion pipeline. Required for contributors and for the web UI (until v0.6). |
11
+ ## Prerequisites
13
12
 
14
- You'll need a Supabase project (free tier works) and an OpenAI API key for either
15
- path those go into `.env`. The npm install asks for them interactively via
16
- `cerefox init`; the source checkout has you write them into a `.env` file
17
- yourself.
13
+ - **Node.js 20+** (`node --version`) or **Bun 1.0+** (`bun --version`)
14
+ - A **Supabase account** -- [supabase.com](https://supabase.com) (free tier works) -- with the Cerefox schema deployed (see [Note on schema deploy](#note-on-schema-deploy) below)
15
+ - An **OpenAI API key** -- [platform.openai.com/api-keys](https://platform.openai.com/api-keys)
18
16
 
19
17
  ---
20
18
 
21
- ## Path A — npm install (fastest, 5 min total)
22
-
23
- For end users who just want the Cerefox CLI + MCP server on their machine.
19
+ ## 1. Install
24
20
 
25
- ### A.1 Prerequisites
26
- - Node.js 20+ (`node --version`) or Bun 1.0+ (`bun --version`)
27
- - A Supabase account -- [supabase.com](https://supabase.com) (free tier works)
28
- - An OpenAI API key -- [platform.openai.com/api-keys](https://platform.openai.com/api-keys)
29
- - **Schema must be deployed** to your Supabase. Until v0.6 ports the schema
30
- deploy to TypeScript, this still requires the source checkout (Path B) once,
31
- or someone else who has the source checkout to deploy it for you.
32
-
33
- ### A.2 Install
34
21
  ```bash
35
- # One-line install (detects Bun or installs it, falls back to npm):
36
22
  curl -fsSL https://github.com/fstamatelopoulos/cerefox/releases/latest/download/install.sh | sh
37
-
38
- # Or direct:
39
- bun add -g @cerefox/memory # preferred
40
- # npm install -g @cerefox/memory # alternative
41
23
  ```
42
24
 
43
- ### A.3 First-run setup
44
- ```bash
45
- cerefox init # 5-step interactive setup
46
- cerefox doctor # verify the install
47
- ```
25
+ Detects Bun (or installs it) and falls back to npm. After install,
26
+ `cerefox` is on your PATH.
48
27
 
49
- ### A.4 Wire up your MCP client
28
+ Direct alternatives:
50
29
  ```bash
51
- # Run the ones that apply:
52
- cerefox configure-agent --tool claude-code
53
- cerefox configure-agent --tool claude-desktop
30
+ bun add -g @cerefox/memory # preferred (faster cold start)
31
+ npm install -g @cerefox/memory # equivalent
54
32
  ```
55
33
 
56
- `--tool claude-code` shells out to Claude Code's own `claude mcp add --scope user`
57
- to register the server (Claude Code knows where to store the config).
58
- `--tool claude-desktop` writes the JSON config file directly.
59
-
60
- Then restart your MCP client. **Path A users skip ahead to "[Connect an AI agent](#8-connect-an-ai-agent-optional-5-min)" (step 8) for the verification prompt.** Steps 3–7
61
- below are Path B-only (setting up `.env` by hand, deploying the schema, the web UI).
62
-
63
- ---
64
-
65
- ## Path B — source checkout (contributors, schema deploy, web UI)
66
-
67
- For anyone hacking on Cerefox itself, deploying the schema for the first time,
68
- or running the web UI.
69
-
70
- ### B.1 Prerequisites
71
-
72
- - Python 3.11+ (`python3 --version`)
73
- - Node.js 18+ and npm (`node --version`)
74
- - `uv` package manager (`pip install uv`)
75
- - A Supabase account -- [supabase.com](https://supabase.com) (free tier works)
76
- - An OpenAI API key -- [platform.openai.com/api-keys](https://platform.openai.com/api-keys)
77
-
78
- ### B.2 Install Cerefox (2 min)
34
+ ## 2. First-run setup
79
35
 
80
36
  ```bash
81
- git clone https://github.com/fstamatelopoulos/cerefox.git
82
- cd cerefox
83
- uv sync
37
+ cerefox init # 5-step interactive setup — prompts for the credentials above
38
+ cerefox doctor # green across the board if everything's wired correctly
84
39
  ```
85
40
 
86
- > No heavy ML model downloads needed -- embeddings are handled by the OpenAI API.
41
+ `cerefox init` validates each entry against the live service before saving,
42
+ writes `~/.cerefox/.env` (mode 0600), and optionally ingests the bundled
43
+ self-docs into the `_cerefox-self-docs` project so agents can search for
44
+ Cerefox usage guidance.
87
45
 
88
- ---
89
-
90
- ## 3. Set up Supabase (5 min)
91
-
92
- 1. Create a new Supabase project at [app.supabase.com](https://app.supabase.com).
93
- 2. Go to **Project Settings → API → Project URL** and copy it. Also note your project ref (the slug in the URL, e.g. `abcd1234`).
94
- 3. Go to **Project Settings → API Keys** and copy the **Secret key** (`sb_secret_…`). The legacy `service_role` JWT also works if you prefer; either goes into `CEREFOX_SUPABASE_KEY`. See [`setup-supabase.md` → Supabase API keys (2026)](setup-supabase.md#supabase-api-keys-2026) for the full key story (including why the anon key, if you ever need it, must currently stay as the legacy JWT — `sb_publishable_…` does not work for Edge Functions).
95
- 4. Go to **Project Settings → Database → Connection pooling** and copy the **Session Pooler** URI (host ends `.pooler.supabase.com`, port `5432`). If you only see the Transaction Pooler in the dashboard, take that URI and change `:6543` → `:5432`. **Do not use port 6543** — Transaction Pooler does not support DDL. See [`setup-supabase.md` → Connection pooling (2026)](setup-supabase.md#connection-pooling-2026) for context.
96
-
97
- Create a `.env` file:
98
-
99
- ```env
100
- CEREFOX_SUPABASE_URL=https://your-project-ref.supabase.co
101
- CEREFOX_SUPABASE_KEY=sb_secret_...your-supabase-secret-key...
102
- CEREFOX_DATABASE_URL=postgresql://postgres.your-project-ref:your-db-password@aws-N-region.pooler.supabase.com:5432/postgres?sslmode=require
103
- OPENAI_API_KEY=sk-...your-openai-key...
104
- ```
105
-
106
- The username must include the `.<project-ref>` suffix (e.g. `postgres.abcd1234`) — without it, Supabase returns "Tenant or user not found".
107
-
108
- ---
109
-
110
- ## 4. Deploy the schema (1 min)
46
+ ## 3. Wire up an AI agent
111
47
 
112
48
  ```bash
113
- uv run python scripts/db_deploy.py
49
+ # Run the commands that apply to your setup:
50
+ cerefox configure-agent --tool claude-code # Claude Code (~/.claude.json)
51
+ cerefox configure-agent --tool claude-desktop # Claude Desktop config
114
52
  ```
115
53
 
116
- You should see all steps complete with a final `Done` message.
54
+ Then restart your client:
55
+ - **Claude Code**: start a fresh session — running sessions cache the MCP tool list.
56
+ - **Claude Desktop**: Cmd+Q to fully quit, then relaunch.
117
57
 
118
- Verify:
119
- ```bash
120
- uv run python scripts/db_status.py
121
- ```
58
+ Cursor, OpenAI Codex CLI, and Gemini CLI ship in a follow-up (v0.6+).
59
+ For manual setup of those today, see [`connect-agents.md`](connect-agents.md).
122
60
 
123
- This should show all checks passed.
61
+ ## 4. Try it
124
62
 
125
- ---
63
+ From your AI agent, ask:
126
64
 
127
- ## 5. Ingest your first document (2 min)
65
+ > "Use cerefox_search to look for 'cerefox conventions' and tell me what you find."
128
66
 
129
- Have a markdown file? Ingest it:
130
-
131
- ```bash
132
- uv run cerefox ingest my-notes.md
133
- ```
134
-
135
- Or paste directly from the terminal:
136
-
137
- ```bash
138
- echo "# My First Note
139
-
140
- This is the beginning of my personal knowledge base." | uv run cerefox ingest --paste --title "First Note"
141
- ```
142
-
143
- ---
144
-
145
- ## 6. Build and start the web app (1 min)
146
-
147
- Build the React frontend:
148
-
149
- ```bash
150
- cd frontend && npm install && npm run build && cd ..
151
- ```
152
-
153
- Start the web app:
154
-
155
- ```bash
156
- uv run cerefox web
157
- ```
158
-
159
- Open [http://localhost:8000/app/](http://localhost:8000/app/) -- your dashboard is live.
160
-
161
- > The root URL (`http://localhost:8000/`) redirects to `/app/` automatically.
67
+ You should see results from the bundled self-docs.
162
68
 
163
69
  ---
164
70
 
165
- ## 7. Search your knowledge (30 sec)
71
+ ## Note on schema deploy
166
72
 
167
- From the CLI:
73
+ If your Supabase project is **brand new**, the Cerefox schema needs to be
74
+ deployed once before the CLI works. Until v0.6 ports the schema deploy to
75
+ TypeScript, this is the one step that still requires the source-checkout
76
+ path:
168
77
 
169
78
  ```bash
170
- uv run cerefox search "my first note"
171
- ```
172
-
173
- Or use the web UI search page at [http://localhost:8000/app/search](http://localhost:8000/app/search).
174
-
175
- ---
176
-
177
- ## 8. Connect an AI agent (optional, 5 min)
178
-
179
- Cerefox ships a built-in MCP server. Add it to Claude Desktop's config file
180
- (`~/Library/Application Support/Claude/claude_desktop_config.json`):
181
-
182
- ```json
183
- {
184
- "mcpServers": {
185
- "cerefox": {
186
- "command": "uv",
187
- "args": ["--directory", "/path/to/cerefox", "run", "cerefox", "mcp"]
188
- }
189
- }
190
- }
79
+ git clone https://github.com/fstamatelopoulos/cerefox.git && cd cerefox
80
+ uv sync
81
+ # Add CEREFOX_DATABASE_URL to your .env, then:
82
+ uv run python scripts/db_deploy.py
191
83
  ```
192
84
 
193
- Replace `/path/to/cerefox` with the absolute path to this checkout. Restart Claude Desktop.
194
-
195
- > **Recommended: remote MCP** -- if you deployed the Edge Functions (see the main
196
- > README), use the remote MCP path instead -- no Python install needed on the client machine.
197
- > See `docs/guides/connect-agents.md` for Path A-Remote.
198
- >
199
- > **ChatGPT** does not support MCP -- use a Custom GPT with
200
- > Edge Functions instead (see `docs/guides/connect-agents.md`, Path B).
201
-
202
- For full setup details (remote MCP, Cursor, cloud clients, GPT Actions), see `docs/guides/connect-agents.md`.
85
+ Detailed walkthrough: [`setup-supabase.md`](setup-supabase.md).
86
+ After v0.6.0, `cerefox init` will offer to do this for you.
203
87
 
204
88
  ---
205
89
 
206
- ## You're done!
207
-
208
- **What's next:**
209
- - Ingest a directory of notes: `cerefox ingest-dir ./notes/ --recursive`
210
- - Re-embed existing content: `cerefox reindex`
211
- - Create a backup: `python scripts/backup_create.py`
212
- - Sync project docs into your knowledge base: `python scripts/sync_docs.py`
213
- (this also ingests the agent reference guides -- `AGENT_GUIDE.md` and `AGENT_QUICK_REFERENCE.md` --
214
- so your AI agents can search for "How AI Agents Use Cerefox" and learn how to use the tools)
215
- - See all commands: `cerefox --help`
216
-
217
- **More guides:**
218
- - `AGENT_GUIDE.md` -- comprehensive reference for AI agents using Cerefox tools
219
- - `AGENT_QUICK_REFERENCE.md` -- minimal quick reference card for AI agents
220
- - `docs/guides/setup-supabase.md` -- detailed Supabase setup
221
- - `docs/guides/configuration.md` -- all configuration options
222
- - `docs/guides/connect-agents.md` -- connecting AI agents via MCP and Edge Functions
223
- - `docs/guides/setup-local.md` -- local Docker setup (no Supabase account needed)
224
- - `docs/guides/upgrading.md` -- upgrading from a previous version
90
+ ## What's next
91
+
92
+ - **Ingest your notes**: `cerefox ingest my-notes.md`, or
93
+ `cerefox ingest-dir ./notes/ --recursive`
94
+ - **Search from the CLI**: `cerefox search "your query"`
95
+ - **Discover all commands**: `cerefox --help`
96
+ - **Run the web UI** (Python-only until v0.6): [`setup-local.md`](setup-local.md)
97
+ - **Connect more AI clients** (Cursor, Codex, ChatGPT GPT Actions, etc.):
98
+ [`connect-agents.md`](connect-agents.md)
99
+ - **Configuration reference**: [`configuration.md`](configuration.md)
100
+ - **Backup + restore**: [`ops-scripts.md`](ops-scripts.md)
101
+
102
+ For the agent-facing reference (what tools agents have, how to use them well),
103
+ read `AGENT_QUICK_REFERENCE.md` in the repo root or have your agent run
104
+ `cerefox_get_help` from any MCP-connected client.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerefox/memory",
3
- "version": "0.5.4",
3
+ "version": "0.7.0",
4
4
  "description": "Cerefox — user-owned shared memory for AI agents. The local TypeScript runtime: stdio MCP server in v0.4; CLI binary added in v0.5; in-process web server in v0.6; ingestion pipeline in v0.7.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/fstamatelopoulos/cerefox",
@@ -39,12 +39,16 @@
39
39
  "CHANGELOG.md"
40
40
  ],
41
41
  "dependencies": {
42
+ "@hono/node-server": "^2.0.4",
42
43
  "@modelcontextprotocol/sdk": "^1.0.0",
43
44
  "@supabase/supabase-js": "^2.45.0",
44
45
  "cli-progress": "^3.12.0",
45
46
  "commander": "^12.1.0",
47
+ "hono": "^4.12.23",
46
48
  "picocolors": "^1.0.0",
49
+ "postgres": "^3.4.9",
47
50
  "prompts": "^2.4.2",
51
+ "smol-toml": "^1.6.1",
48
52
  "zod": "^3.23.0"
49
53
  },
50
54
  "devDependencies": {
@@ -58,7 +62,9 @@
58
62
  "build": "bun build src/bin/cerefox.ts --outdir dist/bin --target node --format esm",
59
63
  "clean": "rm -rf dist docs AGENT_GUIDE.md AGENT_QUICK_REFERENCE.md",
60
64
  "bundle-docs": "bun run ../../scripts/bundle_package_docs.ts",
61
- "prepublishOnly": "bun run clean && bun run bundle-docs && bun run build",
65
+ "build-frontend": "cd ../../frontend && bun install && bun run build",
66
+ "bundle-frontend": "rm -rf dist/frontend && mkdir -p dist/frontend && cp -R ../../frontend/dist/. dist/frontend/",
67
+ "prepublishOnly": "bun run clean && bun run bundle-docs && bun run build-frontend && bun run bundle-frontend && bun run build",
62
68
  "smoke": "node dist/bin/cerefox.js --help && node dist/bin/cerefox.js mcp --help"
63
69
  },
64
70
  "publishConfig": {