sensorium-mcp 2.9.7 → 2.12.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/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +70 -0
- package/dist/config.js.map +1 -0
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +76 -1
- package/dist/dashboard.js.map +1 -1
- package/dist/drive.d.ts +18 -0
- package/dist/drive.d.ts.map +1 -0
- package/dist/drive.js +234 -0
- package/dist/drive.js.map +1 -0
- package/dist/index.js +361 -963
- package/dist/index.js.map +1 -1
- package/dist/markdown.d.ts +26 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +100 -0
- package/dist/markdown.js.map +1 -0
- package/dist/memory.d.ts +11 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +90 -11
- package/dist/memory.js.map +1 -1
- package/dist/rate-limiter.d.ts +95 -0
- package/dist/rate-limiter.d.ts.map +1 -0
- package/dist/rate-limiter.js +311 -0
- package/dist/rate-limiter.js.map +1 -0
- package/dist/sessions.d.ts +23 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +83 -0
- package/dist/sessions.js.map +1 -0
- package/dist/tool-definitions.d.ts +15 -0
- package/dist/tool-definitions.d.ts.map +1 -0
- package/dist/tool-definitions.js +453 -0
- package/dist/tool-definitions.js.map +1 -0
- package/dist/types.d.ts +57 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool definitions — JSON schemas for all 14 tools.
|
|
3
|
+
* Separated from index.ts for readability.
|
|
4
|
+
*/
|
|
5
|
+
import { OPENAI_TTS_MAX_CHARS } from "./utils.js";
|
|
6
|
+
export function getToolDefinitions() {
|
|
7
|
+
return [
|
|
8
|
+
{
|
|
9
|
+
name: "start_session",
|
|
10
|
+
description: "Start or resume a remote-copilot session. " +
|
|
11
|
+
"When called with a name that was used before, the server looks up the " +
|
|
12
|
+
"existing Telegram topic for that name and resumes it instead of creating a new one. " +
|
|
13
|
+
"If you are CONTINUING an existing chat (not a fresh conversation), " +
|
|
14
|
+
"look back through the conversation history for a previous start_session " +
|
|
15
|
+
"result that mentioned a Thread ID, then pass it as the threadId parameter " +
|
|
16
|
+
"to resume that existing topic. " +
|
|
17
|
+
"Requires the Telegram chat to be a forum supergroup with the bot as admin. " +
|
|
18
|
+
"Call this tool once, then call remote_copilot_wait_for_instructions.",
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: "object",
|
|
21
|
+
properties: {
|
|
22
|
+
name: {
|
|
23
|
+
type: "string",
|
|
24
|
+
description: "Optional. A human-readable label for this session's Telegram topic (e.g. 'Fix auth bug'). " +
|
|
25
|
+
"If omitted, a timestamp-based name is used.",
|
|
26
|
+
},
|
|
27
|
+
threadId: {
|
|
28
|
+
type: "number",
|
|
29
|
+
description: "Optional. The Telegram message_thread_id of an existing topic to resume. " +
|
|
30
|
+
"When provided, no new topic is created — the session continues in the existing thread.",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
required: [],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: "remote_copilot_wait_for_instructions",
|
|
38
|
+
description: "Wait for a new instruction message from the operator via Telegram. " +
|
|
39
|
+
"The call blocks (long-polls) until a message arrives or the configured " +
|
|
40
|
+
"timeout elapses. If the timeout elapses with no message the tool output " +
|
|
41
|
+
"explicitly instructs the agent to call this tool again.",
|
|
42
|
+
inputSchema: {
|
|
43
|
+
type: "object",
|
|
44
|
+
properties: {
|
|
45
|
+
threadId: {
|
|
46
|
+
type: "number",
|
|
47
|
+
description: "The Telegram thread ID of the active session. " +
|
|
48
|
+
"ALWAYS pass this if you received it from start_session.",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
required: [],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "report_progress",
|
|
56
|
+
description: "Send a progress update or result message to the operator via Telegram. " +
|
|
57
|
+
"Use standard Markdown for formatting (headings, bold, italic, lists, code blocks, etc.). " +
|
|
58
|
+
"It will be automatically converted to Telegram-compatible formatting.",
|
|
59
|
+
inputSchema: {
|
|
60
|
+
type: "object",
|
|
61
|
+
properties: {
|
|
62
|
+
message: {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "The progress update or result to report. Use standard Markdown for formatting.",
|
|
65
|
+
},
|
|
66
|
+
threadId: {
|
|
67
|
+
type: "number",
|
|
68
|
+
description: "The Telegram thread ID of the active session. " +
|
|
69
|
+
"ALWAYS pass this if you received it from start_session.",
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
required: ["message"],
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "send_file",
|
|
77
|
+
description: "Send a file (image or document) to the operator via Telegram. " +
|
|
78
|
+
"PREFERRED: provide filePath to send a file directly from disk (fast, no size limit). " +
|
|
79
|
+
"Alternative: provide base64-encoded content. " +
|
|
80
|
+
"Images (JPEG, PNG, GIF, WebP) are sent as photos; other files as documents.",
|
|
81
|
+
inputSchema: {
|
|
82
|
+
type: "object",
|
|
83
|
+
properties: {
|
|
84
|
+
filePath: {
|
|
85
|
+
type: "string",
|
|
86
|
+
description: "Absolute path to the file on disk. PREFERRED over base64 — the server reads " +
|
|
87
|
+
"and sends the file directly without passing data through the LLM context.",
|
|
88
|
+
},
|
|
89
|
+
base64: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "The file content encoded as a base64 string. Use filePath instead when possible.",
|
|
92
|
+
},
|
|
93
|
+
filename: {
|
|
94
|
+
type: "string",
|
|
95
|
+
description: "The filename including extension (e.g. 'report.pdf', 'screenshot.png'). " +
|
|
96
|
+
"Required when using base64. When using filePath, defaults to the file's basename.",
|
|
97
|
+
},
|
|
98
|
+
caption: {
|
|
99
|
+
type: "string",
|
|
100
|
+
description: "Optional caption to display with the file.",
|
|
101
|
+
},
|
|
102
|
+
threadId: {
|
|
103
|
+
type: "number",
|
|
104
|
+
description: "The Telegram thread ID of the active session. " +
|
|
105
|
+
"ALWAYS pass this if you received it from start_session.",
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
required: [],
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: "send_voice",
|
|
113
|
+
description: "Send a voice message to the operator via Telegram. " +
|
|
114
|
+
"The text is converted to speech using OpenAI TTS and sent as a Telegram voice message. " +
|
|
115
|
+
"Requires OPENAI_API_KEY to be set.",
|
|
116
|
+
inputSchema: {
|
|
117
|
+
type: "object",
|
|
118
|
+
properties: {
|
|
119
|
+
text: {
|
|
120
|
+
type: "string",
|
|
121
|
+
description: `The text to speak. Maximum ${OPENAI_TTS_MAX_CHARS} characters (OpenAI TTS limit).`,
|
|
122
|
+
},
|
|
123
|
+
voice: {
|
|
124
|
+
type: "string",
|
|
125
|
+
description: "The TTS voice to use. Each has a different personality: " +
|
|
126
|
+
"alloy (neutral), echo (warm male), fable (storytelling), " +
|
|
127
|
+
"onyx (deep authoritative), nova (friendly female), shimmer (gentle). " +
|
|
128
|
+
"Choose based on the tone you want to convey.",
|
|
129
|
+
enum: ["alloy", "echo", "fable", "onyx", "nova", "shimmer"],
|
|
130
|
+
},
|
|
131
|
+
threadId: {
|
|
132
|
+
type: "number",
|
|
133
|
+
description: "The Telegram thread ID of the active session. " +
|
|
134
|
+
"ALWAYS pass this if you received it from start_session.",
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
required: ["text"],
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: "schedule_wake_up",
|
|
142
|
+
description: "Schedule a wake-up task that will inject a prompt into your session at a specific time or after operator inactivity. " +
|
|
143
|
+
"Use this to become proactive — run tests, check CI, review code — without waiting for the operator. " +
|
|
144
|
+
"Three modes: (1) 'runAt' for a one-shot at a specific ISO 8601 time, " +
|
|
145
|
+
"(2) 'cron' for recurring tasks (5-field cron: minute hour day month weekday), " +
|
|
146
|
+
"(3) 'afterIdleMinutes' to fire after N minutes of operator silence. " +
|
|
147
|
+
"Note: cron expressions are evaluated against server-local time (not UTC). " +
|
|
148
|
+
"Use 'action: list' to see all scheduled tasks, or 'action: remove' with a taskId to cancel one.",
|
|
149
|
+
inputSchema: {
|
|
150
|
+
type: "object",
|
|
151
|
+
properties: {
|
|
152
|
+
action: {
|
|
153
|
+
type: "string",
|
|
154
|
+
description: "Action to perform: 'add' (default), 'list', or 'remove'.",
|
|
155
|
+
enum: ["add", "list", "remove"],
|
|
156
|
+
},
|
|
157
|
+
threadId: {
|
|
158
|
+
type: "number",
|
|
159
|
+
description: "Thread ID for the session (optional if already set).",
|
|
160
|
+
},
|
|
161
|
+
label: {
|
|
162
|
+
type: "string",
|
|
163
|
+
description: "Short human-readable label for the task (e.g. 'morning CI check').",
|
|
164
|
+
},
|
|
165
|
+
prompt: {
|
|
166
|
+
type: "string",
|
|
167
|
+
description: "The prompt to inject when the task fires. Be specific about what to do.",
|
|
168
|
+
},
|
|
169
|
+
runAt: {
|
|
170
|
+
type: "string",
|
|
171
|
+
description: "ISO 8601 timestamp for one-shot execution (e.g. '2026-03-15T09:00:00Z').",
|
|
172
|
+
},
|
|
173
|
+
cron: {
|
|
174
|
+
type: "string",
|
|
175
|
+
description: "5-field cron expression for recurring tasks (e.g. '0 9 * * *' = every day at 9am). Cron expressions are evaluated against server-local time (not UTC).",
|
|
176
|
+
},
|
|
177
|
+
afterIdleMinutes: {
|
|
178
|
+
type: "number",
|
|
179
|
+
description: "Fire after this many minutes of operator silence (e.g. 60).",
|
|
180
|
+
},
|
|
181
|
+
taskId: {
|
|
182
|
+
type: "string",
|
|
183
|
+
description: "Task ID to remove (for action: 'remove').",
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
name: "sleep",
|
|
190
|
+
description: "Enter sleep mode — the agent hibernates until a specific time, a scheduled task fires, or the operator sends a message. " +
|
|
191
|
+
"Use this instead of repeated wait_for_instructions calls when nothing is pending. " +
|
|
192
|
+
"Specify 'wakeAt' (ISO 8601 timestamp) for a timed alarm, or omit it to sleep indefinitely until operator or scheduled task wakes you. " +
|
|
193
|
+
"Sleep uses a low-frequency poll (30s intervals) to minimize resource usage. " +
|
|
194
|
+
"On wake, returns the reason: 'operator_message', 'scheduled_task', 'alarm', or 'connection_lost'.",
|
|
195
|
+
inputSchema: {
|
|
196
|
+
type: "object",
|
|
197
|
+
properties: {
|
|
198
|
+
threadId: {
|
|
199
|
+
type: "number",
|
|
200
|
+
description: "Thread ID for the session (optional if already set).",
|
|
201
|
+
},
|
|
202
|
+
wakeAt: {
|
|
203
|
+
type: "string",
|
|
204
|
+
description: "ISO 8601 timestamp to wake up at (e.g. '2026-03-20T14:00:00+02:00'). If omitted, sleeps until operator message or scheduled task.",
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
// ── Memory Tools ──────────────────────────────────────────────────
|
|
210
|
+
{
|
|
211
|
+
name: "memory_bootstrap",
|
|
212
|
+
description: "Load memory briefing for session start. Call this ONCE after start_session. " +
|
|
213
|
+
"Returns operator profile, recent context, active procedures, and memory health. " +
|
|
214
|
+
"~2,500 tokens. Essential for crash recovery — restores knowledge from previous sessions.",
|
|
215
|
+
inputSchema: {
|
|
216
|
+
type: "object",
|
|
217
|
+
properties: {
|
|
218
|
+
threadId: {
|
|
219
|
+
type: "number",
|
|
220
|
+
description: "Active thread ID.",
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
name: "memory_search",
|
|
227
|
+
description: "Search across all memory layers for relevant information. " +
|
|
228
|
+
"Use BEFORE starting any task to recall facts, preferences, past events, or procedures. " +
|
|
229
|
+
"Returns ranked results with source layer. Do NOT use for info already in your bootstrap briefing.",
|
|
230
|
+
inputSchema: {
|
|
231
|
+
type: "object",
|
|
232
|
+
properties: {
|
|
233
|
+
query: {
|
|
234
|
+
type: "string",
|
|
235
|
+
description: "Natural language search query.",
|
|
236
|
+
},
|
|
237
|
+
layers: {
|
|
238
|
+
type: "array",
|
|
239
|
+
items: { type: "string" },
|
|
240
|
+
description: 'Filter layers: ["episodic", "semantic", "procedural"]. Default: all.',
|
|
241
|
+
},
|
|
242
|
+
types: {
|
|
243
|
+
type: "array",
|
|
244
|
+
items: { type: "string" },
|
|
245
|
+
description: 'Filter by type: ["fact", "preference", "pattern", "workflow", ...].',
|
|
246
|
+
},
|
|
247
|
+
maxTokens: {
|
|
248
|
+
type: "number",
|
|
249
|
+
description: "Token budget for results. Default: 1500.",
|
|
250
|
+
},
|
|
251
|
+
threadId: {
|
|
252
|
+
type: "number",
|
|
253
|
+
description: "Active thread ID.",
|
|
254
|
+
},
|
|
255
|
+
},
|
|
256
|
+
required: ["query"],
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
name: "memory_save",
|
|
261
|
+
description: "Save a piece of knowledge to semantic memory (Layer 3). " +
|
|
262
|
+
"Use when you learn something important that should persist across sessions: " +
|
|
263
|
+
"operator preferences, corrections, facts, patterns. " +
|
|
264
|
+
"Do NOT use for routine conversation — episodic memory captures that automatically.",
|
|
265
|
+
inputSchema: {
|
|
266
|
+
type: "object",
|
|
267
|
+
properties: {
|
|
268
|
+
content: {
|
|
269
|
+
type: "string",
|
|
270
|
+
description: "The fact/preference/pattern in one clear sentence.",
|
|
271
|
+
},
|
|
272
|
+
type: {
|
|
273
|
+
type: "string",
|
|
274
|
+
description: '"fact" | "preference" | "pattern" | "entity" | "relationship".',
|
|
275
|
+
},
|
|
276
|
+
keywords: {
|
|
277
|
+
type: "array",
|
|
278
|
+
items: { type: "string" },
|
|
279
|
+
description: "3-7 keywords for retrieval.",
|
|
280
|
+
},
|
|
281
|
+
confidence: {
|
|
282
|
+
type: "number",
|
|
283
|
+
description: "0.0-1.0. Default: 0.8.",
|
|
284
|
+
},
|
|
285
|
+
priority: {
|
|
286
|
+
type: "number",
|
|
287
|
+
description: "0=normal, 1=notable, 2=high importance. Infer from operator's emotional investment: 'important'/'I really need' → 2, 'would be nice'/'should' → 1, else 0.",
|
|
288
|
+
},
|
|
289
|
+
threadId: {
|
|
290
|
+
type: "number",
|
|
291
|
+
description: "Active thread ID.",
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
required: ["content", "type", "keywords"],
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
name: "memory_save_procedure",
|
|
299
|
+
description: "Save or update a learned workflow/procedure to procedural memory (Layer 4). " +
|
|
300
|
+
"Use after completing a multi-step task the 2nd+ time, or when the operator teaches a process.",
|
|
301
|
+
inputSchema: {
|
|
302
|
+
type: "object",
|
|
303
|
+
properties: {
|
|
304
|
+
name: {
|
|
305
|
+
type: "string",
|
|
306
|
+
description: "Short name for the procedure.",
|
|
307
|
+
},
|
|
308
|
+
type: {
|
|
309
|
+
type: "string",
|
|
310
|
+
description: '"workflow" | "habit" | "tool_pattern" | "template".',
|
|
311
|
+
},
|
|
312
|
+
description: {
|
|
313
|
+
type: "string",
|
|
314
|
+
description: "What this procedure accomplishes.",
|
|
315
|
+
},
|
|
316
|
+
steps: {
|
|
317
|
+
type: "array",
|
|
318
|
+
items: { type: "string" },
|
|
319
|
+
description: "Ordered steps (for workflows).",
|
|
320
|
+
},
|
|
321
|
+
triggerConditions: {
|
|
322
|
+
type: "array",
|
|
323
|
+
items: { type: "string" },
|
|
324
|
+
description: "When to use this procedure.",
|
|
325
|
+
},
|
|
326
|
+
procedureId: {
|
|
327
|
+
type: "string",
|
|
328
|
+
description: "Existing ID to update (omit to create new).",
|
|
329
|
+
},
|
|
330
|
+
threadId: {
|
|
331
|
+
type: "number",
|
|
332
|
+
description: "Active thread ID.",
|
|
333
|
+
},
|
|
334
|
+
},
|
|
335
|
+
required: ["name", "type", "description"],
|
|
336
|
+
},
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
name: "memory_update",
|
|
340
|
+
description: "Update or supersede an existing semantic note or procedure. " +
|
|
341
|
+
"Use when operator corrects stored information or when facts have changed.",
|
|
342
|
+
inputSchema: {
|
|
343
|
+
type: "object",
|
|
344
|
+
properties: {
|
|
345
|
+
memoryId: {
|
|
346
|
+
type: "string",
|
|
347
|
+
description: "note_id or procedure_id to update.",
|
|
348
|
+
},
|
|
349
|
+
action: {
|
|
350
|
+
type: "string",
|
|
351
|
+
description: '"update" (modify in place) | "supersede" (expire old, create new).',
|
|
352
|
+
},
|
|
353
|
+
newContent: {
|
|
354
|
+
type: "string",
|
|
355
|
+
description: "New content (required for supersede, optional for update).",
|
|
356
|
+
},
|
|
357
|
+
newConfidence: {
|
|
358
|
+
type: "number",
|
|
359
|
+
description: "Updated confidence score.",
|
|
360
|
+
},
|
|
361
|
+
newPriority: {
|
|
362
|
+
type: "number",
|
|
363
|
+
description: "Updated priority: 0=normal, 1=notable, 2=high importance.",
|
|
364
|
+
},
|
|
365
|
+
reason: {
|
|
366
|
+
type: "string",
|
|
367
|
+
description: "Why this is being updated.",
|
|
368
|
+
},
|
|
369
|
+
threadId: {
|
|
370
|
+
type: "number",
|
|
371
|
+
description: "Active thread ID.",
|
|
372
|
+
},
|
|
373
|
+
},
|
|
374
|
+
required: ["memoryId", "action", "reason"],
|
|
375
|
+
},
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
name: "memory_consolidate",
|
|
379
|
+
description: "Run memory consolidation cycle (sleep process). Normally triggered automatically during idle. " +
|
|
380
|
+
"Manually call if memory_status shows many unconsolidated episodes.",
|
|
381
|
+
inputSchema: {
|
|
382
|
+
type: "object",
|
|
383
|
+
properties: {
|
|
384
|
+
threadId: {
|
|
385
|
+
type: "number",
|
|
386
|
+
description: "Active thread ID.",
|
|
387
|
+
},
|
|
388
|
+
phases: {
|
|
389
|
+
type: "array",
|
|
390
|
+
items: { type: "string" },
|
|
391
|
+
description: 'Run specific phases: ["promote", "decay", "meta"]. Default: all.',
|
|
392
|
+
},
|
|
393
|
+
},
|
|
394
|
+
},
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
name: "memory_status",
|
|
398
|
+
description: "Get memory system health and statistics. Lightweight (~300 tokens). " +
|
|
399
|
+
"Use when unsure if you have relevant memories, to check if consolidation is needed, " +
|
|
400
|
+
"or to report memory state to operator.",
|
|
401
|
+
inputSchema: {
|
|
402
|
+
type: "object",
|
|
403
|
+
properties: {
|
|
404
|
+
threadId: {
|
|
405
|
+
type: "number",
|
|
406
|
+
description: "Active thread ID.",
|
|
407
|
+
},
|
|
408
|
+
},
|
|
409
|
+
},
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
name: "memory_forget",
|
|
413
|
+
description: "Mark a memory as expired/forgotten. Use sparingly — most forgetting happens via decay. " +
|
|
414
|
+
"Use when operator explicitly asks to forget something or info is confirmed wrong.",
|
|
415
|
+
inputSchema: {
|
|
416
|
+
type: "object",
|
|
417
|
+
properties: {
|
|
418
|
+
memoryId: {
|
|
419
|
+
type: "string",
|
|
420
|
+
description: "note_id, procedure_id, or episode_id to forget.",
|
|
421
|
+
},
|
|
422
|
+
reason: {
|
|
423
|
+
type: "string",
|
|
424
|
+
description: "Why this is being forgotten.",
|
|
425
|
+
},
|
|
426
|
+
threadId: {
|
|
427
|
+
type: "number",
|
|
428
|
+
description: "Active thread ID.",
|
|
429
|
+
},
|
|
430
|
+
},
|
|
431
|
+
required: ["memoryId", "reason"],
|
|
432
|
+
},
|
|
433
|
+
},
|
|
434
|
+
// ── Rate Limiting Tools ─────────────────────────────────────────────
|
|
435
|
+
{
|
|
436
|
+
name: "get_usage_stats",
|
|
437
|
+
description: "Get API usage statistics and rate limit status across all services (GitHub, OpenAI, etc.). " +
|
|
438
|
+
"Shows per-service usage, available capacity, and how many agents are sharing resources. " +
|
|
439
|
+
"Use this before making heavy API calls to check if you should throttle. " +
|
|
440
|
+
"Also useful to report resource usage to the operator.",
|
|
441
|
+
inputSchema: {
|
|
442
|
+
type: "object",
|
|
443
|
+
properties: {
|
|
444
|
+
threadId: {
|
|
445
|
+
type: "number",
|
|
446
|
+
description: "Active thread ID.",
|
|
447
|
+
},
|
|
448
|
+
},
|
|
449
|
+
},
|
|
450
|
+
},
|
|
451
|
+
];
|
|
452
|
+
}
|
|
453
|
+
//# sourceMappingURL=tool-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../src/tool-definitions.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types used across modules in sensorium-mcp.
|
|
3
|
+
*
|
|
4
|
+
* This file defines the context interfaces that allow tool handlers
|
|
5
|
+
* and transport layers to access shared state without coupling directly
|
|
6
|
+
* to the monolithic index.ts.
|
|
7
|
+
*/
|
|
8
|
+
import type { Database } from "better-sqlite3";
|
|
9
|
+
import type { TelegramClient } from "./telegram.js";
|
|
10
|
+
export interface AppConfig {
|
|
11
|
+
TELEGRAM_TOKEN: string;
|
|
12
|
+
TELEGRAM_CHAT_ID: string;
|
|
13
|
+
OPENAI_API_KEY: string;
|
|
14
|
+
VOICE_ANALYSIS_URL: string;
|
|
15
|
+
WAIT_TIMEOUT_MINUTES: number;
|
|
16
|
+
FILES_DIR: string;
|
|
17
|
+
PKG_VERSION: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SessionState {
|
|
20
|
+
waitCallCount: number;
|
|
21
|
+
sessionStartedAt: number;
|
|
22
|
+
currentThreadId: number | undefined;
|
|
23
|
+
lastToolCallAt: number;
|
|
24
|
+
deadSessionAlerted: boolean;
|
|
25
|
+
lastOperatorMessageAt: number;
|
|
26
|
+
lastConsolidationAt: number;
|
|
27
|
+
toolCallsSinceLastDelivery: number;
|
|
28
|
+
previewedUpdateIds: Set<number>;
|
|
29
|
+
}
|
|
30
|
+
export interface ToolContext {
|
|
31
|
+
config: AppConfig;
|
|
32
|
+
telegram: TelegramClient;
|
|
33
|
+
getMemoryDb: () => Database;
|
|
34
|
+
session: SessionState;
|
|
35
|
+
/** Resolve threadId from args or fall back to session's currentThreadId. */
|
|
36
|
+
resolveThreadId(args: Record<string, unknown> | undefined): number | undefined;
|
|
37
|
+
/** Cap and add a message ID to the previewed set. */
|
|
38
|
+
addPreviewedId(id: number): void;
|
|
39
|
+
/** Append time/thread/workflow hints to a tool response string. */
|
|
40
|
+
getReminders(threadId?: number, driveActive?: boolean): string;
|
|
41
|
+
/** Convert standard markdown to Telegram MarkdownV2. */
|
|
42
|
+
convertMarkdown(markdown: string): string;
|
|
43
|
+
/** Get the MCP session ID for this connection. */
|
|
44
|
+
getMcpSessionId?: () => string | undefined;
|
|
45
|
+
}
|
|
46
|
+
export interface DashboardCtx {
|
|
47
|
+
getDb: () => Database;
|
|
48
|
+
getActiveSessions: () => Array<{
|
|
49
|
+
mcpSessionId: string;
|
|
50
|
+
threadId: number;
|
|
51
|
+
startedAt: string;
|
|
52
|
+
lastToolCallAt: string;
|
|
53
|
+
toolName?: string;
|
|
54
|
+
}>;
|
|
55
|
+
serverStartTime: number;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,0BAA0B,EAAE,MAAM,CAAC;IACnC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACjC;AAID,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IAEtB,4EAA4E;IAC5E,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAE/E,qDAAqD;IACrD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC,mEAAmE;IACnE,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE/D,wDAAwD;IACxD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1C,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CAC5C;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,QAAQ,CAAC;IACtB,iBAAiB,EAAE,MAAM,KAAK,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,eAAe,EAAE,MAAM,CAAC;CACzB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types used across modules in sensorium-mcp.
|
|
3
|
+
*
|
|
4
|
+
* This file defines the context interfaces that allow tool handlers
|
|
5
|
+
* and transport layers to access shared state without coupling directly
|
|
6
|
+
* to the monolithic index.ts.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|