ask-marcel-office-cli 0.5.5 → 1.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 (181) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/README.md +275 -74
  3. package/dist/cli.js +96882 -14770
  4. package/dist/commands.json +5365 -489
  5. package/dist/composition/build-deps.d.ts +1 -0
  6. package/dist/composition/cli.d.ts +2 -0
  7. package/dist/index.js +94720 -13245
  8. package/dist/infra/auth.d.ts +31 -3
  9. package/dist/infra/browser-auth.d.ts +98 -1
  10. package/dist/infra/graph-client.d.ts +61 -2
  11. package/dist/infra/mammoth-adapter.d.ts +4 -0
  12. package/dist/infra/sheetjs-adapter.d.ts +9 -0
  13. package/dist/infra/turndown-adapter.d.ts +4 -0
  14. package/dist/presenter/output-text.d.ts +2 -0
  15. package/dist/presenter/output.d.ts +4 -2
  16. package/dist/use-cases/commands/build-command.d.ts +45 -1
  17. package/dist/use-cases/commands/command-types.d.ts +97 -3
  18. package/dist/use-cases/commands/convert-mail-attachment-to-markdown.d.ts +11 -0
  19. package/dist/use-cases/commands/convert-mail-attachment-to-pdf.d.ts +11 -0
  20. package/dist/use-cases/commands/convert-mail-to-markdown.d.ts +10 -0
  21. package/dist/use-cases/commands/docs-render.d.ts +7 -0
  22. package/dist/use-cases/commands/docx-to-markdown.d.ts +11 -0
  23. package/dist/use-cases/commands/download-drive-item-as-markdown.d.ts +11 -0
  24. package/dist/use-cases/commands/download-drive-item-as-pdf.d.ts +11 -0
  25. package/dist/use-cases/commands/download-drive-item-version-as-markdown.d.ts +12 -0
  26. package/dist/use-cases/commands/download-drive-item-version-as-pdf.d.ts +12 -0
  27. package/dist/use-cases/commands/download-onedrive-file-content.d.ts +2 -2
  28. package/dist/use-cases/commands/embedded-item-to-markdown.d.ts +59 -0
  29. package/dist/use-cases/commands/excel-error.d.ts +6 -0
  30. package/dist/use-cases/commands/extract-sharepoint-links-in-mail.d.ts +26 -0
  31. package/dist/use-cases/commands/fetch-raw-bytes.d.ts +56 -0
  32. package/dist/use-cases/commands/format-zod-error.d.ts +14 -0
  33. package/dist/use-cases/commands/get-calendar-event.d.ts +1 -5
  34. package/dist/use-cases/commands/get-calendar-view.d.ts +1 -6
  35. package/dist/use-cases/commands/get-channel-files-folder.d.ts +4 -0
  36. package/dist/use-cases/commands/get-chat.d.ts +8 -0
  37. package/dist/use-cases/commands/get-current-user.d.ts +1 -3
  38. package/dist/use-cases/commands/get-drive-delta.d.ts +1 -6
  39. package/dist/use-cases/commands/get-drive-item-analytics.d.ts +9 -0
  40. package/dist/use-cases/commands/get-drive-item-created-by-user.d.ts +4 -0
  41. package/dist/use-cases/commands/get-drive-item-last-modified-by-user.d.ts +4 -0
  42. package/dist/use-cases/commands/get-drive-item-list-item.d.ts +4 -0
  43. package/dist/use-cases/commands/get-drive-item.d.ts +1 -6
  44. package/dist/use-cases/commands/get-drive-root-delta.d.ts +4 -0
  45. package/dist/use-cases/commands/get-drive-root-item.d.ts +1 -5
  46. package/dist/use-cases/commands/get-drive-special-folder.d.ts +4 -0
  47. package/dist/use-cases/commands/get-excel-range.d.ts +1 -1
  48. package/dist/use-cases/commands/get-excel-table.d.ts +1 -1
  49. package/dist/use-cases/commands/get-excel-used-range.d.ts +10 -0
  50. package/dist/use-cases/commands/get-group-calendar-view.d.ts +4 -0
  51. package/dist/use-cases/commands/get-group.d.ts +4 -0
  52. package/dist/use-cases/commands/get-mail-attachment.d.ts +4 -2
  53. package/dist/use-cases/commands/get-mail-message-mime.d.ts +8 -0
  54. package/dist/use-cases/commands/get-mail-message.d.ts +1 -5
  55. package/dist/use-cases/commands/get-mail-rule.d.ts +9 -0
  56. package/dist/use-cases/commands/get-mailbox-settings.d.ts +1 -1
  57. package/dist/use-cases/commands/get-my-calendar.d.ts +4 -0
  58. package/dist/use-cases/commands/get-my-manager.d.ts +9 -0
  59. package/dist/use-cases/commands/get-onenote-page-as-markdown.d.ts +10 -0
  60. package/dist/use-cases/commands/get-organization.d.ts +4 -0
  61. package/dist/use-cases/commands/get-shared-calendar-view.d.ts +4 -0
  62. package/dist/use-cases/commands/get-shared-mailbox-message.d.ts +4 -0
  63. package/dist/use-cases/commands/get-sharepoint-list-column.d.ts +4 -0
  64. package/dist/use-cases/commands/get-sharepoint-site-drive-by-id.d.ts +1 -6
  65. package/dist/use-cases/commands/get-sharepoint-site-list-item.d.ts +1 -7
  66. package/dist/use-cases/commands/get-sharepoint-site-list.d.ts +1 -6
  67. package/dist/use-cases/commands/get-sharepoint-site-onenote-page-content.d.ts +9 -0
  68. package/dist/use-cases/commands/get-sharepoint-site.d.ts +1 -5
  69. package/dist/use-cases/commands/get-site-analytics.d.ts +8 -0
  70. package/dist/use-cases/commands/get-specific-calendar-event.d.ts +1 -6
  71. package/dist/use-cases/commands/get-specific-calendar-view.d.ts +1 -7
  72. package/dist/use-cases/commands/get-team-channel.d.ts +3 -7
  73. package/dist/use-cases/commands/get-team-primary-channel.d.ts +4 -0
  74. package/dist/use-cases/commands/get-team.d.ts +1 -5
  75. package/dist/use-cases/commands/get-todo-task.d.ts +1 -6
  76. package/dist/use-cases/commands/get-user-manager.d.ts +10 -0
  77. package/dist/use-cases/commands/graph-scopes.d.ts +29 -0
  78. package/dist/use-cases/commands/inline-image-embedder.d.ts +20 -0
  79. package/dist/use-cases/commands/list-all-onenote-sections.d.ts +1 -3
  80. package/dist/use-cases/commands/list-calendar-event-instances.d.ts +3 -9
  81. package/dist/use-cases/commands/list-calendar-events-delta.d.ts +5 -3
  82. package/dist/use-cases/commands/list-calendar-events.d.ts +1 -3
  83. package/dist/use-cases/commands/list-calendar-group-calendars.d.ts +4 -0
  84. package/dist/use-cases/commands/list-calendar-groups.d.ts +4 -0
  85. package/dist/use-cases/commands/list-calendar-view-delta.d.ts +3 -2
  86. package/dist/use-cases/commands/list-calendars.d.ts +1 -3
  87. package/dist/use-cases/commands/list-chat-members.d.ts +3 -6
  88. package/dist/use-cases/commands/list-chats.d.ts +4 -0
  89. package/dist/use-cases/commands/list-conversation-messages.d.ts +12 -0
  90. package/dist/use-cases/commands/list-drive-item-permissions.d.ts +1 -6
  91. package/dist/use-cases/commands/list-drive-item-thumbnails.d.ts +4 -0
  92. package/dist/use-cases/commands/list-drive-item-versions.d.ts +1 -6
  93. package/dist/use-cases/commands/list-drives.d.ts +1 -3
  94. package/dist/use-cases/commands/list-excel-comments.d.ts +5 -0
  95. package/dist/use-cases/commands/list-excel-defined-names.d.ts +5 -0
  96. package/dist/use-cases/commands/list-excel-table-rows.d.ts +2 -7
  97. package/dist/use-cases/commands/list-excel-tables.d.ts +2 -6
  98. package/dist/use-cases/commands/list-excel-worksheet-charts.d.ts +5 -0
  99. package/dist/use-cases/commands/list-excel-worksheet-pivot-tables.d.ts +5 -0
  100. package/dist/use-cases/commands/list-excel-worksheets.d.ts +2 -6
  101. package/dist/use-cases/commands/list-focused-inbox-overrides.d.ts +4 -0
  102. package/dist/use-cases/commands/list-folder-files.d.ts +1 -6
  103. package/dist/use-cases/commands/list-followed-drive-items.d.ts +4 -0
  104. package/dist/use-cases/commands/list-group-conversations.d.ts +4 -0
  105. package/dist/use-cases/commands/list-group-events.d.ts +4 -0
  106. package/dist/use-cases/commands/list-group-members.d.ts +4 -0
  107. package/dist/use-cases/commands/list-group-owners.d.ts +4 -0
  108. package/dist/use-cases/commands/list-group-threads.d.ts +4 -0
  109. package/dist/use-cases/commands/list-groups.d.ts +4 -0
  110. package/dist/use-cases/commands/list-incomplete-planner-tasks.d.ts +10 -3
  111. package/dist/use-cases/commands/list-incomplete-todo-tasks.d.ts +8 -2
  112. package/dist/use-cases/commands/list-mail-attachments.d.ts +8 -2
  113. package/dist/use-cases/commands/list-mail-child-folders.d.ts +1 -5
  114. package/dist/use-cases/commands/list-mail-folder-messages-delta.d.ts +4 -0
  115. package/dist/use-cases/commands/list-mail-folder-messages.d.ts +1 -5
  116. package/dist/use-cases/commands/list-mail-folders.d.ts +1 -3
  117. package/dist/use-cases/commands/list-mail-messages.d.ts +1 -3
  118. package/dist/use-cases/commands/list-mail-rules.d.ts +1 -1
  119. package/dist/use-cases/commands/list-my-direct-reports.d.ts +13 -0
  120. package/dist/use-cases/commands/list-my-memberships.d.ts +4 -0
  121. package/dist/use-cases/commands/list-my-transitive-memberships.d.ts +4 -0
  122. package/dist/use-cases/commands/list-onenote-notebook-sections.d.ts +1 -5
  123. package/dist/use-cases/commands/list-onenote-notebooks.d.ts +1 -3
  124. package/dist/use-cases/commands/list-onenote-section-pages.d.ts +1 -5
  125. package/dist/use-cases/commands/list-outlook-categories.d.ts +6 -0
  126. package/dist/use-cases/commands/list-plan-buckets.d.ts +1 -5
  127. package/dist/use-cases/commands/list-planner-plans.d.ts +1 -3
  128. package/dist/use-cases/commands/list-planner-tasks.d.ts +1 -3
  129. package/dist/use-cases/commands/list-recent-files.d.ts +4 -0
  130. package/dist/use-cases/commands/list-recently-used-insights.d.ts +4 -0
  131. package/dist/use-cases/commands/list-relevant-people.d.ts +4 -0
  132. package/dist/use-cases/commands/list-room-lists.d.ts +4 -0
  133. package/dist/use-cases/commands/list-rooms.d.ts +4 -0
  134. package/dist/use-cases/commands/list-sensitivity-labels.d.ts +4 -0
  135. package/dist/use-cases/commands/list-shared-calendar-events.d.ts +4 -0
  136. package/dist/use-cases/commands/list-shared-insights.d.ts +4 -0
  137. package/dist/use-cases/commands/list-shared-mailbox-folder-messages.d.ts +4 -0
  138. package/dist/use-cases/commands/list-shared-mailbox-messages.d.ts +4 -0
  139. package/dist/use-cases/commands/list-shared-with-me.d.ts +6 -0
  140. package/dist/use-cases/commands/list-sharepoint-list-columns.d.ts +4 -0
  141. package/dist/use-cases/commands/list-sharepoint-list-item-versions.d.ts +4 -0
  142. package/dist/use-cases/commands/list-sharepoint-site-drives.d.ts +1 -5
  143. package/dist/use-cases/commands/list-sharepoint-site-list-items.d.ts +1 -6
  144. package/dist/use-cases/commands/list-sharepoint-site-lists.d.ts +7 -2
  145. package/dist/use-cases/commands/list-sharepoint-site-onenote-notebook-sections.d.ts +5 -0
  146. package/dist/use-cases/commands/list-sharepoint-site-onenote-notebooks.d.ts +5 -0
  147. package/dist/use-cases/commands/list-sharepoint-site-onenote-section-pages.d.ts +5 -0
  148. package/dist/use-cases/commands/list-sharepoint-site-pages.d.ts +4 -0
  149. package/dist/use-cases/commands/list-site-columns.d.ts +4 -0
  150. package/dist/use-cases/commands/list-site-content-types.d.ts +4 -0
  151. package/dist/use-cases/commands/list-specific-calendar-events.d.ts +1 -5
  152. package/dist/use-cases/commands/list-team-channels.d.ts +1 -5
  153. package/dist/use-cases/commands/list-team-installed-apps.d.ts +8 -0
  154. package/dist/use-cases/commands/list-todo-linked-resources.d.ts +1 -6
  155. package/dist/use-cases/commands/list-todo-task-lists.d.ts +1 -3
  156. package/dist/use-cases/commands/list-todo-tasks-delta.d.ts +8 -0
  157. package/dist/use-cases/commands/list-todo-tasks.d.ts +8 -2
  158. package/dist/use-cases/commands/list-trending-insights.d.ts +4 -0
  159. package/dist/use-cases/commands/list-user-direct-reports.d.ts +4 -0
  160. package/dist/use-cases/commands/markdown-pipeline.d.ts +23 -0
  161. package/dist/use-cases/commands/microsoft-search-query.d.ts +8 -0
  162. package/dist/use-cases/commands/my-quick-context.d.ts +6 -0
  163. package/dist/use-cases/commands/next-page.d.ts +2 -2
  164. package/dist/use-cases/commands/odata-query.d.ts +90 -0
  165. package/dist/use-cases/commands/office-to-markdown.d.ts +6 -0
  166. package/dist/use-cases/commands/onenote-5k-limit.d.ts +3 -0
  167. package/dist/use-cases/commands/output-path.d.ts +37 -0
  168. package/dist/use-cases/commands/scopes-check.d.ts +6 -0
  169. package/dist/use-cases/commands/search-mail-messages.d.ts +3 -6
  170. package/dist/use-cases/commands/search-my-documents.d.ts +1 -5
  171. package/dist/use-cases/commands/search-onedrive-files.d.ts +1 -8
  172. package/dist/use-cases/commands/search-onenote-pages.d.ts +7 -2
  173. package/dist/use-cases/commands/search-sharepoint-sites-by-name.d.ts +1 -5
  174. package/dist/use-cases/commands/sharepoint-link-extractor.d.ts +14 -0
  175. package/dist/use-cases/commands/text-passthrough.d.ts +24 -0
  176. package/dist/use-cases/commands/version-id.d.ts +18 -0
  177. package/dist/use-cases/commands/xlsx-to-markdown.d.ts +6 -0
  178. package/dist/use-cases/ports/filesystem.d.ts +8 -0
  179. package/docs/commands.json +5365 -489
  180. package/package.json +9 -2
  181. /package/dist/use-cases/commands/{search-sharepoint-sites.d.ts → list-mail-folders-delta.d.ts} +0 -0
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Render an itemAttachment's inner resource (a `microsoft.graph.message`,
3
+ * `event`, or `contact`) directly to markdown — no RTF round-trip, no
4
+ * Graph conversion call.
5
+ *
6
+ * Each renderer emits a small header block (`**Subject:** …`, etc.) and
7
+ * appends the body run through htmlToMarkdown when the inner resource
8
+ * has one. Callers (the convert-mail-attachment-to-markdown command)
9
+ * choose the right renderer by branching on `item['@odata.type']`.
10
+ */
11
+ type EmailAddress = {
12
+ readonly name?: string;
13
+ readonly address?: string;
14
+ };
15
+ type Recipient = {
16
+ readonly emailAddress?: EmailAddress;
17
+ };
18
+ type Body = {
19
+ readonly contentType?: string;
20
+ readonly content?: string;
21
+ };
22
+ type EmbeddedMessage = {
23
+ readonly subject?: string;
24
+ readonly from?: Recipient;
25
+ readonly toRecipients?: ReadonlyArray<Recipient>;
26
+ readonly sentDateTime?: string;
27
+ readonly body?: Body;
28
+ };
29
+ declare const embeddedMessageToMarkdown: (m: EmbeddedMessage) => string;
30
+ type EventDateTime = {
31
+ readonly dateTime?: string;
32
+ readonly timeZone?: string;
33
+ };
34
+ type Location = {
35
+ readonly displayName?: string;
36
+ };
37
+ type EmbeddedEvent = {
38
+ readonly subject?: string;
39
+ readonly start?: EventDateTime;
40
+ readonly end?: EventDateTime;
41
+ readonly location?: Location;
42
+ readonly organizer?: Recipient;
43
+ readonly attendees?: ReadonlyArray<Recipient>;
44
+ readonly body?: Body;
45
+ };
46
+ declare const embeddedEventToMarkdown: (e: EmbeddedEvent) => string;
47
+ type EmbeddedContact = {
48
+ readonly displayName?: string;
49
+ readonly emailAddresses?: ReadonlyArray<{
50
+ address?: string;
51
+ }>;
52
+ readonly businessPhones?: ReadonlyArray<string>;
53
+ readonly mobilePhone?: string;
54
+ readonly companyName?: string;
55
+ readonly jobTitle?: string;
56
+ };
57
+ declare const embeddedContactToMarkdown: (c: EmbeddedContact) => string;
58
+ export { embeddedContactToMarkdown, embeddedEventToMarkdown, embeddedMessageToMarkdown };
59
+ export type { EmbeddedContact, EmbeddedEvent, EmbeddedMessage };
@@ -0,0 +1,6 @@
1
+ import type { Result } from '../../domain/result.js';
2
+ import type { GraphClient, GraphError } from '../../infra/graph-client.js';
3
+ declare const mapWacError: (e: GraphError) => GraphError;
4
+ type ExecuteFn = (graph: GraphClient, params: Record<string, string>) => Promise<Result<unknown, GraphError>>;
5
+ declare const wrapExcelExecute: (inner: ExecuteFn) => ExecuteFn;
6
+ export { mapWacError, wrapExcelExecute };
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ import type { Result } from '../../domain/result.js';
3
+ import type { GraphClient, GraphError } from '../../infra/graph-client.js';
4
+ import type { CommandMeta } from './command-types.js';
5
+ type ResolvedLink = {
6
+ readonly url: string;
7
+ readonly driveId?: string;
8
+ readonly itemId?: string;
9
+ readonly name?: string;
10
+ readonly webUrl?: string;
11
+ readonly error?: string;
12
+ };
13
+ type LinkExtractionSummary = {
14
+ readonly messageId: string;
15
+ readonly subject?: string;
16
+ readonly links: ReadonlyArray<ResolvedLink>;
17
+ readonly truncated: boolean;
18
+ readonly skippedCount: number;
19
+ };
20
+ declare const schema: z.ZodObject<{
21
+ messageId: z.ZodString;
22
+ }, z.core.$strip>;
23
+ declare const execute: (graph: GraphClient, params: Record<string, string>) => Promise<Result<LinkExtractionSummary, GraphError>>;
24
+ declare const meta: CommandMeta;
25
+ export { execute, meta, schema };
26
+ export type { LinkExtractionSummary, ResolvedLink };
@@ -0,0 +1,56 @@
1
+ import type { Result } from '../../domain/result.js';
2
+ import type { GraphClient, GraphError } from '../../infra/graph-client.js';
3
+ /**
4
+ * Helpers that consolidate the "Graph hands you a 302, follow the CDN
5
+ * redirect, return the bytes" dance used by every command that needs
6
+ * raw file content.
7
+ *
8
+ * Real Graph responses for `/drives/{id}/items/{id}/content` (and the
9
+ * `?format=pdf` / `?format=html` variants) are 302 redirects to a CDN URL.
10
+ * `getBinary` captures the redirect and returns
11
+ * `{ '@microsoft.graph.downloadUrl': '...' }` — NOT inline bytes. To get
12
+ * the bytes we have to follow the URL via `fetchUrl`, which is host-allow-
13
+ * listed for SharePoint / ODSP / Microsoft media-transform domains.
14
+ *
15
+ * Two shapes for the return value depending on what the caller needs:
16
+ * - `fetchRawBytes(graph, path, opts)` → `Uint8Array` for local
17
+ * conversion (mammoth / sheetjs / turndown).
18
+ * - `inlineBinary(graph, path, opts)` → `{ contentType, size, base64 }`
19
+ * for "stream the bytes back through the JSON envelope" workflows
20
+ * (PDF conversion, image attachments, anything the LLM consumer
21
+ * either pipes to disk or saves via --output-path).
22
+ *
23
+ * The historical-version commands pass `elevated: true` so that the
24
+ * initial Graph call is signed with an M365ChatClient token (on the
25
+ * ODSP `logicalPermissions` allow-list); without that, Graph's 302
26
+ * redirects to a streamContent URL whose embedded tempauth is signed
27
+ * by Teams web client identity and rejected by SharePoint with 403.
28
+ */
29
+ export type FetchOptions = {
30
+ readonly elevated?: boolean;
31
+ };
32
+ export type InlineBinary = {
33
+ readonly contentType: string;
34
+ readonly size: number;
35
+ readonly base64: string;
36
+ };
37
+ export declare const fetchRawBytes: (graph: GraphClient, contentPath: string, opts?: FetchOptions) => Promise<Result<Uint8Array, GraphError>>;
38
+ export declare const inlineBinary: (graph: GraphClient, contentPath: string, opts?: FetchOptions) => Promise<Result<InlineBinary, GraphError>>;
39
+ /**
40
+ * Detect Graph's silent-raw-bytes fallback on `?format=pdf` requests.
41
+ *
42
+ * When `format=pdf` succeeds, the response contentType is `application/pdf`.
43
+ * For some inputs (notably historical-version pptx on certain tenants, or
44
+ * reference-attachment edge cases) Graph silently falls back to returning
45
+ * the raw source bytes — same envelope shape, but contentType is the
46
+ * source MIME (or `application/octet-stream`). The audit (round-5 #2)
47
+ * caught this happening on `download-drive-item-version-as-pdf` for v79
48
+ * of a pptx: the response said `contentType: "application/octet-stream"`
49
+ * with the exact source byte size, and an LLM that saved it as `.pdf`
50
+ * would have had a corrupt file.
51
+ *
52
+ * Tag the result with `passthrough: true` and a sharp note so the LLM
53
+ * knows the conversion didn't run and saves the bytes with the source
54
+ * extension instead of `.pdf`.
55
+ */
56
+ export declare const tagPdfPassthrough: (result: Result<InlineBinary, GraphError>, sourceLabel: string) => Result<unknown, GraphError>;
@@ -0,0 +1,14 @@
1
+ import type { z } from 'zod';
2
+ /**
3
+ * Render a Zod validation error as a single human-readable line keyed off the
4
+ * CLI flag name. The audit's gripe with the previous formatter
5
+ * (`messageRuleId: Too small: expected string to have >=1 characters`) was
6
+ * that an LLM piping the JSON envelope through jq sees Zod jargon plus the
7
+ * camelCase schema key — neither matches what the user typed on the command
8
+ * line. This formatter prepends `--<kebab-case-flag>` and translates the two
9
+ * common Zod codes to plain English: missing values become `is missing`,
10
+ * empty strings become `is empty`. Multi-issue failures join with `; ` to
11
+ * stay on one line.
12
+ */
13
+ declare const formatZodError: (error: z.ZodError) => string;
14
+ export { formatZodError };
@@ -1,8 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- eventId: z.ZodString;
5
- }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
7
3
  declare const meta: CommandMeta;
