remoat 0.2.0
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/LICENSE +21 -0
- package/README.md +297 -0
- package/dist/bin/cli.d.ts +2 -0
- package/dist/bin/cli.js +80 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/bin/commands/doctor.d.ts +1 -0
- package/dist/bin/commands/doctor.js +211 -0
- package/dist/bin/commands/doctor.js.map +1 -0
- package/dist/bin/commands/open.d.ts +1 -0
- package/dist/bin/commands/open.js +187 -0
- package/dist/bin/commands/open.js.map +1 -0
- package/dist/bin/commands/setup.d.ts +1 -0
- package/dist/bin/commands/setup.js +267 -0
- package/dist/bin/commands/setup.js.map +1 -0
- package/dist/bin/commands/start.d.ts +2 -0
- package/dist/bin/commands/start.js +39 -0
- package/dist/bin/commands/start.js.map +1 -0
- package/dist/bot/index.d.ts +2 -0
- package/dist/bot/index.js +1393 -0
- package/dist/bot/index.js.map +1 -0
- package/dist/commands/chatCommandHandler.d.ts +20 -0
- package/dist/commands/chatCommandHandler.js +30 -0
- package/dist/commands/chatCommandHandler.js.map +1 -0
- package/dist/commands/cleanupCommandHandler.d.ts +21 -0
- package/dist/commands/cleanupCommandHandler.js +40 -0
- package/dist/commands/cleanupCommandHandler.js.map +1 -0
- package/dist/commands/joinCommandHandler.d.ts +19 -0
- package/dist/commands/joinCommandHandler.js +27 -0
- package/dist/commands/joinCommandHandler.js.map +1 -0
- package/dist/commands/messageParser.d.ts +7 -0
- package/dist/commands/messageParser.js +29 -0
- package/dist/commands/messageParser.js.map +1 -0
- package/dist/commands/slashCommandHandler.d.ts +21 -0
- package/dist/commands/slashCommandHandler.js +105 -0
- package/dist/commands/slashCommandHandler.js.map +1 -0
- package/dist/commands/workspaceCommandHandler.d.ts +16 -0
- package/dist/commands/workspaceCommandHandler.js +29 -0
- package/dist/commands/workspaceCommandHandler.js.map +1 -0
- package/dist/database/chatSessionRepository.d.ts +59 -0
- package/dist/database/chatSessionRepository.js +110 -0
- package/dist/database/chatSessionRepository.js.map +1 -0
- package/dist/database/scheduleRepository.d.ts +60 -0
- package/dist/database/scheduleRepository.js +106 -0
- package/dist/database/scheduleRepository.js.map +1 -0
- package/dist/database/templateRepository.d.ts +51 -0
- package/dist/database/templateRepository.js +90 -0
- package/dist/database/templateRepository.js.map +1 -0
- package/dist/database/workspaceBindingRepository.d.ts +48 -0
- package/dist/database/workspaceBindingRepository.js +92 -0
- package/dist/database/workspaceBindingRepository.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/auth.d.ts +5 -0
- package/dist/middleware/auth.js +14 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/sanitize.d.ts +1 -0
- package/dist/middleware/sanitize.js +18 -0
- package/dist/middleware/sanitize.js.map +1 -0
- package/dist/services/antigravityLauncher.d.ts +7 -0
- package/dist/services/antigravityLauncher.js +94 -0
- package/dist/services/antigravityLauncher.js.map +1 -0
- package/dist/services/approvalDetector.d.ts +97 -0
- package/dist/services/approvalDetector.js +394 -0
- package/dist/services/approvalDetector.js.map +1 -0
- package/dist/services/assistantDomExtractor.d.ts +49 -0
- package/dist/services/assistantDomExtractor.js +340 -0
- package/dist/services/assistantDomExtractor.js.map +1 -0
- package/dist/services/autoAcceptService.d.ts +14 -0
- package/dist/services/autoAcceptService.js +81 -0
- package/dist/services/autoAcceptService.js.map +1 -0
- package/dist/services/cdpBridgeManager.d.ts +50 -0
- package/dist/services/cdpBridgeManager.js +355 -0
- package/dist/services/cdpBridgeManager.js.map +1 -0
- package/dist/services/cdpConnectionPool.d.ts +88 -0
- package/dist/services/cdpConnectionPool.js +235 -0
- package/dist/services/cdpConnectionPool.js.map +1 -0
- package/dist/services/cdpService.d.ts +214 -0
- package/dist/services/cdpService.js +1423 -0
- package/dist/services/cdpService.js.map +1 -0
- package/dist/services/chatSessionService.d.ts +89 -0
- package/dist/services/chatSessionService.js +738 -0
- package/dist/services/chatSessionService.js.map +1 -0
- package/dist/services/errorPopupDetector.d.ts +89 -0
- package/dist/services/errorPopupDetector.js +274 -0
- package/dist/services/errorPopupDetector.js.map +1 -0
- package/dist/services/modeService.d.ts +44 -0
- package/dist/services/modeService.js +74 -0
- package/dist/services/modeService.js.map +1 -0
- package/dist/services/modelService.d.ts +36 -0
- package/dist/services/modelService.js +64 -0
- package/dist/services/modelService.js.map +1 -0
- package/dist/services/planningDetector.d.ts +87 -0
- package/dist/services/planningDetector.js +321 -0
- package/dist/services/planningDetector.js.map +1 -0
- package/dist/services/processManager.d.ts +18 -0
- package/dist/services/processManager.js +62 -0
- package/dist/services/processManager.js.map +1 -0
- package/dist/services/progressSender.d.ts +20 -0
- package/dist/services/progressSender.js +65 -0
- package/dist/services/progressSender.js.map +1 -0
- package/dist/services/promptDispatcher.d.ts +38 -0
- package/dist/services/promptDispatcher.js +42 -0
- package/dist/services/promptDispatcher.js.map +1 -0
- package/dist/services/quotaService.d.ts +21 -0
- package/dist/services/quotaService.js +191 -0
- package/dist/services/quotaService.js.map +1 -0
- package/dist/services/responseMonitor.d.ts +129 -0
- package/dist/services/responseMonitor.js +996 -0
- package/dist/services/responseMonitor.js.map +1 -0
- package/dist/services/scheduleService.d.ts +58 -0
- package/dist/services/scheduleService.js +135 -0
- package/dist/services/scheduleService.js.map +1 -0
- package/dist/services/screenshotService.d.ts +55 -0
- package/dist/services/screenshotService.js +86 -0
- package/dist/services/screenshotService.js.map +1 -0
- package/dist/services/telegramTopicManager.d.ts +40 -0
- package/dist/services/telegramTopicManager.js +103 -0
- package/dist/services/telegramTopicManager.js.map +1 -0
- package/dist/services/titleGeneratorService.d.ts +32 -0
- package/dist/services/titleGeneratorService.js +114 -0
- package/dist/services/titleGeneratorService.js.map +1 -0
- package/dist/services/updateCheckService.d.ts +16 -0
- package/dist/services/updateCheckService.js +148 -0
- package/dist/services/updateCheckService.js.map +1 -0
- package/dist/services/userMessageDetector.d.ts +57 -0
- package/dist/services/userMessageDetector.js +222 -0
- package/dist/services/userMessageDetector.js.map +1 -0
- package/dist/services/workspaceService.d.ts +33 -0
- package/dist/services/workspaceService.js +65 -0
- package/dist/services/workspaceService.js.map +1 -0
- package/dist/ui/autoAcceptUi.d.ts +6 -0
- package/dist/ui/autoAcceptUi.js +22 -0
- package/dist/ui/autoAcceptUi.js.map +1 -0
- package/dist/ui/modeUi.d.ts +12 -0
- package/dist/ui/modeUi.js +40 -0
- package/dist/ui/modeUi.js.map +1 -0
- package/dist/ui/modelsUi.d.ts +12 -0
- package/dist/ui/modelsUi.js +101 -0
- package/dist/ui/modelsUi.js.map +1 -0
- package/dist/ui/projectListUi.d.ts +11 -0
- package/dist/ui/projectListUi.js +59 -0
- package/dist/ui/projectListUi.js.map +1 -0
- package/dist/ui/screenshotUi.d.ts +6 -0
- package/dist/ui/screenshotUi.js +28 -0
- package/dist/ui/screenshotUi.js.map +1 -0
- package/dist/ui/sessionPickerUi.d.ts +8 -0
- package/dist/ui/sessionPickerUi.js +32 -0
- package/dist/ui/sessionPickerUi.js.map +1 -0
- package/dist/ui/templateUi.d.ts +5 -0
- package/dist/ui/templateUi.js +44 -0
- package/dist/ui/templateUi.js.map +1 -0
- package/dist/utils/cdpPorts.d.ts +2 -0
- package/dist/utils/cdpPorts.js +6 -0
- package/dist/utils/cdpPorts.js.map +1 -0
- package/dist/utils/config.d.ts +14 -0
- package/dist/utils/config.js +12 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/configLoader.d.ts +23 -0
- package/dist/utils/configLoader.js +153 -0
- package/dist/utils/configLoader.js.map +1 -0
- package/dist/utils/htmlToTelegramMarkdown.d.ts +6 -0
- package/dist/utils/htmlToTelegramMarkdown.js +189 -0
- package/dist/utils/htmlToTelegramMarkdown.js.map +1 -0
- package/dist/utils/i18n.d.ts +3 -0
- package/dist/utils/i18n.js +78 -0
- package/dist/utils/i18n.js.map +1 -0
- package/dist/utils/imageHandler.d.ts +35 -0
- package/dist/utils/imageHandler.js +155 -0
- package/dist/utils/imageHandler.js.map +1 -0
- package/dist/utils/lockfile.d.ts +7 -0
- package/dist/utils/lockfile.js +117 -0
- package/dist/utils/lockfile.js.map +1 -0
- package/dist/utils/logger.d.ts +23 -0
- package/dist/utils/logger.js +85 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/logo.d.ts +1 -0
- package/dist/utils/logo.js +14 -0
- package/dist/utils/logo.js.map +1 -0
- package/dist/utils/metadataExtractor.d.ts +5 -0
- package/dist/utils/metadataExtractor.js +16 -0
- package/dist/utils/metadataExtractor.js.map +1 -0
- package/dist/utils/pathUtils.d.ts +23 -0
- package/dist/utils/pathUtils.js +58 -0
- package/dist/utils/pathUtils.js.map +1 -0
- package/dist/utils/processLogBuffer.d.ts +17 -0
- package/dist/utils/processLogBuffer.js +108 -0
- package/dist/utils/processLogBuffer.js.map +1 -0
- package/dist/utils/streamMessageFormatter.d.ts +18 -0
- package/dist/utils/streamMessageFormatter.js +91 -0
- package/dist/utils/streamMessageFormatter.js.map +1 -0
- package/dist/utils/telegramFormatter.d.ts +37 -0
- package/dist/utils/telegramFormatter.js +445 -0
- package/dist/utils/telegramFormatter.js.map +1 -0
- package/dist/utils/voiceHandler.d.ts +23 -0
- package/dist/utils/voiceHandler.js +169 -0
- package/dist/utils/voiceHandler.js.map +1 -0
- package/locales/en.json +85 -0
- package/locales/ja.json +109 -0
- package/package.json +84 -0
|
@@ -0,0 +1,169 @@
|
|
|
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.checkWhisperAvailability = checkWhisperAvailability;
|
|
37
|
+
exports.downloadTelegramVoice = downloadTelegramVoice;
|
|
38
|
+
exports.transcribeVoice = transcribeVoice;
|
|
39
|
+
const fs = __importStar(require("fs/promises"));
|
|
40
|
+
const os = __importStar(require("os"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const logger_1 = require("./logger");
|
|
43
|
+
const TEMP_VOICE_DIR = path.join(os.tmpdir(), 'remoat-voice');
|
|
44
|
+
/**
|
|
45
|
+
* Check whether Whisper transcription is available.
|
|
46
|
+
* Returns null if ready, or a user-facing setup message if not.
|
|
47
|
+
*/
|
|
48
|
+
function checkWhisperAvailability() {
|
|
49
|
+
// 1. Check nodejs-whisper package
|
|
50
|
+
try {
|
|
51
|
+
require.resolve('nodejs-whisper');
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return ('🔇 Voice transcription is not set up.\n\n' +
|
|
55
|
+
'To enable it, run:\n' +
|
|
56
|
+
' npm install nodejs-whisper ffmpeg-static\n' +
|
|
57
|
+
' npx nodejs-whisper download');
|
|
58
|
+
}
|
|
59
|
+
// 2. Check whisper-cli binary
|
|
60
|
+
const cppDir = path.join(path.dirname(require.resolve('nodejs-whisper/package.json')), 'cpp', 'whisper.cpp', 'build', 'bin');
|
|
61
|
+
try {
|
|
62
|
+
const stat = require('fs').statSync(path.join(cppDir, 'whisper-cli'));
|
|
63
|
+
if (!stat.isFile())
|
|
64
|
+
throw new Error();
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return ('🔇 Whisper is installed but not compiled.\n\n' +
|
|
68
|
+
'Run this to build it:\n' +
|
|
69
|
+
' cd node_modules/nodejs-whisper/cpp/whisper.cpp\n' +
|
|
70
|
+
' cmake -B build && cmake --build build --config Release\n\n' +
|
|
71
|
+
'Requires cmake (brew install cmake / apt install cmake).');
|
|
72
|
+
}
|
|
73
|
+
// 3. Check model file
|
|
74
|
+
const modelsDir = path.join(path.dirname(require.resolve('nodejs-whisper/package.json')), 'models');
|
|
75
|
+
try {
|
|
76
|
+
const files = require('fs').readdirSync(modelsDir);
|
|
77
|
+
if (!files.some((f) => f.includes('base.en')))
|
|
78
|
+
throw new Error();
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return ('🔇 Whisper model not downloaded.\n\n' +
|
|
82
|
+
'Run this once to fetch the base.en model (~140 MB):\n' +
|
|
83
|
+
' npx nodejs-whisper download');
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Download a voice message OGG file from the Telegram Bot API to a local temp directory.
|
|
89
|
+
*/
|
|
90
|
+
async function downloadTelegramVoice(botApi, botToken, voice) {
|
|
91
|
+
await fs.mkdir(TEMP_VOICE_DIR, { recursive: true });
|
|
92
|
+
const file = await botApi.getFile(voice.file_id);
|
|
93
|
+
const filePath = file.file_path;
|
|
94
|
+
if (!filePath) {
|
|
95
|
+
throw new Error('Telegram returned no file_path for voice message');
|
|
96
|
+
}
|
|
97
|
+
const url = `https://api.telegram.org/file/bot${botToken}/${filePath}`;
|
|
98
|
+
const response = await fetch(url);
|
|
99
|
+
if (!response.ok) {
|
|
100
|
+
throw new Error(`Voice download failed (status=${response.status})`);
|
|
101
|
+
}
|
|
102
|
+
const bytes = Buffer.from(await response.arrayBuffer());
|
|
103
|
+
if (bytes.length === 0) {
|
|
104
|
+
throw new Error('Voice download returned empty file');
|
|
105
|
+
}
|
|
106
|
+
const ext = path.extname(filePath) || '.ogg';
|
|
107
|
+
const localPath = path.join(TEMP_VOICE_DIR, `${Date.now()}-${voice.file_unique_id}${ext}`);
|
|
108
|
+
await fs.writeFile(localPath, bytes);
|
|
109
|
+
logger_1.logger.info(`[VoiceHandler] Downloaded voice message to ${localPath} (${bytes.length} bytes)`);
|
|
110
|
+
return localPath;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Transcribe a voice file using nodejs-whisper (whisper.cpp bindings).
|
|
114
|
+
* Returns the trimmed transcript string, or null if transcription fails.
|
|
115
|
+
*/
|
|
116
|
+
async function transcribeVoice(voicePath) {
|
|
117
|
+
try {
|
|
118
|
+
// Set FFMPEG_PATH from ffmpeg-static if not already set, so nodejs-whisper
|
|
119
|
+
// can convert OGG→WAV without requiring a system ffmpeg install.
|
|
120
|
+
if (!process.env.FFMPEG_PATH) {
|
|
121
|
+
try {
|
|
122
|
+
const ffmpegStatic = require('ffmpeg-static');
|
|
123
|
+
if (ffmpegStatic) {
|
|
124
|
+
process.env.FFMPEG_PATH = ffmpegStatic;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// ffmpeg-static not installed; rely on system ffmpeg
|
|
129
|
+
logger_1.logger.warn('[VoiceHandler] ffmpeg-static not found, relying on system ffmpeg');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const { nodewhisper } = require('nodejs-whisper');
|
|
133
|
+
const result = await nodewhisper(voicePath, {
|
|
134
|
+
modelName: 'base.en',
|
|
135
|
+
autoDownloadModelName: 'base.en',
|
|
136
|
+
removeWavFileAfterTranscription: true,
|
|
137
|
+
whisperOptions: {
|
|
138
|
+
outputInText: true,
|
|
139
|
+
outputInSrt: false,
|
|
140
|
+
outputInVtt: false,
|
|
141
|
+
outputInCsv: false,
|
|
142
|
+
outputInJson: false,
|
|
143
|
+
wordTimestamps: false,
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
const raw = typeof result === 'string'
|
|
147
|
+
? result.trim()
|
|
148
|
+
: String(result ?? '').trim();
|
|
149
|
+
// Strip Whisper timestamp prefixes like "[00:00:00.000 --> 00:00:02.000]"
|
|
150
|
+
const transcript = raw
|
|
151
|
+
.replace(/\[[\d:.]+\s*-->\s*[\d:.]+\]\s*/g, '')
|
|
152
|
+
.trim();
|
|
153
|
+
if (!transcript) {
|
|
154
|
+
logger_1.logger.warn('[VoiceHandler] Whisper returned empty transcript');
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
logger_1.logger.info(`[VoiceHandler] Transcribed: "${transcript.slice(0, 100)}${transcript.length > 100 ? '...' : ''}"`);
|
|
158
|
+
return transcript;
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
logger_1.logger.error('[VoiceHandler] Transcription failed:', error?.message || error);
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
// Clean up the original voice file
|
|
166
|
+
await fs.unlink(voicePath).catch(() => { });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=voiceHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voiceHandler.js","sourceRoot":"","sources":["../../src/utils/voiceHandler.ts"],"names":[],"mappings":"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"}
|
package/locales/en.json
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Auto-approved": "Auto-approved",
|
|
3
|
+
"Auto-approve failed": "Auto-approve failed",
|
|
4
|
+
"Antigravity is requesting approval for an action": "Antigravity is requesting approval for an action",
|
|
5
|
+
"Auto-approve mode": "Auto-approve mode",
|
|
6
|
+
"ON": "ON",
|
|
7
|
+
"Workspace": "Workspace",
|
|
8
|
+
"Result": "Result",
|
|
9
|
+
"Executed Always Allow/Allow": "Executed Always Allow/Allow",
|
|
10
|
+
"Manual approval required": "Manual approval required",
|
|
11
|
+
"Approval Required": "Approval Required",
|
|
12
|
+
"Allow button": "Allow button",
|
|
13
|
+
"Allow Chat button": "Allow This Conversation button",
|
|
14
|
+
"In Dropdown": "In Dropdown",
|
|
15
|
+
"Deny button": "Deny button",
|
|
16
|
+
"(None)": "(None)",
|
|
17
|
+
"Allow": "Allow",
|
|
18
|
+
"Allow Chat": "Allow This Conversation",
|
|
19
|
+
"Deny": "Deny",
|
|
20
|
+
"🖼️ Detected generated images (${files.length})": "🖼️ Detected generated images (${files.length})",
|
|
21
|
+
"Waiting for output...": "Waiting for output...",
|
|
22
|
+
"🖼️ Attached image fallback": "🖼️ Attached image fallback",
|
|
23
|
+
"Failed to attach image directly, resending via URL reference.": "Failed to attach image directly, resending via URL reference.",
|
|
24
|
+
"⏱️ Elapsed: 0s | Waiting to start": "⏱️ Elapsed: 0s | Waiting to start",
|
|
25
|
+
"⏱️ Elapsed: ${elapsed}s | Generating": "⏱️ Elapsed: ${elapsed}s | Generating",
|
|
26
|
+
"⏱️ Time: ${elapsed}s | Complete": "⏱️ Time: ${elapsed}s | Complete",
|
|
27
|
+
"Failed to extract response. Use `/screenshot` to verify.": "Failed to extract response. Use `/screenshot` to verify.",
|
|
28
|
+
"(Untitled)": "(Untitled)",
|
|
29
|
+
"${timeoutText}\\n\\n[Monitor Ended] Timeout after 5 minutes.": "${timeoutText}\\n\\n[Monitor Ended] Timeout after 5 minutes.",
|
|
30
|
+
"Error occurred during processing: ${e.message}": "Error occurred during processing: ${e.message}",
|
|
31
|
+
"You do not have permission.": "You do not have permission.",
|
|
32
|
+
"Approval detector not found.": "Approval detector not found.",
|
|
33
|
+
"⚠️ This command can only be used in a server.": "⚠️ This command can only be used in a server.",
|
|
34
|
+
"⚠️ Please execute in a text channel.": "⚠️ Please execute in a text channel.",
|
|
35
|
+
"⚠️ Failed to switch project: ${e.message}": "⚠️ Failed to switch project: ${e.message}",
|
|
36
|
+
"⚠️ CDP pool is not initialized or cannot connect to workspace.": "⚠️ CDP pool is not initialized or cannot connect to workspace.",
|
|
37
|
+
"💬 Started a new session": "💬 Started a new session",
|
|
38
|
+
"Created a new chat session\\n→ <#${newChannelId}>": "Created a new chat session\\n→ <#${newChannelId}>",
|
|
39
|
+
"Session": "Session",
|
|
40
|
+
"Project": "Project",
|
|
41
|
+
"(CDP Disconnected)": "(CDP Disconnected)",
|
|
42
|
+
"💬 Chat Session Info": "💬 Chat Session Info",
|
|
43
|
+
"Title": "Title",
|
|
44
|
+
"Status": "Status",
|
|
45
|
+
"🟢 Active": "🟢 Active",
|
|
46
|
+
"⚪ Inactive": "⚪ Inactive",
|
|
47
|
+
" ← **Current**": " ← **Current**",
|
|
48
|
+
"Current session": "Current session",
|
|
49
|
+
"#${session.sessionNumber} — ${session.displayName || '(Unset)'}": "#${session.sessionNumber} — ${session.displayName || '(Unset)'}",
|
|
50
|
+
"Total sessions": "Total sessions",
|
|
51
|
+
"**Sessions:**\\n${sessionList}": "**Sessions:**\\n${sessionList}",
|
|
52
|
+
"⚠️ Unknown command: /${commandName}": "⚠️ Unknown command: /${commandName}",
|
|
53
|
+
"✅ Mode changed to **${result.mode}**.": "✅ Mode changed to **${result.mode}**.",
|
|
54
|
+
"⚠️ Invalid mode.": "⚠️ Invalid mode.",
|
|
55
|
+
"📝 No templates registered.": "📝 No templates registered.",
|
|
56
|
+
"✅ Template **${name}** registered.": "✅ Template **${name}** registered.",
|
|
57
|
+
"⚠️ Failed to register template. Name might be duplicated.": "⚠️ Failed to register template. Name might be duplicated.",
|
|
58
|
+
"🗑️ Template **${name}** deleted.": "🗑️ Template **${name}** deleted.",
|
|
59
|
+
"⚠️ Template **${name}** not found.": "⚠️ Template **${name}** not found.",
|
|
60
|
+
"⚠️ Template **${templateName}** not found.": "⚠️ Template **${templateName}** not found.",
|
|
61
|
+
"📝 Invoked template **${templateName}**.\\nStarting process with this prompt.": "📝 Invoked template **${templateName}**.\\nStarting process with this prompt.",
|
|
62
|
+
"Select a project to auto-create a category and session channel": "Select a project to auto-create a category and session channel",
|
|
63
|
+
"Select a project...": "Select a project...",
|
|
64
|
+
"Select a project... (Showing 25 of ${workspaces.length})": "Select a project... (Showing 25 of ${workspaces.length})",
|
|
65
|
+
"⚠️ Project **${workspacePath}** already exists\\n": "⚠️ Project **${workspacePath}** already exists\\n",
|
|
66
|
+
"Full Path": "Full Path",
|
|
67
|
+
"⏳ **${workspacePath}** is being created. Please wait.": "⏳ **${workspacePath}** is being created. Please wait.",
|
|
68
|
+
"✅ Project **${workspacePath}** created\\n": "✅ Project **${workspacePath}** created\\n",
|
|
69
|
+
"❌ Invalid project name: ${e.message}": "❌ Invalid project name: ${e.message}",
|
|
70
|
+
"⚠️ Project **${name}** already exists → ${channelLinks}": "⚠️ Project **${name}** already exists → ${channelLinks}",
|
|
71
|
+
"⏳ **${name}** is being created.": "⏳ **${name}** is being created.",
|
|
72
|
+
"✅ Project **${name}** created\\n": "✅ Project **${name}** created\\n",
|
|
73
|
+
"⚠️ Invalid argument. Usage: `/autoaccept [on/off/status]`": "⚠️ Invalid argument. Usage: `/autoaccept [on/off/status]`",
|
|
74
|
+
"⚙️ Auto-accept mode: **${this.enabled ? 'ON' : 'OFF'}**": "⚙️ Auto-accept mode: **${this.enabled ? 'ON' : 'OFF'}**",
|
|
75
|
+
"ℹ️ Auto-accept mode is already **ON**.": "ℹ️ Auto-accept mode is already **ON**.",
|
|
76
|
+
"✅ Auto-accept mode turned **ON**. Future dialogs will be auto-allowed.": "✅ Auto-accept mode turned **ON**. Future dialogs will be auto-allowed.",
|
|
77
|
+
"ℹ️ Auto-accept mode is already **OFF**.": "ℹ️ Auto-accept mode is already **OFF**.",
|
|
78
|
+
"✅ Auto-accept mode turned **OFF**. Returned to manual approval.": "✅ Auto-accept mode turned **OFF**. Returned to manual approval.",
|
|
79
|
+
"⚠️ Model name not specified. Available models: ": "⚠️ Model name not specified. Available models: ",
|
|
80
|
+
"⚠️ Invalid model \"${modelName}\". Available models: ${AVAILABLE_MODELS.join(', ')}": "⚠️ Invalid model \"${modelName}\". Available models: ${AVAILABLE_MODELS.join(', ')}",
|
|
81
|
+
"Fast Mode — for simple tasks": "Fast Mode — for simple tasks",
|
|
82
|
+
"Plan Mode — for complex step-by-step tasks": "Plan Mode — for complex step-by-step tasks",
|
|
83
|
+
"⚠️ Mode name not specified. Available modes: ": "⚠️ Mode name not specified. Available modes: ",
|
|
84
|
+
"⚠️ Invalid mode \"${modeName}\". Available modes: ${AVAILABLE_MODES.join(', ')}": "⚠️ Invalid mode \"${modeName}\". Available modes: ${AVAILABLE_MODES.join(', ')}"
|
|
85
|
+
}
|
package/locales/ja.json
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Display and change execution mode via a dropdown": "実行モードをドロップダウンで表示・変更します",
|
|
3
|
+
"Display and change available LLM models": "利用可能なLLMモデルを表示・変更します",
|
|
4
|
+
"Name of the model to change to": "変更先のモデル名",
|
|
5
|
+
"List, invoke, register, or delete templates": "テンプレートの一覧表示・呼び出し・登録・削除を行います",
|
|
6
|
+
"Display registered template list": "登録済みテンプレート一覧を表示します",
|
|
7
|
+
"Invoke and execute a template": "テンプレートを呼び出して実行します",
|
|
8
|
+
"Template name": "テンプレート名",
|
|
9
|
+
"Register a new template": "新しいテンプレートを登録します",
|
|
10
|
+
"Prompt content of the template": "テンプレートのプロンプト内容",
|
|
11
|
+
"Delete a template": "テンプレートを削除します",
|
|
12
|
+
"Name of the template to delete": "削除するテンプレート名",
|
|
13
|
+
"Interrupt active LLM generation": "動作中のLLM生成を中断します",
|
|
14
|
+
"Capture current Antigravity screen": "Antigravityの現在の画面をキャプチャします",
|
|
15
|
+
"Display overall bot status including connection, model, mode": "Botの接続状態・現在のモデル・モードなどの全体ステータスを表示します",
|
|
16
|
+
"Toggle auto-allow mode for approval dialogs": "承認ダイアログの自動許可モードを切り替えます",
|
|
17
|
+
"on / off / status (default: status)": "on / off / status(省略時はstatus)",
|
|
18
|
+
"List projects, on select auto-create channel and bind": "プロジェクト一覧を表示し、選択するとチャンネルを自動作成してバインドします",
|
|
19
|
+
"Display project list": "プロジェクト一覧を表示します",
|
|
20
|
+
"Create a new project": "新しいプロジェクトを作成します",
|
|
21
|
+
"Name of the project to create": "作成するプロジェクト名",
|
|
22
|
+
"Start a new chat session in the current project": "現在のプロジェクトに新しいチャットセッションを開始します",
|
|
23
|
+
"Display current chat session info and session list": "現在のチャットセッション情報とセッション一覧を表示します",
|
|
24
|
+
"Display list of available commands": "利用可能なコマンド一覧を表示します",
|
|
25
|
+
"❌ Failed to register slash commands:": "❌ スラッシュコマンドの登録に失敗しました:",
|
|
26
|
+
"Auto-approved": "自動承認しました",
|
|
27
|
+
"Auto-approve failed": "自動承認に失敗しました",
|
|
28
|
+
"Antigravity is requesting approval for an action": "Antigravityがアクションの承認を求めています",
|
|
29
|
+
"Auto-approve mode": "自動承認モード",
|
|
30
|
+
"ON": "ON",
|
|
31
|
+
"Workspace": "ワークスペース",
|
|
32
|
+
"Result": "結果",
|
|
33
|
+
"Executed Always Allow/Allow": "常に許可/許可を実行",
|
|
34
|
+
"Manual approval required": "手動承認が必要です",
|
|
35
|
+
"Approval Required": "承認が必要です",
|
|
36
|
+
"Allow button": "許可ボタン",
|
|
37
|
+
"Allow Chat button": "この会話を許可ボタン",
|
|
38
|
+
"In Dropdown": "ドロップダウン内",
|
|
39
|
+
"Deny button": "拒否ボタン",
|
|
40
|
+
"(None)": "(なし)",
|
|
41
|
+
"Allow": "許可",
|
|
42
|
+
"Allow Chat": "この会話を許可",
|
|
43
|
+
"Deny": "拒否",
|
|
44
|
+
"🖼️ Detected generated images (${files.length})": "🖼️ 生成画像を検出しました (${files.length}件)",
|
|
45
|
+
"Waiting for output...": "出力を待機中...",
|
|
46
|
+
"🖼️ Attached image fallback": "🖼️ 添付画像のフォールバック",
|
|
47
|
+
"Failed to attach image directly, resending via URL reference.": "画像の直接添付に失敗したため、URL参照形式で再送します。",
|
|
48
|
+
"⏱️ Elapsed: 0s | Waiting to start": "⏱️ 経過時間: 0秒 | 生成開始待ち",
|
|
49
|
+
"⏱️ Elapsed: ${elapsed}s | Generating": "⏱️ 経過時間: ${elapsed}秒 | 生成中",
|
|
50
|
+
"⏱️ Time: ${elapsed}s | Complete": "⏱️ 所要時間: ${elapsed}秒 | 完了",
|
|
51
|
+
"Failed to extract response. Use `/screenshot` to verify.": "レスポンスの抽出に失敗しました。`/screenshot` で確認してください。",
|
|
52
|
+
"(Untitled)": "(無題)",
|
|
53
|
+
"${timeoutText}\\n\\n[Monitor Ended] Timeout after 5 minutes.": "${timeoutText}\\n\\n[監視終了] 5分経過によりタイムアウトしました。",
|
|
54
|
+
"Error occurred during processing: ${e.message}": "処理中にエラーが発生しました: ${e.message}",
|
|
55
|
+
"You do not have permission.": "権限がありません。",
|
|
56
|
+
"Approval detector not found.": "承認検出器が見つかりません。",
|
|
57
|
+
"⚠️ This command can only be used in a server.": "⚠️ サーバー内でのみ使用できます。",
|
|
58
|
+
"⚠️ Please execute in a text channel.": "⚠️ テキストチャンネルで実行してください。",
|
|
59
|
+
"⚠️ Failed to switch project: ${e.message}": "⚠️ プロジェクト切替に失敗しました: ${e.message}",
|
|
60
|
+
"⚠️ CDP pool is not initialized or cannot connect to workspace.": "⚠️ CDPプールが初期化されていないか、ワークスペースに接続できません。",
|
|
61
|
+
"💬 Started a new session": "💬 新しいセッションを開始しました",
|
|
62
|
+
"Created a new chat session\\n→ <#${newChannelId}>": "新しいチャットセッションを作成しました\\n→ <#${newChannelId}>",
|
|
63
|
+
"Session": "セッション",
|
|
64
|
+
"Project": "プロジェクト",
|
|
65
|
+
"(CDP Disconnected)": "(CDP未接続)",
|
|
66
|
+
"💬 Chat Session Info": "💬 チャットセッション情報",
|
|
67
|
+
"Title": "タイトル",
|
|
68
|
+
"Status": "ステータス",
|
|
69
|
+
"🟢 Active": "🟢 アクティブ",
|
|
70
|
+
"⚪ Inactive": "⚪ 非アクティブ",
|
|
71
|
+
" ← **Current**": " ← **現在**",
|
|
72
|
+
"Current session": "現在のセッション",
|
|
73
|
+
"#${session.sessionNumber} — ${session.displayName || '(Unset)'}": "#${session.sessionNumber} — ${session.displayName || '(未設定)'}",
|
|
74
|
+
"Total sessions": "合計セッション数",
|
|
75
|
+
"**Sessions:**\\n${sessionList}": "**セッション一覧:**\\n${sessionList}",
|
|
76
|
+
"⚠️ Unknown command: /${commandName}": "⚠️ 未知のコマンドです: /${commandName}",
|
|
77
|
+
"✅ Mode changed to **${result.mode}**.": "✅ モードを **${result.mode}** に変更しました。",
|
|
78
|
+
"⚠️ Invalid mode.": "⚠️ 無効なモードです。",
|
|
79
|
+
"📝 No templates registered.": "📝 登録されているテンプレートはありません。",
|
|
80
|
+
"✅ Template **${name}** registered.": "✅ テンプレート「**${name}**」を登録しました。",
|
|
81
|
+
"⚠️ Failed to register template. Name might be duplicated.": "⚠️ テンプレートの登録に失敗しました。名前が重複している可能性があります。",
|
|
82
|
+
"🗑️ Template **${name}** deleted.": "🗑️ テンプレート「**${name}**」を削除しました。",
|
|
83
|
+
"⚠️ Template **${name}** not found.": "⚠️ テンプレート「**${name}**」は見つかりません。",
|
|
84
|
+
"⚠️ Template **${templateName}** not found.": "⚠️ テンプレート「**${templateName}**」は見つかりません。",
|
|
85
|
+
"📝 Invoked template **${templateName}**.\\nStarting process with this prompt.": "📝 テンプレート「**${templateName}**」を呼び出しました。\\nこのプロンプトで処理を開始します。",
|
|
86
|
+
"Select a project to auto-create a category and session channel": "プロジェクトを選択すると、専用カテゴリとセッションチャンネルを自動作成します",
|
|
87
|
+
"Select a project...": "プロジェクトを選択...",
|
|
88
|
+
"Select a project... (Showing 25 of ${workspaces.length})": "プロジェクトを選択... (${workspaces.length}件中25件表示)",
|
|
89
|
+
"⚠️ Project **${workspacePath}** already exists\\n": "⚠️ **${workspacePath}** のプロジェクトは既に作成されています\\n",
|
|
90
|
+
"Full Path": "フルパス",
|
|
91
|
+
"⏳ **${workspacePath}** is being created. Please wait.": "⏳ **${workspacePath}** は現在作成処理中です。しばらくお待ちください。",
|
|
92
|
+
"✅ Project **${workspacePath}** created\\n": "✅ **${workspacePath}** のプロジェクトを作成しました\\n",
|
|
93
|
+
"❌ Invalid project name: ${e.message}": "❌ 無効なプロジェクト名です: ${e.message}",
|
|
94
|
+
"⚠️ Project **${name}** already exists → ${channelLinks}": "⚠️ プロジェクト **${name}** は既に存在します → ${channelLinks}",
|
|
95
|
+
"⏳ **${name}** is being created.": "⏳ **${name}** は現在作成処理中です。",
|
|
96
|
+
"✅ Project **${name}** created\\n": "✅ **${name}** のプロジェクトを作成しました\\n",
|
|
97
|
+
"⚠️ Invalid argument. Usage: `/autoaccept [on/off/status]`": "⚠️ 無効な引数です。使用方法: `/autoaccept [on/off/status]`",
|
|
98
|
+
"⚙️ Auto-accept mode: **${this.enabled ? 'ON' : 'OFF'}**": "⚙️ 自動承認モード: **${this.enabled ? 'ON' : 'OFF'}**",
|
|
99
|
+
"ℹ️ Auto-accept mode is already **ON**.": "ℹ️ 自動承認モードはすでに **ON** です。",
|
|
100
|
+
"✅ Auto-accept mode turned **ON**. Future dialogs will be auto-allowed.": "✅ 自動承認モードを **ON** にしました。以後の承認ダイアログは自動で許可します。",
|
|
101
|
+
"ℹ️ Auto-accept mode is already **OFF**.": "ℹ️ 自動承認モードはすでに **OFF** です。",
|
|
102
|
+
"✅ Auto-accept mode turned **OFF**. Returned to manual approval.": "✅ 自動承認モードを **OFF** にしました。以後は手動承認に戻ります。",
|
|
103
|
+
"⚠️ Model name not specified. Available models: ": "⚠️ モデル名が指定されていません。利用可能なモデル: ",
|
|
104
|
+
"⚠️ Invalid model \"${modelName}\". Available models: ${AVAILABLE_MODELS.join(', ')}": "⚠️ 無効なモデル \"${modelName}\" です。利用可能なモデル: ${AVAILABLE_MODELS.join(', ')}",
|
|
105
|
+
"Fast Mode — for simple tasks": "高速応答モード — シンプルなタスク向け",
|
|
106
|
+
"Plan Mode — for complex step-by-step tasks": "計画モード — 複雑なタスクを段階的に実行",
|
|
107
|
+
"⚠️ Mode name not specified. Available modes: ": "⚠️ モード名が指定されていません。利用可能なモード: ",
|
|
108
|
+
"⚠️ Invalid mode \"${modeName}\". Available modes: ${AVAILABLE_MODES.join(', ')}": "⚠️ 無効なモード \"${modeName}\" です。利用可能なモード: ${AVAILABLE_MODES.join(', ')}"
|
|
109
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "remoat",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Control Antigravity from anywhere — a local Telegram Bot that lets you remotely operate Antigravity on your home PC from your smartphone.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"remoat": "dist/bin/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist/",
|
|
11
|
+
"locales/",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=18.0.0"
|
|
17
|
+
},
|
|
18
|
+
"directories": {
|
|
19
|
+
"doc": "docs"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"test": "npm run test:unit",
|
|
23
|
+
"test:unit": "jest",
|
|
24
|
+
"test:integration": "jest tests/e2e.bot.test.ts",
|
|
25
|
+
"test:watch": "jest --watch",
|
|
26
|
+
"build": "tsc",
|
|
27
|
+
"start": "ts-node src/bin/cli.ts",
|
|
28
|
+
"start:built": "node dist/bin/cli.js",
|
|
29
|
+
"dev": "ts-node-dev --respawn src/bin/cli.ts",
|
|
30
|
+
"docs:diagram": "mmdc -i docs/diagrams/architecture.mmd -o docs/images/architecture.svg -b transparent",
|
|
31
|
+
"prepublishOnly": "npm run build && npm run test"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"telegram",
|
|
35
|
+
"telegram-bot",
|
|
36
|
+
"bot",
|
|
37
|
+
"ai",
|
|
38
|
+
"antigravity",
|
|
39
|
+
"remote-control",
|
|
40
|
+
"cdp",
|
|
41
|
+
"chrome-devtools-protocol",
|
|
42
|
+
"ai-coding",
|
|
43
|
+
"developer-tools",
|
|
44
|
+
"automation",
|
|
45
|
+
"grammy"
|
|
46
|
+
],
|
|
47
|
+
"author": "Remoat Contributors",
|
|
48
|
+
"license": "MIT",
|
|
49
|
+
"repository": {
|
|
50
|
+
"type": "git",
|
|
51
|
+
"url": "git+https://github.com/optimistengineer/Remoat.git"
|
|
52
|
+
},
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/optimistengineer/Remoat/issues"
|
|
55
|
+
},
|
|
56
|
+
"homepage": "https://github.com/optimistengineer/Remoat#readme",
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"better-sqlite3": "^12.6.2",
|
|
59
|
+
"commander": "^14.0.3",
|
|
60
|
+
"dotenv": "^17.3.1",
|
|
61
|
+
"grammy": "^1.40.1",
|
|
62
|
+
"node-cron": "^4.2.1",
|
|
63
|
+
"ws": "^8.19.0"
|
|
64
|
+
},
|
|
65
|
+
"optionalDependencies": {
|
|
66
|
+
"ffmpeg-static": "^5.3.0",
|
|
67
|
+
"nodejs-whisper": "^0.2.9"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@mermaid-js/mermaid-cli": "^11.12.0",
|
|
71
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
72
|
+
"@types/jest": "^30.0.0",
|
|
73
|
+
"@types/node": "^25.3.0",
|
|
74
|
+
"@types/node-cron": "^3.0.11",
|
|
75
|
+
"@types/ws": "^8.18.1",
|
|
76
|
+
"jest": "^30.2.0",
|
|
77
|
+
"jest-environment-jsdom": "^30.2.0",
|
|
78
|
+
"jsdom": "^28.1.0",
|
|
79
|
+
"ts-jest": "^29.4.6",
|
|
80
|
+
"ts-node": "^10.9.2",
|
|
81
|
+
"ts-node-dev": "^2.0.0",
|
|
82
|
+
"typescript": "^5.9.3"
|
|
83
|
+
}
|
|
84
|
+
}
|