ask-marcel-office-cli 0.1.0 → 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 (212) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/README.md +319 -120
  3. package/dist/cli.js +85117 -1741
  4. package/dist/commands.json +6312 -0
  5. package/dist/composition/build-deps.d.ts +6 -1
  6. package/dist/composition/cli.d.ts +14 -6
  7. package/dist/composition/package-manager.d.ts +2 -0
  8. package/dist/index.d.ts +6 -1
  9. package/dist/index.js +93317 -10724
  10. package/dist/infra/auth.d.ts +31 -3
  11. package/dist/infra/browser-auth.d.ts +106 -2
  12. package/dist/infra/graph-client.d.ts +63 -2
  13. package/dist/infra/mammoth-adapter.d.ts +4 -0
  14. package/dist/infra/playwright-loader.d.ts +4 -0
  15. package/dist/infra/process-runner-bun.d.ts +2 -0
  16. package/dist/infra/process-runner-node.d.ts +2 -0
  17. package/dist/infra/sheetjs-adapter.d.ts +9 -0
  18. package/dist/infra/turndown-adapter.d.ts +4 -0
  19. package/dist/presenter/output-text.d.ts +2 -0
  20. package/dist/presenter/output.d.ts +4 -2
  21. package/dist/use-cases/commands/build-command.d.ts +46 -2
  22. package/dist/use-cases/commands/command-types.d.ts +115 -1
  23. package/dist/use-cases/commands/convert-mail-attachment-to-markdown.d.ts +11 -0
  24. package/dist/use-cases/commands/convert-mail-attachment-to-pdf.d.ts +11 -0
  25. package/dist/use-cases/commands/convert-mail-to-markdown.d.ts +10 -0
  26. package/dist/use-cases/commands/docs-render.d.ts +31 -0
  27. package/dist/use-cases/commands/docs.d.ts +10 -0
  28. package/dist/use-cases/commands/docx-to-markdown.d.ts +11 -0
  29. package/dist/use-cases/commands/download-drive-item-as-markdown.d.ts +11 -0
  30. package/dist/use-cases/commands/download-drive-item-as-pdf.d.ts +11 -0
  31. package/dist/use-cases/commands/download-drive-item-version-as-markdown.d.ts +12 -0
  32. package/dist/use-cases/commands/download-drive-item-version-as-pdf.d.ts +12 -0
  33. package/dist/use-cases/commands/download-drive-item-version-content.d.ts +12 -0
  34. package/dist/use-cases/commands/download-onedrive-file-content.d.ts +5 -3
  35. package/dist/use-cases/commands/embedded-item-to-markdown.d.ts +59 -0
  36. package/dist/use-cases/commands/excel-error.d.ts +6 -0
  37. package/dist/use-cases/commands/extract-sharepoint-links-in-mail.d.ts +26 -0
  38. package/dist/use-cases/commands/fetch-raw-bytes.d.ts +56 -0
  39. package/dist/use-cases/commands/format-zod-error.d.ts +14 -0
  40. package/dist/use-cases/commands/get-calendar-event.d.ts +4 -6
  41. package/dist/use-cases/commands/get-calendar-view.d.ts +4 -4
  42. package/dist/use-cases/commands/get-channel-files-folder.d.ts +4 -7
  43. package/dist/use-cases/commands/get-chat.d.ts +3 -1
  44. package/dist/use-cases/commands/get-current-user.d.ts +4 -4
  45. package/dist/use-cases/commands/get-drive-delta.d.ts +4 -7
  46. package/dist/use-cases/commands/get-drive-item-analytics.d.ts +9 -0
  47. package/dist/use-cases/commands/get-drive-item-created-by-user.d.ts +4 -0
  48. package/dist/use-cases/commands/get-drive-item-last-modified-by-user.d.ts +4 -0
  49. package/dist/use-cases/commands/get-drive-item-list-item.d.ts +4 -0
  50. package/dist/use-cases/commands/get-drive-item.d.ts +4 -7
  51. package/dist/use-cases/commands/get-drive-root-delta.d.ts +4 -0
  52. package/dist/use-cases/commands/get-drive-root-item.d.ts +4 -6
  53. package/dist/use-cases/commands/get-drive-special-folder.d.ts +4 -0
  54. package/dist/use-cases/commands/get-excel-range.d.ts +4 -2
  55. package/dist/use-cases/commands/get-excel-table.d.ts +4 -2
  56. package/dist/use-cases/commands/get-excel-used-range.d.ts +10 -0
  57. package/dist/use-cases/commands/get-group-calendar-view.d.ts +4 -0
  58. package/dist/use-cases/commands/get-group.d.ts +4 -0
  59. package/dist/use-cases/commands/get-mail-attachment.d.ts +6 -2
  60. package/dist/use-cases/commands/get-mail-message-mime.d.ts +8 -0
  61. package/dist/use-cases/commands/get-mail-message.d.ts +4 -6
  62. package/dist/use-cases/commands/get-mail-rule.d.ts +9 -0
  63. package/dist/use-cases/commands/get-mailbox-settings.d.ts +4 -2
  64. package/dist/use-cases/commands/get-my-calendar.d.ts +4 -0
  65. package/dist/use-cases/commands/get-my-manager.d.ts +9 -0
  66. package/dist/use-cases/commands/get-my-profile-photo.d.ts +6 -2
  67. package/dist/use-cases/commands/get-onenote-page-as-markdown.d.ts +10 -0
  68. package/dist/use-cases/commands/get-onenote-page-content.d.ts +6 -2
  69. package/dist/use-cases/commands/get-organization.d.ts +4 -0
  70. package/dist/use-cases/commands/get-planner-bucket.d.ts +3 -1
  71. package/dist/use-cases/commands/get-planner-plan.d.ts +3 -1
  72. package/dist/use-cases/commands/get-planner-task-details.d.ts +3 -1
  73. package/dist/use-cases/commands/get-planner-task.d.ts +3 -1
  74. package/dist/use-cases/commands/get-shared-calendar-view.d.ts +4 -0
  75. package/dist/use-cases/commands/get-shared-mailbox-message.d.ts +4 -0
  76. package/dist/use-cases/commands/get-sharepoint-list-column.d.ts +4 -0
  77. package/dist/use-cases/commands/get-sharepoint-site-by-path.d.ts +4 -2
  78. package/dist/use-cases/commands/get-sharepoint-site-drive-by-id.d.ts +4 -7
  79. package/dist/use-cases/commands/get-sharepoint-site-list-item.d.ts +4 -8
  80. package/dist/use-cases/commands/get-sharepoint-site-list.d.ts +4 -7
  81. package/dist/use-cases/commands/{list-sharepoint-site-items.d.ts → get-sharepoint-site-onenote-page-content.d.ts} +4 -1
  82. package/dist/use-cases/commands/get-sharepoint-site.d.ts +4 -6
  83. package/dist/use-cases/commands/{get-sharepoint-site-item.d.ts → get-site-analytics.d.ts} +3 -2
  84. package/dist/use-cases/commands/get-specific-calendar-event.d.ts +4 -7
  85. package/dist/use-cases/commands/get-specific-calendar-view.d.ts +4 -6
  86. package/dist/use-cases/commands/get-team-channel.d.ts +5 -7
  87. package/dist/use-cases/commands/get-team-primary-channel.d.ts +4 -0
  88. package/dist/use-cases/commands/get-team.d.ts +4 -6
  89. package/dist/use-cases/commands/get-todo-task.d.ts +4 -7
  90. package/dist/use-cases/commands/get-user-manager.d.ts +10 -0
  91. package/dist/use-cases/commands/graph-scopes.d.ts +29 -0
  92. package/dist/use-cases/commands/inline-image-embedder.d.ts +20 -0
  93. package/dist/use-cases/commands/list-all-onenote-sections.d.ts +4 -4
  94. package/dist/use-cases/commands/list-calendar-event-instances.d.ts +5 -7
  95. package/dist/use-cases/commands/list-calendar-events-delta.d.ts +7 -3
  96. package/dist/use-cases/commands/list-calendar-events.d.ts +4 -4
  97. package/dist/use-cases/commands/list-calendar-group-calendars.d.ts +4 -0
  98. package/dist/use-cases/commands/list-calendar-groups.d.ts +4 -0
  99. package/dist/use-cases/commands/list-calendar-view-delta.d.ts +9 -3
  100. package/dist/use-cases/commands/list-calendars.d.ts +4 -4
  101. package/dist/use-cases/commands/list-chat-members.d.ts +5 -6
  102. package/dist/use-cases/commands/list-chats.d.ts +4 -4
  103. package/dist/use-cases/commands/list-conversation-messages.d.ts +12 -0
  104. package/dist/use-cases/commands/list-drive-item-permissions.d.ts +4 -7
  105. package/dist/use-cases/commands/list-drive-item-thumbnails.d.ts +4 -0
  106. package/dist/use-cases/commands/list-drive-item-versions.d.ts +4 -7
  107. package/dist/use-cases/commands/list-drives.d.ts +4 -4
  108. package/dist/use-cases/commands/list-excel-comments.d.ts +5 -0
  109. package/dist/use-cases/commands/list-excel-defined-names.d.ts +5 -0
  110. package/dist/use-cases/commands/list-excel-table-rows.d.ts +5 -8
  111. package/dist/use-cases/commands/list-excel-tables.d.ts +5 -7
  112. package/dist/use-cases/commands/list-excel-worksheet-charts.d.ts +5 -0
  113. package/dist/use-cases/commands/list-excel-worksheet-pivot-tables.d.ts +5 -0
  114. package/dist/use-cases/commands/list-excel-worksheets.d.ts +5 -7
  115. package/dist/use-cases/commands/list-focused-inbox-overrides.d.ts +4 -0
  116. package/dist/use-cases/commands/list-folder-files.d.ts +4 -7
  117. package/dist/use-cases/commands/list-followed-drive-items.d.ts +4 -0
  118. package/dist/use-cases/commands/list-group-conversations.d.ts +4 -0
  119. package/dist/use-cases/commands/list-group-events.d.ts +4 -0
  120. package/dist/use-cases/commands/list-group-members.d.ts +4 -0
  121. package/dist/use-cases/commands/list-group-owners.d.ts +4 -0
  122. package/dist/use-cases/commands/list-group-threads.d.ts +4 -0
  123. package/dist/use-cases/commands/list-groups.d.ts +4 -0
  124. package/dist/use-cases/commands/list-incomplete-planner-tasks.d.ts +13 -0
  125. package/dist/use-cases/commands/list-incomplete-todo-tasks.d.ts +14 -0
  126. package/dist/use-cases/commands/list-joined-teams.d.ts +3 -1
  127. package/dist/use-cases/commands/list-mail-attachments.d.ts +10 -2
  128. package/dist/use-cases/commands/list-mail-child-folders.d.ts +4 -6
  129. package/dist/use-cases/commands/list-mail-folder-messages-delta.d.ts +4 -0
  130. package/dist/use-cases/commands/list-mail-folder-messages.d.ts +4 -6
  131. package/dist/use-cases/commands/{get-sharepoint-sites-delta.d.ts → list-mail-folders-delta.d.ts} +3 -1
  132. package/dist/use-cases/commands/list-mail-folders.d.ts +4 -4
  133. package/dist/use-cases/commands/list-mail-messages.d.ts +4 -4
  134. package/dist/use-cases/commands/list-mail-rules.d.ts +4 -2
  135. package/dist/use-cases/commands/list-my-direct-reports.d.ts +13 -0
  136. package/dist/use-cases/commands/list-my-memberships.d.ts +4 -0
  137. package/dist/use-cases/commands/list-my-transitive-memberships.d.ts +4 -0
  138. package/dist/use-cases/commands/list-onenote-notebook-sections.d.ts +4 -6
  139. package/dist/use-cases/commands/list-onenote-notebooks.d.ts +4 -4
  140. package/dist/use-cases/commands/list-onenote-section-pages.d.ts +4 -6
  141. package/dist/use-cases/commands/{list-outlook-contacts.d.ts → list-outlook-categories.d.ts} +3 -1
  142. package/dist/use-cases/commands/list-plan-buckets.d.ts +4 -6
  143. package/dist/use-cases/commands/list-plan-tasks.d.ts +3 -1
  144. package/dist/use-cases/commands/list-planner-plans.d.ts +4 -0
  145. package/dist/use-cases/commands/list-planner-tasks.d.ts +4 -4
  146. package/dist/use-cases/commands/list-recent-files.d.ts +4 -0
  147. package/dist/use-cases/commands/list-recently-used-insights.d.ts +4 -0
  148. package/dist/use-cases/commands/list-relevant-people.d.ts +4 -0
  149. package/dist/use-cases/commands/list-room-lists.d.ts +4 -0
  150. package/dist/use-cases/commands/list-rooms.d.ts +4 -0
  151. package/dist/use-cases/commands/list-sensitivity-labels.d.ts +4 -0
  152. package/dist/use-cases/commands/list-shared-calendar-events.d.ts +4 -0
  153. package/dist/use-cases/commands/list-shared-insights.d.ts +4 -0
  154. package/dist/use-cases/commands/list-shared-mailbox-folder-messages.d.ts +4 -0
  155. package/dist/use-cases/commands/list-shared-mailbox-messages.d.ts +4 -0
  156. package/dist/use-cases/commands/{search-sharepoint-sites.d.ts → list-shared-with-me.d.ts} +3 -1
  157. package/dist/use-cases/commands/list-sharepoint-list-columns.d.ts +4 -0
  158. package/dist/use-cases/commands/list-sharepoint-list-item-versions.d.ts +4 -0
  159. package/dist/use-cases/commands/list-sharepoint-site-drives.d.ts +4 -6
  160. package/dist/use-cases/commands/list-sharepoint-site-list-items.d.ts +4 -7
  161. package/dist/use-cases/commands/list-sharepoint-site-lists.d.ts +9 -2
  162. package/dist/use-cases/commands/list-sharepoint-site-onenote-notebook-sections.d.ts +5 -0
  163. package/dist/use-cases/commands/list-sharepoint-site-onenote-notebooks.d.ts +5 -0
  164. package/dist/use-cases/commands/list-sharepoint-site-onenote-section-pages.d.ts +5 -0
  165. package/dist/use-cases/commands/list-sharepoint-site-pages.d.ts +4 -0
  166. package/dist/use-cases/commands/list-site-columns.d.ts +4 -0
  167. package/dist/use-cases/commands/list-site-content-types.d.ts +4 -0
  168. package/dist/use-cases/commands/list-specific-calendar-events.d.ts +4 -6
  169. package/dist/use-cases/commands/list-team-channels.d.ts +4 -6
  170. package/dist/use-cases/commands/{list-channel-messages.d.ts → list-team-installed-apps.d.ts} +3 -2
  171. package/dist/use-cases/commands/list-todo-linked-resources.d.ts +4 -7
  172. package/dist/use-cases/commands/list-todo-task-lists.d.ts +4 -4
  173. package/dist/use-cases/commands/list-todo-tasks-delta.d.ts +8 -0
  174. package/dist/use-cases/commands/list-todo-tasks.d.ts +10 -2
  175. package/dist/use-cases/commands/list-trending-insights.d.ts +4 -0
  176. package/dist/use-cases/commands/list-user-direct-reports.d.ts +4 -0
  177. package/dist/use-cases/commands/markdown-pipeline.d.ts +23 -0
  178. package/dist/use-cases/commands/microsoft-search-query.d.ts +8 -0
  179. package/dist/use-cases/commands/my-quick-context.d.ts +6 -0
  180. package/dist/use-cases/commands/next-page.d.ts +8 -0
  181. package/dist/use-cases/commands/odata-query.d.ts +90 -0
  182. package/dist/use-cases/commands/office-to-markdown.d.ts +6 -0
  183. package/dist/use-cases/commands/onenote-5k-limit.d.ts +3 -0
  184. package/dist/use-cases/commands/output-path.d.ts +37 -0
  185. package/dist/use-cases/commands/scopes-check.d.ts +6 -0
  186. package/dist/use-cases/commands/search-mail-messages.d.ts +5 -0
  187. package/dist/use-cases/commands/search-my-documents.d.ts +4 -0
  188. package/dist/use-cases/commands/search-onedrive-files.d.ts +4 -9
  189. package/dist/use-cases/commands/search-onenote-pages.d.ts +13 -0
  190. package/dist/use-cases/commands/search-sharepoint-sites-by-name.d.ts +4 -0
  191. package/dist/use-cases/commands/sharepoint-link-extractor.d.ts +14 -0
  192. package/dist/use-cases/commands/text-passthrough.d.ts +24 -0
  193. package/dist/use-cases/commands/update.d.ts +16 -0
  194. package/dist/use-cases/commands/version-id.d.ts +18 -0
  195. package/dist/use-cases/commands/xlsx-to-markdown.d.ts +6 -0
  196. package/dist/use-cases/ports/filesystem.d.ts +8 -0
  197. package/dist/use-cases/ports/process-runner.d.ts +11 -0
  198. package/docs/commands.json +6312 -0
  199. package/package.json +13 -3
  200. package/dist/use-cases/commands/get-channel-message-hosted-content.d.ts +0 -9
  201. package/dist/use-cases/commands/get-channel-message.d.ts +0 -8
  202. package/dist/use-cases/commands/get-chat-message-hosted-content.d.ts +0 -8
  203. package/dist/use-cases/commands/get-chat-message.d.ts +0 -7
  204. package/dist/use-cases/commands/get-outlook-contact.d.ts +0 -6
  205. package/dist/use-cases/commands/list-channel-message-hosted-contents.d.ts +0 -8
  206. package/dist/use-cases/commands/list-channel-message-replies.d.ts +0 -8
  207. package/dist/use-cases/commands/list-channel-tabs.d.ts +0 -7
  208. package/dist/use-cases/commands/list-chat-message-hosted-contents.d.ts +0 -7
  209. package/dist/use-cases/commands/list-chat-message-replies.d.ts +0 -7
  210. package/dist/use-cases/commands/list-chat-messages.d.ts +0 -6
  211. package/dist/use-cases/commands/list-pinned-chat-messages.d.ts +0 -6
  212. package/dist/use-cases/commands/list-team-members.d.ts +0 -6
