@chozzz/vargos 3.1.5 → 3.2.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/CONTRIBUTING.md +2 -3
- package/README.md +25 -34
- package/dist/.templates/workspace/AGENTS.md +2 -2
- package/dist/boot.d.ts +5 -0
- package/dist/boot.d.ts.map +1 -1
- package/dist/boot.js +62 -87
- package/dist/boot.js.map +1 -1
- package/dist/cli/channels.d.ts +6 -23
- package/dist/cli/channels.d.ts.map +1 -1
- package/dist/cli/channels.js +15 -124
- package/dist/cli/channels.js.map +1 -1
- package/dist/cli/chat.d.ts +6 -0
- package/dist/cli/chat.d.ts.map +1 -0
- package/dist/cli/chat.js +49 -0
- package/dist/cli/chat.js.map +1 -0
- package/dist/cli/onboard.d.ts.map +1 -1
- package/dist/cli/onboard.js +2 -8
- package/dist/cli/onboard.js.map +1 -1
- package/dist/cli.d.ts +9 -7
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +207 -290
- package/dist/cli.js.map +1 -1
- package/dist/core/bus.d.ts +32 -0
- package/dist/core/bus.d.ts.map +1 -0
- package/dist/core/bus.js +133 -0
- package/dist/core/bus.js.map +1 -0
- package/dist/core/cli.d.ts +38 -0
- package/dist/core/cli.d.ts.map +1 -0
- package/dist/core/cli.js +199 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/errors.d.ts +21 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +30 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/loader.d.ts +31 -0
- package/dist/core/loader.d.ts.map +1 -0
- package/dist/core/loader.js +73 -0
- package/dist/core/loader.js.map +1 -0
- package/dist/core/local.d.ts +12 -0
- package/dist/core/local.d.ts.map +1 -0
- package/dist/core/local.js +23 -0
- package/dist/core/local.js.map +1 -0
- package/dist/core/rpc-server.d.ts +11 -0
- package/dist/core/rpc-server.d.ts.map +1 -0
- package/dist/core/rpc-server.js +69 -0
- package/dist/core/rpc-server.js.map +1 -0
- package/dist/core/services.d.ts +8 -0
- package/dist/core/services.d.ts.map +1 -0
- package/dist/core/services.js +33 -0
- package/dist/core/services.js.map +1 -0
- package/dist/core/types.d.ts +63 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/edge/mcp/index.d.ts +11 -11
- package/dist/edge/mcp/index.d.ts.map +1 -1
- package/dist/edge/mcp/index.js +24 -28
- package/dist/edge/mcp/index.js.map +1 -1
- package/dist/edge/webhooks/index.d.ts +8 -14
- package/dist/edge/webhooks/index.d.ts.map +1 -1
- package/dist/edge/webhooks/index.js +140 -194
- package/dist/edge/webhooks/index.js.map +1 -1
- package/dist/lib/logger.d.ts +2 -3
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/paginate.d.ts +5 -1
- package/dist/lib/paginate.d.ts.map +1 -1
- package/dist/lib/retry.js +1 -1
- package/dist/lib/retry.js.map +1 -1
- package/dist/lib/util.d.ts +16 -0
- package/dist/lib/util.d.ts.map +1 -0
- package/dist/lib/util.js +63 -0
- package/dist/lib/util.js.map +1 -0
- package/dist/scripts/verify-core.d.ts +8 -0
- package/dist/scripts/verify-core.d.ts.map +1 -0
- package/dist/scripts/verify-core.js +191 -0
- package/dist/scripts/verify-core.js.map +1 -0
- package/dist/services/agent/index.d.ts +14 -18
- package/dist/services/agent/index.d.ts.map +1 -1
- package/dist/services/agent/index.js +469 -530
- package/dist/services/agent/index.js.map +1 -1
- package/dist/services/agent/tools.d.ts +3 -3
- package/dist/services/agent/tools.d.ts.map +1 -1
- package/dist/services/agent/tools.js +11 -19
- package/dist/services/agent/tools.js.map +1 -1
- package/dist/services/agent/types.d.ts +1 -1
- package/dist/services/agent/types.d.ts.map +1 -1
- package/dist/services/{channels → channel}/base-adapter.d.ts +5 -6
- package/dist/services/channel/base-adapter.d.ts.map +1 -0
- package/dist/services/channel/base-adapter.js.map +1 -0
- package/dist/services/channel/debounce.d.ts.map +1 -0
- package/dist/services/channel/debounce.js.map +1 -0
- package/dist/services/channel/dedupe.d.ts.map +1 -0
- package/dist/services/channel/dedupe.js.map +1 -0
- package/dist/services/channel/delivery.d.ts.map +1 -0
- package/dist/services/{channels → channel}/delivery.js +1 -1
- package/dist/services/channel/delivery.js.map +1 -0
- package/dist/services/{channels → channel}/index.d.ts +14 -17
- package/dist/services/channel/index.d.ts.map +1 -0
- package/dist/services/channel/index.js +354 -0
- package/dist/services/channel/index.js.map +1 -0
- package/dist/services/channel/link-expand.d.ts.map +1 -0
- package/dist/services/channel/link-expand.js.map +1 -0
- package/dist/services/channel/media-paths.d.ts.map +1 -0
- package/dist/services/channel/media-paths.js.map +1 -0
- package/dist/services/{channels → channel}/pipeline.d.ts +1 -1
- package/dist/services/channel/pipeline.d.ts.map +1 -0
- package/dist/services/channel/pipeline.js.map +1 -0
- package/dist/services/channel/provider-loader.d.ts.map +1 -0
- package/dist/services/channel/provider-loader.js.map +1 -0
- package/dist/services/channel/providers/telegram/adapter.d.ts.map +1 -0
- package/dist/services/{channels → channel}/providers/telegram/adapter.js +1 -1
- package/dist/services/channel/providers/telegram/adapter.js.map +1 -0
- package/dist/services/channel/providers/telegram/index.d.ts.map +1 -0
- package/dist/services/channel/providers/telegram/index.js.map +1 -0
- package/dist/services/channel/providers/telegram/normalizer.d.ts.map +1 -0
- package/dist/services/channel/providers/telegram/normalizer.js.map +1 -0
- package/dist/services/channel/providers/telegram/types.d.ts.map +1 -0
- package/dist/services/channel/providers/telegram/types.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/adapter.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/adapter.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/index.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/index.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/normalizer.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/normalizer.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/session.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/session.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/types.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/types.js.map +1 -0
- package/dist/services/channel/reconnect.d.ts.map +1 -0
- package/dist/services/channel/reconnect.js.map +1 -0
- package/dist/services/channel/status-reactions.d.ts.map +1 -0
- package/dist/services/channel/status-reactions.js.map +1 -0
- package/dist/services/{channels → channel}/types.d.ts +1 -1
- package/dist/services/channel/types.d.ts.map +1 -0
- package/dist/services/channel/types.js.map +1 -0
- package/dist/services/channel/typing-state.d.ts.map +1 -0
- package/dist/services/channel/typing-state.js.map +1 -0
- package/dist/services/config/index.d.ts +45 -46
- package/dist/services/config/index.d.ts.map +1 -1
- package/dist/services/config/index.js +89 -182
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/schemas/cron.d.ts +3 -3
- package/dist/services/config/schemas/providers.d.ts +12 -12
- package/dist/services/config/schemas/webhooks.d.ts +2 -2
- package/dist/services/cron/index.d.ts +16 -19
- package/dist/services/cron/index.d.ts.map +1 -1
- package/dist/services/cron/index.js +340 -396
- package/dist/services/cron/index.js.map +1 -1
- package/dist/services/log/index.d.ts +9 -8
- package/dist/services/log/index.d.ts.map +1 -1
- package/dist/services/log/index.js +71 -123
- package/dist/services/log/index.js.map +1 -1
- package/dist/services/{mcp-client → mcp}/index.d.ts +9 -11
- package/dist/services/mcp/index.d.ts.map +1 -0
- package/dist/services/{mcp-client → mcp}/index.js +19 -35
- package/dist/services/mcp/index.js.map +1 -0
- package/dist/services/media/index.d.ts +9 -13
- package/dist/services/media/index.d.ts.map +1 -1
- package/dist/services/media/index.js +53 -105
- package/dist/services/media/index.js.map +1 -1
- package/dist/services/memory/index.d.ts +12 -18
- package/dist/services/memory/index.d.ts.map +1 -1
- package/dist/services/memory/index.js +70 -132
- package/dist/services/memory/index.js.map +1 -1
- package/dist/services/web/index.d.ts +7 -7
- package/dist/services/web/index.d.ts.map +1 -1
- package/dist/services/web/index.js +41 -86
- package/dist/services/web/index.js.map +1 -1
- package/package.json +3 -2
- package/dist/gateway/bus.d.ts +0 -50
- package/dist/gateway/bus.d.ts.map +0 -1
- package/dist/gateway/bus.js +0 -2
- package/dist/gateway/bus.js.map +0 -1
- package/dist/gateway/decorators.d.ts +0 -40
- package/dist/gateway/decorators.d.ts.map +0 -1
- package/dist/gateway/decorators.js +0 -43
- package/dist/gateway/decorators.js.map +0 -1
- package/dist/gateway/emitter.d.ts +0 -52
- package/dist/gateway/emitter.d.ts.map +0 -1
- package/dist/gateway/emitter.js +0 -304
- package/dist/gateway/emitter.js.map +0 -1
- package/dist/gateway/events.d.ts +0 -329
- package/dist/gateway/events.d.ts.map +0 -1
- package/dist/gateway/events.js +0 -7
- package/dist/gateway/events.js.map +0 -1
- package/dist/gateway/tcp-server.d.ts +0 -7
- package/dist/gateway/tcp-server.d.ts.map +0 -1
- package/dist/gateway/tcp-server.js +0 -118
- package/dist/gateway/tcp-server.js.map +0 -1
- package/dist/lib/id.d.ts +0 -3
- package/dist/lib/id.d.ts.map +0 -1
- package/dist/lib/id.js +0 -5
- package/dist/lib/id.js.map +0 -1
- package/dist/lib/sleep.d.ts +0 -6
- package/dist/lib/sleep.d.ts.map +0 -1
- package/dist/lib/sleep.js +0 -22
- package/dist/lib/sleep.js.map +0 -1
- package/dist/lib/strip-markdown.d.ts +0 -7
- package/dist/lib/strip-markdown.d.ts.map +0 -1
- package/dist/lib/strip-markdown.js +0 -32
- package/dist/lib/strip-markdown.js.map +0 -1
- package/dist/lib/timeout.d.ts +0 -6
- package/dist/lib/timeout.d.ts.map +0 -1
- package/dist/lib/timeout.js +0 -11
- package/dist/lib/timeout.js.map +0 -1
- package/dist/lib/truncate.d.ts +0 -11
- package/dist/lib/truncate.d.ts.map +0 -1
- package/dist/lib/truncate.js +0 -17
- package/dist/lib/truncate.js.map +0 -1
- package/dist/services/channels/base-adapter.d.ts.map +0 -1
- package/dist/services/channels/base-adapter.js.map +0 -1
- package/dist/services/channels/debounce.d.ts.map +0 -1
- package/dist/services/channels/debounce.js.map +0 -1
- package/dist/services/channels/dedupe.d.ts.map +0 -1
- package/dist/services/channels/dedupe.js.map +0 -1
- package/dist/services/channels/delivery.d.ts.map +0 -1
- package/dist/services/channels/delivery.js.map +0 -1
- package/dist/services/channels/index.d.ts.map +0 -1
- package/dist/services/channels/index.js +0 -413
- package/dist/services/channels/index.js.map +0 -1
- package/dist/services/channels/link-expand.d.ts.map +0 -1
- package/dist/services/channels/link-expand.js.map +0 -1
- package/dist/services/channels/media-paths.d.ts.map +0 -1
- package/dist/services/channels/media-paths.js.map +0 -1
- package/dist/services/channels/pipeline.d.ts.map +0 -1
- package/dist/services/channels/pipeline.js.map +0 -1
- package/dist/services/channels/provider-loader.d.ts.map +0 -1
- package/dist/services/channels/provider-loader.js.map +0 -1
- package/dist/services/channels/providers/telegram/adapter.d.ts.map +0 -1
- package/dist/services/channels/providers/telegram/adapter.js.map +0 -1
- package/dist/services/channels/providers/telegram/index.d.ts.map +0 -1
- package/dist/services/channels/providers/telegram/index.js.map +0 -1
- package/dist/services/channels/providers/telegram/normalizer.d.ts.map +0 -1
- package/dist/services/channels/providers/telegram/normalizer.js.map +0 -1
- package/dist/services/channels/providers/telegram/types.d.ts.map +0 -1
- package/dist/services/channels/providers/telegram/types.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/adapter.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/adapter.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/index.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/index.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/normalizer.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/normalizer.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/session.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/session.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/types.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/types.js.map +0 -1
- package/dist/services/channels/reconnect.d.ts.map +0 -1
- package/dist/services/channels/reconnect.js.map +0 -1
- package/dist/services/channels/status-reactions.d.ts.map +0 -1
- package/dist/services/channels/status-reactions.js.map +0 -1
- package/dist/services/channels/types.d.ts.map +0 -1
- package/dist/services/channels/types.js.map +0 -1
- package/dist/services/channels/typing-state.d.ts.map +0 -1
- package/dist/services/channels/typing-state.js.map +0 -1
- package/dist/services/mcp-client/index.d.ts.map +0 -1
- package/dist/services/mcp-client/index.js.map +0 -1
- /package/dist/services/{channels → channel}/base-adapter.js +0 -0
- /package/dist/services/{channels → channel}/debounce.d.ts +0 -0
- /package/dist/services/{channels → channel}/debounce.js +0 -0
- /package/dist/services/{channels → channel}/dedupe.d.ts +0 -0
- /package/dist/services/{channels → channel}/dedupe.js +0 -0
- /package/dist/services/{channels → channel}/delivery.d.ts +0 -0
- /package/dist/services/{channels → channel}/link-expand.d.ts +0 -0
- /package/dist/services/{channels → channel}/link-expand.js +0 -0
- /package/dist/services/{channels → channel}/media-paths.d.ts +0 -0
- /package/dist/services/{channels → channel}/media-paths.js +0 -0
- /package/dist/services/{channels → channel}/pipeline.js +0 -0
- /package/dist/services/{channels → channel}/provider-loader.d.ts +0 -0
- /package/dist/services/{channels → channel}/provider-loader.js +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/adapter.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/index.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/index.js +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/normalizer.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/normalizer.js +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/types.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/types.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/adapter.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/adapter.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/index.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/index.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/normalizer.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/normalizer.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/session.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/session.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/types.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/types.js +0 -0
- /package/dist/services/{channels → channel}/reconnect.d.ts +0 -0
- /package/dist/services/{channels → channel}/reconnect.js +0 -0
- /package/dist/services/{channels → channel}/status-reactions.d.ts +0 -0
- /package/dist/services/{channels → channel}/status-reactions.js +0 -0
- /package/dist/services/{channels → channel}/types.js +0 -0
- /package/dist/services/{channels → channel}/typing-state.d.ts +0 -0
- /package/dist/services/{channels → channel}/typing-state.js +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON-RPC 2.0 over TCP (surface 3). Newline-delimited requests, localhost-bound.
|
|
3
|
+
* Dispatch is a thin projection of the registry: every request becomes bus.call().
|
|
4
|
+
*
|
|
5
|
+
* echo '{"jsonrpc":"2.0","method":"memory.search","params":{"query":"..."}}' | nc localhost 9000
|
|
6
|
+
*
|
|
7
|
+
* Auth hook: see `authorize()` — a no-op today, the single seam for a future API key.
|
|
8
|
+
*/
|
|
9
|
+
import { createServer } from 'node:net';
|
|
10
|
+
import { BusError } from './errors.js';
|
|
11
|
+
import { createLogger } from '../lib/logger.js';
|
|
12
|
+
const log = createLogger('rpc');
|
|
13
|
+
/** Future API-key seam. Returns null to allow; a string to reject with that reason. */
|
|
14
|
+
function authorize(_req, _socket) {
|
|
15
|
+
return null; // localhost-only today (out of scope: token auth, non-local binding)
|
|
16
|
+
}
|
|
17
|
+
export function startRpcServer(bus, host, port, socketTimeoutMs = 35 * 60 * 1000) {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
const server = createServer((socket) => {
|
|
20
|
+
let buffer = '';
|
|
21
|
+
socket.setTimeout(socketTimeoutMs, () => socket.destroy());
|
|
22
|
+
socket.on('error', (err) => log.debug(`socket error: ${err.message}`));
|
|
23
|
+
socket.on('data', (chunk) => {
|
|
24
|
+
buffer += chunk.toString();
|
|
25
|
+
let nl;
|
|
26
|
+
while ((nl = buffer.indexOf('\n')) !== -1) {
|
|
27
|
+
const line = buffer.slice(0, nl).trim();
|
|
28
|
+
buffer = buffer.slice(nl + 1);
|
|
29
|
+
if (line)
|
|
30
|
+
void handleLine(bus, socket, line);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
server.on('error', reject);
|
|
35
|
+
server.listen(port, host, () => {
|
|
36
|
+
log.info(`JSON-RPC listening on ${host}:${port}`);
|
|
37
|
+
resolve(() => new Promise((res) => server.close(() => res())));
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async function handleLine(bus, socket, line) {
|
|
42
|
+
let req;
|
|
43
|
+
try {
|
|
44
|
+
req = JSON.parse(line);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return reply(socket, null, undefined, { code: -32700, message: 'Parse error' });
|
|
48
|
+
}
|
|
49
|
+
const id = req.id ?? null;
|
|
50
|
+
const denied = authorize(req, socket);
|
|
51
|
+
if (denied)
|
|
52
|
+
return reply(socket, id, undefined, { code: -32001, message: denied });
|
|
53
|
+
try {
|
|
54
|
+
const result = await bus.call(req.method, req.params);
|
|
55
|
+
reply(socket, id, result ?? null);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
const code = err instanceof BusError ? err.code : -32603;
|
|
59
|
+
reply(socket, id, undefined, { code, message: err instanceof Error ? err.message : String(err) });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function reply(socket, id, result, error) {
|
|
63
|
+
const body = error
|
|
64
|
+
? { jsonrpc: '2.0', error, id }
|
|
65
|
+
: { jsonrpc: '2.0', result, id };
|
|
66
|
+
socket.write(JSON.stringify(body) + '\n');
|
|
67
|
+
socket.end();
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=rpc-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-server.js","sourceRoot":"","sources":["../../core/rpc-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ServiceSpec } from './loader.js';
|
|
2
|
+
/** Names of all services present on disk (directory basenames), ordered for loading. */
|
|
3
|
+
export declare function discoverServiceNames(rootDir: string, ext: 'ts' | 'js'): string[];
|
|
4
|
+
/** Resolve a service name to its on-disk module, or null if absent. */
|
|
5
|
+
export declare function resolveService(name: string, rootDir: string, ext: 'ts' | 'js'): ServiceSpec | null;
|
|
6
|
+
/** Every discovered service as a load spec, in load order. */
|
|
7
|
+
export declare function discoverServices(rootDir: string, ext: 'ts' | 'js'): ServiceSpec[];
|
|
8
|
+
//# sourceMappingURL=services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../core/services.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAYhF;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAGlG;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,EAAE,CAEjF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { readdirSync, existsSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
// Convention: a service is any `services/<name>/index.<ext>`. The directory name IS
|
|
4
|
+
// the service name and method namespace (e.g. services/channel → channel.send). No
|
|
5
|
+
// manifest — drop a folder in and it loads. `edge/*` is intentionally NOT auto-loaded.
|
|
6
|
+
/** Services loaded before the rest, in this order — the only dependency the set has
|
|
7
|
+
* (others read config during init; logging wires early). Everything else follows,
|
|
8
|
+
* discovered and sorted. Adding a service requires no edit here. */
|
|
9
|
+
const LOAD_FIRST = ['config', 'log'];
|
|
10
|
+
/** Names of all services present on disk (directory basenames), ordered for loading. */
|
|
11
|
+
export function discoverServiceNames(rootDir, ext) {
|
|
12
|
+
const servicesDir = path.join(rootDir, 'services');
|
|
13
|
+
let names = [];
|
|
14
|
+
try {
|
|
15
|
+
names = readdirSync(servicesDir, { withFileTypes: true })
|
|
16
|
+
.filter(e => e.isDirectory() && existsSync(path.join(servicesDir, e.name, `index.${ext}`)))
|
|
17
|
+
.map(e => e.name);
|
|
18
|
+
}
|
|
19
|
+
catch { /* no services dir */ }
|
|
20
|
+
const rest = names.filter(n => !LOAD_FIRST.includes(n)).sort();
|
|
21
|
+
const first = LOAD_FIRST.filter(n => names.includes(n));
|
|
22
|
+
return [...first, ...rest];
|
|
23
|
+
}
|
|
24
|
+
/** Resolve a service name to its on-disk module, or null if absent. */
|
|
25
|
+
export function resolveService(name, rootDir, ext) {
|
|
26
|
+
const modulePath = path.join(rootDir, 'services', name, `index.${ext}`);
|
|
27
|
+
return existsSync(modulePath) ? { name, modulePath } : null;
|
|
28
|
+
}
|
|
29
|
+
/** Every discovered service as a load spec, in load order. */
|
|
30
|
+
export function discoverServices(rootDir, ext) {
|
|
31
|
+
return discoverServiceNames(rootDir, ext).map(name => resolveService(name, rootDir, ext));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../core/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,oFAAoF;AACpF,mFAAmF;AACnF,uFAAuF;AAEvF;;qEAEqE;AACrE,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAErC,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,GAAgB;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACtD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;aAC1F,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAe,EAAE,GAAgB;IAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;IACxE,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,GAAgB;IAChE,OAAO,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAE,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
/** JSON-serialisable value — used for log payloads and tool args/results. */
|
|
3
|
+
export type Json = string | number | boolean | null | undefined | Json[] | {
|
|
4
|
+
[key: string]: Json;
|
|
5
|
+
};
|
|
6
|
+
export interface CliShape {
|
|
7
|
+
/** Schema keys mapped to positional CLI args, in order. Absent → all args are named flags. */
|
|
8
|
+
positional?: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface MethodOptions {
|
|
11
|
+
/** zod schema — authoritative validation on every surface. */
|
|
12
|
+
schema: z.ZodTypeAny;
|
|
13
|
+
/** Reused verbatim as CLI --help text AND agent tool description. */
|
|
14
|
+
description: string;
|
|
15
|
+
cli?: CliShape;
|
|
16
|
+
/** Hide from the agent tool surface (still callable via CLI/RPC). Default false. */
|
|
17
|
+
internal?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export type Handler = (params: any) => unknown | Promise<unknown>;
|
|
20
|
+
export interface RegistryEntry extends MethodOptions {
|
|
21
|
+
name: string;
|
|
22
|
+
service: string;
|
|
23
|
+
handler: Handler;
|
|
24
|
+
}
|
|
25
|
+
/** JSON-safe registry projection — the shape the three surfaces consume. */
|
|
26
|
+
export interface MethodInfo {
|
|
27
|
+
name: string;
|
|
28
|
+
service: string;
|
|
29
|
+
description: string;
|
|
30
|
+
cli?: CliShape;
|
|
31
|
+
internal: boolean;
|
|
32
|
+
/** JSON Schema derived from the zod schema. */
|
|
33
|
+
schema: unknown;
|
|
34
|
+
}
|
|
35
|
+
export interface Service {
|
|
36
|
+
name: string;
|
|
37
|
+
/** Register methods/handlers and open resources. */
|
|
38
|
+
init(bus: Bus): Promise<void> | void;
|
|
39
|
+
/** Close sockets, clear timers, flush — MUST fully release everything init opened. */
|
|
40
|
+
dispose(): Promise<void> | void;
|
|
41
|
+
}
|
|
42
|
+
/** Every service module exports this; called fresh on each (re)load. */
|
|
43
|
+
export type ServiceFactory = () => Service;
|
|
44
|
+
export interface ServiceModule {
|
|
45
|
+
createService: ServiceFactory;
|
|
46
|
+
}
|
|
47
|
+
export interface Bus {
|
|
48
|
+
/** Register a callable method. Returns an unregister function. */
|
|
49
|
+
register(name: string, opts: MethodOptions, handler: Handler): () => void;
|
|
50
|
+
/** Remove a method from the registry. Returns true if it existed. */
|
|
51
|
+
unregister(name: string): boolean;
|
|
52
|
+
/** Invoke a registered method (validates params, awaits handler). Throws if unregistered. */
|
|
53
|
+
call<T = unknown>(name: string, params?: unknown): Promise<T>;
|
|
54
|
+
/** Fire a pub/sub event. No listeners → silent no-op. */
|
|
55
|
+
emit(event: string, payload?: unknown): void;
|
|
56
|
+
/** Subscribe to a pub/sub event. Returns an unsubscribe function. */
|
|
57
|
+
on<T = unknown>(event: string, handler: (payload: T) => void): () => void;
|
|
58
|
+
/** Is this method registered? */
|
|
59
|
+
has(name: string): boolean;
|
|
60
|
+
/** Registry projection, optionally scoped to one service. */
|
|
61
|
+
list(service?: string): MethodInfo[];
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,6EAA6E;AAC7E,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAMnG,MAAM,WAAW,QAAQ;IACvB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IACrB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAElE,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;CACjB;AAID,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,sFAAsF;IACtF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjC;AAED,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC;AAC3C,MAAM,WAAW,aAAa;IAAG,aAAa,EAAE,cAAc,CAAA;CAAE;AAIhE,MAAM,WAAW,GAAG;IAClB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI,CAAC;IAC1E,qEAAqE;IACrE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,6FAA6F;IAC7F,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9D,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,qEAAqE;IACrE,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1E,iCAAiC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,6DAA6D;IAC7D,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../core/types.ts"],"names":[],"mappings":""}
|
package/dist/edge/mcp/index.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP edge service — translates MCP protocol to bus event calls.
|
|
3
3
|
*
|
|
4
|
-
* ListToolsRequest → bus.
|
|
5
|
-
* CallToolRequest → bus.call(
|
|
4
|
+
* ListToolsRequest → bus.list()
|
|
5
|
+
* CallToolRequest → bus.call(method, args)
|
|
6
6
|
*
|
|
7
7
|
* Supports HTTP (StreamableHTTP) transport on port 9001.
|
|
8
8
|
* Bearer token auth from config.mcp.bearerToken.
|
|
9
9
|
*/
|
|
10
|
-
import type { Bus } from '../../
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
private readonly bus;
|
|
14
|
-
private readonly config;
|
|
10
|
+
import type { Bus, Service } from '../../core/types.js';
|
|
11
|
+
export declare class McpEdge implements Service {
|
|
12
|
+
readonly name = "mcp-edge";
|
|
15
13
|
private mcpServer;
|
|
16
14
|
private httpServer;
|
|
17
|
-
|
|
15
|
+
private bus;
|
|
16
|
+
private config;
|
|
17
|
+
constructor();
|
|
18
|
+
init(bus: Bus): Promise<void>;
|
|
19
|
+
dispose(): Promise<void>;
|
|
18
20
|
private httpHost;
|
|
19
21
|
private httpPort;
|
|
20
22
|
/** Path prefix for Streamable HTTP, always starts with / */
|
|
@@ -27,7 +29,5 @@ export declare class McpEdge {
|
|
|
27
29
|
private setupHandlers;
|
|
28
30
|
private buildOpenApiSpec;
|
|
29
31
|
}
|
|
30
|
-
export declare function
|
|
31
|
-
stop(): Promise<void>;
|
|
32
|
-
}>;
|
|
32
|
+
export declare function createService(): Service;
|
|
33
33
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../edge/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../edge/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAWxD,qBAAa,OAAQ,YAAW,OAAO;IACrC,QAAQ,CAAC,IAAI,cAAc;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,GAAG,CAAO;IAClB,OAAO,CAAC,MAAM,CAAa;;IASrB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAIhB,4DAA4D;IAC5D,OAAO,CAAC,gBAAgB;IAKlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAOnB,SAAS;IAiEvB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,aAAa;YAmCP,gBAAgB;CA+C/B;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
|
package/dist/edge/mcp/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP edge service — translates MCP protocol to bus event calls.
|
|
3
3
|
*
|
|
4
|
-
* ListToolsRequest → bus.
|
|
5
|
-
* CallToolRequest → bus.call(
|
|
4
|
+
* ListToolsRequest → bus.list()
|
|
5
|
+
* CallToolRequest → bus.call(method, args)
|
|
6
6
|
*
|
|
7
7
|
* Supports HTTP (StreamableHTTP) transport on port 9001.
|
|
8
8
|
* Bearer token auth from config.mcp.bearerToken.
|
|
@@ -13,22 +13,28 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
13
13
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
14
14
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
15
15
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
16
|
-
import { isToolEvent } from '../../gateway/emitter.js';
|
|
17
16
|
import { createLogger } from '../../lib/logger.js';
|
|
18
17
|
import { toMessage } from '../../lib/error.js';
|
|
19
18
|
const log = createLogger('mcp');
|
|
20
19
|
const VERSION = '0.0.1';
|
|
21
20
|
// ── McpEdge ────────────────────────────────────────────────────────────────────
|
|
22
21
|
export class McpEdge {
|
|
23
|
-
|
|
24
|
-
config;
|
|
22
|
+
name = 'mcp-edge';
|
|
25
23
|
mcpServer;
|
|
26
24
|
httpServer = null;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
bus;
|
|
26
|
+
config;
|
|
27
|
+
constructor() {
|
|
30
28
|
this.mcpServer = new Server({ name: 'vargos', version: VERSION }, { capabilities: { tools: {} } });
|
|
29
|
+
}
|
|
30
|
+
async init(bus) {
|
|
31
|
+
this.bus = bus;
|
|
32
|
+
this.config = await bus.call('config.get', {});
|
|
31
33
|
this.setupHandlers();
|
|
34
|
+
await this.start();
|
|
35
|
+
}
|
|
36
|
+
async dispose() {
|
|
37
|
+
await this.stop();
|
|
32
38
|
}
|
|
33
39
|
httpHost() {
|
|
34
40
|
return this.config.mcp.host ?? '127.0.0.1';
|
|
@@ -125,22 +131,17 @@ export class McpEdge {
|
|
|
125
131
|
// ── MCP handlers ───────────────────────────────────────────────────────────
|
|
126
132
|
setupHandlers() {
|
|
127
133
|
this.mcpServer.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
128
|
-
const metadata = await this.bus.call('bus.search', {});
|
|
129
|
-
const tools = metadata.filter(isToolEvent);
|
|
130
134
|
return {
|
|
131
|
-
tools:
|
|
132
|
-
name: m.
|
|
135
|
+
tools: this.bus.list().filter(m => !m.internal).map(m => ({
|
|
136
|
+
name: m.name,
|
|
133
137
|
description: m.description,
|
|
134
|
-
inputSchema: (m.schema
|
|
138
|
+
inputSchema: (m.schema ?? {}),
|
|
135
139
|
})),
|
|
136
140
|
};
|
|
137
141
|
});
|
|
138
142
|
this.mcpServer.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
139
143
|
const { name, arguments: args } = request.params;
|
|
140
|
-
|
|
141
|
-
// Check if event exists in bus and is a tool
|
|
142
|
-
const metadata = await this.bus.call('bus.inspect', { event: name });
|
|
143
|
-
if (!metadata || metadata.type !== 'tool') {
|
|
144
|
+
if (!this.bus.has(name)) {
|
|
144
145
|
return {
|
|
145
146
|
content: [{ type: 'text', text: `Unknown tool: ${name}` }],
|
|
146
147
|
isError: true,
|
|
@@ -161,17 +162,16 @@ export class McpEdge {
|
|
|
161
162
|
});
|
|
162
163
|
}
|
|
163
164
|
async buildOpenApiSpec() {
|
|
164
|
-
const
|
|
165
|
-
const tools = metadata.filter(isToolEvent);
|
|
165
|
+
const tools = this.bus.list().filter(m => !m.internal);
|
|
166
166
|
const paths = {};
|
|
167
167
|
for (const m of tools) {
|
|
168
|
-
paths[`/tools/${m.
|
|
168
|
+
paths[`/tools/${m.name}`] = {
|
|
169
169
|
post: {
|
|
170
|
-
operationId: m.
|
|
170
|
+
operationId: m.name,
|
|
171
171
|
summary: m.description,
|
|
172
172
|
requestBody: {
|
|
173
173
|
required: true,
|
|
174
|
-
content: { 'application/json': { schema: m.schema
|
|
174
|
+
content: { 'application/json': { schema: m.schema ?? {} } },
|
|
175
175
|
},
|
|
176
176
|
responses: {
|
|
177
177
|
'200': {
|
|
@@ -207,11 +207,7 @@ export class McpEdge {
|
|
|
207
207
|
};
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const config = await bus.call('config.get', {});
|
|
213
|
-
const svc = new McpEdge(bus, config);
|
|
214
|
-
await svc.start();
|
|
215
|
-
return { stop: () => svc.stop() };
|
|
210
|
+
export function createService() {
|
|
211
|
+
return new McpEdge();
|
|
216
212
|
}
|
|
217
213
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../edge/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAEL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../edge/mcp/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,27 +7,21 @@
|
|
|
7
7
|
* Inbound flow: POST /hooks/:id → validate token → transform payload
|
|
8
8
|
* → session create/addMessage → agent.execute → deliver to notify targets
|
|
9
9
|
*/
|
|
10
|
-
import type { Bus } from '../../
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export declare class WebhooksEdge {
|
|
14
|
-
private readonly bus;
|
|
15
|
-
private readonly config;
|
|
10
|
+
import type { Bus, Service } from '../../core/types.js';
|
|
11
|
+
export declare class WebhooksEdge implements Service {
|
|
12
|
+
readonly name = "webhook";
|
|
16
13
|
private hooks;
|
|
17
14
|
private activeHooks;
|
|
18
15
|
private server;
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
search(params: EventMap['webhook.search']['params']): Promise<EventMap['webhook.search']['result']>;
|
|
16
|
+
private bus;
|
|
17
|
+
init(bus: Bus): Promise<void>;
|
|
18
|
+
dispose(): Promise<void>;
|
|
19
|
+
private search;
|
|
24
20
|
private onAgentCompleted;
|
|
25
21
|
private startHttp;
|
|
26
22
|
private stopHttp;
|
|
27
23
|
private handleRequest;
|
|
28
24
|
private fireHook;
|
|
29
25
|
}
|
|
30
|
-
export declare function
|
|
31
|
-
stop(): Promise<void>;
|
|
32
|
-
}>;
|
|
26
|
+
export declare function createService(): Service;
|
|
33
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../edge/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../edge/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAoBxD,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,aAAa;IAC1B,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,GAAG,CAAO;IAEZ,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAMhB,MAAM;IAapB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,aAAa;YA4EP,QAAQ;CA0BvB;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
|