@deadragdoll/tellymcp 0.0.9 → 0.0.11

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 (157) hide show
  1. package/.env.example.client +42 -50
  2. package/.env.example.gateway +49 -61
  3. package/CHANGELOG.md +3 -3
  4. package/README-ru.md +205 -384
  5. package/README.md +195 -1194
  6. package/TOOLS.md +294 -377
  7. package/VERSION.md +36 -10
  8. package/config/codex/plugins/telly-workflows/.codex-plugin/plugin.json +18 -0
  9. package/config/codex/plugins/telly-workflows/references/invariants.md +10 -0
  10. package/config/codex/plugins/telly-workflows/skills/telly-browser-screenshot/SKILL.md +27 -0
  11. package/config/codex/plugins/telly-workflows/skills/telly-collab-artifact/SKILL.md +22 -0
  12. package/config/codex/plugins/telly-workflows/skills/telly-human-telegram/SKILL.md +31 -0
  13. package/config/codex/plugins/telly-workflows/skills/telly-partner-note/SKILL.md +36 -0
  14. package/config/templates/env.both.template +40 -20
  15. package/config/templates/env.client.template +34 -18
  16. package/config/templates/env.gateway.template +38 -22
  17. package/dist/cli.js +322 -75
  18. package/dist/codexPluginInstaller.js +215 -0
  19. package/dist/lib/mixins/session.errors.js +34 -1
  20. package/dist/lib/pinoTargets.js +2 -2
  21. package/dist/moleculer.config.js +7 -5
  22. package/dist/services/features/telegram-mcp/approval.service.js +1 -1
  23. package/dist/services/features/telegram-mcp/browser.service.js +95 -2
  24. package/dist/services/features/telegram-mcp/collaboration.service.js +41 -4
  25. package/dist/services/features/telegram-mcp/ensuredb.service.js +145 -26
  26. package/dist/services/features/telegram-mcp/gateway-delivery.service.js +285 -103
  27. package/dist/services/features/telegram-mcp/gateway-rmq.service.js +3 -2
  28. package/dist/services/features/telegram-mcp/gateway-socket.service.js +905 -87
  29. package/dist/services/features/telegram-mcp/gateway.service.js +876 -81
  30. package/dist/services/features/telegram-mcp/mcp-http.service.js +9 -1
  31. package/dist/services/features/telegram-mcp/mcp-server.service.js +17 -26
  32. package/dist/services/features/telegram-mcp/notify.service.js +128 -2
  33. package/dist/services/features/telegram-mcp/runtime.service.js +27 -7
  34. package/dist/services/features/telegram-mcp/session-context.service.js +29 -2
  35. package/dist/services/features/telegram-mcp/src/app/bootstrap/runtime.js +133 -10
  36. package/dist/services/features/telegram-mcp/src/app/config/env.js +161 -51
  37. package/dist/services/features/telegram-mcp/src/app/http.js +375 -42
  38. package/dist/services/features/telegram-mcp/src/app/webapp/assets.js +386 -58
  39. package/dist/services/features/telegram-mcp/src/app/webapp/auth.js +3 -0
  40. package/dist/services/features/telegram-mcp/src/app/webapp/terminal.js +12 -0
  41. package/dist/services/features/telegram-mcp/src/entities/request/model/schema.js +116 -104
  42. package/dist/services/features/telegram-mcp/src/entities/xchange/model/types.js +2 -0
  43. package/dist/services/features/telegram-mcp/src/features/ask-user/model/askUserTelegram.js +1 -1
  44. package/dist/services/features/telegram-mcp/src/features/browser/model/browserScreenshotTool.js +1 -1
  45. package/dist/services/features/telegram-mcp/src/features/browser/model/browserService.js +249 -19
  46. package/dist/services/features/telegram-mcp/src/features/collaboration/model/gatewaySessionsService.js +71 -0
  47. package/dist/services/features/telegram-mcp/src/features/collaboration/model/listGatewaySessionsTool.js +33 -0
  48. package/dist/services/features/telegram-mcp/src/features/collaboration/model/localCollaborationBackend.js +93 -82
  49. package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerFileService.js +47 -5
  50. package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerFileTool.js +1 -1
  51. package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerNoteTool.js +1 -1
  52. package/dist/services/features/telegram-mcp/src/features/distributed-client/model/gatewayClientAccess.js +82 -0
  53. package/dist/services/features/telegram-mcp/src/features/distributed-client/model/gatewayCollaborationBackend.js +22 -14
  54. package/dist/services/features/telegram-mcp/src/features/distributed-gateway/model/gatewayHttpService.js +649 -75
  55. package/dist/services/features/telegram-mcp/src/features/distributed-gateway/model/remoteConsoleActionClient.js +76 -0
  56. package/dist/services/features/telegram-mcp/src/features/embedded-runtime/model/embeddedRuntimeBroker.js +92 -0
  57. package/dist/services/features/telegram-mcp/src/features/foreground-terminal/model/foregroundTerminalRuntime.js +192 -0
  58. package/dist/services/features/telegram-mcp/src/features/notify/model/notifyService.js +382 -3
  59. package/dist/services/features/telegram-mcp/src/features/notify/model/notifyTelegramTool.js +1 -1
  60. package/dist/services/features/telegram-mcp/src/features/notify/model/sendFileToTelegramTool.js +33 -0
  61. package/dist/services/features/telegram-mcp/src/features/session-context/model/clearSessionContextTool.js +1 -1
  62. package/dist/services/features/telegram-mcp/src/features/session-context/model/getSessionContextTool.js +1 -1
  63. package/dist/services/features/telegram-mcp/src/features/session-context/model/renameSessionTool.js +1 -1
  64. package/dist/services/features/telegram-mcp/src/features/session-context/model/sessionContextService.js +42 -200
  65. package/dist/services/features/telegram-mcp/src/features/session-context/model/setSessionContextTool.js +1 -1
  66. package/dist/services/features/telegram-mcp/src/features/terminal-buffer/model/terminalBufferService.js +96 -0
  67. package/dist/services/features/telegram-mcp/src/features/terminal-input/model/terminalInputService.js +97 -0
  68. package/dist/services/features/telegram-mcp/src/features/tools-sync/model/refreshToolsMarkdownService.js +107 -58
  69. package/dist/services/features/telegram-mcp/src/features/tools-sync/model/refreshToolsMarkdownTool.js +1 -1
  70. package/dist/services/features/telegram-mcp/src/features/xchange/model/getXchangeRecordTool.js +28 -0
  71. package/dist/services/features/telegram-mcp/src/features/xchange/model/listXchangeRecordsTool.js +28 -0
  72. package/dist/services/features/telegram-mcp/src/features/xchange/model/markXchangeRecordReadTool.js +28 -0
  73. package/dist/services/features/telegram-mcp/src/features/xchange/model/xchangeService.js +169 -0
  74. package/dist/services/features/telegram-mcp/src/processes/human-approval/model/orchestrator.js +5 -4
  75. package/dist/services/features/telegram-mcp/src/shared/i18n/index.js +46 -0
  76. package/dist/services/features/telegram-mcp/src/shared/i18n/resources/en.js +652 -0
  77. package/dist/services/features/telegram-mcp/src/shared/i18n/resources/ru.js +652 -0
  78. package/dist/services/features/telegram-mcp/src/shared/integrations/memory/processLocalSessionStore.js +27 -0
  79. package/dist/services/features/telegram-mcp/src/shared/integrations/object-storage/minioExchangeStore.js +11 -8
  80. package/dist/services/features/telegram-mcp/src/shared/integrations/redis/stateStore.js +51 -71
  81. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/proxyFetch.js +21 -22
  82. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transport.js +411 -6524
  83. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportAttachmentStore.js +93 -0
  84. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportBroadcastActions.js +385 -0
  85. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportConsoleRegistry.js +143 -0
  86. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportConstructorWiring.js +633 -0
  87. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportContent.js +84 -0
  88. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportContext.js +78 -0
  89. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportDocumentActions.js +36 -0
  90. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportEventActions.js +292 -0
  91. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportFileHandoffActions.js +352 -0
  92. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportFormatting.js +75 -0
  93. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportGatewayActions.js +44 -0
  94. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportLifecycleActions.js +161 -0
  95. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportLive.js +56 -0
  96. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportLiveActions.js +77 -0
  97. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuCallbacks.js +254 -0
  98. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuFactories.js +538 -0
  99. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuFingerprints.js +93 -0
  100. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuFlow.js +344 -0
  101. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuShell.js +62 -0
  102. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuState.js +408 -0
  103. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuText.js +216 -0
  104. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMessageFlow.js +452 -0
  105. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportOutputActions.js +189 -0
  106. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportPartnerActions.js +286 -0
  107. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportPayloadState.js +101 -0
  108. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectActions.js +463 -0
  109. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectEntryActions.js +202 -0
  110. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectEvents.js +99 -0
  111. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectMenus.js +138 -0
  112. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectState.js +308 -0
  113. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectView.js +426 -0
  114. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportRequestFlow.js +278 -0
  115. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportSessionActions.js +143 -0
  116. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportTerminalActions.js +468 -0
  117. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportTerminalRuntime.js +171 -0
  118. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportTypes.js +2 -0
  119. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportUtils.js +330 -0
  120. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportXchangeState.js +107 -0
  121. package/dist/services/features/telegram-mcp/src/shared/integrations/terminal/client.js +255 -0
  122. package/dist/services/features/telegram-mcp/src/shared/integrations/terminal/ptyRegistry.js +543 -0
  123. package/dist/services/features/telegram-mcp/src/shared/integrations/xchange/sqliteRecordStore.js +223 -0
  124. package/dist/services/features/telegram-mcp/src/shared/lib/gatewayScope.js +24 -0
  125. package/dist/services/features/telegram-mcp/src/shared/lib/logger/logger.js +6 -0
  126. package/dist/services/features/telegram-mcp/src/shared/lib/project-identity/projectIdentity.js +147 -76
  127. package/dist/services/features/telegram-mcp/src/shared/lib/telegramXchangeRecords.js +72 -0
  128. package/dist/services/features/telegram-mcp/src/shared/lib/terminalPromptDetection.js +237 -0
  129. package/dist/services/features/telegram-mcp/src/shared/lib/version/versionHandshake.js +129 -1
  130. package/dist/services/features/telegram-mcp/src/shared/lib/xchangeRecordHints.js +98 -0
  131. package/dist/services/features/telegram-mcp/standalone-http.service.js +13 -1
  132. package/dist/services/features/telegram-mcp/terminal-buffer.service.js +42 -0
  133. package/dist/services/features/telegram-mcp/terminal-input.service.js +41 -0
  134. package/dist/services/features/telegram-mcp/tools-sync.service.js +16 -2
  135. package/dist/services/features/telegram-mcp/xchange.service.js +123 -0
  136. package/docs/STANDALONE-ru.md +172 -0
  137. package/docs/STANDALONE.md +172 -0
  138. package/package.json +11 -5
  139. package/scripts/build-package-artifact.sh +27 -0
  140. package/scripts/deploy-gateway.sh +64 -0
  141. package/scripts/deploy-onebot-branch.sh +27 -0
  142. package/scripts/postinstall.js +11 -36
  143. package/STANDALONE-ru.md +0 -274
  144. package/STANDALONE.md +0 -274
  145. package/dist/services/features/telegram-mcp/inbox.service.js +0 -33
  146. package/dist/services/features/telegram-mcp/pair.service.js +0 -33
  147. package/dist/services/features/telegram-mcp/src/app/webapp/tmux.js +0 -10
  148. package/dist/services/features/telegram-mcp/src/features/inbox/model/deleteTelegramInboxMessageTool.js +0 -33
  149. package/dist/services/features/telegram-mcp/src/features/inbox/model/getTelegramInboxCountTool.js +0 -33
  150. package/dist/services/features/telegram-mcp/src/features/inbox/model/getTelegramInboxTool.js +0 -33
  151. package/dist/services/features/telegram-mcp/src/features/inbox/model/inboxService.js +0 -77
  152. package/dist/services/features/telegram-mcp/src/features/pair-session/model/clearSessionPairingTool.js +0 -33
  153. package/dist/services/features/telegram-mcp/src/features/pair-session/model/createSessionPairCodeTool.js +0 -33
  154. package/dist/services/features/telegram-mcp/src/features/pair-session/model/generatePairCode.js +0 -202
  155. package/dist/services/features/telegram-mcp/src/features/session-context/model/getTmuxTargetTool.js +0 -33
  156. package/dist/services/features/telegram-mcp/src/features/session-context/model/setTmuxTargetTool.js +0 -33
  157. package/dist/services/features/telegram-mcp/src/shared/integrations/tmux/client.js +0 -363
