@0xmaxma/claude-gateway 2.0.4 → 2.0.6

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 (276) hide show
  1. package/README.md +10 -1
  2. package/dist/agent/builtin-commands.d.ts +1 -1
  3. package/dist/agent/builtin-commands.d.ts.map +1 -1
  4. package/dist/agent/builtin-commands.js +3 -2
  5. package/dist/agent/builtin-commands.js.map +1 -1
  6. package/dist/agent/runner.d.ts +123 -9
  7. package/dist/agent/runner.d.ts.map +1 -1
  8. package/dist/agent/runner.js +215 -182
  9. package/dist/agent/runner.js.map +1 -1
  10. package/dist/agent/session-compaction-scheduler.d.ts +22 -0
  11. package/dist/agent/session-compaction-scheduler.d.ts.map +1 -0
  12. package/dist/agent/session-compaction-scheduler.js +40 -0
  13. package/dist/agent/session-compaction-scheduler.js.map +1 -0
  14. package/dist/agent/skill-learning/index.d.ts.map +1 -1
  15. package/dist/agent/skill-learning/index.js +27 -8
  16. package/dist/agent/skill-learning/index.js.map +1 -1
  17. package/dist/agent/skill-learning/reviewer.d.ts +3 -1
  18. package/dist/agent/skill-learning/reviewer.d.ts.map +1 -1
  19. package/dist/agent/skill-learning/reviewer.js +6 -2
  20. package/dist/agent/skill-learning/reviewer.js.map +1 -1
  21. package/dist/agent/turn-stream.d.ts +3 -1
  22. package/dist/agent/turn-stream.d.ts.map +1 -1
  23. package/dist/agent/turn-stream.js +8 -4
  24. package/dist/agent/turn-stream.js.map +1 -1
  25. package/dist/api/gateway-router.d.ts +2 -0
  26. package/dist/api/gateway-router.d.ts.map +1 -1
  27. package/dist/api/gateway-router.js +323 -16
  28. package/dist/api/gateway-router.js.map +1 -1
  29. package/dist/api/memory-activity.d.ts +18 -0
  30. package/dist/api/memory-activity.d.ts.map +1 -0
  31. package/dist/api/memory-activity.js +97 -0
  32. package/dist/api/memory-activity.js.map +1 -0
  33. package/dist/api/router.js +11 -11
  34. package/dist/api/router.js.map +1 -1
  35. package/dist/api/slack-webhook-router.js +1 -1
  36. package/dist/api/slack-webhook-router.js.map +1 -1
  37. package/dist/api/voice-router.d.ts +1 -0
  38. package/dist/api/voice-router.d.ts.map +1 -1
  39. package/dist/api/voice-router.js +129 -7
  40. package/dist/api/voice-router.js.map +1 -1
  41. package/dist/config/claude-settings.d.ts +14 -0
  42. package/dist/config/claude-settings.d.ts.map +1 -1
  43. package/dist/config/claude-settings.js +20 -0
  44. package/dist/config/claude-settings.js.map +1 -1
  45. package/dist/orchestration/agent-cli-session.d.ts +46 -0
  46. package/dist/orchestration/agent-cli-session.d.ts.map +1 -0
  47. package/dist/orchestration/agent-cli-session.js +121 -0
  48. package/dist/orchestration/agent-cli-session.js.map +1 -0
  49. package/dist/orchestration/agent-tool-schemas.d.ts +6 -0
  50. package/dist/orchestration/agent-tool-schemas.d.ts.map +1 -0
  51. package/dist/orchestration/agent-tool-schemas.js +23 -0
  52. package/dist/orchestration/agent-tool-schemas.js.map +1 -0
  53. package/dist/orchestration/bridge.d.ts +6 -3
  54. package/dist/orchestration/bridge.d.ts.map +1 -1
  55. package/dist/orchestration/bridge.js +31 -14
  56. package/dist/orchestration/bridge.js.map +1 -1
  57. package/dist/orchestration/browser-voice.d.ts +14 -0
  58. package/dist/orchestration/browser-voice.d.ts.map +1 -0
  59. package/dist/orchestration/browser-voice.js +30 -0
  60. package/dist/orchestration/browser-voice.js.map +1 -0
  61. package/dist/orchestration/compact-measurements.d.ts +21 -0
  62. package/dist/orchestration/compact-measurements.d.ts.map +1 -0
  63. package/dist/orchestration/compact-measurements.js +62 -0
  64. package/dist/orchestration/compact-measurements.js.map +1 -0
  65. package/dist/orchestration/config.d.ts +4 -0
  66. package/dist/orchestration/config.d.ts.map +1 -1
  67. package/dist/orchestration/config.js +1 -1
  68. package/dist/orchestration/config.js.map +1 -1
  69. package/dist/orchestration/context-delivery.d.ts +32 -0
  70. package/dist/orchestration/context-delivery.d.ts.map +1 -0
  71. package/dist/orchestration/context-delivery.js +101 -0
  72. package/dist/orchestration/context-delivery.js.map +1 -0
  73. package/dist/orchestration/context-footprint.d.ts +14 -0
  74. package/dist/orchestration/context-footprint.d.ts.map +1 -0
  75. package/dist/orchestration/context-footprint.js +57 -0
  76. package/dist/orchestration/context-footprint.js.map +1 -0
  77. package/dist/orchestration/conversation-intake.d.ts +10 -6
  78. package/dist/orchestration/conversation-intake.d.ts.map +1 -1
  79. package/dist/orchestration/conversation-intake.js +22 -8
  80. package/dist/orchestration/conversation-intake.js.map +1 -1
  81. package/dist/orchestration/dashboard-charts.d.ts +32 -0
  82. package/dist/orchestration/dashboard-charts.d.ts.map +1 -0
  83. package/dist/orchestration/dashboard-charts.js +77 -0
  84. package/dist/orchestration/dashboard-charts.js.map +1 -0
  85. package/dist/orchestration/dashboard-reader-worker.d.ts +2 -0
  86. package/dist/orchestration/dashboard-reader-worker.d.ts.map +1 -0
  87. package/dist/orchestration/dashboard-reader-worker.js +173 -0
  88. package/dist/orchestration/dashboard-reader-worker.js.map +1 -0
  89. package/dist/orchestration/dashboard-reader.d.ts +15 -0
  90. package/dist/orchestration/dashboard-reader.d.ts.map +1 -0
  91. package/dist/orchestration/dashboard-reader.js +87 -0
  92. package/dist/orchestration/dashboard-reader.js.map +1 -0
  93. package/dist/orchestration/decision-context.d.ts +15 -0
  94. package/dist/orchestration/decision-context.d.ts.map +1 -0
  95. package/dist/orchestration/decision-context.js +57 -0
  96. package/dist/orchestration/decision-context.js.map +1 -0
  97. package/dist/orchestration/display-stream.d.ts +21 -2
  98. package/dist/orchestration/display-stream.d.ts.map +1 -1
  99. package/dist/orchestration/display-stream.js +61 -8
  100. package/dist/orchestration/display-stream.js.map +1 -1
  101. package/dist/orchestration/inference-errors.d.ts.map +1 -1
  102. package/dist/orchestration/inference-errors.js +19 -21
  103. package/dist/orchestration/inference-errors.js.map +1 -1
  104. package/dist/orchestration/mutation-recovery.d.ts +13 -0
  105. package/dist/orchestration/mutation-recovery.d.ts.map +1 -0
  106. package/dist/orchestration/mutation-recovery.js +49 -0
  107. package/dist/orchestration/mutation-recovery.js.map +1 -0
  108. package/dist/orchestration/native-compact.d.ts +8 -0
  109. package/dist/orchestration/native-compact.d.ts.map +1 -0
  110. package/dist/orchestration/native-compact.js +33 -0
  111. package/dist/orchestration/native-compact.js.map +1 -0
  112. package/dist/orchestration/notification-mailbox.d.ts +3 -1
  113. package/dist/orchestration/notification-mailbox.d.ts.map +1 -1
  114. package/dist/orchestration/notification-mailbox.js +4 -2
  115. package/dist/orchestration/notification-mailbox.js.map +1 -1
  116. package/dist/orchestration/process-turn.d.ts +16 -2
  117. package/dist/orchestration/process-turn.d.ts.map +1 -1
  118. package/dist/orchestration/process-turn.js +78 -14
  119. package/dist/orchestration/process-turn.js.map +1 -1
  120. package/dist/orchestration/progress-review.d.ts +8 -18
  121. package/dist/orchestration/progress-review.d.ts.map +1 -1
  122. package/dist/orchestration/progress-review.js +12 -14
  123. package/dist/orchestration/progress-review.js.map +1 -1
  124. package/dist/orchestration/provider-message.d.ts +7 -0
  125. package/dist/orchestration/provider-message.d.ts.map +1 -0
  126. package/dist/orchestration/provider-message.js +63 -0
  127. package/dist/orchestration/provider-message.js.map +1 -0
  128. package/dist/orchestration/response-errors.d.ts +6 -0
  129. package/dist/orchestration/response-errors.d.ts.map +1 -0
  130. package/dist/orchestration/response-errors.js +88 -0
  131. package/dist/orchestration/response-errors.js.map +1 -0
  132. package/dist/orchestration/response-schema.d.ts +33 -0
  133. package/dist/orchestration/response-schema.d.ts.map +1 -0
  134. package/dist/orchestration/response-schema.js +61 -0
  135. package/dist/orchestration/response-schema.js.map +1 -0
  136. package/dist/orchestration/runtime.d.ts +79 -0
  137. package/dist/orchestration/runtime.d.ts.map +1 -1
  138. package/dist/orchestration/runtime.js +415 -68
  139. package/dist/orchestration/runtime.js.map +1 -1
  140. package/dist/orchestration/session-compaction.d.ts +59 -0
  141. package/dist/orchestration/session-compaction.d.ts.map +1 -0
  142. package/dist/orchestration/session-compaction.js +212 -0
  143. package/dist/orchestration/session-compaction.js.map +1 -0
  144. package/dist/orchestration/skills.d.ts.map +1 -1
  145. package/dist/orchestration/skills.js +3 -2
  146. package/dist/orchestration/skills.js.map +1 -1
  147. package/dist/orchestration/source-policy.d.ts +1 -1
  148. package/dist/orchestration/source-policy.d.ts.map +1 -1
  149. package/dist/orchestration/source-policy.js +1 -1
  150. package/dist/orchestration/speech.d.ts +15 -17
  151. package/dist/orchestration/speech.d.ts.map +1 -1
  152. package/dist/orchestration/speech.js +90 -30
  153. package/dist/orchestration/speech.js.map +1 -1
  154. package/dist/orchestration/store.d.ts +2 -0
  155. package/dist/orchestration/store.d.ts.map +1 -1
  156. package/dist/orchestration/store.js +16 -1
  157. package/dist/orchestration/store.js.map +1 -1
  158. package/dist/orchestration/tasks/driver.d.ts.map +1 -1
  159. package/dist/orchestration/tasks/driver.js +8 -3
  160. package/dist/orchestration/tasks/driver.js.map +1 -1
  161. package/dist/orchestration/tasks/pool.d.ts.map +1 -1
  162. package/dist/orchestration/tasks/pool.js +8 -4
  163. package/dist/orchestration/tasks/pool.js.map +1 -1
  164. package/dist/orchestration/tasks/service.d.ts +48 -1
  165. package/dist/orchestration/tasks/service.d.ts.map +1 -1
  166. package/dist/orchestration/tasks/service.js +41 -17
  167. package/dist/orchestration/tasks/service.js.map +1 -1
  168. package/dist/orchestration/token-ledger.d.ts +132 -0
  169. package/dist/orchestration/token-ledger.d.ts.map +1 -0
  170. package/dist/orchestration/token-ledger.js +233 -0
  171. package/dist/orchestration/token-ledger.js.map +1 -0
  172. package/dist/orchestration/token-usage.d.ts +46 -0
  173. package/dist/orchestration/token-usage.d.ts.map +1 -0
  174. package/dist/orchestration/token-usage.js +102 -0
  175. package/dist/orchestration/token-usage.js.map +1 -0
  176. package/dist/orchestration/tool-activity.d.ts.map +1 -1
  177. package/dist/orchestration/tool-activity.js +5 -3
  178. package/dist/orchestration/tool-activity.js.map +1 -1
  179. package/dist/orchestration/tool-name.d.ts +10 -0
  180. package/dist/orchestration/tool-name.d.ts.map +1 -0
  181. package/dist/orchestration/tool-name.js +14 -0
  182. package/dist/orchestration/tool-name.js.map +1 -0
  183. package/dist/orchestration/transcript-checkpoint.d.ts +14 -0
  184. package/dist/orchestration/transcript-checkpoint.d.ts.map +1 -0
  185. package/dist/orchestration/transcript-checkpoint.js +83 -0
  186. package/dist/orchestration/transcript-checkpoint.js.map +1 -0
  187. package/dist/orchestration/unanswered-inputs.d.ts +6 -0
  188. package/dist/orchestration/unanswered-inputs.d.ts.map +1 -0
  189. package/dist/orchestration/unanswered-inputs.js +18 -0
  190. package/dist/orchestration/unanswered-inputs.js.map +1 -0
  191. package/dist/session/process.d.ts +10 -0
  192. package/dist/session/process.d.ts.map +1 -1
  193. package/dist/session/process.js +91 -9
  194. package/dist/session/process.js.map +1 -1
  195. package/dist/session/request-tool-capture.d.ts +31 -0
  196. package/dist/session/request-tool-capture.d.ts.map +1 -0
  197. package/dist/session/request-tool-capture.js +194 -0
  198. package/dist/session/request-tool-capture.js.map +1 -0
  199. package/dist/session/runtime-profile.d.ts +7 -3
  200. package/dist/session/runtime-profile.d.ts.map +1 -1
  201. package/dist/session/runtime-profile.js +3 -1
  202. package/dist/session/runtime-profile.js.map +1 -1
  203. package/dist/session/store.d.ts +7 -0
  204. package/dist/session/store.d.ts.map +1 -1
  205. package/dist/session/store.js +27 -0
  206. package/dist/session/store.js.map +1 -1
  207. package/dist/shell/tailer.d.ts +7 -5
  208. package/dist/shell/tailer.d.ts.map +1 -1
  209. package/dist/shell/tailer.js +6 -17
  210. package/dist/shell/tailer.js.map +1 -1
  211. package/dist/types.d.ts +3 -0
  212. package/dist/types.d.ts.map +1 -1
  213. package/dist/ui/cli-viewer-ui.js +1 -1
  214. package/dist/ui/dashboard-charts.d.ts +3 -0
  215. package/dist/ui/dashboard-charts.d.ts.map +1 -0
  216. package/dist/ui/dashboard-charts.js +130 -0
  217. package/dist/ui/dashboard-charts.js.map +1 -0
  218. package/dist/ui/dashboard-client.d.ts +3 -0
  219. package/dist/ui/dashboard-client.d.ts.map +1 -0
  220. package/dist/ui/dashboard-client.js +184 -0
  221. package/dist/ui/dashboard-client.js.map +1 -0
  222. package/dist/ui/dashboard-controls.d.ts +4 -0
  223. package/dist/ui/dashboard-controls.d.ts.map +1 -0
  224. package/dist/ui/dashboard-controls.js +27 -0
  225. package/dist/ui/dashboard-controls.js.map +1 -0
  226. package/dist/ui/dashboard-presentation.d.ts +12 -0
  227. package/dist/ui/dashboard-presentation.d.ts.map +1 -0
  228. package/dist/ui/dashboard-presentation.js +62 -0
  229. package/dist/ui/dashboard-presentation.js.map +1 -0
  230. package/dist/ui/dashboard-range.d.ts +5 -0
  231. package/dist/ui/dashboard-range.d.ts.map +1 -0
  232. package/dist/ui/dashboard-range.js +36 -0
  233. package/dist/ui/dashboard-range.js.map +1 -0
  234. package/dist/ui/dashboard-theme.d.ts +6 -0
  235. package/dist/ui/dashboard-theme.d.ts.map +1 -0
  236. package/dist/ui/dashboard-theme.js +562 -0
  237. package/dist/ui/dashboard-theme.js.map +1 -0
  238. package/dist/ui/memory-activity.d.ts +4 -0
  239. package/dist/ui/memory-activity.d.ts.map +1 -0
  240. package/dist/ui/memory-activity.js +115 -0
  241. package/dist/ui/memory-activity.js.map +1 -0
  242. package/dist/ui/token-report-client.d.ts +3 -0
  243. package/dist/ui/token-report-client.d.ts.map +1 -0
  244. package/dist/ui/token-report-client.js +34 -0
  245. package/dist/ui/token-report-client.js.map +1 -0
  246. package/dist/ui/token-report.d.ts +90 -0
  247. package/dist/ui/token-report.d.ts.map +1 -0
  248. package/dist/ui/token-report.js +203 -0
  249. package/dist/ui/token-report.js.map +1 -0
  250. package/dist/ui/web-ui.d.ts +1 -1
  251. package/dist/ui/web-ui.d.ts.map +1 -1
  252. package/dist/ui/web-ui.js +129 -409
  253. package/dist/ui/web-ui.js.map +1 -1
  254. package/dist/voice/replay.d.ts +8 -0
  255. package/dist/voice/replay.d.ts.map +1 -0
  256. package/dist/voice/replay.js +48 -0
  257. package/dist/voice/replay.js.map +1 -0
  258. package/dist/voice/session.d.ts +9 -0
  259. package/dist/voice/session.d.ts.map +1 -1
  260. package/dist/voice/session.js +72 -14
  261. package/dist/voice/session.js.map +1 -1
  262. package/mcp/lazy-connector.test.ts +58 -0
  263. package/mcp/lazy-connector.ts +67 -0
  264. package/mcp/lazy-tools.test.ts +152 -0
  265. package/mcp/lazy-tools.ts +41 -0
  266. package/mcp/server.ts +53 -34
  267. package/mcp/tools/discord/commands.ts +2 -0
  268. package/mcp/tools/tasks/module.ts +1 -12
  269. package/mcp/tools/telegram/receiver-server.ts +45 -31
  270. package/mcp/tools/telegram/session-browser.ts +10 -0
  271. package/package.json +2 -1
  272. package/resource/dashboard/OFL.txt +93 -0
  273. package/resource/dashboard/poppins-300.woff2 +0 -0
  274. package/resource/dashboard/poppins-400.woff2 +0 -0
  275. package/resource/dashboard/poppins-500.woff2 +0 -0
  276. package/resource/dashboard/poppins-600.woff2 +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"web-ui.js","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-ui.js","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { TtsProvider } from './types';