8
4
  export { execute, meta, schema };
@@ -1,9 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- startDateTime: z.ZodString;
5
- endDateTime: z.ZodString;
6
- }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
8
3
  declare const meta: CommandMeta;
9
4
  export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{
4
+ chatId: z.ZodString;
5
+ }, z.core.$strip>;
6
+ declare const execute: import("./command-types.js").CommandExecute;
7
+ declare const meta: CommandMeta;
8
+ export { execute, meta, schema };
@@ -1,6 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{}, z.core.$strict>;
4
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
5
3
  declare const meta: CommandMeta;
6
4
  export { execute, meta, schema };
@@ -1,9 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- driveId: z.ZodString;
5
- itemId: z.ZodString;
6
- }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
8
3
  declare const meta: CommandMeta;
9
4
  export { execute, meta, schema };
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{
4
+ driveId: z.ZodString;
5
+ itemId: z.ZodString;
6
+ }, z.core.$strip>;
7
+ declare const execute: import("./command-types.js").CommandExecute;
8
+ declare const meta: CommandMeta;
9
+ export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -1,9 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- driveId: z.ZodString;
5
- itemId: z.ZodString;
6
- }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
8
3
  declare const meta: CommandMeta;
9
4
  export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -1,8 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- driveId: z.ZodString;