@@ -33,8 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.browserClearLogsOutputSchema = exports.browserClearLogsInputSchema = exports.browserNetworkFailuresOutputSchema = exports.browserNetworkFailuresInputSchema = exports.browserErrorsOutputSchema = exports.browserErrorsInputSchema = exports.browserConsoleOutputSchema = exports.browserConsoleInputSchema = exports.browserWaitForUrlOutputSchema = exports.browserWaitForUrlInputSchema = exports.browserWaitForOutputSchema = exports.browserWaitForInputSchema = exports.browserPressOutputSchema = exports.browserPressInputSchema = exports.browserFillOutputSchema = exports.browserFillInputSchema = exports.browserClickOutputSchema = exports.browserClickInputSchema = exports.browserReloadOutputSchema = exports.browserReloadInputSchema = exports.browserOpenOutputSchema = exports.browserOpenInputSchema = exports.getTmuxTargetOutputSchema = exports.getTmuxTargetInputSchema = exports.setTmuxTargetOutputSchema = exports.setTmuxTargetInputSchema = exports.clearSessionPairingOutputSchema = exports.clearSessionPairingInputSchema = exports.clearSessionContextOutputSchema = exports.clearSessionContextInputSchema = exports.getSessionContextOutputSchema = exports.getSessionContextInputSchema = exports.setSessionContextOutputSchema = exports.renameSessionOutputSchema = exports.renameSessionInputSchema = exports.setSessionContextInputSchema = exports.createSessionPairCodeOutputSchema = exports.createSessionPairCodeInputSchema = exports.deleteTelegramInboxMessageOutputSchema = exports.deleteTelegramInboxMessageInputSchema = exports.getTelegramInboxCountOutputSchema = exports.getTelegramInboxCountInputSchema = exports.getTelegramInboxOutputSchema = exports.getTelegramInboxInputSchema = exports.refreshToolsMarkdownOutputSchema = exports.refreshToolsMarkdownInputSchema = exports.notifyTelegramOutputSchema = exports.notifyTelegramInputSchema = exports.askUserTelegramOutputSchema = exports.askUserTelegramInputSchema = void 0;
37
- exports.sendPartnerNoteOutputSchema = exports.sendPartnerFileInputSchema = exports.sendPartnerNoteInputSchema = exports.browserCloseOutputSchema = exports.browserCloseInputSchema = exports.browserScreenshotOutputSchema = exports.browserScreenshotInputSchema = exports.browserComputedStyleOutputSchema = exports.browserComputedStyleInputSchema = exports.browserDomOutputSchema = exports.browserDomInputSchema = void 0;
36
+ exports.sendPartnerFileInputSchema = exports.sendPartnerNoteInputSchema = exports.browserCloseOutputSchema = exports.browserCloseInputSchema = exports.browserScreenshotOutputSchema = exports.browserScreenshotInputSchema = exports.browserComputedStyleOutputSchema = exports.browserComputedStyleInputSchema = exports.browserDomOutputSchema = exports.browserDomInputSchema = exports.browserClearLogsOutputSchema = exports.browserClearLogsInputSchema = exports.browserNetworkFailuresOutputSchema = exports.browserNetworkFailuresInputSchema = exports.browserErrorsOutputSchema = exports.browserErrorsInputSchema = exports.browserConsoleOutputSchema = exports.browserConsoleInputSchema = exports.browserWaitForUrlOutputSchema = exports.browserWaitForUrlInputSchema = exports.browserWaitForOutputSchema = exports.browserWaitForInputSchema = exports.browserPressOutputSchema = exports.browserPressInputSchema = exports.browserFillOutputSchema = exports.browserFillInputSchema = exports.browserClickOutputSchema = exports.browserClickInputSchema = exports.browserReloadOutputSchema = exports.browserReloadInputSchema = exports.browserOpenOutputSchema = exports.browserOpenInputSchema = exports.clearSessionContextOutputSchema = exports.clearSessionContextInputSchema = exports.getSessionContextOutputSchema = exports.getSessionContextInputSchema = exports.setSessionContextOutputSchema = exports.renameSessionOutputSchema = exports.renameSessionInputSchema = exports.setSessionContextInputSchema = exports.refreshToolsMarkdownOutputSchema = exports.refreshToolsMarkdownInputSchema = exports.listGatewaySessionsOutputSchema = exports.listGatewaySessionsInputSchema = exports.sendFileToTelegramOutputSchema = exports.sendFileToTelegramInputSchema = exports.notifyTelegramOutputSchema = exports.notifyTelegramInputSchema = exports.askUserTelegramOutputSchema = exports.askUserTelegramInputSchema = void 0;
37
+ exports.markXchangeRecordReadOutputSchema = exports.markXchangeRecordReadInputSchema = exports.getXchangeRecordOutputSchema = exports.getXchangeRecordInputSchema = exports.listXchangeRecordsOutputSchema = exports.listXchangeRecordsInputSchema = exports.sendPartnerNoteOutputSchema = void 0;
38
38
  const z = __importStar(require("zod/v4"));
