crewly 1.20.122 → 1.20.123

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 (75) hide show
  1. package/config/skills/agent/core/whatsapp-draft/SKILL.md +80 -0
  2. package/config/skills/agent/core/whatsapp-draft/execute.sh +84 -0
  3. package/config/skills/agent/core/whatsapp-draft/execute.test.sh +70 -0
  4. package/config/skills/agent/core/whatsapp-inbox/SKILL.md +75 -0
  5. package/config/skills/agent/core/whatsapp-inbox/execute.sh +87 -0
  6. package/config/skills/agent/core/whatsapp-inbox/execute.test.sh +68 -0
  7. package/config/skills/agent/core/whatsapp-read/SKILL.md +80 -0
  8. package/config/skills/agent/core/whatsapp-read/execute.sh +116 -0
  9. package/config/skills/agent/core/whatsapp-read/execute.test.sh +84 -0
  10. package/config/skills/agent/core/whatsapp-send/SKILL.md +70 -0
  11. package/config/skills/agent/core/whatsapp-send/execute.sh +84 -0
  12. package/config/skills/agent/core/whatsapp-send/execute.test.sh +79 -0
  13. package/dist/backend/backend/src/constants.d.ts +107 -0
  14. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  15. package/dist/backend/backend/src/constants.js +105 -0
  16. package/dist/backend/backend/src/constants.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts +73 -0
  18. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts.map +1 -0
  19. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js +310 -0
  20. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js.map +1 -0
  21. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts.map +1 -1
  22. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js +53 -4
  23. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js.map +1 -1
  24. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  25. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +5 -0
  26. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  27. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
  28. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +29 -1
  29. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
  30. package/dist/backend/backend/src/services/whatsapp/index.d.ts +5 -1
  31. package/dist/backend/backend/src/services/whatsapp/index.d.ts.map +1 -1
  32. package/dist/backend/backend/src/services/whatsapp/index.js +5 -1
  33. package/dist/backend/backend/src/services/whatsapp/index.js.map +1 -1
  34. package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.d.ts +59 -0
  35. package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.d.ts.map +1 -0
  36. package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.js +108 -0
  37. package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.js.map +1 -0
  38. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts +74 -0
  39. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts.map +1 -0
  40. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js +82 -0
  41. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js.map +1 -0
  42. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.d.ts +184 -0
  43. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.d.ts.map +1 -0
  44. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.js +420 -0
  45. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.js.map +1 -0
  46. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.d.ts +243 -0
  47. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.d.ts.map +1 -0
  48. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.js +538 -0
  49. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.js.map +1 -0
  50. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts +32 -2
  51. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js +65 -9
  53. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js.map +1 -1
  54. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +11 -0
  56. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
  57. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts +59 -1
  58. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js +159 -9
  60. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js.map +1 -1
  61. package/dist/backend/backend/src/types/whatsapp.types.d.ts +108 -0
  62. package/dist/backend/backend/src/types/whatsapp.types.d.ts.map +1 -1
  63. package/dist/backend/backend/src/types/whatsapp.types.js +9 -0
  64. package/dist/backend/backend/src/types/whatsapp.types.js.map +1 -1
  65. package/dist/backend/build-info.json +2 -2
  66. package/dist/cli/backend/src/constants.d.ts +107 -0
  67. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  68. package/dist/cli/backend/src/constants.js +105 -0
  69. package/dist/cli/backend/src/constants.js.map +1 -1
  70. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  71. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +5 -0
  72. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  73. package/frontend/dist/assets/{index-07e338a9.js → index-daf43f1a.js} +268 -268
  74. package/frontend/dist/index.html +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-inbox-capture.js","sourceRoot":"","sources":["../../../../../../backend/src/services/whatsapp/whatsapp-inbox-capture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * WhatsApp Inbox Store
