sensorium-mcp 2.16.28 → 2.16.30

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 (177) hide show
  1. package/dist/config.d.ts +1 -11
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +3 -49
  4. package/dist/config.js.map +1 -1
  5. package/dist/dashboard/presets.d.ts +18 -0
  6. package/dist/dashboard/presets.d.ts.map +1 -0
  7. package/dist/dashboard/presets.js +78 -0
  8. package/dist/dashboard/presets.js.map +1 -0
  9. package/dist/dashboard/routes.d.ts +33 -0
  10. package/dist/dashboard/routes.d.ts.map +1 -0
  11. package/dist/dashboard/routes.js +283 -0
  12. package/dist/dashboard/routes.js.map +1 -0
  13. package/dist/dashboard.d.ts +6 -29
  14. package/dist/dashboard.d.ts.map +1 -1
  15. package/dist/dashboard.js +6 -1158
  16. package/dist/dashboard.js.map +1 -1
  17. package/dist/data/file-storage.d.ts +19 -0
  18. package/dist/data/file-storage.d.ts.map +1 -0
  19. package/dist/data/file-storage.js +58 -0
  20. package/dist/data/file-storage.js.map +1 -0
  21. package/dist/data/memory/bootstrap.d.ts +40 -0
  22. package/dist/data/memory/bootstrap.d.ts.map +1 -0
  23. package/dist/data/memory/bootstrap.js +240 -0
  24. package/dist/data/memory/bootstrap.js.map +1 -0
  25. package/dist/data/memory/consolidation.d.ts +12 -0
  26. package/dist/data/memory/consolidation.d.ts.map +1 -0
  27. package/dist/data/memory/consolidation.js +248 -0
  28. package/dist/data/memory/consolidation.js.map +1 -0
  29. package/dist/data/memory/episodes.d.ts +34 -0
  30. package/dist/data/memory/episodes.d.ts.map +1 -0
  31. package/dist/data/memory/episodes.js +89 -0
  32. package/dist/data/memory/episodes.js.map +1 -0
  33. package/dist/data/memory/index.d.ts +14 -0
  34. package/dist/data/memory/index.d.ts.map +1 -0
  35. package/dist/data/memory/index.js +14 -0
  36. package/dist/data/memory/index.js.map +1 -0
  37. package/dist/data/memory/procedures.d.ts +42 -0
  38. package/dist/data/memory/procedures.d.ts.map +1 -0
  39. package/dist/data/memory/procedures.js +122 -0
  40. package/dist/data/memory/procedures.js.map +1 -0
  41. package/dist/data/memory/schema.d.ts +11 -0
  42. package/dist/data/memory/schema.d.ts.map +1 -0
  43. package/dist/data/memory/schema.js +327 -0
  44. package/dist/data/memory/schema.js.map +1 -0
  45. package/dist/data/memory/semantic.d.ts +94 -0
  46. package/dist/data/memory/semantic.d.ts.map +1 -0
  47. package/dist/data/memory/semantic.js +385 -0
  48. package/dist/data/memory/semantic.js.map +1 -0
  49. package/dist/data/memory/voice-sig.d.ts +33 -0
  50. package/dist/data/memory/voice-sig.d.ts.map +1 -0
  51. package/dist/data/memory/voice-sig.js +48 -0
  52. package/dist/data/memory/voice-sig.js.map +1 -0
  53. package/dist/data/templates.d.ts +19 -0
  54. package/dist/data/templates.d.ts.map +1 -0
  55. package/dist/data/templates.js +46 -0
  56. package/dist/data/templates.js.map +1 -0
  57. package/dist/dispatcher.d.ts +5 -97
  58. package/dist/dispatcher.d.ts.map +1 -1
  59. package/dist/dispatcher.js +5 -525
  60. package/dist/dispatcher.js.map +1 -1
  61. package/dist/drive.d.ts.map +1 -1
  62. package/dist/drive.js +3 -1
  63. package/dist/drive.js.map +1 -1
  64. package/dist/index.d.ts +4 -23
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +11 -289
  67. package/dist/index.js.map +1 -1
  68. package/dist/integrations/openai/chat.d.ts +29 -0
  69. package/dist/integrations/openai/chat.d.ts.map +1 -0
  70. package/dist/integrations/openai/chat.js +84 -0
  71. package/dist/integrations/openai/chat.js.map +1 -0
  72. package/dist/integrations/openai/index.d.ts +6 -0
  73. package/dist/integrations/openai/index.d.ts.map +1 -0
  74. package/dist/integrations/openai/index.js +6 -0
  75. package/dist/integrations/openai/index.js.map +1 -0
  76. package/dist/integrations/openai/speech.d.ts +21 -0
  77. package/dist/integrations/openai/speech.d.ts.map +1 -0
  78. package/dist/integrations/openai/speech.js +75 -0
  79. package/dist/integrations/openai/speech.js.map +1 -0
  80. package/dist/integrations/openai/video.d.ts +15 -0
  81. package/dist/integrations/openai/video.d.ts.map +1 -0
  82. package/dist/integrations/openai/video.js +131 -0
  83. package/dist/integrations/openai/video.js.map +1 -0
  84. package/dist/integrations/openai/vision.d.ts +23 -0
  85. package/dist/integrations/openai/vision.d.ts.map +1 -0
  86. package/dist/integrations/openai/vision.js +116 -0
  87. package/dist/integrations/openai/vision.js.map +1 -0
  88. package/dist/integrations/openai/voice-emotion.d.ts +41 -0
  89. package/dist/integrations/openai/voice-emotion.d.ts.map +1 -0
  90. package/dist/integrations/openai/voice-emotion.js +50 -0
  91. package/dist/integrations/openai/voice-emotion.js.map +1 -0
  92. package/dist/integrations/telegram/types.d.ts +112 -0
  93. package/dist/integrations/telegram/types.d.ts.map +1 -0
  94. package/dist/integrations/telegram/types.js +6 -0
  95. package/dist/integrations/telegram/types.js.map +1 -0
  96. package/dist/memory.d.ts +6 -205
  97. package/dist/memory.d.ts.map +1 -1
  98. package/dist/memory.js +6 -1357
  99. package/dist/memory.js.map +1 -1
  100. package/dist/openai.d.ts +11 -102
  101. package/dist/openai.d.ts.map +1 -1
  102. package/dist/openai.js +14 -421
  103. package/dist/openai.js.map +1 -1
  104. package/dist/response-builders.d.ts +1 -11
  105. package/dist/response-builders.d.ts.map +1 -1
  106. package/dist/response-builders.js +2 -38
  107. package/dist/response-builders.js.map +1 -1
  108. package/dist/server/factory.d.ts +17 -0
  109. package/dist/server/factory.d.ts.map +1 -0
  110. package/dist/server/factory.js +279 -0
  111. package/dist/server/factory.js.map +1 -0
  112. package/dist/services/dispatcher/broker.d.ts +83 -0
  113. package/dist/services/dispatcher/broker.d.ts.map +1 -0
  114. package/dist/services/dispatcher/broker.js +175 -0
  115. package/dist/services/dispatcher/broker.js.map +1 -0
  116. package/dist/services/dispatcher/index.d.ts +7 -0
  117. package/dist/services/dispatcher/index.d.ts.map +1 -0
  118. package/dist/services/dispatcher/index.js +7 -0
  119. package/dist/services/dispatcher/index.js.map +1 -0
  120. package/dist/services/dispatcher/lock.d.ts +25 -0
  121. package/dist/services/dispatcher/lock.d.ts.map +1 -0
  122. package/dist/services/dispatcher/lock.js +111 -0
  123. package/dist/services/dispatcher/lock.js.map +1 -0
  124. package/dist/services/dispatcher/poller.d.ts +19 -0
  125. package/dist/services/dispatcher/poller.d.ts.map +1 -0
  126. package/dist/services/dispatcher/poller.js +269 -0
  127. package/dist/services/dispatcher/poller.js.map +1 -0
  128. package/dist/telegram.d.ts +2 -88
  129. package/dist/telegram.d.ts.map +1 -1
  130. package/dist/telegram.js +2 -0
  131. package/dist/telegram.js.map +1 -1
  132. package/dist/tool-definitions.d.ts +1 -14
  133. package/dist/tool-definitions.d.ts.map +1 -1
  134. package/dist/tool-definitions.js +1 -403
  135. package/dist/tool-definitions.js.map +1 -1
  136. package/dist/tools/definitions.d.ts +15 -0
  137. package/dist/tools/definitions.d.ts.map +1 -0
  138. package/dist/tools/definitions.js +404 -0
  139. package/dist/tools/definitions.js.map +1 -0
  140. package/dist/tools/start-session-tool.d.ts.map +1 -1
  141. package/dist/tools/start-session-tool.js +2 -0
  142. package/dist/tools/start-session-tool.js.map +1 -1
  143. package/dist/tools/wait/drive-handler.d.ts +61 -0
  144. package/dist/tools/wait/drive-handler.d.ts.map +1 -0
  145. package/dist/tools/wait/drive-handler.js +138 -0
  146. package/dist/tools/wait/drive-handler.js.map +1 -0
  147. package/dist/tools/wait/index.d.ts +8 -0
  148. package/dist/tools/wait/index.d.ts.map +1 -0
  149. package/dist/tools/wait/index.js +8 -0
  150. package/dist/tools/wait/index.js.map +1 -0
  151. package/dist/tools/wait/media-processor.d.ts +52 -0
  152. package/dist/tools/wait/media-processor.d.ts.map +1 -0
  153. package/dist/tools/wait/media-processor.js +261 -0
  154. package/dist/tools/wait/media-processor.js.map +1 -0
  155. package/dist/tools/wait/message-delivery.d.ts +63 -0
  156. package/dist/tools/wait/message-delivery.d.ts.map +1 -0
  157. package/dist/tools/wait/message-delivery.js +281 -0
  158. package/dist/tools/wait/message-delivery.js.map +1 -0
  159. package/dist/tools/wait/poll-loop.d.ts +72 -0
  160. package/dist/tools/wait/poll-loop.d.ts.map +1 -0
  161. package/dist/tools/wait/poll-loop.js +280 -0
  162. package/dist/tools/wait/poll-loop.js.map +1 -0
  163. package/dist/tools/wait/reaction-handler.d.ts +49 -0
  164. package/dist/tools/wait/reaction-handler.d.ts.map +1 -0
  165. package/dist/tools/wait/reaction-handler.js +126 -0
  166. package/dist/tools/wait/reaction-handler.js.map +1 -0
  167. package/dist/tools/wait/task-handler.d.ts +40 -0
  168. package/dist/tools/wait/task-handler.d.ts.map +1 -0
  169. package/dist/tools/wait/task-handler.js +41 -0
  170. package/dist/tools/wait/task-handler.js.map +1 -0
  171. package/dist/tools/wait-tool.d.ts +3 -69
  172. package/dist/tools/wait-tool.d.ts.map +1 -1
  173. package/dist/tools/wait-tool.js +3 -876
  174. package/dist/tools/wait-tool.js.map +1 -1
  175. package/package.json +1 -1
  176. package/templates/daily-review.default.md +26 -0
  177. package/templates/drive-dispatcher.default.md +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-loop.js","sourceRoot":"","sources":["../../../src/tools/wait/poll-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Reaction handling logic extracted from wait-tool.ts.
