@deadragdoll/tellymcp 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example.client +93 -0
- package/.env.example.gateway +120 -0
- package/CHANGELOG.md +155 -0
- package/LICENSE +21 -0
- package/README-ru.md +338 -0
- package/README.md +1262 -0
- package/STANDALONE-ru.md +266 -0
- package/STANDALONE.md +266 -0
- package/TOOLS.md +1296 -0
- package/config/templates/env.both.template +83 -0
- package/config/templates/env.client.template +60 -0
- package/config/templates/env.gateway.template +82 -0
- package/dist/cli.js +636 -0
- package/dist/index.js +17 -0
- package/dist/lib/logfeed/store.js +52 -0
- package/dist/lib/middlewares/tracer.js +172 -0
- package/dist/lib/mixins/db.js +267 -0
- package/dist/lib/mixins/logfeed.js +34 -0
- package/dist/lib/mixins/session.errors.js +142 -0
- package/dist/lib/moleculer.js +2 -0
- package/dist/lib/trace.js +147 -0
- package/dist/lib/traceContext.js +116 -0
- package/dist/moleculer.config.js +274 -0
- package/dist/services/features/telegram-mcp/approval.service.js +33 -0
- package/dist/services/features/telegram-mcp/browser.service.js +42 -0
- package/dist/services/features/telegram-mcp/collaboration.service.js +53 -0
- package/dist/services/features/telegram-mcp/ensuredb.service.js +337 -0
- package/dist/services/features/telegram-mcp/gateway-delivery.service.js +378 -0
- package/dist/services/features/telegram-mcp/gateway-loopback.js +10 -0
- package/dist/services/features/telegram-mcp/gateway-rmq.service.js +294 -0
- package/dist/services/features/telegram-mcp/gateway-socket.service.js +1463 -0
- package/dist/services/features/telegram-mcp/gateway.service.js +1141 -0
- package/dist/services/features/telegram-mcp/inbox.service.js +33 -0
- package/dist/services/features/telegram-mcp/mcp-http.service.js +76 -0
- package/dist/services/features/telegram-mcp/mcp-server.service.js +127 -0
- package/dist/services/features/telegram-mcp/notify.service.js +33 -0
- package/dist/services/features/telegram-mcp/pair.service.js +33 -0
- package/dist/services/features/telegram-mcp/runtime.service.js +36 -0
- package/dist/services/features/telegram-mcp/session-context.service.js +33 -0
- package/dist/services/features/telegram-mcp/src/app/bootstrap/runtime.js +103 -0
- package/dist/services/features/telegram-mcp/src/app/config/env.js +317 -0
- package/dist/services/features/telegram-mcp/src/app/http.js +774 -0
- package/dist/services/features/telegram-mcp/src/app/index.js +2 -0
- package/dist/services/features/telegram-mcp/src/app/providers/mcp/server.js +13 -0
- package/dist/services/features/telegram-mcp/src/app/providers/redis/client.js +18 -0
- package/dist/services/features/telegram-mcp/src/app/webapp/assets.js +740 -0
- package/dist/services/features/telegram-mcp/src/app/webapp/auth.js +267 -0
- package/dist/services/features/telegram-mcp/src/app/webapp/relay.js +69 -0
- package/dist/services/features/telegram-mcp/src/app/webapp/tmux.js +9 -0
- package/dist/services/features/telegram-mcp/src/entities/auth/model/types.js +2 -0
- package/dist/services/features/telegram-mcp/src/entities/browser/model/types.js +2 -0
- package/dist/services/features/telegram-mcp/src/entities/collaboration/model/types.js +2 -0
- package/dist/services/features/telegram-mcp/src/entities/inbox/model/types.js +2 -0
- package/dist/services/features/telegram-mcp/src/entities/request/model/schema.js +545 -0
- package/dist/services/features/telegram-mcp/src/entities/request/model/types.js +2 -0
- package/dist/services/features/telegram-mcp/src/entities/session/model/types.js +2 -0
- package/dist/services/features/telegram-mcp/src/features/ask-user/model/askUserTelegram.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserClearLogsTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserClickTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserCloseTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserComputedStyleTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserConsoleTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserDomTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserErrorsTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserFillTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserNetworkFailuresTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserOpenTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserPressTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserReloadTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserScreenshotTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserService.js +689 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserWaitForTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/browser/model/browserWaitForUrlTool.js +28 -0
- package/dist/services/features/telegram-mcp/src/features/collaboration/model/backend.js +2 -0
- package/dist/services/features/telegram-mcp/src/features/collaboration/model/collaborationService.js +26 -0
- package/dist/services/features/telegram-mcp/src/features/collaboration/model/localCollaborationBackend.js +390 -0
- package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerFileService.js +102 -0
- package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerFileTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/collaboration/model/sendPartnerNoteTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/distributed-client/model/gatewayCollaborationBackend.js +69 -0
- package/dist/services/features/telegram-mcp/src/features/distributed-gateway/model/gatewayHttpService.js +657 -0
- package/dist/services/features/telegram-mcp/src/features/distributed-gateway/model/gatewayReplyResolution.js +17 -0
- package/dist/services/features/telegram-mcp/src/features/inbox/model/deleteTelegramInboxMessageTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/inbox/model/getTelegramInboxCountTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/inbox/model/getTelegramInboxTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/inbox/model/inboxService.js +77 -0
- package/dist/services/features/telegram-mcp/src/features/notify/model/notifyService.js +93 -0
- package/dist/services/features/telegram-mcp/src/features/notify/model/notifyTelegramTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/pair-session/model/clearSessionPairingTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/pair-session/model/createSessionPairCodeTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/pair-session/model/generatePairCode.js +202 -0
- package/dist/services/features/telegram-mcp/src/features/session-context/model/clearSessionContextTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/session-context/model/getSessionContextTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/session-context/model/getTmuxTargetTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/session-context/model/renameSessionTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/session-context/model/sessionContextService.js +409 -0
- package/dist/services/features/telegram-mcp/src/features/session-context/model/setSessionContextTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/session-context/model/setTmuxTargetTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/features/tools-sync/model/refreshToolsMarkdownService.js +123 -0
- package/dist/services/features/telegram-mcp/src/features/tools-sync/model/refreshToolsMarkdownTool.js +33 -0
- package/dist/services/features/telegram-mcp/src/processes/human-approval/model/orchestrator.js +243 -0
- package/dist/services/features/telegram-mcp/src/shared/api/storage/contract.js +2 -0
- package/dist/services/features/telegram-mcp/src/shared/api/tool-registry/registry.js +8 -0
- package/dist/services/features/telegram-mcp/src/shared/api/tool-registry/types.js +2 -0
- package/dist/services/features/telegram-mcp/src/shared/api/transport/contract.js +2 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/object-storage/minioExchangeStore.js +86 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/redis/stateStore.js +436 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/collabSemantics.js +21 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/collabUi.js +87 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/messageFormat.js +60 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/proxyFetch.js +46 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/telegram/transport.js +6534 -0
- package/dist/services/features/telegram-mcp/src/shared/integrations/tmux/client.js +280 -0
- package/dist/services/features/telegram-mcp/src/shared/lib/ids/ids.js +34 -0
- package/dist/services/features/telegram-mcp/src/shared/lib/logger/logger.js +68 -0
- package/dist/services/features/telegram-mcp/src/shared/lib/project-identity/projectIdentity.js +223 -0
- package/dist/services/features/telegram-mcp/src/shared/lib/redact-secrets/redactSecrets.js +22 -0
- package/dist/services/features/telegram-mcp/src/shared/lib/truncate/truncate.js +12 -0
- package/dist/services/features/telegram-mcp/src/shared/lib/version/versionHandshake.js +124 -0
- package/dist/services/features/telegram-mcp/src/shared/types/common.js +2 -0
- package/dist/services/features/telegram-mcp/standalone-http.service.js +113 -0
- package/dist/services/features/telegram-mcp/tools-sync.service.js +33 -0
- package/package.json +110 -0
- package/scripts/postinstall.js +60 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.loadConfig = loadConfig;
|
|
37
|
+
const node_fs_1 = require("node:fs");
|
|
38
|
+
const z = __importStar(require("zod/v4"));
|
|
39
|
+
const envSchema = z.object({
|
|
40
|
+
TELEGRAM_BOT_TOKEN: z.string().min(1),
|
|
41
|
+
TELEGRAM_BOT_USERNAME: z.string().min(1).optional(),
|
|
42
|
+
TELEGRAM_POLL_INTERVAL_MS: z.coerce.number().int().positive().default(2000),
|
|
43
|
+
TELEGRAM_DEFAULT_TIMEOUT_SECONDS: z.coerce
|
|
44
|
+
.number()
|
|
45
|
+
.int()
|
|
46
|
+
.positive()
|
|
47
|
+
.default(900),
|
|
48
|
+
TELEGRAM_MAX_CONTEXT_CHARS: z.coerce.number().int().positive().default(3000),
|
|
49
|
+
TELEGRAM_MAX_QUESTION_CHARS: z.coerce.number().int().positive().default(1000),
|
|
50
|
+
TELEGRAM_MAX_MESSAGE_CHARS: z.coerce.number().int().positive().default(3900),
|
|
51
|
+
TELEGRAM_INBOX_BATCH_SIZE: z.coerce
|
|
52
|
+
.number()
|
|
53
|
+
.int()
|
|
54
|
+
.positive()
|
|
55
|
+
.max(100)
|
|
56
|
+
.default(20),
|
|
57
|
+
TELEGRAM_MENU_PAYLOAD_TTL_SECONDS: z.coerce
|
|
58
|
+
.number()
|
|
59
|
+
.int()
|
|
60
|
+
.positive()
|
|
61
|
+
.default(300),
|
|
62
|
+
REDIS_HOST: z.string().min(1),
|
|
63
|
+
REDIS_PORT: z.coerce.number().int().positive(),
|
|
64
|
+
REDIS_DB: z.coerce.number().int().nonnegative(),
|
|
65
|
+
REDIS_USERNAME: z.string().min(1).optional(),
|
|
66
|
+
REDIS_PASSWORD: z.string().min(1).optional(),
|
|
67
|
+
MODE: z.enum(["queue", "reject"]).default("queue"),
|
|
68
|
+
PAIR_CODE_TTL_SECONDS: z.coerce.number().int().positive().default(600),
|
|
69
|
+
PROJECT_NAME: z.string().min(1).optional(),
|
|
70
|
+
MCP_HTTP_HOST: z.string().min(1).default("127.0.0.1"),
|
|
71
|
+
MCP_HTTP_PORT: z.coerce.number().int().positive().default(8787),
|
|
72
|
+
MCP_HTTP_PATH: z.string().min(1).default("/mcp"),
|
|
73
|
+
MCP_HTTP_BEARER_TOKEN: z.string().min(1).optional(),
|
|
74
|
+
MCP_HTTP_ENABLE_DEBUG_ROUTES: z
|
|
75
|
+
.string()
|
|
76
|
+
.optional()
|
|
77
|
+
.transform((value) => value === "true"),
|
|
78
|
+
MCP_HTTP_ENABLE_PRUNE_ROUTE: z
|
|
79
|
+
.string()
|
|
80
|
+
.optional()
|
|
81
|
+
.transform((value) => value === "true"),
|
|
82
|
+
MCP_VFS_SCOPE: z.string().min(1).default("mcp"),
|
|
83
|
+
DISTRIBUTED_MODE: z.enum(["client", "gateway", "both"]).default("client"),
|
|
84
|
+
GATEWAY_PUBLIC_URL: z.string().url().optional(),
|
|
85
|
+
GATEWAY_BIND_HOST: z.string().min(1).default("127.0.0.1"),
|
|
86
|
+
GATEWAY_BIND_PORT: z.coerce.number().int().positive().default(8790),
|
|
87
|
+
GATEWAY_WS_URL: z.string().url().optional(),
|
|
88
|
+
GATEWAY_WS_PATH: z
|
|
89
|
+
.string()
|
|
90
|
+
.min(1)
|
|
91
|
+
.default(`${(process.env.ROOT_PREFIX || "/api").replace(/\/+$/u, "")}/gateway/ws`),
|
|
92
|
+
GATEWAY_AUTH_TOKEN: z.string().min(1).optional(),
|
|
93
|
+
GATEWAY_DATABASE_URL: z.string().min(1).optional(),
|
|
94
|
+
GATEWAY_S3_ENDPOINT: z.string().min(1).optional(),
|
|
95
|
+
GATEWAY_S3_BUCKET: z.string().min(1).optional(),
|
|
96
|
+
GATEWAY_S3_ACCESS_KEY: z.string().min(1).optional(),
|
|
97
|
+
GATEWAY_S3_SECRET_KEY: z.string().min(1).optional(),
|
|
98
|
+
RMQ_HOST: z.string().min(1).optional(),
|
|
99
|
+
RMQ_PORT: z.coerce.number().int().positive().optional(),
|
|
100
|
+
RMQ_USER: z.string().min(1).optional(),
|
|
101
|
+
RMQ_PASSWORD: z.string().min(1).optional(),
|
|
102
|
+
RMQ_VHOST: z.string().optional(),
|
|
103
|
+
RMQ_EXCHANGE: z.string().min(1).default("telegram_mcp.gateway"),
|
|
104
|
+
WEBAPP_ENABLED: z
|
|
105
|
+
.string()
|
|
106
|
+
.optional()
|
|
107
|
+
.transform((value) => value === "true"),
|
|
108
|
+
WEBAPP_BASE_PATH: z.string().min(1).default("/webapp"),
|
|
109
|
+
WEBAPP_PUBLIC_URL: z.string().url().optional(),
|
|
110
|
+
WEBAPP_INITDATA_TTL_SECONDS: z.coerce
|
|
111
|
+
.number()
|
|
112
|
+
.int()
|
|
113
|
+
.positive()
|
|
114
|
+
.default(300),
|
|
115
|
+
WEBAPP_SESSION_TTL_SECONDS: z.coerce
|
|
116
|
+
.number()
|
|
117
|
+
.int()
|
|
118
|
+
.positive()
|
|
119
|
+
.default(900),
|
|
120
|
+
WEBAPP_LAUNCH_MODE: z
|
|
121
|
+
.enum(["default", "expand", "fullscreen"])
|
|
122
|
+
.default("fullscreen"),
|
|
123
|
+
WEBAPP_VISIBLE_SCREENS: z.coerce.number().int().positive().default(2),
|
|
124
|
+
WEBAPP_POLL_INTERVAL_MS: z.coerce.number().int().positive().default(2000),
|
|
125
|
+
WEBAPP_ACTION_COOLDOWN_MS: z.coerce.number().int().nonnegative().default(150),
|
|
126
|
+
MCP_XCHANGE_DIR: z.string().min(1).default(".mcp-xchange"),
|
|
127
|
+
TMUX_NUDGE_ENABLED: z
|
|
128
|
+
.string()
|
|
129
|
+
.optional()
|
|
130
|
+
.transform((value) => value !== "false"),
|
|
131
|
+
TMUX_SOCKET_PATH: z.string().min(1).optional(),
|
|
132
|
+
TMUX_NUDGE_DEBOUNCE_SECONDS: z.coerce.number().int().positive().default(10),
|
|
133
|
+
TMUX_NUDGE_COOLDOWN_SECONDS: z.coerce.number().int().positive().default(30),
|
|
134
|
+
TMUX_NUDGE_MESSAGE: z.string().min(1).default("проверь inbox"),
|
|
135
|
+
TMUX_PARTNER_NUDGE_MESSAGE: z
|
|
136
|
+
.string()
|
|
137
|
+
.min(1)
|
|
138
|
+
.default("не inbox: прочитай SHARED_INDEX.md и partner note"),
|
|
139
|
+
TMUX_CAPTURE_MODE: z.enum(["visible", "lines"]).default("visible"),
|
|
140
|
+
TMUX_CAPTURE_LINES: z.coerce.number().int().positive().default(300),
|
|
141
|
+
BROWSER_ENABLED: z
|
|
142
|
+
.string()
|
|
143
|
+
.optional()
|
|
144
|
+
.transform((value) => value !== "false"),
|
|
145
|
+
BROWSER_HEADLESS: z
|
|
146
|
+
.string()
|
|
147
|
+
.optional()
|
|
148
|
+
.transform((value) => value === "true"),
|
|
149
|
+
BROWSER_DEVTOOLS: z
|
|
150
|
+
.string()
|
|
151
|
+
.optional()
|
|
152
|
+
.transform((value) => value === "true"),
|
|
153
|
+
BROWSER_ADDRESS: z.string().url().optional(),
|
|
154
|
+
BROWSER_TIMEOUT_MS: z.coerce.number().int().positive().default(20000),
|
|
155
|
+
BROWSER_MAX_EVENTS: z.coerce.number().int().positive().default(200),
|
|
156
|
+
BROWSER_WAIT_UNTIL: z
|
|
157
|
+
.enum(["load", "domcontentloaded", "networkidle", "commit"])
|
|
158
|
+
.default("load"),
|
|
159
|
+
BROWSER_EXECUTABLE_PATH: z.string().min(1).optional(),
|
|
160
|
+
BROWSER_CHANNEL: z.enum(["chrome", "chromium", "msedge"]).optional(),
|
|
161
|
+
BROWSER_SLOW_MO_MS: z.coerce.number().int().nonnegative().default(0),
|
|
162
|
+
PROXY_USE: z.enum(["http", "socks5"]).optional(),
|
|
163
|
+
HTTP_PROXY: z.string().min(1).optional(),
|
|
164
|
+
SOCKS5_PROXY: z.string().min(1).optional(),
|
|
165
|
+
LOG_LEVEL: z
|
|
166
|
+
.enum(["fatal", "error", "warn", "info", "debug", "trace", "silent"])
|
|
167
|
+
.default("info"),
|
|
168
|
+
});
|
|
169
|
+
function loadConfig() {
|
|
170
|
+
if ((0, node_fs_1.existsSync)(".env")) {
|
|
171
|
+
process.loadEnvFile(".env");
|
|
172
|
+
}
|
|
173
|
+
const parsed = envSchema.parse(process.env);
|
|
174
|
+
const telegramProxy = parsed.PROXY_USE === "http"
|
|
175
|
+
? parsed.HTTP_PROXY
|
|
176
|
+
? {
|
|
177
|
+
type: "http",
|
|
178
|
+
url: parsed.HTTP_PROXY,
|
|
179
|
+
}
|
|
180
|
+
: (() => {
|
|
181
|
+
throw new Error("PROXY_USE=http requires HTTP_PROXY");
|
|
182
|
+
})()
|
|
183
|
+
: parsed.PROXY_USE === "socks5"
|
|
184
|
+
? parsed.SOCKS5_PROXY
|
|
185
|
+
? {
|
|
186
|
+
type: "socks5",
|
|
187
|
+
url: parsed.SOCKS5_PROXY,
|
|
188
|
+
}
|
|
189
|
+
: (() => {
|
|
190
|
+
throw new Error("PROXY_USE=socks5 requires SOCKS5_PROXY");
|
|
191
|
+
})()
|
|
192
|
+
: undefined;
|
|
193
|
+
return {
|
|
194
|
+
telegram: {
|
|
195
|
+
botToken: parsed.TELEGRAM_BOT_TOKEN,
|
|
196
|
+
...(parsed.TELEGRAM_BOT_USERNAME
|
|
197
|
+
? { botUsername: parsed.TELEGRAM_BOT_USERNAME }
|
|
198
|
+
: {}),
|
|
199
|
+
pollIntervalMs: parsed.TELEGRAM_POLL_INTERVAL_MS,
|
|
200
|
+
defaultTimeoutSeconds: parsed.TELEGRAM_DEFAULT_TIMEOUT_SECONDS,
|
|
201
|
+
maxContextChars: parsed.TELEGRAM_MAX_CONTEXT_CHARS,
|
|
202
|
+
maxQuestionChars: parsed.TELEGRAM_MAX_QUESTION_CHARS,
|
|
203
|
+
maxMessageChars: parsed.TELEGRAM_MAX_MESSAGE_CHARS,
|
|
204
|
+
inboxBatchSize: parsed.TELEGRAM_INBOX_BATCH_SIZE,
|
|
205
|
+
menuPayloadTtlSeconds: parsed.TELEGRAM_MENU_PAYLOAD_TTL_SECONDS,
|
|
206
|
+
...(telegramProxy ? { proxy: telegramProxy } : {}),
|
|
207
|
+
},
|
|
208
|
+
redis: {
|
|
209
|
+
host: parsed.REDIS_HOST,
|
|
210
|
+
port: parsed.REDIS_PORT,
|
|
211
|
+
db: parsed.REDIS_DB,
|
|
212
|
+
...(parsed.REDIS_USERNAME ? { username: parsed.REDIS_USERNAME } : {}),
|
|
213
|
+
...(parsed.REDIS_PASSWORD ? { password: parsed.REDIS_PASSWORD } : {}),
|
|
214
|
+
},
|
|
215
|
+
mode: parsed.MODE,
|
|
216
|
+
pairCodeTtlSeconds: parsed.PAIR_CODE_TTL_SECONDS,
|
|
217
|
+
mcp: {
|
|
218
|
+
httpHost: parsed.MCP_HTTP_HOST,
|
|
219
|
+
httpPort: parsed.MCP_HTTP_PORT,
|
|
220
|
+
httpPath: parsed.MCP_HTTP_PATH,
|
|
221
|
+
vfsScope: parsed.MCP_VFS_SCOPE,
|
|
222
|
+
...(parsed.MCP_HTTP_BEARER_TOKEN
|
|
223
|
+
? { bearerToken: parsed.MCP_HTTP_BEARER_TOKEN }
|
|
224
|
+
: {}),
|
|
225
|
+
enableDebugRoutes: parsed.MCP_HTTP_ENABLE_DEBUG_ROUTES,
|
|
226
|
+
enablePruneRoute: parsed.MCP_HTTP_ENABLE_PRUNE_ROUTE,
|
|
227
|
+
},
|
|
228
|
+
distributed: {
|
|
229
|
+
mode: parsed.DISTRIBUTED_MODE,
|
|
230
|
+
...(parsed.GATEWAY_PUBLIC_URL
|
|
231
|
+
? { gatewayPublicUrl: parsed.GATEWAY_PUBLIC_URL }
|
|
232
|
+
: {}),
|
|
233
|
+
gatewayBindHost: parsed.GATEWAY_BIND_HOST,
|
|
234
|
+
gatewayBindPort: parsed.GATEWAY_BIND_PORT,
|
|
235
|
+
...(parsed.GATEWAY_WS_URL
|
|
236
|
+
? { gatewayWsUrl: parsed.GATEWAY_WS_URL }
|
|
237
|
+
: {}),
|
|
238
|
+
gatewayWsPath: parsed.GATEWAY_WS_PATH,
|
|
239
|
+
...(parsed.GATEWAY_AUTH_TOKEN
|
|
240
|
+
? { gatewayAuthToken: parsed.GATEWAY_AUTH_TOKEN }
|
|
241
|
+
: {}),
|
|
242
|
+
...(parsed.GATEWAY_DATABASE_URL
|
|
243
|
+
? { gatewayDatabaseUrl: parsed.GATEWAY_DATABASE_URL }
|
|
244
|
+
: {}),
|
|
245
|
+
...(parsed.GATEWAY_S3_ENDPOINT
|
|
246
|
+
? { gatewayS3Endpoint: parsed.GATEWAY_S3_ENDPOINT }
|
|
247
|
+
: {}),
|
|
248
|
+
...(parsed.GATEWAY_S3_BUCKET
|
|
249
|
+
? { gatewayS3Bucket: parsed.GATEWAY_S3_BUCKET }
|
|
250
|
+
: {}),
|
|
251
|
+
...(parsed.GATEWAY_S3_ACCESS_KEY
|
|
252
|
+
? { gatewayS3AccessKey: parsed.GATEWAY_S3_ACCESS_KEY }
|
|
253
|
+
: {}),
|
|
254
|
+
...(parsed.GATEWAY_S3_SECRET_KEY
|
|
255
|
+
? { gatewayS3SecretKey: parsed.GATEWAY_S3_SECRET_KEY }
|
|
256
|
+
: {}),
|
|
257
|
+
...(parsed.RMQ_HOST
|
|
258
|
+
? {
|
|
259
|
+
rmq: {
|
|
260
|
+
host: parsed.RMQ_HOST,
|
|
261
|
+
port: parsed.RMQ_PORT ?? 5672,
|
|
262
|
+
...(parsed.RMQ_USER ? { user: parsed.RMQ_USER } : {}),
|
|
263
|
+
...(parsed.RMQ_PASSWORD
|
|
264
|
+
? { password: parsed.RMQ_PASSWORD }
|
|
265
|
+
: {}),
|
|
266
|
+
vhost: parsed.RMQ_VHOST ?? "/",
|
|
267
|
+
exchange: parsed.RMQ_EXCHANGE,
|
|
268
|
+
},
|
|
269
|
+
}
|
|
270
|
+
: {}),
|
|
271
|
+
},
|
|
272
|
+
webapp: {
|
|
273
|
+
enabled: parsed.WEBAPP_ENABLED,
|
|
274
|
+
basePath: parsed.WEBAPP_BASE_PATH,
|
|
275
|
+
...(parsed.WEBAPP_PUBLIC_URL ? { publicUrl: parsed.WEBAPP_PUBLIC_URL } : {}),
|
|
276
|
+
initDataTtlSeconds: parsed.WEBAPP_INITDATA_TTL_SECONDS,
|
|
277
|
+
sessionTtlSeconds: parsed.WEBAPP_SESSION_TTL_SECONDS,
|
|
278
|
+
launchMode: parsed.WEBAPP_LAUNCH_MODE,
|
|
279
|
+
visibleScreens: parsed.WEBAPP_VISIBLE_SCREENS,
|
|
280
|
+
pollIntervalMs: parsed.WEBAPP_POLL_INTERVAL_MS,
|
|
281
|
+
actionCooldownMs: parsed.WEBAPP_ACTION_COOLDOWN_MS,
|
|
282
|
+
},
|
|
283
|
+
exchange: {
|
|
284
|
+
dir: parsed.MCP_XCHANGE_DIR,
|
|
285
|
+
},
|
|
286
|
+
tmux: {
|
|
287
|
+
nudgeEnabled: parsed.TMUX_NUDGE_ENABLED,
|
|
288
|
+
...(parsed.TMUX_SOCKET_PATH ? { socketPath: parsed.TMUX_SOCKET_PATH } : {}),
|
|
289
|
+
nudgeDebounceSeconds: parsed.TMUX_NUDGE_DEBOUNCE_SECONDS,
|
|
290
|
+
nudgeCooldownSeconds: parsed.TMUX_NUDGE_COOLDOWN_SECONDS,
|
|
291
|
+
nudgeMessage: parsed.TMUX_NUDGE_MESSAGE,
|
|
292
|
+
partnerNudgeMessage: parsed.TMUX_PARTNER_NUDGE_MESSAGE,
|
|
293
|
+
captureMode: parsed.TMUX_CAPTURE_MODE,
|
|
294
|
+
captureLines: parsed.TMUX_CAPTURE_LINES,
|
|
295
|
+
},
|
|
296
|
+
browser: {
|
|
297
|
+
enabled: parsed.BROWSER_ENABLED,
|
|
298
|
+
headless: parsed.BROWSER_HEADLESS,
|
|
299
|
+
devtools: parsed.BROWSER_DEVTOOLS,
|
|
300
|
+
...(parsed.BROWSER_ADDRESS ? { address: parsed.BROWSER_ADDRESS } : {}),
|
|
301
|
+
timeoutMs: parsed.BROWSER_TIMEOUT_MS,
|
|
302
|
+
maxEvents: parsed.BROWSER_MAX_EVENTS,
|
|
303
|
+
waitUntil: parsed.BROWSER_WAIT_UNTIL,
|
|
304
|
+
...(parsed.BROWSER_EXECUTABLE_PATH
|
|
305
|
+
? { executablePath: parsed.BROWSER_EXECUTABLE_PATH }
|
|
306
|
+
: {}),
|
|
307
|
+
...(parsed.BROWSER_CHANNEL ? { channel: parsed.BROWSER_CHANNEL } : {}),
|
|
308
|
+
slowMoMs: parsed.BROWSER_SLOW_MO_MS,
|
|
309
|
+
},
|
|
310
|
+
project: {
|
|
311
|
+
...(parsed.PROJECT_NAME ? { name: parsed.PROJECT_NAME } : {}),
|
|
312
|
+
},
|
|
313
|
+
logging: {
|
|
314
|
+
level: parsed.LOG_LEVEL,
|
|
315
|
+
},
|
|
316
|
+
};
|
|
317
|
+
}
|