@@ -0,0 +1,12 @@
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
+ driveId: z.ZodString;
7
+ itemId: z.ZodString;
8
+ versionId: z.ZodString;
9
+ }, z.core.$strip>;
10
+ declare const execute: (graph: GraphClient, params: Record<string, string>) => Promise<Result<unknown, GraphError>>;
11
+ declare const meta: CommandMeta;
12
+ export { execute, meta, schema };
@@ -0,0 +1,12 @@
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
+ driveId: z.ZodString;
7
+ itemId: z.ZodString;
8
+ versionId: z.ZodString;
9
+ }, z.core.$strip>;
10
+ declare const execute: (graph: GraphClient, params: Record<string, string>) => Promise<Result<unknown, GraphError>>;
11
+ declare const meta: CommandMeta;
12
+ export { execute, meta, schema };
@@ -1,9 +1,11 @@
1
1
  import { z } from 'zod';
2
2
  import type { Result } from '../../domain/result.js';
3
- import type { GraphClient } from '../../infra/graph-client.js';
3
+ import type { GraphClient, GraphError } from '../../infra/graph-client.js';
4
+ import type { CommandMeta } from './command-types.js';
4
5
  declare const schema: z.ZodObject<{
5
6
  driveId: z.ZodString;
6
7
  itemId: z.ZodString;
7
8
  }, z.core.$strip>;
