drive_docs_replace
Find and replace literal text in a Google Doc; dry-run previews changes, and real writes require a lease.
Instructions
Replace literal text in a Google Doc; use drive_docs_append to add text at the end. Mirrors omni-dev drive docs replace. Case-sensitive by default. Example: document_id, search:"draft", replace:"final", dry_run:true. occurrences is a body-only estimate excluding headers/footers/footnotes; zero still sends a real request, and occurrences_changed is authoritative. stale-revision means reread and retry through the complete engine, which may then refuse a stale lease. dry_run defaults to false. Dry-run first: previews need no lease. Real writes require an operator allow rule and a lease unless require_lease:false. Acquire with drive_lease_acquire. A lease permits repeated writes to one file until expiry. refused-lease-stale needs a fresh backup: release with omni-dev drive lease release or wait for expiry before acquiring (acquire reuses stale live tokens too). Cancellation/timeout is not rollback; inspect state before retrying, especially append. Output is complete tagged YAML; refusals/failures set is_error.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lease | No | Token from drive_lease_acquire or omni-dev drive lease acquire. Not needed for dry_run or operator require_lease:false rules; any supplied token is still validated. | |
| search | Yes | Literal text to find, e.g. draft; not a regular expression. Required. | |
| account | No | Selects a named Drive account instead of the ambient `--account`/`OMNI_DEV_DRIVE_ACCOUNT` resolution — e.g. `work`. Omit to use the resolved default account (or the legacy single-account credentials, if no named accounts are configured). Call `drive_account_list` to discover configured names. | |
| dry_run | No | Preview without mutating or requiring a lease. Default false; preview first. | |
| replace | Yes | Replacement text, e.g. final. Empty deletes matches. Required. | |
| document_id | Yes | Document id from /d/<ID>/ in a Docs URL, e.g. 1a2B3c4D. Required. | |
| ignore_case | No | Case-insensitive search. Default false (case-sensitive). |