ask-marcel-office-cli 1.5.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +85 -3
- package/README.md +21 -58
- package/dist/cli.js +1620 -1753
- package/dist/commands.json +385 -277
- package/dist/composition/build-deps.d.ts +7 -8
- package/dist/composition/cli.d.ts +5 -4
- package/dist/domain/iso-datetime.d.ts +1 -1
- package/dist/index.js +1503 -1640
- package/dist/infra/auth.d.ts +6 -20
- package/dist/infra/browser-auth.d.ts +11 -12
- package/dist/infra/graph-client.d.ts +2 -2
- package/dist/presenter/error-hints.d.ts +9 -9
- package/dist/use-cases/commands/build-command.d.ts +1 -1
- package/dist/use-cases/commands/command-types.d.ts +5 -5
- package/dist/use-cases/commands/create-reply-draft.d.ts +14 -0
- package/dist/use-cases/commands/docs.d.ts +1 -1
- package/dist/use-cases/commands/get-schedule.d.ts +11 -0
- package/dist/use-cases/commands/graph-scopes.d.ts +1 -1
- package/dist/use-cases/commands/iso-datetime-schema.d.ts +1 -1
- package/dist/use-cases/commands/markdown-pipeline.d.ts +5 -5
- package/dist/use-cases/commands/option-descriptions.d.ts +1 -1
- package/dist/use-cases/commands/output-path.d.ts +4 -4
- package/dist/use-cases/commands/zip-archive-to-markdown.d.ts +1 -1
- package/dist/use-cases/ports/filesystem.d.ts +1 -1
- package/docs/COMMANDS.md +14 -12
- package/docs/USAGE.md +23 -23
- package/package.json +3 -4
- package/dist/composition/env.d.ts +0 -2
- package/dist/infra/system-browser-auth.d.ts +0 -35
- package/dist/infra/system-browser-loader.d.ts +0 -3
- package/dist/infra/token-callback-server.d.ts +0 -31
- package/docs/commands.json +0 -7677
package/dist/commands.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "ask-marcel-office-cli",
|
|
3
|
-
"version": "
|
|
4
|
-
"generatedAt": "2026-
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"generatedAt": "2026-07-06T05:05:54.457Z",
|
|
5
5
|
"commands": [
|
|
6
6
|
{
|
|
7
7
|
"name": "convert-calendar-event-attachment-to-markdown",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
],
|
|
40
|
-
"example": "ask-marcel convert-calendar-event-attachment-to-markdown --event-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
40
|
+
"example": "ask-marcel-office convert-calendar-event-attachment-to-markdown --event-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
41
41
|
"responseShape": "`{ contentType: \"text/markdown\", size, text }` on success (file/reference attachments converted via Graph + turndown; itemAttachment rendered locally). Plain-text source extensions return the raw-bytes envelope; unsupported types return an api_error with status 400.",
|
|
42
42
|
"producesBytes": true
|
|
43
43
|
},
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"description": "Attachment ID inside that event. Returned by `list-calendar-event-attachments`."
|
|
63
63
|
}
|
|
64
64
|
],
|
|
65
|
-
"example": "ask-marcel convert-calendar-event-attachment-to-pdf --event-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1' --output-path ./deck.pdf",
|
|
65
|
+
"example": "ask-marcel-office convert-calendar-event-attachment-to-pdf --event-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1' --output-path ./deck.pdf",
|
|
66
66
|
"responseShape": "`{ contentType: \"application/pdf\", size, base64 }` — the PDF bytes, inlined. Plain-text and pdf sources short-circuit to `{ contentType, size, base64, note }`; image attachments return api_error 415; itemAttachment returns api_error 400. Pair with the global `--output-path` to land the bytes on disk and replace `base64` with `savedTo`.",
|
|
67
67
|
"producesBytes": true
|
|
68
68
|
},
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"name": "drive-id",
|
|
79
79
|
"key": "driveId",
|
|
80
80
|
"required": true,
|
|
81
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
81
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
"name": "item-id",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
],
|
|
103
|
-
"example": "ask-marcel convert-drive-item-zip --drive-id 'b!1234' --item-id '01ABC'",
|
|
103
|
+
"example": "ask-marcel-office convert-drive-item-zip --drive-id 'b!1234' --item-id '01ABC'",
|
|
104
104
|
"responseShape": "`{ count, files: [{ path, contentType, size, text }] }` — one entry per file in the archive (sorted by path). Convertible files carry `{ contentType, size, text }` (the markdown); unsupported / failed entries carry `{ path, note }` instead. When the archive has more than 100 entries the response adds `truncated: true` + `totalEntries` and only the first 100 are converted."
|
|
105
105
|
},
|
|
106
106
|
{
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
"description": "Per-sheet cell cap (positive integer; default 50 000) for xlsx/csv sources. A sheet whose used range exceeds the cap renders as a truncation hint instead of a multi-hundred-MB table. No-op on other sources."
|
|
151
151
|
}
|
|
152
152
|
],
|
|
153
|
-
"example": "ask-marcel convert-local-file --path ./report.docx",
|
|
153
|
+
"example": "ask-marcel-office convert-local-file --path ./report.docx",
|
|
154
154
|
"responseShape": "`{ contentType: \"text/markdown\" | \"text/plain\", size, text }` for a single file; `{ count, files: [{ path, contentType, size, text } | { path, note }] }` for a `.zip` (one entry per contained file, unsupported entries noted). A missing file returns api_error 404 with the path. Pair with the global `--output-path` to land the markdown on disk.",
|
|
155
155
|
"producesBytes": true
|
|
156
156
|
},
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
],
|
|
191
|
-
"example": "ask-marcel convert-mail-attachment-to-markdown --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
191
|
+
"example": "ask-marcel-office convert-mail-attachment-to-markdown --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
192
192
|
"responseShape": "`{ contentType: \"text/markdown\", size, text }` on success (file/reference attachments converted via Graph + turndown; itemAttachment rendered locally). Plain-text source extensions return the raw-bytes envelope; unsupported types return an api_error with status 400.",
|
|
193
193
|
"producesBytes": true
|
|
194
194
|
},
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
"description": "Attachment ID inside that message. Returned by `list-mail-attachments`."
|
|
214
214
|
}
|
|
215
215
|
],
|
|
216
|
-
"example": "ask-marcel convert-mail-attachment-to-pdf --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
216
|
+
"example": "ask-marcel-office convert-mail-attachment-to-pdf --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
217
217
|
"responseShape": "`{ contentType: \"application/pdf\", size, base64 }` — the PDF bytes, inlined. The CLI follows the SharePoint media-transform redirect internally so the LLM never has to fetch an external URL. Plain-text source extensions and pdf sources short-circuit to `{ contentType, size, base64, note }` with their native bytes; itemAttachment returns api_error 400. Pair with the global `--output-path` to land the bytes on disk and replace `base64` with `savedTo` for multi-MB PDFs.",
|
|
218
218
|
"producesBytes": true
|
|
219
219
|
},
|
|
@@ -251,12 +251,12 @@
|
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
],
|
|
254
|
-
"example": "ask-marcel convert-mail-attachment-zip --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
254
|
+
"example": "ask-marcel-office convert-mail-attachment-zip --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
255
255
|
"responseShape": "`{ count, files: [{ path, contentType, size, text }] }` — one entry per file in the archive (sorted by path; non-mojibake names). Convertible files carry `{ contentType, size, text }` (the markdown); unsupported / failed entries carry `{ path, note }`. When the archive has more than 100 entries the response adds `truncated: true` + `totalEntries` and only the first 100 are converted. A non-fileAttachment (itemAttachment / referenceAttachment) or a non-zip payload returns an api_error."
|
|
256
256
|
},
|
|
257
257
|
{
|
|
258
258
|
"name": "convert-mail-to-markdown",
|
|
259
|
-
"summary": "Render a single Outlook email as markdown — headers (`**Subject:**`, `**From:**`, `**To:**`, `**Cc:**` only when present, `**Date:**`), followed by the body run through turndown. By default, inline images (`isInline:true` + `image/*` content-type, size ≤ 2 MB) are embedded as base64 `data:` URIs so the output is self-contained (non-image inline attachments are NOT embedded; oversize inline images are replaced with a placeholder note). For LLM callers that only want the text body, pass `--inline-images false` to skip the per-image bytes fetch entirely — the body keeps raw `cid:<contentId>` references and the inline images surface in the file-attachments list so you can decide whether to fetch them separately via `get-mail-attachment`. File attachments are always listed below the body by name + size + id; their bytes are NOT fetched here — call `convert-mail-attachment-to-pdf` or `get-mail-attachment` with the id when you actually need them. Staged-fetch design
|
|
259
|
+
"summary": "Render a single Outlook email as markdown — headers (`**Subject:**`, `**From:**`, `**To:**`, `**Cc:**` only when present, `**Date:**`), followed by the body run through turndown. By default, inline images (`isInline:true` + `image/*` content-type, size ≤ 2 MB) are embedded as base64 `data:` URIs so the output is self-contained (non-image inline attachments are NOT embedded; oversize inline images are replaced with a placeholder note). For LLM callers that only want the text body, pass `--inline-images false` to skip the per-image bytes fetch entirely — the body keeps raw `cid:<contentId>` references and the inline images surface in the file-attachments list so you can decide whether to fetch them separately via `get-mail-attachment`. File attachments are always listed below the body by name + size + id; their bytes are NOT fetched here — call `convert-mail-attachment-to-pdf` or `get-mail-attachment` with the id when you actually need them. Staged-fetch design: one call for the body, one for the attachments-metadata list (only if `hasAttachments:true`), and one per small inline image — replaces the old `?$expand=attachments` which timed out / truncated on messages with multi-MB attachments.",
|
|
260
260
|
"category": "mail",
|
|
261
261
|
"graphMethod": "GET",
|
|
262
262
|
"graphPathTemplate": "/me/messages/{message-id}",
|
|
@@ -294,7 +294,7 @@
|
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
296
|
],
|
|
297
|
-
"example": "ask-marcel convert-mail-to-markdown --message-id 'AAMkAD...'",
|
|
297
|
+
"example": "ask-marcel-office convert-mail-to-markdown --message-id 'AAMkAD...'",
|
|
298
298
|
"responseShape": "`{ contentType: \"text/markdown\", size, text, note? }` — headers + turndown-rendered body + (when present) a file-attachments list. The optional `note` carries a partial-success hint when the attachments-metadata fetch fails after the body succeeded, and/or a flag that a quoted reply chain was stripped (use `--keep-quoted true` to include it).",
|
|
299
299
|
"producesBytes": true
|
|
300
300
|
},
|
|
@@ -373,14 +373,68 @@
|
|
|
373
373
|
}
|
|
374
374
|
}
|
|
375
375
|
],
|
|
376
|
-
"example": "ask-marcel create-mail-draft --subject \"Q3 Report\" --body-content \"Please review the attached report.\" --to-recipients \"alice@example.com,bob@example.com\" --importance High",
|
|
376
|
+
"example": "ask-marcel-office create-mail-draft --subject \"Q3 Report\" --body-content \"Please review the attached report.\" --to-recipients \"alice@example.com,bob@example.com\" --importance High",
|
|
377
377
|
"responseShape": "The created Microsoft Graph message object: `{ id, subject, body, from, toRecipients, ccRecipients, bccRecipients, receivedDateTime, isDraft, … }`. The `id` field is the draft message ID — use it with `update-mail-draft` to modify before sending.",
|
|
378
378
|
"bodyTemplate": "{ subject: '{subject}', body: { contentType: '{body-content-type}', content: '{body-content}' }, toRecipients: '{to-recipients}', ccRecipients: '{cc-recipients}', bccRecipients: '{bcc-recipients}', importance: '{importance}' }",
|
|
379
379
|
"mutates": true
|
|
380
380
|
},
|
|
381
|
+
{
|
|
382
|
+
"name": "create-reply-draft",
|
|
383
|
+
"summary": "Create an UNSENT reply-all draft threaded on an existing message. POST /me/messages/{id}/createReplyAll mints the draft (inherited recipients, RE: subject, quoted history), then PATCH places the reply body above the quote. Reply-all by design - dropping recipients is a deliberate act for the human in Outlook, not a default. The draft is saved in Drafts and can be reviewed, edited, and sent from any Outlook client; the CLI still cannot send.",
|
|
384
|
+
"category": "mail",
|
|
385
|
+
"graphMethod": "POST",
|
|
386
|
+
"graphPathTemplate": "/me/messages/{reply-to-message-id}/createReplyAll (then PATCH the returned draft)",
|
|
387
|
+
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/message-createreplyall",
|
|
388
|
+
"options": [
|
|
389
|
+
{
|
|
390
|
+
"name": "reply-to-message-id",
|
|
391
|
+
"key": "replyToMessageId",
|
|
392
|
+
"required": true,
|
|
393
|
+
"aliases": [
|
|
394
|
+
{
|
|
395
|
+
"name": "id",
|
|
396
|
+
"key": "id"
|
|
397
|
+
}
|
|
398
|
+
],
|
|
399
|
+
"description": "The message being replied to. Source from list-mail-folder-messages or search-mail-messages. Accepts `--id` as an alias.",
|
|
400
|
+
"argumentHint": {
|
|
401
|
+
"kind": "idOrName"
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"name": "body-content",
|
|
406
|
+
"key": "bodyContent",
|
|
407
|
+
"required": true,
|
|
408
|
+
"description": "The reply text, placed above the quoted history. Plain text by default; pass --body-content-type HTML for rich text."
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"name": "body-content-type",
|
|
412
|
+
"key": "bodyContentType",
|
|
413
|
+
"required": false,
|
|
414
|
+
"description": "Reply body format: Text (default) or HTML.",
|
|
415
|
+
"argumentHint": {
|
|
416
|
+
"kind": "magicValue",
|
|
417
|
+
"values": [
|
|
418
|
+
"Text",
|
|
419
|
+
"HTML"
|
|
420
|
+
]
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"name": "subject",
|
|
425
|
+
"key": "subject",
|
|
426
|
+
"required": false,
|
|
427
|
+
"description": "Optional subject override. Omit to keep the inherited \"RE: ...\" subject."
|
|
428
|
+
}
|
|
429
|
+
],
|
|
430
|
+
"example": "ask-marcel-office create-reply-draft --reply-to-message-id \"AAMkAD...\" --body-content \"Confirmed for Concur, aligned with the group choice.\"",
|
|
431
|
+
"responseShape": "The updated draft message object (or `{ ok: true }` when Graph answers 204): `{ id, subject, body, toRecipients, ccRecipients, isDraft: true, … }`. The `id` is the draft - update further with update-mail-draft, or open Outlook Drafts to review and send.",
|
|
432
|
+
"bodyTemplate": "POST {} then PATCH { body: { contentType: '{body-content-type}', content: '{body-content}' }, subject?: '{subject}' }",
|
|
433
|
+
"mutates": true
|
|
434
|
+
},
|
|
381
435
|
{
|
|
382
436
|
"name": "download-drive-item-as-markdown",
|
|
383
|
-
"summary": "Download a OneDrive / SharePoint file converted to markdown via local conversion pipelines. Supported: docx (mammoth → turndown; embedded images are replaced with `[image]` placeholders by default — pass `--inline-images true` to embed them as base64 `data:` URIs, or pull the full-resolution originals with `extract-drive-item-images`; tables become GFM pipe tables), xlsx (one markdown table per sheet via sheetjs; any sheet whose used range exceeds the `--max-cells` cap, default 50 000, is summarised with a band-by-band read hint instead of a multi-hundred-MB table), csv (rendered as a markdown table), odt/ods/odp (OpenDocument body walked from content.xml — headings, lists, tables, named sheets, per-slide text, including style-hidden content), plus plain-text passthrough (txt/md/html/json/yaml/log/xml/etc.) — the bytes are followed through any CDN redirect and returned inline as `{ contentType: \"text/plain\", size, text }` so the LLM never needs a separate fetch step. Loop/Fluid/Whiteboard files use Graph `?format=html` (the four inputs Microsoft documents — https://learn.microsoft.com/en-us/graph/api/driveitem-get-content-format). pptx is flattened to per-slide text (titles, bullets, text-box / table text, with speaker notes inline) as `## Slide N` sections — document order, not guaranteed visual order; for layout / images / charts, `download-drive-item-as-pdf` + a vision-capable LLM reads the rendered deck better. pdf has its text layer extracted locally (via unpdf) and returned as `{ contentType: \"text/plain\", size, text }`; a scanned / image-only PDF with no text layer points you at `download-drive-item-as-pdf` + a vision model. Legacy OLE Office: .xls (Excel 97-2003) is read by sheetjs (same markdown-table path as .xlsx); .doc (Word 97-2003) is extracted by word-extractor as plain text (body only, no structure); .ppt (PowerPoint 97-2003) has no pure-JS path — use `download-drive-item-as-pdf` first, then a vision model. Outlook .msg (a saved email, also an OLE container) is rendered to markdown — an H1 subject, a From/To/Cc/Date header block, the message body, then an `## Attachments` section where each attachment is converted recursively through this same pipeline (the same way a .zip is unpacked); inline / image attachments are listed with a note. For rtf/etc. use `download-drive-item-as-pdf` — Graph `?format=pdf` accepts 38 input extensions.",
|
|
437
|
+
"summary": "Download a OneDrive / SharePoint file converted to markdown via local conversion pipelines. Supported: docx (mammoth → turndown; embedded images are replaced with `[image]` placeholders by default — pass `--inline-images true` to embed them as base64 `data:` URIs, or pull the full-resolution originals with `extract-drive-item-images`; tables become GFM pipe tables), xlsx (one markdown table per sheet via sheetjs; any sheet whose used range exceeds the `--max-cells` cap, default 50 000, is summarised with a band-by-band read hint instead of a multi-hundred-MB table), csv (rendered as a markdown table), odt/ods/odp (OpenDocument body walked from content.xml — headings, lists, tables, named sheets, per-slide text, including style-hidden content), plus plain-text passthrough (txt/md/html/json/yaml/log/xml/etc.) — the bytes are followed through any CDN redirect and returned inline as `{ contentType: \"text/plain\", size, text }` so the LLM never needs a separate fetch step. Loop/Fluid/Whiteboard files use Graph `?format=html` (the four inputs Microsoft documents — https://learn.microsoft.com/en-us/graph/api/driveitem-get-content-format). To locate `.loop` pages to convert, run `microsoft-search-query` with `filetype:loop` and pass the `resource.id` and `parentReference.driveId` from each hit here. pptx is flattened to per-slide text (titles, bullets, text-box / table text, with speaker notes inline) as `## Slide N` sections — document order, not guaranteed visual order; for layout / images / charts, `download-drive-item-as-pdf` + a vision-capable LLM reads the rendered deck better. pdf has its text layer extracted locally (via unpdf) and returned as `{ contentType: \"text/plain\", size, text }`; a scanned / image-only PDF with no text layer points you at `download-drive-item-as-pdf` + a vision model. Legacy OLE Office: .xls (Excel 97-2003) is read by sheetjs (same markdown-table path as .xlsx); .doc (Word 97-2003) is extracted by word-extractor as plain text (body only, no structure); .ppt (PowerPoint 97-2003) has no pure-JS path — use `download-drive-item-as-pdf` first, then a vision model. Outlook .msg (a saved email, also an OLE container) is rendered to markdown — an H1 subject, a From/To/Cc/Date header block, the message body, then an `## Attachments` section where each attachment is converted recursively through this same pipeline (the same way a .zip is unpacked); inline / image attachments are listed with a note. For rtf/etc. use `download-drive-item-as-pdf` — Graph `?format=pdf` accepts 38 input extensions.",
|
|
384
438
|
"category": "drive",
|
|
385
439
|
"graphMethod": "GET",
|
|
386
440
|
"graphPathTemplate": "/drives/{drive-id}/items/{item-id}/content?format=html",
|
|
@@ -390,7 +444,7 @@
|
|
|
390
444
|
"name": "drive-id",
|
|
391
445
|
"key": "driveId",
|
|
392
446
|
"required": true,
|
|
393
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
447
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
394
448
|
},
|
|
395
449
|
{
|
|
396
450
|
"name": "item-id",
|
|
@@ -431,7 +485,7 @@
|
|
|
431
485
|
"description": "Per-sheet cell cap (positive integer; default 50 000) for xlsx sources. A worksheet whose used range (rows × cols) exceeds the cap is rendered as its `## SheetName` header plus a one-line hint pointing at `get-excel-used-range` / `get-excel-range` for band-by-band reads, instead of a full markdown table — a genuinely dense 49 MB workbook otherwise builds a multi-hundred-MB string and OOMs the process. Raise it to force a larger render. No-op on non-xlsx sources."
|
|
432
486
|
}
|
|
433
487
|
],
|
|
434
|
-
"example": "ask-marcel download-drive-item-as-markdown --drive-id 'b!1234' --item-id '01ABC'",
|
|
488
|
+
"example": "ask-marcel-office download-drive-item-as-markdown --drive-id 'b!1234' --item-id '01ABC'",
|
|
435
489
|
"responseShape": "`{ contentType: \"text/markdown\", size: <chars>, text: \"...\" }` for the locally-converted case (docx/xlsx/csv/.msg); `{ contentType: \"text/plain\", size, text }` for plain-text passthrough sources (txt/md/html/etc.) — bytes are inlined whether Graph returns them directly or via a CDN redirect that the CLI follows internally.",
|
|
436
490
|
"producesBytes": true
|
|
437
491
|
},
|
|
@@ -447,7 +501,7 @@
|
|
|
447
501
|
"name": "drive-id",
|
|
448
502
|
"key": "driveId",
|
|
449
503
|
"required": true,
|
|
450
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
504
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
451
505
|
},
|
|
452
506
|
{
|
|
453
507
|
"name": "item-id",
|
|
@@ -456,7 +510,7 @@
|
|
|
456
510
|
"description": "driveItem ID of the file to convert. Returned by `list-folder-files` or `search-onedrive-files`."
|
|
457
511
|
}
|
|
458
512
|
],
|
|
459
|
-
"example": "ask-marcel download-drive-item-as-pdf --drive-id 'b!1234' --item-id '01ABC'",
|
|
513
|
+
"example": "ask-marcel-office download-drive-item-as-pdf --drive-id 'b!1234' --item-id '01ABC'",
|
|
460
514
|
"responseShape": "`{ contentType: \"application/pdf\", size, base64 }` — the PDF bytes, inlined. The CLI follows the SharePoint media-transform redirect internally so the LLM never has to fetch an external URL. Plain-text and pdf sources skip the format=pdf round-trip and return the raw file bytes under the same envelope shape (with their native contentType) plus `passthrough: true` and a `note` explaining why conversion was skipped — the LLM can branch on the flag if it cares whether Graph actually converted. Pair with the global `--output-path` to land the bytes on disk and replace `base64` with `savedTo` for multi-MB PDFs.",
|
|
461
515
|
"producesBytes": true
|
|
462
516
|
},
|
|
@@ -475,22 +529,22 @@
|
|
|
475
529
|
"name": "drive-id",
|
|
476
530
|
"key": "driveId",
|
|
477
531
|
"required": true,
|
|
478
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
532
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
479
533
|
},
|
|
480
534
|
{
|
|
481
535
|
"name": "item-id",
|
|
482
536
|
"key": "itemId",
|
|
483
537
|
"required": true,
|
|
484
|
-
"description": "driveItem ID of the file to download. Returned by `ask-marcel list-folder-files` (works on SharePoint library drives too) or `search-onedrive-files`."
|
|
538
|
+
"description": "driveItem ID of the file to download. Returned by `ask-marcel-office list-folder-files` (works on SharePoint library drives too) or `search-onedrive-files`."
|
|
485
539
|
}
|
|
486
540
|
],
|
|
487
|
-
"example": "ask-marcel download-drive-item-content --drive-id 'b!1234' --item-id '01ABC'",
|
|
541
|
+
"example": "ask-marcel-office download-drive-item-content --drive-id 'b!1234' --item-id '01ABC'",
|
|
488
542
|
"responseShape": "`{ contentType: \"text/plain\", size, text }` when the bytes decode as valid UTF-8; `{ contentType, size, base64 }` otherwise (binary, or non-UTF-8-encoded text). Pair with the global `--output-path <path>` flag to land the bytes on disk and replace the inline field with `savedTo` for multi-MB files.",
|
|
489
543
|
"producesBytes": true
|
|
490
544
|
},
|
|
491
545
|
{
|
|
492
546
|
"name": "download-drive-item-version",
|
|
493
|
-
"summary": "Download a *non-current* historical version of a OneDrive / SharePoint file. `--format original` (default) returns the raw bytes — Graph refuses to serve the current version through this endpoint with \"You cannot get the content of the current version\"; for the current version use `download-drive-item-content`. `--format pdf` runs Graph `?format=pdf` for Office docs; plain-text and `pdf` sources short-circuit to raw bytes with `passthrough: true` + a note (Graph rejects `pdf → pdf` with InputFormatNotSupported). `--format markdown` runs the local conversion pipeline (mammoth for docx, sheetjs for xlsx, csv → table, odt/ods/odp via content.xml, plain-text passthrough). All three formats use an M365ChatClient-elevated Graph token (captured at login from m365.cloud.microsoft) — the Teams web client token returns 403 logicalPermissionAccessDenied on historical-version stream content. The CLI follows the SharePoint streamContent redirect internally so the LLM never has to fetch an external URL.
|
|
547
|
+
"summary": "Download a *non-current* historical version of a OneDrive / SharePoint file. `--format original` (default) returns the raw bytes — Graph refuses to serve the current version through this endpoint with \"You cannot get the content of the current version\"; for the current version use `download-drive-item-content`. `--format pdf` runs Graph `?format=pdf` for Office docs; plain-text and `pdf` sources short-circuit to raw bytes with `passthrough: true` + a note (Graph rejects `pdf → pdf` with InputFormatNotSupported). `--format markdown` runs the local conversion pipeline (mammoth for docx, sheetjs for xlsx, csv → table, odt/ods/odp via content.xml, plain-text passthrough). All three formats use an M365ChatClient-elevated Graph token (captured at login from m365.cloud.microsoft) — the Teams web client token returns 403 logicalPermissionAccessDenied on historical-version stream content. The CLI follows the SharePoint streamContent redirect internally so the LLM never has to fetch an external URL. caveat for `--format pdf`: Graph sometimes silently falls back to raw source bytes for the current version (which Graph occasionally serves through this endpoint) — when the response carries `passthrough: true`, save with the source extension, not `.pdf` (the global output-path flag refuses the mismatch).",
|
|
494
548
|
"category": "drive",
|
|
495
549
|
"graphMethod": "GET",
|
|
496
550
|
"graphPathTemplate": "/drives/{drive-id}/items/{item-id}/versions/{version-id}/content",
|
|
@@ -500,7 +554,7 @@
|
|
|
500
554
|
"name": "drive-id",
|
|
501
555
|
"key": "driveId",
|
|
502
556
|
"required": true,
|
|
503
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
557
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
504
558
|
},
|
|
505
559
|
{
|
|
506
560
|
"name": "item-id",
|
|
@@ -512,7 +566,7 @@
|
|
|
512
566
|
"name": "version-id",
|
|
513
567
|
"key": "versionId",
|
|
514
568
|
"required": true,
|
|
515
|
-
"description": "driveItemVersion ID. Returned by `ask-marcel list-drive-item-versions`. Use the `id` field of an entry under `value[]`. Pick a non-current version — the first entry (e.g. `12.0`) is the live file and Graph rejects this endpoint for it; use `value[1]` or older."
|
|
569
|
+
"description": "driveItemVersion ID. Returned by `ask-marcel-office list-drive-item-versions`. Use the `id` field of an entry under `value[]`. Pick a non-current version — the first entry (e.g. `12.0`) is the live file and Graph rejects this endpoint for it; use `value[1]` or older."
|
|
516
570
|
},
|
|
517
571
|
{
|
|
518
572
|
"name": "format",
|
|
@@ -542,7 +596,7 @@
|
|
|
542
596
|
}
|
|
543
597
|
}
|
|
544
598
|
],
|
|
545
|
-
"example": "ask-marcel download-drive-item-version --drive-id 'b!1234' --item-id '01ABC' --version-id '4.0' --format pdf",
|
|
599
|
+
"example": "ask-marcel-office download-drive-item-version --drive-id 'b!1234' --item-id '01ABC' --version-id '4.0' --format pdf",
|
|
546
600
|
"responseShape": "`--format original` & `--format pdf`: `{ contentType, size, base64 }` — the bytes, inlined. `--format pdf` adds `passthrough: true` + `note` when Graph short-circuits (plain-text or pdf source) OR silently falls back to raw source bytes — in that case save with the source extension, NOT `.pdf` (the global output-path flag refuses the mismatch). `--format markdown`: `{ contentType: \"text/markdown\", size: <chars>, text: \"...\" }` for the converted case; raw-bytes envelope for plain-text source extensions. Pair with the global `--output-path` to land bytes on disk and replace `base64`/`text` with `savedTo` for multi-MB versions.",
|
|
547
601
|
"producesBytes": true,
|
|
548
602
|
"needsElevatedToken": true
|
|
@@ -559,7 +613,7 @@
|
|
|
559
613
|
"name": "drive-id",
|
|
560
614
|
"key": "driveId",
|
|
561
615
|
"required": true,
|
|
562
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
616
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
563
617
|
},
|
|
564
618
|
{
|
|
565
619
|
"name": "item-id",
|
|
@@ -568,7 +622,7 @@
|
|
|
568
622
|
"description": "driveItem ID of the pdf / docx / xlsx / pptx file. Returned by `list-folder-files` or `search-onedrive-files`."
|
|
569
623
|
}
|
|
570
624
|
],
|
|
571
|
-
"example": "ask-marcel extract-drive-item-images --drive-id 'b!1234' --item-id '01ABC' --output-dir ./deck-images",
|
|
625
|
+
"example": "ask-marcel-office extract-drive-item-images --drive-id 'b!1234' --item-id '01ABC' --output-dir ./deck-images",
|
|
572
626
|
"responseShape": "`{ count, media: [{ path, contentType, sizeBytes, base64 }] }`. `path` is the source part path — `ppt/media/image3.png` for OOXML, `pdf/page2/<key>.png` for PDF (every PDF image is re-encoded as PNG). Pair with the global `--output-dir <dir>` to write each image to that folder — the response then replaces each `base64` with `savedTo: <dir>/<filename>` (the part path is flattened, e.g. `pdf_page2_Im0.png`). `count: 0` with an empty `media` array means the document embeds no extractable images (after the emf/wmf/audio/video filter).",
|
|
573
627
|
"producesMedia": true
|
|
574
628
|
},
|
|
@@ -587,7 +641,7 @@
|
|
|
587
641
|
"description": "Filesystem path of the pdf / docx / xlsx / pptx file to extract from (absolute, or relative to the current working directory). E.g. `/tmp/deck.pdf`, `./report.docx`."
|
|
588
642
|
}
|
|
589
643
|
],
|
|
590
|
-
"example": "ask-marcel extract-local-file-images --path /tmp/deck.pdf --output-dir ./deck-images",
|
|
644
|
+
"example": "ask-marcel-office extract-local-file-images --path /tmp/deck.pdf --output-dir ./deck-images",
|
|
591
645
|
"responseShape": "`{ count, media: [{ path, contentType, sizeBytes, base64 }] }`. `path` is the source part path — `ppt/media/image3.png` for OOXML, `pdf/page2/<key>.png` for PDF (every PDF image is re-encoded as PNG). Pair with the global `--output-dir <dir>` to write each image to that folder — the response then replaces each `base64` with `savedTo: <dir>/<filename>` (the part path is flattened, e.g. `pdf_page2_Im0.png`). `count: 0` with an empty `media` array means the document embeds no extractable images (after the emf/wmf/audio/video filter). A missing file returns api_error 404 with the path.",
|
|
592
646
|
"producesMedia": true
|
|
593
647
|
},
|
|
@@ -612,7 +666,7 @@
|
|
|
612
666
|
"description": "Attachment ID inside that message. Returned by `list-mail-attachments`."
|
|
613
667
|
}
|
|
614
668
|
],
|
|
615
|
-
"example": "ask-marcel extract-mail-attachment-images --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1' --output-dir ./att-images",
|
|
669
|
+
"example": "ask-marcel-office extract-mail-attachment-images --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1' --output-dir ./att-images",
|
|
616
670
|
"responseShape": "`{ count, media: [{ path, contentType, sizeBytes, base64 }] }`. `path` is the in-package part path (e.g. `ppt/media/image3.png`). Pair with the global `--output-dir <dir>` to write each image to that folder — the response then replaces each `base64` with `savedTo` (the part path is flattened, e.g. `pdf_page2_Im0.png`). `count: 0` means the attachment embeds no extractable images (after the emf/wmf/audio/video filter).",
|
|
617
671
|
"producesMedia": true
|
|
618
672
|
},
|
|
@@ -628,7 +682,7 @@
|
|
|
628
682
|
"name": "drive-id",
|
|
629
683
|
"key": "driveId",
|
|
630
684
|
"required": true,
|
|
631
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
685
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
632
686
|
},
|
|
633
687
|
{
|
|
634
688
|
"name": "item-id",
|
|
@@ -637,7 +691,7 @@
|
|
|
637
691
|
"description": "driveItem ID of the .docx/.xlsx/.pptx or .odt/.ods/.odp file. Returned by `list-folder-files` or `search-onedrive-files`."
|
|
638
692
|
}
|
|
639
693
|
],
|
|
640
|
-
"example": "ask-marcel extract-sharepoint-links-in-documents --drive-id 'b!1234' --item-id '01ABC'",
|
|
694
|
+
"example": "ask-marcel-office extract-sharepoint-links-in-documents --drive-id 'b!1234' --item-id '01ABC'",
|
|
641
695
|
"responseShape": "`{ driveId, itemId, links: [{ url, driveId, itemId, name, webUrl } | { url, error }], truncated, skippedCount }` — one entry per unique SharePoint URL found in the document’s external relationships."
|
|
642
696
|
},
|
|
643
697
|
{
|
|
@@ -661,12 +715,12 @@
|
|
|
661
715
|
"description": "Outlook message ID. Returned by `list-mail-messages` or `list-mail-folder-messages`. Accepts `--id` as an alias."
|
|
662
716
|
}
|
|
663
717
|
],
|
|
664
|
-
"example": "ask-marcel extract-sharepoint-links-in-mail --message-id 'AAMkADk0...'",
|
|
718
|
+
"example": "ask-marcel-office extract-sharepoint-links-in-mail --message-id 'AAMkADk0...'",
|
|
665
719
|
"responseShape": "`{ messageId, subject, links: [{ url, driveId, itemId, name, webUrl } | { url, error }], truncated, skippedCount }` — one entry per unique SharePoint URL found in the body, ordered by first occurrence."
|
|
666
720
|
},
|
|
667
721
|
{
|
|
668
722
|
"name": "find-chats-with-user",
|
|
669
|
-
"summary": "Find every Microsoft Teams chat that includes a member matching `--name` (substring search across display-name, email, given-name, surname, MRI, and object-id). Both sides are Unicode-folded (NFD + combining-mark strip) and lowercased before comparison, so `--name
|
|
723
|
+
"summary": "Find every Microsoft Teams chat that includes a member matching `--name` (substring search across display-name, email, given-name, surname, MRI, and object-id). Both sides are Unicode-folded (NFD + combining-mark strip) and lowercased before comparison, so `--name Alex` matches `Alex Kim` AND `alex.kim@example.com` AND `ALEX` — important because a dual-identity user often carries the accented display-name on one identity and the un-accented email on the other. Walks the paginated chat-list substrate up to `--max-pages` and returns matching chats with their `matchedMembers[]`. Collapses the canonical \"all conversations with person X\" workflow into a single call AND surfaces dual-identity people (e.g. someone with both an org MRI and a guest-tenant MRI). Cross-tenant resolution: the summary roster returns externally-homed counterparts as a bare object-id (no name/email), which a name search cannot match; for every bare DIRECT (1:1) chat the command hydrates the roster via the per-chat members endpoint and re-matches — so an external counterpart who is bare in your 1:1 is still found, even when they were already resolved in some meeting (the dual-identity case). Bare members in group/meeting chats are not deep-probed; when nothing matches and such members exist it returns a `hint` plus `unresolvedMemberCount` rather than a confident empty result. **Best-effort, may break on Microsoft client updates** — the chat substrate is not in the public Microsoft Graph API.",
|
|
670
724
|
"category": "chats",
|
|
671
725
|
"graphMethod": "GET",
|
|
672
726
|
"graphPathTemplate": "https://teams.microsoft.com/api/csa/{region}/api/v3/teams/users/me/chats",
|
|
@@ -676,13 +730,13 @@
|
|
|
676
730
|
"name": "name",
|
|
677
731
|
"key": "name",
|
|
678
732
|
"required": true,
|
|
679
|
-
"description": "Substring to search across each chat member's `displayName`, `email`, `userPrincipalName`, `givenName`, `surname`, `mri`, `objectId`, and `jobTitle`. Both the query and each field are NFD-normalized + diacritics-stripped + lowercased before comparison, so `
|
|
733
|
+
"description": "Substring to search across each chat member's `displayName`, `email`, `userPrincipalName`, `givenName`, `surname`, `mri`, `objectId`, and `jobTitle`. Both the query and each field are NFD-normalized + diacritics-stripped + lowercased before comparison, so `Alex` ↔ `Alex` ↔ `ALEX` are equivalent and a query for the accented name still matches a member whose displayName is the un-accented email. Use the full name or an unambiguous fragment. Quoted multi-word values match on the joined substring, not per-token."
|
|
680
734
|
},
|
|
681
735
|
{
|
|
682
736
|
"name": "max-pages",
|
|
683
737
|
"key": "maxPages",
|
|
684
738
|
"required": false,
|
|
685
|
-
"description": "Safety cap on the chat-list walk (positive integer; default
|
|
739
|
+
"description": "Safety cap on the chat-list walk (positive integer; default 20). The walk stops early once the substrate reports no more pages, so the cap only bites on accounts with more chats than `--max-pages × --page-size`; raise it (and watch `hasMore`) if a known chat is missed. Each page is one HTTP round-trip."
|
|
686
740
|
},
|
|
687
741
|
{
|
|
688
742
|
"name": "page-size",
|
|
@@ -691,8 +745,8 @@
|
|
|
691
745
|
"description": "Chats per page (positive integer; default 100, same value Teams web uses). Server may silently cap."
|
|
692
746
|
}
|
|
693
747
|
],
|
|
694
|
-
"example": "ask-marcel find-chats-with-user --name '
|
|
695
|
-
"responseShape": "`{ name, matches: [{ chatId, title, chatType, threadType, memberCount, lastMessageAt?, matchedMembers: [{ mri, displayName, email, userSubType }] }], matchCount, pagesFetched, chatsScanned, hasMore, nextContinuationToken? }`. `matchedMembers` always carries the matching entries' identifying fields — pass `chatId` into `list-teams-chat-history` to read message bodies. `hasMore: true` means `--max-pages` was hit before exhausting the chat list; chain with the existing `--continuation-token` flag on `list-teams-chats-with-messages` if you need to scan further (this command does not advertise a `--continuation-token` because resuming a partial search is rare; users either widen `--max-pages` or refine `--name`).",
|
|
748
|
+
"example": "ask-marcel-office find-chats-with-user --name 'Alex Kim'",
|
|
749
|
+
"responseShape": "`{ name, matches: [{ chatId, title, chatType, threadType, memberCount, lastMessageAt?, matchedMembers: [{ mri, displayName, email, userSubType }] }], matchCount, pagesFetched, chatsScanned, chatsHydrated, unresolvedMemberCount, hasMore, nextContinuationToken?, hint? }`. `matchedMembers` always carries the matching entries' identifying fields — pass `chatId` into `list-teams-chat-history` to read message bodies. `chatsHydrated` counts the per-chat members lookups spent resolving bare cross-tenant members in direct (1:1) chats. `unresolvedMemberCount` is how many cross-tenant members are still unresolved by name (bare members in group/meeting chats, which are not deep-probed, plus any 1:1 hydration that errored); when `matchCount` is 0 and this is non-zero, a `hint` is present explaining the likely cause and the object-id / read-by-chat-id remedy — so an empty result is never silently confident. `hasMore: true` means `--max-pages` was hit before exhausting the chat list; chain with the existing `--continuation-token` flag on `list-teams-chats-with-messages` if you need to scan further (this command does not advertise a `--continuation-token` because resuming a partial search is rare; users either widen `--max-pages` or refine `--name`).",
|
|
696
750
|
"needsSubstrateToken": true,
|
|
697
751
|
"stability": "experimental"
|
|
698
752
|
},
|
|
@@ -714,7 +768,7 @@
|
|
|
714
768
|
"key": "id"
|
|
715
769
|
}
|
|
716
770
|
],
|
|
717
|
-
"description": "Microsoft Graph event ID. Returned by `ask-marcel list-calendar-events` in the `id` field of each event."
|
|
771
|
+
"description": "Microsoft Graph event ID. Returned by `ask-marcel-office list-calendar-events` in the `id` field of each event."
|
|
718
772
|
},
|
|
719
773
|
{
|
|
720
774
|
"name": "select",
|
|
@@ -729,7 +783,7 @@
|
|
|
729
783
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
730
784
|
}
|
|
731
785
|
],
|
|
732
|
-
"example": "ask-marcel get-calendar-event --event-id 'AAMkAGI2THVS...' --select id,subject,start,end,attendees",
|
|
786
|
+
"example": "ask-marcel-office get-calendar-event --event-id 'AAMkAGI2THVS...' --select id,subject,start,end,attendees",
|
|
733
787
|
"responseShape": "single Microsoft Graph `event` resource (or projection of the requested `--select` fields)"
|
|
734
788
|
},
|
|
735
789
|
{
|
|
@@ -765,7 +819,7 @@
|
|
|
765
819
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
766
820
|
}
|
|
767
821
|
],
|
|
768
|
-
"example": "ask-marcel get-channel-files-folder --team-id 'tm1' --channel-id 'ch1'",
|
|
822
|
+
"example": "ask-marcel-office get-channel-files-folder --team-id 'tm1' --channel-id 'ch1'",
|
|
769
823
|
"responseShape": "single Microsoft Graph `driveItem` resource (folder)"
|
|
770
824
|
},
|
|
771
825
|
{
|
|
@@ -801,7 +855,7 @@
|
|
|
801
855
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
802
856
|
}
|
|
803
857
|
],
|
|
804
|
-
"example": "ask-marcel get-chat --chat-id '19:abc...@thread.v2'",
|
|
858
|
+
"example": "ask-marcel-office get-chat --chat-id '19:abc...@thread.v2'",
|
|
805
859
|
"responseShape": "single Microsoft Graph `chat` resource projected to the default `--select` set (or, when overridden, to the requested fields). `--expand members` adds an inline `members[]` array.",
|
|
806
860
|
"needsElevatedToken": true
|
|
807
861
|
},
|
|
@@ -826,7 +880,7 @@
|
|
|
826
880
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
827
881
|
}
|
|
828
882
|
],
|
|
829
|
-
"example": "ask-marcel get-current-user",
|
|
883
|
+
"example": "ask-marcel-office get-current-user",
|
|
830
884
|
"responseShape": "single Microsoft Graph `user` resource projected to the default `--select` set (or, when overridden, to the requested fields)"
|
|
831
885
|
},
|
|
832
886
|
{
|
|
@@ -841,7 +895,7 @@
|
|
|
841
895
|
"name": "drive-id",
|
|
842
896
|
"key": "driveId",
|
|
843
897
|
"required": true,
|
|
844
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
898
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
845
899
|
},
|
|
846
900
|
{
|
|
847
901
|
"name": "item-id",
|
|
@@ -886,7 +940,7 @@
|
|
|
886
940
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
887
941
|
}
|
|
888
942
|
],
|
|
889
|
-
"example": "ask-marcel get-drive-delta --drive-id 'b!1234' --item-id '01ROOT'",
|
|
943
|
+
"example": "ask-marcel-office get-drive-delta --drive-id 'b!1234' --item-id '01ROOT'",
|
|
890
944
|
"responseShape": "collection of changed Microsoft Graph `driveItem` resources under `data.value[]`. Cursor tokens are hoisted to envelope level: top-level `nextLink` while paging, then top-level `deltaLink` on the final page.",
|
|
891
945
|
"pagination": true
|
|
892
946
|
},
|
|
@@ -902,7 +956,7 @@
|
|
|
902
956
|
"name": "drive-id",
|
|
903
957
|
"key": "driveId",
|
|
904
958
|
"required": true,
|
|
905
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
959
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
906
960
|
},
|
|
907
961
|
{
|
|
908
962
|
"name": "item-id",
|
|
@@ -923,7 +977,7 @@
|
|
|
923
977
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
924
978
|
}
|
|
925
979
|
],
|
|
926
|
-
"example": "ask-marcel get-drive-item --drive-id 'b!1234' --item-id '01ABC' --select 'id,name,size,lastModifiedDateTime'",
|
|
980
|
+
"example": "ask-marcel-office get-drive-item --drive-id 'b!1234' --item-id '01ABC' --select 'id,name,size,lastModifiedDateTime'",
|
|
927
981
|
"responseShape": "single Microsoft Graph `driveItem` resource"
|
|
928
982
|
},
|
|
929
983
|
{
|
|
@@ -938,7 +992,7 @@
|
|
|
938
992
|
"name": "drive-id",
|
|
939
993
|
"key": "driveId",
|
|
940
994
|
"required": true,
|
|
941
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
995
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
942
996
|
},
|
|
943
997
|
{
|
|
944
998
|
"name": "item-id",
|
|
@@ -947,7 +1001,7 @@
|
|
|
947
1001
|
"description": "driveItem ID."
|
|
948
1002
|
}
|
|
949
1003
|
],
|
|
950
|
-
"example": "ask-marcel get-drive-item-analytics --drive-id 'b!1234' --item-id '01ABC'",
|
|
1004
|
+
"example": "ask-marcel-office get-drive-item-analytics --drive-id 'b!1234' --item-id '01ABC'",
|
|
951
1005
|
"responseShape": "single Microsoft Graph `itemAnalytics` resource"
|
|
952
1006
|
},
|
|
953
1007
|
{
|
|
@@ -962,7 +1016,7 @@
|
|
|
962
1016
|
"name": "drive-id",
|
|
963
1017
|
"key": "driveId",
|
|
964
1018
|
"required": true,
|
|
965
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1019
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
966
1020
|
},
|
|
967
1021
|
{
|
|
968
1022
|
"name": "item-id",
|
|
@@ -983,7 +1037,7 @@
|
|
|
983
1037
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
984
1038
|
}
|
|
985
1039
|
],
|
|
986
|
-
"example": "ask-marcel get-drive-item-created-by-user --drive-id 'b!1234' --item-id '01ABC' --select 'id,displayName,jobTitle,mail'",
|
|
1040
|
+
"example": "ask-marcel-office get-drive-item-created-by-user --drive-id 'b!1234' --item-id '01ABC' --select 'id,displayName,jobTitle,mail'",
|
|
987
1041
|
"responseShape": "single Microsoft Graph `user` resource"
|
|
988
1042
|
},
|
|
989
1043
|
{
|
|
@@ -998,7 +1052,7 @@
|
|
|
998
1052
|
"name": "drive-id",
|
|
999
1053
|
"key": "driveId",
|
|
1000
1054
|
"required": true,
|
|
1001
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1055
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1002
1056
|
},
|
|
1003
1057
|
{
|
|
1004
1058
|
"name": "item-id",
|
|
@@ -1019,7 +1073,7 @@
|
|
|
1019
1073
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1020
1074
|
}
|
|
1021
1075
|
],
|
|
1022
|
-
"example": "ask-marcel get-drive-item-last-modified-by-user --drive-id 'b!1234' --item-id '01ABC' --select 'id,displayName,mail'",
|
|
1076
|
+
"example": "ask-marcel-office get-drive-item-last-modified-by-user --drive-id 'b!1234' --item-id '01ABC' --select 'id,displayName,mail'",
|
|
1023
1077
|
"responseShape": "single Microsoft Graph `user` resource"
|
|
1024
1078
|
},
|
|
1025
1079
|
{
|
|
@@ -1034,7 +1088,7 @@
|
|
|
1034
1088
|
"name": "drive-id",
|
|
1035
1089
|
"key": "driveId",
|
|
1036
1090
|
"required": true,
|
|
1037
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1091
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1038
1092
|
},
|
|
1039
1093
|
{
|
|
1040
1094
|
"name": "item-id",
|
|
@@ -1055,7 +1109,7 @@
|
|
|
1055
1109
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1056
1110
|
}
|
|
1057
1111
|
],
|
|
1058
|
-
"example": "ask-marcel get-drive-item-list-item --drive-id 'b!1234' --item-id '01ABC'",
|
|
1112
|
+
"example": "ask-marcel-office get-drive-item-list-item --drive-id 'b!1234' --item-id '01ABC'",
|
|
1059
1113
|
"responseShape": "single Microsoft Graph `listItem` resource"
|
|
1060
1114
|
},
|
|
1061
1115
|
{
|
|
@@ -1097,7 +1151,7 @@
|
|
|
1097
1151
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1098
1152
|
}
|
|
1099
1153
|
],
|
|
1100
|
-
"example": "ask-marcel get-drive-root-delta",
|
|
1154
|
+
"example": "ask-marcel-office get-drive-root-delta",
|
|
1101
1155
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `data.value[]`. Cursor tokens are hoisted to envelope level: top-level `nextLink` while paging, then top-level `deltaLink` on the final page.",
|
|
1102
1156
|
"pagination": true
|
|
1103
1157
|
},
|
|
@@ -1119,7 +1173,7 @@
|
|
|
1119
1173
|
"key": "id"
|
|
1120
1174
|
}
|
|
1121
1175
|
],
|
|
1122
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1176
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1123
1177
|
},
|
|
1124
1178
|
{
|
|
1125
1179
|
"name": "select",
|
|
@@ -1134,7 +1188,7 @@
|
|
|
1134
1188
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1135
1189
|
}
|
|
1136
1190
|
],
|
|
1137
|
-
"example": "ask-marcel get-drive-root-item --drive-id 'b!1234'",
|
|
1191
|
+
"example": "ask-marcel-office get-drive-root-item --drive-id 'b!1234'",
|
|
1138
1192
|
"responseShape": "single Microsoft Graph `driveItem` resource (the root folder)"
|
|
1139
1193
|
},
|
|
1140
1194
|
{
|
|
@@ -1164,7 +1218,7 @@
|
|
|
1164
1218
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1165
1219
|
}
|
|
1166
1220
|
],
|
|
1167
|
-
"example": "ask-marcel get-drive-special-folder --folder-name 'documents'",
|
|
1221
|
+
"example": "ask-marcel-office get-drive-special-folder --folder-name 'documents'",
|
|
1168
1222
|
"responseShape": "single Microsoft Graph `driveItem` resource (folder)"
|
|
1169
1223
|
},
|
|
1170
1224
|
{
|
|
@@ -1179,7 +1233,7 @@
|
|
|
1179
1233
|
"name": "drive-id",
|
|
1180
1234
|
"key": "driveId",
|
|
1181
1235
|
"required": true,
|
|
1182
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1236
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1183
1237
|
},
|
|
1184
1238
|
{
|
|
1185
1239
|
"name": "item-id",
|
|
@@ -1206,7 +1260,7 @@
|
|
|
1206
1260
|
}
|
|
1207
1261
|
}
|
|
1208
1262
|
],
|
|
1209
|
-
"example": "ask-marcel get-excel-chart-image --drive-id 'b!1234' --item-id '01ABC' --worksheet-id 'Sheet1' --chart-id 'Chart 1' --output-path ./chart.png",
|
|
1263
|
+
"example": "ask-marcel-office get-excel-chart-image --drive-id 'b!1234' --item-id '01ABC' --worksheet-id 'Sheet1' --chart-id 'Chart 1' --output-path ./chart.png",
|
|
1210
1264
|
"responseShape": "`{ contentType: \"image/png\", size, base64 }` — the rendered chart PNG, inlined. Pair with the global `--output-path <file>` to write the PNG to disk (the response then replaces `base64` with `savedTo`).",
|
|
1211
1265
|
"producesBytes": true
|
|
1212
1266
|
},
|
|
@@ -1222,7 +1276,7 @@
|
|
|
1222
1276
|
"name": "drive-id",
|
|
1223
1277
|
"key": "driveId",
|
|
1224
1278
|
"required": true,
|
|
1225
|
-
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1279
|
+
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1226
1280
|
},
|
|
1227
1281
|
{
|
|
1228
1282
|
"name": "item-id",
|
|
@@ -1234,7 +1288,7 @@
|
|
|
1234
1288
|
"name": "worksheet-id",
|
|
1235
1289
|
"key": "worksheetId",
|
|
1236
1290
|
"required": true,
|
|
1237
|
-
"description": "Worksheet ID or worksheet name. Returned by `ask-marcel list-excel-worksheets`.",
|
|
1291
|
+
"description": "Worksheet ID or worksheet name. Returned by `ask-marcel-office list-excel-worksheets`.",
|
|
1238
1292
|
"argumentHint": {
|
|
1239
1293
|
"kind": "idOrName"
|
|
1240
1294
|
}
|
|
@@ -1249,7 +1303,7 @@
|
|
|
1249
1303
|
}
|
|
1250
1304
|
}
|
|
1251
1305
|
],
|
|
1252
|
-
"example": "ask-marcel get-excel-range --drive-id 'b!1234' --item-id '01XLSX' --worksheet-id 'Sheet1' --address 'A1:C10'",
|
|
1306
|
+
"example": "ask-marcel-office get-excel-range --drive-id 'b!1234' --item-id '01XLSX' --worksheet-id 'Sheet1' --address 'A1:C10'",
|
|
1253
1307
|
"responseShape": "single Microsoft Graph `workbookRange` resource (values, formulas, format)"
|
|
1254
1308
|
},
|
|
1255
1309
|
{
|
|
@@ -1264,7 +1318,7 @@
|
|
|
1264
1318
|
"name": "drive-id",
|
|
1265
1319
|
"key": "driveId",
|
|
1266
1320
|
"required": true,
|
|
1267
|
-
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1321
|
+
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1268
1322
|
},
|
|
1269
1323
|
{
|
|
1270
1324
|
"name": "item-id",
|
|
@@ -1276,10 +1330,10 @@
|
|
|
1276
1330
|
"name": "table-id",
|
|
1277
1331
|
"key": "tableId",
|
|
1278
1332
|
"required": true,
|
|
1279
|
-
"description": "Workbook table ID or table name. Returned by `ask-marcel list-excel-tables`."
|
|
1333
|
+
"description": "Workbook table ID or table name. Returned by `ask-marcel-office list-excel-tables`."
|
|
1280
1334
|
}
|
|
1281
1335
|
],
|
|
1282
|
-
"example": "ask-marcel get-excel-table --drive-id 'b!1234' --item-id '01XLSX' --table-id 'Table1'",
|
|
1336
|
+
"example": "ask-marcel-office get-excel-table --drive-id 'b!1234' --item-id '01XLSX' --table-id 'Table1'",
|
|
1283
1337
|
"responseShape": "single Microsoft Graph `workbookTable` resource"
|
|
1284
1338
|
},
|
|
1285
1339
|
{
|
|
@@ -1294,7 +1348,7 @@
|
|
|
1294
1348
|
"name": "drive-id",
|
|
1295
1349
|
"key": "driveId",
|
|
1296
1350
|
"required": true,
|
|
1297
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1351
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
1298
1352
|
},
|
|
1299
1353
|
{
|
|
1300
1354
|
"name": "item-id",
|
|
@@ -1306,7 +1360,7 @@
|
|
|
1306
1360
|
"name": "worksheet-id",
|
|
1307
1361
|
"key": "worksheetId",
|
|
1308
1362
|
"required": true,
|
|
1309
|
-
"description": "Accepts either the worksheet display name (e.g. `Sheet1`, `PROJECT`) or the worksheet `id` GUID returned by `list-excel-worksheets`. If neither matches Graph responds `itemNotFound: The requested resource doesn't exist.` — when that happens, double-check spelling case-sensitively against `ask-marcel list-excel-worksheets --drive-id <d> --item-id <i>`.",
|
|
1363
|
+
"description": "Accepts either the worksheet display name (e.g. `Sheet1`, `PROJECT`) or the worksheet `id` GUID returned by `list-excel-worksheets`. If neither matches Graph responds `itemNotFound: The requested resource doesn't exist.` — when that happens, double-check spelling case-sensitively against `ask-marcel-office list-excel-worksheets --drive-id <d> --item-id <i>`.",
|
|
1310
1364
|
"argumentHint": {
|
|
1311
1365
|
"kind": "idOrName"
|
|
1312
1366
|
}
|
|
@@ -1324,7 +1378,7 @@
|
|
|
1324
1378
|
"description": "Cap (positive integer; default 50 000) on the size of the projected `values[]` in slim mode. When the used-range exceeds the cap, the response keeps `address` / `rowCount` / `columnCount` but drops `values[]` and adds `truncated: true` plus a hint pointing at `get-excel-range` for band-by-band reads. Ignored when `--full true` is set (the caller has opted into the full payload regardless of size)."
|
|
1325
1379
|
}
|
|
1326
1380
|
],
|
|
1327
|
-
"example": "ask-marcel get-excel-used-range --drive-id 'b!1234' --item-id '01ABC' --worksheet-id 'Sheet1'",
|
|
1381
|
+
"example": "ask-marcel-office get-excel-used-range --drive-id 'b!1234' --item-id '01ABC' --worksheet-id 'Sheet1'",
|
|
1328
1382
|
"responseShape": "Slim projection (default): `{ address, rowCount, columnCount, values, projection: 'slim' }` — `values[]` is the 2D cell-value array. Oversize variant: `{ address, rowCount, columnCount, projection: 'slim', truncated: true, maxCells, hint }` (no `values`). With `--full true`: the raw Graph `workbookRange` resource (adds `text`, `numberFormat`, `formulas` 2D arrays) plus `projection: 'full'`. Workbook Online (WAC) errors are translated to a clear `item is not an accessible Excel workbook` envelope (see `excel-error.ts`)."
|
|
1329
1383
|
},
|
|
1330
1384
|
{
|
|
@@ -1360,7 +1414,7 @@
|
|
|
1360
1414
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1361
1415
|
}
|
|
1362
1416
|
],
|
|
1363
|
-
"example": "ask-marcel get-group --group-id 'a1b2c3d4-...' --select 'id,displayName,mail'",
|
|
1417
|
+
"example": "ask-marcel-office get-group --group-id 'a1b2c3d4-...' --select 'id,displayName,mail'",
|
|
1364
1418
|
"responseShape": "single Microsoft Graph `group` resource"
|
|
1365
1419
|
},
|
|
1366
1420
|
{
|
|
@@ -1375,13 +1429,13 @@
|
|
|
1375
1429
|
"name": "message-id",
|
|
1376
1430
|
"key": "messageId",
|
|
1377
1431
|
"required": true,
|
|
1378
|
-
"description": "Outlook message ID. Returned by `ask-marcel list-mail-messages`."
|
|
1432
|
+
"description": "Outlook message ID. Returned by `ask-marcel-office list-mail-messages`."
|
|
1379
1433
|
},
|
|
1380
1434
|
{
|
|
1381
1435
|
"name": "attachment-id",
|
|
1382
1436
|
"key": "attachmentId",
|
|
1383
1437
|
"required": true,
|
|
1384
|
-
"description": "Attachment ID. Returned by `ask-marcel list-mail-attachments`."
|
|
1438
|
+
"description": "Attachment ID. Returned by `ask-marcel-office list-mail-attachments`."
|
|
1385
1439
|
},
|
|
1386
1440
|
{
|
|
1387
1441
|
"name": "select",
|
|
@@ -1396,7 +1450,7 @@
|
|
|
1396
1450
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1397
1451
|
}
|
|
1398
1452
|
],
|
|
1399
|
-
"example": "ask-marcel get-mail-attachment --message-id 'AAMkAGI2...' --attachment-id 'AAMkABC...'",
|
|
1453
|
+
"example": "ask-marcel-office get-mail-attachment --message-id 'AAMkAGI2...' --attachment-id 'AAMkABC...'",
|
|
1400
1454
|
"responseShape": "single Microsoft Graph `attachment` resource. fileAttachments include `contentBytes` (Graph) AND `base64` (CLI mirror) so `--output-path` works; with `--output-path` set, both byte fields are stripped from stdout and replaced by `savedTo`. itemAttachments and referenceAttachments are returned unchanged.",
|
|
1401
1455
|
"producesBytes": true
|
|
1402
1456
|
},
|
|
@@ -1418,7 +1472,7 @@
|
|
|
1418
1472
|
"key": "id"
|
|
1419
1473
|
}
|
|
1420
1474
|
],
|
|
1421
|
-
"description": "Outlook message ID. Returned by `ask-marcel list-mail-messages` or `list-mail-folder-messages`. Accepts `--id` as an alias."
|
|
1475
|
+
"description": "Outlook message ID. Returned by `ask-marcel-office list-mail-messages` or `list-mail-folder-messages`. Accepts `--id` as an alias."
|
|
1422
1476
|
},
|
|
1423
1477
|
{
|
|
1424
1478
|
"name": "select",
|
|
@@ -1433,7 +1487,7 @@
|
|
|
1433
1487
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1434
1488
|
}
|
|
1435
1489
|
],
|
|
1436
|
-
"example": "ask-marcel get-mail-message --message-id 'AAMkAGI2...'",
|
|
1490
|
+
"example": "ask-marcel-office get-mail-message --message-id 'AAMkAGI2...'",
|
|
1437
1491
|
"responseShape": "single Microsoft Graph `message` resource projected to the default `--select` set (or, when overridden, to the requested fields). The default omits `body`, `internetMessageHeaders`, and `uniqueBody` — request them explicitly via `--select` when you need the full HTML."
|
|
1438
1492
|
},
|
|
1439
1493
|
{
|
|
@@ -1457,7 +1511,7 @@
|
|
|
1457
1511
|
"description": "Outlook message ID. Returned by `list-mail-messages` or `search-mail-messages`. Accepts `--id` as an alias."
|
|
1458
1512
|
}
|
|
1459
1513
|
],
|
|
1460
|
-
"example": "ask-marcel get-mail-message-mime --message-id 'AAMkAD...'",
|
|
1514
|
+
"example": "ask-marcel-office get-mail-message-mime --message-id 'AAMkAD...'",
|
|
1461
1515
|
"responseShape": "`{ contentType: \"text/plain\", size, base64 }` — Graph returns the raw MIME envelope wrapped as `text/plain` (NOT `message/rfc822` as the older docs suggested). Pair with the global `--output-path <path>` flag to land the .eml on disk and replace `base64` with `savedTo` for messages with large attachments.",
|
|
1462
1516
|
"producesBytes": true
|
|
1463
1517
|
},
|
|
@@ -1492,7 +1546,7 @@
|
|
|
1492
1546
|
]
|
|
1493
1547
|
}
|
|
1494
1548
|
],
|
|
1495
|
-
"example": "ask-marcel get-mail-rule --message-rule-id 'AQAAANC...'",
|
|
1549
|
+
"example": "ask-marcel-office get-mail-rule --message-rule-id 'AQAAANC...'",
|
|
1496
1550
|
"responseShape": "single Microsoft Graph `messageRule` resource"
|
|
1497
1551
|
},
|
|
1498
1552
|
{
|
|
@@ -1503,7 +1557,7 @@
|
|
|
1503
1557
|
"graphPathTemplate": "/me/mailboxSettings",
|
|
1504
1558
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/user-get-mailboxsettings",
|
|
1505
1559
|
"options": [],
|
|
1506
|
-
"example": "ask-marcel get-mailbox-settings",
|
|
1560
|
+
"example": "ask-marcel-office get-mailbox-settings",
|
|
1507
1561
|
"responseShape": "single Microsoft Graph `mailboxSettings` resource"
|
|
1508
1562
|
},
|
|
1509
1563
|
{
|
|
@@ -1527,7 +1581,7 @@
|
|
|
1527
1581
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1528
1582
|
}
|
|
1529
1583
|
],
|
|
1530
|
-
"example": "ask-marcel get-my-calendar --select 'id,name'",
|
|
1584
|
+
"example": "ask-marcel-office get-my-calendar --select 'id,name'",
|
|
1531
1585
|
"responseShape": "single Microsoft Graph `calendar` resource"
|
|
1532
1586
|
},
|
|
1533
1587
|
{
|
|
@@ -1551,7 +1605,7 @@
|
|
|
1551
1605
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1552
1606
|
}
|
|
1553
1607
|
],
|
|
1554
|
-
"example": "ask-marcel get-my-manager --select 'id,displayName,mail'",
|
|
1608
|
+
"example": "ask-marcel-office get-my-manager --select 'id,displayName,mail'",
|
|
1555
1609
|
"responseShape": "single Microsoft Graph `user` resource on success, OR `{ manager: null, note: <string> }` when the signed-in user has no manager set. Detect the no-manager case via `data.manager === null` (also: `data.note` carries a human description)."
|
|
1556
1610
|
},
|
|
1557
1611
|
{
|
|
@@ -1562,7 +1616,7 @@
|
|
|
1562
1616
|
"graphPathTemplate": "/me/photo/$value",
|
|
1563
1617
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/profilephoto-get",
|
|
1564
1618
|
"options": [],
|
|
1565
|
-
"example": "ask-marcel get-my-profile-photo",
|
|
1619
|
+
"example": "ask-marcel-office get-my-profile-photo",
|
|
1566
1620
|
"responseShape": "`{ contentType: \"image/jpeg\", size: <bytes>, base64: \"<encoded>\" }` — the photo bytes, inlined. Pair with the global `--output-path <path>` flag to land the image on disk and replace `base64` with `savedTo`.",
|
|
1567
1621
|
"producesBytes": true
|
|
1568
1622
|
},
|
|
@@ -1578,7 +1632,7 @@
|
|
|
1578
1632
|
"name": "onenote-page-id",
|
|
1579
1633
|
"key": "onenotePageId",
|
|
1580
1634
|
"required": true,
|
|
1581
|
-
"description": "OneNote page ID. Returned by `ask-marcel list-onenote-section-pages`.",
|
|
1635
|
+
"description": "OneNote page ID. Returned by `ask-marcel-office list-onenote-section-pages`.",
|
|
1582
1636
|
"aliases": [
|
|
1583
1637
|
{
|
|
1584
1638
|
"name": "id",
|
|
@@ -1617,7 +1671,7 @@
|
|
|
1617
1671
|
}
|
|
1618
1672
|
}
|
|
1619
1673
|
],
|
|
1620
|
-
"example": "ask-marcel get-onenote-page-as-markdown --onenote-page-id '1-abc...'",
|
|
1674
|
+
"example": "ask-marcel-office get-onenote-page-as-markdown --onenote-page-id '1-abc...'",
|
|
1621
1675
|
"responseShape": "`{ contentType: \"text/markdown\", size, text }` — turndown-rendered page body with inline images embedded as data URIs by default. With `--include-metadata true`, a `## OneNote metadata` block is appended after the body.",
|
|
1622
1676
|
"producesBytes": true
|
|
1623
1677
|
},
|
|
@@ -1633,7 +1687,7 @@
|
|
|
1633
1687
|
"name": "onenote-page-id",
|
|
1634
1688
|
"key": "onenotePageId",
|
|
1635
1689
|
"required": true,
|
|
1636
|
-
"description": "OneNote page ID. Returned by `ask-marcel list-onenote-section-pages`.",
|
|
1690
|
+
"description": "OneNote page ID. Returned by `ask-marcel-office list-onenote-section-pages`.",
|
|
1637
1691
|
"aliases": [
|
|
1638
1692
|
{
|
|
1639
1693
|
"name": "id",
|
|
@@ -1646,13 +1700,13 @@
|
|
|
1646
1700
|
]
|
|
1647
1701
|
}
|
|
1648
1702
|
],
|
|
1649
|
-
"example": "ask-marcel get-onenote-page-content --onenote-page-id '1-abc...'",
|
|
1703
|
+
"example": "ask-marcel-office get-onenote-page-content --onenote-page-id '1-abc...'",
|
|
1650
1704
|
"responseShape": "`{ contentType: \"text/html\", size: <chars>, text: \"<html>...\" }` — the rendered OneNote page body wrapped in a JSON envelope",
|
|
1651
1705
|
"producesBytes": true
|
|
1652
1706
|
},
|
|
1653
1707
|
{
|
|
1654
1708
|
"name": "get-organization",
|
|
1655
|
-
"summary": "Return the tenant's organization metadata — display name, country, verified domains, business phones, technical / security notification contacts, assigned Microsoft 365 SKUs / licensing. Graph wraps the single organization resource under `value[]` (
|
|
1709
|
+
"summary": "Return the tenant's organization metadata — display name, country, verified domains, business phones, technical / security notification contacts, assigned Microsoft 365 SKUs / licensing. Graph wraps the single organization resource under `value[]` (— even though only one tenant exists, the endpoint returns a collection). The full resource is ~57 KB; use `--select` to slim it (e.g. `--select id,displayName,verifiedDomains`).",
|
|
1656
1710
|
"category": "user",
|
|
1657
1711
|
"graphMethod": "GET",
|
|
1658
1712
|
"graphPathTemplate": "/organization",
|
|
@@ -1671,7 +1725,7 @@
|
|
|
1671
1725
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1672
1726
|
}
|
|
1673
1727
|
],
|
|
1674
|
-
"example": "ask-marcel get-organization --select 'id,displayName,verifiedDomains'",
|
|
1728
|
+
"example": "ask-marcel-office get-organization --select 'id,displayName,verifiedDomains'",
|
|
1675
1729
|
"responseShape": "collection of one Microsoft Graph `organization` resource under `value[]`"
|
|
1676
1730
|
},
|
|
1677
1731
|
{
|
|
@@ -1686,7 +1740,7 @@
|
|
|
1686
1740
|
"name": "planner-bucket-id",
|
|
1687
1741
|
"key": "plannerBucketId",
|
|
1688
1742
|
"required": true,
|
|
1689
|
-
"description": "Planner bucket ID. Returned by `ask-marcel list-plan-buckets`.",
|
|
1743
|
+
"description": "Planner bucket ID. Returned by `ask-marcel-office list-plan-buckets`.",
|
|
1690
1744
|
"aliases": [
|
|
1691
1745
|
{
|
|
1692
1746
|
"name": "id",
|
|
@@ -1699,7 +1753,7 @@
|
|
|
1699
1753
|
]
|
|
1700
1754
|
}
|
|
1701
1755
|
],
|
|
1702
|
-
"example": "ask-marcel get-planner-bucket --planner-bucket-id 'sFNeQRFu_kqhxpwwAhmA15gAGfoT'",
|
|
1756
|
+
"example": "ask-marcel-office get-planner-bucket --planner-bucket-id 'sFNeQRFu_kqhxpwwAhmA15gAGfoT'",
|
|
1703
1757
|
"responseShape": "single Microsoft Graph `plannerBucket` resource"
|
|
1704
1758
|
},
|
|
1705
1759
|
{
|
|
@@ -1714,7 +1768,7 @@
|
|
|
1714
1768
|
"name": "planner-plan-id",
|
|
1715
1769
|
"key": "plannerPlanId",
|
|
1716
1770
|
"required": true,
|
|
1717
|
-
"description": "Planner plan ID. Returned in the `planId` field of any task from `ask-marcel list-planner-tasks`.",
|
|
1771
|
+
"description": "Planner plan ID. Returned in the `planId` field of any task from `ask-marcel-office list-planner-tasks`.",
|
|
1718
1772
|
"aliases": [
|
|
1719
1773
|
{
|
|
1720
1774
|
"name": "id",
|
|
@@ -1727,7 +1781,7 @@
|
|
|
1727
1781
|
]
|
|
1728
1782
|
}
|
|
1729
1783
|
],
|
|
1730
|
-
"example": "ask-marcel get-planner-plan --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
1784
|
+
"example": "ask-marcel-office get-planner-plan --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
1731
1785
|
"responseShape": "single Microsoft Graph `plannerPlan` resource"
|
|
1732
1786
|
},
|
|
1733
1787
|
{
|
|
@@ -1742,7 +1796,7 @@
|
|
|
1742
1796
|
"name": "planner-task-id",
|
|
1743
1797
|
"key": "plannerTaskId",
|
|
1744
1798
|
"required": true,
|
|
1745
|
-
"description": "Planner task ID. Returned by `ask-marcel list-planner-tasks` or `list-plan-tasks`. Accepts `--task-id` as a shorter alias (each task command targets exactly one of Planner or To Do, so within this command's flag set there is no ambiguity).",
|
|
1799
|
+
"description": "Planner task ID. Returned by `ask-marcel-office list-planner-tasks` or `list-plan-tasks`. Accepts `--task-id` as a shorter alias (each task command targets exactly one of Planner or To Do, so within this command's flag set there is no ambiguity).",
|
|
1746
1800
|
"aliases": [
|
|
1747
1801
|
{
|
|
1748
1802
|
"name": "id",
|
|
@@ -1755,7 +1809,7 @@
|
|
|
1755
1809
|
]
|
|
1756
1810
|
}
|
|
1757
1811
|
],
|
|
1758
|
-
"example": "ask-marcel get-planner-task --planner-task-id '01tx7Ic7-USXEwt0lvR1cmgAH8gK'",
|
|
1812
|
+
"example": "ask-marcel-office get-planner-task --planner-task-id '01tx7Ic7-USXEwt0lvR1cmgAH8gK'",
|
|
1759
1813
|
"responseShape": "single Microsoft Graph `plannerTask` resource"
|
|
1760
1814
|
},
|
|
1761
1815
|
{
|
|
@@ -1770,7 +1824,7 @@
|
|
|
1770
1824
|
"name": "planner-task-id",
|
|
1771
1825
|
"key": "plannerTaskId",
|
|
1772
1826
|
"required": true,
|
|
1773
|
-
"description": "Planner task ID. Returned by `ask-marcel list-planner-tasks` or `list-plan-tasks`. Accepts `--task-id` as a shorter alias (each task command targets exactly one of Planner or To Do, so within this command's flag set there is no ambiguity).",
|
|
1827
|
+
"description": "Planner task ID. Returned by `ask-marcel-office list-planner-tasks` or `list-plan-tasks`. Accepts `--task-id` as a shorter alias (each task command targets exactly one of Planner or To Do, so within this command's flag set there is no ambiguity).",
|
|
1774
1828
|
"aliases": [
|
|
1775
1829
|
{
|
|
1776
1830
|
"name": "id",
|
|
@@ -1783,9 +1837,64 @@
|
|
|
1783
1837
|
]
|
|
1784
1838
|
}
|
|
1785
1839
|
],
|
|
1786
|
-
"example": "ask-marcel get-planner-task-details --planner-task-id '01tx7Ic7-USXEwt0lvR1cmgAH8gK'",
|
|
1840
|
+
"example": "ask-marcel-office get-planner-task-details --planner-task-id '01tx7Ic7-USXEwt0lvR1cmgAH8gK'",
|
|
1787
1841
|
"responseShape": "single Microsoft Graph `plannerTaskDetails` resource"
|
|
1788
1842
|
},
|
|
1843
|
+
{
|
|
1844
|
+
"name": "get-schedule",
|
|
1845
|
+
"summary": "Get the free/busy availability of one or more people (or meeting rooms) over a time window — the Outlook \"scheduling assistant\" data. Pass a comma-separated list of email addresses; each result carries `availabilityView` (one character per interval: 0 free, 1 tentative, 2 busy, 3 out-of-office, 4 working-elsewhere), the underlying `scheduleItems[]` (busy blocks with start/end and, where the target's calendar permits, subject/location), and the person's `workingHours`. Read-only despite being a POST (the body is a query, nothing is created). Bounds are interpreted as UTC; per-address failures (unknown mailbox, external tenant) surface inside that entry's `error` field rather than failing the whole call.",
|
|
1846
|
+
"category": "calendar",
|
|
1847
|
+
"graphMethod": "POST",
|
|
1848
|
+
"graphPathTemplate": "/me/calendar/getSchedule",
|
|
1849
|
+
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/calendar-getschedule",
|
|
1850
|
+
"options": [
|
|
1851
|
+
{
|
|
1852
|
+
"name": "schedules",
|
|
1853
|
+
"key": "schedules",
|
|
1854
|
+
"required": true,
|
|
1855
|
+
"aliases": [
|
|
1856
|
+
{
|
|
1857
|
+
"name": "emails",
|
|
1858
|
+
"key": "emails"
|
|
1859
|
+
}
|
|
1860
|
+
],
|
|
1861
|
+
"description": "Comma-separated SMTP addresses of the users and/or room resources to check (e.g. `alice@contoso.com,bob@contoso.com,room-4a@contoso.com`). Resolve names to addresses first via `list-relevant-people` or `microsoft-search-query`."
|
|
1862
|
+
},
|
|
1863
|
+
{
|
|
1864
|
+
"name": "start-date-time",
|
|
1865
|
+
"key": "startDateTime",
|
|
1866
|
+
"required": true,
|
|
1867
|
+
"aliases": [
|
|
1868
|
+
{
|
|
1869
|
+
"name": "start",
|
|
1870
|
+
"key": "start"
|
|
1871
|
+
}
|
|
1872
|
+
],
|
|
1873
|
+
"description": "Window lower bound (interpreted as UTC). ISO 8601 UTC (e.g. `2026-04-01T00:00:00Z` or `2026-04-01`) OR a relative shape: `7d` / `1w` / `2h` / `30m` (past), `+7d` (future), `today` / `yesterday` / `tomorrow` / `now`, `monday`-`sunday` (most recent), `last-<weekday>` / `next-<weekday>`, `start-of-week|month|year`, `end-of-week|month|year`. Relative forms resolve at request time relative to the CLI process clock (UTC)."
|
|
1874
|
+
},
|
|
1875
|
+
{
|
|
1876
|
+
"name": "end-date-time",
|
|
1877
|
+
"key": "endDateTime",
|
|
1878
|
+
"required": true,
|
|
1879
|
+
"aliases": [
|
|
1880
|
+
{
|
|
1881
|
+
"name": "end",
|
|
1882
|
+
"key": "end"
|
|
1883
|
+
}
|
|
1884
|
+
],
|
|
1885
|
+
"description": "Window upper bound (interpreted as UTC). Graph caps the span at 62 days. ISO 8601 UTC (e.g. `2026-04-01T00:00:00Z` or `2026-04-01`) OR a relative shape: `7d` / `1w` / `2h` / `30m` (past), `+7d` (future), `today` / `yesterday` / `tomorrow` / `now`, `monday`-`sunday` (most recent), `last-<weekday>` / `next-<weekday>`, `start-of-week|month|year`, `end-of-week|month|year`. Relative forms resolve at request time relative to the CLI process clock (UTC)."
|
|
1886
|
+
},
|
|
1887
|
+
{
|
|
1888
|
+
"name": "availability-view-interval",
|
|
1889
|
+
"key": "availabilityViewInterval",
|
|
1890
|
+
"required": false,
|
|
1891
|
+
"description": "Slot granularity in minutes for the `availabilityView` string (5-1440; Graph defaults to 30). `15` gives quarter-hour resolution — one character per 15-minute slot."
|
|
1892
|
+
}
|
|
1893
|
+
],
|
|
1894
|
+
"example": "ask-marcel-office get-schedule --schedules 'alice@contoso.com,bob@contoso.com' --start-date-time today --end-date-time +1d --availability-view-interval 30",
|
|
1895
|
+
"responseShape": "collection of Microsoft Graph `scheduleInformation` resources under `value[]` — one per requested address, each `{ scheduleId, availabilityView, scheduleItems: [{ status, start, end, subject?, location? }], workingHours, error? }`",
|
|
1896
|
+
"bodyTemplate": "{ schedules: [{schedules}], startTime: { dateTime: '{start-date-time}', timeZone: 'UTC' }, endTime: { dateTime: '{end-date-time}', timeZone: 'UTC' }, availabilityViewInterval?: {availability-view-interval} }"
|
|
1897
|
+
},
|
|
1789
1898
|
{
|
|
1790
1899
|
"name": "get-shared-mailbox-message",
|
|
1791
1900
|
"summary": "Return a single message from a shared / delegated mailbox. Use `--select` to fetch only specific fields (e.g. `--select id,subject,from,receivedDateTime`) — sibling to `get-mail-message` for /me.",
|
|
@@ -1819,7 +1928,7 @@
|
|
|
1819
1928
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1820
1929
|
}
|
|
1821
1930
|
],
|
|
1822
|
-
"example": "ask-marcel get-shared-mailbox-message --user-id 'shared-mailbox@contoso.com' --message-id 'AAMkAD...' --select 'id,subject,from'",
|
|
1931
|
+
"example": "ask-marcel-office get-shared-mailbox-message --user-id 'shared-mailbox@contoso.com' --message-id 'AAMkAD...' --select 'id,subject,from'",
|
|
1823
1932
|
"responseShape": "single Microsoft Graph `message` resource"
|
|
1824
1933
|
},
|
|
1825
1934
|
{
|
|
@@ -1864,7 +1973,7 @@
|
|
|
1864
1973
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1865
1974
|
}
|
|
1866
1975
|
],
|
|
1867
|
-
"example": "ask-marcel get-sharepoint-list-column --site-id '...' --list-id '...' --column-id 'Title'",
|
|
1976
|
+
"example": "ask-marcel-office get-sharepoint-list-column --site-id '...' --list-id '...' --column-id 'Title'",
|
|
1868
1977
|
"responseShape": "single Microsoft Graph `columnDefinition` resource"
|
|
1869
1978
|
},
|
|
1870
1979
|
{
|
|
@@ -1885,7 +1994,7 @@
|
|
|
1885
1994
|
"key": "id"
|
|
1886
1995
|
}
|
|
1887
1996
|
],
|
|
1888
|
-
"description": "SharePoint site ID. Either the composite ID (`hostname,site-collection-id,site-id`) returned by `ask-marcel search-sharepoint-sites-by-name`, or the literal `root` to refer to the tenant root site."
|
|
1997
|
+
"description": "SharePoint site ID. Either the composite ID (`hostname,site-collection-id,site-id`) returned by `ask-marcel-office search-sharepoint-sites-by-name`, or the literal `root` to refer to the tenant root site."
|
|
1889
1998
|
},
|
|
1890
1999
|
{
|
|
1891
2000
|
"name": "select",
|
|
@@ -1900,7 +2009,7 @@
|
|
|
1900
2009
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1901
2010
|
}
|
|
1902
2011
|
],
|
|
1903
|
-
"example": "ask-marcel get-sharepoint-site --site-id 'contoso.sharepoint.com,1234,5678'",
|
|
2012
|
+
"example": "ask-marcel-office get-sharepoint-site --site-id 'contoso.sharepoint.com,1234,5678'",
|
|
1904
2013
|
"responseShape": "single Microsoft Graph `site` resource"
|
|
1905
2014
|
},
|
|
1906
2015
|
{
|
|
@@ -1924,7 +2033,7 @@
|
|
|
1924
2033
|
"description": "`--path` (server-relative) starts with `/`, e.g. `/sites/Marketing` or `/teams/Marketing/Subsite`. Take the URL pathname after the hostname."
|
|
1925
2034
|
}
|
|
1926
2035
|
],
|
|
1927
|
-
"example": "ask-marcel get-sharepoint-site-by-path --hostname 'contoso.sharepoint.com' --path '/sites/Marketing'",
|
|
2036
|
+
"example": "ask-marcel-office get-sharepoint-site-by-path --hostname 'contoso.sharepoint.com' --path '/sites/Marketing'",
|
|
1928
2037
|
"responseShape": "single Microsoft Graph `site` resource"
|
|
1929
2038
|
},
|
|
1930
2039
|
{
|
|
@@ -1939,13 +2048,13 @@
|
|
|
1939
2048
|
"name": "site-id",
|
|
1940
2049
|
"key": "siteId",
|
|
1941
2050
|
"required": true,
|
|
1942
|
-
"description": "SharePoint site ID. Returned by `ask-marcel search-sharepoint-sites-by-name`."
|
|
2051
|
+
"description": "SharePoint site ID. Returned by `ask-marcel-office search-sharepoint-sites-by-name`."
|
|
1943
2052
|
},
|
|
1944
2053
|
{
|
|
1945
2054
|
"name": "drive-id",
|
|
1946
2055
|
"key": "driveId",
|
|
1947
2056
|
"required": true,
|
|
1948
|
-
"description": "Drive (document library) ID on the site. Returned by `ask-marcel list-sharepoint-site-drives`."
|
|
2057
|
+
"description": "Drive (document library) ID on the site. Returned by `ask-marcel-office list-sharepoint-site-drives`."
|
|
1949
2058
|
},
|
|
1950
2059
|
{
|
|
1951
2060
|
"name": "select",
|
|
@@ -1960,7 +2069,7 @@
|
|
|
1960
2069
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
1961
2070
|
}
|
|
1962
2071
|
],
|
|
1963
|
-
"example": "ask-marcel get-sharepoint-site-drive-by-id --site-id 'contoso.sharepoint.com,1234,5678' --drive-id 'b!abcd'",
|
|
2072
|
+
"example": "ask-marcel-office get-sharepoint-site-drive-by-id --site-id 'contoso.sharepoint.com,1234,5678' --drive-id 'b!abcd'",
|
|
1964
2073
|
"responseShape": "single Microsoft Graph `drive` resource"
|
|
1965
2074
|
},
|
|
1966
2075
|
{
|
|
@@ -1975,13 +2084,13 @@
|
|
|
1975
2084
|
"name": "site-id",
|
|
1976
2085
|
"key": "siteId",
|
|
1977
2086
|
"required": true,
|
|
1978
|
-
"description": "SharePoint site ID. Returned by `ask-marcel search-sharepoint-sites-by-name`."
|
|
2087
|
+
"description": "SharePoint site ID. Returned by `ask-marcel-office search-sharepoint-sites-by-name`."
|
|
1979
2088
|
},
|
|
1980
2089
|
{
|
|
1981
2090
|
"name": "list-id",
|
|
1982
2091
|
"key": "listId",
|
|
1983
2092
|
"required": true,
|
|
1984
|
-
"description": "SharePoint list ID or display name. Returned by `ask-marcel list-sharepoint-site-lists`.",
|
|
2093
|
+
"description": "SharePoint list ID or display name. Returned by `ask-marcel-office list-sharepoint-site-lists`.",
|
|
1985
2094
|
"argumentHint": {
|
|
1986
2095
|
"kind": "idOrName"
|
|
1987
2096
|
}
|
|
@@ -1999,7 +2108,7 @@
|
|
|
1999
2108
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2000
2109
|
}
|
|
2001
2110
|
],
|
|
2002
|
-
"example": "ask-marcel get-sharepoint-site-list --site-id 'contoso.sharepoint.com,1234,5678' --list-id 'Documents'",
|
|
2111
|
+
"example": "ask-marcel-office get-sharepoint-site-list --site-id 'contoso.sharepoint.com,1234,5678' --list-id 'Documents'",
|
|
2003
2112
|
"responseShape": "single Microsoft Graph `list` resource"
|
|
2004
2113
|
},
|
|
2005
2114
|
{
|
|
@@ -2014,13 +2123,13 @@
|
|
|
2014
2123
|
"name": "site-id",
|
|
2015
2124
|
"key": "siteId",
|
|
2016
2125
|
"required": true,
|
|
2017
|
-
"description": "SharePoint site ID. Returned by `ask-marcel search-sharepoint-sites-by-name`."
|
|
2126
|
+
"description": "SharePoint site ID. Returned by `ask-marcel-office search-sharepoint-sites-by-name`."
|
|
2018
2127
|
},
|
|
2019
2128
|
{
|
|
2020
2129
|
"name": "list-id",
|
|
2021
2130
|
"key": "listId",
|
|
2022
2131
|
"required": true,
|
|
2023
|
-
"description": "SharePoint list ID or display name. Returned by `ask-marcel list-sharepoint-site-lists`.",
|
|
2132
|
+
"description": "SharePoint list ID or display name. Returned by `ask-marcel-office list-sharepoint-site-lists`.",
|
|
2024
2133
|
"argumentHint": {
|
|
2025
2134
|
"kind": "idOrName"
|
|
2026
2135
|
}
|
|
@@ -2029,7 +2138,7 @@
|
|
|
2029
2138
|
"name": "list-item-id",
|
|
2030
2139
|
"key": "listItemId",
|
|
2031
2140
|
"required": true,
|
|
2032
|
-
"description": "listItem ID (typically a small integer). Returned by `ask-marcel list-sharepoint-site-list-items`.",
|
|
2141
|
+
"description": "listItem ID (typically a small integer). Returned by `ask-marcel-office list-sharepoint-site-list-items`.",
|
|
2033
2142
|
"aliases": [
|
|
2034
2143
|
{
|
|
2035
2144
|
"name": "item-id",
|
|
@@ -2050,7 +2159,7 @@
|
|
|
2050
2159
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2051
2160
|
}
|
|
2052
2161
|
],
|
|
2053
|
-
"example": "ask-marcel get-sharepoint-site-list-item --site-id 'contoso.sharepoint.com,1234,5678' --list-id 'Tasks' --list-item-id '7'",
|
|
2162
|
+
"example": "ask-marcel-office get-sharepoint-site-list-item --site-id 'contoso.sharepoint.com,1234,5678' --list-id 'Tasks' --list-item-id '7'",
|
|
2054
2163
|
"responseShape": "single Microsoft Graph `listItem` resource"
|
|
2055
2164
|
},
|
|
2056
2165
|
{
|
|
@@ -2080,7 +2189,7 @@
|
|
|
2080
2189
|
]
|
|
2081
2190
|
}
|
|
2082
2191
|
],
|
|
2083
|
-
"example": "ask-marcel get-sharepoint-site-onenote-page-content --site-id 'contoso.sharepoint.com,...' --onenote-page-id 'p1'",
|
|
2192
|
+
"example": "ask-marcel-office get-sharepoint-site-onenote-page-content --site-id 'contoso.sharepoint.com,...' --onenote-page-id 'p1'",
|
|
2084
2193
|
"responseShape": "`{ contentType: \"text/html\", size: <chars>, text: \"<html>...\" }` — the rendered OneNote page body wrapped in a JSON envelope. Pair with the global `--output-path <path>` to write the raw HTML to disk.",
|
|
2085
2194
|
"producesBytes": true
|
|
2086
2195
|
},
|
|
@@ -2105,7 +2214,7 @@
|
|
|
2105
2214
|
"description": "SharePoint site ID."
|
|
2106
2215
|
}
|
|
2107
2216
|
],
|
|
2108
|
-
"example": "ask-marcel get-site-analytics --site-id 'contoso.sharepoint.com,...'",
|
|
2217
|
+
"example": "ask-marcel-office get-site-analytics --site-id 'contoso.sharepoint.com,...'",
|
|
2109
2218
|
"responseShape": "single Microsoft Graph `itemAnalytics` resource"
|
|
2110
2219
|
},
|
|
2111
2220
|
{
|
|
@@ -2120,13 +2229,13 @@
|
|
|
2120
2229
|
"name": "calendar-id",
|
|
2121
2230
|
"key": "calendarId",
|
|
2122
2231
|
"required": true,
|
|
2123
|
-
"description": "Calendar ID, or `primary` / `default` for the signed-in user's default calendar. Returned by `ask-marcel list-calendars`."
|
|
2232
|
+
"description": "Calendar ID, or `primary` / `default` for the signed-in user's default calendar. Returned by `ask-marcel-office list-calendars`."
|
|
2124
2233
|
},
|
|
2125
2234
|
{
|
|
2126
2235
|
"name": "event-id",
|
|
2127
2236
|
"key": "eventId",
|
|
2128
2237
|
"required": true,
|
|
2129
|
-
"description": "Event ID. Returned by `ask-marcel list-specific-calendar-events`."
|
|
2238
|
+
"description": "Event ID. Returned by `ask-marcel-office list-specific-calendar-events`."
|
|
2130
2239
|
},
|
|
2131
2240
|
{
|
|
2132
2241
|
"name": "select",
|
|
@@ -2141,7 +2250,7 @@
|
|
|
2141
2250
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2142
2251
|
}
|
|
2143
2252
|
],
|
|
2144
|
-
"example": "ask-marcel get-specific-calendar-event --calendar-id 'primary' --event-id 'AAMkABC...' --select 'id,subject,start,end'",
|
|
2253
|
+
"example": "ask-marcel-office get-specific-calendar-event --calendar-id 'primary' --event-id 'AAMkABC...' --select 'id,subject,start,end'",
|
|
2145
2254
|
"responseShape": "single Microsoft Graph `event` resource"
|
|
2146
2255
|
},
|
|
2147
2256
|
{
|
|
@@ -2162,7 +2271,7 @@
|
|
|
2162
2271
|
"key": "id"
|
|
2163
2272
|
}
|
|
2164
2273
|
],
|
|
2165
|
-
"description": "Microsoft Teams team ID. Returned by `ask-marcel list-joined-teams`."
|
|
2274
|
+
"description": "Microsoft Teams team ID. Returned by `ask-marcel-office list-joined-teams`."
|
|
2166
2275
|
},
|
|
2167
2276
|
{
|
|
2168
2277
|
"name": "select",
|
|
@@ -2177,7 +2286,7 @@
|
|
|
2177
2286
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2178
2287
|
}
|
|
2179
2288
|
],
|
|
2180
|
-
"example": "ask-marcel get-team --team-id 'abc-1234-...' --select displayName,description,visibility",
|
|
2289
|
+
"example": "ask-marcel-office get-team --team-id 'abc-1234-...' --select displayName,description,visibility",
|
|
2181
2290
|
"responseShape": "single Microsoft Graph `team` resource (or projection of the requested `--select` fields)"
|
|
2182
2291
|
},
|
|
2183
2292
|
{
|
|
@@ -2192,13 +2301,13 @@
|
|
|
2192
2301
|
"name": "team-id",
|
|
2193
2302
|
"key": "teamId",
|
|
2194
2303
|
"required": true,
|
|
2195
|
-
"description": "Microsoft Teams team ID. Returned by `ask-marcel list-joined-teams`."
|
|
2304
|
+
"description": "Microsoft Teams team ID. Returned by `ask-marcel-office list-joined-teams`."
|
|
2196
2305
|
},
|
|
2197
2306
|
{
|
|
2198
2307
|
"name": "channel-id",
|
|
2199
2308
|
"key": "channelId",
|
|
2200
2309
|
"required": true,
|
|
2201
|
-
"description": "Channel ID. Returned by `ask-marcel list-team-channels`."
|
|
2310
|
+
"description": "Channel ID. Returned by `ask-marcel-office list-team-channels`."
|
|
2202
2311
|
},
|
|
2203
2312
|
{
|
|
2204
2313
|
"name": "select",
|
|
@@ -2213,7 +2322,7 @@
|
|
|
2213
2322
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2214
2323
|
}
|
|
2215
2324
|
],
|
|
2216
|
-
"example": "ask-marcel get-team-channel --team-id 'abc-1234-...' --channel-id '19:def@thread.tacv2' --select 'id,displayName'",
|
|
2325
|
+
"example": "ask-marcel-office get-team-channel --team-id 'abc-1234-...' --channel-id '19:def@thread.tacv2' --select 'id,displayName'",
|
|
2217
2326
|
"responseShape": "single Microsoft Graph `channel` resource"
|
|
2218
2327
|
},
|
|
2219
2328
|
{
|
|
@@ -2249,7 +2358,7 @@
|
|
|
2249
2358
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2250
2359
|
}
|
|
2251
2360
|
],
|
|
2252
|
-
"example": "ask-marcel get-team-primary-channel --team-id 'tm1'",
|
|
2361
|
+
"example": "ask-marcel-office get-team-primary-channel --team-id 'tm1'",
|
|
2253
2362
|
"responseShape": "single Microsoft Graph `channel` resource"
|
|
2254
2363
|
},
|
|
2255
2364
|
{
|
|
@@ -2273,7 +2382,7 @@
|
|
|
2273
2382
|
"description": "Teams chat message ID. Source via `list-teams-chats-with-messages` or `list-teams-chat-messages`."
|
|
2274
2383
|
}
|
|
2275
2384
|
],
|
|
2276
|
-
"example": "ask-marcel get-teams-chat-message --chat-id '19:abc...@unq.gbl.spaces' --message-id '1700000000000'",
|
|
2385
|
+
"example": "ask-marcel-office get-teams-chat-message --chat-id '19:abc...@unq.gbl.spaces' --message-id '1700000000000'",
|
|
2277
2386
|
"responseShape": "single Teams chat message — `id`, `from`, `imDisplayName`, `content`, `contentType`, `composeTime`, `originalArrivalTime`, etc. **Microsoft-internal schema — fields may change without notice.**",
|
|
2278
2387
|
"needsSubstrateToken": true,
|
|
2279
2388
|
"stability": "experimental"
|
|
@@ -2290,7 +2399,7 @@
|
|
|
2290
2399
|
"name": "todo-task-list-id",
|
|
2291
2400
|
"key": "todoTaskListId",
|
|
2292
2401
|
"required": true,
|
|
2293
|
-
"description": "To Do task list ID. Returned by `ask-marcel list-todo-task-lists`.",
|
|
2402
|
+
"description": "To Do task list ID. Returned by `ask-marcel-office list-todo-task-lists`.",
|
|
2294
2403
|
"aliases": [
|
|
2295
2404
|
{
|
|
2296
2405
|
"name": "task-list-id",
|
|
@@ -2306,7 +2415,7 @@
|
|
|
2306
2415
|
"name": "todo-task-id",
|
|
2307
2416
|
"key": "todoTaskId",
|
|
2308
2417
|
"required": true,
|
|
2309
|
-
"description": "To Do task ID. Returned by `ask-marcel list-todo-tasks`. Accepts `--task-id` as a shorter alias (within this command's flag set the To Do context is unambiguous).",
|
|
2418
|
+
"description": "To Do task ID. Returned by `ask-marcel-office list-todo-tasks`. Accepts `--task-id` as a shorter alias (within this command's flag set the To Do context is unambiguous).",
|
|
2310
2419
|
"aliases": [
|
|
2311
2420
|
{
|
|
2312
2421
|
"name": "task-id",
|
|
@@ -2327,7 +2436,7 @@
|
|
|
2327
2436
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2328
2437
|
}
|
|
2329
2438
|
],
|
|
2330
|
-
"example": "ask-marcel get-todo-task --todo-task-list-id 'AAMkAGI...' --todo-task-id 'AAMkABC...'",
|
|
2439
|
+
"example": "ask-marcel-office get-todo-task --todo-task-list-id 'AAMkAGI...' --todo-task-id 'AAMkABC...'",
|
|
2331
2440
|
"responseShape": "single Microsoft Graph `todoTask` resource (slimmed by `--select` when supplied)"
|
|
2332
2441
|
},
|
|
2333
2442
|
{
|
|
@@ -2363,7 +2472,7 @@
|
|
|
2363
2472
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2364
2473
|
}
|
|
2365
2474
|
],
|
|
2366
|
-
"example": "ask-marcel get-user-manager --user-id 'alice@contoso.com' --select 'id,displayName,mail'",
|
|
2475
|
+
"example": "ask-marcel-office get-user-manager --user-id 'alice@contoso.com' --select 'id,displayName,mail'",
|
|
2367
2476
|
"responseShape": "single Microsoft Graph `user` resource on success, OR `{ manager: null, note: <string> }` when the target user has no manager set. Detect the no-manager case via `data.manager === null` (same discriminator as `get-my-manager`)."
|
|
2368
2477
|
},
|
|
2369
2478
|
{
|
|
@@ -2393,7 +2502,7 @@
|
|
|
2393
2502
|
"description": "Pass `--count-files true` to add `estimatedFileCount` to each drive — the Microsoft Search index's security-trimmed `driveItem` total (files + folders) scoped to that drive's `webUrl` via KQL `path:`. OFF by default because it issues ONE extra Search query per drive (chunked, capped at 200) — a real fan-out with 429-throttling risk on large drive sets. It is an estimate, not an exact count."
|
|
2394
2503
|
}
|
|
2395
2504
|
],
|
|
2396
|
-
"example": "ask-marcel list-accessible-drives --output json",
|
|
2505
|
+
"example": "ask-marcel-office list-accessible-drives --output json",
|
|
2397
2506
|
"responseShape": "`{ value: [{ id, name, driveType, webUrl, sources: [\"activity\"|\"channel\"|\"joinedTeam\"|\"memberOfGroup\"|\"personal\"|\"sharedWithMe\"|\"siteLibrary\"], groupId?, size?, estimatedFileCount? }], count, fileEstimate?, truncated?: true, partialErrors?: [{ source, error }] }`. `estimatedFileCount` appears only with `--count-files true` — the security-trimmed `driveItem` (files+folders) estimate scoped to each drive, omitted past the 200-drive count cap or when the per-drive query fails. `value[]` is deduped by drive `id` and sorted by id; `sources[]` lists every vector that surfaced the drive (`channel` = a private/shared Teams channel files folder; `activity` = a recently-used / followed / trending item drive; `siteLibrary` = a non-default document library of a discovered site); `groupId` is present only for Teams/group drives. `size` (when present) is the drive's total bytes used (`quota.used`, recursive) — surfaced free from the drive resource, omitted for the rare drive without a quota facet; it is a data-volume signal, not a file count. `fileEstimate` (best-effort, omitted if the extra query fails) is the Microsoft Search index's security-trimmed `driveItem` count — roughly how many files+folders you can access across ALL of SharePoint/OneDrive; it is INDEX-WIDE, not limited to the `value[]` drives above. `truncated: true` means a `--max-groups` cap was hit — raise it to see more. `partialErrors[]` (present only when something actionable failed) names each vector/group/channel/site whose sub-call returned an actionable error (auth, throttling, 5xx, network); benign \"can't reach this one\" results (404/403/423/400) are dropped, not listed."
|
|
2398
2507
|
},
|
|
2399
2508
|
{
|
|
@@ -2441,7 +2550,7 @@
|
|
|
2441
2550
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2442
2551
|
}
|
|
2443
2552
|
],
|
|
2444
|
-
"example": "ask-marcel list-all-onenote-sections",
|
|
2553
|
+
"example": "ask-marcel-office list-all-onenote-sections",
|
|
2445
2554
|
"responseShape": "collection of Microsoft Graph `onenoteSection` resources under `value[]`",
|
|
2446
2555
|
"pagination": true
|
|
2447
2556
|
},
|
|
@@ -2463,7 +2572,7 @@
|
|
|
2463
2572
|
"key": "id"
|
|
2464
2573
|
}
|
|
2465
2574
|
],
|
|
2466
|
-
"description": "Outlook calendar event ID. Returned by `ask-marcel list-calendar-events` or `get-calendar-event`."
|
|
2575
|
+
"description": "Outlook calendar event ID. Returned by `ask-marcel-office list-calendar-events` or `get-calendar-event`."
|
|
2467
2576
|
},
|
|
2468
2577
|
{
|
|
2469
2578
|
"name": "top",
|
|
@@ -2502,7 +2611,7 @@
|
|
|
2502
2611
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2503
2612
|
}
|
|
2504
2613
|
],
|
|
2505
|
-
"example": "ask-marcel list-calendar-event-attachments --event-id 'AAMkAGI2...'",
|
|
2614
|
+
"example": "ask-marcel-office list-calendar-event-attachments --event-id 'AAMkAGI2...'",
|
|
2506
2615
|
"responseShape": "collection of Microsoft Graph `attachment` resources under `value[]` (slim metadata by default — see summary). Graph always includes `@odata.type` and `@odata.mediaContentType` on every entry regardless of `--select` — that discriminator is what the attachment-converting commands branch on.",
|
|
2507
2616
|
"pagination": true
|
|
2508
2617
|
},
|
|
@@ -2518,7 +2627,7 @@
|
|
|
2518
2627
|
"name": "calendar-id",
|
|
2519
2628
|
"key": "calendarId",
|
|
2520
2629
|
"required": false,
|
|
2521
|
-
"description": "Calendar ID, or `primary` / `default` for the signed-in user’s default calendar. Optional; defaults to `primary`. Returned by `ask-marcel list-calendars`.",
|
|
2630
|
+
"description": "Calendar ID, or `primary` / `default` for the signed-in user’s default calendar. Optional; defaults to `primary`. Returned by `ask-marcel-office list-calendars`.",
|
|
2522
2631
|
"argumentHint": {
|
|
2523
2632
|
"kind": "magicValue",
|
|
2524
2633
|
"values": [
|
|
@@ -2537,7 +2646,7 @@
|
|
|
2537
2646
|
"key": "id"
|
|
2538
2647
|
}
|
|
2539
2648
|
],
|
|
2540
|
-
"description": "Recurring event ID. Returned by `ask-marcel list-specific-calendar-events`."
|
|
2649
|
+
"description": "Recurring event ID. Returned by `ask-marcel-office list-specific-calendar-events`."
|
|
2541
2650
|
},
|
|
2542
2651
|
{
|
|
2543
2652
|
"name": "start-date-time",
|
|
@@ -2600,7 +2709,7 @@
|
|
|
2600
2709
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2601
2710
|
}
|
|
2602
2711
|
],
|
|
2603
|
-
"example": "ask-marcel list-calendar-event-instances --calendar-id 'AAMkAGI2THVS...' --event-id 'AAMkABC...' --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z'",
|
|
2712
|
+
"example": "ask-marcel-office list-calendar-event-instances --calendar-id 'AAMkAGI2THVS...' --event-id 'AAMkABC...' --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z'",
|
|
2604
2713
|
"responseShape": "collection of Microsoft Graph `event` resources (single occurrences) under `value[]`",
|
|
2605
2714
|
"pagination": true
|
|
2606
2715
|
},
|
|
@@ -2649,7 +2758,7 @@
|
|
|
2649
2758
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2650
2759
|
}
|
|
2651
2760
|
],
|
|
2652
|
-
"example": "ask-marcel list-calendar-events",
|
|
2761
|
+
"example": "ask-marcel-office list-calendar-events",
|
|
2653
2762
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
2654
2763
|
"pagination": true
|
|
2655
2764
|
},
|
|
@@ -2668,7 +2777,7 @@
|
|
|
2668
2777
|
"description": "OData $top: maximum number of items to return on this page (positive integer, ≤ 1000). Graph silently caps at 1000 on every collection endpoint, so the CLI rejects larger values with a clear validation error rather than letting the request silently truncate. Combine with `next-page` to paginate beyond the cap."
|
|
2669
2778
|
}
|
|
2670
2779
|
],
|
|
2671
|
-
"example": "ask-marcel list-calendar-events-delta --top 50",
|
|
2780
|
+
"example": "ask-marcel-office list-calendar-events-delta --top 50",
|
|
2672
2781
|
"responseShape": "collection of changed Microsoft Graph `event` resources under `data.value[]`. Cursor tokens are hoisted to envelope level: top-level `nextLink` while paging, then top-level `deltaLink` on the final page.",
|
|
2673
2782
|
"pagination": true
|
|
2674
2783
|
},
|
|
@@ -2729,7 +2838,7 @@
|
|
|
2729
2838
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2730
2839
|
}
|
|
2731
2840
|
],
|
|
2732
|
-
"example": "ask-marcel list-calendar-group-calendars --calendar-group-id 'AAMkADk0...'",
|
|
2841
|
+
"example": "ask-marcel-office list-calendar-group-calendars --calendar-group-id 'AAMkADk0...'",
|
|
2733
2842
|
"responseShape": "collection of Microsoft Graph `calendar` resources under `value[]`",
|
|
2734
2843
|
"pagination": true
|
|
2735
2844
|
},
|
|
@@ -2778,7 +2887,7 @@
|
|
|
2778
2887
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2779
2888
|
}
|
|
2780
2889
|
],
|
|
2781
|
-
"example": "ask-marcel list-calendar-groups",
|
|
2890
|
+
"example": "ask-marcel-office list-calendar-groups",
|
|
2782
2891
|
"responseShape": "collection of Microsoft Graph `calendarGroup` resources under `value[]`",
|
|
2783
2892
|
"pagination": true
|
|
2784
2893
|
},
|
|
@@ -2851,7 +2960,7 @@
|
|
|
2851
2960
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2852
2961
|
}
|
|
2853
2962
|
],
|
|
2854
|
-
"example": "ask-marcel list-calendar-view --start-date-time 'start-of-week' --end-date-time 'end-of-week'",
|
|
2963
|
+
"example": "ask-marcel-office list-calendar-view --start-date-time 'start-of-week' --end-date-time 'end-of-week'",
|
|
2855
2964
|
"responseShape": "collection of Microsoft Graph `event` resources (single occurrences) under `value[]`"
|
|
2856
2965
|
},
|
|
2857
2966
|
{
|
|
@@ -2893,7 +3002,7 @@
|
|
|
2893
3002
|
"description": "OData $top: maximum number of items to return on this page (positive integer, ≤ 1000). Graph silently caps at 1000 on every collection endpoint, so the CLI rejects larger values with a clear validation error rather than letting the request silently truncate. Combine with `next-page` to paginate beyond the cap."
|
|
2894
3003
|
}
|
|
2895
3004
|
],
|
|
2896
|
-
"example": "ask-marcel list-calendar-view-delta --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z' --top 50",
|
|
3005
|
+
"example": "ask-marcel-office list-calendar-view-delta --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z' --top 50",
|
|
2897
3006
|
"responseShape": "collection of changed Microsoft Graph `event` occurrences under `data.value[]`. Cursor tokens are hoisted to envelope level: top-level `nextLink` while paging, then top-level `deltaLink` on the final page.",
|
|
2898
3007
|
"pagination": true
|
|
2899
3008
|
},
|
|
@@ -2942,7 +3051,7 @@
|
|
|
2942
3051
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
2943
3052
|
}
|
|
2944
3053
|
],
|
|
2945
|
-
"example": "ask-marcel list-calendars",
|
|
3054
|
+
"example": "ask-marcel-office list-calendars",
|
|
2946
3055
|
"responseShape": "collection of Microsoft Graph `calendar` resources under `value[]`",
|
|
2947
3056
|
"pagination": true
|
|
2948
3057
|
},
|
|
@@ -2964,7 +3073,7 @@
|
|
|
2964
3073
|
"key": "id"
|
|
2965
3074
|
}
|
|
2966
3075
|
],
|
|
2967
|
-
"description": "Microsoft Teams chat ID, e.g. `19:abc...@thread.v2`. Source the ID via `ask-marcel list-chats` (returns chat metadata for the signed-in user). Alternative sources outside the CLI: the Teams desktop / web client (Open in browser → URL contains the chat thread ID), Microsoft Graph Explorer, or URL-decode the `19%3ameeting_...%40thread.v2` segment of an `onlineMeeting.joinUrl` from `list-calendar-events`."
|
|
3076
|
+
"description": "Microsoft Teams chat ID, e.g. `19:abc...@thread.v2`. Source the ID via `ask-marcel-office list-chats` (returns chat metadata for the signed-in user). Alternative sources outside the CLI: the Teams desktop / web client (Open in browser → URL contains the chat thread ID), Microsoft Graph Explorer, or URL-decode the `19%3ameeting_...%40thread.v2` segment of an `onlineMeeting.joinUrl` from `list-calendar-events`."
|
|
2968
3077
|
},
|
|
2969
3078
|
{
|
|
2970
3079
|
"name": "skip",
|
|
@@ -2985,10 +3094,9 @@
|
|
|
2985
3094
|
"description": "OData $filter: predicate to narrow results server-side. Quoting rules: string literals MUST use SINGLE quotes (`subject eq 'invoice'`), NOT double quotes — Graph rejects `subject eq \"invoice\"` with `InvalidFilterClause`. To embed a single quote inside a string, double it (`subject eq 'O''Brien'`). Booleans, numbers, and dates are unquoted (`isRead eq false`, `receivedDateTime ge 2026-01-01T00:00:00Z`). Wrap the whole flag value in shell DOUBLE quotes so the inner single quotes survive (`--filter \"subject eq 'invoice'\"`). Same syntax Graph documents per resource type."
|
|
2986
3095
|
}
|
|
2987
3096
|
],
|
|
2988
|
-
"example": "ask-marcel list-chat-members --chat-id '19:abc...@thread.v2'",
|
|
3097
|
+
"example": "ask-marcel-office list-chat-members --chat-id '19:abc...@thread.v2'",
|
|
2989
3098
|
"responseShape": "collection of Microsoft Graph `conversationMember` resources under `value[]`",
|
|
2990
|
-
"pagination": true
|
|
2991
|
-
"needsElevatedToken": true
|
|
3099
|
+
"pagination": true
|
|
2992
3100
|
},
|
|
2993
3101
|
{
|
|
2994
3102
|
"name": "list-chats",
|
|
@@ -3023,7 +3131,7 @@
|
|
|
3023
3131
|
"description": "OData $filter: predicate to narrow results server-side. Quoting rules: string literals MUST use SINGLE quotes (`subject eq 'invoice'`), NOT double quotes — Graph rejects `subject eq \"invoice\"` with `InvalidFilterClause`. To embed a single quote inside a string, double it (`subject eq 'O''Brien'`). Booleans, numbers, and dates are unquoted (`isRead eq false`, `receivedDateTime ge 2026-01-01T00:00:00Z`). Wrap the whole flag value in shell DOUBLE quotes so the inner single quotes survive (`--filter \"subject eq 'invoice'\"`). Same syntax Graph documents per resource type."
|
|
3024
3132
|
}
|
|
3025
3133
|
],
|
|
3026
|
-
"example": "ask-marcel list-chats",
|
|
3134
|
+
"example": "ask-marcel-office list-chats",
|
|
3027
3135
|
"responseShape": "collection of Microsoft Graph `chat` resources under `value[]`, each projected to the default `--select` set (or, when overridden, to the requested fields).",
|
|
3028
3136
|
"pagination": true,
|
|
3029
3137
|
"needsElevatedToken": true
|
|
@@ -3073,7 +3181,7 @@
|
|
|
3073
3181
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3074
3182
|
}
|
|
3075
3183
|
],
|
|
3076
|
-
"example": "ask-marcel list-conversation-messages --conversation-id 'AAQkAD...=' --top 5 --select id,subject,receivedDateTime",
|
|
3184
|
+
"example": "ask-marcel-office list-conversation-messages --conversation-id 'AAQkAD...=' --top 5 --select id,subject,receivedDateTime",
|
|
3077
3185
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]` (unordered)",
|
|
3078
3186
|
"pagination": true
|
|
3079
3187
|
},
|
|
@@ -3089,7 +3197,7 @@
|
|
|
3089
3197
|
"name": "drive-id",
|
|
3090
3198
|
"key": "driveId",
|
|
3091
3199
|
"required": true,
|
|
3092
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3200
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3093
3201
|
},
|
|
3094
3202
|
{
|
|
3095
3203
|
"name": "item-id",
|
|
@@ -3128,7 +3236,7 @@
|
|
|
3128
3236
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3129
3237
|
}
|
|
3130
3238
|
],
|
|
3131
|
-
"example": "ask-marcel list-drive-item-permissions --drive-id 'b!1234' --item-id '01ABC'",
|
|
3239
|
+
"example": "ask-marcel-office list-drive-item-permissions --drive-id 'b!1234' --item-id '01ABC'",
|
|
3132
3240
|
"responseShape": "collection of Microsoft Graph `permission` resources under `value[]`",
|
|
3133
3241
|
"pagination": true
|
|
3134
3242
|
},
|
|
@@ -3144,7 +3252,7 @@
|
|
|
3144
3252
|
"name": "drive-id",
|
|
3145
3253
|
"key": "driveId",
|
|
3146
3254
|
"required": true,
|
|
3147
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3255
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3148
3256
|
},
|
|
3149
3257
|
{
|
|
3150
3258
|
"name": "item-id",
|
|
@@ -3183,7 +3291,7 @@
|
|
|
3183
3291
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3184
3292
|
}
|
|
3185
3293
|
],
|
|
3186
|
-
"example": "ask-marcel list-drive-item-thumbnails --drive-id 'b!1234' --item-id '01ABC'",
|
|
3294
|
+
"example": "ask-marcel-office list-drive-item-thumbnails --drive-id 'b!1234' --item-id '01ABC'",
|
|
3187
3295
|
"responseShape": "collection of Microsoft Graph `thumbnailSet` resources under `value[]`",
|
|
3188
3296
|
"pagination": true
|
|
3189
3297
|
},
|
|
@@ -3199,7 +3307,7 @@
|
|
|
3199
3307
|
"name": "drive-id",
|
|
3200
3308
|
"key": "driveId",
|
|
3201
3309
|
"required": true,
|
|
3202
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3310
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3203
3311
|
},
|
|
3204
3312
|
{
|
|
3205
3313
|
"name": "item-id",
|
|
@@ -3238,7 +3346,7 @@
|
|
|
3238
3346
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3239
3347
|
}
|
|
3240
3348
|
],
|
|
3241
|
-
"example": "ask-marcel list-drive-item-versions --drive-id 'b!1234' --item-id '01ABC'",
|
|
3349
|
+
"example": "ask-marcel-office list-drive-item-versions --drive-id 'b!1234' --item-id '01ABC'",
|
|
3242
3350
|
"responseShape": "collection of Microsoft Graph `driveItemVersion` resources under `value[]`",
|
|
3243
3351
|
"pagination": true
|
|
3244
3352
|
},
|
|
@@ -3287,7 +3395,7 @@
|
|
|
3287
3395
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3288
3396
|
}
|
|
3289
3397
|
],
|
|
3290
|
-
"example": "ask-marcel list-drives",
|
|
3398
|
+
"example": "ask-marcel-office list-drives",
|
|
3291
3399
|
"responseShape": "collection of Microsoft Graph `drive` resources under `value[]`",
|
|
3292
3400
|
"pagination": true
|
|
3293
3401
|
},
|
|
@@ -3303,7 +3411,7 @@
|
|
|
3303
3411
|
"name": "drive-id",
|
|
3304
3412
|
"key": "driveId",
|
|
3305
3413
|
"required": true,
|
|
3306
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3414
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3307
3415
|
},
|
|
3308
3416
|
{
|
|
3309
3417
|
"name": "item-id",
|
|
@@ -3348,7 +3456,7 @@
|
|
|
3348
3456
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3349
3457
|
}
|
|
3350
3458
|
],
|
|
3351
|
-
"example": "ask-marcel list-excel-comments --drive-id 'b!1234' --item-id '01ABC'",
|
|
3459
|
+
"example": "ask-marcel-office list-excel-comments --drive-id 'b!1234' --item-id '01ABC'",
|
|
3352
3460
|
"responseShape": "collection of Microsoft Graph `workbookComment` resources under `value[]`",
|
|
3353
3461
|
"pagination": true
|
|
3354
3462
|
},
|
|
@@ -3364,7 +3472,7 @@
|
|
|
3364
3472
|
"name": "drive-id",
|
|
3365
3473
|
"key": "driveId",
|
|
3366
3474
|
"required": true,
|
|
3367
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3475
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3368
3476
|
},
|
|
3369
3477
|
{
|
|
3370
3478
|
"name": "item-id",
|
|
@@ -3409,7 +3517,7 @@
|
|
|
3409
3517
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3410
3518
|
}
|
|
3411
3519
|
],
|
|
3412
|
-
"example": "ask-marcel list-excel-defined-names --drive-id 'b!1234' --item-id '01ABC'",
|
|
3520
|
+
"example": "ask-marcel-office list-excel-defined-names --drive-id 'b!1234' --item-id '01ABC'",
|
|
3413
3521
|
"responseShape": "collection of Microsoft Graph `workbookNamedItem` resources under `value[]`",
|
|
3414
3522
|
"pagination": true
|
|
3415
3523
|
},
|
|
@@ -3425,7 +3533,7 @@
|
|
|
3425
3533
|
"name": "drive-id",
|
|
3426
3534
|
"key": "driveId",
|
|
3427
3535
|
"required": true,
|
|
3428
|
-
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3536
|
+
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3429
3537
|
},
|
|
3430
3538
|
{
|
|
3431
3539
|
"name": "item-id",
|
|
@@ -3437,7 +3545,7 @@
|
|
|
3437
3545
|
"name": "table-id",
|
|
3438
3546
|
"key": "tableId",
|
|
3439
3547
|
"required": true,
|
|
3440
|
-
"description": "Workbook table ID or table name. Returned by `ask-marcel list-excel-tables`."
|
|
3548
|
+
"description": "Workbook table ID or table name. Returned by `ask-marcel-office list-excel-tables`."
|
|
3441
3549
|
},
|
|
3442
3550
|
{
|
|
3443
3551
|
"name": "top",
|
|
@@ -3464,7 +3572,7 @@
|
|
|
3464
3572
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3465
3573
|
}
|
|
3466
3574
|
],
|
|
3467
|
-
"example": "ask-marcel list-excel-table-rows --drive-id 'b!1234' --item-id '01XLSX' --table-id 'Table1'",
|
|
3575
|
+
"example": "ask-marcel-office list-excel-table-rows --drive-id 'b!1234' --item-id '01XLSX' --table-id 'Table1'",
|
|
3468
3576
|
"responseShape": "collection of Microsoft Graph `workbookTableRow` resources (each `values` is a 2D array) under `value[]`",
|
|
3469
3577
|
"pagination": true
|
|
3470
3578
|
},
|
|
@@ -3480,7 +3588,7 @@
|
|
|
3480
3588
|
"name": "drive-id",
|
|
3481
3589
|
"key": "driveId",
|
|
3482
3590
|
"required": true,
|
|
3483
|
-
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3591
|
+
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3484
3592
|
},
|
|
3485
3593
|
{
|
|
3486
3594
|
"name": "item-id",
|
|
@@ -3513,7 +3621,7 @@
|
|
|
3513
3621
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3514
3622
|
}
|
|
3515
3623
|
],
|
|
3516
|
-
"example": "ask-marcel list-excel-tables --drive-id 'b!1234' --item-id '01XLSX'",
|
|
3624
|
+
"example": "ask-marcel-office list-excel-tables --drive-id 'b!1234' --item-id '01XLSX'",
|
|
3517
3625
|
"responseShape": "collection of Microsoft Graph `workbookTable` resources under `value[]`",
|
|
3518
3626
|
"pagination": true
|
|
3519
3627
|
},
|
|
@@ -3529,7 +3637,7 @@
|
|
|
3529
3637
|
"name": "drive-id",
|
|
3530
3638
|
"key": "driveId",
|
|
3531
3639
|
"required": true,
|
|
3532
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3640
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3533
3641
|
},
|
|
3534
3642
|
{
|
|
3535
3643
|
"name": "item-id",
|
|
@@ -3583,7 +3691,7 @@
|
|
|
3583
3691
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3584
3692
|
}
|
|
3585
3693
|
],
|
|
3586
|
-
"example": "ask-marcel list-excel-worksheet-charts --drive-id 'b!1234' --item-id '01ABC' --worksheet-id 'Sheet1'",
|
|
3694
|
+
"example": "ask-marcel-office list-excel-worksheet-charts --drive-id 'b!1234' --item-id '01ABC' --worksheet-id 'Sheet1'",
|
|
3587
3695
|
"responseShape": "collection of Microsoft Graph `workbookChart` resources under `value[]`",
|
|
3588
3696
|
"pagination": true
|
|
3589
3697
|
},
|
|
@@ -3599,7 +3707,7 @@
|
|
|
3599
3707
|
"name": "drive-id",
|
|
3600
3708
|
"key": "driveId",
|
|
3601
3709
|
"required": true,
|
|
3602
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3710
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3603
3711
|
},
|
|
3604
3712
|
{
|
|
3605
3713
|
"name": "item-id",
|
|
@@ -3653,7 +3761,7 @@
|
|
|
3653
3761
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3654
3762
|
}
|
|
3655
3763
|
],
|
|
3656
|
-
"example": "ask-marcel list-excel-worksheet-pivot-tables --drive-id 'b!1234' --item-id '01ABC' --worksheet-id 'Sheet1'",
|
|
3764
|
+
"example": "ask-marcel-office list-excel-worksheet-pivot-tables --drive-id 'b!1234' --item-id '01ABC' --worksheet-id 'Sheet1'",
|
|
3657
3765
|
"responseShape": "collection of Microsoft Graph `workbookPivotTable` resources under `value[]`",
|
|
3658
3766
|
"pagination": true
|
|
3659
3767
|
},
|
|
@@ -3669,7 +3777,7 @@
|
|
|
3669
3777
|
"name": "drive-id",
|
|
3670
3778
|
"key": "driveId",
|
|
3671
3779
|
"required": true,
|
|
3672
|
-
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3780
|
+
"description": "Microsoft Graph drive ID containing the workbook. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3673
3781
|
},
|
|
3674
3782
|
{
|
|
3675
3783
|
"name": "item-id",
|
|
@@ -3696,7 +3804,7 @@
|
|
|
3696
3804
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3697
3805
|
}
|
|
3698
3806
|
],
|
|
3699
|
-
"example": "ask-marcel list-excel-worksheets --drive-id 'b!1234' --item-id '01XLSX'",
|
|
3807
|
+
"example": "ask-marcel-office list-excel-worksheets --drive-id 'b!1234' --item-id '01XLSX'",
|
|
3700
3808
|
"responseShape": "collection of Microsoft Graph `worksheet` resources under `value[]`",
|
|
3701
3809
|
"pagination": true
|
|
3702
3810
|
},
|
|
@@ -3745,7 +3853,7 @@
|
|
|
3745
3853
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3746
3854
|
}
|
|
3747
3855
|
],
|
|
3748
|
-
"example": "ask-marcel list-focused-inbox-overrides",
|
|
3856
|
+
"example": "ask-marcel-office list-focused-inbox-overrides",
|
|
3749
3857
|
"responseShape": "collection of Microsoft Graph `inferenceClassificationOverride` resources under `value[]`",
|
|
3750
3858
|
"pagination": true
|
|
3751
3859
|
},
|
|
@@ -3761,13 +3869,13 @@
|
|
|
3761
3869
|
"name": "drive-id",
|
|
3762
3870
|
"key": "driveId",
|
|
3763
3871
|
"required": true,
|
|
3764
|
-
"description": "Microsoft Graph drive ID. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3872
|
+
"description": "Microsoft Graph drive ID. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
3765
3873
|
},
|
|
3766
3874
|
{
|
|
3767
3875
|
"name": "item-id",
|
|
3768
3876
|
"key": "itemId",
|
|
3769
3877
|
"required": true,
|
|
3770
|
-
"description": "driveItem ID of the folder (Graph identifies folders as driveItems too — there is no separate folder type). Use the root folder ID from `ask-marcel get-drive-root-item` to list the top of a drive. Accepts `--folder-id` as an alias since the command name implies \"folder\".",
|
|
3878
|
+
"description": "driveItem ID of the folder (Graph identifies folders as driveItems too — there is no separate folder type). Use the root folder ID from `ask-marcel-office get-drive-root-item` to list the top of a drive. Accepts `--folder-id` as an alias since the command name implies \"folder\".",
|
|
3771
3879
|
"aliases": [
|
|
3772
3880
|
{
|
|
3773
3881
|
"name": "folder-id",
|
|
@@ -3806,7 +3914,7 @@
|
|
|
3806
3914
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3807
3915
|
}
|
|
3808
3916
|
],
|
|
3809
|
-
"example": "ask-marcel list-folder-files --drive-id 'b!1234' --item-id '01ROOT'",
|
|
3917
|
+
"example": "ask-marcel-office list-folder-files --drive-id 'b!1234' --item-id '01ROOT'",
|
|
3810
3918
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
3811
3919
|
"pagination": true
|
|
3812
3920
|
},
|
|
@@ -3849,7 +3957,7 @@
|
|
|
3849
3957
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3850
3958
|
}
|
|
3851
3959
|
],
|
|
3852
|
-
"example": "ask-marcel list-followed-drive-items",
|
|
3960
|
+
"example": "ask-marcel-office list-followed-drive-items",
|
|
3853
3961
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
3854
3962
|
"pagination": true
|
|
3855
3963
|
},
|
|
@@ -3934,7 +4042,7 @@
|
|
|
3934
4042
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3935
4043
|
}
|
|
3936
4044
|
],
|
|
3937
|
-
"example": "ask-marcel list-group-calendar-view --group-id 'a1b2c3d4-...' --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z'",
|
|
4045
|
+
"example": "ask-marcel-office list-group-calendar-view --group-id 'a1b2c3d4-...' --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z'",
|
|
3938
4046
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
3939
4047
|
"pagination": true
|
|
3940
4048
|
},
|
|
@@ -3995,7 +4103,7 @@
|
|
|
3995
4103
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3996
4104
|
}
|
|
3997
4105
|
],
|
|
3998
|
-
"example": "ask-marcel list-group-conversations --group-id 'a1b2c3d4-...'",
|
|
4106
|
+
"example": "ask-marcel-office list-group-conversations --group-id 'a1b2c3d4-...'",
|
|
3999
4107
|
"responseShape": "collection of Microsoft Graph `conversation` resources under `value[]`",
|
|
4000
4108
|
"pagination": true
|
|
4001
4109
|
},
|
|
@@ -4056,7 +4164,7 @@
|
|
|
4056
4164
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4057
4165
|
}
|
|
4058
4166
|
],
|
|
4059
|
-
"example": "ask-marcel list-group-events --group-id 'a1b2c3d4-...'",
|
|
4167
|
+
"example": "ask-marcel-office list-group-events --group-id 'a1b2c3d4-...'",
|
|
4060
4168
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
4061
4169
|
"pagination": true
|
|
4062
4170
|
},
|
|
@@ -4117,7 +4225,7 @@
|
|
|
4117
4225
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4118
4226
|
}
|
|
4119
4227
|
],
|
|
4120
|
-
"example": "ask-marcel list-group-members --group-id 'a1b2c3d4-...'",
|
|
4228
|
+
"example": "ask-marcel-office list-group-members --group-id 'a1b2c3d4-...'",
|
|
4121
4229
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources under `value[]`",
|
|
4122
4230
|
"pagination": true
|
|
4123
4231
|
},
|
|
@@ -4178,7 +4286,7 @@
|
|
|
4178
4286
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4179
4287
|
}
|
|
4180
4288
|
],
|
|
4181
|
-
"example": "ask-marcel list-group-owners --group-id 'a1b2c3d4-...'",
|
|
4289
|
+
"example": "ask-marcel-office list-group-owners --group-id 'a1b2c3d4-...'",
|
|
4182
4290
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources under `value[]`",
|
|
4183
4291
|
"pagination": true
|
|
4184
4292
|
},
|
|
@@ -4239,7 +4347,7 @@
|
|
|
4239
4347
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4240
4348
|
}
|
|
4241
4349
|
],
|
|
4242
|
-
"example": "ask-marcel list-group-threads --group-id 'a1b2c3d4-...'",
|
|
4350
|
+
"example": "ask-marcel-office list-group-threads --group-id 'a1b2c3d4-...'",
|
|
4243
4351
|
"responseShape": "collection of Microsoft Graph `conversationThread` resources under `value[]`",
|
|
4244
4352
|
"pagination": true
|
|
4245
4353
|
},
|
|
@@ -4282,7 +4390,7 @@
|
|
|
4282
4390
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4283
4391
|
}
|
|
4284
4392
|
],
|
|
4285
|
-
"example": "ask-marcel list-groups",
|
|
4393
|
+
"example": "ask-marcel-office list-groups",
|
|
4286
4394
|
"responseShape": "collection of Microsoft Graph `group` resources under `value[]`",
|
|
4287
4395
|
"pagination": true
|
|
4288
4396
|
},
|
|
@@ -4331,7 +4439,7 @@
|
|
|
4331
4439
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4332
4440
|
}
|
|
4333
4441
|
],
|
|
4334
|
-
"example": "ask-marcel list-incomplete-planner-tasks --top 25",
|
|
4442
|
+
"example": "ask-marcel-office list-incomplete-planner-tasks --top 25",
|
|
4335
4443
|
"responseShape": "collection of Microsoft Graph `plannerTask` resources under `value[]` where `percentComplete < 100`",
|
|
4336
4444
|
"pagination": true
|
|
4337
4445
|
},
|
|
@@ -4347,7 +4455,7 @@
|
|
|
4347
4455
|
"name": "todo-task-list-id",
|
|
4348
4456
|
"key": "todoTaskListId",
|
|
4349
4457
|
"required": true,
|
|
4350
|
-
"description": "todoTaskList ID. Returned by `ask-marcel list-todo-task-lists`. The well-known name `tasks` (the default list) is accepted on this incomplete-tasks endpoint specifically — sibling commands like `list-todo-tasks` and `list-todo-tasks-delta` only accept resolved IDs. There is no Graph endpoint that returns incomplete tasks across every list — call this once per list.",
|
|
4458
|
+
"description": "todoTaskList ID. Returned by `ask-marcel-office list-todo-task-lists`. The well-known name `tasks` (the default list) is accepted on this incomplete-tasks endpoint specifically — sibling commands like `list-todo-tasks` and `list-todo-tasks-delta` only accept resolved IDs. There is no Graph endpoint that returns incomplete tasks across every list — call this once per list.",
|
|
4351
4459
|
"aliases": [
|
|
4352
4460
|
{
|
|
4353
4461
|
"name": "id",
|
|
@@ -4400,7 +4508,7 @@
|
|
|
4400
4508
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4401
4509
|
}
|
|
4402
4510
|
],
|
|
4403
|
-
"example": "ask-marcel list-incomplete-todo-tasks --todo-task-list-id 'tasks' --top 5",
|
|
4511
|
+
"example": "ask-marcel-office list-incomplete-todo-tasks --todo-task-list-id 'tasks' --top 5",
|
|
4404
4512
|
"responseShape": "collection of Microsoft Graph `todoTask` resources under `value[]` where `status != \"completed\"`",
|
|
4405
4513
|
"pagination": true
|
|
4406
4514
|
},
|
|
@@ -4412,7 +4520,7 @@
|
|
|
4412
4520
|
"graphPathTemplate": "/me/joinedTeams",
|
|
4413
4521
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/user-list-joinedteams",
|
|
4414
4522
|
"options": [],
|
|
4415
|
-
"example": "ask-marcel list-joined-teams",
|
|
4523
|
+
"example": "ask-marcel-office list-joined-teams",
|
|
4416
4524
|
"responseShape": "collection of Microsoft Graph `team` resources under `value[]`",
|
|
4417
4525
|
"pagination": true
|
|
4418
4526
|
},
|
|
@@ -4434,7 +4542,7 @@
|
|
|
4434
4542
|
"key": "id"
|
|
4435
4543
|
}
|
|
4436
4544
|
],
|
|
4437
|
-
"description": "Outlook message ID. Returned by `ask-marcel list-mail-messages` or `list-mail-folder-messages`. Accepts `--id` as an alias."
|
|
4545
|
+
"description": "Outlook message ID. Returned by `ask-marcel-office list-mail-messages` or `list-mail-folder-messages`. Accepts `--id` as an alias."
|
|
4438
4546
|
},
|
|
4439
4547
|
{
|
|
4440
4548
|
"name": "top",
|
|
@@ -4473,7 +4581,7 @@
|
|
|
4473
4581
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4474
4582
|
}
|
|
4475
4583
|
],
|
|
4476
|
-
"example": "ask-marcel list-mail-attachments --message-id 'AAMkAGI2...'",
|
|
4584
|
+
"example": "ask-marcel-office list-mail-attachments --message-id 'AAMkAGI2...'",
|
|
4477
4585
|
"responseShape": "collection of Microsoft Graph `attachment` resources under `value[]` (slim metadata by default — see summary). Graph always includes `@odata.type` and `@odata.mediaContentType` on every entry regardless of `--select` — these fields are the discriminator the attachment-converting commands branch on; don't be surprised to see them appear even if you didn't request them.",
|
|
4478
4586
|
"pagination": true
|
|
4479
4587
|
},
|
|
@@ -4495,7 +4603,7 @@
|
|
|
4495
4603
|
"key": "id"
|
|
4496
4604
|
}
|
|
4497
4605
|
],
|
|
4498
|
-
"description": "mailFolder ID. Returned by `ask-marcel list-mail-folders`. Well-known names also work, e.g. `inbox`, `sentitems`, `drafts`."
|
|
4606
|
+
"description": "mailFolder ID. Returned by `ask-marcel-office list-mail-folders`. Well-known names also work, e.g. `inbox`, `sentitems`, `drafts`."
|
|
4499
4607
|
},
|
|
4500
4608
|
{
|
|
4501
4609
|
"name": "top",
|
|
@@ -4534,7 +4642,7 @@
|
|
|
4534
4642
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4535
4643
|
}
|
|
4536
4644
|
],
|
|
4537
|
-
"example": "ask-marcel list-mail-child-folders --mail-folder-id 'inbox'",
|
|
4645
|
+
"example": "ask-marcel-office list-mail-child-folders --mail-folder-id 'inbox'",
|
|
4538
4646
|
"responseShape": "collection of Microsoft Graph `mailFolder` resources under `value[]`",
|
|
4539
4647
|
"pagination": true
|
|
4540
4648
|
},
|
|
@@ -4556,7 +4664,7 @@
|
|
|
4556
4664
|
"key": "id"
|
|
4557
4665
|
}
|
|
4558
4666
|
],
|
|
4559
|
-
"description": "mailFolder ID. Returned by `ask-marcel list-mail-folders`. Well-known names also work, e.g. `inbox`, `sentitems`, `drafts`."
|
|
4667
|
+
"description": "mailFolder ID. Returned by `ask-marcel-office list-mail-folders`. Well-known names also work, e.g. `inbox`, `sentitems`, `drafts`."
|
|
4560
4668
|
},
|
|
4561
4669
|
{
|
|
4562
4670
|
"name": "top",
|
|
@@ -4595,7 +4703,7 @@
|
|
|
4595
4703
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4596
4704
|
}
|
|
4597
4705
|
],
|
|
4598
|
-
"example": "ask-marcel list-mail-folder-messages --mail-folder-id 'inbox'",
|
|
4706
|
+
"example": "ask-marcel-office list-mail-folder-messages --mail-folder-id 'inbox'",
|
|
4599
4707
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]`",
|
|
4600
4708
|
"pagination": true
|
|
4601
4709
|
},
|
|
@@ -4656,7 +4764,7 @@
|
|
|
4656
4764
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4657
4765
|
}
|
|
4658
4766
|
],
|
|
4659
|
-
"example": "ask-marcel list-mail-folder-messages-delta --mail-folder-id 'inbox'",
|
|
4767
|
+
"example": "ask-marcel-office list-mail-folder-messages-delta --mail-folder-id 'inbox'",
|
|
4660
4768
|
"responseShape": "collection of Microsoft Graph `message` resources under `data.value[]`. Cursor tokens are hoisted to envelope level: top-level `nextLink` while paging, then top-level `deltaLink` on the final page (CLI strips the original `@odata.*` keys from `data`).",
|
|
4661
4769
|
"pagination": true
|
|
4662
4770
|
},
|
|
@@ -4705,7 +4813,7 @@
|
|
|
4705
4813
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4706
4814
|
}
|
|
4707
4815
|
],
|
|
4708
|
-
"example": "ask-marcel list-mail-folders",
|
|
4816
|
+
"example": "ask-marcel-office list-mail-folders",
|
|
4709
4817
|
"responseShape": "collection of Microsoft Graph `mailFolder` resources under `value[]`",
|
|
4710
4818
|
"pagination": true
|
|
4711
4819
|
},
|
|
@@ -4717,7 +4825,7 @@
|
|
|
4717
4825
|
"graphPathTemplate": "/me/mailFolders/delta()",
|
|
4718
4826
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/mailfolder-delta",
|
|
4719
4827
|
"options": [],
|
|
4720
|
-
"example": "ask-marcel list-mail-folders-delta",
|
|
4828
|
+
"example": "ask-marcel-office list-mail-folders-delta",
|
|
4721
4829
|
"responseShape": "collection of Microsoft Graph `mailFolder` resources under `data.value[]`. Cursor tokens are hoisted to envelope level: top-level `nextLink` while paging, then top-level `deltaLink` on the final page.",
|
|
4722
4830
|
"pagination": true
|
|
4723
4831
|
},
|
|
@@ -4766,7 +4874,7 @@
|
|
|
4766
4874
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4767
4875
|
}
|
|
4768
4876
|
],
|
|
4769
|
-
"example": "ask-marcel list-mail-messages",
|
|
4877
|
+
"example": "ask-marcel-office list-mail-messages",
|
|
4770
4878
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]`, each projected to the default `--select` set (or the requested fields when overridden). The default omits `body`, `internetMessageHeaders`, and `uniqueBody`.",
|
|
4771
4879
|
"pagination": true
|
|
4772
4880
|
},
|
|
@@ -4785,7 +4893,7 @@
|
|
|
4785
4893
|
"description": "mailFolder ID. Optional; defaults to `inbox`. In practice only `inbox` (or its resolved ID) works — Graph rejects every other folder for messageRules with `MailFolderNotSupportedError`."
|
|
4786
4894
|
}
|
|
4787
4895
|
],
|
|
4788
|
-
"example": "ask-marcel list-mail-rules",
|
|
4896
|
+
"example": "ask-marcel-office list-mail-rules",
|
|
4789
4897
|
"responseShape": "collection of Microsoft Graph `messageRule` resources under `value[]`"
|
|
4790
4898
|
},
|
|
4791
4899
|
{
|
|
@@ -4833,7 +4941,7 @@
|
|
|
4833
4941
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4834
4942
|
}
|
|
4835
4943
|
],
|
|
4836
|
-
"example": "ask-marcel list-my-direct-reports",
|
|
4944
|
+
"example": "ask-marcel-office list-my-direct-reports",
|
|
4837
4945
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources (typically `user`) under `value[]`",
|
|
4838
4946
|
"pagination": true
|
|
4839
4947
|
},
|
|
@@ -4882,7 +4990,7 @@
|
|
|
4882
4990
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4883
4991
|
}
|
|
4884
4992
|
],
|
|
4885
|
-
"example": "ask-marcel list-my-memberships",
|
|
4993
|
+
"example": "ask-marcel-office list-my-memberships",
|
|
4886
4994
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources under `value[]`",
|
|
4887
4995
|
"pagination": true
|
|
4888
4996
|
},
|
|
@@ -4931,7 +5039,7 @@
|
|
|
4931
5039
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4932
5040
|
}
|
|
4933
5041
|
],
|
|
4934
|
-
"example": "ask-marcel list-my-transitive-memberships",
|
|
5042
|
+
"example": "ask-marcel-office list-my-transitive-memberships",
|
|
4935
5043
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources under `value[]`",
|
|
4936
5044
|
"pagination": true
|
|
4937
5045
|
},
|
|
@@ -4953,7 +5061,7 @@
|
|
|
4953
5061
|
"key": "id"
|
|
4954
5062
|
}
|
|
4955
5063
|
],
|
|
4956
|
-
"description": "OneNote notebook ID. Returned by `ask-marcel list-onenote-notebooks`."
|
|
5064
|
+
"description": "OneNote notebook ID. Returned by `ask-marcel-office list-onenote-notebooks`."
|
|
4957
5065
|
},
|
|
4958
5066
|
{
|
|
4959
5067
|
"name": "top",
|
|
@@ -4992,7 +5100,7 @@
|
|
|
4992
5100
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4993
5101
|
}
|
|
4994
5102
|
],
|
|
4995
|
-
"example": "ask-marcel list-onenote-notebook-sections --notebook-id '1-12abc...'",
|
|
5103
|
+
"example": "ask-marcel-office list-onenote-notebook-sections --notebook-id '1-12abc...'",
|
|
4996
5104
|
"responseShape": "collection of Microsoft Graph `onenoteSection` resources under `value[]`",
|
|
4997
5105
|
"pagination": true
|
|
4998
5106
|
},
|
|
@@ -5041,7 +5149,7 @@
|
|
|
5041
5149
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5042
5150
|
}
|
|
5043
5151
|
],
|
|
5044
|
-
"example": "ask-marcel list-onenote-notebooks",
|
|
5152
|
+
"example": "ask-marcel-office list-onenote-notebooks",
|
|
5045
5153
|
"responseShape": "collection of Microsoft Graph `notebook` resources under `value[]`",
|
|
5046
5154
|
"pagination": true
|
|
5047
5155
|
},
|
|
@@ -5057,7 +5165,7 @@
|
|
|
5057
5165
|
"name": "onenote-section-id",
|
|
5058
5166
|
"key": "onenoteSectionId",
|
|
5059
5167
|
"required": true,
|
|
5060
|
-
"description": "OneNote section ID. Returned by `ask-marcel list-onenote-notebook-sections` or `list-all-onenote-sections`.",
|
|
5168
|
+
"description": "OneNote section ID. Returned by `ask-marcel-office list-onenote-notebook-sections` or `list-all-onenote-sections`.",
|
|
5061
5169
|
"aliases": [
|
|
5062
5170
|
{
|
|
5063
5171
|
"name": "id",
|
|
@@ -5106,7 +5214,7 @@
|
|
|
5106
5214
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5107
5215
|
}
|
|
5108
5216
|
],
|
|
5109
|
-
"example": "ask-marcel list-onenote-section-pages --onenote-section-id '1-abc...'",
|
|
5217
|
+
"example": "ask-marcel-office list-onenote-section-pages --onenote-section-id '1-abc...'",
|
|
5110
5218
|
"responseShape": "collection of Microsoft Graph `onenotePage` resources under `value[]`",
|
|
5111
5219
|
"pagination": true
|
|
5112
5220
|
},
|
|
@@ -5118,7 +5226,7 @@
|
|
|
5118
5226
|
"graphPathTemplate": "/me/outlook/masterCategories",
|
|
5119
5227
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/outlookuser-list-mastercategories",
|
|
5120
5228
|
"options": [],
|
|
5121
|
-
"example": "ask-marcel list-outlook-categories",
|
|
5229
|
+
"example": "ask-marcel-office list-outlook-categories",
|
|
5122
5230
|
"responseShape": "collection of Microsoft Graph `outlookCategory` resources under `value[]`"
|
|
5123
5231
|
},
|
|
5124
5232
|
{
|
|
@@ -5133,7 +5241,7 @@
|
|
|
5133
5241
|
"name": "planner-plan-id",
|
|
5134
5242
|
"key": "plannerPlanId",
|
|
5135
5243
|
"required": true,
|
|
5136
|
-
"description": "Planner plan ID. Returned in the `planId` field of any task from `ask-marcel list-planner-tasks`.",
|
|
5244
|
+
"description": "Planner plan ID. Returned in the `planId` field of any task from `ask-marcel-office list-planner-tasks`.",
|
|
5137
5245
|
"aliases": [
|
|
5138
5246
|
{
|
|
5139
5247
|
"name": "id",
|
|
@@ -5152,7 +5260,7 @@
|
|
|
5152
5260
|
"description": "OData $select: comma-separated list of fields to include in each item (e.g. `id,subject,from`). May shrink payloads dramatically — Graph honors $select on most endpoints, but some collections (notably `/me/mailboxSettings`, `/me/outlook/masterCategories`, `/me/mailFolders/inbox/messageRules`) silently ignore it and always return the full resource. Bogus field names are silently dropped by Graph — if a field you asked for is missing from the response, double-check the spelling against the documented `responseShape`."
|
|
5153
5261
|
}
|
|
5154
5262
|
],
|
|
5155
|
-
"example": "ask-marcel list-plan-buckets --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
5263
|
+
"example": "ask-marcel-office list-plan-buckets --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
5156
5264
|
"responseShape": "collection of Microsoft Graph `plannerBucket` resources under `value[]`",
|
|
5157
5265
|
"pagination": true
|
|
5158
5266
|
},
|
|
@@ -5168,7 +5276,7 @@
|
|
|
5168
5276
|
"name": "planner-plan-id",
|
|
5169
5277
|
"key": "plannerPlanId",
|
|
5170
5278
|
"required": true,
|
|
5171
|
-
"description": "Planner plan ID. Returned in the `planId` field of any task from `ask-marcel list-planner-tasks`.",
|
|
5279
|
+
"description": "Planner plan ID. Returned in the `planId` field of any task from `ask-marcel-office list-planner-tasks`.",
|
|
5172
5280
|
"aliases": [
|
|
5173
5281
|
{
|
|
5174
5282
|
"name": "id",
|
|
@@ -5181,7 +5289,7 @@
|
|
|
5181
5289
|
]
|
|
5182
5290
|
}
|
|
5183
5291
|
],
|
|
5184
|
-
"example": "ask-marcel list-plan-tasks --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
5292
|
+
"example": "ask-marcel-office list-plan-tasks --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
5185
5293
|
"responseShape": "collection of Microsoft Graph `plannerTask` resources under `value[]`",
|
|
5186
5294
|
"pagination": true
|
|
5187
5295
|
},
|
|
@@ -5200,7 +5308,7 @@
|
|
|
5200
5308
|
"description": "OData $select: comma-separated list of fields to include in each item (e.g. `id,subject,from`). May shrink payloads dramatically — Graph honors $select on most endpoints, but some collections (notably `/me/mailboxSettings`, `/me/outlook/masterCategories`, `/me/mailFolders/inbox/messageRules`) silently ignore it and always return the full resource. Bogus field names are silently dropped by Graph — if a field you asked for is missing from the response, double-check the spelling against the documented `responseShape`."
|
|
5201
5309
|
}
|
|
5202
5310
|
],
|
|
5203
|
-
"example": "ask-marcel list-planner-plans",
|
|
5311
|
+
"example": "ask-marcel-office list-planner-plans",
|
|
5204
5312
|
"responseShape": "collection of Microsoft Graph `plannerPlan` resources under `value[]`",
|
|
5205
5313
|
"pagination": true
|
|
5206
5314
|
},
|
|
@@ -5249,7 +5357,7 @@
|
|
|
5249
5357
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5250
5358
|
}
|
|
5251
5359
|
],
|
|
5252
|
-
"example": "ask-marcel list-planner-tasks",
|
|
5360
|
+
"example": "ask-marcel-office list-planner-tasks",
|
|
5253
5361
|
"responseShape": "collection of Microsoft Graph `plannerTask` resources under `value[]`",
|
|
5254
5362
|
"pagination": true
|
|
5255
5363
|
},
|
|
@@ -5292,7 +5400,7 @@
|
|
|
5292
5400
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5293
5401
|
}
|
|
5294
5402
|
],
|
|
5295
|
-
"example": "ask-marcel list-recent-files",
|
|
5403
|
+
"example": "ask-marcel-office list-recent-files",
|
|
5296
5404
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
5297
5405
|
"pagination": true
|
|
5298
5406
|
},
|
|
@@ -5341,7 +5449,7 @@
|
|
|
5341
5449
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5342
5450
|
}
|
|
5343
5451
|
],
|
|
5344
|
-
"example": "ask-marcel list-recently-used-insights",
|
|
5452
|
+
"example": "ask-marcel-office list-recently-used-insights",
|
|
5345
5453
|
"responseShape": "collection of Microsoft Graph `usedInsight` resources under `value[]`",
|
|
5346
5454
|
"pagination": true
|
|
5347
5455
|
},
|
|
@@ -5390,7 +5498,7 @@
|
|
|
5390
5498
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5391
5499
|
}
|
|
5392
5500
|
],
|
|
5393
|
-
"example": "ask-marcel list-relevant-people",
|
|
5501
|
+
"example": "ask-marcel-office list-relevant-people",
|
|
5394
5502
|
"responseShape": "collection of Microsoft Graph `person` resources under `value[]`",
|
|
5395
5503
|
"pagination": true
|
|
5396
5504
|
},
|
|
@@ -5439,7 +5547,7 @@
|
|
|
5439
5547
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5440
5548
|
}
|
|
5441
5549
|
],
|
|
5442
|
-
"example": "ask-marcel list-room-lists",
|
|
5550
|
+
"example": "ask-marcel-office list-room-lists",
|
|
5443
5551
|
"responseShape": "collection of Microsoft Graph `roomList` resources under `value[]`",
|
|
5444
5552
|
"pagination": true
|
|
5445
5553
|
},
|
|
@@ -5488,7 +5596,7 @@
|
|
|
5488
5596
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5489
5597
|
}
|
|
5490
5598
|
],
|
|
5491
|
-
"example": "ask-marcel list-rooms",
|
|
5599
|
+
"example": "ask-marcel-office list-rooms",
|
|
5492
5600
|
"responseShape": "collection of Microsoft Graph `room` resources under `value[]`",
|
|
5493
5601
|
"pagination": true
|
|
5494
5602
|
},
|
|
@@ -5537,7 +5645,7 @@
|
|
|
5537
5645
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5538
5646
|
}
|
|
5539
5647
|
],
|
|
5540
|
-
"example": "ask-marcel list-sensitivity-labels",
|
|
5648
|
+
"example": "ask-marcel-office list-sensitivity-labels",
|
|
5541
5649
|
"responseShape": "collection of Microsoft Graph `sensitivityLabel` resources under `value[]`",
|
|
5542
5650
|
"pagination": true
|
|
5543
5651
|
},
|
|
@@ -5598,7 +5706,7 @@
|
|
|
5598
5706
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5599
5707
|
}
|
|
5600
5708
|
],
|
|
5601
|
-
"example": "ask-marcel list-shared-calendar-events --user-id 'colleague@contoso.com'",
|
|
5709
|
+
"example": "ask-marcel-office list-shared-calendar-events --user-id 'colleague@contoso.com'",
|
|
5602
5710
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
5603
5711
|
"pagination": true
|
|
5604
5712
|
},
|
|
@@ -5683,7 +5791,7 @@
|
|
|
5683
5791
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5684
5792
|
}
|
|
5685
5793
|
],
|
|
5686
|
-
"example": "ask-marcel list-shared-calendar-view --user-id 'colleague@contoso.com' --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z'",
|
|
5794
|
+
"example": "ask-marcel-office list-shared-calendar-view --user-id 'colleague@contoso.com' --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z'",
|
|
5687
5795
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
5688
5796
|
"pagination": true
|
|
5689
5797
|
},
|
|
@@ -5732,7 +5840,7 @@
|
|
|
5732
5840
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5733
5841
|
}
|
|
5734
5842
|
],
|
|
5735
|
-
"example": "ask-marcel list-shared-insights",
|
|
5843
|
+
"example": "ask-marcel-office list-shared-insights",
|
|
5736
5844
|
"responseShape": "collection of Microsoft Graph `sharedInsight` resources under `value[]`",
|
|
5737
5845
|
"pagination": true
|
|
5738
5846
|
},
|
|
@@ -5793,7 +5901,7 @@
|
|
|
5793
5901
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5794
5902
|
}
|
|
5795
5903
|
],
|
|
5796
|
-
"example": "ask-marcel list-shared-mailbox-folder-messages --user-id 'shared-mailbox@contoso.com' --mail-folder-id 'inbox'",
|
|
5904
|
+
"example": "ask-marcel-office list-shared-mailbox-folder-messages --user-id 'shared-mailbox@contoso.com' --mail-folder-id 'inbox'",
|
|
5797
5905
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]`",
|
|
5798
5906
|
"pagination": true
|
|
5799
5907
|
},
|
|
@@ -5854,7 +5962,7 @@
|
|
|
5854
5962
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5855
5963
|
}
|
|
5856
5964
|
],
|
|
5857
|
-
"example": "ask-marcel list-shared-mailbox-messages --user-id 'shared-mailbox@contoso.com'",
|
|
5965
|
+
"example": "ask-marcel-office list-shared-mailbox-messages --user-id 'shared-mailbox@contoso.com'",
|
|
5858
5966
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]`",
|
|
5859
5967
|
"pagination": true
|
|
5860
5968
|
},
|
|
@@ -5866,7 +5974,7 @@
|
|
|
5866
5974
|
"graphPathTemplate": "/me/drive/sharedWithMe",
|
|
5867
5975
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/drive-sharedwithme",
|
|
5868
5976
|
"options": [],
|
|
5869
|
-
"example": "ask-marcel list-shared-with-me",
|
|
5977
|
+
"example": "ask-marcel-office list-shared-with-me",
|
|
5870
5978
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]` (each with a `remoteItem` pointer)"
|
|
5871
5979
|
},
|
|
5872
5980
|
{
|
|
@@ -5902,7 +6010,7 @@
|
|
|
5902
6010
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5903
6011
|
}
|
|
5904
6012
|
],
|
|
5905
|
-
"example": "ask-marcel list-sharepoint-list-columns --site-id 'contoso.sharepoint.com,abc...,def...' --list-id 'list-guid' --select 'name,displayName,readOnly'",
|
|
6013
|
+
"example": "ask-marcel-office list-sharepoint-list-columns --site-id 'contoso.sharepoint.com,abc...,def...' --list-id 'list-guid' --select 'name,displayName,readOnly'",
|
|
5906
6014
|
"responseShape": "collection of Microsoft Graph `columnDefinition` resources under `value[]`"
|
|
5907
6015
|
},
|
|
5908
6016
|
{
|
|
@@ -5968,7 +6076,7 @@
|
|
|
5968
6076
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5969
6077
|
}
|
|
5970
6078
|
],
|
|
5971
|
-
"example": "ask-marcel list-sharepoint-list-item-versions --site-id 'contoso.sharepoint.com,...' --list-id 'list-guid' --list-item-id '12'",
|
|
6079
|
+
"example": "ask-marcel-office list-sharepoint-list-item-versions --site-id 'contoso.sharepoint.com,...' --list-id 'list-guid' --list-item-id '12'",
|
|
5972
6080
|
"responseShape": "collection of Microsoft Graph `listItemVersion` resources under `value[]`",
|
|
5973
6081
|
"pagination": true
|
|
5974
6082
|
},
|
|
@@ -5990,7 +6098,7 @@
|
|
|
5990
6098
|
"key": "id"
|
|
5991
6099
|
}
|
|
5992
6100
|
],
|
|
5993
|
-
"description": "SharePoint site ID. Returned by `ask-marcel search-sharepoint-sites-by-name`."
|
|
6101
|
+
"description": "SharePoint site ID. Returned by `ask-marcel-office search-sharepoint-sites-by-name`."
|
|
5994
6102
|
},
|
|
5995
6103
|
{
|
|
5996
6104
|
"name": "top",
|
|
@@ -6023,7 +6131,7 @@
|
|
|
6023
6131
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6024
6132
|
}
|
|
6025
6133
|
],
|
|
6026
|
-
"example": "ask-marcel list-sharepoint-site-drives --site-id 'contoso.sharepoint.com,1234,5678'",
|
|
6134
|
+
"example": "ask-marcel-office list-sharepoint-site-drives --site-id 'contoso.sharepoint.com,1234,5678'",
|
|
6027
6135
|
"responseShape": "collection of Microsoft Graph `drive` resources under `value[]`",
|
|
6028
6136
|
"pagination": true
|
|
6029
6137
|
},
|
|
@@ -6039,13 +6147,13 @@
|
|
|
6039
6147
|
"name": "site-id",
|
|
6040
6148
|
"key": "siteId",
|
|
6041
6149
|
"required": true,
|
|
6042
|
-
"description": "SharePoint site ID. Returned by `ask-marcel search-sharepoint-sites-by-name`."
|
|
6150
|
+
"description": "SharePoint site ID. Returned by `ask-marcel-office search-sharepoint-sites-by-name`."
|
|
6043
6151
|
},
|
|
6044
6152
|
{
|
|
6045
6153
|
"name": "list-id",
|
|
6046
6154
|
"key": "listId",
|
|
6047
6155
|
"required": true,
|
|
6048
|
-
"description": "SharePoint list ID or display name. Returned by `ask-marcel list-sharepoint-site-lists`.",
|
|
6156
|
+
"description": "SharePoint list ID or display name. Returned by `ask-marcel-office list-sharepoint-site-lists`.",
|
|
6049
6157
|
"argumentHint": {
|
|
6050
6158
|
"kind": "idOrName"
|
|
6051
6159
|
}
|
|
@@ -6081,7 +6189,7 @@
|
|
|
6081
6189
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6082
6190
|
}
|
|
6083
6191
|
],
|
|
6084
|
-
"example": "ask-marcel list-sharepoint-site-list-items --site-id 'contoso.sharepoint.com,1234,5678' --list-id 'Tasks'",
|
|
6192
|
+
"example": "ask-marcel-office list-sharepoint-site-list-items --site-id 'contoso.sharepoint.com,1234,5678' --list-id 'Tasks'",
|
|
6085
6193
|
"responseShape": "collection of Microsoft Graph `listItem` resources under `value[]`",
|
|
6086
6194
|
"pagination": true
|
|
6087
6195
|
},
|
|
@@ -6103,7 +6211,7 @@
|
|
|
6103
6211
|
"key": "id"
|
|
6104
6212
|
}
|
|
6105
6213
|
],
|
|
6106
|
-
"description": "SharePoint site ID. Returned by `ask-marcel search-sharepoint-sites-by-name`."
|
|
6214
|
+
"description": "SharePoint site ID. Returned by `ask-marcel-office search-sharepoint-sites-by-name`."
|
|
6107
6215
|
},
|
|
6108
6216
|
{
|
|
6109
6217
|
"name": "top",
|
|
@@ -6136,7 +6244,7 @@
|
|
|
6136
6244
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6137
6245
|
}
|
|
6138
6246
|
],
|
|
6139
|
-
"example": "ask-marcel list-sharepoint-site-lists --site-id 'contoso.sharepoint.com,1234,5678'",
|
|
6247
|
+
"example": "ask-marcel-office list-sharepoint-site-lists --site-id 'contoso.sharepoint.com,1234,5678'",
|
|
6140
6248
|
"responseShape": "collection of Microsoft Graph `list` resources under `value[]`",
|
|
6141
6249
|
"pagination": true
|
|
6142
6250
|
},
|
|
@@ -6197,7 +6305,7 @@
|
|
|
6197
6305
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6198
6306
|
}
|
|
6199
6307
|
],
|
|
6200
|
-
"example": "ask-marcel list-sharepoint-site-onenote-notebook-sections --site-id 'contoso.sharepoint.com,...' --notebook-id 'nb1'",
|
|
6308
|
+
"example": "ask-marcel-office list-sharepoint-site-onenote-notebook-sections --site-id 'contoso.sharepoint.com,...' --notebook-id 'nb1'",
|
|
6201
6309
|
"responseShape": "collection of Microsoft Graph `onenoteSection` resources under `value[]`",
|
|
6202
6310
|
"pagination": true
|
|
6203
6311
|
},
|
|
@@ -6258,7 +6366,7 @@
|
|
|
6258
6366
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6259
6367
|
}
|
|
6260
6368
|
],
|
|
6261
|
-
"example": "ask-marcel list-sharepoint-site-onenote-notebooks --site-id 'contoso.sharepoint.com,...'",
|
|
6369
|
+
"example": "ask-marcel-office list-sharepoint-site-onenote-notebooks --site-id 'contoso.sharepoint.com,...'",
|
|
6262
6370
|
"responseShape": "collection of Microsoft Graph `notebook` resources under `value[]`",
|
|
6263
6371
|
"pagination": true
|
|
6264
6372
|
},
|
|
@@ -6325,7 +6433,7 @@
|
|
|
6325
6433
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6326
6434
|
}
|
|
6327
6435
|
],
|
|
6328
|
-
"example": "ask-marcel list-sharepoint-site-onenote-section-pages --site-id 'contoso.sharepoint.com,...' --onenote-section-id 's1'",
|
|
6436
|
+
"example": "ask-marcel-office list-sharepoint-site-onenote-section-pages --site-id 'contoso.sharepoint.com,...' --onenote-section-id 's1'",
|
|
6329
6437
|
"responseShape": "collection of Microsoft Graph `onenotePage` resources under `value[]`",
|
|
6330
6438
|
"pagination": true
|
|
6331
6439
|
},
|
|
@@ -6380,7 +6488,7 @@
|
|
|
6380
6488
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6381
6489
|
}
|
|
6382
6490
|
],
|
|
6383
|
-
"example": "ask-marcel list-sharepoint-site-pages --site-id 'contoso.sharepoint.com,...'",
|
|
6491
|
+
"example": "ask-marcel-office list-sharepoint-site-pages --site-id 'contoso.sharepoint.com,...'",
|
|
6384
6492
|
"responseShape": "collection of Microsoft Graph `sitePage` resources under `value[]`",
|
|
6385
6493
|
"pagination": true
|
|
6386
6494
|
},
|
|
@@ -6417,7 +6525,7 @@
|
|
|
6417
6525
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6418
6526
|
}
|
|
6419
6527
|
],
|
|
6420
|
-
"example": "ask-marcel list-site-columns --site-id 'contoso.sharepoint.com,...' --select 'name,displayName'",
|
|
6528
|
+
"example": "ask-marcel-office list-site-columns --site-id 'contoso.sharepoint.com,...' --select 'name,displayName'",
|
|
6421
6529
|
"responseShape": "collection of Microsoft Graph `columnDefinition` resources under `value[]`"
|
|
6422
6530
|
},
|
|
6423
6531
|
{
|
|
@@ -6471,7 +6579,7 @@
|
|
|
6471
6579
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6472
6580
|
}
|
|
6473
6581
|
],
|
|
6474
|
-
"example": "ask-marcel list-site-content-types --site-id 'contoso.sharepoint.com,...'",
|
|
6582
|
+
"example": "ask-marcel-office list-site-content-types --site-id 'contoso.sharepoint.com,...'",
|
|
6475
6583
|
"responseShape": "collection of Microsoft Graph `contentType` resources under `value[]`",
|
|
6476
6584
|
"pagination": true
|
|
6477
6585
|
},
|
|
@@ -6493,7 +6601,7 @@
|
|
|
6493
6601
|
"key": "id"
|
|
6494
6602
|
}
|
|
6495
6603
|
],
|
|
6496
|
-
"description": "Calendar ID, or the well-known short name `primary` / `default` for the signed-in user’s default calendar. Use `ask-marcel list-calendars` to discover non-default calendar IDs."
|
|
6604
|
+
"description": "Calendar ID, or the well-known short name `primary` / `default` for the signed-in user’s default calendar. Use `ask-marcel-office list-calendars` to discover non-default calendar IDs."
|
|
6497
6605
|
},
|
|
6498
6606
|
{
|
|
6499
6607
|
"name": "top",
|
|
@@ -6532,7 +6640,7 @@
|
|
|
6532
6640
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6533
6641
|
}
|
|
6534
6642
|
],
|
|
6535
|
-
"example": "ask-marcel list-specific-calendar-events --calendar-id 'primary'",
|
|
6643
|
+
"example": "ask-marcel-office list-specific-calendar-events --calendar-id 'primary'",
|
|
6536
6644
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
6537
6645
|
"pagination": true
|
|
6538
6646
|
},
|
|
@@ -6554,7 +6662,7 @@
|
|
|
6554
6662
|
"key": "id"
|
|
6555
6663
|
}
|
|
6556
6664
|
],
|
|
6557
|
-
"description": "Calendar ID, or `primary` / `default` for the signed-in user’s default calendar. Returned by `ask-marcel list-calendars`."
|
|
6665
|
+
"description": "Calendar ID, or `primary` / `default` for the signed-in user’s default calendar. Returned by `ask-marcel-office list-calendars`."
|
|
6558
6666
|
},
|
|
6559
6667
|
{
|
|
6560
6668
|
"name": "start-date-time",
|
|
@@ -6617,7 +6725,7 @@
|
|
|
6617
6725
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6618
6726
|
}
|
|
6619
6727
|
],
|
|
6620
|
-
"example": "ask-marcel list-specific-calendar-view --calendar-id 'primary' --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z'",
|
|
6728
|
+
"example": "ask-marcel-office list-specific-calendar-view --calendar-id 'primary' --start-date-time '2026-04-01T00:00:00Z' --end-date-time '2026-05-01T00:00:00Z'",
|
|
6621
6729
|
"responseShape": "collection of Microsoft Graph `event` resources (single occurrences) under `value[]`"
|
|
6622
6730
|
},
|
|
6623
6731
|
{
|
|
@@ -6638,7 +6746,7 @@
|
|
|
6638
6746
|
"key": "id"
|
|
6639
6747
|
}
|
|
6640
6748
|
],
|
|
6641
|
-
"description": "Microsoft Teams team ID. Returned by `ask-marcel list-joined-teams`."
|
|
6749
|
+
"description": "Microsoft Teams team ID. Returned by `ask-marcel-office list-joined-teams`."
|
|
6642
6750
|
},
|
|
6643
6751
|
{
|
|
6644
6752
|
"name": "select",
|
|
@@ -6653,7 +6761,7 @@
|
|
|
6653
6761
|
"description": "OData $filter: predicate to narrow results server-side. Quoting rules: string literals MUST use SINGLE quotes (`subject eq 'invoice'`), NOT double quotes — Graph rejects `subject eq \"invoice\"` with `InvalidFilterClause`. To embed a single quote inside a string, double it (`subject eq 'O''Brien'`). Booleans, numbers, and dates are unquoted (`isRead eq false`, `receivedDateTime ge 2026-01-01T00:00:00Z`). Wrap the whole flag value in shell DOUBLE quotes so the inner single quotes survive (`--filter \"subject eq 'invoice'\"`). Same syntax Graph documents per resource type."
|
|
6654
6762
|
}
|
|
6655
6763
|
],
|
|
6656
|
-
"example": "ask-marcel list-team-channels --team-id 'abc-1234-...'",
|
|
6764
|
+
"example": "ask-marcel-office list-team-channels --team-id 'abc-1234-...'",
|
|
6657
6765
|
"responseShape": "collection of Microsoft Graph `channel` resources under `value[]`"
|
|
6658
6766
|
},
|
|
6659
6767
|
{
|
|
@@ -6677,7 +6785,7 @@
|
|
|
6677
6785
|
"description": "Microsoft Teams team ID."
|
|
6678
6786
|
}
|
|
6679
6787
|
],
|
|
6680
|
-
"example": "ask-marcel list-team-installed-apps --team-id 'tm1'",
|
|
6788
|
+
"example": "ask-marcel-office list-team-installed-apps --team-id 'tm1'",
|
|
6681
6789
|
"responseShape": "collection of Microsoft Graph `teamsAppInstallation` resources under `value[]`, each with an inline `teamsAppDefinition` (`displayName`, `version`, `distributionMethod`)",
|
|
6682
6790
|
"pagination": true
|
|
6683
6791
|
},
|
|
@@ -6732,7 +6840,7 @@
|
|
|
6732
6840
|
"description": "When the slim projection is active (i.e. `--full` is not `true`), cap each message `content` at this many characters; messages cut at the cap also carry `truncated: true` and `originalContentChars` so a consumer can decide whether to re-fetch with `--full true`. Default 4096. Ignored when `--full true` is set."
|
|
6733
6841
|
}
|
|
6734
6842
|
],
|
|
6735
|
-
"example": "ask-marcel list-teams-chat-history --chat-id '19:abc...@unq.gbl.spaces' --max-pages 5",
|
|
6843
|
+
"example": "ask-marcel-office list-teams-chat-history --chat-id '19:abc...@unq.gbl.spaces' --max-pages 5",
|
|
6736
6844
|
"responseShape": "`{ messages: [...], hasMore: boolean, pagesFetched: number, nextSyncState?: string, projection: 'slim' | 'full' }`. Slim projection (default) emits `{ id, sequenceId, composetime, originalarrivaltime, messagetype, from, imdisplayname, content }` per message, with `truncated: true` + `originalContentChars` on entries whose `content` exceeded `--max-content-chars` (default 4096). With `--full true`, returns the raw IC3 substrate shape: `id`, `sequenceId` (monotonic per-chat counter), `composetime`, `originalarrivaltime`, `messagetype`, `content`, `from`, `imdisplayname`, `properties.subject`, etc. **`hasMore: true`** means the safety cap was hit and there is older history beyond what was returned — chain a follow-up call with `--sync-state $(jq -r .data.nextSyncState <prev>)` to continue. **`hasMore: false`** means the chat's earliest message was reached. **Microsoft-internal schema — fields may change without notice.**",
|
|
6737
6845
|
"needsSubstrateToken": true,
|
|
6738
6846
|
"stability": "experimental"
|
|
@@ -6758,7 +6866,7 @@
|
|
|
6758
6866
|
"description": "Teams chat ID — typically `19:<thread>@unq.gbl.spaces` (1:1) or `19:<thread>@thread.v2` (group). Source via `list-chats` or `list-teams-chats-with-messages`."
|
|
6759
6867
|
}
|
|
6760
6868
|
],
|
|
6761
|
-
"example": "ask-marcel list-teams-chat-messages --chat-id '19:abc...@unq.gbl.spaces'",
|
|
6869
|
+
"example": "ask-marcel-office list-teams-chat-messages --chat-id '19:abc...@unq.gbl.spaces'",
|
|
6762
6870
|
"responseShape": "Substrate envelope: `{ messages: [...], messageToken: string }`. Returns up to the 200 most recent messages per chat — older history is NOT reachable via this endpoint. Each message has `id`, `from`, `imDisplayName`, `content`, `contentType`, `composeTime`, `originalArrivalTime`, `sequenceId`, etc. `messageToken` is returned for forward compatibility but is currently a static snapshot identifier (server ignores it as a pagination cursor). **Microsoft-internal schema — fields may change without notice.** For history older than the 200 most recent, use `list-teams-chat-history` (rides the IC3 substrate with a working syncState cursor).",
|
|
6763
6871
|
"needsSubstrateToken": true,
|
|
6764
6872
|
"stability": "experimental"
|
|
@@ -6784,7 +6892,7 @@
|
|
|
6784
6892
|
"description": "Opaque pagination cursor returned in the prior response's `continuationToken` field. Omit on the first call; loop until `hasMoreData` is false."
|
|
6785
6893
|
}
|
|
6786
6894
|
],
|
|
6787
|
-
"example": "ask-marcel list-teams-chats-with-messages --page-size 100",
|
|
6895
|
+
"example": "ask-marcel-office list-teams-chats-with-messages --page-size 100",
|
|
6788
6896
|
"responseShape": "`{ chats: [...], continuationToken?: string, hasMoreData?: boolean }`. Each chat carries `id`, `title`, `chatType`, `threadType`, `members[]` (with each member's `mri`, `displayName`, `email`), `createdAt`, AND `lastMessage` (the most recent message body inlined — `content`, `from`, `composeTime`, `imDisplayName`, etc.). When `hasMoreData: true`, chain a follow-up call with `--continuation-token \"$(jq -r .data.continuationToken <prev>)\"`. **Microsoft-internal schema — fields may change without notice; treat the response as semi-structured.**",
|
|
6789
6897
|
"needsSubstrateToken": true,
|
|
6790
6898
|
"stability": "experimental"
|
|
@@ -6801,7 +6909,7 @@
|
|
|
6801
6909
|
"name": "todo-task-list-id",
|
|
6802
6910
|
"key": "todoTaskListId",
|
|
6803
6911
|
"required": true,
|
|
6804
|
-
"description": "To Do task list ID. Returned by `ask-marcel list-todo-task-lists`.",
|
|
6912
|
+
"description": "To Do task list ID. Returned by `ask-marcel-office list-todo-task-lists`.",
|
|
6805
6913
|
"aliases": [
|
|
6806
6914
|
{
|
|
6807
6915
|
"name": "task-list-id",
|
|
@@ -6817,7 +6925,7 @@
|
|
|
6817
6925
|
"name": "todo-task-id",
|
|
6818
6926
|
"key": "todoTaskId",
|
|
6819
6927
|
"required": true,
|
|
6820
|
-
"description": "To Do task ID. Returned by `ask-marcel list-todo-tasks`. Accepts `--task-id` as a shorter alias (within this command's flag set the To Do context is unambiguous).",
|
|
6928
|
+
"description": "To Do task ID. Returned by `ask-marcel-office list-todo-tasks`. Accepts `--task-id` as a shorter alias (within this command's flag set the To Do context is unambiguous).",
|
|
6821
6929
|
"aliases": [
|
|
6822
6930
|
{
|
|
6823
6931
|
"name": "task-id",
|
|
@@ -6862,7 +6970,7 @@
|
|
|
6862
6970
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6863
6971
|
}
|
|
6864
6972
|
],
|
|
6865
|
-
"example": "ask-marcel list-todo-linked-resources --todo-task-list-id 'AAMkAGI...' --todo-task-id 'AAMkABC...'",
|
|
6973
|
+
"example": "ask-marcel-office list-todo-linked-resources --todo-task-list-id 'AAMkAGI...' --todo-task-id 'AAMkABC...'",
|
|
6866
6974
|
"responseShape": "collection of Microsoft Graph `linkedResource` resources under `value[]`",
|
|
6867
6975
|
"pagination": true
|
|
6868
6976
|
},
|
|
@@ -6899,7 +7007,7 @@
|
|
|
6899
7007
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6900
7008
|
}
|
|
6901
7009
|
],
|
|
6902
|
-
"example": "ask-marcel list-todo-task-lists",
|
|
7010
|
+
"example": "ask-marcel-office list-todo-task-lists",
|
|
6903
7011
|
"responseShape": "collection of Microsoft Graph `todoTaskList` resources under `value[]`",
|
|
6904
7012
|
"pagination": true
|
|
6905
7013
|
},
|
|
@@ -6915,7 +7023,7 @@
|
|
|
6915
7023
|
"name": "todo-task-list-id",
|
|
6916
7024
|
"key": "todoTaskListId",
|
|
6917
7025
|
"required": true,
|
|
6918
|
-
"description": "To Do task list ID. Returned by `ask-marcel list-todo-task-lists`.",
|
|
7026
|
+
"description": "To Do task list ID. Returned by `ask-marcel-office list-todo-task-lists`.",
|
|
6919
7027
|
"aliases": [
|
|
6920
7028
|
{
|
|
6921
7029
|
"name": "id",
|
|
@@ -6968,7 +7076,7 @@
|
|
|
6968
7076
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6969
7077
|
}
|
|
6970
7078
|
],
|
|
6971
|
-
"example": "ask-marcel list-todo-tasks --todo-task-list-id 'AAMkAGI...'",
|
|
7079
|
+
"example": "ask-marcel-office list-todo-tasks --todo-task-list-id 'AAMkAGI...'",
|
|
6972
7080
|
"responseShape": "collection of Microsoft Graph `todoTask` resources under `value[]`",
|
|
6973
7081
|
"pagination": true
|
|
6974
7082
|
},
|
|
@@ -7001,7 +7109,7 @@
|
|
|
7001
7109
|
]
|
|
7002
7110
|
}
|
|
7003
7111
|
],
|
|
7004
|
-
"example": "ask-marcel list-todo-tasks-delta --todo-task-list-id 'AAMkAD...'",
|
|
7112
|
+
"example": "ask-marcel-office list-todo-tasks-delta --todo-task-list-id 'AAMkAD...'",
|
|
7005
7113
|
"responseShape": "collection of Microsoft Graph `todoTask` resources under `data.value[]`. Cursor tokens are hoisted to envelope level: top-level `nextLink` while paging, then top-level `deltaLink` on the final page.",
|
|
7006
7114
|
"pagination": true
|
|
7007
7115
|
},
|
|
@@ -7050,7 +7158,7 @@
|
|
|
7050
7158
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7051
7159
|
}
|
|
7052
7160
|
],
|
|
7053
|
-
"example": "ask-marcel list-trending-insights",
|
|
7161
|
+
"example": "ask-marcel-office list-trending-insights",
|
|
7054
7162
|
"responseShape": "collection of Microsoft Graph `trending` resources under `value[]`",
|
|
7055
7163
|
"pagination": true
|
|
7056
7164
|
},
|
|
@@ -7111,13 +7219,13 @@
|
|
|
7111
7219
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7112
7220
|
}
|
|
7113
7221
|
],
|
|
7114
|
-
"example": "ask-marcel list-user-direct-reports --user-id 'alice@contoso.com'",
|
|
7222
|
+
"example": "ask-marcel-office list-user-direct-reports --user-id 'alice@contoso.com'",
|
|
7115
7223
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources (typically `user`) under `value[]`",
|
|
7116
7224
|
"pagination": true
|
|
7117
7225
|
},
|
|
7118
7226
|
{
|
|
7119
7227
|
"name": "microsoft-search-query",
|
|
7120
|
-
"summary": "Run a federated KQL search across the signed-in user's mail, files, list items, sites, calendar events, and people. Microsoft Graph v1.0 rejects multi-entity search bodies on most tenants (`Multiple entity search is not supported in v1.0`), so this command issues SIX parallel POSTs — one per entityType — and merges the per-entity `searchHits` containers into a single `value[]`. Each container is identifiable by the resource type inside `hits[].resource`. If a sub-request fails (e.g. tenant lacks the scope for one entity), the others still return; failures show up in `partialErrors[]`. Page size is fixed at 25 per sub-request and `top` is NOT exposed (Graph rejects $top in /search/query bodies). `chatMessage` is excluded since `Chat.Read*` is unavailable.",
|
|
7228
|
+
"summary": "Run a federated KQL search across the signed-in user's mail, files, list items, sites, calendar events, and people. Microsoft Graph v1.0 rejects multi-entity search bodies on most tenants (`Multiple entity search is not supported in v1.0`), so this command issues SIX parallel POSTs — one per entityType — and merges the per-entity `searchHits` containers into a single `value[]`. Each container is identifiable by the resource type inside `hits[].resource`. If a sub-request fails (e.g. tenant lacks the scope for one entity), the others still return; failures show up in `partialErrors[]`. Page size is fixed at 25 per sub-request and `top` is NOT exposed (Graph rejects $top in /search/query bodies). `chatMessage` is excluded since `Chat.Read*` is unavailable. To find Microsoft Loop pages (`.loop`) for markdown conversion, query `filetype:loop`: each `driveItem` hit carries `resource.id` plus `resource.parentReference.driveId`, the exact pair `download-drive-item-as-markdown` needs to render the page via Graph `?format=html`. (`filetype:fluid` returns nothing on this corpus; Loop pages index as `.loop`.)",
|
|
7121
7229
|
"category": "meta",
|
|
7122
7230
|
"graphMethod": "POST",
|
|
7123
7231
|
"graphPathTemplate": "/search/query",
|
|
@@ -7130,19 +7238,19 @@
|
|
|
7130
7238
|
"description": "KQL query string. Supports field operators where indexed by the corpus (e.g. `from:alice`, `subject:\"q3 budget\"`, `filetype:xlsx`). Free-text works everywhere."
|
|
7131
7239
|
}
|
|
7132
7240
|
],
|
|
7133
|
-
"example": "ask-marcel microsoft-search-query --query 'q3 budget'",
|
|
7241
|
+
"example": "ask-marcel-office microsoft-search-query --query 'q3 budget'",
|
|
7134
7242
|
"responseShape": "merged Microsoft Graph `searchResponse` envelope: `{ value: [{ searchTerms, hitsContainers: [{ total, hits: [{ hitId, rank, summary, resource }] }] }, …], partialErrors?: [{ entityType, error }] }`. value[] holds one container per entityType that succeeded; partialErrors[] (only present when at least one sub-request failed) lists which entityTypes returned errors.",
|
|
7135
7243
|
"bodyTemplate": "{ requests: [{ entityTypes: ['<one-of-driveItem-listItem-site-message-event-person>'], query: { queryString: '{query}' }, size: 25 }] } — sent six times in parallel, one per entityType"
|
|
7136
7244
|
},
|
|
7137
7245
|
{
|
|
7138
7246
|
"name": "my-quick-context",
|
|
7139
|
-
"summary": "One-shot discovery for the IDs every other command needs, plus the user's job title and tenant timezone / locale / working-hours. Issues 9 Graph calls in parallel and returns what each succeeded for. Partial-result mode: only `/me` is load-bearing — if any other sub-call fails (missing license, scope, or tenant policy) the corresponding field is `undefined` but the rest are still returned. Replaces the audit's 5-call discovery chain — feed the IDs straight into `list-mail-folder-messages`, `list-folder-files`, `list-planner-tasks`, `list-onenote-notebook-sections`, etc. For Microsoft To Do lists call `list-todo-task-lists` on demand (intentionally dropped from this command's fan-out — the array of {id, displayName, wellknownListName} entries crowded the envelope with IDs an LLM rarely needs on first contact).
|
|
7247
|
+
"summary": "One-shot discovery for the IDs every other command needs, plus the user's job title and tenant timezone / locale / working-hours. Issues 9 Graph calls in parallel and returns what each succeeded for. Partial-result mode: only `/me` is load-bearing — if any other sub-call fails (missing license, scope, or tenant policy) the corresponding field is `undefined` but the rest are still returned. Replaces the audit's 5-call discovery chain — feed the IDs straight into `list-mail-folder-messages`, `list-folder-files`, `list-planner-tasks`, `list-onenote-notebook-sections`, etc. For Microsoft To Do lists call `list-todo-task-lists` on demand (intentionally dropped from this command's fan-out — the array of {id, displayName, wellknownListName} entries crowded the envelope with IDs an LLM rarely needs on first contact). `tenantTimeZone` lets an LLM stop treating every datetime as UTC on first contact.",
|
|
7140
7248
|
"category": "meta",
|
|
7141
7249
|
"graphMethod": "GET",
|
|
7142
7250
|
"graphPathTemplate": "(meta) parallel: /me, /me/drive, /me/mailFolders/inbox, /me/calendar, /me/planner/plans, /me/onenote/notebooks, /me/joinedTeams, /me/drive/recent, /me/mailboxSettings",
|
|
7143
7251
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/user-get",
|
|
7144
7252
|
"options": [],
|
|
7145
|
-
"example": "ask-marcel my-quick-context",
|
|
7253
|
+
"example": "ask-marcel-office my-quick-context",
|
|
7146
7254
|
"responseShape": "`{ user: { id, displayName, userPrincipalName, mail, jobTitle? }, primaryDriveId?, inboxId?, primaryCalendarId?, primaryPlannerPlanId?, defaultNotebookId?, firstJoinedTeamId?, recentDriveItemId?, tenantTimeZone?, tenantLocale?, tenantWorkingHours?: { start, end, timeZone? } }` — every field except `user.id` is optional and absent when its source call failed. `user.jobTitle` is the user's role string from Azure AD (e.g. \"Engineering Manager\"). `tenantTimeZone` is the Outlook timezone string (e.g. \"Romance Standard Time\", \"Pacific Standard Time\"); `tenantLocale` is the IETF tag (e.g. \"en-US\"). For Microsoft To Do lists, call `list-todo-task-lists` separately — they were dropped from this command's fan-out to keep the envelope LLM-tractable."
|
|
7147
7255
|
},
|
|
7148
7256
|
{
|
|
@@ -7163,7 +7271,7 @@
|
|
|
7163
7271
|
}
|
|
7164
7272
|
}
|
|
7165
7273
|
],
|
|
7166
|
-
"example": "ask-marcel next-page --url 'https://graph.microsoft.com/v1.0/me/messages?$skip=10'",
|
|
7274
|
+
"example": "ask-marcel-office next-page --url 'https://graph.microsoft.com/v1.0/me/messages?$skip=10'",
|
|
7167
7275
|
"responseShape": "same shape as the originating endpoint — `{ ok: true, data: { value: [...] }, nextLink: \"...\" }` with the cursor at envelope level."
|
|
7168
7276
|
},
|
|
7169
7277
|
{
|
|
@@ -7200,7 +7308,7 @@
|
|
|
7200
7308
|
}
|
|
7201
7309
|
}
|
|
7202
7310
|
],
|
|
7203
|
-
"example": "ask-marcel read-mail-attachment --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
7311
|
+
"example": "ask-marcel-office read-mail-attachment --message-id 'AAMkAD...' --attachment-id 'AAMkAD...attach1'",
|
|
7204
7312
|
"responseShape": "Polymorphic by attachment content-type. A zip → `{ count, files: [{ path, contentType, size, text } | { path, note }], truncated? }` (the convert-mail-attachment-zip shape). Everything else → `{ contentType: \"text/markdown\" | \"text/plain\", size, text, pageCount? }` (the convert-mail-attachment-to-markdown shape; `pageCount` present for PDF sources). Unsupported types (image / scanned PDF / legacy .ppt) return an api_error (415/400) naming the right next command.",
|
|
7205
7313
|
"producesBytes": true
|
|
7206
7314
|
},
|
|
@@ -7219,7 +7327,7 @@
|
|
|
7219
7327
|
"description": "Outlook web URL for a single calendar item. Accepted hosts: `outlook.office.com`, `outlook.office365.com`, `outlook.live.com`. Accepted shapes: path-style (`/calendar/item/AAMkA...`) and OWA query-style with calendar path (`/owa/?itemid=AAMkA...&path=/calendar/item`). Mail links (`/mail/...` or `/owa/?itemid=...` without `path=/calendar`) are rejected with `cli_reject_mail_link_on_calendar_resolver` — use `resolve-mail-link` for those."
|
|
7220
7328
|
}
|
|
7221
7329
|
],
|
|
7222
|
-
"example": "ask-marcel resolve-calendar-link --url 'https://outlook.office.com/calendar/item/AAMkAGI2THVS...'",
|
|
7330
|
+
"example": "ask-marcel-office resolve-calendar-link --url 'https://outlook.office.com/calendar/item/AAMkAGI2THVS...'",
|
|
7223
7331
|
"responseShape": "`{ eventId: string }`. `eventId` is URL-decoded and ready to pass to `get-calendar-event --event-id <id>`."
|
|
7224
7332
|
},
|
|
7225
7333
|
{
|
|
@@ -7237,8 +7345,8 @@
|
|
|
7237
7345
|
"description": "A OneDrive / SharePoint sharing URL — the address from the \"Copy link\" / \"Share\" action in the OneDrive or SharePoint UI. Examples: `https://contoso.sharepoint.com/:b:/s/sitename/EaB1cD...`, `https://contoso-my.sharepoint.com/personal/user_contoso_com/Documents/file.pdf`, `https://1drv.ms/b/s!AbCdEfGh...`. The CLI does not follow the redirect on `1drv.ms` links — the short URL itself is encoded as the share token (Graph resolves it on the server side)."
|
|
7238
7346
|
}
|
|
7239
7347
|
],
|
|
7240
|
-
"example": "ask-marcel resolve-drive-share-link --url 'https://contoso.sharepoint.com/:b:/s/team/EaB1cD2eF...?e=abc'",
|
|
7241
|
-
"responseShape": "`{ shareToken: string, graphPath: string, originalUrl: string }`. `shareToken` is the `u!<base64url>` form. `graphPath` is the ready-to-use `/shares/{token}/driveItem` URL — pass it to `ask-marcel next-page --url <link>` for a one-shot driveItem fetch, or feed the `shareToken` into any future `/shares/{token}/...` endpoint. `originalUrl` is echoed back for round-trip confirmation."
|
|
7348
|
+
"example": "ask-marcel-office resolve-drive-share-link --url 'https://contoso.sharepoint.com/:b:/s/team/EaB1cD2eF...?e=abc'",
|
|
7349
|
+
"responseShape": "`{ shareToken: string, graphPath: string, originalUrl: string }`. `shareToken` is the `u!<base64url>` form. `graphPath` is the ready-to-use `/shares/{token}/driveItem` URL — pass it to `ask-marcel-office next-page --url <link>` for a one-shot driveItem fetch, or feed the `shareToken` into any future `/shares/{token}/...` endpoint. `originalUrl` is echoed back for round-trip confirmation."
|
|
7242
7350
|
},
|
|
7243
7351
|
{
|
|
7244
7352
|
"name": "resolve-mail-link",
|
|
@@ -7255,7 +7363,7 @@
|
|
|
7255
7363
|
"description": "Outlook web URL for a single mail message. Accepted hosts: `outlook.office.com`, `outlook.office365.com`, `outlook.live.com`. Accepted shapes: OWA query-style (`/owa/?itemid=AAMkA...` or `/owa/?ItemID=AAMkA...`), modern path-style (`/mail/inbox/id/AAMkA...`), legacy short (`/mail/AAMkA...`). Calendar links (`/calendar/item/...` or `?path=/calendar/item`) are rejected with `cli_reject_calendar_link_on_mail_resolver` — use `resolve-calendar-link` for those."
|
|
7256
7364
|
}
|
|
7257
7365
|
],
|
|
7258
|
-
"example": "ask-marcel resolve-mail-link --url 'https://outlook.office.com/mail/inbox/id/AAMkAGI2THVS...'",
|
|
7366
|
+
"example": "ask-marcel-office resolve-mail-link --url 'https://outlook.office.com/mail/inbox/id/AAMkAGI2THVS...'",
|
|
7259
7367
|
"responseShape": "`{ messageId: string }`. `messageId` is URL-decoded and ready to pass to `get-mail-message --message-id <id>` or `convert-mail-to-markdown --message-id <id>`."
|
|
7260
7368
|
},
|
|
7261
7369
|
{
|
|
@@ -7273,18 +7381,18 @@
|
|
|
7273
7381
|
"description": "Teams message link, copied from Teams web/desktop via the message's `Copy link` action. Expected shape: `https://teams.microsoft.com/l/message/<url-encoded-chat-id>/<message-id>?tenantId=...&groupId=...&ctx=...`"
|
|
7274
7382
|
}
|
|
7275
7383
|
],
|
|
7276
|
-
"example": "ask-marcel resolve-teams-link --url 'https://teams.microsoft.com/l/message/19%3A...%40unq.gbl.spaces/1700000000000?tenantId=...&groupId=...&ctx=chat'",
|
|
7384
|
+
"example": "ask-marcel-office resolve-teams-link --url 'https://teams.microsoft.com/l/message/19%3A...%40unq.gbl.spaces/1700000000000?tenantId=...&groupId=...&ctx=chat'",
|
|
7277
7385
|
"responseShape": "`{ chatId: string, messageId: string, tenantId?: string, groupId?: string, parentMessageId?: string, context?: string }`. `chatId` and `messageId` are URL-decoded and ready to pass to other commands. Optional fields are included only when the source URL carried them."
|
|
7278
7386
|
},
|
|
7279
7387
|
{
|
|
7280
7388
|
"name": "scopes-check",
|
|
7281
|
-
"summary": "Decode the cached Teams web client access token and return its scopes, audience, and expiry without making a Graph call. Use this as a self-test before running a command an LLM expects to fail with `accessDenied` — if the required scope isn't in the returned list, the call will reject regardless of tenant config. Each command's `scopesRequired` field in `help-json` lists the scopes that command needs; intersect with the array returned here for a pre-flight check (pipe both through `jq` and diff). The `expiresInSeconds` field (added
|
|
7389
|
+
"summary": "Decode the cached Teams web client access token and return its scopes, audience, and expiry without making a Graph call. Use this as a self-test before running a command an LLM expects to fail with `accessDenied` — if the required scope isn't in the returned list, the call will reject regardless of tenant config. Each command's `scopesRequired` field in `help-json` lists the scopes that command needs; intersect with the array returned here for a pre-flight check (pipe both through `jq` and diff). The `expiresInSeconds` field (added ) lets an LLM decide pre-emptively to `login` again — typically worth doing under ~5 minutes (300 s) so a long-running session doesn't hit the wall mid-command.",
|
|
7282
7390
|
"category": "meta",
|
|
7283
7391
|
"graphMethod": "GET",
|
|
7284
7392
|
"graphPathTemplate": "(meta) cached-token introspection — no Graph endpoint",
|
|
7285
7393
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/permissions-reference",
|
|
7286
7394
|
"options": [],
|
|
7287
|
-
"example": "ask-marcel scopes-check",
|
|
7395
|
+
"example": "ask-marcel-office scopes-check",
|
|
7288
7396
|
"responseShape": "`{ scopes: string[], audience: string, expiresAt: string (ISO 8601), expiresInSeconds: number }`. `expiresInSeconds` is negative when the cached token has already expired (run `login`); `audience` is the JWT `aud` claim (typically `https://graph.microsoft.com`)."
|
|
7289
7397
|
},
|
|
7290
7398
|
{
|
|
@@ -7308,7 +7416,7 @@
|
|
|
7308
7416
|
"description": "Pass `--count-files true` to add `estimatedFileCount` to each kept site — the Microsoft Search index's security-trimmed `driveItem` total (files + folders) scoped to that site's `webUrl` via KQL `path:`. OFF by default because it issues ONE extra Search query per site (chunked, capped at 200) — a real fan-out with 429-throttling risk; narrow with `--query` first. It is an estimate, not an exact count."
|
|
7309
7417
|
}
|
|
7310
7418
|
],
|
|
7311
|
-
"example": "ask-marcel search-all-accessible-sites --output json",
|
|
7419
|
+
"example": "ask-marcel-office search-all-accessible-sites --output json",
|
|
7312
7420
|
"responseShape": "`{ value: [<Microsoft Graph site resource: { id, name, displayName?, webUrl, size?, estimatedFileCount?, … }>], count, fileEstimate?, archivedExcluded?, nonNavigableExcluded?, notFoundExcluded?, archiveProbeErrors?, truncated?: true, archiveProbeTruncated?: true }`. `estimatedFileCount` appears only with `--count-files true` — the security-trimmed `driveItem` (files+folders) estimate scoped to each site, omitted past the 200-site count cap or when the per-site query fails. `value[]` is deduped by site `id` across pages; `count` is the number of distinct sites returned (the authoritative figure). `size` (when present) is the site's DEFAULT document library's total bytes used (`drive.quota.used`, recursive) — folded onto the same per-site probe for free, omitted for sites past the probe ceiling or without a default drive; it is a data-volume signal, not a file count. `fileEstimate` (best-effort, omitted if the extra query fails) is the Microsoft Search index's security-trimmed `driveItem` count — roughly how many files+folders the user can access across all of SharePoint/OneDrive. `truncated: true` means paging stopped early (page ceiling hit, or a later page errored) — narrow with `--query` to see the rest; its absence means the sweep ran to completion. `archivedExcluded` (omitted when 0) counts sites dropped as archived/locked by the per-site probe; `nonNavigableExcluded` counts sites dropped by URL shape (add-in app domains, `/contentstorage/` SharePoint Embedded containers, `/_layouts/` system pages); `notFoundExcluded` counts sites whose probe returned 404. `archiveProbeErrors` (omitted when 0) counts sites whose probe failed for an unrelated reason — those are KEPT, so an archived one could slip through. `archiveProbeTruncated: true` means more sites were returned than the probe ceiling (250); the overflow is kept unprobed — narrow with `--query`.",
|
|
7313
7421
|
"bodyTemplate": "{ requests: [{ entityTypes: ['site'], query: { queryString: '{query}' }, from: <page*25>, size: 25 }] } — `{query}` defaults to `*` (all accessible sites); re-issued per page, advancing `from` by 25 until `moreResultsAvailable` is false"
|
|
7314
7422
|
},
|
|
@@ -7363,7 +7471,7 @@
|
|
|
7363
7471
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7364
7472
|
}
|
|
7365
7473
|
],
|
|
7366
|
-
"example": "ask-marcel search-mail-messages --query 'from:alice subject:Q3'",
|
|
7474
|
+
"example": "ask-marcel-office search-mail-messages --query 'from:alice subject:Q3'",
|
|
7367
7475
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]`, ranked by relevance, each projected to the default `--select` set (or the requested fields when overridden). The default omits `body`, `internetMessageHeaders`, and `uniqueBody`.",
|
|
7368
7476
|
"pagination": true
|
|
7369
7477
|
},
|
|
@@ -7412,7 +7520,7 @@
|
|
|
7412
7520
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7413
7521
|
}
|
|
7414
7522
|
],
|
|
7415
|
-
"example": "ask-marcel search-my-documents --query 'q1 budget'",
|
|
7523
|
+
"example": "ask-marcel-office search-my-documents --query 'q1 budget'",
|
|
7416
7524
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
7417
7525
|
"pagination": true
|
|
7418
7526
|
},
|
|
@@ -7434,7 +7542,7 @@
|
|
|
7434
7542
|
"key": "id"
|
|
7435
7543
|
}
|
|
7436
7544
|
],
|
|
7437
|
-
"description": "Microsoft Graph drive ID to search inside. Use `ask-marcel list-drives` for the personal OneDrive, or `ask-marcel list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
7545
|
+
"description": "Microsoft Graph drive ID to search inside. Use `ask-marcel-office list-drives` for the personal OneDrive, or `ask-marcel-office list-sharepoint-site-drives --site-id <id>` for a SharePoint document library."
|
|
7438
7546
|
},
|
|
7439
7547
|
{
|
|
7440
7548
|
"name": "query",
|
|
@@ -7473,7 +7581,7 @@
|
|
|
7473
7581
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7474
7582
|
}
|
|
7475
7583
|
],
|
|
7476
|
-
"example": "ask-marcel search-onedrive-files --drive-id 'b!1234' --query 'q1 budget'",
|
|
7584
|
+
"example": "ask-marcel-office search-onedrive-files --drive-id 'b!1234' --query 'q1 budget'",
|
|
7477
7585
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
7478
7586
|
"pagination": true
|
|
7479
7587
|
},
|
|
@@ -7528,7 +7636,7 @@
|
|
|
7528
7636
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7529
7637
|
}
|
|
7530
7638
|
],
|
|
7531
|
-
"example": "ask-marcel search-onenote-pages --title-substring 'meeting notes' --top 25",
|
|
7639
|
+
"example": "ask-marcel-office search-onenote-pages --title-substring 'meeting notes' --top 25",
|
|
7532
7640
|
"responseShape": "collection of Microsoft Graph `onenotePage` resources under `value[]` whose title contains the substring",
|
|
7533
7641
|
"pagination": true
|
|
7534
7642
|
},
|
|
@@ -7583,7 +7691,7 @@
|
|
|
7583
7691
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7584
7692
|
}
|
|
7585
7693
|
],
|
|
7586
|
-
"example": "ask-marcel search-sharepoint-sites-by-name --query 'marketing'",
|
|
7694
|
+
"example": "ask-marcel-office search-sharepoint-sites-by-name --query 'marketing'",
|
|
7587
7695
|
"responseShape": "collection of Microsoft Graph `site` resources under `value[]` (up to 25), each carrying `size?` — its default document library's total bytes used (`drive.quota.used`, recursive), folded onto the same probe for free (a data-volume signal, not a file count; omitted when the site has no default drive). Sites you cannot open are excluded: `nonNavigableExcluded` drops add-in app domains, `/contentstorage/` (SharePoint Embedded) containers, and `/_layouts/` system URLs by URL shape (no probe); each remaining match is probed (`GET /sites/{id}?$select=…,siteCollection&$expand=drive($select=quota)`) and `archivedExcluded` drops archived / `423 resourceLocked` sites while `notFoundExcluded` drops probes that 404. All three counters are omitted when 0. `archiveProbeErrors` (omitted when 0) counts matches kept because their probe failed for an unrelated reason. Active personal OneDrives are kept.",
|
|
7588
7696
|
"pagination": true
|
|
7589
7697
|
},
|
|
@@ -7668,7 +7776,7 @@
|
|
|
7668
7776
|
}
|
|
7669
7777
|
}
|
|
7670
7778
|
],
|
|
7671
|
-
"example": "ask-marcel update-mail-draft --message-id \"AAMkAD...\" --subject \"Updated: Q3 Report\" --to-recipients \"alice@example.com,charlie@example.com\"",
|
|
7779
|
+
"example": "ask-marcel-office update-mail-draft --message-id \"AAMkAD...\" --subject \"Updated: Q3 Report\" --to-recipients \"alice@example.com,charlie@example.com\"",
|
|
7672
7780
|
"responseShape": "The updated Microsoft Graph message object: `{ id, subject, body, from, toRecipients, ccRecipients, bccRecipients, receivedDateTime, isDraft, … }`. Graph returns 204 No Content on success with no body — the CLI surfaces `{ ok: true }` in that case.",
|
|
7673
7781
|
"bodyTemplate": "{ subject?: '{subject}', body?: { contentType: '{body-content-type}', content: '{body-content}' }, toRecipients?: '{to-recipients}', ccRecipients?: '{cc-recipients}', bccRecipients?: '{bcc-recipients}', importance?: '{importance}' } — only provided fields are sent",
|
|
7674
7782
|
"mutates": true
|