8
- declare const execute: (graph: GraphClient, params: Record<string, string>) => Promise<Result<unknown, import("../../infra/graph-client.js").GraphError>>;
9
- export { execute, schema };
9
+ declare const execute: (graph: GraphClient, params: Record<string, string>) => Promise<Result<unknown, GraphError>>;
10
+ declare const meta: CommandMeta;
11
+ export { execute, meta, schema };
@@ -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,6 +1,4 @@
1
- import { z } from 'zod';
2
- declare const schema: z.ZodObject<{
3
- eventId: z.ZodString;
4
- }, z.core.$strip>;
5
- declare const execute: import("./command-types.js").CommandExecute;
6
- export { execute, schema };
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,4 +1,4 @@
1
- import { z } from 'zod';
2
- declare const schema: z.ZodObject<{}, z.core.$strict>;
3
- declare const execute: import("./command-types.js").CommandExecute;
4
- export { execute, schema };
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,7 +1,4 @@
1
- import { z } from 'zod';
2
- declare const schema: z.ZodObject<{
3
- teamId: z.ZodString;
4
- channelId: z.ZodString;
5
- }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
7
- export { execute, schema };
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,6 +1,8 @@
1
1
  import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
2
3
  declare const schema: z.ZodObject<{
3
4
  chatId: z.ZodString;
4
5
  }, z.core.$strip>;