3
+ *
4
+ * Local SQLite store behind the WhatsApp inbox connector: the chats and
5
+ * messages captured from the owner's personal account (read-only), and the
6
+ * reply drafts agents propose. Lives at `~/.crewly/whatsapp/inbox.db`
7
+ * (resolved through `getCrewlyHomePath()`, so `CREWLY_HOME` isolates it).
8
+ *
9
+ * Nothing in here talks to WhatsApp. Sending a draft is the controller's
10
+ * job, gated on the owner's confirmation; this store only records the
11
+ * draft's lifecycle (`pending` → `sending` → `sent` / back to `pending`,
12
+ * or `discarded`) with an atomic claim so a draft can never be sent twice.
13
+ *
14
+ * @module services/whatsapp/whatsapp-inbox.store
15
+ */
16
+ import type { WhatsAppDraft, WhatsAppDraftStatus, WhatsAppInboxChat, WhatsAppInboxEntry, WhatsAppInboxMessage, WhatsAppSearchHit } from '../../types/whatsapp.types.js';
17
+ /** In-memory database name accepted by better-sqlite3 (tests). */
18
+ export declare const IN_MEMORY_DB = ":memory:";
19
+ /** Input for {@link WhatsAppInboxStore.upsertChat}. */
20
+ export interface UpsertChatInput {
21
+ /** Chat JID */
22
+ id: string;
23
+ /** Display name, if this source knows one */
24
+ name?: string | null;
25
+ /** Provenance of `name` (see `WHATSAPP_CONSTANTS.NAME_RANKS`); a lower rank never overwrites a higher one */
26
+ nameRank?: number;
27
+ /** Whether the chat is a group (defaults from the JID suffix) */
28
+ isGroup?: boolean;
29
+ /** Epoch ms of the newest message this source knows of (only ever moves forward) */
30
+ lastMessageAt?: number | null;
31
+ }
32
+ /** Options for {@link WhatsAppInboxStore.listInbox}. */
33
+ export interface ListInboxOptions {
34
+ /** Row cap */
35
+ limit: number;
36
+ /** Include group chats (default false — groups are noisy) */
37
+ includeGroups?: boolean;
38
+ }
39
+ /**
40
+ * Resolve the default inbox database path under the Crewly home.
41
+ *
42
+ * @returns Absolute path to `<crewly home>/whatsapp/inbox.db`
43
+ */
44
+ export declare function getDefaultInboxDbPath(): string;
45
+ /**
46
+ * Format a draft sequence number as its human code.
47
+ *
48
+ * @param seq - Monotonic sequence number
49
+ * @returns Code such as `W12`
50
+ */
51
+ export declare function formatDraftCode(seq: number): string;
52
+ /**
53
+ * Parse a user-typed draft code (`W12`, `w12`, `#W12`, `12`) into its sequence number.
54
+ *
55
+ * @param raw - The code as typed
56
+ * @returns The sequence number, or null when the text is not a draft code
57
+ */
58
+ export declare function parseDraftCode(raw: string): number | null;
59
+ /**
60
+ * SQLite-backed store for the WhatsApp inbox and reply drafts.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const store = new WhatsAppInboxStore(':memory:');
65
+ * store.upsertMessage({ id: 'm1', chatId: '1@s.whatsapp.net', fromMe: false, senderJid: null,
66
+ * senderName: 'Ann', text: 'hi', ts: Date.now(), kind: 'text' });
67
+ * store.listInbox({ limit: 20 }); // → [{ chat, unansweredCount: 1, ... }]
68
+ * ```
69
+ */
70
+ export declare class WhatsAppInboxStore {
71
+ private readonly db;
72
+ /**
73
+ * Open (and migrate) the inbox database.
74
+ *
75
+ * @param dbPath - File path, or `:memory:` for tests. The parent directory
76
+ * is created owner-only (0700) and the file is chmod 0600.
77
+ * @throws NativeBindingFatalError when better-sqlite3 cannot load
78
+ */
79
+ constructor(dbPath?: string);
80
+ /**
81
+ * Close the database handle.
82
+ */
83
+ close(): void;
84
+ /**
85
+ * Insert or update a chat.
86
+ *
87
+ * The name only changes when the new source ranks at least as high as the
88
+ * one that set the current name (an address-book name is never replaced by
89
+ * a pushName). `lastMessageAt` only moves forward.
90
+ *
91
+ * @param input - Chat fields known by this source
92
+ */
93
+ upsertChat(input: UpsertChatInput): void;
94
+ /**
95
+ * Insert or update one message (idempotent on the message id) and advance
96
+ * its chat's `lastMessageAt`, creating the chat row if needed.
97
+ *
98
+ * A re-delivered message keeps its original `fromMe`, chat and timestamp;
99
+ * text, kind and a newly learned sender name are refreshed (edits, late
100
+ * pushNames).
101
+ *
102
+ * @param msg - The message
103
+ */
104
+ upsertMessage(msg: WhatsAppInboxMessage): void;
105
+ /**
106
+ * Upsert many messages in one transaction (history sync).
107
+ *
108
+ * @param msgs - Messages
109
+ * @returns How many were written
110
+ */
111
+ upsertMessages(msgs: WhatsAppInboxMessage[]): number;
112
+ /**
113
+ * Upsert many chats in one transaction.
114
+ *
115
+ * @param chats - Chats
116
+ */
117
+ upsertChats(chats: UpsertChatInput[]): void;
118
+ /**
119
+ * Look up one chat.
120
+ *
121
+ * @param id - Chat JID
122
+ * @returns The chat, or null
123
+ */
124
+ getChat(id: string): WhatsAppInboxChat | null;
125
+ /**
126
+ * Chats that need a reply: the newest message is not the owner's.
127
+ *
128
+ * `unansweredCount` counts inbound messages after the owner's last message
129
+ * in that chat (all of them when the owner never wrote there).
130
+ *
131
+ * @param opts - Limit and whether to include groups
132
+ * @returns Entries, newest first
133
+ */
134
+ listInbox(opts: ListInboxOptions): WhatsAppInboxEntry[];
135
+ /**
136
+ * Recent chats, optionally filtered by name or JID substring.
137
+ *
138
+ * @param opts - Limit and optional query
139
+ * @returns Chats, most recently active first (chats with no messages last)
140
+ */
141
+ listChats(opts: {
142
+ limit: number;
143
+ q?: string;
144
+ }): WhatsAppInboxChat[];
145
+ /**
146
+ * One page of a chat's messages, in chronological order.
147
+ *
148
+ * @param chatId - Chat JID
149
+ * @param opts - Page size and an exclusive upper bound (epoch ms) for paging back
150
+ * @returns The newest `limit` messages older than `before`, oldest first
151
+ */
152
+ listMessages(chatId: string, opts: {
153
+ limit: number;
154
+ before?: number;
155
+ }): WhatsAppInboxMessage[];
156
+ /**
157
+ * Substring search over message text (case-insensitive for ASCII).
158
+ *
159
+ * @param q - Search text (must be non-empty)
160
+ * @param limit - Row cap
161
+ * @returns Hits, newest first
162
+ */
163
+ search(q: string, limit: number): WhatsAppSearchHit[];
164
+ /**
165
+ * Record a reply draft with the next monotonic code.
166
+ *
167
+ * @param input - Recipient, text, author session (null = owner) and clock
168
+ * @returns The stored draft (status `pending`)
169
+ */
170
+ createDraft(input: {
171
+ chatId: string;
172
+ text: string;
173
+ createdBy: string | null;
174
+ now: number;
175
+ }): WhatsAppDraft;
176
+ /**
177
+ * Look up a draft by its opaque id.
178
+ *
179
+ * @param id - Draft id
180
+ * @returns The draft, or null
181
+ */
182
+ getDraftById(id: string): WhatsAppDraft | null;
183
+ /**
184
+ * Look up a draft by id or by human code (`W12`, `12`, `#W12`).
185
+ *
186
+ * @param ref - Id or code
187
+ * @returns The draft, or null
188
+ */
189
+ findDraft(ref: string): WhatsAppDraft | null;
190
+ /**
191
+ * List drafts, newest first.
192
+ *
193
+ * @param opts - Optional status filter and row cap
194
+ * @returns Drafts
195
+ */
196
+ listDrafts(opts: {
197
+ status?: WhatsAppDraftStatus;
198
+ limit: number;
199
+ }): WhatsAppDraft[];
200
+ /**
201
+ * Atomically move a draft from `pending` to `sending`.
202
+ *
203
+ * Only one caller can win: this is what makes "a draft can't be sent twice"
204
+ * hold under concurrent requests.
205
+ *
206
+ * @param id - Draft id
207
+ * @returns True when this caller now holds the send claim
208
+ */
209
+ claimDraftForSend(id: string): boolean;
210
+ /**
211
+ * Mark a claimed draft as sent.
212
+ *
213
+ * @param id - Draft id
214
+ * @param now - Epoch ms of the send
215
+ */
216
+ markDraftSent(id: string, now: number): void;
217
+ /**
218
+ * Return a claimed draft to `pending` after a failed send, keeping the error.
219
+ *
220
+ * @param id - Draft id
221
+ * @param error - Why the send failed
222
+ */
223
+ releaseDraftClaim(id: string, error: string): void;
224
+ /**
225
+ * Discard a pending draft.
226
+ *
227
+ * @param id - Draft id
228
+ * @param now - Epoch ms
229
+ * @returns True when the draft was pending and is now discarded
230
+ */
231
+ discardDraft(id: string, now: number): boolean;
232
+ }
233
+ /**
234
+ * Get the process-wide inbox store, opening it on first use.
235
+ *
236
+ * @returns The store at {@link getDefaultInboxDbPath}
237
+ */
238
+ export declare function getWhatsAppInboxStore(): WhatsAppInboxStore;
239
+ /**
240
+ * Close and forget the process-wide store (tests, shutdown).
241
+ */
242
+ export declare function resetWhatsAppInboxStore(): void;
243
+ //# sourceMappingURL=whatsapp-inbox.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-inbox.store.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/whatsapp/whatsapp-inbox.store.ts"],"names":[],"mappings":"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"}