@elizaos/plugin-imessage 2.0.0-alpha.9 → 2.0.0-beta.1
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 +184 -0
- package/auto-enable.ts +21 -0
- package/dist/api/bluebubbles-routes.d.ts +10 -0
- package/dist/api/bluebubbles-routes.d.ts.map +1 -0
- package/dist/api/bluebubbles-routes.js +132 -0
- package/dist/api/bluebubbles-routes.js.map +1 -0
- package/dist/api/imessage-routes.d.ts +80 -0
- package/dist/api/imessage-routes.d.ts.map +1 -0
- package/dist/api/imessage-routes.js +230 -0
- package/dist/api/imessage-routes.js.map +1 -0
- package/dist/chatdb-reader.d.ts +240 -0
- package/dist/chatdb-reader.d.ts.map +1 -0
- package/dist/chatdb-reader.js +647 -0
- package/dist/chatdb-reader.js.map +1 -0
- package/dist/connector-account-provider.d.ts +18 -0
- package/dist/connector-account-provider.d.ts.map +1 -0
- package/dist/connector-account-provider.js +83 -0
- package/dist/connector-account-provider.js.map +1 -0
- package/dist/contacts-reader.d.ts +147 -0
- package/dist/contacts-reader.d.ts.map +1 -0
- package/dist/contacts-reader.js +481 -0
- package/dist/contacts-reader.js.map +1 -0
- package/dist/index.d.ts +11 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -16
- package/dist/index.js.map +1 -1
- package/dist/providers/index.d.ts +1 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/rpc.d.ts +16 -4
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +103 -11
- package/dist/rpc.js.map +1 -1
- package/dist/service.d.ts +203 -8
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +1368 -107
- package/dist/service.js.map +1 -1
- package/dist/setup-routes.d.ts +38 -0
- package/dist/setup-routes.d.ts.map +1 -0
- package/dist/setup-routes.js +322 -0
- package/dist/setup-routes.js.map +1 -0
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +19 -10
- package/dist/actions/index.d.ts +0 -5
- package/dist/actions/index.d.ts.map +0 -1
- package/dist/actions/index.js +0 -5
- package/dist/actions/index.js.map +0 -1
- package/dist/actions/sendMessage.d.ts +0 -6
- package/dist/actions/sendMessage.d.ts.map +0 -1
- package/dist/actions/sendMessage.js +0 -178
- package/dist/actions/sendMessage.js.map +0 -1
- package/dist/providers/chatContext.d.ts +0 -6
- package/dist/providers/chatContext.d.ts.map +0 -1
- package/dist/providers/chatContext.js +0 -60
- package/dist/providers/chatContext.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/plugin-imessage",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-beta.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -12,11 +12,20 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
|
-
"dist"
|
|
15
|
+
"dist",
|
|
16
|
+
"auto-enable.ts"
|
|
16
17
|
],
|
|
18
|
+
"elizaos": {
|
|
19
|
+
"plugin": {
|
|
20
|
+
"autoEnableModule": "./auto-enable.ts",
|
|
21
|
+
"capabilities": [
|
|
22
|
+
"messaging"
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
},
|
|
17
26
|
"scripts": {
|
|
18
27
|
"build": "bun run build.ts",
|
|
19
|
-
"test": "vitest run --config vitest.config.ts
|
|
28
|
+
"test": "vitest run --config vitest.config.ts",
|
|
20
29
|
"test:watch": "vitest --config vitest.config.ts",
|
|
21
30
|
"lint": "bunx @biomejs/biome check --write --unsafe .",
|
|
22
31
|
"lint:check": "bunx @biomejs/biome check .",
|
|
@@ -25,16 +34,16 @@
|
|
|
25
34
|
"typecheck": "tsc --noEmit"
|
|
26
35
|
},
|
|
27
36
|
"dependencies": {
|
|
28
|
-
"@elizaos/core": "2.0.0-
|
|
29
|
-
"zod": "^4.3
|
|
37
|
+
"@elizaos/core": "2.0.0-beta.1",
|
|
38
|
+
"zod": "^4.4.3"
|
|
30
39
|
},
|
|
31
40
|
"devDependencies": {
|
|
32
|
-
"@
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
41
|
+
"@biomejs/biome": "^2.4.14",
|
|
42
|
+
"@types/node": "^22.19.17",
|
|
43
|
+
"typescript": "^6.0.3",
|
|
44
|
+
"vitest": "^4.0.0"
|
|
36
45
|
},
|
|
37
|
-
"
|
|
46
|
+
"eliza": {
|
|
38
47
|
"platforms": [
|
|
39
48
|
"node"
|
|
40
49
|
],
|
package/dist/actions/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/actions/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sendMessage.d.ts","sourceRoot":"","sources":["../../src/actions/sendMessage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,MAAM,EAMP,MAAM,eAAe,CAAC;AA8BvB,eAAO,MAAM,WAAW,EAAE,MAwLzB,CAAC"}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Send message action for the iMessage plugin.
|
|
3
|
-
*/
|
|
4
|
-
import { composePromptFromState, logger, ModelType, parseJSONObjectFromText } from "@elizaos/core";
|
|
5
|
-
import { IMESSAGE_SERVICE_NAME, isValidIMessageTarget, normalizeIMessageTarget } from "../types.js";
|
|
6
|
-
const SEND_MESSAGE_TEMPLATE = `# Task: Extract iMessage parameters
|
|
7
|
-
|
|
8
|
-
Based on the conversation, determine what message to send and to whom.
|
|
9
|
-
|
|
10
|
-
Recent conversation:
|
|
11
|
-
{{recentMessages}}
|
|
12
|
-
|
|
13
|
-
Extract the following:
|
|
14
|
-
1. text: The message content to send
|
|
15
|
-
2. to: The recipient (phone number, email, or "current" to reply)
|
|
16
|
-
|
|
17
|
-
Respond with a JSON object:
|
|
18
|
-
\`\`\`json
|
|
19
|
-
{
|
|
20
|
-
"text": "message to send",
|
|
21
|
-
"to": "phone/email or 'current'"
|
|
22
|
-
}
|
|
23
|
-
\`\`\`
|
|
24
|
-
`;
|
|
25
|
-
export const sendMessage = {
|
|
26
|
-
name: "IMESSAGE_SEND_MESSAGE",
|
|
27
|
-
similes: ["SEND_IMESSAGE", "IMESSAGE_TEXT", "TEXT_IMESSAGE", "SEND_IMSG"],
|
|
28
|
-
description: "Send a text message via iMessage (macOS only)",
|
|
29
|
-
validate: async (runtime, message, state) => {
|
|
30
|
-
const source = String(message.content.source ?? "");
|
|
31
|
-
if (source !== "imessage")
|
|
32
|
-
return false;
|
|
33
|
-
const text = typeof message.content.text === "string" ? message.content.text.trim() : "";
|
|
34
|
-
const lower = text.toLowerCase();
|
|
35
|
-
const keywords = ["send", "text", "message", "reply", "imessage"];
|
|
36
|
-
const hasKeyword = keywords.some((kw) => lower.includes(kw)) || source === "imessage";
|
|
37
|
-
const hasIntentPattern = /\b(send|text|message|reply|imessage)\b/i.test(text) || source === "imessage";
|
|
38
|
-
const hasContext = source === "imessage" &&
|
|
39
|
-
(Boolean(message.content.source) ||
|
|
40
|
-
Boolean(state?.roomId || state?.conversationId || message.roomId) ||
|
|
41
|
-
(typeof runtime?.getService === "function" &&
|
|
42
|
-
Boolean(runtime.getService(IMESSAGE_SERVICE_NAME))));
|
|
43
|
-
const hasStructuredInput = Boolean(message.content.actions?.includes("IMESSAGE_SEND_MESSAGE")) ||
|
|
44
|
-
(typeof message.content === "object" &&
|
|
45
|
-
typeof message.content.to === "string");
|
|
46
|
-
const hasInput = text.length > 0 || hasStructuredInput || source === "imessage";
|
|
47
|
-
return hasKeyword && hasIntentPattern && hasContext && hasInput;
|
|
48
|
-
},
|
|
49
|
-
handler: async (runtime, message, state, _options, callback) => {
|
|
50
|
-
const imessageService = runtime.getService(IMESSAGE_SERVICE_NAME);
|
|
51
|
-
if (!imessageService || !imessageService.isConnected()) {
|
|
52
|
-
if (callback) {
|
|
53
|
-
callback({
|
|
54
|
-
text: "iMessage service is not available.",
|
|
55
|
-
source: "imessage",
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
return { success: false, error: "iMessage service not available" };
|
|
59
|
-
}
|
|
60
|
-
if (!imessageService.isMacOS()) {
|
|
61
|
-
if (callback) {
|
|
62
|
-
callback({
|
|
63
|
-
text: "iMessage is only available on macOS.",
|
|
64
|
-
source: "imessage",
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
return { success: false, error: "iMessage requires macOS" };
|
|
68
|
-
}
|
|
69
|
-
// Compose state if not provided
|
|
70
|
-
const currentState = state ?? (await runtime.composeState(message));
|
|
71
|
-
// Extract parameters using LLM
|
|
72
|
-
const prompt = await composePromptFromState({
|
|
73
|
-
template: SEND_MESSAGE_TEMPLATE,
|
|
74
|
-
state: currentState,
|
|
75
|
-
});
|
|
76
|
-
let msgInfo = null;
|
|
77
|
-
for (let attempt = 0; attempt < 3; attempt++) {
|
|
78
|
-
const response = await runtime.useModel(ModelType.TEXT_SMALL, {
|
|
79
|
-
prompt,
|
|
80
|
-
});
|
|
81
|
-
const parsed = parseJSONObjectFromText(response);
|
|
82
|
-
if (parsed?.text) {
|
|
83
|
-
msgInfo = {
|
|
84
|
-
text: String(parsed.text),
|
|
85
|
-
to: String(parsed.to || "current"),
|
|
86
|
-
};
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (!msgInfo || !msgInfo.text) {
|
|
91
|
-
if (callback) {
|
|
92
|
-
callback({
|
|
93
|
-
text: "I couldn't understand what message you want me to send. Please try again.",
|
|
94
|
-
source: "imessage",
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
return { success: false, error: "Could not extract message parameters" };
|
|
98
|
-
}
|
|
99
|
-
// Determine target
|
|
100
|
-
let targetId;
|
|
101
|
-
if (msgInfo.to && msgInfo.to !== "current") {
|
|
102
|
-
const normalized = normalizeIMessageTarget(msgInfo.to);
|
|
103
|
-
if (normalized && isValidIMessageTarget(normalized)) {
|
|
104
|
-
targetId = normalized;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Fall back to current chat
|
|
108
|
-
if (!targetId) {
|
|
109
|
-
const stateData = (currentState.data || {});
|
|
110
|
-
targetId = stateData.chatId || stateData.handle;
|
|
111
|
-
}
|
|
112
|
-
if (!targetId) {
|
|
113
|
-
if (callback) {
|
|
114
|
-
callback({
|
|
115
|
-
text: "I couldn't determine who to send the message to. Please specify a phone number or email.",
|
|
116
|
-
source: "imessage",
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
return { success: false, error: "Could not determine recipient" };
|
|
120
|
-
}
|
|
121
|
-
// Send message
|
|
122
|
-
const result = await imessageService.sendMessage(targetId, msgInfo.text);
|
|
123
|
-
if (!result.success) {
|
|
124
|
-
if (callback) {
|
|
125
|
-
callback({
|
|
126
|
-
text: `Failed to send message: ${result.error}`,
|
|
127
|
-
source: "imessage",
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
return { success: false, error: result.error };
|
|
131
|
-
}
|
|
132
|
-
logger.debug(`Sent iMessage to ${targetId}`);
|
|
133
|
-
if (callback) {
|
|
134
|
-
callback({
|
|
135
|
-
text: "Message sent successfully.",
|
|
136
|
-
source: message.content.source,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
return {
|
|
140
|
-
success: true,
|
|
141
|
-
data: {
|
|
142
|
-
to: targetId,
|
|
143
|
-
messageId: result.messageId,
|
|
144
|
-
},
|
|
145
|
-
};
|
|
146
|
-
},
|
|
147
|
-
examples: [
|
|
148
|
-
[
|
|
149
|
-
{
|
|
150
|
-
name: "{{user1}}",
|
|
151
|
-
content: { text: "Send them a message saying 'Hello!'" },
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
name: "{{agent}}",
|
|
155
|
-
content: {
|
|
156
|
-
text: "I'll send that message via iMessage.",
|
|
157
|
-
actions: ["IMESSAGE_SEND_MESSAGE"],
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
],
|
|
161
|
-
[
|
|
162
|
-
{
|
|
163
|
-
name: "{{user1}}",
|
|
164
|
-
content: {
|
|
165
|
-
text: "Text +1234567890 saying 'I'll be there in 10 minutes'",
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
name: "{{agent}}",
|
|
170
|
-
content: {
|
|
171
|
-
text: "I'll send that text.",
|
|
172
|
-
actions: ["IMESSAGE_SEND_MESSAGE"],
|
|
173
|
-
},
|
|
174
|
-
},
|
|
175
|
-
],
|
|
176
|
-
],
|
|
177
|
-
};
|
|
178
|
-
//# sourceMappingURL=sendMessage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sendMessage.js","sourceRoot":"","sources":["../../src/actions/sendMessage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAEnG,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEpG,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;CAkB7B,CAAC;AAOF,MAAM,CAAC,MAAM,WAAW,GAAW;IACjC,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,CAAC;IACzE,WAAW,EAAE,+CAA+C;IAE5D,QAAQ,EAAE,KAAK,EAAE,OAAsB,EAAE,OAAe,EAAE,KAAa,EAAoB,EAAE;QAC3F,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAExC,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,KAAK,UAAU,CAAC;QACtF,MAAM,gBAAgB,GACpB,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,KAAK,UAAU,CAAC;QAEhF,MAAM,UAAU,GACd,MAAM,KAAK,UAAU;YACrB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC9B,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;gBACjE,CAAC,OAAO,OAAO,EAAE,UAAU,KAAK,UAAU;oBACxC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAkB,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,MAAM,kBAAkB,GACtB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC;YACnE,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAClC,OAAQ,OAAO,CAAC,OAAmC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,IAAI,MAAM,KAAK,UAAU,CAAC;QAEhF,OAAO,UAAU,IAAI,gBAAgB,IAAI,UAAU,IAAI,QAAQ,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,KAAK,EACZ,OAAsB,EACtB,OAAe,EACf,KAAwB,EACxB,QAAkC,EAClC,QAA0B,EACH,EAAE;QACzB,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAkB,qBAAqB,CAAC,CAAC;QAEnF,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;YACvD,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC;oBACP,IAAI,EAAE,oCAAoC;oBAC1C,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/B,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC;oBACP,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;QAC9D,CAAC;QAED,gCAAgC;QAChC,MAAM,YAAY,GAAG,KAAK,IAAI,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAEpE,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;YAC1C,QAAQ,EAAE,qBAAqB;YAC/B,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QAEH,IAAI,OAAO,GAA6B,IAAI,CAAC;QAE7C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE;gBAC5D,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;gBACjB,OAAO,GAAG;oBACR,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACzB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC;iBACnC,CAAC;gBACF,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC;oBACP,IAAI,EAAE,2EAA2E;oBACjF,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC;QAC3E,CAAC;QAED,mBAAmB;QACnB,IAAI,QAA4B,CAAC;QAEjC,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,UAAU,IAAI,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,QAAQ,GAAG,UAAU,CAAC;YACxB,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;YACvE,QAAQ,GAAI,SAAS,CAAC,MAAiB,IAAK,SAAS,CAAC,MAAiB,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC;oBACP,IAAI,EAAE,0FAA0F;oBAChG,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;QACpE,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC;oBACP,IAAI,EAAE,2BAA2B,MAAM,CAAC,KAAK,EAAE;oBAC/C,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;QAE7C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC;gBACP,IAAI,EAAE,4BAA4B;gBAClC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAgB;aACzC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,EAAE,EAAE,QAAQ;gBACZ,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B;SACF,CAAC;IACJ,CAAC;IAED,QAAQ,EAAE;QACR;YACE;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,EAAE,IAAI,EAAE,qCAAqC,EAAE;aACzD;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,sCAAsC;oBAC5C,OAAO,EAAE,CAAC,uBAAuB,CAAC;iBACnC;aACF;SACF;QACD;YACE;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,uDAAuD;iBAC9D;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,CAAC,uBAAuB,CAAC;iBACnC;aACF;SACF;KACF;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chatContext.d.ts","sourceRoot":"","sources":["../../src/providers/chatContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAI5F,eAAO,MAAM,mBAAmB,EAAE,QA8DjC,CAAC"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat context provider for the iMessage plugin.
|
|
3
|
-
*/
|
|
4
|
-
import { IMESSAGE_SERVICE_NAME } from "../types.js";
|
|
5
|
-
export const chatContextProvider = {
|
|
6
|
-
name: "imessageChatContext",
|
|
7
|
-
description: "Provides information about the current iMessage chat context",
|
|
8
|
-
dynamic: true,
|
|
9
|
-
get: async (runtime, message, state) => {
|
|
10
|
-
// Only provide context for iMessage messages
|
|
11
|
-
if (message.content.source !== "imessage") {
|
|
12
|
-
return {
|
|
13
|
-
data: {},
|
|
14
|
-
values: {},
|
|
15
|
-
text: "",
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
const imessageService = runtime.getService(IMESSAGE_SERVICE_NAME);
|
|
19
|
-
if (!imessageService || !imessageService.isConnected()) {
|
|
20
|
-
return {
|
|
21
|
-
data: { connected: false },
|
|
22
|
-
values: { connected: false },
|
|
23
|
-
text: "",
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
const agentName = state?.agentName || "The agent";
|
|
27
|
-
const stateData = (state?.data || {});
|
|
28
|
-
const handle = stateData.handle;
|
|
29
|
-
const chatId = stateData.chatId;
|
|
30
|
-
const chatType = stateData.chatType;
|
|
31
|
-
const displayName = stateData.displayName;
|
|
32
|
-
let chatDescription = "";
|
|
33
|
-
if (chatType === "group") {
|
|
34
|
-
chatDescription = displayName ? `group chat "${displayName}"` : "a group chat";
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
chatDescription = handle ? `direct message with ${handle}` : "a direct message";
|
|
38
|
-
}
|
|
39
|
-
const responseText = `${agentName} is chatting via iMessage in ${chatDescription}. ` +
|
|
40
|
-
"iMessage supports text messages and attachments.";
|
|
41
|
-
return {
|
|
42
|
-
data: {
|
|
43
|
-
handle,
|
|
44
|
-
chatId,
|
|
45
|
-
chatType: chatType || "direct",
|
|
46
|
-
displayName,
|
|
47
|
-
connected: true,
|
|
48
|
-
platform: "imessage",
|
|
49
|
-
},
|
|
50
|
-
values: {
|
|
51
|
-
handle,
|
|
52
|
-
chatId,
|
|
53
|
-
chatType: chatType || "direct",
|
|
54
|
-
displayName,
|
|
55
|
-
},
|
|
56
|
-
text: responseText,
|
|
57
|
-
};
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=chatContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chatContext.js","sourceRoot":"","sources":["../../src/providers/chatContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,CAAC,MAAM,mBAAmB,GAAa;IAC3C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,8DAA8D;IAE3E,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,KAAK,EAAE,OAAsB,EAAE,OAAe,EAAE,KAAY,EAA2B,EAAE;QAC5F,6CAA6C;QAC7C,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1C,OAAO;gBACL,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,EAAE;aACT,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAkB,qBAAqB,CAAC,CAAC;QAEnF,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;YACvD,OAAO;gBACL,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;gBAC1B,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;gBAC5B,IAAI,EAAE,EAAE;aACT,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,IAAI,WAAW,CAAC;QAClD,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAA4B,CAAC;QAEjE,MAAM,MAAM,GAAG,SAAS,CAAC,MAA4B,CAAC;QACtD,MAAM,MAAM,GAAG,SAAS,CAAC,MAA4B,CAAC;QACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAA8B,CAAC;QAC1D,MAAM,WAAW,GAAG,SAAS,CAAC,WAAiC,CAAC;QAEhE,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,eAAe,WAAW,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAClF,CAAC;QAED,MAAM,YAAY,GAChB,GAAG,SAAS,gCAAgC,eAAe,IAAI;YAC/D,kDAAkD,CAAC;QAErD,OAAO;YACL,IAAI,EAAE;gBACJ,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,QAAQ,IAAI,QAAQ;gBAC9B,WAAW;gBACX,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,UAAU;aACrB;YACD,MAAM,EAAE;gBACN,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,QAAQ,IAAI,QAAQ;gBAC9B,WAAW;aACZ;YACD,IAAI,EAAE,YAAY;SACnB,CAAC;IACJ,CAAC;CACF,CAAC"}
|