@neuranix/mcp-server 1.2.0 → 1.3.0
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 +40 -30
- package/dist/ide-files.d.ts +17 -0
- package/dist/ide-files.d.ts.map +1 -0
- package/dist/ide-files.js +106 -0
- package/dist/ide-files.js.map +1 -0
- package/dist/index.js +84 -16
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +44 -9
- package/dist/prompts.js.map +1 -1
- package/dist/resources.d.ts +2 -1
- package/dist/resources.d.ts.map +1 -1
- package/dist/resources.js +17 -6
- package/dist/resources.js.map +1 -1
- package/dist/rules.d.ts +8 -0
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +43 -0
- package/dist/rules.js.map +1 -0
- package/dist/setup.d.ts +3 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +38 -0
- package/dist/setup.js.map +1 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +47 -11
- package/dist/tools.js.map +1 -1
- package/package.json +8 -6
package/README.md
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
# @neuranix/mcp-server
|
|
2
2
|
|
|
3
|
-
Plug-in MCP de memória persistente para agentes de IA em
|
|
3
|
+
Plug-in MCP de memória persistente **autônoma** para agentes de IA em qualquer IDE compatível com MCP.
|
|
4
4
|
|
|
5
|
-
**Produção:** `https://neuranix.com.br/api/neuranix`
|
|
5
|
+
**Produção:** `https://neuranix.com.br/api/neuranix` · **Versão:** 1.3.0
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## O que já vem incluído (sem configurar regras manualmente)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Ao importar o MCP, o agente recebe automaticamente:
|
|
10
|
+
|
|
11
|
+
- **Instruções do servidor** (`instructions`) — protocolo: context no início, recall antes de tarefas, store/checkpoint no fim
|
|
12
|
+
- **Tools** com `alwaysLoad: true` — `neuranix_context`, `neuranix_recall`, `neuranix_store`, `neuranix_checkpoint`
|
|
13
|
+
- **Resources** — `neuranix://agent-guide`, `neuranix://ide-setup`
|
|
14
|
+
- **Prompts** — `session_start`, `before_task`, `save_decision`, `session_end`, `after_compaction`
|
|
15
|
+
|
|
16
|
+
O usuário **não precisa pedir** para salvar ou recuperar memória.
|
|
17
|
+
|
|
18
|
+
## Instalação (2 passos)
|
|
19
|
+
|
|
20
|
+
1. Cole a configuração MCP do [Dashboard Neuranix](https://neuranix.com.br/neuranix)
|
|
21
|
+
2. Reinicie o IDE
|
|
10
22
|
|
|
11
23
|
```json
|
|
12
24
|
{
|
|
@@ -17,15 +29,24 @@ Obtenha a configuração pronta em [neuranix.com.br/neuranix](https://neuranix.c
|
|
|
17
29
|
"env": {
|
|
18
30
|
"NEURANIX_API_URL": "https://neuranix.com.br/api/neuranix",
|
|
19
31
|
"NEURANIX_API_KEY": "ak_sua_chave_aqui"
|
|
20
|
-
}
|
|
32
|
+
},
|
|
33
|
+
"alwaysLoad": true
|
|
21
34
|
}
|
|
22
35
|
}
|
|
23
36
|
}
|
|
24
37
|
```
|
|
25
38
|
|
|
26
|
-
###
|
|
39
|
+
### Reforço opcional no repositório (todos os IDEs)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx -y @neuranix/mcp-server setup
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Grava `AGENTS.md`, `.cursor/rules/neuranix.mdc`, `CLAUDE.md`, `.github/copilot-instructions.md`, `.windsurfrules`.
|
|
27
46
|
|
|
28
|
-
Use `
|
|
47
|
+
Use `--force` para sobrescrever arquivos existentes.
|
|
48
|
+
|
|
49
|
+
### Claude Code
|
|
29
50
|
|
|
30
51
|
```bash
|
|
31
52
|
claude mcp add --scope project neuranix \
|
|
@@ -34,36 +55,24 @@ claude mcp add --scope project neuranix \
|
|
|
34
55
|
-- npx -y @neuranix/mcp-server
|
|
35
56
|
```
|
|
36
57
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
| Comando | Uso |
|
|
40
|
-
|---------|-----|
|
|
41
|
-
| `/mcp__neuranix__session_start` | Carregar contexto no início da sessão |
|
|
42
|
-
| `/mcp__neuranix__before_task` | Recall antes de tarefa complexa |
|
|
43
|
-
| `/mcp__neuranix__save_decision` | Gravar decisão importante |
|
|
44
|
-
|
|
45
|
-
## Segurança de domínio
|
|
46
|
-
|
|
47
|
-
Por padrão, o MCP só aceita requisições para hosts autorizados:
|
|
58
|
+
Prompts MCP (agente pode invocar automaticamente):
|
|
48
59
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
NEURANIX_API_URL=https://seu-tunel.ngrok-free.app/api/neuranix
|
|
57
|
-
```
|
|
60
|
+
| Prompt | Uso |
|
|
61
|
+
|--------|-----|
|
|
62
|
+
| `/mcp__neuranix__session_start` | Contexto no início |
|
|
63
|
+
| `/mcp__neuranix__before_task` | Recall antes de tarefa |
|
|
64
|
+
| `/mcp__neuranix__save_decision` | Gravar decisão |
|
|
65
|
+
| `/mcp__neuranix__session_end` | Checkpoint de fim de sessão |
|
|
66
|
+
| `/mcp__neuranix__after_compaction` | Recarregar após compactação |
|
|
58
67
|
|
|
59
68
|
## Variáveis de ambiente
|
|
60
69
|
|
|
61
70
|
| Variável | Descrição |
|
|
62
71
|
|----------|-----------|
|
|
63
|
-
| `NEURANIX_API_URL` | URL base
|
|
72
|
+
| `NEURANIX_API_URL` | URL base da API |
|
|
64
73
|
| `NEURANIX_API_KEY` | Chave API (`ak_...`) — **obrigatória** |
|
|
65
|
-
| `NEURANIX_ENV` | `local` para
|
|
66
|
-
| `NEURANIX_ALLOW_CUSTOM_HOST` | `true` para
|
|
74
|
+
| `NEURANIX_ENV` | `local` para `http://127.0.0.1:8000/api/neuranix` |
|
|
75
|
+
| `NEURANIX_ALLOW_CUSTOM_HOST` | `true` para hosts de dev (ngrok) |
|
|
67
76
|
|
|
68
77
|
## Desenvolvimento local
|
|
69
78
|
|
|
@@ -71,4 +80,5 @@ NEURANIX_API_URL=https://seu-tunel.ngrok-free.app/api/neuranix
|
|
|
71
80
|
npm install
|
|
72
81
|
npm run build
|
|
73
82
|
NEURANIX_ENV=local NEURANIX_API_KEY=ak_... npm start
|
|
83
|
+
npm run setup
|
|
74
84
|
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface IdeFile {
|
|
2
|
+
relativePath: string;
|
|
3
|
+
label: string;
|
|
4
|
+
content: string;
|
|
5
|
+
merge?: "append-marked" | "skip-if-exists";
|
|
6
|
+
}
|
|
7
|
+
export declare function allIdeFiles(): IdeFile[];
|
|
8
|
+
export interface SetupResult {
|
|
9
|
+
written: string[];
|
|
10
|
+
skipped: string[];
|
|
11
|
+
updated: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare function writeIdeFiles(cwd: string, options?: {
|
|
14
|
+
force?: boolean;
|
|
15
|
+
}): SetupResult;
|
|
16
|
+
export declare function ideSetupMarkdown(): string;
|
|
17
|
+
//# sourceMappingURL=ide-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ide-files.d.ts","sourceRoot":"","sources":["../src/ide-files.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAAC;CAC5C;AAED,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAsCvC;AAeD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,WAAW,CAwCzF;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAsBzC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { AGENTS_MD_FOOTER, CLAUDE_COMMANDS, COPILOT_FOOTER, CORE_PROTOCOL, } from "./rules.js";
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
3
|
+
import { dirname, join } from "path";
|
|
4
|
+
const NEURANIX_MARKER_START = "<!-- NEURANIX:START -->";
|
|
5
|
+
const NEURANIX_MARKER_END = "<!-- NEURANIX:END -->";
|
|
6
|
+
export function allIdeFiles() {
|
|
7
|
+
return [
|
|
8
|
+
{
|
|
9
|
+
relativePath: "AGENTS.md",
|
|
10
|
+
label: "AGENTS.md (universal)",
|
|
11
|
+
content: CORE_PROTOCOL + AGENTS_MD_FOOTER,
|
|
12
|
+
merge: "skip-if-exists",
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
relativePath: ".cursor/rules/neuranix.mdc",
|
|
16
|
+
label: "Cursor Rules",
|
|
17
|
+
content: "---\n" +
|
|
18
|
+
"description: Neuranix — memória persistente automática\n" +
|
|
19
|
+
"alwaysApply: true\n" +
|
|
20
|
+
"---\n\n" +
|
|
21
|
+
CORE_PROTOCOL,
|
|
22
|
+
merge: "skip-if-exists",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
relativePath: ".github/copilot-instructions.md",
|
|
26
|
+
label: "GitHub Copilot",
|
|
27
|
+
content: CORE_PROTOCOL + COPILOT_FOOTER,
|
|
28
|
+
merge: "skip-if-exists",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
relativePath: ".windsurfrules",
|
|
32
|
+
label: "Windsurf",
|
|
33
|
+
content: CORE_PROTOCOL,
|
|
34
|
+
merge: "append-marked",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
relativePath: "CLAUDE.md",
|
|
38
|
+
label: "Claude Code",
|
|
39
|
+
content: CORE_PROTOCOL + "\n" + CLAUDE_COMMANDS,
|
|
40
|
+
merge: "append-marked",
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
}
|
|
44
|
+
function mergeMarked(existing, block) {
|
|
45
|
+
const start = existing.indexOf(NEURANIX_MARKER_START);
|
|
46
|
+
const end = existing.indexOf(NEURANIX_MARKER_END);
|
|
47
|
+
const wrapped = `${NEURANIX_MARKER_START}\n${block}\n${NEURANIX_MARKER_END}`;
|
|
48
|
+
if (start !== -1 && end !== -1 && end > start) {
|
|
49
|
+
return existing.slice(0, start) + wrapped + existing.slice(end + NEURANIX_MARKER_END.length);
|
|
50
|
+
}
|
|
51
|
+
const separator = existing.trim() ? "\n\n" : "";
|
|
52
|
+
return existing.trimEnd() + separator + wrapped + "\n";
|
|
53
|
+
}
|
|
54
|
+
export function writeIdeFiles(cwd, options = {}) {
|
|
55
|
+
const result = { written: [], skipped: [], updated: [] };
|
|
56
|
+
const force = options.force ?? false;
|
|
57
|
+
for (const file of allIdeFiles()) {
|
|
58
|
+
const fullPath = join(cwd, file.relativePath);
|
|
59
|
+
const dir = dirname(fullPath);
|
|
60
|
+
if (!existsSync(dir)) {
|
|
61
|
+
mkdirSync(dir, { recursive: true });
|
|
62
|
+
}
|
|
63
|
+
if (existsSync(fullPath) && !force) {
|
|
64
|
+
if (file.merge === "append-marked") {
|
|
65
|
+
const existing = readFileSync(fullPath, "utf8");
|
|
66
|
+
const merged = mergeMarked(existing, file.content);
|
|
67
|
+
if (merged !== existing) {
|
|
68
|
+
writeFileSync(fullPath, merged, "utf8");
|
|
69
|
+
result.updated.push(file.relativePath);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
result.skipped.push(file.relativePath);
|
|
73
|
+
}
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
result.skipped.push(file.relativePath);
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (existsSync(fullPath) && force && file.merge === "append-marked") {
|
|
80
|
+
const existing = readFileSync(fullPath, "utf8");
|
|
81
|
+
writeFileSync(fullPath, mergeMarked(existing, file.content), "utf8");
|
|
82
|
+
result.updated.push(file.relativePath);
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
writeFileSync(fullPath, file.content, "utf8");
|
|
86
|
+
result.written.push(file.relativePath);
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
export function ideSetupMarkdown() {
|
|
91
|
+
const lines = [
|
|
92
|
+
"# Neuranix — arquivos opcionais por IDE",
|
|
93
|
+
"",
|
|
94
|
+
"O protocolo automático **já vem no MCP** (`instructions` + tools + resources).",
|
|
95
|
+
"Estes arquivos reforçam o comportamento no repositório:",
|
|
96
|
+
"",
|
|
97
|
+
"| IDE | Arquivo |",
|
|
98
|
+
"|-----|---------|",
|
|
99
|
+
];
|
|
100
|
+
for (const f of allIdeFiles()) {
|
|
101
|
+
lines.push(`| ${f.label} | \`${f.relativePath}\` |`);
|
|
102
|
+
}
|
|
103
|
+
lines.push("", "Instale com: `npx -y @neuranix/mcp-server setup` na raiz do projeto.", "Use `--force` para sobrescrever arquivos existentes.");
|
|
104
|
+
return lines.join("\n");
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=ide-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ide-files.js","sourceRoot":"","sources":["../src/ide-files.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,8 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
4
4
|
import { CallToolRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
5
5
|
import { MCP_USER_AGENT, resolveApiBaseUrl, validateApiKey, } from "./config.js";
|
|
6
6
|
import { NEURANIX_PROMPTS, SERVER_INSTRUCTIONS } from "./prompts.js";
|
|
7
|
-
import {
|
|
7
|
+
import { ideSetupMarkdown } from "./ide-files.js";
|
|
8
|
+
import { IDE_SETUP_URI, USAGE_GUIDE_MARKDOWN, USAGE_GUIDE_URI } from "./resources.js";
|
|
8
9
|
import { NEURANIX_TOOLS, resolveToolCall } from "./tools.js";
|
|
9
10
|
const API_BASE = resolveApiBaseUrl();
|
|
10
11
|
const API_KEY = process.env.NEURANIX_API_KEY || "";
|
|
@@ -46,7 +47,7 @@ function promptArg(args, key) {
|
|
|
46
47
|
const value = args?.[key];
|
|
47
48
|
return typeof value === "string" && value.trim() !== "" ? value : undefined;
|
|
48
49
|
}
|
|
49
|
-
const server = new Server({ name: "@neuranix/mcp-server", version: "1.
|
|
50
|
+
const server = new Server({ name: "@neuranix/mcp-server", version: "1.3.0" }, {
|
|
50
51
|
capabilities: { tools: {}, prompts: {}, resources: {} },
|
|
51
52
|
instructions: SERVER_INSTRUCTIONS,
|
|
52
53
|
});
|
|
@@ -58,24 +59,41 @@ server.setRequestHandler(ListResourcesRequestSchema, async () => ({
|
|
|
58
59
|
{
|
|
59
60
|
uri: USAGE_GUIDE_URI,
|
|
60
61
|
name: "Neuranix Agent Guide",
|
|
61
|
-
description: "
|
|
62
|
+
description: "Autonomous memory protocol — included with MCP for all IDEs",
|
|
63
|
+
mimeType: "text/markdown",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
uri: IDE_SETUP_URI,
|
|
67
|
+
name: "Neuranix IDE Setup",
|
|
68
|
+
description: "Optional repo files per IDE (npx @neuranix/mcp-server setup)",
|
|
62
69
|
mimeType: "text/markdown",
|
|
63
70
|
},
|
|
64
71
|
],
|
|
65
72
|
}));
|
|
66
73
|
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
67
|
-
if (request.params.uri
|
|
68
|
-
|
|
74
|
+
if (request.params.uri === USAGE_GUIDE_URI) {
|
|
75
|
+
return {
|
|
76
|
+
contents: [
|
|
77
|
+
{
|
|
78
|
+
uri: USAGE_GUIDE_URI,
|
|
79
|
+
mimeType: "text/markdown",
|
|
80
|
+
text: USAGE_GUIDE_MARKDOWN,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
};
|
|
69
84
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
85
|
+
if (request.params.uri === IDE_SETUP_URI) {
|
|
86
|
+
return {
|
|
87
|
+
contents: [
|
|
88
|
+
{
|
|
89
|
+
uri: IDE_SETUP_URI,
|
|
90
|
+
mimeType: "text/markdown",
|
|
91
|
+
text: ideSetupMarkdown(),
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
throw new Error(`Unknown resource: ${request.params.uri}`);
|
|
79
97
|
});
|
|
80
98
|
server.setRequestHandler(ListPromptsRequestSchema, async () => ({
|
|
81
99
|
prompts: NEURANIX_PROMPTS,
|
|
@@ -145,6 +163,50 @@ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
|
145
163
|
],
|
|
146
164
|
};
|
|
147
165
|
}
|
|
166
|
+
if (name === "session_end") {
|
|
167
|
+
const summary = promptArg(args, "summary");
|
|
168
|
+
if (!summary) {
|
|
169
|
+
throw new Error("Argument 'summary' is required for session_end");
|
|
170
|
+
}
|
|
171
|
+
const result = await apiCall("/memory", "POST", {
|
|
172
|
+
content: summary,
|
|
173
|
+
workspace_path: promptArg(args, "workspace_path"),
|
|
174
|
+
action: "store",
|
|
175
|
+
tags: ["session_checkpoint", "auto_capture"],
|
|
176
|
+
metadata: { source: "session_end", auto: true },
|
|
177
|
+
});
|
|
178
|
+
const memory = (result.data?.memory ?? {});
|
|
179
|
+
return {
|
|
180
|
+
description: "Session checkpoint saved to Neuranix",
|
|
181
|
+
messages: [
|
|
182
|
+
{
|
|
183
|
+
role: "user",
|
|
184
|
+
content: {
|
|
185
|
+
type: "text",
|
|
186
|
+
text: `Session checkpoint saved: ${memory.summary ?? memory.id ?? "ok"}`,
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
if (name === "after_compaction") {
|
|
193
|
+
const result = await apiCall("/memory", "POST", {
|
|
194
|
+
query: promptArg(args, "task") ??
|
|
195
|
+
"reload project context after compaction — recent decisions and patterns",
|
|
196
|
+
workspace_path: promptArg(args, "workspace_path"),
|
|
197
|
+
action: "context",
|
|
198
|
+
mode: "conversation",
|
|
199
|
+
});
|
|
200
|
+
return {
|
|
201
|
+
description: "Neuranix context reloaded after compaction",
|
|
202
|
+
messages: [
|
|
203
|
+
{
|
|
204
|
+
role: "user",
|
|
205
|
+
content: { type: "text", text: formatContext(result.data ?? {}) },
|
|
206
|
+
},
|
|
207
|
+
],
|
|
208
|
+
};
|
|
209
|
+
}
|
|
148
210
|
throw new Error(`Unknown prompt: ${name}`);
|
|
149
211
|
}
|
|
150
212
|
catch (error) {
|
|
@@ -171,11 +233,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
171
233
|
return { content: [{ type: "text", text: formatContext(data) }] };
|
|
172
234
|
}
|
|
173
235
|
if (data.action === "store") {
|
|
236
|
+
const label = toolName === "neuranix_checkpoint" ? "Checkpoint saved" : "Memory saved";
|
|
174
237
|
return {
|
|
175
238
|
content: [
|
|
176
239
|
{
|
|
177
240
|
type: "text",
|
|
178
|
-
text:
|
|
241
|
+
text: `${label}: ${data.memory?.summary ?? data.memory?.id}`,
|
|
179
242
|
},
|
|
180
243
|
],
|
|
181
244
|
};
|
|
@@ -205,9 +268,14 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
205
268
|
}
|
|
206
269
|
});
|
|
207
270
|
async function main() {
|
|
271
|
+
const sub = process.argv[2];
|
|
272
|
+
if (sub === "setup") {
|
|
273
|
+
const { runSetup } = await import("./setup.js");
|
|
274
|
+
process.exit(runSetup(process.argv.slice(3)));
|
|
275
|
+
}
|
|
208
276
|
const transport = new StdioServerTransport();
|
|
209
277
|
await server.connect(transport);
|
|
210
|
-
console.error(`Neuranix MCP v1.
|
|
278
|
+
console.error(`Neuranix MCP v1.3 — ${API_BASE}`);
|
|
211
279
|
}
|
|
212
280
|
main().catch((error) => {
|
|
213
281
|
console.error("Server error:", error);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAGjE,eAAO,MAAM,gBAAgB,EAAE,MAAM,EA0FpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAUrB,CAAC"}
|
package/dist/prompts.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { PROTOCOL_VERSION } from "./rules.js";
|
|
1
2
|
export const NEURANIX_PROMPTS = [
|
|
2
3
|
{
|
|
3
4
|
name: "session_start",
|
|
4
|
-
description: "
|
|
5
|
+
description: "AUTOMATIC: load Neuranix context at session start. Agent should invoke without user asking.",
|
|
5
6
|
arguments: [
|
|
6
7
|
{
|
|
7
8
|
name: "task",
|
|
@@ -17,7 +18,7 @@ export const NEURANIX_PROMPTS = [
|
|
|
17
18
|
},
|
|
18
19
|
{
|
|
19
20
|
name: "before_task",
|
|
20
|
-
description: "
|
|
21
|
+
description: "AUTOMATIC: recall memories before a complex task (refactor, debug, architecture, code review).",
|
|
21
22
|
arguments: [
|
|
22
23
|
{
|
|
23
24
|
name: "query",
|
|
@@ -38,7 +39,7 @@ export const NEURANIX_PROMPTS = [
|
|
|
38
39
|
},
|
|
39
40
|
{
|
|
40
41
|
name: "save_decision",
|
|
41
|
-
description: "
|
|
42
|
+
description: "AUTOMATIC: persist a technical decision, fix, or pattern — no user confirmation needed.",
|
|
42
43
|
arguments: [
|
|
43
44
|
{
|
|
44
45
|
name: "content",
|
|
@@ -52,14 +53,48 @@ export const NEURANIX_PROMPTS = [
|
|
|
52
53
|
},
|
|
53
54
|
],
|
|
54
55
|
},
|
|
56
|
+
{
|
|
57
|
+
name: "session_end",
|
|
58
|
+
description: "AUTOMATIC: checkpoint session summary before ending. Captures decisions, changes, and pending work.",
|
|
59
|
+
arguments: [
|
|
60
|
+
{
|
|
61
|
+
name: "summary",
|
|
62
|
+
description: "Concise session summary",
|
|
63
|
+
required: true,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "workspace_path",
|
|
67
|
+
description: "Absolute path to the project workspace",
|
|
68
|
+
required: false,
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: "after_compaction",
|
|
74
|
+
description: "AUTOMATIC: reload Neuranix context after IDE context compaction so memory is not lost.",
|
|
75
|
+
arguments: [
|
|
76
|
+
{
|
|
77
|
+
name: "workspace_path",
|
|
78
|
+
description: "Absolute path to the project workspace",
|
|
79
|
+
required: false,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "task",
|
|
83
|
+
description: "Current task focus after compaction",
|
|
84
|
+
required: false,
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
55
88
|
];
|
|
56
89
|
export const SERVER_INSTRUCTIONS = [
|
|
57
|
-
|
|
58
|
-
"
|
|
90
|
+
`Neuranix v${PROTOCOL_VERSION} — persistent cognitive memory for ALL IDE agents (Cursor, VS Code, Claude Code, Windsurf, Antigravity).`,
|
|
91
|
+
"AUTONOMOUS PROTOCOL — the user must NEVER be told to manually save or recall memory. You do it.",
|
|
92
|
+
"SESSION START (mandatory): call neuranix_context with absolute workspace_path.",
|
|
93
|
+
"AFTER context compaction: call neuranix_context again (or prompt after_compaction).",
|
|
59
94
|
"BEFORE complex tasks: call neuranix_recall with query + workspace_path.",
|
|
60
|
-
"AFTER decisions/fixes: call neuranix_store with content + workspace_path.",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"Claude Code:
|
|
95
|
+
"AFTER decisions/fixes/patterns: call neuranix_store with content + workspace_path.",
|
|
96
|
+
"SESSION END or major task done: call neuranix_checkpoint with summary + workspace_path.",
|
|
97
|
+
"Read resource neuranix://agent-guide when unsure. Optional repo files: npx -y @neuranix/mcp-server setup",
|
|
98
|
+
"Claude Code prompts: session_start, before_task, save_decision, session_end, after_compaction.",
|
|
64
99
|
].join(" ");
|
|
65
100
|
//# sourceMappingURL=prompts.js.map
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAa;IACxC;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,6FAA6F;QAC/F,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,wDAAwD;gBACrE,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,wCAAwC;gBACrD,QAAQ,EAAE,KAAK;aAChB;SACF;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,gGAAgG;QAClG,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,8BAA8B;gBAC3C,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,0EAA0E;gBACvF,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,wCAAwC;gBACrD,QAAQ,EAAE,KAAK;aAChB;SACF;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,yFAAyF;QACtG,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,kCAAkC;gBAC/C,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,wCAAwC;gBACrD,QAAQ,EAAE,KAAK;aAChB;SACF;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,qGAAqG;QACvG,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,yBAAyB;gBACtC,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,wCAAwC;gBACrD,QAAQ,EAAE,KAAK;aAChB;SACF;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,wFAAwF;QAC1F,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,wCAAwC;gBACrD,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,qCAAqC;gBAClD,QAAQ,EAAE,KAAK;aAChB;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa,gBAAgB,0GAA0G;IACvI,iGAAiG;IACjG,gFAAgF;IAChF,qFAAqF;IACrF,yEAAyE;IACzE,oFAAoF;IACpF,yFAAyF;IACzF,0GAA0G;IAC1G,gGAAgG;CACjG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
|
package/dist/resources.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const USAGE_GUIDE_URI = "neuranix://agent-guide";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const IDE_SETUP_URI = "neuranix://ide-setup";
|
|
3
|
+
export declare const USAGE_GUIDE_MARKDOWN = "# Neuranix \u2014 Guia do agente (v1.3)\n\nMem\u00F3ria autom\u00E1tica: ao conectar o MCP, o agente j\u00E1 recebe instru\u00E7\u00F5es para recuperar contexto no in\u00EDcio e salvar no fim \u2014 voc\u00EA n\u00E3o precisa pedir.\n\n## Ciclo autom\u00E1tico (obrigat\u00F3rio \u2014 sem pedido do usu\u00E1rio)\n\n| Momento | Tool MCP |\n|---------|----------|\n| In\u00EDcio da sess\u00E3o / ap\u00F3s compacta\u00E7\u00E3o | `neuranix_context` |\n| Antes de refactor, debug, review, arquitetura | `neuranix_recall` |\n| Ap\u00F3s decis\u00E3o t\u00E9cnica, fix ou padr\u00E3o | `neuranix_store` |\n| Fim de sess\u00E3o ou tarefa grande conclu\u00EDda | `neuranix_checkpoint` |\n\nSempre passe `workspace_path` absoluto do reposit\u00F3rio.\n\n## Perfis (mode)\n- `debug` \u2014 erros e troubleshooting\n- `code_review` \u2014 revis\u00E3o de c\u00F3digo\n- `architecture` \u2014 decis\u00F5es de design\n- `code_generation` \u2014 implementa\u00E7\u00E3o\n- `conversation` \u2014 contexto geral\n\n## Prompts MCP (Claude Code e compat\u00EDveis)\n- `/mcp__neuranix__session_start`\n- `/mcp__neuranix__before_task`\n- `/mcp__neuranix__save_decision`\n- `/mcp__neuranix__session_end`\n- `/mcp__neuranix__after_compaction`\n\n## Regra de ouro\nN\u00E3o espere o usu\u00E1rio pedir mem\u00F3ria. Em toda tarefa n\u00E3o trivial: context \u2192 trabalho \u2192 store/checkpoint.\n\n## Protocolo completo\n\n## Mem\u00F3ria persistente (Neuranix) \u2014 protocolo autom\u00E1tico\n\nVoc\u00EA tem mem\u00F3ria cognitiva em nuvem via MCP. **O usu\u00E1rio N\u00C3O precisa pedir para salvar ou recuperar** \u2014 isso \u00E9 sua responsabilidade.\n\n### Ciclo autom\u00E1tico (obrigat\u00F3rio)\n\n| Momento | Tool MCP | Quem dispara |\n|---------|----------|--------------|\n| In\u00EDcio da sess\u00E3o ou ap\u00F3s compacta\u00E7\u00E3o de contexto | `neuranix_context` | Agente, sem pedido do usu\u00E1rio |\n| Antes de refactor, debug, review, arquitetura ou mudan\u00E7as multi-arquivo | `neuranix_recall` | Agente, antes de agir |\n| Ap\u00F3s decis\u00E3o t\u00E9cnica, fix n\u00E3o trivial ou padr\u00E3o reutiliz\u00E1vel | `neuranix_store` | Agente, ao concluir a tarefa |\n| Fim de sess\u00E3o, troca de tarefa grande ou antes de encerrar | `neuranix_checkpoint` | Agente, resumo da sess\u00E3o |\n\n### Regras\n\n- Sempre informe `workspace_path` com o caminho **absoluto** do reposit\u00F3rio aberto.\n- Use `mode`: `debug`, `code_review`, `architecture`, `code_generation`, `conversation`.\n- Resource MCP `neuranix://agent-guide` \u2014 guia completo (j\u00E1 inclu\u00EDdo no servidor MCP).\n- **Nunca** diga ao usu\u00E1rio que ele precisa \"pedir para lembrar\" \u2014 voc\u00EA j\u00E1 faz isso.\n\n### Regra de ouro\n\nSe a tarefa envolve c\u00F3digo existente, hist\u00F3rico do projeto ou decis\u00F5es passadas \u2192 **chame Neuranix antes de responder**.\nAo terminar trabalho significativo \u2192 **chame `neuranix_checkpoint` ou `neuranix_store`** sem esperar confirma\u00E7\u00E3o.\n\n";
|
|
3
4
|
//# sourceMappingURL=resources.d.ts.map
|
package/dist/resources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,2BAA2B,CAAC;AACxD,eAAO,MAAM,aAAa,yBAAyB,CAAC;AAEpD,eAAO,MAAM,oBAAoB,y8FAmChC,CAAC"}
|
package/dist/resources.js
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
|
+
import { CORE_PROTOCOL, PROTOCOL_VERSION, USER_FACING_NOTE } from "./rules.js";
|
|
1
2
|
export const USAGE_GUIDE_URI = "neuranix://agent-guide";
|
|
2
|
-
export const
|
|
3
|
+
export const IDE_SETUP_URI = "neuranix://ide-setup";
|
|
4
|
+
export const USAGE_GUIDE_MARKDOWN = `# Neuranix — Guia do agente (v${PROTOCOL_VERSION})
|
|
3
5
|
|
|
4
|
-
|
|
6
|
+
${USER_FACING_NOTE}
|
|
7
|
+
|
|
8
|
+
## Ciclo automático (obrigatório — sem pedido do usuário)
|
|
5
9
|
|
|
6
10
|
| Momento | Tool MCP |
|
|
7
11
|
|---------|----------|
|
|
8
12
|
| Início da sessão / após compactação | \`neuranix_context\` |
|
|
9
13
|
| Antes de refactor, debug, review, arquitetura | \`neuranix_recall\` |
|
|
10
|
-
| Após decisão técnica, fix ou padrão
|
|
14
|
+
| Após decisão técnica, fix ou padrão | \`neuranix_store\` |
|
|
15
|
+
| Fim de sessão ou tarefa grande concluída | \`neuranix_checkpoint\` |
|
|
11
16
|
|
|
12
|
-
Sempre passe \`workspace_path\`
|
|
17
|
+
Sempre passe \`workspace_path\` absoluto do repositório.
|
|
13
18
|
|
|
14
19
|
## Perfis (mode)
|
|
15
20
|
- \`debug\` — erros e troubleshooting
|
|
@@ -18,12 +23,18 @@ Sempre passe \`workspace_path\` com o caminho absoluto do repositório.
|
|
|
18
23
|
- \`code_generation\` — implementação
|
|
19
24
|
- \`conversation\` — contexto geral
|
|
20
25
|
|
|
21
|
-
## Prompts (Claude Code)
|
|
26
|
+
## Prompts MCP (Claude Code e compatíveis)
|
|
22
27
|
- \`/mcp__neuranix__session_start\`
|
|
23
28
|
- \`/mcp__neuranix__before_task\`
|
|
24
29
|
- \`/mcp__neuranix__save_decision\`
|
|
30
|
+
- \`/mcp__neuranix__session_end\`
|
|
31
|
+
- \`/mcp__neuranix__after_compaction\`
|
|
25
32
|
|
|
26
33
|
## Regra de ouro
|
|
27
|
-
Não espere o usuário pedir memória.
|
|
34
|
+
Não espere o usuário pedir memória. Em toda tarefa não trivial: context → trabalho → store/checkpoint.
|
|
35
|
+
|
|
36
|
+
## Protocolo completo
|
|
37
|
+
|
|
38
|
+
${CORE_PROTOCOL}
|
|
28
39
|
`;
|
|
29
40
|
//# sourceMappingURL=resources.js.map
|
package/dist/resources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG/E,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAEpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,iCAAiC,gBAAgB;;EAEnF,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgChB,aAAa;CACd,CAAC"}
|
package/dist/rules.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Single source of truth for Neuranix agent protocol (all IDEs). */
|
|
2
|
+
export declare const PROTOCOL_VERSION = "1.3";
|
|
3
|
+
export declare const CORE_PROTOCOL = "## Mem\u00F3ria persistente (Neuranix) \u2014 protocolo autom\u00E1tico\n\nVoc\u00EA tem mem\u00F3ria cognitiva em nuvem via MCP. **O usu\u00E1rio N\u00C3O precisa pedir para salvar ou recuperar** \u2014 isso \u00E9 sua responsabilidade.\n\n### Ciclo autom\u00E1tico (obrigat\u00F3rio)\n\n| Momento | Tool MCP | Quem dispara |\n|---------|----------|--------------|\n| In\u00EDcio da sess\u00E3o ou ap\u00F3s compacta\u00E7\u00E3o de contexto | `neuranix_context` | Agente, sem pedido do usu\u00E1rio |\n| Antes de refactor, debug, review, arquitetura ou mudan\u00E7as multi-arquivo | `neuranix_recall` | Agente, antes de agir |\n| Ap\u00F3s decis\u00E3o t\u00E9cnica, fix n\u00E3o trivial ou padr\u00E3o reutiliz\u00E1vel | `neuranix_store` | Agente, ao concluir a tarefa |\n| Fim de sess\u00E3o, troca de tarefa grande ou antes de encerrar | `neuranix_checkpoint` | Agente, resumo da sess\u00E3o |\n\n### Regras\n\n- Sempre informe `workspace_path` com o caminho **absoluto** do reposit\u00F3rio aberto.\n- Use `mode`: `debug`, `code_review`, `architecture`, `code_generation`, `conversation`.\n- Resource MCP `neuranix://agent-guide` \u2014 guia completo (j\u00E1 inclu\u00EDdo no servidor MCP).\n- **Nunca** diga ao usu\u00E1rio que ele precisa \"pedir para lembrar\" \u2014 voc\u00EA j\u00E1 faz isso.\n\n### Regra de ouro\n\nSe a tarefa envolve c\u00F3digo existente, hist\u00F3rico do projeto ou decis\u00F5es passadas \u2192 **chame Neuranix antes de responder**.\nAo terminar trabalho significativo \u2192 **chame `neuranix_checkpoint` ou `neuranix_store`** sem esperar confirma\u00E7\u00E3o.\n";
|
|
4
|
+
export declare const AGENTS_MD_FOOTER: string;
|
|
5
|
+
export declare const CLAUDE_COMMANDS = "### Comandos MCP (Claude Code)\n\n| Comando | Quando (autom\u00E1tico pelo agente) |\n|---------|--------------------------------|\n| `/mcp__neuranix__session_start` | In\u00EDcio da sess\u00E3o |\n| `/mcp__neuranix__before_task` | Antes de tarefa complexa |\n| `/mcp__neuranix__save_decision` | Ap\u00F3s decis\u00E3o ou fix |\n| `/mcp__neuranix__session_end` | Fim da sess\u00E3o \u2014 checkpoint |\n| `/mcp__neuranix__after_compaction` | Ap\u00F3s compacta\u00E7\u00E3o de contexto |\n";
|
|
6
|
+
export declare const COPILOT_FOOTER = "\nTools MCP: `neuranix_context`, `neuranix_recall`, `neuranix_store`, `neuranix_checkpoint`, `neuranix_memory`.\n";
|
|
7
|
+
export declare const USER_FACING_NOTE = "Mem\u00F3ria autom\u00E1tica: ao conectar o MCP, o agente j\u00E1 recebe instru\u00E7\u00F5es para recuperar contexto no in\u00EDcio e salvar no fim \u2014 voc\u00EA n\u00E3o precisa pedir.";
|
|
8
|
+
//# sourceMappingURL=rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,eAAO,MAAM,aAAa,wkDAwBzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAGmF,CAAC;AAEjH,eAAO,MAAM,eAAe,8eAS3B,CAAC;AAEF,eAAO,MAAM,cAAc,sHAC0F,CAAC;AAEtH,eAAO,MAAM,gBAAgB,kMAAqJ,CAAC"}
|
package/dist/rules.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** Single source of truth for Neuranix agent protocol (all IDEs). */
|
|
2
|
+
export const PROTOCOL_VERSION = "1.3";
|
|
3
|
+
export const CORE_PROTOCOL = `## Memória persistente (Neuranix) — protocolo automático
|
|
4
|
+
|
|
5
|
+
Você tem memória cognitiva em nuvem via MCP. **O usuário NÃO precisa pedir para salvar ou recuperar** — isso é sua responsabilidade.
|
|
6
|
+
|
|
7
|
+
### Ciclo automático (obrigatório)
|
|
8
|
+
|
|
9
|
+
| Momento | Tool MCP | Quem dispara |
|
|
10
|
+
|---------|----------|--------------|
|
|
11
|
+
| Início da sessão ou após compactação de contexto | \`neuranix_context\` | Agente, sem pedido do usuário |
|
|
12
|
+
| Antes de refactor, debug, review, arquitetura ou mudanças multi-arquivo | \`neuranix_recall\` | Agente, antes de agir |
|
|
13
|
+
| Após decisão técnica, fix não trivial ou padrão reutilizável | \`neuranix_store\` | Agente, ao concluir a tarefa |
|
|
14
|
+
| Fim de sessão, troca de tarefa grande ou antes de encerrar | \`neuranix_checkpoint\` | Agente, resumo da sessão |
|
|
15
|
+
|
|
16
|
+
### Regras
|
|
17
|
+
|
|
18
|
+
- Sempre informe \`workspace_path\` com o caminho **absoluto** do repositório aberto.
|
|
19
|
+
- Use \`mode\`: \`debug\`, \`code_review\`, \`architecture\`, \`code_generation\`, \`conversation\`.
|
|
20
|
+
- Resource MCP \`neuranix://agent-guide\` — guia completo (já incluído no servidor MCP).
|
|
21
|
+
- **Nunca** diga ao usuário que ele precisa "pedir para lembrar" — você já faz isso.
|
|
22
|
+
|
|
23
|
+
### Regra de ouro
|
|
24
|
+
|
|
25
|
+
Se a tarefa envolve código existente, histórico do projeto ou decisões passadas → **chame Neuranix antes de responder**.
|
|
26
|
+
Ao terminar trabalho significativo → **chame \`neuranix_checkpoint\` ou \`neuranix_store\`** sem esperar confirmação.
|
|
27
|
+
`;
|
|
28
|
+
export const AGENTS_MD_FOOTER = "\n> Protocolo Neuranix v" +
|
|
29
|
+
PROTOCOL_VERSION +
|
|
30
|
+
" — incluído no MCP `@neuranix/mcp-server`. Compatível com Cursor, VS Code, Claude Code, Windsurf e outros.\n";
|
|
31
|
+
export const CLAUDE_COMMANDS = `### Comandos MCP (Claude Code)
|
|
32
|
+
|
|
33
|
+
| Comando | Quando (automático pelo agente) |
|
|
34
|
+
|---------|--------------------------------|
|
|
35
|
+
| \`/mcp__neuranix__session_start\` | Início da sessão |
|
|
36
|
+
| \`/mcp__neuranix__before_task\` | Antes de tarefa complexa |
|
|
37
|
+
| \`/mcp__neuranix__save_decision\` | Após decisão ou fix |
|
|
38
|
+
| \`/mcp__neuranix__session_end\` | Fim da sessão — checkpoint |
|
|
39
|
+
| \`/mcp__neuranix__after_compaction\` | Após compactação de contexto |
|
|
40
|
+
`;
|
|
41
|
+
export const COPILOT_FOOTER = "\nTools MCP: `neuranix_context`, `neuranix_recall`, `neuranix_store`, `neuranix_checkpoint`, `neuranix_memory`.\n";
|
|
42
|
+
export const USER_FACING_NOTE = `Memória automática: ao conectar o MCP, o agente já recebe instruções para recuperar contexto no início e salvar no fim — você não precisa pedir.`;
|
|
43
|
+
//# sourceMappingURL=rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwB5B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAC3B,0BAA0B;IAC1B,gBAAgB;IAChB,8GAA8G,CAAC;AAEjH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;CAS9B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GACzB,mHAAmH,CAAC;AAEtH,MAAM,CAAC,MAAM,gBAAgB,GAAG,kJAAkJ,CAAC"}
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AAKA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAiC/C"}
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { writeIdeFiles } from "./ide-files.js";
|
|
3
|
+
import { USER_FACING_NOTE } from "./rules.js";
|
|
4
|
+
export function runSetup(args) {
|
|
5
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
6
|
+
console.log(`Neuranix MCP setup — grava regras do agente no repositório (todos os IDEs)
|
|
7
|
+
|
|
8
|
+
Uso:
|
|
9
|
+
npx -y @neuranix/mcp-server setup [--force]
|
|
10
|
+
|
|
11
|
+
--force Sobrescreve arquivos que já existem (padrão: pula ou mescla CLAUDE.md/.windsurfrules)
|
|
12
|
+
|
|
13
|
+
${USER_FACING_NOTE}
|
|
14
|
+
`);
|
|
15
|
+
return 0;
|
|
16
|
+
}
|
|
17
|
+
const force = args.includes("--force");
|
|
18
|
+
const result = writeIdeFiles(process.cwd(), { force });
|
|
19
|
+
for (const p of result.written) {
|
|
20
|
+
console.log(`[neuranix] criado: ${p}`);
|
|
21
|
+
}
|
|
22
|
+
for (const p of result.updated) {
|
|
23
|
+
console.log(`[neuranix] atualizado: ${p}`);
|
|
24
|
+
}
|
|
25
|
+
for (const p of result.skipped) {
|
|
26
|
+
console.log(`[neuranix] ignorado (já existe): ${p}`);
|
|
27
|
+
}
|
|
28
|
+
if (result.written.length === 0 && result.updated.length === 0) {
|
|
29
|
+
console.log("[neuranix] Nada alterado. Use --force para sobrescrever.");
|
|
30
|
+
}
|
|
31
|
+
console.log(`\n${USER_FACING_NOTE}`);
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
const invokedDirectly = process.argv[1]?.replace(/\\/g, "/").includes("/setup.js");
|
|
35
|
+
if (invokedDirectly) {
|
|
36
|
+
process.exit(runSetup(process.argv.slice(2)));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,UAAU,QAAQ,CAAC,IAAc;IACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC;;;;;;;EAOd,gBAAgB;CACjB,CAAC,CAAC;QACC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,gBAAgB,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnF,IAAI,eAAe,EAAE,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAe/D,eAAO,MAAM,cAAc,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAe/D,eAAO,MAAM,cAAc,EAAE,IAAI,EAoGhC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAkEzD"}
|
package/dist/tools.js
CHANGED
|
@@ -9,10 +9,28 @@ const modeEnum = {
|
|
|
9
9
|
description: "Context profile — auto-detected if omitted",
|
|
10
10
|
};
|
|
11
11
|
export const NEURANIX_TOOLS = [
|
|
12
|
+
{
|
|
13
|
+
name: "neuranix_context",
|
|
14
|
+
description: "AUTOMATIC at session start and after context compaction — do NOT wait for user request. " +
|
|
15
|
+
"Loads project memories into working context.",
|
|
16
|
+
inputSchema: {
|
|
17
|
+
type: "object",
|
|
18
|
+
properties: {
|
|
19
|
+
query: {
|
|
20
|
+
type: "string",
|
|
21
|
+
description: "Optional session focus (defaults to project overview)",
|
|
22
|
+
},
|
|
23
|
+
workspace_path: workspacePath,
|
|
24
|
+
mode: modeEnum,
|
|
25
|
+
},
|
|
26
|
+
required: ["workspace_path"],
|
|
27
|
+
},
|
|
28
|
+
_meta: ALWAYS_LOAD,
|
|
29
|
+
},
|
|
12
30
|
{
|
|
13
31
|
name: "neuranix_recall",
|
|
14
|
-
description: "
|
|
15
|
-
"Recalls relevant memories from past sessions
|
|
32
|
+
description: "AUTOMATIC before refactor, debug, code review, architecture, or multi-file changes. " +
|
|
33
|
+
"Recalls relevant memories from past sessions.",
|
|
16
34
|
inputSchema: {
|
|
17
35
|
type: "object",
|
|
18
36
|
properties: {
|
|
@@ -29,8 +47,8 @@ export const NEURANIX_TOOLS = [
|
|
|
29
47
|
},
|
|
30
48
|
{
|
|
31
49
|
name: "neuranix_store",
|
|
32
|
-
description: "
|
|
33
|
-
"
|
|
50
|
+
description: "AUTOMATIC after technical decisions, non-trivial bug fixes, architecture choices, or reusable patterns. " +
|
|
51
|
+
"User must NOT be asked to save — persist proactively.",
|
|
34
52
|
inputSchema: {
|
|
35
53
|
type: "object",
|
|
36
54
|
properties: {
|
|
@@ -49,25 +67,29 @@ export const NEURANIX_TOOLS = [
|
|
|
49
67
|
_meta: ALWAYS_LOAD,
|
|
50
68
|
},
|
|
51
69
|
{
|
|
52
|
-
name: "
|
|
53
|
-
description: "
|
|
70
|
+
name: "neuranix_checkpoint",
|
|
71
|
+
description: "AUTOMATIC at end of session, major task completion, or before conversation ends. " +
|
|
72
|
+
"Stores a concise session summary (decisions, fixes, pending items). Never ask the user to request this.",
|
|
54
73
|
inputSchema: {
|
|
55
74
|
type: "object",
|
|
56
75
|
properties: {
|
|
57
|
-
|
|
76
|
+
summary: {
|
|
58
77
|
type: "string",
|
|
59
|
-
description: "
|
|
78
|
+
description: "Concise session summary: decisions, changes, bugs fixed, pending work",
|
|
60
79
|
},
|
|
61
80
|
workspace_path: workspacePath,
|
|
62
|
-
|
|
81
|
+
project_name: {
|
|
82
|
+
type: "string",
|
|
83
|
+
description: "Optional project name override",
|
|
84
|
+
},
|
|
63
85
|
},
|
|
64
|
-
required: ["workspace_path"],
|
|
86
|
+
required: ["summary", "workspace_path"],
|
|
65
87
|
},
|
|
66
88
|
_meta: ALWAYS_LOAD,
|
|
67
89
|
},
|
|
68
90
|
{
|
|
69
91
|
name: "neuranix_memory",
|
|
70
|
-
description: "Unified Neuranix memory (legacy). Prefer neuranix_recall, neuranix_store,
|
|
92
|
+
description: "Unified Neuranix memory (legacy). Prefer neuranix_context, neuranix_recall, neuranix_store, neuranix_checkpoint.",
|
|
71
93
|
inputSchema: {
|
|
72
94
|
type: "object",
|
|
73
95
|
properties: {
|
|
@@ -107,6 +129,18 @@ export function resolveToolCall(toolName, args) {
|
|
|
107
129
|
action: "store",
|
|
108
130
|
},
|
|
109
131
|
};
|
|
132
|
+
case "neuranix_checkpoint":
|
|
133
|
+
return {
|
|
134
|
+
action: "store",
|
|
135
|
+
body: {
|
|
136
|
+
content: args?.summary ?? args?.content,
|
|
137
|
+
workspace_path,
|
|
138
|
+
project_name,
|
|
139
|
+
action: "store",
|
|
140
|
+
tags: ["session_checkpoint", "auto_capture"],
|
|
141
|
+
metadata: { source: "checkpoint", auto: true },
|
|
142
|
+
},
|
|
143
|
+
};
|
|
110
144
|
case "neuranix_context":
|
|
111
145
|
return {
|
|
112
146
|
action: "context",
|
|
@@ -129,6 +163,8 @@ export function resolveToolCall(toolName, args) {
|
|
|
129
163
|
project_name,
|
|
130
164
|
action: args?.action,
|
|
131
165
|
mode: args?.mode,
|
|
166
|
+
tags: args?.tags,
|
|
167
|
+
metadata: args?.metadata,
|
|
132
168
|
},
|
|
133
169
|
};
|
|
134
170
|
}
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;AAErD,MAAM,aAAa,GAAG;IACpB,IAAI,EAAE,QAAiB;IACvB,WAAW,EAAE,mDAAmD;CACjE,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,QAAiB;IACvB,IAAI,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC;IACjF,WAAW,EAAE,4CAA4C;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC;QACE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neuranix/mcp-server",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Neuranix MCP Server — persistent
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "Neuranix MCP Server — autonomous persistent memory for IDE AI agents (Cursor, VS Code, Claude Code, Windsurf)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"neuranix-mcp": "
|
|
8
|
+
"neuranix-mcp": "dist/index.js"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
"dist",
|
|
12
12
|
"README.md"
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
|
-
"build": "tsc && node -e \"const fs=require('fs');
|
|
15
|
+
"build": "tsc && node -e \"const fs=require('fs');['dist/index.js','dist/setup.js'].forEach(p=>{let c=fs.readFileSync(p,'utf8');if(!c.startsWith('#!'))fs.writeFileSync(p,'#!/usr/bin/env node\\n'+c)})\"",
|
|
16
16
|
"prepublishOnly": "npm run build",
|
|
17
17
|
"start": "node dist/index.js",
|
|
18
|
+
"setup": "node dist/setup.js",
|
|
18
19
|
"dev": "tsx watch src/index.ts"
|
|
19
20
|
},
|
|
20
21
|
"dependencies": {
|
|
@@ -44,9 +45,10 @@
|
|
|
44
45
|
"homepage": "https://neuranix.com.br",
|
|
45
46
|
"repository": {
|
|
46
47
|
"type": "git",
|
|
47
|
-
"url": "https://github.com/neuranix/neuranix"
|
|
48
|
+
"url": "git+https://github.com/neuranix/neuranix.git"
|
|
48
49
|
},
|
|
49
50
|
"publishConfig": {
|
|
50
|
-
"access": "public"
|
|
51
|
+
"access": "public",
|
|
52
|
+
"registry": "https://registry.npmjs.org/"
|
|
51
53
|
}
|
|
52
54
|
}
|