remote-copilot-mcp 2.4.0 → 2.5.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/dist/index.js CHANGED
@@ -36,6 +36,7 @@ import { peekThreadMessages, readThreadMessages, startDispatcher } from "./dispa
36
36
  import { analyzeVoiceEmotion, textToSpeech, transcribeAudio, TTS_VOICES } from "./openai.js";
37
37
  import { TelegramClient } from "./telegram.js";
38
38
  import { describeADV, errorMessage, errorResult, IMAGE_EXTENSIONS, OPENAI_TTS_MAX_CHARS } from "./utils.js";
39
+ import { addSchedule, checkDueTasks, generateTaskId, listSchedules, removeSchedule } from "./scheduler.js";
39
40
  const esmRequire = createRequire(import.meta.url);
40
41
  const { version: PKG_VERSION } = esmRequire("../package.json");
41
42
  const telegramifyMarkdown = esmRequire("telegramify-markdown");
@@ -212,6 +213,9 @@ function resolveThreadId(args) {
212
213
  // the agent hasn't silently died.
213
214
  let lastKeepAliveSentAt = Date.now();
214
215
  const KEEP_ALIVE_INTERVAL_MS = 30 * 60 * 1000; // 30 minutes
216
+ // Timestamp of the last message received from the operator.
217
+ // Used by the scheduler to detect idle periods.
218
+ let lastOperatorMessageAt = Date.now();
215
219
  // ---------------------------------------------------------------------------
216
220
  // MCP Server
217
221
  // ---------------------------------------------------------------------------
@@ -351,6 +355,53 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
351
355
  required: ["text"],
352
356
  },
353
357
  },
358
+ {
359
+ name: "schedule_wake_up",
360
+ description: "Schedule a wake-up task that will inject a prompt into your session at a specific time or after operator inactivity. " +
361
+ "Use this to become proactive — run tests, check CI, review code — without waiting for the operator. " +
362
+ "Three modes: (1) 'runAt' for a one-shot at a specific ISO 8601 time, " +
363
+ "(2) 'cron' for recurring tasks (5-field cron: minute hour day month weekday), " +
364
+ "(3) 'afterIdleMinutes' to fire after N minutes of operator silence. " +
365
+ "Use 'action: list' to see all scheduled tasks, or 'action: remove' with a taskId to cancel one.",
366
+ inputSchema: {
367
+ type: "object",
368
+ properties: {
369
+ action: {
370
+ type: "string",
371
+ description: "Action to perform: 'add' (default), 'list', or 'remove'.",
372
+ enum: ["add", "list", "remove"],
373
+ },
374
+ threadId: {
375
+ type: "number",
376
+ description: "Thread ID for the session (optional if already set).",
377
+ },
378
+ label: {
379
+ type: "string",
380
+ description: "Short human-readable label for the task (e.g. 'morning CI check').",
381
+ },
382
+ prompt: {
383
+ type: "string",
384
+ description: "The prompt to inject when the task fires. Be specific about what to do.",
385
+ },
386
+ runAt: {
387
+ type: "string",
388
+ description: "ISO 8601 timestamp for one-shot execution (e.g. '2026-03-15T09:00:00Z').",
389
+ },
390
+ cron: {
391
+ type: "string",
392
+ description: "5-field cron expression for recurring tasks (e.g. '0 9 * * *' = every day at 9am).",
393
+ },
394
+ afterIdleMinutes: {
395
+ type: "number",
396
+ description: "Fire after this many minutes of operator silence (e.g. 60).",
397
+ },
398
+ taskId: {
399
+ type: "string",
400
+ description: "Task ID to remove (for action: 'remove').",
401
+ },
402
+ },
403
+ },
404
+ },
354
405
  ],
355
406
  }));
356
407
  // ── Tool implementations ────────────────────────────────────────────────────
@@ -361,6 +412,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
361
412
  * VS Code restart by passing it to start_session.
362
413
  */
