Cowork Doc Propose Edit¶
Propose one or more quote-anchored tracked edits on a cowork doc as an open proposal. Normal consent weight, no decision authority.
MCP name: cowork_doc_propose_edit
Category: cowork
Mutates state (retry policy: manual)
Parameters¶
| Name | Type | Required | Description |
|---|---|---|---|
base_doc_sha256 |
str |
No | Doc snapshot hash the proposal was drafted against. A proposal against a stale base cannot mint or refresh anything. Defaults to the current document content when omitted. |
claim_refs |
list |
No | Optional for non-deletion edits. A list of {claim, role} where claim is a local claim id or a wb-truth URI and role is one of quote, paraphrase, summary, or instantiation, defaulting to instantiation. Accepting mints one expression per ref carrying that ref's role. A batch containing a deletion cannot carry claim refs because deleted text leaves no passage to express them. |
consumer |
str |
No | Optional document-agent consumer identity. Supply with conversation_id and generation; it must match this store and document. |
conversation_id |
str |
No | Optional real document-conversation id. Supply with consumer and generation to fence a document agent's write. |
document_id |
str |
Yes | Target cowork doc id. |
generation |
str |
No | Optional live document-agent lease generation. A stale, stopped, or revoked generation returns lease_lost without creating a proposal. |
hunks |
list |
Yes | One or more edits, each a mapping of {quote_anchor:{exact,prefix,suffix}, replacement, node_id_hint?}. Set replacement to the empty string to delete the anchored text. Missing, non-string, and whitespace-only replacements are invalid; meaningful leading and trailing whitespace on a nonempty replacement is preserved. The quote anchor is resolved by the kernel anchor resolver, never by node id. |
meta |
dict |
No | Optional metadata accepted for forward compatibility. Producer identity cannot be overridden. |
producer_call_id |
str |
No | Optional durable model call identifier. |
producer_model |
str |
Yes | Required model claim for the authoring agent. It must match a non-placeholder session-manifest model, otherwise it is durably labeled caller_asserted. |
rationale |
str |
Yes | Full reviewer-facing reason for the edit. |
store_id |
str |
Yes | Registered Truth store identity. |
tldr |
str |
Yes | One-line summary shown on the margin card. |
Details¶
Document agents supply conversation_id, consumer, and generation
together. The capability verifies that the conversation is the real binding for
this store and document, then holds that exact live lease while the proposal is
created. Other callers may omit the complete tuple. Partial or mismatched tuples
are rejected.
replacement: "" is the explicit tracked-deletion contract. It remains an edit
through proposal retrieval, review, and acceptance; replacement: null is
reserved for flags created through cowork_doc_comment.