robrain 2.4.0 → 2.4.3
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/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +50 -23
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/explain.js +1 -1
- package/dist/commands/export-interchange.js +1 -1
- package/dist/commands/export-memory.d.ts.map +1 -1
- package/dist/commands/export-memory.js +5 -2
- package/dist/commands/export-memory.js.map +1 -1
- package/dist/commands/inject.js +1 -1
- package/dist/commands/install.d.ts +11 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +68 -58
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/install.test.d.ts +2 -0
- package/dist/commands/install.test.d.ts.map +1 -0
- package/dist/commands/install.test.js +107 -0
- package/dist/commands/install.test.js.map +1 -0
- package/dist/commands/mcp.d.ts +1 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +3 -0
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/mcp.test.js +8 -0
- package/dist/commands/mcp.test.js.map +1 -1
- package/dist/commands/outcomes.js +2 -2
- package/dist/commands/projects.d.ts.map +1 -1
- package/dist/commands/projects.js +11 -5
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +51 -9
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +3 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/up.d.ts +3 -2
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +4 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/up.test.js +12 -0
- package/dist/commands/up.test.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/lib/config.d.ts +8 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +22 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/control-bundle.d.ts +33 -0
- package/dist/lib/control-bundle.d.ts.map +1 -0
- package/dist/lib/control-bundle.js +91 -0
- package/dist/lib/control-bundle.js.map +1 -0
- package/dist/lib/control-bundle.test.d.ts +2 -0
- package/dist/lib/control-bundle.test.d.ts.map +1 -0
- package/dist/lib/control-bundle.test.js +127 -0
- package/dist/lib/control-bundle.test.js.map +1 -0
- package/dist/lib/editor.codex.test.js +35 -0
- package/dist/lib/editor.codex.test.js.map +1 -1
- package/dist/lib/editor.d.ts +14 -0
- package/dist/lib/editor.d.ts.map +1 -1
- package/dist/lib/editor.js +30 -4
- package/dist/lib/editor.js.map +1 -1
- package/package.json +2 -2
- package/vendor/codex-hooks/lib.mjs +19 -2
- package/vendor/sensing-mcp/dist/index.js +255 -9
- package/vendor/sensing-mcp/package.json +1 -1
package/dist/lib/editor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/lib/editor.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;AAE/E,eAAO,MAAM,mBAAmB,wDAAyD,CAAA;AACzF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AASpE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAM,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAO,MAAM,CAAA;CACnB;AAED,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAQzE;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAMjE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,EAAE,CAgBpF;AAID,wBAAgB,aAAa,IAAI,cAAc,EAAE,CAkChD;AAoBD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAA;AAEhD,2FAA2F;AAC3F,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,WAAW,CAE3F;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAG,MAAM,CAAA;IACvB,cAAc,EAAG,MAAM,CAAA;IACvB,YAAY,EAAK,MAAM,CAAA;IACvB,aAAa,EAAI,MAAM,CAAA;IACvB,aAAa,EAAI,MAAM,CAAA;IACvB,WAAW,EAAM,MAAM,CAAA;IACvB,WAAW,EAAM,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAK,MAAM,CAAA;IACvB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8GAA8G;IAC9G,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mHAAmH;IACnH,aAAa,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/lib/editor.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/editor.js
CHANGED
|
@@ -107,8 +107,29 @@ function getVSCodeSettingsPath() {
|
|
|
107
107
|
export function resolveLlmProviderFromEnv(env = process.env) {
|
|
108
108
|
return env.LLM_PROVIDER?.trim().toLowerCase() === 'openai' ? 'openai' : 'anthropic';
|
|
109
109
|
}
|
|
110
|
+
// Mirrors @robrain/shared llm.ts — the CLI deliberately has no dependency on
|
|
111
|
+
// shared so a bare `npx robrain install` needs no workspace build.
|
|
112
|
+
export const DEFAULT_OPENAI_BASE_URL = 'https://api.openai.com/v1';
|
|
113
|
+
/** Reads OPENAI_BASE_URL, normalized the same way as shared's resolveOpenAiBaseUrl. */
|
|
114
|
+
export function resolveOpenAiBaseUrlFromEnv(env = process.env) {
|
|
115
|
+
const raw = env.OPENAI_BASE_URL?.trim();
|
|
116
|
+
if (!raw)
|
|
117
|
+
return DEFAULT_OPENAI_BASE_URL;
|
|
118
|
+
return raw.replace(/\/+$/, '');
|
|
119
|
+
}
|
|
120
|
+
/** True when OPENAI_BASE_URL points at a local OpenAI-compatible server (Ollama / LM Studio / vLLM) — OPENAI_API_KEY is optional then. */
|
|
121
|
+
export function usingLocalOpenAi(env = process.env) {
|
|
122
|
+
return resolveOpenAiBaseUrlFromEnv(env) !== DEFAULT_OPENAI_BASE_URL;
|
|
123
|
+
}
|
|
110
124
|
/** Env vars for robrain-sensing — shared by JSON MCP configs and Codex TOML. */
|
|
111
125
|
export function buildSensingMcpEnv(opts) {
|
|
126
|
+
if (opts.thin) {
|
|
127
|
+
return {
|
|
128
|
+
ROBRAIN_MODE: 'cloud',
|
|
129
|
+
PERCEPTION_API_URL: opts.perceptionUrl,
|
|
130
|
+
PERCEPTION_API_KEY: opts.perceptionKey,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
112
133
|
const env = {
|
|
113
134
|
ANTHROPIC_API_KEY: opts.anthropicKey,
|
|
114
135
|
EMBEDDING_PROVIDER: opts.embeddingProvider,
|
|
@@ -125,10 +146,15 @@ export function buildSensingMcpEnv(opts) {
|
|
|
125
146
|
env.COHERE_API_KEY = opts.embeddingKey;
|
|
126
147
|
const needsOpenAi = opts.embeddingProvider === 'openai' || llmProvider === 'openai';
|
|
127
148
|
if (needsOpenAi) {
|
|
128
|
-
|
|
129
|
-
opts.
|
|
130
|
-
|
|
131
|
-
|
|
149
|
+
const openaiKey = opts.embeddingProvider === 'openai'
|
|
150
|
+
? opts.embeddingKey
|
|
151
|
+
: (opts.openaiKey?.trim() ?? '');
|
|
152
|
+
if (opts.openaiBaseUrl)
|
|
153
|
+
env.OPENAI_BASE_URL = opts.openaiBaseUrl;
|
|
154
|
+
// Keyless is only valid against a local base URL — without one, keep
|
|
155
|
+
// writing the (possibly empty) key so a misconfigured install stays visible.
|
|
156
|
+
if (openaiKey || !opts.openaiBaseUrl)
|
|
157
|
+
env.OPENAI_API_KEY = openaiKey;
|
|
132
158
|
}
|
|
133
159
|
return env;
|
|
134
160
|
}
|
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "robrain",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.3",
|
|
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/release-guard.test.js dist/lib/mcp-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",
|
|
60
|
+
"test": "pnpm build && node --test dist/lib/editor.codex.test.js dist/lib/release-guard.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",
|
|
61
61
|
"pack:verify": "node scripts/verify-publish-tarball.mjs",
|
|
62
62
|
"postinstall": "node scripts/chmod-bin.cjs"
|
|
63
63
|
}
|
|
@@ -32,9 +32,26 @@ export function parseHookInput(raw) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
/**
|
|
36
|
+
* localhost → 127.0.0.1: Node 17+ resolves localhost IPv6-first (::1) but the
|
|
37
|
+
* Docker stack only binds 127.0.0.1; old configs may still carry localhost.
|
|
38
|
+
*/
|
|
39
|
+
function normalizeLoopbackUrl(url) {
|
|
40
|
+
try {
|
|
41
|
+
const u = new URL(url)
|
|
42
|
+
if (u.hostname === 'localhost') {
|
|
43
|
+
u.hostname = '127.0.0.1'
|
|
44
|
+
return u.toString().replace(/\/$/, '')
|
|
45
|
+
}
|
|
46
|
+
} catch {
|
|
47
|
+
// not a parseable URL — leave as-is
|
|
48
|
+
}
|
|
49
|
+
return url
|
|
50
|
+
}
|
|
51
|
+
|
|
35
52
|
/**
|
|
36
53
|
* Perception connection: env wins, then ~/.robrain/config.json (written by
|
|
37
|
-
* `robrain up` / `robrain install`), then
|
|
54
|
+
* `robrain up` / `robrain install`), then loopback default.
|
|
38
55
|
*/
|
|
39
56
|
export function loadPerception() {
|
|
40
57
|
let url = process.env.PERCEPTION_URL?.trim() || ''
|
|
@@ -48,7 +65,7 @@ export function loadPerception() {
|
|
|
48
65
|
// no config yet — fall through to defaults
|
|
49
66
|
}
|
|
50
67
|
}
|
|
51
|
-
return { url: url || 'http://
|
|
68
|
+
return { url: normalizeLoopbackUrl(url || 'http://127.0.0.1:3001'), key }
|
|
52
69
|
}
|
|
53
70
|
|
|
54
71
|
/**
|
|
@@ -6328,6 +6328,7 @@ var require_load_env = __commonJS({
|
|
|
6328
6328
|
"use strict";
|
|
6329
6329
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6330
6330
|
exports.loadCliEnv = void 0;
|
|
6331
|
+
exports.normalizeLoopbackUrl = normalizeLoopbackUrl2;
|
|
6331
6332
|
exports.loadEnv = loadEnv2;
|
|
6332
6333
|
var node_fs_1 = __require("node:fs");
|
|
6333
6334
|
var node_path_1 = __require("node:path");
|
|
@@ -6349,6 +6350,17 @@ var require_load_env = __commonJS({
|
|
|
6349
6350
|
}
|
|
6350
6351
|
return out;
|
|
6351
6352
|
}
|
|
6353
|
+
function normalizeLoopbackUrl2(url) {
|
|
6354
|
+
try {
|
|
6355
|
+
const u = new URL(url);
|
|
6356
|
+
if (u.hostname === "localhost") {
|
|
6357
|
+
u.hostname = "127.0.0.1";
|
|
6358
|
+
return u.toString().replace(/\/$/, "");
|
|
6359
|
+
}
|
|
6360
|
+
} catch {
|
|
6361
|
+
}
|
|
6362
|
+
return url;
|
|
6363
|
+
}
|
|
6352
6364
|
function findRepoRootUpward(start) {
|
|
6353
6365
|
let dir = start;
|
|
6354
6366
|
while (true) {
|
|
@@ -6413,6 +6425,7 @@ var require_llm = __commonJS({
|
|
|
6413
6425
|
exports.resolveOpenAiBaseUrl = resolveOpenAiBaseUrl2;
|
|
6414
6426
|
exports.openaiChat = openaiChat;
|
|
6415
6427
|
exports.anthropicChat = anthropicChat;
|
|
6428
|
+
var load_env_js_1 = require_load_env();
|
|
6416
6429
|
exports.DEFAULT_ANTHROPIC_LLM_MODEL = "claude-haiku-4-5-20251001";
|
|
6417
6430
|
exports.DEFAULT_OPENAI_LLM_MODEL = "gpt-4o";
|
|
6418
6431
|
function resolveLlmProvider2(env = process.env) {
|
|
@@ -6423,7 +6436,7 @@ var require_llm = __commonJS({
|
|
|
6423
6436
|
const raw = env.OPENAI_BASE_URL?.trim();
|
|
6424
6437
|
if (!raw)
|
|
6425
6438
|
return exports.DEFAULT_OPENAI_BASE_URL;
|
|
6426
|
-
return raw.replace(/\/+$/, "");
|
|
6439
|
+
return (0, load_env_js_1.normalizeLoopbackUrl)(raw.replace(/\/+$/, ""));
|
|
6427
6440
|
}
|
|
6428
6441
|
var OPENAI_MAX_ATTEMPTS = 4;
|
|
6429
6442
|
var OPENAI_BASE_DELAY_MS = 400;
|
|
@@ -6569,14 +6582,15 @@ var require_embeddings = __commonJS({
|
|
|
6569
6582
|
return padToLength(vec, exports.EMBEDDING_TARGET_DIMS);
|
|
6570
6583
|
}
|
|
6571
6584
|
async function embedOpenAI(text, config3, signal) {
|
|
6572
|
-
|
|
6573
|
-
|
|
6585
|
+
const baseUrl = config3.openaiBaseUrl.replace(/\/+$/, "");
|
|
6586
|
+
if (!config3.openaiApiKey && baseUrl === llm_js_1.DEFAULT_OPENAI_BASE_URL) {
|
|
6587
|
+
throw new EmbeddingProviderError("openai", "OPENAI_API_KEY is required when EMBEDDING_PROVIDER=openai (unless OPENAI_BASE_URL points at a local server)");
|
|
6574
6588
|
}
|
|
6575
|
-
const res = await fetchEmbedding(`${
|
|
6589
|
+
const res = await fetchEmbedding(`${baseUrl}/embeddings`, {
|
|
6576
6590
|
method: "POST",
|
|
6577
6591
|
headers: {
|
|
6578
|
-
"
|
|
6579
|
-
"
|
|
6592
|
+
"Content-Type": "application/json",
|
|
6593
|
+
...config3.openaiApiKey ? { "Authorization": `Bearer ${config3.openaiApiKey}` } : {}
|
|
6580
6594
|
},
|
|
6581
6595
|
body: JSON.stringify({
|
|
6582
6596
|
model: config3.openaiModel,
|
|
@@ -6935,6 +6949,222 @@ var require_veto_match = __commonJS({
|
|
|
6935
6949
|
}
|
|
6936
6950
|
});
|
|
6937
6951
|
|
|
6952
|
+
// ../shared/dist/trust.js
|
|
6953
|
+
var require_trust = __commonJS({
|
|
6954
|
+
"../shared/dist/trust.js"(exports) {
|
|
6955
|
+
"use strict";
|
|
6956
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6957
|
+
exports.ANOMALOUS_FIELD_LENGTH = exports.QUARANTINE_THRESHOLD = void 0;
|
|
6958
|
+
exports.scoreMemoryTrust = scoreMemoryTrust;
|
|
6959
|
+
exports.QUARANTINE_THRESHOLD = 0.6;
|
|
6960
|
+
exports.ANOMALOUS_FIELD_LENGTH = 8e3;
|
|
6961
|
+
var DAMPEN_DISCUSSED = 0.25;
|
|
6962
|
+
function regexDetector(id, type, weight, dampenable, regex) {
|
|
6963
|
+
return {
|
|
6964
|
+
id,
|
|
6965
|
+
type,
|
|
6966
|
+
weight,
|
|
6967
|
+
dampenable,
|
|
6968
|
+
find(text) {
|
|
6969
|
+
const out = [];
|
|
6970
|
+
regex.lastIndex = 0;
|
|
6971
|
+
for (const m of text.matchAll(regex)) {
|
|
6972
|
+
out.push({ index: m.index ?? 0, match: m[0] });
|
|
6973
|
+
}
|
|
6974
|
+
return out;
|
|
6975
|
+
}
|
|
6976
|
+
};
|
|
6977
|
+
}
|
|
6978
|
+
var ZERO_WIDTH_RE = /[\u200B\u200C\u200D\u2060\uFEFF]/g;
|
|
6979
|
+
var BIDI_RE = /[\u202A-\u202E\u2066-\u2069]/g;
|
|
6980
|
+
var MARKDOWN_LINK_RE = /\[([^\]\n]+)\]\(\s*([^)\s]+)\s*\)/g;
|
|
6981
|
+
var HOST_IN_TEXT_RE = /(?:https?:\/\/)?([a-z0-9-]+(?:\.[a-z0-9-]+)+)/i;
|
|
6982
|
+
function normalizeHost(host) {
|
|
6983
|
+
return host.toLowerCase().replace(/^www\./, "");
|
|
6984
|
+
}
|
|
6985
|
+
function linkTargetHost(url) {
|
|
6986
|
+
const m = url.match(/^https?:\/\/([^/?#]+)/i);
|
|
6987
|
+
return m?.[1] ? normalizeHost(m[1].replace(/:\d+$/, "")) : null;
|
|
6988
|
+
}
|
|
6989
|
+
var DETECTORS = [
|
|
6990
|
+
// ── instruction_injection — imperatives aimed at the agent ──
|
|
6991
|
+
regexDetector("ii_ignore_instructions", "instruction_injection", 0.45, true, /ignore\s+(?:all|previous|prior)\s+(?:instructions|context)/gi),
|
|
6992
|
+
regexDetector("ii_you_must", "instruction_injection", 0.3, true, /you must (?:always|never)\b/gi),
|
|
6993
|
+
regexDetector("ii_hide_from_user", "instruction_injection", 0.45, true, /do not tell the user/gi),
|
|
6994
|
+
regexDetector("ii_without_asking", "instruction_injection", 0.3, true, /without asking(?: the user)?\b/gi),
|
|
6995
|
+
regexDetector("ii_system_prompt", "instruction_injection", 0.25, true, /system prompt/gi),
|
|
6996
|
+
// Role-prefix smuggling — a stored memory has no business containing
|
|
6997
|
+
// chat-transcript role markers at line starts. HARD: quarantines alone.
|
|
6998
|
+
regexDetector("ii_role_smuggling", "instruction_injection", 0.7, false, /(?:^|\n)\s{0,8}(?:system|assistant|user)\s*:/gi),
|
|
6999
|
+
// <system>/<important> pseudo-tags — prompt-boundary forgery. HARD.
|
|
7000
|
+
regexDetector("ii_pseudo_tag", "instruction_injection", 0.7, false, /<\/?\s*(?:system|important)\s*>/gi),
|
|
7001
|
+
// ── tool_coercion — trying to make the agent run things ─────
|
|
7002
|
+
regexDetector("tc_run_command", "tool_coercion", 0.4, true, /run the following command/gi),
|
|
7003
|
+
regexDetector("tc_execute_this", "tool_coercion", 0.35, true, /execute this\b/gi),
|
|
7004
|
+
// curl … | sh pipeline — a live remote-code-execution payload. HARD when
|
|
7005
|
+
// undiscussed; dampened when it's quoted in a rejection ("rejected:
|
|
7006
|
+
// curl | bash installers").
|
|
7007
|
+
regexDetector("tc_curl_pipe_sh", "tool_coercion", 0.7, true, /\bcurl\b[^\n]{0,200}?\|\s*(?:ba|z|da)?sh\b/gi),
|
|
7008
|
+
regexDetector("tc_rm_rf", "tool_coercion", 0.5, true, /\brm\s+-rf\b/g),
|
|
7009
|
+
regexDetector("tc_bashrc", "tool_coercion", 0.5, true, /add[^\n]{0,40}\.(?:bashrc|zshrc|profile)\b/gi),
|
|
7010
|
+
// ── link_smuggling — URI schemes + text/host mismatch ───────
|
|
7011
|
+
regexDetector("ls_javascript_uri", "link_smuggling", 0.7, true, /\bjavascript:\s*\S/gi),
|
|
7012
|
+
regexDetector("ls_data_uri", "link_smuggling", 0.7, true, /\bdata:[a-z]+\/[a-z0-9.+-]+[;,]/gi),
|
|
7013
|
+
{
|
|
7014
|
+
id: "ls_text_host_mismatch",
|
|
7015
|
+
type: "link_smuggling",
|
|
7016
|
+
weight: 0.5,
|
|
7017
|
+
dampenable: true,
|
|
7018
|
+
find(text) {
|
|
7019
|
+
const out = [];
|
|
7020
|
+
MARKDOWN_LINK_RE.lastIndex = 0;
|
|
7021
|
+
for (const m of text.matchAll(MARKDOWN_LINK_RE)) {
|
|
7022
|
+
const [, linkText, target] = m;
|
|
7023
|
+
if (linkText === void 0 || target === void 0)
|
|
7024
|
+
continue;
|
|
7025
|
+
const targetHost = linkTargetHost(target);
|
|
7026
|
+
if (!targetHost)
|
|
7027
|
+
continue;
|
|
7028
|
+
const textHost = linkText.match(HOST_IN_TEXT_RE)?.[1];
|
|
7029
|
+
if (!textHost)
|
|
7030
|
+
continue;
|
|
7031
|
+
const shown = normalizeHost(textHost);
|
|
7032
|
+
if (targetHost === shown || targetHost.endsWith(`.${shown}`) || shown.endsWith(`.${targetHost}`))
|
|
7033
|
+
continue;
|
|
7034
|
+
out.push({ index: m.index ?? 0, match: m[0] });
|
|
7035
|
+
}
|
|
7036
|
+
return out;
|
|
7037
|
+
}
|
|
7038
|
+
},
|
|
7039
|
+
// ── invisible_unicode — HARD, never dampened ────────────────
|
|
7040
|
+
{
|
|
7041
|
+
id: "iu_zero_width",
|
|
7042
|
+
type: "invisible_unicode",
|
|
7043
|
+
weight: 0.9,
|
|
7044
|
+
dampenable: false,
|
|
7045
|
+
find: (text) => invisibleOccurrences(text, ZERO_WIDTH_RE, "zero-width")
|
|
7046
|
+
},
|
|
7047
|
+
{
|
|
7048
|
+
id: "iu_bidi",
|
|
7049
|
+
type: "invisible_unicode",
|
|
7050
|
+
weight: 0.9,
|
|
7051
|
+
dampenable: false,
|
|
7052
|
+
find: (text) => invisibleOccurrences(text, BIDI_RE, "bidi-override")
|
|
7053
|
+
},
|
|
7054
|
+
// ── encoded_blob — opaque payloads have no place in a decision ──
|
|
7055
|
+
{
|
|
7056
|
+
id: "eb_base64",
|
|
7057
|
+
type: "encoded_blob",
|
|
7058
|
+
weight: 0.7,
|
|
7059
|
+
dampenable: false,
|
|
7060
|
+
find(text) {
|
|
7061
|
+
const out = [];
|
|
7062
|
+
for (const m of text.matchAll(/[A-Za-z0-9+/]{120,}={0,2}/g)) {
|
|
7063
|
+
const run = m[0];
|
|
7064
|
+
if (!/\d/.test(run) || !/[a-z]/.test(run) || !/[A-Z]/.test(run))
|
|
7065
|
+
continue;
|
|
7066
|
+
out.push({ index: m.index ?? 0, match: run, evidence: `base64-like run of ${run.length} chars: ${run.slice(0, 40)}\u2026` });
|
|
7067
|
+
}
|
|
7068
|
+
return out;
|
|
7069
|
+
}
|
|
7070
|
+
},
|
|
7071
|
+
{
|
|
7072
|
+
id: "eb_hex",
|
|
7073
|
+
type: "encoded_blob",
|
|
7074
|
+
weight: 0.7,
|
|
7075
|
+
dampenable: false,
|
|
7076
|
+
find(text) {
|
|
7077
|
+
const out = [];
|
|
7078
|
+
for (const m of text.matchAll(/[0-9a-fA-F]{160,}/g)) {
|
|
7079
|
+
if (!/\d/.test(m[0]))
|
|
7080
|
+
continue;
|
|
7081
|
+
out.push({ index: m.index ?? 0, match: m[0], evidence: `hex run of ${m[0].length} chars: ${m[0].slice(0, 40)}\u2026` });
|
|
7082
|
+
}
|
|
7083
|
+
return out;
|
|
7084
|
+
}
|
|
7085
|
+
}
|
|
7086
|
+
];
|
|
7087
|
+
function invisibleOccurrences(text, re, label) {
|
|
7088
|
+
re.lastIndex = 0;
|
|
7089
|
+
const matches = [...text.matchAll(re)];
|
|
7090
|
+
const first = matches[0];
|
|
7091
|
+
if (!first)
|
|
7092
|
+
return [];
|
|
7093
|
+
const codepoints = [...new Set(matches.map((m) => `U+${(m[0].codePointAt(0) ?? 0).toString(16).toUpperCase().padStart(4, "0")}`))];
|
|
7094
|
+
return [{
|
|
7095
|
+
index: first.index ?? 0,
|
|
7096
|
+
match: first[0],
|
|
7097
|
+
evidence: `${matches.length}\xD7 ${label} char${matches.length === 1 ? "" : "s"} (${codepoints.join(", ")}) near "${excerptAround(text, first.index ?? 0)}"`
|
|
7098
|
+
}];
|
|
7099
|
+
}
|
|
7100
|
+
var DISCUSSION_MARKER_RE = /(?:reject(?:ed|ing)?|rule[sd]?\s+out|sanitiz\w*|redact\w*|filter\w*|detect\w*|scan\w*|block\w*|flag\w*|strip\w*|escap\w*|guard\w*|forbid\w*|ban(?:ned|ning)?|avoid\w*|never\s+(?:use|run|allow)|do(?:n't| not)\s+(?:use|run|allow)|disallow\w*|prevent\w*|against|instead\s+of|pattern[s]?|attack[s]?|inject\w*|poison\w*|phish\w*|malicious|risk[sy]?|vulnerab\w*|supply.chain|e\.g\.|such\s+as|example[s]?|like\s+["'`])/i;
|
|
7101
|
+
var QUOTE_CHARS = /* @__PURE__ */ new Set(['"', "'", "`", "\u2018", "\u2019", "\u201C", "\u201D"]);
|
|
7102
|
+
function inDiscussedContext(text, index) {
|
|
7103
|
+
const before = text.slice(Math.max(0, index - 100), index);
|
|
7104
|
+
if (DISCUSSION_MARKER_RE.test(before))
|
|
7105
|
+
return true;
|
|
7106
|
+
const lineStart = text.lastIndexOf("\n", index) + 1;
|
|
7107
|
+
const linePrefix = text.slice(lineStart, index);
|
|
7108
|
+
let quotes = 0;
|
|
7109
|
+
for (const ch of linePrefix)
|
|
7110
|
+
if (QUOTE_CHARS.has(ch))
|
|
7111
|
+
quotes += 1;
|
|
7112
|
+
return quotes % 2 === 1;
|
|
7113
|
+
}
|
|
7114
|
+
var EVIDENCE_MAX = 80;
|
|
7115
|
+
function escapeInvisible(s) {
|
|
7116
|
+
return s.replace(/[\u200B-\u200D\u2060\uFEFF\u202A-\u202E\u2066-\u2069]/g, (ch) => `U+${(ch.codePointAt(0) ?? 0).toString(16).toUpperCase().padStart(4, "0")}`);
|
|
7117
|
+
}
|
|
7118
|
+
function excerpt(s) {
|
|
7119
|
+
const oneLine = escapeInvisible(s).replace(/\s+/g, " ").trim();
|
|
7120
|
+
return oneLine.length <= EVIDENCE_MAX ? oneLine : `${oneLine.slice(0, EVIDENCE_MAX - 1)}\u2026`;
|
|
7121
|
+
}
|
|
7122
|
+
function excerptAround(text, index) {
|
|
7123
|
+
return excerpt(text.slice(Math.max(0, index - 20), index + 20));
|
|
7124
|
+
}
|
|
7125
|
+
var MAX_FLAGS = 20;
|
|
7126
|
+
function scoreMemoryTrust(texts) {
|
|
7127
|
+
const hits = /* @__PURE__ */ new Map();
|
|
7128
|
+
for (const text of texts) {
|
|
7129
|
+
if (!text)
|
|
7130
|
+
continue;
|
|
7131
|
+
for (const det of DETECTORS) {
|
|
7132
|
+
for (const occ of det.find(text)) {
|
|
7133
|
+
const dampened = det.dampenable && inDiscussedContext(text, occ.index);
|
|
7134
|
+
const weight = dampened ? det.weight * DAMPEN_DISCUSSED : det.weight;
|
|
7135
|
+
const prev = hits.get(det.id);
|
|
7136
|
+
if (prev && prev.weight >= weight)
|
|
7137
|
+
continue;
|
|
7138
|
+
hits.set(det.id, {
|
|
7139
|
+
type: det.type,
|
|
7140
|
+
weight,
|
|
7141
|
+
evidence: occ.evidence ?? excerpt(occ.match)
|
|
7142
|
+
});
|
|
7143
|
+
}
|
|
7144
|
+
}
|
|
7145
|
+
if (text.length > exports.ANOMALOUS_FIELD_LENGTH) {
|
|
7146
|
+
const prev = hits.get("anomalous_length");
|
|
7147
|
+
if (!prev) {
|
|
7148
|
+
hits.set("anomalous_length", {
|
|
7149
|
+
type: "anomalous_length",
|
|
7150
|
+
weight: 0.3,
|
|
7151
|
+
evidence: `field length ${text.length} > ${exports.ANOMALOUS_FIELD_LENGTH}`
|
|
7152
|
+
});
|
|
7153
|
+
}
|
|
7154
|
+
}
|
|
7155
|
+
}
|
|
7156
|
+
let survival = 1;
|
|
7157
|
+
const flags = [];
|
|
7158
|
+
for (const hit of [...hits.values()].sort((a, b) => b.weight - a.weight)) {
|
|
7159
|
+
survival *= 1 - hit.weight;
|
|
7160
|
+
if (flags.length < MAX_FLAGS)
|
|
7161
|
+
flags.push({ type: hit.type, evidence: hit.evidence });
|
|
7162
|
+
}
|
|
7163
|
+
return { score: Math.round((1 - survival) * 100) / 100, flags };
|
|
7164
|
+
}
|
|
7165
|
+
}
|
|
7166
|
+
});
|
|
7167
|
+
|
|
6938
7168
|
// ../shared/dist/extract-decision.js
|
|
6939
7169
|
var require_extract_decision = __commonJS({
|
|
6940
7170
|
"../shared/dist/extract-decision.js"(exports) {
|
|
@@ -7070,6 +7300,7 @@ var require_dist = __commonJS({
|
|
|
7070
7300
|
__exportStar(require_embeddings(), exports);
|
|
7071
7301
|
__exportStar(require_redact(), exports);
|
|
7072
7302
|
__exportStar(require_veto_match(), exports);
|
|
7303
|
+
__exportStar(require_trust(), exports);
|
|
7073
7304
|
__exportStar(require_extract_decision(), exports);
|
|
7074
7305
|
__exportStar(require_db(), exports);
|
|
7075
7306
|
}
|
|
@@ -22491,6 +22722,9 @@ var init_mcp = __esm({
|
|
|
22491
22722
|
// src/config.ts
|
|
22492
22723
|
import { homedir } from "node:os";
|
|
22493
22724
|
import { join } from "node:path";
|
|
22725
|
+
function isThinMode(env = process.env) {
|
|
22726
|
+
return env.ROBRAIN_MODE?.trim().toLowerCase() === "cloud";
|
|
22727
|
+
}
|
|
22494
22728
|
var import_shared, config2;
|
|
22495
22729
|
var init_config = __esm({
|
|
22496
22730
|
"src/config.ts"() {
|
|
@@ -22526,7 +22760,7 @@ var init_config = __esm({
|
|
|
22526
22760
|
// ── Perception API (required — where signals get sent) ──────
|
|
22527
22761
|
// Set after you deploy the Perception API to Railway / Fly.io.
|
|
22528
22762
|
// Leave as placeholder during local Sensing-only testing.
|
|
22529
|
-
perceptionApiUrl: process.env.PERCEPTION_API_URL ?? "http://
|
|
22763
|
+
perceptionApiUrl: (0, import_shared.normalizeLoopbackUrl)(process.env.PERCEPTION_API_URL ?? "http://127.0.0.1:3001"),
|
|
22530
22764
|
perceptionApiKey: process.env.PERCEPTION_API_KEY ?? "",
|
|
22531
22765
|
// ── Classifier thresholds (optional — tune after instrumenting) ─
|
|
22532
22766
|
decisionConfidenceMin: Number(process.env.DECISION_CONFIDENCE_MIN ?? 0.6),
|
|
@@ -22699,7 +22933,7 @@ function inferScope(turn, extracted) {
|
|
|
22699
22933
|
return "team";
|
|
22700
22934
|
}
|
|
22701
22935
|
async function classifyTopicShift(turn, signal) {
|
|
22702
|
-
if (config2.topicShiftDisableEmbedding) return null;
|
|
22936
|
+
if (config2.topicShiftDisableEmbedding || isThinMode()) return null;
|
|
22703
22937
|
const sessionId = turn.session_id;
|
|
22704
22938
|
const window = embeddingWindows.get(sessionId) ?? [];
|
|
22705
22939
|
const currentEmbedding = await embed(turn.user_message, signal);
|
|
@@ -23062,7 +23296,7 @@ function resolveSessionId(raw) {
|
|
|
23062
23296
|
function buildServer() {
|
|
23063
23297
|
const server = new McpServer({
|
|
23064
23298
|
name: "sensing-mcp",
|
|
23065
|
-
version: "2.4.
|
|
23299
|
+
version: "2.4.3"
|
|
23066
23300
|
});
|
|
23067
23301
|
server.tool(
|
|
23068
23302
|
"sensing_start_session",
|
|
@@ -23159,6 +23393,16 @@ function buildServer() {
|
|
|
23159
23393
|
const projectId = session.project_id;
|
|
23160
23394
|
setImmediate(async () => {
|
|
23161
23395
|
try {
|
|
23396
|
+
if (isThinMode()) {
|
|
23397
|
+
const errors = await routeFlushTurns([turn], projectId);
|
|
23398
|
+
if (errors.length === 0) {
|
|
23399
|
+
lastDecisionShipFailure = null;
|
|
23400
|
+
streamBuffer.markClassified(session_id, sequence);
|
|
23401
|
+
} else {
|
|
23402
|
+
lastDecisionShipFailure = `${session_id} seq ${sequence}: ${errors.join("; ")}`;
|
|
23403
|
+
}
|
|
23404
|
+
return;
|
|
23405
|
+
}
|
|
23162
23406
|
const decisionSignal = await classifyDecision(turn, projectId);
|
|
23163
23407
|
if (decisionSignal) {
|
|
23164
23408
|
const outcome = await routeDecisionSignal(decisionSignal, projectId);
|
|
@@ -23259,6 +23503,8 @@ function buildServer() {
|
|
|
23259
23503
|
content: [{
|
|
23260
23504
|
type: "text",
|
|
23261
23505
|
text: JSON.stringify({
|
|
23506
|
+
// Only surfaced in thin mode so full-mode status output stays byte-identical.
|
|
23507
|
+
...isThinMode() ? { mode: "cloud-thin" } : {},
|
|
23262
23508
|
session_found: !!session,
|
|
23263
23509
|
project_id: session?.project_id,
|
|
23264
23510
|
started_at: session?.started_at,
|