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.
- package/dist/config.d.ts +1 -11
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -49
- package/dist/config.js.map +1 -1
- package/dist/dashboard/presets.d.ts +18 -0
- package/dist/dashboard/presets.d.ts.map +1 -0
- package/dist/dashboard/presets.js +78 -0
- package/dist/dashboard/presets.js.map +1 -0
- package/dist/dashboard/routes.d.ts +33 -0
- package/dist/dashboard/routes.d.ts.map +1 -0
- package/dist/dashboard/routes.js +283 -0
- package/dist/dashboard/routes.js.map +1 -0
- package/dist/dashboard.d.ts +6 -29
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +6 -1158
- package/dist/dashboard.js.map +1 -1
- package/dist/data/file-storage.d.ts +19 -0
- package/dist/data/file-storage.d.ts.map +1 -0
- package/dist/data/file-storage.js +58 -0
- package/dist/data/file-storage.js.map +1 -0
- package/dist/data/memory/bootstrap.d.ts +40 -0
- package/dist/data/memory/bootstrap.d.ts.map +1 -0
- package/dist/data/memory/bootstrap.js +240 -0
- package/dist/data/memory/bootstrap.js.map +1 -0
- package/dist/data/memory/consolidation.d.ts +12 -0
- package/dist/data/memory/consolidation.d.ts.map +1 -0
- package/dist/data/memory/consolidation.js +248 -0
- package/dist/data/memory/consolidation.js.map +1 -0
- package/dist/data/memory/episodes.d.ts +34 -0
- package/dist/data/memory/episodes.d.ts.map +1 -0
- package/dist/data/memory/episodes.js +89 -0
- package/dist/data/memory/episodes.js.map +1 -0
- package/dist/data/memory/index.d.ts +14 -0
- package/dist/data/memory/index.d.ts.map +1 -0
- package/dist/data/memory/index.js +14 -0
- package/dist/data/memory/index.js.map +1 -0
- package/dist/data/memory/procedures.d.ts +42 -0
- package/dist/data/memory/procedures.d.ts.map +1 -0
- package/dist/data/memory/procedures.js +122 -0
- package/dist/data/memory/procedures.js.map +1 -0
- package/dist/data/memory/schema.d.ts +11 -0
- package/dist/data/memory/schema.d.ts.map +1 -0
- package/dist/data/memory/schema.js +327 -0
- package/dist/data/memory/schema.js.map +1 -0
- package/dist/data/memory/semantic.d.ts +94 -0
- package/dist/data/memory/semantic.d.ts.map +1 -0
- package/dist/data/memory/semantic.js +385 -0
- package/dist/data/memory/semantic.js.map +1 -0
- package/dist/data/memory/voice-sig.d.ts +33 -0
- package/dist/data/memory/voice-sig.d.ts.map +1 -0
- package/dist/data/memory/voice-sig.js +48 -0
- package/dist/data/memory/voice-sig.js.map +1 -0
- package/dist/data/templates.d.ts +19 -0
- package/dist/data/templates.d.ts.map +1 -0
- package/dist/data/templates.js +46 -0
- package/dist/data/templates.js.map +1 -0
- package/dist/dispatcher.d.ts +5 -97
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +5 -525
- package/dist/dispatcher.js.map +1 -1
- package/dist/drive.d.ts.map +1 -1
- package/dist/drive.js +3 -1
- package/dist/drive.js.map +1 -1
- package/dist/index.d.ts +4 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -289
- package/dist/index.js.map +1 -1
- package/dist/integrations/openai/chat.d.ts +29 -0
- package/dist/integrations/openai/chat.d.ts.map +1 -0
- package/dist/integrations/openai/chat.js +84 -0
- package/dist/integrations/openai/chat.js.map +1 -0
- package/dist/integrations/openai/index.d.ts +6 -0
- package/dist/integrations/openai/index.d.ts.map +1 -0
- package/dist/integrations/openai/index.js +6 -0
- package/dist/integrations/openai/index.js.map +1 -0
- package/dist/integrations/openai/speech.d.ts +21 -0
- package/dist/integrations/openai/speech.d.ts.map +1 -0
- package/dist/integrations/openai/speech.js +75 -0
- package/dist/integrations/openai/speech.js.map +1 -0
- package/dist/integrations/openai/video.d.ts +15 -0
- package/dist/integrations/openai/video.d.ts.map +1 -0
- package/dist/integrations/openai/video.js +131 -0
- package/dist/integrations/openai/video.js.map +1 -0
- package/dist/integrations/openai/vision.d.ts +23 -0
- package/dist/integrations/openai/vision.d.ts.map +1 -0
- package/dist/integrations/openai/vision.js +116 -0
- package/dist/integrations/openai/vision.js.map +1 -0
- package/dist/integrations/openai/voice-emotion.d.ts +41 -0
- package/dist/integrations/openai/voice-emotion.d.ts.map +1 -0
- package/dist/integrations/openai/voice-emotion.js +50 -0
- package/dist/integrations/openai/voice-emotion.js.map +1 -0
- package/dist/integrations/telegram/types.d.ts +112 -0
- package/dist/integrations/telegram/types.d.ts.map +1 -0
- package/dist/integrations/telegram/types.js +6 -0
- package/dist/integrations/telegram/types.js.map +1 -0
- package/dist/memory.d.ts +6 -205
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +6 -1357
- package/dist/memory.js.map +1 -1
- package/dist/openai.d.ts +11 -102
- package/dist/openai.d.ts.map +1 -1
- package/dist/openai.js +14 -421
- package/dist/openai.js.map +1 -1
- package/dist/response-builders.d.ts +1 -11
- package/dist/response-builders.d.ts.map +1 -1
- package/dist/response-builders.js +2 -38
- package/dist/response-builders.js.map +1 -1
- package/dist/server/factory.d.ts +17 -0
- package/dist/server/factory.d.ts.map +1 -0
- package/dist/server/factory.js +279 -0
- package/dist/server/factory.js.map +1 -0
- package/dist/services/dispatcher/broker.d.ts +83 -0
- package/dist/services/dispatcher/broker.d.ts.map +1 -0
- package/dist/services/dispatcher/broker.js +175 -0
- package/dist/services/dispatcher/broker.js.map +1 -0
- package/dist/services/dispatcher/index.d.ts +7 -0
- package/dist/services/dispatcher/index.d.ts.map +1 -0
- package/dist/services/dispatcher/index.js +7 -0
- package/dist/services/dispatcher/index.js.map +1 -0
- package/dist/services/dispatcher/lock.d.ts +25 -0
- package/dist/services/dispatcher/lock.d.ts.map +1 -0
- package/dist/services/dispatcher/lock.js +111 -0
- package/dist/services/dispatcher/lock.js.map +1 -0
- package/dist/services/dispatcher/poller.d.ts +19 -0
- package/dist/services/dispatcher/poller.d.ts.map +1 -0
- package/dist/services/dispatcher/poller.js +269 -0
- package/dist/services/dispatcher/poller.js.map +1 -0
- package/dist/telegram.d.ts +2 -88
- package/dist/telegram.d.ts.map +1 -1
- package/dist/telegram.js +2 -0
- package/dist/telegram.js.map +1 -1
- package/dist/tool-definitions.d.ts +1 -14
- package/dist/tool-definitions.d.ts.map +1 -1
- package/dist/tool-definitions.js +1 -403
- package/dist/tool-definitions.js.map +1 -1
- package/dist/tools/definitions.d.ts +15 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +404 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/start-session-tool.d.ts.map +1 -1
- package/dist/tools/start-session-tool.js +2 -0
- package/dist/tools/start-session-tool.js.map +1 -1
- package/dist/tools/wait/drive-handler.d.ts +61 -0
- package/dist/tools/wait/drive-handler.d.ts.map +1 -0
- package/dist/tools/wait/drive-handler.js +138 -0
- package/dist/tools/wait/drive-handler.js.map +1 -0
- package/dist/tools/wait/index.d.ts +8 -0
- package/dist/tools/wait/index.d.ts.map +1 -0
- package/dist/tools/wait/index.js +8 -0
- package/dist/tools/wait/index.js.map +1 -0
- package/dist/tools/wait/media-processor.d.ts +52 -0
- package/dist/tools/wait/media-processor.d.ts.map +1 -0
- package/dist/tools/wait/media-processor.js +261 -0
- package/dist/tools/wait/media-processor.js.map +1 -0
- package/dist/tools/wait/message-delivery.d.ts +63 -0
- package/dist/tools/wait/message-delivery.d.ts.map +1 -0
- package/dist/tools/wait/message-delivery.js +281 -0
- package/dist/tools/wait/message-delivery.js.map +1 -0
- package/dist/tools/wait/poll-loop.d.ts +72 -0
- package/dist/tools/wait/poll-loop.d.ts.map +1 -0
- package/dist/tools/wait/poll-loop.js +280 -0
- package/dist/tools/wait/poll-loop.js.map +1 -0
- package/dist/tools/wait/reaction-handler.d.ts +49 -0
- package/dist/tools/wait/reaction-handler.d.ts.map +1 -0
- package/dist/tools/wait/reaction-handler.js +126 -0
- package/dist/tools/wait/reaction-handler.js.map +1 -0
- package/dist/tools/wait/task-handler.d.ts +40 -0
- package/dist/tools/wait/task-handler.d.ts.map +1 -0
- package/dist/tools/wait/task-handler.js +41 -0
- package/dist/tools/wait/task-handler.js.map +1 -0
- package/dist/tools/wait-tool.d.ts +3 -69
- package/dist/tools/wait-tool.d.ts.map +1 -1
- package/dist/tools/wait-tool.js +3 -876
- package/dist/tools/wait-tool.js.map +1 -1
- package/package.json +1 -1
- package/templates/daily-review.default.md +26 -0
- 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
|
-
*
|
|
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
|
-
|
|
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
|
|
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"}
|