@coreyuan/vector-mind 1.0.48 → 1.0.52

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 (117) hide show
  1. package/README.md +146 -394
  2. package/dist/activity-log.d.ts +19 -0
  3. package/dist/activity-log.js +106 -0
  4. package/dist/activity-log.js.map +1 -0
  5. package/dist/builtin-conventions.d.ts +2 -1
  6. package/dist/builtin-conventions.js +7 -2
  7. package/dist/builtin-conventions.js.map +1 -1
  8. package/dist/builtin-instructions.d.ts +1 -1
  9. package/dist/builtin-instructions.js +1 -1
  10. package/dist/builtin-instructions.js.map +1 -1
  11. package/dist/config.d.ts +28 -0
  12. package/dist/config.js +189 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/database-runtime.d.ts +54 -0
  15. package/dist/database-runtime.js +512 -0
  16. package/dist/database-runtime.js.map +1 -0
  17. package/dist/development-warnings.d.ts +93 -0
  18. package/dist/development-warnings.js +589 -0
  19. package/dist/development-warnings.js.map +1 -0
  20. package/dist/file-indexing.d.ts +22 -0
  21. package/dist/file-indexing.js +243 -0
  22. package/dist/file-indexing.js.map +1 -0
  23. package/dist/grep.d.ts +64 -0
  24. package/dist/grep.js +475 -0
  25. package/dist/grep.js.map +1 -0
  26. package/dist/index.js +167 -6884
  27. package/dist/index.js.map +1 -1
  28. package/dist/large-file-split.d.ts +29 -0
  29. package/dist/large-file-split.js +146 -0
  30. package/dist/large-file-split.js.map +1 -0
  31. package/dist/memory-maintenance.d.ts +80 -0
  32. package/dist/memory-maintenance.js +537 -0
  33. package/dist/memory-maintenance.js.map +1 -0
  34. package/dist/memory-mutations.d.ts +23 -0
  35. package/dist/memory-mutations.js +83 -0
  36. package/dist/memory-mutations.js.map +1 -0
  37. package/dist/memory-recall.d.ts +93 -0
  38. package/dist/memory-recall.js +796 -0
  39. package/dist/memory-recall.js.map +1 -0
  40. package/dist/path-filters.d.ts +1 -0
  41. package/dist/path-filters.js +27 -0
  42. package/dist/path-filters.js.map +1 -0
  43. package/dist/path-rules.d.ts +12 -0
  44. package/dist/path-rules.js +208 -0
  45. package/dist/path-rules.js.map +1 -0
  46. package/dist/pending-changes.d.ts +22 -0
  47. package/dist/pending-changes.js +166 -0
  48. package/dist/pending-changes.js.map +1 -0
  49. package/dist/project-files.d.ts +66 -0
  50. package/dist/project-files.js +215 -0
  51. package/dist/project-files.js.map +1 -0
  52. package/dist/root.d.ts +15 -0
  53. package/dist/root.js +191 -0
  54. package/dist/root.js.map +1 -0
  55. package/dist/rtk-tools.d.ts +20 -0
  56. package/dist/rtk-tools.js +318 -0
  57. package/dist/rtk-tools.js.map +1 -0
  58. package/dist/server-instructions.d.ts +1 -0
  59. package/dist/server-instructions.js +88 -0
  60. package/dist/server-instructions.js.map +1 -0
  61. package/dist/symbols.d.ts +2 -0
  62. package/dist/symbols.js +159 -0
  63. package/dist/symbols.js.map +1 -0
  64. package/dist/token-savings.d.ts +40 -0
  65. package/dist/token-savings.js +50 -0
  66. package/dist/token-savings.js.map +1 -0
  67. package/dist/tool-catalog.d.ts +18 -0
  68. package/dist/tool-catalog.js +243 -0
  69. package/dist/tool-catalog.js.map +1 -0
  70. package/dist/tool-handlers/context-recovery.d.ts +6 -0
  71. package/dist/tool-handlers/context-recovery.js +319 -0
  72. package/dist/tool-handlers/context-recovery.js.map +1 -0
  73. package/dist/tool-handlers/context.d.ts +34 -0
  74. package/dist/tool-handlers/context.js +2 -0
  75. package/dist/tool-handlers/context.js.map +1 -0
  76. package/dist/tool-handlers/diagnostics.d.ts +8 -0
  77. package/dist/tool-handlers/diagnostics.js +114 -0
  78. package/dist/tool-handlers/diagnostics.js.map +1 -0
  79. package/dist/tool-handlers/files.d.ts +8 -0
  80. package/dist/tool-handlers/files.js +493 -0
  81. package/dist/tool-handlers/files.js.map +1 -0
  82. package/dist/tool-handlers/large-files.d.ts +4 -0
  83. package/dist/tool-handlers/large-files.js +139 -0
  84. package/dist/tool-handlers/large-files.js.map +1 -0
  85. package/dist/tool-handlers/maintenance.d.ts +4 -0
  86. package/dist/tool-handlers/maintenance.js +160 -0
  87. package/dist/tool-handlers/maintenance.js.map +1 -0
  88. package/dist/tool-handlers/memory-diagnostics.d.ts +5 -0
  89. package/dist/tool-handlers/memory-diagnostics.js +509 -0
  90. package/dist/tool-handlers/memory-diagnostics.js.map +1 -0
  91. package/dist/tool-handlers/memory.d.ts +6 -0
  92. package/dist/tool-handlers/memory.js +334 -0
  93. package/dist/tool-handlers/memory.js.map +1 -0
  94. package/dist/tool-handlers/notes-decisions.d.ts +7 -0
  95. package/dist/tool-handlers/notes-decisions.js +169 -0
  96. package/dist/tool-handlers/notes-decisions.js.map +1 -0
  97. package/dist/tool-handlers/requirements.d.ts +7 -0
  98. package/dist/tool-handlers/requirements.js +357 -0
  99. package/dist/tool-handlers/requirements.js.map +1 -0
  100. package/dist/tool-handlers.d.ts +4 -0
  101. package/dist/tool-handlers.js +105 -0
  102. package/dist/tool-handlers.js.map +1 -0
  103. package/dist/tool-output.d.ts +213 -0
  104. package/dist/tool-output.js +278 -0
  105. package/dist/tool-output.js.map +1 -0
  106. package/dist/tool-schemas.d.ts +434 -0
  107. package/dist/tool-schemas.js +328 -0
  108. package/dist/tool-schemas.js.map +1 -0
  109. package/dist/types.d.ts +61 -0
  110. package/dist/types.js +2 -0
  111. package/dist/types.js.map +1 -0
  112. package/docs/capability-matrix.md +43 -0
  113. package/package.json +11 -10
  114. package/skills/vector-mind-autopilot/SKILL.md +149 -0
  115. package/skills/vector-mind-autopilot/references/claude-desktop-mcp-config.json +9 -0
  116. package/skills/vector-mind-autopilot/references/claude-project-instructions.md +47 -0
  117. package/skills/vector-mind-autopilot/references/universal-system-prompt.md +78 -0
