wake-bridge 0.9.0-preview.8

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.
Files changed (115) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +222 -0
  3. package/dist/src/adapters/botlingknows.d.ts +42 -0
  4. package/dist/src/adapters/botlingknows.js +141 -0
  5. package/dist/src/adapters/botlingknows.js.map +1 -0
  6. package/dist/src/adapters/group-chat.d.ts +43 -0
  7. package/dist/src/adapters/group-chat.js +120 -0
  8. package/dist/src/adapters/group-chat.js.map +1 -0
  9. package/dist/src/cli.d.ts +2 -0
  10. package/dist/src/cli.js +637 -0
  11. package/dist/src/cli.js.map +1 -0
  12. package/dist/src/connector-catalog.d.ts +17 -0
  13. package/dist/src/connector-catalog.js +43 -0
  14. package/dist/src/connector-catalog.js.map +1 -0
  15. package/dist/src/connectors/botlingknows-mcp.d.ts +15 -0
  16. package/dist/src/connectors/botlingknows-mcp.js +130 -0
  17. package/dist/src/connectors/botlingknows-mcp.js.map +1 -0
  18. package/dist/src/connectors/group-chat-http.d.ts +17 -0
  19. package/dist/src/connectors/group-chat-http.js +226 -0
  20. package/dist/src/connectors/group-chat-http.js.map +1 -0
  21. package/dist/src/connectors/mcp-http-client.d.ts +11 -0
  22. package/dist/src/connectors/mcp-http-client.js +108 -0
  23. package/dist/src/connectors/mcp-http-client.js.map +1 -0
  24. package/dist/src/core.d.ts +170 -0
  25. package/dist/src/core.js +1720 -0
  26. package/dist/src/core.js.map +1 -0
  27. package/dist/src/daemon.d.ts +31 -0
  28. package/dist/src/daemon.js +605 -0
  29. package/dist/src/daemon.js.map +1 -0
  30. package/dist/src/db.d.ts +31 -0
  31. package/dist/src/db.js +513 -0
  32. package/dist/src/db.js.map +1 -0
  33. package/dist/src/event-sdk.d.ts +43 -0
  34. package/dist/src/event-sdk.js +152 -0
  35. package/dist/src/event-sdk.js.map +1 -0
  36. package/dist/src/host-adapter-registry.d.ts +21 -0
  37. package/dist/src/host-adapter-registry.js +59 -0
  38. package/dist/src/host-adapter-registry.js.map +1 -0
  39. package/dist/src/index.d.ts +5 -0
  40. package/dist/src/index.js +6 -0
  41. package/dist/src/index.js.map +1 -0
  42. package/dist/src/instance-config.d.ts +46 -0
  43. package/dist/src/instance-config.js +176 -0
  44. package/dist/src/instance-config.js.map +1 -0
  45. package/dist/src/mcp.d.ts +51 -0
  46. package/dist/src/mcp.js +728 -0
  47. package/dist/src/mcp.js.map +1 -0
  48. package/dist/src/operator-control.d.ts +82 -0
  49. package/dist/src/operator-control.js +220 -0
  50. package/dist/src/operator-control.js.map +1 -0
  51. package/dist/src/out-of-process-host.d.ts +37 -0
  52. package/dist/src/out-of-process-host.js +196 -0
  53. package/dist/src/out-of-process-host.js.map +1 -0
  54. package/dist/src/policy-control.d.ts +3 -0
  55. package/dist/src/policy-control.js +120 -0
  56. package/dist/src/policy-control.js.map +1 -0
  57. package/dist/src/release-lifecycle.d.ts +98 -0
  58. package/dist/src/release-lifecycle.js +378 -0
  59. package/dist/src/release-lifecycle.js.map +1 -0
  60. package/dist/src/sdk-error.d.ts +6 -0
  61. package/dist/src/sdk-error.js +12 -0
  62. package/dist/src/sdk-error.js.map +1 -0
  63. package/dist/src/source-adapter.d.ts +32 -0
  64. package/dist/src/source-adapter.js +164 -0
  65. package/dist/src/source-adapter.js.map +1 -0
  66. package/dist/src/source-connector.d.ts +50 -0
  67. package/dist/src/source-connector.js +358 -0
  68. package/dist/src/source-connector.js.map +1 -0
  69. package/dist/src/source-control-client.d.ts +38 -0
  70. package/dist/src/source-control-client.js +61 -0
  71. package/dist/src/source-control-client.js.map +1 -0
  72. package/dist/src/source-ingress.d.ts +16 -0
  73. package/dist/src/source-ingress.js +47 -0
  74. package/dist/src/source-ingress.js.map +1 -0
  75. package/dist/src/source-sdk.d.ts +6 -0
  76. package/dist/src/source-sdk.js +53 -0
  77. package/dist/src/source-sdk.js.map +1 -0
  78. package/dist/src/transport-sdk.d.ts +102 -0
  79. package/dist/src/transport-sdk.js +222 -0
  80. package/dist/src/transport-sdk.js.map +1 -0
  81. package/dist/src/transport.d.ts +23 -0
  82. package/dist/src/transport.js +71 -0
  83. package/dist/src/transport.js.map +1 -0
  84. package/dist/src/types.d.ts +522 -0
  85. package/dist/src/types.js +2 -0
  86. package/dist/src/types.js.map +1 -0
  87. package/dist/src/util.d.ts +26 -0
  88. package/dist/src/util.js +136 -0
  89. package/dist/src/util.js.map +1 -0
  90. package/dist/src/version.d.ts +1 -0
  91. package/dist/src/version.js +2 -0
  92. package/dist/src/version.js.map +1 -0
  93. package/docs/adapters/botlingknows.md +40 -0
  94. package/docs/adapters/gmail-planned.md +16 -0
  95. package/docs/adapters/group-chat.md +126 -0
  96. package/docs/operations/connector-catalog.md +40 -0
  97. package/docs/operations/operator-control.md +83 -0
  98. package/docs/operations/out-of-process-host-adapter.md +150 -0
  99. package/docs/operations/policies.md +106 -0
  100. package/docs/operations/public-sdk.md +87 -0
  101. package/docs/operations/release-lifecycle.md +154 -0
  102. package/docs/operations/source-connectors.md +163 -0
  103. package/docs/operations/source-ingress.md +108 -0
  104. package/docs/operations/templates/botlingknows-connector.env.example +5 -0
  105. package/docs/operations/templates/sources.json.example +15 -0
  106. package/docs/quickstart.md +143 -0
  107. package/docs/releases/0.9.0-preview.8.md +44 -0
  108. package/docs/verification.md +19 -0
  109. package/examples/policies/botlingknows-conservative.json +44 -0
  110. package/examples/reference-host-adapter/README.md +41 -0
  111. package/examples/reference-host-adapter/adapter.mjs +173 -0
  112. package/examples/reference-host-adapter/host-adapters.json.example +26 -0
  113. package/package.json +94 -0
  114. package/schemas/event-v1.schema.json +26 -0
  115. package/schemas/policy-v1.schema.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type ConnectorAvailability = "available" | "planned" | "unavailable";