3
+ *
4
+ * Two scenarios:
5
+ * 1. Reaction arrives alongside operator messages → inline into content blocks
6
+ * 2. Reaction arrives with no messages → return standalone reaction envelope
7
+ */
8
+ import { type initMemoryDb } from "../../memory.js";
9
+ import type { TelegramClient } from "../../telegram.js";
10
+ type TextBlock = {
11
+ type: "text";
12
+ text: string;
13
+ };
14
+ type ImageBlock = {
15
+ type: "image";
16
+ data: string;
17
+ mimeType: string;
18
+ };
19
+ type ContentBlock = TextBlock | ImageBlock;
20
+ type ToolResult = {
21
+ content: Array<ContentBlock>;
22
+ isError?: boolean;
23
+ };
24
+ export interface ReactionContext {
25
+ telegram: TelegramClient;
26
+ getMemoryDb: () => ReturnType<typeof initMemoryDb>;
27
+ effectiveThreadId: number | undefined;
28
+ sessionStartedAt: number;
29
+ }
30
+ /**
31
+ * If a pending operator reaction exists, inline it into the last text block
32
+ * of `contentBlocks` (or append a standalone block) and persist an
33
+ * `operator_reaction` episode. Clears the reaction after delivery.
34
+ *
35
+ * Mutates `contentBlocks` in place.
36
+ */
37
+ export declare function handleReactionWithMessages(contentBlocks: Array<TextBlock | ImageBlock>, ctx: ReactionContext): Promise<void>;
38
+ /**
39
+ * If no text messages arrived but a pending reaction exists, build a
40
+ * standalone `<<< OPERATOR REACTION >>>` envelope and save the episode.
41
+ *
42
+ * Returns a `ToolResult` when a reaction was consumed, or `null` if none
43
+ * was pending.
44
+ */
45
+ export declare function handleReactionOnly(ctx: ReactionContext & {
46
+ autonomousMode: boolean;
47
+ }): Promise<ToolResult | null>;
48
+ export {};
49
+ //# sourceMappingURL=reaction-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reaction-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/wait/reaction-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQxD,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAChD,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACpE,KAAK,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAC3C,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,EAC5C,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAMD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,eAAe,GAAG;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,GACjD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAwD5B"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Reaction handling logic extracted from wait-tool.ts.
3
+ *
4
+ * Two scenarios:
5
+ * 1. Reaction arrives alongside operator messages → inline into content blocks
6
+ * 2. Reaction arrives with no messages → return standalone reaction envelope
7
+ */
8
+ import { readPendingReaction } from "../../dispatcher.js";
9
+ import { saveEpisode } from "../../memory.js";
10
+ import { log } from "../../logger.js";
11
+ import { getMediumReminder } from "../../response-builders.js";
12
+ // ---------------------------------------------------------------------------
13
+ // handleReactionWithMessages
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * If a pending operator reaction exists, inline it into the last text block
17
+ * of `contentBlocks` (or append a standalone block) and persist an
18
+ * `operator_reaction` episode. Clears the reaction after delivery.
19
+ *
20
+ * Mutates `contentBlocks` in place.
21
+ */
22
+ export async function handleReactionWithMessages(contentBlocks, ctx) {
23
+ const pendingReaction = readPendingReaction() ?? ctx.telegram.lastReaction;
24
+ if (!pendingReaction)
25
+ return;
26
+ const emoji = "emoji" in pendingReaction ? pendingReaction.emoji : "";
27
+ const messageId = "messageId" in pendingReaction ? pendingReaction.messageId : 0;
28
+ const reactionDate = "date" in pendingReaction ? pendingReaction.date : 0;
29
+ if (emoji) {
30
+ const snippet = ctx.telegram.lookupSentMessage(messageId);
31
+ const reactionNote = snippet
32
+ ? `(The operator reacted with ${emoji} to your message: '${snippet}')`
33
+ : `(The operator reacted with ${emoji} to message #${messageId})`;
34
+ // Inline the reaction with the last text block if messages exist,
35
+ // otherwise add it as a standalone block.
36
+ const lastTextIdx = contentBlocks.map(b => b.type).lastIndexOf("text");
37
+ if (lastTextIdx >= 0) {
38
+ const prev = contentBlocks[lastTextIdx];
39
+ prev.text = `${prev.text}\n${reactionNote}`;
40
+ }
41
+ else {
42
+ contentBlocks.push({ type: "text", text: reactionNote });
43
+ }
44
+ // Save reaction as episodic memory
45
+ try {
46
+ const db = ctx.getMemoryDb();
47
+ const sessionId = `session_${ctx.sessionStartedAt}`;
48
+ if (ctx.effectiveThreadId !== undefined) {
49
+ saveEpisode(db, {
50
+ sessionId,
51
+ threadId: ctx.effectiveThreadId,
52
+ type: "operator_reaction",
53
+ modality: "reaction",
54
+ content: { emoji, messageId, date: reactionDate },
55
+ importance: 0.3,
56
+ });
57
+ }
58
+ }
59
+ catch (_) { /* non-fatal */ }
60
+ }
61
+ // Clear the reaction after delivery
62
+ ctx.telegram.lastReaction = null;
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // handleReactionOnly
66
+ // ---------------------------------------------------------------------------
67
+ /**
68
+ * If no text messages arrived but a pending reaction exists, build a
69
+ * standalone `<<< OPERATOR REACTION >>>` envelope and save the episode.
70
+ *
71
+ * Returns a `ToolResult` when a reaction was consumed, or `null` if none
72
+ * was pending.
73
+ */
74
+ export async function handleReactionOnly(ctx) {
75
+ const pendingReactionOnly = readPendingReaction() ?? ctx.telegram.lastReaction;
76
+ if (!pendingReactionOnly)
77
+ return null;
78
+ const rEmoji = "emoji" in pendingReactionOnly ? pendingReactionOnly.emoji : "";
79
+ const rMsgId = "messageId" in pendingReactionOnly ? pendingReactionOnly.messageId : 0;
80
+ const rDate = "date" in pendingReactionOnly ? pendingReactionOnly.date : 0;
81
+ if (!rEmoji)
82
+ return null;
83
+ // Clear in-memory reaction after consumption
84
+ ctx.telegram.lastReaction = null;
85
+ const snippet = ctx.telegram.lookupSentMessage(rMsgId);
86
+ const reactionNote = snippet
87
+ ? `(The operator reacted with ${rEmoji} to your message: '${snippet}')`
88
+ : `(The operator reacted with ${rEmoji} to message #${rMsgId})`;
89
+ // Save reaction as episodic memory
90
+ try {
91
+ const db = ctx.getMemoryDb();
92
+ const sessionId = `session_${ctx.sessionStartedAt}`;
93
+ if (ctx.effectiveThreadId !== undefined) {
94
+ saveEpisode(db, {
95
+ sessionId,
96
+ threadId: ctx.effectiveThreadId,
97
+ type: "operator_reaction",
98
+ modality: "reaction",
99
+ content: { emoji: rEmoji, messageId: rMsgId, date: rDate },
100
+ importance: 0.3,
101
+ });
102
+ }
103
+ }
104
+ catch (_) { /* non-fatal */ }
105
+ log.info(`[wait] Reaction-only wake-up: ${rEmoji} on message ${rMsgId}`);
106
+ return {
107
+ content: [
108
+ { type: "text", text: "<<< OPERATOR REACTION >>>" },
109
+ { type: "text", text: reactionNote },
110
+ {
111
+ type: "text",
112
+ text: "The operator reacted to your message without sending a text reply. " +
113
+ "This may be a confirmation, approval, or acknowledgment. " +
114
+ "Reflect on what your last message said and whether this reaction is a call to action " +
115
+ "(e.g., proceed with a plan, continue what you were doing, etc.). " +
116
+ "If no action is needed, call `remote_copilot_wait_for_instructions` to resume waiting.",
117
+ },
118
+ { type: "text", text: "<<< END OPERATOR REACTION >>>" },
119
+ {
120
+ type: "text",
121
+ text: getMediumReminder(ctx.effectiveThreadId, ctx.sessionStartedAt, ctx.autonomousMode),
122
+ },
123
+ ],
124
+ };
125
+ }
126
+ //# sourceMappingURL=reaction-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reaction-handler.js","sourceRoot":"","sources":["../../../src/tools/wait/reaction-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Scheduled-task check extracted from wait-tool.ts.
3
+ *
4
+ * Checks for due scheduled tasks and returns an appropriate ToolResult
5
+ * when a task fires (including DMN sentinel handling), or null if nothing is due.
6
+ */
7
+ type ContentBlock = {
8
+ type: string;
9
+ text: string;
10
+ } | {
11
+ type: "image";
12
+ data: string;
13
+ mimeType: string;
14
+ };
15
+ type ToolResult = {
16
+ content: Array<ContentBlock>;
17
+ isError?: boolean;
18
+ };
19
+ export interface TaskContext {
20
+ state: {
21
+ lastOperatorMessageAt: number;
22
+ sessionStartedAt: number;
23
+ };
24
+ generateDmnReflection: (threadId: number) => string;
25
+ config: {
26
+ AUTONOMOUS_MODE: boolean;
27
+ };
28
+ }
29
+ /**
30
+ * Check whether any scheduled task is due for the given thread.
31
+ *
32
+ * Returns a `ToolResult` ready to be returned from the wait-tool when a task
33
+ * fires, or `null` when nothing is due.
34
+ *
35
+ * Used from both the idle-poll check (inside the loop) and the post-timeout
36
+ * check (after the loop exits).
37
+ */
38
+ export declare function checkForDueTasks(ctx: TaskContext, effectiveThreadId: number): ToolResult | null;
39
+ export {};
40
+ //# sourceMappingURL=task-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/wait/task-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACvG,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE;QACL,qBAAqB,EAAE,MAAM,CAAC;QAC9B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACpD,MAAM,EAAE;QACN,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,MAAM,GACxB,UAAU,GAAG,IAAI,CAqBnB"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Scheduled-task check extracted from wait-tool.ts.
3
+ *
4
+ * Checks for due scheduled tasks and returns an appropriate ToolResult
5
+ * when a task fires (including DMN sentinel handling), or null if nothing is due.
6
+ */
7
+ import { checkDueTasks } from "../../scheduler.js";
8
+ import { getReminders } from "../../response-builders.js";
9
+ // ---------------------------------------------------------------------------
10
+ // Handler
11
+ // ---------------------------------------------------------------------------
12
+ /**
13
+ * Check whether any scheduled task is due for the given thread.
14
+ *
15
+ * Returns a `ToolResult` ready to be returned from the wait-tool when a task
16
+ * fires, or `null` when nothing is due.
17
+ *
18
+ * Used from both the idle-poll check (inside the loop) and the post-timeout
19
+ * check (after the loop exits).
20
+ */
21
+ export function checkForDueTasks(ctx, effectiveThreadId) {
22
+ const { state, config } = ctx;
23
+ const dueTask = checkDueTasks(effectiveThreadId, state.lastOperatorMessageAt, false);
24
+ if (!dueTask)
25
+ return null;
26
+ // DMN sentinel: generate dynamic first-person reflection
27
+ const taskPrompt = dueTask.prompt === "__DMN__"
28
+ ? ctx.generateDmnReflection(effectiveThreadId)
29
+ : `⏰ **Scheduled task fired: "${dueTask.task.label}"**\n\n` +
30
+ `This task was scheduled by you. Execute it now using subagents, then report progress and continue waiting.\n\n` +
31
+ `Task prompt: ${dueTask.prompt}`;
32
+ return {
33
+ content: [
34
+ {
35
+ type: "text",
36
+ text: taskPrompt + getReminders(effectiveThreadId, state.sessionStartedAt, config.AUTONOMOUS_MODE),
37
+ },
38
+ ],
39
+ };
40
+ }
41
+ //# sourceMappingURL=task-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-handler.js","sourceRoot":"","sources":["../../../src/tools/wait/task-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAoB1D,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAgB,EAChB,iBAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAE9B,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACrF,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,yDAAyD;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;QAC7C,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;QAC9C,CAAC,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS;YACzD,gHAAgH;YAChH,gBAAgB,OAAO,CAAC,MAAM,EAAE,CAAC;IAErC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC;aACnG;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,72 +1,6 @@
1
1
  /**
2
- * remote_copilot_wait_for_instructions tool handler extracted from index.ts.
3
- *
4
- * This is the core long-polling loop that:
5
- * - Polls the dispatcher for new operator messages every 2s
6
- * - Processes all media types: text, photo, document, voice, video_note
7
- * - Runs voice analysis (transcription + emotion via VANPY)
8
- * - Auto-saves episodes to memory
9
- * - Injects relevant memory context via GPT-4o-mini smart filter
10
- * - Checks scheduled tasks during idle polling
11
- * - Triggers auto-consolidation (idle, episode-count, time-based)
12
- * - Sends SSE keepalive pings every 30s
13
- * - Detects maintenance flags and instructs agent to wait externally
14
- * - Activates the Dispatcher drive after extended operator silence
2
+ * Re-export shim the poll-loop implementation has moved to tools/wait/poll-loop.ts.
3
+ * This file is kept so existing imports from "./tools/wait-tool.js" continue to work.
15
4
  */
16
- import { type initMemoryDb } from "../memory.js";
17
- import type { TelegramClient } from "../telegram.js";
18
- import type { AppConfig } from "../types.js";
19
- type ContentBlock = {
20
- type: string;
21
- text: string;
22
- } | {
23
- type: "image";
24
- data: string;
25
- mimeType: string;
26
- };
27
- type ToolResult = {
28
- content: Array<ContentBlock>;
29
- isError?: boolean;
30
- };
31
- export interface WaitToolContext {
32
- /** Mutable per-session state — the handler reads and writes directly. */
33
- state: {
34
- currentThreadId: number | undefined;
35
- sessionStartedAt: number;
36
- waitCallCount: number;
37
- lastToolCallAt: number;
38
- deadSessionAlerted: boolean;
39
- toolCallsSinceLastDelivery: number;
40
- lastOperatorMessageAt: number;
41
- lastOperatorMessageText: string;
42
- lastConsolidationAt: number;
43
- previewedUpdateIds: Set<number>;
44
- lastDriveAttemptAt: number;
45
- drivePhase2Fired: boolean;
46
- };
47
- addPreviewedId: (id: number) => void;
48
- generateDmnReflection: (threadId: number) => string;
49
- resolveThreadId: (args: Record<string, unknown> | undefined) => number | undefined;
50
- telegram: TelegramClient;
51
- telegramChatId: string;
52
- getMemoryDb: () => ReturnType<typeof initMemoryDb>;
53
- config: AppConfig;
54
- errorResult: (msg: string) => {
55
- content: Array<{
56
- type: string;
57
- text: string;
58
- }>;
59
- isError: true;
60
- };
61
- }
62
- export interface WaitToolExtra {
63
- sendNotification: (notification: {
64
- method: string;
65
- params: Record<string, unknown>;
66
- }) => Promise<void>;
67
- signal: AbortSignal;
68
- requestId?: string | number;
69
- }
70
- export declare function handleWaitForInstructions(args: Record<string, unknown>, ctx: WaitToolContext, extra: WaitToolExtra): Promise<ToolResult>;
71
- export {};
5
+ export { handleWaitForInstructions, type WaitToolContext, type WaitToolExtra } from "./wait/index.js";
72
6
  //# sourceMappingURL=wait-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wait-tool.d.ts","sourceRoot":"","sources":["../../src/tools/wait-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAUtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAW7C,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACvG,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,KAAK,EAAE;QACL,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,0BAA0B,EAAE,MAAM,CAAC;QACnC,qBAAqB,EAAE,MAAM,CAAC;QAC9B,uBAAuB,EAAE,MAAM,CAAC;QAChC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACpD,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IAGnF,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD,MAAM,EAAE,SAAS,CAAC;IAGlB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;CACjG;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,CAAC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvG,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAMD,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,UAAU,CAAC,CA23BrB"}
1
+ {"version":3,"file":"wait-tool.d.ts","sourceRoot":"","sources":["../../src/tools/wait-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,yBAAyB,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC"}