@elizaos/plugin-messages 2.0.3-beta.6 → 2.0.3-beta.7
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/components/MessagesAppView.d.ts +3 -0
- package/dist/components/MessagesAppView.d.ts.map +1 -0
- package/dist/components/MessagesAppView.helpers.d.ts +20 -0
- package/dist/components/MessagesAppView.helpers.d.ts.map +1 -0
- package/dist/components/MessagesAppView.helpers.js +56 -0
- package/dist/components/MessagesAppView.helpers.js.map +1 -0
- package/dist/components/MessagesAppView.interact.d.ts +2 -0
- package/dist/components/MessagesAppView.interact.d.ts.map +1 -0
- package/dist/components/MessagesAppView.interact.js +49 -0
- package/dist/components/MessagesAppView.interact.js.map +1 -0
- package/dist/components/MessagesAppView.js +642 -0
- package/dist/components/MessagesAppView.js.map +1 -0
- package/dist/components/MessagesSpatialView.d.ts +47 -0
- package/dist/components/MessagesSpatialView.d.ts.map +1 -0
- package/dist/components/MessagesSpatialView.js +152 -0
- package/dist/components/MessagesSpatialView.js.map +1 -0
- package/dist/components/MessagesView.d.ts +13 -0
- package/dist/components/MessagesView.d.ts.map +1 -0
- package/dist/components/MessagesView.js +144 -0
- package/dist/components/MessagesView.js.map +1 -0
- package/dist/components/messages-app.d.ts +5 -0
- package/dist/components/messages-app.d.ts.map +1 -0
- package/dist/components/messages-app.js +20 -0
- package/dist/components/messages-app.js.map +1 -0
- package/dist/components/messages-view-bundle.d.ts +3 -0
- package/dist/components/messages-view-bundle.d.ts.map +1 -0
- package/dist/components/messages-view-bundle.js +7 -0
- package/dist/components/messages-view-bundle.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +29 -0
- package/dist/plugin.js.map +1 -0
- package/dist/register-terminal-view.d.ts +15 -0
- package/dist/register-terminal-view.d.ts.map +1 -0
- package/dist/register-terminal-view.js +28 -0
- package/dist/register-terminal-view.js.map +1 -0
- package/dist/register.d.ts +2 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +10 -0
- package/dist/register.js.map +1 -0
- package/dist/ui.d.ts +4 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +15 -0
- package/dist/ui.js.map +1 -0
- package/dist/views/bundle.js +338 -0
- package/dist/views/bundle.js.map +1 -0
- package/dist/views/dist-Cd2YtKy4.js +270 -0
- package/dist/views/dist-Cd2YtKy4.js.map +1 -0
- package/dist/views/web-BNoqOavR.js +90 -0
- package/dist/views/web-BNoqOavR.js.map +1 -0
- package/dist/views/web-DeLuzxfk.js +32 -0
- package/dist/views/web-DeLuzxfk.js.map +1 -0
- package/package.json +8 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessagesAppView.d.ts","sourceRoot":"","sources":["../../src/components/MessagesAppView.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAoMrF,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,iBAAiB,2CA8hBnE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SmsMessageSummary } from "@elizaos/capacitor-messages";
|
|
2
|
+
import { type AndroidRoleStatus, type SystemStatus } from "@elizaos/capacitor-system";
|
|
3
|
+
export type ThreadSummary = {
|
|
4
|
+
id: string;
|
|
5
|
+
address: string;
|
|
6
|
+
messages: SmsMessageSummary[];
|
|
7
|
+
lastMessage: SmsMessageSummary;
|
|
8
|
+
unreadCount: number;
|
|
9
|
+
};
|
|
10
|
+
export declare function buildThreads(messages: SmsMessageSummary[]): ThreadSummary[];
|
|
11
|
+
export declare function smsRole(status: SystemStatus | null): AndroidRoleStatus | null;
|
|
12
|
+
export declare function normalizeMessagesLimit(value: unknown, fallback?: number): number;
|
|
13
|
+
export declare function loadMessagesState(limit?: number): Promise<{
|
|
14
|
+
messages: SmsMessageSummary[];
|
|
15
|
+
threads: ThreadSummary[];
|
|
16
|
+
systemStatus: SystemStatus | null;
|
|
17
|
+
ownsSmsRole: boolean;
|
|
18
|
+
smsRoleHolder: string | null;
|
|
19
|
+
}>;
|
|
20
|
+
//# sourceMappingURL=MessagesAppView.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessagesAppView.helpers.d.ts","sourceRoot":"","sources":["../../src/components/MessagesAppView.helpers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,aAAa,EAAE,CAwB3E;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,4BAIlD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAM,GAAG,MAAM,CAG7E;AAED,wBAAsB,iBAAiB,CAAC,KAAK,SAAM;;;;;;GAclD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Messages } from "@elizaos/capacitor-messages";
|
|
2
|
+
import {
|
|
3
|
+
System
|
|
4
|
+
} from "@elizaos/capacitor-system";
|
|
5
|
+
const INBOUND_SMS_TYPE = 1;
|
|
6
|
+
function buildThreads(messages) {
|
|
7
|
+
const byThread = /* @__PURE__ */ new Map();
|
|
8
|
+
for (const message of messages) {
|
|
9
|
+
const key = message.threadId || message.address || message.id;
|
|
10
|
+
const list = byThread.get(key) ?? [];
|
|
11
|
+
list.push(message);
|
|
12
|
+
byThread.set(key, list);
|
|
13
|
+
}
|
|
14
|
+
return Array.from(byThread.entries()).map(([id, threadMessages]) => {
|
|
15
|
+
const sorted = [...threadMessages].sort((a, b) => a.date - b.date);
|
|
16
|
+
const lastMessage = sorted[sorted.length - 1] ?? threadMessages[0];
|
|
17
|
+
return {
|
|
18
|
+
id,
|
|
19
|
+
address: lastMessage?.address,
|
|
20
|
+
messages: sorted,
|
|
21
|
+
lastMessage,
|
|
22
|
+
unreadCount: sorted.filter(
|
|
23
|
+
(m) => !m.read && m.type === INBOUND_SMS_TYPE
|
|
24
|
+
).length
|
|
25
|
+
};
|
|
26
|
+
}).filter((thread) => Boolean(thread.lastMessage)).sort((a, b) => b.lastMessage.date - a.lastMessage.date);
|
|
27
|
+
}
|
|
28
|
+
function smsRole(status) {
|
|
29
|
+
return status?.roles.find((role) => role.role === "sms") ?? null;
|
|
30
|
+
}
|
|
31
|
+
function normalizeMessagesLimit(value, fallback = 200) {
|
|
32
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return fallback;
|
|
33
|
+
return Math.min(500, Math.max(1, Math.trunc(value)));
|
|
34
|
+
}
|
|
35
|
+
async function loadMessagesState(limit = 200) {
|
|
36
|
+
const [messageResult, statusResult] = await Promise.all([
|
|
37
|
+
Messages.listMessages({ limit: normalizeMessagesLimit(limit) }),
|
|
38
|
+
System.getStatus().catch(() => null)
|
|
39
|
+
]);
|
|
40
|
+
const threads = buildThreads(messageResult.messages);
|
|
41
|
+
const currentSmsRole = smsRole(statusResult);
|
|
42
|
+
return {
|
|
43
|
+
messages: messageResult.messages,
|
|
44
|
+
threads,
|
|
45
|
+
systemStatus: statusResult,
|
|
46
|
+
ownsSmsRole: currentSmsRole?.held === true,
|
|
47
|
+
smsRoleHolder: currentSmsRole?.holders[0] ?? null
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
buildThreads,
|
|
52
|
+
loadMessagesState,
|
|
53
|
+
normalizeMessagesLimit,
|
|
54
|
+
smsRole
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=MessagesAppView.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/MessagesAppView.helpers.ts"],"sourcesContent":["// Pure SMS data helpers shared between MessagesAppView.tsx (the React views) and\n// MessagesAppView.interact.ts (the terminal capability handler). Split out so the\n// .tsx file exports only React components and stays Fast-Refresh-compatible\n// (Vite full-reloads a component file that also exports plain functions/types).\n\nimport type { SmsMessageSummary } from \"@elizaos/capacitor-messages\";\nimport { Messages } from \"@elizaos/capacitor-messages\";\nimport {\n type AndroidRoleStatus,\n System,\n type SystemStatus,\n} from \"@elizaos/capacitor-system\";\n\nexport type ThreadSummary = {\n id: string;\n address: string;\n messages: SmsMessageSummary[];\n lastMessage: SmsMessageSummary;\n unreadCount: number;\n};\n\nconst INBOUND_SMS_TYPE = 1;\n\nexport function buildThreads(messages: SmsMessageSummary[]): ThreadSummary[] {\n const byThread = new Map<string, SmsMessageSummary[]>();\n for (const message of messages) {\n const key = message.threadId || message.address || message.id;\n const list = byThread.get(key) ?? [];\n list.push(message);\n byThread.set(key, list);\n }\n return Array.from(byThread.entries())\n .map(([id, threadMessages]) => {\n const sorted = [...threadMessages].sort((a, b) => a.date - b.date);\n const lastMessage = sorted[sorted.length - 1] ?? threadMessages[0];\n return {\n id,\n address: lastMessage?.address,\n messages: sorted,\n lastMessage,\n unreadCount: sorted.filter(\n (m) => !m.read && m.type === INBOUND_SMS_TYPE,\n ).length,\n };\n })\n .filter((thread): thread is ThreadSummary => Boolean(thread.lastMessage))\n .sort((a, b) => b.lastMessage.date - a.lastMessage.date);\n}\n\nexport function smsRole(status: SystemStatus | null) {\n return (\n status?.roles.find((role: AndroidRoleStatus) => role.role === \"sms\") ?? null\n );\n}\n\nexport function normalizeMessagesLimit(value: unknown, fallback = 200): number {\n if (typeof value !== \"number\" || !Number.isFinite(value)) return fallback;\n return Math.min(500, Math.max(1, Math.trunc(value)));\n}\n\nexport async function loadMessagesState(limit = 200) {\n const [messageResult, statusResult] = await Promise.all([\n Messages.listMessages({ limit: normalizeMessagesLimit(limit) }),\n System.getStatus().catch(() => null),\n ]);\n const threads = buildThreads(messageResult.messages);\n const currentSmsRole = smsRole(statusResult);\n return {\n messages: messageResult.messages,\n threads,\n systemStatus: statusResult,\n ownsSmsRole: currentSmsRole?.held === true,\n smsRoleHolder: currentSmsRole?.holders[0] ?? null,\n };\n}\n"],"mappings":"AAMA,SAAS,gBAAgB;AACzB;AAAA,EAEE;AAAA,OAEK;AAUP,MAAM,mBAAmB;AAElB,SAAS,aAAa,UAAgD;AAC3E,QAAM,WAAW,oBAAI,IAAiC;AACtD,aAAW,WAAW,UAAU;AAC9B,UAAM,MAAM,QAAQ,YAAY,QAAQ,WAAW,QAAQ;AAC3D,UAAM,OAAO,SAAS,IAAI,GAAG,KAAK,CAAC;AACnC,SAAK,KAAK,OAAO;AACjB,aAAS,IAAI,KAAK,IAAI;AAAA,EACxB;AACA,SAAO,MAAM,KAAK,SAAS,QAAQ,CAAC,EACjC,IAAI,CAAC,CAAC,IAAI,cAAc,MAAM;AAC7B,UAAM,SAAS,CAAC,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI;AACjE,UAAM,cAAc,OAAO,OAAO,SAAS,CAAC,KAAK,eAAe,CAAC;AACjE,WAAO;AAAA,MACL;AAAA,MACA,SAAS,aAAa;AAAA,MACtB,UAAU;AAAA,MACV;AAAA,MACA,aAAa,OAAO;AAAA,QAClB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS;AAAA,MAC/B,EAAE;AAAA,IACJ;AAAA,EACF,CAAC,EACA,OAAO,CAAC,WAAoC,QAAQ,OAAO,WAAW,CAAC,EACvE,KAAK,CAAC,GAAG,MAAM,EAAE,YAAY,OAAO,EAAE,YAAY,IAAI;AAC3D;AAEO,SAAS,QAAQ,QAA6B;AACnD,SACE,QAAQ,MAAM,KAAK,CAAC,SAA4B,KAAK,SAAS,KAAK,KAAK;AAE5E;AAEO,SAAS,uBAAuB,OAAgB,WAAW,KAAa;AAC7E,MAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACjE,SAAO,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC,CAAC;AACrD;AAEA,eAAsB,kBAAkB,QAAQ,KAAK;AACnD,QAAM,CAAC,eAAe,YAAY,IAAI,MAAM,QAAQ,IAAI;AAAA,IACtD,SAAS,aAAa,EAAE,OAAO,uBAAuB,KAAK,EAAE,CAAC;AAAA,IAC9D,OAAO,UAAU,EAAE,MAAM,MAAM,IAAI;AAAA,EACrC,CAAC;AACD,QAAM,UAAU,aAAa,cAAc,QAAQ;AACnD,QAAM,iBAAiB,QAAQ,YAAY;AAC3C,SAAO;AAAA,IACL,UAAU,cAAc;AAAA,IACxB;AAAA,IACA,cAAc;AAAA,IACd,aAAa,gBAAgB,SAAS;AAAA,IACtC,eAAe,gBAAgB,QAAQ,CAAC,KAAK;AAAA,EAC/C;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessagesAppView.interact.d.ts","sourceRoot":"","sources":["../../src/components/MessagesAppView.interact.ts"],"names":[],"mappings":"AAYA,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,OAAO,CAAC,CA0ClB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Messages } from "@elizaos/capacitor-messages";
|
|
2
|
+
import { System } from "@elizaos/capacitor-system";
|
|
3
|
+
import {
|
|
4
|
+
loadMessagesState,
|
|
5
|
+
normalizeMessagesLimit
|
|
6
|
+
} from "./MessagesAppView.helpers.js";
|
|
7
|
+
async function interact(capability, params) {
|
|
8
|
+
if (capability === "terminal-list-threads") {
|
|
9
|
+
const state = await loadMessagesState(
|
|
10
|
+
normalizeMessagesLimit(params?.limit)
|
|
11
|
+
);
|
|
12
|
+
return {
|
|
13
|
+
viewType: "tui",
|
|
14
|
+
threads: state.threads.map((thread) => ({
|
|
15
|
+
id: thread.id,
|
|
16
|
+
address: thread.address,
|
|
17
|
+
messageCount: thread.messages.length,
|
|
18
|
+
unreadCount: thread.unreadCount,
|
|
19
|
+
lastMessage: thread.lastMessage.body,
|
|
20
|
+
lastMessageAt: thread.lastMessage.date
|
|
21
|
+
})),
|
|
22
|
+
ownsSmsRole: state.ownsSmsRole,
|
|
23
|
+
smsRoleHolder: state.smsRoleHolder
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
if (capability === "terminal-send-sms") {
|
|
27
|
+
const address = typeof params?.address === "string" ? params.address.trim() : "";
|
|
28
|
+
const body = typeof params?.body === "string" ? params.body.trim() : "";
|
|
29
|
+
if (!address) throw new Error("address is required");
|
|
30
|
+
if (!body) throw new Error("body is required");
|
|
31
|
+
await Messages.sendSms({ address, body });
|
|
32
|
+
return { sent: true, address, bodyLength: body.length, viewType: "tui" };
|
|
33
|
+
}
|
|
34
|
+
if (capability === "terminal-request-sms-role") {
|
|
35
|
+
await System.requestRole({ role: "sms" });
|
|
36
|
+
const state = await loadMessagesState(200);
|
|
37
|
+
return {
|
|
38
|
+
requested: true,
|
|
39
|
+
ownsSmsRole: state.ownsSmsRole,
|
|
40
|
+
smsRoleHolder: state.smsRoleHolder,
|
|
41
|
+
viewType: "tui"
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
throw new Error(`Unsupported capability "${capability}"`);
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
interact
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=MessagesAppView.interact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/MessagesAppView.interact.ts"],"sourcesContent":["// View-bundle `interact` capability handler, split out of MessagesAppView.tsx so\n// that file exports only React components and stays Fast-Refresh-compatible\n// (Vite would full-reload a component file that also exports a plain function).\n// The view bundle re-exports `interact` via ./messages-view-bundle.ts.\n\nimport { Messages } from \"@elizaos/capacitor-messages\";\nimport { System } from \"@elizaos/capacitor-system\";\nimport {\n loadMessagesState,\n normalizeMessagesLimit,\n} from \"./MessagesAppView.helpers.js\";\n\nexport async function interact(\n capability: string,\n params?: Record<string, unknown>,\n): Promise<unknown> {\n if (capability === \"terminal-list-threads\") {\n const state = await loadMessagesState(\n normalizeMessagesLimit(params?.limit),\n );\n return {\n viewType: \"tui\",\n threads: state.threads.map((thread) => ({\n id: thread.id,\n address: thread.address,\n messageCount: thread.messages.length,\n unreadCount: thread.unreadCount,\n lastMessage: thread.lastMessage.body,\n lastMessageAt: thread.lastMessage.date,\n })),\n ownsSmsRole: state.ownsSmsRole,\n smsRoleHolder: state.smsRoleHolder,\n };\n }\n\n if (capability === \"terminal-send-sms\") {\n const address =\n typeof params?.address === \"string\" ? params.address.trim() : \"\";\n const body = typeof params?.body === \"string\" ? params.body.trim() : \"\";\n if (!address) throw new Error(\"address is required\");\n if (!body) throw new Error(\"body is required\");\n await Messages.sendSms({ address, body });\n return { sent: true, address, bodyLength: body.length, viewType: \"tui\" };\n }\n\n if (capability === \"terminal-request-sms-role\") {\n await System.requestRole({ role: \"sms\" });\n const state = await loadMessagesState(200);\n return {\n requested: true,\n ownsSmsRole: state.ownsSmsRole,\n smsRoleHolder: state.smsRoleHolder,\n viewType: \"tui\",\n };\n }\n\n throw new Error(`Unsupported capability \"${capability}\"`);\n}\n"],"mappings":"AAKA,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP,eAAsB,SACpB,YACA,QACkB;AAClB,MAAI,eAAe,yBAAyB;AAC1C,UAAM,QAAQ,MAAM;AAAA,MAClB,uBAAuB,QAAQ,KAAK;AAAA,IACtC;AACA,WAAO;AAAA,MACL,UAAU;AAAA,MACV,SAAS,MAAM,QAAQ,IAAI,CAAC,YAAY;AAAA,QACtC,IAAI,OAAO;AAAA,QACX,SAAS,OAAO;AAAA,QAChB,cAAc,OAAO,SAAS;AAAA,QAC9B,aAAa,OAAO;AAAA,QACpB,aAAa,OAAO,YAAY;AAAA,QAChC,eAAe,OAAO,YAAY;AAAA,MACpC,EAAE;AAAA,MACF,aAAa,MAAM;AAAA,MACnB,eAAe,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,MAAI,eAAe,qBAAqB;AACtC,UAAM,UACJ,OAAO,QAAQ,YAAY,WAAW,OAAO,QAAQ,KAAK,IAAI;AAChE,UAAM,OAAO,OAAO,QAAQ,SAAS,WAAW,OAAO,KAAK,KAAK,IAAI;AACrE,QAAI,CAAC,QAAS,OAAM,IAAI,MAAM,qBAAqB;AACnD,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAC7C,UAAM,SAAS,QAAQ,EAAE,SAAS,KAAK,CAAC;AACxC,WAAO,EAAE,MAAM,MAAM,SAAS,YAAY,KAAK,QAAQ,UAAU,MAAM;AAAA,EACzE;AAEA,MAAI,eAAe,6BAA6B;AAC9C,UAAM,OAAO,YAAY,EAAE,MAAM,MAAM,CAAC;AACxC,UAAM,QAAQ,MAAM,kBAAkB,GAAG;AACzC,WAAO;AAAA,MACL,WAAW;AAAA,MACX,aAAa,MAAM;AAAA,MACnB,eAAe,MAAM;AAAA,MACrB,UAAU;AAAA,IACZ;AAAA,EACF;AAEA,QAAM,IAAI,MAAM,2BAA2B,UAAU,GAAG;AAC1D;","names":[]}
|