5
- }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
7
3
  declare const meta: CommandMeta;
8
4
  export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -6,6 +6,6 @@ declare const schema: z.ZodObject<{
6
6
  worksheetId: z.ZodString;
7
7
  address: z.ZodString;
8
8
  }, z.core.$strip>;
9
- declare const execute: import("./command-types.js").CommandExecute;
9
+ declare const execute: (graph: import("../../index.js").GraphClient, params: Record<string, string>) => Promise<import("../../index.js").Result<unknown, import("../../index.js").GraphError>>;
10
10
  declare const meta: CommandMeta;
11
11
  export { execute, meta, schema };
@@ -5,6 +5,6 @@ declare const schema: z.ZodObject<{
5
5
  itemId: z.ZodString;
6
6
  tableId: z.ZodString;
7
7
  }, z.core.$strip>;
8
- declare const execute: import("./command-types.js").CommandExecute;
8
+ declare const execute: (graph: import("../../index.js").GraphClient, params: Record<string, string>) => Promise<import("../../index.js").Result<unknown, import("../../index.js").GraphError>>;
9
9
  declare const meta: CommandMeta;
10
10
  export { execute, meta, schema };
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{
4
+ driveId: z.ZodString;
5
+ itemId: z.ZodString;
6
+ worksheetId: z.ZodString;
7
+ }, z.core.$strip>;
8
+ declare const execute: (graph: import("../../index.js").GraphClient, params: Record<string, string>) => Promise<import("../../index.js").Result<unknown, import("../../index.js").GraphError>>;
9
+ declare const meta: CommandMeta;
10
+ export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -1,9 +1,11 @@
1
1
  import { z } from 'zod';
