Compare commits
2 Commits
FEAT-tweak
...
FEAT-refin
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d17c409be | ||
|
|
f96a8541c6 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -10,3 +10,5 @@ accountsAndCredentials/token.json.bak
|
|||||||
|
|
||||||
# Runtime output
|
# Runtime output
|
||||||
mailSummaries/
|
mailSummaries/
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -488,3 +488,4 @@ deClawed-Assity-Kitty/
|
|||||||
├── .gitignore
|
├── .gitignore
|
||||||
└── README.md
|
└── README.md
|
||||||
```
|
```
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
"token_uri": "https://oauth2.googleapis.com/token",
|
"token_uri": "https://oauth2.googleapis.com/token",
|
||||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||||
"client_secret": "",
|
"client_secret": "",
|
||||||
"redirect_uris": ["http://localhost"]
|
"redirect_uris": [
|
||||||
|
"http://localhost"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,3 +4,5 @@ export const server = new McpServer({
|
|||||||
name: "assistant",
|
name: "assistant",
|
||||||
version: "1.0.0",
|
version: "1.0.0",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -117,3 +117,5 @@ authorize().catch((err) => {
|
|||||||
console.error("Authorization failed:", err);
|
console.error("Authorization failed:", err);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -18,3 +18,5 @@ main().catch((error) => {
|
|||||||
console.error("Fatal error in main():", error);
|
console.error("Fatal error in main():", error);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -149,3 +149,5 @@ export const getSpreadsheetId = (account: string): string => {
|
|||||||
|
|
||||||
export const getCalendarId = (account: string): string =>
|
export const getCalendarId = (account: string): string =>
|
||||||
accounts[account]?.calendarId ?? "primary";
|
accounts[account]?.calendarId ?? "primary";
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -54,3 +54,5 @@ server.registerPrompt(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Category D - Other
|
|||||||
The email does not fit into categories A, B, or C. This includes non-job-application emails, newsletters, promotional content, or ambiguous messages that do not clearly match another category.
|
The email does not fit into categories A, B, or C. This includes non-job-application emails, newsletters, promotional content, or ambiguous messages that do not clearly match another category.
|
||||||
|
|
||||||
STEP 3: STAR REVIEWED EMAILS
|
STEP 3: STAR REVIEWED EMAILS
|
||||||
- For EVERY single email processed and reviewed in this run (Categories A, B, C, and D), apply the Gmail "STARRED" system label or use your email tool to add a star to the message.
|
- For EVERY email processed and reviewed in this run that is in Category A, C, and D (NOT B), apply the Gmail "STARRED" system label or use your email tool to add a star to the message.
|
||||||
|
|
||||||
STEP 4: Confirm, via natural language output in the chat window, the total number of emails fetched for review and starred.
|
STEP 4: Confirm, via natural language output in the chat window, the total number of emails fetched for review and starred.
|
||||||
|
|
||||||
@@ -58,3 +58,5 @@ STRICT CONSTRAINTS:
|
|||||||
- Always use the same account for calendar events as was used for email fetching.
|
- Always use the same account for calendar events as was used for email fetching.
|
||||||
- Do not create duplicate calendar events for the same meeting (same company representative && same job description | same company && same date time)
|
- Do not create duplicate calendar events for the same meeting (same company representative && same job description | same company && same date time)
|
||||||
- If information is not present in the email, leave that field empty (it's OK!) - do not guess or make up information.
|
- If information is not present in the email, leave that field empty (it's OK!) - do not guess or make up information.
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -21,3 +21,5 @@ STRICT CONSTRAINTS:
|
|||||||
- Always use the same account for calendar events as was used for email fetching.
|
- Always use the same account for calendar events as was used for email fetching.
|
||||||
- Do not create duplicate calendar events for the same meeting (same company representative && same job description | same company && same date time)
|
- Do not create duplicate calendar events for the same meeting (same company representative && same job description | same company && same date time)
|
||||||
- If information is not present in the email, leave that field empty (it's OK!) - do not guess or make up information.
|
- If information is not present in the email, leave that field empty (it's OK!) - do not guess or make up information.
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -109,3 +109,5 @@ server.registerTool(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -358,3 +358,5 @@ server.registerTool(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -177,3 +177,5 @@ server.registerTool(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
2
test/fixtures/mock-emails.ts
vendored
2
test/fixtures/mock-emails.ts
vendored
@@ -165,3 +165,5 @@ export const RAW_BODIES = {
|
|||||||
"msg-cat-c-001": catCBody,
|
"msg-cat-c-001": catCBody,
|
||||||
"msg-cat-d-001": catDBody,
|
"msg-cat-d-001": catDBody,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -285,3 +285,5 @@ describe("Phase 1: Email Review Workflow", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -84,3 +84,5 @@ describe("decodeBody", () => {
|
|||||||
expect(decodeBody(msg)).toBe(htmlContent);
|
expect(decodeBody(msg)).toBe(htmlContent);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
@@ -10,6 +10,12 @@
|
|||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"forceConsistentCasingInFileNames": true
|
"forceConsistentCasingInFileNames": true
|
||||||
},
|
},
|
||||||
"include": ["src/**/*"],
|
"include": [
|
||||||
"exclude": ["node_modules", "test", "vitest.config.ts"]
|
"src/**/*"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"node_modules",
|
||||||
|
"test",
|
||||||
|
"vitest.config.ts"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@@ -6,3 +6,5 @@ export default defineConfig({
|
|||||||
globals: true,
|
globals: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// revised Aug 31
|
||||||
|
|||||||
Reference in New Issue
Block a user