@hmawla/co-assistant 1.0.6 → 1.0.8
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/cli/index.js +56 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +44 -9
- package/dist/index.js.map +1 -1
- package/heartbeats/email-reply-check.heartbeat.md +13 -14
- package/package.json +1 -1
- package/plugins/gmail/index.compiled.mjs +14207 -0
- package/plugins/gmail/plugin.json +1 -1
- package/plugins/gmail/tools.ts +240 -11
- package/plugins/google-calendar/index.compiled.mjs +361 -0
|
@@ -2,30 +2,29 @@ You are checking my recent emails for any that require a reply from me.
|
|
|
2
2
|
|
|
3
3
|
## Instructions
|
|
4
4
|
|
|
5
|
-
1. Use
|
|
6
|
-
2.
|
|
7
|
-
3.
|
|
8
|
-
4.
|
|
5
|
+
1. Use `gmail__search_threads` to fetch my recent inbox threads (query: `in:inbox`, maxThreads: 18, **includeLatestBody: true**). This single call returns all threads with every message (including your sent replies) and the full body of the latest message. **Do NOT call any other Gmail tools** — this gives you everything you need.
|
|
6
|
+
2. Skip any thread whose latest message ID appears in the deduplication list below. Also skip newsletters, automated notifications, marketing, no-reply senders, and receipts.
|
|
7
|
+
3. For each remaining thread, check the `lastMessageIsSent` field. **If `lastMessageIsSent` is true, I already replied — SKIP this thread.**
|
|
8
|
+
4. Only for threads where `lastMessageIsSent` is false, determine whether it requires a reply from me. Consider:
|
|
9
9
|
- Direct questions asked to me
|
|
10
10
|
- Action items or requests directed at me
|
|
11
11
|
- Invitations or RSVPs awaiting my response
|
|
12
12
|
- Important threads where I'm expected to respond
|
|
13
|
-
|
|
14
|
-
5. For each email that needs a reply, suggest a concise, professional reply draft.
|
|
13
|
+
5. For each thread that needs a reply, suggest a concise, professional reply draft based on the latest incoming message body.
|
|
15
14
|
|
|
16
15
|
## Output Format
|
|
17
16
|
|
|
18
|
-
For each
|
|
17
|
+
For each thread that needs a reply, output exactly ONE entry (not one per message):
|
|
19
18
|
|
|
20
|
-
**📧 From:** [sender]
|
|
21
|
-
**Subject:** [subject]
|
|
22
|
-
**Why reply:** [brief reason]
|
|
19
|
+
**📧 From:** [sender of the latest message]
|
|
20
|
+
**Subject:** [thread subject]
|
|
21
|
+
**Why reply:** [brief reason based on the latest message in the thread]
|
|
23
22
|
**Suggested reply:**
|
|
24
23
|
> [your suggested reply text]
|
|
25
24
|
|
|
26
25
|
---
|
|
27
26
|
|
|
28
|
-
If no
|
|
27
|
+
If no threads require a reply, do not say anything unless invoked with /heartbeat
|
|
29
28
|
|
|
30
29
|
## Deduplication
|
|
31
30
|
|
|
@@ -33,7 +32,7 @@ If no emails require a reply, do not say anything unless invoked with /heartbeat
|
|
|
33
32
|
|
|
34
33
|
## IMPORTANT — Deduplication Marker
|
|
35
34
|
|
|
36
|
-
At the very end of your response, you MUST output exactly one line in this format with
|
|
35
|
+
At the very end of your response, you MUST output exactly one line in this format with the message ID of the **most recent message per thread** you checked (whether it needed a reply or not). Only one ID per thread. This prevents re-checking the same threads next time:
|
|
37
36
|
|
|
38
|
-
<!-- PROCESSED:
|
|
39
|
-
|
|
37
|
+
<!-- PROCESSED: latest_msg_id_thread1, latest_msg_id_thread2, latest_msg_id_thread3 -->
|
|
38
|
+
Do not output the same message ID multiple times.
|