robrain 2.4.0 → 2.4.2

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.
Files changed (45) hide show
  1. package/dist/commands/doctor.d.ts.map +1 -1
  2. package/dist/commands/doctor.js +37 -22
  3. package/dist/commands/doctor.js.map +1 -1
  4. package/dist/commands/export-memory.d.ts.map +1 -1
  5. package/dist/commands/export-memory.js +4 -1
  6. package/dist/commands/export-memory.js.map +1 -1
  7. package/dist/commands/install.d.ts +11 -0
  8. package/dist/commands/install.d.ts.map +1 -1
  9. package/dist/commands/install.js +43 -58
  10. package/dist/commands/install.js.map +1 -1
  11. package/dist/commands/install.test.d.ts +2 -0
  12. package/dist/commands/install.test.d.ts.map +1 -0
  13. package/dist/commands/install.test.js +107 -0
  14. package/dist/commands/install.test.js.map +1 -0
  15. package/dist/commands/mcp.d.ts +1 -0
  16. package/dist/commands/mcp.d.ts.map +1 -1
  17. package/dist/commands/mcp.js +3 -0
  18. package/dist/commands/mcp.js.map +1 -1
  19. package/dist/commands/mcp.test.js +8 -0
  20. package/dist/commands/mcp.test.js.map +1 -1
  21. package/dist/commands/review.d.ts.map +1 -1
  22. package/dist/commands/review.js +51 -9
  23. package/dist/commands/review.js.map +1 -1
  24. package/dist/commands/status.d.ts.map +1 -1
  25. package/dist/commands/status.js +3 -1
  26. package/dist/commands/status.js.map +1 -1
  27. package/dist/commands/up.d.ts +3 -2
  28. package/dist/commands/up.d.ts.map +1 -1
  29. package/dist/commands/up.js +4 -2
  30. package/dist/commands/up.js.map +1 -1
  31. package/dist/commands/up.test.js +12 -0
  32. package/dist/commands/up.test.js.map +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/lib/config.d.ts +2 -0
  35. package/dist/lib/config.d.ts.map +1 -1
  36. package/dist/lib/config.js.map +1 -1
  37. package/dist/lib/editor.codex.test.js +35 -0
  38. package/dist/lib/editor.codex.test.js.map +1 -1
  39. package/dist/lib/editor.d.ts +14 -0
  40. package/dist/lib/editor.d.ts.map +1 -1
  41. package/dist/lib/editor.js +30 -4
  42. package/dist/lib/editor.js.map +1 -1
  43. package/package.json +2 -2
  44. package/vendor/sensing-mcp/dist/index.js +234 -2
  45. package/vendor/sensing-mcp/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,gEAAgE;AAChE,gEAAgE;AAChE,sEAAsE;AACtE,gEAAgE;AAEhE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,MAAM,UAAU,GAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAA;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;AAiBnD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAA;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAmB,CAAA;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAsB;IAChD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC;IACD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgC;IAC1D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;AACzC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAC7C,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAClC,2FAA2F;IAC3F,OAAO,OAAO,CACZ,MAAM,CAAC,aAAa;QAClB,MAAM,CAAC,WAAW;QAClB,CAAC,MAAM,CAAC,KAAK;QACb,CAAC,MAAM,CAAC,KAAK,CAChB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAU,EAAE,CAAC,KAAK,CAAA;AAC3B,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,0BAA0B,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,gEAAgE;AAChE,gEAAgE;AAChE,sEAAsE;AACtE,gEAAgE;AAEhE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,MAAM,UAAU,GAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAA;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;AAmBnD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAA;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAmB,CAAA;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAsB;IAChD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC;IACD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgC;IAC1D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;AACzC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAC7C,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAClC,2FAA2F;IAC3F,OAAO,OAAO,CACZ,MAAM,CAAC,aAAa;QAClB,MAAM,CAAC,WAAW;QAClB,CAAC,MAAM,CAAC,KAAK;QACb,CAAC,MAAM,CAAC,KAAK,CAChB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAU,EAAE,CAAC,KAAK,CAAA;AAC3B,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,0BAA0B,CAAA"}
@@ -78,6 +78,41 @@ describe('renderCodexBlock', () => {
78
78
  assert.match(block, /OPENAI_API_KEY = "sk-openai-llm"/);
79
79
  assert.match(block, /VOYAGE_API_KEY = "voyage-emb-key"/);
80
80
  });
