foundr-companion 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge/adapters.d.mts +33 -0
- package/dist/bridge/adapters.d.mts.map +1 -0
- package/dist/bridge/adapters.mjs +159 -0
- package/dist/bridge/adapters.mjs.map +1 -0
- package/dist/bridge/bridge-auth.d.mts +5 -0
- package/dist/bridge/bridge-auth.d.mts.map +1 -0
- package/dist/bridge/bridge-auth.mjs +24 -0
- package/dist/bridge/bridge-auth.mjs.map +1 -0
- package/dist/bridge/codex-app-server-adapter.d.mts +37 -0
- package/dist/bridge/codex-app-server-adapter.d.mts.map +1 -0
- package/dist/bridge/codex-app-server-adapter.mjs +401 -0
- package/dist/bridge/codex-app-server-adapter.mjs.map +1 -0
- package/dist/bridge/daemon.mjs +190 -0
- package/dist/bridge/foundr-codex-reply.d.mts +96 -0
- package/dist/bridge/foundr-codex-reply.d.mts.map +1 -0
- package/dist/bridge/foundr-codex-reply.mjs +542 -0
- package/dist/bridge/foundr-codex-reply.mjs.map +1 -0
- package/dist/bridge/listener-flags.d.mts +5 -0
- package/dist/bridge/listener-flags.d.mts.map +1 -0
- package/dist/bridge/listener-flags.mjs +18 -0
- package/dist/bridge/listener-flags.mjs.map +1 -0
- package/dist/bridge/listener-loop.d.mts +58 -0
- package/dist/bridge/listener-loop.d.mts.map +1 -0
- package/dist/bridge/listener-loop.mjs +424 -0
- package/dist/bridge/listener-loop.mjs.map +1 -0
- package/dist/bridge/logout.d.mts +8 -0
- package/dist/bridge/logout.d.mts.map +1 -0
- package/dist/bridge/logout.mjs +35 -0
- package/dist/bridge/logout.mjs.map +1 -0
- package/dist/bridge/mcp-client.d.mts +97 -0
- package/dist/bridge/mcp-client.d.mts.map +1 -0
- package/dist/bridge/mcp-client.mjs +290 -0
- package/dist/bridge/mcp-client.mjs.map +1 -0
- package/dist/bridge/oauth-provider.d.mts +32 -0
- package/dist/bridge/oauth-provider.d.mts.map +1 -0
- package/dist/bridge/oauth-provider.mjs +94 -0
- package/dist/bridge/oauth-provider.mjs.map +1 -0
- package/dist/bridge/public-room-mention-listener-loop.d.mts +120 -0
- package/dist/bridge/public-room-mention-listener-loop.d.mts.map +1 -0
- package/dist/bridge/public-room-mention-listener-loop.mjs +225 -0
- package/dist/bridge/public-room-mention-listener-loop.mjs.map +1 -0
- package/dist/bridge/realtime-wake.d.mts +11 -0
- package/dist/bridge/realtime-wake.d.mts.map +1 -0
- package/dist/bridge/realtime-wake.mjs +134 -0
- package/dist/bridge/realtime-wake.mjs.map +1 -0
- package/dist/bridge/work-mission-listener-loop.d.mts +100 -0
- package/dist/bridge/work-mission-listener-loop.d.mts.map +1 -0
- package/dist/bridge/work-mission-listener-loop.mjs +737 -0
- package/dist/bridge/work-mission-listener-loop.mjs.map +1 -0
- package/dist/cli-parse.d.ts +27 -0
- package/dist/cli-parse.d.ts.map +1 -0
- package/dist/cli-parse.js +47 -0
- package/dist/cli-parse.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +232 -0
- package/dist/cli.js.map +1 -0
- package/dist/codex-preflight.d.ts +44 -0
- package/dist/codex-preflight.d.ts.map +1 -0
- package/dist/codex-preflight.js +74 -0
- package/dist/codex-preflight.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/launchd.d.ts +78 -0
- package/dist/launchd.d.ts.map +1 -0
- package/dist/launchd.js +118 -0
- package/dist/launchd.js.map +1 -0
- package/dist/paths.d.ts +30 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +26 -0
- package/dist/paths.js.map +1 -0
- package/install.sh +117 -0
- package/package.json +29 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-mission-listener-loop.mjs","sourceRoot":"","sources":["../../src/bridge/work-mission-listener-loop.mjs"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure parsing for the `foundr` CLI. Kept side-effect-free so command dispatch
|
|
3
|
+
* is fully testable; `cli.ts` is the thin shell that maps a ParsedCli to an
|
|
4
|
+
* action.
|
|
5
|
+
*/
|
|
6
|
+
export declare const COMMANDS: readonly ["login", "logout", "codex", "install", "uninstall", "start", "stop", "restart", "status", "update", "run"];
|
|
7
|
+
export type Command = (typeof COMMANDS)[number];
|
|
8
|
+
export type ParsedCli = {
|
|
9
|
+
kind: 'help';
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'version';
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'command';
|
|
14
|
+
command: Command;
|
|
15
|
+
args: string[];
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'unknown';
|
|
18
|
+
input: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @param argv arguments AFTER the node + script (i.e. `process.argv.slice(2)`).
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseCli(argv: string[]): ParsedCli;
|
|
24
|
+
/** Extract a `--flag value` / `--flag=value` string option from arg list. */
|
|
25
|
+
export declare function readOption(args: string[], flag: string): string | undefined;
|
|
26
|
+
export declare function hasFlag(args: string[], flag: string): boolean;
|
|
27
|
+
//# sourceMappingURL=cli-parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parse.d.ts","sourceRoot":"","sources":["../src/cli-parse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,QAAQ,sHAYX,CAAA;AAEV,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/C,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAQlD;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO3E;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure parsing for the `foundr` CLI. Kept side-effect-free so command dispatch
|
|
3
|
+
* is fully testable; `cli.ts` is the thin shell that maps a ParsedCli to an
|
|
4
|
+
* action.
|
|
5
|
+
*/
|
|
6
|
+
export const COMMANDS = [
|
|
7
|
+
'login',
|
|
8
|
+
'logout',
|
|
9
|
+
'codex',
|
|
10
|
+
'install',
|
|
11
|
+
'uninstall',
|
|
12
|
+
'start',
|
|
13
|
+
'stop',
|
|
14
|
+
'restart',
|
|
15
|
+
'status',
|
|
16
|
+
'update',
|
|
17
|
+
'run',
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* @param argv arguments AFTER the node + script (i.e. `process.argv.slice(2)`).
|
|
21
|
+
*/
|
|
22
|
+
export function parseCli(argv) {
|
|
23
|
+
const [cmd, ...rest] = argv;
|
|
24
|
+
if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h')
|
|
25
|
+
return { kind: 'help' };
|
|
26
|
+
if (cmd === '--version' || cmd === '-v' || cmd === 'version')
|
|
27
|
+
return { kind: 'version' };
|
|
28
|
+
if (COMMANDS.includes(cmd)) {
|
|
29
|
+
return { kind: 'command', command: cmd, args: rest };
|
|
30
|
+
}
|
|
31
|
+
return { kind: 'unknown', input: cmd };
|
|
32
|
+
}
|
|
33
|
+
/** Extract a `--flag value` / `--flag=value` string option from arg list. */
|
|
34
|
+
export function readOption(args, flag) {
|
|
35
|
+
for (let i = 0; i < args.length; i++) {
|
|
36
|
+
const a = args[i];
|
|
37
|
+
if (a === flag)
|
|
38
|
+
return args[i + 1];
|
|
39
|
+
if (a.startsWith(`${flag}=`))
|
|
40
|
+
return a.slice(flag.length + 1);
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
export function hasFlag(args, flag) {
|
|
45
|
+
return args.includes(flag);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=cli-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parse.js","sourceRoot":"","sources":["../src/cli-parse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;IACT,WAAW;IACX,OAAO;IACP,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,KAAK;CACG,CAAA;AAUV;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAc;IACrC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAC3B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACvF,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IACxF,IAAK,QAA8B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACjE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACxC,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,UAAU,CAAC,IAAc,EAAE,IAAY;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAClC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAc,EAAE,IAAY;IAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import { spawn } from 'node:child_process';
|
|
4
|
+
import { createRequire } from 'node:module';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { parseCli, readOption } from './cli-parse.js';
|
|
7
|
+
import { companionPaths, LAUNCH_AGENT_LABEL } from './paths.js';
|
|
8
|
+
import { installLaunchAgent, isLaunchAgentLoaded, renderLaunchAgentPlist, restartLaunchAgent, uninstallLaunchAgent, } from './launchd.js';
|
|
9
|
+
import { codexPreflight } from './codex-preflight.js';
|
|
10
|
+
import { DEFAULT_MCP_URL, loginCompanion, logoutCompanion, resolveMcpUrl, startCompanionDaemon, } from './bridge/daemon.mjs';
|
|
11
|
+
const require = createRequire(import.meta.url);
|
|
12
|
+
const VERSION = require('../package.json').version;
|
|
13
|
+
// dist/cli.js at runtime — the absolute path launchd should exec.
|
|
14
|
+
const CLI_JS = fileURLToPath(import.meta.url);
|
|
15
|
+
function usage() {
|
|
16
|
+
return [
|
|
17
|
+
`foundr — Founder World companion (v${VERSION})`,
|
|
18
|
+
'',
|
|
19
|
+
'Connects your Founder World agent to your local Codex subscription (no API key).',
|
|
20
|
+
'',
|
|
21
|
+
'Usage: foundr <command>',
|
|
22
|
+
'',
|
|
23
|
+
'Setup:',
|
|
24
|
+
' login Pair this machine with Founder World (opens a browser)',
|
|
25
|
+
' codex Check your Codex CLI login (Sign in with ChatGPT)',
|
|
26
|
+
' install Install + start the background service (launchd)',
|
|
27
|
+
'',
|
|
28
|
+
'Service:',
|
|
29
|
+
' start Start the background service',
|
|
30
|
+
' stop Stop the background service',
|
|
31
|
+
' restart Restart the background service',
|
|
32
|
+
' status Show pairing / service / Codex status',
|
|
33
|
+
' run Run the listener in the foreground (used by launchd; debug)',
|
|
34
|
+
'',
|
|
35
|
+
'Maintenance:',
|
|
36
|
+
' update Update to the latest companion and restart',
|
|
37
|
+
' logout Clear Founder World credentials',
|
|
38
|
+
' uninstall Remove the background service',
|
|
39
|
+
'',
|
|
40
|
+
'Options:',
|
|
41
|
+
' --url <origin> Founder World origin (default https://www.foundr.world).',
|
|
42
|
+
' Also honored via FOUNDR_URL. Use a *.lab.foundr.world',
|
|
43
|
+
' origin to target a lab deploy.',
|
|
44
|
+
].join('\n');
|
|
45
|
+
}
|
|
46
|
+
function run(cmd, args) {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
const child = spawn(cmd, args, { stdio: 'inherit' });
|
|
49
|
+
child.on('error', reject);
|
|
50
|
+
child.on('close', (code) => (code === 0 ? resolve() : reject(new Error(`${cmd} exited ${code}`)))); // eslint-disable-line
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async function cmdLogin(args) {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
const mcpUrl = resolveMcpUrl((_b = (_a = readOption(args, '--url')) !== null && _a !== void 0 ? _a : process.env.FOUNDR_URL) !== null && _b !== void 0 ? _b : DEFAULT_MCP_URL);
|
|
56
|
+
const { agent } = await loginCompanion({ mcpUrl });
|
|
57
|
+
console.log(`Paired as ${agent.name} (${agent.id}).`);
|
|
58
|
+
console.log('Next: run `foundr install` to start the background service.');
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
async function cmdCodex() {
|
|
62
|
+
var _a;
|
|
63
|
+
const pf = await codexPreflight();
|
|
64
|
+
console.log(pf.ok ? `Codex ready (${(_a = pf.authMode) !== null && _a !== void 0 ? _a : 'unknown'} auth).` : 'Codex is not ready.');
|
|
65
|
+
for (const g of pf.guidance)
|
|
66
|
+
console.log(' • ' + g);
|
|
67
|
+
return pf.ok ? 0 : 1;
|
|
68
|
+
}
|
|
69
|
+
async function writePlistAndLoad() {
|
|
70
|
+
const paths = companionPaths();
|
|
71
|
+
await fs.mkdir(paths.logsDir, { recursive: true });
|
|
72
|
+
await fs.mkdir(paths.launchAgentsDir, { recursive: true });
|
|
73
|
+
const env = {};
|
|
74
|
+
const url = process.env.FOUNDR_URL;
|
|
75
|
+
if (url)
|
|
76
|
+
env.FOUNDR_URL = url;
|
|
77
|
+
const plist = renderLaunchAgentPlist({
|
|
78
|
+
label: LAUNCH_AGENT_LABEL,
|
|
79
|
+
nodePath: process.execPath,
|
|
80
|
+
cliJsPath: CLI_JS,
|
|
81
|
+
paths,
|
|
82
|
+
env,
|
|
83
|
+
});
|
|
84
|
+
await fs.writeFile(paths.launchAgentPlist, plist);
|
|
85
|
+
if (await isLaunchAgentLoaded({ label: LAUNCH_AGENT_LABEL })) {
|
|
86
|
+
await restartLaunchAgent({ label: LAUNCH_AGENT_LABEL });
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
await installLaunchAgent({ plistPath: paths.launchAgentPlist, label: LAUNCH_AGENT_LABEL });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async function cmdInstall() {
|
|
93
|
+
await writePlistAndLoad();
|
|
94
|
+
console.log('Installed and started the Foundr companion (launchd).');
|
|
95
|
+
const pf = await codexPreflight();
|
|
96
|
+
if (!pf.ok)
|
|
97
|
+
for (const g of pf.guidance)
|
|
98
|
+
console.log(' • ' + g);
|
|
99
|
+
console.log('If not paired yet: run `foundr login`.');
|
|
100
|
+
return 0;
|
|
101
|
+
}
|
|
102
|
+
async function cmdStart() {
|
|
103
|
+
await writePlistAndLoad();
|
|
104
|
+
console.log('Started.');
|
|
105
|
+
return 0;
|
|
106
|
+
}
|
|
107
|
+
async function cmdStop() {
|
|
108
|
+
await uninstallLaunchAgent({ label: LAUNCH_AGENT_LABEL }).catch(() => { });
|
|
109
|
+
console.log('Stopped.');
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
async function cmdRestart() {
|
|
113
|
+
if (await isLaunchAgentLoaded({ label: LAUNCH_AGENT_LABEL })) {
|
|
114
|
+
await restartLaunchAgent({ label: LAUNCH_AGENT_LABEL });
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
await writePlistAndLoad();
|
|
118
|
+
}
|
|
119
|
+
console.log('Restarted.');
|
|
120
|
+
return 0;
|
|
121
|
+
}
|
|
122
|
+
async function cmdUninstall() {
|
|
123
|
+
const paths = companionPaths();
|
|
124
|
+
await uninstallLaunchAgent({ label: LAUNCH_AGENT_LABEL }).catch(() => { });
|
|
125
|
+
await fs.rm(paths.launchAgentPlist, { force: true });
|
|
126
|
+
console.log('Removed the Foundr companion service.');
|
|
127
|
+
console.log('Credentials remain in ~/.foundr-world — run `foundr logout` to clear them.');
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
async function cmdStatus() {
|
|
131
|
+
var _a, _b;
|
|
132
|
+
const paths = companionPaths();
|
|
133
|
+
const loaded = await isLaunchAgentLoaded({ label: LAUNCH_AGENT_LABEL });
|
|
134
|
+
let paired = null;
|
|
135
|
+
try {
|
|
136
|
+
const a = JSON.parse(await fs.readFile(paths.authFile, 'utf8'));
|
|
137
|
+
paired = (_a = a.agent) !== null && _a !== void 0 ? _a : null;
|
|
138
|
+
}
|
|
139
|
+
catch (_c) {
|
|
140
|
+
paired = null;
|
|
141
|
+
}
|
|
142
|
+
const pf = await codexPreflight();
|
|
143
|
+
console.log('Foundr companion');
|
|
144
|
+
console.log(` paired: ${paired ? `${paired.name} (${paired.id})` : 'no — run: foundr login'}`);
|
|
145
|
+
console.log(` service: ${loaded ? 'running (launchd)' : 'not installed — run: foundr install'}`);
|
|
146
|
+
console.log(` codex: ${pf.ok ? `ready (${(_b = pf.authMode) !== null && _b !== void 0 ? _b : 'unknown'})` : 'not ready'}`);
|
|
147
|
+
for (const g of pf.guidance)
|
|
148
|
+
console.log(' • ' + g);
|
|
149
|
+
return 0;
|
|
150
|
+
}
|
|
151
|
+
async function cmdUpdate() {
|
|
152
|
+
await run('npm', ['install', '-g', 'foundr-companion@latest', '--no-fund', '--no-audit']);
|
|
153
|
+
if (await isLaunchAgentLoaded({ label: LAUNCH_AGENT_LABEL })) {
|
|
154
|
+
await restartLaunchAgent({ label: LAUNCH_AGENT_LABEL });
|
|
155
|
+
}
|
|
156
|
+
console.log('Updated.');
|
|
157
|
+
return 0;
|
|
158
|
+
}
|
|
159
|
+
async function cmdRun() {
|
|
160
|
+
var _a;
|
|
161
|
+
// Preflight Codex; if not ready, exit 0 (clean) so launchd's
|
|
162
|
+
// KeepAlive(SuccessfulExit=false) does NOT hot-loop a not-yet-configured host.
|
|
163
|
+
const pf = await codexPreflight();
|
|
164
|
+
if (!pf.ok) {
|
|
165
|
+
for (const g of pf.guidance)
|
|
166
|
+
console.error('foundr: ' + g);
|
|
167
|
+
return 0;
|
|
168
|
+
}
|
|
169
|
+
try {
|
|
170
|
+
await startCompanionDaemon({ mcpUrl: resolveMcpUrl((_a = process.env.FOUNDR_URL) !== null && _a !== void 0 ? _a : DEFAULT_MCP_URL) });
|
|
171
|
+
return 0;
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
175
|
+
if (/not paired/i.test(msg)) {
|
|
176
|
+
console.error('foundr: ' + msg);
|
|
177
|
+
return 0;
|
|
178
|
+
}
|
|
179
|
+
throw err;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async function main() {
|
|
183
|
+
const parsed = parseCli(process.argv.slice(2));
|
|
184
|
+
switch (parsed.kind) {
|
|
185
|
+
case 'help':
|
|
186
|
+
console.log(usage());
|
|
187
|
+
return 0;
|
|
188
|
+
case 'version':
|
|
189
|
+
console.log(VERSION);
|
|
190
|
+
return 0;
|
|
191
|
+
case 'unknown':
|
|
192
|
+
console.error(`Unknown command: ${parsed.input}\n\n${usage()}`);
|
|
193
|
+
return 2;
|
|
194
|
+
case 'command':
|
|
195
|
+
switch (parsed.command) {
|
|
196
|
+
case 'login':
|
|
197
|
+
return cmdLogin(parsed.args);
|
|
198
|
+
case 'logout':
|
|
199
|
+
await logoutCompanion();
|
|
200
|
+
console.log('Logged out.');
|
|
201
|
+
return 0;
|
|
202
|
+
case 'codex':
|
|
203
|
+
return cmdCodex();
|
|
204
|
+
case 'install':
|
|
205
|
+
return cmdInstall();
|
|
206
|
+
case 'uninstall':
|
|
207
|
+
return cmdUninstall();
|
|
208
|
+
case 'start':
|
|
209
|
+
return cmdStart();
|
|
210
|
+
case 'stop':
|
|
211
|
+
return cmdStop();
|
|
212
|
+
case 'restart':
|
|
213
|
+
return cmdRestart();
|
|
214
|
+
case 'status':
|
|
215
|
+
return cmdStatus();
|
|
216
|
+
case 'update':
|
|
217
|
+
return cmdUpdate();
|
|
218
|
+
case 'run':
|
|
219
|
+
return cmdRun();
|
|
220
|
+
default:
|
|
221
|
+
console.error(usage());
|
|
222
|
+
return 2;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
main()
|
|
227
|
+
.then((code) => process.exit(code))
|
|
228
|
+
.catch((err) => {
|
|
229
|
+
console.error(err instanceof Error ? err.message : err);
|
|
230
|
+
process.exit(1);
|
|
231
|
+
});
|
|
232
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result of probing the local Codex CLI before the companion tries to drive it.
|
|
3
|
+
*
|
|
4
|
+
* - `installed` — `codex --version` exits 0.
|
|
5
|
+
* - `loggedIn` — `codex login status` exits 0 (per the OpenAI docs this
|
|
6
|
+
* subcommand exits non-zero when there is no active session).
|
|
7
|
+
* - `authMode` — parsed from `<CODEX_HOME>/auth.json`; `null` when the file is
|
|
8
|
+
* missing/unreadable, `"unknown"` when present but unrecognized.
|
|
9
|
+
* - `ok` — installed AND logged in. Auth mode does not gate `ok`: an
|
|
10
|
+
* API-key login still works, we just warn (it bills the API, not the sub).
|
|
11
|
+
* - `guidance` — ordered, actionable next steps for the founder.
|
|
12
|
+
*/
|
|
13
|
+
export interface CodexPreflight {
|
|
14
|
+
installed: boolean;
|
|
15
|
+
loggedIn: boolean;
|
|
16
|
+
authMode: 'chatgpt' | 'apikey' | 'unknown' | null;
|
|
17
|
+
ok: boolean;
|
|
18
|
+
guidance: string[];
|
|
19
|
+
}
|
|
20
|
+
/** Minimal callback shape we accept for an injected `execFile`. */
|
|
21
|
+
export type ExecFileFn = (file: string, args: readonly string[], callback: (error: Error | null, stdout: string, stderr: string) => void) => unknown;
|
|
22
|
+
/** Minimal shape we accept for an injected `readFile`. */
|
|
23
|
+
export type ReadFileFn = (filePath: string) => Promise<string | Buffer>;
|
|
24
|
+
export interface CodexPreflightOptions {
|
|
25
|
+
/** Injectable for tests; defaults to node:child_process execFile. */
|
|
26
|
+
spawn?: ExecFileFn;
|
|
27
|
+
/** Injectable for tests; defaults to node:child_process execFile. */
|
|
28
|
+
execFile?: ExecFileFn;
|
|
29
|
+
/** Injectable for tests; defaults to node:fs/promises readFile (utf8). */
|
|
30
|
+
readFile?: ReadFileFn;
|
|
31
|
+
/** Override the Codex home dir; defaults to $CODEX_HOME or ~/.codex. */
|
|
32
|
+
codexHome?: string;
|
|
33
|
+
/** Override the home dir used to derive ~/.codex; defaults to os.homedir(). */
|
|
34
|
+
home?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Probe the local Codex CLI. All side-effecting deps are injectable so this is
|
|
38
|
+
* unit-testable without ever shelling out or touching the filesystem.
|
|
39
|
+
*
|
|
40
|
+
* `spawn` is accepted as an alias for `execFile` (the orchestrator passes one or
|
|
41
|
+
* the other); `execFile` wins when both are supplied.
|
|
42
|
+
*/
|
|
43
|
+
export declare function codexPreflight(options?: CodexPreflightOptions): Promise<CodexPreflight>;
|
|
44
|
+
//# sourceMappingURL=codex-preflight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-preflight.d.ts","sourceRoot":"","sources":["../src/codex-preflight.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAA;IACjD,EAAE,EAAE,OAAO,CAAA;IACX,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,OAAO,CAAA;AAEZ,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;AAEvE,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AA+BD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,CAqCzB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { execFile as nodeExecFile } from 'node:child_process';
|
|
2
|
+
import { readFile as nodeReadFile } from 'node:fs/promises';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { promisify } from 'node:util';
|
|
6
|
+
const defaultExecFile = nodeExecFile;
|
|
7
|
+
const defaultReadFile = (filePath) => nodeReadFile(filePath, 'utf8');
|
|
8
|
+
/** Resolve the Codex home: explicit override > $CODEX_HOME > <home>/.codex. */
|
|
9
|
+
function resolveCodexHome(codexHome, home) {
|
|
10
|
+
if (codexHome)
|
|
11
|
+
return codexHome;
|
|
12
|
+
if (process.env.CODEX_HOME)
|
|
13
|
+
return process.env.CODEX_HOME;
|
|
14
|
+
return path.join(home !== null && home !== void 0 ? home : os.homedir(), '.codex');
|
|
15
|
+
}
|
|
16
|
+
/** Run a command, resolving to true iff it exits 0. Never rejects. */
|
|
17
|
+
async function exitsZero(exec, file, args) {
|
|
18
|
+
const run = promisify(exec);
|
|
19
|
+
try {
|
|
20
|
+
await run(file, args);
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch (_a) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function mapAuthMode(raw) {
|
|
28
|
+
if (typeof raw !== 'string')
|
|
29
|
+
return 'unknown';
|
|
30
|
+
const v = raw.toLowerCase();
|
|
31
|
+
if (v === 'chatgpt')
|
|
32
|
+
return 'chatgpt';
|
|
33
|
+
if (v === 'apikey')
|
|
34
|
+
return 'apikey';
|
|
35
|
+
return 'unknown';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Probe the local Codex CLI. All side-effecting deps are injectable so this is
|
|
39
|
+
* unit-testable without ever shelling out or touching the filesystem.
|
|
40
|
+
*
|
|
41
|
+
* `spawn` is accepted as an alias for `execFile` (the orchestrator passes one or
|
|
42
|
+
* the other); `execFile` wins when both are supplied.
|
|
43
|
+
*/
|
|
44
|
+
export async function codexPreflight(options = {}) {
|
|
45
|
+
var _a, _b, _c;
|
|
46
|
+
const exec = (_b = (_a = options.execFile) !== null && _a !== void 0 ? _a : options.spawn) !== null && _b !== void 0 ? _b : defaultExecFile;
|
|
47
|
+
const readFile = (_c = options.readFile) !== null && _c !== void 0 ? _c : defaultReadFile;
|
|
48
|
+
const codexHome = resolveCodexHome(options.codexHome, options.home);
|
|
49
|
+
const installed = await exitsZero(exec, 'codex', ['--version']);
|
|
50
|
+
// Only bother checking login + auth.json if the binary is actually there.
|
|
51
|
+
const loggedIn = installed ? await exitsZero(exec, 'codex', ['login', 'status']) : false;
|
|
52
|
+
let authMode = null;
|
|
53
|
+
try {
|
|
54
|
+
const raw = await readFile(path.join(codexHome, 'auth.json'));
|
|
55
|
+
const parsed = JSON.parse(typeof raw === 'string' ? raw : raw.toString('utf8'));
|
|
56
|
+
authMode = mapAuthMode(parsed === null || parsed === void 0 ? void 0 : parsed.auth_mode);
|
|
57
|
+
}
|
|
58
|
+
catch (_d) {
|
|
59
|
+
authMode = null;
|
|
60
|
+
}
|
|
61
|
+
const ok = installed && loggedIn;
|
|
62
|
+
const guidance = [];
|
|
63
|
+
if (!installed) {
|
|
64
|
+
guidance.push('Codex CLI not found. Install it: npm i -g @openai/codex (docs: https://developers.openai.com/codex)');
|
|
65
|
+
}
|
|
66
|
+
else if (!loggedIn) {
|
|
67
|
+
guidance.push('Codex is not logged in. Run: codex login (use Sign in with ChatGPT to use your subscription, no API key)');
|
|
68
|
+
}
|
|
69
|
+
else if (authMode === 'apikey') {
|
|
70
|
+
guidance.push('Codex is using API-key auth — replies will bill the OpenAI API, not your ChatGPT subscription. Run: codex login and choose Sign in with ChatGPT.');
|
|
71
|
+
}
|
|
72
|
+
return { installed, loggedIn, authMode, ok, guidance };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=codex-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-preflight.js","sourceRoot":"","sources":["../src/codex-preflight.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* macOS LaunchAgent (launchd) support for the Foundr Companion daemon.
|
|
3
|
+
*
|
|
4
|
+
* Renders the per-user `.plist` and wraps the *modern* `launchctl` domain API
|
|
5
|
+
* (`enable` / `bootstrap` / `bootout` / `kickstart` / `print`). Shape mirrors the
|
|
6
|
+
* proven OpenClaw gateway LaunchAgent.
|
|
7
|
+
*
|
|
8
|
+
* Critical invariants baked into the plist:
|
|
9
|
+
* - `RunAtLoad` true so the daemon comes up at login.
|
|
10
|
+
* - `KeepAlive` is `{ SuccessfulExit: false }` — restart on crash, but DON'T
|
|
11
|
+
* hot-loop a clean exit (a deliberate config-error exit should stay down).
|
|
12
|
+
* - `EnvironmentVariables` ALWAYS carries `FOUNDR_CODEX_THREAD_MODE=bridge`. A
|
|
13
|
+
* launchd job has no `CODEX_THREAD_ID`, so resume mode would crash on boot.
|
|
14
|
+
* - All interpolated paths are ABSOLUTE — launchd starts jobs with a minimal env
|
|
15
|
+
* and no working directory inheritance.
|
|
16
|
+
*/
|
|
17
|
+
import type { CompanionPaths } from './paths.js';
|
|
18
|
+
/** Signature compatible with `promisify(child_process.execFile)`. Injectable for tests. */
|
|
19
|
+
export type ExecFile = (file: string, args: readonly string[]) => Promise<{
|
|
20
|
+
stdout: string;
|
|
21
|
+
stderr: string;
|
|
22
|
+
}>;
|
|
23
|
+
export interface RenderLaunchAgentPlistArgs {
|
|
24
|
+
/** Reverse-DNS LaunchAgent label, e.g. `world.foundr.companion`. */
|
|
25
|
+
label: string;
|
|
26
|
+
/** Absolute path to the `node` binary that should run the daemon. */
|
|
27
|
+
nodePath: string;
|
|
28
|
+
/** Absolute path to the compiled CLI entrypoint (`cli.js`). */
|
|
29
|
+
cliJsPath: string;
|
|
30
|
+
/** Companion paths — supplies the absolute stdout/stderr log file locations. */
|
|
31
|
+
paths: Pick<CompanionPaths, 'logFile' | 'errLogFile'>;
|
|
32
|
+
/**
|
|
33
|
+
* Extra environment variables to inject (e.g. `FOUNDR_URL`).
|
|
34
|
+
* `FOUNDR_CODEX_THREAD_MODE=bridge` is always added and cannot be removed; an
|
|
35
|
+
* explicit override here takes precedence only over its own key.
|
|
36
|
+
*/
|
|
37
|
+
env?: Record<string, string>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build the LaunchAgent plist XML. Pure — no filesystem or process access.
|
|
41
|
+
*/
|
|
42
|
+
export declare function renderLaunchAgentPlist({ label, nodePath, cliJsPath, paths, env, }: RenderLaunchAgentPlistArgs): string;
|
|
43
|
+
export interface InstallLaunchAgentArgs {
|
|
44
|
+
/** Absolute path to the on-disk `.plist`. */
|
|
45
|
+
plistPath: string;
|
|
46
|
+
/** Reverse-DNS LaunchAgent label. */
|
|
47
|
+
label: string;
|
|
48
|
+
/** GUI-domain uid; defaults to `process.getuid()`. */
|
|
49
|
+
uid?: number;
|
|
50
|
+
execFile?: ExecFile;
|
|
51
|
+
}
|
|
52
|
+
export interface LaunchAgentTargetArgs {
|
|
53
|
+
label: string;
|
|
54
|
+
uid?: number;
|
|
55
|
+
execFile?: ExecFile;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Enable + bootstrap the LaunchAgent into the user's GUI domain.
|
|
59
|
+
* launchctl enable gui/<uid>/<label>
|
|
60
|
+
* launchctl bootstrap gui/<uid> <plistPath>
|
|
61
|
+
*/
|
|
62
|
+
export declare function installLaunchAgent({ plistPath, label, uid, execFile, }: InstallLaunchAgentArgs): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Tear the LaunchAgent out of the GUI domain.
|
|
65
|
+
* launchctl bootout gui/<uid>/<label>
|
|
66
|
+
*/
|
|
67
|
+
export declare function uninstallLaunchAgent({ label, uid, execFile, }: LaunchAgentTargetArgs): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Restart the running service in place.
|
|
70
|
+
* launchctl kickstart -k gui/<uid>/<label>
|
|
71
|
+
*/
|
|
72
|
+
export declare function restartLaunchAgent({ label, uid, execFile, }: LaunchAgentTargetArgs): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Whether the LaunchAgent is bootstrapped (loaded) in the GUI domain.
|
|
75
|
+
* launchctl print gui/<uid>/<label> (exit 0 => loaded)
|
|
76
|
+
*/
|
|
77
|
+
export declare function isLaunchAgentLoaded({ label, uid, execFile, }: LaunchAgentTargetArgs): Promise<boolean>;
|
|
78
|
+
//# sourceMappingURL=launchd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launchd.d.ts","sourceRoot":"","sources":["../src/launchd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,2FAA2F;AAC3F,MAAM,MAAM,QAAQ,GAAG,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,KACpB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAchD,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,YAAY,CAAC,CAAA;IACrD;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,GACJ,EAAE,0BAA0B,GAAG,MAAM,CAqDrC;AAOD,MAAM,WAAW,sBAAsB;IACrC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,SAAS,EACT,KAAK,EACL,GAAkB,EAClB,QAA0B,GAC3B,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxC;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,KAAK,EACL,GAAkB,EAClB,QAA0B,GAC3B,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvC;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,GAAkB,EAClB,QAA0B,GAC3B,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvC;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,KAAK,EACL,GAAkB,EAClB,QAA0B,GAC3B,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1C"}
|