39
39
  const partnerNoteKindSchema = z.enum([
40
40
  "share",
@@ -75,70 +75,53 @@ exports.notifyTelegramOutputSchema = z.object({
75
75
  sent: z.boolean(),
76
76
  message_id: z.number().int().positive().optional(),
77
77
  });
78
- exports.refreshToolsMarkdownInputSchema = z.object({
78
+ exports.sendFileToTelegramInputSchema = z.object({
79
79
  session_id: z.string().trim().min(1).optional(),
80
80
  cwd: z.string().trim().min(1).optional(),
81
- save_locally: z.boolean().optional(),
82
- });
83
- exports.refreshToolsMarkdownOutputSchema = z.object({
84
- source: z.enum(["gateway", "local"]),
85
- saved: z.boolean(),
86
- bytes: z.number().int().nonnegative(),
87
- path: z.string().optional(),
88
- });
89
- exports.getTelegramInboxInputSchema = z.object({
90
- session_id: z.string().trim().min(1).optional(),
81
+ file_path: z.string().trim().min(1),
82
+ caption: z.string().trim().min(1).optional(),
91
83
  });
92
- exports.getTelegramInboxOutputSchema = z.object({
84
+ exports.sendFileToTelegramOutputSchema = z.object({
93
85
  session_id: z.string(),
94
- total: z.number().int().nonnegative(),
95
- has_more: z.boolean(),
96
- messages: z.array(z.object({
97
- message_id: z.string(),
98
- source: z.literal("telegram"),
99
- message_kind: z.enum(["human", "system"]),
100
- telegram_chat_id: z.number(),
101
- telegram_user_id: z.number(),
102
- telegram_message_id: z.number().int().nonnegative(),
103
- text: z.string(),
104
- attachments: z.array(z.string()).optional(),
105
- received_at: z.string(),
106
- })),
86
+ file_path: z.string(),
87
+ sent: z.boolean(),
88
+ message_id: z.number().int().positive().optional(),
107
89
  });
108
- exports.getTelegramInboxCountInputSchema = z.object({
109
- session_id: z.string().trim().min(1).optional(),
90
+ exports.listGatewaySessionsInputSchema = z.object({
91
+ client_uuid: z.string().trim().min(1).optional(),
92
+ connected_only: z.boolean().optional(),
110
93
  });
111
- exports.getTelegramInboxCountOutputSchema = z.object({
112
- session_id: z.string(),
94
+ exports.listGatewaySessionsOutputSchema = z.object({
113
95
  total: z.number().int().nonnegative(),
96
+ sessions: z.array(z.object({
97
+ session_id: z.string().trim().min(1),
98
+ client_uuid: z.string().trim().min(1),
99
+ local_session_id: z.string().trim().min(1),
100
+ session_label: z.string().nullable().optional(),
101
+ client_label: z.string().nullable().optional(),
102
+ telegram_username: z.string().nullable().optional(),
103
+ telegram_display_name: z.string().nullable().optional(),
104
+ bot_username: z.string().nullable().optional(),
105
+ node_id: z.string().trim().min(1).optional(),
106
+ package_version: z.string().trim().min(1).optional(),
107
+ project_uuids: z.array(z.string().trim().min(1)).optional(),
108
+ project_names: z.array(z.string().trim().min(1)).optional(),
109
+ connected: z.boolean(),
110
+ registered: z.boolean(),
111
+ })),
114
112
  });
115
- exports.deleteTelegramInboxMessageInputSchema = z.object({
113
+ exports.refreshToolsMarkdownInputSchema = z.object({
116
114
  session_id: z.string().trim().min(1).optional(),
117
- message_id: z.string().trim().min(1),
118
- });
119
- exports.deleteTelegramInboxMessageOutputSchema = z.object({
120
- deleted: z.boolean(),
121
- session_id: z.string(),
122
- message_id: z.string(),
115
+ cwd: z.string().trim().min(1).optional(),
116
+ known_hash: z.string().trim().min(1).optional(),
123
117
  });
124
- exports.createSessionPairCodeInputSchema = z.object({
118
+ exports.refreshToolsMarkdownOutputSchema = z.object({
119
+ source: z.enum(["gateway", "local"]),
125
120
  session_id: z.string().trim().min(1).optional(),
126
- session_label: z.string().trim().min(1).optional(),
127
- cwd: z.string().trim().min(1).optional(),
128
- expires_in_seconds: z.number().int().positive().optional(),
129
- tmux_session_name: z.string().trim().min(1).max(200).optional(),
130
- tmux_window_name: z.string().trim().min(1).max(200).optional(),
131
- tmux_window_index: z.number().int().nonnegative().optional(),
132
- tmux_pane_id: z.string().trim().min(1).max(200).optional(),
133
- tmux_pane_index: z.number().int().nonnegative().optional(),
134
- });
135
- exports.createSessionPairCodeOutputSchema = z.object({
136
- session_id: z.string(),
137
- code: z.string(),
138
- expires_at: z.string(),
139
- status: z.literal("pending"),
140
- status_message: z.string(),
141
- telegram_link_hint: z.string().optional(),
121
+ current_hash: z.string().trim().min(1),
122
+ changed: z.boolean(),
123
+ content: z.string().optional(),
124
+ bytes: z.number().int().nonnegative(),
142
125
  });
143
126
  exports.setSessionContextInputSchema = z.object({
144
127
  session_id: z.string().trim().min(1).optional(),
@@ -192,15 +175,10 @@ exports.getSessionContextOutputSchema = z.object({
192
175
  linked_at: z.string(),
193
176
  })
194
177
  .optional(),
195
- tmux: z
178
+ terminal: z
196
179
  .object({
197
180
  configured: z.boolean(),
198
- tmux_session_name: z.string().optional(),
199
- tmux_window_name: z.string().optional(),
200
- tmux_window_index: z.number().optional(),
201
- tmux_pane_id: z.string().optional(),
202
- tmux_pane_index: z.number().optional(),
203
- tmux_target: z.string().optional(),
181
+ terminal_target: z.string().optional(),
204
182
  last_nudge_at: z.string().optional(),
205
183
  })
206
184
  .optional(),
@@ -213,47 +191,6 @@ exports.clearSessionContextOutputSchema = z.object({
213
191
  session_id: z.string(),
214
192
  cleared_pairing: z.boolean(),
215
193
  });
216
- exports.clearSessionPairingInputSchema = z.object({
217
- session_id: z.string().trim().min(1).optional(),
218
- });
219
- exports.clearSessionPairingOutputSchema = z.object({
220
- cleared: z.boolean(),
221
- session_id: z.string(),
222
- });
223
- exports.setTmuxTargetInputSchema = z.object({
224
- session_id: z.string().trim().min(1).optional(),
225
- tmux_session_name: z.string().trim().min(1).max(200).optional(),
226
- tmux_window_name: z.string().trim().min(1).max(200).optional(),
227
- tmux_window_index: z.number().int().nonnegative().optional(),
228
- tmux_pane_id: z.string().trim().min(1).max(200).optional(),
229
- tmux_pane_index: z.number().int().nonnegative().optional(),
230
- tmux_target: z.string().trim().min(1).max(200),
231
- });
232
- exports.setTmuxTargetOutputSchema = z.object({
233
- session_id: z.string(),
234
- tmux_target: z.string(),
235
- tmux_session_name: z.string().optional(),
236
- tmux_window_name: z.string().optional(),
237
- tmux_window_index: z.number().optional(),
238
- tmux_pane_id: z.string().optional(),
239
- tmux_pane_index: z.number().optional(),
240
- status_message: z.string(),
241
- });
242
- exports.getTmuxTargetInputSchema = z.object({
243
- session_id: z.string().trim().min(1).optional(),
244
- });
245
- exports.getTmuxTargetOutputSchema = z.object({
246
- session_id: z.string(),
247
- configured: z.boolean(),
248
- tmux_target: z.string().optional(),
249
- tmux_session_name: z.string().optional(),
250
- tmux_window_name: z.string().optional(),
251
- tmux_window_index: z.number().optional(),
252
- tmux_pane_id: z.string().optional(),
253
- tmux_pane_index: z.number().optional(),
254
- last_nudge_at: z.string().optional(),
255
- status_message: z.string(),
256
- });
257
194
  exports.browserOpenInputSchema = z.object({
258
195
  session_id: z.string().trim().min(1).optional(),
259
196
  url: z.string().trim().min(1),
@@ -495,6 +432,8 @@ exports.browserCloseOutputSchema = z.object({
495
432
  exports.sendPartnerNoteInputSchema = z.object({
496
433
  session_id: z.string().trim().min(1).optional(),
497
434
  target_session_id: z.string().trim().min(1).optional(),
435
+ target_client_uuid: z.string().trim().min(1).optional(),
436
+ target_local_session_id: z.string().trim().min(1).optional(),
498
437
  project_uuid: z.string().trim().min(1).optional(),
499
438
  kind: partnerNoteKindSchema,
500
439
  summary: z.string().trim().min(1),
@@ -518,6 +457,8 @@ exports.sendPartnerNoteInputSchema = z.object({
518
457
  exports.sendPartnerFileInputSchema = z.object({
519
458
  session_id: z.string().trim().min(1).optional(),
520
459
  target_session_id: z.string().trim().min(1).optional(),
460
+ target_client_uuid: z.string().trim().min(1).optional(),
461
+ target_local_session_id: z.string().trim().min(1).optional(),
521
462
  project_uuid: z.string().trim().min(1).optional(),
522
463
  cwd: z.string().trim().min(1).optional(),
523
464
  file_path: z.string().trim().min(1),
@@ -531,6 +472,8 @@ exports.sendPartnerFileInputSchema = z.object({
531
472
  exports.sendPartnerNoteOutputSchema = z.object({
532
473
  session_id: z.string(),
533
474
  partner_session_id: z.string(),
475
+ target_client_uuid: z.string().optional(),
476
+ target_local_session_id: z.string().optional(),
534
477
  project_name: z.string().optional(),
535
478
  target_actor_label: z.string().optional(),
536
479
  target_session_label: z.string().optional(),
@@ -538,8 +481,77 @@ exports.sendPartnerNoteOutputSchema = z.object({
538
481
  share_id: z.string(),
539
482
  delivery_status: z.enum(["queued", "delivered"]),
540
483
  note_path: z.string(),
541
- share_index_path: z.string(),
484
+ xchange_record_id: z.string(),
542
485
  copied_artifacts: z.array(z.string()),
543
486
  inbox_message_id: z.string(),
544
487
  requires_reply: z.boolean(),
545
488
  });
489
+ const xchangeRecordAttachmentSchema = z.object({
490
+ file_path: z.string(),
491
+ relative_path: z.string().optional(),
492
+ original_name: z.string().optional(),
493
+ mime_type: z.string().optional(),
494
+ size_bytes: z.number().int().nonnegative().optional(),
495
+ storage_ref: z.string().optional(),
496
+ });
497
+ const xchangeRecordSchema = z.object({
498
+ record_id: z.string(),
499
+ session_id: z.string(),
500
+ category: z.enum(["partner_note", "local_handoff", "telegram_message"]),
501
+ direction: z.enum(["incoming", "outgoing", "local"]),
502
+ status: z.enum(["new", "read", "archived"]),
503
+ kind: z.string().optional(),
504
+ summary: z.string(),
505
+ body_text: z.string(),
506
+ action_desc: z.string(),
507
+ tools: z.array(z.string()),
508
+ note_path: z.string().optional(),
509
+ note_relative_path: z.string().optional(),
510
+ source_session_id: z.string().optional(),
511
+ source_label: z.string().optional(),
512
+ source_client_uuid: z.string().optional(),
513
+ source_local_session_id: z.string().optional(),
514
+ target_session_id: z.string().optional(),
515
+ target_label: z.string().optional(),
516
+ target_client_uuid: z.string().optional(),
517
+ target_local_session_id: z.string().optional(),
518
+ project_uuid: z.string().optional(),
519
+ project_name: z.string().optional(),
520
+ requires_reply: z.boolean().optional(),
521
+ expected_reply: z.string().optional(),
522
+ in_reply_to: z.string().optional(),
523
+ attachments: z.array(xchangeRecordAttachmentSchema),
524
+ tags: z.array(z.string()),
525
+ created_at: z.string(),
526
+ updated_at: z.string(),
527
+ read_at: z.string().optional(),
528
+ });
529
+ exports.listXchangeRecordsInputSchema = z.object({
530
+ session_id: z.string().trim().min(1).optional(),
531
+ status: z.enum(["new", "read", "archived"]).optional(),
532
+ category: z.enum(["partner_note", "local_handoff", "telegram_message"]).optional(),
533
+ direction: z.enum(["incoming", "outgoing", "local"]).optional(),
534
+ limit: z.number().int().positive().max(200).optional(),
535
+ });
536
+ exports.listXchangeRecordsOutputSchema = z.object({
537
+ session_id: z.string(),
538
+ total: z.number().int().nonnegative(),
539
+ records: z.array(xchangeRecordSchema),
540
+ });
541
+ exports.getXchangeRecordInputSchema = z.object({
542
+ session_id: z.string().trim().min(1).optional(),
543
+ record_id: z.string().trim().min(1),
544
+ });
545
+ exports.getXchangeRecordOutputSchema = z.object({
546
+ session_id: z.string(),
547
+ record: xchangeRecordSchema.nullable(),
548
+ });
549
+ exports.markXchangeRecordReadInputSchema = z.object({
550
+ session_id: z.string().trim().min(1).optional(),
551
+ record_id: z.string().trim().min(1),
552
+ });
553
+ exports.markXchangeRecordReadOutputSchema = z.object({
554
+ session_id: z.string(),
555
+ record_id: z.string(),
556
+ updated: z.boolean(),
557
+ });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -18,7 +18,7 @@ class AskUserTelegramTool {
18
18
  register(server) {
19
19
  server.registerTool("ask_user_telegram", {
20
20
  title: "Ask User Telegram",
21
- description: "Send a clarification request to the Telegram user linked to the provided session and wait for a reply. Pass session_id explicitly after pairing; do not rely on implicit defaults unless cwd is also correct for this agent workspace.",
21
+ description: "Send a clarification request to the Telegram user for the provided console and wait for a reply. Pass session_id explicitly for the active console; do not rely on implicit defaults unless cwd is also correct for this agent workspace.",
22
22
  inputSchema: schema_1.askUserTelegramInputSchema,
23
23
  outputSchema: schema_1.askUserTelegramOutputSchema,
24
24
  }, async (args) => {
@@ -13,7 +13,7 @@ class BrowserScreenshotTool {
13
13
  register(server) {
14
14
  server.registerTool("browser_screenshot", {
15
15
  title: "Browser Screenshot",
16
- description: "Capture a screenshot from the Playwright tab for the current session and save it into .mcp-xchange. Use this when the user wants a visual artifact that can later be shared through Local or Collab flows.",
16
+ description: "Capture a screenshot from the Playwright tab for the current session. By default it is saved into .mcp-xchange. If the user wants the screenshot sent back to the human in Telegram, set send_to_telegram=true so the PNG is delivered through the gateway route instead of forcing a separate file-delivery workaround.",
17
17
  inputSchema: schema_1.browserScreenshotInputSchema,
18
18
  outputSchema: schema_1.browserScreenshotOutputSchema,
19
19
  }, async (args) => {