codesift-mcp 0.5.27 → 0.5.30
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/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +4 -1
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/git-hooks-installer.d.ts +29 -0
- package/dist/cli/git-hooks-installer.d.ts.map +1 -0
- package/dist/cli/git-hooks-installer.js +145 -0
- package/dist/cli/git-hooks-installer.js.map +1 -0
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +5 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/setup.d.ts +5 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +15 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/register-tool-loaders.d.ts +1 -1
- package/dist/register-tool-loaders.d.ts.map +1 -1
- package/dist/register-tool-loaders.js +2 -2
- package/dist/register-tool-loaders.js.map +1 -1
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +125 -11
- package/dist/register-tools.js.map +1 -1
- package/dist/storage/index-store.d.ts.map +1 -1
- package/dist/storage/index-store.js +15 -14
- package/dist/storage/index-store.js.map +1 -1
- package/dist/storage/registry.d.ts +9 -0
- package/dist/storage/registry.d.ts.map +1 -1
- package/dist/storage/registry.js +28 -0
- package/dist/storage/registry.js.map +1 -1
- package/dist/tools/astro-content-collections.d.ts.map +1 -1
- package/dist/tools/astro-content-collections.js +1 -141
- package/dist/tools/astro-content-collections.js.map +1 -1
- package/dist/tools/astro-db-audit.d.ts +30 -0
- package/dist/tools/astro-db-audit.d.ts.map +1 -0
- package/dist/tools/astro-db-audit.js +244 -0
- package/dist/tools/astro-db-audit.js.map +1 -0
- package/dist/tools/astro-db-parser.d.ts +24 -0
- package/dist/tools/astro-db-parser.d.ts.map +1 -0
- package/dist/tools/astro-db-parser.js +150 -0
- package/dist/tools/astro-db-parser.js.map +1 -0
- package/dist/tools/astro-helpers.d.ts +13 -0
- package/dist/tools/astro-helpers.d.ts.map +1 -0
- package/dist/tools/astro-helpers.js +116 -0
- package/dist/tools/astro-helpers.js.map +1 -0
- package/dist/tools/astro-middleware.d.ts +26 -0
- package/dist/tools/astro-middleware.d.ts.map +1 -0
- package/dist/tools/astro-middleware.js +139 -0
- package/dist/tools/astro-middleware.js.map +1 -0
- package/dist/tools/astro-sessions.d.ts +26 -0
- package/dist/tools/astro-sessions.d.ts.map +1 -0
- package/dist/tools/astro-sessions.js +140 -0
- package/dist/tools/astro-sessions.js.map +1 -0
- package/dist/tools/constant-resolution-tools.d.ts.map +1 -1
- package/dist/tools/constant-resolution-tools.js +8 -4
- package/dist/tools/constant-resolution-tools.js.map +1 -1
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +16 -40
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/pattern-tools.d.ts.map +1 -1
- package/dist/tools/pattern-tools.js +20 -25
- package/dist/tools/pattern-tools.js.map +1 -1
- package/dist/tools/python-constants-tools.d.ts +3 -1
- package/dist/tools/python-constants-tools.d.ts.map +1 -1
- package/dist/tools/python-constants-tools.js +3 -2
- package/dist/tools/python-constants-tools.js.map +1 -1
- package/dist/tools/react-tools.d.ts +7 -1
- package/dist/tools/react-tools.d.ts.map +1 -1
- package/dist/tools/react-tools.js.map +1 -1
- package/dist/tools/sql-tools.d.ts +26 -0
- package/dist/tools/sql-tools.d.ts.map +1 -1
- package/dist/tools/sql-tools.js +84 -9
- package/dist/tools/sql-tools.js.map +1 -1
- package/dist/tools/status-tools.js +12 -19
- package/dist/tools/status-tools.js.map +1 -1
- package/dist/tools/typescript-constants-tools.d.ts +3 -0
- package/dist/tools/typescript-constants-tools.d.ts.map +1 -1
- package/dist/tools/typescript-constants-tools.js +53 -13
- package/dist/tools/typescript-constants-tools.js.map +1 -1
- package/dist/utils/constant-file-pattern.d.ts +6 -0
- package/dist/utils/constant-file-pattern.d.ts.map +1 -0
- package/dist/utils/constant-file-pattern.js +27 -0
- package/dist/utils/constant-file-pattern.js.map +1 -0
- package/dist/utils/import-graph.d.ts.map +1 -1
- package/dist/utils/import-graph.js +15 -9
- package/dist/utils/import-graph.js.map +1 -1
- package/dist/utils/ts-imports.d.ts +2 -1
- package/dist/utils/ts-imports.d.ts.map +1 -1
- package/dist/utils/ts-imports.js +8 -0
- package/dist/utils/ts-imports.js.map +1 -1
- package/dist/utils/tsconfig-paths.d.ts +5 -4
- package/dist/utils/tsconfig-paths.d.ts.map +1 -1
- package/dist/utils/tsconfig-paths.js +17 -14
- package/dist/utils/tsconfig-paths.js.map +1 -1
- package/hooks/hook-chain.sh +7 -0
- package/hooks/post-commit +8 -0
- package/hooks/post-commit-review-backlog.sh +107 -0
- package/package.json +2 -1
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* `tsconfig.json`, using `get-tsconfig` for `extends`-chain + paths handling.
|
|
4
4
|
*
|
|
5
5
|
* Two-level cache keeps long-running MCP server processes happy:
|
|
6
|
-
* - `dirToConfigCache`: directory absolute path → nearest tsconfig.json path
|
|
7
|
-
* (or null when none found up to repoRoot).
|
|
6
|
+
* - `dirToConfigCache`: importer directory absolute path → nearest tsconfig.json path
|
|
7
|
+
* (or null when none found up to repoRoot). Entries are per queried dir only
|
|
8
|
+
* so adding/removing tsconfig is visible after `clearTsconfigCache()`.
|
|
8
9
|
* - `configCache`: tsconfig.json absolute path → parsed { matcher, baseUrl }.
|
|
9
10
|
*
|
|
10
11
|
* Both caches are cleared on `clearTsconfigCache()`. The graph builder calls
|
|
@@ -20,7 +21,7 @@
|
|
|
20
21
|
* directory with `index.ts`.
|
|
21
22
|
*/
|
|
22
23
|
import { existsSync, statSync } from "node:fs";
|
|
23
|
-
import { dirname, join, resolve } from "node:path";
|
|
24
|
+
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
24
25
|
import { getTsconfig, createPathsMatcher } from "get-tsconfig";
|
|
25
26
|
const configCache = new Map();
|
|
26
27
|
const dirToConfigCache = new Map();
|
|
@@ -43,25 +44,28 @@ export function clearTsconfigCache() {
|
|
|
43
44
|
configCache.clear();
|
|
44
45
|
dirToConfigCache.clear();
|
|
45
46
|
}
|
|
47
|
+
/** True when `dir` resolves to `repoRoot` or a subdirectory of it. */
|
|
48
|
+
function isDirInsideRepo(repoRootAbs, dir) {
|
|
49
|
+
const abs = resolve(dir);
|
|
50
|
+
if (abs === repoRootAbs)
|
|
51
|
+
return true;
|
|
52
|
+
const rel = relative(repoRootAbs, abs);
|
|
53
|
+
return rel !== "" && !isAbsolute(rel) && !rel.startsWith(`..${sep}`) && !rel.startsWith("..");
|
|
54
|
+
}
|
|
46
55
|
/** Walk up from `dir` to `repoRoot`, find nearest `tsconfig.json`.
|
|
47
56
|
* Returns absolute path of the config file, or null if none found.
|
|
48
|
-
* Caches
|
|
49
|
-
*
|
|
57
|
+
* Caches result only for the requested `dir` (not every ancestor) so late-added
|
|
58
|
+
* or removed tsconfig files are visible on the next lookup after cache clear. */
|
|
50
59
|
function findNearestTsconfig(dir, repoRoot) {
|
|
51
60
|
const cached = dirToConfigCache.get(dir);
|
|
52
61
|
if (cached !== undefined)
|
|
53
62
|
return cached;
|
|
54
63
|
const repoRootAbs = resolve(repoRoot);
|
|
55
|
-
const visited = [];
|
|
56
64
|
let cur = resolve(dir);
|
|
57
|
-
|
|
58
|
-
// explicit equality check would be redundant.
|
|
59
|
-
while (cur.startsWith(repoRootAbs)) {
|
|
60
|
-
visited.push(cur);
|
|
65
|
+
while (isDirInsideRepo(repoRootAbs, cur)) {
|
|
61
66
|
const candidate = join(cur, "tsconfig.json");
|
|
62
67
|
if (existsSync(candidate)) {
|
|
63
|
-
|
|
64
|
-
dirToConfigCache.set(v, candidate);
|
|
68
|
+
dirToConfigCache.set(dir, candidate);
|
|
65
69
|
return candidate;
|
|
66
70
|
}
|
|
67
71
|
const parent = dirname(cur);
|
|
@@ -69,8 +73,7 @@ function findNearestTsconfig(dir, repoRoot) {
|
|
|
69
73
|
break;
|
|
70
74
|
cur = parent;
|
|
71
75
|
}
|
|
72
|
-
|
|
73
|
-
dirToConfigCache.set(v, null);
|
|
76
|
+
dirToConfigCache.set(dir, null);
|
|
74
77
|
return null;
|
|
75
78
|
}
|
|
76
79
|
/** Parse a tsconfig.json (with `extends` chain) and build a paths matcher.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsconfig-paths.js","sourceRoot":"","sources":["../../src/utils/tsconfig-paths.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tsconfig-paths.js","sourceRoot":"","sources":["../../src/utils/tsconfig-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set +e
|
|
3
|
+
bash "$HOME/.claude/scripts/post-commit-review-backlog.sh" 2>/dev/null
|
|
4
|
+
PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)"
|
|
5
|
+
LOCAL_HOOK="$PROJECT_ROOT/.git/hooks/post-commit"
|
|
6
|
+
if [ -x "$LOCAL_HOOK" ] && [ "$LOCAL_HOOK" != "$0" ]; then
|
|
7
|
+
"$LOCAL_HOOK" "$@"
|
|
8
|
+
fi
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Post-commit hook: adds new commit to review-backlog.md in Claude memory dir.
|
|
3
|
+
#
|
|
4
|
+
# Install per-project:
|
|
5
|
+
# cp ~/.claude/scripts/post-commit-review-backlog.sh .git/hooks/post-commit
|
|
6
|
+
# chmod +x .git/hooks/post-commit
|
|
7
|
+
#
|
|
8
|
+
# Or append to existing .git/hooks/post-commit:
|
|
9
|
+
# echo 'bash ~/.claude/scripts/post-commit-review-backlog.sh' >> .git/hooks/post-commit
|
|
10
|
+
#
|
|
11
|
+
# The hook computes the Claude memory directory from the project root path.
|
|
12
|
+
# Format: ~/.claude/projects/<sanitized-project-path>/memory/review-backlog.md
|
|
13
|
+
|
|
14
|
+
# Don't block commits if this fails
|
|
15
|
+
set +e
|
|
16
|
+
|
|
17
|
+
# Compute Claude memory directory from project root
|
|
18
|
+
PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)" || exit 0
|
|
19
|
+
SANITIZED="$(echo "$PROJECT_ROOT" | tr '/' '-')"
|
|
20
|
+
MEMORY_DIR="$HOME/.claude/projects/${SANITIZED}/memory"
|
|
21
|
+
BACKLOG="$MEMORY_DIR/review-backlog.md"
|
|
22
|
+
|
|
23
|
+
# Get commit info
|
|
24
|
+
HASH=$(git rev-parse --short HEAD 2>/dev/null) || exit 0
|
|
25
|
+
FULL_HASH=$(git rev-parse HEAD 2>/dev/null) || exit 0
|
|
26
|
+
MESSAGE=$(git log -1 --format='%s' HEAD 2>/dev/null) || exit 0
|
|
27
|
+
AUTHOR=$(git log -1 --format='%an' HEAD 2>/dev/null) || exit 0
|
|
28
|
+
DATE=$(git log -1 --format='%ci' HEAD 2>/dev/null | cut -d' ' -f1) || exit 0
|
|
29
|
+
STAT=$(git diff --stat HEAD~1..HEAD 2>/dev/null | tail -1 | sed 's/^ *//' ) || STAT=""
|
|
30
|
+
|
|
31
|
+
# Create backlog file if it doesn't exist
|
|
32
|
+
if [ ! -f "$BACKLOG" ]; then
|
|
33
|
+
mkdir -p "$MEMORY_DIR"
|
|
34
|
+
cat > "$BACKLOG" << 'EOF'
|
|
35
|
+
# Review Backlog
|
|
36
|
+
|
|
37
|
+
Commits pending review. Managed by post-commit hook + /review skill.
|
|
38
|
+
|
|
39
|
+
## Unreviewed
|
|
40
|
+
|
|
41
|
+
EOF
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
# Add to backlog if not already there (e.g., skip on amend)
|
|
45
|
+
BACKLOG_DONE=0
|
|
46
|
+
if grep -q "^- \[ \] ${HASH} " "$BACKLOG" 2>/dev/null; then
|
|
47
|
+
BACKLOG_DONE=1
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
if [ "$BACKLOG_DONE" -eq 0 ]; then
|
|
51
|
+
# Insert new entry after "## Unreviewed" + blank line
|
|
52
|
+
export CCT_HASH="$HASH"
|
|
53
|
+
export CCT_MSG="$MESSAGE"
|
|
54
|
+
TEMP=$(mktemp)
|
|
55
|
+
|
|
56
|
+
awk '
|
|
57
|
+
/^## Unreviewed$/ { found=1; print; next }
|
|
58
|
+
found && !inserted && /^$/ {
|
|
59
|
+
print
|
|
60
|
+
print "- [ ] " ENVIRON["CCT_HASH"] " " ENVIRON["CCT_MSG"]
|
|
61
|
+
inserted=1
|
|
62
|
+
next
|
|
63
|
+
}
|
|
64
|
+
found && !inserted && /^- / {
|
|
65
|
+
print "- [ ] " ENVIRON["CCT_HASH"] " " ENVIRON["CCT_MSG"]
|
|
66
|
+
inserted=1
|
|
67
|
+
}
|
|
68
|
+
{ print }
|
|
69
|
+
END {
|
|
70
|
+
if (found && !inserted)
|
|
71
|
+
print "- [ ] " ENVIRON["CCT_HASH"] " " ENVIRON["CCT_MSG"]
|
|
72
|
+
}
|
|
73
|
+
' "$BACKLOG" > "$TEMP" && mv "$TEMP" "$BACKLOG"
|
|
74
|
+
fi # BACKLOG_DONE
|
|
75
|
+
|
|
76
|
+
# ── Part 2: Project-local docs/review-queue.md (in-repo, visible) ──
|
|
77
|
+
|
|
78
|
+
QUEUE="$PROJECT_ROOT/docs/review-queue.md"
|
|
79
|
+
|
|
80
|
+
# Only write if docs/ dir exists (opt-in per project — create docs/ to enable)
|
|
81
|
+
if [ -d "$PROJECT_ROOT/docs" ]; then
|
|
82
|
+
|
|
83
|
+
# Create queue file if it doesn't exist
|
|
84
|
+
if [ ! -f "$QUEUE" ]; then
|
|
85
|
+
cat > "$QUEUE" << 'QEOF'
|
|
86
|
+
# Review Queue
|
|
87
|
+
|
|
88
|
+
Commits pending review. Auto-managed:
|
|
89
|
+
- post-commit hook → adds new commits
|
|
90
|
+
- `/review` after audit → removes reviewed commits
|
|
91
|
+
- `/review mark-reviewed` → removes in bulk
|
|
92
|
+
|
|
93
|
+
QEOF
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
# Only add if NOT already reviewed and NOT already in queue
|
|
97
|
+
if git tag --points-at "$FULL_HASH" 2>/dev/null | grep -q '^review'; then
|
|
98
|
+
: # already reviewed — don't add
|
|
99
|
+
elif grep -q "${HASH}" "$QUEUE" 2>/dev/null; then
|
|
100
|
+
: # already in queue
|
|
101
|
+
else
|
|
102
|
+
echo "- ${HASH} (${DATE}) ${MESSAGE}" >> "$QUEUE"
|
|
103
|
+
fi
|
|
104
|
+
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
exit 0
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codesift-mcp",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.30",
|
|
4
4
|
"description": "MCP server for code intelligence — 146 tools for symbol search, call graph, semantic search, route tracing, community detection, LSP bridge, secret detection, conversation search, and Hono framework intelligence",
|
|
5
5
|
"license": "BSL-1.1",
|
|
6
6
|
"author": "Greg Laskowski",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"files": [
|
|
14
14
|
"dist",
|
|
15
15
|
"rules",
|
|
16
|
+
"hooks",
|
|
16
17
|
"src/parser/languages",
|
|
17
18
|
"README.md",
|
|
18
19
|
"LICENSE"
|