bluera-knowledge 0.34.2 → 0.36.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.
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +29 -0
- package/README.md +7 -19
- package/dist/{chunk-V5MWZM5X.js → chunk-DNGE7FZ4.js} +53 -2
- package/dist/chunk-DNGE7FZ4.js.map +1 -0
- package/dist/{chunk-VELBEZVB.js → chunk-L2SC6J4K.js} +10 -2
- package/dist/{chunk-VELBEZVB.js.map → chunk-L2SC6J4K.js.map} +1 -1
- package/dist/{chunk-TD3VX74F.js → chunk-MQQ46BST.js} +2 -2
- package/dist/index.js +72 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +2 -2
- package/dist/workers/background-worker-cli.js +2 -2
- package/hooks/hooks.json +17 -1
- package/hooks/stop-bk-check.py +86 -0
- package/hooks/userpromptsubmit-bk-nudge.py +136 -0
- package/package.json +1 -1
- package/python/ast_worker.py +10 -0
- package/scripts/auto-setup.sh +11 -3
- package/skills/knowledge-search/SKILL.md +1 -1
- package/skills/suggest/SKILL.md +13 -6
- package/dist/chunk-V5MWZM5X.js.map +0 -1
- /package/dist/{chunk-TD3VX74F.js.map → chunk-MQQ46BST.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [0.36.0](https://github.com/blueraai/bluera-knowledge/compare/v0.34.0...v0.36.0) (2026-03-21)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **activation:** directive skill description + UserPromptSubmit/Stop hooks for proactive BK usage ([64d48da](https://github.com/blueraai/bluera-knowledge/commit/64d48da2eb8e278fb7a8de0a2676f77bf6adc320))
|
|
11
|
+
* **mcp:** return friendly message when add-repo URL is already indexed ([1ca0a6a](https://github.com/blueraai/bluera-knowledge/commit/1ca0a6aeb9e7646a6d3056dde60b34abd34ba10c))
|
|
12
|
+
* **suggest:** AI-driven dependency importance filtering via Claude CLI ([0984039](https://github.com/blueraai/bluera-knowledge/commit/0984039d9c0bb607969f7db8d92d1e7d47cb08ff))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* force UTF-8 encoding for Python bridge on Windows ([d6a0c9e](https://github.com/blueraai/bluera-knowledge/commit/d6a0c9eb261f65367659672ff4c21873f39505f6))
|
|
18
|
+
* **hooks:** make Python hooks executable, add stdin drain, remove stale files ([219b645](https://github.com/blueraai/bluera-knowledge/commit/219b6459e955764645c8edd0c98ff0be2b9c96b8))
|
|
19
|
+
* **mcp:** expand shell variables in PROJECT_ROOT to prevent literal ${PWD} directories ([2ab025f](https://github.com/blueraai/bluera-knowledge/commit/2ab025f42fb8d063cccc3dacfc47ed87d299d634))
|
|
20
|
+
|
|
21
|
+
## [0.35.0](https://github.com/blueraai/bluera-knowledge/compare/v0.34.0...v0.35.0) (2026-03-21)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
* **mcp:** return friendly message when add-repo URL is already indexed ([0d03932](https://github.com/blueraai/bluera-knowledge/commit/0d0393213a50389331b109d8676ef2c53b2561a0))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
* **hooks:** make Python hooks executable, add stdin drain, remove stale files ([219b645](https://github.com/blueraai/bluera-knowledge/commit/219b6459e955764645c8edd0c98ff0be2b9c96b8))
|
|
32
|
+
* **mcp:** expand shell variables in PROJECT_ROOT to prevent literal ${PWD} directories ([2ab025f](https://github.com/blueraai/bluera-knowledge/commit/2ab025f42fb8d063cccc3dacfc47ed87d299d634))
|
|
33
|
+
|
|
5
34
|
## [0.34.2](https://github.com/blueraai/bluera-knowledge/compare/v0.34.0...v0.34.2) (2026-03-19)
|
|
6
35
|
|
|
7
36
|
|
package/README.md
CHANGED
|
@@ -197,7 +197,7 @@ bluera-knowledge store list
|
|
|
197
197
|
### 🎯 Core Features
|
|
198
198
|
|
|
199
199
|
- **🔬 Smart Dependency Analysis** - Automatically scans your project to identify which libraries are most heavily used by counting import statements across all source files
|
|
200
|
-
-
|
|
200
|
+
- **🤖 AI-Powered Importance Filtering** - Uses Claude to select the most valuable dependencies for indexing — prioritizing core frameworks, complex APIs, and libraries likely to cause debugging issues over trivial utilities and dev tools
|
|
201
201
|
- **🔍 Automatic Repository Discovery** - Queries package registries (NPM, PyPI, crates.io, Go modules) to automatically find GitHub repository URLs
|
|
202
202
|
- **📦 Git Repository Indexing** - Clones and indexes dependency source code for both semantic search and direct file access
|
|
203
203
|
- **📁 Local Folder Indexing** - Indexes any local content - documentation, standards, reference materials, or custom content
|
|
@@ -732,27 +732,15 @@ This hybrid approach reduces unnecessary tool calls and context usage while main
|
|
|
732
732
|
|
|
733
733
|
Result: Fewer tool calls, more accurate results, less context consumed.
|
|
734
734
|
|
|
735
|
-
### 🎯
|
|
735
|
+
### 🎯 Proactive Activation
|
|
736
736
|
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
**Toggle via slash command:**
|
|
740
|
-
- `/bluera-knowledge:skill-activation` - Show current status
|
|
741
|
-
- `/bluera-knowledge:skill-activation on` - Enable (default)
|
|
742
|
-
- `/bluera-knowledge:skill-activation off` - Disable
|
|
743
|
-
- `/bluera-knowledge:skill-activation config` - Toggle individual skills
|
|
737
|
+
BK activates automatically when you work with dependencies — no manual invocation needed.
|
|
744
738
|
|
|
745
739
|
**How it works:**
|
|
746
|
-
|
|
747
|
-
-
|
|
748
|
-
-
|
|
749
|
-
-
|
|
750
|
-
- "Multi-step workflow" → suggests `advanced-workflows`
|
|
751
|
-
- "Add/delete store" → suggests `store-lifecycle`
|
|
752
|
-
|
|
753
|
-
Claude evaluates each suggestion and invokes relevant skills before answering. Users who already use BK terminology are excluded (they already know the tool).
|
|
754
|
-
|
|
755
|
-
**Configuration stored in:** `.bluera/bluera-knowledge/skill-activation.json` (relative to project root)
|
|
740
|
+
- **Directive skill description** tells Claude to ALWAYS use BK for library/dependency questions
|
|
741
|
+
- **UserPromptSubmit hook** injects a BK reminder when your prompt involves dependencies
|
|
742
|
+
- **Stop hook** catches cases where dependency dirs were accessed but BK wasn't consulted
|
|
743
|
+
- **Prescriptive MCP tool descriptions** ensure Claude reaches for BK search before training data
|
|
756
744
|
|
|
757
745
|
---
|
|
758
746
|
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
isWebStoreDefinition,
|
|
13
13
|
ok,
|
|
14
14
|
summarizePayload
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-L2SC6J4K.js";
|
|
16
16
|
import {
|
|
17
17
|
DEFAULT_IGNORE_DIRS,
|
|
18
18
|
checkStoreModelCompatibility
|
|
@@ -1338,6 +1338,9 @@ var handleGetStoreInfo = async (args, context) => {
|
|
|
1338
1338
|
]
|
|
1339
1339
|
};
|
|
1340
1340
|
};
|
|
1341
|
+
function normalizeRepoUrl(url) {
|
|
1342
|
+
return url.replace(/\.git$/, "").replace(/\/$/, "").toLowerCase();
|
|
1343
|
+
}
|
|
1341
1344
|
var handleCreateStore = async (args, context) => {
|
|
1342
1345
|
const validated = CreateStoreArgsSchema.parse(args);
|
|
1343
1346
|
logger6.info(
|
|
@@ -1346,6 +1349,54 @@ var handleCreateStore = async (args, context) => {
|
|
|
1346
1349
|
);
|
|
1347
1350
|
const { services, options } = context;
|
|
1348
1351
|
const isUrl = validated.source.startsWith("http://") || validated.source.startsWith("https://") || validated.source.startsWith("git@");
|
|
1352
|
+
if (isUrl) {
|
|
1353
|
+
const stores = await services.store.list();
|
|
1354
|
+
const normalizedSource = normalizeRepoUrl(validated.source);
|
|
1355
|
+
const existing = stores.find(
|
|
1356
|
+
(s) => "url" in s && s.url !== void 0 && normalizeRepoUrl(s.url) === normalizedSource
|
|
1357
|
+
);
|
|
1358
|
+
if (existing !== void 0) {
|
|
1359
|
+
const storePath2 = "path" in existing ? existing.path : void 0;
|
|
1360
|
+
logger6.info(
|
|
1361
|
+
{ name: validated.name, existingName: existing.name, url: validated.source },
|
|
1362
|
+
"Duplicate URL detected \u2014 returning existing store info"
|
|
1363
|
+
);
|
|
1364
|
+
return {
|
|
1365
|
+
content: [
|
|
1366
|
+
{
|
|
1367
|
+
type: "text",
|
|
1368
|
+
text: JSON.stringify(
|
|
1369
|
+
{
|
|
1370
|
+
alreadyIndexed: true,
|
|
1371
|
+
store: {
|
|
1372
|
+
id: existing.id,
|
|
1373
|
+
name: existing.name,
|
|
1374
|
+
type: existing.type,
|
|
1375
|
+
path: storePath2,
|
|
1376
|
+
url: "url" in existing ? existing.url : void 0,
|
|
1377
|
+
createdAt: existing.createdAt.toISOString(),
|
|
1378
|
+
updatedAt: existing.updatedAt.toISOString()
|
|
1379
|
+
},
|
|
1380
|
+
search: {
|
|
1381
|
+
tool: "search",
|
|
1382
|
+
example: { query: "your question here", stores: [existing.name] },
|
|
1383
|
+
tip: storePath2 !== void 0 ? `Files also available for Grep/Read at: ${storePath2}` : void 0
|
|
1384
|
+
},
|
|
1385
|
+
actions: {
|
|
1386
|
+
reindex: `Use store:index ${existing.name} to re-index with current embeddings`,
|
|
1387
|
+
pull: `Use stores:pull ${existing.name} to git pull latest and re-index`,
|
|
1388
|
+
recreate: `Use store:delete ${existing.name} first, then store:create again for a fresh clone`
|
|
1389
|
+
},
|
|
1390
|
+
message: `Repository already indexed as '${existing.name}' (last updated ${existing.updatedAt.toISOString()}). Use search tool with stores: ["${existing.name}"] to query it.`
|
|
1391
|
+
},
|
|
1392
|
+
null,
|
|
1393
|
+
2
|
|
1394
|
+
)
|
|
1395
|
+
}
|
|
1396
|
+
]
|
|
1397
|
+
};
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1349
1400
|
const result = await services.store.create({
|
|
1350
1401
|
name: validated.name,
|
|
1351
1402
|
type: validated.type,
|
|
@@ -2830,4 +2881,4 @@ export {
|
|
|
2830
2881
|
createMCPServer,
|
|
2831
2882
|
runMCPServer
|
|
2832
2883
|
};
|
|
2833
|
-
//# sourceMappingURL=chunk-
|
|
2884
|
+
//# sourceMappingURL=chunk-DNGE7FZ4.js.map
|