grokbot-mcp 0.1.1 → 0.1.3

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/index.js CHANGED
@@ -1,12 +1,20 @@
1
1
  #!/usr/bin/env node
2
- import { createCommandRunner, GROKBOT_VERSION, } from "grokbot-core";
2
+ import { createCommandRunner, detectClient, GROKBOT_VERSION, usageEnabled, withUsageLog, } from "grokbot-core";
3
+ import { mcpClientName } from "./mcp-client-name.js";
3
4
  import { serve } from "./server.js";
4
5
  // Built on the first tools/call, so initialize and tools/list never read the Keychain.
5
6
  let runner;
6
7
  const lazyRunner = {
7
8
  run: (name, input, options) => {
8
- runner ??= createCommandRunner({
9
- defaultAgent: process.env.GROKBOT_AGENT,
9
+ runner ??= withUsageLog(createCommandRunner({ defaultAgent: process.env.GROKBOT_AGENT }), {
10
+ surface: "mcp",
11
+ version: GROKBOT_VERSION,
12
+ client: () => detectClient({
13
+ env: process.env,
14
+ isTTY: false,
15
+ mcpClientName: mcpClientName(),
16
+ }),
17
+ enabled: () => usageEnabled(process.env),
10
18
  });
11
19
  return runner.run(name, input, options);
12
20
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAEL,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,uFAAuF;AACvF,IAAI,MAAiC,CAAC;AACtC,MAAM,UAAU,GAAkB;IAChC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5B,MAAM,KAAK,mBAAmB,CAAC;YAC7B,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;SACxC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC;AAEF,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;AAE7E,GAAG,CAAC,IAAI,eAAe,uBAAuB,CAAC,CAAC;AAChD,MAAM,KAAK,CAAC;IACV,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,MAAM,EAAE,UAAU;IAClB,GAAG;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAEL,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,uFAAuF;AACvF,IAAI,MAAiC,CAAC;AACtC,MAAM,UAAU,GAAkB;IAChC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5B,MAAM,KAAK,YAAY,CACrB,mBAAmB,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,EAChE;YACE,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,GAAG,EAAE,CACX,YAAY,CAAC;gBACX,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,aAAa,EAAE;aAC/B,CAAC;YACJ,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;SACzC,CACF,CAAC;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC;AAEF,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;AAE7E,GAAG,CAAC,IAAI,eAAe,uBAAuB,CAAC,CAAC;AAChD,MAAM,KAAK,CAAC;IACV,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,MAAM,EAAE,UAAU;IAClB,GAAG;CACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function mcpClientName(): string | undefined;
2
+ /** Notes the client's name from initialize params or a request's `_meta`. */
3
+ export declare function noteMcpClient(params: Readonly<Record<string, unknown>>): void;
4
+ //# sourceMappingURL=mcp-client-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client-name.d.ts","sourceRoot":"","sources":["../src/mcp-client-name.ts"],"names":[],"mappings":"AAWA,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAElD;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAM7E"}
@@ -0,0 +1,20 @@
1
+ import { isJsonObject } from "./json-rpc.js";
2
+ /**
3
+ * The name the MCP client gave for itself: `clientInfo.name` from initialize, or the
4
+ * stateless era's `_meta` clientInfo. Kept in memory only, so the usage log can map it to
5
+ * a fixed label (usage-client.ts); the name itself is never written anywhere.
6
+ */
7
+ let name;
8
+ const CLIENT_INFO = "io.modelcontextprotocol/clientInfo";
9
+ export function mcpClientName() {
10
+ return name;
11
+ }
12
+ /** Notes the client's name from initialize params or a request's `_meta`. */
13
+ export function noteMcpClient(params) {
14
+ const meta = params._meta;
15
+ const info = params.clientInfo ?? (isJsonObject(meta) ? meta[CLIENT_INFO] : undefined);
16
+ const value = isJsonObject(info) ? info.name : undefined;
17
+ if (typeof value === "string" && value.trim() !== "")
18
+ name = value.trim();
19
+ }
20
+ //# sourceMappingURL=mcp-client-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client-name.js","sourceRoot":"","sources":["../src/mcp-client-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;GAIG;AACH,IAAI,IAAwB,CAAC;AAE7B,MAAM,WAAW,GAAG,oCAAoC,CAAC;AAEzD,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAAC,MAAyC;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,MAAM,IAAI,GACR,MAAM,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tools-dispatch.d.ts","sourceRoot":"","sources":["../src/mcp-tools-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAKzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAK7B,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,mBAAmB,CAMhE,CAAC;AA0CF,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,mBAAmB,CAyBjE,CAAC"}
1
+ {"version":3,"file":"mcp-tools-dispatch.d.ts","sourceRoot":"","sources":["../src/mcp-tools-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAKzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAY7B,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,mBAAmB,CAUhE,CAAC;AA8CF,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,mBAAmB,CA2BjE,CAAC"}
@@ -1,11 +1,20 @@
1
1
  import { isActive, } from "grokbot-core";
2
2
  import { plural, waitHint, } from "./mcp-tool-parts.js";
3
- /** Shorter than typical MCP client request timeouts, so ask returns its job id first. */
4
- const MCP_ASK_TIMEOUT_SECONDS = 45;
3
+ /**
4
+ * Well under the ~300 s at which MCP hosts kill a tool call (Hermes), so ask and wait
5
+ * return a still-running result with the job id first instead of dying mid-wait.
6
+ */
7
+ const MCP_WAIT_TIMEOUT_SECONDS = 45;
8
+ /** What a finished result means, shared by every tool that waits on a job. */
9
+ const OUTCOMES = '"done" means the bot\'s run for this message ended, not that the task is verified; "ambiguous" means one run answered this message together with another, and the result holds every reply of that run';
5
10
  export const DISPATCH_OVERRIDES = {
6
11
  ask: {
7
- note: `Waits ${MCP_ASK_TIMEOUT_SECONDS} s unless timeout is set; a pending result carries a job id, and grokbot_wait resumes it`,
8
- defaults: { timeout: MCP_ASK_TIMEOUT_SECONDS },
12
+ note: `Waits ${MCP_WAIT_TIMEOUT_SECONDS} s unless timeout is set; a still-running result carries a job id, and grokbot_wait resumes it. ${OUTCOMES}`,
13
+ defaults: { timeout: MCP_WAIT_TIMEOUT_SECONDS },
14
+ },
15
+ wait: {
16
+ note: `Waits ${MCP_WAIT_TIMEOUT_SECONDS} s unless timeout is set, to stay under MCP host time limits; a still-running result carries the job id, so call grokbot_wait again with it. ${OUTCOMES}`,
17
+ defaults: { timeout: MCP_WAIT_TIMEOUT_SECONDS },
9
18
  },
10
19
  interrupt: { destructive: true },
11
20
  };
@@ -13,8 +22,12 @@ function outcomeText(who, jobId, outcome) {
13
22
  switch (outcome.status) {
14
23
  case "done":
15
24
  return `${who} replied:\n${outcome.finalReply}`;
25
+ case "ambiguous":
26
+ return `${who} finished, but the reply is ambiguous: ${outcome.reason}. Every reply of that run, in order:\n${outcome.replyText}`;
16
27
  case "pending":
17
- return `${who} is still working (${outcome.reason}). Job ${jobId} is saved; ${waitHint(jobId)} to keep waiting.`;
28
+ return outcome.queued
29
+ ? `${outcome.reason}. Job ${jobId} is saved; ${waitHint(jobId)} to send it and keep waiting.`
30
+ : `${who} is still working (${outcome.reason}). Job ${jobId} is saved; ${waitHint(jobId)} to keep waiting.`;
18
31
  case "awaiting-approval":
19
32
  return `${who} is waiting for owner approval (${outcome.reason}). Approve it in the Grok Bot app, then ${waitHint(jobId)}.`;
20
33
  }
@@ -57,8 +70,10 @@ export const DISPATCH_SUMMARIES = {
57
70
  ...members.map(memberText),
58
71
  ].join("\n"),
59
72
  ask: ({ jobId, agent, outcome }) => outcomeText(agent.name, jobId, outcome),
60
- send: ({ jobId, agent }) => `Sent to ${agent.name}. Job ${jobId} is saved; ${waitHint(jobId)} for the reply.`,
61
- wait: ({ jobId, agentId, outcome }) => outcomeText(`Agent ${agentId}`, jobId, outcome),
73
+ send: ({ jobId, agent, queued }) => queued
74
+ ? `Queued for ${agent.name}: it is busy, so the message goes out once it is free. Job ${jobId} is saved; ${waitHint(jobId)} to send it and get the reply.`
75
+ : `Sent to ${agent.name}. Job ${jobId} is saved; ${waitHint(jobId)} for the reply.`,
76
+ wait: ({ jobId, agentId, agentName, outcome }) => outcomeText(agentName ?? `Agent ${agentId}`, jobId, outcome),
62
77
  tail: ({ agent, entries }) => [
63
78
  `${agent.name}, last ${plural(entries.length, "entry", "entries")}:`,
64
79
  ...entries.map((e) => `#${e.seq} ${entryText(e)}`),
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tools-dispatch.js","sourceRoot":"","sources":["../src/mcp-tools-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,GAIT,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,MAAM,EAEN,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAE7B,yFAAyF;AACzF,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAAsC;IACnE,GAAG,EAAE;QACH,IAAI,EAAE,SAAS,uBAAuB,0FAA0F;QAChI,QAAQ,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;KAC/C;IACD,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;CACjC,CAAC;AAEF,SAAS,WAAW,CAAC,GAAW,EAAE,KAAa,EAAE,OAAmB;IAClE,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,GAAG,GAAG,cAAc,OAAO,CAAC,UAAU,EAAE,CAAC;QAClD,KAAK,SAAS;YACZ,OAAO,GAAG,GAAG,sBAAsB,OAAO,CAAC,MAAM,UAAU,KAAK,cAAc,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC;QACnH,KAAK,mBAAmB;YACtB,OAAO,GAAG,GAAG,mCAAmC,OAAO,CAAC,MAAM,2CAA2C,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;IAChI,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAc;IAC/C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,KAAK,KAAK,CAAC,IAAI,qBAAqB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,KAAK,CAAC,IAAI,QAAQ,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO,KAAK,KAAK,CAAC,IAAI,YAAY,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,SAAS,CAAC,KAAsB;IACvC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,OAAO,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7F,KAAK,mBAAmB;YACtB,OAAO,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5F,uEAAuE;QACvE,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;gBAChC,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;gBACjC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;QAChE,KAAK,MAAM;YACT,OAAO,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClC,KAAK,MAAM;YACT,OAAO,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClC,KAAK,SAAS;YACZ,OAAO,WAAW,KAAK,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAuC;IACpE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACrB;QACE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG;QAC9C,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;KAC9D,CAAC,IAAI,CAAC,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACpB;QACE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG;QAC/C,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;KAC3B,CAAC,IAAI,CAAC,IAAI,CAAC;IACd,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;IAC3E,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CACzB,WAAW,KAAK,CAAC,IAAI,SAAS,KAAK,cAAc,QAAQ,CAAC,KAAK,CAAC,iBAAiB;IACnF,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CACpC,WAAW,CAAC,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC;IACjD,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAC3B;QACE,GAAG,KAAK,CAAC,IAAI,UAAU,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG;QACpE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC,IAAI,CAAC,IAAI,CAAC;IACd,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CACrC,YAAY;QACV,CAAC,CAAC,iCAAiC,KAAK,CAAC,IAAI,GAAG;QAChD,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,qBAAqB;CACzC,CAAC"}
1
+ {"version":3,"file":"mcp-tools-dispatch.js","sourceRoot":"","sources":["../src/mcp-tools-dispatch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,cAAc,CAAC;AAa9D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;KAAE,CAAC;IAChE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEhE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,cAAc,CAAC;AAc9D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;KAAE,CAAC;IAChE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmEhE"}
package/dist/server.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createInterface } from "node:readline";
2
2
  import { encodeResponse, INTERNAL_ERROR, isRequestId, methodNotFound, parseIncoming, } from "./json-rpc.js";
3
+ import { noteMcpClient } from "./mcp-client-name.js";
3
4
  import { eraHandlers } from "./mcp-era-handlers.js";
4
5
  import { requestEra } from "./mcp-era-request.js";
5
6
  /**
@@ -17,6 +18,7 @@ export async function serve(options) {
17
18
  };
18
19
  // An aborted request gets no response: the client cancelled it or hung up.
19
20
  async function respond(id, method, params) {
21
+ noteMcpClient(params);
20
22
  const route = requestEra(params);
21
23
  if ("error" in route)
22
24
  return send(id, { error: route.error });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EAEd,aAAa,GAEd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAWlD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAqB;IAC/C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,EAAoB,EAAE,OAAgB,EAAQ,EAAE;QAC5D,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,2EAA2E;IAC3E,KAAK,UAAU,OAAO,CACpB,EAAa,EACb,MAAc,EACd,MAAkB;QAElB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,OAAO,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC7B,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,GAAG,CAAC,GAAG,MAAM,IAAI,EAAE,YAAY,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,SAAS,MAAM,CAAC,MAAkB;QAChC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACrC,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC;YACvC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;YACzB,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,GAAG,CAAC,qBAAqB,SAAS,KAAK,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QACxE,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACpC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,SAAS;gBACZ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,cAAc;gBACjB,IAAI,OAAO,CAAC,MAAM,KAAK,yBAAyB,EAAE,CAAC;oBACjD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;gBACD,MAAM;YACR,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,MAAM,EAAE;QAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IAC/D,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grokbot-mcp",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "MCP server over grokbot-core for driving a GrokBot workforce from any MCP-compatible agent.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,7 +18,7 @@
18
18
  "!dist/fixtures"
19
19
  ],
20
20
  "dependencies": {
21
- "grokbot-core": "^0.1.1"
21
+ "grokbot-core": "^0.1.3"
22
22
  },
23
23
  "repository": {
24
24
  "type": "git",