363
414
  function getReminders(threadId) {
415
+ const now = new Date();
416
+ const uptimeMin = Math.round((Date.now() - sessionStartedAt) / 60000);
417
+ const timeStr = now.toLocaleString("en-GB", {
418
+ day: "2-digit", month: "short", year: "numeric",
419
+ hour: "2-digit", minute: "2-digit", hour12: false,
420
+ timeZoneName: "short",
421
+ });
364
422
  const threadHint = threadId !== undefined
365
423
  ? `\n- Active Telegram thread ID: **${threadId}** — if this session is restarted, call start_session with threadId=${threadId} to resume this topic.`
366
424
  : "";
@@ -369,7 +427,8 @@ function getReminders(threadId) {
369
427
  "\n2. **Subagents**: Use subagents to execute each item of your todo list, but YOU own the plan and all decisions. Spin up parallel subagents if the work can be done concurrently." +
370
428
  "\n3. **Reporting**: Call `report_progress` after completing EACH todo item. The operator is remote and CANNOT see your work unless you explicitly report it. Silence = failure." +
371
429
  "\n4. **Never stop**: When all work is done, call `remote_copilot_wait_for_instructions` immediately. Never summarize or stop." +
372
- threadHint);
430
+ threadHint +
431
+ `\n- Current time: ${timeStr} | Session uptime: ${uptimeMin}m`);
373
432
  }
374
433
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
375
434
  const { name, arguments: args } = request.params;
@@ -501,6 +560,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
501
560
  while (Date.now() < deadline) {
502
561
  const stored = readThreadMessages(effectiveThreadId);
503
562
  if (stored.length > 0) {
563
+ // Update the operator activity timestamp for idle detection.
564
+ lastOperatorMessageAt = Date.now();
504
565
  // Clear only the consumed IDs from the previewed set (scoped clear).
505
566
  // This is safe because Node.js is single-threaded — no report_progress
506
567
  // call can interleave between readThreadMessages and this cleanup.
@@ -675,6 +736,23 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
675
736
  }
676
737
  // Timeout elapsed with no actionable message.
677
738
  const now = new Date().toISOString();
739
+ // Check for scheduled wake-up tasks.
740
+ if (effectiveThreadId !== undefined) {
741
+ const dueTask = checkDueTasks(effectiveThreadId, lastOperatorMessageAt, false);
742
+ if (dueTask) {
743
+ return {
744
+ content: [
745
+ {
746
+ type: "text",
747
+ text: `⏰ **Scheduled task fired: "${dueTask.task.label}"**\n\n` +
748
+ `This task was scheduled by you. Execute it now using subagents, then report progress and continue waiting.\n\n` +
749
+ `Task prompt: ${dueTask.prompt}` +
750
+ getReminders(effectiveThreadId),
751
+ },
752
+ ],
753
+ };
754
+ }
755
+ }
678
756
  // Keep-alive ping: send a periodic heartbeat to Telegram so the operator
679
757
  // knows the session is still alive even with no activity.
680
758
  let keepAliveSent = false;
@@ -692,16 +770,20 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
692
770
  // Non-fatal.
693
771
  }
694
772
  }
773
+ const idleMinutes = Math.round((Date.now() - lastOperatorMessageAt) / 60000);
695
774
  return {
696
775
  content: [
697
776
  {
698
777
  type: "text",
699
- text: `[Poll #${callNumber} — timeout at ${now} — elapsed ${WAIT_TIMEOUT_MINUTES}m — session uptime ${Math.round((Date.now() - sessionStartedAt) / 60000)}m]` +
778
+ text: `[Poll #${callNumber} — timeout at ${now} — elapsed ${WAIT_TIMEOUT_MINUTES}m — session uptime ${Math.round((Date.now() - sessionStartedAt) / 60000)}m — operator idle ${idleMinutes}m]` +
700
779
  (keepAliveSent ? ` Keep-alive ping sent.` : "") +
701
780
  ` No new instructions received. ` +
702
781
  `YOU MUST call remote_copilot_wait_for_instructions again RIGHT NOW to continue listening. ` +
703
782
  `Do NOT summarize, stop, or say the session is idle. ` +
704
783
  `Just call the tool again immediately.` +
784
+ (idleMinutes >= 60
785
+ ? `\nYou have an opportunity to schedule a wake-up time for yourself and do something useful (or do whatever you want). Use schedule_wake_up to set a task.`
786
+ : "") +
705
787
  getReminders(effectiveThreadId),
706
788
  },
707
789
  ],
@@ -897,6 +979,90 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
897
979
  return errorResult(`Error: Failed to send voice message: ${errorMessage(err)}`);
898
980
  }
