borgmcp 0.9.30 → 0.9.33
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/assimilate-cmd.d.ts +19 -1
- package/dist/assimilate-cmd.d.ts.map +1 -1
- package/dist/assimilate-cmd.js +86 -12
- package/dist/assimilate-cmd.js.map +1 -1
- package/dist/assimilate-deps.d.ts.map +1 -1
- package/dist/assimilate-deps.js +30 -3
- package/dist/assimilate-deps.js.map +1 -1
- package/dist/claude.js +145 -17
- package/dist/claude.js.map +1 -1
- package/dist/cli-platform.d.ts +22 -0
- package/dist/cli-platform.d.ts.map +1 -0
- package/dist/cli-platform.js +94 -0
- package/dist/cli-platform.js.map +1 -0
- package/dist/codex-app-server.d.ts +35 -0
- package/dist/codex-app-server.d.ts.map +1 -0
- package/dist/codex-app-server.js +228 -0
- package/dist/codex-app-server.js.map +1 -0
- package/dist/codex-app-wake.d.ts +17 -0
- package/dist/codex-app-wake.d.ts.map +1 -0
- package/dist/codex-app-wake.js +78 -0
- package/dist/codex-app-wake.js.map +1 -0
- package/dist/codex-remote.d.ts +13 -0
- package/dist/codex-remote.d.ts.map +1 -0
- package/dist/codex-remote.js +56 -0
- package/dist/codex-remote.js.map +1 -0
- package/dist/config-utils.d.ts +5 -0
- package/dist/config-utils.d.ts.map +1 -1
- package/dist/config-utils.js +104 -0
- package/dist/config-utils.js.map +1 -1
- package/dist/cubes.d.ts +10 -0
- package/dist/cubes.d.ts.map +1 -1
- package/dist/cubes.js +101 -0
- package/dist/cubes.js.map +1 -1
- package/dist/inbox-monitor.js +0 -0
- package/dist/index.js +40 -18
- package/dist/index.js.map +1 -1
- package/dist/log-audit.js +25 -1
- package/dist/log-audit.js.map +1 -1
- package/dist/log-stream.d.ts +15 -5
- package/dist/log-stream.d.ts.map +1 -1
- package/dist/log-stream.js +113 -8
- package/dist/log-stream.js.map +1 -1
- package/dist/parse-assimilate-args.d.ts.map +1 -1
- package/dist/parse-assimilate-args.js +16 -1
- package/dist/parse-assimilate-args.js.map +1 -1
- package/dist/regen-format.d.ts +1 -0
- package/dist/regen-format.d.ts.map +1 -1
- package/dist/regen-format.js +10 -4
- package/dist/regen-format.js.map +1 -1
- package/dist/regen.js +0 -0
- package/dist/remote-client.d.ts +8 -0
- package/dist/remote-client.d.ts.map +1 -1
- package/dist/remote-client.js +8 -0
- package/dist/remote-client.js.map +1 -1
- package/dist/setup.js +50 -64
- package/dist/setup.js.map +1 -1
- package/dist/stream-owner.d.ts +39 -0
- package/dist/stream-owner.d.ts.map +1 -0
- package/dist/stream-owner.js +202 -0
- package/dist/stream-owner.js.map +1 -0
- package/dist/stream-status.d.ts.map +1 -1
- package/dist/stream-status.js +17 -2
- package/dist/stream-status.js.map +1 -1
- package/dist/templates.d.ts +8 -8
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +112 -338
- package/dist/templates.js.map +1 -1
- package/package.json +2 -1
package/dist/config-utils.d.ts
CHANGED
|
@@ -62,6 +62,7 @@ export declare function removeUserPromptSubmitHook(): boolean;
|
|
|
62
62
|
* @param configPath Override the config-file path; primarily for tests.
|
|
63
63
|
*/
|
|
64
64
|
export declare function isMcpServerConfigured(configPath?: string): boolean;
|
|
65
|
+
export declare function isCodexMcpServerConfigured(configPath?: string): boolean;
|
|
65
66
|
/**
|
|
66
67
|
* Get absolute path to borg index.js
|
|
67
68
|
* Returns the actual index.js file, not the npm symlink
|
|
@@ -73,4 +74,8 @@ export declare function getBinaryPath(): string;
|
|
|
73
74
|
* Runs: claude mcp remove --scope user borg && claude mcp add --scope user borg borg-mcp
|
|
74
75
|
*/
|
|
75
76
|
export declare function addMcpServer(): void;
|
|
77
|
+
export declare function addCodexMcpServer(): void;
|
|
78
|
+
export declare function addCodexSessionStartHook(): boolean;
|
|
79
|
+
export declare function addCodexUserPromptSubmitHook(): boolean;
|
|
80
|
+
export declare function isCodexHookRegistered(eventName: 'SessionStart' | 'UserPromptSubmit' | 'Stop', command: string, hooksPath?: string): boolean;
|
|
76
81
|
//# sourceMappingURL=config-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-utils.d.ts","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"config-utils.d.ts","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4DH;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyB7C;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAatD;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CA+BhD;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAyBjD;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CA+BpD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,GAAE,MAA2B,GACtC,OAAO,CAaT;AAED,wBAAgB,0BAA0B,CACxC,UAAU,GAAE,MAA0B,GACrC,OAAO,CAWT;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAyBnC;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAyBxC;AAoCD,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAEtD;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,cAAc,GAAG,kBAAkB,GAAG,MAAM,EACvD,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAyB,GACnC,OAAO,CAYT"}
|
package/dist/config-utils.js
CHANGED
|
@@ -24,6 +24,8 @@ const AUDIT_HOOK_COMMAND = 'borg-log-audit';
|
|
|
24
24
|
* which is the Claude Desktop app's config (different product).
|
|
25
25
|
*/
|
|
26
26
|
const CLAUDE_CONFIG_PATH = path.join(os.homedir(), '.claude.json');
|
|
27
|
+
const CODEX_CONFIG_PATH = path.join(os.homedir(), '.codex', 'config.toml');
|
|
28
|
+
const CODEX_HOOKS_PATH = path.join(os.homedir(), '.codex', 'hooks.json');
|
|
27
29
|
const MCP_SERVER_NAME = 'borg';
|
|
28
30
|
function settingsPath() {
|
|
29
31
|
return path.join(os.homedir(), '.claude', 'settings.json');
|
|
@@ -42,6 +44,18 @@ function writeSettings(settings) {
|
|
|
42
44
|
fs.mkdirSync(path.dirname(p), { recursive: true });
|
|
43
45
|
fs.writeFileSync(p, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
|
|
44
46
|
}
|
|
47
|
+
function readJsonFile(p) {
|
|
48
|
+
if (!fs.existsSync(p))
|
|
49
|
+
return {};
|
|
50
|
+
const text = fs.readFileSync(p, 'utf-8');
|
|
51
|
+
if (!text.trim())
|
|
52
|
+
return {};
|
|
53
|
+
return JSON.parse(text);
|
|
54
|
+
}
|
|
55
|
+
function writeJsonFile(p, data) {
|
|
56
|
+
fs.mkdirSync(path.dirname(p), { recursive: true });
|
|
57
|
+
fs.writeFileSync(p, JSON.stringify(data, null, 2) + '\n', 'utf-8');
|
|
58
|
+
}
|
|
45
59
|
/**
|
|
46
60
|
* Register a Claude Code SessionStart hook that runs `borg-regen` at the
|
|
47
61
|
* start of every session. Idempotent: re-running won't add duplicates.
|
|
@@ -238,6 +252,18 @@ export function isMcpServerConfigured(configPath = CLAUDE_CONFIG_PATH) {
|
|
|
238
252
|
return false;
|
|
239
253
|
}
|
|
240
254
|
}
|
|
255
|
+
export function isCodexMcpServerConfigured(configPath = CODEX_CONFIG_PATH) {
|
|
256
|
+
try {
|
|
257
|
+
if (!fs.existsSync(configPath))
|
|
258
|
+
return false;
|
|
259
|
+
const text = fs.readFileSync(configPath, 'utf-8');
|
|
260
|
+
return (/^\s*\[mcp_servers\.borg\]\s*$/m.test(text) &&
|
|
261
|
+
/^\s*BORG_CODEX_REMOTE_WAKE\s*=\s*"1"\s*$/m.test(text));
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
241
267
|
/**
|
|
242
268
|
* Get absolute path to borg index.js
|
|
243
269
|
* Returns the actual index.js file, not the npm symlink
|
|
@@ -278,4 +304,82 @@ export function addMcpServer() {
|
|
|
278
304
|
throw new Error(`Failed to add MCP server: ${error.message}`);
|
|
279
305
|
}
|
|
280
306
|
}
|
|
307
|
+
export function addCodexMcpServer() {
|
|
308
|
+
try {
|
|
309
|
+
try {
|
|
310
|
+
execSync('codex mcp remove borg', { stdio: 'ignore' });
|
|
311
|
+
}
|
|
312
|
+
catch {
|
|
313
|
+
// Ignore - server might not exist yet.
|
|
314
|
+
}
|
|
315
|
+
execSync('codex mcp add borg --env BORG_API_URL=' +
|
|
316
|
+
shellQuote(process.env.BORG_API_URL || 'https://api.borgmcp.ai') +
|
|
317
|
+
' --env BORG_CODEX_REMOTE_WAKE=1' +
|
|
318
|
+
' -- borg-mcp', {
|
|
319
|
+
stdio: 'inherit',
|
|
320
|
+
env: {
|
|
321
|
+
...process.env,
|
|
322
|
+
BORG_API_URL: process.env.BORG_API_URL || 'https://api.borgmcp.ai',
|
|
323
|
+
BORG_CODEX_REMOTE_WAKE: '1',
|
|
324
|
+
},
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
if (error.message?.includes('command not found')) {
|
|
329
|
+
throw new Error('Codex CLI not found. Please install Codex first.');
|
|
330
|
+
}
|
|
331
|
+
throw new Error(`Failed to add MCP server to Codex: ${error.message}`);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
function shellQuote(value) {
|
|
335
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
336
|
+
}
|
|
337
|
+
function addCodexHook(eventName, command, options = {}) {
|
|
338
|
+
let hooksFile;
|
|
339
|
+
try {
|
|
340
|
+
hooksFile = readJsonFile(CODEX_HOOKS_PATH);
|
|
341
|
+
}
|
|
342
|
+
catch (err) {
|
|
343
|
+
console.error(`⚠ Could not parse ${CODEX_HOOKS_PATH}: ${err.message}. Skipping Codex hook registration.`);
|
|
344
|
+
return false;
|
|
345
|
+
}
|
|
346
|
+
hooksFile.hooks ??= {};
|
|
347
|
+
hooksFile.hooks[eventName] ??= [];
|
|
348
|
+
const entries = hooksFile.hooks[eventName];
|
|
349
|
+
if (!Array.isArray(entries))
|
|
350
|
+
return false;
|
|
351
|
+
const alreadyPresent = entries.some((entry) => Array.isArray(entry?.hooks) &&
|
|
352
|
+
entry.hooks.some((h) => h?.type === 'command' && h?.command === command));
|
|
353
|
+
if (alreadyPresent)
|
|
354
|
+
return false;
|
|
355
|
+
const entry = {
|
|
356
|
+
hooks: [{ type: 'command', command }],
|
|
357
|
+
};
|
|
358
|
+
if (options.matcher)
|
|
359
|
+
entry.matcher = options.matcher;
|
|
360
|
+
if (typeof options.timeout === 'number')
|
|
361
|
+
entry.hooks[0].timeout = options.timeout;
|
|
362
|
+
entries.push(entry);
|
|
363
|
+
writeJsonFile(CODEX_HOOKS_PATH, hooksFile);
|
|
364
|
+
return true;
|
|
365
|
+
}
|
|
366
|
+
export function addCodexSessionStartHook() {
|
|
367
|
+
return addCodexHook('SessionStart', HOOK_COMMAND, { matcher: 'startup|resume', timeout: 30 });
|
|
368
|
+
}
|
|
369
|
+
export function addCodexUserPromptSubmitHook() {
|
|
370
|
+
return addCodexHook('UserPromptSubmit', AUDIT_HOOK_COMMAND, { timeout: 10 });
|
|
371
|
+
}
|
|
372
|
+
export function isCodexHookRegistered(eventName, command, hooksPath = CODEX_HOOKS_PATH) {
|
|
373
|
+
try {
|
|
374
|
+
const parsed = readJsonFile(hooksPath);
|
|
375
|
+
const arr = parsed?.hooks?.[eventName];
|
|
376
|
+
if (!Array.isArray(arr))
|
|
377
|
+
return false;
|
|
378
|
+
return arr.some((entry) => Array.isArray(entry?.hooks) &&
|
|
379
|
+
entry.hooks.some((h) => h?.type === 'command' && h?.command === command));
|
|
380
|
+
}
|
|
381
|
+
catch {
|
|
382
|
+
return false;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
281
385
|
//# sourceMappingURL=config-utils.js.map
|
package/dist/config-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-utils.js","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-utils.js","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/cubes.d.ts
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* SessionStart hook firing borg-regen) don't need BORG_API_URL in their env
|
|
16
16
|
* to know which worker to talk to.
|
|
17
17
|
*/
|
|
18
|
+
export type BorgCli = 'claude' | 'codex';
|
|
18
19
|
export interface ActiveCube {
|
|
19
20
|
cubeId: string;
|
|
20
21
|
droneId: string;
|
|
@@ -23,6 +24,11 @@ export interface ActiveCube {
|
|
|
23
24
|
droneLabel: string;
|
|
24
25
|
apiUrl: string;
|
|
25
26
|
}
|
|
27
|
+
export interface CodexWakeTargetRecord {
|
|
28
|
+
threadId: string;
|
|
29
|
+
socketPath: string;
|
|
30
|
+
updatedAt: string;
|
|
31
|
+
}
|
|
26
32
|
/**
|
|
27
33
|
* Walk up from cwd looking for a .git directory. If found, return that
|
|
28
34
|
* directory. If not found by filesystem root, return the original cwd.
|
|
@@ -48,4 +54,8 @@ export declare function setActiveCube(active: ActiveCube): Promise<void>;
|
|
|
48
54
|
* an empty {projects:{}} skeleton.
|
|
49
55
|
*/
|
|
50
56
|
export declare function clearActiveCube(): Promise<void>;
|
|
57
|
+
export declare function getProjectCliPreference(): Promise<BorgCli | null>;
|
|
58
|
+
export declare function setProjectCliPreference(cli: BorgCli): Promise<void>;
|
|
59
|
+
export declare function setCodexWakeTarget(cubeId: string, droneId: string, target: Omit<CodexWakeTargetRecord, 'updatedAt'>): Promise<void>;
|
|
60
|
+
export declare function getCodexWakeTarget(cubeId: string, droneId: string): Promise<CodexWakeTargetRecord | null>;
|
|
51
61
|
//# sourceMappingURL=cubes.d.ts.map
|
package/dist/cubes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cubes.d.ts","sourceRoot":"","sources":["../src/cubes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"cubes.d.ts","sourceRoot":"","sources":["../src/cubes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAUD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAQnE;AAiBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIzE;AA0HD;;;;;GAKG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAQhE;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAerD;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAKvE;AAED,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzE;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAQvC"}
|
package/dist/cubes.js
CHANGED
|
@@ -21,6 +21,8 @@ import { homedir } from 'node:os';
|
|
|
21
21
|
import { dirname, join, resolve } from 'node:path';
|
|
22
22
|
const CUBES_DIR = join(homedir(), '.config', 'borgmcp');
|
|
23
23
|
const CUBES_FILE = join(CUBES_DIR, 'cubes.json');
|
|
24
|
+
const LAUNCH_FILE = join(CUBES_DIR, 'launch.json');
|
|
25
|
+
const CODEX_WAKE_TARGETS_FILE = join(CUBES_DIR, 'codex-wake-targets.json');
|
|
24
26
|
const INBOX_DIR = join(CUBES_DIR, 'inboxes');
|
|
25
27
|
/**
|
|
26
28
|
* Walk up from cwd looking for a .git directory. If found, return that
|
|
@@ -106,6 +108,75 @@ async function writeCubesFile(data) {
|
|
|
106
108
|
mode: 0o600,
|
|
107
109
|
});
|
|
108
110
|
}
|
|
111
|
+
function isLaunchFile(data) {
|
|
112
|
+
return (data !== null &&
|
|
113
|
+
typeof data === 'object' &&
|
|
114
|
+
typeof data.projects === 'object' &&
|
|
115
|
+
data.projects !== null &&
|
|
116
|
+
!Array.isArray(data.projects));
|
|
117
|
+
}
|
|
118
|
+
async function readLaunchFile() {
|
|
119
|
+
let raw;
|
|
120
|
+
try {
|
|
121
|
+
raw = await readFile(LAUNCH_FILE, 'utf8');
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
if (error?.code === 'ENOENT')
|
|
125
|
+
return null;
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
const parsed = JSON.parse(raw);
|
|
130
|
+
return isLaunchFile(parsed) ? parsed : null;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async function writeLaunchFile(data) {
|
|
137
|
+
await mkdir(dirname(LAUNCH_FILE), { recursive: true });
|
|
138
|
+
await writeFile(LAUNCH_FILE, JSON.stringify(data, null, 2) + '\n', {
|
|
139
|
+
mode: 0o600,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
function codexWakeTargetKey(cubeId, droneId) {
|
|
143
|
+
if (!UUID_RE.test(cubeId))
|
|
144
|
+
throw new Error(`Invalid cubeId: ${cubeId}`);
|
|
145
|
+
if (!UUID_RE.test(droneId))
|
|
146
|
+
throw new Error(`Invalid droneId: ${droneId}`);
|
|
147
|
+
return `${cubeId}:${droneId}`;
|
|
148
|
+
}
|
|
149
|
+
function isCodexWakeTargetsFile(data) {
|
|
150
|
+
return (data !== null &&
|
|
151
|
+
typeof data === 'object' &&
|
|
152
|
+
typeof data.targets === 'object' &&
|
|
153
|
+
data.targets !== null &&
|
|
154
|
+
!Array.isArray(data.targets));
|
|
155
|
+
}
|
|
156
|
+
async function readCodexWakeTargetsFile() {
|
|
157
|
+
let raw;
|
|
158
|
+
try {
|
|
159
|
+
raw = await readFile(CODEX_WAKE_TARGETS_FILE, 'utf8');
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
if (error?.code === 'ENOENT')
|
|
163
|
+
return null;
|
|
164
|
+
throw error;
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
const parsed = JSON.parse(raw);
|
|
168
|
+
return isCodexWakeTargetsFile(parsed) ? parsed : null;
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async function writeCodexWakeTargetsFile(data) {
|
|
175
|
+
await mkdir(dirname(CODEX_WAKE_TARGETS_FILE), { recursive: true });
|
|
176
|
+
await writeFile(CODEX_WAKE_TARGETS_FILE, JSON.stringify(data, null, 2) + '\n', {
|
|
177
|
+
mode: 0o600,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
109
180
|
/**
|
|
110
181
|
* Get the currently-active cube for the current project, or null if not
|
|
111
182
|
* assimilated in this project. Entries written by older client versions
|
|
@@ -158,4 +229,34 @@ export async function clearActiveCube() {
|
|
|
158
229
|
}
|
|
159
230
|
await writeCubesFile(existing);
|
|
160
231
|
}
|
|
232
|
+
export async function getProjectCliPreference() {
|
|
233
|
+
const data = await readLaunchFile();
|
|
234
|
+
if (!data)
|
|
235
|
+
return null;
|
|
236
|
+
const entry = data.projects[findProjectRoot()];
|
|
237
|
+
return entry?.cli === 'claude' || entry?.cli === 'codex' ? entry.cli : null;
|
|
238
|
+
}
|
|
239
|
+
export async function setProjectCliPreference(cli) {
|
|
240
|
+
const existing = (await readLaunchFile()) ?? { projects: {} };
|
|
241
|
+
existing.projects[findProjectRoot()] = { cli };
|
|
242
|
+
await writeLaunchFile(existing);
|
|
243
|
+
}
|
|
244
|
+
export async function setCodexWakeTarget(cubeId, droneId, target) {
|
|
245
|
+
const existing = (await readCodexWakeTargetsFile()) ?? { targets: {} };
|
|
246
|
+
existing.targets[codexWakeTargetKey(cubeId, droneId)] = {
|
|
247
|
+
...target,
|
|
248
|
+
updatedAt: new Date().toISOString(),
|
|
249
|
+
};
|
|
250
|
+
await writeCodexWakeTargetsFile(existing);
|
|
251
|
+
}
|
|
252
|
+
export async function getCodexWakeTarget(cubeId, droneId) {
|
|
253
|
+
const existing = await readCodexWakeTargetsFile();
|
|
254
|
+
if (!existing)
|
|
255
|
+
return null;
|
|
256
|
+
const target = existing.targets[codexWakeTargetKey(cubeId, droneId)];
|
|
257
|
+
if (!target || typeof target.threadId !== 'string' || typeof target.socketPath !== 'string') {
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
return target;
|
|
261
|
+
}
|
|
161
262
|
//# sourceMappingURL=cubes.js.map
|
package/dist/cubes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cubes.js","sourceRoot":"","sources":["../src/cubes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACxD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cubes.js","sourceRoot":"","sources":["../src/cubes.ts"],"names":[],"mappings":"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"}
|
package/dist/inbox-monitor.js
CHANGED
|
File without changes
|
package/dist/index.js
CHANGED
|
@@ -13,17 +13,18 @@
|
|
|
13
13
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
14
14
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
15
15
|
import { CallToolRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
16
|
-
import { assimilate, getCubeInfo, getRoleInfo, getRoster, readLog, appendLog, ackLogEntry, regen, listCubes, createCube, updateCube, deleteCube, createRole, updateRole, deleteRole, reassignDrone, getCube, checkSubscriptionStatus, createSubscription, syncRoles, API_URL, } from './remote-client.js';
|
|
16
|
+
import { assimilate, getCubeInfo, getRoleInfo, getRoster, readLog, appendLog, ackLogEntry, regen, listCubes, createCube, updateCube, deleteCube, createRole, updateRole, deleteRole, reassignDrone, getCube, checkSubscriptionStatus, createSubscription, syncRoles, whoami, API_URL, } from './remote-client.js';
|
|
17
17
|
import { getTemplate, listTemplateNames, resolveGroundRulesForCreate, resolveGroundRulesForApply, } from './templates.js';
|
|
18
18
|
import { getActiveCube, setActiveCube, inboxPathForDrone } from './cubes.js';
|
|
19
19
|
import { addSessionStartHook, addUserPromptSubmitHook } from './config-utils.js';
|
|
20
|
-
import { humanAgo, formatRegenMarkdown, getDronePlaybook } from './regen-format.js';
|
|
20
|
+
import { humanAgo, formatLogEntryMarkdown, formatRegenMarkdown, getDronePlaybook } from './regen-format.js';
|
|
21
21
|
import { startLogStream, getStreamStatus } from './log-stream.js';
|
|
22
22
|
import { renderRoleList } from './list-roles-render.js';
|
|
23
23
|
import { getPackageVersion, getOnDiskVersion, handleVersionFlag } from './version.js';
|
|
24
24
|
import { renderStreamStatus, checkInboxMonitorHealthy, formatWakePathPrefix, shouldShowWakePathWarning, } from './stream-status.js';
|
|
25
25
|
import { renderRoster } from './roster-render.js';
|
|
26
26
|
import { initConsolePrefix, consolePrefix } from './console-prefix.js';
|
|
27
|
+
import { isCodexRemoteWakeEnabled } from './codex-app-wake.js';
|
|
27
28
|
import open from 'open';
|
|
28
29
|
import os from 'os';
|
|
29
30
|
/**
|
|
@@ -225,6 +226,15 @@ async function main() {
|
|
|
225
226
|
required: [],
|
|
226
227
|
},
|
|
227
228
|
},
|
|
229
|
+
{
|
|
230
|
+
name: 'borg:whoami',
|
|
231
|
+
description: 'Returns your identity in the current cube: cube name, drone label, and role name. Use to confirm which cube/role/drone you are.',
|
|
232
|
+
inputSchema: {
|
|
233
|
+
type: 'object',
|
|
234
|
+
properties: {},
|
|
235
|
+
required: [],
|
|
236
|
+
},
|
|
237
|
+
},
|
|
228
238
|
{
|
|
229
239
|
name: 'borg:roster',
|
|
230
240
|
description: "List all currently connected drones in your cube, with each drone's label, role, and last-seen time. Optional `since` argument adds a sender-side liveness column — pass either an activity_log entry id (e.g., from a dispatch you posted) or an ISO-8601 timestamp; each drone is marked `awake` if they've posted a log entry after that point, otherwise `stale-since-X`. Useful for confirming a dispatch reached its named recipients (catches the silent-wake-path-failure class where SSE delivered but the drone's /loop never woke).",
|
|
@@ -497,7 +507,9 @@ async function main() {
|
|
|
497
507
|
// State-5 self-arm instruction in stream-status.ts.
|
|
498
508
|
const streamStatus = getStreamStatus();
|
|
499
509
|
const inboxPath = inboxPathForDrone(active.cubeId, active.droneId);
|
|
500
|
-
const inboxMonitorHealthy =
|
|
510
|
+
const inboxMonitorHealthy = isCodexRemoteWakeEnabled()
|
|
511
|
+
? true
|
|
512
|
+
: checkInboxMonitorHealthy(inboxPath);
|
|
501
513
|
const prefix = shouldShowWakePathWarning(streamStatus, inboxMonitorHealthy)
|
|
502
514
|
? formatWakePathPrefix({
|
|
503
515
|
inboxPath,
|
|
@@ -587,19 +599,28 @@ async function main() {
|
|
|
587
599
|
apiUrl,
|
|
588
600
|
});
|
|
589
601
|
const inboxPath = inboxPathForDrone(result.cube.id, result.drone.id);
|
|
602
|
+
const wakeHelp = isCodexRemoteWakeEnabled()
|
|
603
|
+
? [
|
|
604
|
+
`## Real-time wake-up`,
|
|
605
|
+
`Codex remote-control wake is enabled for this MCP server. Incoming cube-log entries are delivered through the Codex app-server remote-control path; no Claude Monitor or inbox tail is required.`,
|
|
606
|
+
``,
|
|
607
|
+
]
|
|
608
|
+
: [
|
|
609
|
+
`## Real-time wake-up (do this now)`,
|
|
610
|
+
`If \`/loop\` is already running in this session without an inbox Monitor (typical when borg was launched before assimilating), arm one now so you wake the moment another drone posts to the cube:`,
|
|
611
|
+
``,
|
|
612
|
+
`> Monitor command: \`tail -n 0 -F ${inboxPath}\` — persistent, 1h timeout, description "borg inbox for ${result.drone.label} on cube ${result.cube.name}".`,
|
|
613
|
+
``,
|
|
614
|
+
`Without this, you only wake on the 30-min fallback heartbeat and miss live coordination from other drones. Skip if \`/loop\` is not running in this session.`,
|
|
615
|
+
``,
|
|
616
|
+
];
|
|
590
617
|
const text = [
|
|
591
618
|
`# Assimilated to cube: ${result.cube.name}`,
|
|
592
619
|
``,
|
|
593
620
|
`**Drone label:** ${result.drone.label}`,
|
|
594
621
|
`**Assigned role:** ${result.role.name}`,
|
|
595
622
|
``,
|
|
596
|
-
|
|
597
|
-
`If \`/loop\` is already running in this session without an inbox Monitor (typical when borg was launched before assimilating), arm one now so you wake the moment another drone posts to the cube:`,
|
|
598
|
-
``,
|
|
599
|
-
`> Monitor command: \`tail -n 0 -F ${inboxPath}\` — persistent, 1h timeout, description "borg inbox for ${result.drone.label} on cube ${result.cube.name}".`,
|
|
600
|
-
``,
|
|
601
|
-
`Without this, you only wake on the 30-min fallback heartbeat and miss live coordination from other drones. Skip if \`/loop\` is not running in this session.`,
|
|
602
|
-
``,
|
|
623
|
+
...wakeHelp,
|
|
603
624
|
`## Cube directive`,
|
|
604
625
|
result.cube.ground_rules || '_(none)_',
|
|
605
626
|
``,
|
|
@@ -613,6 +634,11 @@ async function main() {
|
|
|
613
634
|
case 'borg:version': {
|
|
614
635
|
return { content: [{ type: 'text', text: `borgmcp ${getPackageVersion()}` }] };
|
|
615
636
|
}
|
|
637
|
+
case 'borg:whoami': {
|
|
638
|
+
const active = await requireActiveCube();
|
|
639
|
+
const result = await whoami(active.sessionToken, active.apiUrl);
|
|
640
|
+
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
641
|
+
}
|
|
616
642
|
case 'borg:cube': {
|
|
617
643
|
// No-cache invariant (T1.2 — 0.7.0): both `getCubeInfo` and
|
|
618
644
|
// `getRoleInfo` MUST fetch fresh per invocation. Never
|
|
@@ -708,7 +734,9 @@ async function main() {
|
|
|
708
734
|
? inboxPathForDrone(active.cubeId, active.droneId)
|
|
709
735
|
: null;
|
|
710
736
|
const inboxMonitorHealthy = active
|
|
711
|
-
?
|
|
737
|
+
? isCodexRemoteWakeEnabled()
|
|
738
|
+
? true
|
|
739
|
+
: checkInboxMonitorHealthy(inboxPath)
|
|
712
740
|
: null;
|
|
713
741
|
let silentInertWarning = '';
|
|
714
742
|
if (status.runLoopHealth === 'silent-inert') {
|
|
@@ -749,13 +777,7 @@ async function main() {
|
|
|
749
777
|
}
|
|
750
778
|
else {
|
|
751
779
|
for (const e of entries) {
|
|
752
|
-
|
|
753
|
-
const droneLabel = drone?.label ?? 'unknown-drone';
|
|
754
|
-
const roleName = drone ? roleById.get(drone.role_id)?.name ?? 'unknown' : 'unknown';
|
|
755
|
-
const ts = typeof e.created_at === 'string'
|
|
756
|
-
? e.created_at
|
|
757
|
-
: new Date(e.created_at).toISOString();
|
|
758
|
-
lines.push(`**[${ts}]** ${droneLabel} (${roleName}): ${e.message}`);
|
|
780
|
+
lines.push(formatLogEntryMarkdown(e, droneById, roleById));
|
|
759
781
|
}
|
|
760
782
|
}
|
|
761
783
|
return { content: [{ type: 'text', text: lines.join('\n') }] };
|