robrain 0.1.9 → 0.2.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/dist/commands/init-project.d.ts.map +1 -1
- package/dist/commands/init-project.js +49 -5
- package/dist/commands/init-project.js.map +1 -1
- package/dist/commands/inject.d.ts.map +1 -1
- package/dist/commands/inject.js +31 -3
- package/dist/commands/inject.js.map +1 -1
- package/dist/commands/install.js +2 -2
- package/dist/index.js +1 -1
- package/dist/lib/editor.js +4 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-project.d.ts","sourceRoot":"","sources":["../../src/commands/init-project.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init-project.d.ts","sourceRoot":"","sources":["../../src/commands/init-project.ts"],"names":[],"mappings":"AAwBA,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAS,MAAM,CAAA;IACzB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoIhF"}
|
|
@@ -14,6 +14,8 @@ import chalk from 'chalk';
|
|
|
14
14
|
import ora from 'ora';
|
|
15
15
|
import prompts from 'prompts';
|
|
16
16
|
import { cwd } from 'process';
|
|
17
|
+
import { existsSync, readFileSync } from 'fs';
|
|
18
|
+
import { dirname, join } from 'path';
|
|
17
19
|
import { readConfig, isAuthenticated } from '../lib/config.js';
|
|
18
20
|
import { gatherProjectInfo, seedProjectMemory } from '../lib/project.js';
|
|
19
21
|
import { detectEditors, writeClaudeMd, writeCursorRoBrainRule } from '../lib/editor.js';
|
|
@@ -35,10 +37,17 @@ export async function initProjectCommand(opts) {
|
|
|
35
37
|
// ── Gather project info ────────────────────────────────────
|
|
36
38
|
const spinner = ora({ text: 'Scanning project...', color: 'green' }).start();
|
|
37
39
|
const projectRoot = cwd();
|
|
40
|
+
const detectedAncestor = findAncestorRoBrainProject(projectRoot);
|
|
38
41
|
const info = gatherProjectInfo(projectRoot);
|
|
42
|
+
const resolvedProjectId = opts.projectId
|
|
43
|
+
?? detectedAncestor?.projectId
|
|
44
|
+
?? info.id;
|
|
39
45
|
spinner.text = `Detected: ${chalk.bold(info.name)}`;
|
|
40
46
|
await sleep(400); // brief pause so user sees the detection
|
|
41
|
-
spinner.succeed(`Project: ${chalk.bold(info.name)} ${chalk.dim(`(id: ${
|
|
47
|
+
spinner.succeed(`Project: ${chalk.bold(info.name)} ${chalk.dim(`(id: ${resolvedProjectId})`)}`);
|
|
48
|
+
if (!opts.projectId && detectedAncestor?.projectId && detectedAncestor.dir !== projectRoot) {
|
|
49
|
+
console.log(chalk.dim(` Reusing existing RoBrain project id from ${detectedAncestor.source} in ${detectedAncestor.dir}: ${detectedAncestor.projectId}`));
|
|
50
|
+
}
|
|
42
51
|
// Display what was found
|
|
43
52
|
console.log();
|
|
44
53
|
if (info.description) {
|
|
@@ -74,10 +83,10 @@ export async function initProjectCommand(opts) {
|
|
|
74
83
|
: 'Writing CLAUDE.md instructions...',
|
|
75
84
|
color: 'green',
|
|
76
85
|
}).start();
|
|
77
|
-
writeClaudeMd(projectRoot,
|
|
86
|
+
writeClaudeMd(projectRoot, resolvedProjectId, instructionMode);
|
|
78
87
|
let cursorRuleApplied = false;
|
|
79
88
|
if (hasCursor) {
|
|
80
|
-
cursorRuleApplied = writeCursorRoBrainRule(projectRoot,
|
|
89
|
+
cursorRuleApplied = writeCursorRoBrainRule(projectRoot, resolvedProjectId, instructionMode);
|
|
81
90
|
}
|
|
82
91
|
mdSpinner.succeed(hasCursor
|
|
83
92
|
? 'Editor instructions updated (CLAUDE.md + Cursor rule)'
|
|
@@ -85,7 +94,7 @@ export async function initProjectCommand(opts) {
|
|
|
85
94
|
// ── Seed memory ────────────────────────────────────────────
|
|
86
95
|
const seedSpinner = ora({ text: 'Inferring architectural decisions from codebase...', color: 'green' }).start();
|
|
87
96
|
const perceptionKey = config.perceptionKey ?? '';
|
|
88
|
-
const result = await seedProjectMemory(config.perceptionUrl, perceptionKey, info);
|
|
97
|
+
const result = await seedProjectMemory(config.perceptionUrl, perceptionKey, { ...info, id: resolvedProjectId });
|
|
89
98
|
if (result.ok && result.decisionsWritten > 0) {
|
|
90
99
|
seedSpinner.succeed(`Seeded ${result.decisionsWritten} inferred decisions`);
|
|
91
100
|
}
|
|
@@ -98,7 +107,7 @@ export async function initProjectCommand(opts) {
|
|
|
98
107
|
// ── Done ───────────────────────────────────────────────────
|
|
99
108
|
console.log();
|
|
100
109
|
console.log(chalk.green(' ✓ Project initialized\n'));
|
|
101
|
-
console.log(chalk.dim(' Project ID: ') + chalk.cyan(
|
|
110
|
+
console.log(chalk.dim(' Project ID: ') + chalk.cyan(resolvedProjectId));
|
|
102
111
|
console.log(chalk.dim(' CLAUDE.md: ') + chalk.dim('updated with RoBrain instructions'));
|
|
103
112
|
if (hasCursor) {
|
|
104
113
|
console.log(chalk.dim(' Cursor: ') +
|
|
@@ -120,4 +129,39 @@ export async function initProjectCommand(opts) {
|
|
|
120
129
|
function sleep(ms) {
|
|
121
130
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
122
131
|
}
|
|
132
|
+
function findAncestorRoBrainProject(startDir) {
|
|
133
|
+
let dir = startDir;
|
|
134
|
+
for (;;) {
|
|
135
|
+
const claudeMdPath = join(dir, 'CLAUDE.md');
|
|
136
|
+
const cursorRulePath = join(dir, '.cursor', 'rules', 'robrain.mdc');
|
|
137
|
+
const claudeMdProjectId = readRoBrainProjectIdFromFile(claudeMdPath);
|
|
138
|
+
if (claudeMdProjectId)
|
|
139
|
+
return { projectId: claudeMdProjectId, source: 'CLAUDE.md', dir };
|
|
140
|
+
const cursorProjectId = readRoBrainProjectIdFromFile(cursorRulePath);
|
|
141
|
+
if (cursorProjectId)
|
|
142
|
+
return { projectId: cursorProjectId, source: '.cursor/rules/robrain.mdc', dir };
|
|
143
|
+
const parent = dirname(dir);
|
|
144
|
+
if (parent === dir)
|
|
145
|
+
return null;
|
|
146
|
+
dir = parent;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function readRoBrainProjectIdFromFile(path) {
|
|
150
|
+
if (!existsSync(path))
|
|
151
|
+
return null;
|
|
152
|
+
const text = readFileSync(path, 'utf8');
|
|
153
|
+
return extractProjectIdFromRoBrainBlock(text);
|
|
154
|
+
}
|
|
155
|
+
function extractProjectIdFromRoBrainBlock(text) {
|
|
156
|
+
const startMarker = '<!-- robrain -->';
|
|
157
|
+
const endMarker = '<!-- /robrain -->';
|
|
158
|
+
const startIdx = text.indexOf(startMarker);
|
|
159
|
+
const endIdx = startIdx === -1 ? -1 : text.indexOf(endMarker, startIdx + startMarker.length);
|
|
160
|
+
const scope = (startIdx !== -1 && endIdx !== -1)
|
|
161
|
+
? text.slice(startIdx, endIdx + endMarker.length)
|
|
162
|
+
: text;
|
|
163
|
+
const match = scope.match(/project_id="([^"]+)"/);
|
|
164
|
+
const projectId = match?.[1]?.trim();
|
|
165
|
+
return projectId ? projectId : null;
|
|
166
|
+
}
|
|
123
167
|
//# sourceMappingURL=init-project.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-project.js","sourceRoot":"","sources":["../../src/commands/init-project.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,gEAAgE;AAChE,yCAAyC;AACzC,EAAE;AACF,+DAA+D;AAC/D,kDAAkD;AAClD,sEAAsE;AACtE,wCAAwC;AACxC,iDAAiD;AACjD,EAAE;AACF,6CAA6C;AAC7C,gEAAgE;AAEhE,OAAO,KAAK,MAAQ,OAAO,CAAA;AAC3B,OAAO,GAAG,MAAU,KAAK,CAAA;AACzB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AASvF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAwB;IAC/D,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAA;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAA;IAExE,8DAA8D;IAC9D,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,eAAe,GAA2B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAA;IAEtG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,8DAA8D;IAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IAE5E,MAAM,WAAW,GAAG,GAAG,EAAE,CAAA;IACzB,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"init-project.js","sourceRoot":"","sources":["../../src/commands/init-project.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,gEAAgE;AAChE,yCAAyC;AACzC,EAAE;AACF,+DAA+D;AAC/D,kDAAkD;AAClD,sEAAsE;AACtE,wCAAwC;AACxC,iDAAiD;AACjD,EAAE;AACF,6CAA6C;AAC7C,gEAAgE;AAEhE,OAAO,KAAK,MAAQ,OAAO,CAAA;AAC3B,OAAO,GAAG,MAAU,KAAK,CAAA;AACzB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AASvF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAwB;IAC/D,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAA;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAA;IAExE,8DAA8D;IAC9D,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,eAAe,GAA2B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAA;IAEtG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,8DAA8D;IAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IAE5E,MAAM,WAAW,GAAG,GAAG,EAAE,CAAA;IACzB,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAA;IAChE,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;IAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS;WACnC,gBAAgB,EAAE,SAAS;WAC3B,IAAI,CAAC,EAAE,CAAA;IAEZ,OAAO,CAAC,IAAI,GAAG,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IACnD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,CAAE,yCAAyC;IAE3D,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,iBAAiB,GAAG,CAAC,EAAE,CAAC,CAAA;IAE/F,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,gBAAgB,EAAE,SAAS,IAAI,gBAAgB,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CACnB,8CAA8C,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,GAAG,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAClI,CAAC,CAAA;IACJ,CAAC;IAED,yBAAyB;IACzB,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC3E,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,8DAA8D;IAC9D,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACzB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;YAChC,IAAI,EAAK,SAAS;YAClB,IAAI,EAAK,SAAS;YAClB,OAAO,EAAE,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC1D,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,GAAG,CAAC;QACpB,IAAI,EAAE,SAAS;YACb,CAAC,CAAC,qDAAqD;YACvD,CAAC,CAAC,mCAAmC;QACvC,KAAK,EAAE,OAAO;KACf,CAAC,CAAC,KAAK,EAAE,CAAA;IACV,aAAa,CAAC,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAA;IAC9D,IAAI,iBAAiB,GAAG,KAAK,CAAA;IAC7B,IAAI,SAAS,EAAE,CAAC;QACd,iBAAiB,GAAG,sBAAsB,CAAC,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAA;IAC7F,CAAC;IACD,SAAS,CAAC,OAAO,CACf,SAAS;QACP,CAAC,CAAC,uDAAuD;QACzD,CAAC,CAAC,6CAA6C,CAClD,CAAA;IAED,8DAA8D;IAC9D,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,oDAAoD,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IAE/G,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAA;IAEhD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,MAAM,CAAC,aAAc,EACrB,aAAa,EACb,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,iBAAiB,EAAE,CACnC,CAAA;IAED,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC7C,WAAW,CAAC,OAAO,CAAC,UAAU,MAAM,CAAC,gBAAgB,qBAAqB,CAAC,CAAA;IAC7E,CAAC;SAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACrB,WAAW,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAA;IAC9F,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAA;IAC7G,CAAC;IAED,8DAA8D;IAC9D,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAA;IACzF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;YACxB,KAAK,CAAC,GAAG,CACP,iBAAiB;gBACf,CAAC,CAAC,iCAAiC;gBACnC,CAAC,CAAC,8BAA8B,CACnC,CACJ,CAAA;IACH,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC3C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAA;IAC7E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAA;IAC/E,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IAClD,IAAI,GAAG,GAAG,QAAQ,CAAA;IAClB,SAAS,CAAC;QACR,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QAEnE,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAA;QACpE,IAAI,iBAAiB;YAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAA;QAExF,MAAM,eAAe,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAA;QACpE,IAAI,eAAe;YAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAA;QAEpG,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QAC/B,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAY;IAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,OAAO,gCAAgC,CAAC,IAAI,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,gCAAgC,CAAC,IAAY;IACpD,MAAM,WAAW,GAAG,kBAAkB,CAAA;IACtC,MAAM,SAAS,GAAG,mBAAmB,CAAA;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAC5F,MAAM,KAAK,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACjD,CAAC,CAAC,IAAI,CAAA;IAER,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAA;IACpC,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/commands/inject.ts"],"names":[],"mappings":"AAmBA,UAAU,aAAa;IACrB,KAAK,CAAC,EAAG,MAAM,CAAA;IACf,KAAK,CAAC,EAAG,MAAM,CAAA;IACf,IAAI,CAAC,EAAI,OAAO,CAAA;IAChB,KAAK,CAAC,EAAG,MAAM,CAAA;IACf,GAAG,CAAC,EAAK,OAAO,CAAA;CACjB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/commands/inject.ts"],"names":[],"mappings":"AAmBA,UAAU,aAAa;IACrB,KAAK,CAAC,EAAG,MAAM,CAAA;IACf,KAAK,CAAC,EAAG,MAAM,CAAA;IACf,IAAI,CAAC,EAAI,OAAO,CAAA;IAChB,KAAK,CAAC,EAAG,MAAM,CAAA;IACf,GAAG,CAAC,EAAK,OAAO,CAAA;CACjB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA6JtE"}
|
package/dist/commands/inject.js
CHANGED
|
@@ -67,14 +67,16 @@ export async function injectCommand(opts) {
|
|
|
67
67
|
spinner.stop();
|
|
68
68
|
if (decisions.length === 0) {
|
|
69
69
|
console.log(chalk.dim(` No decisions found for "${query ?? 'recent'}"\n`));
|
|
70
|
-
console.log(chalk.dim(
|
|
70
|
+
console.log(chalk.dim(query
|
|
71
|
+
? ' No semantic matches were returned. Try a broader query (for example: "build tooling" instead of "env precedence").\n'
|
|
72
|
+
: ' Run a Claude Code session first to capture decisions.\n'));
|
|
71
73
|
return;
|
|
72
74
|
}
|
|
73
75
|
// ── Format context string ──────────────────────────────────
|
|
74
76
|
const lines = [
|
|
75
77
|
`[RoBrain context — ${info.name}${query ? ` — "${query}"` : ' — recent decisions'}]`,
|
|
76
78
|
];
|
|
77
|
-
|
|
79
|
+
const formatDecisionLine = (d) => {
|
|
78
80
|
const date = new Date(d.created_at).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });
|
|
79
81
|
const conf = d.confidence >= 0.9 ? 'high' : d.confidence >= 0.6 ? 'medium' : 'low';
|
|
80
82
|
const vetoes = (d.rejected ?? []).map(r => `${r.option} (${r.reason})`).join(' over ');
|
|
@@ -83,7 +85,33 @@ export async function injectCommand(opts) {
|
|
|
83
85
|
const supersedes = d.supersedes_id
|
|
84
86
|
? ` [supersedes earlier decision]`
|
|
85
87
|
: '';
|
|
86
|
-
|
|
88
|
+
const similarityStr = typeof d.similarity === 'number'
|
|
89
|
+
? ` [sim ${(d.similarity * 100).toFixed(0)}%]`
|
|
90
|
+
: '';
|
|
91
|
+
return `• Chose ${d.decision}${vetoStr}${rationale} [${date}, ${conf} confidence${supersedes}]${similarityStr}`;
|
|
92
|
+
};
|
|
93
|
+
const hasSimilarityScores = query && decisions.some(d => typeof d.similarity === 'number');
|
|
94
|
+
if (hasSimilarityScores) {
|
|
95
|
+
const highConfidence = decisions.filter(d => (d.similarity ?? 0) >= 0.5);
|
|
96
|
+
const nearestMatches = decisions.filter(d => (d.similarity ?? 0) < 0.5);
|
|
97
|
+
if (highConfidence.length > 0) {
|
|
98
|
+
lines.push('');
|
|
99
|
+
lines.push('High-confidence matches:');
|
|
100
|
+
for (const d of highConfidence)
|
|
101
|
+
lines.push(formatDecisionLine(d));
|
|
102
|
+
}
|
|
103
|
+
if (nearestMatches.length > 0) {
|
|
104
|
+
lines.push('');
|
|
105
|
+
lines.push(highConfidence.length > 0
|
|
106
|
+
? 'Nearest matches (lower semantic confidence):'
|
|
107
|
+
: 'No high-confidence matches; nearest were:');
|
|
108
|
+
for (const d of nearestMatches)
|
|
109
|
+
lines.push(formatDecisionLine(d));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
for (const d of decisions)
|
|
114
|
+
lines.push(formatDecisionLine(d));
|
|
87
115
|
}
|
|
88
116
|
// Cloud upgrade note (for OSS users)
|
|
89
117
|
lines.push('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/commands/inject.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/commands/inject.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/install.js
CHANGED
|
@@ -212,7 +212,7 @@ export async function installCommand(opts) {
|
|
|
212
212
|
planningKey: provisioned.planningKey,
|
|
213
213
|
embeddingProvider: embeddingProvider ?? 'openai',
|
|
214
214
|
installedAt: new Date().toISOString(),
|
|
215
|
-
version: '0.
|
|
215
|
+
version: '0.2.0',
|
|
216
216
|
});
|
|
217
217
|
spinner.succeed('MCP servers configured');
|
|
218
218
|
// ── Done ───────────────────────────────────────────────────
|
|
@@ -300,7 +300,7 @@ async function installSelfHosted(opts) {
|
|
|
300
300
|
perceptionUrl,
|
|
301
301
|
embeddingProvider: provider,
|
|
302
302
|
installedAt: new Date().toISOString(),
|
|
303
|
-
version: '0.
|
|
303
|
+
version: '0.2.0',
|
|
304
304
|
selfHosted: true,
|
|
305
305
|
});
|
|
306
306
|
spinner.succeed('MCP servers configured for self-hosted mode');
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ import { reviewCommand } from './commands/review.js';
|
|
|
20
20
|
import { injectCommand } from './commands/inject.js';
|
|
21
21
|
import { explainCommand } from './commands/explain.js';
|
|
22
22
|
import { projectsListCommand, projectsMergeCommand } from './commands/projects.js';
|
|
23
|
-
const VERSION = '0.
|
|
23
|
+
const VERSION = '0.2.0';
|
|
24
24
|
program
|
|
25
25
|
.name('robrain')
|
|
26
26
|
.description('Institutional memory for AI coding agents — by Rory Plans')
|
package/dist/lib/editor.js
CHANGED
|
@@ -116,9 +116,9 @@ Call Sensing tools exactly as instructed to maintain session memory.
|
|
|
116
116
|
|
|
117
117
|
### Session start (mandatory, first thing in every new chat)
|
|
118
118
|
\`\`\`
|
|
119
|
-
sensing_start_session(project_id="${projectId}",
|
|
119
|
+
sensing_start_session(project_id="${projectId}", working_dir="<cwd>")
|
|
120
120
|
\`\`\`
|
|
121
|
-
|
|
121
|
+
Use the session_id from the tool response (or pass your own unique id per chat). Initialize sequence=1 before your first reply.
|
|
122
122
|
|
|
123
123
|
### After every response (mandatory)
|
|
124
124
|
\`\`\`
|
|
@@ -141,8 +141,8 @@ Call these tools as instructed to maintain causal memory of decisions.
|
|
|
141
141
|
|
|
142
142
|
### Session start (every session, first thing)
|
|
143
143
|
\`\`\`
|
|
144
|
-
sensing_start_session(project_id="${projectId}",
|
|
145
|
-
control_get_session_context(project_id="${projectId}", session_id="<same
|
|
144
|
+
sensing_start_session(project_id="${projectId}", working_dir="<cwd>")
|
|
145
|
+
control_get_session_context(project_id="${projectId}", session_id="<same session_id as sensing_start_session response>")
|
|
146
146
|
\`\`\`
|
|
147
147
|
Inject the always_on_summary returned by control_get_session_context into your context.
|
|
148
148
|
|