ask-marcel-office-cli 1.5.2 → 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 +67 -3
- package/README.md +21 -58
- package/dist/cli.js +1532 -1722
- package/dist/commands.json +382 -273
- 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 +1410 -1604
- 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 -7676
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,7 +730,7 @@
|
|
|
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",
|
|
@@ -691,7 +745,7 @@
|
|
|
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 '
|
|
748
|
+
"example": "ask-marcel-office find-chats-with-user --name 'Alex Kim'",
|
|
695
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"
|
|
@@ -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,7 +3094,7 @@
|
|
|
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
3099
|
"pagination": true
|
|
2991
3100
|
},
|
|
@@ -3022,7 +3131,7 @@
|
|
|
3022
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."
|
|
3023
3132
|
}
|
|
3024
3133
|
],
|
|
3025
|
-
"example": "ask-marcel list-chats",
|
|
3134
|
+
"example": "ask-marcel-office list-chats",
|
|
3026
3135
|
"responseShape": "collection of Microsoft Graph `chat` resources under `value[]`, each projected to the default `--select` set (or, when overridden, to the requested fields).",
|
|
3027
3136
|
"pagination": true,
|
|
3028
3137
|
"needsElevatedToken": true
|
|
@@ -3072,7 +3181,7 @@
|
|
|
3072
3181
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3073
3182
|
}
|
|
3074
3183
|
],
|
|
3075
|
-
"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",
|
|
3076
3185
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]` (unordered)",
|
|
3077
3186
|
"pagination": true
|
|
3078
3187
|
},
|
|
@@ -3088,7 +3197,7 @@
|
|
|
3088
3197
|
"name": "drive-id",
|
|
3089
3198
|
"key": "driveId",
|
|
3090
3199
|
"required": true,
|
|
3091
|
-
"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."
|
|
3092
3201
|
},
|
|
3093
3202
|
{
|
|
3094
3203
|
"name": "item-id",
|
|
@@ -3127,7 +3236,7 @@
|
|
|
3127
3236
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3128
3237
|
}
|
|
3129
3238
|
],
|
|
3130
|
-
"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'",
|
|
3131
3240
|
"responseShape": "collection of Microsoft Graph `permission` resources under `value[]`",
|
|
3132
3241
|
"pagination": true
|
|
3133
3242
|
},
|
|
@@ -3143,7 +3252,7 @@
|
|
|
3143
3252
|
"name": "drive-id",
|
|
3144
3253
|
"key": "driveId",
|
|
3145
3254
|
"required": true,
|
|
3146
|
-
"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."
|
|
3147
3256
|
},
|
|
3148
3257
|
{
|
|
3149
3258
|
"name": "item-id",
|
|
@@ -3182,7 +3291,7 @@
|
|
|
3182
3291
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3183
3292
|
}
|
|
3184
3293
|
],
|
|
3185
|
-
"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'",
|
|
3186
3295
|
"responseShape": "collection of Microsoft Graph `thumbnailSet` resources under `value[]`",
|
|
3187
3296
|
"pagination": true
|
|
3188
3297
|
},
|
|
@@ -3198,7 +3307,7 @@
|
|
|
3198
3307
|
"name": "drive-id",
|
|
3199
3308
|
"key": "driveId",
|
|
3200
3309
|
"required": true,
|
|
3201
|
-
"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."
|
|
3202
3311
|
},
|
|
3203
3312
|
{
|
|
3204
3313
|
"name": "item-id",
|
|
@@ -3237,7 +3346,7 @@
|
|
|
3237
3346
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3238
3347
|
}
|
|
3239
3348
|
],
|
|
3240
|
-
"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'",
|
|
3241
3350
|
"responseShape": "collection of Microsoft Graph `driveItemVersion` resources under `value[]`",
|
|
3242
3351
|
"pagination": true
|
|
3243
3352
|
},
|
|
@@ -3286,7 +3395,7 @@
|
|
|
3286
3395
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3287
3396
|
}
|
|
3288
3397
|
],
|
|
3289
|
-
"example": "ask-marcel list-drives",
|
|
3398
|
+
"example": "ask-marcel-office list-drives",
|
|
3290
3399
|
"responseShape": "collection of Microsoft Graph `drive` resources under `value[]`",
|
|
3291
3400
|
"pagination": true
|
|
3292
3401
|
},
|
|
@@ -3302,7 +3411,7 @@
|
|
|
3302
3411
|
"name": "drive-id",
|
|
3303
3412
|
"key": "driveId",
|
|
3304
3413
|
"required": true,
|
|
3305
|
-
"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."
|
|
3306
3415
|
},
|
|
3307
3416
|
{
|
|
3308
3417
|
"name": "item-id",
|
|
@@ -3347,7 +3456,7 @@
|
|
|
3347
3456
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3348
3457
|
}
|
|
3349
3458
|
],
|
|
3350
|
-
"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'",
|
|
3351
3460
|
"responseShape": "collection of Microsoft Graph `workbookComment` resources under `value[]`",
|
|
3352
3461
|
"pagination": true
|
|
3353
3462
|
},
|
|
@@ -3363,7 +3472,7 @@
|
|
|
3363
3472
|
"name": "drive-id",
|
|
3364
3473
|
"key": "driveId",
|
|
3365
3474
|
"required": true,
|
|
3366
|
-
"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."
|
|
3367
3476
|
},
|
|
3368
3477
|
{
|
|
3369
3478
|
"name": "item-id",
|
|
@@ -3408,7 +3517,7 @@
|
|
|
3408
3517
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3409
3518
|
}
|
|
3410
3519
|
],
|
|
3411
|
-
"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'",
|
|
3412
3521
|
"responseShape": "collection of Microsoft Graph `workbookNamedItem` resources under `value[]`",
|
|
3413
3522
|
"pagination": true
|
|
3414
3523
|
},
|
|
@@ -3424,7 +3533,7 @@
|
|
|
3424
3533
|
"name": "drive-id",
|
|
3425
3534
|
"key": "driveId",
|
|
3426
3535
|
"required": true,
|
|
3427
|
-
"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."
|
|
3428
3537
|
},
|
|
3429
3538
|
{
|
|
3430
3539
|
"name": "item-id",
|
|
@@ -3436,7 +3545,7 @@
|
|
|
3436
3545
|
"name": "table-id",
|
|
3437
3546
|
"key": "tableId",
|
|
3438
3547
|
"required": true,
|
|
3439
|
-
"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`."
|
|
3440
3549
|
},
|
|
3441
3550
|
{
|
|
3442
3551
|
"name": "top",
|
|
@@ -3463,7 +3572,7 @@
|
|
|
3463
3572
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3464
3573
|
}
|
|
3465
3574
|
],
|
|
3466
|
-
"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'",
|
|
3467
3576
|
"responseShape": "collection of Microsoft Graph `workbookTableRow` resources (each `values` is a 2D array) under `value[]`",
|
|
3468
3577
|
"pagination": true
|
|
3469
3578
|
},
|
|
@@ -3479,7 +3588,7 @@
|
|
|
3479
3588
|
"name": "drive-id",
|
|
3480
3589
|
"key": "driveId",
|
|
3481
3590
|
"required": true,
|
|
3482
|
-
"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."
|
|
3483
3592
|
},
|
|
3484
3593
|
{
|
|
3485
3594
|
"name": "item-id",
|
|
@@ -3512,7 +3621,7 @@
|
|
|
3512
3621
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3513
3622
|
}
|
|
3514
3623
|
],
|
|
3515
|
-
"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'",
|
|
3516
3625
|
"responseShape": "collection of Microsoft Graph `workbookTable` resources under `value[]`",
|
|
3517
3626
|
"pagination": true
|
|
3518
3627
|
},
|
|
@@ -3528,7 +3637,7 @@
|
|
|
3528
3637
|
"name": "drive-id",
|
|
3529
3638
|
"key": "driveId",
|
|
3530
3639
|
"required": true,
|
|
3531
|
-
"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."
|
|
3532
3641
|
},
|
|
3533
3642
|
{
|
|
3534
3643
|
"name": "item-id",
|
|
@@ -3582,7 +3691,7 @@
|
|
|
3582
3691
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3583
3692
|
}
|
|
3584
3693
|
],
|
|
3585
|
-
"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'",
|
|
3586
3695
|
"responseShape": "collection of Microsoft Graph `workbookChart` resources under `value[]`",
|
|
3587
3696
|
"pagination": true
|
|
3588
3697
|
},
|
|
@@ -3598,7 +3707,7 @@
|
|
|
3598
3707
|
"name": "drive-id",
|
|
3599
3708
|
"key": "driveId",
|
|
3600
3709
|
"required": true,
|
|
3601
|
-
"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."
|
|
3602
3711
|
},
|
|
3603
3712
|
{
|
|
3604
3713
|
"name": "item-id",
|
|
@@ -3652,7 +3761,7 @@
|
|
|
3652
3761
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3653
3762
|
}
|
|
3654
3763
|
],
|
|
3655
|
-
"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'",
|
|
3656
3765
|
"responseShape": "collection of Microsoft Graph `workbookPivotTable` resources under `value[]`",
|
|
3657
3766
|
"pagination": true
|
|
3658
3767
|
},
|
|
@@ -3668,7 +3777,7 @@
|
|
|
3668
3777
|
"name": "drive-id",
|
|
3669
3778
|
"key": "driveId",
|
|
3670
3779
|
"required": true,
|
|
3671
|
-
"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."
|
|
3672
3781
|
},
|
|
3673
3782
|
{
|
|
3674
3783
|
"name": "item-id",
|
|
@@ -3695,7 +3804,7 @@
|
|
|
3695
3804
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3696
3805
|
}
|
|
3697
3806
|
],
|
|
3698
|
-
"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'",
|
|
3699
3808
|
"responseShape": "collection of Microsoft Graph `worksheet` resources under `value[]`",
|
|
3700
3809
|
"pagination": true
|
|
3701
3810
|
},
|
|
@@ -3744,7 +3853,7 @@
|
|
|
3744
3853
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3745
3854
|
}
|
|
3746
3855
|
],
|
|
3747
|
-
"example": "ask-marcel list-focused-inbox-overrides",
|
|
3856
|
+
"example": "ask-marcel-office list-focused-inbox-overrides",
|
|
3748
3857
|
"responseShape": "collection of Microsoft Graph `inferenceClassificationOverride` resources under `value[]`",
|
|
3749
3858
|
"pagination": true
|
|
3750
3859
|
},
|
|
@@ -3760,13 +3869,13 @@
|
|
|
3760
3869
|
"name": "drive-id",
|
|
3761
3870
|
"key": "driveId",
|
|
3762
3871
|
"required": true,
|
|
3763
|
-
"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."
|
|
3764
3873
|
},
|
|
3765
3874
|
{
|
|
3766
3875
|
"name": "item-id",
|
|
3767
3876
|
"key": "itemId",
|
|
3768
3877
|
"required": true,
|
|
3769
|
-
"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\".",
|
|
3770
3879
|
"aliases": [
|
|
3771
3880
|
{
|
|
3772
3881
|
"name": "folder-id",
|
|
@@ -3805,7 +3914,7 @@
|
|
|
3805
3914
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3806
3915
|
}
|
|
3807
3916
|
],
|
|
3808
|
-
"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'",
|
|
3809
3918
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
3810
3919
|
"pagination": true
|
|
3811
3920
|
},
|
|
@@ -3848,7 +3957,7 @@
|
|
|
3848
3957
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3849
3958
|
}
|
|
3850
3959
|
],
|
|
3851
|
-
"example": "ask-marcel list-followed-drive-items",
|
|
3960
|
+
"example": "ask-marcel-office list-followed-drive-items",
|
|
3852
3961
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
3853
3962
|
"pagination": true
|
|
3854
3963
|
},
|
|
@@ -3933,7 +4042,7 @@
|
|
|
3933
4042
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3934
4043
|
}
|
|
3935
4044
|
],
|
|
3936
|
-
"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'",
|
|
3937
4046
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
3938
4047
|
"pagination": true
|
|
3939
4048
|
},
|
|
@@ -3994,7 +4103,7 @@
|
|
|
3994
4103
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
3995
4104
|
}
|
|
3996
4105
|
],
|
|
3997
|
-
"example": "ask-marcel list-group-conversations --group-id 'a1b2c3d4-...'",
|
|
4106
|
+
"example": "ask-marcel-office list-group-conversations --group-id 'a1b2c3d4-...'",
|
|
3998
4107
|
"responseShape": "collection of Microsoft Graph `conversation` resources under `value[]`",
|
|
3999
4108
|
"pagination": true
|
|
4000
4109
|
},
|
|
@@ -4055,7 +4164,7 @@
|
|
|
4055
4164
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4056
4165
|
}
|
|
4057
4166
|
],
|
|
4058
|
-
"example": "ask-marcel list-group-events --group-id 'a1b2c3d4-...'",
|
|
4167
|
+
"example": "ask-marcel-office list-group-events --group-id 'a1b2c3d4-...'",
|
|
4059
4168
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
4060
4169
|
"pagination": true
|
|
4061
4170
|
},
|
|
@@ -4116,7 +4225,7 @@
|
|
|
4116
4225
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4117
4226
|
}
|
|
4118
4227
|
],
|
|
4119
|
-
"example": "ask-marcel list-group-members --group-id 'a1b2c3d4-...'",
|
|
4228
|
+
"example": "ask-marcel-office list-group-members --group-id 'a1b2c3d4-...'",
|
|
4120
4229
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources under `value[]`",
|
|
4121
4230
|
"pagination": true
|
|
4122
4231
|
},
|
|
@@ -4177,7 +4286,7 @@
|
|
|
4177
4286
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4178
4287
|
}
|
|
4179
4288
|
],
|
|
4180
|
-
"example": "ask-marcel list-group-owners --group-id 'a1b2c3d4-...'",
|
|
4289
|
+
"example": "ask-marcel-office list-group-owners --group-id 'a1b2c3d4-...'",
|
|
4181
4290
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources under `value[]`",
|
|
4182
4291
|
"pagination": true
|
|
4183
4292
|
},
|
|
@@ -4238,7 +4347,7 @@
|
|
|
4238
4347
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4239
4348
|
}
|
|
4240
4349
|
],
|
|
4241
|
-
"example": "ask-marcel list-group-threads --group-id 'a1b2c3d4-...'",
|
|
4350
|
+
"example": "ask-marcel-office list-group-threads --group-id 'a1b2c3d4-...'",
|
|
4242
4351
|
"responseShape": "collection of Microsoft Graph `conversationThread` resources under `value[]`",
|
|
4243
4352
|
"pagination": true
|
|
4244
4353
|
},
|
|
@@ -4281,7 +4390,7 @@
|
|
|
4281
4390
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4282
4391
|
}
|
|
4283
4392
|
],
|
|
4284
|
-
"example": "ask-marcel list-groups",
|
|
4393
|
+
"example": "ask-marcel-office list-groups",
|
|
4285
4394
|
"responseShape": "collection of Microsoft Graph `group` resources under `value[]`",
|
|
4286
4395
|
"pagination": true
|
|
4287
4396
|
},
|
|
@@ -4330,7 +4439,7 @@
|
|
|
4330
4439
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4331
4440
|
}
|
|
4332
4441
|
],
|
|
4333
|
-
"example": "ask-marcel list-incomplete-planner-tasks --top 25",
|
|
4442
|
+
"example": "ask-marcel-office list-incomplete-planner-tasks --top 25",
|
|
4334
4443
|
"responseShape": "collection of Microsoft Graph `plannerTask` resources under `value[]` where `percentComplete < 100`",
|
|
4335
4444
|
"pagination": true
|
|
4336
4445
|
},
|
|
@@ -4346,7 +4455,7 @@
|
|
|
4346
4455
|
"name": "todo-task-list-id",
|
|
4347
4456
|
"key": "todoTaskListId",
|
|
4348
4457
|
"required": true,
|
|
4349
|
-
"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.",
|
|
4350
4459
|
"aliases": [
|
|
4351
4460
|
{
|
|
4352
4461
|
"name": "id",
|
|
@@ -4399,7 +4508,7 @@
|
|
|
4399
4508
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4400
4509
|
}
|
|
4401
4510
|
],
|
|
4402
|
-
"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",
|
|
4403
4512
|
"responseShape": "collection of Microsoft Graph `todoTask` resources under `value[]` where `status != \"completed\"`",
|
|
4404
4513
|
"pagination": true
|
|
4405
4514
|
},
|
|
@@ -4411,7 +4520,7 @@
|
|
|
4411
4520
|
"graphPathTemplate": "/me/joinedTeams",
|
|
4412
4521
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/user-list-joinedteams",
|
|
4413
4522
|
"options": [],
|
|
4414
|
-
"example": "ask-marcel list-joined-teams",
|
|
4523
|
+
"example": "ask-marcel-office list-joined-teams",
|
|
4415
4524
|
"responseShape": "collection of Microsoft Graph `team` resources under `value[]`",
|
|
4416
4525
|
"pagination": true
|
|
4417
4526
|
},
|
|
@@ -4433,7 +4542,7 @@
|
|
|
4433
4542
|
"key": "id"
|
|
4434
4543
|
}
|
|
4435
4544
|
],
|
|
4436
|
-
"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."
|
|
4437
4546
|
},
|
|
4438
4547
|
{
|
|
4439
4548
|
"name": "top",
|
|
@@ -4472,7 +4581,7 @@
|
|
|
4472
4581
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4473
4582
|
}
|
|
4474
4583
|
],
|
|
4475
|
-
"example": "ask-marcel list-mail-attachments --message-id 'AAMkAGI2...'",
|
|
4584
|
+
"example": "ask-marcel-office list-mail-attachments --message-id 'AAMkAGI2...'",
|
|
4476
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.",
|
|
4477
4586
|
"pagination": true
|
|
4478
4587
|
},
|
|
@@ -4494,7 +4603,7 @@
|
|
|
4494
4603
|
"key": "id"
|
|
4495
4604
|
}
|
|
4496
4605
|
],
|
|
4497
|
-
"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`."
|
|
4498
4607
|
},
|
|
4499
4608
|
{
|
|
4500
4609
|
"name": "top",
|
|
@@ -4533,7 +4642,7 @@
|
|
|
4533
4642
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4534
4643
|
}
|
|
4535
4644
|
],
|
|
4536
|
-
"example": "ask-marcel list-mail-child-folders --mail-folder-id 'inbox'",
|
|
4645
|
+
"example": "ask-marcel-office list-mail-child-folders --mail-folder-id 'inbox'",
|
|
4537
4646
|
"responseShape": "collection of Microsoft Graph `mailFolder` resources under `value[]`",
|
|
4538
4647
|
"pagination": true
|
|
4539
4648
|
},
|
|
@@ -4555,7 +4664,7 @@
|
|
|
4555
4664
|
"key": "id"
|
|
4556
4665
|
}
|
|
4557
4666
|
],
|
|
4558
|
-
"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`."
|
|
4559
4668
|
},
|
|
4560
4669
|
{
|
|
4561
4670
|
"name": "top",
|
|
@@ -4594,7 +4703,7 @@
|
|
|
4594
4703
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4595
4704
|
}
|
|
4596
4705
|
],
|
|
4597
|
-
"example": "ask-marcel list-mail-folder-messages --mail-folder-id 'inbox'",
|
|
4706
|
+
"example": "ask-marcel-office list-mail-folder-messages --mail-folder-id 'inbox'",
|
|
4598
4707
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]`",
|
|
4599
4708
|
"pagination": true
|
|
4600
4709
|
},
|
|
@@ -4655,7 +4764,7 @@
|
|
|
4655
4764
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4656
4765
|
}
|
|
4657
4766
|
],
|
|
4658
|
-
"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'",
|
|
4659
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`).",
|
|
4660
4769
|
"pagination": true
|
|
4661
4770
|
},
|
|
@@ -4704,7 +4813,7 @@
|
|
|
4704
4813
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4705
4814
|
}
|
|
4706
4815
|
],
|
|
4707
|
-
"example": "ask-marcel list-mail-folders",
|
|
4816
|
+
"example": "ask-marcel-office list-mail-folders",
|
|
4708
4817
|
"responseShape": "collection of Microsoft Graph `mailFolder` resources under `value[]`",
|
|
4709
4818
|
"pagination": true
|
|
4710
4819
|
},
|
|
@@ -4716,7 +4825,7 @@
|
|
|
4716
4825
|
"graphPathTemplate": "/me/mailFolders/delta()",
|
|
4717
4826
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/mailfolder-delta",
|
|
4718
4827
|
"options": [],
|
|
4719
|
-
"example": "ask-marcel list-mail-folders-delta",
|
|
4828
|
+
"example": "ask-marcel-office list-mail-folders-delta",
|
|
4720
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.",
|
|
4721
4830
|
"pagination": true
|
|
4722
4831
|
},
|
|
@@ -4765,7 +4874,7 @@
|
|
|
4765
4874
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4766
4875
|
}
|
|
4767
4876
|
],
|
|
4768
|
-
"example": "ask-marcel list-mail-messages",
|
|
4877
|
+
"example": "ask-marcel-office list-mail-messages",
|
|
4769
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`.",
|
|
4770
4879
|
"pagination": true
|
|
4771
4880
|
},
|
|
@@ -4784,7 +4893,7 @@
|
|
|
4784
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`."
|
|
4785
4894
|
}
|
|
4786
4895
|
],
|
|
4787
|
-
"example": "ask-marcel list-mail-rules",
|
|
4896
|
+
"example": "ask-marcel-office list-mail-rules",
|
|
4788
4897
|
"responseShape": "collection of Microsoft Graph `messageRule` resources under `value[]`"
|
|
4789
4898
|
},
|
|
4790
4899
|
{
|
|
@@ -4832,7 +4941,7 @@
|
|
|
4832
4941
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4833
4942
|
}
|
|
4834
4943
|
],
|
|
4835
|
-
"example": "ask-marcel list-my-direct-reports",
|
|
4944
|
+
"example": "ask-marcel-office list-my-direct-reports",
|
|
4836
4945
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources (typically `user`) under `value[]`",
|
|
4837
4946
|
"pagination": true
|
|
4838
4947
|
},
|
|
@@ -4881,7 +4990,7 @@
|
|
|
4881
4990
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4882
4991
|
}
|
|
4883
4992
|
],
|
|
4884
|
-
"example": "ask-marcel list-my-memberships",
|
|
4993
|
+
"example": "ask-marcel-office list-my-memberships",
|
|
4885
4994
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources under `value[]`",
|
|
4886
4995
|
"pagination": true
|
|
4887
4996
|
},
|
|
@@ -4930,7 +5039,7 @@
|
|
|
4930
5039
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4931
5040
|
}
|
|
4932
5041
|
],
|
|
4933
|
-
"example": "ask-marcel list-my-transitive-memberships",
|
|
5042
|
+
"example": "ask-marcel-office list-my-transitive-memberships",
|
|
4934
5043
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources under `value[]`",
|
|
4935
5044
|
"pagination": true
|
|
4936
5045
|
},
|
|
@@ -4952,7 +5061,7 @@
|
|
|
4952
5061
|
"key": "id"
|
|
4953
5062
|
}
|
|
4954
5063
|
],
|
|
4955
|
-
"description": "OneNote notebook ID. Returned by `ask-marcel list-onenote-notebooks`."
|
|
5064
|
+
"description": "OneNote notebook ID. Returned by `ask-marcel-office list-onenote-notebooks`."
|
|
4956
5065
|
},
|
|
4957
5066
|
{
|
|
4958
5067
|
"name": "top",
|
|
@@ -4991,7 +5100,7 @@
|
|
|
4991
5100
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
4992
5101
|
}
|
|
4993
5102
|
],
|
|
4994
|
-
"example": "ask-marcel list-onenote-notebook-sections --notebook-id '1-12abc...'",
|
|
5103
|
+
"example": "ask-marcel-office list-onenote-notebook-sections --notebook-id '1-12abc...'",
|
|
4995
5104
|
"responseShape": "collection of Microsoft Graph `onenoteSection` resources under `value[]`",
|
|
4996
5105
|
"pagination": true
|
|
4997
5106
|
},
|
|
@@ -5040,7 +5149,7 @@
|
|
|
5040
5149
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5041
5150
|
}
|
|
5042
5151
|
],
|
|
5043
|
-
"example": "ask-marcel list-onenote-notebooks",
|
|
5152
|
+
"example": "ask-marcel-office list-onenote-notebooks",
|
|
5044
5153
|
"responseShape": "collection of Microsoft Graph `notebook` resources under `value[]`",
|
|
5045
5154
|
"pagination": true
|
|
5046
5155
|
},
|
|
@@ -5056,7 +5165,7 @@
|
|
|
5056
5165
|
"name": "onenote-section-id",
|
|
5057
5166
|
"key": "onenoteSectionId",
|
|
5058
5167
|
"required": true,
|
|
5059
|
-
"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`.",
|
|
5060
5169
|
"aliases": [
|
|
5061
5170
|
{
|
|
5062
5171
|
"name": "id",
|
|
@@ -5105,7 +5214,7 @@
|
|
|
5105
5214
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5106
5215
|
}
|
|
5107
5216
|
],
|
|
5108
|
-
"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...'",
|
|
5109
5218
|
"responseShape": "collection of Microsoft Graph `onenotePage` resources under `value[]`",
|
|
5110
5219
|
"pagination": true
|
|
5111
5220
|
},
|
|
@@ -5117,7 +5226,7 @@
|
|
|
5117
5226
|
"graphPathTemplate": "/me/outlook/masterCategories",
|
|
5118
5227
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/outlookuser-list-mastercategories",
|
|
5119
5228
|
"options": [],
|
|
5120
|
-
"example": "ask-marcel list-outlook-categories",
|
|
5229
|
+
"example": "ask-marcel-office list-outlook-categories",
|
|
5121
5230
|
"responseShape": "collection of Microsoft Graph `outlookCategory` resources under `value[]`"
|
|
5122
5231
|
},
|
|
5123
5232
|
{
|
|
@@ -5132,7 +5241,7 @@
|
|
|
5132
5241
|
"name": "planner-plan-id",
|
|
5133
5242
|
"key": "plannerPlanId",
|
|
5134
5243
|
"required": true,
|
|
5135
|
-
"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`.",
|
|
5136
5245
|
"aliases": [
|
|
5137
5246
|
{
|
|
5138
5247
|
"name": "id",
|
|
@@ -5151,7 +5260,7 @@
|
|
|
5151
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`."
|
|
5152
5261
|
}
|
|
5153
5262
|
],
|
|
5154
|
-
"example": "ask-marcel list-plan-buckets --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
5263
|
+
"example": "ask-marcel-office list-plan-buckets --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
5155
5264
|
"responseShape": "collection of Microsoft Graph `plannerBucket` resources under `value[]`",
|
|
5156
5265
|
"pagination": true
|
|
5157
5266
|
},
|
|
@@ -5167,7 +5276,7 @@
|
|
|
5167
5276
|
"name": "planner-plan-id",
|
|
5168
5277
|
"key": "plannerPlanId",
|
|
5169
5278
|
"required": true,
|
|
5170
|
-
"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`.",
|
|
5171
5280
|
"aliases": [
|
|
5172
5281
|
{
|
|
5173
5282
|
"name": "id",
|
|
@@ -5180,7 +5289,7 @@
|
|
|
5180
5289
|
]
|
|
5181
5290
|
}
|
|
5182
5291
|
],
|
|
5183
|
-
"example": "ask-marcel list-plan-tasks --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
5292
|
+
"example": "ask-marcel-office list-plan-tasks --planner-plan-id 'xqQg5FS2LkCp935s-FIFm5gAB6'",
|
|
5184
5293
|
"responseShape": "collection of Microsoft Graph `plannerTask` resources under `value[]`",
|
|
5185
5294
|
"pagination": true
|
|
5186
5295
|
},
|
|
@@ -5199,7 +5308,7 @@
|
|
|
5199
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`."
|
|
5200
5309
|
}
|
|
5201
5310
|
],
|
|
5202
|
-
"example": "ask-marcel list-planner-plans",
|
|
5311
|
+
"example": "ask-marcel-office list-planner-plans",
|
|
5203
5312
|
"responseShape": "collection of Microsoft Graph `plannerPlan` resources under `value[]`",
|
|
5204
5313
|
"pagination": true
|
|
5205
5314
|
},
|
|
@@ -5248,7 +5357,7 @@
|
|
|
5248
5357
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5249
5358
|
}
|
|
5250
5359
|
],
|
|
5251
|
-
"example": "ask-marcel list-planner-tasks",
|
|
5360
|
+
"example": "ask-marcel-office list-planner-tasks",
|
|
5252
5361
|
"responseShape": "collection of Microsoft Graph `plannerTask` resources under `value[]`",
|
|
5253
5362
|
"pagination": true
|
|
5254
5363
|
},
|
|
@@ -5291,7 +5400,7 @@
|
|
|
5291
5400
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5292
5401
|
}
|
|
5293
5402
|
],
|
|
5294
|
-
"example": "ask-marcel list-recent-files",
|
|
5403
|
+
"example": "ask-marcel-office list-recent-files",
|
|
5295
5404
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
5296
5405
|
"pagination": true
|
|
5297
5406
|
},
|
|
@@ -5340,7 +5449,7 @@
|
|
|
5340
5449
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5341
5450
|
}
|
|
5342
5451
|
],
|
|
5343
|
-
"example": "ask-marcel list-recently-used-insights",
|
|
5452
|
+
"example": "ask-marcel-office list-recently-used-insights",
|
|
5344
5453
|
"responseShape": "collection of Microsoft Graph `usedInsight` resources under `value[]`",
|
|
5345
5454
|
"pagination": true
|
|
5346
5455
|
},
|
|
@@ -5389,7 +5498,7 @@
|
|
|
5389
5498
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5390
5499
|
}
|
|
5391
5500
|
],
|
|
5392
|
-
"example": "ask-marcel list-relevant-people",
|
|
5501
|
+
"example": "ask-marcel-office list-relevant-people",
|
|
5393
5502
|
"responseShape": "collection of Microsoft Graph `person` resources under `value[]`",
|
|
5394
5503
|
"pagination": true
|
|
5395
5504
|
},
|
|
@@ -5438,7 +5547,7 @@
|
|
|
5438
5547
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5439
5548
|
}
|
|
5440
5549
|
],
|
|
5441
|
-
"example": "ask-marcel list-room-lists",
|
|
5550
|
+
"example": "ask-marcel-office list-room-lists",
|
|
5442
5551
|
"responseShape": "collection of Microsoft Graph `roomList` resources under `value[]`",
|
|
5443
5552
|
"pagination": true
|
|
5444
5553
|
},
|
|
@@ -5487,7 +5596,7 @@
|
|
|
5487
5596
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5488
5597
|
}
|
|
5489
5598
|
],
|
|
5490
|
-
"example": "ask-marcel list-rooms",
|
|
5599
|
+
"example": "ask-marcel-office list-rooms",
|
|
5491
5600
|
"responseShape": "collection of Microsoft Graph `room` resources under `value[]`",
|
|
5492
5601
|
"pagination": true
|
|
5493
5602
|
},
|
|
@@ -5536,7 +5645,7 @@
|
|
|
5536
5645
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5537
5646
|
}
|
|
5538
5647
|
],
|
|
5539
|
-
"example": "ask-marcel list-sensitivity-labels",
|
|
5648
|
+
"example": "ask-marcel-office list-sensitivity-labels",
|
|
5540
5649
|
"responseShape": "collection of Microsoft Graph `sensitivityLabel` resources under `value[]`",
|
|
5541
5650
|
"pagination": true
|
|
5542
5651
|
},
|
|
@@ -5597,7 +5706,7 @@
|
|
|
5597
5706
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5598
5707
|
}
|
|
5599
5708
|
],
|
|
5600
|
-
"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'",
|
|
5601
5710
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
5602
5711
|
"pagination": true
|
|
5603
5712
|
},
|
|
@@ -5682,7 +5791,7 @@
|
|
|
5682
5791
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5683
5792
|
}
|
|
5684
5793
|
],
|
|
5685
|
-
"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'",
|
|
5686
5795
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
5687
5796
|
"pagination": true
|
|
5688
5797
|
},
|
|
@@ -5731,7 +5840,7 @@
|
|
|
5731
5840
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5732
5841
|
}
|
|
5733
5842
|
],
|
|
5734
|
-
"example": "ask-marcel list-shared-insights",
|
|
5843
|
+
"example": "ask-marcel-office list-shared-insights",
|
|
5735
5844
|
"responseShape": "collection of Microsoft Graph `sharedInsight` resources under `value[]`",
|
|
5736
5845
|
"pagination": true
|
|
5737
5846
|
},
|
|
@@ -5792,7 +5901,7 @@
|
|
|
5792
5901
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5793
5902
|
}
|
|
5794
5903
|
],
|
|
5795
|
-
"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'",
|
|
5796
5905
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]`",
|
|
5797
5906
|
"pagination": true
|
|
5798
5907
|
},
|
|
@@ -5853,7 +5962,7 @@
|
|
|
5853
5962
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5854
5963
|
}
|
|
5855
5964
|
],
|
|
5856
|
-
"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'",
|
|
5857
5966
|
"responseShape": "collection of Microsoft Graph `message` resources under `value[]`",
|
|
5858
5967
|
"pagination": true
|
|
5859
5968
|
},
|
|
@@ -5865,7 +5974,7 @@
|
|
|
5865
5974
|
"graphPathTemplate": "/me/drive/sharedWithMe",
|
|
5866
5975
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/drive-sharedwithme",
|
|
5867
5976
|
"options": [],
|
|
5868
|
-
"example": "ask-marcel list-shared-with-me",
|
|
5977
|
+
"example": "ask-marcel-office list-shared-with-me",
|
|
5869
5978
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]` (each with a `remoteItem` pointer)"
|
|
5870
5979
|
},
|
|
5871
5980
|
{
|
|
@@ -5901,7 +6010,7 @@
|
|
|
5901
6010
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5902
6011
|
}
|
|
5903
6012
|
],
|
|
5904
|
-
"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'",
|
|
5905
6014
|
"responseShape": "collection of Microsoft Graph `columnDefinition` resources under `value[]`"
|
|
5906
6015
|
},
|
|
5907
6016
|
{
|
|
@@ -5967,7 +6076,7 @@
|
|
|
5967
6076
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
5968
6077
|
}
|
|
5969
6078
|
],
|
|
5970
|
-
"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'",
|
|
5971
6080
|
"responseShape": "collection of Microsoft Graph `listItemVersion` resources under `value[]`",
|
|
5972
6081
|
"pagination": true
|
|
5973
6082
|
},
|
|
@@ -5989,7 +6098,7 @@
|
|
|
5989
6098
|
"key": "id"
|
|
5990
6099
|
}
|
|
5991
6100
|
],
|
|
5992
|
-
"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`."
|
|
5993
6102
|
},
|
|
5994
6103
|
{
|
|
5995
6104
|
"name": "top",
|
|
@@ -6022,7 +6131,7 @@
|
|
|
6022
6131
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6023
6132
|
}
|
|
6024
6133
|
],
|
|
6025
|
-
"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'",
|
|
6026
6135
|
"responseShape": "collection of Microsoft Graph `drive` resources under `value[]`",
|
|
6027
6136
|
"pagination": true
|
|
6028
6137
|
},
|
|
@@ -6038,13 +6147,13 @@
|
|
|
6038
6147
|
"name": "site-id",
|
|
6039
6148
|
"key": "siteId",
|
|
6040
6149
|
"required": true,
|
|
6041
|
-
"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`."
|
|
6042
6151
|
},
|
|
6043
6152
|
{
|
|
6044
6153
|
"name": "list-id",
|
|
6045
6154
|
"key": "listId",
|
|
6046
6155
|
"required": true,
|
|
6047
|
-
"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`.",
|
|
6048
6157
|
"argumentHint": {
|
|
6049
6158
|
"kind": "idOrName"
|
|
6050
6159
|
}
|
|
@@ -6080,7 +6189,7 @@
|
|
|
6080
6189
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6081
6190
|
}
|
|
6082
6191
|
],
|
|
6083
|
-
"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'",
|
|
6084
6193
|
"responseShape": "collection of Microsoft Graph `listItem` resources under `value[]`",
|
|
6085
6194
|
"pagination": true
|
|
6086
6195
|
},
|
|
@@ -6102,7 +6211,7 @@
|
|
|
6102
6211
|
"key": "id"
|
|
6103
6212
|
}
|
|
6104
6213
|
],
|
|
6105
|
-
"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`."
|
|
6106
6215
|
},
|
|
6107
6216
|
{
|
|
6108
6217
|
"name": "top",
|
|
@@ -6135,7 +6244,7 @@
|
|
|
6135
6244
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6136
6245
|
}
|
|
6137
6246
|
],
|
|
6138
|
-
"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'",
|
|
6139
6248
|
"responseShape": "collection of Microsoft Graph `list` resources under `value[]`",
|
|
6140
6249
|
"pagination": true
|
|
6141
6250
|
},
|
|
@@ -6196,7 +6305,7 @@
|
|
|
6196
6305
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6197
6306
|
}
|
|
6198
6307
|
],
|
|
6199
|
-
"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'",
|
|
6200
6309
|
"responseShape": "collection of Microsoft Graph `onenoteSection` resources under `value[]`",
|
|
6201
6310
|
"pagination": true
|
|
6202
6311
|
},
|
|
@@ -6257,7 +6366,7 @@
|
|
|
6257
6366
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6258
6367
|
}
|
|
6259
6368
|
],
|
|
6260
|
-
"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,...'",
|
|
6261
6370
|
"responseShape": "collection of Microsoft Graph `notebook` resources under `value[]`",
|
|
6262
6371
|
"pagination": true
|
|
6263
6372
|
},
|
|
@@ -6324,7 +6433,7 @@
|
|
|
6324
6433
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6325
6434
|
}
|
|
6326
6435
|
],
|
|
6327
|
-
"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'",
|
|
6328
6437
|
"responseShape": "collection of Microsoft Graph `onenotePage` resources under `value[]`",
|
|
6329
6438
|
"pagination": true
|
|
6330
6439
|
},
|
|
@@ -6379,7 +6488,7 @@
|
|
|
6379
6488
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6380
6489
|
}
|
|
6381
6490
|
],
|
|
6382
|
-
"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,...'",
|
|
6383
6492
|
"responseShape": "collection of Microsoft Graph `sitePage` resources under `value[]`",
|
|
6384
6493
|
"pagination": true
|
|
6385
6494
|
},
|
|
@@ -6416,7 +6525,7 @@
|
|
|
6416
6525
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6417
6526
|
}
|
|
6418
6527
|
],
|
|
6419
|
-
"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'",
|
|
6420
6529
|
"responseShape": "collection of Microsoft Graph `columnDefinition` resources under `value[]`"
|
|
6421
6530
|
},
|
|
6422
6531
|
{
|
|
@@ -6470,7 +6579,7 @@
|
|
|
6470
6579
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6471
6580
|
}
|
|
6472
6581
|
],
|
|
6473
|
-
"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,...'",
|
|
6474
6583
|
"responseShape": "collection of Microsoft Graph `contentType` resources under `value[]`",
|
|
6475
6584
|
"pagination": true
|
|
6476
6585
|
},
|
|
@@ -6492,7 +6601,7 @@
|
|
|
6492
6601
|
"key": "id"
|
|
6493
6602
|
}
|
|
6494
6603
|
],
|
|
6495
|
-
"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."
|
|
6496
6605
|
},
|
|
6497
6606
|
{
|
|
6498
6607
|
"name": "top",
|
|
@@ -6531,7 +6640,7 @@
|
|
|
6531
6640
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6532
6641
|
}
|
|
6533
6642
|
],
|
|
6534
|
-
"example": "ask-marcel list-specific-calendar-events --calendar-id 'primary'",
|
|
6643
|
+
"example": "ask-marcel-office list-specific-calendar-events --calendar-id 'primary'",
|
|
6535
6644
|
"responseShape": "collection of Microsoft Graph `event` resources under `value[]`",
|
|
6536
6645
|
"pagination": true
|
|
6537
6646
|
},
|
|
@@ -6553,7 +6662,7 @@
|
|
|
6553
6662
|
"key": "id"
|
|
6554
6663
|
}
|
|
6555
6664
|
],
|
|
6556
|
-
"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`."
|
|
6557
6666
|
},
|
|
6558
6667
|
{
|
|
6559
6668
|
"name": "start-date-time",
|
|
@@ -6616,7 +6725,7 @@
|
|
|
6616
6725
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6617
6726
|
}
|
|
6618
6727
|
],
|
|
6619
|
-
"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'",
|
|
6620
6729
|
"responseShape": "collection of Microsoft Graph `event` resources (single occurrences) under `value[]`"
|
|
6621
6730
|
},
|
|
6622
6731
|
{
|
|
@@ -6637,7 +6746,7 @@
|
|
|
6637
6746
|
"key": "id"
|
|
6638
6747
|
}
|
|
6639
6748
|
],
|
|
6640
|
-
"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`."
|
|
6641
6750
|
},
|
|
6642
6751
|
{
|
|
6643
6752
|
"name": "select",
|
|
@@ -6652,7 +6761,7 @@
|
|
|
6652
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."
|
|
6653
6762
|
}
|
|
6654
6763
|
],
|
|
6655
|
-
"example": "ask-marcel list-team-channels --team-id 'abc-1234-...'",
|
|
6764
|
+
"example": "ask-marcel-office list-team-channels --team-id 'abc-1234-...'",
|
|
6656
6765
|
"responseShape": "collection of Microsoft Graph `channel` resources under `value[]`"
|
|
6657
6766
|
},
|
|
6658
6767
|
{
|
|
@@ -6676,7 +6785,7 @@
|
|
|
6676
6785
|
"description": "Microsoft Teams team ID."
|
|
6677
6786
|
}
|
|
6678
6787
|
],
|
|
6679
|
-
"example": "ask-marcel list-team-installed-apps --team-id 'tm1'",
|
|
6788
|
+
"example": "ask-marcel-office list-team-installed-apps --team-id 'tm1'",
|
|
6680
6789
|
"responseShape": "collection of Microsoft Graph `teamsAppInstallation` resources under `value[]`, each with an inline `teamsAppDefinition` (`displayName`, `version`, `distributionMethod`)",
|
|
6681
6790
|
"pagination": true
|
|
6682
6791
|
},
|
|
@@ -6731,7 +6840,7 @@
|
|
|
6731
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."
|
|
6732
6841
|
}
|
|
6733
6842
|
],
|
|
6734
|
-
"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",
|
|
6735
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.**",
|
|
6736
6845
|
"needsSubstrateToken": true,
|
|
6737
6846
|
"stability": "experimental"
|
|
@@ -6757,7 +6866,7 @@
|
|
|
6757
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`."
|
|
6758
6867
|
}
|
|
6759
6868
|
],
|
|
6760
|
-
"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'",
|
|
6761
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).",
|
|
6762
6871
|
"needsSubstrateToken": true,
|
|
6763
6872
|
"stability": "experimental"
|
|
@@ -6783,7 +6892,7 @@
|
|
|
6783
6892
|
"description": "Opaque pagination cursor returned in the prior response's `continuationToken` field. Omit on the first call; loop until `hasMoreData` is false."
|
|
6784
6893
|
}
|
|
6785
6894
|
],
|
|
6786
|
-
"example": "ask-marcel list-teams-chats-with-messages --page-size 100",
|
|
6895
|
+
"example": "ask-marcel-office list-teams-chats-with-messages --page-size 100",
|
|
6787
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.**",
|
|
6788
6897
|
"needsSubstrateToken": true,
|
|
6789
6898
|
"stability": "experimental"
|
|
@@ -6800,7 +6909,7 @@
|
|
|
6800
6909
|
"name": "todo-task-list-id",
|
|
6801
6910
|
"key": "todoTaskListId",
|
|
6802
6911
|
"required": true,
|
|
6803
|
-
"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`.",
|
|
6804
6913
|
"aliases": [
|
|
6805
6914
|
{
|
|
6806
6915
|
"name": "task-list-id",
|
|
@@ -6816,7 +6925,7 @@
|
|
|
6816
6925
|
"name": "todo-task-id",
|
|
6817
6926
|
"key": "todoTaskId",
|
|
6818
6927
|
"required": true,
|
|
6819
|
-
"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).",
|
|
6820
6929
|
"aliases": [
|
|
6821
6930
|
{
|
|
6822
6931
|
"name": "task-id",
|
|
@@ -6861,7 +6970,7 @@
|
|
|
6861
6970
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6862
6971
|
}
|
|
6863
6972
|
],
|
|
6864
|
-
"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...'",
|
|
6865
6974
|
"responseShape": "collection of Microsoft Graph `linkedResource` resources under `value[]`",
|
|
6866
6975
|
"pagination": true
|
|
6867
6976
|
},
|
|
@@ -6898,7 +7007,7 @@
|
|
|
6898
7007
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6899
7008
|
}
|
|
6900
7009
|
],
|
|
6901
|
-
"example": "ask-marcel list-todo-task-lists",
|
|
7010
|
+
"example": "ask-marcel-office list-todo-task-lists",
|
|
6902
7011
|
"responseShape": "collection of Microsoft Graph `todoTaskList` resources under `value[]`",
|
|
6903
7012
|
"pagination": true
|
|
6904
7013
|
},
|
|
@@ -6914,7 +7023,7 @@
|
|
|
6914
7023
|
"name": "todo-task-list-id",
|
|
6915
7024
|
"key": "todoTaskListId",
|
|
6916
7025
|
"required": true,
|
|
6917
|
-
"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`.",
|
|
6918
7027
|
"aliases": [
|
|
6919
7028
|
{
|
|
6920
7029
|
"name": "id",
|
|
@@ -6967,7 +7076,7 @@
|
|
|
6967
7076
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
6968
7077
|
}
|
|
6969
7078
|
],
|
|
6970
|
-
"example": "ask-marcel list-todo-tasks --todo-task-list-id 'AAMkAGI...'",
|
|
7079
|
+
"example": "ask-marcel-office list-todo-tasks --todo-task-list-id 'AAMkAGI...'",
|
|
6971
7080
|
"responseShape": "collection of Microsoft Graph `todoTask` resources under `value[]`",
|
|
6972
7081
|
"pagination": true
|
|
6973
7082
|
},
|
|
@@ -7000,7 +7109,7 @@
|
|
|
7000
7109
|
]
|
|
7001
7110
|
}
|
|
7002
7111
|
],
|
|
7003
|
-
"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...'",
|
|
7004
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.",
|
|
7005
7114
|
"pagination": true
|
|
7006
7115
|
},
|
|
@@ -7049,7 +7158,7 @@
|
|
|
7049
7158
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7050
7159
|
}
|
|
7051
7160
|
],
|
|
7052
|
-
"example": "ask-marcel list-trending-insights",
|
|
7161
|
+
"example": "ask-marcel-office list-trending-insights",
|
|
7053
7162
|
"responseShape": "collection of Microsoft Graph `trending` resources under `value[]`",
|
|
7054
7163
|
"pagination": true
|
|
7055
7164
|
},
|
|
@@ -7110,13 +7219,13 @@
|
|
|
7110
7219
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7111
7220
|
}
|
|
7112
7221
|
],
|
|
7113
|
-
"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'",
|
|
7114
7223
|
"responseShape": "collection of Microsoft Graph `directoryObject` resources (typically `user`) under `value[]`",
|
|
7115
7224
|
"pagination": true
|
|
7116
7225
|
},
|
|
7117
7226
|
{
|
|
7118
7227
|
"name": "microsoft-search-query",
|
|
7119
|
-
"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`.)",
|
|
7120
7229
|
"category": "meta",
|
|
7121
7230
|
"graphMethod": "POST",
|
|
7122
7231
|
"graphPathTemplate": "/search/query",
|
|
@@ -7129,19 +7238,19 @@
|
|
|
7129
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."
|
|
7130
7239
|
}
|
|
7131
7240
|
],
|
|
7132
|
-
"example": "ask-marcel microsoft-search-query --query 'q3 budget'",
|
|
7241
|
+
"example": "ask-marcel-office microsoft-search-query --query 'q3 budget'",
|
|
7133
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.",
|
|
7134
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"
|
|
7135
7244
|
},
|
|
7136
7245
|
{
|
|
7137
7246
|
"name": "my-quick-context",
|
|
7138
|
-
"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.",
|
|
7139
7248
|
"category": "meta",
|
|
7140
7249
|
"graphMethod": "GET",
|
|
7141
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",
|
|
7142
7251
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/api/user-get",
|
|
7143
7252
|
"options": [],
|
|
7144
|
-
"example": "ask-marcel my-quick-context",
|
|
7253
|
+
"example": "ask-marcel-office my-quick-context",
|
|
7145
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."
|
|
7146
7255
|
},
|
|
7147
7256
|
{
|
|
@@ -7162,7 +7271,7 @@
|
|
|
7162
7271
|
}
|
|
7163
7272
|
}
|
|
7164
7273
|
],
|
|
7165
|
-
"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'",
|
|
7166
7275
|
"responseShape": "same shape as the originating endpoint — `{ ok: true, data: { value: [...] }, nextLink: \"...\" }` with the cursor at envelope level."
|
|
7167
7276
|
},
|
|
7168
7277
|
{
|
|
@@ -7199,7 +7308,7 @@
|
|
|
7199
7308
|
}
|
|
7200
7309
|
}
|
|
7201
7310
|
],
|
|
7202
|
-
"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'",
|
|
7203
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.",
|
|
7204
7313
|
"producesBytes": true
|
|
7205
7314
|
},
|
|
@@ -7218,7 +7327,7 @@
|
|
|
7218
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."
|
|
7219
7328
|
}
|
|
7220
7329
|
],
|
|
7221
|
-
"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...'",
|
|
7222
7331
|
"responseShape": "`{ eventId: string }`. `eventId` is URL-decoded and ready to pass to `get-calendar-event --event-id <id>`."
|
|
7223
7332
|
},
|
|
7224
7333
|
{
|
|
@@ -7236,8 +7345,8 @@
|
|
|
7236
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)."
|
|
7237
7346
|
}
|
|
7238
7347
|
],
|
|
7239
|
-
"example": "ask-marcel resolve-drive-share-link --url 'https://contoso.sharepoint.com/:b:/s/team/EaB1cD2eF...?e=abc'",
|
|
7240
|
-
"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."
|
|
7241
7350
|
},
|
|
7242
7351
|
{
|
|
7243
7352
|
"name": "resolve-mail-link",
|
|
@@ -7254,7 +7363,7 @@
|
|
|
7254
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."
|
|
7255
7364
|
}
|
|
7256
7365
|
],
|
|
7257
|
-
"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...'",
|
|
7258
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>`."
|
|
7259
7368
|
},
|
|
7260
7369
|
{
|
|
@@ -7272,18 +7381,18 @@
|
|
|
7272
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=...`"
|
|
7273
7382
|
}
|
|
7274
7383
|
],
|
|
7275
|
-
"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'",
|
|
7276
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."
|
|
7277
7386
|
},
|
|
7278
7387
|
{
|
|
7279
7388
|
"name": "scopes-check",
|
|
7280
|
-
"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.",
|
|
7281
7390
|
"category": "meta",
|
|
7282
7391
|
"graphMethod": "GET",
|
|
7283
7392
|
"graphPathTemplate": "(meta) cached-token introspection — no Graph endpoint",
|
|
7284
7393
|
"graphDocsUrl": "https://learn.microsoft.com/en-us/graph/permissions-reference",
|
|
7285
7394
|
"options": [],
|
|
7286
|
-
"example": "ask-marcel scopes-check",
|
|
7395
|
+
"example": "ask-marcel-office scopes-check",
|
|
7287
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`)."
|
|
7288
7397
|
},
|
|
7289
7398
|
{
|
|
@@ -7307,7 +7416,7 @@
|
|
|
7307
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."
|
|
7308
7417
|
}
|
|
7309
7418
|
],
|
|
7310
|
-
"example": "ask-marcel search-all-accessible-sites --output json",
|
|
7419
|
+
"example": "ask-marcel-office search-all-accessible-sites --output json",
|
|
7311
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`.",
|
|
7312
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"
|
|
7313
7422
|
},
|
|
@@ -7362,7 +7471,7 @@
|
|
|
7362
7471
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7363
7472
|
}
|
|
7364
7473
|
],
|
|
7365
|
-
"example": "ask-marcel search-mail-messages --query 'from:alice subject:Q3'",
|
|
7474
|
+
"example": "ask-marcel-office search-mail-messages --query 'from:alice subject:Q3'",
|
|
7366
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`.",
|
|
7367
7476
|
"pagination": true
|
|
7368
7477
|
},
|
|
@@ -7411,7 +7520,7 @@
|
|
|
7411
7520
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7412
7521
|
}
|
|
7413
7522
|
],
|
|
7414
|
-
"example": "ask-marcel search-my-documents --query 'q1 budget'",
|
|
7523
|
+
"example": "ask-marcel-office search-my-documents --query 'q1 budget'",
|
|
7415
7524
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
7416
7525
|
"pagination": true
|
|
7417
7526
|
},
|
|
@@ -7433,7 +7542,7 @@
|
|
|
7433
7542
|
"key": "id"
|
|
7434
7543
|
}
|
|
7435
7544
|
],
|
|
7436
|
-
"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."
|
|
7437
7546
|
},
|
|
7438
7547
|
{
|
|
7439
7548
|
"name": "query",
|
|
@@ -7472,7 +7581,7 @@
|
|
|
7472
7581
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7473
7582
|
}
|
|
7474
7583
|
],
|
|
7475
|
-
"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'",
|
|
7476
7585
|
"responseShape": "collection of Microsoft Graph `driveItem` resources under `value[]`",
|
|
7477
7586
|
"pagination": true
|
|
7478
7587
|
},
|
|
@@ -7527,7 +7636,7 @@
|
|
|
7527
7636
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7528
7637
|
}
|
|
7529
7638
|
],
|
|
7530
|
-
"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",
|
|
7531
7640
|
"responseShape": "collection of Microsoft Graph `onenotePage` resources under `value[]` whose title contains the substring",
|
|
7532
7641
|
"pagination": true
|
|
7533
7642
|
},
|
|
@@ -7582,7 +7691,7 @@
|
|
|
7582
7691
|
"description": "OData $expand: navigation properties to include inline (e.g. `attachments`). Increases response size; use sparingly."
|
|
7583
7692
|
}
|
|
7584
7693
|
],
|
|
7585
|
-
"example": "ask-marcel search-sharepoint-sites-by-name --query 'marketing'",
|
|
7694
|
+
"example": "ask-marcel-office search-sharepoint-sites-by-name --query 'marketing'",
|
|
7586
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.",
|
|
7587
7696
|
"pagination": true
|
|
7588
7697
|
},
|
|
@@ -7667,7 +7776,7 @@
|
|
|
7667
7776
|
}
|
|
7668
7777
|
}
|
|
7669
7778
|
],
|
|
7670
|
-
"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\"",
|
|
7671
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.",
|
|
7672
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",
|
|
7673
7782
|
"mutates": true
|