@elizaos/plugin-messages 2.0.3-beta.5 → 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.
Files changed (57) hide show
  1. package/dist/components/MessagesAppView.d.ts +3 -0
  2. package/dist/components/MessagesAppView.d.ts.map +1 -0
  3. package/dist/components/MessagesAppView.helpers.d.ts +20 -0
  4. package/dist/components/MessagesAppView.helpers.d.ts.map +1 -0
  5. package/dist/components/MessagesAppView.helpers.js +56 -0
  6. package/dist/components/MessagesAppView.helpers.js.map +1 -0
  7. package/dist/components/MessagesAppView.interact.d.ts +2 -0
  8. package/dist/components/MessagesAppView.interact.d.ts.map +1 -0
  9. package/dist/components/MessagesAppView.interact.js +49 -0
  10. package/dist/components/MessagesAppView.interact.js.map +1 -0
  11. package/dist/components/MessagesAppView.js +642 -0
  12. package/dist/components/MessagesAppView.js.map +1 -0
  13. package/dist/components/MessagesSpatialView.d.ts +47 -0
  14. package/dist/components/MessagesSpatialView.d.ts.map +1 -0
  15. package/dist/components/MessagesSpatialView.js +152 -0
  16. package/dist/components/MessagesSpatialView.js.map +1 -0
  17. package/dist/components/MessagesView.d.ts +13 -0
  18. package/dist/components/MessagesView.d.ts.map +1 -0
  19. package/dist/components/MessagesView.js +144 -0
  20. package/dist/components/MessagesView.js.map +1 -0
  21. package/dist/components/messages-app.d.ts +5 -0
  22. package/dist/components/messages-app.d.ts.map +1 -0
  23. package/dist/components/messages-app.js +20 -0
  24. package/dist/components/messages-app.js.map +1 -0
  25. package/dist/components/messages-view-bundle.d.ts +3 -0
  26. package/dist/components/messages-view-bundle.d.ts.map +1 -0
  27. package/dist/components/messages-view-bundle.js +7 -0
  28. package/dist/components/messages-view-bundle.js.map +1 -0
  29. package/dist/index.d.ts +7 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +20 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/plugin.d.ts +4 -0
  34. package/dist/plugin.d.ts.map +1 -0
  35. package/dist/plugin.js +29 -0
  36. package/dist/plugin.js.map +1 -0
  37. package/dist/register-terminal-view.d.ts +15 -0
  38. package/dist/register-terminal-view.d.ts.map +1 -0
  39. package/dist/register-terminal-view.js +28 -0
  40. package/dist/register-terminal-view.js.map +1 -0
  41. package/dist/register.d.ts +2 -0
  42. package/dist/register.d.ts.map +1 -0
  43. package/dist/register.js +10 -0
  44. package/dist/register.js.map +1 -0
  45. package/dist/ui.d.ts +4 -0
  46. package/dist/ui.d.ts.map +1 -0
  47. package/dist/ui.js +15 -0
  48. package/dist/ui.js.map +1 -0
  49. package/dist/views/bundle.js +338 -0
  50. package/dist/views/bundle.js.map +1 -0
  51. package/dist/views/dist-Cd2YtKy4.js +270 -0
  52. package/dist/views/dist-Cd2YtKy4.js.map +1 -0
  53. package/dist/views/web-BNoqOavR.js +90 -0
  54. package/dist/views/web-BNoqOavR.js.map +1 -0
  55. package/dist/views/web-DeLuzxfk.js +32 -0
  56. package/dist/views/web-DeLuzxfk.js.map +1 -0
  57. package/package.json +8 -8
@@ -0,0 +1,3 @@
1
+ import type { OverlayAppContext } from "@elizaos/ui/components/apps/overlay-app-api";
2
+ export declare function MessagesAppView({ exitToApps, t }: OverlayAppContext): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=MessagesAppView.d.ts.map
@@ -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,2 @@
1
+ export declare function interact(capability: string, params?: Record<string, unknown>): Promise<unknown>;
2
+ //# sourceMappingURL=MessagesAppView.interact.d.ts.map
@@ -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":[]}