@luckydraw/cumulus 0.31.37 → 0.31.39
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/CHANGELOG.md +11 -0
- package/dist/gateway/adapters/webchat.d.ts +3 -0
- package/dist/gateway/adapters/webchat.d.ts.map +1 -1
- package/dist/gateway/adapters/webchat.js +27 -9
- package/dist/gateway/adapters/webchat.js.map +1 -1
- package/dist/gateway/auth.d.ts +7 -0
- package/dist/gateway/auth.d.ts.map +1 -1
- package/dist/gateway/auth.js +4 -2
- package/dist/gateway/auth.js.map +1 -1
- package/dist/gateway/bridge/client.d.ts +65 -0
- package/dist/gateway/bridge/client.d.ts.map +1 -0
- package/dist/gateway/bridge/client.js +138 -0
- package/dist/gateway/bridge/client.js.map +1 -0
- package/dist/gateway/bridge/gateway.d.ts +51 -0
- package/dist/gateway/bridge/gateway.d.ts.map +1 -0
- package/dist/gateway/bridge/gateway.js +190 -0
- package/dist/gateway/bridge/gateway.js.map +1 -0
- package/dist/gateway/bridge/protocol.d.ts +25 -0
- package/dist/gateway/bridge/protocol.d.ts.map +1 -0
- package/dist/gateway/bridge/protocol.js +40 -0
- package/dist/gateway/bridge/protocol.js.map +1 -0
- package/dist/gateway/config.d.ts +56 -0
- package/dist/gateway/config.d.ts.map +1 -1
- package/dist/gateway/config.js +111 -0
- package/dist/gateway/config.js.map +1 -1
- package/dist/gateway/daemon.js +3 -0
- package/dist/gateway/daemon.js.map +1 -1
- package/dist/gateway/gateway-agents-mcp.js +3 -1
- package/dist/gateway/gateway-agents-mcp.js.map +1 -1
- package/dist/gateway/hooks.d.ts +4 -2
- package/dist/gateway/hooks.d.ts.map +1 -1
- package/dist/gateway/hooks.js +3 -2
- package/dist/gateway/hooks.js.map +1 -1
- package/dist/gateway/namespaces.d.ts +82 -0
- package/dist/gateway/namespaces.d.ts.map +1 -0
- package/dist/gateway/namespaces.js +122 -0
- package/dist/gateway/namespaces.js.map +1 -0
- package/dist/gateway/server.d.ts +6 -4
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +214 -15
- package/dist/gateway/server.js.map +1 -1
- package/dist/lib/gateway.d.ts +14 -0
- package/dist/lib/gateway.d.ts.map +1 -1
- package/dist/lib/gateway.js +35 -2
- package/dist/lib/gateway.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Server } from 'http';
|
|
2
|
+
import { type BridgeResult } from './protocol.js';
|
|
3
|
+
export interface BridgeContextFrame {
|
|
4
|
+
describeView?: unknown;
|
|
5
|
+
selection?: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface BridgeGatewayOptions {
|
|
8
|
+
/** Authorize a tab registration. Return false to reject the socket. */
|
|
9
|
+
authenticate: (apiKey: string, thread: string) => boolean | Promise<boolean>;
|
|
10
|
+
callTimeoutMs?: number;
|
|
11
|
+
confirmTimeoutMs?: number;
|
|
12
|
+
/** Invoked with piggybacked describeView/selection context from the tab. */
|
|
13
|
+
onContext?: (thread: string, context: BridgeContextFrame) => void;
|
|
14
|
+
onTabChange?: (thread: string, event: 'connect' | 'disconnect') => void;
|
|
15
|
+
}
|
|
16
|
+
export declare class BridgeGateway {
|
|
17
|
+
private readonly authenticate;
|
|
18
|
+
private readonly callTimeoutMs;
|
|
19
|
+
private readonly confirmTimeoutMs;
|
|
20
|
+
private readonly onContext?;
|
|
21
|
+
private readonly onTabChange?;
|
|
22
|
+
private readonly tabs;
|
|
23
|
+
private nextId;
|
|
24
|
+
private readonly wss;
|
|
25
|
+
constructor(opts: BridgeGatewayOptions);
|
|
26
|
+
/**
|
|
27
|
+
* Claim WS upgrades for `path` on an existing http.Server. Leaves upgrades
|
|
28
|
+
* for other paths untouched (cumulus federation pattern).
|
|
29
|
+
*/
|
|
30
|
+
attach(server: Server, path?: string): this;
|
|
31
|
+
/** Manifest of the currently connected tab for a thread, or null. */
|
|
32
|
+
manifest(thread: string): unknown;
|
|
33
|
+
hasTab(thread: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Dispatch a command to the thread's tab. Resolves with the tab's
|
|
36
|
+
* { ok, summary, data?, affected? } result, a timeout result, or the
|
|
37
|
+
* graceful no-session result — never rejects.
|
|
38
|
+
*/
|
|
39
|
+
call(thread: string, command: string, params?: object): Promise<BridgeResult>;
|
|
40
|
+
/**
|
|
41
|
+
* Export-tier dispatch: sends a confirm-request and executes only after the
|
|
42
|
+
* tab reports the user accepted. Declined or timed-out confirms resolve to an
|
|
43
|
+
* ok:false result. Never rejects.
|
|
44
|
+
*/
|
|
45
|
+
callWithConfirm(thread: string, command: string, params?: object, summary?: string): Promise<BridgeResult>;
|
|
46
|
+
close(): void;
|
|
47
|
+
private awaitResult;
|
|
48
|
+
private onConnection;
|
|
49
|
+
private dropTab;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../../src/gateway/bridge/gateway.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAcvB,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,YAAY,KAAK,IAAI,CAAC;CACzE;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IACpD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;gBAE1B,IAAI,EAAE,oBAAoB;IAUtC;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,SAAY,GAAG,IAAI;IAW9C,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIjC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI/B;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IASjF;;;;OAIG;IACH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAW,EACnB,OAAO,SAAK,GACX,OAAO,CAAC,YAAY,CAAC;IASxB,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,YAAY;IAmFpB,OAAO,CAAC,OAAO;CAQhB"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
// Gateway side of the agent bridge: accepts tab registrations over WebSocket,
|
|
2
|
+
// routes tool calls to the registered tab, enforces the confirm protocol for
|
|
3
|
+
// export-tier commands. App-agnostic — knows about "a manifest" and "a thread",
|
|
4
|
+
// nothing else.
|
|
5
|
+
//
|
|
6
|
+
// Attachment: designed for cumulus's federation-style mount — pass the
|
|
7
|
+
// gateway's http.Server and a path, and BridgeGateway claims WS upgrades on
|
|
8
|
+
// that path, leaving upgrades for other paths (federation, webchat) untouched.
|
|
9
|
+
//
|
|
10
|
+
// Vendored from @soapko/agent-bridge@0.1.0 (task 097).
|
|
11
|
+
import { WebSocketServer, WebSocket } from 'ws';
|
|
12
|
+
import { MSG, DEFAULT_CALL_TIMEOUT_MS, DEFAULT_CONFIRM_TIMEOUT_MS, NO_SESSION_RESULT, timeoutResult, } from './protocol.js';
|
|
13
|
+
export class BridgeGateway {
|
|
14
|
+
authenticate;
|
|
15
|
+
callTimeoutMs;
|
|
16
|
+
confirmTimeoutMs;
|
|
17
|
+
onContext;
|
|
18
|
+
onTabChange;
|
|
19
|
+
tabs = new Map();
|
|
20
|
+
nextId = 1;
|
|
21
|
+
wss;
|
|
22
|
+
constructor(opts) {
|
|
23
|
+
this.authenticate = opts.authenticate;
|
|
24
|
+
this.callTimeoutMs = opts.callTimeoutMs ?? DEFAULT_CALL_TIMEOUT_MS;
|
|
25
|
+
this.confirmTimeoutMs = opts.confirmTimeoutMs ?? DEFAULT_CONFIRM_TIMEOUT_MS;
|
|
26
|
+
this.onContext = opts.onContext;
|
|
27
|
+
this.onTabChange = opts.onTabChange;
|
|
28
|
+
this.wss = new WebSocketServer({ noServer: true });
|
|
29
|
+
this.wss.on('connection', (ws) => this.onConnection(ws));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Claim WS upgrades for `path` on an existing http.Server. Leaves upgrades
|
|
33
|
+
* for other paths untouched (cumulus federation pattern).
|
|
34
|
+
*/
|
|
35
|
+
attach(server, path = '/bridge') {
|
|
36
|
+
server.on('upgrade', (req, socket, head) => {
|
|
37
|
+
const url = new URL(req.url ?? '', 'http://localhost');
|
|
38
|
+
if (url.pathname !== path)
|
|
39
|
+
return;
|
|
40
|
+
this.wss.handleUpgrade(req, socket, head, ws => {
|
|
41
|
+
this.wss.emit('connection', ws, req);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
/** Manifest of the currently connected tab for a thread, or null. */
|
|
47
|
+
manifest(thread) {
|
|
48
|
+
return this.tabs.get(thread)?.manifest ?? null;
|
|
49
|
+
}
|
|
50
|
+
hasTab(thread) {
|
|
51
|
+
return this.tabs.has(thread);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Dispatch a command to the thread's tab. Resolves with the tab's
|
|
55
|
+
* { ok, summary, data?, affected? } result, a timeout result, or the
|
|
56
|
+
* graceful no-session result — never rejects.
|
|
57
|
+
*/
|
|
58
|
+
call(thread, command, params = {}) {
|
|
59
|
+
const tab = this.tabs.get(thread);
|
|
60
|
+
if (!tab)
|
|
61
|
+
return Promise.resolve({ ...NO_SESSION_RESULT });
|
|
62
|
+
const id = String(this.nextId++);
|
|
63
|
+
return this.awaitResult(tab, id, command, this.callTimeoutMs, () => send(tab.ws, { type: MSG.CALL, id, command, params }));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Export-tier dispatch: sends a confirm-request and executes only after the
|
|
67
|
+
* tab reports the user accepted. Declined or timed-out confirms resolve to an
|
|
68
|
+
* ok:false result. Never rejects.
|
|
69
|
+
*/
|
|
70
|
+
callWithConfirm(thread, command, params = {}, summary = '') {
|
|
71
|
+
const tab = this.tabs.get(thread);
|
|
72
|
+
if (!tab)
|
|
73
|
+
return Promise.resolve({ ...NO_SESSION_RESULT });
|
|
74
|
+
const id = String(this.nextId++);
|
|
75
|
+
return this.awaitResult(tab, id, command, this.confirmTimeoutMs, () => send(tab.ws, { type: MSG.CONFIRM_REQUEST, id, command, params, summary }));
|
|
76
|
+
}
|
|
77
|
+
close() {
|
|
78
|
+
for (const tab of this.tabs.values())
|
|
79
|
+
this.dropTab(tab);
|
|
80
|
+
this.tabs.clear();
|
|
81
|
+
this.wss.close();
|
|
82
|
+
}
|
|
83
|
+
awaitResult(tab, id, command, timeoutMs, fire) {
|
|
84
|
+
return new Promise(resolve => {
|
|
85
|
+
const timer = setTimeout(() => {
|
|
86
|
+
tab.pending.delete(id);
|
|
87
|
+
resolve(timeoutResult(command, timeoutMs));
|
|
88
|
+
}, timeoutMs);
|
|
89
|
+
tab.pending.set(id, { resolve, timer, command });
|
|
90
|
+
fire();
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
onConnection(ws) {
|
|
94
|
+
let thread = null;
|
|
95
|
+
ws.on('message', async (raw) => {
|
|
96
|
+
let msg;
|
|
97
|
+
try {
|
|
98
|
+
msg = JSON.parse(String(raw));
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
send(ws, { type: MSG.ERROR, summary: 'Malformed JSON' });
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (msg.type === MSG.REGISTER) {
|
|
105
|
+
const apiKey = String(msg.apiKey ?? '');
|
|
106
|
+
const registerThread = typeof msg.thread === 'string' ? msg.thread : '';
|
|
107
|
+
const ok = await this.authenticate(apiKey, registerThread);
|
|
108
|
+
if (!ok || !registerThread || !msg.manifest) {
|
|
109
|
+
send(ws, { type: MSG.ERROR, summary: 'Registration rejected' });
|
|
110
|
+
ws.close(4001, 'unauthorized');
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
thread = registerThread;
|
|
114
|
+
const prev = this.tabs.get(thread);
|
|
115
|
+
if (prev)
|
|
116
|
+
this.dropTab(prev); // one tab per thread — last-connect wins
|
|
117
|
+
this.tabs.set(thread, { ws, manifest: msg.manifest, pending: new Map() });
|
|
118
|
+
send(ws, { type: MSG.REGISTERED, thread });
|
|
119
|
+
this.onTabChange?.(thread, 'connect');
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const tab = thread ? this.tabs.get(thread) : undefined;
|
|
123
|
+
if (!tab || tab.ws !== ws)
|
|
124
|
+
return;
|
|
125
|
+
switch (msg.type) {
|
|
126
|
+
case MSG.RESULT: {
|
|
127
|
+
const pending = tab.pending.get(String(msg.id));
|
|
128
|
+
if (!pending)
|
|
129
|
+
return;
|
|
130
|
+
clearTimeout(pending.timer);
|
|
131
|
+
tab.pending.delete(String(msg.id));
|
|
132
|
+
const { ok, summary, data, affected } = msg;
|
|
133
|
+
pending.resolve({
|
|
134
|
+
ok: Boolean(ok),
|
|
135
|
+
summary: String(summary ?? ''),
|
|
136
|
+
...(data !== undefined && { data }),
|
|
137
|
+
...(affected !== undefined && { affected }),
|
|
138
|
+
});
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
case MSG.CONFIRM_DECLINE: {
|
|
142
|
+
const pending = tab.pending.get(String(msg.id));
|
|
143
|
+
if (!pending)
|
|
144
|
+
return;
|
|
145
|
+
clearTimeout(pending.timer);
|
|
146
|
+
tab.pending.delete(String(msg.id));
|
|
147
|
+
pending.resolve({ ok: false, summary: `User declined ${pending.command}` });
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// confirm-accept carries no result itself — the tab executes the
|
|
151
|
+
// command on accept and replies with a normal result message, so
|
|
152
|
+
// nothing to do here. Kept as an explicit case for protocol clarity.
|
|
153
|
+
case MSG.CONFIRM_ACCEPT:
|
|
154
|
+
return;
|
|
155
|
+
case MSG.CONTEXT:
|
|
156
|
+
this.onContext?.(thread, {
|
|
157
|
+
describeView: msg.describeView,
|
|
158
|
+
selection: msg.selection,
|
|
159
|
+
});
|
|
160
|
+
return;
|
|
161
|
+
default:
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
ws.on('close', () => {
|
|
166
|
+
if (!thread)
|
|
167
|
+
return;
|
|
168
|
+
const tab = this.tabs.get(thread);
|
|
169
|
+
if (tab?.ws === ws) {
|
|
170
|
+
this.dropTab(tab);
|
|
171
|
+
this.tabs.delete(thread);
|
|
172
|
+
this.onTabChange?.(thread, 'disconnect');
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
dropTab(tab) {
|
|
177
|
+
for (const { resolve, timer, command } of tab.pending.values()) {
|
|
178
|
+
clearTimeout(timer);
|
|
179
|
+
resolve({ ok: false, summary: `App session dropped during ${command}` });
|
|
180
|
+
}
|
|
181
|
+
tab.pending.clear();
|
|
182
|
+
if (tab.ws.readyState === WebSocket.OPEN)
|
|
183
|
+
tab.ws.close(4000, 'replaced');
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
function send(ws, msg) {
|
|
187
|
+
if (ws.readyState === WebSocket.OPEN)
|
|
188
|
+
ws.send(JSON.stringify(msg));
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../src/gateway/bridge/gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const MSG: {
|
|
2
|
+
readonly REGISTER: "register";
|
|
3
|
+
readonly REGISTERED: "registered";
|
|
4
|
+
readonly CALL: "call";
|
|
5
|
+
readonly RESULT: "result";
|
|
6
|
+
readonly CONFIRM_REQUEST: "confirm-request";
|
|
7
|
+
readonly CONFIRM_ACCEPT: "confirm-accept";
|
|
8
|
+
readonly CONFIRM_DECLINE: "confirm-decline";
|
|
9
|
+
readonly CONTEXT: "context";
|
|
10
|
+
readonly ERROR: "error";
|
|
11
|
+
};
|
|
12
|
+
/** Risk tiers a manifest entry may declare. 'export' always routes through confirm. */
|
|
13
|
+
export declare const RISK_TIERS: readonly ["read", "display", "mutate", "export"];
|
|
14
|
+
export declare const DEFAULT_CALL_TIMEOUT_MS = 10000;
|
|
15
|
+
export declare const DEFAULT_CONFIRM_TIMEOUT_MS = 120000;
|
|
16
|
+
/** Result of a bridge command dispatched to the tab's registry. */
|
|
17
|
+
export interface BridgeResult {
|
|
18
|
+
ok: boolean;
|
|
19
|
+
summary: string;
|
|
20
|
+
data?: unknown;
|
|
21
|
+
affected?: unknown;
|
|
22
|
+
}
|
|
23
|
+
export declare const NO_SESSION_RESULT: BridgeResult;
|
|
24
|
+
export declare function timeoutResult(command: string, ms: number): BridgeResult;
|
|
25
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/gateway/bridge/protocol.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,GAAG;;;;;;;;;;CAUN,CAAC;AAEX,uFAAuF;AACvF,eAAO,MAAM,UAAU,kDAAmD,CAAC;AAE3E,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,0BAA0B,SAAU,CAAC;AAElD,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,EAAE,YAG9B,CAAC;AAEH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,CAKvE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Wire protocol for the agent bridge — gateway <-> live browser tab.
|
|
2
|
+
//
|
|
3
|
+
// Vendored from @soapko/agent-bridge@0.1.0 (kevin's Pursuit POC) into mainline
|
|
4
|
+
// cumulus (task 097): the upstream package was an unpublished `file:` dep, so
|
|
5
|
+
// its three source files live here as TypeScript. These shapes are the frozen
|
|
6
|
+
// seam contract — changes must be mirrored to the front-end team.
|
|
7
|
+
//
|
|
8
|
+
// Message flow:
|
|
9
|
+
// Tab -> gateway register { thread, apiKey, manifest }
|
|
10
|
+
// gateway -> tab call { id, command, params }
|
|
11
|
+
// Tab -> gateway result { id, ok, summary, data?, affected? }
|
|
12
|
+
// gateway -> tab confirm-request { id, command, params, summary } (export-tier; never auto-run)
|
|
13
|
+
// Tab -> gateway confirm-accept { id } or confirm-decline { id }
|
|
14
|
+
// Tab -> gateway context { describeView, selection? } (piggybacked on chat turns)
|
|
15
|
+
export const MSG = {
|
|
16
|
+
REGISTER: 'register',
|
|
17
|
+
REGISTERED: 'registered',
|
|
18
|
+
CALL: 'call',
|
|
19
|
+
RESULT: 'result',
|
|
20
|
+
CONFIRM_REQUEST: 'confirm-request',
|
|
21
|
+
CONFIRM_ACCEPT: 'confirm-accept',
|
|
22
|
+
CONFIRM_DECLINE: 'confirm-decline',
|
|
23
|
+
CONTEXT: 'context',
|
|
24
|
+
ERROR: 'error',
|
|
25
|
+
};
|
|
26
|
+
/** Risk tiers a manifest entry may declare. 'export' always routes through confirm. */
|
|
27
|
+
export const RISK_TIERS = ['read', 'display', 'mutate', 'export'];
|
|
28
|
+
export const DEFAULT_CALL_TIMEOUT_MS = 10_000;
|
|
29
|
+
export const DEFAULT_CONFIRM_TIMEOUT_MS = 120_000;
|
|
30
|
+
export const NO_SESSION_RESULT = Object.freeze({
|
|
31
|
+
ok: false,
|
|
32
|
+
summary: 'No active app session',
|
|
33
|
+
});
|
|
34
|
+
export function timeoutResult(command, ms) {
|
|
35
|
+
return {
|
|
36
|
+
ok: false,
|
|
37
|
+
summary: `Command ${command} timed out after ${ms / 1000}s in the app session`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/gateway/bridge/protocol.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,kEAAkE;AAClE,EAAE;AACF,gBAAgB;AAChB,4DAA4D;AAC5D,uDAAuD;AACvD,qEAAqE;AACrE,sGAAsG;AACtG,0EAA0E;AAC1E,0FAA0F;AAE1F,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAE3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAUlD,MAAM,CAAC,MAAM,iBAAiB,GAAiB,MAAM,CAAC,MAAM,CAAC;IAC3D,EAAE,EAAE,KAAK;IACT,OAAO,EAAE,uBAAuB;CACjC,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,EAAU;IACvD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,WAAW,OAAO,oBAAoB,EAAE,GAAG,IAAI,sBAAsB;KAC/E,CAAC;AACJ,CAAC"}
|
package/dist/gateway/config.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Gateway server configuration — loads and validates gateway.config.json.
|
|
3
3
|
*/
|
|
4
|
+
import type { McpServerEntry } from '../lib/gateway.js';
|
|
4
5
|
export interface SlackChannelConfig {
|
|
5
6
|
enabled: boolean;
|
|
6
7
|
botToken: string;
|
|
@@ -97,6 +98,61 @@ export interface GatewayConfig {
|
|
|
97
98
|
baseUrl?: string;
|
|
98
99
|
/** Optional: federation config for hub-and-spoke cross-gateway messaging */
|
|
99
100
|
federation?: FederationConfig;
|
|
101
|
+
/** Optional: agent-native app bridge — mounts /bridge WS routing to live browser tabs (task 097) */
|
|
102
|
+
bridge?: BridgeConfig;
|
|
103
|
+
/** Optional: thread namespaces — prefix-scoped visibility for app/test threads (task 097 P2) */
|
|
104
|
+
namespaces?: NamespaceConfig[];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Thread namespace (task 097 P2). A namespace name is a thread-name prefix:
|
|
108
|
+
* namespace `pursuit` covers every `pursuit-*` thread but NOT bare `pursuit`,
|
|
109
|
+
* which stays the owner's own work thread. Namespaced threads are hidden from the
|
|
110
|
+
* default thread list; a request bearing one of the namespace's `apiKeys` sees only
|
|
111
|
+
* that namespace's threads. Visibility only — not a hard access boundary
|
|
112
|
+
* (inject/history by exact name still works).
|
|
113
|
+
*/
|
|
114
|
+
export interface NamespaceConfig {
|
|
115
|
+
/** Namespace name = thread-name prefix (e.g. "pursuit"). */
|
|
116
|
+
name: string;
|
|
117
|
+
/** API keys scoped to this namespace. A request bearing one sees only these threads. */
|
|
118
|
+
apiKeys?: string[];
|
|
119
|
+
/** Optional display label for the folder UI (visibility-first; folders are a fast-follow). */
|
|
120
|
+
label?: string;
|
|
121
|
+
/**
|
|
122
|
+
* Optional generic executor pass-through (task 097 P3). Reverse-proxies the
|
|
123
|
+
* listed path prefixes to `origin`, so the app tab talks to a single origin.
|
|
124
|
+
* Replaces the fork's baked-in /state + /journal routes (Rule #8). Presence
|
|
125
|
+
* alone activates the proxy — independent of bridge.enabled.
|
|
126
|
+
*/
|
|
127
|
+
executorProxy?: NamespaceExecutorProxy;
|
|
128
|
+
/**
|
|
129
|
+
* Optional extra MCP servers included in agent turns on this namespace's
|
|
130
|
+
* threads (name -> {command, args, env}), alongside cumulus-history and
|
|
131
|
+
* gateway-agents (task 097 P5). String values in `args` and `env` may carry a
|
|
132
|
+
* `{thread}` placeholder, resolved to the calling thread's name. Scoped like
|
|
133
|
+
* `executorProxy`: only `${name}-*` threads get these servers, so one app's
|
|
134
|
+
* tools never leak into unrelated threads.
|
|
135
|
+
*/
|
|
136
|
+
extraMcpServers?: Record<string, McpServerEntry>;
|
|
137
|
+
}
|
|
138
|
+
/** Generic executor reverse-proxy for a namespace (task 097 P3). */
|
|
139
|
+
export interface NamespaceExecutorProxy {
|
|
140
|
+
/** Upstream origin the prefixes forward to, e.g. "http://127.0.0.1:8097". */
|
|
141
|
+
origin: string;
|
|
142
|
+
/** Path prefixes forwarded verbatim (matched exact or as `${prefix}/…`), e.g. ["/state", "/journal"]. */
|
|
143
|
+
pathPrefixes: string[];
|
|
144
|
+
}
|
|
145
|
+
/** Agent-native app bridge (gateway <-> live browser tab). Default off. */
|
|
146
|
+
export interface BridgeConfig {
|
|
147
|
+
/** When true, mounts the /bridge WS + /bridge/call + /bridge/manifest routes. */
|
|
148
|
+
enabled: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Base URL of the app's headless executor. Used to hydrate selection refs in
|
|
151
|
+
* the CONTEXT injection block (soft-fails if unreachable). Default
|
|
152
|
+
* http://127.0.0.1:8091. The /state+/journal proxy is a separate concern
|
|
153
|
+
* (task 097 P3) and is not mounted here.
|
|
154
|
+
*/
|
|
155
|
+
executorUrl?: string;
|
|
100
156
|
}
|
|
101
157
|
/** Model entry for per-thread selection */
|
|
102
158
|
export interface ModelEntry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/gateway/config.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/gateway/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,QAAQ,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACtB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kCAAkC;IAClC,YAAY,CAAC,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACjC,wDAAwD;IACxD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iHAAiH;IACjH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,oGAAoG;IACpG,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,gGAAgG;IAChG,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAClD;AAED,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,iFAAiF;IACjF,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,QAAQ,EAAE,YAAY,GAAG,aAAa,CAAC;IACvC,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,4FAA4F;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,EAAE,EAAE,MAAM,CAAC;IACX,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAenF;AAsXD,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/dist/gateway/config.js
CHANGED
|
@@ -59,6 +59,117 @@ function validateConfig(raw) {
|
|
|
59
59
|
claudeModels: validateClaudeModels(raw.claudeModels),
|
|
60
60
|
model: typeof raw.model === 'string' && raw.model ? raw.model : undefined,
|
|
61
61
|
federation: validateFederation(raw.federation),
|
|
62
|
+
bridge: validateBridge(raw.bridge),
|
|
63
|
+
namespaces: validateNamespaces(raw.namespaces),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A namespace's extra MCP servers, included in agent turns on its `${ns}-*`
|
|
68
|
+
* threads (task 097 P5). `command` is required; `args`/`env` default to empty and
|
|
69
|
+
* drop non-string members rather than throwing, since a malformed entry there
|
|
70
|
+
* would otherwise take the whole gateway down at boot. Returns undefined when
|
|
71
|
+
* nothing valid was configured, so the option stays absent rather than an empty
|
|
72
|
+
* object.
|
|
73
|
+
*/
|
|
74
|
+
function validateExtraMcpServers(raw, namespace) {
|
|
75
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
76
|
+
return undefined;
|
|
77
|
+
const out = {};
|
|
78
|
+
for (const [name, entry] of Object.entries(raw)) {
|
|
79
|
+
if (!entry || typeof entry !== 'object')
|
|
80
|
+
continue;
|
|
81
|
+
const e = entry;
|
|
82
|
+
if (typeof e.command !== 'string' || !e.command) {
|
|
83
|
+
throw new Error(`gateway.config.json: namespace "${namespace}" extraMcpServers.${name}.command is required`);
|
|
84
|
+
}
|
|
85
|
+
out[name] = {
|
|
86
|
+
command: e.command,
|
|
87
|
+
args: Array.isArray(e.args) ? e.args.filter((a) => typeof a === 'string') : [],
|
|
88
|
+
env: e.env && typeof e.env === 'object'
|
|
89
|
+
? Object.fromEntries(Object.entries(e.env).filter(([, v]) => typeof v === 'string'))
|
|
90
|
+
: {},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
94
|
+
}
|
|
95
|
+
function validateNamespaces(raw) {
|
|
96
|
+
if (!raw || !Array.isArray(raw))
|
|
97
|
+
return undefined;
|
|
98
|
+
const result = [];
|
|
99
|
+
// Track each proxied path prefix → owning namespace, so two namespaces can't
|
|
100
|
+
// claim the same prefix (a route path would then be ambiguous).
|
|
101
|
+
const prefixOwner = new Map();
|
|
102
|
+
for (const entry of raw) {
|
|
103
|
+
if (!entry || typeof entry !== 'object')
|
|
104
|
+
continue;
|
|
105
|
+
const e = entry;
|
|
106
|
+
const name = typeof e.name === 'string' ? e.name.trim() : '';
|
|
107
|
+
if (!name) {
|
|
108
|
+
throw new Error('gateway.config.json: each namespace requires a non-empty "name"');
|
|
109
|
+
}
|
|
110
|
+
const apiKeys = Array.isArray(e.apiKeys)
|
|
111
|
+
? e.apiKeys.filter((k) => typeof k === 'string' && k.length >= 8)
|
|
112
|
+
: undefined;
|
|
113
|
+
result.push({
|
|
114
|
+
name,
|
|
115
|
+
apiKeys: apiKeys && apiKeys.length > 0 ? apiKeys : undefined,
|
|
116
|
+
label: typeof e.label === 'string' && e.label ? e.label : undefined,
|
|
117
|
+
executorProxy: validateExecutorProxy(e.executorProxy, name, prefixOwner),
|
|
118
|
+
extraMcpServers: validateExtraMcpServers(e.extraMcpServers, name),
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return result.length > 0 ? result : undefined;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Parse a namespace's executorProxy (task 097 P3). Requires a non-empty origin
|
|
125
|
+
* and at least one path prefix; each prefix is normalized to a leading `/` with
|
|
126
|
+
* no trailing slash, and checked against `prefixOwner` so no two namespaces
|
|
127
|
+
* claim the same prefix.
|
|
128
|
+
*/
|
|
129
|
+
function validateExecutorProxy(raw, namespace, prefixOwner) {
|
|
130
|
+
if (raw === undefined || raw === null)
|
|
131
|
+
return undefined;
|
|
132
|
+
if (typeof raw !== 'object') {
|
|
133
|
+
throw new Error(`gateway.config.json: namespace "${namespace}" executorProxy must be an object`);
|
|
134
|
+
}
|
|
135
|
+
const r = raw;
|
|
136
|
+
const origin = typeof r.origin === 'string' ? r.origin.trim() : '';
|
|
137
|
+
if (!origin) {
|
|
138
|
+
throw new Error(`gateway.config.json: namespace "${namespace}" executorProxy requires a non-empty "origin"`);
|
|
139
|
+
}
|
|
140
|
+
const rawPrefixes = Array.isArray(r.pathPrefixes) ? r.pathPrefixes : [];
|
|
141
|
+
const pathPrefixes = [];
|
|
142
|
+
for (const p of rawPrefixes) {
|
|
143
|
+
if (typeof p !== 'string' || !p.trim())
|
|
144
|
+
continue;
|
|
145
|
+
let prefix = p.trim();
|
|
146
|
+
if (!prefix.startsWith('/'))
|
|
147
|
+
prefix = '/' + prefix;
|
|
148
|
+
// Drop a trailing slash so "/state" and "/state/" normalize identically.
|
|
149
|
+
if (prefix.length > 1 && prefix.endsWith('/'))
|
|
150
|
+
prefix = prefix.slice(0, -1);
|
|
151
|
+
if (pathPrefixes.includes(prefix))
|
|
152
|
+
continue;
|
|
153
|
+
const owner = prefixOwner.get(prefix);
|
|
154
|
+
if (owner && owner !== namespace) {
|
|
155
|
+
throw new Error(`gateway.config.json: executorProxy path prefix "${prefix}" is claimed by both ` +
|
|
156
|
+
`namespace "${owner}" and "${namespace}" — prefixes must be unique across namespaces`);
|
|
157
|
+
}
|
|
158
|
+
prefixOwner.set(prefix, namespace);
|
|
159
|
+
pathPrefixes.push(prefix);
|
|
160
|
+
}
|
|
161
|
+
if (pathPrefixes.length === 0) {
|
|
162
|
+
throw new Error(`gateway.config.json: namespace "${namespace}" executorProxy requires at least one path prefix`);
|
|
163
|
+
}
|
|
164
|
+
return { origin, pathPrefixes };
|
|
165
|
+
}
|
|
166
|
+
function validateBridge(raw) {
|
|
167
|
+
if (!raw || typeof raw !== 'object')
|
|
168
|
+
return undefined;
|
|
169
|
+
const r = raw;
|
|
170
|
+
return {
|
|
171
|
+
enabled: r.enabled === true,
|
|
172
|
+
executorUrl: typeof r.executorUrl === 'string' && r.executorUrl ? r.executorUrl : undefined,
|
|
62
173
|
};
|
|
63
174
|
}
|
|
64
175
|
function validateResend(raw) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/gateway/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/gateway/config.ts"],"names":[],"mappings":"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"}
|
package/dist/gateway/daemon.js
CHANGED
|
@@ -277,6 +277,8 @@ async function cmdStart(args) {
|
|
|
277
277
|
claudeModels: config.claudeModels,
|
|
278
278
|
model: config.model,
|
|
279
279
|
baseUrl: config.baseUrl,
|
|
280
|
+
bridge: config.bridge,
|
|
281
|
+
namespaces: config.namespaces,
|
|
280
282
|
gatewayAgentsConfig: {
|
|
281
283
|
apiUrl: `http://127.0.0.1:${port}`,
|
|
282
284
|
apiKey: config.apiKeys[0],
|
|
@@ -350,6 +352,7 @@ async function cmdStart(args) {
|
|
|
350
352
|
webChatAdapter = createWebChatAdapter({
|
|
351
353
|
server: handle.server,
|
|
352
354
|
apiKeys: config.apiKeys,
|
|
355
|
+
namespaces: config.namespaces,
|
|
353
356
|
pipelineOpts: {
|
|
354
357
|
claudePath: config.claudePath,
|
|
355
358
|
sharedMcpPort: config.sharedMcpPort,
|