milens 0.6.3 → 0.6.4
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/.agents/skills/adapters/SKILL.md +31 -0
- package/.agents/skills/analyzer/SKILL.md +55 -0
- package/.agents/skills/apps/SKILL.md +42 -0
- package/.agents/skills/docs/SKILL.md +46 -0
- package/.agents/skills/milens/SKILL.md +168 -0
- package/.agents/skills/milens-code-review/SKILL.md +186 -0
- package/.agents/skills/milens-eval/SKILL.md +221 -0
- package/.agents/skills/milens-plan/SKILL.md +227 -0
- package/.agents/skills/milens-refactor-clean/SKILL.md +209 -0
- package/.agents/skills/milens-security-review/SKILL.md +224 -0
- package/.agents/skills/milens-tdd/SKILL.md +156 -0
- package/.agents/skills/parser/SKILL.md +60 -0
- package/.agents/skills/root/SKILL.md +64 -0
- package/.agents/skills/scripts/SKILL.md +27 -0
- package/.agents/skills/security/SKILL.md +44 -0
- package/.agents/skills/server/SKILL.md +46 -0
- package/.agents/skills/store/SKILL.md +53 -0
- package/.agents/skills/test/SKILL.md +73 -0
- package/LICENSE +75 -75
- package/README.md +508 -432
- package/adapters/README.md +107 -0
- package/adapters/claude-code/.claude/mcp.json +9 -0
- package/adapters/claude-code/CLAUDE.md +58 -0
- package/adapters/codex/.codex/codex.md +52 -0
- package/adapters/copilot/.github/copilot-instructions.md +62 -0
- package/adapters/cursor/.cursorrules +9 -0
- package/adapters/gemini/.gemini/context.md +58 -0
- package/adapters/opencode/.opencode/config.json +9 -0
- package/adapters/opencode/AGENTS.md +58 -0
- package/adapters/zed/.zed/settings.json +8 -0
- package/dist/agents-md.d.ts +3 -0
- package/dist/agents-md.d.ts.map +1 -0
- package/dist/agents-md.js +112 -0
- package/dist/agents-md.js.map +1 -0
- package/dist/analyzer/engine.js +1 -1
- package/dist/analyzer/engine.js.map +1 -1
- package/dist/cli.js +1190 -401
- package/dist/cli.js.map +1 -1
- package/dist/metrics.d.ts +51 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +64 -0
- package/dist/metrics.js.map +1 -0
- package/dist/parser/lang-go.js +47 -47
- package/dist/parser/lang-java.js +29 -29
- package/dist/parser/lang-js.js +105 -105
- package/dist/parser/lang-php.js +38 -38
- package/dist/parser/lang-py.js +34 -34
- package/dist/parser/lang-ruby.js +14 -14
- package/dist/parser/lang-rust.js +30 -30
- package/dist/parser/lang-ts.js +191 -191
- package/dist/security/deps.d.ts +38 -0
- package/dist/security/deps.d.ts.map +1 -0
- package/dist/security/deps.js +685 -0
- package/dist/security/deps.js.map +1 -0
- package/dist/security/rules.d.ts +42 -0
- package/dist/security/rules.d.ts.map +1 -0
- package/dist/security/rules.js +940 -0
- package/dist/security/rules.js.map +1 -0
- package/dist/server/hooks.d.ts +26 -0
- package/dist/server/hooks.d.ts.map +1 -0
- package/dist/server/hooks.js +253 -0
- package/dist/server/hooks.js.map +1 -0
- package/dist/server/mcp-prompts.d.ts +277 -0
- package/dist/server/mcp-prompts.d.ts.map +1 -0
- package/dist/server/mcp-prompts.js +627 -0
- package/dist/server/mcp-prompts.js.map +1 -0
- package/dist/server/mcp.d.ts.map +1 -1
- package/dist/server/mcp.js +618 -643
- package/dist/server/mcp.js.map +1 -1
- package/dist/server/test-plan.d.ts +20 -0
- package/dist/server/test-plan.d.ts.map +1 -0
- package/dist/server/test-plan.js +100 -0
- package/dist/server/test-plan.js.map +1 -0
- package/dist/skills.js +152 -152
- package/dist/store/annotations.d.ts +41 -0
- package/dist/store/annotations.d.ts.map +1 -0
- package/dist/store/annotations.js +192 -0
- package/dist/store/annotations.js.map +1 -0
- package/dist/store/confidence.d.ts +18 -0
- package/dist/store/confidence.d.ts.map +1 -0
- package/dist/store/confidence.js +82 -0
- package/dist/store/confidence.js.map +1 -0
- package/dist/store/db.d.ts +37 -14
- package/dist/store/db.d.ts.map +1 -1
- package/dist/store/db.js +332 -239
- package/dist/store/db.js.map +1 -1
- package/dist/store/schema.sql +128 -116
- package/dist/store/vectors.js +2 -2
- package/dist/types.d.ts +101 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +24 -0
- package/package.json +80 -66
- package/dist/gateway/analyzer.d.ts +0 -6
- package/dist/gateway/analyzer.d.ts.map +0 -1
- package/dist/gateway/analyzer.js +0 -218
- package/dist/gateway/analyzer.js.map +0 -1
- package/dist/gateway/cache.d.ts +0 -35
- package/dist/gateway/cache.d.ts.map +0 -1
- package/dist/gateway/cache.js +0 -175
- package/dist/gateway/cache.js.map +0 -1
- package/dist/gateway/config.d.ts +0 -10
- package/dist/gateway/config.d.ts.map +0 -1
- package/dist/gateway/config.js +0 -167
- package/dist/gateway/config.js.map +0 -1
- package/dist/gateway/context-memory.d.ts +0 -68
- package/dist/gateway/context-memory.d.ts.map +0 -1
- package/dist/gateway/context-memory.js +0 -157
- package/dist/gateway/context-memory.js.map +0 -1
- package/dist/gateway/observability.d.ts +0 -83
- package/dist/gateway/observability.d.ts.map +0 -1
- package/dist/gateway/observability.js +0 -152
- package/dist/gateway/observability.js.map +0 -1
- package/dist/gateway/privacy.d.ts +0 -27
- package/dist/gateway/privacy.d.ts.map +0 -1
- package/dist/gateway/privacy.js +0 -139
- package/dist/gateway/privacy.js.map +0 -1
- package/dist/gateway/providers.d.ts +0 -66
- package/dist/gateway/providers.d.ts.map +0 -1
- package/dist/gateway/providers.js +0 -377
- package/dist/gateway/providers.js.map +0 -1
- package/dist/gateway/router.d.ts +0 -18
- package/dist/gateway/router.d.ts.map +0 -1
- package/dist/gateway/router.js +0 -102
- package/dist/gateway/router.js.map +0 -1
- package/dist/gateway/server.d.ts +0 -20
- package/dist/gateway/server.d.ts.map +0 -1
- package/dist/gateway/server.js +0 -387
- package/dist/gateway/server.js.map +0 -1
- package/dist/gateway/translator.d.ts +0 -19
- package/dist/gateway/translator.d.ts.map +0 -1
- package/dist/gateway/translator.js +0 -340
- package/dist/gateway/translator.js.map +0 -1
- package/dist/gateway/types.d.ts +0 -215
- package/dist/gateway/types.d.ts.map +0 -1
- package/dist/gateway/types.js +0 -3
- package/dist/gateway/types.js.map +0 -1
- package/dist/store/gateway-schema.sql +0 -53
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Milens Adapter Packs
|
|
2
|
+
|
|
3
|
+
Ready-to-use configuration files for connecting milens MCP server to popular AI coding harnesses.
|
|
4
|
+
|
|
5
|
+
## What is milens?
|
|
6
|
+
|
|
7
|
+
Milens is a code intelligence MCP server that provides deep symbol search, dependency graphs, blast-radius analysis, and pre-commit change detection. These adapter packs wire milens into your AI coding tool so it can answer questions like "what calls this function?" and "what breaks if I change this?"
|
|
8
|
+
|
|
9
|
+
## Available Adapters
|
|
10
|
+
|
|
11
|
+
| Harness | Directory | What's included |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| **Claude Code** | `claude-code/` | `.claude/mcp.json` + `CLAUDE.md` |
|
|
14
|
+
| **OpenCode** | `opencode/` | `.opencode/config.json` + `AGENTS.md` |
|
|
15
|
+
| **Codex** | `codex/` | `.codex/codex.md` |
|
|
16
|
+
| **Cursor** | `cursor/` | `.cursorrules` |
|
|
17
|
+
| **GitHub Copilot** | `copilot/` | `.github/copilot-instructions.md` |
|
|
18
|
+
| **Gemini** | `gemini/` | `.gemini/context.md` |
|
|
19
|
+
| **Zed** | `zed/` | `.zed/settings.json` |
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
### Claude Code
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cp -r adapters/claude-code/.claude .claude/
|
|
27
|
+
cp adapters/claude-code/CLAUDE.md CLAUDE.md
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### OpenCode
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
cp -r adapters/opencode/.opencode .opencode/
|
|
34
|
+
cp adapters/opencode/AGENTS.md AGENTS.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Codex
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
cp -r adapters/codex/.codex .codex/
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Cursor
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
cp adapters/cursor/.cursorrules .cursorrules
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### GitHub Copilot
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
cp -r adapters/copilot/.github .github/
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Gemini
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
cp -r adapters/gemini/.gemini .gemini/
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Zed
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
cp -r adapters/zed/.zed .zed/
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Verification
|
|
68
|
+
|
|
69
|
+
After installation, verify milens is connected:
|
|
70
|
+
|
|
71
|
+
1. Start your AI harness
|
|
72
|
+
2. Look for the milens MCP server in the tools list
|
|
73
|
+
3. Run `mcp_milens_status` to confirm the index is healthy
|
|
74
|
+
|
|
75
|
+
## Index Maintenance
|
|
76
|
+
|
|
77
|
+
After significant code changes, refresh the index:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npx milens analyze -p . --force
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## All Tools Available
|
|
84
|
+
|
|
85
|
+
| Tool | Purpose |
|
|
86
|
+
|---|---|
|
|
87
|
+
| `mcp_milens_overview` | Combined context + impact + grep |
|
|
88
|
+
| `mcp_milens_edit_check` | Pre-edit safety check |
|
|
89
|
+
| `mcp_milens_impact` | Blast radius analysis |
|
|
90
|
+
| `mcp_milens_context` | 360° caller/callee view |
|
|
91
|
+
| `mcp_milens_query` | Symbol definitions by name |
|
|
92
|
+
| `mcp_milens_grep` | Full-text search all files |
|
|
93
|
+
| `mcp_milens_detect_changes` | Pre-commit change detection |
|
|
94
|
+
| `mcp_milens_explain_relationship` | Shortest path between symbols |
|
|
95
|
+
| `mcp_milens_get_file_symbols` | All symbols in a file |
|
|
96
|
+
| `mcp_milens_get_type_hierarchy` | Class inheritance tree |
|
|
97
|
+
| `mcp_milens_find_dead_code` | Unused exported symbols |
|
|
98
|
+
| `mcp_milens_trace` | Execution flow tracing |
|
|
99
|
+
| `mcp_milens_status` | Index health check |
|
|
100
|
+
|
|
101
|
+
## Safety Rules (applies to all harnesses)
|
|
102
|
+
|
|
103
|
+
- Never edit a symbol without `mcp_milens_edit_check` first
|
|
104
|
+
- Never delete/rename without `mcp_milens_grep` + `mcp_milens_impact`
|
|
105
|
+
- Never commit without `mcp_milens_detect_changes`
|
|
106
|
+
- Use `mcp_milens_grep` for phrases/UI text, `mcp_milens_query` for code symbols
|
|
107
|
+
- All milens calls require `repo` set to the absolute workspace root
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Milens — Code Intelligence for Claude Code
|
|
2
|
+
|
|
3
|
+
Milens is an MCP server that provides deep code intelligence: symbol search, dependency graphs, blast-radius analysis, and pre-commit change detection.
|
|
4
|
+
|
|
5
|
+
## Available Tools
|
|
6
|
+
|
|
7
|
+
| Tool | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `mcp_milens_query` | Find symbol definitions by name |
|
|
10
|
+
| `mcp_milens_grep` | Text search across ALL project files |
|
|
11
|
+
| `mcp_milens_context` | 360° view: callers + callees |
|
|
12
|
+
| `mcp_milens_impact` | Blast radius before editing |
|
|
13
|
+
| `mcp_milens_detect_changes` | Pre-commit scope check |
|
|
14
|
+
| `mcp_milens_overview` | Combined context + impact + grep |
|
|
15
|
+
| `mcp_milens_edit_check` | Pre-edit safety check |
|
|
16
|
+
| `mcp_milens_explain_relationship` | Shortest path between two symbols |
|
|
17
|
+
| `mcp_milens_get_file_symbols` | All symbols in a file |
|
|
18
|
+
| `mcp_milens_get_type_hierarchy` | Class inheritance tree |
|
|
19
|
+
| `mcp_milens_find_dead_code` | Unused exported symbols |
|
|
20
|
+
| `mcp_milens_trace` | Trace execution flows from entrypoints |
|
|
21
|
+
| `mcp_milens_status` | Index health check |
|
|
22
|
+
|
|
23
|
+
All tool calls must include `repo` set to the absolute workspace root.
|
|
24
|
+
|
|
25
|
+
## Session Workflow
|
|
26
|
+
|
|
27
|
+
1. **Start** — The milens MCP server connects via `npx milens serve`. Verify with `mcp_milens_status`.
|
|
28
|
+
2. **Recall** — When asked to work on a symbol, use `mcp_milens_overview` for a combined view of context, impact, and text references.
|
|
29
|
+
3. **Code** — Make changes following the edit-safety rules below.
|
|
30
|
+
4. **Verify** — Before committing, run `mcp_milens_detect_changes` to confirm only expected files changed.
|
|
31
|
+
5. **Annotate** — After significant changes, run `npx milens analyze -p . --force` to keep the index fresh.
|
|
32
|
+
|
|
33
|
+
## Edit Safety (Mandatory)
|
|
34
|
+
|
|
35
|
+
**Before editing any function, class, or method:**
|
|
36
|
+
1. Call `mcp_milens_edit_check` on the target symbol to see callers and export status.
|
|
37
|
+
2. If depth-1 dependents > 5, **stop and warn the user** before proceeding.
|
|
38
|
+
3. Call `mcp_milens_context` to understand the full caller/callee picture.
|
|
39
|
+
4. Only then make the edit.
|
|
40
|
+
|
|
41
|
+
**Before deleting or renaming:**
|
|
42
|
+
1. `mcp_milens_grep` — find ALL text references (templates, configs, docs).
|
|
43
|
+
2. `mcp_milens_impact` with `direction: "upstream"` — find code-level dependents.
|
|
44
|
+
3. Combine both results before acting.
|
|
45
|
+
|
|
46
|
+
**Before committing:**
|
|
47
|
+
- Call `mcp_milens_detect_changes` — if unexpected files appear, stop and report.
|
|
48
|
+
|
|
49
|
+
## Tool Selection
|
|
50
|
+
|
|
51
|
+
- Use `mcp_milens_query` for symbol names (camelCase, PascalCase, snake_case).
|
|
52
|
+
- Use `mcp_milens_grep` for multi-word phrases, UI labels, error messages, or text in templates/configs/docs.
|
|
53
|
+
- When in doubt, use `mcp_milens_grep` first — it searches everything.
|
|
54
|
+
|
|
55
|
+
## Reference
|
|
56
|
+
|
|
57
|
+
See `AGENTS.md` at the repo root for project-specific context and codebase structure.
|
|
58
|
+
Skill files at `.agents/skills/milens/SKILL.md` provide advanced workflow guides.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Milens — Code Intelligence for Codex
|
|
2
|
+
|
|
3
|
+
Milens provides deep code intelligence for this project via MCP. Connect it in your Codex configuration:
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{
|
|
7
|
+
"mcpServers": {
|
|
8
|
+
"milens": {
|
|
9
|
+
"command": "npx",
|
|
10
|
+
"args": ["milens", "serve"],
|
|
11
|
+
"env": { "MILENS_PROFILE": "standard" }
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Core Tools (use first)
|
|
18
|
+
|
|
19
|
+
| Tool | When to use |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `mcp_milens_overview` | First look at any symbol you need to understand or edit — combines context, impact, and text search |
|
|
22
|
+
| `mcp_milens_edit_check` | Before editing any function/class/method — shows callers and export status |
|
|
23
|
+
| `mcp_milens_impact` | Check blast radius — what breaks if this symbol changes |
|
|
24
|
+
| `mcp_milens_query` | Find code symbols by name (camelCase, PascalCase, snake_case) |
|
|
25
|
+
| `mcp_milens_grep` | Full-text search for phrases, UI labels, error strings, docs, configs |
|
|
26
|
+
| `mcp_milens_detect_changes` | Pre-commit check — verify only expected files changed |
|
|
27
|
+
|
|
28
|
+
All milens MCP calls require `repo` set to the absolute workspace root path.
|
|
29
|
+
|
|
30
|
+
## Session Workflow
|
|
31
|
+
|
|
32
|
+
1. **Connect** — Verify milens is running with `mcp_milens_status`.
|
|
33
|
+
2. **Understand** — For any symbol the user mentions, call `mcp_milens_overview` first.
|
|
34
|
+
3. **Edit safely** — Run `mcp_milens_edit_check` before touching any symbol. If dependents > 5, warn the user.
|
|
35
|
+
4. **Verify** — Before committing, call `mcp_milens_detect_changes` to confirm scope.
|
|
36
|
+
5. **Refresh** — After significant changes: `npx milens analyze -p . --force`.
|
|
37
|
+
|
|
38
|
+
## Safety Rules
|
|
39
|
+
|
|
40
|
+
- Never edit without `mcp_milens_edit_check` first.
|
|
41
|
+
- Never delete/rename without both `mcp_milens_grep` AND `mcp_milens_impact`.
|
|
42
|
+
- Never commit without `mcp_milens_detect_changes`.
|
|
43
|
+
- Never call milens tools without the `repo` parameter.
|
|
44
|
+
- Use `mcp_milens_grep` (not `mcp_milens_query`) for multi-word or display-text searches.
|
|
45
|
+
|
|
46
|
+
## Advanced Workflows
|
|
47
|
+
|
|
48
|
+
See `.agents/skills/milens/SKILL.md` for full documentation, including:
|
|
49
|
+
- `mcp_milens_trace` — execution flow tracing
|
|
50
|
+
- `mcp_milens_get_type_hierarchy` — inheritance trees
|
|
51
|
+
- `mcp_milens_find_dead_code` — dead code detection
|
|
52
|
+
- `mcp_milens_explain_relationship` — how two symbols are connected
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Milens — Code Intelligence for GitHub Copilot
|
|
2
|
+
|
|
3
|
+
This project uses [milens](https://opencode.ai) for deep code intelligence. The milens MCP server provides symbol search, dependency graphs, blast-radius analysis, and pre-commit safety checks.
|
|
4
|
+
|
|
5
|
+
## MCP Configuration
|
|
6
|
+
|
|
7
|
+
Add to your Copilot MCP settings:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"mcpServers": {
|
|
12
|
+
"milens": {
|
|
13
|
+
"command": "npx",
|
|
14
|
+
"args": ["milens", "serve"],
|
|
15
|
+
"env": { "MILENS_PROFILE": "standard" }
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
All tool calls must include `repo` set to the absolute workspace root.
|
|
22
|
+
|
|
23
|
+
## Key Tools
|
|
24
|
+
|
|
25
|
+
| Tool | Purpose |
|
|
26
|
+
|---|---|
|
|
27
|
+
| `mcp_milens_overview` | Combined context + impact + grep in one call |
|
|
28
|
+
| `mcp_milens_edit_check` | Pre-edit safety: callers, export status, warnings |
|
|
29
|
+
| `mcp_milens_impact` | Blast radius — what depends on this symbol |
|
|
30
|
+
| `mcp_milens_context` | 360° view of incoming refs + outgoing deps |
|
|
31
|
+
| `mcp_milens_query` | Symbol lookup by name |
|
|
32
|
+
| `mcp_milens_grep` | Full-text search across all files |
|
|
33
|
+
| `mcp_milens_detect_changes` | Git diff → affected symbols |
|
|
34
|
+
| `mcp_milens_status` | Index health check |
|
|
35
|
+
|
|
36
|
+
## Session Workflow
|
|
37
|
+
|
|
38
|
+
1. **Start** — Verify milens is connected: `mcp_milens_status`.
|
|
39
|
+
2. **Recall** — For any symbol, use `mcp_milens_overview` for a comprehensive first look.
|
|
40
|
+
3. **Code** — Edit only after running `mcp_milens_edit_check` on the target.
|
|
41
|
+
4. **Verify** — Before commit: `mcp_milens_detect_changes`.
|
|
42
|
+
5. **Refresh** — After big changes: `npx milens analyze -p . --force`.
|
|
43
|
+
|
|
44
|
+
## Safety: Always Check Before Editing
|
|
45
|
+
|
|
46
|
+
- **Before modifying any function/class/method** → `mcp_milens_edit_check`
|
|
47
|
+
- If depth-1 dependents > 5, warn the user and present alternatives.
|
|
48
|
+
- **Before deleting/renaming any symbol** → `mcp_milens_grep` + `mcp_milens_impact`
|
|
49
|
+
- Grep catches text/string references; impact catches code references.
|
|
50
|
+
- **Before committing** → `mcp_milens_detect_changes`
|
|
51
|
+
- Stop and report if unexpected files are in the diff.
|
|
52
|
+
|
|
53
|
+
## Tool Selection
|
|
54
|
+
|
|
55
|
+
- Symbol names (camelCase, PascalCase, snake_case) → `mcp_milens_query`
|
|
56
|
+
- Multi-word phrases, UI strings, error messages → `mcp_milens_grep`
|
|
57
|
+
- In doubt → `mcp_milens_grep` first
|
|
58
|
+
|
|
59
|
+
## Reference
|
|
60
|
+
|
|
61
|
+
- Full documentation: `.agents/skills/milens/SKILL.md`
|
|
62
|
+
- Project context: `AGENTS.md`
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Milens — Code Intelligence
|
|
2
|
+
|
|
3
|
+
This project is indexed by **milens**, an MCP server that provides deep code intelligence (symbol search, dependency graphs, blast-radius analysis, change detection). The index covers 616 symbols, 843 links, across 59 files.
|
|
4
|
+
|
|
5
|
+
## MCP Connection
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"mcpServers": {
|
|
10
|
+
"milens": {
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": ["milens", "serve"],
|
|
13
|
+
"env": { "MILENS_PROFILE": "standard" }
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
All milens MCP calls require the `repo` parameter set to the absolute workspace root.
|
|
20
|
+
|
|
21
|
+
## Essential Tools
|
|
22
|
+
|
|
23
|
+
| Tool | Description |
|
|
24
|
+
|---|---|
|
|
25
|
+
| `mcp_milens_overview` | First-stop: context + impact + grep combined |
|
|
26
|
+
| `mcp_milens_edit_check` | Pre-edit safety: callers, exports, warnings |
|
|
27
|
+
| `mcp_milens_impact` | Upstream/downstream blast radius |
|
|
28
|
+
| `mcp_milens_context` | Full incoming + outgoing dependency view |
|
|
29
|
+
| `mcp_milens_query` | Symbol search by name |
|
|
30
|
+
| `mcp_milens_grep` | Text search everywhere (templates, configs, docs) |
|
|
31
|
+
| `mcp_milens_detect_changes` | Git-aware change detection |
|
|
32
|
+
| `mcp_milens_trace` | Execution flow from entrypoints |
|
|
33
|
+
| `mcp_milens_find_dead_code` | Unused exported symbols |
|
|
34
|
+
| `mcp_milens_status` | Index health |
|
|
35
|
+
|
|
36
|
+
## Workflow
|
|
37
|
+
|
|
38
|
+
**Every session follows this pattern:**
|
|
39
|
+
|
|
40
|
+
1. **Start** — `mcp_milens_status` to verify the index is healthy.
|
|
41
|
+
2. **Understand** — `mcp_milens_overview({name, repo})` for any symbol mentioned.
|
|
42
|
+
3. **Edit safely** — `mcp_milens_edit_check` before touching hub/shared code. Halt if dependents > 5.
|
|
43
|
+
4. **Verify** — `mcp_milens_detect_changes` before committing. Report unexpected changes.
|
|
44
|
+
5. **Refresh** — `npx milens analyze -p . --force` after significant edits.
|
|
45
|
+
|
|
46
|
+
## Mandatory Safety Rules
|
|
47
|
+
|
|
48
|
+
- **Never edit** a symbol without `mcp_milens_edit_check` first.
|
|
49
|
+
- **Never delete/rename** without `mcp_milens_grep` AND `mcp_milens_impact`.
|
|
50
|
+
- **Never commit** without `mcp_milens_detect_changes`.
|
|
51
|
+
- **Never omit** the `repo` parameter from milens calls.
|
|
52
|
+
- **Use `mcp_milens_grep`** (not `mcp_milens_query`) for phrases, UI text, config strings.
|
|
53
|
+
|
|
54
|
+
## Codebase Structure
|
|
55
|
+
|
|
56
|
+
- `.agents/skills/milens/SKILL.md` — full milens documentation
|
|
57
|
+
- `.agents/skills/` — area-specific skill files (analyzer, parser, server, store, etc.)
|
|
58
|
+
- `AGENTS.md` — project-level instructions and conventions
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Milens — Code Intelligence for OpenCode
|
|
2
|
+
|
|
3
|
+
Milens is an MCP server that provides deep code intelligence: symbol search, dependency graphs, blast-radius analysis, and pre-commit change detection. This file configures OpenCode to use milens automatically.
|
|
4
|
+
|
|
5
|
+
## Available Tools
|
|
6
|
+
|
|
7
|
+
| Tool | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `mcp_milens_query` | Find symbol definitions by name |
|
|
10
|
+
| `mcp_milens_grep` | Text search across ALL project files |
|
|
11
|
+
| `mcp_milens_context` | 360° view: callers + callees |
|
|
12
|
+
| `mcp_milens_impact` | Blast radius before editing |
|
|
13
|
+
| `mcp_milens_detect_changes` | Pre-commit scope check |
|
|
14
|
+
| `mcp_milens_overview` | Combined context + impact + grep |
|
|
15
|
+
| `mcp_milens_edit_check` | Pre-edit safety check |
|
|
16
|
+
| `mcp_milens_explain_relationship` | Shortest path between two symbols |
|
|
17
|
+
| `mcp_milens_get_file_symbols` | All symbols in a file |
|
|
18
|
+
| `mcp_milens_get_type_hierarchy` | Class inheritance tree |
|
|
19
|
+
| `mcp_milens_find_dead_code` | Unused exported symbols |
|
|
20
|
+
| `mcp_milens_trace` | Trace execution flows from entrypoints |
|
|
21
|
+
| `mcp_milens_status` | Index health check |
|
|
22
|
+
|
|
23
|
+
All tool calls must include `repo` set to the absolute workspace root.
|
|
24
|
+
|
|
25
|
+
## Session Workflow
|
|
26
|
+
|
|
27
|
+
1. **Start** — The milens MCP server connects via the `.opencode/config.json` entry. Verify with `mcp_milens_status`.
|
|
28
|
+
2. **Recall** — When asked to work on a symbol, use `mcp_milens_overview` for a combined view of context, impact, and text references.
|
|
29
|
+
3. **Code** — Make changes following the edit-safety rules below.
|
|
30
|
+
4. **Verify** — Before committing, run `mcp_milens_detect_changes` to confirm only expected files changed.
|
|
31
|
+
5. **Annotate** — After significant changes, run `npx milens analyze -p . --force` to keep the index fresh.
|
|
32
|
+
|
|
33
|
+
## Edit Safety (Mandatory)
|
|
34
|
+
|
|
35
|
+
**Before editing any function, class, or method:**
|
|
36
|
+
1. Call `mcp_milens_edit_check` on the target symbol to see callers and export status.
|
|
37
|
+
2. If depth-1 dependents > 5, **stop and warn the user** before proceeding.
|
|
38
|
+
3. Call `mcp_milens_context` to understand the full caller/callee picture.
|
|
39
|
+
4. Only then make the edit.
|
|
40
|
+
|
|
41
|
+
**Before deleting or renaming:**
|
|
42
|
+
1. `mcp_milens_grep` — find ALL text references (templates, configs, docs).
|
|
43
|
+
2. `mcp_milens_impact` with `direction: "upstream"` — find code-level dependents.
|
|
44
|
+
3. Combine both results before acting.
|
|
45
|
+
|
|
46
|
+
**Before committing:**
|
|
47
|
+
- Call `mcp_milens_detect_changes` — if unexpected files appear, stop and report.
|
|
48
|
+
|
|
49
|
+
## Tool Selection
|
|
50
|
+
|
|
51
|
+
- Use `mcp_milens_query` for symbol names (camelCase, PascalCase, snake_case).
|
|
52
|
+
- Use `mcp_milens_grep` for multi-word phrases, UI labels, error messages, or text in templates/configs/docs.
|
|
53
|
+
- When in doubt, use `mcp_milens_grep` first — it searches everything.
|
|
54
|
+
|
|
55
|
+
## Reference
|
|
56
|
+
|
|
57
|
+
Skill files at `.agents/skills/milens/SKILL.md` provide advanced workflow guides.
|
|
58
|
+
See the project `AGENTS.md` for codebase-specific context.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../src/agents-md.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA0CzC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+EvE"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { join, relative, basename, dirname } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
function readMilensVersion() {
|
|
6
|
+
const candidates = [
|
|
7
|
+
join(__dirname, '..', 'package.json'),
|
|
8
|
+
join(__dirname, '..', '..', 'package.json'),
|
|
9
|
+
];
|
|
10
|
+
for (const p of candidates) {
|
|
11
|
+
try {
|
|
12
|
+
const pkg = JSON.parse(readFileSync(p, 'utf-8'));
|
|
13
|
+
if (pkg.version)
|
|
14
|
+
return pkg.version;
|
|
15
|
+
}
|
|
16
|
+
catch { }
|
|
17
|
+
}
|
|
18
|
+
return 'unknown';
|
|
19
|
+
}
|
|
20
|
+
function countDependents(db, symbolId) {
|
|
21
|
+
const links = db.getIncomingLinks(symbolId);
|
|
22
|
+
const uniqueFrom = new Set();
|
|
23
|
+
for (const l of links) {
|
|
24
|
+
if (l.type !== 'contains')
|
|
25
|
+
uniqueFrom.add(l.fromId);
|
|
26
|
+
}
|
|
27
|
+
return uniqueFrom.size;
|
|
28
|
+
}
|
|
29
|
+
function relativeFilePath(filePath, rootPath) {
|
|
30
|
+
const rel = relative(rootPath, filePath);
|
|
31
|
+
return rel.replace(/\\/g, '/');
|
|
32
|
+
}
|
|
33
|
+
function findRouteSymbols(db) {
|
|
34
|
+
const all = db.getAllSymbols();
|
|
35
|
+
const routePatterns = /[\/\\]route\.[jt]sx?$|[\/\\]router[\/\\]|[\/\\]routes[\/\\]|[\/\\]api[\/\\]/;
|
|
36
|
+
return all.filter(s => routePatterns.test(s.filePath) && s.exported && (s.kind === 'function' || s.kind === 'method' || s.kind === 'class'));
|
|
37
|
+
}
|
|
38
|
+
export function generateAgentsMd(db, rootPath) {
|
|
39
|
+
const version = readMilensVersion();
|
|
40
|
+
const date = new Date().toISOString().split('T')[0];
|
|
41
|
+
const repoName = basename(rootPath);
|
|
42
|
+
const summary = db.getCodebaseSummary();
|
|
43
|
+
const lines = [];
|
|
44
|
+
lines.push(`# Project: ${repoName}`);
|
|
45
|
+
lines.push('');
|
|
46
|
+
lines.push(`> Auto-generated by milens ${version} on ${date}`);
|
|
47
|
+
lines.push('');
|
|
48
|
+
lines.push('## Codebase Summary');
|
|
49
|
+
lines.push(`- Symbols: ${summary.symbols} | Links: ${summary.links} | Files: ${summary.files}`);
|
|
50
|
+
lines.push(`- Test coverage: ${summary.coveragePct}%`);
|
|
51
|
+
lines.push('');
|
|
52
|
+
lines.push('## Domain Map');
|
|
53
|
+
lines.push('| Domain | Files | Symbols | Description |');
|
|
54
|
+
lines.push('|---|---|---|---|');
|
|
55
|
+
if (summary.domains.length > 0) {
|
|
56
|
+
for (const d of summary.domains) {
|
|
57
|
+
lines.push(`| ${d.domain} | ${d.files} | ${d.symbols} | |`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
lines.push('| (none) | 0 | 0 | No domain clusters detected |');
|
|
62
|
+
}
|
|
63
|
+
lines.push('');
|
|
64
|
+
lines.push('## Critical Symbols (Top Hubs — DO NOT modify without impact check)');
|
|
65
|
+
lines.push('| Symbol | Kind | File | Heat | Dependents | Risk |');
|
|
66
|
+
lines.push('|---|---|---|---|---|---|');
|
|
67
|
+
const hubs = summary.topHubs.filter(h => (h.heat ?? 0) > 0);
|
|
68
|
+
if (hubs.length > 0) {
|
|
69
|
+
for (const hub of hubs) {
|
|
70
|
+
const heat = hub.heat ?? 0;
|
|
71
|
+
const dependents = countDependents(db, hub.id);
|
|
72
|
+
const file = relativeFilePath(hub.filePath, rootPath);
|
|
73
|
+
const risk = heat >= 10 ? 'HIGH' : heat >= 5 ? 'MEDIUM' : 'LOW';
|
|
74
|
+
lines.push(`| ${hub.name} | ${hub.kind} | ${file}:${hub.startLine} | ${heat} | ${dependents} | ${risk} |`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
lines.push('| (none) | — | — | — | — | — |');
|
|
79
|
+
}
|
|
80
|
+
lines.push('');
|
|
81
|
+
const routes = findRouteSymbols(db);
|
|
82
|
+
lines.push('## API Endpoints');
|
|
83
|
+
if (routes.length > 0) {
|
|
84
|
+
lines.push('| Method | Path | Handler | File |');
|
|
85
|
+
lines.push('|---|---|---|---|');
|
|
86
|
+
for (const sym of routes.slice(0, 30)) {
|
|
87
|
+
const file = relativeFilePath(sym.filePath, rootPath);
|
|
88
|
+
const name = sym.signature ?? sym.name;
|
|
89
|
+
lines.push(`| — | — | ${name} | ${file}:${sym.startLine} |`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
lines.push('');
|
|
94
|
+
lines.push('No routes detected.');
|
|
95
|
+
}
|
|
96
|
+
lines.push('');
|
|
97
|
+
lines.push('## Milens Workflows Available');
|
|
98
|
+
lines.push('- `/milens:plan "feature"` — generate implementation plan');
|
|
99
|
+
lines.push('- `/milens:review` — review current changes');
|
|
100
|
+
lines.push('- `/milens:tdd <symbol>` — write tests with coverage analysis');
|
|
101
|
+
lines.push('- `/milens:security` — security audit');
|
|
102
|
+
lines.push('- `/milens:refactor <symbol>` — safe refactor with blast radius check');
|
|
103
|
+
lines.push('');
|
|
104
|
+
lines.push('## Session Startup');
|
|
105
|
+
lines.push('When starting work, call:');
|
|
106
|
+
lines.push('1. session_start({agent: "your-agent-name"})');
|
|
107
|
+
lines.push('2. recall({}) — retrieve past annotations');
|
|
108
|
+
lines.push('3. codebase_summary({}) — refresh context');
|
|
109
|
+
lines.push('');
|
|
110
|
+
return lines.join('\n');
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=agents-md.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../src/agents-md.ts"],"names":[],"mappings":"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"}
|
package/dist/analyzer/engine.js
CHANGED
|
@@ -337,7 +337,7 @@ export async function analyze(opts) {
|
|
|
337
337
|
}));
|
|
338
338
|
provider.trainIdf(texts);
|
|
339
339
|
await provider.init();
|
|
340
|
-
const store = new EmbeddingStore(db.
|
|
340
|
+
const store = new EmbeddingStore(db.connection, provider.dimensions);
|
|
341
341
|
const EMBED_BATCH = 200;
|
|
342
342
|
let embedded = 0;
|
|
343
343
|
for (let i = 0; i < allSymbols.length; i += EMBED_BATCH) {
|