privateboard 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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +120 -0
  3. package/dist/cli.js +10502 -0
  4. package/dist/cli.js.map +1 -0
  5. package/package.json +63 -0
  6. package/public/adjourn-overlay.css +253 -0
  7. package/public/agent-overlay.css +444 -0
  8. package/public/agent-overlay.js +604 -0
  9. package/public/agent-profile.css +3230 -0
  10. package/public/agent-profile.js +3329 -0
  11. package/public/app.js +6629 -0
  12. package/public/auto-hide-scroll.js +90 -0
  13. package/public/avatar-skill.js +793 -0
  14. package/public/avatars/chair.svg +98 -0
  15. package/public/avatars/first-principles.svg +122 -0
  16. package/public/avatars/long-horizon.svg +147 -0
  17. package/public/avatars/open_ai.png +0 -0
  18. package/public/avatars/phenomenologist.svg +130 -0
  19. package/public/avatars/socrates.svg +187 -0
  20. package/public/avatars/user-empathy.svg +117 -0
  21. package/public/avatars/value-investor.svg +117 -0
  22. package/public/favicon.svg +10 -0
  23. package/public/fonts/agent-Italic.woff2 +0 -0
  24. package/public/fonts/human-sans.woff2 +0 -0
  25. package/public/icons.css +103 -0
  26. package/public/models-cache.js +57 -0
  27. package/public/new-agent.css +1359 -0
  28. package/public/new-agent.js +675 -0
  29. package/public/onboarding.css +628 -0
  30. package/public/onboarding.js +782 -0
  31. package/public/prototype-dashboard.html +7596 -0
  32. package/public/report/spines/a16z-thesis.css +1055 -0
  33. package/public/report/spines/anthropic-essay.css +556 -0
  34. package/public/report/spines/boardroom-dark.css +1082 -0
  35. package/public/report/spines/gartner-note.css +538 -0
  36. package/public/report/spines/mckinsey-deck.css +523 -0
  37. package/public/report/spines/openai-paper.css +516 -0
  38. package/public/report.html +1417 -0
  39. package/public/room-settings.css +895 -0
  40. package/public/room-settings.js +1039 -0
  41. package/public/themes.css +338 -0
  42. package/public/user-settings.css +1236 -0
  43. package/public/user-settings.js +1291 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 kaysaith1900
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,120 @@
1
+ # PrivateBoard
2
+
3
+ > Your private board meeting, on call.
4
+ > A local-first, multi-agent thinking amplifier — convene a panel of directors with distinct lenses, drop a real question on the table, and let them argue. You walk away with a brief.
5
+
6
+ Not a chatbot. Not an assistant. A board.
7
+
8
+ ---
9
+
10
+ ## What it is
11
+
12
+ PrivateBoard runs entirely on your machine and routes to the model providers you bring keys for. You pick a few directors with sharp, opinionated lenses — Socrates, First Principles, Value Investor, User-Empathy, Long Horizon, Phenomenologist — convene a room, and they take turns pushing back on the question you actually care about. When you adjourn, a chair files a brief.
13
+
14
+ - **Local-first.** All state lives in `~/.boardroom/` (SQLite). Nothing leaves your machine without your provider call.
15
+ - **BYO keys.** OpenRouter (one key, all models) or direct keys for Anthropic / OpenAI / Google / xAI. Provider keys are stored on disk and never sent to PrivateBoard's authors.
16
+ - **Multi-agent.** A chair orchestrates the room: chooses speakers, manages the queue, intervenes when the discussion drifts, and writes the brief.
17
+ - **Streaming.** Director turns stream token-by-token over SSE.
18
+ - **Memory.** Each director carries an "About You" line and per-room lessons that compound across sessions.
19
+
20
+ ## Quick start
21
+
22
+ ```bash
23
+ # 1. Make sure you have Node 20+
24
+ node --version
25
+
26
+ # 2. Run it (no install needed)
27
+ npx privateboard@latest
28
+
29
+ # → boots a local server on http://127.0.0.1:3030 and opens your browser
30
+ ```
31
+
32
+ First-run onboarding asks you to:
33
+ 1. Pick a name.
34
+ 2. Pick a theme.
35
+ 3. Paste an API key for one provider — OpenRouter is the lowest-friction starting point.
36
+ 4. Pick a starter question (or convene your own).
37
+
38
+ That's it. The directors take it from there.
39
+
40
+ ## Bring your own key
41
+
42
+ PrivateBoard supports four LLM carriers. You only need one to get started; add more later from User Settings.
43
+
44
+ | Provider | What you get | Where to get a key |
45
+ |---|---|---|
46
+ | **OpenRouter** | Universal router · access every supported model with one key | [openrouter.ai/keys](https://openrouter.ai/keys) |
47
+ | **OpenAI** | Direct route to GPT models | [platform.openai.com](https://platform.openai.com/api-keys) |
48
+ | **Google** | Direct route to Gemini (defaults to Gemini Flash) | [aistudio.google.com](https://aistudio.google.com/apikey) |
49
+ | **Anthropic** | Direct route to Claude (Sonnet today; more after registry expands) | [console.anthropic.com](https://console.anthropic.com/) |
50
+
51
+ Keys are stored locally in your `~/.boardroom/` SQLite database. PrivateBoard never proxies through a remote service.
52
+
53
+ ## How a room works
54
+
55
+ 1. **Convene** — pick a subject and a cast of directors (or let the chair auto-pick).
56
+ 2. **Speaking queue** — the chair seats directors, opens the floor, and routes turns. Directors interrupt, agree, push back.
57
+ 3. **Pause / resume / steer** — drop a follow-up at any time; the queue absorbs it.
58
+ 4. **Adjourn** — the chair writes a brief: claims that held up, claims that fell, decisions, open questions.
59
+ 5. **Brief library** — every adjourned room files a brief; All Reports surfaces them across rooms.
60
+
61
+ ## Data & privacy
62
+
63
+ - **State directory:** `~/.boardroom/` (SQLite + brief markdown + logs).
64
+ - **No telemetry.** PrivateBoard does not phone home.
65
+ - **Provider calls are direct.** Your model traffic goes from your machine straight to the provider you configured a key for.
66
+ - **Wipe everything:** delete `~/.boardroom/`. Done.
67
+
68
+ ## Development
69
+
70
+ ```bash
71
+ git clone https://github.com/kaysaith1900/privateboard.git
72
+ cd privateboard
73
+ npm install
74
+
75
+ # watch-mode build + auto-restart
76
+ npm run dev
77
+
78
+ # one-shot build + run
79
+ npm run build
80
+ node dist/cli.js
81
+
82
+ # tests
83
+ npm test
84
+ ```
85
+
86
+ Stack:
87
+
88
+ - **Runtime:** Node 20+
89
+ - **Server:** Hono (`@hono/node-server`)
90
+ - **Storage:** `better-sqlite3` with hand-rolled migrations
91
+ - **LLM:** Vercel AI SDK adapters for Anthropic, OpenAI, Google, xAI, plus an OpenAI-compatible adapter for OpenRouter
92
+ - **Frontend:** vanilla HTML / CSS / JS shipped from `public/`
93
+ - **Bundling:** `tsup`
94
+ - **Tests:** Vitest
95
+
96
+ ```
97
+ src/
98
+ ├── cli.ts CLI entrypoint
99
+ ├── server.ts Hono app · static + JSON + SSE
100
+ ├── routes/ /api/agents · rooms · briefs · keys · models · prefs · usage · avatar
101
+ ├── orchestrator/ chair · room · stream · brief · memory · pickers
102
+ ├── ai/ model registry · provider adapters · skills
103
+ ├── storage/ SQLite + migrations + reconcile
104
+ └── seed/ default directors + chair
105
+ public/ frontend (served as-is)
106
+ ```
107
+
108
+ ## CLI
109
+
110
+ ```
111
+ privateboard [options]
112
+ -p, --port <n> port to listen on (default: auto-detect from 3030)
113
+ --host <h> host to bind (default: 127.0.0.1)
114
+ --no-open skip auto-opening the browser
115
+ -V, --version print version
116
+ ```
117
+
118
+ ## License
119
+
120
+ MIT