brainbank 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/README.md +76 -1398
  2. package/bin/brainbank +5 -1
  3. package/dist/{chunk-N2OJRXSB.js → chunk-3HVCONGF.js} +1 -1
  4. package/dist/{chunk-N2OJRXSB.js.map → chunk-3HVCONGF.js.map} +1 -1
  5. package/dist/{chunk-CCXVL56V.js → chunk-3JZIM5AU.js} +6 -3
  6. package/dist/chunk-3JZIM5AU.js.map +1 -0
  7. package/dist/{chunk-6XOXM7MI.js → chunk-5KU2PP34.js} +2 -2
  8. package/dist/{chunk-6XOXM7MI.js.map → chunk-5KU2PP34.js.map} +1 -1
  9. package/dist/chunk-7JDCHUJV.js +89 -0
  10. package/dist/chunk-7JDCHUJV.js.map +1 -0
  11. package/dist/{chunk-B77KABWH.js → chunk-7T2ZCZQA.js} +17 -15
  12. package/dist/chunk-7T2ZCZQA.js.map +1 -0
  13. package/dist/chunk-E3J37GDA.js +74 -0
  14. package/dist/chunk-E3J37GDA.js.map +1 -0
  15. package/dist/chunk-JEFWMS5Z.js +217 -0
  16. package/dist/chunk-JEFWMS5Z.js.map +1 -0
  17. package/dist/chunk-JRVYSTMP.js +3256 -0
  18. package/dist/chunk-JRVYSTMP.js.map +1 -0
  19. package/dist/chunk-OLDHLOMT.js +69 -0
  20. package/dist/chunk-OLDHLOMT.js.map +1 -0
  21. package/dist/{chunk-424UFCY7.js → chunk-QTZNB6AK.js} +6 -2
  22. package/dist/chunk-QTZNB6AK.js.map +1 -0
  23. package/dist/chunk-RFF7HMP6.js +109 -0
  24. package/dist/chunk-RFF7HMP6.js.map +1 -0
  25. package/dist/{chunk-ZNLN2VWV.js → chunk-TD3TEFI3.js} +1 -1
  26. package/dist/chunk-TD3TEFI3.js.map +1 -0
  27. package/dist/cli.js +1036 -341
  28. package/dist/cli.js.map +1 -1
  29. package/dist/haiku-expander-WOVJIVXD.js +8 -0
  30. package/dist/haiku-pruner-DB77ZQLJ.js +8 -0
  31. package/dist/http-server-GIRELCCL.js +9 -0
  32. package/dist/index.d.ts +1774 -611
  33. package/dist/index.js +282 -70
  34. package/dist/index.js.map +1 -1
  35. package/dist/{local-embedding-ZIMTK6PU.js → local-embedding-2RNCC5EU.js} +2 -2
  36. package/dist/{openai-embedding-VQZCZQYT.js → openai-embedding-Z5I4K4CN.js} +2 -2
  37. package/dist/perplexity-context-embedding-V5YUMXDR.js +9 -0
  38. package/dist/{perplexity-embedding-227WQY4R.js → perplexity-embedding-X2S72OAC.js} +2 -2
  39. package/dist/plugin-FF4Q34TI.js +32 -0
  40. package/dist/{qwen3-reranker-3MHEENT5.js → qwen3-reranker-HVIQOLKS.js} +2 -2
  41. package/dist/{resolve-CUJWY6HP.js → resolve-Q5D6HECY.js} +2 -2
  42. package/package.json +25 -52
  43. package/src/brainbank.ts +620 -0
  44. package/src/cli/commands/collection.ts +77 -0
  45. package/src/cli/commands/context.ts +171 -0
  46. package/src/cli/commands/daemon.ts +100 -0
  47. package/src/cli/commands/docs.ts +71 -0
  48. package/src/cli/commands/files.ts +69 -0
  49. package/src/cli/commands/help.ts +72 -0
  50. package/src/cli/commands/index.ts +282 -0
  51. package/src/cli/commands/kv.ts +140 -0
  52. package/src/cli/commands/mcp.ts +13 -0
  53. package/src/cli/commands/reembed.ts +30 -0
  54. package/src/cli/commands/scan.ts +365 -0
  55. package/src/cli/commands/search.ts +130 -0
  56. package/src/cli/commands/stats.ts +44 -0
  57. package/src/cli/commands/status.ts +47 -0
  58. package/src/cli/commands/watch.ts +43 -0
  59. package/src/cli/factory/brain-context.ts +43 -0
  60. package/src/cli/factory/builtin-registration.ts +123 -0
  61. package/src/cli/factory/config-loader.ts +72 -0
  62. package/src/cli/factory/index.ts +65 -0
  63. package/src/cli/factory/plugin-loader.ts +146 -0
  64. package/src/cli/index.ts +63 -0
  65. package/src/cli/server-client.ts +135 -0
  66. package/src/cli/utils.ts +121 -0
  67. package/src/config.ts +50 -0
  68. package/src/constants.ts +13 -0
  69. package/src/db/adapter.ts +112 -0
  70. package/src/db/metadata.ts +130 -0
  71. package/src/db/migrations.ts +66 -0
  72. package/src/db/sqlite-adapter.ts +208 -0
  73. package/src/db/tracker.ts +91 -0
  74. package/src/engine/index-api.ts +85 -0
  75. package/src/engine/reembed.ts +206 -0
  76. package/src/engine/search-api.ts +222 -0
  77. package/src/index.ts +159 -0
  78. package/src/lib/fts.ts +57 -0
  79. package/src/lib/languages.ts +180 -0
  80. package/src/lib/logger.ts +125 -0
  81. package/src/lib/math.ts +87 -0
  82. package/src/lib/provider-key.ts +20 -0
  83. package/src/lib/prune.ts +71 -0
  84. package/src/lib/rerank.ts +33 -0
  85. package/src/lib/rrf.ts +133 -0
  86. package/src/lib/write-lock.ts +108 -0
  87. package/src/plugin.ts +323 -0
  88. package/src/providers/embeddings/embedding-worker-thread.ts +95 -0
  89. package/src/providers/embeddings/embedding-worker.ts +141 -0
  90. package/src/providers/embeddings/local-embedding.ts +115 -0
  91. package/src/providers/embeddings/openai-embedding.ts +167 -0
  92. package/src/providers/embeddings/perplexity-context-embedding.ts +195 -0
  93. package/src/providers/embeddings/perplexity-embedding.ts +165 -0
  94. package/src/providers/embeddings/resolve.ts +34 -0
  95. package/src/providers/pruners/haiku-expander.ts +152 -0
  96. package/src/providers/pruners/haiku-pruner.ts +112 -0
  97. package/src/providers/rerankers/qwen3-reranker.ts +180 -0
  98. package/src/providers/vector/hnsw-index.ts +174 -0
  99. package/src/providers/vector/hnsw-loader.ts +129 -0
  100. package/src/search/bm25-boost.ts +61 -0
  101. package/src/search/context-builder.ts +298 -0
  102. package/src/search/keyword/composite-bm25-search.ts +62 -0
  103. package/src/search/types.ts +35 -0
  104. package/src/search/vector/composite-vector-search.ts +76 -0
  105. package/src/search/vector/mmr.ts +64 -0
  106. package/src/services/collection.ts +405 -0
  107. package/src/services/daemon.ts +87 -0
  108. package/src/services/http-server.ts +288 -0
  109. package/src/services/kv-service.ts +65 -0
  110. package/src/services/plugin-registry.ts +109 -0
  111. package/src/services/watch.ts +348 -0
  112. package/src/services/webhook-server.ts +100 -0
  113. package/src/types.ts +504 -0
  114. package/dist/base-3SNc_CeY.d.ts +0 -593
  115. package/dist/chunk-424UFCY7.js.map +0 -1
  116. package/dist/chunk-7EZR47JV.js +0 -232
  117. package/dist/chunk-7EZR47JV.js.map +0 -1
  118. package/dist/chunk-B77KABWH.js.map +0 -1
  119. package/dist/chunk-CCXVL56V.js.map +0 -1
  120. package/dist/chunk-DI3H6JVZ.js +0 -2432
  121. package/dist/chunk-DI3H6JVZ.js.map +0 -1
  122. package/dist/chunk-FGL32LUJ.js +0 -754
  123. package/dist/chunk-FGL32LUJ.js.map +0 -1
  124. package/dist/chunk-JRSKWF6K.js +0 -313
  125. package/dist/chunk-JRSKWF6K.js.map +0 -1
  126. package/dist/chunk-U2Q2XGPZ.js +0 -42
  127. package/dist/chunk-U2Q2XGPZ.js.map +0 -1
  128. package/dist/chunk-VQ27YUHH.js +0 -629
  129. package/dist/chunk-VQ27YUHH.js.map +0 -1
  130. package/dist/chunk-VVXYZIIB.js +0 -304
  131. package/dist/chunk-VVXYZIIB.js.map +0 -1
  132. package/dist/chunk-YOLKSYWK.js +0 -79
  133. package/dist/chunk-YOLKSYWK.js.map +0 -1
  134. package/dist/chunk-ZNLN2VWV.js.map +0 -1
  135. package/dist/code.d.ts +0 -33
  136. package/dist/code.js +0 -9
  137. package/dist/docs.d.ts +0 -21
  138. package/dist/docs.js +0 -9
  139. package/dist/git.d.ts +0 -33
  140. package/dist/git.js +0 -9
  141. package/dist/memory.d.ts +0 -17
  142. package/dist/memory.js +0 -9
  143. package/dist/notes.d.ts +0 -17
  144. package/dist/notes.js +0 -10
  145. package/dist/perplexity-context-embedding-KSVSZXMD.js +0 -9
  146. package/dist/resolve-CUJWY6HP.js.map +0 -1
  147. /package/dist/{code.js.map → haiku-expander-WOVJIVXD.js.map} +0 -0
  148. /package/dist/{docs.js.map → haiku-pruner-DB77ZQLJ.js.map} +0 -0
  149. /package/dist/{git.js.map → http-server-GIRELCCL.js.map} +0 -0
  150. /package/dist/{local-embedding-ZIMTK6PU.js.map → local-embedding-2RNCC5EU.js.map} +0 -0
  151. /package/dist/{memory.js.map → openai-embedding-Z5I4K4CN.js.map} +0 -0
  152. /package/dist/{notes.js.map → perplexity-context-embedding-V5YUMXDR.js.map} +0 -0
  153. /package/dist/{openai-embedding-VQZCZQYT.js.map → perplexity-embedding-X2S72OAC.js.map} +0 -0
  154. /package/dist/{perplexity-context-embedding-KSVSZXMD.js.map → plugin-FF4Q34TI.js.map} +0 -0
  155. /package/dist/{perplexity-embedding-227WQY4R.js.map → qwen3-reranker-HVIQOLKS.js.map} +0 -0
  156. /package/dist/{qwen3-reranker-3MHEENT5.js.map → resolve-Q5D6HECY.js.map} +0 -0
