robrain 2.5.0 → 2.6.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/capture.test.js +4 -1
- package/dist/commands/capture.test.js.map +1 -1
- package/dist/commands/check.d.ts +5 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +15 -0
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/governance.d.ts +32 -0
- package/dist/commands/governance.d.ts.map +1 -0
- package/dist/commands/governance.js +181 -0
- package/dist/commands/governance.js.map +1 -0
- package/dist/commands/governance.test.d.ts +2 -0
- package/dist/commands/governance.test.d.ts.map +1 -0
- package/dist/commands/governance.test.js +42 -0
- package/dist/commands/governance.test.js.map +1 -0
- package/dist/commands/install.js +2 -2
- package/dist/commands/projects.d.ts +35 -0
- package/dist/commands/projects.d.ts.map +1 -1
- package/dist/commands/projects.js +166 -0
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +6 -4
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/search.d.ts +34 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +100 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/search.test.d.ts +2 -0
- package/dist/commands/search.test.d.ts.map +1 -0
- package/dist/commands/search.test.js +43 -0
- package/dist/commands/search.test.js.map +1 -0
- package/dist/index.js +80 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/vendor/codex-hooks/user-prompt-submit.mjs +14 -1
- package/vendor/sensing-mcp/dist/index.js +91 -19
- package/vendor/sensing-mcp/package.json +1 -1
- package/vendor/synthesis/dist/index.js +43 -9
- package/vendor/synthesis/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -26,12 +26,15 @@ import { exportMemoryCommand } from './commands/export-memory.js';
|
|
|
26
26
|
import { exportInterchangeCommand } from './commands/export-interchange.js';
|
|
27
27
|
import { outcomesScanCommand, outcomesRecordCommand } from './commands/outcomes.js';
|
|
28
28
|
import { explainCommand } from './commands/explain.js';
|
|
29
|
-
import { projectsListCommand, projectsMergeCommand } from './commands/projects.js';
|
|
29
|
+
import { projectsListCommand, projectsMergeCommand, projectsCreateCommand, projectsTagCommand, tagsMapCommand } from './commands/projects.js';
|
|
30
30
|
import { captureShowCommand, captureSetCommand, captureTestCommand } from './commands/capture.js';
|
|
31
|
+
import { searchCommand } from './commands/search.js';
|
|
32
|
+
import { rulesAddCommand, promoteCommand } from './commands/governance.js';
|
|
31
33
|
import { upCommand, downCommand, DEFAULT_IMAGE_REPO } from './commands/up.js';
|
|
32
34
|
import { mcpCommand } from './commands/mcp.js';
|
|
33
35
|
import { installHermesPlugin, resolveHermesHome } from './lib/hermes-plugin.js';
|
|
34
|
-
const VERSION = '2.
|
|
36
|
+
const VERSION = '2.6.0';
|
|
37
|
+
const collect = (value, previous) => [...previous, value];
|
|
35
38
|
program
|
|
36
39
|
.name('robrain')
|
|
37
40
|
.description('Institutional memory for AI coding agents — by Rory Plans')
|
|
@@ -208,6 +211,42 @@ program
|
|
|
208
211
|
.action(async (opts) => {
|
|
209
212
|
await initProjectCommand({ projectId: opts.projectId, skipClaudePlugin: opts.skipClaudePlugin, force: opts.force });
|
|
210
213
|
});
|
|
214
|
+
// ── search — semantic search over stored memory, for people ───
|
|
215
|
+
program
|
|
216
|
+
.command('search <query>')
|
|
217
|
+
.description('Search stored decisions and other memory; shows who decided each one and when')
|
|
218
|
+
.option('-l, --limit <n>', 'Max results (default: 10, max 100)', parseInt)
|
|
219
|
+
.option('--kind <name>', 'Only this kind of memory (e.g. run, preference)')
|
|
220
|
+
.option('--project-id <id>', 'Project to search (default: the one pinned in this directory)')
|
|
221
|
+
.option('--json', 'Print the raw rows as JSON')
|
|
222
|
+
.action(async (query, opts) => {
|
|
223
|
+
await searchCommand(query, opts);
|
|
224
|
+
});
|
|
225
|
+
// ── rules — write a rule by hand ──────────────────────────────
|
|
226
|
+
const rulesCmd = program
|
|
227
|
+
.command('rules')
|
|
228
|
+
.description('Rules written by hand: stored like captured decisions, with confidence 1.0 and your email as author');
|
|
229
|
+
rulesCmd
|
|
230
|
+
.command('add <rule>')
|
|
231
|
+
.description('Store a rule now, without waiting for a session to capture it')
|
|
232
|
+
.option('--because <text>', 'Why (one short sentence)')
|
|
233
|
+
.option('--rejected <option:reason>', 'An alternative that was ruled out, "option: reason" (repeatable)', collect, [])
|
|
234
|
+
.option('--kind <name>', 'Store as one of the kinds the project declared (default: decision)')
|
|
235
|
+
.option('--subject <text>', 'Subject for a kind with changing state; a newer entry on the same subject replaces this one')
|
|
236
|
+
.option('--scope <scope>', 'user | local | team | global (default: team)')
|
|
237
|
+
.option('--project-id <id>', 'Project to write into (default: the one pinned in this directory)')
|
|
238
|
+
.option('--email <addr>', 'Author email (default: git user.email of this directory)')
|
|
239
|
+
.action(async (rule, opts) => {
|
|
240
|
+
await rulesAddCommand(rule, opts);
|
|
241
|
+
});
|
|
242
|
+
// ── promote — push a decision to production agents (cloud) ────
|
|
243
|
+
program
|
|
244
|
+
.command('promote <decision-id>')
|
|
245
|
+
.description('RoBrain cloud: push a decision into the org governance project (every agent) or one agent project')
|
|
246
|
+
.requiredOption('--to <target>', 'production-agents (every production agent), tag:<tag> (every agent with that tag), or a project id')
|
|
247
|
+
.action(async (decisionId, opts) => {
|
|
248
|
+
await promoteCommand(decisionId, opts);
|
|
249
|
+
});
|
|
211
250
|
// ── projects — list / merge Perception project ids ────────────
|
|
212
251
|
const projectsCmd = program
|
|
213
252
|
.command('projects')
|
|
@@ -218,6 +257,45 @@ projectsCmd
|
|
|
218
257
|
.action(async () => {
|
|
219
258
|
await projectsListCommand();
|
|
220
259
|
});
|
|
260
|
+
projectsCmd
|
|
261
|
+
.command('create <id>')
|
|
262
|
+
.description('Create (or rename) a project by id, e.g. one shared by a team across several repos; pin it with ROBRAIN_PROJECT_ID or --project-id')
|
|
263
|
+
.option('--name <name>', 'Display name (default: the id)')
|
|
264
|
+
.option('--tag <tag>', 'Tag (repeatable or comma-separated); on RoBrain cloud a rule can be pushed to one tag of agents', collect, [])
|
|
265
|
+
.action(async (id, opts) => {
|
|
266
|
+
await projectsCreateCommand(id, opts);
|
|
267
|
+
});
|
|
268
|
+
projectsCmd
|
|
269
|
+
.command('tag <id> [tags...]')
|
|
270
|
+
.description('RoBrain cloud: show or set a project\'s tags (what kind of agent it is), so robrain promote --to tag:<tag> can reach it')
|
|
271
|
+
.option('--suppress <tag>', 'Remove a tag the tool mapping derived (repeatable)', collect, [])
|
|
272
|
+
.option('--unsuppress <tag>', 'Let a removed derived tag apply again (repeatable)', collect, [])
|
|
273
|
+
.option('--show', 'Only show the tags and the tools seen')
|
|
274
|
+
.action(async (id, tags, opts) => {
|
|
275
|
+
await projectsTagCommand(id, tags, opts);
|
|
276
|
+
});
|
|
277
|
+
// ── tags — the org's tool → tag mapping (cloud) ───────────────
|
|
278
|
+
const tagsCmd = program
|
|
279
|
+
.command('tags')
|
|
280
|
+
.description('RoBrain cloud: tags derived from the tools an agent uses, through the org\'s tool → tag mapping');
|
|
281
|
+
const tagsMapCmd = tagsCmd
|
|
282
|
+
.command('map')
|
|
283
|
+
.description('List the mapping; `add "<tool pattern>" <tag>` and `remove "<tool pattern>" <tag>` change it (admins)')
|
|
284
|
+
.action(async () => {
|
|
285
|
+
await tagsMapCommand('list');
|
|
286
|
+
});
|
|
287
|
+
tagsMapCmd
|
|
288
|
+
.command('add <pattern> <tag>')
|
|
289
|
+
.description('Map tools matching the pattern (e.g. "send_email*") to a tag; applies after three turns of use')
|
|
290
|
+
.action(async (pattern, tag) => {
|
|
291
|
+
await tagsMapCommand('add', pattern, tag);
|
|
292
|
+
});
|
|
293
|
+
tagsMapCmd
|
|
294
|
+
.command('remove <pattern> <tag>')
|
|
295
|
+
.description('Remove one mapping')
|
|
296
|
+
.action(async (pattern, tag) => {
|
|
297
|
+
await tagsMapCommand('remove', pattern, tag);
|
|
298
|
+
});
|
|
221
299
|
projectsCmd
|
|
222
300
|
.command('merge <from-id> <to-id>')
|
|
223
301
|
.description('Merge sessions and decisions from one project id into another, then delete the source project row')
|
|
@@ -225,7 +303,6 @@ projectsCmd
|
|
|
225
303
|
await projectsMergeCommand(fromId, toId);
|
|
226
304
|
});
|
|
227
305
|
// ── capture — what the classifier stores for this project ─────
|
|
228
|
-
const collect = (value, previous) => [...previous, value];
|
|
229
306
|
function addCaptureSettingFlags(cmd) {
|
|
230
307
|
return cmd
|
|
231
308
|
.option('--project-id <id>', 'Project to change (default: the one pinned in this directory)')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "robrain",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "RoBrain CLI for installation, setup, and memory workflows",
|
|
6
6
|
"author": "Rory Plans, Inc.",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"build": "tsc",
|
|
58
58
|
"dev": "tsc --watch",
|
|
59
59
|
"typecheck": "tsc --noEmit",
|
|
60
|
-
"test": "pnpm build && node --test dist/lib/editor.codex.test.js dist/lib/editor.stale-block.test.js dist/lib/release-guard.test.js dist/lib/auth.test.js dist/lib/perception-errors.test.js dist/lib/mcp-bundle.test.js dist/lib/control-bundle.test.js dist/lib/claude-plugin.test.js dist/lib/hermes-plugin.test.js dist/lib/codex-hooks.test.js dist/commands/outcomes.test.js dist/commands/export-interchange.test.js dist/commands/up.test.js dist/commands/mcp.test.js dist/commands/install.test.js dist/commands/synth.test.js dist/commands/status.test.js dist/lib/synthesis-bundle.test.js dist/lib/spinner.test.js dist/lib/config.test.js dist/commands/inject.test.js dist/commands/capture.test.js",
|
|
60
|
+
"test": "pnpm build && node --test dist/lib/editor.codex.test.js dist/lib/editor.stale-block.test.js dist/lib/release-guard.test.js dist/lib/auth.test.js dist/lib/perception-errors.test.js dist/lib/mcp-bundle.test.js dist/lib/control-bundle.test.js dist/lib/claude-plugin.test.js dist/lib/hermes-plugin.test.js dist/lib/codex-hooks.test.js dist/commands/outcomes.test.js dist/commands/export-interchange.test.js dist/commands/up.test.js dist/commands/mcp.test.js dist/commands/install.test.js dist/commands/synth.test.js dist/commands/status.test.js dist/lib/synthesis-bundle.test.js dist/lib/spinner.test.js dist/lib/config.test.js dist/commands/inject.test.js dist/commands/capture.test.js dist/commands/search.test.js dist/commands/governance.test.js",
|
|
61
61
|
"pack:verify": "node scripts/verify-publish-tarball.mjs",
|
|
62
62
|
"postinstall": "node scripts/chmod-bin.cjs"
|
|
63
63
|
}
|
|
@@ -74,13 +74,26 @@ for (const d of [...exact, ...semantic]) {
|
|
|
74
74
|
|
|
75
75
|
if (vetoes.length === 0) exitSilently()
|
|
76
76
|
|
|
77
|
+
// Who decided and when (Perception ≥ 2.6 sends author_email / decided_at
|
|
78
|
+
// on veto-scan matches and author_email / created_at on decisions).
|
|
79
|
+
function decidedBy(d) {
|
|
80
|
+
const iso = d.decided_at ?? d.created_at
|
|
81
|
+
const parsed = iso ? new Date(iso) : null
|
|
82
|
+
const day = parsed && !Number.isNaN(parsed.getTime()) ? parsed.toISOString().slice(0, 10) : ''
|
|
83
|
+
const who = typeof d.author_email === 'string' && d.author_email ? d.author_email : ''
|
|
84
|
+
if (who && day) return ` (decided by ${who} on ${day})`
|
|
85
|
+
if (who) return ` (decided by ${who})`
|
|
86
|
+
if (day) return ` (decided ${day})`
|
|
87
|
+
return ''
|
|
88
|
+
}
|
|
89
|
+
|
|
77
90
|
const lines = vetoes.map(d => {
|
|
78
91
|
const rej = d.rejected
|
|
79
92
|
.slice(0, 2)
|
|
80
93
|
.map(r => `**${r.option}** (${r.reason})`)
|
|
81
94
|
.join('; ')
|
|
82
95
|
const tag = d.exact ? ' *(exact match on rejected option)*' : ''
|
|
83
|
-
return `- ${d.decision}${tag}\n Rejected: ${rej}`
|
|
96
|
+
return `- ${d.decision}${tag}${decidedBy(d)}\n Rejected: ${rej}`
|
|
84
97
|
})
|
|
85
98
|
|
|
86
99
|
recordWarnedIds(sessionId, vetoes.map(d => d.id))
|
|
@@ -6589,22 +6589,26 @@ var require_embeddings = __commonJS({
|
|
|
6589
6589
|
}
|
|
6590
6590
|
};
|
|
6591
6591
|
exports.EmbeddingProviderError = EmbeddingProviderError;
|
|
6592
|
-
async function embed2(text, config3, signal) {
|
|
6593
|
-
let
|
|
6592
|
+
async function embed2(text, config3, signal, onUsage) {
|
|
6593
|
+
let out;
|
|
6594
6594
|
switch (config3.provider) {
|
|
6595
6595
|
case "openai":
|
|
6596
|
-
|
|
6596
|
+
out = await embedOpenAI(text, config3, signal);
|
|
6597
6597
|
break;
|
|
6598
6598
|
case "voyage":
|
|
6599
|
-
|
|
6599
|
+
out = await embedVoyage(text, config3, signal);
|
|
6600
6600
|
break;
|
|
6601
6601
|
case "cohere":
|
|
6602
|
-
|
|
6602
|
+
out = await embedCohere(text, config3, signal);
|
|
6603
6603
|
break;
|
|
6604
6604
|
default:
|
|
6605
6605
|
throw new EmbeddingProviderError(config3.provider, `Unknown embedding provider: ${config3.provider}`);
|
|
6606
6606
|
}
|
|
6607
|
-
|
|
6607
|
+
onUsage?.({ inputTokens: out.inputTokens });
|
|
6608
|
+
return padToLength(out.vector, exports.EMBEDDING_TARGET_DIMS);
|
|
6609
|
+
}
|
|
6610
|
+
function tokenCount(x) {
|
|
6611
|
+
return typeof x === "number" && Number.isFinite(x) && x >= 0 ? Math.round(x) : null;
|
|
6608
6612
|
}
|
|
6609
6613
|
async function embedOpenAI(text, config3, signal) {
|
|
6610
6614
|
const baseUrl = config3.openaiBaseUrl.replace(/\/+$/, "");
|
|
@@ -6624,7 +6628,10 @@ var require_embeddings = __commonJS({
|
|
|
6624
6628
|
})
|
|
6625
6629
|
}, "openai", config3, signal);
|
|
6626
6630
|
const data = await res.json();
|
|
6627
|
-
return
|
|
6631
|
+
return {
|
|
6632
|
+
vector: ensureEmbedding("openai", data.data?.[0]?.embedding),
|
|
6633
|
+
inputTokens: tokenCount(data.usage?.prompt_tokens) ?? tokenCount(data.usage?.total_tokens)
|
|
6634
|
+
};
|
|
6628
6635
|
}
|
|
6629
6636
|
async function embedVoyage(text, config3, signal) {
|
|
6630
6637
|
if (!config3.voyageApiKey) {
|
|
@@ -6642,7 +6649,10 @@ var require_embeddings = __commonJS({
|
|
|
6642
6649
|
})
|
|
6643
6650
|
}, "voyage", config3, signal);
|
|
6644
6651
|
const data = await res.json();
|
|
6645
|
-
return
|
|
6652
|
+
return {
|
|
6653
|
+
vector: ensureEmbedding("voyage", data.data?.[0]?.embedding),
|
|
6654
|
+
inputTokens: tokenCount(data.usage?.total_tokens)
|
|
6655
|
+
};
|
|
6646
6656
|
}
|
|
6647
6657
|
async function embedCohere(text, config3, signal) {
|
|
6648
6658
|
if (!config3.cohereApiKey) {
|
|
@@ -6662,7 +6672,10 @@ var require_embeddings = __commonJS({
|
|
|
6662
6672
|
})
|
|
6663
6673
|
}, "cohere", config3, signal);
|
|
6664
6674
|
const data = await res.json();
|
|
6665
|
-
return
|
|
6675
|
+
return {
|
|
6676
|
+
vector: ensureEmbedding("cohere", data.embeddings?.float?.[0]),
|
|
6677
|
+
inputTokens: tokenCount(data.meta?.billed_units?.input_tokens)
|
|
6678
|
+
};
|
|
6666
6679
|
}
|
|
6667
6680
|
async function fetchEmbedding(url, init, provider, config3, callerSignal) {
|
|
6668
6681
|
let lastDetail = "";
|
|
@@ -7558,6 +7571,26 @@ var require_capture_gate = __commonJS({
|
|
|
7558
7571
|
}
|
|
7559
7572
|
});
|
|
7560
7573
|
|
|
7574
|
+
// ../shared/dist/author-email.js
|
|
7575
|
+
var require_author_email = __commonJS({
|
|
7576
|
+
"../shared/dist/author-email.js"(exports) {
|
|
7577
|
+
"use strict";
|
|
7578
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7579
|
+
exports.AUTHOR_EMAIL_MAX_CHARS = void 0;
|
|
7580
|
+
exports.normalizeAuthorEmail = normalizeAuthorEmail2;
|
|
7581
|
+
exports.AUTHOR_EMAIL_MAX_CHARS = 254;
|
|
7582
|
+
var AUTHOR_EMAIL_RE = /^[a-z0-9._%+-]{1,64}@[a-z0-9-]+(\.[a-z0-9-]+)+$/;
|
|
7583
|
+
function normalizeAuthorEmail2(raw) {
|
|
7584
|
+
if (typeof raw !== "string")
|
|
7585
|
+
return null;
|
|
7586
|
+
const email2 = raw.trim().toLowerCase();
|
|
7587
|
+
if (!email2 || email2.length > exports.AUTHOR_EMAIL_MAX_CHARS)
|
|
7588
|
+
return null;
|
|
7589
|
+
return AUTHOR_EMAIL_RE.test(email2) ? email2 : null;
|
|
7590
|
+
}
|
|
7591
|
+
}
|
|
7592
|
+
});
|
|
7593
|
+
|
|
7561
7594
|
// ../shared/dist/db.js
|
|
7562
7595
|
var require_db = __commonJS({
|
|
7563
7596
|
"../shared/dist/db.js"(exports) {
|
|
@@ -7603,6 +7636,7 @@ var require_dist = __commonJS({
|
|
|
7603
7636
|
__exportStar(require_extract_decision(), exports);
|
|
7604
7637
|
__exportStar(require_capture_settings(), exports);
|
|
7605
7638
|
__exportStar(require_capture_gate(), exports);
|
|
7639
|
+
__exportStar(require_author_email(), exports);
|
|
7606
7640
|
__exportStar(require_db(), exports);
|
|
7607
7641
|
}
|
|
7608
7642
|
});
|
|
@@ -23341,7 +23375,42 @@ var init_classifiers = __esm({
|
|
|
23341
23375
|
}
|
|
23342
23376
|
});
|
|
23343
23377
|
|
|
23378
|
+
// src/author.ts
|
|
23379
|
+
import { execFile } from "node:child_process";
|
|
23380
|
+
function normalizeEmail(raw) {
|
|
23381
|
+
return (0, import_shared6.normalizeAuthorEmail)(raw);
|
|
23382
|
+
}
|
|
23383
|
+
function gitUserEmail(cwd) {
|
|
23384
|
+
return new Promise((resolve) => {
|
|
23385
|
+
try {
|
|
23386
|
+
execFile("git", ["config", "--get", "user.email"], { cwd, timeout: GIT_TIMEOUT_MS }, (err, stdout) => {
|
|
23387
|
+
resolve(err ? null : normalizeEmail(String(stdout)));
|
|
23388
|
+
});
|
|
23389
|
+
} catch {
|
|
23390
|
+
resolve(null);
|
|
23391
|
+
}
|
|
23392
|
+
});
|
|
23393
|
+
}
|
|
23394
|
+
function resolveAuthorEmail(env = process.env, cwd = process.cwd()) {
|
|
23395
|
+
if (!cached2) {
|
|
23396
|
+
cached2 = (async () => normalizeEmail(env.ROBRAIN_AUTHOR_EMAIL) ?? await gitUserEmail(cwd))();
|
|
23397
|
+
}
|
|
23398
|
+
return cached2;
|
|
23399
|
+
}
|
|
23400
|
+
var import_shared6, GIT_TIMEOUT_MS, cached2;
|
|
23401
|
+
var init_author = __esm({
|
|
23402
|
+
"src/author.ts"() {
|
|
23403
|
+
"use strict";
|
|
23404
|
+
import_shared6 = __toESM(require_dist(), 1);
|
|
23405
|
+
GIT_TIMEOUT_MS = 2e3;
|
|
23406
|
+
}
|
|
23407
|
+
});
|
|
23408
|
+
|
|
23344
23409
|
// src/router.ts
|
|
23410
|
+
async function withAuthor(signal) {
|
|
23411
|
+
const authorEmail = await resolveAuthorEmail();
|
|
23412
|
+
return authorEmail ? { ...signal, author_email: authorEmail } : signal;
|
|
23413
|
+
}
|
|
23345
23414
|
function parsePerceptionUserMessage(status, rawText) {
|
|
23346
23415
|
try {
|
|
23347
23416
|
const j = JSON.parse(rawText);
|
|
@@ -23372,7 +23441,7 @@ async function routeDecisionSignal(signal, projectId) {
|
|
|
23372
23441
|
"Authorization": `Bearer ${config2.perceptionApiKey}`,
|
|
23373
23442
|
"X-Project-Id": projectId
|
|
23374
23443
|
},
|
|
23375
|
-
body: JSON.stringify({ signal })
|
|
23444
|
+
body: JSON.stringify({ signal: await withAuthor(signal) })
|
|
23376
23445
|
});
|
|
23377
23446
|
const raw = await res.text();
|
|
23378
23447
|
if (!res.ok) {
|
|
@@ -23447,6 +23516,7 @@ async function routeFlushTurns(turns, projectId) {
|
|
|
23447
23516
|
errors.push("PERCEPTION_API_URL is not set \u2014 flush could not reach Perception.");
|
|
23448
23517
|
return errors;
|
|
23449
23518
|
}
|
|
23519
|
+
const authorEmail = await resolveAuthorEmail();
|
|
23450
23520
|
const signals = turns.map((turn) => ({
|
|
23451
23521
|
signal: {
|
|
23452
23522
|
turn,
|
|
@@ -23454,7 +23524,8 @@ async function routeFlushTurns(turns, projectId) {
|
|
|
23454
23524
|
confidence: 0.5,
|
|
23455
23525
|
files_affected: turn.files_touched,
|
|
23456
23526
|
scope: "team",
|
|
23457
|
-
needs_classification: true
|
|
23527
|
+
needs_classification: true,
|
|
23528
|
+
...authorEmail ? { author_email: authorEmail } : {}
|
|
23458
23529
|
}
|
|
23459
23530
|
}));
|
|
23460
23531
|
await Promise.allSettled(
|
|
@@ -23484,6 +23555,7 @@ var init_router = __esm({
|
|
|
23484
23555
|
"src/router.ts"() {
|
|
23485
23556
|
"use strict";
|
|
23486
23557
|
init_config();
|
|
23558
|
+
init_author();
|
|
23487
23559
|
}
|
|
23488
23560
|
});
|
|
23489
23561
|
|
|
@@ -23625,7 +23697,7 @@ function resolveSessionId(raw) {
|
|
|
23625
23697
|
function buildServer() {
|
|
23626
23698
|
const server = new McpServer({
|
|
23627
23699
|
name: "sensing-mcp",
|
|
23628
|
-
version: "2.
|
|
23700
|
+
version: "2.6.0"
|
|
23629
23701
|
});
|
|
23630
23702
|
server.tool(
|
|
23631
23703
|
"sensing_start_session",
|
|
@@ -23693,9 +23765,9 @@ function buildServer() {
|
|
|
23693
23765
|
console.error(`[Sensing] Unknown session adopted: ${session_id} (${session.project_id})`);
|
|
23694
23766
|
}
|
|
23695
23767
|
}
|
|
23696
|
-
const redactedUser = (0,
|
|
23697
|
-
const redactedReply = (0,
|
|
23698
|
-
const secretsRedacted = (0,
|
|
23768
|
+
const redactedUser = (0, import_shared7.redactSecrets)(user_message);
|
|
23769
|
+
const redactedReply = (0, import_shared7.redactSecrets)(claude_reply);
|
|
23770
|
+
const secretsRedacted = (0, import_shared7.totalRedactions)(redactedUser.redactions) + (0, import_shared7.totalRedactions)(redactedReply.redactions);
|
|
23699
23771
|
if (secretsRedacted > 0) {
|
|
23700
23772
|
console.error(`[Sensing] Redacted ${secretsRedacted} secret(s) from turn ${sequence} before buffering`);
|
|
23701
23773
|
}
|
|
@@ -23912,13 +23984,13 @@ async function fetchAlwaysOnSummary(projectId) {
|
|
|
23912
23984
|
return { text: `Project: ${projectId}` };
|
|
23913
23985
|
}
|
|
23914
23986
|
}
|
|
23915
|
-
var
|
|
23987
|
+
var import_shared7, sessionRegistry, lastDecisionShipFailure, pendingConflictNotices;
|
|
23916
23988
|
var init_server3 = __esm({
|
|
23917
23989
|
"src/server.ts"() {
|
|
23918
23990
|
"use strict";
|
|
23919
23991
|
init_mcp();
|
|
23920
23992
|
init_zod();
|
|
23921
|
-
|
|
23993
|
+
import_shared7 = __toESM(require_dist(), 1);
|
|
23922
23994
|
init_buffer();
|
|
23923
23995
|
init_classifiers();
|
|
23924
23996
|
init_router();
|
|
@@ -24026,8 +24098,8 @@ var StdioServerTransport = class {
|
|
|
24026
24098
|
};
|
|
24027
24099
|
|
|
24028
24100
|
// src/index.ts
|
|
24029
|
-
var
|
|
24030
|
-
(0,
|
|
24101
|
+
var import_shared8 = __toESM(require_dist(), 1);
|
|
24102
|
+
(0, import_shared8.loadEnv)();
|
|
24031
24103
|
process.on("unhandledRejection", (reason) => {
|
|
24032
24104
|
console.error("[Sensing] Unhandled rejection (process kept alive):", reason);
|
|
24033
24105
|
});
|
|
@@ -11853,22 +11853,26 @@ var require_embeddings = __commonJS({
|
|
|
11853
11853
|
}
|
|
11854
11854
|
};
|
|
11855
11855
|
exports.EmbeddingProviderError = EmbeddingProviderError;
|
|
11856
|
-
async function embed(text, config2, signal) {
|
|
11857
|
-
let
|
|
11856
|
+
async function embed(text, config2, signal, onUsage) {
|
|
11857
|
+
let out;
|
|
11858
11858
|
switch (config2.provider) {
|
|
11859
11859
|
case "openai":
|
|
11860
|
-
|
|
11860
|
+
out = await embedOpenAI(text, config2, signal);
|
|
11861
11861
|
break;
|
|
11862
11862
|
case "voyage":
|
|
11863
|
-
|
|
11863
|
+
out = await embedVoyage(text, config2, signal);
|
|
11864
11864
|
break;
|
|
11865
11865
|
case "cohere":
|
|
11866
|
-
|
|
11866
|
+
out = await embedCohere(text, config2, signal);
|
|
11867
11867
|
break;
|
|
11868
11868
|
default:
|
|
11869
11869
|
throw new EmbeddingProviderError(config2.provider, `Unknown embedding provider: ${config2.provider}`);
|
|
11870
11870
|
}
|
|
11871
|
-
|
|
11871
|
+
onUsage?.({ inputTokens: out.inputTokens });
|
|
11872
|
+
return padToLength(out.vector, exports.EMBEDDING_TARGET_DIMS);
|
|
11873
|
+
}
|
|
11874
|
+
function tokenCount(x2) {
|
|
11875
|
+
return typeof x2 === "number" && Number.isFinite(x2) && x2 >= 0 ? Math.round(x2) : null;
|
|
11872
11876
|
}
|
|
11873
11877
|
async function embedOpenAI(text, config2, signal) {
|
|
11874
11878
|
const baseUrl = config2.openaiBaseUrl.replace(/\/+$/, "");
|
|
@@ -11888,7 +11892,10 @@ var require_embeddings = __commonJS({
|
|
|
11888
11892
|
})
|
|
11889
11893
|
}, "openai", config2, signal);
|
|
11890
11894
|
const data = await res.json();
|
|
11891
|
-
return
|
|
11895
|
+
return {
|
|
11896
|
+
vector: ensureEmbedding("openai", data.data?.[0]?.embedding),
|
|
11897
|
+
inputTokens: tokenCount(data.usage?.prompt_tokens) ?? tokenCount(data.usage?.total_tokens)
|
|
11898
|
+
};
|
|
11892
11899
|
}
|
|
11893
11900
|
async function embedVoyage(text, config2, signal) {
|
|
11894
11901
|
if (!config2.voyageApiKey) {
|
|
@@ -11906,7 +11913,10 @@ var require_embeddings = __commonJS({
|
|
|
11906
11913
|
})
|
|
11907
11914
|
}, "voyage", config2, signal);
|
|
11908
11915
|
const data = await res.json();
|
|
11909
|
-
return
|
|
11916
|
+
return {
|
|
11917
|
+
vector: ensureEmbedding("voyage", data.data?.[0]?.embedding),
|
|
11918
|
+
inputTokens: tokenCount(data.usage?.total_tokens)
|
|
11919
|
+
};
|
|
11910
11920
|
}
|
|
11911
11921
|
async function embedCohere(text, config2, signal) {
|
|
11912
11922
|
if (!config2.cohereApiKey) {
|
|
@@ -11926,7 +11936,10 @@ var require_embeddings = __commonJS({
|
|
|
11926
11936
|
})
|
|
11927
11937
|
}, "cohere", config2, signal);
|
|
11928
11938
|
const data = await res.json();
|
|
11929
|
-
return
|
|
11939
|
+
return {
|
|
11940
|
+
vector: ensureEmbedding("cohere", data.embeddings?.float?.[0]),
|
|
11941
|
+
inputTokens: tokenCount(data.meta?.billed_units?.input_tokens)
|
|
11942
|
+
};
|
|
11930
11943
|
}
|
|
11931
11944
|
async function fetchEmbedding(url, init, provider, config2, callerSignal) {
|
|
11932
11945
|
let lastDetail = "";
|
|
@@ -12822,6 +12835,26 @@ var require_capture_gate = __commonJS({
|
|
|
12822
12835
|
}
|
|
12823
12836
|
});
|
|
12824
12837
|
|
|
12838
|
+
// ../shared/dist/author-email.js
|
|
12839
|
+
var require_author_email = __commonJS({
|
|
12840
|
+
"../shared/dist/author-email.js"(exports) {
|
|
12841
|
+
"use strict";
|
|
12842
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12843
|
+
exports.AUTHOR_EMAIL_MAX_CHARS = void 0;
|
|
12844
|
+
exports.normalizeAuthorEmail = normalizeAuthorEmail;
|
|
12845
|
+
exports.AUTHOR_EMAIL_MAX_CHARS = 254;
|
|
12846
|
+
var AUTHOR_EMAIL_RE = /^[a-z0-9._%+-]{1,64}@[a-z0-9-]+(\.[a-z0-9-]+)+$/;
|
|
12847
|
+
function normalizeAuthorEmail(raw) {
|
|
12848
|
+
if (typeof raw !== "string")
|
|
12849
|
+
return null;
|
|
12850
|
+
const email = raw.trim().toLowerCase();
|
|
12851
|
+
if (!email || email.length > exports.AUTHOR_EMAIL_MAX_CHARS)
|
|
12852
|
+
return null;
|
|
12853
|
+
return AUTHOR_EMAIL_RE.test(email) ? email : null;
|
|
12854
|
+
}
|
|
12855
|
+
}
|
|
12856
|
+
});
|
|
12857
|
+
|
|
12825
12858
|
// ../shared/dist/db.js
|
|
12826
12859
|
var require_db = __commonJS({
|
|
12827
12860
|
"../shared/dist/db.js"(exports) {
|
|
@@ -12867,6 +12900,7 @@ var require_dist2 = __commonJS({
|
|
|
12867
12900
|
__exportStar(require_extract_decision(), exports);
|
|
12868
12901
|
__exportStar(require_capture_settings(), exports);
|
|
12869
12902
|
__exportStar(require_capture_gate(), exports);
|
|
12903
|
+
__exportStar(require_author_email(), exports);
|
|
12870
12904
|
__exportStar(require_db(), exports);
|
|
12871
12905
|
}
|
|
12872
12906
|
});
|