@vpxa/kb 0.1.1
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/LICENSE +21 -0
- package/README.md +1140 -0
- package/bin/kb.mjs +10 -0
- package/package.json +67 -0
- package/packages/analyzers/dist/blast-radius-analyzer.d.ts +23 -0
- package/packages/analyzers/dist/blast-radius-analyzer.js +114 -0
- package/packages/analyzers/dist/dependency-analyzer.d.ts +29 -0
- package/packages/analyzers/dist/dependency-analyzer.js +425 -0
- package/packages/analyzers/dist/diagram-generator.d.ts +13 -0
- package/packages/analyzers/dist/diagram-generator.js +86 -0
- package/packages/analyzers/dist/entry-point-analyzer.d.ts +19 -0
- package/packages/analyzers/dist/entry-point-analyzer.js +239 -0
- package/packages/analyzers/dist/index.d.ts +14 -0
- package/packages/analyzers/dist/index.js +23 -0
- package/packages/analyzers/dist/knowledge-producer.d.ts +32 -0
- package/packages/analyzers/dist/knowledge-producer.js +113 -0
- package/packages/analyzers/dist/pattern-analyzer.d.ts +12 -0
- package/packages/analyzers/dist/pattern-analyzer.js +359 -0
- package/packages/analyzers/dist/regex-call-graph.d.ts +17 -0
- package/packages/analyzers/dist/regex-call-graph.js +428 -0
- package/packages/analyzers/dist/structure-analyzer.d.ts +11 -0
- package/packages/analyzers/dist/structure-analyzer.js +258 -0
- package/packages/analyzers/dist/symbol-analyzer.d.ts +10 -0
- package/packages/analyzers/dist/symbol-analyzer.js +442 -0
- package/packages/analyzers/dist/ts-call-graph.d.ts +27 -0
- package/packages/analyzers/dist/ts-call-graph.js +160 -0
- package/packages/analyzers/dist/types.d.ts +98 -0
- package/packages/analyzers/dist/types.js +1 -0
- package/packages/chunker/dist/call-graph-extractor.d.ts +22 -0
- package/packages/chunker/dist/call-graph-extractor.js +90 -0
- package/packages/chunker/dist/chunker-factory.d.ts +7 -0
- package/packages/chunker/dist/chunker-factory.js +36 -0
- package/packages/chunker/dist/chunker.interface.d.ts +10 -0
- package/packages/chunker/dist/chunker.interface.js +1 -0
- package/packages/chunker/dist/code-chunker.d.ts +14 -0
- package/packages/chunker/dist/code-chunker.js +134 -0
- package/packages/chunker/dist/generic-chunker.d.ts +12 -0
- package/packages/chunker/dist/generic-chunker.js +72 -0
- package/packages/chunker/dist/index.d.ts +8 -0
- package/packages/chunker/dist/index.js +21 -0
- package/packages/chunker/dist/markdown-chunker.d.ts +14 -0
- package/packages/chunker/dist/markdown-chunker.js +122 -0
- package/packages/chunker/dist/treesitter-chunker.d.ts +47 -0
- package/packages/chunker/dist/treesitter-chunker.js +234 -0
- package/packages/cli/dist/commands/analyze.d.ts +3 -0
- package/packages/cli/dist/commands/analyze.js +112 -0
- package/packages/cli/dist/commands/context-cmds.d.ts +3 -0
- package/packages/cli/dist/commands/context-cmds.js +155 -0
- package/packages/cli/dist/commands/environment.d.ts +3 -0
- package/packages/cli/dist/commands/environment.js +204 -0
- package/packages/cli/dist/commands/execution.d.ts +3 -0
- package/packages/cli/dist/commands/execution.js +137 -0
- package/packages/cli/dist/commands/graph.d.ts +3 -0
- package/packages/cli/dist/commands/graph.js +81 -0
- package/packages/cli/dist/commands/init.d.ts +8 -0
- package/packages/cli/dist/commands/init.js +87 -0
- package/packages/cli/dist/commands/knowledge.d.ts +3 -0
- package/packages/cli/dist/commands/knowledge.js +139 -0
- package/packages/cli/dist/commands/search.d.ts +3 -0
- package/packages/cli/dist/commands/search.js +267 -0
- package/packages/cli/dist/commands/system.d.ts +3 -0
- package/packages/cli/dist/commands/system.js +241 -0
- package/packages/cli/dist/commands/workspace.d.ts +3 -0
- package/packages/cli/dist/commands/workspace.js +388 -0
- package/packages/cli/dist/context.d.ts +5 -0
- package/packages/cli/dist/context.js +14 -0
- package/packages/cli/dist/helpers.d.ts +52 -0
- package/packages/cli/dist/helpers.js +458 -0
- package/packages/cli/dist/index.d.ts +8 -0
- package/packages/cli/dist/index.js +69 -0
- package/packages/cli/dist/kb-init.d.ts +57 -0
- package/packages/cli/dist/kb-init.js +82 -0
- package/packages/cli/dist/types.d.ts +7 -0
- package/packages/cli/dist/types.js +1 -0
- package/packages/core/dist/constants.d.ts +49 -0
- package/packages/core/dist/constants.js +43 -0
- package/packages/core/dist/content-detector.d.ts +9 -0
- package/packages/core/dist/content-detector.js +79 -0
- package/packages/core/dist/errors.d.ts +18 -0
- package/packages/core/dist/errors.js +40 -0
- package/packages/core/dist/index.d.ts +6 -0
- package/packages/core/dist/index.js +9 -0
- package/packages/core/dist/logger.d.ts +9 -0
- package/packages/core/dist/logger.js +34 -0
- package/packages/core/dist/types.d.ts +108 -0
- package/packages/core/dist/types.js +1 -0
- package/packages/embeddings/dist/embedder.interface.d.ts +24 -0
- package/packages/embeddings/dist/embedder.interface.js +1 -0
- package/packages/embeddings/dist/index.d.ts +3 -0
- package/packages/embeddings/dist/index.js +5 -0
- package/packages/embeddings/dist/onnx-embedder.d.ts +24 -0
- package/packages/embeddings/dist/onnx-embedder.js +82 -0
- package/packages/indexer/dist/file-hasher.d.ts +11 -0
- package/packages/indexer/dist/file-hasher.js +13 -0
- package/packages/indexer/dist/filesystem-crawler.d.ts +27 -0
- package/packages/indexer/dist/filesystem-crawler.js +125 -0
- package/packages/indexer/dist/graph-extractor.d.ts +22 -0
- package/packages/indexer/dist/graph-extractor.js +111 -0
- package/packages/indexer/dist/incremental-indexer.d.ts +47 -0
- package/packages/indexer/dist/incremental-indexer.js +278 -0
- package/packages/indexer/dist/index.d.ts +5 -0
- package/packages/indexer/dist/index.js +14 -0
- package/packages/server/dist/api.d.ts +8 -0
- package/packages/server/dist/api.js +9 -0
- package/packages/server/dist/config.d.ts +3 -0
- package/packages/server/dist/config.js +75 -0
- package/packages/server/dist/curated-manager.d.ts +86 -0
- package/packages/server/dist/curated-manager.js +357 -0
- package/packages/server/dist/index.d.ts +2 -0
- package/packages/server/dist/index.js +134 -0
- package/packages/server/dist/replay-interceptor.d.ts +11 -0
- package/packages/server/dist/replay-interceptor.js +38 -0
- package/packages/server/dist/resources/resources.d.ts +4 -0
- package/packages/server/dist/resources/resources.js +40 -0
- package/packages/server/dist/server.d.ts +21 -0
- package/packages/server/dist/server.js +247 -0
- package/packages/server/dist/tools/analyze.tools.d.ts +11 -0
- package/packages/server/dist/tools/analyze.tools.js +288 -0
- package/packages/server/dist/tools/forge.tools.d.ts +12 -0
- package/packages/server/dist/tools/forge.tools.js +501 -0
- package/packages/server/dist/tools/forget.tool.d.ts +4 -0
- package/packages/server/dist/tools/forget.tool.js +43 -0
- package/packages/server/dist/tools/graph.tool.d.ts +4 -0
- package/packages/server/dist/tools/graph.tool.js +110 -0
- package/packages/server/dist/tools/list.tool.d.ts +4 -0
- package/packages/server/dist/tools/list.tool.js +56 -0
- package/packages/server/dist/tools/lookup.tool.d.ts +4 -0
- package/packages/server/dist/tools/lookup.tool.js +53 -0
- package/packages/server/dist/tools/onboard.tool.d.ts +5 -0
- package/packages/server/dist/tools/onboard.tool.js +112 -0
- package/packages/server/dist/tools/produce.tool.d.ts +3 -0
- package/packages/server/dist/tools/produce.tool.js +74 -0
- package/packages/server/dist/tools/read.tool.d.ts +4 -0
- package/packages/server/dist/tools/read.tool.js +49 -0
- package/packages/server/dist/tools/reindex.tool.d.ts +7 -0
- package/packages/server/dist/tools/reindex.tool.js +70 -0
- package/packages/server/dist/tools/remember.tool.d.ts +4 -0
- package/packages/server/dist/tools/remember.tool.js +45 -0
- package/packages/server/dist/tools/replay.tool.d.ts +3 -0
- package/packages/server/dist/tools/replay.tool.js +89 -0
- package/packages/server/dist/tools/search.tool.d.ts +5 -0
- package/packages/server/dist/tools/search.tool.js +331 -0
- package/packages/server/dist/tools/status.tool.d.ts +4 -0
- package/packages/server/dist/tools/status.tool.js +68 -0
- package/packages/server/dist/tools/toolkit.tools.d.ts +35 -0
- package/packages/server/dist/tools/toolkit.tools.js +1674 -0
- package/packages/server/dist/tools/update.tool.d.ts +4 -0
- package/packages/server/dist/tools/update.tool.js +42 -0
- package/packages/server/dist/tools/utility.tools.d.ts +15 -0
- package/packages/server/dist/tools/utility.tools.js +461 -0
- package/packages/store/dist/graph-store.interface.d.ts +104 -0
- package/packages/store/dist/graph-store.interface.js +1 -0
- package/packages/store/dist/index.d.ts +6 -0
- package/packages/store/dist/index.js +9 -0
- package/packages/store/dist/lance-store.d.ts +32 -0
- package/packages/store/dist/lance-store.js +258 -0
- package/packages/store/dist/sqlite-graph-store.d.ts +43 -0
- package/packages/store/dist/sqlite-graph-store.js +374 -0
- package/packages/store/dist/store-factory.d.ts +9 -0
- package/packages/store/dist/store-factory.js +14 -0
- package/packages/store/dist/store.interface.d.ts +48 -0
- package/packages/store/dist/store.interface.js +1 -0
- package/packages/tools/dist/batch.d.ts +21 -0
- package/packages/tools/dist/batch.js +45 -0
- package/packages/tools/dist/changelog.d.ts +34 -0
- package/packages/tools/dist/changelog.js +112 -0
- package/packages/tools/dist/check.d.ts +26 -0
- package/packages/tools/dist/check.js +59 -0
- package/packages/tools/dist/checkpoint.d.ts +17 -0
- package/packages/tools/dist/checkpoint.js +43 -0
- package/packages/tools/dist/codemod.d.ts +37 -0
- package/packages/tools/dist/codemod.js +69 -0
- package/packages/tools/dist/compact.d.ts +41 -0
- package/packages/tools/dist/compact.js +60 -0
- package/packages/tools/dist/data-transform.d.ts +10 -0
- package/packages/tools/dist/data-transform.js +124 -0
- package/packages/tools/dist/dead-symbols.d.ts +21 -0
- package/packages/tools/dist/dead-symbols.js +71 -0
- package/packages/tools/dist/delegate.d.ts +34 -0
- package/packages/tools/dist/delegate.js +130 -0
- package/packages/tools/dist/diff-parse.d.ts +26 -0
- package/packages/tools/dist/diff-parse.js +153 -0
- package/packages/tools/dist/digest.d.ts +53 -0
- package/packages/tools/dist/digest.js +242 -0
- package/packages/tools/dist/encode.d.ts +14 -0
- package/packages/tools/dist/encode.js +46 -0
- package/packages/tools/dist/env-info.d.ts +28 -0
- package/packages/tools/dist/env-info.js +58 -0
- package/packages/tools/dist/eval.d.ts +13 -0
- package/packages/tools/dist/eval.js +79 -0
- package/packages/tools/dist/evidence-map.d.ts +79 -0
- package/packages/tools/dist/evidence-map.js +203 -0
- package/packages/tools/dist/file-summary.d.ts +32 -0
- package/packages/tools/dist/file-summary.js +106 -0
- package/packages/tools/dist/file-walk.d.ts +4 -0
- package/packages/tools/dist/file-walk.js +75 -0
- package/packages/tools/dist/find-examples.d.ts +25 -0
- package/packages/tools/dist/find-examples.js +48 -0
- package/packages/tools/dist/find.d.ts +47 -0
- package/packages/tools/dist/find.js +120 -0
- package/packages/tools/dist/forge-classify.d.ts +44 -0
- package/packages/tools/dist/forge-classify.js +319 -0
- package/packages/tools/dist/forge-ground.d.ts +64 -0
- package/packages/tools/dist/forge-ground.js +184 -0
- package/packages/tools/dist/git-context.d.ts +22 -0
- package/packages/tools/dist/git-context.js +46 -0
- package/packages/tools/dist/graph-query.d.ts +89 -0
- package/packages/tools/dist/graph-query.js +194 -0
- package/packages/tools/dist/health.d.ts +14 -0
- package/packages/tools/dist/health.js +118 -0
- package/packages/tools/dist/http-request.d.ts +23 -0
- package/packages/tools/dist/http-request.js +58 -0
- package/packages/tools/dist/index.d.ts +49 -0
- package/packages/tools/dist/index.js +273 -0
- package/packages/tools/dist/lane.d.ts +39 -0
- package/packages/tools/dist/lane.js +227 -0
- package/packages/tools/dist/measure.d.ts +38 -0
- package/packages/tools/dist/measure.js +119 -0
- package/packages/tools/dist/onboard.d.ts +41 -0
- package/packages/tools/dist/onboard.js +1139 -0
- package/packages/tools/dist/parse-output.d.ts +80 -0
- package/packages/tools/dist/parse-output.js +158 -0
- package/packages/tools/dist/process-manager.d.ts +18 -0
- package/packages/tools/dist/process-manager.js +69 -0
- package/packages/tools/dist/queue.d.ts +38 -0
- package/packages/tools/dist/queue.js +126 -0
- package/packages/tools/dist/regex-test.d.ts +31 -0
- package/packages/tools/dist/regex-test.js +39 -0
- package/packages/tools/dist/rename.d.ts +29 -0
- package/packages/tools/dist/rename.js +70 -0
- package/packages/tools/dist/replay.d.ts +56 -0
- package/packages/tools/dist/replay.js +108 -0
- package/packages/tools/dist/schema-validate.d.ts +23 -0
- package/packages/tools/dist/schema-validate.js +141 -0
- package/packages/tools/dist/scope-map.d.ts +52 -0
- package/packages/tools/dist/scope-map.js +72 -0
- package/packages/tools/dist/snippet.d.ts +34 -0
- package/packages/tools/dist/snippet.js +80 -0
- package/packages/tools/dist/stash.d.ts +12 -0
- package/packages/tools/dist/stash.js +60 -0
- package/packages/tools/dist/stratum-card.d.ts +31 -0
- package/packages/tools/dist/stratum-card.js +239 -0
- package/packages/tools/dist/symbol.d.ts +28 -0
- package/packages/tools/dist/symbol.js +87 -0
- package/packages/tools/dist/test-run.d.ts +23 -0
- package/packages/tools/dist/test-run.js +55 -0
- package/packages/tools/dist/text-utils.d.ts +16 -0
- package/packages/tools/dist/text-utils.js +31 -0
- package/packages/tools/dist/time-utils.d.ts +18 -0
- package/packages/tools/dist/time-utils.js +135 -0
- package/packages/tools/dist/trace.d.ts +24 -0
- package/packages/tools/dist/trace.js +114 -0
- package/packages/tools/dist/truncation.d.ts +22 -0
- package/packages/tools/dist/truncation.js +45 -0
- package/packages/tools/dist/watch.d.ts +30 -0
- package/packages/tools/dist/watch.js +61 -0
- package/packages/tools/dist/web-fetch.d.ts +45 -0
- package/packages/tools/dist/web-fetch.js +249 -0
- package/packages/tools/dist/web-search.d.ts +23 -0
- package/packages/tools/dist/web-search.js +46 -0
- package/packages/tools/dist/workset.d.ts +45 -0
- package/packages/tools/dist/workset.js +77 -0
- package/packages/tui/dist/App.d.ts +8 -0
- package/packages/tui/dist/App.js +52659 -0
- package/packages/tui/dist/index.d.ts +19 -0
- package/packages/tui/dist/index.js +54742 -0
- package/packages/tui/dist/panels/CuratedPanel.d.ts +8 -0
- package/packages/tui/dist/panels/CuratedPanel.js +34452 -0
- package/packages/tui/dist/panels/LogPanel.d.ts +3 -0
- package/packages/tui/dist/panels/LogPanel.js +51894 -0
- package/packages/tui/dist/panels/SearchPanel.d.ts +10 -0
- package/packages/tui/dist/panels/SearchPanel.js +34985 -0
- package/packages/tui/dist/panels/StatusPanel.d.ts +8 -0
- package/packages/tui/dist/panels/StatusPanel.js +34465 -0
- package/skills/knowledge-base/SKILL.md +316 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
# @vpxa/kb — Knowledge Base Toolkit
|
|
2
|
+
|
|
3
|
+
Local-first AI developer toolkit — 57 MCP tools for knowledge management, code analysis, context compression, code manipulation, execution, web access, and developer utilities.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- You need long-term memory across coding sessions
|
|
8
|
+
- You want to search a codebase semantically (by meaning, not just keywords)
|
|
9
|
+
- You need to compress large contexts to focus on what matters
|
|
10
|
+
- You want structured output from build tools (tsc, vitest, biome, git)
|
|
11
|
+
- You need to plan which files to read for a task
|
|
12
|
+
- You want to safely explore refactors in isolated lanes
|
|
13
|
+
- You need to rename symbols, apply codemods, or run code transformations
|
|
14
|
+
- You want to fetch and read web pages or search the web
|
|
15
|
+
- You need to make HTTP requests, test APIs, or debug endpoints
|
|
16
|
+
- You want to test regex patterns, encode/decode data, or validate JSON schemas
|
|
17
|
+
- You need code complexity metrics or a git changelog
|
|
18
|
+
- You want to save and reuse code snippets across sessions
|
|
19
|
+
|
|
20
|
+
## Architecture
|
|
21
|
+
|
|
22
|
+
10-package monorepo published as a single npm package:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
core → store → embeddings → chunker → indexer → analyzers → tools → server → cli → tui
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- **MCP server**: 57 tools + 2 resources (via `@modelcontextprotocol/sdk`)
|
|
29
|
+
- **CLI**: 42 commands (thin dispatcher + 8 command groups)
|
|
30
|
+
- **Search**: Hybrid vector + keyword + RRF fusion
|
|
31
|
+
- **Embeddings**: ONNX local (mxbai-embed-large-v1, 1024 dimensions)
|
|
32
|
+
- **Vector store**: LanceDB (embedded, zero infrastructure)
|
|
33
|
+
- **Chunking**: Tree-sitter AST (TS/JS/Python/Go/Rust/Java) + regex fallback
|
|
34
|
+
- **TUI**: Ink/React dashboard for human monitoring (search, status, curated, activity log)
|
|
35
|
+
|
|
36
|
+
## Session Protocol (MANDATORY)
|
|
37
|
+
|
|
38
|
+
### Start of Session
|
|
39
|
+
```
|
|
40
|
+
status()
|
|
41
|
+
search({ query: "SESSION CHECKPOINT", origin: "curated" })
|
|
42
|
+
list({ category: "conventions" })
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### During Session
|
|
46
|
+
```
|
|
47
|
+
search → scope_map → symbol → trace (orient)
|
|
48
|
+
check → test_run (validate changes)
|
|
49
|
+
remember (capture insights)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### End of Session
|
|
53
|
+
```
|
|
54
|
+
remember({ title: "Session checkpoint: <topic>", content: "<what was done, decisions made, next steps>", category: "conventions" })
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Tool Catalog (57 tools)
|
|
58
|
+
|
|
59
|
+
### Search & Discovery (9)
|
|
60
|
+
| Tool | CLI | Purpose |
|
|
61
|
+
|------|-----|---------|
|
|
62
|
+
| `search` | `kb search` | Hybrid/semantic/keyword search with `search_mode` param |
|
|
63
|
+
| `find` | `kb find` | Federated search: vector + FTS + glob + regex in one call |
|
|
64
|
+
| `symbol` | `kb symbol` | Resolve symbol definition, imports, and references |
|
|
65
|
+
| `lookup` | `kb lookup` | Full-file retrieval by path or record ID |
|
|
66
|
+
| `scope_map` | `kb scope-map` | Task-scoped reading plan with token estimates |
|
|
67
|
+
| `trace` | `kb trace` | Forward/backward flow tracing through call chains |
|
|
68
|
+
| `find_examples` | `kb examples` | Find usage examples of a symbol or pattern |
|
|
69
|
+
| `dead_symbols` | `kb dead-symbols` | Find exported symbols that are never imported |
|
|
70
|
+
| `file_summary` | `kb summarize` | Structural overview of a file (exports, imports, functions) |
|
|
71
|
+
|
|
72
|
+
### Code Analysis (7)
|
|
73
|
+
| Tool | CLI | Purpose |
|
|
74
|
+
|------|-----|---------|
|
|
75
|
+
| `analyze_structure` | `kb analyze structure` | Project structure overview |
|
|
76
|
+
| `analyze_dependencies` | `kb analyze deps` | Dependency graph with confidence |
|
|
77
|
+
| `analyze_symbols` | `kb analyze symbols` | Symbol extraction and cross-references |
|
|
78
|
+
| `analyze_patterns` | `kb analyze patterns` | Design pattern detection |
|
|
79
|
+
| `analyze_entry_points` | `kb analyze entry-points` | Find entry points |
|
|
80
|
+
| `analyze_diagram` | `kb analyze diagram` | Generate Mermaid diagrams |
|
|
81
|
+
| `blast_radius` | `kb analyze blast-radius` | Change impact analysis |
|
|
82
|
+
|
|
83
|
+
### Context Management (5)
|
|
84
|
+
| Tool | CLI | Purpose |
|
|
85
|
+
|------|-----|---------|
|
|
86
|
+
| `compact` | `kb compact` | Compress text to relevant sections using embeddings (no LLM) |
|
|
87
|
+
| `workset` | `kb workset` | Named file set management (save/load/add/remove) |
|
|
88
|
+
| `stash` | `kb stash` | Named key-value store for session data |
|
|
89
|
+
| `checkpoint` | `kb checkpoint` | Save/restore session checkpoints |
|
|
90
|
+
| `parse_output` | `kb parse-output` | Parse tsc/vitest/biome/git output → structured JSON |
|
|
91
|
+
|
|
92
|
+
### Code Manipulation (4)
|
|
93
|
+
| Tool | CLI | Purpose |
|
|
94
|
+
|------|-----|---------|
|
|
95
|
+
| `rename` | `kb rename` | Smart whole-word symbol rename across files (dry-run supported) |
|
|
96
|
+
| `codemod` | `kb codemod` | Regex-based code transformations with rules (dry-run supported) |
|
|
97
|
+
| `diff_parse` | `kb diff` | Parse unified diff → structured changes |
|
|
98
|
+
| `data_transform` | `kb transform` | JQ-like JSON transformations |
|
|
99
|
+
|
|
100
|
+
### Execution & Validation (4)
|
|
101
|
+
| Tool | CLI | Purpose |
|
|
102
|
+
|------|-----|---------|
|
|
103
|
+
| `eval` | `kb eval` | Sandboxed JavaScript/TypeScript execution |
|
|
104
|
+
| `check` | `kb check` | Incremental typecheck + lint in one call |
|
|
105
|
+
| `test_run` | `kb test` | Run tests with structured pass/fail results |
|
|
106
|
+
| `batch` | `kb batch` | Execute multiple operations in parallel |
|
|
107
|
+
|
|
108
|
+
### Knowledge Management (6)
|
|
109
|
+
| Tool | CLI | Purpose |
|
|
110
|
+
|------|-----|---------|
|
|
111
|
+
| `remember` | `kb remember` | Store a curated knowledge entry |
|
|
112
|
+
| `update` | `kb update` | Update an existing entry |
|
|
113
|
+
| `forget` | `kb forget` | Delete an entry (requires reason) |
|
|
114
|
+
| `read` | `kb read` | Read a curated entry by path |
|
|
115
|
+
| `list` | `kb list` | List curated entries |
|
|
116
|
+
| `produce_knowledge` | — | Auto-generate knowledge from analysis |
|
|
117
|
+
|
|
118
|
+
### Verified Lanes (1 tool, 6 actions)
|
|
119
|
+
| Tool | CLI | Purpose |
|
|
120
|
+
|------|-----|---------|
|
|
121
|
+
| `lane` | `kb lane` | Manage isolated file copies for parallel exploration |
|
|
122
|
+
|
|
123
|
+
Lane actions: `create` (copy files to lane), `list`, `status` (modified/added/deleted), `diff` (line-level diff), `merge` (apply back to originals), `discard`.
|
|
124
|
+
|
|
125
|
+
### Git & Environment (4)
|
|
126
|
+
| Tool | CLI | Purpose |
|
|
127
|
+
|------|-----|---------|
|
|
128
|
+
| `git_context` | `kb git` | Branch, status, recent commits |
|
|
129
|
+
| `process` | `kb proc` | Process supervisor (start/stop/logs) |
|
|
130
|
+
| `watch` | `kb watch` | Filesystem watcher |
|
|
131
|
+
| `delegate` | `kb delegate` | Delegate subtask to local Ollama model |
|
|
132
|
+
|
|
133
|
+
### Web & Network (3)
|
|
134
|
+
| Tool | CLI | Purpose |
|
|
135
|
+
|------|-----|---------|
|
|
136
|
+
| `web_fetch` | — | Fetch web page → markdown/raw/links/outline for LLM consumption |
|
|
137
|
+
| `web_search` | — | Search the web via DuckDuckGo (no API key needed) |
|
|
138
|
+
| `http` | — | Make HTTP requests for API testing/debugging |
|
|
139
|
+
|
|
140
|
+
### Developer Utilities (8)
|
|
141
|
+
| Tool | CLI | Purpose |
|
|
142
|
+
|------|-----|---------|
|
|
143
|
+
| `regex_test` | — | Test regex patterns with match/replace/split modes |
|
|
144
|
+
| `encode` | — | Base64, URL, SHA-256, MD5, hex encode/decode, JWT decode |
|
|
145
|
+
| `measure` | — | Code complexity metrics (cyclomatic, lines, functions) |
|
|
146
|
+
| `changelog` | — | Generate changelog from git history (conventional commits) |
|
|
147
|
+
| `schema_validate` | — | Validate JSON data against JSON Schema |
|
|
148
|
+
| `snippet` | — | Save/get/search/delete persistent code snippets |
|
|
149
|
+
| `env` | — | System and runtime environment info (sensitive values redacted) |
|
|
150
|
+
| `time` | — | Date parsing, timezone conversion, duration math |
|
|
151
|
+
|
|
152
|
+
### System (6)
|
|
153
|
+
| Tool | CLI | Purpose |
|
|
154
|
+
|------|-----|---------|
|
|
155
|
+
| `status` | `kb status` | Index statistics |
|
|
156
|
+
| `reindex` | `kb reindex` | Rebuild index |
|
|
157
|
+
| `health` | `kb health` | Project health checks (package.json, tsconfig, lockfile, etc.) |
|
|
158
|
+
| `queue` | `kb queue` | Task queue for sequential agent operations (create/push/next/done/fail) |
|
|
159
|
+
| `replay_list` | `kb replay` | View audit trail of tool invocations (filter by tool/source/time) |
|
|
160
|
+
| `replay_clear` | `kb replay-clear` | Clear the replay audit trail |
|
|
161
|
+
|
|
162
|
+
## Search Strategy
|
|
163
|
+
|
|
164
|
+
1. **Start broad**: `search({ query: "topic", search_mode: "hybrid" })`
|
|
165
|
+
2. **Narrow**: Add `content_type`, `origin`, or `category` filters
|
|
166
|
+
3. **Exact match**: Use `search_mode: "keyword"` for identifiers
|
|
167
|
+
4. **Federated**: Use `find` to combine vector + glob + regex
|
|
168
|
+
|
|
169
|
+
## Workflow Chains
|
|
170
|
+
|
|
171
|
+
### Codebase Onboarding
|
|
172
|
+
```
|
|
173
|
+
analyze_structure({ path: "src/" })
|
|
174
|
+
→ analyze_dependencies({ path: "src/" })
|
|
175
|
+
→ analyze_entry_points({ path: "src/" })
|
|
176
|
+
→ produce_knowledge({ path: "src/" })
|
|
177
|
+
→ remember({ title: "Codebase onboarding complete", ... })
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Planning a Task
|
|
181
|
+
```
|
|
182
|
+
scope_map({ task: "implement user auth" })
|
|
183
|
+
→ compact({ text: <large file>, query: "auth flow" })
|
|
184
|
+
→ workset({ action: "save", name: "auth-task", files: [...] })
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Bug Investigation
|
|
188
|
+
```
|
|
189
|
+
parse_output({ output: <error> }) → symbol({ name: "failingFn" })
|
|
190
|
+
→ trace({ symbol: "failingFn", direction: "backward" })
|
|
191
|
+
→ blast_radius({ changed_files: ["suspect.ts"] })
|
|
192
|
+
→ eval({ code: "hypothesis test" }) → check({ files: ["suspect.ts"] })
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Safe Refactor with Lanes
|
|
196
|
+
```
|
|
197
|
+
scope_map({ task: "rename UserService" })
|
|
198
|
+
→ lane({ action: "create", name: "refactor", files: [...] })
|
|
199
|
+
→ [make changes in lane files]
|
|
200
|
+
→ lane({ action: "diff", name: "refactor" })
|
|
201
|
+
→ check({}) → test_run({})
|
|
202
|
+
→ lane({ action: "merge", name: "refactor" })
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### After Making Changes
|
|
206
|
+
```
|
|
207
|
+
blast_radius({ changed_files: ["src/auth.ts"] })
|
|
208
|
+
→ check({}) → test_run({ grep: "auth" })
|
|
209
|
+
→ reindex()
|
|
210
|
+
→ remember({ title: "Implemented auth", content: "..." })
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Pre-Commit Validation
|
|
214
|
+
```
|
|
215
|
+
git_context({ diff: true })
|
|
216
|
+
→ diff_parse({ diff: <staged diff> })
|
|
217
|
+
→ blast_radius({ changed_files: [...] })
|
|
218
|
+
→ check({}) → test_run({})
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## CLI Quick Reference
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
kb init # Scaffold KB in current directory
|
|
225
|
+
kb serve # Start MCP server (stdio or HTTP)
|
|
226
|
+
kb search <q> # Hybrid search
|
|
227
|
+
kb find <q> # Federated search
|
|
228
|
+
kb symbol <name> # Resolve symbol
|
|
229
|
+
kb scope-map <t> # Task reading plan
|
|
230
|
+
kb compact <q> # Context compression
|
|
231
|
+
kb check # Typecheck + lint
|
|
232
|
+
kb test # Run tests
|
|
233
|
+
kb rename <old> <new> <path> # Rename symbol
|
|
234
|
+
kb lane create <name> --files f1,f2 # Create lane
|
|
235
|
+
kb lane diff <name> # View lane changes
|
|
236
|
+
kb lane merge <name> # Merge lane back
|
|
237
|
+
kb status # Index stats
|
|
238
|
+
kb reindex # Rebuild index
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Configuration
|
|
242
|
+
|
|
243
|
+
`kb.config.json` in project root:
|
|
244
|
+
```json
|
|
245
|
+
{
|
|
246
|
+
"sources": [{ "path": ".", "excludePatterns": ["node_modules/**", "**/node_modules/**", "dist/**", "coverage/**", ".kb-data/**"] }],
|
|
247
|
+
"indexing": { "chunkSize": 1500, "chunkOverlap": 200, "minChunkSize": 100, "concurrency": 5 },
|
|
248
|
+
"embedding": { "model": "mixedbread-ai/mxbai-embed-large-v1", "dimensions": 1024 },
|
|
249
|
+
"store": { "backend": "lancedb", "path": ".kb-data" },
|
|
250
|
+
"curated": { "path": "curated" }
|
|
251
|
+
}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## IDE Integration
|
|
255
|
+
|
|
256
|
+
### VS Code — HTTP mode (recommended for development)
|
|
257
|
+
```json
|
|
258
|
+
// .vscode/mcp.json
|
|
259
|
+
{
|
|
260
|
+
"servers": {
|
|
261
|
+
"kb": {
|
|
262
|
+
"type": "http",
|
|
263
|
+
"url": "http://localhost:3210/mcp"
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
```
|
|
268
|
+
Start server: `npx kb serve --http --port 3210`
|
|
269
|
+
|
|
270
|
+
### VS Code — stdio mode (no separate server)
|
|
271
|
+
```json
|
|
272
|
+
{
|
|
273
|
+
"servers": {
|
|
274
|
+
"kb": {
|
|
275
|
+
"type": "stdio",
|
|
276
|
+
"command": "npx",
|
|
277
|
+
"args": ["@vpxa/kb", "serve", "--stdio"]
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Claude Code (`.mcp.json`)
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"mcpServers": {
|
|
287
|
+
"kb": {
|
|
288
|
+
"command": "npx",
|
|
289
|
+
"args": ["@vpxa/kb", "serve"]
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Development (Self-Dogfooding)
|
|
296
|
+
|
|
297
|
+
When developing @vpxa/kb itself, use the tool on its own codebase:
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
# Build → Reindex → Use loop
|
|
301
|
+
pnpm build # Build all 10 packages
|
|
302
|
+
node bin/kb.mjs reindex # Index own source into LanceDB
|
|
303
|
+
node bin/kb.mjs search "query" # Search own code
|
|
304
|
+
node bin/kb.mjs symbol "FnName" # Resolve symbols in own code
|
|
305
|
+
node bin/kb.mjs check # Typecheck + lint
|
|
306
|
+
pnpm test # Run 287+ tests
|
|
307
|
+
|
|
308
|
+
# Start MCP server for agent use during development
|
|
309
|
+
node bin/kb.mjs serve --http --port 3210
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
**Rules:**
|
|
313
|
+
- Always `pnpm build` before using CLI/server (runs from `dist/`)
|
|
314
|
+
- Always `reindex` after structural code changes
|
|
315
|
+
- LanceDB is single-process — don't run CLI and HTTP server simultaneously
|
|
316
|
+
- Curated entries in `curated/` survive reindex and are indexed separately
|