package/package.json CHANGED
@@ -1,55 +1,41 @@
1
1
  {
2
2
  "name": "brainbank",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Pluggable semantic memory for AI agents — hybrid search (vector + BM25) in a single SQLite file. Built-in code, git, and docs indexers. Bring your own.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
7
  "bin": {
9
- "brainbank": "./dist/cli.js"
8
+ "brainbank": "./bin/brainbank"
10
9
  },
11
10
  "exports": {
12
11
  ".": {
13
12
  "import": "./dist/index.js",
14
- "types": "./dist/index.d.ts"
13
+ "default": "./dist/index.js"
15
14
  },
16
- "./code": {
17
- "import": "./dist/code.js",
18
- "types": "./dist/code.d.ts"
19
- },
20
- "./git": {
21
- "import": "./dist/git.js",
22
- "types": "./dist/git.d.ts"
23
- },
24
- "./docs": {
25
- "import": "./dist/docs.js",
26
- "types": "./dist/docs.d.ts"
27
- },
28
- "./notes": {
29
- "import": "./dist/notes.js",
30
- "types": "./dist/notes.d.ts"
31
- },
32
- "./memory": {
33
- "import": "./dist/memory.js",
34
- "types": "./dist/memory.d.ts"
35
- }
15
+ "./src/*": "./src/*",
16
+ "./dist/*": "./dist/*"
36
17
  },
37
18
  "files": [
38
19
  "dist/",
20
+ "src/",
39
21
  "bin/",
40
22
  "LICENSE",
41
23
  "README.md",
42
24
  "assets/"
43
25
  ],
44
26
  "scripts": {
45
- "build": "tsup && npm run build --workspaces --if-present",
46
- "build:core": "tsup",
27
+ "postinstall": "rm -rf node_modules/brainbank && ln -s .. node_modules/brainbank",
28
+ "start": "bin/brainbank",
29
+ "build": "rm -rf dist && tsup && npm run build --workspaces --if-present",
30
+ "build:core": "rm -rf dist && tsup",
47
31
  "prepublishOnly": "npm run build:core",
48
32
  "test": "node --import tsx test/run.ts",
49
- "test:integration": "node --import tsx test/run.ts --integration",
50
- "test:verbose": "node --import tsx test/run.ts --verbose",
51
- "dev": "tsx src/cli/index.ts"
33
+ "link": "npm link",
34
+ "unlink": "npm unlink -g brainbank"
52
35
  },
36
+ "workspaces": [
37
+ "packages/*"
38
+ ],
53
39
  "engines": {
54
40
  "node": ">=18"
55
41
  },
@@ -57,6 +43,10 @@
57
43
  "type": "git",
58
44
  "url": "git+https://github.com/pinecall/brainbank.git"
59
45
  },
