@kingcrab/pi-imessage 0.0.40 → 0.0.42
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 +4 -1
- package/dist/agent.d.ts +32 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +295 -39
- package/dist/agent.js.map +1 -1
- package/dist/imessage.d.ts.map +1 -1
- package/dist/imessage.js +2 -1
- package/dist/imessage.js.map +1 -1
- package/dist/main.js +13 -1
- package/dist/main.js.map +1 -1
- package/dist/memory.d.ts +53 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +196 -0
- package/dist/memory.js.map +1 -0
- package/dist/model-health.d.ts +11 -0
- package/dist/model-health.d.ts.map +1 -0
- package/dist/model-health.js +67 -0
- package/dist/model-health.js.map +1 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +5 -1
- package/dist/pipeline.js.map +1 -1
- package/dist/send.d.ts +6 -0
- package/dist/send.d.ts.map +1 -1
- package/dist/send.js +166 -13
- package/dist/send.js.map +1 -1
- package/dist/store.d.ts +14 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +75 -2
- package/dist/store.js.map +1 -1
- package/dist/tasks.d.ts +3 -0
- package/dist/tasks.d.ts.map +1 -1
- package/dist/tasks.js +16 -0
- package/dist/tasks.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/web/index.d.ts +2 -0
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +19 -7
- package/dist/web/index.js.map +1 -1
- package/package.json +17 -6
package/dist/send.js
CHANGED
|
@@ -7,19 +7,33 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Supports DM (buddy), group chat (chat id), and SMS targets.
|
|
9
9
|
* Check Messages.app environment before first send with checkEnvironment().
|
|
10
|
+
*
|
|
11
|
+
* Attachment sends stage the file into ~/Library/Messages/Attachments/pi-imessage/
|
|
12
|
+
* because Messages.app's imagent helper is sandboxed and cannot read arbitrary
|
|
13
|
+
* paths (e.g. ~/.pi/..., ~/dotfile/...); staged copies are then verified against
|
|
14
|
+
* chat.db so we surface real failures instead of trusting AppleScript's ack.
|
|
10
15
|
*/
|
|
11
16
|
import { execFile } from "node:child_process";
|
|
17
|
+
import { randomUUID } from "node:crypto";
|
|
12
18
|
import { constants, accessSync } from "node:fs";
|
|
19
|
+
import { copyFile, mkdir, unlink } from "node:fs/promises";
|
|
13
20
|
import { homedir } from "node:os";
|
|
14
|
-
import { join } from "node:path";
|
|
21
|
+
import { basename, extname, join } from "node:path";
|
|
15
22
|
import { promisify } from "node:util";
|
|
16
23
|
import { sendRichTextMessage } from "./rich-text.js";
|
|
17
24
|
const execFileAsync = promisify(execFile);
|
|
18
25
|
const SCRIPT_TIMEOUT_MS = 30_000;
|
|
26
|
+
const ATTACHMENT_VERIFY_TIMEOUT_MS = 30_000;
|
|
27
|
+
const ATTACHMENT_VERIFY_POLL_MS = 500;
|
|
28
|
+
const MESSAGES_APP_PATH = "/System/Applications/Messages.app";
|
|
29
|
+
const ATTACHMENTS_ROOT = join(homedir(), "Library", "Messages", "Attachments");
|
|
30
|
+
const STAGING_DIR = join(ATTACHMENTS_ROOT, "pi-imessage");
|
|
31
|
+
const CHAT_DB_PATH = join(homedir(), "Library", "Messages", "chat.db");
|
|
19
32
|
// ── AppleScript helpers ───────────────────────────────────────────────────────
|
|
20
33
|
/** Escape special characters for AppleScript string literals. */
|
|
21
34
|
function escapeAppleScript(str) {
|
|
22
35
|
return str
|
|
36
|
+
.replace(/\0/g, "�")
|
|
23
37
|
.replace(/\\/g, "\\\\")
|
|
24
38
|
.replace(/"/g, '\\"')
|
|
25
39
|
.replace(/\n/g, "\\n")
|
|
@@ -40,18 +54,132 @@ function buildSendScript(chatGuid, text) {
|
|
|
40
54
|
const isGroup = parts[1] === "+";
|
|
41
55
|
if (isGroup) {
|
|
42
56
|
const escapedChatId = escapeAppleScript(chatGuid);
|
|
43
|
-
return `tell application "
|
|
57
|
+
return `tell application "${MESSAGES_APP_PATH}"
|
|
44
58
|
set targetChat to chat id "${escapedChatId}"
|
|
45
59
|
send "${escapedText}" to targetChat
|
|
46
60
|
end tell`;
|
|
47
61
|
}
|
|
48
62
|
const recipient = escapeAppleScript(parts[2] ?? "");
|
|
49
|
-
return `tell application "
|
|
63
|
+
return `tell application "${MESSAGES_APP_PATH}"
|
|
50
64
|
set targetService to 1st service whose service type = iMessage
|
|
51
65
|
set targetBuddy to buddy "${recipient}" of targetService
|
|
52
66
|
send "${escapedText}" to targetBuddy
|
|
53
67
|
end tell`;
|
|
54
68
|
}
|
|
69
|
+
/** Build AppleScript for sending a local file attachment. */
|
|
70
|
+
function buildSendAttachmentScript(chatGuid, filePath) {
|
|
71
|
+
const escapedPath = escapeAppleScript(filePath);
|
|
72
|
+
const parts = chatGuid.split(";");
|
|
73
|
+
const isGroup = parts[1] === "+";
|
|
74
|
+
if (isGroup) {
|
|
75
|
+
const escapedChatId = escapeAppleScript(chatGuid);
|
|
76
|
+
return `tell application "${MESSAGES_APP_PATH}"
|
|
77
|
+
set targetChat to chat id "${escapedChatId}"
|
|
78
|
+
send POSIX file "${escapedPath}" to targetChat
|
|
79
|
+
end tell`;
|
|
80
|
+
}
|
|
81
|
+
const recipient = escapeAppleScript(parts[2] ?? "");
|
|
82
|
+
return `tell application "${MESSAGES_APP_PATH}"
|
|
83
|
+
set targetService to 1st service whose service type = iMessage
|
|
84
|
+
set targetBuddy to buddy "${recipient}" of targetService
|
|
85
|
+
send POSIX file "${escapedPath}" to targetBuddy
|
|
86
|
+
end tell`;
|
|
87
|
+
}
|
|
88
|
+
// ── Attachment staging & verification ─────────────────────────────────────────
|
|
89
|
+
/**
|
|
90
|
+
* Copy an attachment into a location the sandboxed imagent process is allowed
|
|
91
|
+
* to read. Paths under ~/Library/Messages/Attachments/ are proven-good; paths
|
|
92
|
+
* under ~/.pi/... or ~/dotfile/... get rejected by TCC (Operation not permitted),
|
|
93
|
+
* which shows up as transfer_state=6 / is_sent=0 in chat.db.
|
|
94
|
+
*
|
|
95
|
+
* Returns the staged path; caller is responsible for cleanup after send.
|
|
96
|
+
*/
|
|
97
|
+
async function stageAttachment(sourcePath) {
|
|
98
|
+
// If the source is already inside the Attachments root, imagent can read it.
|
|
99
|
+
if (sourcePath.startsWith(`${ATTACHMENTS_ROOT}/`)) {
|
|
100
|
+
return { stagedPath: sourcePath, cleanup: async () => { } };
|
|
101
|
+
}
|
|
102
|
+
await mkdir(STAGING_DIR, { recursive: true, mode: 0o755 });
|
|
103
|
+
const ext = extname(sourcePath);
|
|
104
|
+
const base = basename(sourcePath, ext)
|
|
105
|
+
.replace(/[^A-Za-z0-9._-]/g, "_")
|
|
106
|
+
.slice(0, 40);
|
|
107
|
+
const stagedPath = join(STAGING_DIR, `${Date.now()}-${randomUUID().slice(0, 8)}-${base}${ext}`);
|
|
108
|
+
await copyFile(sourcePath, stagedPath);
|
|
109
|
+
return {
|
|
110
|
+
stagedPath,
|
|
111
|
+
cleanup: async () => {
|
|
112
|
+
try {
|
|
113
|
+
await unlink(stagedPath);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// best-effort; Messages may still hold a handle
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/** Poll chat.db until the staged attachment finishes transferring (or times out). */
|
|
122
|
+
async function verifyAttachmentSent(stagedPath, timeoutMs) {
|
|
123
|
+
const stagedBase = basename(stagedPath);
|
|
124
|
+
// filename in chat.db can be stored as absolute path or "~/Library/Messages/Attachments/...",
|
|
125
|
+
// so match on the unique basename we generated (Date.now() + UUID prefix).
|
|
126
|
+
const sql = `SELECT a.ROWID AS attachment_id, a.transfer_state, m.is_sent, m.error
|
|
127
|
+
FROM attachment a
|
|
128
|
+
LEFT JOIN message_attachment_join j ON j.attachment_id = a.ROWID
|
|
129
|
+
LEFT JOIN message m ON m.ROWID = j.message_id
|
|
130
|
+
WHERE a.filename LIKE '%${stagedBase.replace(/'/g, "''")}'
|
|
131
|
+
ORDER BY a.ROWID DESC
|
|
132
|
+
LIMIT 1;`;
|
|
133
|
+
const deadline = Date.now() + timeoutMs;
|
|
134
|
+
let last = { attachmentId: null, transferState: null, isSent: null, error: null };
|
|
135
|
+
while (Date.now() < deadline) {
|
|
136
|
+
try {
|
|
137
|
+
const { stdout } = await execFileAsync("sqlite3", ["-json", CHAT_DB_PATH, sql], { timeout: 5_000 });
|
|
138
|
+
const rows = stdout.trim() ? JSON.parse(stdout) : [];
|
|
139
|
+
const row = rows[0];
|
|
140
|
+
if (row) {
|
|
141
|
+
last = {
|
|
142
|
+
attachmentId: row.attachment_id ?? null,
|
|
143
|
+
transferState: row.transfer_state ?? null,
|
|
144
|
+
isSent: row.is_sent ?? null,
|
|
145
|
+
error: row.error ?? null,
|
|
146
|
+
};
|
|
147
|
+
// transfer_state: 5 = transferred, 6 = failed, other = in-progress/pending
|
|
148
|
+
if (last.transferState === 5 && last.isSent === 1) {
|
|
149
|
+
return {
|
|
150
|
+
ok: true,
|
|
151
|
+
detail: `attachment_id=${last.attachmentId} transfer_state=5 is_sent=1`,
|
|
152
|
+
...last,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
if (last.transferState === 6) {
|
|
156
|
+
return {
|
|
157
|
+
ok: false,
|
|
158
|
+
detail: `imagent rejected file (transfer_state=6, is_sent=${last.isSent}, error=${last.error}) — likely TCC/sandbox denial`,
|
|
159
|
+
...last,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
if (last.error && last.error !== 0) {
|
|
163
|
+
return {
|
|
164
|
+
ok: false,
|
|
165
|
+
detail: `message error=${last.error} transfer_state=${last.transferState} is_sent=${last.isSent}`,
|
|
166
|
+
...last,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
// ignore transient sqlite lock errors; try again
|
|
173
|
+
void err;
|
|
174
|
+
}
|
|
175
|
+
await new Promise((r) => setTimeout(r, ATTACHMENT_VERIFY_POLL_MS));
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
ok: false,
|
|
179
|
+
detail: `timeout after ${timeoutMs}ms (attachment_id=${last.attachmentId} transfer_state=${last.transferState} is_sent=${last.isSent} error=${last.error})`,
|
|
180
|
+
...last,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
55
183
|
// ── Environment check ─────────────────────────────────────────────────────────
|
|
56
184
|
/** Check Messages.app is running and iMessage is signed in. */
|
|
57
185
|
export async function checkEnvironment() {
|
|
@@ -63,15 +191,14 @@ export async function checkEnvironment() {
|
|
|
63
191
|
throw new Error("Messages.app is not running");
|
|
64
192
|
}
|
|
65
193
|
// 2. Check Full Disk Access (required to read chat.db)
|
|
66
|
-
const chatDbPath = join(homedir(), "Library", "Messages", "chat.db");
|
|
67
194
|
try {
|
|
68
|
-
accessSync(
|
|
195
|
+
accessSync(CHAT_DB_PATH, constants.R_OK);
|
|
69
196
|
}
|
|
70
197
|
catch {
|
|
71
|
-
throw new Error(`Cannot read ${
|
|
198
|
+
throw new Error(`Cannot read ${CHAT_DB_PATH} — grant Full Disk Access to your terminal in System Settings > Privacy & Security > Full Disk Access`);
|
|
72
199
|
}
|
|
73
200
|
// 3. Check iMessage has active accounts
|
|
74
|
-
const script = `tell application "
|
|
201
|
+
const script = `tell application "${MESSAGES_APP_PATH}"
|
|
75
202
|
try
|
|
76
203
|
set accountList to every account
|
|
77
204
|
if (count of accountList) is 0 then return "no_accounts"
|
|
@@ -79,21 +206,19 @@ export async function checkEnvironment() {
|
|
|
79
206
|
if enabled of acct is true then return "active"
|
|
80
207
|
end repeat
|
|
81
208
|
return "inactive"
|
|
82
|
-
on error
|
|
83
|
-
return "error"
|
|
209
|
+
on error errorMessage number errorNumber
|
|
210
|
+
return "error " & errorNumber & ": " & errorMessage
|
|
84
211
|
end try
|
|
85
212
|
end tell`;
|
|
86
213
|
try {
|
|
87
214
|
const { stdout } = await execFileAsync("osascript", ["-e", script], { timeout: 5_000 });
|
|
88
215
|
const status = stdout.trim();
|
|
89
216
|
if (status !== "active") {
|
|
90
|
-
|
|
217
|
+
console.warn(`[send] iMessage account status check returned ${status}; continuing so the watchdog can diagnose send failures`);
|
|
91
218
|
}
|
|
92
219
|
}
|
|
93
220
|
catch (error) {
|
|
94
|
-
|
|
95
|
-
throw error;
|
|
96
|
-
throw new Error(`Failed to check iMessage status: ${error instanceof Error ? error.message : String(error)}`);
|
|
221
|
+
console.warn(`[send] failed to check iMessage status; continuing so the watchdog can diagnose send failures: ${error instanceof Error ? error.message : String(error)}`);
|
|
97
222
|
}
|
|
98
223
|
}
|
|
99
224
|
export function createMessageSender() {
|
|
@@ -111,6 +236,34 @@ export function createMessageSender() {
|
|
|
111
236
|
await execFileAsync("osascript", ["-e", script], { timeout: SCRIPT_TIMEOUT_MS });
|
|
112
237
|
console.log(`[send] sent to ${chatGuid} mode=${mode} duration_ms=${Date.now() - startTime}: "${text.substring(0, 60)}"`);
|
|
113
238
|
},
|
|
239
|
+
async sendAttachment(chatGuid, filePath) {
|
|
240
|
+
const startTime = Date.now();
|
|
241
|
+
accessSync(filePath, constants.R_OK);
|
|
242
|
+
const origName = basename(filePath);
|
|
243
|
+
console.log(`[send] start: ${chatGuid} mode=attachment file=${origName}`);
|
|
244
|
+
const { stagedPath, cleanup } = await stageAttachment(filePath);
|
|
245
|
+
const staged = stagedPath !== filePath;
|
|
246
|
+
if (staged) {
|
|
247
|
+
console.log(`[send] staged attachment for imagent: ${basename(stagedPath)}`);
|
|
248
|
+
}
|
|
249
|
+
try {
|
|
250
|
+
const script = buildSendAttachmentScript(chatGuid, stagedPath);
|
|
251
|
+
await execFileAsync("osascript", ["-e", script], { timeout: SCRIPT_TIMEOUT_MS });
|
|
252
|
+
const status = await verifyAttachmentSent(stagedPath, ATTACHMENT_VERIFY_TIMEOUT_MS);
|
|
253
|
+
if (!status.ok) {
|
|
254
|
+
throw new Error(`attachment send failed for ${origName}: ${status.detail}`);
|
|
255
|
+
}
|
|
256
|
+
console.log(`[send] sent attachment to ${chatGuid} duration_ms=${Date.now() - startTime}: "${origName}" (${status.detail})`);
|
|
257
|
+
}
|
|
258
|
+
finally {
|
|
259
|
+
if (staged) {
|
|
260
|
+
// Give Messages a moment to fully ingest before removing the staged copy.
|
|
261
|
+
setTimeout(() => {
|
|
262
|
+
cleanup().catch(() => { });
|
|
263
|
+
}, 60_000).unref();
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
},
|
|
114
267
|
};
|
|
115
268
|
}
|
|
116
269
|
//# sourceMappingURL=send.js.map
|
package/dist/send.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../src/send.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../src/send.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Each line is a Message serialised as JSON.
|
|
11
11
|
* The file is never rewritten — only appended to.
|
|
12
12
|
*/
|
|
13
|
-
import type { MessageType } from "./types.js";
|
|
13
|
+
import type { IncomingMessage, MessageType } from "./types.js";
|
|
14
14
|
/**
|
|
15
15
|
* A message in a chat — user or bot.
|
|
16
16
|
*
|
|
@@ -37,8 +37,21 @@ export declare function firstLinePreview(text: string | null): string;
|
|
|
37
37
|
export interface ChatStoreConfig {
|
|
38
38
|
workingDir: string;
|
|
39
39
|
}
|
|
40
|
+
export interface ArchivedImageRecord {
|
|
41
|
+
date: string;
|
|
42
|
+
day: string;
|
|
43
|
+
sender: string;
|
|
44
|
+
chatGuid: string;
|
|
45
|
+
originalPath: string;
|
|
46
|
+
archivedPath: string;
|
|
47
|
+
mimeType: string | null;
|
|
48
|
+
sha256: string;
|
|
49
|
+
sizeBytes: number;
|
|
50
|
+
text: string | null;
|
|
51
|
+
}
|
|
40
52
|
export interface ChatStore {
|
|
41
53
|
log(chatGuid: string, message: Omit<Message, "date">): Promise<void>;
|
|
54
|
+
archiveImages(chatGuid: string, incoming: IncomingMessage): Promise<ArchivedImageRecord[]>;
|
|
42
55
|
}
|
|
43
56
|
export declare function createChatStore(config: ChatStoreConfig): ChatStore;
|
|
44
57
|
//# sourceMappingURL=store.d.ts.map
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI/D;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACvB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAI5D;AAoCD,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACzB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CAC3F;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CA4ElE"}
|
package/dist/store.js
CHANGED
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
* Each line is a Message serialised as JSON.
|
|
11
11
|
* The file is never rewritten — only appended to.
|
|
12
12
|
*/
|
|
13
|
+
import { createHash } from "node:crypto";
|
|
13
14
|
import { existsSync, mkdirSync } from "node:fs";
|
|
14
|
-
import { appendFile } from "node:fs/promises";
|
|
15
|
-
import { join } from "node:path";
|
|
15
|
+
import { appendFile, copyFile, readFile, stat } from "node:fs/promises";
|
|
16
|
+
import { extname, join, relative } from "node:path";
|
|
16
17
|
// ── Display helpers ───────────────────────────────────────────────────────────
|
|
17
18
|
/** Sender label for display: "bot" for agent messages, otherwise the raw sender handle. */
|
|
18
19
|
export function senderLabel(message) {
|
|
@@ -24,6 +25,36 @@ export function firstLinePreview(text) {
|
|
|
24
25
|
const firstLine = full.split("\n")[0] ?? "";
|
|
25
26
|
return full.includes("\n") ? `${firstLine}...` : full;
|
|
26
27
|
}
|
|
28
|
+
function localDay(date) {
|
|
29
|
+
const year = date.getFullYear();
|
|
30
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
31
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
32
|
+
return `${year}-${month}-${day}`;
|
|
33
|
+
}
|
|
34
|
+
function extensionFor(mimeType, path) {
|
|
35
|
+
const fromPath = extname(path);
|
|
36
|
+
if (fromPath)
|
|
37
|
+
return fromPath.toLowerCase();
|
|
38
|
+
switch (mimeType) {
|
|
39
|
+
case "image/jpeg":
|
|
40
|
+
return ".jpg";
|
|
41
|
+
case "image/png":
|
|
42
|
+
return ".png";
|
|
43
|
+
case "image/gif":
|
|
44
|
+
return ".gif";
|
|
45
|
+
case "image/webp":
|
|
46
|
+
return ".webp";
|
|
47
|
+
case "image/heic":
|
|
48
|
+
return ".heic";
|
|
49
|
+
case "image/heif":
|
|
50
|
+
return ".heif";
|
|
51
|
+
default:
|
|
52
|
+
return ".img";
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function safeSegment(value) {
|
|
56
|
+
return value.replace(/[^a-zA-Z0-9._+-]+/g, "_").slice(0, 80) || "unknown";
|
|
57
|
+
}
|
|
27
58
|
export function createChatStore(config) {
|
|
28
59
|
const { workingDir } = config;
|
|
29
60
|
if (!existsSync(workingDir)) {
|
|
@@ -42,10 +73,52 @@ export function createChatStore(config) {
|
|
|
42
73
|
async function append(chatGuid, message) {
|
|
43
74
|
await appendFile(logPath(chatGuid), `${JSON.stringify(message)}\n`, "utf-8");
|
|
44
75
|
}
|
|
76
|
+
async function archiveImages(chatGuid, incoming) {
|
|
77
|
+
const now = new Date();
|
|
78
|
+
const date = now.toISOString();
|
|
79
|
+
const day = localDay(now);
|
|
80
|
+
const imageDir = join(chatDir(chatGuid), "images", day);
|
|
81
|
+
mkdirSync(imageDir, { recursive: true });
|
|
82
|
+
const records = [];
|
|
83
|
+
for (const attachment of incoming.attachments) {
|
|
84
|
+
if (!attachment.mimeType?.startsWith("image/"))
|
|
85
|
+
continue;
|
|
86
|
+
const originalPath = attachment.path;
|
|
87
|
+
const bytes = await readFile(originalPath);
|
|
88
|
+
const sha256 = createHash("sha256").update(bytes).digest("hex");
|
|
89
|
+
const extension = extensionFor(attachment.mimeType, originalPath);
|
|
90
|
+
const filename = `${date.replace(/[:.]/g, "-")}-${safeSegment(incoming.sender)}-${sha256.slice(0, 12)}${extension}`;
|
|
91
|
+
const archivedAbsPath = join(imageDir, filename);
|
|
92
|
+
if (!existsSync(archivedAbsPath)) {
|
|
93
|
+
await copyFile(attachment.path, archivedAbsPath);
|
|
94
|
+
}
|
|
95
|
+
const sizeBytes = (await stat(archivedAbsPath)).size;
|
|
96
|
+
const archivedPath = relative(workingDir, archivedAbsPath);
|
|
97
|
+
attachment.path = archivedAbsPath;
|
|
98
|
+
records.push({
|
|
99
|
+
date,
|
|
100
|
+
day,
|
|
101
|
+
sender: incoming.sender,
|
|
102
|
+
chatGuid,
|
|
103
|
+
originalPath,
|
|
104
|
+
archivedPath,
|
|
105
|
+
mimeType: attachment.mimeType,
|
|
106
|
+
sha256,
|
|
107
|
+
sizeBytes,
|
|
108
|
+
text: incoming.text,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (records.length > 0) {
|
|
112
|
+
const indexPath = join(chatDir(chatGuid), "images", "index.jsonl");
|
|
113
|
+
await appendFile(indexPath, `${records.map((record) => JSON.stringify(record)).join("\n")}\n`, "utf-8");
|
|
114
|
+
}
|
|
115
|
+
return records;
|
|
116
|
+
}
|
|
45
117
|
return {
|
|
46
118
|
async log(chatGuid, message) {
|
|
47
119
|
await append(chatGuid, { date: new Date().toISOString(), ...message });
|
|
48
120
|
},
|
|
121
|
+
archiveImages,
|
|
49
122
|
};
|
|
50
123
|
}
|
|
51
124
|
//# sourceMappingURL=store.js.map
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks.d.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* before:
|
|
7
7
|
* logIncoming — logs the received message
|
|
8
8
|
* dropSelfEcho — drops messages that are echoes of the bot's own replies
|
|
9
|
+
* archiveImages — copies image attachments into chat/images/YYYY-MM-DD
|
|
9
10
|
* storeIncoming — persists the incoming message to log.jsonl
|
|
10
11
|
* checkReplyEnabled — drops messages when reply is disabled by settings
|
|
11
12
|
* downloadImages — reads image attachments from disk and populates incoming.images
|
|
@@ -36,6 +37,8 @@ import type { ChatStore } from "./store.js";
|
|
|
36
37
|
* [sid] <- [GROUP] Family|+16501234567: dinner at 6? [2 attachment(s)]
|
|
37
38
|
*/
|
|
38
39
|
export declare function createLogIncomingTask(digestLogger: DigestLogger): BeforeTask;
|
|
40
|
+
/** Copy image attachments into the chat workspace and update their paths before logging/reading. */
|
|
41
|
+
export declare function createArchiveImagesTask(store: ChatStore): BeforeTask;
|
|
39
42
|
/** Persist the incoming message to log.jsonl. Always passes through. */
|
|
40
43
|
export declare function createStoreIncomingTask(store: ChatStore): BeforeTask;
|
|
41
44
|
/** Drop messages that are echoes of the bot's own replies. */
|
package/dist/tasks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAU,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,YAAY,CAAC;AA2BrD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU,CAU5E;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAYpE;AAED,wEAAwE;AACxE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAgBpE;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,cAAc,GAAG,UAAU,CAQ7E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,QAAQ,GAAG,UAAU,CAQnF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,UAAU,CAmBrD;AAaD,wBAAgB,sBAAsB,IAAI,UAAU,CAanD;AAqED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAsDvE;AAwBD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAWlE;AAID,iEAAiE;AACjE,wBAAgB,mBAAmB,CAClC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,QAAQ,GACzB,OAAO,CAQT;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAUzE;AAED,+CAA+C;AAC/C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAkBjE"}
|
package/dist/tasks.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* before:
|
|
7
7
|
* logIncoming — logs the received message
|
|
8
8
|
* dropSelfEcho — drops messages that are echoes of the bot's own replies
|
|
9
|
+
* archiveImages — copies image attachments into chat/images/YYYY-MM-DD
|
|
9
10
|
* storeIncoming — persists the incoming message to log.jsonl
|
|
10
11
|
* checkReplyEnabled — drops messages when reply is disabled by settings
|
|
11
12
|
* downloadImages — reads image attachments from disk and populates incoming.images
|
|
@@ -63,6 +64,21 @@ export function createLogIncomingTask(digestLogger) {
|
|
|
63
64
|
return outgoing;
|
|
64
65
|
};
|
|
65
66
|
}
|
|
67
|
+
/** Copy image attachments into the chat workspace and update their paths before logging/reading. */
|
|
68
|
+
export function createArchiveImagesTask(store) {
|
|
69
|
+
return async (chat, incoming, outgoing) => {
|
|
70
|
+
try {
|
|
71
|
+
const archived = await store.archiveImages(chat.chatGuid, incoming);
|
|
72
|
+
if (archived.length > 0) {
|
|
73
|
+
console.log(`[sid] archived ${archived.length} image(s) for ${chat.chatGuid}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.error(`[sid] failed to archive image attachments for ${chat.chatGuid}:`, error);
|
|
78
|
+
}
|
|
79
|
+
return outgoing;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
66
82
|
/** Persist the incoming message to log.jsonl. Always passes through. */
|
|
67
83
|
export function createStoreIncomingTask(store) {
|
|
68
84
|
return (chat, incoming, outgoing) => {
|
package/dist/tasks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;AAIvD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,WAAW,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAGvD;AAED,gDAAgD;AAChD,MAAM,WAAW,UAAU;IAC1B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qEAAqE;IACrE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,sFAAsF;IACtF,MAAM,EAAE,YAAY,EAAE,CAAC;CACvB;AAID,gFAAgF;AAChF,MAAM,MAAM,UAAU,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAI5F,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAY1D;AAID,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACxB;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
|
package/dist/web/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** Web server: serves the chat log UI, logs page, and API endpoints. */
|
|
2
2
|
import type { AgentManager } from "../agent.js";
|
|
3
|
+
import type { ModelHealthChecker } from "../model-health.js";
|
|
3
4
|
import type { SelfEchoFilter } from "../self-echo.js";
|
|
4
5
|
import type { MessageSender } from "../send.js";
|
|
5
6
|
import type { Settings } from "../settings.js";
|
|
@@ -12,6 +13,7 @@ export interface WebServerConfig {
|
|
|
12
13
|
sender: MessageSender;
|
|
13
14
|
echoFilter: SelfEchoFilter;
|
|
14
15
|
agent: AgentManager;
|
|
16
|
+
checkModelHealth: ModelHealthChecker;
|
|
15
17
|
}
|
|
16
18
|
export interface WebServer {
|
|
17
19
|
start(): void;
|
package/dist/web/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAKxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAKxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,gBAAgB,EAAE,kBAAkB,CAAC;CACrC;AAED,MAAM,WAAW,SAAS;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAgDD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CA4OlE"}
|