bluera-knowledge 0.11.4 → 0.11.6
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 +15 -2
- package/CHANGELOG.md +33 -0
- package/README.md +2 -1
- package/package.json +1 -1
- package/src/mcp/plugin-mcp-config.test.ts +64 -0
- package/.mcp.json +0 -12
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bluera-knowledge",
|
|
3
|
-
"version": "0.11.
|
|
4
|
-
"description": "Clone repos, crawl docs, search locally. Fast, authoritative answers for AI coding agents."
|
|
3
|
+
"version": "0.11.6",
|
|
4
|
+
"description": "Clone repos, crawl docs, search locally. Fast, authoritative answers for AI coding agents.",
|
|
5
|
+
"mcpServers": {
|
|
6
|
+
"bluera-knowledge": {
|
|
7
|
+
"command": "node",
|
|
8
|
+
"args": [
|
|
9
|
+
"${CLAUDE_PLUGIN_ROOT}/dist/mcp/server.js"
|
|
10
|
+
],
|
|
11
|
+
"env": {
|
|
12
|
+
"PROJECT_ROOT": "${PWD}",
|
|
13
|
+
"DATA_DIR": ".bluera/bluera-knowledge/data",
|
|
14
|
+
"CONFIG_PATH": ".bluera/bluera-knowledge/config.json"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
5
18
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,39 @@
|
|
|
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.11.6](https://github.com/blueraai/bluera-knowledge/compare/v0.10.0...v0.11.6) (2026-01-10)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add file logging to background worker for visibility ([6d7a751](https://github.com/blueraai/bluera-knowledge/commit/6d7a751de59a566c34b03b434c772ecde3770b2c))
|
|
11
|
+
* **analysis:** add custom language extensibility framework with ZIL adapter ([c4dc526](https://github.com/blueraai/bluera-knowledge/commit/c4dc526467c70dbc3fb28e7e5d7620a90cc3bf95))
|
|
12
|
+
* require env vars with no defaults (fail fast) ([b404cd6](https://github.com/blueraai/bluera-knowledge/commit/b404cd60374e0a7c5ace89f1ef0235bfc5c799fa))
|
|
13
|
+
* **sync:** add git-committable store definitions with sync command ([5cfa925](https://github.com/blueraai/bluera-knowledge/commit/5cfa92580397f193fda75ea61197fb4c9d9d4b0a))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* **crawl:** handle Claude CLI structured_output wrapper in intelligent crawl ([54ea74b](https://github.com/blueraai/bluera-knowledge/commit/54ea74bca6d4b7263ef11a8290416e0d66b8d37f))
|
|
19
|
+
* **test:** add timeout to flaky search test ([5848b76](https://github.com/blueraai/bluera-knowledge/commit/5848b7648a547510fc2333f283ae835a6ca9efef))
|
|
20
|
+
* use relative path in .mcp.json for project-level MCP config ([6d7a55e](https://github.com/blueraai/bluera-knowledge/commit/6d7a55ef86dd5ac5d568feafa3ab207faa843d46))
|
|
21
|
+
|
|
22
|
+
## [0.11.5](https://github.com/blueraai/bluera-knowledge/compare/v0.10.0...v0.11.5) (2026-01-10)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* add file logging to background worker for visibility ([6d7a751](https://github.com/blueraai/bluera-knowledge/commit/6d7a751de59a566c34b03b434c772ecde3770b2c))
|
|
28
|
+
* **analysis:** add custom language extensibility framework with ZIL adapter ([c4dc526](https://github.com/blueraai/bluera-knowledge/commit/c4dc526467c70dbc3fb28e7e5d7620a90cc3bf95))
|
|
29
|
+
* require env vars with no defaults (fail fast) ([b404cd6](https://github.com/blueraai/bluera-knowledge/commit/b404cd60374e0a7c5ace89f1ef0235bfc5c799fa))
|
|
30
|
+
* **sync:** add git-committable store definitions with sync command ([5cfa925](https://github.com/blueraai/bluera-knowledge/commit/5cfa92580397f193fda75ea61197fb4c9d9d4b0a))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Bug Fixes
|
|
34
|
+
|
|
35
|
+
* **crawl:** handle Claude CLI structured_output wrapper in intelligent crawl ([54ea74b](https://github.com/blueraai/bluera-knowledge/commit/54ea74bca6d4b7263ef11a8290416e0d66b8d37f))
|
|
36
|
+
* **test:** add timeout to flaky search test ([5848b76](https://github.com/blueraai/bluera-knowledge/commit/5848b7648a547510fc2333f283ae835a6ca9efef))
|
|
37
|
+
|
|
5
38
|
## [0.11.4](https://github.com/blueraai/bluera-knowledge/compare/v0.10.0...v0.11.4) (2026-01-10)
|
|
6
39
|
|
|
7
40
|
|
package/README.md
CHANGED
|
@@ -1147,7 +1147,7 @@ playwright install chromium
|
|
|
1147
1147
|
|
|
1148
1148
|
## 🔌 MCP Integration
|
|
1149
1149
|
|
|
1150
|
-
The plugin includes a Model Context Protocol server that exposes search tools. This is configured in
|
|
1150
|
+
The plugin includes a Model Context Protocol server that exposes search tools. This is configured inline in `.claude-plugin/plugin.json`:
|
|
1151
1151
|
|
|
1152
1152
|
> [!IMPORTANT]
|
|
1153
1153
|
> **Commands vs MCP Tools**: You interact with the plugin using `/bluera-knowledge:` slash commands. Behind the scenes, these commands instruct Claude Code to use MCP tools (`mcp__bluera-knowledge__*`) which handle the actual operations. Commands provide the user interface, while MCP tools are the backend that AI agents use to access your knowledge stores.
|
|
@@ -1159,6 +1159,7 @@ The plugin includes a Model Context Protocol server that exposes search tools. T
|
|
|
1159
1159
|
"command": "node",
|
|
1160
1160
|
"args": ["${CLAUDE_PLUGIN_ROOT}/dist/mcp/server.js"],
|
|
1161
1161
|
"env": {
|
|
1162
|
+
"PROJECT_ROOT": "${PWD}",
|
|
1162
1163
|
"DATA_DIR": ".bluera/bluera-knowledge/data",
|
|
1163
1164
|
"CONFIG_PATH": ".bluera/bluera-knowledge/config.json"
|
|
1164
1165
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { readFileSync, existsSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Tests to verify plugin.json is correctly configured for MCP server.
|
|
7
|
+
* The MCP server must work when the plugin is installed via marketplace.
|
|
8
|
+
*
|
|
9
|
+
* Key requirements:
|
|
10
|
+
* - Must use ${CLAUDE_PLUGIN_ROOT} for server path (resolves to plugin cache)
|
|
11
|
+
* - Must set PROJECT_ROOT env var (required by server fail-fast check)
|
|
12
|
+
* - Must NOT use relative paths (would resolve to user's project, not plugin)
|
|
13
|
+
*/
|
|
14
|
+
describe('Plugin MCP Configuration (.claude-plugin/plugin.json)', () => {
|
|
15
|
+
const configPath = join(process.cwd(), '.claude-plugin/plugin.json');
|
|
16
|
+
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
17
|
+
|
|
18
|
+
it('has mcpServers configuration inline', () => {
|
|
19
|
+
expect(config).toHaveProperty('mcpServers');
|
|
20
|
+
expect(config.mcpServers).toHaveProperty('bluera-knowledge');
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('uses ${CLAUDE_PLUGIN_ROOT} for server path (required for plugin mode)', () => {
|
|
24
|
+
const serverConfig = config.mcpServers['bluera-knowledge'];
|
|
25
|
+
const argsString = JSON.stringify(serverConfig.args);
|
|
26
|
+
|
|
27
|
+
// CLAUDE_PLUGIN_ROOT is set by Claude Code when plugin is installed
|
|
28
|
+
// This ensures the path resolves to the plugin cache, not user's project
|
|
29
|
+
expect(argsString).toContain('${CLAUDE_PLUGIN_ROOT}');
|
|
30
|
+
expect(argsString).toContain('dist/mcp/server.js');
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('does NOT use relative paths (would break in plugin mode)', () => {
|
|
34
|
+
const serverConfig = config.mcpServers['bluera-knowledge'];
|
|
35
|
+
const argsString = JSON.stringify(serverConfig.args);
|
|
36
|
+
|
|
37
|
+
// Relative paths like ./dist would resolve to user's project directory
|
|
38
|
+
// which doesn't have the plugin's dist folder
|
|
39
|
+
expect(argsString).not.toMatch(/"\.\//);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('sets PROJECT_ROOT environment variable (required by fail-fast server)', () => {
|
|
43
|
+
const serverConfig = config.mcpServers['bluera-knowledge'];
|
|
44
|
+
|
|
45
|
+
// PROJECT_ROOT is required since b404cd6 (fail-fast change)
|
|
46
|
+
expect(serverConfig.env).toHaveProperty('PROJECT_ROOT');
|
|
47
|
+
expect(serverConfig.env['PROJECT_ROOT']).toBe('${PWD}');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Tests to ensure .mcp.json is NOT distributed with the plugin.
|
|
53
|
+
* .mcp.json at project root causes confusion between plugin and project config.
|
|
54
|
+
*/
|
|
55
|
+
describe('No conflicting .mcp.json in repo', () => {
|
|
56
|
+
it('does NOT have .mcp.json in repo root (prevents config confusion)', () => {
|
|
57
|
+
const mcpJsonPath = join(process.cwd(), '.mcp.json');
|
|
58
|
+
|
|
59
|
+
// .mcp.json should NOT exist in the repo
|
|
60
|
+
// - For plugin mode: use mcpServers in plugin.json
|
|
61
|
+
// - For development: use ~/.claude.json per README
|
|
62
|
+
expect(existsSync(mcpJsonPath)).toBe(false);
|
|
63
|
+
});
|
|
64
|
+
});
|
package/.mcp.json
DELETED