@jbctechsolutions/mcp-office365 2.5.1 → 3.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.
Files changed (222) hide show
  1. package/README.md +32 -0
  2. package/dist/approval/token-manager.d.ts +28 -16
  3. package/dist/approval/token-manager.d.ts.map +1 -1
  4. package/dist/approval/token-manager.js +125 -37
  5. package/dist/approval/token-manager.js.map +1 -1
  6. package/dist/cli.d.ts +17 -0
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +85 -2
  9. package/dist/cli.js.map +1 -1
  10. package/dist/graph/auth/config.d.ts +1 -1
  11. package/dist/graph/auth/config.d.ts.map +1 -1
  12. package/dist/graph/auth/config.js +5 -1
  13. package/dist/graph/auth/config.js.map +1 -1
  14. package/dist/graph/auth/device-code-flow.d.ts +3 -1
  15. package/dist/graph/auth/device-code-flow.d.ts.map +1 -1
  16. package/dist/graph/auth/device-code-flow.js +42 -14
  17. package/dist/graph/auth/device-code-flow.js.map +1 -1
  18. package/dist/graph/auth/token-cache.js +2 -2
  19. package/dist/graph/auth/token-cache.js.map +1 -1
  20. package/dist/graph/client/graph-client.d.ts +36 -8
  21. package/dist/graph/client/graph-client.d.ts.map +1 -1
  22. package/dist/graph/client/graph-client.js +128 -36
  23. package/dist/graph/client/graph-client.js.map +1 -1
  24. package/dist/graph/repository.d.ts +9 -6
  25. package/dist/graph/repository.d.ts.map +1 -1
  26. package/dist/graph/repository.js +63 -66
  27. package/dist/graph/repository.js.map +1 -1
  28. package/dist/ids/mint.d.ts +31 -0
  29. package/dist/ids/mint.d.ts.map +1 -0
  30. package/dist/ids/mint.js +36 -0
  31. package/dist/ids/mint.js.map +1 -0
  32. package/dist/ids/resolver.d.ts +30 -0
  33. package/dist/ids/resolver.d.ts.map +1 -0
  34. package/dist/ids/resolver.js +37 -0
  35. package/dist/ids/resolver.js.map +1 -0
  36. package/dist/ids/token.d.ts +56 -0
  37. package/dist/ids/token.d.ts.map +1 -0
  38. package/dist/ids/token.js +186 -0
  39. package/dist/ids/token.js.map +1 -0
  40. package/dist/index.d.ts +7 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +226 -5859
  43. package/dist/index.js.map +1 -1
  44. package/dist/registry/all-tools.d.ts +14 -0
  45. package/dist/registry/all-tools.d.ts.map +1 -0
  46. package/dist/registry/all-tools.js +64 -0
  47. package/dist/registry/all-tools.js.map +1 -0
  48. package/dist/registry/context.d.ts +25 -0
  49. package/dist/registry/context.d.ts.map +1 -0
  50. package/dist/registry/context.js +31 -0
  51. package/dist/registry/context.js.map +1 -0
  52. package/dist/registry/define-tool.d.ts +15 -0
  53. package/dist/registry/define-tool.d.ts.map +1 -0
  54. package/dist/registry/define-tool.js +8 -0
  55. package/dist/registry/define-tool.js.map +1 -0
  56. package/dist/registry/index.d.ts +13 -0
  57. package/dist/registry/index.d.ts.map +1 -0
  58. package/dist/registry/index.js +8 -0
  59. package/dist/registry/index.js.map +1 -0
  60. package/dist/registry/registry.d.ts +62 -0
  61. package/dist/registry/registry.d.ts.map +1 -0
  62. package/dist/registry/registry.js +134 -0
  63. package/dist/registry/registry.js.map +1 -0
  64. package/dist/registry/types.d.ts +98 -0
  65. package/dist/registry/types.d.ts.map +1 -0
  66. package/dist/registry/types.js +6 -0
  67. package/dist/registry/types.js.map +1 -0
  68. package/dist/search/compiler.d.ts +49 -0
  69. package/dist/search/compiler.d.ts.map +1 -0
  70. package/dist/search/compiler.js +168 -0
  71. package/dist/search/compiler.js.map +1 -0
  72. package/dist/signature.js +2 -2
  73. package/dist/signature.js.map +1 -1
  74. package/dist/state/migrate.d.ts +23 -0
  75. package/dist/state/migrate.d.ts.map +1 -0
  76. package/dist/state/migrate.js +81 -0
  77. package/dist/state/migrate.js.map +1 -0
  78. package/dist/state/schema.d.ts +27 -0
  79. package/dist/state/schema.d.ts.map +1 -0
  80. package/dist/state/schema.js +54 -0
  81. package/dist/state/schema.js.map +1 -0
  82. package/dist/state/store.d.ts +152 -0
  83. package/dist/state/store.d.ts.map +1 -0
  84. package/dist/state/store.js +317 -0
  85. package/dist/state/store.js.map +1 -0
  86. package/dist/tools/accounts.d.ts +37 -0
  87. package/dist/tools/accounts.d.ts.map +1 -0
  88. package/dist/tools/accounts.js +68 -0
  89. package/dist/tools/accounts.js.map +1 -0
  90. package/dist/tools/calendar-apple.d.ts +39 -0
  91. package/dist/tools/calendar-apple.d.ts.map +1 -0
  92. package/dist/tools/calendar-apple.js +159 -0
  93. package/dist/tools/calendar-apple.js.map +1 -0
  94. package/dist/tools/calendar-graph.d.ts +41 -0
  95. package/dist/tools/calendar-graph.d.ts.map +1 -0
  96. package/dist/tools/calendar-graph.js +298 -0
  97. package/dist/tools/calendar-graph.js.map +1 -0
  98. package/dist/tools/calendar-permissions.d.ts +10 -0
  99. package/dist/tools/calendar-permissions.d.ts.map +1 -1
  100. package/dist/tools/calendar-permissions.js +53 -0
  101. package/dist/tools/calendar-permissions.js.map +1 -1
  102. package/dist/tools/calendar.d.ts +151 -0
  103. package/dist/tools/calendar.d.ts.map +1 -1
  104. package/dist/tools/calendar.js +274 -0
  105. package/dist/tools/calendar.js.map +1 -1
  106. package/dist/tools/categories.d.ts +10 -0
  107. package/dist/tools/categories.d.ts.map +1 -1
  108. package/dist/tools/categories.js +54 -0
  109. package/dist/tools/categories.js.map +1 -1
  110. package/dist/tools/checklist-items.d.ts +10 -0
  111. package/dist/tools/checklist-items.d.ts.map +1 -1
  112. package/dist/tools/checklist-items.js +63 -0
  113. package/dist/tools/checklist-items.js.map +1 -1
  114. package/dist/tools/contact-folders.d.ts +50 -0
  115. package/dist/tools/contact-folders.d.ts.map +1 -0
  116. package/dist/tools/contact-folders.js +133 -0
  117. package/dist/tools/contact-folders.js.map +1 -0
  118. package/dist/tools/contacts-graph.d.ts +45 -0
  119. package/dist/tools/contacts-graph.d.ts.map +1 -0
  120. package/dist/tools/contacts-graph.js +172 -0
  121. package/dist/tools/contacts-graph.js.map +1 -0
  122. package/dist/tools/contacts.d.ts +66 -0
  123. package/dist/tools/contacts.d.ts.map +1 -1
  124. package/dist/tools/contacts.js +165 -0
  125. package/dist/tools/contacts.js.map +1 -1
  126. package/dist/tools/excel.d.ts +10 -0
  127. package/dist/tools/excel.d.ts.map +1 -1
  128. package/dist/tools/excel.js +73 -0
  129. package/dist/tools/excel.js.map +1 -1
  130. package/dist/tools/focused-overrides.d.ts +10 -0
  131. package/dist/tools/focused-overrides.d.ts.map +1 -1
  132. package/dist/tools/focused-overrides.js +54 -0
  133. package/dist/tools/focused-overrides.js.map +1 -1
  134. package/dist/tools/linked-resources.d.ts +10 -0
  135. package/dist/tools/linked-resources.d.ts.map +1 -1
  136. package/dist/tools/linked-resources.js +53 -0
  137. package/dist/tools/linked-resources.js.map +1 -1
  138. package/dist/tools/mail-apple.d.ts +40 -0
  139. package/dist/tools/mail-apple.d.ts.map +1 -0
  140. package/dist/tools/mail-apple.js +146 -0
  141. package/dist/tools/mail-apple.js.map +1 -0
  142. package/dist/tools/mail-graph.d.ts +38 -0
  143. package/dist/tools/mail-graph.d.ts.map +1 -0
  144. package/dist/tools/mail-graph.js +178 -0
  145. package/dist/tools/mail-graph.js.map +1 -0
  146. package/dist/tools/mail-rules.d.ts +12 -0
  147. package/dist/tools/mail-rules.d.ts.map +1 -1
  148. package/dist/tools/mail-rules.js +56 -0
  149. package/dist/tools/mail-rules.js.map +1 -1
  150. package/dist/tools/mail-send.d.ts +12 -0
  151. package/dist/tools/mail-send.d.ts.map +1 -1
  152. package/dist/tools/mail-send.js +219 -5
  153. package/dist/tools/mail-send.js.map +1 -1
  154. package/dist/tools/mail.d.ts +82 -2
  155. package/dist/tools/mail.d.ts.map +1 -1
  156. package/dist/tools/mail.js +239 -2
  157. package/dist/tools/mail.js.map +1 -1
  158. package/dist/tools/mailbox-organization.d.ts +20 -0
  159. package/dist/tools/mailbox-organization.d.ts.map +1 -1
  160. package/dist/tools/mailbox-organization.js +275 -0
  161. package/dist/tools/mailbox-organization.js.map +1 -1
  162. package/dist/tools/mailbox-settings.d.ts +59 -0
  163. package/dist/tools/mailbox-settings.d.ts.map +1 -0
  164. package/dist/tools/mailbox-settings.js +136 -0
  165. package/dist/tools/mailbox-settings.js.map +1 -0
  166. package/dist/tools/meetings.d.ts +10 -0
  167. package/dist/tools/meetings.d.ts.map +1 -1
  168. package/dist/tools/meetings.js +74 -0
  169. package/dist/tools/meetings.js.map +1 -1
  170. package/dist/tools/notes.d.ts +12 -0
  171. package/dist/tools/notes.d.ts.map +1 -1
  172. package/dist/tools/notes.js +66 -0
  173. package/dist/tools/notes.js.map +1 -1
  174. package/dist/tools/onedrive.d.ts +10 -0
  175. package/dist/tools/onedrive.d.ts.map +1 -1
  176. package/dist/tools/onedrive.js +124 -0
  177. package/dist/tools/onedrive.js.map +1 -1
  178. package/dist/tools/people.d.ts +10 -0
  179. package/dist/tools/people.d.ts.map +1 -1
  180. package/dist/tools/people.js +94 -0
  181. package/dist/tools/people.js.map +1 -1
  182. package/dist/tools/planner-visualization.d.ts +10 -0
  183. package/dist/tools/planner-visualization.d.ts.map +1 -1
  184. package/dist/tools/planner-visualization.js +53 -0
  185. package/dist/tools/planner-visualization.js.map +1 -1
  186. package/dist/tools/planner.d.ts +10 -0
  187. package/dist/tools/planner.d.ts.map +1 -1
  188. package/dist/tools/planner.js +183 -0
  189. package/dist/tools/planner.js.map +1 -1
  190. package/dist/tools/scheduling.d.ts +12 -0
  191. package/dist/tools/scheduling.d.ts.map +1 -1
  192. package/dist/tools/scheduling.js +38 -0
  193. package/dist/tools/scheduling.js.map +1 -1
  194. package/dist/tools/sharepoint.d.ts +10 -0
  195. package/dist/tools/sharepoint.d.ts.map +1 -1
  196. package/dist/tools/sharepoint.js +74 -0
  197. package/dist/tools/sharepoint.js.map +1 -1
  198. package/dist/tools/task-attachments.d.ts +10 -0
  199. package/dist/tools/task-attachments.d.ts.map +1 -1
  200. package/dist/tools/task-attachments.js +53 -0
  201. package/dist/tools/task-attachments.js.map +1 -1
  202. package/dist/tools/task-lists.d.ts +56 -0
  203. package/dist/tools/task-lists.d.ts.map +1 -0
  204. package/dist/tools/task-lists.js +151 -0
  205. package/dist/tools/task-lists.js.map +1 -0
  206. package/dist/tools/tasks-graph.d.ts +49 -0
  207. package/dist/tools/tasks-graph.d.ts.map +1 -0
  208. package/dist/tools/tasks-graph.js +191 -0
  209. package/dist/tools/tasks-graph.js.map +1 -0
  210. package/dist/tools/tasks.d.ts +127 -0
  211. package/dist/tools/tasks.d.ts.map +1 -1
  212. package/dist/tools/tasks.js +155 -0
  213. package/dist/tools/tasks.js.map +1 -1
  214. package/dist/tools/teams.d.ts +11 -0
  215. package/dist/tools/teams.d.ts.map +1 -1
  216. package/dist/tools/teams.js +254 -0
  217. package/dist/tools/teams.js.map +1 -1
  218. package/dist/utils/errors.d.ts +96 -5
  219. package/dist/utils/errors.d.ts.map +1 -1
  220. package/dist/utils/errors.js +227 -8
  221. package/dist/utils/errors.js.map +1 -1
  222. package/package.json +1 -1
