@chibitek/chibi 0.1.162 → 0.1.168
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{abnfDiagram-O67JEVCF-D0_WX2x_.js → abnfDiagram-O67JEVCF-DUyzT6Xq.js} +1 -1
- package/dist/assets/{arc-lzBXqTbJ.js → arc-B4-kO642.js} +1 -1
- package/dist/assets/{architectureDiagram-NJMV4G6O-KQZbO2M3.js → architectureDiagram-NJMV4G6O-DgKdnNL2.js} +1 -1
- package/dist/assets/{blockDiagram-BEXU5L5S-zb3pW64Y.js → blockDiagram-BEXU5L5S-B6oV3kDr.js} +1 -1
- package/dist/assets/{c4Diagram-YGBWAQC7-CADaXczd.js → c4Diagram-YGBWAQC7-Dp0E43jx.js} +1 -1
- package/dist/assets/channel-BidDehbw.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-DJP27cEp.js → chunk-2Q5K7J3B-Cfv1WVUo.js} +1 -1
- package/dist/assets/{chunk-3FUC2YCW-Cp9Z7Ybl.js → chunk-3FUC2YCW-_-STY2yO.js} +2 -2
- package/dist/assets/{chunk-5VM5RSS4-DjXxom_0.js → chunk-5VM5RSS4-C6MZm1cm.js} +1 -1
- package/dist/assets/{chunk-GTNCS2PH-DpEJ08zA.js → chunk-GTNCS2PH-C__aVIJy.js} +1 -1
- package/dist/assets/{chunk-GWA4HPMP-CQ4Kadr-.js → chunk-GWA4HPMP-fSrARJuB.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-CwXmVMdh.js → chunk-JWPE2WC7-CJioJB6h.js} +1 -1
- package/dist/assets/{chunk-NETBCI7D-Vl_kib_R.js → chunk-NETBCI7D-o6MBGCq_.js} +1 -1
- package/dist/assets/{chunk-WEXAMYUT-BhAVbfJe.js → chunk-WEXAMYUT-O-TFLbdc.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-s1a4nKQE.js → chunk-XXDRQBXY-DYS9CQbl.js} +1 -1
- package/dist/assets/{classDiagram-v2-NBCMYWYE-DeGQSNky.js → classDiagram-v2-NBCMYWYE-BC4bSH09.js} +1 -1
- package/dist/assets/{cose-bilkent-JH36ORCC-D5sUHYFG.js → cose-bilkent-JH36ORCC-7NKuC3-C.js} +1 -1
- package/dist/assets/{cynefin-OW5HDTMX-DmTvN9T2.js → cynefin-OW5HDTMX-CuWv5cOw.js} +1 -1
- package/dist/assets/{cynefinDiagram-VND7K2PF-Cqtt1jCF.js → cynefinDiagram-VND7K2PF-D_l_JrG5.js} +1 -1
- package/dist/assets/{dagre-6A5THRUB-DRZKkSJg.js → dagre-6A5THRUB-D7eucSmr.js} +1 -1
- package/dist/assets/{diagram-22UHCM2B-1od4dKOU.js → diagram-22UHCM2B-CADR5v1e.js} +1 -1
- package/dist/assets/{diagram-3UASUU5V-D3_yCQOJ.js → diagram-3UASUU5V-DF_fBOZn.js} +1 -1
- package/dist/assets/{diagram-ATOU4E4O-D9UgsVGC.js → diagram-ATOU4E4O-DE5p59WH.js} +1 -1
- package/dist/assets/{diagram-CDSNMT55-DMxsJ_X5.js → diagram-CDSNMT55-vthvYooA.js} +1 -1
- package/dist/assets/{diagram-MLGK6HIB-CK47Pp3D.js → diagram-MLGK6HIB-ByMHy4S-.js} +1 -1
- package/dist/assets/{diagram-MPIPVDR6-D0axYDk-.js → diagram-MPIPVDR6-C9hKBUnO.js} +1 -1
- package/dist/assets/{ebnfDiagram-ZINNZB2B-hkbV8j2o.js → ebnfDiagram-ZINNZB2B-Djv6hWEl.js} +1 -1
- package/dist/assets/{elk-276RUBZZ-DL9jncwy.js → elk-276RUBZZ-CmUjf18z.js} +1 -1
- package/dist/assets/{erDiagram-OPXOYQCR-etb_6SR6.js → erDiagram-OPXOYQCR-DkmXQUok.js} +1 -1
- package/dist/assets/{flowDiagram-KWPJA3E3-4Dgg4I8f.js → flowDiagram-KWPJA3E3-6pz2poYn.js} +1 -1
- package/dist/assets/{ganttDiagram-FUAMR5RP-DRBB4AaO.js → ganttDiagram-FUAMR5RP-Cx9Fbw75.js} +1 -1
- package/dist/assets/{gitGraphDiagram-X574FWY7-CzgKN-tE.js → gitGraphDiagram-X574FWY7-BR5MsYkP.js} +1 -1
- package/dist/assets/{index-BT2giPxq.js → index-BoF5cGZq.js} +1 -1
- package/dist/assets/index-COwCaN7p.css +1 -0
- package/dist/assets/{index-fHtcwzVK.js → index-Ckv52eaP.js} +178 -179
- package/dist/assets/{infoDiagram-VRGFBTTK-DwpjLCMe.js → infoDiagram-VRGFBTTK-DoF183Am.js} +1 -1
- package/dist/assets/{ishikawaDiagram-OU5B5YK6-H-CWnU1-.js → ishikawaDiagram-OU5B5YK6-4T_-hM1-.js} +1 -1
- package/dist/assets/{journeyDiagram-ZHPQQLJL-CY-oDrpq.js → journeyDiagram-ZHPQQLJL-Ca0T3Ngd.js} +1 -1
- package/dist/assets/{kanban-definition-PNTS6WVX-DMGIKH3g.js → kanban-definition-PNTS6WVX-DNp_DAr9.js} +1 -1
- package/dist/assets/{linear-BHhtTLK8.js → linear-COUoS2bF.js} +1 -1
- package/dist/assets/{mermaid.core-BWK_Ui3n.js → mermaid.core-DQHowMIV.js} +5 -5
- package/dist/assets/{mindmap-definition-NLK3R4M7-Cc17hw2c.js → mindmap-definition-NLK3R4M7-CMgO1Mkh.js} +1 -1
- package/dist/assets/{pegDiagram-GJSIUBJH-BqFjUBJK.js → pegDiagram-GJSIUBJH-BCVCZbsq.js} +1 -1
- package/dist/assets/{pieDiagram-5QR66LMP-ikmgTCa3.js → pieDiagram-5QR66LMP-DxaMlX62.js} +1 -1
- package/dist/assets/{quadrantDiagram-O4NWA36T-CC3s5Dsc.js → quadrantDiagram-O4NWA36T-qUD0pkur.js} +1 -1
- package/dist/assets/{railroadDiagram-XR7U4H2S-Dtwf869F.js → railroadDiagram-XR7U4H2S-Dc6rcAJB.js} +1 -1
- package/dist/assets/{requirementDiagram-PLB6GJNP-C5p7AgwQ.js → requirementDiagram-PLB6GJNP-DMTfI_lR.js} +1 -1
- package/dist/assets/{sankeyDiagram-IPEJSGJF-8NKN770X.js → sankeyDiagram-IPEJSGJF-B0BWZys8.js} +1 -1
- package/dist/assets/{sequenceDiagram-PO4LG4MO-DQucgrWO.js → sequenceDiagram-PO4LG4MO-DZVt17mL.js} +1 -1
- package/dist/assets/{sizeCapture-INFHLROL-Cxmcj9Nl.js → sizeCapture-INFHLROL-BFQztpNW.js} +1 -1
- package/dist/assets/{stateDiagram-v2-GCMORJYK-DEdvHXnJ.js → stateDiagram-v2-GCMORJYK-GeFCVCDr.js} +1 -1
- package/dist/assets/{swimlanes-2SLR337P-BOGePqj1.js → swimlanes-2SLR337P-DTqQXTvP.js} +1 -1
- package/dist/assets/swimlanesDiagram-TC7HE7FX-CRQqFEdH.js +8 -0
- package/dist/assets/{timeline-definition-EJHVYXUP-DfpRxJgE.js → timeline-definition-EJHVYXUP-BoiNrkP7.js} +1 -1
- package/dist/assets/{usecaseDiagram-POWQR4AR-BOmQFDT4.js → usecaseDiagram-POWQR4AR-CdfsSO2g.js} +1 -1
- package/dist/assets/{vennDiagram-UO4OBE2U-84pfbvUi.js → vennDiagram-UO4OBE2U-CHc_Fn1O.js} +1 -1
- package/dist/assets/{wardleyDiagram-VNRHLVJA-Cbxnw8ip.js → wardleyDiagram-VNRHLVJA-Bv3KWVEF.js} +1 -1
- package/dist/assets/{xychartDiagram-PMCCYNJV-BLiz8vqY.js → xychartDiagram-PMCCYNJV-CQFknLPS.js} +1 -1
- package/dist/handbook/atomic-handbook.html +5 -0
- package/dist/index.html +2 -2
- package/dist-server/container-mcp.js +5 -0
- package/dist-server/drivers/agents-proxy.js +65 -41
- package/dist-server/index.js +4652 -4232
- package/dist-server/openmausbot.js +499 -282
- package/dist-server/pair-cli.js +499 -282
- package/dist-server/server/auto-approve.js +4 -1
- package/dist-server/server/brand.js +11 -0
- package/dist-server/server/config.js +13 -18
- package/dist-server/server/connection-credential.js +59 -0
- package/dist-server/server/container-computer.js +5 -26
- package/dist-server/server/credential-card-request.js +52 -0
- package/dist-server/server/dictation.js +6 -3
- package/dist-server/server/drivers/agents-call.js +3 -23
- package/dist-server/server/drivers/agents-catalog.js +2 -20
- package/dist-server/server/drivers/agents-credential.js +57 -0
- package/dist-server/server/drivers/builtIn.js +9 -1
- package/dist-server/server/drivers/claude-elicitation.js +76 -0
- package/dist-server/server/drivers/claude-stdin.js +47 -0
- package/dist-server/server/drivers/claude.js +23 -39
- package/dist-server/server/drivers/codex-elicitation.js +93 -0
- package/dist-server/server/drivers/codex.js +41 -107
- package/dist-server/server/engine-platform-fleet.js +32 -0
- package/dist-server/server/external-room.js +24 -0
- package/dist-server/server/index.js +101 -114
- package/dist-server/server/mcp-elicitation.js +120 -0
- package/dist-server/server/mcp-http.js +52 -2
- package/dist-server/server/mcp-probe.js +3 -0
- package/dist-server/server/peer-roster.js +43 -0
- package/dist-server/server/phone-secret.js +12 -4
- package/dist-server/server/routes/dictation.js +6 -1
- package/dist-server/server/system-prompt.js +1 -1
- package/dist-server/server/text-actions.js +25 -0
- package/dist-server/shared/credential-request.js +15 -6
- package/dist-server/shared/engine-platforms.js +19 -0
- package/dist-server/vps-container-mcp.js +5 -0
- package/package.json +1 -1
- package/dist/assets/channel-Br57lm8F.js +0 -1
- package/dist/assets/index-B2fJMh8N.css +0 -1
- package/dist/assets/swimlanesDiagram-TC7HE7FX-BSe9TZ6t.js +0 -8
- package/dist-server/connector-proxy.js +0 -205
- package/dist-server/server/composio.js +0 -1051
- package/dist-server/server/connector-proxy.js +0 -249
- package/dist-server/server/mcp-public-registry.js +0 -325
- package/dist-server/shared/connector-availability.js +0 -12
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{c as r,s as e}from"./flowDiagram-KWPJA3E3-4Dgg4I8f.js";import{_ as a}from"./mermaid.core-BWK_Ui3n.js";import"./chunk-5VM5RSS4-DjXxom_0.js";import"./chunk-XXDRQBXY-s1a4nKQE.js";import"./chunk-WEXAMYUT-BhAVbfJe.js";import"./chunk-GWA4HPMP-CQ4Kadr-.js";import"./channel-Br57lm8F.js";import"./index-fHtcwzVK.js";var o=a(t=>`${e(t)}
|
|
2
|
-
.swimlane.cluster:not([data-color-id]) rect {
|
|
3
|
-
stroke: ${t.clusterBorder} !important;
|
|
4
|
-
}
|
|
5
|
-
[data-look="neo"].cluster rect {
|
|
6
|
-
filter: none;
|
|
7
|
-
}
|
|
8
|
-
`,"getStyles"),s=o,u=r({styles:s});export{u as diagram};
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
// server/connector-proxy.ts
|
|
2
|
-
import readline from "node:readline";
|
|
3
|
-
import { randomUUID } from "node:crypto";
|
|
4
|
-
var UPSTREAM = process.env.OMB_CONNECTOR_UPSTREAM_URL ?? "";
|
|
5
|
-
var HARNESS = process.env.OMB_HARNESS_URL ?? "http://127.0.0.1:8799";
|
|
6
|
-
var BOT_ID = process.env.OMB_BOT_ID ?? "";
|
|
7
|
-
var THREAD_ID = process.env.OMB_THREAD_ID ?? "";
|
|
8
|
-
var TOKEN = process.env.OMB_CONNECTOR_TOKEN ?? process.env.OMB_COMMS_TOKEN ?? "";
|
|
9
|
-
var MAX_RESPONSE_BYTES = 20 * 1024 * 1024;
|
|
10
|
-
var INITIALIZE_RELAY_TIMEOUT_MS = 1e3;
|
|
11
|
-
var RELAY_TIMEOUT_MS = 10 * 6e4;
|
|
12
|
-
function parsedHeaders() {
|
|
13
|
-
try {
|
|
14
|
-
const value = JSON.parse(process.env.OMB_CONNECTOR_UPSTREAM_HEADERS ?? "{}");
|
|
15
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) return {};
|
|
16
|
-
return Object.fromEntries(
|
|
17
|
-
Object.entries(value).filter((entry) => typeof entry[1] === "string")
|
|
18
|
-
);
|
|
19
|
-
} catch {
|
|
20
|
-
return {};
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
var upstreamHeaders = parsedHeaders();
|
|
24
|
-
var upstreamSessionId = "";
|
|
25
|
-
var send = (message) => process.stdout.write(`${JSON.stringify(message)}
|
|
26
|
-
`);
|
|
27
|
-
function textResult(id, text, isError = false) {
|
|
28
|
-
return { jsonrpc: "2.0", id, result: { content: [{ type: "text", text }], ...isError ? { isError: true } : {} } };
|
|
29
|
-
}
|
|
30
|
-
function jsonRpcError(id, message) {
|
|
31
|
-
return { jsonrpc: "2.0", id, error: { code: -32e3, message } };
|
|
32
|
-
}
|
|
33
|
-
function initializeResult(id, protocolVersion) {
|
|
34
|
-
return {
|
|
35
|
-
jsonrpc: "2.0",
|
|
36
|
-
id,
|
|
37
|
-
result: {
|
|
38
|
-
protocolVersion: typeof protocolVersion === "string" && protocolVersion ? protocolVersion : "2024-11-05",
|
|
39
|
-
capabilities: { tools: {} },
|
|
40
|
-
serverInfo: { name: "openmausbot-connectors", version: "1" }
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
async function readBounded(response) {
|
|
45
|
-
const declared = Number(response.headers.get("content-length") ?? "0");
|
|
46
|
-
if (declared > MAX_RESPONSE_BYTES) throw new Error("connector response exceeded 20 MB");
|
|
47
|
-
if (!response.body) return "";
|
|
48
|
-
const reader = response.body.getReader();
|
|
49
|
-
const decoder = new TextDecoder();
|
|
50
|
-
let size = 0;
|
|
51
|
-
let text = "";
|
|
52
|
-
for (; ; ) {
|
|
53
|
-
const { done, value } = await reader.read();
|
|
54
|
-
if (done) break;
|
|
55
|
-
size += value.byteLength;
|
|
56
|
-
if (size > MAX_RESPONSE_BYTES) {
|
|
57
|
-
await reader.cancel();
|
|
58
|
-
throw new Error("connector response exceeded 20 MB");
|
|
59
|
-
}
|
|
60
|
-
text += decoder.decode(value, { stream: true });
|
|
61
|
-
}
|
|
62
|
-
return text + decoder.decode();
|
|
63
|
-
}
|
|
64
|
-
function parseUpstream(text, id) {
|
|
65
|
-
const trimmed = text.trim();
|
|
66
|
-
if (!trimmed) return null;
|
|
67
|
-
if (trimmed.startsWith("{")) return JSON.parse(trimmed);
|
|
68
|
-
const frames = trimmed.split(/\r?\n/).filter((line) => line.startsWith("data:")).map((line) => line.slice(5).trim()).filter((line) => line && line !== "[DONE]").flatMap((line) => {
|
|
69
|
-
try {
|
|
70
|
-
return [JSON.parse(line)];
|
|
71
|
-
} catch {
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
return frames.findLast((frame) => frame.id === id) ?? frames.at(-1) ?? null;
|
|
76
|
-
}
|
|
77
|
-
async function relay(message, timeoutMs = RELAY_TIMEOUT_MS) {
|
|
78
|
-
if (!UPSTREAM) throw new Error("connected apps are unavailable");
|
|
79
|
-
const response = await fetch(UPSTREAM, {
|
|
80
|
-
method: "POST",
|
|
81
|
-
headers: {
|
|
82
|
-
"content-type": "application/json",
|
|
83
|
-
accept: "application/json, text/event-stream",
|
|
84
|
-
...upstreamHeaders,
|
|
85
|
-
...upstreamSessionId ? { "mcp-session-id": upstreamSessionId } : {}
|
|
86
|
-
},
|
|
87
|
-
body: JSON.stringify(message),
|
|
88
|
-
signal: AbortSignal.timeout(timeoutMs)
|
|
89
|
-
});
|
|
90
|
-
const nextSession = response.headers.get("mcp-session-id");
|
|
91
|
-
if (nextSession) upstreamSessionId = nextSession;
|
|
92
|
-
if (!response.ok) throw new Error(`connector service returned HTTP ${response.status}`);
|
|
93
|
-
return parseUpstream(await readBounded(response), message.id);
|
|
94
|
-
}
|
|
95
|
-
function connectorAdds(args) {
|
|
96
|
-
if (!args || typeof args !== "object" || Array.isArray(args)) return [];
|
|
97
|
-
const toolkits = args.toolkits;
|
|
98
|
-
if (!Array.isArray(toolkits)) return [];
|
|
99
|
-
const seen = /* @__PURE__ */ new Set();
|
|
100
|
-
const requests = [];
|
|
101
|
-
for (const item of toolkits) {
|
|
102
|
-
if (typeof item === "string") {
|
|
103
|
-
const slug2 = item.trim().toLowerCase();
|
|
104
|
-
const key2 = JSON.stringify([slug2, ""]);
|
|
105
|
-
if (!seen.has(key2)) {
|
|
106
|
-
seen.add(key2);
|
|
107
|
-
requests.push({ slug: slug2 });
|
|
108
|
-
}
|
|
109
|
-
continue;
|
|
110
|
-
}
|
|
111
|
-
if (!item || typeof item !== "object" || Array.isArray(item)) continue;
|
|
112
|
-
const row = item;
|
|
113
|
-
const action = String(row.action ?? "add").toLowerCase();
|
|
114
|
-
if (!["add", "connect", "initiate"].includes(action)) continue;
|
|
115
|
-
const slug = typeof row.toolkit === "string" ? row.toolkit : row.name;
|
|
116
|
-
if (typeof slug !== "string") continue;
|
|
117
|
-
const normalized = slug.trim().toLowerCase();
|
|
118
|
-
const alias = (typeof row.alias === "string" ? row.alias : typeof row.account === "string" ? row.account : "").trim();
|
|
119
|
-
const key = JSON.stringify([normalized, alias.toLowerCase()]);
|
|
120
|
-
if (seen.has(key)) continue;
|
|
121
|
-
seen.add(key);
|
|
122
|
-
requests.push({ slug: normalized, ...alias ? { alias } : {} });
|
|
123
|
-
}
|
|
124
|
-
return requests;
|
|
125
|
-
}
|
|
126
|
-
async function showConnectorCards(items) {
|
|
127
|
-
const response = await fetch(`${HARNESS}/api/internal/connectors/request`, {
|
|
128
|
-
method: "POST",
|
|
129
|
-
headers: { "content-type": "application/json", authorization: `Bearer ${TOKEN}` },
|
|
130
|
-
body: JSON.stringify({ botId: BOT_ID, threadId: THREAD_ID, items, resumeKey: randomUUID() }),
|
|
131
|
-
signal: AbortSignal.timeout(3e4)
|
|
132
|
-
});
|
|
133
|
-
if (!response.ok) {
|
|
134
|
-
const body = await response.json().catch(() => ({}));
|
|
135
|
-
throw new Error(String(body.error ?? `could not show connection card (HTTP ${response.status})`));
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
async function handle(message) {
|
|
139
|
-
const id = message.id;
|
|
140
|
-
const method = String(message.method ?? "");
|
|
141
|
-
if (method === "notifications/initialized" || method === "initialized") {
|
|
142
|
-
if (UPSTREAM) void relay(message).catch(() => {
|
|
143
|
-
});
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
if (method === "initialize") {
|
|
147
|
-
if (UPSTREAM) {
|
|
148
|
-
try {
|
|
149
|
-
await relay(message, INITIALIZE_RELAY_TIMEOUT_MS);
|
|
150
|
-
} catch {
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
if (id !== void 0) {
|
|
154
|
-
const params = message.params ?? {};
|
|
155
|
-
send(initializeResult(id, params.protocolVersion));
|
|
156
|
-
}
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
if (method === "tools/call") {
|
|
160
|
-
const params = message.params ?? {};
|
|
161
|
-
const name = String(params.name ?? "");
|
|
162
|
-
const requests = /MANAGE_CONNECTIONS$/i.test(name) ? connectorAdds(params.arguments) : [];
|
|
163
|
-
if (requests.length) {
|
|
164
|
-
await showConnectorCards(requests);
|
|
165
|
-
const labels = requests.map((r) => r.alias ? `${r.slug} (${r.alias})` : r.slug).join(", ");
|
|
166
|
-
send(textResult(
|
|
167
|
-
id,
|
|
168
|
-
`Atomic showed the user a secure connection card for ${labels}. End this turn now. The app will continue the task automatically after the connection finishes.`
|
|
169
|
-
));
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
if (/WAIT_FOR_CONNECTIONS$/i.test(name)) {
|
|
173
|
-
send(textResult(id, "Atomic is handling connection completion and will continue the task automatically."));
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
try {
|
|
178
|
-
const response = await relay(message);
|
|
179
|
-
if (response && id !== void 0) send(response);
|
|
180
|
-
} catch (error) {
|
|
181
|
-
if (id === void 0) return;
|
|
182
|
-
const messageText = error instanceof Error ? error.message : String(error);
|
|
183
|
-
if (method === "tools/call") send(textResult(id, messageText, true));
|
|
184
|
-
else send(jsonRpcError(id, messageText));
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
var input = readline.createInterface({ input: process.stdin, terminal: false });
|
|
188
|
-
input.on("line", (line) => {
|
|
189
|
-
const trimmed = line.trim();
|
|
190
|
-
if (!trimmed) return;
|
|
191
|
-
let message;
|
|
192
|
-
try {
|
|
193
|
-
message = JSON.parse(trimmed);
|
|
194
|
-
} catch {
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
void handle(message).catch((error) => {
|
|
198
|
-
if (message.id === void 0) return;
|
|
199
|
-
const method = String(message.method ?? "");
|
|
200
|
-
const messageText = error instanceof Error ? error.message : String(error);
|
|
201
|
-
if (method === "tools/call") send(textResult(message.id, messageText, true));
|
|
202
|
-
else send(jsonRpcError(message.id, messageText));
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
input.on("close", () => process.exit(0));
|