5
6
  declare const execute: import("./command-types.js").CommandExecute;
6
- export { execute, schema };
7
+ declare const meta: CommandMeta;
8
+ export { execute, meta, schema };
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
2
- declare const schema: z.ZodObject<{}, z.core.$strict>;
3
- declare const execute: import("./command-types.js").CommandExecute;
4
- export { execute, schema };
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,7 +1,4 @@
1
- import { z } from 'zod';
2
- declare const schema: z.ZodObject<{
3
- driveId: z.ZodString;
4
- itemId: z.ZodString;
5
- }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
7
- export { execute, schema };
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 { 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,7 +1,4 @@
1
- import { z } from 'zod';
2
- declare const schema: z.ZodObject<{
3
- driveId: z.ZodString;
4
- itemId: z.ZodString;
5
- }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
7
- export { execute, schema };
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,6 +1,4 @@
1
- import { z } from 'zod';
2
- declare const schema: z.ZodObject<{
3
- driveId: z.ZodString;
4
- }, z.core.$strip>;
5
- declare const execute: import("./command-types.js").CommandExecute;
6
- export { execute, schema };
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
3
  declare const schema: z.ZodObject<{
3
4
  driveId: z.ZodString;
4
5
  itemId: z.ZodString;
5
6
  worksheetId: z.ZodString;
6
7
  address: z.ZodString;
7
8
  }, z.core.$strip>;
8
- declare const execute: import("./command-types.js").CommandExecute;
9
- export { execute, schema };
9
+ declare const execute: (graph: import("../../index.js").GraphClient, params: Record<string, string>) => Promise<import("../../index.js").Result<unknown, import("../../index.js").GraphError>>;
10
+ declare const meta: CommandMeta;
11
+ export { execute, meta, schema };
@@ -1,8 +1,10 @@
1
1
  import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
2
3
  declare const schema: z.ZodObject<{
3
4
  driveId: z.ZodString;
4
5
  itemId: z.ZodString;
5
6
  tableId: z.ZodString;
6
7
  }, z.core.$strip>;
7
- declare const execute: import("./command-types.js").CommandExecute;
8
- export { execute, schema };
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,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,7 +1,11 @@
1
1
  import { z } from 'zod';
2
+ import type { Command, CommandMeta } from './command-types.js';
2
3
  declare const schema: z.ZodObject<{
3
4
  messageId: z.ZodString;
4
5
  attachmentId: z.ZodString;
6
+ select: z.ZodOptional<z.ZodString>;
7
+ expand: z.ZodOptional<z.ZodString>;
5
8
  }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
7
- export { execute, schema };
9
+ declare const execute: Command['execute'];
10
+ declare const meta: CommandMeta;
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,6 +1,4 @@
1
- import { z } from 'zod';
2
- declare const schema: z.ZodObject<{
3
- messageId: z.ZodString;
4
- }, z.core.$strip>;
5
- declare const execute: import("./command-types.js").CommandExecute;
6
- export { execute, schema };
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 { 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,4 +1,6 @@
1
1
  import { z } from 'zod';
2
- declare const schema: z.ZodObject<{}, z.core.$strict>;
2
+ import type { CommandMeta } from './command-types.js';
3
+ declare const schema: z.ZodObject<{}, z.core.$strip>;
3
4
  declare const execute: import("./command-types.js").CommandExecute;
4
- export { execute, schema };
5
+ declare const meta: CommandMeta;
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 };
@@ -1,4 +1,8 @@
1
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';
2
5
  declare const schema: z.ZodObject<{}, z.core.$strict>;
3
- declare const execute: import("./command-types.js").CommandExecute;
4
- export { execute, schema };
6
+ declare const execute: (graph: GraphClient, params: Record<string, string>) => Promise<Result<unknown, GraphError>>;
7
+ declare const meta: CommandMeta;
8
+ 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 };
@@ -1,6 +1,10 @@
1
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';
2
5
  declare const schema: z.ZodObject<{
3
6
  onenotePageId: z.ZodString;
4
7
  }, z.core.$strip>;
