bikky 0.2.0 → 0.2.2

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/README.md CHANGED
@@ -1,292 +1,117 @@
1
1
  # bikky
2
2
 
3
- **Shared persistent memory for AI coding sessions.**
3
+ **Shared persistent memory for AI coding agents.**
4
4
 
5
- bikky gives your AI coding assistants (GitHub Copilot, Claude Code) long-term memory that persists across sessions. Facts, decisions, architecture knowledge, and entity relationships are stored in a vector database and recalled automatically.
5
+ bikky gives your team's AI agents (GitHub Copilot, Claude Code) long-term memory that persists across sessions and is shared across team members. What one engineer's agent learns today, every agent on the team knows tomorrow.
6
6
 
7
- ---
8
-
9
- ## Why bikky exists
10
-
11
- Every engineering team builds institutional knowledge — the kind that doesn't live in documentation. Why that config value is what it is. Which deploy steps to run in which order. What broke last quarter and how it was fixed. Who owns what.
12
-
13
- This knowledge lives in people's heads, scattered across chat threads, and buried in closed PRs. When someone switches projects or leaves, it's gone. It's the most valuable and least durable asset a technical organisation has.
14
-
15
- ### AI agents amplify the problem
16
-
17
- AI coding agents are a force multiplier — teams ship more, explore more solutions, and touch more of the codebase than ever before. But that also means more decisions, more discoveries, and more institutional knowledge generated per day than any team can track manually. Some teams maintain hand-written knowledge bases to give agents context, but these drift quickly and become another thing to keep up to date. The knowledge that matters most — the things learned *during* sessions — still vanishes when the session closes.
18
-
19
- ### Knowledge that compounds
20
-
21
- bikky captures what agents learn during coding sessions and makes it available to every future session — for every team member — automatically. No manual documentation. No wikis to maintain.
7
+ <p align="center">
8
+ <img src="https://raw.githubusercontent.com/bikky-dev/bikky/main/docs/diagrams/team-memory.jpg" alt="Team memory — facts flow from individual sessions into a shared, self-curating knowledge store" width="720" />
9
+ </p>
22
10
 
23
- When one engineer's agent figures out a workaround for a tricky edge case, every agent on the team knows it from their next session onward. Each team member is amplified with the experience gathered by every other member. The 50th session on a codebase is dramatically more effective than the 1st not because of better prompts, but because of accumulated institutional memory.
11
+ <p align="center"><i>Knowledge flows from every team member's sessions into a shared store that curates itself over time deduplicating, distilling, and decaying stale factsso every future session starts smarter.</i></p>
24
12
 
25
- ### Self-curating
13
+ ---
26
14
 
27
- Raw accumulation creates noise. bikky curates knowledge automatically:
15
+ ### The problem
28
16
 
29
- - **Deduplication**identical or near-identical facts are merged, not duplicated
30
- - **Confidence decay** — old facts gradually lose weight and surface for review instead of being treated as gospel
31
- - **Contradiction detection** — new facts that conflict with existing ones replace them, not silently coexist
32
- - **Distillation** — recurring patterns across sessions are consolidated into higher-level insights
33
- - **Entity graph** — relationships between concepts are inferred automatically for richer recall
17
+ Every engineering team runs on institutional knowledge why that config value exists, which deploy steps matter, what broke last quarter. It lives in people's heads, chat threads, and closed PRs. When someone switches projects, it's gone. AI coding agents amplify this: teams generate more decisions and discoveries per day than anyone can track, and hand-written knowledge bases drift the moment they're published. The things learned *during* sessions — the most valuable knowledge — still vanish when the session closes.
34
18
 
35
- ### Zero maintenance
19
+ ### How bikky solves it
36
20
 
