tomo-ai 0.2.1 → 0.3.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/README.md +36 -29
- package/dist/agent.d.ts +8 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +148 -50
- package/dist/agent.js.map +1 -1
- package/dist/channels/imessage.d.ts +39 -0
- package/dist/channels/imessage.d.ts.map +1 -0
- package/dist/channels/imessage.js +387 -0
- package/dist/channels/imessage.js.map +1 -0
- package/dist/channels/index.d.ts +1 -0
- package/dist/channels/index.d.ts.map +1 -1
- package/dist/channels/index.js +1 -0
- package/dist/channels/index.js.map +1 -1
- package/dist/cli/config.d.ts +3 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +579 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +50 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/lcm.js +3 -3
- package/dist/cli/lcm.js.map +1 -1
- package/dist/cli/start.js +11 -1
- package/dist/cli/start.js.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +16 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +40 -5
- package/dist/config.js.map +1 -1
- package/dist/router.d.ts +28 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +133 -0
- package/dist/router.js.map +1 -0
- package/dist/sessions/store.d.ts +7 -1
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +42 -1
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/types.d.ts +7 -1
- package/dist/sessions/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
Personality system ·
|
|
15
15
|
Persistent memory ·
|
|
16
16
|
Scheduled tasks ·
|
|
17
|
-
Telegram
|
|
17
|
+
Telegram · iMessage
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
---
|
|
@@ -33,12 +33,15 @@ That's it. Open Telegram and message your bot.
|
|
|
33
33
|
|
|
34
34
|
- Node.js 22+
|
|
35
35
|
- [Claude Code](https://claude.com/claude-code) installed and authenticated (subscription plan — API keys are not currently supported)
|
|
36
|
-
-
|
|
36
|
+
- At least one channel:
|
|
37
|
+
- **Telegram** — bot token from [@BotFather](https://t.me/BotFather)
|
|
38
|
+
- **iMessage** — [BlueBubbles](https://bluebubbles.app) server running on a Mac with iMessage signed in
|
|
37
39
|
|
|
38
40
|
## CLI
|
|
39
41
|
|
|
40
42
|
```bash
|
|
41
43
|
tomo init # First-time setup
|
|
44
|
+
tomo config # Interactive settings (model, channels, identities, groups)
|
|
42
45
|
tomo start # Start in background (daemon)
|
|
43
46
|
tomo start -f # Start in foreground (for dev)
|
|
44
47
|
tomo stop # Stop the daemon
|
|
@@ -48,16 +51,14 @@ tomo logs # View logs (pretty-printed)
|
|
|
48
51
|
tomo logs -f # Follow logs live
|
|
49
52
|
tomo sessions list # Show active sessions
|
|
50
53
|
tomo sessions clear # Reset all sessions
|
|
51
|
-
tomo cron add # Create a scheduled task
|
|
52
|
-
tomo cron list # List all jobs
|
|
53
|
-
tomo cron remove <id> # Delete a job
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
##
|
|
56
|
+
## Chat Commands
|
|
57
57
|
|
|
58
58
|
| Command | Description |
|
|
59
59
|
|---------|-------------|
|
|
60
60
|
| `/new` | Start a new conversation (resets session) |
|
|
61
|
+
| `/model` | Switch model (sonnet/opus/haiku) |
|
|
61
62
|
|
|
62
63
|
## Features
|
|
63
64
|
|
|
@@ -84,7 +85,20 @@ File-based persistent memory at `~/.tomo/workspace/memory/`. The `MEMORY.md` ind
|
|
|
84
85
|
- Image/photo support (sends to Claude as vision input)
|
|
85
86
|
- Group chat: only responds when @mentioned or replied to, tracks participants
|
|
86
87
|
- Markdown rendering with plain-text fallback
|
|
87
|
-
-
|
|
88
|
+
- **iMessage** — via [BlueBubbles](https://bluebubbles.app)
|
|
89
|
+
- DM and group chat support
|
|
90
|
+
- Image attachment support
|
|
91
|
+
- Contact name resolution from Mac contacts
|
|
92
|
+
- Group chat: observes all messages, only responds when relevant (replies `NO_REPLY` to stay silent)
|
|
93
|
+
|
|
94
|
+
### Multi-Channel Sessions
|
|
95
|
+
|
|
96
|
+
Talk to Tomo from multiple channels using the same session. Configure identities in `tomo config` to bind your Telegram and iMessage accounts — Tomo replies on whichever channel you last used (or a fixed default).
|
|
97
|
+
|
|
98
|
+
- DM sessions are unified across channels per identity
|
|
99
|
+
- Group chats always get their own isolated session
|
|
100
|
+
- Per-channel allowlists control who can message Tomo
|
|
101
|
+
- Group chats require a secret passphrase to activate (configured in `tomo config`)
|
|
88
102
|
|
|
89
103
|
### Tools
|
|
90
104
|
|
|
@@ -101,24 +115,7 @@ Tomo has access to Claude's built-in tools:
|
|
|
101
115
|
|
|
102
116
|
### Scheduled Tasks
|
|
103
117
|
|
|
104
|
-
|
|
105
|
-
# One-shot reminder
|
|
106
|
-
tomo cron add --name "standup" --schedule "in 20m" --message "Time for standup!"
|
|
107
|
-
|
|
108
|
-
# Recurring task
|
|
109
|
-
tomo cron add --name "morning" --schedule "0 9 * * *" --message "Check calendar and weather"
|
|
110
|
-
|
|
111
|
-
# Interval
|
|
112
|
-
tomo cron add --name "check" --schedule "every 2h" --message "Check email inbox"
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Tomo can also create jobs itself — just ask "remind me in 30 minutes to stretch."
|
|
116
|
-
|
|
117
|
-
| Format | Type | Example |
|
|
118
|
-
|--------|------|---------|
|
|
119
|
-
| `in Xm/h/d` | One-shot | `in 30m`, `in 2h` |
|
|
120
|
-
| `every Xm/h` | Recurring interval | `every 30m` |
|
|
121
|
-
| Cron expression | Recurring (5-field) | `0 9 * * *` |
|
|
118
|
+
Tomo can create scheduled tasks on its own — just ask "remind me in 30 minutes to stretch" or "check the weather every morning at 9am." Supports one-shot reminders, recurring intervals, and cron expressions.
|
|
122
119
|
|
|
123
120
|
### Sessions
|
|
124
121
|
|
|
@@ -138,7 +135,7 @@ Structured logs via [pino](https://github.com/pinojs/pino):
|
|
|
138
135
|
|
|
139
136
|
```
|
|
140
137
|
~/.tomo/
|
|
141
|
-
config.json #
|
|
138
|
+
config.json # Channels, identities, model, settings
|
|
142
139
|
tomo.pid # PID file (when running)
|
|
143
140
|
workspace/
|
|
144
141
|
SOUL.md # Your personality config
|
|
@@ -155,14 +152,23 @@ Structured logs via [pino](https://github.com/pinojs/pino):
|
|
|
155
152
|
|
|
156
153
|
## Configuration
|
|
157
154
|
|
|
158
|
-
|
|
155
|
+
Run `tomo config` for interactive setup, or edit `~/.tomo/config.json` directly:
|
|
159
156
|
|
|
160
157
|
```json
|
|
161
158
|
{
|
|
162
159
|
"channels": {
|
|
163
|
-
"telegram": { "token": "your-bot-token" }
|
|
160
|
+
"telegram": { "token": "your-bot-token", "allowlist": ["123456789"] },
|
|
161
|
+
"imessage": { "url": "http://localhost:1234", "password": "...", "allowlist": ["+15551234567"] }
|
|
164
162
|
},
|
|
165
|
-
"
|
|
163
|
+
"identities": [
|
|
164
|
+
{
|
|
165
|
+
"name": "yourname",
|
|
166
|
+
"channels": { "telegram": "123456789", "imessage": "+15551234567" },
|
|
167
|
+
"replyPolicy": "last-active"
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
"model": "claude-sonnet-4-6",
|
|
171
|
+
"groupSecret": "tomo-xxxxxxxx"
|
|
166
172
|
}
|
|
167
173
|
```
|
|
168
174
|
|
|
@@ -171,6 +177,7 @@ Environment variables override config file values:
|
|
|
171
177
|
| Variable | Description |
|
|
172
178
|
|----------|-------------|
|
|
173
179
|
| `TELEGRAM_BOT_TOKEN` | Override Telegram token |
|
|
180
|
+
| `IMESSAGE_URL` | Override BlueBubbles URL |
|
|
174
181
|
| `CLAUDE_MODEL` | Override model |
|
|
175
182
|
| `TOMO_WORKSPACE` | Override workspace directory |
|
|
176
183
|
| `LOG_LEVEL` | Log level (default: `debug`) |
|
package/dist/agent.d.ts
CHANGED
|
@@ -2,15 +2,22 @@ import type { Channel } from "./channels/types.js";
|
|
|
2
2
|
export declare class Agent {
|
|
3
3
|
private channels;
|
|
4
4
|
private sessions;
|
|
5
|
+
private router;
|
|
5
6
|
private liveSessions;
|
|
7
|
+
private messageQueues;
|
|
6
8
|
private groupParticipants;
|
|
7
9
|
private modelOverrides;
|
|
8
10
|
private lastPromptHash;
|
|
9
11
|
constructor();
|
|
12
|
+
/** Look up a channel by name */
|
|
13
|
+
private getChannel;
|
|
14
|
+
/** Activate a group chat by adding it to the channel's allowlist */
|
|
15
|
+
private activateGroup;
|
|
10
16
|
addChannel(channel: Channel): void;
|
|
17
|
+
/** Queue messages per session key so they process sequentially */
|
|
18
|
+
private enqueueMessage;
|
|
11
19
|
private static readonly AVAILABLE_MODELS;
|
|
12
20
|
private handleCommand;
|
|
13
|
-
private sessionKey;
|
|
14
21
|
private getOrCreateLiveSession;
|
|
15
22
|
private closeLiveSession;
|
|
16
23
|
private hashString;
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AA8TpE,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,cAAc,CAAc;;IAYpC,gCAAgC;IAChC,OAAO,CAAC,UAAU;IAIlB,oEAAoE;YACtD,aAAa;IAsB3B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMlC,kEAAkE;YACpD,cAAc;IAS5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAItC;YAEY,aAAa;IAkC3B,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,UAAU;YAQJ,aAAa;YA6Hb,YAAY;YA8CZ,kBAAkB;IA+BhC,OAAO,CAAC,eAAe;IAWvB,sCAAsC;IAChC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqE9F,0EAA0E;IACpE,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrD,OAAO,CAAC,cAAc;IAShB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAM5B"}
|
package/dist/agent.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { query } from "@anthropic-ai/claude-agent-sdk";
|
|
2
|
-
import { config } from "./config.js";
|
|
2
|
+
import { config, CONFIG_PATH } from "./config.js";
|
|
3
3
|
import { buildSystemPrompt } from "./workspace/index.js";
|
|
4
4
|
import { SessionStore } from "./sessions/index.js";
|
|
5
5
|
import { checkAndClearCompactTrigger } from "./lcm/index.js";
|
|
6
|
+
import { IdentityRouter } from "./router.js";
|
|
6
7
|
import { log } from "./logger.js";
|
|
7
8
|
function isSilentReply(text) {
|
|
8
9
|
return /^\s*NO_REPLY\s*$/i.test(text);
|
|
@@ -248,25 +249,68 @@ function summarizeToolInput(name, input) {
|
|
|
248
249
|
export class Agent {
|
|
249
250
|
channels = [];
|
|
250
251
|
sessions;
|
|
252
|
+
router;
|
|
251
253
|
liveSessions = new Map();
|
|
254
|
+
messageQueues = new Map();
|
|
252
255
|
groupParticipants = new Map();
|
|
253
256
|
modelOverrides = new Map();
|
|
254
257
|
lastPromptHash = "";
|
|
255
258
|
constructor() {
|
|
256
259
|
this.sessions = new SessionStore(config.sessionsDir, config.historyLimit);
|
|
260
|
+
this.router = new IdentityRouter(config.identities, this.sessions, config.channelAllowlists);
|
|
261
|
+
// Load persistent per-session model overrides
|
|
262
|
+
for (const [key, model] of Object.entries(config.sessionModelOverrides)) {
|
|
263
|
+
this.modelOverrides.set(key, model);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/** Look up a channel by name */
|
|
267
|
+
getChannel(name) {
|
|
268
|
+
return this.channels.find((ch) => ch.name === name);
|
|
269
|
+
}
|
|
270
|
+
/** Activate a group chat by adding it to the channel's allowlist */
|
|
271
|
+
async activateGroup(channel, chatId) {
|
|
272
|
+
try {
|
|
273
|
+
const { readFileSync, writeFileSync } = await import("node:fs");
|
|
274
|
+
const cfg = JSON.parse(readFileSync(CONFIG_PATH, "utf-8"));
|
|
275
|
+
const channels = (cfg.channels ?? {});
|
|
276
|
+
if (!channels[channel.name])
|
|
277
|
+
channels[channel.name] = {};
|
|
278
|
+
const allowlist = (channels[channel.name].allowlist ?? []);
|
|
279
|
+
if (!allowlist.includes(chatId)) {
|
|
280
|
+
allowlist.push(chatId);
|
|
281
|
+
channels[channel.name].allowlist = allowlist;
|
|
282
|
+
cfg.channels = channels;
|
|
283
|
+
writeFileSync(CONFIG_PATH, JSON.stringify(cfg, null, 2) + "\n");
|
|
284
|
+
// Update the router's in-memory allowlist
|
|
285
|
+
this.router.addToAllowlist(channel.name, chatId);
|
|
286
|
+
}
|
|
287
|
+
log.info({ channel: channel.name, chatId }, "Group chat activated via secret");
|
|
288
|
+
await channel.send({ chatId, text: "Tomo activated in this group." });
|
|
289
|
+
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
log.error({ err }, "Failed to activate group");
|
|
292
|
+
}
|
|
257
293
|
}
|
|
258
294
|
addChannel(channel) {
|
|
259
|
-
channel.onMessage((msg) => this.
|
|
295
|
+
channel.onMessage((msg) => this.enqueueMessage(channel, msg));
|
|
260
296
|
channel.onCommand((cmd, chatId, senderName, args) => this.handleCommand(channel, cmd, chatId, senderName, args));
|
|
261
297
|
this.channels.push(channel);
|
|
262
298
|
}
|
|
299
|
+
/** Queue messages per session key so they process sequentially */
|
|
300
|
+
async enqueueMessage(channel, message) {
|
|
301
|
+
const isGroup = message.isGroup ?? false;
|
|
302
|
+
const { sessionKey } = this.router.resolve(channel.name, message.chatId, isGroup);
|
|
303
|
+
const prev = this.messageQueues.get(sessionKey) ?? Promise.resolve();
|
|
304
|
+
const next = prev.then(() => this.handleMessage(channel, message)).catch(() => { });
|
|
305
|
+
this.messageQueues.set(sessionKey, next);
|
|
306
|
+
}
|
|
263
307
|
static AVAILABLE_MODELS = {
|
|
264
308
|
"sonnet": "claude-sonnet-4-6[1m]",
|
|
265
309
|
"opus": "claude-opus-4-6[1m]",
|
|
266
310
|
"haiku": "claude-haiku-4-5",
|
|
267
311
|
};
|
|
268
312
|
async handleCommand(channel, command, chatId, senderName, args) {
|
|
269
|
-
const key = this.
|
|
313
|
+
const { sessionKey: key } = this.router.resolve(channel.name, chatId, false);
|
|
270
314
|
if (command === "new") {
|
|
271
315
|
this.closeLiveSession(key);
|
|
272
316
|
this.sessions.clearSdkSessionId(key);
|
|
@@ -295,9 +339,6 @@ export class Agent {
|
|
|
295
339
|
return;
|
|
296
340
|
}
|
|
297
341
|
}
|
|
298
|
-
sessionKey(channel, chatId) {
|
|
299
|
-
return `${channel.name}:${chatId}`;
|
|
300
|
-
}
|
|
301
342
|
getOrCreateLiveSession(key) {
|
|
302
343
|
let session = this.liveSessions.get(key);
|
|
303
344
|
if (session?.isAlive())
|
|
@@ -342,10 +383,23 @@ export class Agent {
|
|
|
342
383
|
const isGroup = message.isGroup ?? false;
|
|
343
384
|
const isMentioned = message.isMentioned ?? false;
|
|
344
385
|
log.info({ channel: channel.name, sender: message.senderName, group: isGroup || undefined, mentioned: isMentioned || undefined, images: hasImages ? message.images.length : undefined }, message.text);
|
|
345
|
-
|
|
386
|
+
// Group secret activation: if message matches the secret, add group to allowlist
|
|
387
|
+
if (isGroup && config.groupSecret && message.text.trim() === config.groupSecret) {
|
|
388
|
+
await this.activateGroup(channel, message.chatId);
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
// Allowlist check: reject messages from unknown senders
|
|
392
|
+
if (!this.router.isAllowed(channel.name, message.chatId)) {
|
|
393
|
+
log.debug({ channel: channel.name, chatId: message.chatId }, "Message blocked (not in allowlist)");
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
396
|
+
const resolution = this.router.resolve(channel.name, message.chatId, isGroup);
|
|
397
|
+
const key = resolution.sessionKey;
|
|
398
|
+
const replyChannel = this.getChannel(resolution.replyTarget.channelName) ?? channel;
|
|
399
|
+
const replyChatId = resolution.replyTarget.chatId;
|
|
346
400
|
const textForAgent = isGroup ? `${message.senderName}: ${message.text}` : message.text;
|
|
347
401
|
if (isGroup) {
|
|
348
|
-
await this.updateGroupContext(key, message.senderName, message.chatTitle);
|
|
402
|
+
await this.updateGroupContext(key, message.senderName, channel.name, message.chatTitle);
|
|
349
403
|
}
|
|
350
404
|
this.sessions.append(key, {
|
|
351
405
|
role: "user",
|
|
@@ -358,10 +412,12 @@ export class Agent {
|
|
|
358
412
|
log.debug("Group message ignored (not mentioned)");
|
|
359
413
|
return;
|
|
360
414
|
}
|
|
361
|
-
|
|
415
|
+
// iMessage groups: skip typing indicator (most messages will be NO_REPLY)
|
|
416
|
+
const isImessageGroup = isGroup && channel.name === "imessage";
|
|
417
|
+
const stopTyping = isImessageGroup ? () => { } : replyChannel.startTyping(replyChatId);
|
|
362
418
|
try {
|
|
363
419
|
const stampedText = this.injectTimestamp(textForAgent);
|
|
364
|
-
const stream =
|
|
420
|
+
const stream = replyChannel.createStreamingMessage(replyChatId, isGroup ? message.id : undefined);
|
|
365
421
|
const response = await this.runWithRetry(key, stampedText, (text) => {
|
|
366
422
|
stream.update(text.replace(MEDIA_RE, "").trim());
|
|
367
423
|
}, message.images);
|
|
@@ -378,10 +434,10 @@ export class Agent {
|
|
|
378
434
|
this.sessions.append(key, {
|
|
379
435
|
role: "assistant",
|
|
380
436
|
content: response,
|
|
381
|
-
channel:
|
|
437
|
+
channel: replyChannel.name,
|
|
382
438
|
timestamp: Date.now(),
|
|
383
439
|
});
|
|
384
|
-
log.info({ channel:
|
|
440
|
+
log.info({ channel: replyChannel.name }, "Tomo: %s", response);
|
|
385
441
|
if (isSilentReply(response)) {
|
|
386
442
|
log.info("Silent reply (no message sent)");
|
|
387
443
|
return;
|
|
@@ -389,7 +445,7 @@ export class Agent {
|
|
|
389
445
|
// Surface API errors that the SDK returns as response text
|
|
390
446
|
if (/^API Error: \d+/i.test(response) || /^\{"type":"error"/.test(response)) {
|
|
391
447
|
await stream.finish();
|
|
392
|
-
await
|
|
448
|
+
await replyChannel.send({ chatId: replyChatId, text: `[error] ${response}` });
|
|
393
449
|
return;
|
|
394
450
|
}
|
|
395
451
|
const { cleanText, mediaPaths } = extractMedia(response);
|
|
@@ -398,8 +454,8 @@ export class Agent {
|
|
|
398
454
|
const validPaths = mediaPaths.filter((p) => fileExists(p));
|
|
399
455
|
if (validPaths.length > 0) {
|
|
400
456
|
for (let i = 0; i < validPaths.length; i++) {
|
|
401
|
-
await
|
|
402
|
-
chatId:
|
|
457
|
+
await replyChannel.send({
|
|
458
|
+
chatId: replyChatId,
|
|
403
459
|
photo: validPaths[i],
|
|
404
460
|
text: i === 0 ? cleanText : "",
|
|
405
461
|
});
|
|
@@ -417,11 +473,13 @@ export class Agent {
|
|
|
417
473
|
catch (err) {
|
|
418
474
|
stopTyping();
|
|
419
475
|
log.error({ err }, "Error handling message");
|
|
476
|
+
// iMessage groups: suppress error messages to avoid polluting the chat
|
|
477
|
+
if (isImessageGroup)
|
|
478
|
+
return;
|
|
420
479
|
const detail = err instanceof Error ? err.message : String(err);
|
|
421
|
-
await
|
|
422
|
-
chatId:
|
|
480
|
+
await replyChannel.send({
|
|
481
|
+
chatId: replyChatId,
|
|
423
482
|
text: `[error] ${detail}`,
|
|
424
|
-
replyTo: message.id,
|
|
425
483
|
});
|
|
426
484
|
}
|
|
427
485
|
}
|
|
@@ -463,7 +521,7 @@ export class Agent {
|
|
|
463
521
|
throw err;
|
|
464
522
|
}
|
|
465
523
|
}
|
|
466
|
-
async updateGroupContext(key, senderName, chatTitle) {
|
|
524
|
+
async updateGroupContext(key, senderName, channelName, chatTitle) {
|
|
467
525
|
let participants = this.groupParticipants.get(key);
|
|
468
526
|
const isNew = !participants;
|
|
469
527
|
if (!participants) {
|
|
@@ -475,7 +533,11 @@ export class Agent {
|
|
|
475
533
|
if (isNew || !wasKnown) {
|
|
476
534
|
const names = [...participants].join(", ");
|
|
477
535
|
const title = chatTitle ? `"${chatTitle}"` : "a group chat";
|
|
478
|
-
|
|
536
|
+
let contextMsg = `System: You are in ${title}. Participants so far: ${names}. Messages are prefixed with sender names.`;
|
|
537
|
+
// iMessage groups: inject guidance to stay silent unless needed
|
|
538
|
+
if (isNew && channelName === "imessage") {
|
|
539
|
+
contextMsg += " This is an iMessage group chat. You see every message but should only reply when you have something genuinely useful to add. Reply NO_REPLY to stay silent. Do not respond to casual chatter, greetings, or messages not directed at you.";
|
|
540
|
+
}
|
|
479
541
|
try {
|
|
480
542
|
await this.runWithRetry(key, contextMsg);
|
|
481
543
|
log.info({ group: chatTitle, participants: names }, "Group context updated");
|
|
@@ -497,26 +559,56 @@ export class Agent {
|
|
|
497
559
|
}
|
|
498
560
|
/** Handle a cron-triggered message */
|
|
499
561
|
async handleCronMessage(message, channelName, chatId) {
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
562
|
+
// Resolve delivery target
|
|
563
|
+
let key;
|
|
564
|
+
let deliveryChannel;
|
|
565
|
+
let deliveryChatId;
|
|
566
|
+
if (channelName && chatId) {
|
|
567
|
+
// Explicit channel+chatId from cron job — resolve through router for identity support
|
|
568
|
+
const resolution = this.router.resolve(channelName, chatId, false);
|
|
569
|
+
key = resolution.sessionKey;
|
|
570
|
+
deliveryChannel = this.getChannel(resolution.replyTarget.channelName) ?? this.channels[0];
|
|
571
|
+
deliveryChatId = resolution.replyTarget.chatId;
|
|
572
|
+
}
|
|
573
|
+
else {
|
|
574
|
+
// No explicit target — try unified dm session first, then fall back to channel scan
|
|
575
|
+
const dmKey = this.router.findFirstDmSession();
|
|
576
|
+
if (dmKey) {
|
|
577
|
+
key = dmKey;
|
|
578
|
+
const target = this.router.getReplyTarget(dmKey);
|
|
579
|
+
if (target) {
|
|
580
|
+
deliveryChannel = this.getChannel(target.channelName) ?? this.channels[0];
|
|
581
|
+
deliveryChatId = target.chatId;
|
|
582
|
+
}
|
|
583
|
+
else {
|
|
584
|
+
log.warn("Cron: dm session has no reply target");
|
|
585
|
+
return;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
else {
|
|
589
|
+
// Legacy fallback: find last active chatId on first channel
|
|
590
|
+
const channel = this.channels[0];
|
|
591
|
+
if (!channel) {
|
|
592
|
+
log.warn("Cron: no channel available");
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
const fallbackChatId = this.findLastChatId(channel.name);
|
|
596
|
+
if (!fallbackChatId) {
|
|
597
|
+
log.warn({ channel: channel.name }, "Cron: no chatId available");
|
|
598
|
+
return;
|
|
599
|
+
}
|
|
600
|
+
key = `${channel.name}:${fallbackChatId}`;
|
|
601
|
+
deliveryChannel = channel;
|
|
602
|
+
deliveryChatId = fallbackChatId;
|
|
603
|
+
}
|
|
511
604
|
}
|
|
512
|
-
const key = this.sessionKey(channel, targetChatId);
|
|
513
605
|
const stampedMessage = this.injectTimestamp(message);
|
|
514
|
-
log.info({ channel:
|
|
515
|
-
const stopTyping =
|
|
606
|
+
log.info({ channel: deliveryChannel.name, sender: "cron" }, message);
|
|
607
|
+
const stopTyping = deliveryChannel.startTyping(deliveryChatId);
|
|
516
608
|
try {
|
|
517
609
|
const response = await this.runWithRetry(key, stampedMessage);
|
|
518
610
|
stopTyping();
|
|
519
|
-
log.info({ channel:
|
|
611
|
+
log.info({ channel: deliveryChannel.name }, "Tomo: %s", response);
|
|
520
612
|
if (isSilentReply(response)) {
|
|
521
613
|
log.info("Cron completed silently (no reply sent)");
|
|
522
614
|
return;
|
|
@@ -524,36 +616,42 @@ export class Agent {
|
|
|
524
616
|
this.sessions.append(key, {
|
|
525
617
|
role: "assistant",
|
|
526
618
|
content: response,
|
|
527
|
-
channel:
|
|
619
|
+
channel: deliveryChannel.name,
|
|
528
620
|
timestamp: Date.now(),
|
|
529
621
|
});
|
|
530
|
-
await
|
|
622
|
+
await deliveryChannel.send({ chatId: deliveryChatId, text: response });
|
|
531
623
|
}
|
|
532
624
|
catch (err) {
|
|
533
625
|
stopTyping();
|
|
534
626
|
log.error({ err }, "Cron message handling failed");
|
|
535
627
|
const detail = err instanceof Error ? err.message : String(err);
|
|
536
|
-
await
|
|
628
|
+
await deliveryChannel.send({ chatId: deliveryChatId, text: `[error] cron failed: ${detail}` });
|
|
537
629
|
}
|
|
538
630
|
}
|
|
539
631
|
/** Handle a continuity heartbeat — runs on the first active DM session */
|
|
540
632
|
async handleContinuity(prompt) {
|
|
541
|
-
//
|
|
542
|
-
const
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
633
|
+
// Prefer unified dm session, then fall back to channel-scoped session
|
|
634
|
+
const dmKey = this.router.findFirstDmSession();
|
|
635
|
+
let key;
|
|
636
|
+
if (dmKey) {
|
|
637
|
+
key = dmKey;
|
|
638
|
+
}
|
|
639
|
+
else {
|
|
640
|
+
const channel = this.channels[0];
|
|
641
|
+
if (!channel) {
|
|
642
|
+
log.warn("Continuity: no channel available");
|
|
643
|
+
return;
|
|
644
|
+
}
|
|
645
|
+
const chatId = this.findLastChatId(channel.name);
|
|
646
|
+
if (!chatId) {
|
|
647
|
+
log.debug("Continuity: no active session, skipping");
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
key = `${channel.name}:${chatId}`;
|
|
551
651
|
}
|
|
552
|
-
const key = this.sessionKey(channel, targetChatId);
|
|
553
652
|
try {
|
|
554
653
|
const response = await this.runWithRetry(key, prompt);
|
|
555
654
|
log.info("Continuity response: %s", response.slice(0, 100));
|
|
556
|
-
// Continuity responses are always silent — agent should reply NO_REPLY
|
|
557
655
|
}
|
|
558
656
|
catch (err) {
|
|
559
657
|
log.error({ err }, "Continuity heartbeat failed");
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|