81
+ it('thin mode writes only ROBRAIN_MODE + Perception vars — no LLM or embedding keys', () => {
82
+ const env = buildSensingMcpEnv({ ...baseOpts, thin: true });
83
+ assert.deepEqual(env, {
84
+ ROBRAIN_MODE: 'cloud',
85
+ PERCEPTION_API_URL: 'http://localhost:3001',
86
+ PERCEPTION_API_KEY: 'perception-secret',
87
+ });
88
+ const block = renderCodexBlock({ ...baseOpts, thin: true, includeControl: false });
89
+ assert.match(block, /ROBRAIN_MODE = "cloud"/);
90
+ assert.doesNotMatch(block, /ANTHROPIC_API_KEY|EMBEDDING_PROVIDER|OPENAI_API_KEY|VOYAGE_API_KEY|COHERE_API_KEY/);
91
+ });
92
+ it('non-thin env is unchanged (self-hosted stays byte-for-byte)', () => {
93
+ const env = buildSensingMcpEnv({ ...baseOpts });
94
+ assert.equal(env.ROBRAIN_MODE, undefined);
95
+ assert.deepEqual(env, {
96
+ ANTHROPIC_API_KEY: 'sk-ant-test',
97
+ EMBEDDING_PROVIDER: 'openai',
98
+ PERCEPTION_API_URL: 'http://localhost:3001',
99
+ PERCEPTION_API_KEY: 'perception-secret',
100
+ OPENAI_API_KEY: 'sk-openai-test',
101
+ });
102
+ });
103
+ it('local base URL: writes OPENAI_BASE_URL and omits an empty OPENAI_API_KEY', () => {
104
+ const env = buildSensingMcpEnv({
105
+ ...baseOpts,
106
+ embeddingKey: '',
107
+ openaiBaseUrl: 'http://localhost:11434/v1',
108
+ });
109
+ assert.equal(env.OPENAI_BASE_URL, 'http://localhost:11434/v1');
110
+ assert.equal('OPENAI_API_KEY' in env, false);
111
+ // A key set alongside a local base URL is still forwarded (server may enforce auth)
112
+ const withKey = buildSensingMcpEnv({ ...baseOpts, openaiBaseUrl: 'http://localhost:11434/v1' });
113
+ assert.equal(withKey.OPENAI_API_KEY, 'sk-openai-test');
114
+ assert.equal(withKey.OPENAI_BASE_URL, 'http://localhost:11434/v1');
115
+ });
81
116
  it('escapes quotes and backslashes in TOML strings', () => {
82
117
  const block = renderCodexBlock({
83
118
  ...baseOpts,
@@ -1 +1 @@
1
- {"version":3,"file":"editor.codex.test.js","sourceRoot":"","sources":["../../src/lib/editor.codex.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor.codex.test.js","sourceRoot":"","sources":["../../src/lib/editor.codex.test.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,11 @@ export declare function detectEditors(): DetectedEditor[];
21
21
  export type LlmProvider = 'anthropic' | 'openai';
22
22
  /** Reads LLM_PROVIDER; anything other than "openai" (case-insensitive) means Anthropic. */
23
23
  export declare function resolveLlmProviderFromEnv(env?: NodeJS.ProcessEnv): LlmProvider;
24
+ export declare const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
25
+ /** Reads OPENAI_BASE_URL, normalized the same way as shared's resolveOpenAiBaseUrl. */
26
+ export declare function resolveOpenAiBaseUrlFromEnv(env?: NodeJS.ProcessEnv): string;
27
+ /** True when OPENAI_BASE_URL points at a local OpenAI-compatible server (Ollama / LM Studio / vLLM) — OPENAI_API_KEY is optional then. */
28
+ export declare function usingLocalOpenAi(env?: NodeJS.ProcessEnv): boolean;
24
29
  export interface McpWriteOptions {
25
30
  sensingMcpPath: string;
26
31
  controlMcpPath: string;
@@ -35,10 +40,19 @@ export interface McpWriteOptions {
35
40
  llmProvider?: LlmProvider;
36
41
  /** OpenAI key for LLM when llmProvider is openai and embedding provider is not openai. */
37
42
  openaiKey?: string;
43
+ /** Non-default OpenAI-compatible base URL (Ollama / LM Studio / vLLM). Written into the Sensing env; makes OPENAI_API_KEY optional. */
44
+ openaiBaseUrl?: string;
38
45
  /** When false, drops robrain-control (OSS self-hosted — Control ships with Rory cloud only). Default true. */
39
46
  includeControl?: boolean;
40
47
  /** Absolute dir of materialized Codex hook scripts — when set, the Codex TOML block also wires lifecycle hooks. */
41
48
  codexHooksDir?: string;
49
+ /**
50
+ * Cloud thin-client mode: Sensing ships raw turns (needs_classification=true)
51
+ * and classification runs server-side, so the env block carries only
52
+ * ROBRAIN_MODE=cloud + Perception vars — no LLM or embedding keys.
53
+ * Default false (self-hosted env stays byte-for-byte unchanged).
54
+ */
55
+ thin?: boolean;
42
56
  }
43
57
  /** Env vars for robrain-sensing — shared by JSON MCP configs and Codex TOML. */
44
58
  export declare function buildSensingMcpEnv(opts: McpWriteOptions): Record<string, string>;
@@ -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;CACvB;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyBhF;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CA2D9E;AAqBD,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CA+D9D;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CA0BnF;AAMD,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG,iBAAiB,CAAA;AAmHvE,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,sBAA0C,GAC/C,IAAI,CAKN;AAED,+HAA+H;AAC/H,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,sBAA0C,GAC/C,IAAI,CAKN;AAED,6OAA6O;AAC7O,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,sBAA0C,GAC/C,OAAO,CAsCT"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/lib/editor.ts"],"names":[],"mappings":"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"}
@@ -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
- env.OPENAI_API_KEY =
129
- opts.embeddingProvider === 'openai'
130
- ? opts.embeddingKey
131
- : (opts.openaiKey?.trim() ?? '');
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
  }
@@ -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":"AAAA,oBAAoB;AACpB,gEAAgE;AAChE,2DAA2D;AAC3D,qDAAqD;AACrD,sEAAsE;AACtE,gEAAgE;AAChE,oBAAoB;AAEpB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAIpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAU,CAAA;AAGzF,MAAM,aAAa,GAAsC;IACvD,aAAa,EAAE,aAAa;IAC5B,QAAQ,EAAO,QAAQ;IACvB,SAAS,EAAM,0BAA0B;IACzC,OAAO,EAAQ,WAAW;CAC3B,CAAA;AAQD,mGAAmG;AACnG,MAAM,UAAU,gBAAgB,CAAC,MAAyB;IACxD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QACrD,KAAK,QAAQ,CAAC,CAAM,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QAC5D,KAAK,OAAO,CAAC,CAAO,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;QAC9D,KAAK,SAAS,CAAC,CAAK,OAAO,qBAAqB,EAAE,CAAA;IACpD,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,IAAI,CAAE,mBAAyC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAC7E,MAAM,EAAE,GAAG,MAA2B,CAAA;IACtC,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAA;IACvC,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,CAAA;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAyB;IAChE,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAA;IAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAA;QACtC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/B,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC;gBACN,MAAM,EAAM,aAAa;gBACzB,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC;gBAC3C,KAAK,EAAO,aAAa;aAC1B,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,kEAAkE;AAElE,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAqB,EAAE,CAAA;IAClC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,0DAA0D;IAC1D,gEAAgE;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC7C,MAAM,SAAS,GAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACxC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAA;IACrF,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IACpD,MAAM,SAAS,GAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACxC,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,4DAA4D;IAC5D,wDAAwD;IACxD,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAA;IAC9C,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAA;IAClG,CAAC;IAED,mCAAmC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAG,QAAQ;QACvE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAA2B,QAAQ;QACxE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAe,UAAU;KAC1E,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAMD,2FAA2F;AAC3F,MAAM,UAAU,yBAAyB,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC5E,OAAO,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAA;AACrF,CAAC;AAED,6EAA6E;AAC7E,mEAAmE;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,2BAA2B,CAAA;AAElE,uFAAuF;AACvF,MAAM,UAAU,2BAA2B,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC9E,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,uBAAuB,CAAA;IACxC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC;AAED,0IAA0I;AAC1I,MAAM,UAAU,gBAAgB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,OAAO,2BAA2B,CAAC,GAAG,CAAC,KAAK,uBAAuB,CAAA;AACrE,CAAC;AA+BD,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,IAAqB;IACtD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO;YACL,YAAY,EAAQ,OAAO;YAC3B,kBAAkB,EAAE,IAAI,CAAC,aAAa;YACtC,kBAAkB,EAAE,IAAI,CAAC,aAAa;SACvC,CAAA;IACH,CAAC;IAED,MAAM,GAAG,GAA2B;QAClC,iBAAiB,EAAG,IAAI,CAAC,YAAY;QACrC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;QAC1C,kBAAkB,EAAE,IAAI,CAAC,aAAa;QACtC,kBAAkB,EAAE,IAAI,CAAC,aAAa;KACvC,CAAA;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,WAAW,CAAA;IACnD,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAA;IAC7B,CAAC;IAED,IAAI,IAAI,CAAC,iBAAiB,KAAK,QAAQ;QAAE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAA;IAC/E,IAAI,IAAI,CAAC,iBAAiB,KAAK,QAAQ;QAAE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAA;IAE/E,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,KAAK,QAAQ,IAAI,WAAW,KAAK,QAAQ,CAAA;IACnF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GACb,IAAI,CAAC,iBAAiB,KAAK,QAAQ;YACjC,CAAC,CAAC,IAAI,CAAC,YAAY;YACnB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACpC,IAAI,IAAI,CAAC,aAAa;YAAE,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAA;QAChE,qEAAqE;QACrE,6EAA6E;QAC7E,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,GAAG,CAAC,cAAc,GAAG,SAAS,CAAA;IACtE,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,IAAqB;IACtE,6EAA6E;IAC7E,+EAA+E;IAC/E,8CAA8C;IAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IAED,mCAAmC;IACnC,2FAA2F;IAC3F,uFAAuF;IACvF,mCAAmC;IACnC,IAAI,QAAQ,GAA4B,EAAE,CAAA;IAC1C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAA;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,yBAAyB,UAAU,uCAAuC;gBAC1E,yDAAyD,CAC1D,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAI,QAAQ,CAAC,UAAsC,IAAI,EAAE,CAAA;IAEzE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAA;IAElD,mCAAmC;IACnC,UAAU,CAAC,iBAAiB,CAAC,GAAG;QAC9B,OAAO,EAAE,MAAM;QACf,IAAI,EAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QAC9B,GAAG,EAAM,kBAAkB,CAAC,IAAI,CAAC;KAClC,CAAA;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,UAAU,CAAC,iBAAiB,CAAC,GAAG;YAC9B,OAAO,EAAE,MAAM;YACf,IAAI,EAAK,CAAC,IAAI,CAAC,cAAc,CAAC;YAC9B,GAAG,EAAE;gBACH,gBAAgB,EAAI,IAAI,CAAC,WAAW;gBACpC,gBAAgB,EAAI,IAAI,CAAC,WAAW;gBACpC,kBAAkB,EAAE,IAAI,CAAC,aAAa;gBACtC,kBAAkB,EAAE,IAAI,CAAC,aAAa;aACvC;SACF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,CAAA;IAE3C,iCAAiC;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEzD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AACrE,CAAC;AAED,kEAAkE;AAClE,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,6EAA6E;AAC7E,+EAA+E;AAE/E,MAAM,iBAAiB,GAAG,oBAAoB,CAAA;AAC9C,MAAM,eAAe,GAAK,qBAAqB,CAAA;AAE/C,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,IAAI,CAAC;SACT,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAA;AAC7B,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,gBAAgB,CAAC,IAAqB;IACpD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAA;IAClD,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAE3C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC7B,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;IAC/E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAC3C,KAAK,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IACzD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;QAC3C,KAAK,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACzD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;QAC/C,KAAK,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAChE,KAAK,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAChE,KAAK,CAAC,IAAI,CAAC,wBAAwB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QACpE,KAAK,CAAC,IAAI,CAAC,wBAAwB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,0DAA0D;IAC1D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACxF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACpC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC1C,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC9B,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAA;QACtD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1B,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAA;QAC7E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QACxC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;QAC9C,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC9B,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAA;QAC3D,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1B,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAA;QACvF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC5B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAClC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC9B,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAC7C,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,IAAqB;IAC3E,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAEpC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEzD,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QACjD,MAAM,GAAG,GAAK,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QACtD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,GAAG,GAAG,eAAe,CAAC,MAAM,CAAA;YACjD,MAAM,IAAI,GACR,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;gBAClC,MAAM;gBACN,KAAK;gBACL,MAAM;gBACN,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAA;YAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;YACxD,OAAM;QACR,CAAC;QACD,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,MAAM,CAAA;IACxC,CAAC;IAED,aAAa,CAAC,UAAU,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;AAC5D,CAAC;AAED,oEAAoE;AAEpE,MAAM,oBAAoB,GAAG,kBAAkB,CAAA;AAC/C,MAAM,kBAAkB,GAAK,mBAAmB,CAAA;AAGhD,4FAA4F;AAC5F,SAAS,2BAA2B,CAAC,SAAiB,EAAE,IAA4B;IAClF,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,OAAO;;;;;;;;oCAQyB,SAAS;;;;;;;;;;;;;;;;;CAiB5C,CAAA;IACC,CAAC;IAED,OAAO;;;;;;;oCAO2B,SAAS;0CACH,SAAS;;;;;;;;;;;qCAWd,SAAS;;;;;kCAKZ,SAAS;;;;;;;;;;+BAUZ,SAAS;;;;;;kCAMN,SAAS;;;;;;CAM1C,CAAA;AACD,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB,EAAE,IAA4B;IACzE,OAAO,GAAG,oBAAoB;EAC9B,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,kBAAkB;CAClE,CAAA;AACD,CAAC;AAED,kEAAkE;AAElE,SAAS,0BAA0B,CAAC,QAAgB,EAAE,cAAsB;IAC1E,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACpD,MAAM,GAAG,GAAK,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QACzD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAA;YACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;YACxD,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,cAAc,CAAC,OAAO,EAAE;gBAAE,OAAM;YAC/D,MAAM,IAAI,GACR,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;gBAClC,MAAM;gBACN,cAAc;gBACd,MAAM;gBACN,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAA;YAC1C,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;YACtD,OAAM;QACR,CAAC;QACD,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,MAAM,CAAA;IACxC,CAAC;IAED,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,WAAmB,EACnB,SAAiB,EACjB,OAA+B,iBAAiB;IAEhD,0BAA0B,CACxB,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAC9B,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CACpC,CAAA;AACH,CAAC;AAED,+HAA+H;AAC/H,MAAM,UAAU,aAAa,CAC3B,WAAmB,EACnB,SAAiB,EACjB,OAA+B,iBAAiB;IAEhD,0BAA0B,CACxB,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAC9B,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CACpC,CAAA;AACH,CAAC;AAED,6OAA6O;AAC7O,MAAM,UAAU,sBAAsB,CACpC,WAAmB,EACnB,SAAiB,EACjB,OAA+B,iBAAiB;IAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IACrE,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAE1D,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACpD,MAAM,GAAG,GAAK,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QACzD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAA;YACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;YACxD,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,cAAc,CAAC,OAAO,EAAE;gBAAE,OAAO,KAAK,CAAA;YACrE,MAAM,IAAI,GACR,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;gBAClC,MAAM;gBACN,cAAc;gBACd,MAAM;gBACN,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAA;YAC1C,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;YACtD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,cAAc,CAAA;QACzD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;QACtD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEzD,MAAM,OAAO,GAAG;;;;;EAKhB,cAAc,EAAE,CAAA;IAEhB,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACxC,OAAO,IAAI,CAAA;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robrain",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
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/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
  }
@@ -6935,6 +6935,222 @@ var require_veto_match = __commonJS({
6935
6935
  }
6936
6936
  });
6937
6937
 
6938
+ // ../shared/dist/trust.js
6939
+ var require_trust = __commonJS({
6940
+ "../shared/dist/trust.js"(exports) {
6941
+ "use strict";
6942
+ Object.defineProperty(exports, "__esModule", { value: true });
6943
+ exports.ANOMALOUS_FIELD_LENGTH = exports.QUARANTINE_THRESHOLD = void 0;
6944
+ exports.scoreMemoryTrust = scoreMemoryTrust;
6945
+ exports.QUARANTINE_THRESHOLD = 0.6;
6946
+ exports.ANOMALOUS_FIELD_LENGTH = 8e3;
6947
+ var DAMPEN_DISCUSSED = 0.25;
6948
+ function regexDetector(id, type, weight, dampenable, regex) {
6949
+ return {
6950
+ id,
6951
+ type,
6952
+ weight,
6953
+ dampenable,
6954
+ find(text) {
6955
+ const out = [];
6956
+ regex.lastIndex = 0;
6957
+ for (const m of text.matchAll(regex)) {
6958
+ out.push({ index: m.index ?? 0, match: m[0] });
6959
+ }
6960
+ return out;
6961
+ }
6962
+ };
6963
+ }
6964
+ var ZERO_WIDTH_RE = /[\u200B\u200C\u200D\u2060\uFEFF]/g;
6965
+ var BIDI_RE = /[\u202A-\u202E\u2066-\u2069]/g;
6966
+ var MARKDOWN_LINK_RE = /\[([^\]\n]+)\]\(\s*([^)\s]+)\s*\)/g;
6967
+ var HOST_IN_TEXT_RE = /(?:https?:\/\/)?([a-z0-9-]+(?:\.[a-z0-9-]+)+)/i;
6968
+ function normalizeHost(host) {
6969
+ return host.toLowerCase().replace(/^www\./, "");
6970
+ }
6971
+ function linkTargetHost(url) {
6972
+ const m = url.match(/^https?:\/\/([^/?#]+)/i);
6973
+ return m?.[1] ? normalizeHost(m[1].replace(/:\d+$/, "")) : null;
6974
+ }
6975
+ var DETECTORS = [
6976
+ // ── instruction_injection — imperatives aimed at the agent ──
6977
+ regexDetector("ii_ignore_instructions", "instruction_injection", 0.45, true, /ignore\s+(?:all|previous|prior)\s+(?:instructions|context)/gi),
6978
+ regexDetector("ii_you_must", "instruction_injection", 0.3, true, /you must (?:always|never)\b/gi),
6979
+ regexDetector("ii_hide_from_user", "instruction_injection", 0.45, true, /do not tell the user/gi),
6980
+ regexDetector("ii_without_asking", "instruction_injection", 0.3, true, /without asking(?: the user)?\b/gi),
6981
+ regexDetector("ii_system_prompt", "instruction_injection", 0.25, true, /system prompt/gi),
6982
+ // Role-prefix smuggling — a stored memory has no business containing
6983
+ // chat-transcript role markers at line starts. HARD: quarantines alone.
6984
+ regexDetector("ii_role_smuggling", "instruction_injection", 0.7, false, /(?:^|\n)\s{0,8}(?:system|assistant|user)\s*:/gi),
6985
+ // <system>/<important> pseudo-tags — prompt-boundary forgery. HARD.
6986
+ regexDetector("ii_pseudo_tag", "instruction_injection", 0.7, false, /<\/?\s*(?:system|important)\s*>/gi),
6987
+ // ── tool_coercion — trying to make the agent run things ─────
6988
+ regexDetector("tc_run_command", "tool_coercion", 0.4, true, /run the following command/gi),
6989
+ regexDetector("tc_execute_this", "tool_coercion", 0.35, true, /execute this\b/gi),
6990
+ // curl … | sh pipeline — a live remote-code-execution payload. HARD when
6991
+ // undiscussed; dampened when it's quoted in a rejection ("rejected:
6992
+ // curl | bash installers").
6993
+ regexDetector("tc_curl_pipe_sh", "tool_coercion", 0.7, true, /\bcurl\b[^\n]{0,200}?\|\s*(?:ba|z|da)?sh\b/gi),
6994
+ regexDetector("tc_rm_rf", "tool_coercion", 0.5, true, /\brm\s+-rf\b/g),
6995
+ regexDetector("tc_bashrc", "tool_coercion", 0.5, true, /add[^\n]{0,40}\.(?:bashrc|zshrc|profile)\b/gi),
6996
+ // ── link_smuggling — URI schemes + text/host mismatch ───────
6997
+ regexDetector("ls_javascript_uri", "link_smuggling", 0.7, true, /\bjavascript:\s*\S/gi),
6998
+ regexDetector("ls_data_uri", "link_smuggling", 0.7, true, /\bdata:[a-z]+\/[a-z0-9.+-]+[;,]/gi),
6999
+ {
7000
+ id: "ls_text_host_mismatch",
7001
+ type: "link_smuggling",
7002
+ weight: 0.5,
7003
+ dampenable: true,
7004
+ find(text) {
7005
+ const out = [];
7006
+ MARKDOWN_LINK_RE.lastIndex = 0;
7007
+ for (const m of text.matchAll(MARKDOWN_LINK_RE)) {
7008
+ const [, linkText, target] = m;
7009
+ if (linkText === void 0 || target === void 0)
7010
+ continue;
7011
+ const targetHost = linkTargetHost(target);
7012
+ if (!targetHost)
7013
+ continue;
7014
+ const textHost = linkText.match(HOST_IN_TEXT_RE)?.[1];
7015
+ if (!textHost)
7016
+ continue;
7017
+ const shown = normalizeHost(textHost);
7018
+ if (targetHost === shown || targetHost.endsWith(`.${shown}`) || shown.endsWith(`.${targetHost}`))
7019
+ continue;
7020
+ out.push({ index: m.index ?? 0, match: m[0] });
7021
+ }
7022
+ return out;
7023
+ }
7024
+ },
7025
+ // ── invisible_unicode — HARD, never dampened ────────────────
7026
+ {
7027
+ id: "iu_zero_width",
7028
+ type: "invisible_unicode",
7029
+ weight: 0.9,
7030
+ dampenable: false,
7031
+ find: (text) => invisibleOccurrences(text, ZERO_WIDTH_RE, "zero-width")
7032
+ },
7033
+ {
7034
+ id: "iu_bidi",
7035
+ type: "invisible_unicode",
7036
+ weight: 0.9,
7037
+ dampenable: false,
7038
+ find: (text) => invisibleOccurrences(text, BIDI_RE, "bidi-override")
7039
+ },
7040
+ // ── encoded_blob — opaque payloads have no place in a decision ──
7041
+ {
7042
+ id: "eb_base64",
7043
+ type: "encoded_blob",
7044
+ weight: 0.7,
7045
+ dampenable: false,
7046
+ find(text) {
7047
+ const out = [];
7048
+ for (const m of text.matchAll(/[A-Za-z0-9+/]{120,}={0,2}/g)) {
7049
+ const run = m[0];
7050
+ if (!/\d/.test(run) || !/[a-z]/.test(run) || !/[A-Z]/.test(run))
7051
+ continue;
7052
+ out.push({ index: m.index ?? 0, match: run, evidence: `base64-like run of ${run.length} chars: ${run.slice(0, 40)}\u2026` });
7053
+ }
7054
+ return out;
7055
+ }
7056
+ },
7057
+ {
7058
+ id: "eb_hex",
7059
+ type: "encoded_blob",
7060
+ weight: 0.7,
7061
+ dampenable: false,
7062
+ find(text) {
7063
+ const out = [];
7064
+ for (const m of text.matchAll(/[0-9a-fA-F]{160,}/g)) {
7065
+ if (!/\d/.test(m[0]))
7066
+ continue;
7067
+ out.push({ index: m.index ?? 0, match: m[0], evidence: `hex run of ${m[0].length} chars: ${m[0].slice(0, 40)}\u2026` });
7068
+ }
7069
+ return out;
7070
+ }
7071
+ }
7072
+ ];
7073
+ function invisibleOccurrences(text, re, label) {
7074
+ re.lastIndex = 0;
7075
+ const matches = [...text.matchAll(re)];
7076
+ const first = matches[0];
7077
+ if (!first)
7078
+ return [];
7079
+ const codepoints = [...new Set(matches.map((m) => `U+${(m[0].codePointAt(0) ?? 0).toString(16).toUpperCase().padStart(4, "0")}`))];
7080
+ return [{
7081
+ index: first.index ?? 0,
7082
+ match: first[0],
7083
+ evidence: `${matches.length}\xD7 ${label} char${matches.length === 1 ? "" : "s"} (${codepoints.join(", ")}) near "${excerptAround(text, first.index ?? 0)}"`
7084
+ }];
7085
+ }
7086
+ 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;
7087
+ var QUOTE_CHARS = /* @__PURE__ */ new Set(['"', "'", "`", "\u2018", "\u2019", "\u201C", "\u201D"]);
7088
+ function inDiscussedContext(text, index) {
7089
+ const before = text.slice(Math.max(0, index - 100), index);
7090
+ if (DISCUSSION_MARKER_RE.test(before))
7091
+ return true;
7092
+ const lineStart = text.lastIndexOf("\n", index) + 1;
7093
+ const linePrefix = text.slice(lineStart, index);
7094
+ let quotes = 0;
7095
+ for (const ch of linePrefix)
7096
+ if (QUOTE_CHARS.has(ch))
7097
+ quotes += 1;
7098
+ return quotes % 2 === 1;
7099
+ }
7100
+ var EVIDENCE_MAX = 80;
7101
+ function escapeInvisible(s) {
7102
+ return s.replace(/[\u200B-\u200D\u2060\uFEFF\u202A-\u202E\u2066-\u2069]/g, (ch) => `U+${(ch.codePointAt(0) ?? 0).toString(16).toUpperCase().padStart(4, "0")}`);
7103
+ }
7104
+ function excerpt(s) {
7105
+ const oneLine = escapeInvisible(s).replace(/\s+/g, " ").trim();
7106
+ return oneLine.length <= EVIDENCE_MAX ? oneLine : `${oneLine.slice(0, EVIDENCE_MAX - 1)}\u2026`;
7107
+ }
7108
+ function excerptAround(text, index) {
7109
+ return excerpt(text.slice(Math.max(0, index - 20), index + 20));
7110
+ }
7111
+ var MAX_FLAGS = 20;
7112
+ function scoreMemoryTrust(texts) {
7113
+ const hits = /* @__PURE__ */ new Map();
7114
+ for (const text of texts) {
7115
+ if (!text)
7116
+ continue;
7117
+ for (const det of DETECTORS) {
7118
+ for (const occ of det.find(text)) {
7119
+ const dampened = det.dampenable && inDiscussedContext(text, occ.index);
7120
+ const weight = dampened ? det.weight * DAMPEN_DISCUSSED : det.weight;
7121
+ const prev = hits.get(det.id);
7122
+ if (prev && prev.weight >= weight)
7123
+ continue;
7124
+ hits.set(det.id, {
7125
+ type: det.type,
7126
+ weight,
7127
+ evidence: occ.evidence ?? excerpt(occ.match)
7128
+ });
7129
+ }
7130
+ }
7131
+ if (text.length > exports.ANOMALOUS_FIELD_LENGTH) {
7132
+ const prev = hits.get("anomalous_length");
7133
+ if (!prev) {
7134
+ hits.set("anomalous_length", {
7135
+ type: "anomalous_length",
7136
+ weight: 0.3,
7137
+ evidence: `field length ${text.length} > ${exports.ANOMALOUS_FIELD_LENGTH}`
7138
+ });
7139
+ }
7140
+ }
7141
+ }
7142
+ let survival = 1;
7143
+ const flags = [];
7144
+ for (const hit of [...hits.values()].sort((a, b) => b.weight - a.weight)) {
7145
+ survival *= 1 - hit.weight;
7146
+ if (flags.length < MAX_FLAGS)
7147
+ flags.push({ type: hit.type, evidence: hit.evidence });
7148
+ }
7149
+ return { score: Math.round((1 - survival) * 100) / 100, flags };
7150
+ }
7151
+ }
7152
+ });
7153
+
6938
7154
  // ../shared/dist/extract-decision.js
6939
7155
  var require_extract_decision = __commonJS({
6940
7156
  "../shared/dist/extract-decision.js"(exports) {
@@ -7070,6 +7286,7 @@ var require_dist = __commonJS({
7070
7286
  __exportStar(require_embeddings(), exports);
7071
7287
  __exportStar(require_redact(), exports);
7072
7288
  __exportStar(require_veto_match(), exports);
7289
+ __exportStar(require_trust(), exports);
7073
7290
  __exportStar(require_extract_decision(), exports);
7074
7291
  __exportStar(require_db(), exports);
7075
7292
  }
@@ -22491,6 +22708,9 @@ var init_mcp = __esm({
22491
22708
  // src/config.ts
22492
22709
  import { homedir } from "node:os";
22493
22710
  import { join } from "node:path";
22711
+ function isThinMode(env = process.env) {
22712
+ return env.ROBRAIN_MODE?.trim().toLowerCase() === "cloud";
22713
+ }
22494
22714
  var import_shared, config2;
22495
22715
  var init_config = __esm({
22496
22716
  "src/config.ts"() {
@@ -22699,7 +22919,7 @@ function inferScope(turn, extracted) {
22699
22919
  return "team";
22700
22920
  }
22701
22921
  async function classifyTopicShift(turn, signal) {
22702
- if (config2.topicShiftDisableEmbedding) return null;
22922
+ if (config2.topicShiftDisableEmbedding || isThinMode()) return null;
22703
22923
  const sessionId = turn.session_id;
22704
22924
  const window = embeddingWindows.get(sessionId) ?? [];
22705
22925
  const currentEmbedding = await embed(turn.user_message, signal);
@@ -23062,7 +23282,7 @@ function resolveSessionId(raw) {
23062
23282
  function buildServer() {
23063
23283
  const server = new McpServer({
23064
23284
  name: "sensing-mcp",
23065
- version: "2.4.0"
23285
+ version: "2.4.2"
23066
23286
  });
23067
23287
  server.tool(
23068
23288
  "sensing_start_session",
@@ -23159,6 +23379,16 @@ function buildServer() {
23159
23379
  const projectId = session.project_id;
23160
23380
  setImmediate(async () => {
23161
23381
  try {
23382
+ if (isThinMode()) {
23383
+ const errors = await routeFlushTurns([turn], projectId);
23384
+ if (errors.length === 0) {
23385
+ lastDecisionShipFailure = null;
23386
+ streamBuffer.markClassified(session_id, sequence);
23387
+ } else {
23388
+ lastDecisionShipFailure = `${session_id} seq ${sequence}: ${errors.join("; ")}`;
23389
+ }
23390
+ return;
23391
+ }
23162
23392
  const decisionSignal = await classifyDecision(turn, projectId);
23163
23393
  if (decisionSignal) {
23164
23394
  const outcome = await routeDecisionSignal(decisionSignal, projectId);
@@ -23259,6 +23489,8 @@ function buildServer() {
23259
23489
  content: [{
23260
23490
  type: "text",
23261
23491
  text: JSON.stringify({
23492
+ // Only surfaced in thin mode so full-mode status output stays byte-identical.
23493
+ ...isThinMode() ? { mode: "cloud-thin" } : {},
23262
23494
  session_found: !!session,
23263
23495
  project_id: session?.project_id,
23264
23496
  started_at: session?.started_at,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robrain/sensing-mcp",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js"