@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.
Files changed (275) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1140 -0
  3. package/bin/kb.mjs +10 -0
  4. package/package.json +67 -0
  5. package/packages/analyzers/dist/blast-radius-analyzer.d.ts +23 -0
  6. package/packages/analyzers/dist/blast-radius-analyzer.js +114 -0
  7. package/packages/analyzers/dist/dependency-analyzer.d.ts +29 -0
  8. package/packages/analyzers/dist/dependency-analyzer.js +425 -0
  9. package/packages/analyzers/dist/diagram-generator.d.ts +13 -0
  10. package/packages/analyzers/dist/diagram-generator.js +86 -0
  11. package/packages/analyzers/dist/entry-point-analyzer.d.ts +19 -0
  12. package/packages/analyzers/dist/entry-point-analyzer.js +239 -0
  13. package/packages/analyzers/dist/index.d.ts +14 -0
  14. package/packages/analyzers/dist/index.js +23 -0
  15. package/packages/analyzers/dist/knowledge-producer.d.ts +32 -0
  16. package/packages/analyzers/dist/knowledge-producer.js +113 -0
  17. package/packages/analyzers/dist/pattern-analyzer.d.ts +12 -0
  18. package/packages/analyzers/dist/pattern-analyzer.js +359 -0
  19. package/packages/analyzers/dist/regex-call-graph.d.ts +17 -0
  20. package/packages/analyzers/dist/regex-call-graph.js +428 -0
  21. package/packages/analyzers/dist/structure-analyzer.d.ts +11 -0
  22. package/packages/analyzers/dist/structure-analyzer.js +258 -0
  23. package/packages/analyzers/dist/symbol-analyzer.d.ts +10 -0
  24. package/packages/analyzers/dist/symbol-analyzer.js +442 -0
  25. package/packages/analyzers/dist/ts-call-graph.d.ts +27 -0
  26. package/packages/analyzers/dist/ts-call-graph.js +160 -0
  27. package/packages/analyzers/dist/types.d.ts +98 -0
  28. package/packages/analyzers/dist/types.js +1 -0
  29. package/packages/chunker/dist/call-graph-extractor.d.ts +22 -0
  30. package/packages/chunker/dist/call-graph-extractor.js +90 -0
  31. package/packages/chunker/dist/chunker-factory.d.ts +7 -0
  32. package/packages/chunker/dist/chunker-factory.js +36 -0
  33. package/packages/chunker/dist/chunker.interface.d.ts +10 -0
  34. package/packages/chunker/dist/chunker.interface.js +1 -0
  35. package/packages/chunker/dist/code-chunker.d.ts +14 -0
  36. package/packages/chunker/dist/code-chunker.js +134 -0
  37. package/packages/chunker/dist/generic-chunker.d.ts +12 -0
  38. package/packages/chunker/dist/generic-chunker.js +72 -0
  39. package/packages/chunker/dist/index.d.ts +8 -0
  40. package/packages/chunker/dist/index.js +21 -0
  41. package/packages/chunker/dist/markdown-chunker.d.ts +14 -0
  42. package/packages/chunker/dist/markdown-chunker.js +122 -0
  43. package/packages/chunker/dist/treesitter-chunker.d.ts +47 -0
  44. package/packages/chunker/dist/treesitter-chunker.js +234 -0
  45. package/packages/cli/dist/commands/analyze.d.ts +3 -0
  46. package/packages/cli/dist/commands/analyze.js +112 -0
  47. package/packages/cli/dist/commands/context-cmds.d.ts +3 -0
  48. package/packages/cli/dist/commands/context-cmds.js +155 -0
  49. package/packages/cli/dist/commands/environment.d.ts +3 -0
  50. package/packages/cli/dist/commands/environment.js +204 -0
  51. package/packages/cli/dist/commands/execution.d.ts +3 -0
  52. package/packages/cli/dist/commands/execution.js +137 -0
  53. package/packages/cli/dist/commands/graph.d.ts +3 -0
  54. package/packages/cli/dist/commands/graph.js +81 -0
  55. package/packages/cli/dist/commands/init.d.ts +8 -0
  56. package/packages/cli/dist/commands/init.js +87 -0
  57. package/packages/cli/dist/commands/knowledge.d.ts +3 -0
  58. package/packages/cli/dist/commands/knowledge.js +139 -0
  59. package/packages/cli/dist/commands/search.d.ts +3 -0
  60. package/packages/cli/dist/commands/search.js +267 -0
  61. package/packages/cli/dist/commands/system.d.ts +3 -0
  62. package/packages/cli/dist/commands/system.js +241 -0
  63. package/packages/cli/dist/commands/workspace.d.ts +3 -0
  64. package/packages/cli/dist/commands/workspace.js +388 -0
  65. package/packages/cli/dist/context.d.ts +5 -0
  66. package/packages/cli/dist/context.js +14 -0
  67. package/packages/cli/dist/helpers.d.ts +52 -0
  68. package/packages/cli/dist/helpers.js +458 -0
  69. package/packages/cli/dist/index.d.ts +8 -0
  70. package/packages/cli/dist/index.js +69 -0
  71. package/packages/cli/dist/kb-init.d.ts +57 -0
  72. package/packages/cli/dist/kb-init.js +82 -0
  73. package/packages/cli/dist/types.d.ts +7 -0
  74. package/packages/cli/dist/types.js +1 -0
  75. package/packages/core/dist/constants.d.ts +49 -0
  76. package/packages/core/dist/constants.js +43 -0
  77. package/packages/core/dist/content-detector.d.ts +9 -0
  78. package/packages/core/dist/content-detector.js +79 -0
  79. package/packages/core/dist/errors.d.ts +18 -0
  80. package/packages/core/dist/errors.js +40 -0
  81. package/packages/core/dist/index.d.ts +6 -0
  82. package/packages/core/dist/index.js +9 -0
  83. package/packages/core/dist/logger.d.ts +9 -0
  84. package/packages/core/dist/logger.js +34 -0
  85. package/packages/core/dist/types.d.ts +108 -0
  86. package/packages/core/dist/types.js +1 -0
  87. package/packages/embeddings/dist/embedder.interface.d.ts +24 -0
  88. package/packages/embeddings/dist/embedder.interface.js +1 -0
  89. package/packages/embeddings/dist/index.d.ts +3 -0
  90. package/packages/embeddings/dist/index.js +5 -0
  91. package/packages/embeddings/dist/onnx-embedder.d.ts +24 -0
  92. package/packages/embeddings/dist/onnx-embedder.js +82 -0
  93. package/packages/indexer/dist/file-hasher.d.ts +11 -0
  94. package/packages/indexer/dist/file-hasher.js +13 -0
  95. package/packages/indexer/dist/filesystem-crawler.d.ts +27 -0
  96. package/packages/indexer/dist/filesystem-crawler.js +125 -0
  97. package/packages/indexer/dist/graph-extractor.d.ts +22 -0
  98. package/packages/indexer/dist/graph-extractor.js +111 -0
  99. package/packages/indexer/dist/incremental-indexer.d.ts +47 -0
  100. package/packages/indexer/dist/incremental-indexer.js +278 -0
  101. package/packages/indexer/dist/index.d.ts +5 -0
  102. package/packages/indexer/dist/index.js +14 -0
  103. package/packages/server/dist/api.d.ts +8 -0
  104. package/packages/server/dist/api.js +9 -0
  105. package/packages/server/dist/config.d.ts +3 -0
  106. package/packages/server/dist/config.js +75 -0
  107. package/packages/server/dist/curated-manager.d.ts +86 -0
  108. package/packages/server/dist/curated-manager.js +357 -0
  109. package/packages/server/dist/index.d.ts +2 -0
  110. package/packages/server/dist/index.js +134 -0
  111. package/packages/server/dist/replay-interceptor.d.ts +11 -0
  112. package/packages/server/dist/replay-interceptor.js +38 -0
  113. package/packages/server/dist/resources/resources.d.ts +4 -0
  114. package/packages/server/dist/resources/resources.js +40 -0
  115. package/packages/server/dist/server.d.ts +21 -0
  116. package/packages/server/dist/server.js +247 -0
  117. package/packages/server/dist/tools/analyze.tools.d.ts +11 -0
  118. package/packages/server/dist/tools/analyze.tools.js +288 -0
  119. package/packages/server/dist/tools/forge.tools.d.ts +12 -0
  120. package/packages/server/dist/tools/forge.tools.js +501 -0
  121. package/packages/server/dist/tools/forget.tool.d.ts +4 -0
  122. package/packages/server/dist/tools/forget.tool.js +43 -0
  123. package/packages/server/dist/tools/graph.tool.d.ts +4 -0
  124. package/packages/server/dist/tools/graph.tool.js +110 -0
  125. package/packages/server/dist/tools/list.tool.d.ts +4 -0
  126. package/packages/server/dist/tools/list.tool.js +56 -0
  127. package/packages/server/dist/tools/lookup.tool.d.ts +4 -0
  128. package/packages/server/dist/tools/lookup.tool.js +53 -0
  129. package/packages/server/dist/tools/onboard.tool.d.ts +5 -0
  130. package/packages/server/dist/tools/onboard.tool.js +112 -0
  131. package/packages/server/dist/tools/produce.tool.d.ts +3 -0
  132. package/packages/server/dist/tools/produce.tool.js +74 -0
  133. package/packages/server/dist/tools/read.tool.d.ts +4 -0
  134. package/packages/server/dist/tools/read.tool.js +49 -0
  135. package/packages/server/dist/tools/reindex.tool.d.ts +7 -0
  136. package/packages/server/dist/tools/reindex.tool.js +70 -0
  137. package/packages/server/dist/tools/remember.tool.d.ts +4 -0
  138. package/packages/server/dist/tools/remember.tool.js +45 -0
  139. package/packages/server/dist/tools/replay.tool.d.ts +3 -0
  140. package/packages/server/dist/tools/replay.tool.js +89 -0
  141. package/packages/server/dist/tools/search.tool.d.ts +5 -0
  142. package/packages/server/dist/tools/search.tool.js +331 -0
  143. package/packages/server/dist/tools/status.tool.d.ts +4 -0
  144. package/packages/server/dist/tools/status.tool.js +68 -0
  145. package/packages/server/dist/tools/toolkit.tools.d.ts +35 -0
  146. package/packages/server/dist/tools/toolkit.tools.js +1674 -0
  147. package/packages/server/dist/tools/update.tool.d.ts +4 -0
  148. package/packages/server/dist/tools/update.tool.js +42 -0
  149. package/packages/server/dist/tools/utility.tools.d.ts +15 -0
  150. package/packages/server/dist/tools/utility.tools.js +461 -0
  151. package/packages/store/dist/graph-store.interface.d.ts +104 -0
  152. package/packages/store/dist/graph-store.interface.js +1 -0
  153. package/packages/store/dist/index.d.ts +6 -0
  154. package/packages/store/dist/index.js +9 -0
  155. package/packages/store/dist/lance-store.d.ts +32 -0
  156. package/packages/store/dist/lance-store.js +258 -0
  157. package/packages/store/dist/sqlite-graph-store.d.ts +43 -0
  158. package/packages/store/dist/sqlite-graph-store.js +374 -0
  159. package/packages/store/dist/store-factory.d.ts +9 -0
  160. package/packages/store/dist/store-factory.js +14 -0
  161. package/packages/store/dist/store.interface.d.ts +48 -0
  162. package/packages/store/dist/store.interface.js +1 -0
  163. package/packages/tools/dist/batch.d.ts +21 -0
  164. package/packages/tools/dist/batch.js +45 -0
  165. package/packages/tools/dist/changelog.d.ts +34 -0
  166. package/packages/tools/dist/changelog.js +112 -0
  167. package/packages/tools/dist/check.d.ts +26 -0
  168. package/packages/tools/dist/check.js +59 -0
  169. package/packages/tools/dist/checkpoint.d.ts +17 -0
  170. package/packages/tools/dist/checkpoint.js +43 -0
  171. package/packages/tools/dist/codemod.d.ts +37 -0
  172. package/packages/tools/dist/codemod.js +69 -0
  173. package/packages/tools/dist/compact.d.ts +41 -0
  174. package/packages/tools/dist/compact.js +60 -0
  175. package/packages/tools/dist/data-transform.d.ts +10 -0
  176. package/packages/tools/dist/data-transform.js +124 -0
  177. package/packages/tools/dist/dead-symbols.d.ts +21 -0
  178. package/packages/tools/dist/dead-symbols.js +71 -0
  179. package/packages/tools/dist/delegate.d.ts +34 -0
  180. package/packages/tools/dist/delegate.js +130 -0
  181. package/packages/tools/dist/diff-parse.d.ts +26 -0
  182. package/packages/tools/dist/diff-parse.js +153 -0
  183. package/packages/tools/dist/digest.d.ts +53 -0
  184. package/packages/tools/dist/digest.js +242 -0
  185. package/packages/tools/dist/encode.d.ts +14 -0
  186. package/packages/tools/dist/encode.js +46 -0
  187. package/packages/tools/dist/env-info.d.ts +28 -0
  188. package/packages/tools/dist/env-info.js +58 -0
  189. package/packages/tools/dist/eval.d.ts +13 -0
  190. package/packages/tools/dist/eval.js +79 -0
  191. package/packages/tools/dist/evidence-map.d.ts +79 -0
  192. package/packages/tools/dist/evidence-map.js +203 -0
  193. package/packages/tools/dist/file-summary.d.ts +32 -0
  194. package/packages/tools/dist/file-summary.js +106 -0
  195. package/packages/tools/dist/file-walk.d.ts +4 -0
  196. package/packages/tools/dist/file-walk.js +75 -0
  197. package/packages/tools/dist/find-examples.d.ts +25 -0
  198. package/packages/tools/dist/find-examples.js +48 -0
  199. package/packages/tools/dist/find.d.ts +47 -0
  200. package/packages/tools/dist/find.js +120 -0
  201. package/packages/tools/dist/forge-classify.d.ts +44 -0
  202. package/packages/tools/dist/forge-classify.js +319 -0
  203. package/packages/tools/dist/forge-ground.d.ts +64 -0
  204. package/packages/tools/dist/forge-ground.js +184 -0
  205. package/packages/tools/dist/git-context.d.ts +22 -0
  206. package/packages/tools/dist/git-context.js +46 -0
  207. package/packages/tools/dist/graph-query.d.ts +89 -0
  208. package/packages/tools/dist/graph-query.js +194 -0
  209. package/packages/tools/dist/health.d.ts +14 -0
  210. package/packages/tools/dist/health.js +118 -0
  211. package/packages/tools/dist/http-request.d.ts +23 -0
  212. package/packages/tools/dist/http-request.js +58 -0
  213. package/packages/tools/dist/index.d.ts +49 -0
  214. package/packages/tools/dist/index.js +273 -0
  215. package/packages/tools/dist/lane.d.ts +39 -0
  216. package/packages/tools/dist/lane.js +227 -0
  217. package/packages/tools/dist/measure.d.ts +38 -0
  218. package/packages/tools/dist/measure.js +119 -0
  219. package/packages/tools/dist/onboard.d.ts +41 -0
  220. package/packages/tools/dist/onboard.js +1139 -0
  221. package/packages/tools/dist/parse-output.d.ts +80 -0
  222. package/packages/tools/dist/parse-output.js +158 -0
  223. package/packages/tools/dist/process-manager.d.ts +18 -0
  224. package/packages/tools/dist/process-manager.js +69 -0
  225. package/packages/tools/dist/queue.d.ts +38 -0
  226. package/packages/tools/dist/queue.js +126 -0
  227. package/packages/tools/dist/regex-test.d.ts +31 -0
  228. package/packages/tools/dist/regex-test.js +39 -0
  229. package/packages/tools/dist/rename.d.ts +29 -0
  230. package/packages/tools/dist/rename.js +70 -0
  231. package/packages/tools/dist/replay.d.ts +56 -0
  232. package/packages/tools/dist/replay.js +108 -0
  233. package/packages/tools/dist/schema-validate.d.ts +23 -0
  234. package/packages/tools/dist/schema-validate.js +141 -0
  235. package/packages/tools/dist/scope-map.d.ts +52 -0
  236. package/packages/tools/dist/scope-map.js +72 -0
  237. package/packages/tools/dist/snippet.d.ts +34 -0
  238. package/packages/tools/dist/snippet.js +80 -0
  239. package/packages/tools/dist/stash.d.ts +12 -0
  240. package/packages/tools/dist/stash.js +60 -0
  241. package/packages/tools/dist/stratum-card.d.ts +31 -0
  242. package/packages/tools/dist/stratum-card.js +239 -0
  243. package/packages/tools/dist/symbol.d.ts +28 -0
  244. package/packages/tools/dist/symbol.js +87 -0
  245. package/packages/tools/dist/test-run.d.ts +23 -0
  246. package/packages/tools/dist/test-run.js +55 -0
  247. package/packages/tools/dist/text-utils.d.ts +16 -0
  248. package/packages/tools/dist/text-utils.js +31 -0
  249. package/packages/tools/dist/time-utils.d.ts +18 -0
  250. package/packages/tools/dist/time-utils.js +135 -0
  251. package/packages/tools/dist/trace.d.ts +24 -0
  252. package/packages/tools/dist/trace.js +114 -0
  253. package/packages/tools/dist/truncation.d.ts +22 -0
  254. package/packages/tools/dist/truncation.js +45 -0
  255. package/packages/tools/dist/watch.d.ts +30 -0
  256. package/packages/tools/dist/watch.js +61 -0
  257. package/packages/tools/dist/web-fetch.d.ts +45 -0
  258. package/packages/tools/dist/web-fetch.js +249 -0
  259. package/packages/tools/dist/web-search.d.ts +23 -0
  260. package/packages/tools/dist/web-search.js +46 -0
  261. package/packages/tools/dist/workset.d.ts +45 -0
  262. package/packages/tools/dist/workset.js +77 -0
  263. package/packages/tui/dist/App.d.ts +8 -0
  264. package/packages/tui/dist/App.js +52659 -0
  265. package/packages/tui/dist/index.d.ts +19 -0
  266. package/packages/tui/dist/index.js +54742 -0
  267. package/packages/tui/dist/panels/CuratedPanel.d.ts +8 -0
  268. package/packages/tui/dist/panels/CuratedPanel.js +34452 -0
  269. package/packages/tui/dist/panels/LogPanel.d.ts +3 -0
  270. package/packages/tui/dist/panels/LogPanel.js +51894 -0
  271. package/packages/tui/dist/panels/SearchPanel.d.ts +10 -0
  272. package/packages/tui/dist/panels/SearchPanel.js +34985 -0
  273. package/packages/tui/dist/panels/StatusPanel.d.ts +8 -0
  274. package/packages/tui/dist/panels/StatusPanel.js +34465 -0
  275. 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