@kingcrab/pi-imessage 0.0.19 → 0.0.20
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/agent.d.ts +3 -2
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +77 -121
- package/dist/agent.js.map +1 -1
- package/dist/imessage.d.ts +4 -5
- package/dist/imessage.d.ts.map +1 -1
- package/dist/imessage.js +12 -8
- package/dist/imessage.js.map +1 -1
- package/dist/queue.d.ts +5 -3
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +11 -3
- package/dist/queue.js.map +1 -1
- package/package.json +14 -3
package/dist/agent.d.ts
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* Each chat gets a lazily-created AgentSession with persistent context
|
|
5
5
|
* (context.jsonl per chat directory).
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Concurrency: callers must serialize messages for the same chat externally
|
|
8
|
+
* (imessage.ts does this via per-chat promise chains). Different chats run
|
|
9
|
+
* concurrently.
|
|
9
10
|
*
|
|
10
11
|
* Model: uses ~/.pi/agent/ defaults (via createAgentSession).
|
|
11
12
|
*/
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI9D,MAAM,WAAW,kBAAkB;IAClC,UAAU,EAAE,MAAM,CAAC;CACnB;AAoLD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB;0BAuC/B,eAAe,WAAW,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;2BA8D7E,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;iCAiBhB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;uBAuClC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;GA4BtD;AAWD,MAAM,MAAM,YAAY,GAAG,IAAI,CAC9B,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,EAC9C,gBAAgB,GAAG,YAAY,GAAG,kBAAkB,GAAG,QAAQ,CAC/D,CAAC"}
|
package/dist/agent.js
CHANGED
|
@@ -4,30 +4,16 @@
|
|
|
4
4
|
* Each chat gets a lazily-created AgentSession with persistent context
|
|
5
5
|
* (context.jsonl per chat directory).
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Concurrency: callers must serialize messages for the same chat externally
|
|
8
|
+
* (imessage.ts does this via per-chat promise chains). Different chats run
|
|
9
|
+
* concurrently.
|
|
9
10
|
*
|
|
10
11
|
* Model: uses ~/.pi/agent/ defaults (via createAgentSession).
|
|
11
12
|
*/
|
|
12
13
|
import { existsSync, mkdirSync, readFileSync, unlinkSync } from "node:fs";
|
|
13
14
|
import { join } from "node:path";
|
|
14
15
|
import { AuthStorage, DefaultResourceLoader, ModelRegistry, SessionManager, SettingsManager, createAgentSession, } from "@mariozechner/pi-coding-agent";
|
|
15
|
-
|
|
16
|
-
async function initSharedResources(workingDir) {
|
|
17
|
-
const authStorage = AuthStorage.create();
|
|
18
|
-
const modelRegistry = new ModelRegistry(authStorage);
|
|
19
|
-
// Resource loader with iMessage-specific system prompt; no extensions/skills needed.
|
|
20
|
-
const resourceLoader = new DefaultResourceLoader({
|
|
21
|
-
systemPrompt: buildSystemPrompt(workingDir),
|
|
22
|
-
noExtensions: true,
|
|
23
|
-
noSkills: true,
|
|
24
|
-
noPromptTemplates: true,
|
|
25
|
-
noThemes: true,
|
|
26
|
-
});
|
|
27
|
-
await resourceLoader.reload();
|
|
28
|
-
return { authStorage, modelRegistry, resourceLoader };
|
|
29
|
-
}
|
|
30
|
-
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
16
|
+
// ── Helpers ────────────────────────────────────────────────────────────────────
|
|
31
17
|
/**
|
|
32
18
|
* Format a prompt with sender/chat context prefix.
|
|
33
19
|
*
|
|
@@ -58,52 +44,41 @@ function formatPromptText(msg) {
|
|
|
58
44
|
function sanitizeChatGuid(chatGuid) {
|
|
59
45
|
return chatGuid.replace(/[^a-zA-Z0-9_\-;+.@]/g, "_");
|
|
60
46
|
}
|
|
47
|
+
/** Read a file's trimmed content, or return undefined if missing/empty. */
|
|
48
|
+
function readFileIfExists(path) {
|
|
49
|
+
if (!existsSync(path))
|
|
50
|
+
return undefined;
|
|
51
|
+
try {
|
|
52
|
+
const content = readFileSync(path, "utf-8").trim();
|
|
53
|
+
return content || undefined;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.warn(`[agent] failed to read ${path}: ${error}`);
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
61
60
|
/** Read global and chat-specific MEMORY.md files, returning combined content. */
|
|
62
61
|
function getMemory(workingDir, chatDir) {
|
|
63
62
|
const parts = [];
|
|
64
|
-
const
|
|
65
|
-
if (
|
|
66
|
-
|
|
67
|
-
const content = readFileSync(globalMemoryPath, "utf-8").trim();
|
|
68
|
-
if (content) {
|
|
69
|
-
parts.push(`### Global Memory\n${content}`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
console.warn(`[agent] failed to read global memory: ${error}`);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
63
|
+
const global = readFileIfExists(join(workingDir, "MEMORY.md"));
|
|
64
|
+
if (global)
|
|
65
|
+
parts.push(`### Global Memory\n${global}`);
|
|
76
66
|
if (chatDir) {
|
|
77
|
-
const
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
const content = readFileSync(chatMemoryPath, "utf-8").trim();
|
|
81
|
-
if (content) {
|
|
82
|
-
parts.push(`### Chat Memory\n${content}`);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
console.warn(`[agent] failed to read chat memory: ${error}`);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
67
|
+
const chat = readFileIfExists(join(chatDir, "MEMORY.md"));
|
|
68
|
+
if (chat)
|
|
69
|
+
parts.push(`### Chat Memory\n${chat}`);
|
|
89
70
|
}
|
|
90
71
|
return parts.length > 0 ? parts.join("\n\n") : "(no memory yet)";
|
|
91
72
|
}
|
|
92
73
|
function getCustomPrompt(workingDir, chatDir) {
|
|
93
74
|
const parts = [];
|
|
94
|
-
const
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
if (content)
|
|
98
|
-
parts.push(content);
|
|
99
|
-
}
|
|
75
|
+
const global = readFileIfExists(join(workingDir, "SYSTEM.md"));
|
|
76
|
+
if (global)
|
|
77
|
+
parts.push(global);
|
|
100
78
|
if (chatDir) {
|
|
101
|
-
const
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
if (content)
|
|
105
|
-
parts.push(content);
|
|
106
|
-
}
|
|
79
|
+
const chat = readFileIfExists(join(chatDir, "SYSTEM.md"));
|
|
80
|
+
if (chat)
|
|
81
|
+
parts.push(chat);
|
|
107
82
|
}
|
|
108
83
|
return parts.join("\n\n");
|
|
109
84
|
}
|
|
@@ -212,9 +187,17 @@ function extractToolLabel(toolName, args) {
|
|
|
212
187
|
export async function createAgentManager(config) {
|
|
213
188
|
const { workingDir } = config;
|
|
214
189
|
const sessionMap = new Map();
|
|
215
|
-
const
|
|
190
|
+
const modelRegistry = new ModelRegistry(AuthStorage.create());
|
|
191
|
+
const resourceLoader = new DefaultResourceLoader({
|
|
192
|
+
systemPrompt: buildSystemPrompt(workingDir),
|
|
193
|
+
noExtensions: true,
|
|
194
|
+
noSkills: true,
|
|
195
|
+
noPromptTemplates: true,
|
|
196
|
+
noThemes: true,
|
|
197
|
+
});
|
|
198
|
+
await resourceLoader.reload();
|
|
216
199
|
/** Create a new AgentSession for a chat, persisted to context.jsonl. */
|
|
217
|
-
async function createSession(chatGuid
|
|
200
|
+
async function createSession(chatGuid) {
|
|
218
201
|
const chatDir = join(workingDir, sanitizeChatGuid(chatGuid));
|
|
219
202
|
mkdirSync(chatDir, { recursive: true });
|
|
220
203
|
const sessionManager = SessionManager.open(join(chatDir, "context.jsonl"), chatDir);
|
|
@@ -225,87 +208,67 @@ export async function createAgentManager(config) {
|
|
|
225
208
|
});
|
|
226
209
|
const modelLabel = session.model ? `${session.model.provider}/${session.model.id}` : "default";
|
|
227
210
|
console.log(`[agent] session created: ${chatGuid} model=${modelLabel}`);
|
|
228
|
-
const entry = {
|
|
229
|
-
session,
|
|
230
|
-
chatGuid,
|
|
231
|
-
activeMessageHandler: handler,
|
|
232
|
-
replyChain: Promise.resolve(),
|
|
233
|
-
pendingTools: new Map(),
|
|
234
|
-
};
|
|
211
|
+
const entry = { session, chatGuid };
|
|
235
212
|
sessionMap.set(chatGuid, entry);
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
213
|
+
return entry;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Send a user message through the agent and deliver replies via the handler.
|
|
217
|
+
*
|
|
218
|
+
* Callers must serialize calls for the same chat (imessage.ts does this).
|
|
219
|
+
*/
|
|
220
|
+
async function processMessage(msg, handler) {
|
|
221
|
+
const entry = sessionMap.get(msg.chatGuid) ?? (await createSession(msg.chatGuid));
|
|
222
|
+
const { session, chatGuid } = entry;
|
|
223
|
+
const promptText = formatPromptText(msg);
|
|
224
|
+
const chatDir = join(workingDir, sanitizeChatGuid(chatGuid));
|
|
225
|
+
session.agent.setSystemPrompt(buildSystemPrompt(workingDir, chatDir));
|
|
226
|
+
const images = msg.images.length > 0 ? msg.images : undefined;
|
|
227
|
+
const modelLabel = session.model ? `${session.model.provider}/${session.model.id}` : "default";
|
|
228
|
+
console.log(`[agent] prompt start: ${chatGuid} model=${modelLabel} "${promptText.substring(0, 60)}"`);
|
|
229
|
+
// Subscribe for this prompt's lifetime, routing events through handler
|
|
230
|
+
let replyChain = Promise.resolve();
|
|
231
|
+
const pendingTools = new Map();
|
|
232
|
+
const unsubscribe = session.subscribe((event) => {
|
|
240
233
|
if (event.type === "message_start" && event.message.role === "assistant") {
|
|
241
234
|
console.log(`[agent] message start: ${chatGuid} role=assistant`);
|
|
242
235
|
}
|
|
243
236
|
else if (event.type === "message_end" && event.message.role === "assistant") {
|
|
244
237
|
const assistantMsg = event.message;
|
|
245
238
|
const text = extractMessageText(event.message);
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
console.log(`[agent] message end: ${chatGuid} role=assistant stopReason=${stopReason}` +
|
|
249
|
-
`${errorMessage ? ` error="${errorMessage}"` : ""}` +
|
|
239
|
+
console.log(`[agent] message end: ${chatGuid} stopReason=${assistantMsg.stopReason}` +
|
|
240
|
+
`${assistantMsg.errorMessage ? ` error="${assistantMsg.errorMessage}"` : ""}` +
|
|
250
241
|
` text="${(text ?? "(empty)").substring(0, 60)}"`);
|
|
251
242
|
if (text) {
|
|
252
|
-
|
|
253
|
-
entry.replyChain = entry.replyChain.then(() => callback({ kind: "assistant", text }));
|
|
243
|
+
replyChain = replyChain.then(() => handler({ kind: "assistant", text }));
|
|
254
244
|
}
|
|
255
245
|
}
|
|
256
246
|
else if (event.type === "tool_execution_start") {
|
|
257
247
|
const toolArgs = event.args;
|
|
258
248
|
const label = extractToolLabel(event.toolName, toolArgs);
|
|
259
|
-
|
|
260
|
-
toolName: event.toolName,
|
|
261
|
-
args: toolArgs,
|
|
262
|
-
startTime: Date.now(),
|
|
263
|
-
});
|
|
249
|
+
pendingTools.set(event.toolCallId, { toolName: event.toolName, startTime: Date.now() });
|
|
264
250
|
console.log(`[agent] tool start: ${chatGuid} → ${label}`);
|
|
265
|
-
|
|
266
|
-
entry.replyChain = entry.replyChain.then(() => callback({ kind: "tool_start", label }));
|
|
251
|
+
replyChain = replyChain.then(() => handler({ kind: "tool_start", label }));
|
|
267
252
|
}
|
|
268
253
|
else if (event.type === "tool_execution_end") {
|
|
269
254
|
const resultText = extractToolResultText(event.result);
|
|
270
|
-
const pending =
|
|
271
|
-
|
|
272
|
-
const
|
|
273
|
-
const duration = (durationMs / 1000).toFixed(1);
|
|
255
|
+
const pending = pendingTools.get(event.toolCallId);
|
|
256
|
+
pendingTools.delete(event.toolCallId);
|
|
257
|
+
const duration = ((pending ? Date.now() - pending.startTime : 0) / 1000).toFixed(1);
|
|
274
258
|
const symbol = event.isError ? "✗" : "✓";
|
|
275
259
|
console.log(`[agent] tool end: ${chatGuid} ${symbol} ${event.toolName} (${duration}s)` +
|
|
276
260
|
` result="${resultText.substring(0, 60)}"`);
|
|
277
|
-
|
|
278
|
-
entry.replyChain = entry.replyChain.then(() => callback({ kind: "tool_end", toolName: event.toolName, symbol, duration, result: resultText }));
|
|
261
|
+
replyChain = replyChain.then(() => handler({ kind: "tool_end", toolName: event.toolName, symbol, duration, result: resultText }));
|
|
279
262
|
}
|
|
280
263
|
});
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
* Streaming behavior:
|
|
290
|
-
* - When the session is already streaming (agent mid-run), use "steer" to inject
|
|
291
|
-
* the new message into the active agentic loop without interrupting it.
|
|
292
|
-
* - When the session is idle, omit streamingBehavior so the agent starts normally.
|
|
293
|
-
* (Passing undefined while streaming would throw; pi enforces explicit queuing.)
|
|
294
|
-
*/
|
|
295
|
-
async function processMessage(msg, handler) {
|
|
296
|
-
const entry = sessionMap.get(msg.chatGuid) ?? (await createSession(msg.chatGuid, handler));
|
|
297
|
-
entry.activeMessageHandler = handler;
|
|
298
|
-
// Build prompt with sender/chat context prefix
|
|
299
|
-
const promptText = formatPromptText(msg);
|
|
300
|
-
// Refresh system prompt with current memory before each prompt
|
|
301
|
-
const chatDir = join(workingDir, sanitizeChatGuid(msg.chatGuid));
|
|
302
|
-
entry.session.agent.setSystemPrompt(buildSystemPrompt(workingDir, chatDir));
|
|
303
|
-
const images = msg.images.length > 0 ? msg.images : undefined;
|
|
304
|
-
const streamingBehavior = entry.session.isStreaming ? "steer" : undefined;
|
|
305
|
-
logPromptStart(entry, promptText, streamingBehavior);
|
|
306
|
-
await entry.session.prompt(promptText, { images, streamingBehavior });
|
|
307
|
-
await entry.replyChain; // wait for all dispatched replies to finish
|
|
308
|
-
console.log(`[agent] prompt end: ${entry.chatGuid}`);
|
|
264
|
+
try {
|
|
265
|
+
await session.prompt(promptText, { images });
|
|
266
|
+
await replyChain;
|
|
267
|
+
console.log(`[agent] prompt end: ${chatGuid}`);
|
|
268
|
+
}
|
|
269
|
+
finally {
|
|
270
|
+
unsubscribe();
|
|
271
|
+
}
|
|
309
272
|
}
|
|
310
273
|
/** Start a new session for a chat by deleting context and evicting the in-memory session. */
|
|
311
274
|
async function newSession(chatGuid) {
|
|
@@ -384,13 +347,6 @@ export async function createAgentManager(config) {
|
|
|
384
347
|
}
|
|
385
348
|
return { processMessage, newSession, getSessionStatus, reload };
|
|
386
349
|
}
|
|
387
|
-
/** Log the start of a prompt, including streaming mode and model. */
|
|
388
|
-
function logPromptStart(entry, promptText, streamingBehavior) {
|
|
389
|
-
const model = entry.session.model;
|
|
390
|
-
const modelLabel = model ? `${model.provider}/${model.id}` : "default";
|
|
391
|
-
const mode = streamingBehavior ?? "default";
|
|
392
|
-
console.log(`[agent] prompt start (${mode}): ${entry.chatGuid} model=${modelLabel} "${promptText.substring(0, 60)}"`);
|
|
393
|
-
}
|
|
394
350
|
/** Format a token count as a compact string: 0, 1.2k, 5.9k, 12k, 1.8M, etc. */
|
|
395
351
|
function formatTokenCount(tokens) {
|
|
396
352
|
if (tokens === 0)
|
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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"}
|
package/dist/imessage.d.ts
CHANGED
|
@@ -5,14 +5,13 @@
|
|
|
5
5
|
* watcher → queue → pipeline.process()
|
|
6
6
|
*
|
|
7
7
|
* Message ordering: every pulled message is immediately dispatched to the
|
|
8
|
-
* pipeline (fire-and-forget). Different chats run concurrently.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* a steering prompt rather than queuing behind the previous run.
|
|
8
|
+
* pipeline (fire-and-forget). Different chats run concurrently. Same-chat
|
|
9
|
+
* messages are serialized via per-chat promise chains so the agent never
|
|
10
|
+
* receives concurrent prompts for the same session.
|
|
12
11
|
*/
|
|
13
12
|
import type { AgentManager } from "./agent.js";
|
|
14
13
|
import type { DigestLogger } from "./logger.js";
|
|
15
|
-
import type
|
|
14
|
+
import { type AsyncQueue } from "./queue.js";
|
|
16
15
|
import type { MessageSender } from "./send.js";
|
|
17
16
|
import type { Settings } from "./settings.js";
|
|
18
17
|
import type { ChatStore } from "./store.js";
|
package/dist/imessage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imessage.d.ts","sourceRoot":"","sources":["../src/imessage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"imessage.d.ts","sourceRoot":"","sources":["../src/imessage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,KAAK,UAAU,EAAsC,MAAM,YAAY,CAAC;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAc5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACnC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,YAAY,EAAE,YAAY,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB;;;EAyD1D"}
|
package/dist/imessage.js
CHANGED
|
@@ -5,13 +5,12 @@
|
|
|
5
5
|
* watcher → queue → pipeline.process()
|
|
6
6
|
*
|
|
7
7
|
* Message ordering: every pulled message is immediately dispatched to the
|
|
8
|
-
* pipeline (fire-and-forget). Different chats run concurrently.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* a steering prompt rather than queuing behind the previous run.
|
|
8
|
+
* pipeline (fire-and-forget). Different chats run concurrently. Same-chat
|
|
9
|
+
* messages are serialized via per-chat promise chains so the agent never
|
|
10
|
+
* receives concurrent prompts for the same session.
|
|
12
11
|
*/
|
|
13
12
|
import { createMessagePipeline } from "./pipeline.js";
|
|
14
|
-
import { QueueClosedError } from "./queue.js";
|
|
13
|
+
import { QueueClosedError, createKeyedQueue } from "./queue.js";
|
|
15
14
|
import { createSelfEchoFilter } from "./self-echo.js";
|
|
16
15
|
import { createCallAgentTask, createCheckReplyEnabledTask, createCommandHandlerTask, createDownloadImagesTask, createDropSelfEchoTask, createLogIncomingTask, createLogOutgoingTask, createResizeImagesTask, createSendReplyTask, createStoreIncomingTask, createStoreOutgoingTask, } from "./tasks.js";
|
|
17
16
|
export function createIMessageBot(config) {
|
|
@@ -39,12 +38,17 @@ export function createIMessageBot(config) {
|
|
|
39
38
|
pipeline.end(createStoreOutgoingTask(store));
|
|
40
39
|
return {
|
|
41
40
|
start() {
|
|
41
|
+
const enqueue = createKeyedQueue();
|
|
42
42
|
async function loop() {
|
|
43
43
|
while (true) {
|
|
44
44
|
const msg = await queue.pull();
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
enqueue(msg.chatGuid, async () => {
|
|
46
|
+
try {
|
|
47
|
+
await pipeline.process(msg);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
console.error(`[sid] failed to process message from ${msg.sender}:`, error);
|
|
51
|
+
}
|
|
48
52
|
});
|
|
49
53
|
}
|
|
50
54
|
}
|
package/dist/imessage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imessage.js","sourceRoot":"","sources":["../src/imessage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"imessage.js","sourceRoot":"","sources":["../src/imessage.ts"],"names":[],"mappings":"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"}
|
package/dist/queue.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Queue primitives.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* AsyncQueue — generic unbounded async queue (push/pull/close).
|
|
5
|
+
* KeyedQueue — keyed serial executor (same key serialized, different keys concurrent).
|
|
6
6
|
*/
|
|
7
7
|
export declare class QueueClosedError extends Error {
|
|
8
8
|
constructor();
|
|
@@ -13,4 +13,6 @@ export interface AsyncQueue<T> {
|
|
|
13
13
|
close(): void;
|
|
14
14
|
}
|
|
15
15
|
export declare function createAsyncQueue<T>(): AsyncQueue<T>;
|
|
16
|
+
/** Same key → serial. Different keys → concurrent. */
|
|
17
|
+
export declare function createKeyedQueue(): (key: string, task: () => Promise<void>) => void;
|
|
16
18
|
//# sourceMappingURL=queue.d.ts.map
|
package/dist/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAa,gBAAiB,SAAQ,KAAK;;CAK1C;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAgCnD"}
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAa,gBAAiB,SAAQ,KAAK;;CAK1C;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAgCnD;AAID,sDAAsD;AACtD,wBAAgB,gBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAKnF"}
|
package/dist/queue.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Queue primitives.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* AsyncQueue — generic unbounded async queue (push/pull/close).
|
|
5
|
+
* KeyedQueue — keyed serial executor (same key serialized, different keys concurrent).
|
|
6
6
|
*/
|
|
7
7
|
export class QueueClosedError extends Error {
|
|
8
8
|
constructor() {
|
|
@@ -44,4 +44,12 @@ export function createAsyncQueue() {
|
|
|
44
44
|
},
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
+
// ── KeyedQueue ────────────────────────────────────────────────────────────────
|
|
48
|
+
/** Same key → serial. Different keys → concurrent. */
|
|
49
|
+
export function createKeyedQueue() {
|
|
50
|
+
const chains = new Map();
|
|
51
|
+
return (key, task) => {
|
|
52
|
+
chains.set(key, (chains.get(key) ?? Promise.resolve()).then(task, task));
|
|
53
|
+
};
|
|
54
|
+
}
|
|
47
55
|
//# sourceMappingURL=queue.js.map
|
package/dist/queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAC1C;QACC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChC,CAAC;CACD;AAQD,MAAM,UAAU,gBAAgB;IAC/B,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,MAAM,OAAO,GAAwE,EAAE,CAAC;IACxF,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO;QACN,IAAI,CAAC,IAAO;YACX,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACF,CAAC;QAED,IAAI;YACH,IAAI,MAAM;gBAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,KAAK;YACJ,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACnB,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAC1C;QACC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChC,CAAC;CACD;AAQD,MAAM,UAAU,gBAAgB;IAC/B,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,MAAM,OAAO,GAAwE,EAAE,CAAC;IACxF,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO;QACN,IAAI,CAAC,IAAO;YACX,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACF,CAAC;QAED,IAAI;YACH,IAAI,MAAM;gBAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,KAAK;YACJ,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACnB,CAAC;KACD,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,sDAAsD;AACtD,MAAM,UAAU,gBAAgB;IAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kingcrab/pi-imessage",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.20",
|
|
4
4
|
"description": "AI-powered iMessage bot using pi coding agent — understands images, quoted replies, and conversation context",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Henry Zhu",
|
|
8
8
|
"homepage": "https://github.com/daya0576/pi-imessage#readme",
|
|
9
9
|
"bugs": "https://github.com/daya0576/pi-imessage/issues",
|
|
10
|
-
"keywords": [
|
|
10
|
+
"keywords": [
|
|
11
|
+
"imessage",
|
|
12
|
+
"ai",
|
|
13
|
+
"chatbot",
|
|
14
|
+
"pi",
|
|
15
|
+
"macos"
|
|
16
|
+
],
|
|
11
17
|
"bin": {
|
|
12
18
|
"pi-imessage": "./dist/cli.js"
|
|
13
19
|
},
|
|
14
|
-
"files": [
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"!dist/__tests__",
|
|
23
|
+
"README.md",
|
|
24
|
+
"LICENSE"
|
|
25
|
+
],
|
|
15
26
|
"publishConfig": {
|
|
16
27
|
"access": "public",
|
|
17
28
|
"provenance": true
|