2
+ /** Bounded, shared synthesis for explicit replay requests, independent of a microphone lease. */
3
+ export declare class VoiceReplays {
4
+ private readonly pending;
5
+ generate(key: string, provider: TtsProvider, voiceId: string, text: string): Promise<Buffer>;
6
+ close(): void;
7
+ }
8
+ //# sourceMappingURL=replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/voice/replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAc,MAAM,SAAS,CAAC;AAGzD,iGAAiG;AACjG,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+E;IACvG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB5F,KAAK,IAAI,IAAI;CACd"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VoiceReplays = void 0;
4
+ const types_1 = require("./types");
5
+ const wav_1 = require("./wav");
6
+ /** Bounded, shared synthesis for explicit replay requests, independent of a microphone lease. */
7
+ class VoiceReplays {
8
+ constructor() {
9
+ this.pending = new Map();
10
+ }
11
+ generate(key, provider, voiceId, text) {
12
+ const existing = this.pending.get(key);
13
+ if (existing)
14
+ return existing.result;
15
+ if (this.pending.size >= 4)
16
+ return Promise.reject(new types_1.VoiceError('VOICE_REPLAY_BUSY'));
17
+ const controller = new AbortController();
18
+ const timer = setTimeout(() => controller.abort(), 60000);
19
+ const result = (async () => {
20
+ const chunks = [];
21
+ let size = 0, sequence = 0;
22
+ for await (const chunk of provider.synthesize({ text: (async function* () { yield text; })(), voiceId, outputFormat: types_1.PCM16, signal: controller.signal })) {
23
+ if (controller.signal.aborted)
24
+ throw new types_1.VoiceError('TTS_UNAVAILABLE');
25
+ if (chunk.chunkSeq !== sequence++ || chunk.format.encoding !== types_1.PCM16.encoding || chunk.format.sampleRate !== types_1.PCM16.sampleRate || chunk.format.channels !== 1 || chunk.bytes.length % 2)
26
+ throw new types_1.VoiceError('INVALID_AUDIO_CHUNK');
27
+ size += chunk.bytes.length;
28
+ if (size > 16 * 1024 * 1024 - 44) {
29
+ controller.abort();
30
+ throw new types_1.VoiceError('VOICE_REPLAY_TOO_LARGE');
31
+ }
32
+ chunks.push(Buffer.from(chunk.bytes));
33
+ }
34
+ if (!size || controller.signal.aborted)
35
+ throw new types_1.VoiceError('TTS_UNAVAILABLE');
36
+ return (0, wav_1.pcmToWav)(Buffer.concat(chunks));
37
+ })();
38
+ // A provider must not leave the HTTP request hanging if it ignores cancellation.
39
+ const aborted = new Promise((_, reject) => controller.signal.addEventListener('abort', () => reject(new types_1.VoiceError('TTS_UNAVAILABLE')), { once: true }));
40
+ const bounded = Promise.race([result, aborted]).finally(() => { clearTimeout(timer); this.pending.delete(key); });
41
+ this.pending.set(key, { result: bounded, controller });
42
+ return bounded;
43
+ }
44
+ close() { for (const job of this.pending.values())
45
+ job.controller.abort(); }
46
+ }
47
+ exports.VoiceReplays = VoiceReplays;
48
+ //# sourceMappingURL=replay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay.js","sourceRoot":"","sources":["../../src/voice/replay.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,11 @@ export declare class VoiceSession {
37
37
  private muted;