899
981
  }
982
+ // ── schedule_wake_up ────────────────────────────────────────────────────
983
+ if (name === "schedule_wake_up") {
984
+ const typedArgs = (args ?? {});
985
+ const effectiveThreadId = resolveThreadId(typedArgs);
986
+ if (effectiveThreadId === undefined) {
987
+ return errorResult("Error: No active session. Call start_session first.");
988
+ }
989
+ const action = typeof typedArgs.action === "string" ? typedArgs.action : "add";
990
+ // --- List ---
991
+ if (action === "list") {
992
+ const tasks = listSchedules(effectiveThreadId);
993
+ if (tasks.length === 0) {
994
+ return {
995
+ content: [{
996
+ type: "text",
997
+ text: "No scheduled tasks for this thread." + getReminders(effectiveThreadId),
998
+ }],
999
+ };
1000
+ }
1001
+ const lines = tasks.map(t => {
1002
+ const trigger = t.cron ? `cron: ${t.cron}` : t.runAt ? `at: ${t.runAt}` : `idle: ${t.afterIdleMinutes}min`;
1003
+ const lastFired = t.lastFiredAt ? ` (last: ${t.lastFiredAt})` : "";
1004
+ return `- **${t.label}** [${t.id}] — ${trigger}${lastFired}\n Prompt: ${t.prompt.slice(0, 100)}${t.prompt.length > 100 ? "…" : ""}`;
1005
+ });
1006
+ return {
1007
+ content: [{
1008
+ type: "text",
1009
+ text: `**Scheduled tasks (${tasks.length}):**\n\n${lines.join("\n\n")}` + getReminders(effectiveThreadId),
1010
+ }],
1011
+ };
1012
+ }
1013
+ // --- Remove ---
1014
+ if (action === "remove") {
1015
+ const taskId = typeof typedArgs.taskId === "string" ? typedArgs.taskId : "";
1016
+ if (!taskId) {
1017
+ return errorResult("Error: 'taskId' is required for remove action. Use action: 'list' to see task IDs.");
1018
+ }
1019
+ const removed = removeSchedule(effectiveThreadId, taskId);
1020
+ return {
1021
+ content: [{
1022
+ type: "text",
1023
+ text: removed
1024
+ ? `Task ${taskId} removed.` + getReminders(effectiveThreadId)
1025
+ : `Task ${taskId} not found.` + getReminders(effectiveThreadId),
1026
+ }],
1027
+ };
1028
+ }
1029
+ // --- Add ---
1030
+ const label = typeof typedArgs.label === "string" ? typedArgs.label : "unnamed task";
1031
+ const prompt = typeof typedArgs.prompt === "string" ? typedArgs.prompt : "";
1032
+ if (!prompt) {
1033
+ return errorResult("Error: 'prompt' is required — this is the text that will be injected when the task fires.");
1034
+ }
1035
+ const runAt = typeof typedArgs.runAt === "string" ? typedArgs.runAt : undefined;
1036
+ const cron = typeof typedArgs.cron === "string" ? typedArgs.cron : undefined;
1037
+ const afterIdleMinutes = typeof typedArgs.afterIdleMinutes === "number" ? typedArgs.afterIdleMinutes : undefined;
1038
+ if (!runAt && !cron && afterIdleMinutes == null) {
1039
+ return errorResult("Error: Specify at least one trigger: 'runAt' (ISO timestamp), 'cron' (5-field), or 'afterIdleMinutes' (number).");
1040
+ }
1041
+ const task = {
1042
+ id: generateTaskId(),
1043
+ threadId: effectiveThreadId,
1044
+ prompt,
1045
+ label,
1046
+ runAt,
1047
+ cron,
1048
+ afterIdleMinutes,
1049
+ oneShot: runAt != null && !cron,
1050
+ createdAt: new Date().toISOString(),
1051
+ };
1052
+ addSchedule(task);
1053
+ const triggerDesc = cron
1054
+ ? `recurring (cron: ${cron})`
1055
+ : runAt
1056
+ ? `one-shot at ${runAt}`
1057
+ : `after ${afterIdleMinutes}min of operator silence`;
1058
+ return {
1059
+ content: [{
1060
+ type: "text",
1061
+ text: `✅ Scheduled: **${label}** [${task.id}]\nTrigger: ${triggerDesc}\nPrompt: ${prompt}` +
1062
+ getReminders(effectiveThreadId),
1063
+ }],
1064
+ };
1065
+ }
900
1066
  // Unknown tool
