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.
Files changed (200) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +297 -0
  3. package/dist/bin/cli.d.ts +2 -0
  4. package/dist/bin/cli.js +80 -0
  5. package/dist/bin/cli.js.map +1 -0
  6. package/dist/bin/commands/doctor.d.ts +1 -0
  7. package/dist/bin/commands/doctor.js +211 -0
  8. package/dist/bin/commands/doctor.js.map +1 -0
  9. package/dist/bin/commands/open.d.ts +1 -0
  10. package/dist/bin/commands/open.js +187 -0
  11. package/dist/bin/commands/open.js.map +1 -0
  12. package/dist/bin/commands/setup.d.ts +1 -0
  13. package/dist/bin/commands/setup.js +267 -0
  14. package/dist/bin/commands/setup.js.map +1 -0
  15. package/dist/bin/commands/start.d.ts +2 -0
  16. package/dist/bin/commands/start.js +39 -0
  17. package/dist/bin/commands/start.js.map +1 -0
  18. package/dist/bot/index.d.ts +2 -0
  19. package/dist/bot/index.js +1393 -0
  20. package/dist/bot/index.js.map +1 -0
  21. package/dist/commands/chatCommandHandler.d.ts +20 -0
  22. package/dist/commands/chatCommandHandler.js +30 -0
  23. package/dist/commands/chatCommandHandler.js.map +1 -0
  24. package/dist/commands/cleanupCommandHandler.d.ts +21 -0
  25. package/dist/commands/cleanupCommandHandler.js +40 -0
  26. package/dist/commands/cleanupCommandHandler.js.map +1 -0
  27. package/dist/commands/joinCommandHandler.d.ts +19 -0
  28. package/dist/commands/joinCommandHandler.js +27 -0
  29. package/dist/commands/joinCommandHandler.js.map +1 -0
  30. package/dist/commands/messageParser.d.ts +7 -0
  31. package/dist/commands/messageParser.js +29 -0
  32. package/dist/commands/messageParser.js.map +1 -0
  33. package/dist/commands/slashCommandHandler.d.ts +21 -0
  34. package/dist/commands/slashCommandHandler.js +105 -0
  35. package/dist/commands/slashCommandHandler.js.map +1 -0
  36. package/dist/commands/workspaceCommandHandler.d.ts +16 -0
  37. package/dist/commands/workspaceCommandHandler.js +29 -0
  38. package/dist/commands/workspaceCommandHandler.js.map +1 -0
  39. package/dist/database/chatSessionRepository.d.ts +59 -0
  40. package/dist/database/chatSessionRepository.js +110 -0
  41. package/dist/database/chatSessionRepository.js.map +1 -0
  42. package/dist/database/scheduleRepository.d.ts +60 -0
  43. package/dist/database/scheduleRepository.js +106 -0
  44. package/dist/database/scheduleRepository.js.map +1 -0
  45. package/dist/database/templateRepository.d.ts +51 -0
  46. package/dist/database/templateRepository.js +90 -0
  47. package/dist/database/templateRepository.js.map +1 -0
  48. package/dist/database/workspaceBindingRepository.d.ts +48 -0
  49. package/dist/database/workspaceBindingRepository.js +92 -0
  50. package/dist/database/workspaceBindingRepository.js.map +1 -0
  51. package/dist/index.d.ts +1 -0
  52. package/dist/index.js +11 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/middleware/auth.d.ts +5 -0
  55. package/dist/middleware/auth.js +14 -0
  56. package/dist/middleware/auth.js.map +1 -0
  57. package/dist/middleware/sanitize.d.ts +1 -0
  58. package/dist/middleware/sanitize.js +18 -0
  59. package/dist/middleware/sanitize.js.map +1 -0
  60. package/dist/services/antigravityLauncher.d.ts +7 -0
  61. package/dist/services/antigravityLauncher.js +94 -0
  62. package/dist/services/antigravityLauncher.js.map +1 -0
  63. package/dist/services/approvalDetector.d.ts +97 -0
  64. package/dist/services/approvalDetector.js +394 -0
  65. package/dist/services/approvalDetector.js.map +1 -0
  66. package/dist/services/assistantDomExtractor.d.ts +49 -0
  67. package/dist/services/assistantDomExtractor.js +340 -0
  68. package/dist/services/assistantDomExtractor.js.map +1 -0
  69. package/dist/services/autoAcceptService.d.ts +14 -0
  70. package/dist/services/autoAcceptService.js +81 -0
  71. package/dist/services/autoAcceptService.js.map +1 -0
  72. package/dist/services/cdpBridgeManager.d.ts +50 -0
  73. package/dist/services/cdpBridgeManager.js +355 -0
  74. package/dist/services/cdpBridgeManager.js.map +1 -0
  75. package/dist/services/cdpConnectionPool.d.ts +88 -0
  76. package/dist/services/cdpConnectionPool.js +235 -0
  77. package/dist/services/cdpConnectionPool.js.map +1 -0
  78. package/dist/services/cdpService.d.ts +214 -0
  79. package/dist/services/cdpService.js +1423 -0
  80. package/dist/services/cdpService.js.map +1 -0
  81. package/dist/services/chatSessionService.d.ts +89 -0
  82. package/dist/services/chatSessionService.js +738 -0
  83. package/dist/services/chatSessionService.js.map +1 -0
  84. package/dist/services/errorPopupDetector.d.ts +89 -0
  85. package/dist/services/errorPopupDetector.js +274 -0
  86. package/dist/services/errorPopupDetector.js.map +1 -0
  87. package/dist/services/modeService.d.ts +44 -0
  88. package/dist/services/modeService.js +74 -0
  89. package/dist/services/modeService.js.map +1 -0
  90. package/dist/services/modelService.d.ts +36 -0
  91. package/dist/services/modelService.js +64 -0
  92. package/dist/services/modelService.js.map +1 -0
  93. package/dist/services/planningDetector.d.ts +87 -0
  94. package/dist/services/planningDetector.js +321 -0
  95. package/dist/services/planningDetector.js.map +1 -0
  96. package/dist/services/processManager.d.ts +18 -0
  97. package/dist/services/processManager.js +62 -0
  98. package/dist/services/processManager.js.map +1 -0
  99. package/dist/services/progressSender.d.ts +20 -0
  100. package/dist/services/progressSender.js +65 -0
  101. package/dist/services/progressSender.js.map +1 -0
  102. package/dist/services/promptDispatcher.d.ts +38 -0
  103. package/dist/services/promptDispatcher.js +42 -0
  104. package/dist/services/promptDispatcher.js.map +1 -0
  105. package/dist/services/quotaService.d.ts +21 -0
  106. package/dist/services/quotaService.js +191 -0
  107. package/dist/services/quotaService.js.map +1 -0
  108. package/dist/services/responseMonitor.d.ts +129 -0
  109. package/dist/services/responseMonitor.js +996 -0
  110. package/dist/services/responseMonitor.js.map +1 -0
  111. package/dist/services/scheduleService.d.ts +58 -0
  112. package/dist/services/scheduleService.js +135 -0
  113. package/dist/services/scheduleService.js.map +1 -0
  114. package/dist/services/screenshotService.d.ts +55 -0
  115. package/dist/services/screenshotService.js +86 -0
  116. package/dist/services/screenshotService.js.map +1 -0
  117. package/dist/services/telegramTopicManager.d.ts +40 -0
  118. package/dist/services/telegramTopicManager.js +103 -0
  119. package/dist/services/telegramTopicManager.js.map +1 -0
  120. package/dist/services/titleGeneratorService.d.ts +32 -0
  121. package/dist/services/titleGeneratorService.js +114 -0
  122. package/dist/services/titleGeneratorService.js.map +1 -0
  123. package/dist/services/updateCheckService.d.ts +16 -0
  124. package/dist/services/updateCheckService.js +148 -0
  125. package/dist/services/updateCheckService.js.map +1 -0
  126. package/dist/services/userMessageDetector.d.ts +57 -0
  127. package/dist/services/userMessageDetector.js +222 -0
  128. package/dist/services/userMessageDetector.js.map +1 -0
  129. package/dist/services/workspaceService.d.ts +33 -0
  130. package/dist/services/workspaceService.js +65 -0
  131. package/dist/services/workspaceService.js.map +1 -0
  132. package/dist/ui/autoAcceptUi.d.ts +6 -0
  133. package/dist/ui/autoAcceptUi.js +22 -0
  134. package/dist/ui/autoAcceptUi.js.map +1 -0
  135. package/dist/ui/modeUi.d.ts +12 -0
  136. package/dist/ui/modeUi.js +40 -0
  137. package/dist/ui/modeUi.js.map +1 -0
  138. package/dist/ui/modelsUi.d.ts +12 -0
  139. package/dist/ui/modelsUi.js +101 -0
  140. package/dist/ui/modelsUi.js.map +1 -0
  141. package/dist/ui/projectListUi.d.ts +11 -0
  142. package/dist/ui/projectListUi.js +59 -0
  143. package/dist/ui/projectListUi.js.map +1 -0
  144. package/dist/ui/screenshotUi.d.ts +6 -0
  145. package/dist/ui/screenshotUi.js +28 -0
  146. package/dist/ui/screenshotUi.js.map +1 -0
  147. package/dist/ui/sessionPickerUi.d.ts +8 -0
  148. package/dist/ui/sessionPickerUi.js +32 -0
  149. package/dist/ui/sessionPickerUi.js.map +1 -0
  150. package/dist/ui/templateUi.d.ts +5 -0
  151. package/dist/ui/templateUi.js +44 -0
  152. package/dist/ui/templateUi.js.map +1 -0
  153. package/dist/utils/cdpPorts.d.ts +2 -0
  154. package/dist/utils/cdpPorts.js +6 -0
  155. package/dist/utils/cdpPorts.js.map +1 -0
  156. package/dist/utils/config.d.ts +14 -0
  157. package/dist/utils/config.js +12 -0
  158. package/dist/utils/config.js.map +1 -0
  159. package/dist/utils/configLoader.d.ts +23 -0
  160. package/dist/utils/configLoader.js +153 -0
  161. package/dist/utils/configLoader.js.map +1 -0
  162. package/dist/utils/htmlToTelegramMarkdown.d.ts +6 -0
  163. package/dist/utils/htmlToTelegramMarkdown.js +189 -0
  164. package/dist/utils/htmlToTelegramMarkdown.js.map +1 -0
  165. package/dist/utils/i18n.d.ts +3 -0
  166. package/dist/utils/i18n.js +78 -0
  167. package/dist/utils/i18n.js.map +1 -0
  168. package/dist/utils/imageHandler.d.ts +35 -0
  169. package/dist/utils/imageHandler.js +155 -0
  170. package/dist/utils/imageHandler.js.map +1 -0
  171. package/dist/utils/lockfile.d.ts +7 -0
  172. package/dist/utils/lockfile.js +117 -0
  173. package/dist/utils/lockfile.js.map +1 -0
  174. package/dist/utils/logger.d.ts +23 -0
  175. package/dist/utils/logger.js +85 -0
  176. package/dist/utils/logger.js.map +1 -0
  177. package/dist/utils/logo.d.ts +1 -0
  178. package/dist/utils/logo.js +14 -0
  179. package/dist/utils/logo.js.map +1 -0
  180. package/dist/utils/metadataExtractor.d.ts +5 -0
  181. package/dist/utils/metadataExtractor.js +16 -0
  182. package/dist/utils/metadataExtractor.js.map +1 -0
  183. package/dist/utils/pathUtils.d.ts +23 -0
  184. package/dist/utils/pathUtils.js +58 -0
  185. package/dist/utils/pathUtils.js.map +1 -0
  186. package/dist/utils/processLogBuffer.d.ts +17 -0
  187. package/dist/utils/processLogBuffer.js +108 -0
  188. package/dist/utils/processLogBuffer.js.map +1 -0
  189. package/dist/utils/streamMessageFormatter.d.ts +18 -0
  190. package/dist/utils/streamMessageFormatter.js +91 -0
  191. package/dist/utils/streamMessageFormatter.js.map +1 -0
  192. package/dist/utils/telegramFormatter.d.ts +37 -0
  193. package/dist/utils/telegramFormatter.js +445 -0
  194. package/dist/utils/telegramFormatter.js.map +1 -0
  195. package/dist/utils/voiceHandler.d.ts +23 -0
  196. package/dist/utils/voiceHandler.js +169 -0
  197. package/dist/utils/voiceHandler.js.map +1 -0
  198. package/locales/en.json +85 -0
  199. package/locales/ja.json +109 -0
  200. 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
+ }