2
- import type { CommandMeta } from './command-types.js';
2
+ import type { Command, CommandMeta } from './command-types.js';
3
3
  declare const schema: z.ZodObject<{
4
4
  messageId: z.ZodString;
5
5
  attachmentId: z.ZodString;
6
+ select: z.ZodOptional<z.ZodString>;
7
+ expand: z.ZodOptional<z.ZodString>;
6
8
  }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
9
+ declare const execute: Command['execute'];
8
10
  declare const meta: CommandMeta;
9
11
  export { execute, meta, schema };
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import type { Command, CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{
4
+ messageId: z.ZodString;
5
+ }, z.core.$strip>;
6
+ declare const execute: Command['execute'];
7
+ declare const meta: CommandMeta;
8
+ export { execute, meta, schema };
@@ -1,8 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- messageId: z.ZodString;
5
- }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
7
3
  declare const meta: CommandMeta;
8
4
  export { execute, meta, schema };
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{
4
+ mailFolderId: z.ZodDefault<z.ZodString>;
5
+ messageRuleId: z.ZodString;
6
+ }, z.core.$strip>;
7
+ declare const execute: import("./command-types.js").CommandExecute;
8
+ declare const meta: CommandMeta;
9
+ export { execute, meta, schema };
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{}, z.core.$strict>;
3
+ declare const schema: z.ZodObject<{}, z.core.$strip>;
4
4
  declare const execute: import("./command-types.js").CommandExecute;