901
1067
  return errorResult(`Unknown tool: ${name}`);
902
1068
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Scheduler for wake-up tasks.
3
+ *
4
+ * Supports two types of scheduled tasks:
5
+ * - Cron-based: fires at specific times (e.g. "0 9 * * *" = 9am daily)
6
+ * - Delay-based: fires after N minutes of operator silence
7
+ *
8
+ * Schedule state is persisted to disk per-thread so tasks survive restarts.
9
+ * The wait_for_instructions polling loop checks for due tasks on each timeout.
10
+ */
11
+ export interface ScheduledTask {
12
+ /** Unique task ID (auto-generated). */
13
+ id: string;
14
+ /** Thread ID this task is scoped to. */
15
+ threadId: number;
16
+ /** The prompt to inject when the task fires. */
17
+ prompt: string;
18
+ /** Human-readable label for the task. */
19
+ label: string;
20
+ /** When set, task fires after this many minutes of operator silence. */
21
+ afterIdleMinutes?: number;
22
+ /** When set, ISO 8601 timestamp for one-shot scheduled execution. */
23
+ runAt?: string;
24
+ /** When set, cron expression for recurring execution (minute hour day month weekday). */
25
+ cron?: string;
26
+ /** Timestamp of last execution (ISO string), for cron dedup. */
27
+ lastFiredAt?: string;
28
+ /** If true, the task is a one-shot and should be removed after firing. */
29
+ oneShot: boolean;
30
+ /** Creation timestamp (ISO string). */
31
+ createdAt: string;
32
+ }
33
+ export declare function loadSchedules(threadId: number): ScheduledTask[];
34
+ export declare function saveSchedules(threadId: number, tasks: ScheduledTask[]): void;
35
+ export declare function addSchedule(task: ScheduledTask): void;
36
+ export declare function removeSchedule(threadId: number, taskId: string): boolean;
37
+ export declare function listSchedules(threadId: number): ScheduledTask[];
38
+ /**
39
+ * Generate a unique task ID.
40
+ */
41
+ export declare function generateTaskId(): string;
42
+ export declare function matchesCron(cronExpr: string, date: Date): boolean;
43
+ /**
44
+ * Check for due tasks and return the first one that should fire.
45
+ *
46
+ * @param threadId - Thread to check schedules for
47
+ * @param lastOperatorMessageAt - Timestamp of last operator message (for idle detection)
48
+ * @param hasNewMessages - Whether operator has sent messages since last check
49
+ * @returns The due task's prompt, or null if nothing is due
50
+ */
51
+ export declare function checkDueTasks(threadId: number, lastOperatorMessageAt: number, hasNewMessages: boolean): {
52
+ prompt: string;
53
+ task: ScheduledTask;
54
+ } | null;
55
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,WAAW,aAAa;IAC1B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACrB;AAUD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAU/D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAI5E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAIrD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAOxE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAE/D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAcD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAWjE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CACzB,QAAQ,EAAE,MAAM,EAChB,qBAAqB,EAAE,MAAM,EAC7B,cAAc,EAAE,OAAO,GACxB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAmFhD"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Scheduler for wake-up tasks.
3
+ *
4
+ * Supports two types of scheduled tasks:
5
+ * - Cron-based: fires at specific times (e.g. "0 9 * * *" = 9am daily)
6
+ * - Delay-based: fires after N minutes of operator silence
7
+ *
8
+ * Schedule state is persisted to disk per-thread so tasks survive restarts.
9
+ * The wait_for_instructions polling loop checks for due tasks on each timeout.
10
+ */
11
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
12
+ import { homedir } from "os";
13
+ import { join } from "path";
14
+ const SCHEDULES_DIR = join(homedir(), ".remote-copilot-mcp", "schedules");
15
+ function schedulesFilePath(threadId) {
16
+ return join(SCHEDULES_DIR, `${threadId}.json`);
17
+ }
18
+ function ensureDir() {
19
+ mkdirSync(SCHEDULES_DIR, { recursive: true });
20
+ }
21
+ export function loadSchedules(threadId) {
22
+ ensureDir();
23
+ const file = schedulesFilePath(threadId);
24
+ try {
25
+ if (!existsSync(file))
26
+ return [];
27
+ const raw = readFileSync(file, "utf8");
28
+ return JSON.parse(raw);
29
+ }
30
+ catch {
31
+ return [];
32
+ }
33
+ }
34
+ export function saveSchedules(threadId, tasks) {
35
+ ensureDir();
36
+ const file = schedulesFilePath(threadId);
37
+ writeFileSync(file, JSON.stringify(tasks, null, 2), "utf8");
38
+ }
39
+ export function addSchedule(task) {
40
+ const tasks = loadSchedules(task.threadId);
41
+ tasks.push(task);
42
+ saveSchedules(task.threadId, tasks);
43
+ }
44
+ export function removeSchedule(threadId, taskId) {
45
+ const tasks = loadSchedules(threadId);
46
+ const idx = tasks.findIndex(t => t.id === taskId);
47
+ if (idx === -1)
48
+ return false;
49
+ tasks.splice(idx, 1);
50
+ saveSchedules(threadId, tasks);
51
+ return true;
52
+ }
53
+ export function listSchedules(threadId) {
54
+ return loadSchedules(threadId);
55
+ }
56
+ /**
57
+ * Generate a unique task ID.
58
+ */
59
+ export function generateTaskId() {
60
+ return `task_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
61
+ }
62
+ /**
63
+ * Parse a simple cron expression (5 fields: minute hour day-of-month month day-of-week).
64
+ * Returns true if the given date matches the cron expression.
65
+ * Supports: *, specific numbers, and comma-separated lists.
66
+ * Does NOT support ranges (1-5) or steps (star/5) for simplicity.
67
+ */
68
+ function matchesCronField(field, value) {
69
+ if (field === "*")
70
+ return true;
71
+ const parts = field.split(",").map(s => s.trim());
72
+ return parts.some(p => Number(p) === value);
73
+ }
74
+ export function matchesCron(cronExpr, date) {
75
+ const fields = cronExpr.trim().split(/\s+/);
76
+ if (fields.length !== 5)
77
+ return false;
78
+ const [minute, hour, dayOfMonth, month, dayOfWeek] = fields;
79
+ return (matchesCronField(minute, date.getMinutes()) &&
80
+ matchesCronField(hour, date.getHours()) &&
81
+ matchesCronField(dayOfMonth, date.getDate()) &&
82
+ matchesCronField(month, date.getMonth() + 1) &&
83
+ matchesCronField(dayOfWeek, date.getDay()));
84
+ }
85
+ /**
86
+ * Check for due tasks and return the first one that should fire.
87
+ *
88
+ * @param threadId - Thread to check schedules for
89
+ * @param lastOperatorMessageAt - Timestamp of last operator message (for idle detection)
90
+ * @param hasNewMessages - Whether operator has sent messages since last check
91
+ * @returns The due task's prompt, or null if nothing is due
92
+ */
93
+ export function checkDueTasks(threadId, lastOperatorMessageAt, hasNewMessages) {
94
+ const tasks = loadSchedules(threadId);
95
+ if (tasks.length === 0)
96
+ return null;
97
+ const now = new Date();
98
+ let modified = false;
99
+ for (const task of tasks) {
100
+ // --- One-shot at specific time ---
101
+ if (task.runAt) {
102
+ const runAtDate = new Date(task.runAt);
103
+ if (now >= runAtDate) {
104
+ // If operator has new messages, reschedule by 5 minutes
105
+ if (hasNewMessages) {
106
+ task.runAt = new Date(now.getTime() + 5 * 60000).toISOString();
107
+ modified = true;
108
+ continue;
109
+ }
110
+ task.lastFiredAt = now.toISOString();
111
+ if (task.oneShot) {
112
+ const idx = tasks.indexOf(task);
113
+ tasks.splice(idx, 1);
114
+ }
115
+ modified = true;
116
+ saveSchedules(threadId, tasks);
117
+ return { prompt: task.prompt, task };
118
+ }
119
+ }
120
+ // --- Cron-based recurring ---
121
+ if (task.cron) {
122
+ if (matchesCron(task.cron, now)) {
123
+ // Dedup: don't fire again within the same minute
124
+ if (task.lastFiredAt) {
125
+ const lastFired = new Date(task.lastFiredAt);
126
+ if (lastFired.getMinutes() === now.getMinutes() &&
127
+ lastFired.getHours() === now.getHours() &&
128
+ lastFired.getDate() === now.getDate()) {
129
+ continue; // Already fired this minute
130
+ }
131
+ }
132
+ if (hasNewMessages) {
133
+ // Operator is active — skip this fire, it'll try next matching minute
134
+ continue;
135
+ }
136
+ task.lastFiredAt = now.toISOString();
137
+ modified = true;
138
+ saveSchedules(threadId, tasks);
139
+ return { prompt: task.prompt, task };
140
+ }
141
+ }
142
+ // --- Idle-based (fire after N minutes of silence) ---
143
+ if (task.afterIdleMinutes != null) {
144
+ const idleMs = now.getTime() - lastOperatorMessageAt;
145
+ const thresholdMs = task.afterIdleMinutes * 60000;
146
+ if (idleMs >= thresholdMs) {
147
+ // Dedup: don't fire again within the idle window
148
+ if (task.lastFiredAt) {
149
+ const lastFired = new Date(task.lastFiredAt);
150
+ const sinceFired = now.getTime() - lastFired.getTime();
151
+ if (sinceFired < thresholdMs) {
152
+ continue; // Already fired within this idle period
153
+ }
154
+ }
155
+ if (hasNewMessages) {
156
+ // Reset — operator just spoke, so idle counter restarts
157
+ continue;
158
+ }
159
+ task.lastFiredAt = now.toISOString();
160
+ modified = true;
161
+ saveSchedules(threadId, tasks);
162
+ return { prompt: task.prompt, task };
163
+ }
164
+ }
165
+ }
166
+ if (modified) {
167
+ saveSchedules(threadId, tasks);
168
+ }
169
+ return null;
170
+ }
171
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remote-copilot-mcp",
3
- "version": "2.4.0",
3
+ "version": "2.5.0",
4
4
  "description": "MCP server for remote control of AI assistants via Telegram",
5
5
  "main": "dist/index.js",
6
6
  "bin": {