devsmind-mcp 3.0.0 → 4.0.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/README.md +11 -20
- package/dist/cli/diff.js +1 -1
- package/dist/cli/diff.js.map +1 -1
- package/dist/cli/index.js +20 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/integrations/mcp.js +22 -1
- package/dist/cli/integrations/mcp.js.map +1 -1
- package/dist/cli/integrations/memory-topics.d.ts +21 -10
- package/dist/cli/integrations/memory-topics.js +32 -9
- package/dist/cli/integrations/memory-topics.js.map +1 -1
- package/dist/cli/integrations/memory.d.ts +14 -9
- package/dist/cli/integrations/memory.js +47 -229
- package/dist/cli/integrations/memory.js.map +1 -1
- package/dist/cli/integrations/registry.d.ts +27 -16
- package/dist/cli/integrations/registry.js +66 -34
- package/dist/cli/integrations/registry.js.map +1 -1
- package/dist/cli/rule.js +11 -16
- package/dist/cli/rule.js.map +1 -1
- package/dist/db/activity-graph.d.ts +55 -0
- package/dist/db/activity-graph.js +314 -0
- package/dist/db/activity-graph.js.map +1 -0
- package/dist/db/activity.d.ts +21 -0
- package/dist/db/activity.js +3 -2
- package/dist/db/activity.js.map +1 -1
- package/dist/db/database.d.ts +72 -4
- package/dist/db/database.js +89 -8
- package/dist/db/database.js.map +1 -1
- package/dist/db/index-build.d.ts +75 -0
- package/dist/db/index-build.js +177 -0
- package/dist/db/index-build.js.map +1 -0
- package/dist/db/revert.js +1 -1
- package/dist/db/revert.js.map +1 -1
- package/dist/db/schema.d.ts +2 -2
- package/dist/db/staging.d.ts +3 -2
- package/dist/db/staging.js +1 -1
- package/dist/db/staging.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.js +215 -208
- package/dist/mcp/server.js.map +1 -1
- package/dist/utils/config.d.ts +15 -0
- package/dist/utils/config.js +27 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/scanner.d.ts +6 -4
- package/dist/utils/scanner.js +6 -4
- package/dist/utils/scanner.js.map +1 -1
- package/package.json +1 -1
package/dist/utils/config.d.ts
CHANGED
|
@@ -44,6 +44,21 @@ export declare function findDevmindDir(startDir: string): string | null;
|
|
|
44
44
|
* up from the current working directory. Returns null when nothing is found.
|
|
45
45
|
*/
|
|
46
46
|
export declare function resolveDevmindDir(explicitPath?: string): string | null;
|
|
47
|
+
/**
|
|
48
|
+
* Rejoins a `--path` value that a shell split on spaces.
|
|
49
|
+
*
|
|
50
|
+
* An MCP client that spawns the server with `shell: true` concatenates argv WITHOUT quoting (Node
|
|
51
|
+
* warns about exactly this — DEP0190), so `--path C:\work 2\devsmind\.devmind` reaches us already
|
|
52
|
+
* torn apart: `--path` keeps `C:\work` and `2\devsmind\.devmind` lands in the leftover operands.
|
|
53
|
+
* The server then dies with "devmind_path does not exist" and the IDE just shows a dead MCP server.
|
|
54
|
+
* Any project whose path contains a space hits this, which is why `--stdio` alone works and
|
|
55
|
+
* `--stdio --path` does not.
|
|
56
|
+
*
|
|
57
|
+
* Rejoining the fragments with the spaces the shell ate recovers the real directory. Longest
|
|
58
|
+
* candidate first, and only ever returns a path that EXISTS — so a genuinely mistyped `--path`
|
|
59
|
+
* still fails loudly at the caller instead of being silently "repaired" into something else.
|
|
60
|
+
*/
|
|
61
|
+
export declare function recoverSpaceSplitPath(explicitPath: string | undefined, extraOperands: string[]): string | undefined;
|
|
47
62
|
/**
|
|
48
63
|
* Loads project config.json and .env from the given .devmind directory path.
|
|
49
64
|
*/
|
package/dist/utils/config.js
CHANGED
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.findDevmindDir = findDevmindDir;
|
|
37
37
|
exports.resolveDevmindDir = resolveDevmindDir;
|
|
38
|
+
exports.recoverSpaceSplitPath = recoverSpaceSplitPath;
|
|
38
39
|
exports.loadProjectContext = loadProjectContext;
|
|
39
40
|
exports.resolveRepoPath = resolveRepoPath;
|
|
40
41
|
exports.canonicalizePath = canonicalizePath;
|
|
@@ -70,6 +71,32 @@ function resolveDevmindDir(explicitPath) {
|
|
|
70
71
|
}
|
|
71
72
|
return findDevmindDir(process.cwd());
|
|
72
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Rejoins a `--path` value that a shell split on spaces.
|
|
76
|
+
*
|
|
77
|
+
* An MCP client that spawns the server with `shell: true` concatenates argv WITHOUT quoting (Node
|
|
78
|
+
* warns about exactly this — DEP0190), so `--path C:\work 2\devsmind\.devmind` reaches us already
|
|
79
|
+
* torn apart: `--path` keeps `C:\work` and `2\devsmind\.devmind` lands in the leftover operands.
|
|
80
|
+
* The server then dies with "devmind_path does not exist" and the IDE just shows a dead MCP server.
|
|
81
|
+
* Any project whose path contains a space hits this, which is why `--stdio` alone works and
|
|
82
|
+
* `--stdio --path` does not.
|
|
83
|
+
*
|
|
84
|
+
* Rejoining the fragments with the spaces the shell ate recovers the real directory. Longest
|
|
85
|
+
* candidate first, and only ever returns a path that EXISTS — so a genuinely mistyped `--path`
|
|
86
|
+
* still fails loudly at the caller instead of being silently "repaired" into something else.
|
|
87
|
+
*/
|
|
88
|
+
function recoverSpaceSplitPath(explicitPath, extraOperands) {
|
|
89
|
+
if (!explicitPath || extraOperands.length === 0)
|
|
90
|
+
return explicitPath;
|
|
91
|
+
if (fs.existsSync(explicitPath))
|
|
92
|
+
return explicitPath;
|
|
93
|
+
for (let take = extraOperands.length; take > 0; take--) {
|
|
94
|
+
const candidate = [explicitPath, ...extraOperands.slice(0, take)].join(' ');
|
|
95
|
+
if (fs.existsSync(candidate))
|
|
96
|
+
return candidate;
|
|
97
|
+
}
|
|
98
|
+
return explicitPath;
|
|
99
|
+
}
|
|
73
100
|
/**
|
|
74
101
|
* Loads project config.json and .env from the given .devmind directory path.
|
|
75
102
|
*/
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,wCAWC;AAOD,8CAMC;AAKD,gDA2BC;AAKD,0CAmBC;AAGD,4CAOC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/scanner.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Extensions we consider indexable source files
|
|
3
|
-
* what
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Extensions we consider indexable source files — this is the FILE-SCAN set (what `walkDir`
|
|
3
|
+
* even looks at), broader than what can actually be parsed into graph nodes: `edit_node` and the
|
|
4
|
+
* in-chat indexing tools only trace structure from `AST_PARSEABLE_EXTENSIONS` (see ast.ts) —
|
|
5
|
+
* currently TS/JS. Everything else here still gets a whole-file activity-log entry on edit, just
|
|
6
|
+
* no graph node. Stylesheets, markup, config, and other non-code assets are outside this set
|
|
7
|
+
* entirely, by design, not an oversight.
|
|
6
8
|
*/
|
|
7
9
|
export declare const INDEXABLE_EXTENSIONS: Set<string>;
|
|
8
10
|
export interface RepoFileList {
|
package/dist/utils/scanner.js
CHANGED
|
@@ -39,10 +39,12 @@ const fs = __importStar(require("fs"));
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
const config_1 = require("./config");
|
|
41
41
|
/**
|
|
42
|
-
* Extensions we consider indexable source files
|
|
43
|
-
* what
|
|
44
|
-
*
|
|
45
|
-
*
|
|
42
|
+
* Extensions we consider indexable source files — this is the FILE-SCAN set (what `walkDir`
|
|
43
|
+
* even looks at), broader than what can actually be parsed into graph nodes: `edit_node` and the
|
|
44
|
+
* in-chat indexing tools only trace structure from `AST_PARSEABLE_EXTENSIONS` (see ast.ts) —
|
|
45
|
+
* currently TS/JS. Everything else here still gets a whole-file activity-log entry on edit, just
|
|
46
|
+
* no graph node. Stylesheets, markup, config, and other non-code assets are outside this set
|
|
47
|
+
* entirely, by design, not an oversight.
|
|
46
48
|
*/
|
|
47
49
|
exports.INDEXABLE_EXTENSIONS = new Set([
|
|
48
50
|
'.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/utils/scanner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/utils/scanner.ts"],"names":[],"mappings":"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"}
|