@kingcrab/pi-imessage 0.0.13 → 0.0.15
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 -3
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +67 -62
- package/dist/agent.js.map +1 -1
- package/dist/logger.d.ts +2 -2
- package/dist/logger.js +2 -2
- package/dist/logger.js.map +1 -1
- package/dist/main.js +2 -9
- package/dist/main.js.map +1 -1
- package/dist/pipeline.d.ts +11 -10
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +17 -10
- package/dist/pipeline.js.map +1 -1
- package/dist/store.d.ts +14 -11
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +7 -28
- package/dist/store.js.map +1 -1
- package/dist/tasks.d.ts +11 -10
- package/dist/tasks.d.ts.map +1 -1
- package/dist/tasks.js +100 -89
- package/dist/tasks.js.map +1 -1
- package/dist/types.d.ts +17 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -1
- package/dist/types.js.map +1 -1
- package/dist/web/data.d.ts +2 -2
- package/dist/web/data.d.ts.map +1 -1
- package/dist/web/data.js.map +1 -1
- package/dist/web/render.js +1 -1
- package/dist/web/render.js.map +1 -1
- package/package.json +3 -3
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,
|
|
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;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAyBjC,iFAAiF;AAEjF,2FAA2F;AAC3F,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC3C,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IACnD,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAYD,MAAM,UAAU,eAAe,CAAC,MAAuB;IACtD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAE9B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,OAAO,CAAC,QAAgB;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,SAAS,OAAO,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,OAAgB;QACvD,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACN,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,OAA8B;YACzD,MAAM,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;KACD,CAAC;AACH,CAAC"}
|
package/dist/tasks.d.ts
CHANGED
|
@@ -8,16 +8,17 @@
|
|
|
8
8
|
* dropSelfEcho — drops messages that are echoes of the bot's own replies
|
|
9
9
|
* storeIncoming — persists the incoming message to log.jsonl
|
|
10
10
|
* checkReplyEnabled — drops messages when reply is disabled by settings
|
|
11
|
-
* downloadImages —
|
|
11
|
+
* downloadImages — reads image attachments from disk and populates incoming.images
|
|
12
12
|
* resizeImages — resizes oversized images via macOS sips
|
|
13
13
|
*
|
|
14
14
|
* start:
|
|
15
|
-
* commandHandler — intercepts slash commands (/new, /status) before the agent
|
|
15
|
+
* commandHandler — intercepts slash commands (/new, /status, /reload) before the agent
|
|
16
16
|
* callAgent — sends the message to the agent and yields replies as they arrive
|
|
17
17
|
*
|
|
18
18
|
* end:
|
|
19
|
-
* sendReply — remembers echo, sends reply via
|
|
19
|
+
* sendReply — remembers echo, sends reply via Messages.app
|
|
20
20
|
* logOutgoing — logs the outgoing reply
|
|
21
|
+
* storeOutgoing — persists the outgoing reply to log.jsonl
|
|
21
22
|
*/
|
|
22
23
|
import type { AgentManager } from "./agent.js";
|
|
23
24
|
import type { DigestLogger } from "./logger.js";
|
|
@@ -54,6 +55,12 @@ export declare function createDropSelfEchoTask(echoFilter: SelfEchoFilter): Befo
|
|
|
54
55
|
* whitelist: ["1"], bl: ["1"] → no reply (blacklist wins)
|
|
55
56
|
*/
|
|
56
57
|
export declare function createCheckReplyEnabledTask(getSettings: () => Settings): BeforeTask;
|
|
58
|
+
/**
|
|
59
|
+
* Read image attachments from local disk and populate incoming.images in-place.
|
|
60
|
+
* Non-image attachments are skipped; failed reads are logged and silently skipped.
|
|
61
|
+
*/
|
|
62
|
+
export declare function createDownloadImagesTask(): BeforeTask;
|
|
63
|
+
export declare function createResizeImagesTask(): BeforeTask;
|
|
57
64
|
/**
|
|
58
65
|
* Intercept slash commands (e.g. "/new", "/status") before they reach the agent.
|
|
59
66
|
* Sets shouldContinue=false on the outgoing message to skip subsequent start tasks.
|
|
@@ -64,12 +71,7 @@ export declare function createCheckReplyEnabledTask(getSettings: () => Settings)
|
|
|
64
71
|
* /reload — reload models and clear all sessions.
|
|
65
72
|
*/
|
|
66
73
|
export declare function createCommandHandlerTask(agent: AgentManager): StartTask;
|
|
67
|
-
/**
|
|
68
|
-
* Read image attachments from local disk and populate incoming.images in-place.
|
|
69
|
-
* Non-image attachments are skipped; failed reads are logged and silently skipped.
|
|
70
|
-
*/
|
|
71
|
-
export declare function createDownloadImagesTask(): BeforeTask;
|
|
72
|
-
export declare function createResizeImagesTask(): BeforeTask;
|
|
74
|
+
/** Send the message to the agent and dispatch a reply for each agent turn. */
|
|
73
75
|
export declare function createCallAgentTask(agent: AgentManager): StartTask;
|
|
74
76
|
/** Remember echo and send reply via Messages.app AppleScript. */
|
|
75
77
|
export declare function createSendReplyTask(echoFilter: SelfEchoFilter, sender: MessageSender): EndTask;
|
|
@@ -80,7 +82,6 @@ export declare function createSendReplyTask(echoFilter: SelfEchoFilter, sender:
|
|
|
80
82
|
* [sid] -> [DM] +16501234567: sure, I'll check
|
|
81
83
|
* [sid] -> [SMS] +16501234567: got it
|
|
82
84
|
* [sid] -> [GROUP] Family: sounds good!
|
|
83
|
-
* [sid] -> [DM] +16501234567: (reaction: love)
|
|
84
85
|
*/
|
|
85
86
|
export declare function createLogOutgoingTask(digestLogger: DigestLogger): EndTask;
|
|
86
87
|
/** Persist the outgoing reply to log.jsonl. */
|
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;;;;;;;;;;;;;;;;;;;;;GAqBG;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;AAiBrD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU,CAU5E;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;AAcD,wBAAgB,sBAAsB,IAAI,UAAU,CAcnD;AA2DD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAoCvE;AAwBD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAWlE;AAID,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAQ9F;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
|
@@ -8,16 +8,17 @@
|
|
|
8
8
|
* dropSelfEcho — drops messages that are echoes of the bot's own replies
|
|
9
9
|
* storeIncoming — persists the incoming message to log.jsonl
|
|
10
10
|
* checkReplyEnabled — drops messages when reply is disabled by settings
|
|
11
|
-
* downloadImages —
|
|
11
|
+
* downloadImages — reads image attachments from disk and populates incoming.images
|
|
12
12
|
* resizeImages — resizes oversized images via macOS sips
|
|
13
13
|
*
|
|
14
14
|
* start:
|
|
15
|
-
* commandHandler — intercepts slash commands (/new, /status) before the agent
|
|
15
|
+
* commandHandler — intercepts slash commands (/new, /status, /reload) before the agent
|
|
16
16
|
* callAgent — sends the message to the agent and yields replies as they arrive
|
|
17
17
|
*
|
|
18
18
|
* end:
|
|
19
|
-
* sendReply — remembers echo, sends reply via
|
|
19
|
+
* sendReply — remembers echo, sends reply via Messages.app
|
|
20
20
|
* logOutgoing — logs the outgoing reply
|
|
21
|
+
* storeOutgoing — persists the outgoing reply to log.jsonl
|
|
21
22
|
*/
|
|
22
23
|
import { execFile } from "node:child_process";
|
|
23
24
|
import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
|
|
@@ -25,15 +26,15 @@ import { tmpdir } from "node:os";
|
|
|
25
26
|
import { join } from "node:path";
|
|
26
27
|
import { promisify } from "node:util";
|
|
27
28
|
import { isReplyEnabled } from "./settings.js";
|
|
28
|
-
import { formatAgentReply } from "./types.js";
|
|
29
|
+
import { displayTarget, formatAgentReply } from "./types.js";
|
|
29
30
|
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
30
|
-
function messageTypeLabel(
|
|
31
|
-
if (
|
|
31
|
+
function messageTypeLabel(chat) {
|
|
32
|
+
if (chat.messageType === "group")
|
|
32
33
|
return "GROUP";
|
|
33
|
-
return
|
|
34
|
+
return chat.messageType === "sms" ? "SMS" : "DM";
|
|
34
35
|
}
|
|
35
|
-
function
|
|
36
|
-
return
|
|
36
|
+
function formatIncomingTarget(chat, incoming) {
|
|
37
|
+
return chat.messageType === "group" ? `${chat.groupName}|${incoming.sender}` : incoming.sender;
|
|
37
38
|
}
|
|
38
39
|
// ── before tasks ──────────────────────────────────────────────────────────────
|
|
39
40
|
/**
|
|
@@ -45,9 +46,9 @@ function formatTarget(msg) {
|
|
|
45
46
|
* [sid] <- [GROUP] Family|+16501234567: dinner at 6? [2 attachment(s)]
|
|
46
47
|
*/
|
|
47
48
|
export function createLogIncomingTask(digestLogger) {
|
|
48
|
-
return (incoming, outgoing) => {
|
|
49
|
-
const label = messageTypeLabel(
|
|
50
|
-
const target =
|
|
49
|
+
return (chat, incoming, outgoing) => {
|
|
50
|
+
const label = messageTypeLabel(chat);
|
|
51
|
+
const target = formatIncomingTarget(chat, incoming);
|
|
51
52
|
const attachmentNote = incoming.attachments.length > 0 ? ` [${incoming.attachments.length} attachment(s)]` : "";
|
|
52
53
|
digestLogger.log(`[sid] <- [${label}] ${target}: ${(incoming.text ?? "(attachment)").substring(0, 80)}${attachmentNote}`);
|
|
53
54
|
return outgoing;
|
|
@@ -55,18 +56,27 @@ export function createLogIncomingTask(digestLogger) {
|
|
|
55
56
|
}
|
|
56
57
|
/** Persist the incoming message to log.jsonl. Always passes through. */
|
|
57
58
|
export function createStoreIncomingTask(store) {
|
|
58
|
-
return (incoming, outgoing) => {
|
|
59
|
-
store
|
|
60
|
-
|
|
59
|
+
return (chat, incoming, outgoing) => {
|
|
60
|
+
store
|
|
61
|
+
.log(chat.chatGuid, {
|
|
62
|
+
sender: incoming.sender,
|
|
63
|
+
text: incoming.text,
|
|
64
|
+
attachments: incoming.attachments.map((a) => a.path),
|
|
65
|
+
fromAgent: false,
|
|
66
|
+
messageType: chat.messageType,
|
|
67
|
+
...(chat.messageType === "group" && { groupName: chat.groupName }),
|
|
68
|
+
})
|
|
69
|
+
.catch((error) => {
|
|
70
|
+
console.error(`[sid] failed to store incoming message for ${chat.chatGuid}:`, error);
|
|
61
71
|
});
|
|
62
72
|
return outgoing;
|
|
63
73
|
};
|
|
64
74
|
}
|
|
65
75
|
/** Drop messages that are echoes of the bot's own replies. */
|
|
66
76
|
export function createDropSelfEchoTask(echoFilter) {
|
|
67
|
-
return (incoming, outgoing) => {
|
|
68
|
-
if (incoming.text && echoFilter.isEcho(
|
|
69
|
-
console.warn(`[sid] drop self-echo ${
|
|
77
|
+
return (chat, incoming, outgoing) => {
|
|
78
|
+
if (incoming.text && echoFilter.isEcho(chat.chatGuid, incoming.text)) {
|
|
79
|
+
console.warn(`[sid] drop self-echo ${chat.chatGuid}: ${incoming.text.substring(0, 40)}`);
|
|
70
80
|
return { ...outgoing, shouldContinue: false };
|
|
71
81
|
}
|
|
72
82
|
return outgoing;
|
|
@@ -87,63 +97,20 @@ export function createDropSelfEchoTask(echoFilter) {
|
|
|
87
97
|
* whitelist: ["1"], bl: ["1"] → no reply (blacklist wins)
|
|
88
98
|
*/
|
|
89
99
|
export function createCheckReplyEnabledTask(getSettings) {
|
|
90
|
-
return (
|
|
91
|
-
if (!isReplyEnabled(getSettings(),
|
|
92
|
-
console.log(`[sid] reply disabled for ${
|
|
100
|
+
return (chat, _incoming, outgoing) => {
|
|
101
|
+
if (!isReplyEnabled(getSettings(), chat.chatGuid)) {
|
|
102
|
+
console.log(`[sid] reply disabled for ${chat.chatGuid}, log-only`);
|
|
93
103
|
return { ...outgoing, shouldContinue: false };
|
|
94
104
|
}
|
|
95
105
|
return outgoing;
|
|
96
106
|
};
|
|
97
107
|
}
|
|
98
|
-
// ── command tasks ─────────────────────────────────────────────────────────────
|
|
99
|
-
/**
|
|
100
|
-
* Intercept slash commands (e.g. "/new", "/status") before they reach the agent.
|
|
101
|
-
* Sets shouldContinue=false on the outgoing message to skip subsequent start tasks.
|
|
102
|
-
*
|
|
103
|
-
* Supported commands:
|
|
104
|
-
* /new — reset the agent session for this chat (equivalent to /new in pi coding agent).
|
|
105
|
-
* /status — show session stats: tokens, cost, context usage, model, thinking level.
|
|
106
|
-
* /reload — reload models and clear all sessions.
|
|
107
|
-
*/
|
|
108
|
-
export function createCommandHandlerTask(agent) {
|
|
109
|
-
return async (incoming, outgoing, dispatch) => {
|
|
110
|
-
const text = incoming.text?.trim();
|
|
111
|
-
if (text === "/new") {
|
|
112
|
-
await agent.newSession(incoming.chatGuid);
|
|
113
|
-
const newSessionReply = "✓ New session started";
|
|
114
|
-
console.log(`[sid] /new command: ${incoming.chatGuid} → ${newSessionReply}`);
|
|
115
|
-
await dispatch({ ...outgoing, reply: { type: "message", text: newSessionReply } });
|
|
116
|
-
const statusReply = await agent.getSessionStatus(incoming.chatGuid);
|
|
117
|
-
console.log(`[sid] /new status: ${incoming.chatGuid} → ${statusReply}`);
|
|
118
|
-
await dispatch({ ...outgoing, reply: { type: "message", text: statusReply } });
|
|
119
|
-
outgoing.shouldContinue = false;
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (text === "/status") {
|
|
123
|
-
const replyText = await agent.getSessionStatus(incoming.chatGuid);
|
|
124
|
-
console.log(`[sid] /status command: ${incoming.chatGuid} → ${replyText}`);
|
|
125
|
-
await dispatch({ ...outgoing, reply: { type: "message", text: replyText } });
|
|
126
|
-
outgoing.shouldContinue = false;
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
if (text === "/reload") {
|
|
130
|
-
await agent.reload(incoming.chatGuid);
|
|
131
|
-
const statusReply = await agent.getSessionStatus(incoming.chatGuid);
|
|
132
|
-
const replyText = `✓ Models reloaded\n${statusReply}`;
|
|
133
|
-
console.log(`[sid] /reload command: ${incoming.chatGuid} → ${replyText}`);
|
|
134
|
-
await dispatch({ ...outgoing, reply: { type: "message", text: replyText } });
|
|
135
|
-
outgoing.shouldContinue = false;
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
// ── start tasks ───────────────────────────────────────────────────────────────
|
|
141
108
|
/**
|
|
142
109
|
* Read image attachments from local disk and populate incoming.images in-place.
|
|
143
110
|
* Non-image attachments are skipped; failed reads are logged and silently skipped.
|
|
144
111
|
*/
|
|
145
112
|
export function createDownloadImagesTask() {
|
|
146
|
-
return async (incoming, outgoing) => {
|
|
113
|
+
return async (_chat, incoming, outgoing) => {
|
|
147
114
|
const images = [];
|
|
148
115
|
for (const attachment of incoming.attachments) {
|
|
149
116
|
const mimeType = attachment.mimeType;
|
|
@@ -164,7 +131,7 @@ export function createDownloadImagesTask() {
|
|
|
164
131
|
};
|
|
165
132
|
}
|
|
166
133
|
/**
|
|
167
|
-
* Resize images whose longest edge exceeds MAX_EDGE_PX using
|
|
134
|
+
* Resize images whose longest edge exceeds MAX_EDGE_PX using macOS sips.
|
|
168
135
|
* Converts to JPEG at 80% quality to keep size well under Anthropic's 5MB limit.
|
|
169
136
|
*
|
|
170
137
|
* before: raw downloaded image (any size, any format)
|
|
@@ -175,7 +142,7 @@ export function createDownloadImagesTask() {
|
|
|
175
142
|
*/
|
|
176
143
|
const MAX_EDGE_PX = 1024;
|
|
177
144
|
export function createResizeImagesTask() {
|
|
178
|
-
return async (incoming, outgoing) => {
|
|
145
|
+
return async (_chat, incoming, outgoing) => {
|
|
179
146
|
const resized = [];
|
|
180
147
|
for (const image of incoming.images) {
|
|
181
148
|
try {
|
|
@@ -237,14 +204,55 @@ async function resizeImageIfNeeded(image) {
|
|
|
237
204
|
await rm(tempDir, { recursive: true, force: true });
|
|
238
205
|
}
|
|
239
206
|
}
|
|
240
|
-
|
|
207
|
+
// ── start tasks ───────────────────────────────────────────────────────────────
|
|
208
|
+
/**
|
|
209
|
+
* Intercept slash commands (e.g. "/new", "/status") before they reach the agent.
|
|
210
|
+
* Sets shouldContinue=false on the outgoing message to skip subsequent start tasks.
|
|
211
|
+
*
|
|
212
|
+
* Supported commands:
|
|
213
|
+
* /new — reset the agent session for this chat (equivalent to /new in pi coding agent).
|
|
214
|
+
* /status — show session stats: tokens, cost, context usage, model, thinking level.
|
|
215
|
+
* /reload — reload models and clear all sessions.
|
|
216
|
+
*/
|
|
217
|
+
export function createCommandHandlerTask(agent) {
|
|
218
|
+
return async (chat, incoming, outgoing, emit) => {
|
|
219
|
+
const text = incoming.text?.trim();
|
|
220
|
+
if (text === "/new") {
|
|
221
|
+
await agent.newSession(chat.chatGuid);
|
|
222
|
+
const newSessionReply = "✓ New session started";
|
|
223
|
+
console.log(`[sid] /new command: ${chat.chatGuid} → ${newSessionReply}`);
|
|
224
|
+
emit({ ...outgoing, reply: { type: "message", text: newSessionReply } });
|
|
225
|
+
const statusReply = await agent.getSessionStatus(chat.chatGuid);
|
|
226
|
+
console.log(`[sid] /new status: ${chat.chatGuid} → ${statusReply}`);
|
|
227
|
+
emit({ ...outgoing, reply: { type: "message", text: statusReply } });
|
|
228
|
+
outgoing.shouldContinue = false;
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
if (text === "/status") {
|
|
232
|
+
const replyText = await agent.getSessionStatus(chat.chatGuid);
|
|
233
|
+
console.log(`[sid] /status command: ${chat.chatGuid} → ${replyText}`);
|
|
234
|
+
emit({ ...outgoing, reply: { type: "message", text: replyText } });
|
|
235
|
+
outgoing.shouldContinue = false;
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (text === "/reload") {
|
|
239
|
+
await agent.reload(chat.chatGuid);
|
|
240
|
+
const statusReply = await agent.getSessionStatus(chat.chatGuid);
|
|
241
|
+
const replyText = `✓ Models reloaded\n${statusReply}`;
|
|
242
|
+
console.log(`[sid] /reload command: ${chat.chatGuid} → ${replyText}`);
|
|
243
|
+
emit({ ...outgoing, reply: { type: "message", text: replyText } });
|
|
244
|
+
outgoing.shouldContinue = false;
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
}
|
|
241
249
|
/** Decorator: wrap a StartTask with retry logic for transient errors. */
|
|
242
250
|
function withRetry(task, options) {
|
|
243
|
-
return async (incoming, outgoing,
|
|
251
|
+
return async (chat, incoming, outgoing, emit) => {
|
|
244
252
|
const { delays, retryable } = options;
|
|
245
253
|
for (let attempt = 0;; attempt++) {
|
|
246
254
|
try {
|
|
247
|
-
await task(incoming, outgoing,
|
|
255
|
+
await task(chat, incoming, outgoing, emit);
|
|
248
256
|
return;
|
|
249
257
|
}
|
|
250
258
|
catch (error) {
|
|
@@ -252,18 +260,19 @@ function withRetry(task, options) {
|
|
|
252
260
|
if (attempt >= delays.length || !retryable(message))
|
|
253
261
|
throw error;
|
|
254
262
|
const delay = delays[attempt];
|
|
255
|
-
console.log(`[agent] retrying ${
|
|
263
|
+
console.log(`[agent] retrying ${chat.chatGuid} (attempt ${attempt + 2}/${delays.length + 1}) ` +
|
|
256
264
|
`in ${delay / 1000}s: ${message.substring(0, 80)}`);
|
|
257
265
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
258
266
|
}
|
|
259
267
|
}
|
|
260
268
|
};
|
|
261
269
|
}
|
|
270
|
+
/** Send the message to the agent and dispatch a reply for each agent turn. */
|
|
262
271
|
export function createCallAgentTask(agent) {
|
|
263
|
-
const task = async (incoming, outgoing,
|
|
272
|
+
const task = async (_chat, incoming, outgoing, emit) => {
|
|
264
273
|
await agent.processMessage(incoming, async (agentReply) => {
|
|
265
274
|
const text = formatAgentReply(agentReply);
|
|
266
|
-
|
|
275
|
+
emit({ ...outgoing, reply: { type: "message", text } });
|
|
267
276
|
});
|
|
268
277
|
};
|
|
269
278
|
return withRetry(task, {
|
|
@@ -274,13 +283,10 @@ export function createCallAgentTask(agent) {
|
|
|
274
283
|
// ── end tasks ─────────────────────────────────────────────────────────────────
|
|
275
284
|
/** Remember echo and send reply via Messages.app AppleScript. */
|
|
276
285
|
export function createSendReplyTask(echoFilter, sender) {
|
|
277
|
-
return async (
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
if (reply.type === "message") {
|
|
282
|
-
echoFilter.remember(incoming.chatGuid, reply.text);
|
|
283
|
-
await sender.sendMessage(incoming.chatGuid, reply.text);
|
|
286
|
+
return async (chat, outgoing) => {
|
|
287
|
+
if (outgoing.reply.type === "message") {
|
|
288
|
+
echoFilter.remember(chat.chatGuid, outgoing.reply.text);
|
|
289
|
+
await sender.sendMessage(chat.chatGuid, outgoing.reply.text);
|
|
284
290
|
}
|
|
285
291
|
return outgoing;
|
|
286
292
|
};
|
|
@@ -292,14 +298,13 @@ export function createSendReplyTask(echoFilter, sender) {
|
|
|
292
298
|
* [sid] -> [DM] +16501234567: sure, I'll check
|
|
293
299
|
* [sid] -> [SMS] +16501234567: got it
|
|
294
300
|
* [sid] -> [GROUP] Family: sounds good!
|
|
295
|
-
* [sid] -> [DM] +16501234567: (reaction: love)
|
|
296
301
|
*/
|
|
297
302
|
export function createLogOutgoingTask(digestLogger) {
|
|
298
|
-
return (
|
|
303
|
+
return (chat, outgoing) => {
|
|
299
304
|
const { reply } = outgoing;
|
|
300
305
|
if (reply.type === "message") {
|
|
301
|
-
const label = messageTypeLabel(
|
|
302
|
-
const target =
|
|
306
|
+
const label = messageTypeLabel(chat);
|
|
307
|
+
const target = displayTarget(chat);
|
|
303
308
|
digestLogger.log(`[sid] -> [${label}] ${target}: ${reply.text.substring(0, 80)}`);
|
|
304
309
|
}
|
|
305
310
|
return outgoing;
|
|
@@ -307,13 +312,19 @@ export function createLogOutgoingTask(digestLogger) {
|
|
|
307
312
|
}
|
|
308
313
|
/** Persist the outgoing reply to log.jsonl. */
|
|
309
314
|
export function createStoreOutgoingTask(store) {
|
|
310
|
-
return (
|
|
311
|
-
|
|
312
|
-
if (reply.type === "message") {
|
|
315
|
+
return (chat, outgoing) => {
|
|
316
|
+
if (outgoing.reply.type === "message") {
|
|
313
317
|
store
|
|
314
|
-
.
|
|
318
|
+
.log(chat.chatGuid, {
|
|
319
|
+
sender: "bot",
|
|
320
|
+
text: outgoing.reply.text,
|
|
321
|
+
attachments: [],
|
|
322
|
+
fromAgent: true,
|
|
323
|
+
messageType: chat.messageType,
|
|
324
|
+
...(chat.messageType === "group" && { groupName: chat.groupName }),
|
|
325
|
+
})
|
|
315
326
|
.catch((error) => {
|
|
316
|
-
console.error(`[sid] failed to store outgoing message for ${
|
|
327
|
+
console.error(`[sid] failed to store outgoing message for ${chat.chatGuid}:`, error);
|
|
317
328
|
});
|
|
318
329
|
}
|
|
319
330
|
return 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
|
@@ -12,6 +12,23 @@ import type { ImageContent } from "@mariozechner/pi-ai";
|
|
|
12
12
|
* "iMessage" ";+;" (group) "group"
|
|
13
13
|
*/
|
|
14
14
|
export type MessageType = "sms" | "imessage" | "group";
|
|
15
|
+
/**
|
|
16
|
+
* Chat-level identity — fixed per chat session.
|
|
17
|
+
* Passed as a first-class parameter through all pipeline tasks.
|
|
18
|
+
*/
|
|
19
|
+
export interface ChatContext {
|
|
20
|
+
chatGuid: string;
|
|
21
|
+
messageType: MessageType;
|
|
22
|
+
groupName: string;
|
|
23
|
+
}
|
|
24
|
+
/** Extract ChatContext from an IncomingMessage. */
|
|
25
|
+
export declare function toChatContext(msg: IncomingMessage): ChatContext;
|
|
26
|
+
/**
|
|
27
|
+
* Human-readable display target for a chat.
|
|
28
|
+
* DM/SMS → address extracted from chatGuid ("iMessage;-;+1234" → "+1234")
|
|
29
|
+
* Group → group name
|
|
30
|
+
*/
|
|
31
|
+
export declare function displayTarget(chat: ChatContext): string;
|
|
15
32
|
/** Attachment metadata — local path on disk. */
|
|
16
33
|
export interface Attachment {
|
|
17
34
|
/** Local file path (e.g. ~/Library/Messages/Attachments/...). */
|
|
@@ -66,13 +83,10 @@ export type ReplyAction = {
|
|
|
66
83
|
* reply — the reply action to perform (text or nothing).
|
|
67
84
|
* shouldContinue — if false, remaining tasks in the current phase and all
|
|
68
85
|
* later phases are skipped.
|
|
69
|
-
* sendReply — if false, the reply is logged but not sent to the user
|
|
70
|
-
* (e.g. agent encountered an error).
|
|
71
86
|
*/
|
|
72
87
|
export interface OutgoingMessage {
|
|
73
88
|
reply: ReplyAction;
|
|
74
89
|
shouldContinue: boolean;
|
|
75
|
-
sendReply: boolean;
|
|
76
90
|
}
|
|
77
91
|
/** Create a default OutgoingMessage (no reply, continue processing). */
|
|
78
92
|
export declare function createOutgoingMessage(): OutgoingMessage;
|
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,qBAAqB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;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/types.js
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared types for the iMessage bot pipeline.
|
|
3
3
|
*/
|
|
4
|
+
/** Extract ChatContext from an IncomingMessage. */
|
|
5
|
+
export function toChatContext(msg) {
|
|
6
|
+
return { chatGuid: msg.chatGuid, messageType: msg.messageType, groupName: msg.groupName };
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Human-readable display target for a chat.
|
|
10
|
+
* DM/SMS → address extracted from chatGuid ("iMessage;-;+1234" → "+1234")
|
|
11
|
+
* Group → group name
|
|
12
|
+
*/
|
|
13
|
+
export function displayTarget(chat) {
|
|
14
|
+
if (chat.messageType === "group")
|
|
15
|
+
return chat.groupName;
|
|
16
|
+
return chat.chatGuid.split(";").pop() ?? chat.chatGuid;
|
|
17
|
+
}
|
|
4
18
|
const MAX_TOOL_RESULT_LINES = 5;
|
|
5
19
|
/** Format an AgentReply into a plain-text iMessage string. */
|
|
6
20
|
export function formatAgentReply(reply) {
|
|
@@ -19,6 +33,6 @@ export function formatAgentReply(reply) {
|
|
|
19
33
|
}
|
|
20
34
|
/** Create a default OutgoingMessage (no reply, continue processing). */
|
|
21
35
|
export function createOutgoingMessage() {
|
|
22
|
-
return { reply: { type: "none" }, shouldContinue: true
|
|
36
|
+
return { reply: { type: "none" }, shouldContinue: true };
|
|
23
37
|
}
|
|
24
38
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2BH,mDAAmD;AACnD,MAAM,UAAU,aAAa,CAAC,GAAoB;IACjD,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;AAC3F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAiB;IAC9C,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC;IACxD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC;AACxD,CAAC;AAqCD,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAClD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;IAE3D,+DAA+D;IAC/D,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,CAAC;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO,GAAG,MAAM,KAAK,SAAS,KAAK,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;AACrC,CAAC;AAmBD,wEAAwE;AACxE,MAAM,UAAU,qBAAqB;IACpC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AAC1D,CAAC"}
|
package/dist/web/data.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/** Read chat logs from disk and produce ChatBlock summaries. */
|
|
2
|
-
import type {
|
|
2
|
+
import type { Message } from "../store.js";
|
|
3
3
|
export interface ChatBlock {
|
|
4
4
|
guid: string;
|
|
5
5
|
displayName: string;
|
|
6
|
-
messages:
|
|
6
|
+
messages: Message[];
|
|
7
7
|
lastTime: number;
|
|
8
8
|
}
|
|
9
9
|
/** Return chat blocks from the last 7 days, sorted by most-recent message. */
|
package/dist/web/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/web/data.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAIhE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/web/data.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAIhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAmBD,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAiC7D"}
|
package/dist/web/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/web/data.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAUjC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,SAAS,YAAY,CAAC,UAAkB,EAAE,QAAgB;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChF,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/web/data.ts"],"names":[],"mappings":"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"}
|
package/dist/web/render.js
CHANGED
|
@@ -35,7 +35,7 @@ function prepareCard(block) {
|
|
|
35
35
|
rows.push({
|
|
36
36
|
gap: false,
|
|
37
37
|
time: formatTime(message.date),
|
|
38
|
-
arrow: message.
|
|
38
|
+
arrow: message.fromAgent ? "->" : "<-",
|
|
39
39
|
channel: channelLabel(message.messageType),
|
|
40
40
|
sender: senderLabel(message),
|
|
41
41
|
text: firstLinePreview(message.text),
|
package/dist/web/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/web/render.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AAC/E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAY9D,gDAAgD;AAChD,SAAS,YAAY,CAAC,WAAwB;IAC7C,IAAI,WAAW,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,WAAW,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC;IAC1C,OAAO,MAAM,CAAC;AACf,CAAC;AAOD,mDAAmD;AACnD,SAAS,WAAW,CAAC,KAAgB;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,IAAI,GAAiB,EAAE,CAAC;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC/E,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAClF,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACT,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/web/render.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kingcrab/pi-imessage",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.15",
|
|
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",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"scripts": {
|
|
27
27
|
"build": "tsc && mkdir -p dist/web/templates && cp src/web/templates/* dist/web/templates/",
|
|
28
28
|
"prepublishOnly": "npm run build",
|
|
29
|
-
"dev": "tsx watch src/main.ts",
|
|
30
|
-
"start": "tsx src/main.ts",
|
|
29
|
+
"dev": "NODE_OPTIONS='--use-env-proxy' tsx watch src/main.ts",
|
|
30
|
+
"start": "NODE_OPTIONS='--use-env-proxy' tsx src/main.ts",
|
|
31
31
|
"test": "vitest run",
|
|
32
32
|
"typecheck": "tsc --noEmit",
|
|
33
33
|
"lint": "biome check .",
|