2
+ export type ConnectorKind = "official_optional" | "reference";
3
+ export declare const CONNECTOR_RUNTIME_STATES: readonly ["disabled", "enabled", "needs_attention"];
4
+ export type ConnectorRuntimeState = typeof CONNECTOR_RUNTIME_STATES[number];
5
+ export interface ConnectorCatalogEntry {
6
+ id: string;
7
+ display_name: string;
8
+ availability: ConnectorAvailability;
9
+ kind: ConnectorKind;
10
+ bundled: boolean;
11
+ default_state: "disabled";
12
+ enable_supported: boolean;
13
+ source_kind: string;
14
+ documentation: string;
15
+ onboarding: readonly string[];
16
+ }
17
+ export declare function connectorCatalog(): readonly ConnectorCatalogEntry[];
@@ -0,0 +1,43 @@
1
+ export const CONNECTOR_RUNTIME_STATES = ["disabled", "enabled", "needs_attention"];
2
+ const CONNECTOR_CATALOG = Object.freeze([
3
+ Object.freeze({
4
+ id: "botlingknows",
5
+ display_name: "小机知道",
6
+ availability: "available",
7
+ kind: "official_optional",
8
+ bundled: true,
9
+ default_state: "disabled",
10
+ enable_supported: true,
11
+ source_kind: "botlingknows",
12
+ documentation: "docs/adapters/botlingknows.md",
13
+ onboarding: Object.freeze(["configure", "verify_identity", "bootstrap_from_now", "uat", "enable"]),
14
+ }),
15
+ Object.freeze({
16
+ id: "gmail",
17
+ display_name: "Gmail",
18
+ availability: "planned",
19
+ kind: "official_optional",
20
+ bundled: false,
21
+ default_state: "disabled",
22
+ enable_supported: false,
23
+ source_kind: "gmail",
24
+ documentation: "docs/adapters/gmail-planned.md",
25
+ onboarding: Object.freeze([]),
26
+ }),
27
+ Object.freeze({
28
+ id: "group_chat_fixture",
29
+ display_name: "Group Chat fixture",
30
+ availability: "available",
31
+ kind: "reference",
32
+ bundled: true,
33
+ default_state: "disabled",
34
+ enable_supported: true,
35
+ source_kind: "group_chat",
36
+ documentation: "docs/adapters/group-chat.md",
37
+ onboarding: Object.freeze(["configure", "verify_identity", "bootstrap_from_now", "uat", "enable"]),
38
+ }),
39
+ ]);
40
+ export function connectorCatalog() {
41
+ return CONNECTOR_CATALOG;
42
+ }
43
+ //# sourceMappingURL=connector-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-catalog.js","sourceRoot":"","sources":["../../src/connector-catalog.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAU,CAAC;AAgB5F,MAAM,iBAAiB,GAAqC,MAAM,CAAC,MAAM,CAAC;IACxE,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,cAAc;QAClB,YAAY,EAAE,MAAM;QACpB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,UAAU;QACzB,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,cAAc;QAC3B,aAAa,EAAE,+BAA+B;QAC9C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;KACnG,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,OAAO;QACX,YAAY,EAAE,OAAO;QACrB,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,UAAU;QACzB,gBAAgB,EAAE,KAAK;QACvB,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,gCAAgC;QAC/C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KAC9B,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,oBAAoB;QACxB,YAAY,EAAE,oBAAoB;QAClC,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,UAAU;QACzB,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,6BAA6B;QAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;KACnG,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { createServer } from "node:http";
2
+ import type { AddressInfo } from "node:net";
3
+ export interface BotlingKnowsConnectorOptions {
4
+ upstream_url: string;
5
+ connector_token: string;
6
+ subject_ref: string;
7
+ host?: string;
8
+ port?: number;
9
+ fetcher?: typeof fetch;
10
+ }
11
+ export declare function startBotlingKnowsConnector(options: BotlingKnowsConnectorOptions): Promise<{
12
+ server: ReturnType<typeof createServer>;
13
+ address: AddressInfo | string | null;
14
+ close: () => Promise<void>;
15
+ }>;
@@ -0,0 +1,130 @@
1
+ import { createServer } from "node:http";
2
+ import { createHash, timingSafeEqual } from "node:crypto";
3
+ import { BridgeError } from "../core.js";
4
+ import { BotlingKnowsSourceAdapter, BOTLING_KNOWS_MAX_PAGE_SIZE, botlingKnowsCursorFromNow, } from "../adapters/botlingknows.js";
5
+ import { StreamableHttpMcpClient } from "./mcp-http-client.js";
6
+ function jsonResponse(response, status, value) {
7
+ const text = JSON.stringify(value);
8
+ response.statusCode = status;
9
+ response.setHeader("content-type", "application/json; charset=utf-8");
10
+ response.setHeader("content-length", Buffer.byteLength(text));
11
+ response.end(text);
12
+ }
13
+ async function readJson(request) {
14
+ const chunks = [];
15
+ let bytes = 0;
16
+ for await (const chunk of request) {
17
+ const buffer = Buffer.from(chunk);
18
+ bytes += buffer.length;
19
+ if (bytes > 1_048_576)
20
+ throw new BridgeError("connector request is too large", "oversized_request", 413);
21
+ chunks.push(buffer);
22
+ }
23
+ try {
24
+ const value = JSON.parse(Buffer.concat(chunks).toString("utf8"));
25
+ if (!value || typeof value !== "object" || Array.isArray(value))
26
+ throw new Error("object required");
27
+ return value;
28
+ }
29
+ catch {
30
+ throw new BridgeError("connector request must be a JSON object", "invalid_json", 400);
31
+ }
32
+ }
33
+ function secretEqual(actual, expected) {
34
+ const left = Buffer.from(actual, "utf8");
35
+ const right = Buffer.from(expected, "utf8");
36
+ return left.length === right.length && left.length > 0 && timingSafeEqual(left, right);
37
+ }
38
+ class BotlingKnowsMcpNotificationClient {
39
+ mcp;
40
+ constructor(mcp) {
41
+ this.mcp = mcp;
42
+ }
43
+ async notifications(input) {
44
+ const envelope = await this.mcp.callTool("botling_knows", {
45
+ action: "notifications",
46
+ payload: input,
47
+ idempotency_key: "",
48
+ });
49
+ if (envelope.ok !== true || !envelope.data || !Array.isArray(envelope.data.notifications)) {
50
+ throw new BridgeError("botlingknows MCP returned an error envelope", "botlingknows_mcp_error", 424);
51
+ }
52
+ return {
53
+ notifications: envelope.data.notifications,
54
+ next_cursor: envelope.meta?.next_cursor ?? null,
55
+ };
56
+ }
57
+ }
58
+ export async function startBotlingKnowsConnector(options) {
59
+ if (!options.connector_token)
60
+ throw new BridgeError("connector token is required", "invalid_connector_config", 400);
61
+ const host = options.host ?? "127.0.0.1";
62
+ if (!["127.0.0.1", "::1"].includes(host)) {
63
+ throw new BridgeError("connector must bind a numeric loopback address", "unsafe_connector_bind", 409);
64
+ }
65
+ if (!options.subject_ref)
66
+ throw new BridgeError("connector subject_ref is required", "invalid_connector_config", 400);
67
+ const client = new BotlingKnowsMcpNotificationClient(new StreamableHttpMcpClient(options.upstream_url, options.fetcher));
68
+ const adapter = new BotlingKnowsSourceAdapter(client, {
69
+ subject_ref: options.subject_ref,
70
+ binding_fingerprint: `sha256:${createHash("sha256").update(options.upstream_url).digest("hex")}`,
71
+ });
72
+ const server = createServer(async (request, response) => {
73
+ try {
74
+ const path = (request.url || "/").split("?")[0];
75
+ if (request.method === "GET" && path === "/health") {
76
+ jsonResponse(response, 200, { ok: true, source: adapter.manifest.id });
77
+ return;
78
+ }
79
+ const bearer = typeof request.headers.authorization === "string" && request.headers.authorization.startsWith("Bearer ")
80
+ ? request.headers.authorization.slice(7)
81
+ : "";
82
+ if (!secretEqual(bearer, options.connector_token)) {
83
+ jsonResponse(response, 401, { error: "unauthorized" });
84
+ return;
85
+ }
86
+ if (request.method === "GET" && path === "/v1/manifest") {
87
+ jsonResponse(response, 200, adapter.manifest);
88
+ return;
89
+ }
90
+ if (request.method === "POST" && path === "/v1/poll") {
91
+ const body = await readJson(request);
92
+ const limit = Number(body.limit);
93
+ if (!Number.isSafeInteger(limit) || limit < 1 || limit > BOTLING_KNOWS_MAX_PAGE_SIZE || !("cursor" in body)) {
94
+ throw new BridgeError("poll context is invalid", "invalid_source_poll", 400);
95
+ }
96
+ jsonResponse(response, 200, await adapter.poll({ cursor: body.cursor, limit }));
97
+ return;
98
+ }
99
+ if (request.method === "POST" && path === "/v1/bootstrap") {
100
+ const body = await readJson(request);
101
+ if (body.mode !== "from-now") {
102
+ throw new BridgeError("unsupported bootstrap mode", "invalid_source_bootstrap", 400);
103
+ }
104
+ jsonResponse(response, 200, { cursor: await botlingKnowsCursorFromNow(client) });
105
+ return;
106
+ }
107
+ jsonResponse(response, 404, { error: "not_found" });
108
+ }
109
+ catch (error) {
110
+ const bridgeError = error instanceof BridgeError ? error : new BridgeError("connector failed", "connector_error", 500);
111
+ const structural = bridgeError.code.startsWith("invalid_source_")
112
+ || bridgeError.code === "botlingknows_mcp_error"
113
+ || (bridgeError.code.startsWith("upstream_mcp_") && bridgeError.status !== 503);
114
+ jsonResponse(response, structural ? 424 : bridgeError.status, { error: bridgeError.message, code: bridgeError.code });
115
+ }
116
+ });
117
+ await new Promise((resolve, reject) => {
118
+ const onError = (error) => { server.off("listening", onListening); reject(error); };
119
+ const onListening = () => { server.off("error", onError); resolve(); };
120
+ server.once("error", onError);
121
+ server.once("listening", onListening);
122
+ server.listen(options.port ?? 4391, host);
123
+ });
124
+ return {
125
+ server,
126
+ address: server.address(),
127
+ close: async () => new Promise((resolve, reject) => server.close((error) => error ? reject(error) : resolve())),
128
+ };
129
+ }
130
+ //# sourceMappingURL=botlingknows-mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"botlingknows-mcp.js","sourceRoot":"","sources":["../../../src/connectors/botlingknows-mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { createServer } from "node:http";
2
+ import type { AddressInfo } from "node:net";
3
+ import { GroupChatSourceAdapter } from "../adapters/group-chat.js";
4
+ export interface GroupChatConnectorOptions {
5
+ upstream_url: string;
6
+ upstream_token: string;
7
+ connector_token: string;
8
+ host?: string;
9
+ port?: number;
10
+ fetcher?: typeof fetch;
11
+ }
12
+ export declare function startGroupChatConnector(options: GroupChatConnectorOptions): Promise<{
13
+ server: ReturnType<typeof createServer>;
14
+ address: AddressInfo | string | null;
15
+ manifest: GroupChatSourceAdapter["manifest"];
16
+ close: () => Promise<void>;
17
+ }>;
@@ -0,0 +1,226 @@
1
+ import { createHash, timingSafeEqual } from "node:crypto";
2
+ import { createServer } from "node:http";
3
+ import { GROUP_CHAT_MAX_PAGE_SIZE, GroupChatSourceAdapter, } from "../adapters/group-chat.js";
4
+ import { BridgeError } from "../core.js";
5
+ import { WakeBridgeSdkError } from "../sdk-error.js";
6
+ class GroupChatHttpClient {
7
+ token;
8
+ fetcher;
9
+ baseUrl;
10
+ constructor(upstreamUrl, token, fetcher = fetch) {
11
+ this.token = token;
12
+ this.fetcher = fetcher;
13
+ let url;
14
+ try {
15
+ url = new URL(upstreamUrl);
16
+ }
17
+ catch {
18
+ throw new BridgeError("group chat upstream URL is invalid", "invalid_connector_config", 400);
19
+ }
20
+ if (url.protocol !== "http:" ||
21
+ !["127.0.0.1", "::1", "[::1]"].includes(url.hostname) ||
22
+ url.username ||
23
+ url.password ||
24
+ (url.pathname !== "/" && url.pathname !== "") ||
25
+ url.search ||
26
+ url.hash) {
27
+ throw new BridgeError("group chat upstream must be a loopback HTTP origin", "unsafe_connector_upstream", 409);
28
+ }
29
+ if (!token)
30
+ throw new BridgeError("group chat upstream token is required", "invalid_connector_config", 400);
31
+ this.baseUrl = url.origin;
32
+ }
33
+ async identity() {
34
+ const value = await this.getJson("/api/consumer");
35
+ if (value.provider !== "group-chat" ||
36
+ typeof value.provider_version !== "string" ||
37
+ !value.provider_version ||
38
+ typeof value.principal_member_id !== "string" ||
39
+ !value.principal_member_id ||
40
+ !Array.isArray(value.scopes) ||
41
+ !value.scopes.includes("events:read") ||
42
+ !value.scopes.includes("messages:read") ||
43
+ !Array.isArray(value.room_allowlist) ||
44
+ value.room_allowlist.length === 0 ||
45
+ value.room_allowlist.some((room) => typeof room !== "string" || !room)) {
46
+ throw new BridgeError("group chat consumer identity is invalid", "invalid_source_page", 502);
47
+ }
48
+ return value;
49
+ }
50
+ async readEvents(input) {
51
+ const after = input.after_event_cursor ?? 0;
52
+ if ((typeof after !== "string" && typeof after !== "number") || input.wait_ms !== 0) {
53
+ throw new BridgeError("group chat feed request is invalid", "invalid_source_poll", 400);
54
+ }
55
+ const query = new URLSearchParams({
56
+ after_event_cursor: String(after),
57
+ limit: String(input.limit),
58
+ wait_ms: "0",
59
+ types: input.types.join(","),
60
+ });
61
+ return await this.getJson(`/api/events?${query.toString()}`);
62
+ }
63
+ async cursorFromNow() {
64
+ const value = await this.getJson("/api/events?after_event_cursor=0&limit=1&wait_ms=0");
65
+ if (!Number.isSafeInteger(value.head_event_cursor) || Number(value.head_event_cursor) < 0) {
66
+ throw new BridgeError("group chat event head is invalid", "invalid_source_page", 502);
67
+ }
68
+ return { v: 1, event_cursor: Number(value.head_event_cursor) };
69
+ }
70
+ async getJson(path) {
71
+ let response;
72
+ try {
73
+ response = await this.fetcher(`${this.baseUrl}${path}`, {
74
+ headers: { authorization: `Bearer ${this.token}`, accept: "application/json" },
75
+ signal: AbortSignal.timeout(15_000),
76
+ });
77
+ }
78
+ catch (error) {
79
+ throw new BridgeError(`group chat upstream is unavailable: ${error instanceof Error ? error.message : String(error)}`, "source_connector_unavailable", 503);
80
+ }
81
+ if (!response.ok) {
82
+ const code = response.status === 401 || response.status === 403
83
+ ? "source_connector_unauthorized"
84
+ : response.status >= 500
85
+ ? "source_connector_http_error"
86
+ : "source_connector_contract_error";
87
+ throw new BridgeError(`group chat upstream returned HTTP ${response.status}`, code, 502);
88
+ }
89
+ try {
90
+ return await response.json();
91
+ }
92
+ catch {
93
+ throw new BridgeError("group chat upstream returned invalid JSON", "source_connector_invalid_json", 502);
94
+ }
95
+ }
96
+ }
97
+ export async function startGroupChatConnector(options) {
98
+ if (!options.connector_token) {
99
+ throw new BridgeError("connector token is required", "invalid_connector_config", 400);
100
+ }
101
+ const host = options.host ?? "127.0.0.1";
102
+ if (!["127.0.0.1", "::1"].includes(host)) {
103
+ throw new BridgeError("connector must bind a numeric loopback address", "unsafe_connector_bind", 409);
104
+ }
105
+ const client = new GroupChatHttpClient(options.upstream_url, options.upstream_token, options.fetcher);
106
+ const identity = await client.identity();
107
+ const bindingMaterial = JSON.stringify({
108
+ origin: client.baseUrl,
109
+ principal_member_id: identity.principal_member_id,
110
+ room_allowlist: [...identity.room_allowlist].sort(),
111
+ });
112
+ const adapter = new GroupChatSourceAdapter(client, {
113
+ subject_ref: `group-chat:principal:${identity.principal_member_id}`,
114
+ binding_fingerprint: `sha256:${createHash("sha256").update(bindingMaterial).digest("hex")}`,
115
+ });
116
+ const server = createServer(async (request, response) => {
117
+ try {
118
+ const path = (request.url || "/").split("?")[0];
119
+ if (request.method === "GET" && path === "/health") {
120
+ jsonResponse(response, 200, {
121
+ ok: true,
122
+ source: adapter.manifest.id,
123
+ provider_version: identity.provider_version,
124
+ });
125
+ return;
126
+ }
127
+ const bearer = typeof request.headers.authorization === "string" &&
128
+ request.headers.authorization.startsWith("Bearer ")
129
+ ? request.headers.authorization.slice(7)
130
+ : "";
131
+ if (!secretEqual(bearer, options.connector_token)) {
132
+ jsonResponse(response, 401, { error: "unauthorized" });
133
+ return;
134
+ }
135
+ if (request.method === "GET" && path === "/v1/manifest") {
136
+ jsonResponse(response, 200, adapter.manifest);
137
+ return;
138
+ }
139
+ if (request.method === "POST" && path === "/v1/poll") {
140
+ const body = await readJson(request);
141
+ const limit = Number(body.limit);
142
+ if (!Number.isSafeInteger(limit) ||
143
+ limit < 1 ||
144
+ limit > GROUP_CHAT_MAX_PAGE_SIZE ||
145
+ !("cursor" in body)) {
146
+ throw new BridgeError("poll context is invalid", "invalid_source_poll", 400);
147
+ }
148
+ jsonResponse(response, 200, await adapter.poll({ cursor: body.cursor, limit }));
149
+ return;
150
+ }
151
+ if (request.method === "POST" && path === "/v1/bootstrap") {
152
+ const body = await readJson(request);
153
+ if (body.mode !== "from-now") {
154
+ throw new BridgeError("unsupported bootstrap mode", "invalid_source_bootstrap", 400);
155
+ }
156
+ jsonResponse(response, 200, { cursor: await client.cursorFromNow() });
157
+ return;
158
+ }
159
+ jsonResponse(response, 404, { error: "not_found" });
160
+ }
161
+ catch (error) {
162
+ const bridgeError = error instanceof BridgeError
163
+ ? error
164
+ : error instanceof WakeBridgeSdkError
165
+ ? new BridgeError(error.message, error.code, 424)
166
+ : new BridgeError("connector failed", "connector_error", 500);
167
+ jsonResponse(response, bridgeError.status, {
168
+ error: bridgeError.message,
169
+ code: bridgeError.code,
170
+ });
171
+ }
172
+ });
173
+ await new Promise((resolve, reject) => {
174
+ const onError = (error) => {
175
+ server.off("listening", onListening);
176
+ reject(error);
177
+ };
178
+ const onListening = () => {
179
+ server.off("error", onError);
180
+ resolve();
181
+ };
182
+ server.once("error", onError);
183
+ server.once("listening", onListening);
184
+ server.listen(options.port ?? 4392, host);
185
+ });
186
+ return {
187
+ server,
188
+ address: server.address(),
189
+ manifest: adapter.manifest,
190
+ close: async () => new Promise((resolve, reject) => server.close((error) => (error ? reject(error) : resolve()))),
191
+ };
192
+ }
193
+ function jsonResponse(response, status, value) {
194
+ const text = JSON.stringify(value);
195
+ response.statusCode = status;
196
+ response.setHeader("content-type", "application/json; charset=utf-8");
197
+ response.setHeader("content-length", Buffer.byteLength(text));
198
+ response.end(text);
199
+ }
200
+ async function readJson(request) {
201
+ const chunks = [];
202
+ let bytes = 0;
203
+ for await (const chunk of request) {
204
+ const buffer = Buffer.from(chunk);
205
+ bytes += buffer.length;
206
+ if (bytes > 1_048_576) {
207
+ throw new BridgeError("connector request is too large", "oversized_request", 413);
208
+ }
209
+ chunks.push(buffer);
210
+ }
211
+ try {
212
+ const value = JSON.parse(Buffer.concat(chunks).toString("utf8"));
213
+ if (!value || typeof value !== "object" || Array.isArray(value))
214
+ throw new Error();
215
+ return value;
216
+ }
217
+ catch {
218
+ throw new BridgeError("connector request must be a JSON object", "invalid_json", 400);
219
+ }
220
+ }
221
+ function secretEqual(actual, expected) {
222
+ const left = Buffer.from(actual, "utf8");
223
+ const right = Buffer.from(expected, "utf8");
224
+ return left.length === right.length && left.length > 0 && timingSafeEqual(left, right);
225
+ }
226
+ //# sourceMappingURL=group-chat-http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-chat-http.js","sourceRoot":"","sources":["../../../src/connectors/group-chat-http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ type Fetch = typeof fetch;
2
+ export declare class StreamableHttpMcpClient {
3
+ private readonly endpoint;
4
+ private readonly fetcher;
5
+ private requestId;
6
+ constructor(endpoint: string, fetcher?: Fetch);
7
+ callTool(name: string, args: Record<string, unknown>): Promise<Record<string, any>>;
8
+ private nextId;
9
+ private post;
10
+ }
11
+ export {};