5
5
  declare const meta: CommandMeta;
6
6
  export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import type { Command, CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{
4
+ select: z.ZodOptional<z.ZodString>;
5
+ expand: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>;
7
+ declare const execute: Command['execute'];
8
+ declare const meta: CommandMeta;
9
+ export { execute, meta, schema };
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import type { Result } from '../../domain/result.js';
3
+ import type { GraphClient, GraphError } from '../../infra/graph-client.js';
4
+ import type { CommandMeta } from './command-types.js';
5
+ declare const schema: z.ZodObject<{
6
+ onenotePageId: z.ZodString;
7
+ }, z.core.$strip>;
8
+ declare const execute: (graph: GraphClient, params: Record<string, string>) => Promise<Result<unknown, GraphError>>;
9
+ declare const meta: CommandMeta;
10
+ export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -1,9 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- siteId: z.ZodString;
5
- driveId: z.ZodString;
6
- }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
8
3
  declare const meta: CommandMeta;
9
4
  export { execute, meta, schema };
@@ -1,10 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- siteId: z.ZodString;
5
- listId: z.ZodString;
6
- listItemId: z.ZodString;
7
- }, z.core.$strip>;
8
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
9
3
  declare const meta: CommandMeta;
10
4
  export { execute, meta, schema };
@@ -1,9 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- siteId: z.ZodString;
5
- listId: z.ZodString;
6
- }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
8
3
  declare const meta: CommandMeta;
