sensorium-mcp 3.1.0-refactor.14 → 3.1.0-refactor.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-spawn.service.d.ts","sourceRoot":"","sources":["../../src/services/copilot-spawn.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAgC3B,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAGL,CAAC;AAE3C,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,sBAAsB,EACvC,gBAAgB,CAAC,EAAE,MAAM,EACzB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAC/B,WAAW,CAuDb"}
1
+ {"version":3,"file":"copilot-spawn.service.d.ts","sourceRoot":"","sources":["../../src/services/copilot-spawn.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAsE3B,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAGL,CAAC;AAE3C,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,sBAAsB,EACvC,gBAAgB,CAAC,EAAE,MAAM,EACzB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAC/B,WAAW,CAwDb"}
@@ -4,7 +4,8 @@
4
4
  * (model + optional BYOK / OpenRouter provider).
5
5
  */
6
6
  import { spawn } from "node:child_process";
7
- import { existsSync, mkdirSync, writeFileSync } from "node:fs";
7
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
8
+ import { homedir } from "node:os";
8
9
  import { join } from "node:path";
9
10
  import { getCopilotSpawnEnv, getCopilotCustomEnvVars } from "../config/index.js";
10
11
  import { PROCESS_BASE_DIR } from "./process.service.js";
@@ -25,6 +26,44 @@ function writeCopilotInstructions(copilotHome) {
25
26
  mkdirSync(copilotHome, { recursive: true });
26
27
  writeFileSync(join(copilotHome, "copilot-instructions.md"), "You are a remote Copilot agent. Start remote session with sensorium. Pass agentType='copilot' to start_session.", "utf-8");
27
28
  }
29
+ // The spawned Copilot runs in COPILOT_HOME — shared across all Copilot threads
30
+ // (see buildCopilotMcpConfig's CAVEAT), rewritten on every spawn. That home has
31
+ // no login, so GitHub-native models ("claude-opus-4.8") are rejected as "not
32
+ // available". Mirror ONLY the host's current Copilot identity record — never the
33
+ // OAuth token, which stays in the shared OS credential store — so the home
34
+ // inherits whatever account (personal or corporate) the operator is currently
35
+ // logged into. Read live on every spawn (no caching) so switching the active
36
+ // account is picked up automatically. The mirrored content is deterministic (it
37
+ // depends only on the host config, not the spawning thread), so concurrent spawns
38
+ // racing on this write converge to identical bytes. Silent no-op for BYOK /
39
+ // not-logged-in so those paths never break.
40
+ function writeCopilotIdentity(copilotHome) {
41
+ // The Copilot CLI writes config.json as JSONC — a "// managed automatically"
42
+ // comment header sits above the object. Strip whole-line comments (never the
43
+ // "//" inside "https://…" values, which are not at line start) before parsing.
44
+ const readJson = (path) => {
45
+ try {
46
+ const raw = readFileSync(path, "utf-8").replace(/^\s*\/\/.*$/gm, "");
47
+ return JSON.parse(raw);
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ };
53
+ const hostConfig = readJson(join(homedir(), ".copilot", "config.json"));
54
+ const loggedInUsers = hostConfig?.loggedInUsers;
55
+ if (!Array.isArray(loggedInUsers) || loggedInUsers.length === 0)
56
+ return;
57
+ mkdirSync(copilotHome, { recursive: true });
58
+ const targetPath = join(copilotHome, "config.json");
59
+ const existing = readJson(targetPath) ?? {};
60
+ const merged = {
61
+ ...existing,
62
+ loggedInUsers,
63
+ lastLoggedInUser: hostConfig?.lastLoggedInUser,
64
+ };
65
+ writeFileSync(targetPath, JSON.stringify(merged, null, 2), "utf-8");
66
+ }
28
67
  function ensureCopilotWorkspace(baseDir) {
29
68
  const wsDir = join(baseDir, "copilot-workspace");
30
69
  mkdirSync(wsDir, { recursive: true });
@@ -45,6 +84,7 @@ export function spawnCopilotProcess(copilotPath, name, threadId, threadLifecycle
45
84
  const copilotHomeDir = join(PROCESS_BASE_DIR, COPILOT_HOME_DIR);
46
85
  buildCopilotMcpConfig(pre.transport, copilotHomeDir, threadId);
47
86
  writeCopilotInstructions(copilotHomeDir);
87
+ writeCopilotIdentity(copilotHomeDir);
48
88
  const logFilePath = buildThreadLogPath(name, threadId, "json");
49
89
  return launchAgentChild({
50
90
  threadId,
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-spawn.service.js","sourceRoot":"","sources":["../../src/services/copilot-spawn.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot-spawn.service.js","sourceRoot":"","sources":["../../src/services/copilot-spawn.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sensorium-mcp",
3
- "version": "3.1.0-refactor.14",
3
+ "version": "3.1.0-refactor.15",
4
4
  "description": "MCP server for remote control of AI assistants via Telegram",
5
5
  "main": "dist/index.js",
6
6
  "bin": {