@deadragdoll/tellymcp 0.0.10 → 0.0.12

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 (154) hide show
  1. package/.env.example.client +42 -52
  2. package/.env.example.gateway +48 -62
  3. package/CHANGELOG.md +3 -3
  4. package/README-ru.md +226 -376
  5. package/README.md +213 -1184
  6. package/TOOLS.md +320 -377
  7. package/VERSION.md +13 -13
  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 +39 -20
  15. package/config/templates/env.client.template +34 -19
  16. package/config/templates/env.gateway.template +37 -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/browser.service.js +94 -1
  23. package/dist/services/features/telegram-mcp/collaboration.service.js +40 -3
  24. package/dist/services/features/telegram-mcp/ensuredb.service.js +145 -26
  25. package/dist/services/features/telegram-mcp/gateway-delivery.service.js +285 -103
  26. package/dist/services/features/telegram-mcp/gateway-socket.service.js +907 -85
  27. package/dist/services/features/telegram-mcp/gateway.service.js +876 -81
  28. package/dist/services/features/telegram-mcp/mcp-http.service.js +8 -0
  29. package/dist/services/features/telegram-mcp/mcp-server.service.js +17 -26
  30. package/dist/services/features/telegram-mcp/notify.service.js +127 -1
  31. package/dist/services/features/telegram-mcp/session-context.service.js +28 -1
  32. package/dist/services/features/telegram-mcp/src/app/bootstrap/runtime.js +132 -10
  33. package/dist/services/features/telegram-mcp/src/app/config/env.js +158 -52
  34. package/dist/services/features/telegram-mcp/src/app/http.js +375 -42
  35. package/dist/services/features/telegram-mcp/src/app/webapp/assets.js +386 -58
  36. package/dist/services/features/telegram-mcp/src/app/webapp/auth.js +3 -0
  37. package/dist/services/features/telegram-mcp/src/app/webapp/terminal.js +12 -0
  38. package/dist/services/features/telegram-mcp/src/entities/request/model/schema.js +120 -104
  39. package/dist/services/features/telegram-mcp/src/entities/xchange/model/types.js +2 -0
  40. package/dist/services/features/telegram-mcp/src/features/ask-user/model/askUserTelegram.js +1 -1
  41. package/dist/services/features/telegram-mcp/src/features/browser/model/browserOpenTool.js +1 -1
  42. package/dist/services/features/telegram-mcp/src/features/browser/model/browserScreenshotTool.js +1 -1
  43. package/dist/services/features/telegram-mcp/src/features/browser/model/browserService.js +306 -26
  44. package/dist/services/features/telegram-mcp/src/features/collaboration/model/gatewaySessionsService.js +71 -0
  45. package/dist/services/features/telegram-mcp/src/features/collaboration/model/listGatewaySessionsTool.js +33 -0
  46. package/dist/services/features/telegram-mcp/src/features/collaboration/model/localCollaborationBackend.js +93 -82
  47. package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerFileService.js +47 -5
  48. package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerFileTool.js +1 -1
  49. package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerNoteTool.js +1 -1
  50. package/dist/services/features/telegram-mcp/src/features/distributed-client/model/gatewayClientAccess.js +82 -0
  51. package/dist/services/features/telegram-mcp/src/features/distributed-client/model/gatewayCollaborationBackend.js +22 -14
  52. package/dist/services/features/telegram-mcp/src/features/distributed-gateway/model/gatewayHttpService.js +697 -75
  53. package/dist/services/features/telegram-mcp/src/features/distributed-gateway/model/remoteConsoleActionClient.js +76 -0
  54. package/dist/services/features/telegram-mcp/src/features/embedded-runtime/model/embeddedRuntimeBroker.js +92 -0
  55. package/dist/services/features/telegram-mcp/src/features/foreground-terminal/model/foregroundTerminalRuntime.js +192 -0
  56. package/dist/services/features/telegram-mcp/src/features/notify/model/notifyService.js +382 -3
  57. package/dist/services/features/telegram-mcp/src/features/notify/model/notifyTelegramTool.js +1 -1
  58. package/dist/services/features/telegram-mcp/src/features/notify/model/sendFileToTelegramTool.js +33 -0
  59. package/dist/services/features/telegram-mcp/src/features/session-context/model/clearSessionContextTool.js +1 -1
  60. package/dist/services/features/telegram-mcp/src/features/session-context/model/getSessionContextTool.js +1 -1
  61. package/dist/services/features/telegram-mcp/src/features/session-context/model/renameSessionTool.js +1 -1
  62. package/dist/services/features/telegram-mcp/src/features/session-context/model/sessionContextService.js +42 -200
  63. package/dist/services/features/telegram-mcp/src/features/session-context/model/setSessionContextTool.js +1 -1
  64. package/dist/services/features/telegram-mcp/src/features/terminal-buffer/model/terminalBufferService.js +96 -0
  65. package/dist/services/features/telegram-mcp/src/features/terminal-input/model/terminalInputService.js +97 -0
  66. package/dist/services/features/telegram-mcp/src/features/tools-sync/model/refreshToolsMarkdownService.js +107 -58
  67. package/dist/services/features/telegram-mcp/src/features/tools-sync/model/refreshToolsMarkdownTool.js +1 -1
  68. package/dist/services/features/telegram-mcp/src/features/xchange/model/getXchangeRecordTool.js +28 -0
  69. package/dist/services/features/telegram-mcp/src/features/xchange/model/listXchangeRecordsTool.js +28 -0
  70. package/dist/services/features/telegram-mcp/src/features/xchange/model/markXchangeRecordReadTool.js +28 -0
  71. package/dist/services/features/telegram-mcp/src/features/xchange/model/xchangeService.js +169 -0
  72. package/dist/services/features/telegram-mcp/src/processes/human-approval/model/orchestrator.js +5 -4
  73. package/dist/services/features/telegram-mcp/src/shared/i18n/resources/en.js +143 -42
  74. package/dist/services/features/telegram-mcp/src/shared/i18n/resources/ru.js +139 -38
  75. package/dist/services/features/telegram-mcp/src/shared/integrations/memory/processLocalSessionStore.js +27 -0
  76. package/dist/services/features/telegram-mcp/src/shared/integrations/object-storage/minioExchangeStore.js +11 -8
  77. package/dist/services/features/telegram-mcp/src/shared/integrations/redis/stateStore.js +69 -70
  78. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/proxyFetch.js +21 -22
  79. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transport.js +444 -7093
  80. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportAttachmentStore.js +93 -0
  81. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportBroadcastActions.js +385 -0
  82. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportConsoleRegistry.js +149 -0
  83. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportConstructorWiring.js +642 -0
  84. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportContent.js +84 -0
  85. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportContext.js +78 -0
  86. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportDocumentActions.js +36 -0
  87. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportEventActions.js +292 -0
  88. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportFileHandoffActions.js +352 -0
  89. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportFormatting.js +75 -0
  90. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportGatewayActions.js +44 -0
  91. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportLifecycleActions.js +161 -0
  92. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportLive.js +56 -0
  93. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportLiveActions.js +77 -0
  94. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuCallbacks.js +254 -0
  95. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuFactories.js +538 -0
  96. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuFingerprints.js +93 -0
  97. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuFlow.js +344 -0
  98. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuShell.js +65 -0
  99. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuState.js +408 -0
  100. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMenuText.js +216 -0
  101. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportMessageFlow.js +452 -0
  102. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportOutputActions.js +189 -0
  103. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportPartnerActions.js +286 -0
  104. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportPayloadState.js +108 -0
  105. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectActions.js +463 -0
  106. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectEntryActions.js +202 -0
  107. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectEvents.js +99 -0
  108. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectMenus.js +138 -0
  109. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectState.js +308 -0
  110. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportProjectView.js +426 -0
  111. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportRequestFlow.js +278 -0
  112. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportSessionActions.js +143 -0
  113. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportTerminalActions.js +665 -0
  114. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportTerminalRuntime.js +226 -0
  115. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportTypes.js +2 -0
  116. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportUtils.js +330 -0
  117. package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transportXchangeState.js +107 -0
  118. package/dist/services/features/telegram-mcp/src/shared/integrations/terminal/client.js +255 -0
  119. package/dist/services/features/telegram-mcp/src/shared/integrations/terminal/ptyRegistry.js +543 -0
  120. package/dist/services/features/telegram-mcp/src/shared/integrations/xchange/sqliteRecordStore.js +223 -0
  121. package/dist/services/features/telegram-mcp/src/shared/lib/gatewayScope.js +24 -0
  122. package/dist/services/features/telegram-mcp/src/shared/lib/logger/logger.js +6 -0
  123. package/dist/services/features/telegram-mcp/src/shared/lib/project-identity/projectIdentity.js +147 -76
  124. package/dist/services/features/telegram-mcp/src/shared/lib/telegramXchangeRecords.js +72 -0
  125. package/dist/services/features/telegram-mcp/src/shared/lib/terminalPromptDetection.js +409 -0
  126. package/dist/services/features/telegram-mcp/src/shared/lib/version/versionHandshake.js +129 -1
  127. package/dist/services/features/telegram-mcp/src/shared/lib/xchangeRecordHints.js +98 -0
  128. package/dist/services/features/telegram-mcp/standalone-http.service.js +12 -0
  129. package/dist/services/features/telegram-mcp/terminal-buffer.service.js +42 -0
  130. package/dist/services/features/telegram-mcp/terminal-input.service.js +41 -0
  131. package/dist/services/features/telegram-mcp/tools-sync.service.js +15 -1
  132. package/dist/services/features/telegram-mcp/xchange.service.js +123 -0
  133. package/docs/STANDALONE-ru.md +172 -0
  134. package/docs/STANDALONE.md +172 -0
  135. package/package.json +10 -5
  136. package/scripts/build-package-artifact.sh +27 -0
  137. package/scripts/deploy-gateway.sh +64 -0
  138. package/scripts/deploy-onebot-branch.sh +27 -0
  139. package/scripts/postinstall.js +11 -36
  140. package/STANDALONE-ru.md +0 -274
  141. package/STANDALONE.md +0 -274
  142. package/dist/services/features/telegram-mcp/inbox.service.js +0 -33
  143. package/dist/services/features/telegram-mcp/pair.service.js +0 -33
  144. package/dist/services/features/telegram-mcp/src/app/webapp/tmux.js +0 -10
  145. package/dist/services/features/telegram-mcp/src/features/inbox/model/deleteTelegramInboxMessageTool.js +0 -33
  146. package/dist/services/features/telegram-mcp/src/features/inbox/model/getTelegramInboxCountTool.js +0 -33
  147. package/dist/services/features/telegram-mcp/src/features/inbox/model/getTelegramInboxTool.js +0 -33
  148. package/dist/services/features/telegram-mcp/src/features/inbox/model/inboxService.js +0 -77
  149. package/dist/services/features/telegram-mcp/src/features/pair-session/model/clearSessionPairingTool.js +0 -33
  150. package/dist/services/features/telegram-mcp/src/features/pair-session/model/createSessionPairCodeTool.js +0 -33
  151. package/dist/services/features/telegram-mcp/src/features/pair-session/model/generatePairCode.js +0 -202
  152. package/dist/services/features/telegram-mcp/src/features/session-context/model/getTmuxTargetTool.js +0 -33
  153. package/dist/services/features/telegram-mcp/src/features/session-context/model/setTmuxTargetTool.js +0 -33
  154. 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,50 +191,11 @@ 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),