9
4
  export { execute, meta, schema };
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{
4
+ siteId: z.ZodString;
5
+ onenotePageId: z.ZodString;
6
+ }, z.core.$strip>;
7
+ declare const execute: import("./command-types.js").CommandExecute;
8
+ declare const meta: CommandMeta;
9
+ export { execute, meta, schema };
@@ -1,8 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- siteId: z.ZodString;
5
- }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
7
3
  declare const meta: CommandMeta;
8
4
  export { execute, meta, schema };
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{
4
+ siteId: z.ZodString;
5
+ }, z.core.$strip>;
6
+ declare const execute: import("./command-types.js").CommandExecute;
7
+ declare const meta: CommandMeta;
8
+ export { execute, meta, schema };
@@ -1,9 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- calendarId: z.ZodString;
5
- eventId: z.ZodString;
6
- }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
8
3
  declare const meta: CommandMeta;
9
4
  export { execute, meta, schema };
@@ -1,10 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- calendarId: z.ZodString;
5
- startDateTime: z.ZodString;
6
- endDateTime: z.ZodString;
7
- }, z.core.$strip>;
8
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
9
3
  declare const meta: CommandMeta;
10
4
  export { execute, meta, schema };
@@ -1,9 +1,5 @@
1
- import { z } from 'zod';
2
- import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- teamId: z.ZodString;
5
- channelId: z.ZodString;
6
- }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
1
+ import type { Command, CommandMeta } from './command-types.js';
2
+ declare const execute: Command['execute'];
3
+ declare const schema: import("./command-types.js").CommandSchema;
8
4
  declare const meta: CommandMeta;
