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":"codex-app-server-adapter.mjs","sourceRoot":"","sources":["../../src/bridge/codex-app-server-adapter.mjs"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
// Companion daemon orchestration — lifts the proven scripts/foundr entrypoints
|
|
2
|
+
// (foundr-listen / foundr-login / foundr-logout) onto the co-located bridge
|
|
3
|
+
// modules, with no OpenClaw and no repo checkout required.
|
|
4
|
+
|
|
5
|
+
import fs from 'node:fs/promises'
|
|
6
|
+
import os from 'node:os'
|
|
7
|
+
import path from 'node:path'
|
|
8
|
+
import { loadBridgeAuth, saveBridgeAuth, deleteBridgeAuth } from './bridge-auth.mjs'
|
|
9
|
+
import { createMcpClient, withVercelProtectionBypass } from './mcp-client.mjs'
|
|
10
|
+
import { FileBackedOAuthProvider } from './oauth-provider.mjs'
|
|
11
|
+
import { logoutFoundrBridge } from './logout.mjs'
|
|
12
|
+
import { createCodexAppServerAdapter } from './codex-app-server-adapter.mjs'
|
|
13
|
+
import { runPrivateChatListener } from './listener-loop.mjs'
|
|
14
|
+
|
|
15
|
+
export const DEFAULT_MCP_URL = 'https://www.foundr.world/api/mcp'
|
|
16
|
+
const DEFAULT_AGENT_NAME = 'Local Agent'
|
|
17
|
+
const CLIENT_NAME = 'foundr-companion'
|
|
18
|
+
const CLIENT_VERSION = '0.1.0'
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Normalize an input (an origin like https://x.lab.foundr.world OR a full
|
|
22
|
+
* .../api/mcp URL) to the MCP endpoint URL. Always forces the /api/mcp path so a
|
|
23
|
+
* pasted game/room URL still resolves to the right audience-bound endpoint.
|
|
24
|
+
*/
|
|
25
|
+
export function resolveMcpUrl(input) {
|
|
26
|
+
const raw = String(input ?? '').trim()
|
|
27
|
+
if (!raw) return DEFAULT_MCP_URL
|
|
28
|
+
try {
|
|
29
|
+
const url = new URL(raw)
|
|
30
|
+
url.pathname = '/api/mcp'
|
|
31
|
+
url.search = ''
|
|
32
|
+
url.hash = ''
|
|
33
|
+
return url.toString().replace(/\/$/, '')
|
|
34
|
+
} catch {
|
|
35
|
+
return DEFAULT_MCP_URL
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export async function loginCompanion({
|
|
40
|
+
mcpUrl = DEFAULT_MCP_URL,
|
|
41
|
+
agentName = DEFAULT_AGENT_NAME,
|
|
42
|
+
onRedirect,
|
|
43
|
+
log = console.log,
|
|
44
|
+
} = {}) {
|
|
45
|
+
const existingAuth = await loadBridgeAuth().catch(() => ({}))
|
|
46
|
+
const auth = existingAuth.mcpUrl === mcpUrl ? existingAuth : {}
|
|
47
|
+
let pairedAgent = auth.agent
|
|
48
|
+
const persistAuth = async (nextAuth) => {
|
|
49
|
+
await saveBridgeAuth({
|
|
50
|
+
...nextAuth,
|
|
51
|
+
mcpUrl,
|
|
52
|
+
agentName,
|
|
53
|
+
...(pairedAgent ? { agent: pairedAgent } : {}),
|
|
54
|
+
updatedAt: new Date().toISOString(),
|
|
55
|
+
})
|
|
56
|
+
}
|
|
57
|
+
const provider = new FileBackedOAuthProvider({
|
|
58
|
+
mcpUrl,
|
|
59
|
+
agentName,
|
|
60
|
+
auth,
|
|
61
|
+
onChange: persistAuth,
|
|
62
|
+
onRedirect: onRedirect ?? ((url) => {
|
|
63
|
+
log(`Open this URL to authorize the Foundr Companion:\n${withVercelProtectionBypass(url).toString()}`)
|
|
64
|
+
}),
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
const mcp = await createMcpClient({ mcpUrl, authProvider: provider })
|
|
68
|
+
try {
|
|
69
|
+
const heartbeat = await mcp.callTool('heartbeat_private_chat_listener', {
|
|
70
|
+
client_name: CLIENT_NAME,
|
|
71
|
+
client_version: CLIENT_VERSION,
|
|
72
|
+
status: 'stopped',
|
|
73
|
+
})
|
|
74
|
+
pairedAgent = heartbeat.agent
|
|
75
|
+
await persistAuth(provider.auth)
|
|
76
|
+
return { agent: heartbeat.agent }
|
|
77
|
+
} finally {
|
|
78
|
+
await mcp.close()
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export async function logoutCompanion() {
|
|
83
|
+
await logoutFoundrBridge({ loadAuth: loadBridgeAuth, deleteAuth: deleteBridgeAuth })
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function isProcessAlive(pid) {
|
|
87
|
+
if (!Number.isInteger(pid) || pid <= 0) return false
|
|
88
|
+
try {
|
|
89
|
+
process.kill(pid, 0)
|
|
90
|
+
return true
|
|
91
|
+
} catch {
|
|
92
|
+
return false
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async function acquireListenerLock({ agentId, mcpUrl, mode = 'private-chat' }) {
|
|
97
|
+
if (process.env.FOUNDR_LISTENER_ALLOW_MULTIPLE === '1') return async () => {}
|
|
98
|
+
const dir = path.join(os.homedir(), '.foundr-world')
|
|
99
|
+
const lockPath = path.join(dir, `${mode}-listener.lock`)
|
|
100
|
+
await fs.mkdir(dir, { recursive: true })
|
|
101
|
+
|
|
102
|
+
for (let attempt = 0; attempt < 2; attempt += 1) {
|
|
103
|
+
try {
|
|
104
|
+
const handle = await fs.open(lockPath, 'wx')
|
|
105
|
+
await handle.writeFile(JSON.stringify({
|
|
106
|
+
pid: process.pid,
|
|
107
|
+
agent_id: agentId,
|
|
108
|
+
mcp_url: mcpUrl,
|
|
109
|
+
started_at: new Date().toISOString(),
|
|
110
|
+
}, null, 2))
|
|
111
|
+
return async () => {
|
|
112
|
+
await handle.close().catch(() => {})
|
|
113
|
+
await fs.unlink(lockPath).catch(() => {})
|
|
114
|
+
}
|
|
115
|
+
} catch (error) {
|
|
116
|
+
if (error?.code !== 'EEXIST') throw error
|
|
117
|
+
const existing = await fs.readFile(lockPath, 'utf8')
|
|
118
|
+
.then(text => JSON.parse(text))
|
|
119
|
+
.catch(() => null)
|
|
120
|
+
if (isProcessAlive(Number(existing?.pid))) {
|
|
121
|
+
throw new Error(
|
|
122
|
+
`Foundr companion is already running as pid ${existing.pid}. Stop it first (foundr stop), or set FOUNDR_LISTENER_ALLOW_MULTIPLE=1.`,
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
await fs.unlink(lockPath).catch(() => {})
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
throw new Error('Could not acquire the Foundr companion listener lock')
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Run the private-chat listener in the foreground (launchd invokes `foundr run`,
|
|
133
|
+
* which calls this). Uses the warm `codex app-server` adapter — the founder's
|
|
134
|
+
* Codex subscription, no API key — over the realtime-wake transport.
|
|
135
|
+
*
|
|
136
|
+
* Throws "Not paired" (caller should exit 0, not crash-loop) if no bridge auth.
|
|
137
|
+
*/
|
|
138
|
+
export async function startCompanionDaemon({ mcpUrl, transport = 'wake', log = console.error } = {}) {
|
|
139
|
+
// CRITICAL: a launchd daemon does not inherit a Codex shell's CODEX_THREAD_ID,
|
|
140
|
+
// and resume mode hard-fails without one. Bridge mode self-manages a persisted
|
|
141
|
+
// thread (~/.foundr-world/codex-bridge-thread.json).
|
|
142
|
+
if (!process.env.FOUNDR_CODEX_THREAD_MODE) process.env.FOUNDR_CODEX_THREAD_MODE = 'bridge'
|
|
143
|
+
|
|
144
|
+
const auth = await loadBridgeAuth().catch(() => null)
|
|
145
|
+
if (!auth?.agent?.id) {
|
|
146
|
+
throw new Error('Not paired. Run: foundr login')
|
|
147
|
+
}
|
|
148
|
+
const effectiveMcpUrl = auth.mcpUrl || mcpUrl || DEFAULT_MCP_URL
|
|
149
|
+
const agentName = auth.agentName || DEFAULT_AGENT_NAME
|
|
150
|
+
|
|
151
|
+
const release = await acquireListenerLock({ agentId: auth.agent.id, mcpUrl: effectiveMcpUrl })
|
|
152
|
+
const persistAuth = async (nextAuth) => {
|
|
153
|
+
await saveBridgeAuth({
|
|
154
|
+
...nextAuth,
|
|
155
|
+
mcpUrl: effectiveMcpUrl,
|
|
156
|
+
agentName,
|
|
157
|
+
agent: auth.agent,
|
|
158
|
+
updatedAt: new Date().toISOString(),
|
|
159
|
+
})
|
|
160
|
+
}
|
|
161
|
+
const provider = new FileBackedOAuthProvider({
|
|
162
|
+
mcpUrl: effectiveMcpUrl,
|
|
163
|
+
agentName,
|
|
164
|
+
auth,
|
|
165
|
+
onChange: persistAuth,
|
|
166
|
+
// A supervised daemon cannot open an interactive browser; surface a re-login
|
|
167
|
+
// instruction instead of looping on a dead callback.
|
|
168
|
+
onRedirect: () => log('Foundr re-authorization required. Run: foundr login'),
|
|
169
|
+
})
|
|
170
|
+
|
|
171
|
+
let mcp
|
|
172
|
+
try {
|
|
173
|
+
mcp = await createMcpClient({ mcpUrl: effectiveMcpUrl, authProvider: provider })
|
|
174
|
+
await persistAuth(provider.auth)
|
|
175
|
+
const adapter = createCodexAppServerAdapter()
|
|
176
|
+
log(`Foundr companion listening as ${auth.agent.name} (${auth.agent.id})`)
|
|
177
|
+
log(`MCP: ${effectiveMcpUrl}`)
|
|
178
|
+
await runPrivateChatListener({
|
|
179
|
+
client: mcp,
|
|
180
|
+
adapter,
|
|
181
|
+
clientName: CLIENT_NAME,
|
|
182
|
+
clientVersion: CLIENT_VERSION,
|
|
183
|
+
expectedAgentId: auth.agent.id,
|
|
184
|
+
transport,
|
|
185
|
+
})
|
|
186
|
+
} finally {
|
|
187
|
+
await release?.()
|
|
188
|
+
await mcp?.close?.().catch(() => {})
|
|
189
|
+
}
|
|
190
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export function safeCodexEnv(env: any): {
|
|
3
|
+
CODEX_HOME: any;
|
|
4
|
+
};
|
|
5
|
+
export function codexSessionId(env: any): string;
|
|
6
|
+
export function codexThreadMode(env: any): "bridge" | "resume";
|
|
7
|
+
export function codexPrompt(envelope: any): string;
|
|
8
|
+
export function codexBridgePrompt(envelope: any): string;
|
|
9
|
+
export function codexArgs(): string[];
|
|
10
|
+
export function extractCodexProgressEvent(event: any): {
|
|
11
|
+
type: string;
|
|
12
|
+
status: string;
|
|
13
|
+
text?: undefined;
|
|
14
|
+
} | {
|
|
15
|
+
type: string;
|
|
16
|
+
text: string;
|
|
17
|
+
status?: undefined;
|
|
18
|
+
} | null;
|
|
19
|
+
export function extractCompletedCodexText(event: any): any;
|
|
20
|
+
export function appServerRequestParams(method: any, params: any): any;
|
|
21
|
+
export function appServerResumeParams(sessionId: any, env: any): {
|
|
22
|
+
threadId: any;
|
|
23
|
+
cwd: any;
|
|
24
|
+
approvalPolicy: string;
|
|
25
|
+
sandbox: string;
|
|
26
|
+
excludeTurns: boolean;
|
|
27
|
+
persistExtendedHistory: boolean;
|
|
28
|
+
};
|
|
29
|
+
export function appServerBridgeInstructions(env?: NodeJS.ProcessEnv): string;
|
|
30
|
+
export function appServerThreadStartParams(env?: NodeJS.ProcessEnv): {
|
|
31
|
+
serviceTier?: string | undefined;
|
|
32
|
+
model?: string | undefined;
|
|
33
|
+
cwd: string;
|
|
34
|
+
approvalPolicy: string;
|
|
35
|
+
sandbox: string;
|
|
36
|
+
baseInstructions: string;
|
|
37
|
+
developerInstructions: string;
|
|
38
|
+
ephemeral: boolean;
|
|
39
|
+
};
|
|
40
|
+
export function appServerTurnStartParams(threadId: any, envelope: any, env?: NodeJS.ProcessEnv): {
|
|
41
|
+
input: {
|
|
42
|
+
type: string;
|
|
43
|
+
text: string;
|
|
44
|
+
text_elements: never[];
|
|
45
|
+
}[];
|
|
46
|
+
serviceTier?: string | undefined;
|
|
47
|
+
model?: string | undefined;
|
|
48
|
+
threadId: any;
|
|
49
|
+
effort: string;
|
|
50
|
+
summary: string;
|
|
51
|
+
approvalPolicy: string;
|
|
52
|
+
sandboxPolicy: {
|
|
53
|
+
type: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
export function codexModelForEnvelope(envelope: any, env?: NodeJS.ProcessEnv): string;
|
|
57
|
+
export function appServerServerRequestResponse(method: any): {
|
|
58
|
+
decision: string;
|
|
59
|
+
answers?: undefined;
|
|
60
|
+
error?: undefined;
|
|
61
|
+
} | {
|
|
62
|
+
answers: {};
|
|
63
|
+
decision?: undefined;
|
|
64
|
+
error?: undefined;
|
|
65
|
+
} | {
|
|
66
|
+
error: {
|
|
67
|
+
code: number;
|
|
68
|
+
message: string;
|
|
69
|
+
};
|
|
70
|
+
decision?: undefined;
|
|
71
|
+
answers?: undefined;
|
|
72
|
+
};
|
|
73
|
+
export function appServerErrorMessage(error: any): any;
|
|
74
|
+
export function parseJsonLine(line: any): any;
|
|
75
|
+
export function runCodex(envelope: any, { env, spawnFn, onProgress, }?: {
|
|
76
|
+
env?: NodeJS.ProcessEnv | undefined;
|
|
77
|
+
spawnFn?: typeof spawn | undefined;
|
|
78
|
+
}): Promise<string>;
|
|
79
|
+
export function runCodexExecFallback(envelope: any, { env, spawnFn, onProgress, outputPath, }?: {
|
|
80
|
+
env?: NodeJS.ProcessEnv | undefined;
|
|
81
|
+
spawnFn?: typeof spawn | undefined;
|
|
82
|
+
}): Promise<string>;
|
|
83
|
+
export function main({ input, output, errorOutput, exit, }?: {
|
|
84
|
+
input?: (NodeJS.ReadStream & {
|
|
85
|
+
fd: 0;
|
|
86
|
+
}) | undefined;
|
|
87
|
+
output?: (NodeJS.WriteStream & {
|
|
88
|
+
fd: 1;
|
|
89
|
+
}) | undefined;
|
|
90
|
+
errorOutput?: (NodeJS.WriteStream & {
|
|
91
|
+
fd: 2;
|
|
92
|
+
}) | undefined;
|
|
93
|
+
exit?: ((code?: number | string | null) => never) | undefined;
|
|
94
|
+
}): Promise<void>;
|
|
95
|
+
import { spawn } from 'node:child_process';
|
|
96
|
+
//# sourceMappingURL=foundr-codex-reply.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foundr-codex-reply.d.mts","sourceRoot":"","sources":["../../src/bridge/foundr-codex-reply.mjs"],"names":[],"mappings":";AAqCA;;EASC;AAED,iDAEC;AAED,+DAIC;AAED,mDAqDC;AAED,yDA2BC;AAED,sCAEC;AAED;;;;;;;;SAkCC;AAED,2DAYC;AAED,sEAQC;AAED;;;;;;;EASC;AAED,6EAYC;AAED;;;;;;;;;EAeC;AAED;;;;;;;;;;;;;;;EAmBC;AAED,sFAIC;AAED;;;;;;;;;;;;;;;EAKC;AAED,uDAKC;AAED,8CAQC;AAED;;;oBAmJC;AAED;;;oBAqEC;AAED;;;;;;;;;;;kBAkBC;sBAxhBqB,oBAAoB"}
|