foundr-companion 0.1.0 → 0.1.1
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/daemon.mjs +18 -6
- package/dist/bridge/mcp-client.d.mts +1 -0
- package/dist/bridge/mcp-client.d.mts.map +1 -1
- package/dist/bridge/mcp-client.mjs +17 -5
- package/dist/bridge/mcp-client.mjs.map +1 -1
- package/dist/bridge/oauth-provider.d.mts +3 -1
- package/dist/bridge/oauth-provider.d.mts.map +1 -1
- package/dist/bridge/oauth-provider.mjs +6 -2
- package/dist/bridge/oauth-provider.mjs.map +1 -1
- package/package.json +1 -1
package/dist/bridge/daemon.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import fs from 'node:fs/promises'
|
|
|
6
6
|
import os from 'node:os'
|
|
7
7
|
import path from 'node:path'
|
|
8
8
|
import { loadBridgeAuth, saveBridgeAuth, deleteBridgeAuth } from './bridge-auth.mjs'
|
|
9
|
-
import { createMcpClient, withVercelProtectionBypass } from './mcp-client.mjs'
|
|
9
|
+
import { createMcpClient, createOAuthCallbackWaiter, withVercelProtectionBypass } from './mcp-client.mjs'
|
|
10
10
|
import { FileBackedOAuthProvider } from './oauth-provider.mjs'
|
|
11
11
|
import { logoutFoundrBridge } from './logout.mjs'
|
|
12
12
|
import { createCodexAppServerAdapter } from './codex-app-server-adapter.mjs'
|
|
@@ -42,9 +42,15 @@ export async function loginCompanion({
|
|
|
42
42
|
onRedirect,
|
|
43
43
|
log = console.log,
|
|
44
44
|
} = {}) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
// `login` is an explicit (re)pairing: register a fresh client whose loopback
|
|
46
|
+
// redirect URI uses a free OS-assigned port. This means a stale/in-use port
|
|
47
|
+
// (e.g. a previous login that left its callback bound) can never block login
|
|
48
|
+
// — the root cause of the 17893 EADDRINUSE. We bind the callback FIRST so its
|
|
49
|
+
// port is known before client registration builds the redirect URI.
|
|
50
|
+
const callback = createOAuthCallbackWaiter()
|
|
51
|
+
await callback.ready
|
|
52
|
+
|
|
53
|
+
let pairedAgent
|
|
48
54
|
const persistAuth = async (nextAuth) => {
|
|
49
55
|
await saveBridgeAuth({
|
|
50
56
|
...nextAuth,
|
|
@@ -57,14 +63,19 @@ export async function loginCompanion({
|
|
|
57
63
|
const provider = new FileBackedOAuthProvider({
|
|
58
64
|
mcpUrl,
|
|
59
65
|
agentName,
|
|
60
|
-
auth,
|
|
66
|
+
auth: {},
|
|
67
|
+
redirectPort: callback.port,
|
|
61
68
|
onChange: persistAuth,
|
|
62
69
|
onRedirect: onRedirect ?? ((url) => {
|
|
63
70
|
log(`Open this URL to authorize the Foundr Companion:\n${withVercelProtectionBypass(url).toString()}`)
|
|
64
71
|
}),
|
|
65
72
|
})
|
|
66
73
|
|
|
67
|
-
const mcp = await createMcpClient({
|
|
74
|
+
const mcp = await createMcpClient({
|
|
75
|
+
mcpUrl,
|
|
76
|
+
authProvider: provider,
|
|
77
|
+
oauthCallbackFactory: () => callback,
|
|
78
|
+
})
|
|
68
79
|
try {
|
|
69
80
|
const heartbeat = await mcp.callTool('heartbeat_private_chat_listener', {
|
|
70
81
|
client_name: CLIENT_NAME,
|
|
@@ -75,6 +86,7 @@ export async function loginCompanion({
|
|
|
75
86
|
await persistAuth(provider.auth)
|
|
76
87
|
return { agent: heartbeat.agent }
|
|
77
88
|
} finally {
|
|
89
|
+
callback.close()
|
|
78
90
|
await mcp.close()
|
|
79
91
|
}
|
|
80
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.d.mts","sourceRoot":"","sources":["../../src/bridge/mcp-client.mjs"],"names":[],"mappings":"AAOA
|
|
1
|
+
{"version":3,"file":"mcp-client.d.mts","sourceRoot":"","sources":["../../src/bridge/mcp-client.mjs"],"names":[],"mappings":"AAOA;;;;;;;EAqGC;AAED;;iBAEC;AAED,+FAUC;AAED,iDAOC;AAED,0DAQC;AAiCD;;;iBA8BC;AA2BD,kDAOC;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CC;8CA1S6C,oDAAoD;uBAF3E,2CAA2C"}
|
|
@@ -5,10 +5,16 @@ import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/
|
|
|
5
5
|
|
|
6
6
|
const CLIENT_INFO = { name: 'foundr-local-bridge', version: '0.1.0' }
|
|
7
7
|
|
|
8
|
-
export function createOAuthCallbackWaiter({ port =
|
|
8
|
+
export function createOAuthCallbackWaiter({ port = 0 } = {}) {
|
|
9
|
+
// Default port 0 = let the OS assign a free loopback port. A hardcoded port
|
|
10
|
+
// (the old 17893) collides whenever anything already holds it — a previous
|
|
11
|
+
// login that didn't finish, a second instance, etc. — and bricks login for
|
|
12
|
+
// every founder, not just the first. The actual bound port is read back from
|
|
13
|
+
// the listening socket and used as the OAuth redirect URI.
|
|
9
14
|
let server
|
|
10
15
|
let settled = false
|
|
11
16
|
let readySettled = false
|
|
17
|
+
let actualPort = port
|
|
12
18
|
let resolveReady
|
|
13
19
|
let rejectReady
|
|
14
20
|
|
|
@@ -16,7 +22,7 @@ export function createOAuthCallbackWaiter({ port = 17893 } = {}) {
|
|
|
16
22
|
resolveReady = () => {
|
|
17
23
|
if (readySettled) return
|
|
18
24
|
readySettled = true
|
|
19
|
-
resolve()
|
|
25
|
+
resolve(actualPort)
|
|
20
26
|
}
|
|
21
27
|
rejectReady = (error) => {
|
|
22
28
|
if (readySettled) return
|
|
@@ -58,7 +64,7 @@ export function createOAuthCallbackWaiter({ port = 17893 } = {}) {
|
|
|
58
64
|
|
|
59
65
|
server = createServer((req, res) => {
|
|
60
66
|
try {
|
|
61
|
-
const url = new URL(req.url ?? '/',
|
|
67
|
+
const url = new URL(req.url ?? '/', 'http://127.0.0.1')
|
|
62
68
|
const oauthError = url.searchParams.get('error')
|
|
63
69
|
const errorDescription = url.searchParams.get('error_description')
|
|
64
70
|
const authCode = url.searchParams.get('code')
|
|
@@ -81,13 +87,19 @@ export function createOAuthCallbackWaiter({ port = 17893 } = {}) {
|
|
|
81
87
|
})
|
|
82
88
|
|
|
83
89
|
server.on('error', (error) => settle(rejectCode, error))
|
|
84
|
-
server.listen(port, '127.0.0.1',
|
|
90
|
+
server.listen(port, '127.0.0.1', () => {
|
|
91
|
+
actualPort = server.address()?.port ?? port
|
|
92
|
+
resolveReady()
|
|
93
|
+
})
|
|
85
94
|
})
|
|
86
95
|
void code.catch(() => {})
|
|
87
96
|
|
|
88
97
|
return {
|
|
89
98
|
ready,
|
|
90
99
|
code,
|
|
100
|
+
get port() {
|
|
101
|
+
return actualPort
|
|
102
|
+
},
|
|
91
103
|
close() {
|
|
92
104
|
if (settled) return
|
|
93
105
|
settled = true
|
|
@@ -96,7 +108,7 @@ export function createOAuthCallbackWaiter({ port = 17893 } = {}) {
|
|
|
96
108
|
}
|
|
97
109
|
}
|
|
98
110
|
|
|
99
|
-
export function waitForOAuthCallback({ port =
|
|
111
|
+
export function waitForOAuthCallback({ port = 0 } = {}) {
|
|
100
112
|
return createOAuthCallbackWaiter({ port }).code
|
|
101
113
|
}
|
|
102
114
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.mjs","sourceRoot":"","sources":["../../src/bridge/mcp-client.mjs"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAA;AAElG,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AAErE,MAAM,UAAU,yBAAyB,CAAC,EAAE,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"mcp-client.mjs","sourceRoot":"","sources":["../../src/bridge/mcp-client.mjs"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
export class FileBackedOAuthProvider {
|
|
2
|
-
constructor({ mcpUrl, agentName, auth, onRedirect, onChange }?: {
|
|
2
|
+
constructor({ mcpUrl, agentName, auth, onRedirect, onChange, redirectPort }?: {
|
|
3
3
|
agentName?: string | undefined;
|
|
4
4
|
auth?: {} | undefined;
|
|
5
|
+
redirectPort?: number | undefined;
|
|
5
6
|
});
|
|
6
7
|
mcpUrl: any;
|
|
7
8
|
agentName: string;
|
|
8
9
|
auth: {};
|
|
9
10
|
onRedirect: any;
|
|
10
11
|
onChange: any;
|
|
12
|
+
redirectPort: number;
|
|
11
13
|
get redirectUrl(): string;
|
|
12
14
|
get clientMetadata(): {
|
|
13
15
|
client_name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-provider.d.mts","sourceRoot":"","sources":["../../src/bridge/oauth-provider.mjs"],"names":[],"mappings":"AAOA;IACE
|
|
1
|
+
{"version":3,"file":"oauth-provider.d.mts","sourceRoot":"","sources":["../../src/bridge/oauth-provider.mjs"],"names":[],"mappings":"AAOA;IACE;;;;OAUC;IATC,YAAoB;IACpB,kBAA0B;IAC1B,SAAsB;IACtB,gBAA4B;IAC5B,cAAwB;IAIxB,qBAAgC;IAGlC,0BAEC;IAED;;;;;;;MASC;IAED,yBAEC;IAED,8BAEC;IAED,gDAGC;IAED,cAEC;IAED,uCAGC;IAED,uCAEC;IAED,+CAGC;IAED,oBAKC;IAED,8CAGC;IAED,sBAEC;IAED,iDAcC;CACF"}
|
|
@@ -6,16 +6,20 @@ function bridgeScope() {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export class FileBackedOAuthProvider {
|
|
9
|
-
constructor({ mcpUrl, agentName = 'Local Agent', auth = {}, onRedirect, onChange } = {}) {
|
|
9
|
+
constructor({ mcpUrl, agentName = 'Local Agent', auth = {}, onRedirect, onChange, redirectPort = 17893 } = {}) {
|
|
10
10
|
this.mcpUrl = mcpUrl
|
|
11
11
|
this.agentName = agentName
|
|
12
12
|
this.auth = auth ?? {}
|
|
13
13
|
this.onRedirect = onRedirect
|
|
14
14
|
this.onChange = onChange
|
|
15
|
+
// The loopback OAuth redirect port. Set to the actual free port the callback
|
|
16
|
+
// server bound (see createOAuthCallbackWaiter) so the registered redirect URI
|
|
17
|
+
// matches the listener and never depends on a fixed, collidable port.
|
|
18
|
+
this.redirectPort = redirectPort
|
|
15
19
|
}
|
|
16
20
|
|
|
17
21
|
get redirectUrl() {
|
|
18
|
-
return
|
|
22
|
+
return `http://127.0.0.1:${this.redirectPort}/callback`
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
get clientMetadata() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-provider.mjs","sourceRoot":"","sources":["../../src/bridge/oauth-provider.mjs"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAA;AAE5E,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACrE,OAAO,UAAU,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,OAAO,uBAAuB;IAClC,YAAY,EAAE,MAAM,EAAE,SAAS,GAAG,aAAa,EAAE,IAAI,GAAG,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"oauth-provider.mjs","sourceRoot":"","sources":["../../src/bridge/oauth-provider.mjs"],"names":[],"mappings":"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"}
|