37
- bikky is not a wiki you have to write. Facts are captured as a natural byproduct of engineering work. The curation pipeline runs autonomously. Install once, and every session gets smarter.
21
+ | | |
22
+ |---|---|
23
+ | **Capture** | Facts are extracted automatically from session transcripts — no manual docs to write |
24
+ | **Share** | Every team member's agent recalls from the same knowledge store via semantic search |
25
+ | **Curate** | Deduplication, confidence decay, contradiction detection, and distillation run autonomously |
26
+ | **Compound** | Session 50 is dramatically better than session 1 — accumulated memory, not better prompts |
38
27
 
39
28
  ---
40
29
 
41
- ## How it works
42
-
43
- ![Architecture](https://raw.githubusercontent.com/bikky-dev/bikky/main/docs/diagrams/architecture.svg)
44
-
45
- **MCP Server** — 12 memory tools your AI assistant can call directly:
46
- - `memory_store` / `memory_recall` — store and search facts
47
- - `memory_entity` / `memory_relations` — entity knowledge graph
48
- - `memory_forget` / `memory_verify` — lifecycle management
49
- - `memory_session_summary` / `memory_distill` — session consolidation
50
- - `memory_heartbeat` — periodic reflection nudges
51
-
52
- **Daemon** — background process that passively reads session logs:
53
- - Watches `~/.copilot/session-state/` for new events
54
- - Extracts facts via LLM from conversation transcripts
55
- - Runs consolidation (distillation, contradiction detection)
56
- - Infers entity relationships from co-occurring facts
57
- - Scans for stale facts that need verification
58
-
59
30
  ## Quick start
60
31
 
61
32
  ```bash
62
- # Install globally
63
33
  npm install -g bikky
64
-
65
- # Add to your editor's MCP config
66
- bikky install
67
-
68
- # That's it — restart your editor and the memory tools appear
34
+ bikky install # writes MCP config for Copilot + Claude Code
69
35
  ```
70
36
 
71
- ### Prerequisites
72
-
73
- 1. **Qdrant Cloud** (free tier: 1GB, no credit card)
74
- - Sign up at [cloud.qdrant.io](https://cloud.qdrant.io)
75
- - Create a cluster → copy the REST URL and API key
76
-
77
- 2. **Embedding provider** (one of):
78
- - **Ollama** (default, runs locally, free) — `brew install ollama && ollama pull qwen3-embedding:0.6b`
79
- - **OpenAI** — set `OPENAI_API_KEY` env var
80
- - **AWS Bedrock** — configure AWS credentials
81
-
82
- ### Setup
83
-
84
- After installing, configure your Qdrant credentials. You can either:
85
-
86
- **Option A** — Let your AI assistant do it:
87
- ```
88
- > Call configure_credentials with my Qdrant URL and API key
89
- ```
37
+ **Prerequisites:** [Qdrant Cloud](https://cloud.qdrant.io) (free tier, no credit card) + an embedding provider ([Ollama](https://ollama.com) runs locally for free, or use OpenAI / AWS Bedrock).
90
38
 
91
- **Option B**Edit config directly:
92
- ```bash
93
- cat > ~/.bikky/config.json << 'EOF'
94
- {
95
- "qdrant_url": "https://your-cluster.cloud.qdrant.io:6333",
96
- "qdrant_api_key": "your-api-key-here"
97
- }
98
- EOF
99
- ```
39
+ Then configure credentials pick one:
100
40
 
101
- **Option C** — Environment variables:
102
41
  ```bash
103
- export QDRANT_URL="https://your-cluster.cloud.qdrant.io:6333"
104
- export QDRANT_API_KEY="your-api-key-here"
105
- ```
106
-
107
- ## Configuration
108
-
109
- Config lives at `~/.bikky/config.json`. Resolution order: **defaults → config file → env vars** (highest wins).
110
-
111
- ### Qdrant (required)
42
+ # Option A: let your agent do it
43
+ > "Call configure_credentials with my Qdrant URL and API key"
112
44
 
113
- | Setting | Env var | Default | Description |
114
- |---------|---------|---------|-------------|
115
- | `qdrant_url` | `QDRANT_URL` | *none — must be set* | Qdrant REST URL, e.g. `https://abc123.cloud.qdrant.io:6333` |
116
- | `qdrant_api_key` | `QDRANT_API_KEY` | *none — must be set* | Qdrant API key from cluster dashboard |
117
- | `collection` | `BIKKY_COLLECTION` | `bikky` | Collection name. Change only if running multiple instances |
45
+ # Option B: config file
46
+ echo '{ "qdrant_url": "https://…:6333", "qdrant_api_key": "…" }' > ~/.bikky/config.json
118
47
 
119
- ### Embedding & LLM providers
120
-
121
- Both `embedding.provider` and `llm.provider` accept exactly one of three values:
122
-
123
- | Value | What it is | Auth needed | `base_url` used? |
124
- |-------|-----------|-------------|-----------------|
125
- | `ollama` | Local Ollama server | None | ✅ default `http://localhost:11434` |
126
- | `openai` | OpenAI-compatible API | `api_key` or `OPENAI_API_KEY` | ✅ default `https://api.openai.com/v1` |
127
- | `bedrock` | AWS Bedrock | AWS credentials (env or IAM role) | ❌ uses AWS SDK |
128
-
129
- > **⚠️ Only these three values are valid.** Any other value will cause a silent fallback to Ollama.
130
-
131
- ### Embedding config
48
+ # Option C: env vars
49
+ export QDRANT_URL="https://…:6333" QDRANT_API_KEY="…"
50
+ ```
132
51
 
133
- | Setting | Env var | Default |
134
- |---------|---------|---------|
135
- | `embedding.provider` | `EMBEDDING_PROVIDER` | `ollama` |
136
- | `embedding.model` | `EMBEDDING_MODEL` | `qwen3-embedding:0.6b` |
137
- | `embedding.dimensions` | `EMBEDDING_DIMENSIONS` | `1024` |
138
- | `embedding.base_url` | `EMBEDDING_BASE_URL` | `http://localhost:11434` |
139
- | `embedding.api_key` | `OPENAI_API_KEY` | — |
52
+ Restart your editor 12 memory tools appear automatically.
140
53
 
141
- **Models by provider:**
54
+ > 📖 Full configuration reference (providers, models, daemon settings): **[docs/configuration.md](docs/configuration.md)**
142
55
 
143
- | Provider | Recommended models | Dimensions |
144
- |----------|-------------------|------------|
145
- | `ollama` | `qwen3-embedding:0.6b`, `nomic-embed-text` | `1024`, `768` |
146
- | `openai` | `text-embedding-3-small`, `text-embedding-3-large` | `1536`, `3072` |
147
- | `bedrock` | `amazon.titan-embed-text-v2:0` | `1024` |
56
+ ---
148
57
 
149
- > **⚠️ `dimensions` must match your model's output.** Mismatched dimensions will cause Qdrant insert errors. If you change the model, update dimensions too.
58
+ ## How it works
150
59
 
151
- ### LLM config (used by daemon for extraction & consolidation)
60
+ <p align="center">
61
+ <img src="https://raw.githubusercontent.com/bikky-dev/bikky/main/docs/diagrams/architecture.svg" alt="Architecture" width="600" />
62
+ </p>
152
63
 
153
- | Setting | Env var | Default |
154
- |---------|---------|---------|
155
- | `llm.provider` | `LLM_PROVIDER` | `ollama` |
156
- | `llm.model` | `LLM_MODEL` | `qwen2.5:7b` |
157
- | `llm.base_url` | `LLM_BASE_URL` | `http://localhost:11434` |
158
- | `llm.api_key` | `OPENAI_API_KEY` | — |
159
- | `llm.bedrock_region` | `AWS_BEDROCK_REGION` | `us-east-1` |
64
+ **MCP Server** tools your agent calls directly:
160
65
 
161
- **Models by provider:**
66
+ `memory_store` · `memory_recall` · `memory_entity` · `memory_relations` · `memory_forget` · `memory_verify` · `memory_session_summary` · `memory_distill` · `memory_heartbeat` · `memory_review` · `configure_credentials` · `verify_connection`
162
67
 
163
- | Provider | Recommended models |
164
- |----------|-------------------|
165
- | `ollama` | `qwen2.5:7b`, `llama3.1:8b`, or any local model |
166
- | `openai` | `gpt-4.1-mini`, `gpt-4.1` |
167
- | `bedrock` | `anthropic.claude-3-5-haiku-20241022-v1:0` |
68
+ **Daemon** background process that passively watches session logs, extracts facts via LLM, infers entity relationships, and runs the consolidation pipeline (distillation, contradiction detection, staleness scanning).
168
69
 
169
- > `llm.bedrock_region` falls back to `AWS_REGION` if `AWS_BEDROCK_REGION` is not set.
70
+ ---
170
71
 
171
- ### Provider auth quick-reference
72
+ ## Self-curation
172
73
 
173
- | Provider | What to set |
174
- |----------|------------|
175
- | `ollama` | Nothing — just have Ollama running locally (`ollama serve`) |
176
- | `openai` | `OPENAI_API_KEY` env var **or** `"api_key": "sk-..."` in the embedding/llm config block |
177
- | `bedrock` | `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` env vars, or an IAM instance role |
74
+ Raw fact accumulation creates noise. bikky keeps the knowledge store clean automatically:
178
75
 
179
- ### Copy-paste examples
76
+ - **Deduplication** — content hash + vector similarity merges near-identical facts
77
+ - **Confidence decay** — old facts lose weight and surface for review
78
+ - **Contradiction detection** — conflicting facts are resolved, not silently stacked
79
+ - **Distillation** — recurring patterns across sessions consolidate into higher-level insights
80
+ - **Entity graph** — relationships between concepts are inferred for richer recall
180
81
 
181
- **Ollama (default — zero config):**
182
- ```json
183
- {
184
- "qdrant_url": "https://your-cluster.cloud.qdrant.io:6333",
185
- "qdrant_api_key": "your-key"
186
- }
187
- ```
82
+ ### Ranking formula
188
83
 
189
- **OpenAI embeddings + LLM:**
190
- ```json
191
- {
192
- "qdrant_url": "https://your-cluster.cloud.qdrant.io:6333",
193
- "qdrant_api_key": "your-key",
194
- "embedding": {
195
- "provider": "openai",
196
- "model": "text-embedding-3-small",
197
- "dimensions": 1536,
198
- "api_key": "sk-..."
199
- },
200
- "llm": {
201
- "provider": "openai",
202
- "model": "gpt-4.1-mini",
203
- "api_key": "sk-..."
204
- }
205
- }
206
84
  ```
207
-
208
- **AWS Bedrock:**
209
- ```json
210
- {
211
- "qdrant_url": "https://your-cluster.cloud.qdrant.io:6333",
212
- "qdrant_api_key": "your-key",
213
- "embedding": {
214
- "provider": "bedrock",
215
- "model": "amazon.titan-embed-text-v2:0",
216
- "dimensions": 1024
217
- },
218
- "llm": {
219
- "provider": "bedrock",
220
- "model": "anthropic.claude-3-5-haiku-20241022-v1:0",
221
- "bedrock_region": "us-east-1"
222
- }
223
- }
85
+ (vectorScore × 0.55 + freshness × 0.15 + reinforcement × 0.1 + importance × 0.1)
86
+ × (0.7 + 0.3 × confidenceDecay)
224
87
  ```
225
88
 
226
- ### Daemon settings
227
-
228
- | Setting | Default | Description |
229
- |---------|---------|-------------|
230
- | `daemon.tick_interval_sec` | `5` | Seconds between daemon loop ticks |
231
- | `daemon.extract_every_sec` | `300` | Seconds between extraction runs |
232
- | `daemon.extract_min_events` | `5` | Minimum session events before triggering extraction |
233
- | `daemon.consolidation_enabled` | `true` | Auto-distill session summaries into patterns |
234
- | `daemon.relation_inference_enabled` | `true` | Infer entity relationships via LLM |
235
- | `daemon.staleness_threshold_days` | `30` | Days before a fact is flagged as stale |
236
-
237
- ### Watcher settings
89
+ ---
238
90
 
239
- | Setting | Default | Description |
240
- |---------|---------|-------------|
241
- | `watchers.copilot.enabled` | `true` | Watch GitHub Copilot session logs |
242
- | `watchers.copilot.path` | `~/.copilot/session-state` | Path to Copilot session directory |
243
- | `watchers.claude.enabled` | `false` | Watch Claude Code project logs |
244
- | `watchers.claude.path` | `~/.claude/projects` | Path to Claude Code projects directory |
91
+ ## Web UI
245
92
 
246
- ## CLI Commands
93
+ [`bikky-ui`](packages/ui) is a local dashboard for browsing and managing your team's memory — facts, entities, and the relationship graph.
247
94
 
248
95
  ```bash
249
- bikky mcp # Start MCP server (stdio) used by editors
250
- bikky setup # Interactive setup wizard
251
- bikky status # Check memory system status
252
- bikky install # Write MCP config for Copilot + Claude Code
96
+ npx bikky-ui # one-shotno install needed
97
+ # or install globally
98
+ npm install -g bikky-ui
99
+ bikky-ui # opens http://localhost:1422
253
100
  ```
254
101
 
255
- ## Memory architecture
256
-
257
- ### Deduplication
102
+ Pages: **Dashboard** (overview & stats) · **Memory** (browse/search facts) · **Entity** (deep-dive a single entity) · **Graph** (interactive entity relationship map)
258
103
 
259
- Two-layer dedup prevents bloat:
104
+ The UI reads from your existing `~/.bikky/config.json` — no extra configuration required.
260
105
 
261
- ![Deduplication](https://raw.githubusercontent.com/bikky-dev/bikky/main/docs/diagrams/dedup.svg)
106
+ ## CLI
262
107
 
263
- ### Ranking formula
264
- Facts are ranked using a combined score:
265
- ```
266
- (vectorScore × 0.55 + freshness × 0.15 + reinforcement × 0.1 + importance × 0.1)
267
- × (0.7 + 0.3 × confidenceDecay)
108
+ ```bash
109
+ bikky mcp # start MCP server (stdio) — used by editors
110
+ bikky setup # interactive setup wizard
111
+ bikky status # check memory system health
112
+ bikky install # write MCP config for Copilot + Claude Code
268
113
  ```
269
114
 
270
- ### Entity knowledge graph
271
-
272
- Facts mentioning multiple entities build an implicit graph:
273
-
274
- ![Entity Graph](https://raw.githubusercontent.com/bikky-dev/bikky/main/docs/diagrams/entity-graph.svg)
275
-
276
- The daemon periodically:
277
- 1. Scrolls all facts → builds entity co-occurrence map
278
- 2. For top pairs by shared-fact count → LLM infers relationship type
279
- 3. Stores typed edges (e.g., `user --[owns]--> project-x`)
280
-
281
- ### Consolidation pipeline
282
-
283
- ![Consolidation Pipeline](https://raw.githubusercontent.com/bikky-dev/bikky/main/docs/diagrams/consolidation.svg)
284
-
285
- - **Auto-distill** — merges 5+ session summaries into distilled patterns
286
- - **Contradiction detection** — flags conflicting facts for review
287
- - **Category rebalancing** — consolidates oversized categories
288
- - **Staleness scanning** — surfaces facts that haven't been verified in 30+ days
289
-
290
115
  ## License
291
116
 
292
117
  AGPL-3.0 — see [LICENSE](LICENSE).
package/dist/cli.d.ts CHANGED
@@ -6,9 +6,9 @@
6
6
  * bikky stop — stop background daemon
7
7
  * bikky mcp — start MCP server (stdio, for editor integration)
8
8
  * bikky daemon — start daemon in foreground (for debugging)
9
- * bikky setup — interactive setup wizard
9
+ * bikky setup — install MCP configs + start daemon (alias for start)
10
10
  * bikky status — check memory system status
11
- * bikky install write MCP config for Copilot / Claude Code
11
+ * bikky ui open memory explorer web UI
12
12
  * bikky --version — print version
13
13
  */
14
14
  export {};
package/dist/cli.js CHANGED
@@ -6,9 +6,9 @@
6
6
  * bikky stop — stop background daemon
7
7
  * bikky mcp — start MCP server (stdio, for editor integration)
8
8
  * bikky daemon — start daemon in foreground (for debugging)
9
- * bikky setup — interactive setup wizard
9
+ * bikky setup — install MCP configs + start daemon (alias for start)
10
10
  * bikky status — check memory system status
11
- * bikky install write MCP config for Copilot / Claude Code
11
+ * bikky ui open memory explorer web UI
12
12
  * bikky --version — print version
13
13
  */
14
14
  import fs from "node:fs";
@@ -67,9 +67,7 @@ async function main() {
67
67
  break;
68
68
  }
69
69
  case "setup":
70
- console.log("🧠 bikky setup");
71
- console.log("Run `bikky start` to install MCP configs and start the daemon.");
72
- console.log("Then call configure_credentials from your editor to set up Qdrant.");
70
+ await startAll();
73
71
  break;
74
72
  case "status": {
75
73
  const status = getDaemonStatus();
@@ -79,14 +77,20 @@ async function main() {
79
77
  console.log("\nRun `bikky start` to launch everything.");
80
78
  break;
81
79
  }
82
- case "install": {
83
- const { writeInstallConfig } = await import("./install.js");
84
- await writeInstallConfig();
80
+ case "ui": {
81
+ const { execSync } = await import("node:child_process");
82
+ console.log("🧠 Launching bikky ui…");
83
+ try {
84
+ execSync("npx --yes bikky-ui", { stdio: "inherit" });
85
+ }
86
+ catch {
87
+ // User hit Ctrl+C or process exited
88
+ }
85
89
  break;
86
90
  }
87
91
  default:
88
92
  console.error(`Unknown command: ${command}`);
89
- console.error("Usage: bikky [start|stop|mcp|daemon|setup|status|install|--version]");
93
+ console.error("Usage: bikky [start|stop|mcp|daemon|setup|status|ui|--version]");
90
94
  process.exit(1);
91
95
  }
92
96
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Postinstall hook — runs after `npm install -g bikky`.
2
+ * Postinstall hook — runs after `npm install bikky`.
3
3
  *
4
4
  * Writes MCP configs for Copilot / Claude Code and starts the daemon.
5
5
  * All errors are swallowed — install must never fail due to post-setup.
@@ -1,14 +1,10 @@
1
1
  /**
2
- * Postinstall hook — runs after `npm install -g bikky`.
2
+ * Postinstall hook — runs after `npm install bikky`.
3
3
  *
4
4
  * Writes MCP configs for Copilot / Claude Code and starts the daemon.
5
5
  * All errors are swallowed — install must never fail due to post-setup.
6
6
  */
7
7
  async function postinstall() {
8
- // Only run for global installs (not when building from source)
9
- if (!process.env.npm_config_global && !process.env.PREFIX) {
10
- return;
11
- }
12
8
  try {
13
9
  const { startAll } = await import("./lifecycle.js");
14
10
  await startAll();
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,UAAU,WAAW;IACxB,+DAA+D;IAC/D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,QAAQ,EAAE,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;IACvB,UAAU;AACZ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,QAAQ,EAAE,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;IACvB,UAAU;AACZ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bikky",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Shared memory for AI coding sessions — MCP server + background daemon",
5
5
  "type": "module",
6
6
  "license": "AGPL-3.0-or-later",