@jbctechsolutions/mcp-office365 2.5.1
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/LICENSE +21 -0
- package/README.md +667 -0
- package/dist/applescript/account-repository.d.ts +30 -0
- package/dist/applescript/account-repository.d.ts.map +1 -0
- package/dist/applescript/account-repository.js +38 -0
- package/dist/applescript/account-repository.js.map +1 -0
- package/dist/applescript/account-scripts.d.ts +21 -0
- package/dist/applescript/account-scripts.d.ts.map +1 -0
- package/dist/applescript/account-scripts.js +180 -0
- package/dist/applescript/account-scripts.js.map +1 -0
- package/dist/applescript/calendar-manager.d.ts +44 -0
- package/dist/applescript/calendar-manager.d.ts.map +1 -0
- package/dist/applescript/calendar-manager.js +92 -0
- package/dist/applescript/calendar-manager.js.map +1 -0
- package/dist/applescript/calendar-writer.d.ts +36 -0
- package/dist/applescript/calendar-writer.d.ts.map +1 -0
- package/dist/applescript/calendar-writer.js +94 -0
- package/dist/applescript/calendar-writer.js.map +1 -0
- package/dist/applescript/content-readers.d.ts +114 -0
- package/dist/applescript/content-readers.d.ts.map +1 -0
- package/dist/applescript/content-readers.js +328 -0
- package/dist/applescript/content-readers.js.map +1 -0
- package/dist/applescript/executor.d.ts +60 -0
- package/dist/applescript/executor.d.ts.map +1 -0
- package/dist/applescript/executor.js +173 -0
- package/dist/applescript/executor.js.map +1 -0
- package/dist/applescript/index.d.ts +20 -0
- package/dist/applescript/index.d.ts.map +1 -0
- package/dist/applescript/index.js +29 -0
- package/dist/applescript/index.js.map +1 -0
- package/dist/applescript/mail-sender.d.ts +38 -0
- package/dist/applescript/mail-sender.d.ts.map +1 -0
- package/dist/applescript/mail-sender.js +67 -0
- package/dist/applescript/mail-sender.js.map +1 -0
- package/dist/applescript/parser.d.ts +235 -0
- package/dist/applescript/parser.d.ts.map +1 -0
- package/dist/applescript/parser.js +496 -0
- package/dist/applescript/parser.js.map +1 -0
- package/dist/applescript/repository.d.ts +64 -0
- package/dist/applescript/repository.d.ts.map +1 -0
- package/dist/applescript/repository.js +444 -0
- package/dist/applescript/repository.js.map +1 -0
- package/dist/applescript/scripts.d.ts +265 -0
- package/dist/applescript/scripts.d.ts.map +1 -0
- package/dist/applescript/scripts.js +1483 -0
- package/dist/applescript/scripts.js.map +1 -0
- package/dist/approval/hash.d.ts +87 -0
- package/dist/approval/hash.d.ts.map +1 -0
- package/dist/approval/hash.js +102 -0
- package/dist/approval/hash.js.map +1 -0
- package/dist/approval/index.d.ts +13 -0
- package/dist/approval/index.d.ts.map +1 -0
- package/dist/approval/index.js +7 -0
- package/dist/approval/index.js.map +1 -0
- package/dist/approval/token-manager.d.ts +51 -0
- package/dist/approval/token-manager.d.ts.map +1 -0
- package/dist/approval/token-manager.js +111 -0
- package/dist/approval/token-manager.js.map +1 -0
- package/dist/approval/types.d.ts +44 -0
- package/dist/approval/types.d.ts.map +1 -0
- package/dist/approval/types.js +6 -0
- package/dist/approval/types.js.map +1 -0
- package/dist/cli.d.ts +30 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +143 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +27 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +42 -0
- package/dist/config.js.map +1 -0
- package/dist/database/connection.d.ts +77 -0
- package/dist/database/connection.d.ts.map +1 -0
- package/dist/database/connection.js +130 -0
- package/dist/database/connection.js.map +1 -0
- package/dist/database/index.d.ts +11 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +11 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/queries.d.ts +93 -0
- package/dist/database/queries.d.ts.map +1 -0
- package/dist/database/queries.js +430 -0
- package/dist/database/queries.js.map +1 -0
- package/dist/database/repository.d.ts +198 -0
- package/dist/database/repository.d.ts.map +1 -0
- package/dist/database/repository.js +199 -0
- package/dist/database/repository.js.map +1 -0
- package/dist/graph/attachments.d.ts +72 -0
- package/dist/graph/attachments.d.ts.map +1 -0
- package/dist/graph/attachments.js +207 -0
- package/dist/graph/attachments.js.map +1 -0
- package/dist/graph/auth/config.d.ts +34 -0
- package/dist/graph/auth/config.d.ts.map +1 -0
- package/dist/graph/auth/config.js +78 -0
- package/dist/graph/auth/config.js.map +1 -0
- package/dist/graph/auth/device-code-flow.d.ts +55 -0
- package/dist/graph/auth/device-code-flow.d.ts.map +1 -0
- package/dist/graph/auth/device-code-flow.js +180 -0
- package/dist/graph/auth/device-code-flow.js.map +1 -0
- package/dist/graph/auth/index.d.ts +13 -0
- package/dist/graph/auth/index.d.ts.map +1 -0
- package/dist/graph/auth/index.js +13 -0
- package/dist/graph/auth/index.js.map +1 -0
- package/dist/graph/auth/token-cache.d.ts +41 -0
- package/dist/graph/auth/token-cache.d.ts.map +1 -0
- package/dist/graph/auth/token-cache.js +105 -0
- package/dist/graph/auth/token-cache.js.map +1 -0
- package/dist/graph/client/batch.d.ts +38 -0
- package/dist/graph/client/batch.d.ts.map +1 -0
- package/dist/graph/client/batch.js +33 -0
- package/dist/graph/client/batch.js.map +1 -0
- package/dist/graph/client/cache.d.ts +64 -0
- package/dist/graph/client/cache.d.ts.map +1 -0
- package/dist/graph/client/cache.js +108 -0
- package/dist/graph/client/cache.js.map +1 -0
- package/dist/graph/client/graph-client.d.ts +630 -0
- package/dist/graph/client/graph-client.d.ts.map +1 -0
- package/dist/graph/client/graph-client.js +1771 -0
- package/dist/graph/client/graph-client.js.map +1 -0
- package/dist/graph/client/index.d.ts +12 -0
- package/dist/graph/client/index.d.ts.map +1 -0
- package/dist/graph/client/index.js +12 -0
- package/dist/graph/client/index.js.map +1 -0
- package/dist/graph/content-readers.d.ts +106 -0
- package/dist/graph/content-readers.d.ts.map +1 -0
- package/dist/graph/content-readers.js +321 -0
- package/dist/graph/content-readers.js.map +1 -0
- package/dist/graph/index.d.ts +18 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +23 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/mailbox-adapter.d.ts +30 -0
- package/dist/graph/mailbox-adapter.d.ts.map +1 -0
- package/dist/graph/mailbox-adapter.js +59 -0
- package/dist/graph/mailbox-adapter.js.map +1 -0
- package/dist/graph/mappers/contact-mapper.d.ts +14 -0
- package/dist/graph/mappers/contact-mapper.d.ts.map +1 -0
- package/dist/graph/mappers/contact-mapper.js +20 -0
- package/dist/graph/mappers/contact-mapper.js.map +1 -0
- package/dist/graph/mappers/email-mapper.d.ts +14 -0
- package/dist/graph/mappers/email-mapper.d.ts.map +1 -0
- package/dist/graph/mappers/email-mapper.js +44 -0
- package/dist/graph/mappers/email-mapper.js.map +1 -0
- package/dist/graph/mappers/event-mapper.d.ts +14 -0
- package/dist/graph/mappers/event-mapper.d.ts.map +1 -0
- package/dist/graph/mappers/event-mapper.js +31 -0
- package/dist/graph/mappers/event-mapper.js.map +1 -0
- package/dist/graph/mappers/folder-mapper.d.ts +22 -0
- package/dist/graph/mappers/folder-mapper.d.ts.map +1 -0
- package/dist/graph/mappers/folder-mapper.js +51 -0
- package/dist/graph/mappers/folder-mapper.js.map +1 -0
- package/dist/graph/mappers/index.d.ts +16 -0
- package/dist/graph/mappers/index.d.ts.map +1 -0
- package/dist/graph/mappers/index.js +16 -0
- package/dist/graph/mappers/index.js.map +1 -0
- package/dist/graph/mappers/task-mapper.d.ts +20 -0
- package/dist/graph/mappers/task-mapper.d.ts.map +1 -0
- package/dist/graph/mappers/task-mapper.js +27 -0
- package/dist/graph/mappers/task-mapper.js.map +1 -0
- package/dist/graph/mappers/utils.d.ts +97 -0
- package/dist/graph/mappers/utils.d.ts.map +1 -0
- package/dist/graph/mappers/utils.js +186 -0
- package/dist/graph/mappers/utils.js.map +1 -0
- package/dist/graph/repository.d.ts +1104 -0
- package/dist/graph/repository.d.ts.map +1 -0
- package/dist/graph/repository.js +2999 -0
- package/dist/graph/repository.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6052 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/html-stripper.d.ts +41 -0
- package/dist/parsers/html-stripper.d.ts.map +1 -0
- package/dist/parsers/html-stripper.js +179 -0
- package/dist/parsers/html-stripper.js.map +1 -0
- package/dist/parsers/index.d.ts +12 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +12 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/olk15.d.ts +87 -0
- package/dist/parsers/olk15.d.ts.map +1 -0
- package/dist/parsers/olk15.js +368 -0
- package/dist/parsers/olk15.js.map +1 -0
- package/dist/signature.d.ts +22 -0
- package/dist/signature.d.ts.map +1 -0
- package/dist/signature.js +89 -0
- package/dist/signature.js.map +1 -0
- package/dist/tools/calendar-permissions.d.ts +79 -0
- package/dist/tools/calendar-permissions.d.ts.map +1 -0
- package/dist/tools/calendar-permissions.js +121 -0
- package/dist/tools/calendar-permissions.js.map +1 -0
- package/dist/tools/calendar.d.ts +208 -0
- package/dist/tools/calendar.d.ts.map +1 -0
- package/dist/tools/calendar.js +247 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/categories.d.ts +94 -0
- package/dist/tools/categories.d.ts.map +1 -0
- package/dist/tools/categories.js +117 -0
- package/dist/tools/categories.js.map +1 -0
- package/dist/tools/checklist-items.d.ts +89 -0
- package/dist/tools/checklist-items.d.ts.map +1 -0
- package/dist/tools/checklist-items.js +140 -0
- package/dist/tools/checklist-items.js.map +1 -0
- package/dist/tools/contacts.d.ts +94 -0
- package/dist/tools/contacts.d.ts.map +1 -0
- package/dist/tools/contacts.js +134 -0
- package/dist/tools/contacts.js.map +1 -0
- package/dist/tools/excel.d.ts +96 -0
- package/dist/tools/excel.d.ts.map +1 -0
- package/dist/tools/excel.js +165 -0
- package/dist/tools/excel.js.map +1 -0
- package/dist/tools/focused-overrides.d.ts +70 -0
- package/dist/tools/focused-overrides.d.ts.map +1 -0
- package/dist/tools/focused-overrides.js +117 -0
- package/dist/tools/focused-overrides.js.map +1 -0
- package/dist/tools/index.d.ts +22 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +34 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/linked-resources.d.ts +74 -0
- package/dist/tools/linked-resources.d.ts.map +1 -0
- package/dist/tools/linked-resources.js +122 -0
- package/dist/tools/linked-resources.js.map +1 -0
- package/dist/tools/mail-rules.d.ts +98 -0
- package/dist/tools/mail-rules.d.ts.map +1 -0
- package/dist/tools/mail-rules.js +169 -0
- package/dist/tools/mail-rules.js.map +1 -0
- package/dist/tools/mail-send.d.ts +314 -0
- package/dist/tools/mail-send.d.ts.map +1 -0
- package/dist/tools/mail-send.js +555 -0
- package/dist/tools/mail-send.js.map +1 -0
- package/dist/tools/mail.d.ts +127 -0
- package/dist/tools/mail.d.ts.map +1 -0
- package/dist/tools/mail.js +311 -0
- package/dist/tools/mail.js.map +1 -0
- package/dist/tools/mailbox-organization.d.ts +301 -0
- package/dist/tools/mailbox-organization.d.ts.map +1 -0
- package/dist/tools/mailbox-organization.js +541 -0
- package/dist/tools/mailbox-organization.js.map +1 -0
- package/dist/tools/meetings.d.ts +114 -0
- package/dist/tools/meetings.d.ts.map +1 -0
- package/dist/tools/meetings.js +110 -0
- package/dist/tools/meetings.js.map +1 -0
- package/dist/tools/notes.d.ts +74 -0
- package/dist/tools/notes.d.ts.map +1 -0
- package/dist/tools/notes.js +136 -0
- package/dist/tools/notes.js.map +1 -0
- package/dist/tools/onedrive.d.ts +194 -0
- package/dist/tools/onedrive.d.ts.map +1 -0
- package/dist/tools/onedrive.js +257 -0
- package/dist/tools/onedrive.js.map +1 -0
- package/dist/tools/people.d.ts +129 -0
- package/dist/tools/people.d.ts.map +1 -0
- package/dist/tools/people.js +195 -0
- package/dist/tools/people.js.map +1 -0
- package/dist/tools/planner-visualization.d.ts +91 -0
- package/dist/tools/planner-visualization.d.ts.map +1 -0
- package/dist/tools/planner-visualization.js +192 -0
- package/dist/tools/planner-visualization.js.map +1 -0
- package/dist/tools/planner.d.ts +288 -0
- package/dist/tools/planner.d.ts.map +1 -0
- package/dist/tools/planner.js +368 -0
- package/dist/tools/planner.js.map +1 -0
- package/dist/tools/scheduling.d.ts +49 -0
- package/dist/tools/scheduling.d.ts.map +1 -0
- package/dist/tools/scheduling.js +115 -0
- package/dist/tools/scheduling.js.map +1 -0
- package/dist/tools/sharepoint.d.ts +115 -0
- package/dist/tools/sharepoint.d.ts.map +1 -0
- package/dist/tools/sharepoint.js +99 -0
- package/dist/tools/sharepoint.js.map +1 -0
- package/dist/tools/task-attachments.d.ts +74 -0
- package/dist/tools/task-attachments.d.ts.map +1 -0
- package/dist/tools/task-attachments.js +122 -0
- package/dist/tools/task-attachments.js.map +1 -0
- package/dist/tools/tasks.d.ts +74 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +126 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/teams.d.ts +389 -0
- package/dist/tools/teams.d.ts.map +1 -0
- package/dist/tools/teams.js +546 -0
- package/dist/tools/teams.js.map +1 -0
- package/dist/types/calendar.d.ts +60 -0
- package/dist/types/calendar.d.ts.map +1 -0
- package/dist/types/calendar.js +15 -0
- package/dist/types/calendar.js.map +1 -0
- package/dist/types/contacts.d.ts +96 -0
- package/dist/types/contacts.d.ts.map +1 -0
- package/dist/types/contacts.js +41 -0
- package/dist/types/contacts.js.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mail.d.ts +108 -0
- package/dist/types/mail.d.ts.map +1 -0
- package/dist/types/mail.js +40 -0
- package/dist/types/mail.js.map +1 -0
- package/dist/types/notes.d.ts +26 -0
- package/dist/types/notes.d.ts.map +1 -0
- package/dist/types/notes.js +6 -0
- package/dist/types/notes.js.map +1 -0
- package/dist/types/tasks.d.ts +31 -0
- package/dist/types/tasks.d.ts.map +1 -0
- package/dist/types/tasks.js +6 -0
- package/dist/types/tasks.js.map +1 -0
- package/dist/utils/dates.d.ts +66 -0
- package/dist/utils/dates.d.ts.map +1 -0
- package/dist/utils/dates.js +94 -0
- package/dist/utils/dates.js.map +1 -0
- package/dist/utils/errors.d.ts +218 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +306 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/visualization/html.d.ts +26 -0
- package/dist/visualization/html.d.ts.map +1 -0
- package/dist/visualization/html.js +306 -0
- package/dist/visualization/html.js.map +1 -0
- package/dist/visualization/markdown.d.ts +25 -0
- package/dist/visualization/markdown.d.ts.map +1 -0
- package/dist/visualization/markdown.js +186 -0
- package/dist/visualization/markdown.js.map +1 -0
- package/dist/visualization/mermaid.d.ts +25 -0
- package/dist/visualization/mermaid.d.ts.map +1 -0
- package/dist/visualization/mermaid.js +158 -0
- package/dist/visualization/mermaid.js.map +1 -0
- package/dist/visualization/svg.d.ts +25 -0
- package/dist/visualization/svg.d.ts.map +1 -0
- package/dist/visualization/svg.js +282 -0
- package/dist/visualization/svg.js.map +1 -0
- package/dist/visualization/types.d.ts +43 -0
- package/dist/visualization/types.d.ts.map +1 -0
- package/dist/visualization/types.js +34 -0
- package/dist/visualization/types.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"olk15.js","sourceRoot":"","sources":["../../src/parsers/olk15.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026 JBC Tech Solutions, LLC
|
|
3
|
+
* Licensed under the MIT License. See LICENSE file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Reads the stored signature. Returns null if no signature file exists or read fails.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readSignature(): string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Writes a signature to disk.
|
|
11
|
+
* If contentType is 'text', content is HTML-escaped and wrapped in <pre> for safe storage.
|
|
12
|
+
*/
|
|
13
|
+
export declare function writeSignature(content: string, contentType?: 'html' | 'text'): void;
|
|
14
|
+
/**
|
|
15
|
+
* Appends the stored signature to an email body.
|
|
16
|
+
*
|
|
17
|
+
* For HTML bodies: appends with <br><br> separator.
|
|
18
|
+
* For text bodies: appends with \n\n--\n separator and strips HTML from signature.
|
|
19
|
+
* Returns the body unchanged if includeSignature is false or no signature exists.
|
|
20
|
+
*/
|
|
21
|
+
export declare function appendSignature(body: string, bodyType: 'html' | 'text', includeSignature: boolean): string;
|
|
22
|
+
//# sourceMappingURL=signature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8CH;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAO7C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,GAAG,MAAe,GAAG,IAAI,CAS3F;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,gBAAgB,EAAE,OAAO,GACxB,MAAM,CAWR"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026 JBC Tech Solutions, LLC
|
|
3
|
+
* Licensed under the MIT License. See LICENSE file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Email signature storage and auto-append logic.
|
|
7
|
+
*
|
|
8
|
+
* Signatures are stored as HTML at ~/.outlook-mcp/signature.html
|
|
9
|
+
* and auto-appended to email bodies when creating/sending emails.
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
13
|
+
import { join } from 'node:path';
|
|
14
|
+
const SIGNATURE_DIR = join(homedir(), '.outlook-mcp');
|
|
15
|
+
const SIGNATURE_FILE = join(SIGNATURE_DIR, 'signature.html');
|
|
16
|
+
/**
|
|
17
|
+
* Ensures the signature directory exists.
|
|
18
|
+
*/
|
|
19
|
+
function ensureDir() {
|
|
20
|
+
if (!existsSync(SIGNATURE_DIR)) {
|
|
21
|
+
mkdirSync(SIGNATURE_DIR, { recursive: true, mode: 0o700 });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Escapes HTML special characters so text is safe inside HTML.
|
|
26
|
+
*/
|
|
27
|
+
function escapeHtml(text) {
|
|
28
|
+
return text
|
|
29
|
+
.replace(/&/g, '&')
|
|
30
|
+
.replace(/</g, '<')
|
|
31
|
+
.replace(/>/g, '>')
|
|
32
|
+
.replace(/"/g, '"')
|
|
33
|
+
.replace(/'/g, ''');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Strips HTML tags from a string and converts <br> to newlines.
|
|
37
|
+
*/
|
|
38
|
+
function stripHtml(html) {
|
|
39
|
+
return html
|
|
40
|
+
.replace(/<br\s*\/?>/gi, '\n')
|
|
41
|
+
.replace(/<[^>]*>/g, '');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Reads the stored signature. Returns null if no signature file exists or read fails.
|
|
45
|
+
*/
|
|
46
|
+
export function readSignature() {
|
|
47
|
+
if (!existsSync(SIGNATURE_FILE))
|
|
48
|
+
return null;
|
|
49
|
+
try {
|
|
50
|
+
return readFileSync(SIGNATURE_FILE, 'utf-8');
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Writes a signature to disk.
|
|
58
|
+
* If contentType is 'text', content is HTML-escaped and wrapped in <pre> for safe storage.
|
|
59
|
+
*/
|
|
60
|
+
export function writeSignature(content, contentType = 'html') {
|
|
61
|
+
ensureDir();
|
|
62
|
+
const html = contentType === 'text' ? `<pre>${escapeHtml(content)}</pre>` : content;
|
|
63
|
+
try {
|
|
64
|
+
writeFileSync(SIGNATURE_FILE, html, { encoding: 'utf-8', mode: 0o600 });
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
68
|
+
throw new Error(`Failed to save signature: ${message}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Appends the stored signature to an email body.
|
|
73
|
+
*
|
|
74
|
+
* For HTML bodies: appends with <br><br> separator.
|
|
75
|
+
* For text bodies: appends with \n\n--\n separator and strips HTML from signature.
|
|
76
|
+
* Returns the body unchanged if includeSignature is false or no signature exists.
|
|
77
|
+
*/
|
|
78
|
+
export function appendSignature(body, bodyType, includeSignature) {
|
|
79
|
+
if (!includeSignature)
|
|
80
|
+
return body;
|
|
81
|
+
const signature = readSignature();
|
|
82
|
+
if (signature == null)
|
|
83
|
+
return body;
|
|
84
|
+
if (bodyType === 'html') {
|
|
85
|
+
return `${body}<br><br>${signature}`;
|
|
86
|
+
}
|
|
87
|
+
return `${body}\n\n--\n${stripHtml(signature)}`;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AACtD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAE7D;;GAEG;AACH,SAAS,SAAS;IAChB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI;SACR,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,cAA+B,MAAM;IACnF,SAAS,EAAE,CAAC;IACZ,MAAM,IAAI,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACpF,IAAI,CAAC;QACH,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,QAAyB,EACzB,gBAAyB;IAEzB,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEnC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,GAAG,IAAI,WAAW,SAAS,EAAE,CAAC;IACvC,CAAC;IAED,OAAO,GAAG,IAAI,WAAW,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026 JBC Tech Solutions, LLC
|
|
3
|
+
* Licensed under the MIT License. See LICENSE file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Calendar permission management MCP tools.
|
|
7
|
+
*
|
|
8
|
+
* Provides tools for managing calendar sharing permissions with a two-phase
|
|
9
|
+
* approval pattern for destructive delete operations.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
import type { ApprovalTokenManager } from '../approval/index.js';
|
|
13
|
+
export declare const ListCalendarPermissionsInput: z.ZodObject<{
|
|
14
|
+
calendar_id: z.ZodNumber;
|
|
15
|
+
}, z.core.$strict>;
|
|
16
|
+
export declare const CreateCalendarPermissionInput: z.ZodObject<{
|
|
17
|
+
calendar_id: z.ZodNumber;
|
|
18
|
+
email_address: z.ZodString;
|
|
19
|
+
role: z.ZodEnum<{
|
|
20
|
+
read: "read";
|
|
21
|
+
write: "write";
|
|
22
|
+
delegateWithoutPrivateEventAccess: "delegateWithoutPrivateEventAccess";
|
|
23
|
+
delegateWithPrivateEventAccess: "delegateWithPrivateEventAccess";
|
|
24
|
+
}>;
|
|
25
|
+
}, z.core.$strict>;
|
|
26
|
+
export declare const PrepareDeleteCalendarPermissionInput: z.ZodObject<{
|
|
27
|
+
permission_id: z.ZodNumber;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
export declare const ConfirmDeleteCalendarPermissionInput: z.ZodObject<{
|
|
30
|
+
approval_token: z.ZodString;
|
|
31
|
+
}, z.core.$strict>;
|
|
32
|
+
export type ListCalendarPermissionsParams = z.infer<typeof ListCalendarPermissionsInput>;
|
|
33
|
+
export type CreateCalendarPermissionParams = z.infer<typeof CreateCalendarPermissionInput>;
|
|
34
|
+
export type PrepareDeleteCalendarPermissionParams = z.infer<typeof PrepareDeleteCalendarPermissionInput>;
|
|
35
|
+
export type ConfirmDeleteCalendarPermissionParams = z.infer<typeof ConfirmDeleteCalendarPermissionInput>;
|
|
36
|
+
export interface ICalendarPermissionsRepository {
|
|
37
|
+
listCalendarPermissionsAsync(calendarId: number): Promise<Array<{
|
|
38
|
+
id: number;
|
|
39
|
+
emailAddress: string;
|
|
40
|
+
role: string;
|
|
41
|
+
isRemovable: boolean;
|
|
42
|
+
isInsideOrganization: boolean;
|
|
43
|
+
}>>;
|
|
44
|
+
createCalendarPermissionAsync(calendarId: number, email: string, role: string): Promise<number>;
|
|
45
|
+
deleteCalendarPermissionAsync(permissionId: number): Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Calendar permission tools with two-phase approval for delete operations.
|
|
49
|
+
*/
|
|
50
|
+
export declare class CalendarPermissionsTools {
|
|
51
|
+
private readonly repo;
|
|
52
|
+
private readonly tokenManager;
|
|
53
|
+
constructor(repo: ICalendarPermissionsRepository, tokenManager: ApprovalTokenManager);
|
|
54
|
+
listCalendarPermissions(params: ListCalendarPermissionsParams): Promise<{
|
|
55
|
+
content: Array<{
|
|
56
|
+
type: 'text';
|
|
57
|
+
text: string;
|
|
58
|
+
}>;
|
|
59
|
+
}>;
|
|
60
|
+
createCalendarPermission(params: CreateCalendarPermissionParams): Promise<{
|
|
61
|
+
content: Array<{
|
|
62
|
+
type: 'text';
|
|
63
|
+
text: string;
|
|
64
|
+
}>;
|
|
65
|
+
}>;
|
|
66
|
+
prepareDeleteCalendarPermission(params: PrepareDeleteCalendarPermissionParams): {
|
|
67
|
+
content: Array<{
|
|
68
|
+
type: 'text';
|
|
69
|
+
text: string;
|
|
70
|
+
}>;
|
|
71
|
+
};
|
|
72
|
+
confirmDeleteCalendarPermission(params: ConfirmDeleteCalendarPermissionParams): Promise<{
|
|
73
|
+
content: Array<{
|
|
74
|
+
type: 'text';
|
|
75
|
+
text: string;
|
|
76
|
+
}>;
|
|
77
|
+
}>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=calendar-permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-permissions.d.ts","sourceRoot":"","sources":["../../src/tools/calendar-permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAMjE,eAAO,MAAM,4BAA4B;;kBAEvC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;kBAIxC,CAAC;AAEH,eAAO,MAAM,oCAAoC;;kBAE/C,CAAC;AAEH,eAAO,MAAM,oCAAoC;;kBAE/C,CAAC;AAMH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACzF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAC3F,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AACzG,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAMzG,MAAM,WAAW,8BAA8B;IAC7C,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,oBAAoB,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IAC1K,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChG,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAMD;;GAEG;AACH,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,IAAI,EAAE,8BAA8B,EACpC,YAAY,EAAE,oBAAoB;IAG/C,uBAAuB,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC;QAC5E,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAUI,wBAAwB,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC;QAC9E,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAUF,+BAA+B,CAAC,MAAM,EAAE,qCAAqC,GAAG;QAC9E,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD;IAqBK,+BAA+B,CAAC,MAAM,EAAE,qCAAqC,GAAG,OAAO,CAAC;QAC5F,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;CA2CH"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026 JBC Tech Solutions, LLC
|
|
3
|
+
* Licensed under the MIT License. See LICENSE file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Calendar permission management MCP tools.
|
|
7
|
+
*
|
|
8
|
+
* Provides tools for managing calendar sharing permissions with a two-phase
|
|
9
|
+
* approval pattern for destructive delete operations.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Input Schemas
|
|
14
|
+
// =============================================================================
|
|
15
|
+
export const ListCalendarPermissionsInput = z.strictObject({
|
|
16
|
+
calendar_id: z.number().int().positive().describe('Calendar ID'),
|
|
17
|
+
});
|
|
18
|
+
export const CreateCalendarPermissionInput = z.strictObject({
|
|
19
|
+
calendar_id: z.number().int().positive().describe('Calendar ID'),
|
|
20
|
+
email_address: z.string().email().describe('Email of person to share with'),
|
|
21
|
+
role: z.enum(['read', 'write', 'delegateWithoutPrivateEventAccess', 'delegateWithPrivateEventAccess']).describe('Permission level'),
|
|
22
|
+
});
|
|
23
|
+
export const PrepareDeleteCalendarPermissionInput = z.strictObject({
|
|
24
|
+
permission_id: z.number().int().positive().describe('Calendar permission ID'),
|
|
25
|
+
});
|
|
26
|
+
export const ConfirmDeleteCalendarPermissionInput = z.strictObject({
|
|
27
|
+
approval_token: z.string().describe('Approval token'),
|
|
28
|
+
});
|
|
29
|
+
// =============================================================================
|
|
30
|
+
// Calendar Permissions Tools
|
|
31
|
+
// =============================================================================
|
|
32
|
+
/**
|
|
33
|
+
* Calendar permission tools with two-phase approval for delete operations.
|
|
34
|
+
*/
|
|
35
|
+
export class CalendarPermissionsTools {
|
|
36
|
+
repo;
|
|
37
|
+
tokenManager;
|
|
38
|
+
constructor(repo, tokenManager) {
|
|
39
|
+
this.repo = repo;
|
|
40
|
+
this.tokenManager = tokenManager;
|
|
41
|
+
}
|
|
42
|
+
async listCalendarPermissions(params) {
|
|
43
|
+
const permissions = await this.repo.listCalendarPermissionsAsync(params.calendar_id);
|
|
44
|
+
return {
|
|
45
|
+
content: [{
|
|
46
|
+
type: 'text',
|
|
47
|
+
text: JSON.stringify({ permissions }, null, 2),
|
|
48
|
+
}],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
async createCalendarPermission(params) {
|
|
52
|
+
const permissionId = await this.repo.createCalendarPermissionAsync(params.calendar_id, params.email_address, params.role);
|
|
53
|
+
return {
|
|
54
|
+
content: [{
|
|
55
|
+
type: 'text',
|
|
56
|
+
text: JSON.stringify({ success: true, permission_id: permissionId, message: 'Calendar permission created' }, null, 2),
|
|
57
|
+
}],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
prepareDeleteCalendarPermission(params) {
|
|
61
|
+
const token = this.tokenManager.generateToken({
|
|
62
|
+
operation: 'delete_calendar_permission',
|
|
63
|
+
targetType: 'calendar_permission',
|
|
64
|
+
targetId: params.permission_id,
|
|
65
|
+
targetHash: String(params.permission_id),
|
|
66
|
+
});
|
|
67
|
+
return {
|
|
68
|
+
content: [{
|
|
69
|
+
type: 'text',
|
|
70
|
+
text: JSON.stringify({
|
|
71
|
+
approval_token: token.tokenId,
|
|
72
|
+
expires_at: new Date(token.expiresAt).toISOString(),
|
|
73
|
+
permission_id: params.permission_id,
|
|
74
|
+
action: `To confirm deleting calendar permission ${params.permission_id}, call confirm_delete_calendar_permission with the approval_token.`,
|
|
75
|
+
}, null, 2),
|
|
76
|
+
}],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
async confirmDeleteCalendarPermission(params) {
|
|
80
|
+
// Look up the token to get the targetId, then consume it
|
|
81
|
+
const token = this.tokenManager.lookupToken(params.approval_token);
|
|
82
|
+
if (token == null) {
|
|
83
|
+
return {
|
|
84
|
+
content: [{
|
|
85
|
+
type: 'text',
|
|
86
|
+
text: JSON.stringify({
|
|
87
|
+
success: false,
|
|
88
|
+
error: 'Token not found or already used',
|
|
89
|
+
}, null, 2),
|
|
90
|
+
}],
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const result = this.tokenManager.consumeToken(params.approval_token, 'delete_calendar_permission', token.targetId);
|
|
94
|
+
if (!result.valid) {
|
|
95
|
+
const errorMessages = {
|
|
96
|
+
NOT_FOUND: 'Token not found or already used',
|
|
97
|
+
EXPIRED: 'Token has expired. Please call prepare_delete_calendar_permission again.',
|
|
98
|
+
OPERATION_MISMATCH: 'Token was not generated for delete_calendar_permission',
|
|
99
|
+
TARGET_MISMATCH: 'Token was generated for a different calendar permission',
|
|
100
|
+
ALREADY_CONSUMED: 'Token has already been used',
|
|
101
|
+
};
|
|
102
|
+
return {
|
|
103
|
+
content: [{
|
|
104
|
+
type: 'text',
|
|
105
|
+
text: JSON.stringify({
|
|
106
|
+
success: false,
|
|
107
|
+
error: errorMessages[result.error ?? ''] ?? 'Invalid token',
|
|
108
|
+
}, null, 2),
|
|
109
|
+
}],
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
await this.repo.deleteCalendarPermissionAsync(result.token.targetId);
|
|
113
|
+
return {
|
|
114
|
+
content: [{
|
|
115
|
+
type: 'text',
|
|
116
|
+
text: JSON.stringify({ success: true, message: 'Calendar permission deleted' }, null, 2),
|
|
117
|
+
}],
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=calendar-permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-permissions.js","sourceRoot":"","sources":["../../src/tools/calendar-permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026 JBC Tech Solutions, LLC
|
|
3
|
+
* Licensed under the MIT License. See LICENSE file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Calendar-related MCP tools.
|
|
7
|
+
*
|
|
8
|
+
* Provides tools for listing calendars, events, and searching.
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import type { IRepository } from '../database/repository.js';
|
|
12
|
+
import type { CalendarFolder, EventSummary, Event, Attendee } from '../types/index.js';
|
|
13
|
+
export declare const ListCalendarsInput: z.ZodObject<{}, z.core.$strict>;
|
|
14
|
+
export declare const ListEventsInput: z.ZodObject<{
|
|
15
|
+
calendar_id: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
start_date: z.ZodOptional<z.ZodString>;
|
|
17
|
+
end_date: z.ZodOptional<z.ZodString>;
|
|
18
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
19
|
+
}, z.core.$strict>;
|
|
20
|
+
export declare const GetEventInput: z.ZodObject<{
|
|
21
|
+
event_id: z.ZodNumber;
|
|
22
|
+
}, z.core.$strict>;
|
|
23
|
+
export declare const SearchEventsInput: z.ZodObject<{
|
|
24
|
+
query: z.ZodOptional<z.ZodString>;
|
|
25
|
+
start_date: z.ZodOptional<z.ZodString>;
|
|
26
|
+
end_date: z.ZodOptional<z.ZodString>;
|
|
27
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
export declare const RespondToEventInput: z.ZodObject<{
|
|
30
|
+
event_id: z.ZodNumber;
|
|
31
|
+
response: z.ZodEnum<{
|
|
32
|
+
accept: "accept";
|
|
33
|
+
decline: "decline";
|
|
34
|
+
tentative: "tentative";
|
|
35
|
+
}>;
|
|
36
|
+
send_response: z.ZodDefault<z.ZodBoolean>;
|
|
37
|
+
comment: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, z.core.$strict>;
|
|
39
|
+
export declare const RecurrenceInput: z.ZodObject<{
|
|
40
|
+
frequency: z.ZodEnum<{
|
|
41
|
+
daily: "daily";
|
|
42
|
+
weekly: "weekly";
|
|
43
|
+
monthly: "monthly";
|
|
44
|
+
yearly: "yearly";
|
|
45
|
+
}>;
|
|
46
|
+
interval: z.ZodDefault<z.ZodNumber>;
|
|
47
|
+
days_of_week: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
48
|
+
sunday: "sunday";
|
|
49
|
+
monday: "monday";
|
|
50
|
+
tuesday: "tuesday";
|
|
51
|
+
wednesday: "wednesday";
|
|
52
|
+
thursday: "thursday";
|
|
53
|
+
friday: "friday";
|
|
54
|
+
saturday: "saturday";
|
|
55
|
+
}>>>;
|
|
56
|
+
day_of_month: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
week_of_month: z.ZodOptional<z.ZodEnum<{
|
|
58
|
+
first: "first";
|
|
59
|
+
second: "second";
|
|
60
|
+
third: "third";
|
|
61
|
+
fourth: "fourth";
|
|
62
|
+
last: "last";
|
|
63
|
+
}>>;
|
|
64
|
+
day_of_week_monthly: z.ZodOptional<z.ZodEnum<{
|
|
65
|
+
sunday: "sunday";
|
|
66
|
+
monday: "monday";
|
|
67
|
+
tuesday: "tuesday";
|
|
68
|
+
wednesday: "wednesday";
|
|
69
|
+
thursday: "thursday";
|
|
70
|
+
friday: "friday";
|
|
71
|
+
saturday: "saturday";
|
|
72
|
+
}>>;
|
|
73
|
+
end: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
74
|
+
type: z.ZodLiteral<"no_end">;
|
|
75
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
76
|
+
type: z.ZodLiteral<"end_date">;
|
|
77
|
+
date: z.ZodString;
|
|
78
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
79
|
+
type: z.ZodLiteral<"end_after_count">;
|
|
80
|
+
count: z.ZodNumber;
|
|
81
|
+
}, z.core.$strict>], "type">>;
|
|
82
|
+
}, z.core.$strict>;
|
|
83
|
+
export declare const CreateEventInput: z.ZodObject<{
|
|
84
|
+
title: z.ZodString;
|
|
85
|
+
start_date: z.ZodString;
|
|
86
|
+
end_date: z.ZodString;
|
|
87
|
+
calendar_id: z.ZodOptional<z.ZodNumber>;
|
|
88
|
+
location: z.ZodOptional<z.ZodString>;
|
|
89
|
+
description: z.ZodOptional<z.ZodString>;
|
|
90
|
+
is_all_day: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
91
|
+
recurrence: z.ZodOptional<z.ZodObject<{
|
|
92
|
+
frequency: z.ZodEnum<{
|
|
93
|
+
daily: "daily";
|
|
94
|
+
weekly: "weekly";
|
|
95
|
+
monthly: "monthly";
|
|
96
|
+
yearly: "yearly";
|
|
97
|
+
}>;
|
|
98
|
+
interval: z.ZodDefault<z.ZodNumber>;
|
|
99
|
+
days_of_week: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
100
|
+
sunday: "sunday";
|
|
101
|
+
monday: "monday";
|
|
102
|
+
tuesday: "tuesday";
|
|
103
|
+
wednesday: "wednesday";
|
|
104
|
+
thursday: "thursday";
|
|
105
|
+
friday: "friday";
|
|
106
|
+
saturday: "saturday";
|
|
107
|
+
}>>>;
|
|
108
|
+
day_of_month: z.ZodOptional<z.ZodNumber>;
|
|
109
|
+
week_of_month: z.ZodOptional<z.ZodEnum<{
|
|
110
|
+
first: "first";
|
|
111
|
+
second: "second";
|
|
112
|
+
third: "third";
|
|
113
|
+
fourth: "fourth";
|
|
114
|
+
last: "last";
|
|
115
|
+
}>>;
|
|
116
|
+
day_of_week_monthly: z.ZodOptional<z.ZodEnum<{
|
|
117
|
+
sunday: "sunday";
|
|
118
|
+
monday: "monday";
|
|
119
|
+
tuesday: "tuesday";
|
|
120
|
+
wednesday: "wednesday";
|
|
121
|
+
thursday: "thursday";
|
|
122
|
+
friday: "friday";
|
|
123
|
+
saturday: "saturday";
|
|
124
|
+
}>>;
|
|
125
|
+
end: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
126
|
+
type: z.ZodLiteral<"no_end">;
|
|
127
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
128
|
+
type: z.ZodLiteral<"end_date">;
|
|
129
|
+
date: z.ZodString;
|
|
130
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
131
|
+
type: z.ZodLiteral<"end_after_count">;
|
|
132
|
+
count: z.ZodNumber;
|
|
133
|
+
}, z.core.$strict>], "type">>;
|
|
134
|
+
}, z.core.$strict>>;
|
|
135
|
+
}, z.core.$strict>;
|
|
136
|
+
export type ListCalendarsParams = z.infer<typeof ListCalendarsInput>;
|
|
137
|
+
export type ListEventsParams = z.infer<typeof ListEventsInput>;
|
|
138
|
+
export type GetEventParams = z.infer<typeof GetEventInput>;
|
|
139
|
+
export type SearchEventsParams = z.infer<typeof SearchEventsInput>;
|
|
140
|
+
export type CreateEventParams = z.infer<typeof CreateEventInput>;
|
|
141
|
+
export type RecurrenceParams = z.infer<typeof RecurrenceInput>;
|
|
142
|
+
export type RespondToEventParams = z.infer<typeof RespondToEventInput>;
|
|
143
|
+
/**
|
|
144
|
+
* Result of creating a calendar event.
|
|
145
|
+
*/
|
|
146
|
+
export interface CreateEventResult {
|
|
147
|
+
readonly id: number;
|
|
148
|
+
readonly title: string;
|
|
149
|
+
readonly start_date: string;
|
|
150
|
+
readonly end_date: string;
|
|
151
|
+
readonly calendar_id: number | null;
|
|
152
|
+
readonly location: string | null;
|
|
153
|
+
readonly description: string | null;
|
|
154
|
+
readonly is_all_day: boolean;
|
|
155
|
+
readonly is_recurring: boolean;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Interface for reading event content from data files.
|
|
159
|
+
*/
|
|
160
|
+
export interface IEventContentReader {
|
|
161
|
+
/**
|
|
162
|
+
* Reads event details from the given data file path.
|
|
163
|
+
*/
|
|
164
|
+
readEventDetails(dataFilePath: string | null): EventDetails | null;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Event details from content file.
|
|
168
|
+
*/
|
|
169
|
+
export interface EventDetails {
|
|
170
|
+
readonly title: string | null;
|
|
171
|
+
readonly location: string | null;
|
|
172
|
+
readonly description: string | null;
|
|
173
|
+
readonly organizer: string | null;
|
|
174
|
+
readonly attendees: readonly Attendee[];
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Default event content reader that returns null.
|
|
178
|
+
*/
|
|
179
|
+
export declare const nullEventContentReader: IEventContentReader;
|
|
180
|
+
/**
|
|
181
|
+
* Calendar tools implementation with dependency injection.
|
|
182
|
+
*/
|
|
183
|
+
export declare class CalendarTools {
|
|
184
|
+
private readonly repository;
|
|
185
|
+
private readonly contentReader;
|
|
186
|
+
constructor(repository: IRepository, contentReader?: IEventContentReader);
|
|
187
|
+
/**
|
|
188
|
+
* Lists all calendar folders.
|
|
189
|
+
*/
|
|
190
|
+
listCalendars(_params: ListCalendarsParams): CalendarFolder[];
|
|
191
|
+
/**
|
|
192
|
+
* Lists events with optional filtering.
|
|
193
|
+
*/
|
|
194
|
+
listEvents(params: ListEventsParams): EventSummary[];
|
|
195
|
+
/**
|
|
196
|
+
* Gets a single event by ID.
|
|
197
|
+
*/
|
|
198
|
+
getEvent(params: GetEventParams): Event | null;
|
|
199
|
+
/**
|
|
200
|
+
* Searches events by title and/or date range.
|
|
201
|
+
*/
|
|
202
|
+
searchEvents(params: SearchEventsParams): EventSummary[];
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Creates calendar tools with the given repository.
|
|
206
|
+
*/
|
|
207
|
+
export declare function createCalendarTools(repository: IRepository, contentReader?: IEventContentReader): CalendarTools;
|
|
208
|
+
//# sourceMappingURL=calendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"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"}
|