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 @@
|
|
|
1
|
+
{"version":3,"file":"responseMonitor.js","sourceRoot":"","sources":["../../src/services/responseMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ScheduleRepository, ScheduleRecord } from '../database/scheduleRepository';
|
|
2
|
+
/**
|
|
3
|
+
* Callback type for job execution.
|
|
4
|
+
* Receives schedule record info and executes the actual task.
|
|
5
|
+
*/
|
|
6
|
+
export type JobCallback = (schedule: ScheduleRecord) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Service class for managing scheduled jobs.
|
|
9
|
+
*
|
|
10
|
+
* - On bot startup, loads schedules from SQLite and re-registers them with node-cron
|
|
11
|
+
* - Handles adding, removing, and listing schedules
|
|
12
|
+
* - Provides bulk stop of all schedules (e.g. on shutdown)
|
|
13
|
+
*/
|
|
14
|
+
export declare class ScheduleService {
|
|
15
|
+
private repo;
|
|
16
|
+
/** Map managing active cron tasks (schedule ID -> ScheduledTask) */
|
|
17
|
+
private activeTasks;
|
|
18
|
+
constructor(repo: ScheduleRepository);
|
|
19
|
+
/**
|
|
20
|
+
* Called on bot startup. Loads all enabled schedules from DB and registers/resumes them with node-cron.
|
|
21
|
+
*
|
|
22
|
+
* @param jobCallback - Callback invoked when each job executes
|
|
23
|
+
* @returns Number of restored schedules
|
|
24
|
+
*/
|
|
25
|
+
restoreAll(jobCallback: JobCallback): number;
|
|
26
|
+
/**
|
|
27
|
+
* Add a new schedule.
|
|
28
|
+
* Processes in order: cron expression validation -> DB save -> node-cron registration.
|
|
29
|
+
*
|
|
30
|
+
* @param cronExpression - Cron expression
|
|
31
|
+
* @param prompt - Prompt to execute
|
|
32
|
+
* @param workspacePath - Target workspace path
|
|
33
|
+
* @param jobCallback - Callback for job execution
|
|
34
|
+
* @returns Created schedule record
|
|
35
|
+
* @throws On invalid cron expression
|
|
36
|
+
*/
|
|
37
|
+
addSchedule(cronExpression: string, prompt: string, workspacePath: string, jobCallback: JobCallback): ScheduleRecord;
|
|
38
|
+
/**
|
|
39
|
+
* Remove a schedule.
|
|
40
|
+
* Stops the running cron job and deletes it from the DB.
|
|
41
|
+
*
|
|
42
|
+
* @param scheduleId - ID of the schedule to remove
|
|
43
|
+
* @returns Whether the removal was successful
|
|
44
|
+
*/
|
|
45
|
+
removeSchedule(scheduleId: number): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Stop all running cron jobs (called on bot shutdown)
|
|
48
|
+
*/
|
|
49
|
+
stopAll(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Get a list of all schedules
|
|
52
|
+
*/
|
|
53
|
+
listSchedules(): ScheduleRecord[];
|
|
54
|
+
/**
|
|
55
|
+
* Internal method to register a task with node-cron
|
|
56
|
+
*/
|
|
57
|
+
private registerCronTask;
|
|
58
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
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.ScheduleService = void 0;
|
|
37
|
+
const cron = __importStar(require("node-cron"));
|
|
38
|
+
/**
|
|
39
|
+
* Service class for managing scheduled jobs.
|
|
40
|
+
*
|
|
41
|
+
* - On bot startup, loads schedules from SQLite and re-registers them with node-cron
|
|
42
|
+
* - Handles adding, removing, and listing schedules
|
|
43
|
+
* - Provides bulk stop of all schedules (e.g. on shutdown)
|
|
44
|
+
*/
|
|
45
|
+
class ScheduleService {
|
|
46
|
+
repo;
|
|
47
|
+
/** Map managing active cron tasks (schedule ID -> ScheduledTask) */
|
|
48
|
+
activeTasks = new Map();
|
|
49
|
+
constructor(repo) {
|
|
50
|
+
this.repo = repo;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Called on bot startup. Loads all enabled schedules from DB and registers/resumes them with node-cron.
|
|
54
|
+
*
|
|
55
|
+
* @param jobCallback - Callback invoked when each job executes
|
|
56
|
+
* @returns Number of restored schedules
|
|
57
|
+
*/
|
|
58
|
+
restoreAll(jobCallback) {
|
|
59
|
+
const enabledSchedules = this.repo.findEnabled();
|
|
60
|
+
for (const schedule of enabledSchedules) {
|
|
61
|
+
this.registerCronTask(schedule, jobCallback);
|
|
62
|
+
}
|
|
63
|
+
return enabledSchedules.length;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Add a new schedule.
|
|
67
|
+
* Processes in order: cron expression validation -> DB save -> node-cron registration.
|
|
68
|
+
*
|
|
69
|
+
* @param cronExpression - Cron expression
|
|
70
|
+
* @param prompt - Prompt to execute
|
|
71
|
+
* @param workspacePath - Target workspace path
|
|
72
|
+
* @param jobCallback - Callback for job execution
|
|
73
|
+
* @returns Created schedule record
|
|
74
|
+
* @throws On invalid cron expression
|
|
75
|
+
*/
|
|
76
|
+
addSchedule(cronExpression, prompt, workspacePath, jobCallback) {
|
|
77
|
+
// Validate cron expression
|
|
78
|
+
if (!cron.validate(cronExpression)) {
|
|
79
|
+
throw new Error(`Invalid cron expression: ${cronExpression}`);
|
|
80
|
+
}
|
|
81
|
+
// Save to DB
|
|
82
|
+
const record = this.repo.create({
|
|
83
|
+
cronExpression,
|
|
84
|
+
prompt,
|
|
85
|
+
workspacePath,
|
|
86
|
+
enabled: true,
|
|
87
|
+
});
|
|
88
|
+
// Register with node-cron
|
|
89
|
+
this.registerCronTask(record, jobCallback);
|
|
90
|
+
return record;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Remove a schedule.
|
|
94
|
+
* Stops the running cron job and deletes it from the DB.
|
|
95
|
+
*
|
|
96
|
+
* @param scheduleId - ID of the schedule to remove
|
|
97
|
+
* @returns Whether the removal was successful
|
|
98
|
+
*/
|
|
99
|
+
removeSchedule(scheduleId) {
|
|
100
|
+
// Stop the running cron job
|
|
101
|
+
const task = this.activeTasks.get(scheduleId);
|
|
102
|
+
if (task) {
|
|
103
|
+
task.stop();
|
|
104
|
+
this.activeTasks.delete(scheduleId);
|
|
105
|
+
}
|
|
106
|
+
// Delete from DB
|
|
107
|
+
return this.repo.delete(scheduleId);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Stop all running cron jobs (called on bot shutdown)
|
|
111
|
+
*/
|
|
112
|
+
stopAll() {
|
|
113
|
+
for (const [id, task] of this.activeTasks) {
|
|
114
|
+
task.stop();
|
|
115
|
+
}
|
|
116
|
+
this.activeTasks.clear();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get a list of all schedules
|
|
120
|
+
*/
|
|
121
|
+
listSchedules() {
|
|
122
|
+
return this.repo.findAll();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Internal method to register a task with node-cron
|
|
126
|
+
*/
|
|
127
|
+
registerCronTask(schedule, jobCallback) {
|
|
128
|
+
const task = cron.schedule(schedule.cronExpression, () => {
|
|
129
|
+
jobCallback(schedule);
|
|
130
|
+
});
|
|
131
|
+
this.activeTasks.set(schedule.id, task);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.ScheduleService = ScheduleService;
|
|
135
|
+
//# sourceMappingURL=scheduleService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduleService.js","sourceRoot":"","sources":["../../src/services/scheduleService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AASlC;;;;;;GAMG;AACH,MAAa,eAAe;IAChB,IAAI,CAAqB;IACjC,oEAAoE;IAC5D,WAAW,GAAoC,IAAI,GAAG,EAAE,CAAC;IAEjE,YAAY,IAAwB;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,WAAwB;QACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEjD,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,gBAAgB,CAAC,MAAM,CAAC;IACnC,CAAC;IAED;;;;;;;;;;OAUG;IACI,WAAW,CACd,cAAsB,EACtB,MAAc,EACd,aAAqB,EACrB,WAAwB;QAExB,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,4BAA4B,cAAc,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,aAAa;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5B,cAAc;YACd,MAAM;YACN,aAAa;YACb,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,0BAA0B;QAC1B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,UAAkB;QACpC,4BAA4B;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAED,iBAAiB;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,OAAO;QACV,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,aAAa;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,QAAwB,EAAE,WAAwB;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CACtB,QAAQ,CAAC,cAAc,EACvB,GAAG,EAAE;YACD,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;CACJ;AA9GD,0CA8GC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { CdpService } from './cdpService';
|
|
2
|
+
/** Screenshot capture options */
|
|
3
|
+
export interface CaptureOptions {
|
|
4
|
+
/** Image format (default: 'png') */
|
|
5
|
+
format?: 'png' | 'jpeg' | 'webp';
|
|
6
|
+
/** JPEG quality (0-100, JPEG only) */
|
|
7
|
+
quality?: number;
|
|
8
|
+
/** Clip region to capture */
|
|
9
|
+
clip?: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
scale: number;
|
|
15
|
+
};
|
|
16
|
+
/** Full width capture (including scroll) */
|
|
17
|
+
captureBeyondViewport?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/** Screenshot result */
|
|
20
|
+
export interface CaptureResult {
|
|
21
|
+
/** Whether the capture succeeded */
|
|
22
|
+
success: boolean;
|
|
23
|
+
/** Image data buffer (on success) */
|
|
24
|
+
buffer?: Buffer;
|
|
25
|
+
/** Error message (on failure) */
|
|
26
|
+
error?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ScreenshotServiceOptions {
|
|
29
|
+
/** CDP service instance */
|
|
30
|
+
cdpService: CdpService;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Service for capturing Antigravity UI screenshots
|
|
34
|
+
*
|
|
35
|
+
* Uses the Chrome DevTools Protocol Page.captureScreenshot command
|
|
36
|
+
* to capture the current browser screen and return it as a Buffer sendable to Telegram.
|
|
37
|
+
*/
|
|
38
|
+
export declare class ScreenshotService {
|
|
39
|
+
private cdpService;
|
|
40
|
+
constructor(options: ScreenshotServiceOptions);
|
|
41
|
+
/**
|
|
42
|
+
* Capture the current screen.
|
|
43
|
+
*
|
|
44
|
+
* @param options Capture options
|
|
45
|
+
* @returns Capture result (Buffer on success, error message on failure)
|
|
46
|
+
*/
|
|
47
|
+
capture(options?: CaptureOptions): Promise<CaptureResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Return a Base64-encoded image string (for use in Telegram messages).
|
|
50
|
+
*
|
|
51
|
+
* @param options Capture options
|
|
52
|
+
* @returns Base64-encoded image string (null on failure)
|
|
53
|
+
*/
|
|
54
|
+
getBase64(options?: CaptureOptions): Promise<string | null>;
|
|
55
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScreenshotService = void 0;
|
|
4
|
+
const logger_1 = require("../utils/logger");
|
|
5
|
+
/**
|
|
6
|
+
* Service for capturing Antigravity UI screenshots
|
|
7
|
+
*
|
|
8
|
+
* Uses the Chrome DevTools Protocol Page.captureScreenshot command
|
|
9
|
+
* to capture the current browser screen and return it as a Buffer sendable to Telegram.
|
|
10
|
+
*/
|
|
11
|
+
class ScreenshotService {
|
|
12
|
+
cdpService;
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.cdpService = options.cdpService;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Capture the current screen.
|
|
18
|
+
*
|
|
19
|
+
* @param options Capture options
|
|
20
|
+
* @returns Capture result (Buffer on success, error message on failure)
|
|
21
|
+
*/
|
|
22
|
+
async capture(options = {}) {
|
|
23
|
+
try {
|
|
24
|
+
const params = {
|
|
25
|
+
format: options.format ?? 'png',
|
|
26
|
+
};
|
|
27
|
+
if (options.quality !== undefined) {
|
|
28
|
+
params.quality = options.quality;
|
|
29
|
+
}
|
|
30
|
+
if (options.clip) {
|
|
31
|
+
params.clip = options.clip;
|
|
32
|
+
}
|
|
33
|
+
if (options.captureBeyondViewport !== undefined) {
|
|
34
|
+
params.captureBeyondViewport = options.captureBeyondViewport;
|
|
35
|
+
}
|
|
36
|
+
const result = await this.cdpService.call('Page.captureScreenshot', params);
|
|
37
|
+
const base64Data = result?.data ?? '';
|
|
38
|
+
if (!base64Data) {
|
|
39
|
+
return {
|
|
40
|
+
success: false,
|
|
41
|
+
error: 'Screenshot data was empty.',
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const buffer = Buffer.from(base64Data, 'base64');
|
|
45
|
+
return {
|
|
46
|
+
success: true,
|
|
47
|
+
buffer,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
52
|
+
logger_1.logger.error('[ScreenshotService] Error during capture:', error);
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
error: message,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Return a Base64-encoded image string (for use in Telegram messages).
|
|
61
|
+
*
|
|
62
|
+
* @param options Capture options
|
|
63
|
+
* @returns Base64-encoded image string (null on failure)
|
|
64
|
+
*/
|
|
65
|
+
async getBase64(options = {}) {
|
|
66
|
+
try {
|
|
67
|
+
const params = {
|
|
68
|
+
format: options.format ?? 'png',
|
|
69
|
+
};
|
|
70
|
+
if (options.quality !== undefined) {
|
|
71
|
+
params.quality = options.quality;
|
|
72
|
+
}
|
|
73
|
+
if (options.clip) {
|
|
74
|
+
params.clip = options.clip;
|
|
75
|
+
}
|
|
76
|
+
const result = await this.cdpService.call('Page.captureScreenshot', params);
|
|
77
|
+
return result?.data ?? null;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
logger_1.logger.error('[ScreenshotService] Error while getting Base64:', error);
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.ScreenshotService = ScreenshotService;
|
|
86
|
+
//# sourceMappingURL=screenshotService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshotService.js","sourceRoot":"","sources":["../../src/services/screenshotService.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAoCzC;;;;;GAKG;AACH,MAAa,iBAAiB;IAClB,UAAU,CAAa;IAE/B,YAAY,OAAiC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,UAA0B,EAAE;QACtC,IAAI,CAAC;YACD,MAAM,MAAM,GAAwB;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;aAClC,CAAC;YAEF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACrC,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC/B,CAAC;YAED,IAAI,OAAO,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;gBAC9C,MAAM,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;YACjE,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;YAE5E,MAAM,UAAU,GAAW,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YAE9C,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,4BAA4B;iBACtC,CAAC;YACN,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEjD,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,MAAM;aACT,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,eAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,OAAO;aACjB,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,UAA0B,EAAE;QACxC,IAAI,CAAC;YACD,MAAM,MAAM,GAAwB;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;aAClC,CAAC;YAEF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACrC,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC/B,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;YAC5E,OAAO,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CACJ;AArFD,8CAqFC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Api } from 'grammy';
|
|
2
|
+
export interface EnsureTopicResult {
|
|
3
|
+
topicId: number;
|
|
4
|
+
created: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Manages Telegram Forum Topics for workspace isolation.
|
|
8
|
+
* Each workspace gets its own topic in a forum-enabled supergroup.
|
|
9
|
+
*/
|
|
10
|
+
export declare class TelegramTopicManager {
|
|
11
|
+
private chatId;
|
|
12
|
+
private readonly api;
|
|
13
|
+
private topicCache;
|
|
14
|
+
constructor(api: Api, chatId: number | string);
|
|
15
|
+
/**
|
|
16
|
+
* Ensure a forum topic exists for the given workspace name.
|
|
17
|
+
* Creates a new topic if it doesn't exist; returns existing topic_id otherwise.
|
|
18
|
+
*/
|
|
19
|
+
ensureTopic(workspaceName: string): Promise<EnsureTopicResult>;
|
|
20
|
+
/**
|
|
21
|
+
* Create a session topic under a workspace context.
|
|
22
|
+
*/
|
|
23
|
+
createSessionTopic(sessionName: string): Promise<number>;
|
|
24
|
+
/**
|
|
25
|
+
* Rename a forum topic.
|
|
26
|
+
*/
|
|
27
|
+
renameTopic(topicId: number, newName: string): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Close (archive) a forum topic.
|
|
30
|
+
*/
|
|
31
|
+
closeTopic(topicId: number): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Delete a forum topic.
|
|
34
|
+
*/
|
|
35
|
+
deleteTopic(topicId: number): Promise<void>;
|
|
36
|
+
setChatId(chatId: number | string): void;
|
|
37
|
+
registerTopic(workspaceName: string, topicId: number): void;
|
|
38
|
+
getTopicId(workspaceName: string): number | undefined;
|
|
39
|
+
sanitizeName(name: string): string;
|
|
40
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TelegramTopicManager = void 0;
|
|
4
|
+
const logger_1 = require("../utils/logger");
|
|
5
|
+
/**
|
|
6
|
+
* Manages Telegram Forum Topics for workspace isolation.
|
|
7
|
+
* Each workspace gets its own topic in a forum-enabled supergroup.
|
|
8
|
+
*/
|
|
9
|
+
class TelegramTopicManager {
|
|
10
|
+
chatId;
|
|
11
|
+
api;
|
|
12
|
+
topicCache = new Map();
|
|
13
|
+
constructor(api, chatId) {
|
|
14
|
+
this.api = api;
|
|
15
|
+
this.chatId = chatId;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Ensure a forum topic exists for the given workspace name.
|
|
19
|
+
* Creates a new topic if it doesn't exist; returns existing topic_id otherwise.
|
|
20
|
+
*/
|
|
21
|
+
async ensureTopic(workspaceName) {
|
|
22
|
+
const cached = this.topicCache.get(workspaceName);
|
|
23
|
+
if (cached)
|
|
24
|
+
return { topicId: cached, created: false };
|
|
25
|
+
try {
|
|
26
|
+
const topic = await this.api.createForumTopic(this.chatId, `🗂️ ${workspaceName}`);
|
|
27
|
+
this.topicCache.set(workspaceName, topic.message_thread_id);
|
|
28
|
+
return { topicId: topic.message_thread_id, created: true };
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
logger_1.logger.error(`[TopicManager] Failed to create topic for "${workspaceName}":`, error?.message || error);
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a session topic under a workspace context.
|
|
37
|
+
*/
|
|
38
|
+
async createSessionTopic(sessionName) {
|
|
39
|
+
try {
|
|
40
|
+
const topic = await this.api.createForumTopic(this.chatId, `💬 ${sessionName}`);
|
|
41
|
+
return topic.message_thread_id;
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
logger_1.logger.error(`[TopicManager] Failed to create session topic "${sessionName}":`, error?.message || error);
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Rename a forum topic.
|
|
50
|
+
*/
|
|
51
|
+
async renameTopic(topicId, newName) {
|
|
52
|
+
try {
|
|
53
|
+
await this.api.editForumTopic(this.chatId, topicId, { name: newName });
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
logger_1.logger.error(`[TopicManager] Failed to rename topic ${topicId}:`, error?.message || error);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Close (archive) a forum topic.
|
|
61
|
+
*/
|
|
62
|
+
async closeTopic(topicId) {
|
|
63
|
+
try {
|
|
64
|
+
await this.api.closeForumTopic(this.chatId, topicId);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
logger_1.logger.error(`[TopicManager] Failed to close topic ${topicId}:`, error?.message || error);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Delete a forum topic.
|
|
72
|
+
*/
|
|
73
|
+
async deleteTopic(topicId) {
|
|
74
|
+
try {
|
|
75
|
+
await this.api.deleteForumTopic(this.chatId, topicId);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
logger_1.logger.error(`[TopicManager] Failed to delete topic ${topicId}:`, error?.message || error);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
setChatId(chatId) {
|
|
82
|
+
this.chatId = chatId;
|
|
83
|
+
}
|
|
84
|
+
registerTopic(workspaceName, topicId) {
|
|
85
|
+
this.topicCache.set(workspaceName, topicId);
|
|
86
|
+
}
|
|
87
|
+
getTopicId(workspaceName) {
|
|
88
|
+
return this.topicCache.get(workspaceName);
|
|
89
|
+
}
|
|
90
|
+
sanitizeName(name) {
|
|
91
|
+
let sanitized = name
|
|
92
|
+
.replace(/\/+$/, '')
|
|
93
|
+
.replace(/\//g, '-')
|
|
94
|
+
.replace(/-{2,}/g, '-')
|
|
95
|
+
.replace(/^-+|-+$/g, '');
|
|
96
|
+
if (sanitized.length > 128) {
|
|
97
|
+
sanitized = sanitized.substring(0, 128);
|
|
98
|
+
}
|
|
99
|
+
return sanitized;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.TelegramTopicManager = TelegramTopicManager;
|
|
103
|
+
//# sourceMappingURL=telegramTopicManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegramTopicManager.js","sourceRoot":"","sources":["../../src/services/telegramTopicManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CdpService } from './cdpService';
|
|
2
|
+
/**
|
|
3
|
+
* Service for generating chat session titles.
|
|
4
|
+
*
|
|
5
|
+
* Strategy:
|
|
6
|
+
* 1. Call Antigravity's Gemini Flash API via CdpService (future implementation)
|
|
7
|
+
* 2. Fallback: extract and sanitize leading text from the user prompt
|
|
8
|
+
*/
|
|
9
|
+
export declare class TitleGeneratorService {
|
|
10
|
+
/**
|
|
11
|
+
* Generate a short title from the user's prompt
|
|
12
|
+
* @param prompt User's prompt
|
|
13
|
+
* @param cdpService Optional CdpService instance
|
|
14
|
+
*/
|
|
15
|
+
generateTitle(prompt: string, cdpService?: CdpService): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Generate a title by calling Antigravity's LLM API via CDP
|
|
18
|
+
*/
|
|
19
|
+
private generateViaCdp;
|
|
20
|
+
/**
|
|
21
|
+
* Extract a title from the prompt text (fallback)
|
|
22
|
+
*/
|
|
23
|
+
private extractTitleFromText;
|
|
24
|
+
/**
|
|
25
|
+
* Strip the workspace prefix
|
|
26
|
+
*/
|
|
27
|
+
private stripWorkspacePrefix;
|
|
28
|
+
/**
|
|
29
|
+
* Sanitize text into a format suitable for topic/channel names
|
|
30
|
+
*/
|
|
31
|
+
sanitizeForChannelName(text: string): string;
|
|
32
|
+
}
|