@onepointfour-packs/flaredeck-agent 0.2.38 → 0.2.40
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/agent.d.ts +42 -3
- package/dist/agent.js +84 -6
- package/dist/agent.js.map +1 -1
- package/dist/automode.js +43 -3
- package/dist/automode.js.map +1 -1
- package/dist/branches.d.ts +12 -1
- package/dist/branches.js +13 -3
- package/dist/branches.js.map +1 -1
- package/dist/browser.d.ts +52 -0
- package/dist/browser.js +185 -17
- package/dist/browser.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.js +36 -2
- package/dist/config.js.map +1 -1
- package/dist/credentials.d.ts +217 -0
- package/dist/credentials.js +332 -0
- package/dist/credentials.js.map +1 -0
- package/dist/engine-antigravity.js +2 -0
- package/dist/engine-antigravity.js.map +1 -1
- package/dist/engine-claude.js +14 -2
- package/dist/engine-claude.js.map +1 -1
- package/dist/engine.d.ts +19 -0
- package/dist/engine.js.map +1 -1
- package/dist/environment.d.ts +13 -1
- package/dist/environment.js +35 -2
- package/dist/environment.js.map +1 -1
- package/dist/envtools.d.ts +58 -0
- package/dist/envtools.js +151 -0
- package/dist/envtools.js.map +1 -0
- package/dist/flaredeck.d.ts +24 -0
- package/dist/flaredeck.js +20 -0
- package/dist/flaredeck.js.map +1 -1
- package/dist/github.d.ts +2 -0
- package/dist/github.js +4 -0
- package/dist/github.js.map +1 -1
- package/dist/githubauth.d.ts +11 -1
- package/dist/githubauth.js +82 -16
- package/dist/githubauth.js.map +1 -1
- package/dist/hydrate.d.ts +114 -0
- package/dist/hydrate.js +79 -0
- package/dist/hydrate.js.map +1 -0
- package/dist/limits.d.ts +184 -0
- package/dist/limits.js +251 -0
- package/dist/limits.js.map +1 -0
- package/dist/main.js +178 -96
- package/dist/main.js.map +1 -1
- package/dist/picker.js +50 -4
- package/dist/picker.js.map +1 -1
- package/dist/preflight.d.ts +43 -0
- package/dist/preflight.js +133 -19
- package/dist/preflight.js.map +1 -1
- package/dist/providers.d.ts +10 -0
- package/dist/providers.js +23 -0
- package/dist/providers.js.map +1 -1
- package/dist/runs.d.ts +11 -3
- package/dist/runs.js +41 -4
- package/dist/runs.js.map +1 -1
- package/dist/serve.js +1061 -114
- package/dist/serve.js.map +1 -1
- package/dist/session.d.ts +51 -0
- package/dist/session.js +145 -0
- package/dist/session.js.map +1 -0
- package/dist/settle.d.ts +18 -0
- package/dist/settle.js +39 -0
- package/dist/settle.js.map +1 -0
- package/dist/signin.d.ts +47 -0
- package/dist/signin.js +331 -0
- package/dist/signin.js.map +1 -0
- package/dist/stream.d.ts +6 -0
- package/dist/stream.js +44 -3
- package/dist/stream.js.map +1 -1
- package/dist/subscriptions.d.ts +115 -0
- package/dist/subscriptions.js +140 -0
- package/dist/subscriptions.js.map +1 -0
- package/dist/ui.d.ts +11 -0
- package/dist/ui.js +6 -1
- package/dist/ui.js.map +1 -1
- package/dist/usage.d.ts +105 -0
- package/dist/usage.js +348 -0
- package/dist/usage.js.map +1 -0
- package/dist/wall.d.ts +35 -0
- package/dist/wall.js +94 -0
- package/dist/wall.js.map +1 -0
- package/dist/worktree.d.ts +19 -0
- package/dist/worktree.js +179 -4
- package/dist/worktree.js.map +1 -1
- package/package.json +1 -1
package/dist/flaredeck.js
CHANGED
|
@@ -83,6 +83,26 @@ export class Flaredeck {
|
|
|
83
83
|
async card(idOrCode) {
|
|
84
84
|
return this.call(`/cards/${encodeURIComponent(idOrCode)}`);
|
|
85
85
|
}
|
|
86
|
+
/** Whether FlareDeck has this agent paused, and why. See flaredeck-mcp/src/mcp/pause.ts. */
|
|
87
|
+
async pauseState() {
|
|
88
|
+
return (await this.call('/agents/me')).paused ?? null;
|
|
89
|
+
}
|
|
90
|
+
/** Pause this agent: its cards go back to its lead, the lead is told once, assign-card refuses it. */
|
|
91
|
+
async pause(check, reason) {
|
|
92
|
+
return this.call('/agents/me/pause', { method: 'POST', body: JSON.stringify({ check, reason }) });
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Resume this agent itself. The server allows it only for walls that clear on their own (disk);
|
|
96
|
+
* anything else comes back `resumed: false` and stays the lead's decision. A server without the
|
|
97
|
+
* route answers 404, which the caller reads the same way.
|
|
98
|
+
*/
|
|
99
|
+
async resumeSelf() {
|
|
100
|
+
return this.call('/agents/me/resume', { method: 'POST', body: '{}' });
|
|
101
|
+
}
|
|
102
|
+
/** The wall is gone — tell the lead once. Resuming stays the lead's decision. */
|
|
103
|
+
async ready() {
|
|
104
|
+
await this.call('/agents/me/ready', { method: 'POST', body: '{}' });
|
|
105
|
+
}
|
|
86
106
|
/** Every board with its lanes (key, name, type, order), as the REST API lists them. */
|
|
87
107
|
async boards() {
|
|
88
108
|
return ((await this.call('/boards')).boards ?? []);
|
package/dist/flaredeck.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flaredeck.js","sourceRoot":"","sources":["../src/flaredeck.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flaredeck.js","sourceRoot":"","sources":["../src/flaredeck.ts"],"names":[],"mappings":"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"}
|
package/dist/github.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export type Job = {
|
|
|
22
22
|
/** What a pull request targets, from the board's own configuration. */
|
|
23
23
|
base: string;
|
|
24
24
|
card: string;
|
|
25
|
+
/** Told when GitHub refuses the login itself — a wall no retry gets past. The harness pauses. */
|
|
26
|
+
onAuthFailure?: (why: string) => void;
|
|
25
27
|
};
|
|
26
28
|
/**
|
|
27
29
|
* Publish a job's branch. Extracted from the tool it used to live inside because the OTHER engine
|
package/dist/github.js
CHANGED
|
@@ -124,6 +124,7 @@ export async function publishBranch(j) {
|
|
|
124
124
|
// only "push_branch failed" will try again, try git, and then go looking for another way —
|
|
125
125
|
// and none of them can work, because nothing on this machine can authenticate.
|
|
126
126
|
const why = e instanceof Error ? e.message : String(e);
|
|
127
|
+
j.onAuthFailure?.(why);
|
|
127
128
|
return {
|
|
128
129
|
ok: false,
|
|
129
130
|
text: `STOP — this machine cannot authenticate to GitHub, so nothing can be published from it.\n\n` +
|
|
@@ -142,6 +143,9 @@ export async function publishBranch(j) {
|
|
|
142
143
|
// Redact before anything is shown: git echoes the remote URL on failure, and that URL now
|
|
143
144
|
// carries the token.
|
|
144
145
|
const safe = out.split(token).join('[REDACTED]');
|
|
146
|
+
if (code !== 0 && /Invalid username or token|Authentication failed|Bad credentials|could not read Username/i.test(safe)) {
|
|
147
|
+
j.onAuthFailure?.(safe.split('\n').find((l) => /invalid|authentication|credentials/i.test(l)) ?? safe.slice(0, 200));
|
|
148
|
+
}
|
|
145
149
|
return code === 0
|
|
146
150
|
? { ok: true, text: `Pushed ${branch}.\n${safe}` }
|
|
147
151
|
: { ok: false, text: `Could not push ${branch}:\n${safe}` };
|
package/dist/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
|
package/dist/githubauth.d.ts
CHANGED
|
@@ -27,6 +27,16 @@ export declare function freshGitHubToken(tokens: GitHubTokens, onRefreshed: (t:
|
|
|
27
27
|
* sign used to be `push_branch failed` — after a card had been read, a worktree cut, the work
|
|
28
28
|
* done and twenty minutes spent. An agent that cannot publish should not start.
|
|
29
29
|
*
|
|
30
|
-
* A
|
|
30
|
+
* A token that never expires is still asked about. "Never expires" is not "still valid": GitHub
|
|
31
|
+
* keeps only ten tokens per person per OAuth app and cancels the oldest when an eleventh is
|
|
32
|
+
* issued, so one login on another machine or for another repo quietly kills a token here. That
|
|
33
|
+
* used to pass this check without a call, and every agent on the machine then did a card's
|
|
34
|
+
* work and failed at push_branch with "Invalid username or token".
|
|
31
35
|
*/
|
|
32
36
|
export declare function canPublish(tokens: GitHubTokens | undefined): Promise<string | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Can this token push to the repository `remote` points at? A valid login is not enough: an
|
|
39
|
+
* organisation can refuse an OAuth app, and a token can lack the repo. Only a definite "no" counts
|
|
40
|
+
* — a network blip or a remote that is not on GitHub says nothing about the token.
|
|
41
|
+
*/
|
|
42
|
+
export declare function canPushTo(token: string, remote: string): Promise<string | null>;
|
package/dist/githubauth.js
CHANGED
|
@@ -11,8 +11,13 @@
|
|
|
11
11
|
*/
|
|
12
12
|
/** Public by design — a device-flow client has no secret, which is why it suits an unattended box. */
|
|
13
13
|
export const GITHUB_CLIENT_ID = 'Ov23liGPUwgxEVJBsYlU';
|
|
14
|
-
/**
|
|
15
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Read/write on the repos you can reach, AND on their workflow files. Broad; a GitHub App would
|
|
16
|
+
* scope it per repo. `workflow` is not optional: without it GitHub refuses any push that touches
|
|
17
|
+
* `.github/workflows/`, so a card fixing CI did the work and could not publish it (KD-1397,
|
|
18
|
+
* KD-1310) — and nothing a retry or a different branch does gets past that.
|
|
19
|
+
*/
|
|
20
|
+
const SCOPE = 'repo workflow';
|
|
16
21
|
const form = async (url, body) => {
|
|
17
22
|
const res = await fetch(url, {
|
|
18
23
|
method: 'POST',
|
|
@@ -95,30 +100,91 @@ export async function freshGitHubToken(tokens, onRefreshed) {
|
|
|
95
100
|
* sign used to be `push_branch failed` — after a card had been read, a worktree cut, the work
|
|
96
101
|
* done and twenty minutes spent. An agent that cannot publish should not start.
|
|
97
102
|
*
|
|
98
|
-
* A
|
|
103
|
+
* A token that never expires is still asked about. "Never expires" is not "still valid": GitHub
|
|
104
|
+
* keeps only ten tokens per person per OAuth app and cancels the oldest when an eleventh is
|
|
105
|
+
* issued, so one login on another machine or for another repo quietly kills a token here. That
|
|
106
|
+
* used to pass this check without a call, and every agent on the machine then did a card's
|
|
107
|
+
* work and failed at push_branch with "Invalid username or token".
|
|
99
108
|
*/
|
|
100
109
|
export async function canPublish(tokens) {
|
|
101
110
|
if (!tokens?.accessToken) {
|
|
102
111
|
return 'This machine has no GitHub login, so nothing it writes could be published.';
|
|
103
112
|
}
|
|
104
|
-
|
|
105
|
-
if (
|
|
113
|
+
let token = tokens.accessToken;
|
|
114
|
+
if (tokens.expiresAt && tokens.refreshToken && Date.now() >= tokens.expiresAt - EARLY_MS) {
|
|
115
|
+
try {
|
|
116
|
+
token = await freshGitHubToken(tokens, () => { });
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
return expired(e);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return gitHubAccepts(token);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Asks GitHub whether it still takes this token. Only a definite refusal counts: a network that
|
|
126
|
+
* is down for a moment says nothing about the token, and refusing to start over it would turn a
|
|
127
|
+
* blip into a dead agent.
|
|
128
|
+
*/
|
|
129
|
+
async function gitHubAccepts(token) {
|
|
130
|
+
let status;
|
|
131
|
+
try {
|
|
132
|
+
const res = await fetch('https://api.github.com/user', {
|
|
133
|
+
headers: { Authorization: `Bearer ${token}`, Accept: 'application/vnd.github+json' },
|
|
134
|
+
signal: AbortSignal.timeout(10_000),
|
|
135
|
+
});
|
|
136
|
+
status = res.status;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
106
139
|
return null;
|
|
107
|
-
|
|
140
|
+
}
|
|
141
|
+
if (status !== 401)
|
|
108
142
|
return null;
|
|
143
|
+
return ('GitHub no longer accepts the login stored for this repository (401 Bad credentials), so ' +
|
|
144
|
+
'nothing the agent writes here could be pushed.\n\n' +
|
|
145
|
+
'It did not expire. GitHub keeps ten logins per person for this app and cancels the oldest ' +
|
|
146
|
+
'when another is made, on this machine or any other. Sign in again, or use a classic token, ' +
|
|
147
|
+
'which does not count towards that limit:\n\n' +
|
|
148
|
+
' flaredeck-agent login --github\n' +
|
|
149
|
+
' flaredeck-agent login --github-token ghp_… (classic, repo + workflow scopes)');
|
|
150
|
+
}
|
|
151
|
+
function expired(e) {
|
|
152
|
+
const why = e instanceof Error ? e.message : String(e);
|
|
153
|
+
return (`This machine's GitHub login has expired and cannot renew itself.\n\n${why}\n\n` +
|
|
154
|
+
'That is not a mistake you made: an OAuth token here is refreshed with a client secret, and ' +
|
|
155
|
+
'this package is public so it has none. Sign in again, or — better for a machine nobody is ' +
|
|
156
|
+
'watching — use a classic token, which does not expire:\n\n' +
|
|
157
|
+
' flaredeck-agent login --github\n' +
|
|
158
|
+
' flaredeck-agent login --github-token ghp_… (classic, repo + workflow scopes)\n\n' +
|
|
159
|
+
'Starting without it would mean doing the work and then discovering it cannot be published.');
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Can this token push to the repository `remote` points at? A valid login is not enough: an
|
|
163
|
+
* organisation can refuse an OAuth app, and a token can lack the repo. Only a definite "no" counts
|
|
164
|
+
* — a network blip or a remote that is not on GitHub says nothing about the token.
|
|
165
|
+
*/
|
|
166
|
+
export async function canPushTo(token, remote) {
|
|
167
|
+
const m = remote.match(/github\.com[/:]([^/]+)\/([^/]+?)(?:\.git)?\/?$/);
|
|
168
|
+
if (!m)
|
|
169
|
+
return null;
|
|
170
|
+
let res;
|
|
109
171
|
try {
|
|
110
|
-
await
|
|
172
|
+
res = await fetch(`https://api.github.com/repos/${m[1]}/${m[2]}`, {
|
|
173
|
+
headers: { Authorization: `Bearer ${token}`, Accept: 'application/vnd.github+json' },
|
|
174
|
+
signal: AbortSignal.timeout(10_000),
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
111
178
|
return null;
|
|
112
179
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
'this package is public so it has none. Sign in again, or — better for a machine nobody is ' +
|
|
118
|
-
'watching — use a classic token, which does not expire:\n\n' +
|
|
119
|
-
' flaredeck-agent login --github\n' +
|
|
120
|
-
' flaredeck-agent login --github-token ghp_… (classic, repo scope)\n\n' +
|
|
121
|
-
'Starting without it would mean doing the work and then discovering it cannot be published.');
|
|
180
|
+
if (res.status === 401)
|
|
181
|
+
return `GitHub refuses this machine's login (401 Bad credentials).`;
|
|
182
|
+
if (res.status === 404 || res.status === 403) {
|
|
183
|
+
return `GitHub will not show ${m[1]}/${m[2]} to this machine's login (${res.status}) — the account has no access, or the organisation blocks the app.`;
|
|
122
184
|
}
|
|
185
|
+
const body = (await res.json().catch(() => ({})));
|
|
186
|
+
if (body.permissions && body.permissions.push === false)
|
|
187
|
+
return `This machine's GitHub login can read ${m[1]}/${m[2]} but not push to it.`;
|
|
188
|
+
return null;
|
|
123
189
|
}
|
|
124
190
|
//# sourceMappingURL=githubauth.js.map
|
package/dist/githubauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubauth.js","sourceRoot":"","sources":["../src/githubauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,sGAAsG;AACtG,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD
|
|
1
|
+
{"version":3,"file":"githubauth.js","sourceRoot":"","sources":["../src/githubauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Everything this agent needs, fetched from FlareDeck at startup.
|
|
3
|
+
*
|
|
4
|
+
* The north star: `flaredeck-agent login` is the ONLY credential step on a machine. Connect
|
|
5
|
+
* Sceneflo once in FlareDeck and every agent has it; rotate a token there and every agent
|
|
6
|
+
* follows; add a machine and it needs nothing but the login. What this replaces is a per-box
|
|
7
|
+
* ritual — `flaredeck-agent connect cnjure …`, `connect sceneflo …`, a providers file, a GitHub
|
|
8
|
+
* token — repeated on every machine and re-done whenever any of it expired.
|
|
9
|
+
*
|
|
10
|
+
* TWO RULES, both of which matter more than they look.
|
|
11
|
+
*
|
|
12
|
+
* FLAREDECK WINS, BUT LOCAL IS NOT IGNORED. A server configured here that FlareDeck does not
|
|
13
|
+
* know about is kept, so a machine can still be pointed at something deliberately — a dev
|
|
14
|
+
* instance, a server nobody else should get. A server FlareDeck DOES know about is replaced
|
|
15
|
+
* outright, because a stale local token silently shadowing the current one is precisely the
|
|
16
|
+
* failure this exists to end.
|
|
17
|
+
*
|
|
18
|
+
* AND BEING UNABLE TO ASK IS NOT THE SAME AS BEING TOLD NOTHING. If FlareDeck cannot be reached
|
|
19
|
+
* the agent keeps whatever it already had and says so. The alternative — treating an unreachable
|
|
20
|
+
* vault as "no servers configured" — would strip every agent of every tool the moment the network
|
|
21
|
+
* hiccuped, which is a far worse outage than a slightly stale list.
|
|
22
|
+
*/
|
|
23
|
+
import type { Config } from './config.js';
|
|
24
|
+
export type McpServer = {
|
|
25
|
+
name: string;
|
|
26
|
+
url: string;
|
|
27
|
+
token?: string;
|
|
28
|
+
};
|
|
29
|
+
export type Hydrated = {
|
|
30
|
+
/** The merged list to use. Never shorter than what was configured locally. */
|
|
31
|
+
mcpServers: McpServer[];
|
|
32
|
+
/**
|
|
33
|
+
* Servers the workspace marked REQUIRED that FlareDeck could not give a working token for.
|
|
34
|
+
* Non-empty means: do no work until they are connected. Absent when FlareDeck was unreachable —
|
|
35
|
+
* not knowing is not the same as knowing one is missing.
|
|
36
|
+
*/
|
|
37
|
+
missingRequired?: Array<{
|
|
38
|
+
name: string;
|
|
39
|
+
why: string;
|
|
40
|
+
}>;
|
|
41
|
+
/** The workspace's GitHub connection, when it has one — wins over this machine's github.json. */
|
|
42
|
+
github?: {
|
|
43
|
+
token: string;
|
|
44
|
+
login: string | null;
|
|
45
|
+
} | null;
|
|
46
|
+
/** The workspace's model keys (OpenRouter, Gemini) from Secrets. */
|
|
47
|
+
providers?: {
|
|
48
|
+
openrouter?: {
|
|
49
|
+
apiKey: string;
|
|
50
|
+
};
|
|
51
|
+
gemini?: {
|
|
52
|
+
apiKey: string;
|
|
53
|
+
};
|
|
54
|
+
} | null;
|
|
55
|
+
/** What happened, for the log — including nothing, when nothing changed. */
|
|
56
|
+
note?: string;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Fetch this workspace's MCP servers and merge them over the local ones.
|
|
60
|
+
*
|
|
61
|
+
* `fetchConfig` is injected so the merge is testable without a network: the rules above are the
|
|
62
|
+
* part worth testing, and they are decided here rather than by the endpoint.
|
|
63
|
+
*/
|
|
64
|
+
export declare function hydrateMcpServers(config: Pick<Config, 'mcpServers'>, fetchConfig: () => Promise<{
|
|
65
|
+
ok: true;
|
|
66
|
+
servers: McpServer[];
|
|
67
|
+
missingRequired?: Array<{
|
|
68
|
+
name: string;
|
|
69
|
+
why: string;
|
|
70
|
+
}>;
|
|
71
|
+
github?: {
|
|
72
|
+
token: string;
|
|
73
|
+
login: string | null;
|
|
74
|
+
} | null;
|
|
75
|
+
providers?: {
|
|
76
|
+
openrouter?: {
|
|
77
|
+
apiKey: string;
|
|
78
|
+
};
|
|
79
|
+
gemini?: {
|
|
80
|
+
apiKey: string;
|
|
81
|
+
};
|
|
82
|
+
} | null;
|
|
83
|
+
} | {
|
|
84
|
+
ok: false;
|
|
85
|
+
why: string;
|
|
86
|
+
}>): Promise<Hydrated>;
|
|
87
|
+
/**
|
|
88
|
+
* The real fetch. Agents-only by construction: this presents the agent's own access token, and
|
|
89
|
+
* the route is not mounted on the browser guard — a person's Firebase token gets a flat 401,
|
|
90
|
+
* because a browser has no business receiving these tokens.
|
|
91
|
+
*/
|
|
92
|
+
export declare function mcpConfigFetcher(mcpUrl: string, tenantId: string, auth: () => Promise<string>): () => Promise<{
|
|
93
|
+
ok: true;
|
|
94
|
+
servers: McpServer[];
|
|
95
|
+
missingRequired?: Array<{
|
|
96
|
+
name: string;
|
|
97
|
+
why: string;
|
|
98
|
+
}>;
|
|
99
|
+
github?: {
|
|
100
|
+
token: string;
|
|
101
|
+
login: string | null;
|
|
102
|
+
} | null;
|
|
103
|
+
providers?: {
|
|
104
|
+
openrouter?: {
|
|
105
|
+
apiKey: string;
|
|
106
|
+
};
|
|
107
|
+
gemini?: {
|
|
108
|
+
apiKey: string;
|
|
109
|
+
};
|
|
110
|
+
} | null;
|
|
111
|
+
} | {
|
|
112
|
+
ok: false;
|
|
113
|
+
why: string;
|
|
114
|
+
}>;
|
package/dist/hydrate.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetch this workspace's MCP servers and merge them over the local ones.
|
|
3
|
+
*
|
|
4
|
+
* `fetchConfig` is injected so the merge is testable without a network: the rules above are the
|
|
5
|
+
* part worth testing, and they are decided here rather than by the endpoint.
|
|
6
|
+
*/
|
|
7
|
+
export async function hydrateMcpServers(config, fetchConfig) {
|
|
8
|
+
const local = (config.mcpServers ?? []).filter((s) => s?.name && s?.url);
|
|
9
|
+
let answer;
|
|
10
|
+
try {
|
|
11
|
+
answer = await fetchConfig();
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
answer = { ok: false, why: e instanceof Error ? e.message : String(e) };
|
|
15
|
+
}
|
|
16
|
+
if (!answer.ok) {
|
|
17
|
+
return {
|
|
18
|
+
mcpServers: local,
|
|
19
|
+
note: local.length
|
|
20
|
+
? `could not reach FlareDeck for the MCP list (${answer.why}) — keeping the ${local.length} configured on this machine`
|
|
21
|
+
: `could not reach FlareDeck for the MCP list (${answer.why})`,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const fromFlaredeck = (answer.servers ?? []).filter((s) => s?.name && s?.url);
|
|
25
|
+
const byName = new Map();
|
|
26
|
+
// Local first so FlareDeck's entry overwrites it on a name clash — and so a local-only server
|
|
27
|
+
// survives. Names are the tool prefix, so they are the identity here, matched case-insensitively
|
|
28
|
+
// because the server lowercases them and an older local config may not have.
|
|
29
|
+
for (const s of local)
|
|
30
|
+
byName.set(s.name.toLowerCase(), s);
|
|
31
|
+
const replaced = [];
|
|
32
|
+
for (const s of fromFlaredeck) {
|
|
33
|
+
const key = s.name.toLowerCase();
|
|
34
|
+
if (byName.has(key))
|
|
35
|
+
replaced.push(s.name);
|
|
36
|
+
byName.set(key, s);
|
|
37
|
+
}
|
|
38
|
+
const merged = [...byName.values()];
|
|
39
|
+
const added = fromFlaredeck.length - replaced.length;
|
|
40
|
+
const localOnly = merged.length - fromFlaredeck.length;
|
|
41
|
+
const parts = [];
|
|
42
|
+
if (added > 0)
|
|
43
|
+
parts.push(`${added} from FlareDeck`);
|
|
44
|
+
if (replaced.length)
|
|
45
|
+
parts.push(`${replaced.length} updated (${replaced.join(', ')})`);
|
|
46
|
+
if (localOnly > 0)
|
|
47
|
+
parts.push(`${localOnly} configured only on this machine`);
|
|
48
|
+
return {
|
|
49
|
+
mcpServers: merged,
|
|
50
|
+
missingRequired: answer.missingRequired ?? [],
|
|
51
|
+
github: answer.github ?? null,
|
|
52
|
+
providers: answer.providers ?? null,
|
|
53
|
+
...(parts.length ? { note: `MCP servers: ${parts.join(', ')}` } : {}),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The real fetch. Agents-only by construction: this presents the agent's own access token, and
|
|
58
|
+
* the route is not mounted on the browser guard — a person's Firebase token gets a flat 401,
|
|
59
|
+
* because a browser has no business receiving these tokens.
|
|
60
|
+
*/
|
|
61
|
+
export function mcpConfigFetcher(mcpUrl, tenantId, auth) {
|
|
62
|
+
return async () => {
|
|
63
|
+
try {
|
|
64
|
+
const origin = new URL(mcpUrl).origin;
|
|
65
|
+
const res = await fetch(`${origin}/api/v1/${encodeURIComponent(tenantId)}/mcp/config`, {
|
|
66
|
+
headers: { authorization: `Bearer ${await auth()}` },
|
|
67
|
+
signal: AbortSignal.timeout(15_000),
|
|
68
|
+
});
|
|
69
|
+
const body = (await res.json().catch(() => undefined));
|
|
70
|
+
if (!res.ok)
|
|
71
|
+
return { ok: false, why: String(body?.message ?? `HTTP ${res.status}`) };
|
|
72
|
+
return { ok: true, servers: body?.mcpServers ?? [], missingRequired: body?.missingRequired ?? [], github: body?.github ?? null, providers: body?.providers ?? null };
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
return { ok: false, why: e instanceof Error ? e.message : String(e) };
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=hydrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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"}
|