46
+ "homepage": "https://github.com/pinecall/brainbank#readme",
47
+ "bugs": {
48
+ "url": "https://github.com/pinecall/brainbank/issues"
49
+ },
60
50
  "keywords": [
61
51
  "ai",
62
52
  "agent",
@@ -70,33 +60,15 @@
70
60
  "author": "Bernardo Castro <bernardo@pinecall.io>",
71
61
  "license": "MIT",
72
62
  "dependencies": {
63
+ "@huggingface/transformers": "^4.0.1",
64
+ "@inquirer/prompts": "^8.3.2",
73
65
  "better-sqlite3": "^11.8.1",
74
66
  "hnswlib-node": "^3.0.0",
75
- "tree-sitter": "^0.25.0",
76
- "tree-sitter-javascript": "^0.25.0",
77
- "tree-sitter-python": "^0.25.0",
78
- "tree-sitter-typescript": "^0.23.2"
67
+ "picomatch": "^4.0.4"
79
68
  },
80
69
  "optionalDependencies": {
81
70
  "@xenova/transformers": "^2.17.2",
82
- "node-llama-cpp": "^3.18.1",
83
- "simple-git": "^3.27.0",
84
- "tree-sitter-bash": "^0.25.1",
85
- "tree-sitter-c": "^0.24.1",
86
- "tree-sitter-c-sharp": "^0.23.1",
87
- "tree-sitter-cpp": "^0.23.4",
88
- "tree-sitter-css": "^0.25.0",
89
- "tree-sitter-elixir": "^0.3.5",
90
- "tree-sitter-go": "^0.25.0",
91
- "tree-sitter-html": "^0.23.2",
92
- "tree-sitter-java": "^0.23.5",
93
- "tree-sitter-kotlin": "^0.3.8",
94
- "tree-sitter-lua": "^2.1.3",
95
- "tree-sitter-php": "^0.24.2",
96
- "tree-sitter-ruby": "^0.23.1",
97
- "tree-sitter-rust": "^0.24.0",
98
- "tree-sitter-scala": "^0.24.0",
99
- "tree-sitter-swift": "^0.7.1"
71
+ "node-llama-cpp": "^3.18.1"
100
72
  },
101
73
  "devDependencies": {
102
74
  "@ai-sdk/openai": "^3.0.47",
@@ -104,9 +76,10 @@
104
76
  "@langchain/openai": "^1.3.0",
105
77
  "@types/better-sqlite3": "^7.6.13",
106
78
  "@types/node": "^22.0.0",
79
+ "@types/picomatch": "^4.0.2",
107
80
  "ai": "^6.0.134",
108
81
  "tsup": "^8.4.0",
109
82
  "tsx": "^4.19.0",
110
83
  "typescript": "^5.7.0"
111
84
  }
112
- }
85
+ }