5
- declare const execute: import("./command-types.js").CommandExecute;
6
- export { execute, schema };
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 };
@@ -1,6 +1,8 @@
1
1
  import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
2
3
  declare const schema: z.ZodObject<{
3
4
  plannerBucketId: z.ZodString;
4
5
  }, z.core.$strip>;
5
6
  declare const execute: import("./command-types.js").CommandExecute;
6
- export { execute, schema };
7
+ declare const meta: CommandMeta;
8
+ export { execute, meta, schema };
@@ -1,6 +1,8 @@
1
1
  import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
2
3
  declare const schema: z.ZodObject<{
3
4
  plannerPlanId: z.ZodString;
4
5
  }, z.core.$strip>;
5
6
  declare const execute: import("./command-types.js").CommandExecute;
6
- export { execute, schema };
7
+ declare const meta: CommandMeta;
8
+ export { execute, meta, schema };
@@ -1,6 +1,8 @@
1
1
  import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
2
3
  declare const schema: z.ZodObject<{
3
4
  plannerTaskId: z.ZodString;
4
5
  }, z.core.$strip>;
5
6
  declare const execute: import("./command-types.js").CommandExecute;
6
- export { execute, schema };
7
+ declare const meta: CommandMeta;
8
+ export { execute, meta, schema };
@@ -1,6 +1,8 @@
1
1
  import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
2
3
  declare const schema: z.ZodObject<{
3
4
  plannerTaskId: z.ZodString;
4
5
  }, z.core.$strip>;
5
6
  declare const execute: import("./command-types.js").CommandExecute;
6
- export { execute, schema };
7
+ declare const meta: CommandMeta;
8
+ 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,7 +1,9 @@
1
1
  import { z } from 'zod';
2
+ import type { CommandMeta } from './command-types.js';
2
3
  declare const schema: z.ZodObject<{
3
- siteId: z.ZodString;
4
+ hostname: z.ZodString;
4
5
  path: z.ZodString;
5
6
  }, z.core.$strip>;
6
7
  declare const execute: import("./command-types.js").CommandExecute;
7
- export { execute, schema };
8
+ declare const meta: CommandMeta;
9
+ export { execute, meta, schema };
@@ -1,7 +1,4 @@
1
- import { z } from 'zod';
2
- declare const schema: z.ZodObject<{
3
- siteId: z.ZodString;
4
- driveId: z.ZodString;
5
- }, z.core.$strip>;
6
- declare const execute: import("./command-types.js").CommandExecute;
7
- export { execute, schema };
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 };