@jbctechsolutions/mcp-office365 2.5.1 → 4.0.0
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/README.md +66 -57
- package/dist/approval/hash.d.ts +8 -8
- package/dist/approval/token-manager.d.ts +37 -19
- package/dist/approval/token-manager.d.ts.map +1 -1
- package/dist/approval/token-manager.js +133 -37
- package/dist/approval/token-manager.js.map +1 -1
- package/dist/approval/types.d.ts +7 -3
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/cli.d.ts +21 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +100 -2
- package/dist/cli.js.map +1 -1
- package/dist/database/repository.d.ts +48 -48
- package/dist/database/repository.d.ts.map +1 -1
- package/dist/database/repository.js.map +1 -1
- package/dist/delta/mirror.d.ts +67 -0
- package/dist/delta/mirror.d.ts.map +1 -0
- package/dist/delta/mirror.js +183 -0
- package/dist/delta/mirror.js.map +1 -0
- package/dist/graph/auth/account-id.d.ts +19 -0
- package/dist/graph/auth/account-id.d.ts.map +1 -0
- package/dist/graph/auth/account-id.js +55 -0
- package/dist/graph/auth/account-id.js.map +1 -0
- package/dist/graph/auth/config.d.ts +1 -1
- package/dist/graph/auth/config.d.ts.map +1 -1
- package/dist/graph/auth/config.js +13 -1
- package/dist/graph/auth/config.js.map +1 -1
- package/dist/graph/auth/device-code-flow.d.ts +3 -1
- package/dist/graph/auth/device-code-flow.d.ts.map +1 -1
- package/dist/graph/auth/device-code-flow.js +42 -14
- package/dist/graph/auth/device-code-flow.js.map +1 -1
- package/dist/graph/auth/index.d.ts +1 -0
- package/dist/graph/auth/index.d.ts.map +1 -1
- package/dist/graph/auth/index.js +1 -0
- package/dist/graph/auth/index.js.map +1 -1
- package/dist/graph/auth/token-cache.js +2 -2
- package/dist/graph/auth/token-cache.js.map +1 -1
- package/dist/graph/client/graph-client.d.ts +141 -8
- package/dist/graph/client/graph-client.d.ts.map +1 -1
- package/dist/graph/client/graph-client.js +536 -48
- package/dist/graph/client/graph-client.js.map +1 -1
- package/dist/graph/client/immutable-id-middleware.d.ts +50 -0
- package/dist/graph/client/immutable-id-middleware.d.ts.map +1 -0
- package/dist/graph/client/immutable-id-middleware.js +137 -0
- package/dist/graph/client/immutable-id-middleware.js.map +1 -0
- package/dist/graph/content-readers.d.ts +0 -12
- package/dist/graph/content-readers.d.ts.map +1 -1
- package/dist/graph/content-readers.js +0 -21
- package/dist/graph/content-readers.js.map +1 -1
- package/dist/graph/index.d.ts +5 -6
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js +5 -6
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/mailbox-adapter.d.ts +15 -15
- package/dist/graph/mappers/contact-mapper.d.ts +4 -1
- package/dist/graph/mappers/contact-mapper.d.ts.map +1 -1
- package/dist/graph/mappers/contact-mapper.js +7 -3
- package/dist/graph/mappers/contact-mapper.js.map +1 -1
- package/dist/graph/mappers/email-mapper.d.ts.map +1 -1
- package/dist/graph/mappers/email-mapper.js +7 -4
- package/dist/graph/mappers/email-mapper.js.map +1 -1
- package/dist/graph/mappers/event-mapper.d.ts.map +1 -1
- package/dist/graph/mappers/event-mapper.js +6 -3
- package/dist/graph/mappers/event-mapper.js.map +1 -1
- package/dist/graph/mappers/folder-mapper.d.ts +0 -4
- package/dist/graph/mappers/folder-mapper.d.ts.map +1 -1
- package/dist/graph/mappers/folder-mapper.js +9 -19
- package/dist/graph/mappers/folder-mapper.js.map +1 -1
- package/dist/graph/mappers/index.d.ts +2 -2
- package/dist/graph/mappers/index.d.ts.map +1 -1
- package/dist/graph/mappers/index.js +2 -2
- package/dist/graph/mappers/index.js.map +1 -1
- package/dist/graph/mappers/task-mapper.d.ts +4 -2
- package/dist/graph/mappers/task-mapper.d.ts.map +1 -1
- package/dist/graph/mappers/task-mapper.js +7 -5
- package/dist/graph/mappers/task-mapper.js.map +1 -1
- package/dist/graph/mappers/utils.d.ts +0 -10
- package/dist/graph/mappers/utils.d.ts.map +1 -1
- package/dist/graph/mappers/utils.js +0 -19
- package/dist/graph/mappers/utils.js.map +1 -1
- package/dist/graph/repository.d.ts +409 -276
- package/dist/graph/repository.d.ts.map +1 -1
- package/dist/graph/repository.js +772 -1082
- package/dist/graph/repository.js.map +1 -1
- package/dist/ids/mint.d.ts +31 -0
- package/dist/ids/mint.d.ts.map +1 -0
- package/dist/ids/mint.js +36 -0
- package/dist/ids/mint.js.map +1 -0
- package/dist/ids/next-action.d.ts +29 -0
- package/dist/ids/next-action.d.ts.map +1 -0
- package/dist/ids/next-action.js +58 -0
- package/dist/ids/next-action.js.map +1 -0
- package/dist/ids/resolver.d.ts +31 -0
- package/dist/ids/resolver.d.ts.map +1 -0
- package/dist/ids/resolver.js +52 -0
- package/dist/ids/resolver.js.map +1 -0
- package/dist/ids/schema.d.ts +91 -0
- package/dist/ids/schema.d.ts.map +1 -0
- package/dist/ids/schema.js +131 -0
- package/dist/ids/schema.js.map +1 -0
- package/dist/ids/token.d.ts +62 -0
- package/dist/ids/token.d.ts.map +1 -0
- package/dist/ids/token.js +225 -0
- package/dist/ids/token.js.map +1 -0
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +255 -5925
- package/dist/index.js.map +1 -1
- package/dist/parsers/index.d.ts +0 -1
- package/dist/parsers/index.d.ts.map +1 -1
- package/dist/parsers/index.js +0 -1
- package/dist/parsers/index.js.map +1 -1
- package/dist/registry/all-tools.d.ts +14 -0
- package/dist/registry/all-tools.d.ts.map +1 -0
- package/dist/registry/all-tools.js +68 -0
- package/dist/registry/all-tools.js.map +1 -0
- package/dist/registry/context.d.ts +19 -0
- package/dist/registry/context.d.ts.map +1 -0
- package/dist/registry/context.js +20 -0
- package/dist/registry/context.js.map +1 -0
- package/dist/registry/define-tool.d.ts +15 -0
- package/dist/registry/define-tool.d.ts.map +1 -0
- package/dist/registry/define-tool.js +8 -0
- package/dist/registry/define-tool.js.map +1 -0
- package/dist/registry/elicit-links.d.ts +35 -0
- package/dist/registry/elicit-links.d.ts.map +1 -0
- package/dist/registry/elicit-links.js +102 -0
- package/dist/registry/elicit-links.js.map +1 -0
- package/dist/registry/elicitor.d.ts +24 -0
- package/dist/registry/elicitor.d.ts.map +1 -0
- package/dist/registry/elicitor.js +51 -0
- package/dist/registry/elicitor.js.map +1 -0
- package/dist/registry/index.d.ts +13 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +8 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/registry.d.ts +73 -0
- package/dist/registry/registry.d.ts.map +1 -0
- package/dist/registry/registry.js +221 -0
- package/dist/registry/registry.js.map +1 -0
- package/dist/registry/types.d.ts +146 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +6 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/search/compiler.d.ts +49 -0
- package/dist/search/compiler.d.ts.map +1 -0
- package/dist/search/compiler.js +168 -0
- package/dist/search/compiler.js.map +1 -0
- package/dist/signature.js +2 -2
- package/dist/signature.js.map +1 -1
- package/dist/state/delta-store.d.ts +85 -0
- package/dist/state/delta-store.d.ts.map +1 -0
- package/dist/state/delta-store.js +124 -0
- package/dist/state/delta-store.js.map +1 -0
- package/dist/state/migrate.d.ts +23 -0
- package/dist/state/migrate.d.ts.map +1 -0
- package/dist/state/migrate.js +81 -0
- package/dist/state/migrate.js.map +1 -0
- package/dist/state/schema.d.ts +26 -0
- package/dist/state/schema.d.ts.map +1 -0
- package/dist/state/schema.js +77 -0
- package/dist/state/schema.js.map +1 -0
- package/dist/state/store.d.ts +155 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +321 -0
- package/dist/state/store.js.map +1 -0
- package/dist/tools/calendar-graph.d.ts +41 -0
- package/dist/tools/calendar-graph.d.ts.map +1 -0
- package/dist/tools/calendar-graph.js +299 -0
- package/dist/tools/calendar-graph.js.map +1 -0
- package/dist/tools/calendar-permissions.d.ts +17 -7
- package/dist/tools/calendar-permissions.d.ts.map +1 -1
- package/dist/tools/calendar-permissions.js +60 -4
- package/dist/tools/calendar-permissions.js.map +1 -1
- package/dist/tools/calendar.d.ts +133 -82
- package/dist/tools/calendar.d.ts.map +1 -1
- package/dist/tools/calendar.js +249 -136
- package/dist/tools/calendar.js.map +1 -1
- package/dist/tools/categories.d.ts +14 -4
- package/dist/tools/categories.d.ts.map +1 -1
- package/dist/tools/categories.js +59 -2
- package/dist/tools/categories.js.map +1 -1
- package/dist/tools/checklist-items.d.ts +19 -9
- package/dist/tools/checklist-items.d.ts.map +1 -1
- package/dist/tools/checklist-items.js +71 -5
- package/dist/tools/checklist-items.js.map +1 -1
- package/dist/tools/contact-folders.d.ts +50 -0
- package/dist/tools/contact-folders.d.ts.map +1 -0
- package/dist/tools/contact-folders.js +136 -0
- package/dist/tools/contact-folders.js.map +1 -0
- package/dist/tools/contacts-graph.d.ts +45 -0
- package/dist/tools/contacts-graph.d.ts.map +1 -0
- package/dist/tools/contacts-graph.js +174 -0
- package/dist/tools/contacts-graph.js.map +1 -0
- package/dist/tools/contacts.d.ts +61 -30
- package/dist/tools/contacts.d.ts.map +1 -1
- package/dist/tools/contacts.js +150 -93
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/excel.d.ts +20 -10
- package/dist/tools/excel.d.ts.map +1 -1
- package/dist/tools/excel.js +82 -6
- package/dist/tools/excel.js.map +1 -1
- package/dist/tools/focused-overrides.d.ts +14 -4
- package/dist/tools/focused-overrides.d.ts.map +1 -1
- package/dist/tools/focused-overrides.js +59 -2
- package/dist/tools/focused-overrides.js.map +1 -1
- package/dist/tools/index.d.ts +4 -5
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -6
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/linked-resources.d.ts +17 -7
- package/dist/tools/linked-resources.d.ts.map +1 -1
- package/dist/tools/linked-resources.js +60 -4
- package/dist/tools/linked-resources.js.map +1 -1
- package/dist/tools/mail-graph.d.ts +38 -0
- package/dist/tools/mail-graph.d.ts.map +1 -0
- package/dist/tools/mail-graph.js +187 -0
- package/dist/tools/mail-graph.js.map +1 -0
- package/dist/tools/mail-rules.d.ts +20 -8
- package/dist/tools/mail-rules.d.ts.map +1 -1
- package/dist/tools/mail-rules.js +63 -7
- package/dist/tools/mail-rules.js.map +1 -1
- package/dist/tools/mail-send.d.ts +39 -27
- package/dist/tools/mail-send.d.ts.map +1 -1
- package/dist/tools/mail-send.js +249 -24
- package/dist/tools/mail-send.js.map +1 -1
- package/dist/tools/mail.d.ts +91 -68
- package/dist/tools/mail.d.ts.map +1 -1
- package/dist/tools/mail.js +232 -243
- package/dist/tools/mail.js.map +1 -1
- package/dist/tools/mailbox-organization.d.ts +51 -34
- package/dist/tools/mailbox-organization.d.ts.map +1 -1
- package/dist/tools/mailbox-organization.js +318 -35
- package/dist/tools/mailbox-organization.js.map +1 -1
- package/dist/tools/mailbox-settings.d.ts +59 -0
- package/dist/tools/mailbox-settings.d.ts.map +1 -0
- package/dist/tools/mailbox-settings.js +136 -0
- package/dist/tools/mailbox-settings.js.map +1 -0
- package/dist/tools/meetings.d.ts +24 -14
- package/dist/tools/meetings.d.ts.map +1 -1
- package/dist/tools/meetings.js +82 -6
- package/dist/tools/meetings.js.map +1 -1
- package/dist/tools/onedrive.d.ts +26 -16
- package/dist/tools/onedrive.d.ts.map +1 -1
- package/dist/tools/onedrive.js +140 -11
- package/dist/tools/onedrive.js.map +1 -1
- package/dist/tools/onenote.d.ts +63 -0
- package/dist/tools/onenote.d.ts.map +1 -0
- package/dist/tools/onenote.js +221 -0
- package/dist/tools/onenote.js.map +1 -0
- package/dist/tools/people.d.ts +10 -0
- package/dist/tools/people.d.ts.map +1 -1
- package/dist/tools/people.js +94 -0
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/planner-visualization.d.ts +15 -5
- package/dist/tools/planner-visualization.d.ts.map +1 -1
- package/dist/tools/planner-visualization.js +58 -4
- package/dist/tools/planner-visualization.js.map +1 -1
- package/dist/tools/planner.d.ts +69 -39
- package/dist/tools/planner.d.ts.map +1 -1
- package/dist/tools/planner.js +231 -23
- package/dist/tools/planner.js.map +1 -1
- package/dist/tools/scheduling.d.ts +12 -0
- package/dist/tools/scheduling.d.ts.map +1 -1
- package/dist/tools/scheduling.js +38 -0
- package/dist/tools/scheduling.js.map +1 -1
- package/dist/tools/shared-mailbox.d.ts +164 -0
- package/dist/tools/shared-mailbox.d.ts.map +1 -0
- package/dist/tools/shared-mailbox.js +318 -0
- package/dist/tools/shared-mailbox.js.map +1 -0
- package/dist/tools/sharepoint-lists.d.ts +131 -0
- package/dist/tools/sharepoint-lists.d.ts.map +1 -0
- package/dist/tools/sharepoint-lists.js +246 -0
- package/dist/tools/sharepoint-lists.js.map +1 -0
- package/dist/tools/sharepoint.d.ts +24 -14
- package/dist/tools/sharepoint.d.ts.map +1 -1
- package/dist/tools/sharepoint.js +85 -9
- package/dist/tools/sharepoint.js.map +1 -1
- package/dist/tools/task-attachments.d.ts +17 -7
- package/dist/tools/task-attachments.d.ts.map +1 -1
- package/dist/tools/task-attachments.js +60 -4
- package/dist/tools/task-attachments.js.map +1 -1
- package/dist/tools/task-lists.d.ts +56 -0
- package/dist/tools/task-lists.d.ts.map +1 -0
- package/dist/tools/task-lists.js +155 -0
- package/dist/tools/task-lists.js.map +1 -0
- package/dist/tools/tasks-graph.d.ts +49 -0
- package/dist/tools/tasks-graph.d.ts.map +1 -0
- package/dist/tools/tasks-graph.js +193 -0
- package/dist/tools/tasks-graph.js.map +1 -0
- package/dist/tools/tasks.d.ts +121 -29
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +136 -84
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/teams.d.ts +57 -46
- package/dist/tools/teams.d.ts.map +1 -1
- package/dist/tools/teams.js +288 -26
- package/dist/tools/teams.js.map +1 -1
- package/dist/tools/what-changed.d.ts +48 -0
- package/dist/tools/what-changed.d.ts.map +1 -0
- package/dist/tools/what-changed.js +149 -0
- package/dist/tools/what-changed.js.map +1 -0
- package/dist/types/calendar.d.ts +1 -1
- package/dist/types/calendar.d.ts.map +1 -1
- package/dist/types/calendar.js.map +1 -1
- package/dist/types/contacts.d.ts +1 -1
- package/dist/types/contacts.d.ts.map +1 -1
- package/dist/types/contacts.js.map +1 -1
- package/dist/types/mail.d.ts +1 -1
- package/dist/types/mail.d.ts.map +1 -1
- package/dist/types/mail.js.map +1 -1
- package/dist/utils/errors.d.ts +110 -38
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +239 -56
- package/dist/utils/errors.js.map +1 -1
- package/dist/visualization/types.d.ts +4 -4
- package/package.json +2 -3
- package/dist/applescript/account-repository.d.ts +0 -30
- package/dist/applescript/account-repository.d.ts.map +0 -1
- package/dist/applescript/account-repository.js +0 -38
- package/dist/applescript/account-repository.js.map +0 -1
- package/dist/applescript/account-scripts.d.ts +0 -21
- package/dist/applescript/account-scripts.d.ts.map +0 -1
- package/dist/applescript/account-scripts.js +0 -180
- package/dist/applescript/account-scripts.js.map +0 -1
- package/dist/applescript/calendar-manager.d.ts +0 -44
- package/dist/applescript/calendar-manager.d.ts.map +0 -1
- package/dist/applescript/calendar-manager.js +0 -92
- package/dist/applescript/calendar-manager.js.map +0 -1
- package/dist/applescript/calendar-writer.d.ts +0 -36
- package/dist/applescript/calendar-writer.d.ts.map +0 -1
- package/dist/applescript/calendar-writer.js +0 -94
- package/dist/applescript/calendar-writer.js.map +0 -1
- package/dist/applescript/content-readers.d.ts +0 -114
- package/dist/applescript/content-readers.d.ts.map +0 -1
- package/dist/applescript/content-readers.js +0 -328
- package/dist/applescript/content-readers.js.map +0 -1
- package/dist/applescript/executor.d.ts +0 -60
- package/dist/applescript/executor.d.ts.map +0 -1
- package/dist/applescript/executor.js +0 -173
- package/dist/applescript/executor.js.map +0 -1
- package/dist/applescript/index.d.ts +0 -20
- package/dist/applescript/index.d.ts.map +0 -1
- package/dist/applescript/index.js +0 -29
- package/dist/applescript/index.js.map +0 -1
- package/dist/applescript/mail-sender.d.ts +0 -38
- package/dist/applescript/mail-sender.d.ts.map +0 -1
- package/dist/applescript/mail-sender.js +0 -67
- package/dist/applescript/mail-sender.js.map +0 -1
- package/dist/applescript/parser.d.ts +0 -235
- package/dist/applescript/parser.d.ts.map +0 -1
- package/dist/applescript/parser.js +0 -496
- package/dist/applescript/parser.js.map +0 -1
- package/dist/applescript/repository.d.ts +0 -64
- package/dist/applescript/repository.d.ts.map +0 -1
- package/dist/applescript/repository.js +0 -444
- package/dist/applescript/repository.js.map +0 -1
- package/dist/applescript/scripts.d.ts +0 -265
- package/dist/applescript/scripts.d.ts.map +0 -1
- package/dist/applescript/scripts.js +0 -1483
- package/dist/applescript/scripts.js.map +0 -1
- package/dist/parsers/olk15.d.ts +0 -87
- package/dist/parsers/olk15.d.ts.map +0 -1
- package/dist/parsers/olk15.js +0 -368
- package/dist/parsers/olk15.js.map +0 -1
- package/dist/tools/notes.d.ts +0 -74
- package/dist/tools/notes.d.ts.map +0 -1
- package/dist/tools/notes.js +0 -136
- package/dist/tools/notes.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-graph.d.ts","sourceRoot":"","sources":["../../src/tools/mail-graph.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAgGnB;;;GAGG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,UAAU,EAAE,eAAe,EAC3B,cAAc,EAAE,mBAAmB;IAGhD,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKhE,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAOzD,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAO7D,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBrD,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAuBvD,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;IAOjE,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKnE,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKzE,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC;IAS7E,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;IASjE,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKrE,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKvE,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKjE,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;CAIlE"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026 JBC Tech Solutions, LLC
|
|
3
|
+
* Licensed under the MIT License. See LICENSE file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
import { unixTimestampToLocalIso } from '../graph/mappers/utils.js';
|
|
6
|
+
import { compileEmailSearch } from '../search/compiler.js';
|
|
7
|
+
import { nextActionFor } from '../ids/next-action.js';
|
|
8
|
+
function jsonResult(data) {
|
|
9
|
+
return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Transforms a folder row into the shape returned by the graph backend's
|
|
13
|
+
* `list_folders` tool. Self-contained copy of the legacy graph-mode transform.
|
|
14
|
+
*/
|
|
15
|
+
function transformFolderRow(row) {
|
|
16
|
+
return {
|
|
17
|
+
id: row.id,
|
|
18
|
+
name: row.name ?? 'Unnamed',
|
|
19
|
+
parentId: row.parentId,
|
|
20
|
+
specialType: row.specialType,
|
|
21
|
+
folderType: row.folderType,
|
|
22
|
+
accountId: row.accountId,
|
|
23
|
+
messageCount: row.messageCount,
|
|
24
|
+
unreadCount: row.unreadCount,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Transforms an email row into the shape returned by the graph backend's mail
|
|
29
|
+
* READ tools. Uses Unix timestamps (not Apple epoch). Self-contained copy of
|
|
30
|
+
* the legacy graph-mode transform.
|
|
31
|
+
*/
|
|
32
|
+
function transformEmailRow(row) {
|
|
33
|
+
return {
|
|
34
|
+
id: row.id,
|
|
35
|
+
folderId: row.folderId,
|
|
36
|
+
subject: row.subject,
|
|
37
|
+
sender: row.sender,
|
|
38
|
+
senderAddress: row.senderAddress,
|
|
39
|
+
preview: row.preview,
|
|
40
|
+
isRead: row.isRead === 1,
|
|
41
|
+
timeReceived: unixTimestampToLocalIso(row.timeReceived),
|
|
42
|
+
timeSent: unixTimestampToLocalIso(row.timeSent),
|
|
43
|
+
hasAttachment: row.hasAttachment === 1,
|
|
44
|
+
priority: row.priority,
|
|
45
|
+
flagStatus: row.flagStatus,
|
|
46
|
+
categories: parseEmailCategories(row.categories),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function parseEmailCategories(buffer) {
|
|
50
|
+
if (buffer == null || buffer.length === 0)
|
|
51
|
+
return [];
|
|
52
|
+
try {
|
|
53
|
+
const text = buffer.toString('utf-8');
|
|
54
|
+
return text.includes('\0')
|
|
55
|
+
? text.split('\0').filter(s => s.length > 0)
|
|
56
|
+
: text.split(',').map(s => s.trim()).filter(s => s.length > 0);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function stripHtml(html) {
|
|
63
|
+
return html
|
|
64
|
+
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '')
|
|
65
|
+
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')
|
|
66
|
+
.replace(/<[^>]+>/g, ' ')
|
|
67
|
+
.replace(/ /g, ' ')
|
|
68
|
+
.replace(/&/g, '&')
|
|
69
|
+
.replace(/</g, '<')
|
|
70
|
+
.replace(/>/g, '>')
|
|
71
|
+
.replace(/"/g, '"')
|
|
72
|
+
.replace(/'/g, "'")
|
|
73
|
+
.replace(/\s+/g, ' ')
|
|
74
|
+
.trim();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Graph mail tools. Each method mirrors the extracted inline graph case body
|
|
78
|
+
* and returns an MCP `ToolResult`.
|
|
79
|
+
*/
|
|
80
|
+
export class GraphMailTools {
|
|
81
|
+
repository;
|
|
82
|
+
contentReaders;
|
|
83
|
+
constructor(repository, contentReaders) {
|
|
84
|
+
this.repository = repository;
|
|
85
|
+
this.contentReaders = contentReaders;
|
|
86
|
+
}
|
|
87
|
+
async listFolders(_params) {
|
|
88
|
+
const folders = await this.repository.listFoldersAsync();
|
|
89
|
+
return jsonResult({ folders: folders.map(transformFolderRow) });
|
|
90
|
+
}
|
|
91
|
+
async listEmails(params) {
|
|
92
|
+
const emails = params.unread_only
|
|
93
|
+
? await this.repository.listUnreadEmailsAsync(params.folder_id, params.limit, params.offset)
|
|
94
|
+
: await this.repository.listEmailsAsync(params.folder_id, params.limit, params.offset);
|
|
95
|
+
return jsonResult({ emails: emails.map(transformEmailRow), next: nextActionFor('message') ?? undefined });
|
|
96
|
+
}
|
|
97
|
+
async searchEmails(params) {
|
|
98
|
+
const emails = params.folder_id != null
|
|
99
|
+
? await this.repository.searchEmailsInFolderAsync(params.folder_id, params.query, params.limit)
|
|
100
|
+
: await this.repository.searchEmailsAsync(params.query, params.limit);
|
|
101
|
+
return jsonResult({ emails: emails.map(transformEmailRow), next: nextActionFor('message') ?? undefined });
|
|
102
|
+
}
|
|
103
|
+
async getEmail(params) {
|
|
104
|
+
const email = await this.repository.getEmailAsync(params.email_id);
|
|
105
|
+
if (email == null) {
|
|
106
|
+
return { content: [{ type: 'text', text: 'Email not found' }], isError: true };
|
|
107
|
+
}
|
|
108
|
+
let body = null;
|
|
109
|
+
if (params.include_body) {
|
|
110
|
+
body = await this.contentReaders.email.readEmailBodyAsync(email.dataFilePath);
|
|
111
|
+
if (params.strip_html && body != null) {
|
|
112
|
+
body = stripHtml(body);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return jsonResult({ ...transformEmailRow(email), body });
|
|
116
|
+
}
|
|
117
|
+
async getEmails(params) {
|
|
118
|
+
const results = await Promise.all(params.email_ids.map(async (id) => {
|
|
119
|
+
try {
|
|
120
|
+
const email = await this.repository.getEmailAsync(id);
|
|
121
|
+
if (email == null)
|
|
122
|
+
return { id, error: 'Not found' };
|
|
123
|
+
let body = null;
|
|
124
|
+
if (params.include_body) {
|
|
125
|
+
body = await this.contentReaders.email.readEmailBodyAsync(email.dataFilePath);
|
|
126
|
+
if (params.strip_html && body != null)
|
|
127
|
+
body = stripHtml(body);
|
|
128
|
+
}
|
|
129
|
+
return { ...transformEmailRow(email), body };
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
// Per-id isolation: an unresolvable id (legacy numeric →
|
|
133
|
+
// NUMERIC_ID_UNSUPPORTED, or a wrong-entity token →
|
|
134
|
+
// ID_ENTITY_MISMATCH) must not abort the whole batch.
|
|
135
|
+
return { id, error: err instanceof Error ? err.message : 'Unresolvable id' };
|
|
136
|
+
}
|
|
137
|
+
}));
|
|
138
|
+
return jsonResult({ emails: results });
|
|
139
|
+
}
|
|
140
|
+
async getUnreadCount(params) {
|
|
141
|
+
const count = params.folder_id != null
|
|
142
|
+
? await this.repository.getUnreadCountByFolderAsync(params.folder_id)
|
|
143
|
+
: await this.repository.getUnreadCountAsync();
|
|
144
|
+
return jsonResult({ total: count });
|
|
145
|
+
}
|
|
146
|
+
async listAttachments(params) {
|
|
147
|
+
const attachments = await this.repository.listAttachmentsAsync(params.email_id);
|
|
148
|
+
return jsonResult({ attachments });
|
|
149
|
+
}
|
|
150
|
+
async downloadAttachment(params) {
|
|
151
|
+
const result = await this.repository.downloadAttachmentAsync(params.attachment_id);
|
|
152
|
+
return jsonResult(result);
|
|
153
|
+
}
|
|
154
|
+
async searchEmailsAdvanced(params) {
|
|
155
|
+
const { limit, ...criteria } = params;
|
|
156
|
+
// Compile structured criteria to the correct Graph mechanism (U7/D9). An
|
|
157
|
+
// empty or malformed-date query throws a typed VALIDATION error → envelope.
|
|
158
|
+
const compiled = compileEmailSearch(criteria);
|
|
159
|
+
const emails = await this.repository.searchEmailsStructuredAsync(compiled, limit);
|
|
160
|
+
return jsonResult({ emails: emails.map(transformEmailRow) });
|
|
161
|
+
}
|
|
162
|
+
async checkNewEmails(params) {
|
|
163
|
+
const deltaResult = await this.repository.checkNewEmailsAsync(params.folder_id);
|
|
164
|
+
return jsonResult({
|
|
165
|
+
emails: deltaResult.emails.map(transformEmailRow),
|
|
166
|
+
is_initial_sync: deltaResult.isInitialSync,
|
|
167
|
+
count: deltaResult.emails.length,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
async listConversation(params) {
|
|
171
|
+
const emails = await this.repository.listConversationAsync(params.message_id, params.limit);
|
|
172
|
+
return jsonResult({ emails: emails.map(transformEmailRow) });
|
|
173
|
+
}
|
|
174
|
+
async getMessageHeaders(params) {
|
|
175
|
+
const headers = await this.repository.getMessageHeadersAsync(params.email_id);
|
|
176
|
+
return jsonResult({ headers });
|
|
177
|
+
}
|
|
178
|
+
async getMessageMime(params) {
|
|
179
|
+
const result = await this.repository.getMessageMimeAsync(params.email_id);
|
|
180
|
+
return jsonResult({ success: true, file_path: result.filePath });
|
|
181
|
+
}
|
|
182
|
+
async getMailTips(params) {
|
|
183
|
+
const tips = await this.repository.getMailTipsAsync(params.email_addresses);
|
|
184
|
+
return jsonResult({ mail_tips: tips });
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=mail-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-graph.js","sourceRoot":"","sources":["../../src/tools/mail-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { z } from 'zod';
|
|
12
12
|
import type { ApprovalTokenManager } from '../approval/index.js';
|
|
13
|
+
import type { ToolDefinition } from '../registry/types.js';
|
|
14
|
+
declare module '../registry/types.js' {
|
|
15
|
+
interface GraphToolsets {
|
|
16
|
+
rules: MailRulesTools;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
13
19
|
export declare const CreateMailRuleInput: z.ZodObject<{
|
|
14
20
|
display_name: z.ZodString;
|
|
15
21
|
sequence: z.ZodOptional<z.ZodNumber>;
|
|
@@ -27,7 +33,7 @@ export declare const CreateMailRuleInput: z.ZodObject<{
|
|
|
27
33
|
}>>;
|
|
28
34
|
}, z.core.$strict>;
|
|
29
35
|
actions: z.ZodObject<{
|
|
30
|
-
move_to_folder: z.ZodOptional<z.
|
|
36
|
+
move_to_folder: z.ZodOptional<z.ZodString>;
|
|
31
37
|
mark_as_read: z.ZodOptional<z.ZodBoolean>;
|
|
32
38
|
mark_importance: z.ZodOptional<z.ZodEnum<{
|
|
33
39
|
high: "high";
|
|
@@ -40,28 +46,28 @@ export declare const CreateMailRuleInput: z.ZodObject<{
|
|
|
40
46
|
}, z.core.$strict>;
|
|
41
47
|
}, z.core.$strict>;
|
|
42
48
|
export declare const PrepareDeleteMailRuleInput: z.ZodObject<{
|
|
43
|
-
rule_id: z.
|
|
49
|
+
rule_id: z.ZodString;
|
|
44
50
|
}, z.core.$strict>;
|
|
45
51
|
export declare const ConfirmDeleteMailRuleInput: z.ZodObject<{
|
|
46
52
|
token_id: z.ZodString;
|
|
47
|
-
rule_id: z.
|
|
53
|
+
rule_id: z.ZodString;
|
|
48
54
|
}, z.core.$strict>;
|
|
49
55
|
export type CreateMailRuleParams = z.infer<typeof CreateMailRuleInput>;
|
|
50
56
|
export type PrepareDeleteMailRuleParams = z.infer<typeof PrepareDeleteMailRuleInput>;
|
|
51
57
|
export type ConfirmDeleteMailRuleParams = z.infer<typeof ConfirmDeleteMailRuleInput>;
|
|
52
58
|
export interface IMailRulesRepository {
|
|
53
59
|
listMailRulesAsync(): Promise<Array<{
|
|
54
|
-
id:
|
|
60
|
+
id: string;
|
|
55
61
|
displayName: string;
|
|
56
62
|
sequence: number;
|
|
57
63
|
isEnabled: boolean;
|
|
58
64
|
conditions: unknown;
|
|
59
65
|
actions: unknown;
|
|
60
66
|
}>>;
|
|
61
|
-
createMailRuleAsync(rule: Record<string, unknown>): Promise<
|
|
62
|
-
deleteMailRuleAsync(ruleId:
|
|
63
|
-
/** Resolve a
|
|
64
|
-
getFolderGraphId(folderId:
|
|
67
|
+
createMailRuleAsync(rule: Record<string, unknown>): Promise<string>;
|
|
68
|
+
deleteMailRuleAsync(ruleId: string): Promise<void>;
|
|
69
|
+
/** Resolve a folder ID (durable `fd_` token or raw Graph id) for move_to_folder action. */
|
|
70
|
+
getFolderGraphId(folderId: string): string;
|
|
65
71
|
}
|
|
66
72
|
/**
|
|
67
73
|
* Mail rules tools with two-phase approval for delete operations.
|
|
@@ -95,4 +101,10 @@ export declare class MailRulesTools {
|
|
|
95
101
|
}>;
|
|
96
102
|
}>;
|
|
97
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Registry tool definitions for the mail-rules domain. Handlers close over the
|
|
106
|
+
* live MailRulesTools instance resolved from the runtime context after the
|
|
107
|
+
* Graph backend is initialized.
|
|
108
|
+
*/
|
|
109
|
+
export declare function mailRulesToolDefinitions(): ToolDefinition[];
|
|
98
110
|
//# sourceMappingURL=mail-rules.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-rules.d.ts","sourceRoot":"","sources":["../../src/tools/mail-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"mail-rules.d.ts","sourceRoot":"","sources":["../../src/tools/mail-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIjE,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAIxE,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,aAAa;QACrB,KAAK,EAAE,cAAc,CAAC;KACvB;CACF;AAMD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoB9B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;kBAErC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;kBAGrC,CAAC;AAMH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACvE,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACrF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAMrF,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IACvJ,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,2FAA2F;IAC3F,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5C;AAMD;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,IAAI,EAAE,oBAAoB,EAC1B,YAAY,EAAE,oBAAoB;IAG/C,aAAa,IAAI,OAAO,CAAC;QAC7B,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAUI,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAC1D,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IA+CF,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG;QAC1D,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD;IAqBK,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC;QACxE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;CA6BH;AAQD;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,EAAE,CA8C3D"}
|
package/dist/tools/mail-rules.js
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* approval pattern for destructive delete operations.
|
|
10
10
|
*/
|
|
11
11
|
import { z } from 'zod';
|
|
12
|
+
import { Id } from '../ids/schema.js';
|
|
13
|
+
import { defineTool } from '../registry/define-tool.js';
|
|
14
|
+
import { tokenIdLink } from '../registry/elicit-links.js';
|
|
15
|
+
import { requireGraphToolset } from '../registry/context.js';
|
|
12
16
|
// =============================================================================
|
|
13
17
|
// Input Schemas
|
|
14
18
|
// =============================================================================
|
|
@@ -25,7 +29,7 @@ export const CreateMailRuleInput = z.strictObject({
|
|
|
25
29
|
importance: z.enum(['low', 'normal', 'high']).optional().describe('Match importance level'),
|
|
26
30
|
}).describe('Conditions that trigger the rule'),
|
|
27
31
|
actions: z.strictObject({
|
|
28
|
-
move_to_folder: z.
|
|
32
|
+
move_to_folder: z.string().min(1).optional().describe('Folder ID to move to'),
|
|
29
33
|
mark_as_read: z.boolean().optional().describe('Mark as read'),
|
|
30
34
|
mark_importance: z.enum(['low', 'normal', 'high']).optional().describe('Set importance'),
|
|
31
35
|
forward_to: z.array(z.string().email()).optional().describe('Forward to these addresses'),
|
|
@@ -34,11 +38,11 @@ export const CreateMailRuleInput = z.strictObject({
|
|
|
34
38
|
}).describe('Actions to perform'),
|
|
35
39
|
});
|
|
36
40
|
export const PrepareDeleteMailRuleInput = z.strictObject({
|
|
37
|
-
rule_id:
|
|
41
|
+
rule_id: Id.mailRule,
|
|
38
42
|
});
|
|
39
43
|
export const ConfirmDeleteMailRuleInput = z.strictObject({
|
|
40
44
|
token_id: z.string().uuid().describe('Approval token from prepare_delete_mail_rule'),
|
|
41
|
-
rule_id:
|
|
45
|
+
rule_id: Id.mailRule,
|
|
42
46
|
});
|
|
43
47
|
// =============================================================================
|
|
44
48
|
// Mail Rules Tools
|
|
@@ -91,10 +95,7 @@ export class MailRulesTools {
|
|
|
91
95
|
// Build actions
|
|
92
96
|
const actions = {};
|
|
93
97
|
if (params.actions.move_to_folder != null) {
|
|
94
|
-
|
|
95
|
-
if (folderId == null)
|
|
96
|
-
throw new Error(`Folder ID ${params.actions.move_to_folder} not found in cache. Try listing folders first.`);
|
|
97
|
-
actions['moveToFolder'] = folderId;
|
|
98
|
+
actions['moveToFolder'] = this.repo.getFolderGraphId(params.actions.move_to_folder);
|
|
98
99
|
}
|
|
99
100
|
if (params.actions.mark_as_read != null)
|
|
100
101
|
actions['markAsRead'] = params.actions.mark_as_read;
|
|
@@ -166,4 +167,59 @@ export class MailRulesTools {
|
|
|
166
167
|
};
|
|
167
168
|
}
|
|
168
169
|
}
|
|
170
|
+
// =============================================================================
|
|
171
|
+
// Registry Definitions (v3 registry-driven architecture, U1 pilot)
|
|
172
|
+
// =============================================================================
|
|
173
|
+
const NoInput = z.strictObject({});
|
|
174
|
+
/**
|
|
175
|
+
* Registry tool definitions for the mail-rules domain. Handlers close over the
|
|
176
|
+
* live MailRulesTools instance resolved from the runtime context after the
|
|
177
|
+
* Graph backend is initialized.
|
|
178
|
+
*/
|
|
179
|
+
export function mailRulesToolDefinitions() {
|
|
180
|
+
const tools = (ctx) => requireGraphToolset(ctx, 'rules');
|
|
181
|
+
return [
|
|
182
|
+
defineTool({
|
|
183
|
+
name: 'list_mail_rules',
|
|
184
|
+
description: 'List all inbox mail rules (Graph API)',
|
|
185
|
+
input: NoInput,
|
|
186
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
187
|
+
destructive: false,
|
|
188
|
+
presets: ['mail'],
|
|
189
|
+
backends: ['graph'],
|
|
190
|
+
handler: (ctx) => tools(ctx).listMailRules(),
|
|
191
|
+
}),
|
|
192
|
+
defineTool({
|
|
193
|
+
name: 'create_mail_rule',
|
|
194
|
+
description: 'Create an inbox mail rule with conditions and actions (Graph API)',
|
|
195
|
+
input: CreateMailRuleInput,
|
|
196
|
+
annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true },
|
|
197
|
+
destructive: false,
|
|
198
|
+
presets: ['mail'],
|
|
199
|
+
backends: ['graph'],
|
|
200
|
+
handler: (ctx, params) => tools(ctx).createMailRule(params),
|
|
201
|
+
}),
|
|
202
|
+
defineTool({
|
|
203
|
+
name: 'prepare_delete_mail_rule',
|
|
204
|
+
description: 'Prepare to delete a mail rule. Returns a preview and approval token. Call confirm_delete_mail_rule to execute. (Graph API)',
|
|
205
|
+
input: PrepareDeleteMailRuleInput,
|
|
206
|
+
annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true },
|
|
207
|
+
destructive: true,
|
|
208
|
+
presets: ['mail'],
|
|
209
|
+
backends: ['graph'],
|
|
210
|
+
handler: (ctx, params) => tools(ctx).prepareDeleteMailRule(params),
|
|
211
|
+
onElicit: tokenIdLink('confirm_delete_mail_rule', ['rule_id']),
|
|
212
|
+
}),
|
|
213
|
+
defineTool({
|
|
214
|
+
name: 'confirm_delete_mail_rule',
|
|
215
|
+
description: 'Confirm mail rule deletion with approval token (Graph API)',
|
|
216
|
+
input: ConfirmDeleteMailRuleInput,
|
|
217
|
+
annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: true },
|
|
218
|
+
destructive: true,
|
|
219
|
+
presets: ['mail'],
|
|
220
|
+
backends: ['graph'],
|
|
221
|
+
handler: (ctx, params) => tools(ctx).confirmDeleteMailRule(params),
|
|
222
|
+
}),
|
|
223
|
+
];
|
|
224
|
+
}
|
|
169
225
|
//# sourceMappingURL=mail-rules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-rules.js","sourceRoot":"","sources":["../../src/tools/mail-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"mail-rules.js","sourceRoot":"","sources":["../../src/tools/mail-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,23 +3,29 @@
|
|
|
3
3
|
* Licensed under the MIT License. See LICENSE file in the project root.
|
|
4
4
|
*/
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
+
import type { ToolDefinition } from '../registry/types.js';
|
|
6
7
|
import type { EmailRow } from '../database/repository.js';
|
|
7
8
|
import { ApprovalTokenManager } from '../approval/index.js';
|
|
8
9
|
import type { GraphClient } from '../graph/client/index.js';
|
|
10
|
+
declare module '../registry/types.js' {
|
|
11
|
+
interface GraphToolsets {
|
|
12
|
+
mailSend: MailSendTools;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
9
15
|
/**
|
|
10
16
|
* Async-compatible repository interface for mail send tools.
|
|
11
17
|
*
|
|
12
18
|
* Matches the async methods on GraphRepository.
|
|
13
19
|
*/
|
|
14
20
|
/**
|
|
15
|
-
* Result of creating a draft
|
|
21
|
+
* Result of creating a draft: a durable `em_` token plus the raw Graph ID.
|
|
16
22
|
*/
|
|
17
23
|
export interface CreateDraftResult {
|
|
18
|
-
|
|
24
|
+
token: string;
|
|
19
25
|
graphId: string;
|
|
20
26
|
}
|
|
21
27
|
export interface IMailSendRepository {
|
|
22
|
-
getEmailAsync(id:
|
|
28
|
+
getEmailAsync(id: string): Promise<EmailRow | undefined>;
|
|
23
29
|
createDraftAsync(params: {
|
|
24
30
|
subject: string;
|
|
25
31
|
body: string;
|
|
@@ -28,9 +34,9 @@ export interface IMailSendRepository {
|
|
|
28
34
|
cc?: string[];
|
|
29
35
|
bcc?: string[];
|
|
30
36
|
}): Promise<CreateDraftResult>;
|
|
31
|
-
updateDraftAsync(draftId:
|
|
37
|
+
updateDraftAsync(draftId: string, updates: Record<string, unknown>): Promise<void>;
|
|
32
38
|
listDraftsAsync(limit: number, offset: number): Promise<EmailRow[]>;
|
|
33
|
-
sendDraftAsync(draftId:
|
|
39
|
+
sendDraftAsync(draftId: string): Promise<void>;
|
|
34
40
|
sendMailAsync(params: {
|
|
35
41
|
subject: string;
|
|
36
42
|
body: string;
|
|
@@ -39,14 +45,14 @@ export interface IMailSendRepository {
|
|
|
39
45
|
cc?: string[];
|
|
40
46
|
bcc?: string[];
|
|
41
47
|
}): Promise<void>;
|
|
42
|
-
replyMessageAsync(messageId:
|
|
43
|
-
forwardMessageAsync(messageId:
|
|
44
|
-
replyAsDraftAsync(messageId:
|
|
45
|
-
forwardAsDraftAsync(messageId:
|
|
48
|
+
replyMessageAsync(messageId: string, comment: string, replyAll: boolean): Promise<void>;
|
|
49
|
+
forwardMessageAsync(messageId: string, toRecipients: string[], comment?: string): Promise<void>;
|
|
50
|
+
replyAsDraftAsync(messageId: string, replyAll?: boolean, comment?: string, bodyType?: string): Promise<CreateDraftResult>;
|
|
51
|
+
forwardAsDraftAsync(messageId: string, toRecipients?: string[], comment?: string, bodyType?: string): Promise<CreateDraftResult>;
|
|
46
52
|
/** Returns the Graph client for direct API operations (e.g., attachment uploads). */
|
|
47
53
|
getGraphClient(): GraphClient;
|
|
48
|
-
/**
|
|
49
|
-
getGraphIdForDraft(draftId:
|
|
54
|
+
/** Resolves a draft id (durable `em_` token or raw Graph id) to its Graph id. */
|
|
55
|
+
getGraphIdForDraft(draftId: string): string;
|
|
50
56
|
}
|
|
51
57
|
export declare const CreateDraftInput: z.ZodObject<{
|
|
52
58
|
to: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -71,7 +77,7 @@ export declare const CreateDraftInput: z.ZodObject<{
|
|
|
71
77
|
include_signature: z.ZodDefault<z.ZodBoolean>;
|
|
72
78
|
}, z.core.$strict>;
|
|
73
79
|
export declare const UpdateDraftInput: z.ZodObject<{
|
|
74
|
-
draft_id: z.
|
|
80
|
+
draft_id: z.ZodString;
|
|
75
81
|
to: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
76
82
|
cc: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
77
83
|
bcc: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -84,13 +90,13 @@ export declare const UpdateDraftInput: z.ZodObject<{
|
|
|
84
90
|
}>>;
|
|
85
91
|
}, z.core.$strict>;
|
|
86
92
|
export declare const AddDraftAttachmentInput: z.ZodObject<{
|
|
87
|
-
draft_id: z.
|
|
93
|
+
draft_id: z.ZodString;
|
|
88
94
|
file_path: z.ZodString;
|
|
89
95
|
name: z.ZodOptional<z.ZodString>;
|
|
90
96
|
content_type: z.ZodOptional<z.ZodString>;
|
|
91
97
|
}, z.core.$strict>;
|
|
92
98
|
export declare const AddDraftInlineImageInput: z.ZodObject<{
|
|
93
|
-
draft_id: z.
|
|
99
|
+
draft_id: z.ZodString;
|
|
94
100
|
file_path: z.ZodString;
|
|
95
101
|
content_id: z.ZodString;
|
|
96
102
|
}, z.core.$strict>;
|
|
@@ -99,11 +105,11 @@ export declare const ListDraftsInput: z.ZodObject<{
|
|
|
99
105
|
offset: z.ZodDefault<z.ZodNumber>;
|
|
100
106
|
}, z.core.$strict>;
|
|
101
107
|
export declare const PrepareSendDraftInput: z.ZodObject<{
|
|
102
|
-
draft_id: z.
|
|
108
|
+
draft_id: z.ZodString;
|
|
103
109
|
}, z.core.$strict>;
|
|
104
110
|
export declare const ConfirmSendDraftInput: z.ZodObject<{
|
|
105
111
|
token_id: z.ZodUUID;
|
|
106
|
-
draft_id: z.
|
|
112
|
+
draft_id: z.ZodString;
|
|
107
113
|
}, z.core.$strict>;
|
|
108
114
|
export declare const PrepareSendEmailInput: z.ZodObject<{
|
|
109
115
|
to: z.ZodArray<z.ZodString>;
|
|
@@ -127,25 +133,25 @@ export declare const ConfirmSendEmailInput: z.ZodObject<{
|
|
|
127
133
|
token_id: z.ZodUUID;
|
|
128
134
|
}, z.core.$strict>;
|
|
129
135
|
export declare const PrepareReplyEmailInput: z.ZodObject<{
|
|
130
|
-
message_id: z.
|
|
136
|
+
message_id: z.ZodString;
|
|
131
137
|
comment: z.ZodString;
|
|
132
138
|
reply_all: z.ZodDefault<z.ZodBoolean>;
|
|
133
139
|
}, z.core.$strict>;
|
|
134
140
|
export declare const ConfirmReplyEmailInput: z.ZodObject<{
|
|
135
141
|
token_id: z.ZodUUID;
|
|
136
|
-
message_id: z.
|
|
142
|
+
message_id: z.ZodString;
|
|
137
143
|
}, z.core.$strict>;
|
|
138
144
|
export declare const PrepareForwardEmailInput: z.ZodObject<{
|
|
139
|
-
message_id: z.
|
|
145
|
+
message_id: z.ZodString;
|
|
140
146
|
to_recipients: z.ZodArray<z.ZodString>;
|
|
141
147
|
comment: z.ZodOptional<z.ZodString>;
|
|
142
148
|
}, z.core.$strict>;
|
|
143
149
|
export declare const ConfirmForwardEmailInput: z.ZodObject<{
|
|
144
150
|
token_id: z.ZodUUID;
|
|
145
|
-
message_id: z.
|
|
151
|
+
message_id: z.ZodString;
|
|
146
152
|
}, z.core.$strict>;
|
|
147
153
|
export declare const ReplyAsDraftInput: z.ZodObject<{
|
|
148
|
-
message_id: z.
|
|
154
|
+
message_id: z.ZodString;
|
|
149
155
|
comment: z.ZodOptional<z.ZodString>;
|
|
150
156
|
reply_all: z.ZodDefault<z.ZodBoolean>;
|
|
151
157
|
body_type: z.ZodDefault<z.ZodEnum<{
|
|
@@ -155,7 +161,7 @@ export declare const ReplyAsDraftInput: z.ZodObject<{
|
|
|
155
161
|
include_signature: z.ZodDefault<z.ZodBoolean>;
|
|
156
162
|
}, z.core.$strict>;
|
|
157
163
|
export declare const ForwardAsDraftInput: z.ZodObject<{
|
|
158
|
-
message_id: z.
|
|
164
|
+
message_id: z.ZodString;
|
|
159
165
|
to_recipients: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
160
166
|
comment: z.ZodOptional<z.ZodString>;
|
|
161
167
|
body_type: z.ZodDefault<z.ZodEnum<{
|
|
@@ -186,13 +192,13 @@ export type ConfirmForwardEmailParams = z.infer<typeof ConfirmForwardEmailInput>
|
|
|
186
192
|
export type ReplyAsDraftParams = z.infer<typeof ReplyAsDraftInput>;
|
|
187
193
|
export type ForwardAsDraftParams = z.infer<typeof ForwardAsDraftInput>;
|
|
188
194
|
declare function draftPreview(row: EmailRow): {
|
|
189
|
-
id:
|
|
195
|
+
id: string;
|
|
190
196
|
subject: string | null;
|
|
191
197
|
to: string | null;
|
|
192
198
|
cc: string | null;
|
|
193
199
|
};
|
|
194
200
|
declare function messagePreview(row: EmailRow): {
|
|
195
|
-
id:
|
|
201
|
+
id: string;
|
|
196
202
|
subject: string | null;
|
|
197
203
|
sender: string | null;
|
|
198
204
|
senderAddress: string | null;
|
|
@@ -209,7 +215,7 @@ export declare class MailSendTools {
|
|
|
209
215
|
constructor(repository: IMailSendRepository, tokenManager: ApprovalTokenManager);
|
|
210
216
|
createDraft(params: CreateDraftParams): Promise<{
|
|
211
217
|
success: boolean;
|
|
212
|
-
draft_id:
|
|
218
|
+
draft_id: string;
|
|
213
219
|
}>;
|
|
214
220
|
updateDraft(params: UpdateDraftParams): Promise<{
|
|
215
221
|
success: boolean;
|
|
@@ -271,12 +277,12 @@ export declare class MailSendTools {
|
|
|
271
277
|
}>;
|
|
272
278
|
replyAsDraft(params: z.infer<typeof ReplyAsDraftInput>): Promise<{
|
|
273
279
|
success: boolean;
|
|
274
|
-
draft_id:
|
|
280
|
+
draft_id: string;
|
|
275
281
|
message: string;
|
|
276
282
|
}>;
|
|
277
283
|
forwardAsDraft(params: z.infer<typeof ForwardAsDraftInput>): Promise<{
|
|
278
284
|
success: boolean;
|
|
279
|
-
draft_id:
|
|
285
|
+
draft_id: string;
|
|
280
286
|
message: string;
|
|
281
287
|
}>;
|
|
282
288
|
setSignature(params: z.infer<typeof SetSignatureInput>): {
|
|
@@ -310,5 +316,11 @@ export declare class MailSendTools {
|
|
|
310
316
|
* Creates mail send tools with the given repository and token manager.
|
|
311
317
|
*/
|
|
312
318
|
export declare function createMailSendTools(repository: IMailSendRepository, tokenManager: ApprovalTokenManager): MailSendTools;
|
|
319
|
+
/**
|
|
320
|
+
* Registry tool definitions for the mail-send domain (Graph API only). The
|
|
321
|
+
* MailSendTools methods return raw objects, wrapped here to match the
|
|
322
|
+
* pre-registry dispatch behavior exactly.
|
|
323
|
+
*/
|
|
324
|
+
export declare function mailSendToolDefinitions(): ToolDefinition[];
|
|
313
325
|
export {};
|
|
314
326
|
//# sourceMappingURL=mail-send.d.ts.map
|