@@ -20,10 +20,13 @@ export const ErrorCode = {
20
20
  APPLESCRIPT_PERMISSION_DENIED: 'APPLESCRIPT_PERMISSION_DENIED',
21
21
  APPLESCRIPT_TIMEOUT: 'APPLESCRIPT_TIMEOUT',
22
22
  APPLESCRIPT_ERROR: 'APPLESCRIPT_ERROR',
23
- GRAPH_AUTH_REQUIRED: 'GRAPH_AUTH_REQUIRED',
24
23
  GRAPH_RATE_LIMITED: 'GRAPH_RATE_LIMITED',
25
24
  GRAPH_PERMISSION_DENIED: 'GRAPH_PERMISSION_DENIED',
26
25
  GRAPH_ERROR: 'GRAPH_ERROR',
26
+ // D10 transport error envelope codes (mapped at the single dispatch chokepoint).
27
+ AUTH_EXPIRED: 'AUTH_EXPIRED',
28
+ THROTTLED: 'THROTTLED',
29
+ GRAPH_UNAVAILABLE: 'GRAPH_UNAVAILABLE',
27
30
  ATTACHMENT_NOT_FOUND: 'ATTACHMENT_NOT_FOUND',
28
31
  ATTACHMENT_TOO_LARGE: 'ATTACHMENT_TOO_LARGE',
29
32
  ATTACHMENT_SAVE_ERROR: 'ATTACHMENT_SAVE_ERROR',
@@ -32,14 +35,25 @@ export const ErrorCode = {
32
35
  APPROVAL_EXPIRED: 'APPROVAL_EXPIRED',
33
36
  APPROVAL_INVALID: 'APPROVAL_INVALID',
34
37
  TARGET_CHANGED: 'TARGET_CHANGED',
38
+ READ_ONLY_MODE: 'READ_ONLY_MODE',
39
+ // Durable-ID resolution vocabulary (U5 / D1, D2, D4, D7).
40
+ ID_UNKNOWN: 'ID_UNKNOWN',
41
+ ID_STALE: 'ID_STALE',
42
+ ID_COLLISION: 'ID_COLLISION',
43
+ ID_FOREIGN_ACCOUNT: 'ID_FOREIGN_ACCOUNT',
44
+ NUMERIC_ID_UNSUPPORTED: 'NUMERIC_ID_UNSUPPORTED',
35
45
  };
36
46
  /**
37
47
  * Base class for all Outlook MCP errors.
38
48
  */
39
49
  export class OutlookMcpError extends Error {
40
- constructor(message) {
50
+ retriable;
51
+ suggestion;
52
+ constructor(message, meta) {
41
53
  super(message);
42
54
  this.name = this.constructor.name;
55
+ this.retriable = meta?.retriable ?? false;
56
+ this.suggestion = meta?.suggestion;
43
57
  // Maintains proper stack trace for where error was thrown
44
58
  Error.captureStackTrace(this, this.constructor);
45
59
  }
@@ -179,13 +193,21 @@ export class AppleScriptError extends OutlookMcpError {
179
193
  // Microsoft Graph API Errors
180
194
  // =============================================================================
181
195
  /**
182
- * Thrown when Microsoft Graph authentication is required.
196
+ * Thrown when Microsoft Graph authentication is required or a cached session has
197
+ * expired mid-run. Uses the D10 `AUTH_EXPIRED` code (the older
198
+ * `GRAPH_AUTH_REQUIRED` was never thrown and has been removed) so raw-401
199
+ * mapping and this typed path agree on one code for "you need to (re-)authenticate".
183
200
  */
184
201
  export class GraphAuthRequiredError extends OutlookMcpError {
185
- code = ErrorCode.GRAPH_AUTH_REQUIRED;
186
- constructor() {
187
- super('Microsoft Graph authentication required. ' +
188
- 'Run: npx @jbctechsolutions/mcp-office365 auth');
202
+ code = ErrorCode.AUTH_EXPIRED;
203
+ constructor(reason = 'not_authenticated') {
204
+ const lead = reason === 'session_expired'
205
+ ? 'Microsoft Graph session expired.'
206
+ : 'Microsoft Graph authentication required.';
207
+ super(`${lead} Run: npx @jbctechsolutions/mcp-office365 auth`, {
208
+ retriable: false,
209
+ suggestion: 'Run `npx @jbctechsolutions/mcp-office365 auth` to (re)authenticate.',
210
+ });
189
211
  }
190
212
  }
191
213
  /**
@@ -196,7 +218,12 @@ export class GraphRateLimitedError extends OutlookMcpError {
196
218
  retryAfter;
197
219
  constructor(retryAfter) {
198
220
  super('Microsoft Graph API rate limit exceeded. ' +
199
- (retryAfter != null ? `Retry after ${retryAfter} seconds.` : 'Please try again later.'));
221
+ (retryAfter != null ? `Retry after ${retryAfter} seconds.` : 'Please try again later.'), {
222
+ retriable: true,
223
+ suggestion: retryAfter != null
224
+ ? `Wait ${retryAfter}s and retry.`
225
+ : 'Wait a few seconds and retry.',
226
+ });
200
227
  this.retryAfter = retryAfter;
201
228
  }
202
229
  }
@@ -303,4 +330,196 @@ export class TargetChangedError extends OutlookMcpError {
303
330
  'Please prepare the operation again.');
304
331
  }
305
332
  }
333
+ /**
334
+ * Thrown when a destructive/write tool is invoked while the server runs in
335
+ * `--read-only` mode (D13). Read-only filters these tools out of the surface,
336
+ * but a client can still call one by name — this is the runtime guard.
337
+ */
338
+ export class ReadOnlyModeError extends OutlookMcpError {
339
+ code = ErrorCode.READ_ONLY_MODE;
340
+ constructor(toolName) {
341
+ super(`Tool "${toolName}" is not available in read-only mode.`, { retriable: false, suggestion: 'Restart the server without --read-only to use write tools.' });
342
+ }
343
+ }
344
+ // =============================================================================
345
+ // Durable-ID resolution errors (U5)
346
+ // =============================================================================
347
+ /** A durable-ID token could not be resolved (unknown / cold composite token). */
348
+ export class IdUnknownError extends OutlookMcpError {
349
+ code = ErrorCode.ID_UNKNOWN;
350
+ constructor(token, hint = 'Re-list the parent collection to get a fresh ID.') {
351
+ super(`Unknown or unresolvable ID: ${token}.`, { retriable: false, suggestion: hint });
352
+ }
353
+ }
354
+ /** A resolved ID no longer points at a live object (mutable ID drifted). */
355
+ export class IdStaleError extends OutlookMcpError {
356
+ code = ErrorCode.ID_STALE;
357
+ constructor(token) {
358
+ super(`ID is stale and could not be re-resolved: ${token}.`, {
359
+ retriable: false,
360
+ suggestion: 'Re-list the collection to obtain a current ID.',
361
+ });
362
+ }
363
+ }
364
+ /** Two distinct keys minted the same composite token (D1a) — never mis-resolve. */
365
+ export class IdCollisionError extends OutlookMcpError {
366
+ code = ErrorCode.ID_COLLISION;
367
+ constructor(token) {
368
+ super(`ID token collision detected for ${token}; refusing to resolve ambiguously.`, {
369
+ retriable: false,
370
+ suggestion: 'Re-list the collection to obtain a fresh ID.',
371
+ });
372
+ }
373
+ }
374
+ /** A token minted under a different signed-in account (D7). */
375
+ export class IdForeignAccountError extends OutlookMcpError {
376
+ code = ErrorCode.ID_FOREIGN_ACCOUNT;
377
+ constructor(token) {
378
+ super(`ID ${token} belongs to a different account than the one signed in.`, {
379
+ retriable: false,
380
+ suggestion: 'Re-list the collection while signed in as the owning account.',
381
+ });
382
+ }
383
+ }
384
+ /** A legacy numeric (v2 hash) ID was passed on the Graph backend (D4). */
385
+ export class NumericIdUnsupportedError extends OutlookMcpError {
386
+ code = ErrorCode.NUMERIC_ID_UNSUPPORTED;
387
+ constructor(id) {
388
+ super(`Numeric ID ${id} is not supported on the Graph backend (v2 hash IDs are lossy).`, {
389
+ retriable: false,
390
+ suggestion: 'Re-list the collection to obtain a current durable ID.',
391
+ });
392
+ }
393
+ }
394
+ function isGraphSdkError(error) {
395
+ return (typeof error === 'object' &&
396
+ error !== null &&
397
+ typeof error.statusCode === 'number');
398
+ }
399
+ /** Maps a raw Graph SDK / HTTP status to a stable envelope. */
400
+ function graphStatusToEnvelope(status, message) {
401
+ switch (status) {
402
+ case 401:
403
+ return {
404
+ code: ErrorCode.AUTH_EXPIRED,
405
+ message,
406
+ retriable: false,
407
+ suggestion: 'Session expired. Run `npx @jbctechsolutions/mcp-office365 auth` to re-authenticate.',
408
+ };
409
+ case 403:
410
+ return {
411
+ code: ErrorCode.GRAPH_PERMISSION_DENIED,
412
+ message,
413
+ retriable: false,
414
+ suggestion: 'Check the app permissions/scopes granted in Azure AD.',
415
+ };
416
+ case 404:
417
+ return { code: ErrorCode.NOT_FOUND, message, retriable: false };
418
+ case 400:
419
+ return { code: ErrorCode.VALIDATION_ERROR, message, retriable: false };
420
+ case 429:
421
+ return {
422
+ code: ErrorCode.THROTTLED,
423
+ message,
424
+ retriable: true,
425
+ suggestion: 'Rate limited. Retry after the Retry-After interval.',
426
+ };
427
+ case 502:
428
+ case 503:
429
+ case 504:
430
+ // The transport auto-retries these (see shouldRetryGraphRequest), so
431
+ // retriable:true reflects real coverage, not just caller advice.
432
+ return {
433
+ code: ErrorCode.GRAPH_UNAVAILABLE,
434
+ message,
435
+ retriable: true,
436
+ suggestion: 'Microsoft Graph is temporarily unavailable. Retry shortly.',
437
+ };
438
+ default:
439
+ if (status >= 500) {
440
+ // Other 5xx (500/501/505…) are NOT auto-retried by the transport, so
441
+ // retriable stays false to keep the envelope honest with D5.
442
+ return {
443
+ code: ErrorCode.GRAPH_UNAVAILABLE,
444
+ message,
445
+ retriable: false,
446
+ suggestion: 'Microsoft Graph returned a server error.',
447
+ };
448
+ }
449
+ return { code: ErrorCode.GRAPH_ERROR, message, retriable: false };
450
+ }
451
+ }
452
+ /** True when `code` is a member of the stable {@link ErrorCode} vocabulary. */
453
+ export function isKnownErrorCode(code) {
454
+ return Object.values(ErrorCode).includes(code);
455
+ }
456
+ /**
457
+ * True when `value` already has the {@link ErrorEnvelope} shape *with a known
458
+ * code*. Requiring a real {@link ErrorCode} (not just any string) means an
459
+ * unrelated JSON payload that happens to carry `code`/`message`/`retriable`
460
+ * fields is not mistaken for an envelope by {@link ensureErrorEnvelopeText}.
461
+ */
462
+ export function isErrorEnvelope(value) {
463
+ const candidate = value;
464
+ return (typeof value === 'object' &&
465
+ value !== null &&
466
+ typeof candidate.code === 'string' &&
467
+ isKnownErrorCode(candidate.code) &&
468
+ typeof candidate.message === 'string' &&
469
+ typeof candidate.retriable === 'boolean' &&
470
+ (candidate.suggestion === undefined || typeof candidate.suggestion === 'string'));
471
+ }
472
+ /**
473
+ * Normalizes the text of a tool's error result into a D10 envelope JSON string.
474
+ * Thrown failures already funnel through {@link toErrorEnvelope} at the dispatch
475
+ * chokepoint, but many handlers return `{ isError: true, text: '…' }` directly
476
+ * (not-found, approval-token mismatches, etc.). Passing those through here keeps
477
+ * a single stable error shape across *every* failure path. Text that is already
478
+ * a valid envelope is returned unchanged (idempotent — never double-wraps).
479
+ */
480
+ export function ensureErrorEnvelopeText(text) {
481
+ try {
482
+ if (isErrorEnvelope(JSON.parse(text))) {
483
+ return text;
484
+ }
485
+ }
486
+ catch {
487
+ // not JSON — fall through and wrap
488
+ }
489
+ const envelope = {
490
+ code: ErrorCode.GRAPH_ERROR,
491
+ message: text,
492
+ retriable: false,
493
+ };
494
+ return JSON.stringify(envelope, null, 2);
495
+ }
496
+ /**
497
+ * Single mapping point (D10): converts any thrown value into a stable
498
+ * {@link ErrorEnvelope}. Typed {@link OutlookMcpError}s carry their own
499
+ * code/retriable/suggestion; raw Graph SDK errors are mapped by HTTP status;
500
+ * everything else becomes a non-retriable `GRAPH_ERROR`.
501
+ */
502
+ export function toErrorEnvelope(error) {
503
+ if (isOutlookMcpError(error)) {
504
+ const envelope = {
505
+ code: error.code,
506
+ message: error.message,
507
+ retriable: error.retriable,
508
+ };
509
+ if (error.suggestion !== undefined) {
510
+ envelope.suggestion = error.suggestion;
511
+ }
512
+ return envelope;
513
+ }
514
+ if (isGraphSdkError(error)) {
515
+ const message = typeof error.message === 'string' && error.message.length > 0
516
+ ? error.message
517
+ : `Microsoft Graph request failed (HTTP ${error.statusCode}).`;
518
+ return graphStatusToEnvelope(error.statusCode, message);
519
+ }
520
+ if (error instanceof Error) {
521
+ return { code: ErrorCode.GRAPH_ERROR, message: error.message, retriable: false };
522
+ }
523
+ return { code: ErrorCode.GRAPH_ERROR, message: 'An unknown error occurred.', retriable: false };
524
+ }
306
525
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbctechsolutions/mcp-office365",
3
- "version": "2.5.1",
3
+ "version": "3.0.0",
4
4
  "description": "MCP server for Microsoft 365 with dual backend support (AppleScript for classic Outlook, Graph API for new Outlook/M365). Read/write access to mail, calendar, contacts, tasks, teams, planner, and more.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",