robrain 0.4.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/export-memory.d.ts +2 -0
- package/dist/commands/export-memory.d.ts.map +1 -1
- package/dist/commands/export-memory.js +113 -3
- package/dist/commands/export-memory.js.map +1 -1
- package/dist/commands/init-project.d.ts.map +1 -1
- package/dist/commands/init-project.js +23 -18
- package/dist/commands/init-project.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +61 -46
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/projects.js +1 -1
- package/dist/commands/projects.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/editor.codex.test.d.ts +2 -0
- package/dist/lib/editor.codex.test.d.ts.map +1 -0
- package/dist/lib/editor.codex.test.js +126 -0
- package/dist/lib/editor.codex.test.js.map +1 -0
- package/dist/lib/editor.d.ts +28 -1
- package/dist/lib/editor.d.ts.map +1 -1
- package/dist/lib/editor.js +184 -21
- package/dist/lib/editor.js.map +1 -1
- package/dist/lib/mcp-bundle.d.ts +22 -4
- package/dist/lib/mcp-bundle.d.ts.map +1 -1
- package/dist/lib/mcp-bundle.js +31 -7
- package/dist/lib/mcp-bundle.js.map +1 -1
- package/dist/lib/project.d.ts.map +1 -1
- package/dist/lib/project.js +12 -1
- package/dist/lib/project.js.map +1 -1
- package/package.json +2 -1
package/dist/lib/editor.js
CHANGED
|
@@ -2,12 +2,61 @@
|
|
|
2
2
|
// ─────────────────────────────────────────────────────────────
|
|
3
3
|
// Detects which AI coding editors are installed and writes
|
|
4
4
|
// the appropriate MCP server configuration for each.
|
|
5
|
-
// Supported: Claude Code, Cursor, GitHub Copilot (VS Code)
|
|
5
|
+
// Supported: Claude Code, Cursor, GitHub Copilot (VS Code), Codex CLI
|
|
6
6
|
// ─────────────────────────────────────────────────────────────
|
|
7
7
|
// ******ROBRAIN****
|
|
8
8
|
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
9
9
|
import { homedir } from 'os';
|
|
10
10
|
import { join, dirname } from 'path';
|
|
11
|
+
export const INSTALLABLE_EDITORS = ['claude-code', 'cursor', 'copilot', 'codex'];
|
|
12
|
+
const EDITOR_LABELS = {
|
|
13
|
+
'claude-code': 'Claude Code',
|
|
14
|
+
'cursor': 'Cursor',
|
|
15
|
+
'copilot': 'GitHub Copilot (VS Code)',
|
|
16
|
+
'codex': 'Codex CLI',
|
|
17
|
+
};
|
|
18
|
+
/** Config file path for `robrain install --editor`, even when the editor was not auto-detected. */
|
|
19
|
+
export function editorConfigPath(editor) {
|
|
20
|
+
const home = homedir();
|
|
21
|
+
switch (editor) {
|
|
22
|
+
case 'claude-code': return join(home, '.claude.json');
|
|
23
|
+
case 'cursor': return join(home, '.cursor', 'mcp.json');
|
|
24
|
+
case 'codex': return join(home, '.codex', 'config.toml');
|
|
25
|
+
case 'copilot': return getVSCodeSettingsPath();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** Force a single editor entry for install when `--editor` is set but detection missed it. */
|
|
29
|
+
export function forceEditor(editor) {
|
|
30
|
+
if (!INSTALLABLE_EDITORS.includes(editor))
|
|
31
|
+
return null;
|
|
32
|
+
const id = editor;
|
|
33
|
+
const configPath = editorConfigPath(id);
|
|
34
|
+
if (!configPath)
|
|
35
|
+
return null;
|
|
36
|
+
return { editor: id, configPath, label: EDITOR_LABELS[id] };
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolve which editors to configure during install (non-interactive).
|
|
40
|
+
* Interactive multiselect when several editors are detected stays in `install.ts`.
|
|
41
|
+
*/
|
|
42
|
+
export function resolveEditorsForInstall(opts) {
|
|
43
|
+
const detected = detectEditors();
|
|
44
|
+
if (opts.editor) {
|
|
45
|
+
const matched = detected.filter(e => e.editor === opts.editor);
|
|
46
|
+
if (matched.length > 0)
|
|
47
|
+
return matched;
|
|
48
|
+
const forced = forceEditor(opts.editor);
|
|
49
|
+
return forced ? [forced] : [];
|
|
50
|
+
}
|
|
51
|
+
if (detected.length === 0) {
|
|
52
|
+
return [{
|
|
53
|
+
editor: 'claude-code',
|
|
54
|
+
configPath: join(homedir(), '.claude.json'),
|
|
55
|
+
label: 'Claude Code',
|
|
56
|
+
}];
|
|
57
|
+
}
|
|
58
|
+
return detected;
|
|
59
|
+
}
|
|
11
60
|
// ── Detection ──────────────────────────────────────────────────
|
|
12
61
|
export function detectEditors() {
|
|
13
62
|
const found = [];
|
|
@@ -31,6 +80,12 @@ export function detectEditors() {
|
|
|
31
80
|
if (vscodeSettings) {
|
|
32
81
|
found.push({ editor: 'copilot', configPath: vscodeSettings, label: 'GitHub Copilot (VS Code)' });
|
|
33
82
|
}
|
|
83
|
+
// Codex CLI — ~/.codex/config.toml
|
|
84
|
+
const codexPath = join(home, '.codex', 'config.toml');
|
|
85
|
+
const codexDir = join(home, '.codex');
|
|
86
|
+
if (existsSync(codexDir) || existsSync(codexPath)) {
|
|
87
|
+
found.push({ editor: 'codex', configPath: codexPath, label: 'Codex CLI' });
|
|
88
|
+
}
|
|
34
89
|
return found;
|
|
35
90
|
}
|
|
36
91
|
function getVSCodeSettingsPath() {
|
|
@@ -48,7 +103,43 @@ function getVSCodeSettingsPath() {
|
|
|
48
103
|
}
|
|
49
104
|
return null;
|
|
50
105
|
}
|
|
106
|
+
/** Reads LLM_PROVIDER; anything other than "openai" (case-insensitive) means Anthropic. */
|
|
107
|
+
export function resolveLlmProviderFromEnv(env = process.env) {
|
|
108
|
+
return env.LLM_PROVIDER?.trim().toLowerCase() === 'openai' ? 'openai' : 'anthropic';
|
|
109
|
+
}
|
|
110
|
+
/** Env vars for robrain-sensing — shared by JSON MCP configs and Codex TOML. */
|
|
111
|
+
export function buildSensingMcpEnv(opts) {
|
|
112
|
+
const env = {
|
|
113
|
+
ANTHROPIC_API_KEY: opts.anthropicKey,
|
|
114
|
+
EMBEDDING_PROVIDER: opts.embeddingProvider,
|
|
115
|
+
PERCEPTION_API_URL: opts.perceptionUrl,
|
|
116
|
+
PERCEPTION_API_KEY: opts.perceptionKey,
|
|
117
|
+
};
|
|
118
|
+
const llmProvider = opts.llmProvider ?? 'anthropic';
|
|
119
|
+
if (llmProvider === 'openai') {
|
|
120
|
+
env.LLM_PROVIDER = 'openai';
|
|
121
|
+
}
|
|
122
|
+
if (opts.embeddingProvider === 'voyage')
|
|
123
|
+
env.VOYAGE_API_KEY = opts.embeddingKey;
|
|
124
|
+
if (opts.embeddingProvider === 'cohere')
|
|
125
|
+
env.COHERE_API_KEY = opts.embeddingKey;
|
|
126
|
+
const needsOpenAi = opts.embeddingProvider === 'openai' || llmProvider === 'openai';
|
|
127
|
+
if (needsOpenAi) {
|
|
128
|
+
env.OPENAI_API_KEY =
|
|
129
|
+
opts.embeddingProvider === 'openai'
|
|
130
|
+
? opts.embeddingKey
|
|
131
|
+
: (opts.openaiKey?.trim() ?? '');
|
|
132
|
+
}
|
|
133
|
+
return env;
|
|
134
|
+
}
|
|
51
135
|
export function writeMcpConfig(configPath, opts) {
|
|
136
|
+
// Codex CLI uses TOML at ~/.codex/config.toml — handled in a separate writer
|
|
137
|
+
// because the file can contain unrelated TOML (model selection, sandbox prefs,
|
|
138
|
+
// user-managed MCP entries) we must not lose.
|
|
139
|
+
if (configPath.endsWith('.toml')) {
|
|
140
|
+
writeCodexMcpConfig(configPath, opts);
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
52
143
|
// Read existing config if present.
|
|
53
144
|
// Refuse to proceed on parse failure: configPath may be a shared file (e.g. ~/.claude.json
|
|
54
145
|
// contains theme, projects, history) — overwriting it with `{ mcpServers: ... }` would
|
|
@@ -70,15 +161,7 @@ export function writeMcpConfig(configPath, opts) {
|
|
|
70
161
|
mcpServers['robrain-sensing'] = {
|
|
71
162
|
command: 'node',
|
|
72
163
|
args: [opts.sensingMcpPath],
|
|
73
|
-
env:
|
|
74
|
-
ANTHROPIC_API_KEY: opts.anthropicKey,
|
|
75
|
-
EMBEDDING_PROVIDER: opts.embeddingProvider,
|
|
76
|
-
...(opts.embeddingProvider === 'openai' && { OPENAI_API_KEY: opts.embeddingKey }),
|
|
77
|
-
...(opts.embeddingProvider === 'voyage' && { VOYAGE_API_KEY: opts.embeddingKey }),
|
|
78
|
-
...(opts.embeddingProvider === 'cohere' && { COHERE_API_KEY: opts.embeddingKey }),
|
|
79
|
-
PERCEPTION_API_URL: opts.perceptionUrl,
|
|
80
|
-
PERCEPTION_API_KEY: opts.perceptionKey,
|
|
81
|
-
},
|
|
164
|
+
env: buildSensingMcpEnv(opts),
|
|
82
165
|
};
|
|
83
166
|
if (includeControl) {
|
|
84
167
|
mcpServers['robrain-control'] = {
|
|
@@ -102,10 +185,83 @@ export function writeMcpConfig(configPath, opts) {
|
|
|
102
185
|
mkdirSync(dir, { recursive: true });
|
|
103
186
|
writeFileSync(configPath, JSON.stringify(updated, null, 2), 'utf8');
|
|
104
187
|
}
|
|
105
|
-
// ──
|
|
188
|
+
// ── Codex MCP TOML writer ──────────────────────────────────────
|
|
189
|
+
//
|
|
190
|
+
// Codex CLI reads ~/.codex/config.toml (top-level + [mcp_servers.<name>]
|
|
191
|
+
// sections). The file can also contain unrelated user settings (model
|
|
192
|
+
// selection, sandbox prefs, user MCP servers), so we splice a marker-bounded
|
|
193
|
+
// block in/out instead of parsing the whole file — same approach as CLAUDE.md.
|
|
194
|
+
const CODEX_BLOCK_START = '# <!-- robrain -->';
|
|
195
|
+
const CODEX_BLOCK_END = '# <!-- /robrain -->';
|
|
196
|
+
function tomlString(s) {
|
|
197
|
+
return `"${s
|
|
198
|
+
.replace(/\\/g, '\\\\')
|
|
199
|
+
.replace(/"/g, '\\"')
|
|
200
|
+
.replace(/\n/g, '\\n')
|
|
201
|
+
.replace(/\r/g, '\\r')
|
|
202
|
+
.replace(/\t/g, '\\t')}"`;
|
|
203
|
+
}
|
|
204
|
+
/** @internal Exported for unit tests. */
|
|
205
|
+
export function renderCodexBlock(opts) {
|
|
206
|
+
const includeControl = opts.includeControl ?? true;
|
|
207
|
+
const sensingEnv = buildSensingMcpEnv(opts);
|
|
208
|
+
const lines = [];
|
|
209
|
+
lines.push(CODEX_BLOCK_START);
|
|
210
|
+
lines.push('# Managed by `robrain install` — do not edit between the markers.');
|
|
211
|
+
lines.push('');
|
|
212
|
+
lines.push('[mcp_servers.robrain-sensing]');
|
|
213
|
+
lines.push(`command = ${tomlString('node')}`);
|
|
214
|
+
lines.push(`args = [${tomlString(opts.sensingMcpPath)}]`);
|
|
215
|
+
lines.push('enabled = true');
|
|
216
|
+
lines.push('');
|
|
217
|
+
lines.push('[mcp_servers.robrain-sensing.env]');
|
|
218
|
+
for (const [k, v] of Object.entries(sensingEnv)) {
|
|
219
|
+
lines.push(`${k} = ${tomlString(v)}`);
|
|
220
|
+
}
|
|
221
|
+
if (includeControl) {
|
|
222
|
+
lines.push('');
|
|
223
|
+
lines.push('[mcp_servers.robrain-control]');
|
|
224
|
+
lines.push(`command = ${tomlString('node')}`);
|
|
225
|
+
lines.push(`args = [${tomlString(opts.controlMcpPath)}]`);
|
|
226
|
+
lines.push('enabled = true');
|
|
227
|
+
lines.push('');
|
|
228
|
+
lines.push('[mcp_servers.robrain-control.env]');
|
|
229
|
+
lines.push(`PLANNING_API_URL = ${tomlString(opts.planningUrl)}`);
|
|
230
|
+
lines.push(`PLANNING_API_KEY = ${tomlString(opts.planningKey)}`);
|
|
231
|
+
lines.push(`PERCEPTION_API_URL = ${tomlString(opts.perceptionUrl)}`);
|
|
232
|
+
lines.push(`PERCEPTION_API_KEY = ${tomlString(opts.perceptionKey)}`);
|
|
233
|
+
}
|
|
234
|
+
lines.push(CODEX_BLOCK_END);
|
|
235
|
+
return lines.join('\n');
|
|
236
|
+
}
|
|
237
|
+
export function writeCodexMcpConfig(configPath, opts) {
|
|
238
|
+
const block = renderCodexBlock(opts);
|
|
239
|
+
const dir = dirname(configPath);
|
|
240
|
+
if (!existsSync(dir))
|
|
241
|
+
mkdirSync(dir, { recursive: true });
|
|
242
|
+
let existing = '';
|
|
243
|
+
if (existsSync(configPath)) {
|
|
244
|
+
existing = readFileSync(configPath, 'utf8');
|
|
245
|
+
const start = existing.indexOf(CODEX_BLOCK_START);
|
|
246
|
+
const end = existing.indexOf(CODEX_BLOCK_END, start);
|
|
247
|
+
if (start !== -1 && end !== -1) {
|
|
248
|
+
const endInclusive = end + CODEX_BLOCK_END.length;
|
|
249
|
+
const next = existing.slice(0, start).trimEnd() +
|
|
250
|
+
'\n\n' +
|
|
251
|
+
block +
|
|
252
|
+
'\n\n' +
|
|
253
|
+
existing.slice(endInclusive).trimStart();
|
|
254
|
+
writeFileSync(configPath, next.trimEnd() + '\n', 'utf8');
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
existing = existing.trimEnd() + '\n\n';
|
|
258
|
+
}
|
|
259
|
+
writeFileSync(configPath, existing + block + '\n', 'utf8');
|
|
260
|
+
}
|
|
261
|
+
// ── RoBrain instruction text (CLAUDE.md, AGENTS.md, Cursor rule) ─
|
|
106
262
|
const ROBRAIN_MARKER_START = '<!-- robrain -->';
|
|
107
263
|
const ROBRAIN_MARKER_END = '<!-- /robrain -->';
|
|
108
|
-
/** Shared body for CLAUDE.md and `.cursor/rules/robrain.mdc` (keep in sync). */
|
|
264
|
+
/** Shared body for CLAUDE.md, AGENTS.md, and `.cursor/rules/robrain.mdc` (keep in sync). */
|
|
109
265
|
function roBrainInstructionsMarkdown(projectId, mode) {
|
|
110
266
|
if (mode === 'sensing-only') {
|
|
111
267
|
return `## RoBrain — Context Management (OSS self-hosted)
|
|
@@ -124,6 +280,7 @@ Use the session_id from the tool response (or pass your own unique id per chat).
|
|
|
124
280
|
\`\`\`
|
|
125
281
|
sensing_record_turn(session_id="<stored session_id>", sequence=<n>, user_message="<full user message>", claude_reply="<full assistant reply>", files_touched=[...], injected_memory_ids=[])
|
|
126
282
|
\`\`\`
|
|
283
|
+
The \`claude_reply\` parameter is the MCP field name for your full assistant reply (any editor).
|
|
127
284
|
Increment sequence by 1 after each successful call.
|
|
128
285
|
|
|
129
286
|
If topic_shift=true is returned, note it for follow-up context retrieval.
|
|
@@ -148,8 +305,9 @@ Inject the always_on_summary returned by control_get_session_context into your c
|
|
|
148
305
|
|
|
149
306
|
### After every response
|
|
150
307
|
\`\`\`
|
|
151
|
-
sensing_record_turn(session_id=..., sequence=<n>, user_message=..., claude_reply
|
|
308
|
+
sensing_record_turn(session_id=..., sequence=<n>, user_message=..., claude_reply="<assistant reply>", files_touched=[...], injected_memory_ids=[...])
|
|
152
309
|
\`\`\`
|
|
310
|
+
(\`claude_reply\` is the required MCP parameter name for the assistant reply.)
|
|
153
311
|
If topic_shift=true is returned, immediately call:
|
|
154
312
|
\`\`\`
|
|
155
313
|
control_inject_context(project_id="${projectId}", session_id=..., task_description=..., files_in_scope=[...])
|
|
@@ -186,13 +344,11 @@ function roBrainMarkedBlock(projectId, mode) {
|
|
|
186
344
|
${roBrainInstructionsMarkdown(projectId, mode)}${ROBRAIN_MARKER_END}
|
|
187
345
|
`;
|
|
188
346
|
}
|
|
189
|
-
// ── CLAUDE.md
|
|
190
|
-
|
|
191
|
-
const claudeMdPath = join(projectRoot, 'CLAUDE.md');
|
|
192
|
-
const canonicalBlock = roBrainMarkedBlock(projectId, mode);
|
|
347
|
+
// ── CLAUDE.md / AGENTS.md writers ──────────────────────────────
|
|
348
|
+
function upsertRoBrainMarkdownBlock(filePath, canonicalBlock) {
|
|
193
349
|
let existing = '';
|
|
194
|
-
if (existsSync(
|
|
195
|
-
existing = readFileSync(
|
|
350
|
+
if (existsSync(filePath)) {
|
|
351
|
+
existing = readFileSync(filePath, 'utf8');
|
|
196
352
|
const start = existing.indexOf(ROBRAIN_MARKER_START);
|
|
197
353
|
const end = existing.indexOf(ROBRAIN_MARKER_END, start);
|
|
198
354
|
if (start !== -1 && end !== -1) {
|
|
@@ -205,12 +361,19 @@ export function writeClaudeMd(projectRoot, projectId, mode = 'sensing+control')
|
|
|
205
361
|
canonicalBlock +
|
|
206
362
|
'\n\n' +
|
|
207
363
|
existing.slice(endInclusive).trimStart();
|
|
208
|
-
writeFileSync(
|
|
364
|
+
writeFileSync(filePath, next.trimEnd() + '\n', 'utf8');
|
|
209
365
|
return;
|
|
210
366
|
}
|
|
211
367
|
existing = existing.trimEnd() + '\n\n';
|
|
212
368
|
}
|
|
213
|
-
writeFileSync(
|
|
369
|
+
writeFileSync(filePath, existing + canonicalBlock + '\n', 'utf8');
|
|
370
|
+
}
|
|
371
|
+
export function writeClaudeMd(projectRoot, projectId, mode = 'sensing+control') {
|
|
372
|
+
upsertRoBrainMarkdownBlock(join(projectRoot, 'CLAUDE.md'), roBrainMarkedBlock(projectId, mode));
|
|
373
|
+
}
|
|
374
|
+
/** Writes/updates `AGENTS.md` at the project root (Codex CLI and other AGENTS.md clients). Same managed block as CLAUDE.md. */
|
|
375
|
+
export function writeAgentsMd(projectRoot, projectId, mode = 'sensing+control') {
|
|
376
|
+
upsertRoBrainMarkdownBlock(join(projectRoot, 'AGENTS.md'), roBrainMarkedBlock(projectId, mode));
|
|
214
377
|
}
|
|
215
378
|
/** Writes `.cursor/rules/robrain.mdc` when Cursor is used. Replaces any existing RoBrain block in place; appends if markers are missing; creates the file (with frontmatter) if absent. Returns true when the file is written or updated. */
|
|
216
379
|
export function writeCursorRoBrainRule(projectRoot, projectId, mode = 'sensing+control') {
|
package/dist/lib/editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/lib/editor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/lib/editor.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/mcp-bundle.d.ts
CHANGED
|
@@ -1,14 +1,32 @@
|
|
|
1
1
|
export declare class McpBundleError extends Error {
|
|
2
2
|
name: string;
|
|
3
3
|
}
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* True only when a *complete* Sensing bundle is present — both the entrypoint and
|
|
6
|
+
* a package.json declaring ESM. The package.json check is load-bearing: Node treats
|
|
7
|
+
* a bare `.js` without `"type": "module"` as CommonJS and throws on the bundle's
|
|
8
|
+
* `import` statements before any tool registers. A previous half-finished copy
|
|
9
|
+
* (entrypoint present, package.json missing) must therefore read as NOT ready so
|
|
10
|
+
* the install re-materializes it instead of certifying the wreck and writing a
|
|
11
|
+
* success config on top of it.
|
|
12
|
+
*/
|
|
5
13
|
export declare function sensingBundleReady(robrainMcpDir: string): boolean;
|
|
6
14
|
/** True when a Control MCP entrypoint exists (cloud installs only; not in OSS repo). */
|
|
7
15
|
export declare function controlBundleReady(robrainMcpDir: string): boolean;
|
|
8
16
|
/**
|
|
9
|
-
* Ensure ~/.robrain/mcp/sensing
|
|
10
|
-
*
|
|
11
|
-
*
|
|
17
|
+
* Ensure ~/.robrain/mcp/sensing resolves to a built sensing-mcp bundle.
|
|
18
|
+
*
|
|
19
|
+
* macOS/Linux: directory symlink into the workspace package — the package's own
|
|
20
|
+
* package.json and (for dev rebuilds) a fresh dist are picked up automatically.
|
|
21
|
+
*
|
|
22
|
+
* Windows: copy the *self-contained* artifact only — the bundled dist plus a
|
|
23
|
+
* minimal package.json declaring ESM. We deliberately do NOT copy the package's
|
|
24
|
+
* node_modules: in a pnpm workspace those entries are symlinks into the monorepo's
|
|
25
|
+
* virtual store (e.g. `@robrain/shared -> ../../../shared`). Copied out of the repo
|
|
26
|
+
* they dangle, and on Windows recreating them can abort the copy partway — which is
|
|
27
|
+
* exactly what produced half-installed, crash-looping Sensing servers. Because the
|
|
28
|
+
* server is bundled into one file with every dependency inlined, no node_modules is
|
|
29
|
+
* needed at the destination.
|
|
12
30
|
*/
|
|
13
31
|
export declare function ensureSensingMcpBundle(repoRoot: string, robrainMcpDir: string): void;
|
|
14
32
|
//# sourceMappingURL=mcp-bundle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-bundle.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-bundle.ts"],"names":[],"mappings":"AAOA,qBAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,SAAmB;CACjC;AAED
|
|
1
|
+
{"version":3,"file":"mcp-bundle.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-bundle.ts"],"names":[],"mappings":"AAOA,qBAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,SAAmB;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAmCpF"}
|
package/dist/lib/mcp-bundle.js
CHANGED
|
@@ -1,23 +1,42 @@
|
|
|
1
1
|
// packages/cli/src/lib/mcp-bundle.ts
|
|
2
2
|
// Copy or symlink built MCP packages into ~/.robrain/mcp so editor configs resolve.
|
|
3
|
-
import { cpSync, existsSync, mkdirSync, rmSync, symlinkSync } from 'fs';
|
|
3
|
+
import { cpSync, existsSync, mkdirSync, rmSync, symlinkSync, writeFileSync } from 'fs';
|
|
4
4
|
import { platform } from 'os';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
export class McpBundleError extends Error {
|
|
7
7
|
name = 'McpBundleError';
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* True only when a *complete* Sensing bundle is present — both the entrypoint and
|
|
11
|
+
* a package.json declaring ESM. The package.json check is load-bearing: Node treats
|
|
12
|
+
* a bare `.js` without `"type": "module"` as CommonJS and throws on the bundle's
|
|
13
|
+
* `import` statements before any tool registers. A previous half-finished copy
|
|
14
|
+
* (entrypoint present, package.json missing) must therefore read as NOT ready so
|
|
15
|
+
* the install re-materializes it instead of certifying the wreck and writing a
|
|
16
|
+
* success config on top of it.
|
|
17
|
+
*/
|
|
10
18
|
export function sensingBundleReady(robrainMcpDir) {
|
|
11
|
-
|
|
19
|
+
const base = join(robrainMcpDir, 'sensing');
|
|
20
|
+
return existsSync(join(base, 'dist', 'index.js')) && existsSync(join(base, 'package.json'));
|
|
12
21
|
}
|
|
13
22
|
/** True when a Control MCP entrypoint exists (cloud installs only; not in OSS repo). */
|
|
14
23
|
export function controlBundleReady(robrainMcpDir) {
|
|
15
24
|
return existsSync(join(robrainMcpDir, 'control', 'dist', 'index.js'));
|
|
16
25
|
}
|
|
17
26
|
/**
|
|
18
|
-
* Ensure ~/.robrain/mcp/sensing
|
|
19
|
-
*
|
|
20
|
-
*
|
|
27
|
+
* Ensure ~/.robrain/mcp/sensing resolves to a built sensing-mcp bundle.
|
|
28
|
+
*
|
|
29
|
+
* macOS/Linux: directory symlink into the workspace package — the package's own
|
|
30
|
+
* package.json and (for dev rebuilds) a fresh dist are picked up automatically.
|
|
31
|
+
*
|
|
32
|
+
* Windows: copy the *self-contained* artifact only — the bundled dist plus a
|
|
33
|
+
* minimal package.json declaring ESM. We deliberately do NOT copy the package's
|
|
34
|
+
* node_modules: in a pnpm workspace those entries are symlinks into the monorepo's
|
|
35
|
+
* virtual store (e.g. `@robrain/shared -> ../../../shared`). Copied out of the repo
|
|
36
|
+
* they dangle, and on Windows recreating them can abort the copy partway — which is
|
|
37
|
+
* exactly what produced half-installed, crash-looping Sensing servers. Because the
|
|
38
|
+
* server is bundled into one file with every dependency inlined, no node_modules is
|
|
39
|
+
* needed at the destination.
|
|
21
40
|
*/
|
|
22
41
|
export function ensureSensingMcpBundle(repoRoot, robrainMcpDir) {
|
|
23
42
|
if (sensingBundleReady(robrainMcpDir))
|
|
@@ -33,7 +52,12 @@ export function ensureSensingMcpBundle(repoRoot, robrainMcpDir) {
|
|
|
33
52
|
rmSync(dest, { recursive: true, force: true });
|
|
34
53
|
}
|
|
35
54
|
if (platform() === 'win32') {
|
|
36
|
-
|
|
55
|
+
mkdirSync(dest, { recursive: true });
|
|
56
|
+
cpSync(join(src, 'dist'), join(dest, 'dist'), { recursive: true });
|
|
57
|
+
// Minimal package.json: Node needs "type": "module" to run the bundled
|
|
58
|
+
// ESM entrypoint. The workspace package.json's `dependencies` are irrelevant
|
|
59
|
+
// at runtime (everything is inlined) and only invite confusion, so omit them.
|
|
60
|
+
writeFileSync(join(dest, 'package.json'), JSON.stringify({ name: 'robrain-sensing-mcp', private: true, type: 'module', main: './dist/index.js' }, null, 2) + '\n');
|
|
37
61
|
}
|
|
38
62
|
else {
|
|
39
63
|
symlinkSync(src, dest, 'dir');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-bundle.js","sourceRoot":"","sources":["../../src/lib/mcp-bundle.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,oFAAoF;AAEpF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp-bundle.js","sourceRoot":"","sources":["../../src/lib/mcp-bundle.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,oFAAoF;AAEpF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,GAAG,gBAAgB,CAAA;CACjC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IAC3C,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACtD,OAAO,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB,EAAE,aAAqB;IAC5E,IAAI,kBAAkB,CAAC,aAAa,CAAC;QAAE,OAAM;IAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,cAAc,CACtB,qCAAqC,QAAQ,uDAAuD,CACrG,CAAA;IACH,CAAC;IAED,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IAE3C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAC3B,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACpC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAClE,uEAAuE;QACvE,6EAA6E;QAC7E,8EAA8E;QAC9E,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAC1B,IAAI,CAAC,SAAS,CACZ,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,EACvF,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAA;IACH,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAW,MAAM,CAAA;IACnB,IAAI,EAAS,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAQ,MAAM,EAAE,CAAA;IACrB,MAAM,EAAO,MAAM,CAAA;IACnB,OAAO,EAAM,MAAM,CAAA;CACpB;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAW,MAAM,CAAA;IACnB,IAAI,EAAS,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAQ,MAAM,EAAE,CAAA;IACrB,MAAM,EAAO,MAAM,CAAA;IACnB,OAAO,EAAM,MAAM,CAAA;CACpB;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAgE1D;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAS1D;AAKD,sEAAsE;AACtE,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,WAAW;AACjB,4FAA4F;AAC5F,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAgHpD"}
|
package/dist/lib/project.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// ─────────────────────────────────────────────────────────────
|
|
3
3
|
// Handles project initialization — warm-starts the memory store
|
|
4
4
|
// from existing codebase context (package.json, README, git log,
|
|
5
|
-
// CLAUDE.md) so session 1 starts with knowledge rather than blank.
|
|
5
|
+
// CLAUDE.md, AGENTS.md) so session 1 starts with knowledge rather than blank.
|
|
6
6
|
// ─────────────────────────────────────────────────────────────
|
|
7
7
|
import { existsSync, readFileSync } from 'fs';
|
|
8
8
|
import { join, basename } from 'path';
|
|
@@ -47,6 +47,17 @@ export function gatherProjectInfo(cwd) {
|
|
|
47
47
|
if (!desc && readme) {
|
|
48
48
|
desc = readme.replace(/^#+\s*/gm, '').replace(/\n+/g, ' ').slice(0, 200);
|
|
49
49
|
}
|
|
50
|
+
// AGENTS.md excerpt (Codex / agent instruction files)
|
|
51
|
+
if (!desc) {
|
|
52
|
+
for (const ap of ['AGENTS.md', 'agents.md']) {
|
|
53
|
+
const agentsPath = join(cwd, ap);
|
|
54
|
+
if (existsSync(agentsPath)) {
|
|
55
|
+
const excerpt = readFileSync(agentsPath, 'utf8').slice(0, 500);
|
|
56
|
+
desc = excerpt.replace(/^#+\s*/gm, '').replace(/\n+/g, ' ').slice(0, 200);
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
50
61
|
// Git log — last 20 commits
|
|
51
62
|
let gitLog = '';
|
|
52
63
|
try {
|
package/dist/lib/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,gEAAgE;AAChE,gEAAgE;AAChE,iEAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "robrain",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "RoBrain CLI for installation, setup, and memory workflows",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"build": "tsc",
|
|
31
31
|
"dev": "tsc --watch",
|
|
32
32
|
"typecheck": "tsc --noEmit",
|
|
33
|
+
"test": "pnpm build && node --test dist/lib/editor.codex.test.js",
|
|
33
34
|
"postinstall": "node scripts/chmod-bin.cjs"
|
|
34
35
|
},
|
|
35
36
|
"dependencies": {
|