@legioncodeinc/honeycomb 0.1.12 → 0.1.14
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +2 -2
- package/LICENSE +661 -661
- package/README.md +314 -283
- package/assets/logos/honeycomb-memory-cluster.svg +17 -17
- package/assets/readme.md +117 -117
- package/assets/styles.css +11 -11
- package/assets/tokens/base.css +76 -76
- package/assets/tokens/colors.css +111 -111
- package/assets/tokens/fonts.css +32 -32
- package/assets/tokens/spacing.css +48 -48
- package/assets/tokens/typography.css +38 -38
- package/bundle/cli.js +522 -190
- package/daemon/index.js +43493 -43073
- package/daemon/restart-helper.js +0 -0
- package/embeddings/embed-daemon.js +1 -1
- package/harnesses/claude-code/.claude-plugin/plugin.json +2 -2
- package/harnesses/claude-code/bundle/capture.js +0 -0
- package/harnesses/claude-code/bundle/index.js +0 -0
- package/harnesses/claude-code/bundle/pre-tool-use.js +0 -0
- package/harnesses/claude-code/bundle/session-end.js +0 -0
- package/harnesses/claude-code/bundle/session-start.js +0 -0
- package/harnesses/claude-code/hooks/hooks.json +86 -86
- package/harnesses/codex/bundle/capture.js +0 -0
- package/harnesses/codex/bundle/index.js +0 -0
- package/harnesses/codex/bundle/pre-tool-use.js +0 -0
- package/harnesses/codex/bundle/session-start.js +0 -0
- package/harnesses/codex/package.json +2 -2
- package/harnesses/cursor/bundle/capture.js +0 -0
- package/harnesses/cursor/bundle/index.js +0 -0
- package/harnesses/cursor/bundle/pre-tool-use.js +0 -0
- package/harnesses/cursor/bundle/session-end.js +0 -0
- package/harnesses/cursor/bundle/session-start.js +0 -0
- package/harnesses/hermes/bundle/index.js +0 -0
- package/harnesses/openclaw/dist/index.js +1 -1
- package/harnesses/openclaw/openclaw.plugin.json +1 -1
- package/harnesses/openclaw/package.json +2 -2
- package/harnesses/pi/bundle/index.js +0 -0
- package/mcp/bundle/server.js +1 -1
- package/package.json +144 -144
- package/scripts/ensure-embed-deps.mjs +67 -67
- package/scripts/ensure-tree-sitter.mjs +89 -89
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
<svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Honeycomb">
|
|
2
|
-
<defs>
|
|
3
|
-
<linearGradient id="bCell" x1="80" y1="59" x2="80" y2="101" gradientUnits="userSpaceOnUse">
|
|
4
|
-
<stop offset="0" stop-color="#FFC04D"/>
|
|
5
|
-
<stop offset="1" stop-color="#E0860C"/>
|
|
6
|
-
</linearGradient>
|
|
7
|
-
</defs>
|
|
8
|
-
<g stroke="#F7A823" stroke-width="5.5" stroke-linejoin="round" fill="none" stroke-opacity="0.85">
|
|
9
|
-
<path d="M 147.1 80 L 135.1 100.8 L 111.1 100.8 L 99.1 80 L 111.1 59.2 L 135.1 59.2 Z"/>
|
|
10
|
-
<path d="M 125.5 117.3 L 113.5 138.1 L 89.5 138.1 L 77.5 117.3 L 89.5 96.5 L 113.5 96.5 Z"/>
|
|
11
|
-
<path d="M 82.5 117.3 L 70.5 138.1 L 46.5 138.1 L 34.5 117.3 L 46.5 96.5 L 70.5 96.5 Z"/>
|
|
12
|
-
<path d="M 60.9 80 L 48.9 100.8 L 24.9 100.8 L 12.9 80 L 24.9 59.2 L 48.9 59.2 Z"/>
|
|
13
|
-
<path d="M 82.5 42.7 L 70.5 63.5 L 46.5 63.5 L 34.5 42.7 L 46.5 21.9 L 70.5 21.9 Z"/>
|
|
14
|
-
<path d="M 125.5 42.7 L 113.5 63.5 L 89.5 63.5 L 77.5 42.7 L 89.5 21.9 L 113.5 21.9 Z"/>
|
|
15
|
-
</g>
|
|
16
|
-
<path d="M 104 80 L 92 100.8 L 68 100.8 L 56 80 L 68 59.2 L 92 59.2 Z" fill="url(#bCell)" stroke="#FFD27A" stroke-width="1.5" stroke-linejoin="round"/>
|
|
17
|
-
</svg>
|
|
1
|
+
<svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Honeycomb">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bCell" x1="80" y1="59" x2="80" y2="101" gradientUnits="userSpaceOnUse">
|
|
4
|
+
<stop offset="0" stop-color="#FFC04D"/>
|
|
5
|
+
<stop offset="1" stop-color="#E0860C"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<g stroke="#F7A823" stroke-width="5.5" stroke-linejoin="round" fill="none" stroke-opacity="0.85">
|
|
9
|
+
<path d="M 147.1 80 L 135.1 100.8 L 111.1 100.8 L 99.1 80 L 111.1 59.2 L 135.1 59.2 Z"/>
|
|
10
|
+
<path d="M 125.5 117.3 L 113.5 138.1 L 89.5 138.1 L 77.5 117.3 L 89.5 96.5 L 113.5 96.5 Z"/>
|
|
11
|
+
<path d="M 82.5 117.3 L 70.5 138.1 L 46.5 138.1 L 34.5 117.3 L 46.5 96.5 L 70.5 96.5 Z"/>
|
|
12
|
+
<path d="M 60.9 80 L 48.9 100.8 L 24.9 100.8 L 12.9 80 L 24.9 59.2 L 48.9 59.2 Z"/>
|
|
13
|
+
<path d="M 82.5 42.7 L 70.5 63.5 L 46.5 63.5 L 34.5 42.7 L 46.5 21.9 L 70.5 21.9 Z"/>
|
|
14
|
+
<path d="M 125.5 42.7 L 113.5 63.5 L 89.5 63.5 L 77.5 42.7 L 89.5 21.9 L 113.5 21.9 Z"/>
|
|
15
|
+
</g>
|
|
16
|
+
<path d="M 104 80 L 92 100.8 L 68 100.8 L 56 80 L 68 59.2 L 92 59.2 Z" fill="url(#bCell)" stroke="#FFD27A" stroke-width="1.5" stroke-linejoin="round"/>
|
|
17
|
+
</svg>
|
package/assets/readme.md
CHANGED
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
# Honeycomb — Design System
|
|
2
|
-
|
|
3
|
-
The brand, tokens, components, and UI kit for **Honeycomb** — shared, self-improving memory for AI coding agents. A **Legion Code × Activeloop** collaboration: Honeycomb is the agent-memory product; [Activeloop Deep Lake](https://activeloop.ai) is the vector + columnar substrate its memory lives in.
|
|
4
|
-
|
|
5
|
-
> One agent solves a problem on Monday; every agent on the team recalls and reuses it after — context inspectable, scoped, and repairable, not trapped behind a black-box API.
|
|
6
|
-
|
|
7
|
-
This design system inherits the structural foundations of the parent **Legion Code** brand (dark-native, Inter + JetBrains Mono, 4px spacing, "mono is the texture of trust") and gives Honeycomb its own identity: a **warm honey-amber** hue and the **comb-cell** motif, with a reserved **violet "Pollinate"** accent for the Pollinating consolidation loop.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Sources
|
|
12
|
-
|
|
13
|
-
Everything here was derived from material the team provided. You may not have access; links are recorded so you can go deeper if you do.
|
|
14
|
-
|
|
15
|
-
- **GitHub — [`legioncodeinc/honeycomb`](https://github.com/legioncodeinc/honeycomb)** — the product. Daemon + thin clients (six harnesses), the memory pipeline, and the dashboard. Key reads: `README.md`, `library/knowledge/private/overview.md`, `library/knowledge/private/ai/pollinating-loop.md`, and the dashboard contract under `src/dashboard/` (`contracts.ts`, `views.ts`, `html.ts`) — the UI kit recreates that dashboard. Explore the repo to build higher-fidelity Honeycomb surfaces.
|
|
16
|
-
- **GitHub — [`legioncodeinc/brands`](https://github.com/legioncodeinc) → `legion-code-inc/`** — the parent Legion Code brand: token stylesheet (`colors_and_type.css`), the Inter + JetBrains Mono font families (imported here), and the brand guide. Honeycomb's structure is inherited from it.
|
|
17
|
-
- **Activeloop Deep Lake — [activeloop.ai](https://activeloop.ai)** — the storage partner; logo in `logos/`.
|
|
18
|
-
|
|
19
|
-
> ⚠️ **Honeycomb has no logo of its own yet.** The comb-cell mark in `logos/honeycomb-mark.svg` is a clean geometric placeholder built for this system. Replace it with the official mark when one exists.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## What it is — product context
|
|
24
|
-
|
|
25
|
-
Honeycomb is a long-lived local **daemon** (binds `127.0.0.1:3850`, loopback only) plus thin clients. The daemon is the *sole* Deep Lake client; every harness, the CLI, the MCP server, and the SDK reach it over loopback HTTP.
|
|
26
|
-
|
|
27
|
-
- **Capture** every turn from any of six harnesses (Claude Code, Cursor, Codex, Hermes, pi, OpenClaw).
|
|
28
|
-
- **Distill** raw events into source-backed facts, entities, and skills with provenance.
|
|
29
|
-
- **Recall** the right context before the next turn — hybrid lexical (BM25) + 768-dim semantic.
|
|
30
|
-
- **Compound** — the **Pollinating loop** periodically merges duplicates, prunes junk, and supersedes stale claims, so memory gets sharper instead of noisier. The **skillify** miner turns recurring traces into reusable team skills.
|
|
31
|
-
|
|
32
|
-
The most user-visible surface is the **dashboard** (recreated in `ui_kits/dashboard/`): KPIs, sessions, settings, the codebase graph, org rules, skill-sync, and a live log.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## Content fundamentals
|
|
37
|
-
|
|
38
|
-
How Honeycomb writes. Inherited from Legion Code's voice — *the direct expert next door* — sharpened for a memory product.
|
|
39
|
-
|
|
40
|
-
- **Voice:** calm, plain, technically literate. Never hedging, never hype. Short declaratives. "Memory that sticks." "Learn something once, recall it everywhere."
|
|
41
|
-
- **Person:** address the user as **you** ("your agents", "what one agent learns"); the product is **Honeycomb** or **the daemon**, never "we" inside the product UI. Marketing prose may use "we" sparingly.
|
|
42
|
-
- **Casing:** sentence case everywhere — headings, buttons, labels. The wordmark **honeycomb** is lowercase. Mono labels/eyebrows are the only UPPERCASE, and only for small section labels.
|
|
43
|
-
- **Claims carry evidence.** Every recalled memory shows its **source** (a file path or session id) and a **score**. "Receipts, or it doesn't count." The `verified` (green) state means source-backed.
|
|
44
|
-
- **Mono for anything you could click, copy, or search:** memory keys, session ids, hashes, file paths, recall queries, token counts, timestamps. When the user sees mono, they trust it's real.
|
|
45
|
-
- **Signature vocabulary:** *memory, recall, capture, distill, the comb, cells, Pollinating, consolidate, skillify, harness, daemon, provenance, source-backed, scope (personal/team/org).*
|
|
46
|
-
- **No emoji.** Status is carried by color + a small dot/glyph, never an emoji. The only "icon" glyphs are the comb hexagon, the `✓` verified check, and rule dots `● / ○`.
|
|
47
|
-
- **Numbers are concrete and mono:** `1,284 memories`, `0.94`, `128k tok`, `:3850`. No vague "lots" — show the count.
|
|
48
|
-
|
|
49
|
-
**Examples (from the product):**
|
|
50
|
-
- `recall "how do we deploy"` → `4 hits · 0.94 top`
|
|
51
|
-
- "Not logged in to Honeycomb. Run: `honeycomb login`"
|
|
52
|
-
- "No graph built for this workspace. Run `honeycomb graph build`."
|
|
53
|
-
- "While you sleep, the AI goes back through everything it learned, tosses the junk, ties the pieces together, and wakes up smarter."
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Visual foundations
|
|
58
|
-
|
|
59
|
-
**Palette.** Dark-native, warm-tinted. Canvas is a warm near-black (`#0C0A07`) — five surfaces, four text levels, three border weights. One brand hue — **honey amber `#F7A823`** — governed by a **scarcity rule**: one saturated honey region per visible view (the primary action, the active recall, the live comb). A reserved second accent — **pollinate violet `#8B7CF0`** — appears only for the Pollinating loop and night/maintenance states. **Verified-green `#3DDC97`** (inherited from Legion) marks source-backed/proven memory. Severity colors (critical/warning/info/success) are semantic only, never decorative. A light theme exists for docs and exported reports.
|
|
60
|
-
|
|
61
|
-
**Typography.** **Inter** for all UI and prose; **JetBrains Mono** for every coordinate of trust. Modular 1.25 scale on a 16px base. Headings are Inter 700 with tight tracking (`-0.02 to -0.04em`). Eyebrows are uppercase mono with `0.08em` tracking. Display is reserved for marketing hero.
|
|
62
|
-
|
|
63
|
-
**Spacing & layout.** 4px base unit; every value a multiple of 4. Generous whitespace. Dashboard content is a centered max-width column (~1180px); panels sit in a responsive 2-column grid that collapses to one. Layout is calm and gridded — no diagonal or overlapping chrome.
|
|
64
|
-
|
|
65
|
-
**Backgrounds.** Flat warm-dark surfaces. **No gradient washes**, no photographic hero imagery, no noise/grain. The one recurring texture is the **comb** — interlocking hexagonal cells (see `guidelines/cards/brand-comb.html`), each cell a memory; lit cells are recalled/verified/pollinating. Use it as a quiet motif (corner fields, empty-state art, loaders), never a loud full-bleed pattern.
|
|
66
|
-
|
|
67
|
-
**Corners & cards.** Five-step radius ladder: 4 (chips), 8 (buttons/inputs), 12 (cards), 16 (panels/hero), full (dots/avatars). **Cards use a 1px border on `bg.elevated`, 12px radius, and no drop shadow** — border, not elevation, defines a card. The single expressive light is the **honey/pollinate glow** (`--glow-honey`, `--glow-pollinate`), used on exactly one focused element (an active recall hit, a pollinating cell).
|
|
68
|
-
|
|
69
|
-
**Borders & dividers.** Three weights (`subtle / default / strong`). Panel headers separate from body with a `border-subtle` rule. Hairline (1px) everywhere — no heavy rules.
|
|
70
|
-
|
|
71
|
-
**Elevation & shadow.** Three subtle ambient shadows (`sm/md/lg`) for genuinely floating UI (menus, toasts). Cards and panels do not use them. No colored decorative shadows except the two glows.
|
|
72
|
-
|
|
73
|
-
**Motion.** Disciplined and brief. Default easing `cubic-bezier(0.2, 0.8, 0.2, 1)`; durations 120ms (fast), 200ms (base), 400ms (slow). Recall results fade-and-rise in with a ~55ms stagger. The **one exception** is the **Pollinating pulse** (`--dur-pollinate` 900ms, ease-in-out, alternating opacity) — slow and breathing, used only for consolidation states. `prefers-reduced-motion` disables all motion.
|
|
74
|
-
|
|
75
|
-
**Hover / press.** Hover lightens fills one step (honey → honey-hover) or brightens a card border to `strong`. Press nudges `translateY(1px)` — no scale bounce. Focus shows a 2px honey outline at 2px offset, or a 3px honey-subtle ring on inputs.
|
|
76
|
-
|
|
77
|
-
**Transparency & blur.** Used sparingly: the `*-subtle` token tints (12–14% honey/pollinate/severity) for soft fills behind badges and banners. No glassmorphism / backdrop-blur chrome.
|
|
78
|
-
|
|
79
|
-
**Imagery vibe.** Warm, dark, restrained. If photography is ever introduced, it should be warm-toned and low-key to sit on the canvas — but the brand leans on the comb motif and mono typography over imagery.
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Iconography
|
|
84
|
-
|
|
85
|
-
Honeycomb inherits Legion Code's icon discipline.
|
|
86
|
-
|
|
87
|
-
- **System:** **[Lucide](https://lucide.dev)** — 24×24 grid, **1.5px stroke, stroked (not filled), geometric**, no mascots or metaphors. Load from CDN: `https://unpkg.com/lucide-static/icons/<name>.svg` (or the `lucide-react` package in a build). Match `currentColor` so icons inherit text color.
|
|
88
|
-
- **The verified check** (`✓`) gets a slight weight bump (~2px) — the one icon that signals trust may be a touch heavier. Rendered in `--verified` green.
|
|
89
|
-
- **The brand glyph** is the **comb hexagon** (`logos/honeycomb-mark.svg`) — the only bespoke mark. Use single hex cells as bullets/status chips (see `MemoryCard`), and the interlocking comb as motif/empty-state art.
|
|
90
|
-
- **Status is color + dot, not emoji.** Session/agent/rule states use a small filled circle in the semantic color. Rules use `●` (active) / `○` (inactive). **No emoji anywhere.**
|
|
91
|
-
- **No bespoke SVG illustration.** Beyond the hex mark and the comb grid (both pure geometry), don't hand-draw icons — pull the closest Lucide glyph.
|
|
92
|
-
|
|
93
|
-
> No Honeycomb icon set ships in the repo; Lucide is the documented substitute and matches the parent brand's stated icon rules. Flagged as a substitution.
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Index — what's in this system
|
|
98
|
-
|
|
99
|
-
**Foundations** (`styles.css` → `tokens/`)
|
|
100
|
-
- `tokens/colors.css` — surfaces, text, borders, honey, honey scale, pollinate, severity, verified (+ light theme)
|
|
101
|
-
- `tokens/typography.css` — families, 1.25 scale, weights, tracking
|
|
102
|
-
- `tokens/spacing.css` — 4px spacing, radii, elevation + glows, motion
|
|
103
|
-
- `tokens/fonts.css` — Inter + JetBrains Mono `@font-face` (binaries in `logos/fonts/`)
|
|
104
|
-
- `tokens/base.css` — element + semantic base styles
|
|
105
|
-
|
|
106
|
-
**Components** (`components/`) — React primitives, `window.HoneycombDesignSystem_d60529`
|
|
107
|
-
- `core/` — `Button`, `Badge`, `Card`, `Input`
|
|
108
|
-
- `honeycomb/` — `MemoryCard` (the signature recalled-memory cell), `Kpi` (dashboard metric tile)
|
|
109
|
-
|
|
110
|
-
**UI kit** (`ui_kits/`)
|
|
111
|
-
- `dashboard/` — interactive recreation of the daemon-served dashboard (KPIs, sessions, rules, codebase graph, skill-sync, live log, recall, Pollinating, connectivity-down banner)
|
|
112
|
-
|
|
113
|
-
**Specimen cards** (`guidelines/cards/`) — the Design System tab: Colors (5), Type (4), Spacing (3), Brand (2), Components (2).
|
|
114
|
-
|
|
115
|
-
**Logos** (`logos/`) — `honeycomb-mark.svg`, `honeycomb-wordmark.svg`, `activeloop.png`, `legion-code.png`, `fonts/`.
|
|
116
|
-
|
|
117
|
-
**Skill** — `SKILL.md` makes this directory usable as an Agent Skill in Claude Code.
|
|
1
|
+
# Honeycomb — Design System
|
|
2
|
+
|
|
3
|
+
The brand, tokens, components, and UI kit for **Honeycomb** — shared, self-improving memory for AI coding agents. A **Legion Code × Activeloop** collaboration: Honeycomb is the agent-memory product; [Activeloop Deep Lake](https://activeloop.ai) is the vector + columnar substrate its memory lives in.
|
|
4
|
+
|
|
5
|
+
> One agent solves a problem on Monday; every agent on the team recalls and reuses it after — context inspectable, scoped, and repairable, not trapped behind a black-box API.
|
|
6
|
+
|
|
7
|
+
This design system inherits the structural foundations of the parent **Legion Code** brand (dark-native, Inter + JetBrains Mono, 4px spacing, "mono is the texture of trust") and gives Honeycomb its own identity: a **warm honey-amber** hue and the **comb-cell** motif, with a reserved **violet "Pollinate"** accent for the Pollinating consolidation loop.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Sources
|
|
12
|
+
|
|
13
|
+
Everything here was derived from material the team provided. You may not have access; links are recorded so you can go deeper if you do.
|
|
14
|
+
|
|
15
|
+
- **GitHub — [`legioncodeinc/honeycomb`](https://github.com/legioncodeinc/honeycomb)** — the product. Daemon + thin clients (six harnesses), the memory pipeline, and the dashboard. Key reads: `README.md`, `library/knowledge/private/overview.md`, `library/knowledge/private/ai/pollinating-loop.md`, and the dashboard contract under `src/dashboard/` (`contracts.ts`, `views.ts`, `html.ts`) — the UI kit recreates that dashboard. Explore the repo to build higher-fidelity Honeycomb surfaces.
|
|
16
|
+
- **GitHub — [`legioncodeinc/brands`](https://github.com/legioncodeinc) → `legion-code-inc/`** — the parent Legion Code brand: token stylesheet (`colors_and_type.css`), the Inter + JetBrains Mono font families (imported here), and the brand guide. Honeycomb's structure is inherited from it.
|
|
17
|
+
- **Activeloop Deep Lake — [activeloop.ai](https://activeloop.ai)** — the storage partner; logo in `logos/`.
|
|
18
|
+
|
|
19
|
+
> ⚠️ **Honeycomb has no logo of its own yet.** The comb-cell mark in `logos/honeycomb-mark.svg` is a clean geometric placeholder built for this system. Replace it with the official mark when one exists.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## What it is — product context
|
|
24
|
+
|
|
25
|
+
Honeycomb is a long-lived local **daemon** (binds `127.0.0.1:3850`, loopback only) plus thin clients. The daemon is the *sole* Deep Lake client; every harness, the CLI, the MCP server, and the SDK reach it over loopback HTTP.
|
|
26
|
+
|
|
27
|
+
- **Capture** every turn from any of six harnesses (Claude Code, Cursor, Codex, Hermes, pi, OpenClaw).
|
|
28
|
+
- **Distill** raw events into source-backed facts, entities, and skills with provenance.
|
|
29
|
+
- **Recall** the right context before the next turn — hybrid lexical (BM25) + 768-dim semantic.
|
|
30
|
+
- **Compound** — the **Pollinating loop** periodically merges duplicates, prunes junk, and supersedes stale claims, so memory gets sharper instead of noisier. The **skillify** miner turns recurring traces into reusable team skills.
|
|
31
|
+
|
|
32
|
+
The most user-visible surface is the **dashboard** (recreated in `ui_kits/dashboard/`): KPIs, sessions, settings, the codebase graph, org rules, skill-sync, and a live log.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Content fundamentals
|
|
37
|
+
|
|
38
|
+
How Honeycomb writes. Inherited from Legion Code's voice — *the direct expert next door* — sharpened for a memory product.
|
|
39
|
+
|
|
40
|
+
- **Voice:** calm, plain, technically literate. Never hedging, never hype. Short declaratives. "Memory that sticks." "Learn something once, recall it everywhere."
|
|
41
|
+
- **Person:** address the user as **you** ("your agents", "what one agent learns"); the product is **Honeycomb** or **the daemon**, never "we" inside the product UI. Marketing prose may use "we" sparingly.
|
|
42
|
+
- **Casing:** sentence case everywhere — headings, buttons, labels. The wordmark **honeycomb** is lowercase. Mono labels/eyebrows are the only UPPERCASE, and only for small section labels.
|
|
43
|
+
- **Claims carry evidence.** Every recalled memory shows its **source** (a file path or session id) and a **score**. "Receipts, or it doesn't count." The `verified` (green) state means source-backed.
|
|
44
|
+
- **Mono for anything you could click, copy, or search:** memory keys, session ids, hashes, file paths, recall queries, token counts, timestamps. When the user sees mono, they trust it's real.
|
|
45
|
+
- **Signature vocabulary:** *memory, recall, capture, distill, the comb, cells, Pollinating, consolidate, skillify, harness, daemon, provenance, source-backed, scope (personal/team/org).*
|
|
46
|
+
- **No emoji.** Status is carried by color + a small dot/glyph, never an emoji. The only "icon" glyphs are the comb hexagon, the `✓` verified check, and rule dots `● / ○`.
|
|
47
|
+
- **Numbers are concrete and mono:** `1,284 memories`, `0.94`, `128k tok`, `:3850`. No vague "lots" — show the count.
|
|
48
|
+
|
|
49
|
+
**Examples (from the product):**
|
|
50
|
+
- `recall "how do we deploy"` → `4 hits · 0.94 top`
|
|
51
|
+
- "Not logged in to Honeycomb. Run: `honeycomb login`"
|
|
52
|
+
- "No graph built for this workspace. Run `honeycomb graph build`."
|
|
53
|
+
- "While you sleep, the AI goes back through everything it learned, tosses the junk, ties the pieces together, and wakes up smarter."
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Visual foundations
|
|
58
|
+
|
|
59
|
+
**Palette.** Dark-native, warm-tinted. Canvas is a warm near-black (`#0C0A07`) — five surfaces, four text levels, three border weights. One brand hue — **honey amber `#F7A823`** — governed by a **scarcity rule**: one saturated honey region per visible view (the primary action, the active recall, the live comb). A reserved second accent — **pollinate violet `#8B7CF0`** — appears only for the Pollinating loop and night/maintenance states. **Verified-green `#3DDC97`** (inherited from Legion) marks source-backed/proven memory. Severity colors (critical/warning/info/success) are semantic only, never decorative. A light theme exists for docs and exported reports.
|
|
60
|
+
|
|
61
|
+
**Typography.** **Inter** for all UI and prose; **JetBrains Mono** for every coordinate of trust. Modular 1.25 scale on a 16px base. Headings are Inter 700 with tight tracking (`-0.02 to -0.04em`). Eyebrows are uppercase mono with `0.08em` tracking. Display is reserved for marketing hero.
|
|
62
|
+
|
|
63
|
+
**Spacing & layout.** 4px base unit; every value a multiple of 4. Generous whitespace. Dashboard content is a centered max-width column (~1180px); panels sit in a responsive 2-column grid that collapses to one. Layout is calm and gridded — no diagonal or overlapping chrome.
|
|
64
|
+
|
|
65
|
+
**Backgrounds.** Flat warm-dark surfaces. **No gradient washes**, no photographic hero imagery, no noise/grain. The one recurring texture is the **comb** — interlocking hexagonal cells (see `guidelines/cards/brand-comb.html`), each cell a memory; lit cells are recalled/verified/pollinating. Use it as a quiet motif (corner fields, empty-state art, loaders), never a loud full-bleed pattern.
|
|
66
|
+
|
|
67
|
+
**Corners & cards.** Five-step radius ladder: 4 (chips), 8 (buttons/inputs), 12 (cards), 16 (panels/hero), full (dots/avatars). **Cards use a 1px border on `bg.elevated`, 12px radius, and no drop shadow** — border, not elevation, defines a card. The single expressive light is the **honey/pollinate glow** (`--glow-honey`, `--glow-pollinate`), used on exactly one focused element (an active recall hit, a pollinating cell).
|
|
68
|
+
|
|
69
|
+
**Borders & dividers.** Three weights (`subtle / default / strong`). Panel headers separate from body with a `border-subtle` rule. Hairline (1px) everywhere — no heavy rules.
|
|
70
|
+
|
|
71
|
+
**Elevation & shadow.** Three subtle ambient shadows (`sm/md/lg`) for genuinely floating UI (menus, toasts). Cards and panels do not use them. No colored decorative shadows except the two glows.
|
|
72
|
+
|
|
73
|
+
**Motion.** Disciplined and brief. Default easing `cubic-bezier(0.2, 0.8, 0.2, 1)`; durations 120ms (fast), 200ms (base), 400ms (slow). Recall results fade-and-rise in with a ~55ms stagger. The **one exception** is the **Pollinating pulse** (`--dur-pollinate` 900ms, ease-in-out, alternating opacity) — slow and breathing, used only for consolidation states. `prefers-reduced-motion` disables all motion.
|
|
74
|
+
|
|
75
|
+
**Hover / press.** Hover lightens fills one step (honey → honey-hover) or brightens a card border to `strong`. Press nudges `translateY(1px)` — no scale bounce. Focus shows a 2px honey outline at 2px offset, or a 3px honey-subtle ring on inputs.
|
|
76
|
+
|
|
77
|
+
**Transparency & blur.** Used sparingly: the `*-subtle` token tints (12–14% honey/pollinate/severity) for soft fills behind badges and banners. No glassmorphism / backdrop-blur chrome.
|
|
78
|
+
|
|
79
|
+
**Imagery vibe.** Warm, dark, restrained. If photography is ever introduced, it should be warm-toned and low-key to sit on the canvas — but the brand leans on the comb motif and mono typography over imagery.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Iconography
|
|
84
|
+
|
|
85
|
+
Honeycomb inherits Legion Code's icon discipline.
|
|
86
|
+
|
|
87
|
+
- **System:** **[Lucide](https://lucide.dev)** — 24×24 grid, **1.5px stroke, stroked (not filled), geometric**, no mascots or metaphors. Load from CDN: `https://unpkg.com/lucide-static/icons/<name>.svg` (or the `lucide-react` package in a build). Match `currentColor` so icons inherit text color.
|
|
88
|
+
- **The verified check** (`✓`) gets a slight weight bump (~2px) — the one icon that signals trust may be a touch heavier. Rendered in `--verified` green.
|
|
89
|
+
- **The brand glyph** is the **comb hexagon** (`logos/honeycomb-mark.svg`) — the only bespoke mark. Use single hex cells as bullets/status chips (see `MemoryCard`), and the interlocking comb as motif/empty-state art.
|
|
90
|
+
- **Status is color + dot, not emoji.** Session/agent/rule states use a small filled circle in the semantic color. Rules use `●` (active) / `○` (inactive). **No emoji anywhere.**
|
|
91
|
+
- **No bespoke SVG illustration.** Beyond the hex mark and the comb grid (both pure geometry), don't hand-draw icons — pull the closest Lucide glyph.
|
|
92
|
+
|
|
93
|
+
> No Honeycomb icon set ships in the repo; Lucide is the documented substitute and matches the parent brand's stated icon rules. Flagged as a substitution.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Index — what's in this system
|
|
98
|
+
|
|
99
|
+
**Foundations** (`styles.css` → `tokens/`)
|
|
100
|
+
- `tokens/colors.css` — surfaces, text, borders, honey, honey scale, pollinate, severity, verified (+ light theme)
|
|
101
|
+
- `tokens/typography.css` — families, 1.25 scale, weights, tracking
|
|
102
|
+
- `tokens/spacing.css` — 4px spacing, radii, elevation + glows, motion
|
|
103
|
+
- `tokens/fonts.css` — Inter + JetBrains Mono `@font-face` (binaries in `logos/fonts/`)
|
|
104
|
+
- `tokens/base.css` — element + semantic base styles
|
|
105
|
+
|
|
106
|
+
**Components** (`components/`) — React primitives, `window.HoneycombDesignSystem_d60529`
|
|
107
|
+
- `core/` — `Button`, `Badge`, `Card`, `Input`
|
|
108
|
+
- `honeycomb/` — `MemoryCard` (the signature recalled-memory cell), `Kpi` (dashboard metric tile)
|
|
109
|
+
|
|
110
|
+
**UI kit** (`ui_kits/`)
|
|
111
|
+
- `dashboard/` — interactive recreation of the daemon-served dashboard (KPIs, sessions, rules, codebase graph, skill-sync, live log, recall, Pollinating, connectivity-down banner)
|
|
112
|
+
|
|
113
|
+
**Specimen cards** (`guidelines/cards/`) — the Design System tab: Colors (5), Type (4), Spacing (3), Brand (2), Components (2).
|
|
114
|
+
|
|
115
|
+
**Logos** (`logos/`) — `honeycomb-mark.svg`, `honeycomb-wordmark.svg`, `activeloop.png`, `legion-code.png`, `fonts/`.
|
|
116
|
+
|
|
117
|
+
**Skill** — `SKILL.md` makes this directory usable as an Agent Skill in Claude Code.
|
package/assets/styles.css
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
/* ============================================================
|
|
2
|
-
Honeycomb — Design System entry stylesheet
|
|
3
|
-
The single file consumers link. Import order matters:
|
|
4
|
-
fonts → tokens → base. Keep this file as @import lines only.
|
|
5
|
-
============================================================ */
|
|
6
|
-
|
|
7
|
-
@import url('tokens/fonts.css');
|
|
8
|
-
@import url('tokens/colors.css');
|
|
9
|
-
@import url('tokens/typography.css');
|
|
10
|
-
@import url('tokens/spacing.css');
|
|
11
|
-
@import url('tokens/base.css');
|
|
1
|
+
/* ============================================================
|
|
2
|
+
Honeycomb — Design System entry stylesheet
|
|
3
|
+
The single file consumers link. Import order matters:
|
|
4
|
+
fonts → tokens → base. Keep this file as @import lines only.
|
|
5
|
+
============================================================ */
|
|
6
|
+
|
|
7
|
+
@import url('tokens/fonts.css');
|
|
8
|
+
@import url('tokens/colors.css');
|
|
9
|
+
@import url('tokens/typography.css');
|
|
10
|
+
@import url('tokens/spacing.css');
|
|
11
|
+
@import url('tokens/base.css');
|
package/assets/tokens/base.css
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
/* ============================================================
|
|
2
|
-
Honeycomb — Base + semantic element styles
|
|
3
|
-
Foundation layer applied to the document. Tag elements with the
|
|
4
|
-
classes below or use as a base for product CSS.
|
|
5
|
-
============================================================ */
|
|
6
|
-
|
|
7
|
-
* { box-sizing: border-box; }
|
|
8
|
-
|
|
9
|
-
html, body {
|
|
10
|
-
background: var(--bg-canvas);
|
|
11
|
-
color: var(--text-primary);
|
|
12
|
-
font-family: var(--font-sans);
|
|
13
|
-
font-size: var(--text-base);
|
|
14
|
-
line-height: var(--lh-base);
|
|
15
|
-
-webkit-font-smoothing: antialiased;
|
|
16
|
-
-moz-osx-font-smoothing: grayscale;
|
|
17
|
-
font-feature-settings: 'cv11', 'ss01';
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/* Headings — Inter 700, tight tracking */
|
|
21
|
-
h1, .h1 { font-size: var(--text-5xl); line-height: var(--lh-5xl); font-weight: 700; letter-spacing: var(--tracking-tight); margin: 0; }
|
|
22
|
-
h2, .h2 { font-size: var(--text-4xl); line-height: var(--lh-4xl); font-weight: 700; letter-spacing: -0.02em; margin: 0; }
|
|
23
|
-
h3, .h3 { font-size: var(--text-3xl); line-height: var(--lh-3xl); font-weight: 700; letter-spacing: -0.02em; margin: 0; }
|
|
24
|
-
h4, .h4 { font-size: var(--text-2xl); line-height: var(--lh-2xl); font-weight: 600; letter-spacing: -0.01em; margin: 0; }
|
|
25
|
-
h5, .h5 { font-size: var(--text-xl); line-height: var(--lh-xl); font-weight: 600; margin: 0; }
|
|
26
|
-
h6, .h6 { font-size: var(--text-lg); line-height: var(--lh-lg); font-weight: 600; margin: 0; }
|
|
27
|
-
|
|
28
|
-
p, .body { font-size: var(--text-base); line-height: var(--lh-base); color: var(--text-secondary); }
|
|
29
|
-
.body-lg { font-size: var(--text-lg); line-height: var(--lh-lg); color: var(--text-secondary); }
|
|
30
|
-
.body-sm { font-size: var(--text-sm); line-height: var(--lh-sm); color: var(--text-secondary); }
|
|
31
|
-
.caption { font-size: var(--text-xs); line-height: var(--lh-xs); color: var(--text-tertiary); }
|
|
32
|
-
|
|
33
|
-
/* Display — marketing hero only */
|
|
34
|
-
.display { font-size: var(--text-7xl); line-height: var(--lh-7xl); font-weight: 700; letter-spacing: -0.04em; }
|
|
35
|
-
|
|
36
|
-
/* Mono — the texture of trust. Memory keys, session ids, hashes,
|
|
37
|
-
file paths, recall queries, token counts, timestamps. */
|
|
38
|
-
code, kbd, samp, pre, .mono {
|
|
39
|
-
font-family: var(--font-mono);
|
|
40
|
-
font-feature-settings: 'liga' 0;
|
|
41
|
-
}
|
|
42
|
-
.mono-sm { font-family: var(--font-mono); font-size: var(--text-sm); line-height: var(--lh-sm); }
|
|
43
|
-
.mono-xs { font-family: var(--font-mono); font-size: var(--text-xs); line-height: var(--lh-xs); }
|
|
44
|
-
|
|
45
|
-
/* Eyebrow — uppercase mono label above section titles */
|
|
46
|
-
.eyebrow {
|
|
47
|
-
font-family: var(--font-mono);
|
|
48
|
-
font-size: var(--text-xs);
|
|
49
|
-
text-transform: uppercase;
|
|
50
|
-
letter-spacing: var(--tracking-wide);
|
|
51
|
-
color: var(--text-tertiary);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/* Wordmark — Inter 700, lowercase, tight tracking (the honeycomb mark) */
|
|
55
|
-
.wordmark {
|
|
56
|
-
font-family: var(--font-sans);
|
|
57
|
-
font-weight: 700;
|
|
58
|
-
letter-spacing: -0.03em;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/* Focus ring — honey, on interactive elements */
|
|
62
|
-
:focus-visible {
|
|
63
|
-
outline: 2px solid var(--honey);
|
|
64
|
-
outline-offset: 2px;
|
|
65
|
-
border-radius: var(--radius-sm);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/* Selection */
|
|
69
|
-
::selection {
|
|
70
|
-
background: var(--honey-subtle);
|
|
71
|
-
color: var(--text-primary);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@media (prefers-reduced-motion: reduce) {
|
|
75
|
-
* { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
|
|
76
|
-
}
|
|
1
|
+
/* ============================================================
|
|
2
|
+
Honeycomb — Base + semantic element styles
|
|
3
|
+
Foundation layer applied to the document. Tag elements with the
|
|
4
|
+
classes below or use as a base for product CSS.
|
|
5
|
+
============================================================ */
|
|
6
|
+
|
|
7
|
+
* { box-sizing: border-box; }
|
|
8
|
+
|
|
9
|
+
html, body {
|
|
10
|
+
background: var(--bg-canvas);
|
|
11
|
+
color: var(--text-primary);
|
|
12
|
+
font-family: var(--font-sans);
|
|
13
|
+
font-size: var(--text-base);
|
|
14
|
+
line-height: var(--lh-base);
|
|
15
|
+
-webkit-font-smoothing: antialiased;
|
|
16
|
+
-moz-osx-font-smoothing: grayscale;
|
|
17
|
+
font-feature-settings: 'cv11', 'ss01';
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Headings — Inter 700, tight tracking */
|
|
21
|
+
h1, .h1 { font-size: var(--text-5xl); line-height: var(--lh-5xl); font-weight: 700; letter-spacing: var(--tracking-tight); margin: 0; }
|
|
22
|
+
h2, .h2 { font-size: var(--text-4xl); line-height: var(--lh-4xl); font-weight: 700; letter-spacing: -0.02em; margin: 0; }
|
|
23
|
+
h3, .h3 { font-size: var(--text-3xl); line-height: var(--lh-3xl); font-weight: 700; letter-spacing: -0.02em; margin: 0; }
|
|
24
|
+
h4, .h4 { font-size: var(--text-2xl); line-height: var(--lh-2xl); font-weight: 600; letter-spacing: -0.01em; margin: 0; }
|
|
25
|
+
h5, .h5 { font-size: var(--text-xl); line-height: var(--lh-xl); font-weight: 600; margin: 0; }
|
|
26
|
+
h6, .h6 { font-size: var(--text-lg); line-height: var(--lh-lg); font-weight: 600; margin: 0; }
|
|
27
|
+
|
|
28
|
+
p, .body { font-size: var(--text-base); line-height: var(--lh-base); color: var(--text-secondary); }
|
|
29
|
+
.body-lg { font-size: var(--text-lg); line-height: var(--lh-lg); color: var(--text-secondary); }
|
|
30
|
+
.body-sm { font-size: var(--text-sm); line-height: var(--lh-sm); color: var(--text-secondary); }
|
|
31
|
+
.caption { font-size: var(--text-xs); line-height: var(--lh-xs); color: var(--text-tertiary); }
|
|
32
|
+
|
|
33
|
+
/* Display — marketing hero only */
|
|
34
|
+
.display { font-size: var(--text-7xl); line-height: var(--lh-7xl); font-weight: 700; letter-spacing: -0.04em; }
|
|
35
|
+
|
|
36
|
+
/* Mono — the texture of trust. Memory keys, session ids, hashes,
|
|
37
|
+
file paths, recall queries, token counts, timestamps. */
|
|
38
|
+
code, kbd, samp, pre, .mono {
|
|
39
|
+
font-family: var(--font-mono);
|
|
40
|
+
font-feature-settings: 'liga' 0;
|
|
41
|
+
}
|
|
42
|
+
.mono-sm { font-family: var(--font-mono); font-size: var(--text-sm); line-height: var(--lh-sm); }
|
|
43
|
+
.mono-xs { font-family: var(--font-mono); font-size: var(--text-xs); line-height: var(--lh-xs); }
|
|
44
|
+
|
|
45
|
+
/* Eyebrow — uppercase mono label above section titles */
|
|
46
|
+
.eyebrow {
|
|
47
|
+
font-family: var(--font-mono);
|
|
48
|
+
font-size: var(--text-xs);
|
|
49
|
+
text-transform: uppercase;
|
|
50
|
+
letter-spacing: var(--tracking-wide);
|
|
51
|
+
color: var(--text-tertiary);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Wordmark — Inter 700, lowercase, tight tracking (the honeycomb mark) */
|
|
55
|
+
.wordmark {
|
|
56
|
+
font-family: var(--font-sans);
|
|
57
|
+
font-weight: 700;
|
|
58
|
+
letter-spacing: -0.03em;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Focus ring — honey, on interactive elements */
|
|
62
|
+
:focus-visible {
|
|
63
|
+
outline: 2px solid var(--honey);
|
|
64
|
+
outline-offset: 2px;
|
|
65
|
+
border-radius: var(--radius-sm);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Selection */
|
|
69
|
+
::selection {
|
|
70
|
+
background: var(--honey-subtle);
|
|
71
|
+
color: var(--text-primary);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@media (prefers-reduced-motion: reduce) {
|
|
75
|
+
* { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
|
|
76
|
+
}
|