@@ -0,0 +1,215 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import * as readline from "node:readline";
4
+ import { getAllowedCodexTextRoots, parseFileUriToPath } from "./root.js";
5
+ import { shouldIgnoreDbFilePath } from "./path-rules.js";
6
+ import { passesPathFilters } from "./path-filters.js";
7
+ export function resolveProjectPathUnderRoot(projectRoot, normalizeToDbPath, inputPath, opts = {}) {
8
+ const normalizedInput = inputPath.trim() || ".";
9
+ const abs = path.isAbsolute(normalizedInput) ? normalizedInput : path.join(projectRoot, normalizedInput);
10
+ const absPath = path.resolve(abs);
11
+ const root = path.resolve(projectRoot);
12
+ const rel = path.relative(root, absPath);
13
+ const insideRoot = rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
14
+ if (!insideRoot) {
15
+ throw new Error(`[VectorMind] Path must be under project_root: ${inputPath}`);
16
+ }
17
+ if (rel === "" && !opts.allowRoot) {
18
+ throw new Error(`[VectorMind] Path must not be the project_root itself: ${inputPath}`);
19
+ }
20
+ return {
21
+ absPath,
22
+ dbFilePath: rel === "" ? "." : normalizeToDbPath(absPath),
23
+ };
24
+ }
25
+ export function resolveReadPathUnderProjectRoot(projectRoot, normalizeToDbPath, inputPath) {
26
+ return resolveProjectPathUnderRoot(projectRoot, normalizeToDbPath, inputPath, { allowRoot: false });
27
+ }
28
+ export function resolveCodexTextPath(inputPath) {
29
+ const trimmed = inputPath.trim();
30
+ if (!trimmed)
31
+ throw new Error("[VectorMind] path is required");
32
+ const uriPath = trimmed.startsWith("file:") ? parseFileUriToPath(trimmed) : null;
33
+ const absPath = path.resolve(uriPath ?? trimmed);
34
+ const allowedRoot = getAllowedCodexTextRoots().find((root) => {
35
+ const rel = path.relative(root, absPath);
36
+ return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
37
+ });
38
+ if (!allowedRoot) {
39
+ throw new Error(`[VectorMind] Path must be under one of the allowed local text roots: ${getAllowedCodexTextRoots().join(", ")}`);
40
+ }
41
+ return { absPath, displayPath: absPath, allowedRoot };
42
+ }
43
+ function isHiddenBaseName(name) {
44
+ return name.startsWith(".") && name !== "." && name !== "..";
45
+ }
46
+ export function normalizeExtensionsFilter(values) {
47
+ if (!values?.length)
48
+ return null;
49
+ const normalized = values
50
+ .map((v) => v.trim().toLowerCase())
51
+ .filter(Boolean)
52
+ .map((v) => (v.startsWith(".") ? v : `.${v}`));
53
+ return normalized.length ? Array.from(new Set(normalized)) : null;
54
+ }
55
+ export async function readTextFileLines(opts) {
56
+ let lineNo = 0;
57
+ const lines = [];
58
+ let totalChars = 0;
59
+ let truncated = false;
60
+ const stream = fs.createReadStream(opts.absPath, { encoding: "utf8" });
61
+ const rl = readline.createInterface({ input: stream, crlfDelay: Infinity });
62
+ try {
63
+ for await (const line of rl) {
64
+ lineNo += 1;
65
+ if (lineNo < opts.fromLine)
66
+ continue;
67
+ if (lineNo > opts.toLine)
68
+ break;
69
+ const rendered = `${lineNo}:${line}`;
70
+ totalChars += rendered.length + 1;
71
+ if (lines.length >= opts.maxLines || totalChars > opts.maxChars) {
72
+ truncated = true;
73
+ break;
74
+ }
75
+ lines.push(rendered);
76
+ }
77
+ }
78
+ finally {
79
+ try {
80
+ rl.close();
81
+ }
82
+ catch { }
83
+ try {
84
+ stream.destroy();
85
+ }
86
+ catch { }
87
+ }
88
+ return { text: lines.join("\n"), returned: lines.length, truncated };
89
+ }
90
+ export function readTextFileSlice(opts) {
91
+ const st = fs.statSync(opts.absPath);
92
+ if (!st.isFile())
93
+ throw new Error("Not a file");
94
+ if (st.size > opts.maxFileBytes) {
95
+ throw new Error(`File is too large for raw text read (${st.size} bytes > limit ${opts.maxFileBytes}). Use read_file_lines instead.`);
96
+ }
97
+ const text = fs.readFileSync(opts.absPath, "utf8");
98
+ const totalChars = text.length;
99
+ const safeOffset = Math.min(opts.offset, totalChars);
100
+ const slice = text.slice(safeOffset, safeOffset + opts.maxChars);
101
+ const returnedChars = slice.length;
102
+ const truncated = safeOffset + returnedChars < totalChars;
103
+ return { text: slice, totalChars, returnedChars, truncated };
104
+ }
105
+ export function listProjectFilesInternal(opts) {
106
+ const entries = [];
107
+ let scanned = 0;
108
+ let truncated = false;
109
+ const pushEntry = (entry) => {
110
+ if (entries.length >= opts.maxResults) {
111
+ truncated = true;
112
+ return;
113
+ }
114
+ entries.push(entry);
115
+ };
116
+ const startStat = fs.statSync(opts.startAbsPath);
117
+ if (startStat.isFile()) {
118
+ const relPath = opts.startDbPath;
119
+ if ((!opts.respectIgnore || !shouldIgnoreDbFilePath(relPath)) && passesPathFilters(relPath, opts.includePaths, opts.excludePaths)) {
120
+ const ext = path.extname(relPath).toLowerCase();
121
+ if (!opts.extensions || opts.extensions.includes(ext)) {
122
+ pushEntry({
123
+ path: relPath,
124
+ kind: "file",
125
+ depth: 0,
126
+ ...(opts.includeStats ? { size: startStat.size, mtime: startStat.mtime.toISOString() } : {}),
127
+ });
128
+ }
129
+ }
130
+ return { entries, returned: entries.length, scanned: 1, truncated };
131
+ }
132
+ const effectiveMaxDepth = opts.recursive ? opts.maxDepth : 1;
133
+ const stack = [{ absPath: opts.startAbsPath, depth: 0 }];
134
+ while (stack.length > 0) {
135
+ const current = stack.pop();
136
+ if (!current)
137
+ break;
138
+ let dirEntries;
139
+ try {
140
+ dirEntries = fs.readdirSync(current.absPath, { withFileTypes: true });
141
+ }
142
+ catch {
143
+ continue;
144
+ }
145
+ dirEntries.sort((a, b) => a.name.localeCompare(b.name));
146
+ for (let idx = dirEntries.length - 1; idx >= 0; idx -= 1) {
147
+ const child = dirEntries[idx];
148
+ if (!child)
149
+ continue;
150
+ if (!opts.includeHidden && isHiddenBaseName(child.name))
151
+ continue;
152
+ const childAbs = path.join(current.absPath, child.name);
153
+ const childRel = opts.normalizeToDbPath(childAbs);
154
+ if (opts.respectIgnore && shouldIgnoreDbFilePath(childRel))
155
+ continue;
156
+ scanned += 1;
157
+ const childDepth = current.depth + 1;
158
+ const matchesPath = passesPathFilters(childRel, opts.includePaths, opts.excludePaths);
159
+ if (child.isDirectory()) {
160
+ if (opts.includeDirs && matchesPath) {
161
+ let stats = null;
162
+ if (opts.includeStats) {
163
+ try {
164
+ stats = fs.statSync(childAbs);
165
+ }
166
+ catch {
167
+ stats = null;
168
+ }
169
+ }
170
+ pushEntry({
171
+ path: childRel,
172
+ kind: "dir",
173
+ depth: childDepth,
174
+ ...(stats ? { size: stats.size, mtime: stats.mtime.toISOString() } : {}),
175
+ });
176
+ if (truncated)
177
+ break;
178
+ }
179
+ if (childDepth < effectiveMaxDepth) {
180
+ stack.push({ absPath: childAbs, depth: childDepth });
181
+ }
182
+ continue;
183
+ }
184
+ if (!child.isFile())
185
+ continue;
186
+ if (!opts.includeFiles || !matchesPath)
187
+ continue;
188
+ const ext = path.extname(childRel).toLowerCase();
189
+ if (opts.extensions && !opts.extensions.includes(ext))
190
+ continue;
191
+ let stats = null;
192
+ if (opts.includeStats) {
193
+ try {
194
+ stats = fs.statSync(childAbs);
195
+ }
196
+ catch {
197
+ stats = null;
198
+ }
199
+ }
200
+ pushEntry({
201
+ path: childRel,
202
+ kind: "file",
203
+ depth: childDepth,
204
+ ...(stats ? { size: stats.size, mtime: stats.mtime.toISOString() } : {}),
205
+ });
206
+ if (truncated)
207
+ break;
208
+ }
209
+ if (truncated)
210
+ break;
211
+ }
212
+ entries.sort((a, b) => a.path.localeCompare(b.path));
213
+ return { entries, returned: entries.length, scanned, truncated };
214
+ }
215
+ //# sourceMappingURL=project-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-files.js","sourceRoot":"","sources":["../src/project-files.ts"],"names":[],"mappings":"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"}
package/dist/root.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import type { RootSource } from "./types.js";
2
+ export declare function getAllowedCodexTextRoots(): string[];
3
+ export declare function isProbablyVscodeInstallDir(dir: string): boolean;
4
+ export declare function isProbablySystemDir(dir: string): boolean;
5
+ export declare function resolveSafeFallbackRootDir(): string;
6
+ export declare function parseFileUriToPath(uri: string): string | null;
7
+ export declare function resolveRootFromToolArgOrThrow(raw: unknown): {
8
+ root: string;
9
+ source: RootSource;
10
+ } | null;
11
+ export declare function resolveRootFromEnvOrThrow(): {
12
+ root: string;
13
+ source: RootSource;
14
+ } | null;
15
+ export declare function normalizeToDbPath(inputPath: string): string;
package/dist/root.js ADDED
@@ -0,0 +1,191 @@
1
+ import path from "node:path";
2
+ import os from "node:os";
3
+ import fs from "node:fs";
4
+ import { fileURLToPath } from "node:url";
5
+ const rootFromEnv = process.env.VECTORMIND_ROOT?.trim() ?? "";
6
+ function getCodexHomeDir() {
7
+ const raw = process.env.CODEX_HOME?.trim();
8
+ if (raw)
9
+ return path.resolve(raw);
10
+ return path.join(os.homedir(), ".codex");
11
+ }
12
+ function getAgentsHomeDir() {
13
+ const raw = process.env.AGENTS_HOME?.trim();
14
+ if (raw)
15
+ return path.resolve(raw);
16
+ return path.join(os.homedir(), ".agents");
17
+ }
18
+ export function getAllowedCodexTextRoots() {
19
+ const codexHome = getCodexHomeDir();
20
+ const agentsHome = getAgentsHomeDir();
21
+ return Array.from(new Set([
22
+ path.join(codexHome, "skills"),
23
+ path.join(codexHome, "prompts"),
24
+ path.join(codexHome, "rules"),
25
+ path.join(agentsHome, "skills"),
26
+ ].map((p) => path.resolve(p))));
27
+ }
28
+ export function isProbablyVscodeInstallDir(dir) {
29
+ const normalized = path.resolve(dir).toLowerCase().replace(/\\/g, "/");
30
+ return normalized.endsWith("/microsoft vs code") || normalized.includes("/microsoft vs code/resources/app");
31
+ }
32
+ export function isProbablySystemDir(dir) {
33
+ const normalized = path.resolve(dir).toLowerCase().replace(/\\/g, "/");
34
+ const sysRootRaw = process.env.SystemRoot?.trim();
35
+ const sysRoot = sysRootRaw ? path.resolve(sysRootRaw).toLowerCase().replace(/\\/g, "/") : "";
36
+ const home = os.homedir().toLowerCase().replace(/\\/g, "/");
37
+ if (normalized === "/" || /^[a-z]:\/?$/.test(normalized))
38
+ return true;
39
+ if (sysRoot && (normalized === sysRoot || normalized.startsWith(`${sysRoot}/system32`)))
40
+ return true;
41
+ if (normalized === home)
42
+ return true;
43
+ if (normalized.endsWith("/appdata/roaming/code/user"))
44
+ return true;
45
+ if (normalized.endsWith("/appdata/roaming/cursor/user"))
46
+ return true;
47
+ if (normalized.endsWith("/appdata/roaming/windsurf/user"))
48
+ return true;
49
+ if (normalized.endsWith("/.vscode/extensions"))
50
+ return true;
51
+ for (const programDir of [
52
+ process.env["ProgramFiles"],
53
+ process.env["ProgramFiles(x86)"],
54
+ process.env["ProgramW6432"],
55
+ ]) {
56
+ if (!programDir)
57
+ continue;
58
+ const p = path.resolve(programDir).toLowerCase().replace(/\\/g, "/");
59
+ if (normalized === p || normalized.startsWith(`${p}/`))
60
+ return true;
61
+ }
62
+ return false;
63
+ }
64
+ function getVsCodeUserDirCandidate() {
65
+ try {
66
+ const appData = process.env.APPDATA?.trim();
67
+ if (process.platform === "win32") {
68
+ const roaming = appData || path.join(os.homedir(), "AppData", "Roaming");
69
+ return path.join(roaming, "Code", "User");
70
+ }
71
+ if (process.platform === "darwin") {
72
+ return path.join(os.homedir(), "Library", "Application Support", "Code", "User");
73
+ }
74
+ return path.join(os.homedir(), ".config", "Code", "User");
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ export function resolveSafeFallbackRootDir() {
81
+ const candidate = getVsCodeUserDirCandidate();
82
+ if (candidate) {
83
+ try {
84
+ fs.mkdirSync(candidate, { recursive: true });
85
+ return candidate;
86
+ }
87
+ catch {
88
+ // fall through
89
+ }
90
+ }
91
+ return os.homedir();
92
+ }
93
+ export function parseFileUriToPath(uri) {
94
+ try {
95
+ return fileURLToPath(new URL(uri));
96
+ }
97
+ catch {
98
+ return null;
99
+ }
100
+ }
101
+ function isProjectRootMarkerPresent(dir) {
102
+ const markers = [
103
+ ".git",
104
+ "package.json",
105
+ "pnpm-workspace.yaml",
106
+ "yarn.lock",
107
+ "npm-shrinkwrap.json",
108
+ "pyproject.toml",
109
+ "requirements.txt",
110
+ "Cargo.toml",
111
+ "go.mod",
112
+ "deno.json",
113
+ "deno.jsonc",
114
+ "composer.json",
115
+ "Gemfile",
116
+ ];
117
+ for (const marker of markers) {
118
+ if (fs.existsSync(path.join(dir, marker)))
119
+ return true;
120
+ }
121
+ try {
122
+ const entries = fs.readdirSync(dir);
123
+ if (entries.some((e) => e.endsWith(".sln")))
124
+ return true;
125
+ }
126
+ catch {
127
+ // ignore
128
+ }
129
+ return false;
130
+ }
131
+ function findNearestProjectRoot(startDir) {
132
+ let current = fs.existsSync(startDir) && fs.statSync(startDir).isFile()
133
+ ? path.dirname(startDir)
134
+ : startDir;
135
+ current = path.resolve(current);
136
+ for (;;) {
137
+ if (isProjectRootMarkerPresent(current))
138
+ return current;
139
+ const parent = path.dirname(current);
140
+ if (parent === current)
141
+ return path.resolve(startDir);
142
+ current = parent;
143
+ }
144
+ }
145
+ export function resolveRootFromToolArgOrThrow(raw) {
146
+ if (typeof raw !== "string")
147
+ return null;
148
+ const trimmed = raw.trim();
149
+ if (!trimmed)
150
+ return null;
151
+ const fileUriPath = trimmed.startsWith("file://") ? parseFileUriToPath(trimmed) : null;
152
+ const base = fileUriPath ?? trimmed;
153
+ const abs = path.resolve(base);
154
+ try {
155
+ if (fs.existsSync(abs) && fs.statSync(abs).isFile()) {
156
+ return { root: findNearestProjectRoot(abs), source: "tool_arg" };
157
+ }
158
+ if (fs.existsSync(abs) && fs.statSync(abs).isDirectory()) {
159
+ return { root: findNearestProjectRoot(abs), source: "tool_arg" };
160
+ }
161
+ const parent = path.dirname(abs);
162
+ if (fs.existsSync(parent) && fs.statSync(parent).isDirectory()) {
163
+ return { root: findNearestProjectRoot(parent), source: "tool_arg" };
164
+ }
165
+ }
166
+ catch (err) {
167
+ throw new Error(`[VectorMind] Invalid project_root: ${abs}. (${String(err)})`);
168
+ }
169
+ throw new Error(`[VectorMind] project_root does not exist: ${abs}`);
170
+ }
171
+ export function resolveRootFromEnvOrThrow() {
172
+ if (!rootFromEnv)
173
+ return null;
174
+ const abs = path.resolve(rootFromEnv);
175
+ try {
176
+ if (fs.existsSync(abs) && fs.statSync(abs).isDirectory()) {
177
+ return { root: findNearestProjectRoot(abs), source: "env" };
178
+ }
179
+ throw new Error("not an existing directory");
180
+ }
181
+ catch (err) {
182
+ throw new Error(`[VectorMind] Invalid VECTORMIND_ROOT: ${abs}. Set it to an existing project directory. (${String(err)})`);
183
+ }
184
+ }
185
+ export function normalizeToDbPath(inputPath) {
186
+ const normalized = inputPath.replace(/\\/g, "/");
187
+ if (!normalized || normalized === ".")
188
+ return ".";
189
+ return path.posix.normalize(normalized).replace(/^\.\/+/, "");
190
+ }
191
+ //# sourceMappingURL=root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { RtkDetection } from "./types.js";
2
+ import type { InstallRtkArgs } from "./tool-schemas.js";
3
+ export declare function detectRtk(): RtkDetection;
4
+ export declare function installRtk(args: InstallRtkArgs): {
5
+ ok: boolean;
6
+ dry_run: boolean;
7
+ already_available: boolean;
8
+ method: string;
9
+ commands: string[];
10
+ notes: string[];
11
+ steps: Array<{
12
+ command: string;
13
+ status: number | null;
14
+ ok: boolean;
15
+ output: string;
16
+ }>;
17
+ detected_before: ReturnType<typeof detectRtk>;
18
+ detected_after?: ReturnType<typeof detectRtk>;
19
+ };
20
+ export declare function compactInstallRtkText(data: ReturnType<typeof installRtk>): string;