38
38
  private playingResponseId?;
39
39
  private interruption;
40
+ private pausedUntil;
40
41
  private playbackTrace?;
42
+ private readonly claimedSpeech;
43
+ private completedPlaybackEpoch?;
44
+ private muteQueue;
41
45
  private speechQueue;
42
46
  private silenceTimer?;
43
47
  private admissionTimer?;
@@ -60,11 +64,15 @@ export declare class VoiceSession {
60
64
  start(): Promise<void>;
61
65
  audio(frame: VoiceFrame): Promise<void>;
62
66
  speechStarted(epoch: number): void;
67
+ stopPlayback(epoch: number, requestId?: number): void;
68
+ pausePlayback(epoch: number, paused: boolean): void;
69
+ private clearPlayback;
63
70
  speechEnded(lastAudioSeq: number): void;
64
71
  commit(lastAudioSeq: number, flush?: boolean): Promise<void>;
65
72
  private commitTurn;
66
73
  private admit;
67
74
  private speakStream;
75
+ speechClaims(): string[];
68
76
  /** Only approved summaries from authenticated automatic task reports enter here. */
69
77
  notifyResult(result: {
70
78
  responseId: string;
@@ -78,6 +86,7 @@ export declare class VoiceSession {
78
86
  progress(epoch: number, sampleOffset: number): void;
79
87
  private recordPlayback;
80
88
  mute(muted: boolean, policy: 'discard' | 'commit', lastAudioSeq?: number): Promise<void>;
89
+ private applyMute;
81
90
  private speechUnavailable;
82
91
  private failStt;
83
92
  private error;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/voice/session.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAK7E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAc,WAAW,EAAqB,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,IAAI,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,mBAAmB;IAAG,eAAe,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAAE;AAC/L,qBAAa,YAAY;IAoCX,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAe,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAe,OAAO,CAAC,OAAO;IAC/F,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IA1C9B,QAAQ,CAAC,QAAQ,gBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,IAAI,CAAC,CAAmB;IAChC,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAC,CAAkF;IACxG,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,WAAW,CAAoD;IACvE,mFAAmF;IACnF,cAAc,IAAI,IAAI;IAKtB,OAAO,CAAC,iBAAiB;YAKX,YAAY;IAM1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;gBACF,GAAG,EAAE,WAAW,EAAmB,GAAG,EAAE,WAAW,EAAU,OAAO,EAAE,MAAM,EACtF,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,aAAa,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,UAAU,CAAC,IAAI,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,EACvM,YAAY,EAAE,MAAM,IAAI,EACxB,OAAO,GAAE,mBAA4H,EACrI,MAAM,CAAC,GAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,aAAA,EACrG,SAAS,CAAC,GAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,aAAA,EACvD,UAAU,CAAC,EAAE,mBAAmB,YAAA;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCtB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAYlC,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAKjC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAUlD,UAAU;YAwBV,KAAK;YAmBL,WAAW;IAiBzB,oFAAoF;IACpF,YAAY,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAU1H,OAAO,CAAC,aAAa;YAqBP,KAAK;IA8DnB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAInD,OAAO,CAAC,cAAc;IAChB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9F,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,KAAK;IACP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/voice/session.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,9 @@ class VoiceSession {
50
50
  this.speaking = false;
51
51
  this.muted = false;
52
52
  this.interruption = 0;
53
+ this.pausedUntil = 0;
54
+ this.claimedSpeech = new Set();
55
+ this.muteQueue = Promise.resolve();
53
56
  this.speechQueue = Promise.resolve();
54
57
  this.pendingText = [];
55
58
  this.responses = new Set();
@@ -117,14 +120,39 @@ class VoiceSession {
117
120
  clearTimeout(this.silenceTimer);
118
121
  clearTimeout(this.admissionTimer);
119
122
  this.speaking = true;
123
+ this.clearPlayback(epoch);
124
+ this.stopResponse();
125
+ }
126
+ stopPlayback(epoch, requestId) {
127
+ if (this.closed)
128
+ return;
129
+ if (!Number.isSafeInteger(epoch) || epoch < 0 || epoch >= 0xffffffff)
130
+ throw new types_1.VoiceError('INVALID_EPOCH');
131
+ if (requestId !== undefined && (!Number.isSafeInteger(requestId) || requestId < 1))
132
+ throw new types_1.VoiceError('INVALID_CONTROL');
133
+ // The browser may not have received our latest playback.start yet.
134
+ this.clearPlayback(Math.max(epoch, this.playback.epoch + 1));
135
+ this.client.control({ type: 'playback.stopped', request_id: requestId, epoch: this.playback.epoch, generation: this.playback.generation });
136
+ }
137
+ pausePlayback(epoch, paused) {
138
+ if (typeof paused !== 'boolean' || !Number.isSafeInteger(epoch))
139
+ throw new types_1.VoiceError('INVALID_CONTROL');
140
+ if (this.closed || epoch !== this.playback.epoch)
141
+ return;
142
+ // A paused recognizer is bounded by its utterance and finalization budgets.
143
+ // Repeated pause messages cannot extend that budget indefinitely.
144
+ if (!paused)
145
+ this.pausedUntil = 0;
146
+ else if (!this.pausedUntil)
147
+ this.pausedUntil = Date.now() + this.options.maxUtteranceMs + Math.max(this.options.finalizationTimeoutMs, this.stt.capabilities.finalizationTimeoutMs ?? 0) + 1000;
148
+ }
149
+ clearPlayback(epoch) {
150
+ this.pausedUntil = 0;
120
151
  this.interruption++;
121
- const previous = this.playback.epoch;
122
152
  this.recordPlayback('interrupted');
123
153
  this.playingResponseId = undefined;
124
154
  const current = this.playback.clear(epoch);
125
155
  this.client.control({ type: 'playback.clear', epoch: current, generation: this.playback.generation });
126
- if (current > previous)
127
- this.stopResponse();
128
156
  }
129
157
  speechEnded(lastAudioSeq) {
130
158
  if (!Number.isSafeInteger(lastAudioSeq) || lastAudioSeq < 0)
@@ -165,7 +193,8 @@ class VoiceSession {
165
193
  return;
166
194
  // Some providers deliver no partial words. A confirmed continuation still
167
195
  // supersedes the previous reply before this text is admitted. Tasks survive.
168
- if (this.responses.size) {
196
+ const playback = this.playback.snapshot();
197
+ if (this.responses.size || (this.playingResponseId && (this.completedPlaybackEpoch !== playback.epoch || playback.playedSamples < playback.generatedSamples))) {
169
198
  this.speechStarted(this.playback.epoch + 1);
170
199
  this.speaking = false;
171
200
  }
@@ -243,9 +272,10 @@ class VoiceSession {
243
272
  await iterator.return?.();
244
273
  }
245
274
  }
275
+ speechClaims() { return [...this.claimedSpeech]; }
246
276
  /** Only approved summaries from authenticated automatic task reports enter here. */
247
277
  notifyResult(result) {
248
- if (this.closed)
278
+ if (this.closed || this.claimedSpeech.has(result.responseId))
249
279
  return;
250
280
  if (!result.speechOnly)
251
281
  this.client.control({ type: 'response.text', response_id: result.responseId, request_id: result.requestId, text: result.text, final: true });
@@ -260,23 +290,34 @@ class VoiceSession {
260
290
  })(), result.responseId);
261
291
  }
262
292
  enqueueSpeech(text, responseId, interruption = this.interruption) {
293
+ if (responseId) {
294
+ if (this.claimedSpeech.has(responseId))
295
+ return Promise.resolve();
296
+ this.claimedSpeech.add(responseId);
297
+ }
263
298
  const trace = (0, diagnostics_1.voiceTrace)('tts', this.diagnostic, { responseId });
264
299
  trace.emit('speech_ready');
265
300
  const queued = this.speechQueue.then(async () => {
266
- if (this.closed || interruption !== this.interruption)
267
- return;
268
301
  while (!this.closed && interruption === this.interruption && (this.speaking || this.finalizing || this.pendingText.length))
269
302
  await new Promise(resolve => setTimeout(resolve, 10));
270
- if (this.closed || interruption !== this.interruption)
303
+ if (this.closed || interruption !== this.interruption) {
304
+ // This response never began playback. Let catch-up reserve it again;
305
+ // the interrupted response that actually played keeps its claim/receipt.
306
+ if (responseId)
307
+ this.claimedSpeech.delete(responseId);
271
308
  return;
309
+ }
272
310
  await this.speak(text, this.playback.epoch, responseId, trace);
273
311
  // Synthesis completion is not playback completion. Preserve the tail before
274
312
  // the next utterance clears the playback epoch.
275
- const epoch = this.playback.epoch, deadline = Date.now() + 10000;
313
+ const epoch = this.playback.epoch;
314
+ let deadline = Date.now() + 10000;
276
315
  while (!this.closed && interruption === this.interruption && epoch === this.playback.epoch) {
277
316
  const progress = this.playback.snapshot();
278
317
  if (progress.playedSamples >= progress.generatedSamples)
279
318
  break;
319
+ if (Date.now() < this.pausedUntil)
320
+ deadline = Date.now() + 10000;
280
321
  if (Date.now() > deadline) {
281
322
  this.error('CLIENT_TOO_SLOW');
282
323
  break;
@@ -293,6 +334,7 @@ class VoiceSession {
293
334
  if (this.speaking || expectedEpoch !== this.playback.epoch)
294
335
  return;
295
336
  const epoch = this.playback.clear(), segmentId = (0, crypto_1.randomUUID)();
337
+ this.pausedUntil = 0;
296
338
  this.playingResponseId = responseId;
297
339
  let voiceId = this.voiceId;
298
340
  if (!voiceId.trim()) {
@@ -338,10 +380,13 @@ class VoiceSession {
338
380
  const bytesPerFrame = Math.min(3200, Math.max(2, Math.floor(this.options.maxBufferedAudioMs * 16) * 2));
339
381
  for (let offset = 0; offset < chunk.bytes.length; offset += bytesPerFrame) {
340
382
  const bytes = chunk.bytes.subarray(offset, offset + bytesPerFrame);
341
- const deadline = Date.now() + 10000;
383
+ let deadline = Date.now() + 10000;
342
384
  while (!signal.aborted && epoch === this.playback.epoch) {
343
385
  const progress = this.playback.snapshot();
344
- if (progress.generatedSamples - progress.playedSamples + bytes.length / 2 <= this.options.maxBufferedAudioMs * 16 && this.client.bufferedBytes() <= this.options.maxBufferedAudioMs * 32)
386
+ const paused = Date.now() < this.pausedUntil;
387
+ if (paused)
388
+ deadline = Date.now() + 10000;
389
+ if (!paused && progress.generatedSamples - progress.playedSamples + bytes.length / 2 <= this.options.maxBufferedAudioMs * 16 && this.client.bufferedBytes() <= this.options.maxBufferedAudioMs * 32)
345
390
  break;
346
391
  if (Date.now() > deadline)
347
392
  throw new types_1.VoiceError('CLIENT_TOO_SLOW');
@@ -375,6 +420,7 @@ class VoiceSession {
375
420
  catch { /* Playback remains usable if storage is full. */ }
376
421
  }
377
422
  trace.emit('audio_sent_complete');
423
+ this.completedPlaybackEpoch = epoch;
378
424
  this.recordPlayback('streamed');
379
425
  this.client.control({ type: 'playback.end', response_id: responseId, epoch, generated_samples: this.playback.snapshot().generatedSamples });
380
426
  }
@@ -397,9 +443,21 @@ class VoiceSession {
397
443
  if (epoch === this.playback.epoch)
398
444
  this.recordPlayback('playback_progress');
399
445
  }
400
- recordPlayback(state) { if (this.playingResponseId)
401
- this.record?.(this.playingResponseId, this.playback.snapshot(), state); }
402
- async mute(muted, policy, lastAudioSeq) {
446
+ recordPlayback(state) {
447
+ const progress = this.playback.snapshot();
448
+ if (this.completedPlaybackEpoch === progress.epoch && progress.generatedSamples > 0 && progress.playedSamples >= progress.generatedSamples)
449
+ state = 'played';
450
+ if (this.playingResponseId)
451
+ this.record?.(this.playingResponseId, progress, state);
452
+ }
453
+ mute(muted, policy, lastAudioSeq) {
454
+ const operation = this.muteQueue.then(() => this.applyMute(muted, policy, lastAudioSeq));
455
+ this.muteQueue = operation.catch(() => { });
456
+ return operation;
457
+ }
458
+ async applyMute(muted, policy, lastAudioSeq) {
459
+ if (this.closed)
460
+ return;
403
461
  this.muted = muted;
404
462
  try {
405
463
  if (muted) {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/voice/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/voice/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import {test,expect} from 'bun:test';
2
+ import {mkdtempSync,writeFileSync,rmSync} from 'fs';
3
+ import {tmpdir} from 'os';
4
+ import {join} from 'path';
5
+ import {Client} from '@modelcontextprotocol/sdk/client/index.js';
6
+ import {StdioClientTransport} from '@modelcontextprotocol/sdk/client/stdio.js';
7
+
8
+ test('connector discovery defers schemas and preserves calls, rich results and errors',async()=>{
9
+ const dir=mkdtempSync(join(tmpdir(),'lazy-connector-test-'));
10
+ const fixture=join(dir,'upstream.ts');
11
+ writeFileSync(fixture,`
12
+ import {Server} from '${import.meta.dir}/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js';
13
+ import {StdioServerTransport} from '${import.meta.dir}/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js';
14
+ import {ListToolsRequestSchema,CallToolRequestSchema} from '${import.meta.dir}/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js';
15
+ const s=new Server({name:'fixture',version:'1'},{capabilities:{tools:{}}});
16
+ s.setRequestHandler(ListToolsRequestSchema,async r=>({tools:[{name:r.params?.cursor?'tool_search':'page_screenshot',description:'Capture browser image',inputSchema:{type:'object',properties:{tabId:{type:'number'}},required:['tabId']}}],...(!r.params?.cursor?{nextCursor:'second'}:{})}));
17
+ s.setRequestHandler(CallToolRequestSchema,async (r,extra)=>{if(r.params.arguments?.tabId===99)await new Promise(resolve=>extra.signal.addEventListener('abort',resolve,{once:true}));return r.params.arguments?.tabId===42?{content:[{type:'image',mimeType:'image/png',data:'aGVsbG8='}],structuredContent:{tabId:42}}:{isError:true,content:[{type:'text',text:'TAB_ACCESS_DENIED'}]};});
18
+ await s.connect(new StdioServerTransport());
19
+ `);
20
+ writeFileSync(join(dir,'config.json'),JSON.stringify({command:'bun',args:[fixture]}),{mode:0o600});
21
+ const c=new Client({name:'test',version:'1'});
22
+ try{
23
+ await c.connect(new StdioClientTransport({command:'bun',args:[join(import.meta.dir,'lazy-connector.ts'),join(dir,'config.json')],stderr:'pipe'}));
24
+ expect((await c.listTools()).tools.map(t=>t.name)).toEqual(['tool_search','tool_call']);
25
+ const search:any=await c.callTool({name:'tool_search',arguments:{name:'page_screenshot'}});
26
+ expect(JSON.parse(search.content[0].text).tools[0].inputSchema.required).toEqual(['tabId']);
27
+ const image:any=await c.callTool({name:'tool_call',arguments:{name:'page_screenshot',arguments:{tabId:42}}});
28
+ expect(image.content[0]).toEqual({type:'image',mimeType:'image/png',data:'aGVsbG8='});expect(image.structuredContent).toEqual({tabId:42});
29
+ const denied:any=await c.callTool({name:'tool_call',arguments:{name:'page_screenshot',arguments:{tabId:7}}});expect(denied.isError).toBe(true);expect(denied.content[0].text).toBe('TAB_ACCESS_DENIED');
30
+ const missing:any=await c.callTool({name:'tool_call',arguments:{name:'unknown',arguments:{}}});expect(missing.isError).toBe(true);
31
+ const abort=new AbortController();
32
+ const pending=c.callTool({name:'tool_call',arguments:{name:'page_screenshot',arguments:{tabId:99}}},undefined,{signal:abort.signal});
33
+ const timer=setTimeout(()=>abort.abort(),50);
34
+ try{await expect(pending).rejects.toThrow();}finally{clearTimeout(timer);}
35
+ const after:any=await c.callTool({name:'tool_call',arguments:{name:'page_screenshot',arguments:{tabId:42}}});expect(after.content[0].type).toBe('image');
36
+ const reserved:any=await c.callTool({name:'tool_search',arguments:{name:'tool_search'}});expect(JSON.parse(reserved.content[0].text).total).toBe(1);
37
+ }finally{await c.close();rmSync(dir,{recursive:true,force:true});}
38
+ },15000);
39
+
40
+ test('HTTP connector preserves authorization headers and original tool arguments',async()=>{
41
+ const {createServer}=await import('http');
42
+ const {Server}=await import('@modelcontextprotocol/sdk/server/index.js');
43
+ const {StreamableHTTPServerTransport}=await import('@modelcontextprotocol/sdk/server/streamableHttp.js');
44
+ const {ListToolsRequestSchema,CallToolRequestSchema}=await import('@modelcontextprotocol/sdk/types.js');
45
+ const upstream=new Server({name:'http-fixture',version:'1'},{capabilities:{tools:{}}});
46
+ upstream.setRequestHandler(ListToolsRequestSchema,async()=>({tools:[{name:'get_page',description:'Read page',inputSchema:{type:'object'}}]}));
47
+ upstream.setRequestHandler(CallToolRequestSchema,async req=>({content:[{type:'text',text:JSON.stringify(req.params.arguments)}]}));
48
+ const transport=new StreamableHTTPServerTransport({sessionIdGenerator:()=>crypto.randomUUID()});await upstream.connect(transport);
49
+ let authorized=0;const http=createServer((req,res)=>{if(req.headers.authorization!=='Bearer fixture-secret'){res.writeHead(401).end();return;}authorized++;void transport.handleRequest(req,res);});
50
+ await new Promise<void>(r=>http.listen(0,'127.0.0.1',r));
51
+ const dir=mkdtempSync(join(tmpdir(),'lazy-http-'));writeFileSync(join(dir,'config.json'),JSON.stringify({type:'http',url:`http://127.0.0.1:${(http.address() as any).port}/mcp`,headers:{Authorization:'Bearer fixture-secret'}}));
52
+ const client=new Client({name:'test',version:'1'});
53
+ try{
54
+ await client.connect(new StdioClientTransport({command:'bun',args:[join(import.meta.dir,'lazy-connector.ts'),join(dir,'config.json')],stderr:'pipe'}));
55
+ const search:any=await client.callTool({name:'tool_search',arguments:{name:'get_page'}});expect(JSON.parse(search.content[0].text).total).toBe(1);
56
+ const result:any=await client.callTool({name:'tool_call',arguments:{name:'get_page',arguments:{tab:42}}});expect(JSON.parse(result.content[0].text)).toEqual({tab:42});expect(authorized).toBeGreaterThan(1);
57
+ }finally{await client.close();await upstream.close();http.closeAllConnections();await new Promise<void>(r=>http.close(()=>r()));rmSync(dir,{recursive:true,force:true});}
58
+ },15000);
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env bun
2
+ /** A worker-local MCP adapter. Only discovery/call schemas enter the model;
3
+ * upstream authorization, arguments and rich results remain unchanged. */
4
+ import { readFileSync } from 'fs';
5
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
6
+ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
7
+ import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
8
+ import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
9
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
10
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
11
+ import { CallToolRequestSchema, ListToolsRequestSchema, ToolListChangedNotificationSchema } from '@modelcontextprotocol/sdk/types.js';
12
+ import { createLazyToolCatalog, LAZY_TOOL_DEFINITIONS } from './lazy-tools';
13
+
14
+ const config = JSON.parse(readFileSync(process.argv[2], 'utf8'));
15
+ const client = new Client({name:'gateway-lazy-connector',version:'1'});
16
+ const shutdown = new AbortController();
17
+ let connection: Promise<void> | undefined;
18
+ let catalog: ReturnType<typeof createLazyToolCatalog> | undefined;
19
+ let loading: Promise<ReturnType<typeof createLazyToolCatalog>> | undefined;
20
+ function connect(): Promise<void> {
21
+ if (!connection) connection = (async()=>{
22
+ const transport = config.command ? new StdioClientTransport({command:config.command,args:config.args,env:{...process.env,...config.env},cwd:config.cwd,stderr:'inherit'})
23
+ : config.type === 'sse' ? new SSEClientTransport(new URL(config.url),{requestInit:{headers:config.headers}})
24
+ : new StreamableHTTPClientTransport(new URL(config.url),{requestInit:{headers:config.headers}});
25
+ await client.connect(transport,{timeout:10000});
26
+ })().catch(async error=>{connection=undefined;await client.close().catch(()=>{});throw error;});
27
+ return connection;
28
+ }
29
+ client.setNotificationHandler(ToolListChangedNotificationSchema,async()=>{catalog=undefined;});
30
+ async function discover() {
31
+ if(catalog)return catalog;
32
+ if(!loading)loading=(async()=>{
33
+ await connect();
34
+ const tools:any[]=[];const cursors=new Set<string>();let cursor:string|undefined;let pages=0;let bytes=0;
35
+ do {
36
+ if(++pages>500)throw Error('Connector catalog pagination exceeded page limit');
37
+ const page=await client.listTools(cursor?{cursor}:{},{timeout:10000,signal:shutdown.signal});
38
+ const pageTools=page.tools.map(t=>({...t,description:t.description??''}));
39
+ bytes+=Buffer.byteLength(JSON.stringify(pageTools));
40
+ if(tools.length+pageTools.length>10000||bytes>8*1024*1024)throw Error('Connector catalog too large');
41
+ tools.push(...pageTools);
42
+ cursor=page.nextCursor;
43
+ if(cursor&&cursors.has(cursor))throw Error('Invalid catalog pagination');
44
+ if(cursor)cursors.add(cursor);
45
+ }while(cursor);
46
+ return catalog=createLazyToolCatalog(tools, false);
47
+ })().finally(()=>{loading=undefined;});
48
+ return loading;
49
+ }
50
+ const server = new Server({name:'gateway-lazy-connector',version:'1'},{capabilities:{tools:{}},instructions:'This connector supports on-demand tools. Call tool_search to discover capabilities and original argument schemas, then tool_call with the exact returned name and arguments. Search does not execute actions. All tools remain subject to the original connector permissions.'});
51
+ server.setRequestHandler(ListToolsRequestSchema,async()=>({tools:LAZY_TOOL_DEFINITIONS.map(t=>({...t,description:t.description.replaceAll('gateway','connector').replace(' Task reporting and memory retrieval remain directly available.','')}))}));
52
+ server.setRequestHandler(CallToolRequestSchema,async(req,extra)=>{
53
+ if(!['tool_search','tool_call'].includes(req.params.name))return {isError:true,content:[{type:'text',text:'Discover this connector with tool_search, then use tool_call.'}]};
54
+ try {
55
+ const tools=await discover();const args=req.params.arguments??{};
56
+ if(req.params.name==='tool_search'){
57
+ const result=tools.search(args);
58
+ if(!result.isError){const data=JSON.parse(result.content[0].text);data.instructions=client.getInstructions();result.content[0].text=JSON.stringify(data);}
59
+ return result;
60
+ }
61
+ return await tools.call(args,async(name,input)=>await client.callTool({name,arguments:input},undefined,{signal:AbortSignal.any([extra.signal,shutdown.signal]),timeout:600000,onprogress:progress=>{const token=req.params._meta?.progressToken;if(token!==undefined)void server.notification({method:'notifications/progress',params:{...progress,progressToken:token}}).catch(()=>{});}}) as any);
62
+ }catch(error){console.error('[gateway-lazy-connector] tool call failed:',error);return {isError:true,content:[{type:'text',text:shutdown.signal.aborted||extra.signal.aborted?'Connector call cancelled.':'Connector request failed. Check the connector connection and permissions. Do not repeat a mutation without checking whether it succeeded.'}]};}
63
+ });
64
+ await server.connect(new StdioServerTransport());
65
+ let closing=false;
66
+ async function close(){if(closing)return;closing=true;shutdown.abort();await client.close().catch(()=>{});await server.close().catch(()=>{});process.exit(0);}
67
+ process.stdin.on('end',close);process.stdin.on('close',close);process.on('SIGINT',close);process.on('SIGTERM',close);