9
5
  export { execute, meta, schema };
@@ -0,0 +1,4 @@
1
+ import type { CommandMeta } from './command-types.js';
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
3
+ declare const meta: CommandMeta;
4
+ export { execute, meta, schema };
@@ -1,8 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- teamId: z.ZodString;
5
- }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
7
3
  declare const meta: CommandMeta;
8
4
  export { execute, meta, schema };
@@ -1,9 +1,4 @@
1
- import { z } from 'zod';
2
1
  import type { CommandMeta } from './command-types.js';
3
- declare const schema: z.ZodObject<{
4
- todoTaskListId: z.ZodString;
5
- todoTaskId: z.ZodString;
6
- }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
2
+ declare const execute: import("./command-types.js").CommandExecute, schema: import("./command-types.js").CommandSchema;
8
3
  declare const meta: CommandMeta;
9
4
  export { execute, meta, schema };
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import type { Command, CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{
4
+ userId: z.ZodString;
5
+ select: z.ZodOptional<z.ZodString>;
6
+ expand: z.ZodOptional<z.ZodString>;
7
+ }, z.core.$strip>;
8
+ declare const execute: Command['execute'];
9
+ declare const meta: CommandMeta;
10
+ export { execute, meta, schema };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Central Microsoft Graph permission scope map (audit round-8 Wave C).
3
+ *
4
+ * Source of truth: Microsoft Graph permissions reference
5
+ * (https://learn.microsoft.com/en-us/graph/permissions-reference). Each
6
+ * command's `graphDocsUrl` Learn page documents the required scope(s).
7
+ *
8
+ * Convention: list the LEAST-PRIVILEGED scope Microsoft documents for the
9
+ * delegated permissions path. When multiple alternatives exist (e.g.
10
+ * `Mail.Read` OR `Mail.ReadBasic` OR `Mail.ReadWrite`) we pick the most
11
+ * read-only choice. The basic Teams web client token grants ~30 scopes
12
+ * (`User.Read`, `Mail.Read`, `Calendars.Read`, `Files.Read`, `Tasks.Read`,
13
+ * `Notes.Read.All`, `Sites.Read.All`, `Group.Read.All`, `Team.ReadBasic.All`,
14
+ * `Channel.ReadBasic.All`, `People.Read`, `MailboxSettings.Read`, etc.). The
15
+ * M365ChatClient elevated identity adds `Chat.ReadBasic` and ODSP allow-list
16
+ * access (covered by `needsElevatedToken: true` per command).
17
+ *
18
+ * Surface: this map is read by `docs.ts toEntry` at manifest-render time
19
+ * and merged into each command's `scopesRequired`. Per-command inline
20
+ * `meta.scopesRequired` takes precedence (so command files can override).
21
+ * An LLM uses this with `scopes-check` to predict 403s pre-flight.
22
+ *
23
+ * Lifecycle / meta commands intentionally absent (empty array would imply
24
+ * "no scope needed" which is true for them but also true of `update`,
25
+ * `docs`, `help-json` — none of which call Graph).
26
+ */
27
+ declare const GRAPH_SCOPES_BY_COMMAND: Readonly<Record<string, ReadonlyArray<string>>>;
28
+ declare const lookupScopes: (commandName: string) => ReadonlyArray<string> | undefined;
29
+ export { GRAPH_SCOPES_BY_COMMAND, lookupScopes };