197
+ width: z.number().int().positive().max(10000).optional(),
198
+ height: z.number().int().positive().max(10000).optional(),
260
199
  wait_until: z
261
200
  .enum(["load", "domcontentloaded", "networkidle", "commit"])
262
201
  .optional(),
@@ -268,6 +207,8 @@ exports.browserOpenOutputSchema = z.object({
268
207
  created_context: z.boolean(),
269
208
  url: z.string().url(),
270
209
  title: z.string().optional(),
210
+ viewport_width: z.number().int().positive().optional(),
211
+ viewport_height: z.number().int().positive().optional(),
271
212
  });
272
213
  exports.browserReloadInputSchema = z.object({
273
214
  session_id: z.string().trim().min(1).optional(),
@@ -495,6 +436,8 @@ exports.browserCloseOutputSchema = z.object({
495
436
  exports.sendPartnerNoteInputSchema = z.object({
496
437
  session_id: z.string().trim().min(1).optional(),
497
438
  target_session_id: z.string().trim().min(1).optional(),
439
+ target_client_uuid: z.string().trim().min(1).optional(),
440
+ target_local_session_id: z.string().trim().min(1).optional(),
498
441
  project_uuid: z.string().trim().min(1).optional(),
499
442
  kind: partnerNoteKindSchema,
500
443
  summary: z.string().trim().min(1),
@@ -518,6 +461,8 @@ exports.sendPartnerNoteInputSchema = z.object({
518
461
  exports.sendPartnerFileInputSchema = z.object({
519
462
  session_id: z.string().trim().min(1).optional(),
520
463
  target_session_id: z.string().trim().min(1).optional(),
464
+ target_client_uuid: z.string().trim().min(1).optional(),
465
+ target_local_session_id: z.string().trim().min(1).optional(),
521
466
  project_uuid: z.string().trim().min(1).optional(),
522
467
  cwd: z.string().trim().min(1).optional(),
523
468
  file_path: z.string().trim().min(1),
@@ -531,6 +476,8 @@ exports.sendPartnerFileInputSchema = z.object({
531
476
  exports.sendPartnerNoteOutputSchema = z.object({
532
477
  session_id: z.string(),
533
478
  partner_session_id: z.string(),
479
+ target_client_uuid: z.string().optional(),
480
+ target_local_session_id: z.string().optional(),
534
481
  project_name: z.string().optional(),
535
482
  target_actor_label: z.string().optional(),
536
483
  target_session_label: z.string().optional(),
@@ -538,8 +485,77 @@ exports.sendPartnerNoteOutputSchema = z.object({
538
485
  share_id: z.string(),
539
486
  delivery_status: z.enum(["queued", "delivered"]),
540
487
  note_path: z.string(),
541
- share_index_path: z.string(),
488
+ xchange_record_id: z.string(),
542
489
  copied_artifacts: z.array(z.string()),
543
490
  inbox_message_id: z.string(),
544
491
  requires_reply: z.boolean(),
545
492
  });
493
+ const xchangeRecordAttachmentSchema = z.object({
494
+ file_path: z.string(),
495
+ relative_path: z.string().optional(),
496
+ original_name: z.string().optional(),
497
+ mime_type: z.string().optional(),
498
+ size_bytes: z.number().int().nonnegative().optional(),
499
+ storage_ref: z.string().optional(),
500
+ });
501
+ const xchangeRecordSchema = z.object({
502
+ record_id: z.string(),
503
+ session_id: z.string(),
504
+ category: z.enum(["partner_note", "local_handoff", "telegram_message"]),
505
+ direction: z.enum(["incoming", "outgoing", "local"]),
506
+ status: z.enum(["new", "read", "archived"]),
507
+ kind: z.string().optional(),
508
+ summary: z.string(),
509
+ body_text: z.string(),
510
+ action_desc: z.string(),
511
+ tools: z.array(z.string()),
512
+ note_path: z.string().optional(),
513
+ note_relative_path: z.string().optional(),
514
+ source_session_id: z.string().optional(),
515
+ source_label: z.string().optional(),
516
+ source_client_uuid: z.string().optional(),
517
+ source_local_session_id: z.string().optional(),
518
+ target_session_id: z.string().optional(),
519
+ target_label: z.string().optional(),
520
+ target_client_uuid: z.string().optional(),
521
+ target_local_session_id: z.string().optional(),
522
+ project_uuid: z.string().optional(),
523
+ project_name: z.string().optional(),
524
+ requires_reply: z.boolean().optional(),
525
+ expected_reply: z.string().optional(),
526
+ in_reply_to: z.string().optional(),
527
+ attachments: z.array(xchangeRecordAttachmentSchema),
528
+ tags: z.array(z.string()),
529
+ created_at: z.string(),
530
+ updated_at: z.string(),
531
+ read_at: z.string().optional(),
532
+ });
533
+ exports.listXchangeRecordsInputSchema = z.object({
534
+ session_id: z.string().trim().min(1).optional(),
535
+ status: z.enum(["new", "read", "archived"]).optional(),
536
+ category: z.enum(["partner_note", "local_handoff", "telegram_message"]).optional(),
537
+ direction: z.enum(["incoming", "outgoing", "local"]).optional(),
538
+ limit: z.number().int().positive().max(200).optional(),
539
+ });
540
+ exports.listXchangeRecordsOutputSchema = z.object({
541
+ session_id: z.string(),
542
+ total: z.number().int().nonnegative(),
543
+ records: z.array(xchangeRecordSchema),
544
+ });
545
+ exports.getXchangeRecordInputSchema = z.object({
546
+ session_id: z.string().trim().min(1).optional(),
547
+ record_id: z.string().trim().min(1),
548
+ });
549
+ exports.getXchangeRecordOutputSchema = z.object({
550
+ session_id: z.string(),
551
+ record: xchangeRecordSchema.nullable(),
552
+ });
553
+ exports.markXchangeRecordReadInputSchema = z.object({
554
+ session_id: z.string().trim().min(1).optional(),
555
+ record_id: z.string().trim().min(1),
556
+ });
557
+ exports.markXchangeRecordReadOutputSchema = z.object({
558
+ session_id: z.string(),
559
+ record_id: z.string(),
560
+ updated: z.boolean(),
561
+ });
@@ -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) => {
@@ -18,7 +18,7 @@ class BrowserOpenTool {
18
18
  register(server) {
19
19
  server.registerTool("browser_open", {
20
20
  title: "Browser Open",
21
- description: "Open a URL in the isolated Playwright browser context for the current session. Reuse the existing tab unless reset_context=true.",
21
+ description: "Open a URL in the isolated Playwright browser context for the current session. Reuse the existing tab unless reset_context=true. Optionally pass width and height to control the viewport.",
22
22
  inputSchema: schema_1.browserOpenInputSchema,
23
23
  outputSchema: schema_1.browserOpenOutputSchema,
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) => {