diff --git a/.changeset/allow-unknown-fields.md b/.changeset/allow-unknown-fields.md deleted file mode 100644 index cf9db0878..000000000 --- a/.changeset/allow-unknown-fields.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@googleworkspace/cli": minor ---- - -Add `--allow-unknown-fields` to raw API methods with JSON request bodies. Explicitly -allow fields absent from Discovery recursively, including in dry runs, while -preserving validation of known fields, required fields, JSON, URLs and file paths. -Handwritten helpers retain strict validation. diff --git a/.changeset/current-clippy-baseline.md b/.changeset/current-clippy-baseline.md deleted file mode 100644 index a14e86242..000000000 --- a/.changeset/current-clippy-baseline.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@googleworkspace/cli": patch ---- - -Keep Apps Script file selection compatible with the current Clippy checks. diff --git a/.changeset/develop-release-flow.md b/.changeset/develop-release-flow.md deleted file mode 100644 index 5cc4945a0..000000000 --- a/.changeset/develop-release-flow.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@googleworkspace/cli": patch ---- - -Keep unreleased work on develop. Require a versioned develop-to-main release PR, -run Rust and companion checks before publication, and create a fork-prefixed -GitHub release at the tested merge commit. diff --git a/.changeset/docs-comment-create.md b/.changeset/docs-comment-create.md deleted file mode 100644 index b0899d14b..000000000 --- a/.changeset/docs-comment-create.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@googleworkspace/cli": minor ---- - -Add `gws docs +comment create` for creating anchored Google Docs comments -without manually using preview-only request fields. \ No newline at end of file diff --git a/.changeset/docs-read-comments.md b/.changeset/docs-read-comments.md deleted file mode 100644 index dca2acc63..000000000 --- a/.changeset/docs-read-comments.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@googleworkspace/cli": minor ---- - -Add `--include-comments` to `gws docs +read` to return comment threads and the -text referenced by each comment anchor range. \ No newline at end of file diff --git a/.changeset/docs-review-bundle.md b/.changeset/docs-review-bundle.md deleted file mode 100644 index 286e9e7f0..000000000 --- a/.changeset/docs-review-bundle.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@googleworkspace/cli": minor ---- - -Add a standalone Python companion for visual Google Docs review bundles with -native exports, safe DOCX raster extraction, local HTML, optional PDF page -previews with explicitly unverified page coverage, revision observations, -and an offline fixture workflow. Preserve nested image occurrences and -legitimate asset reuse, and keep oversized optional comments from failing -the required bundle. Verify each export's exact canonical destination against -the real CLI receipt. diff --git a/.changeset/docs-review-workflow.md b/.changeset/docs-review-workflow.md deleted file mode 100644 index eee647198..000000000 --- a/.changeset/docs-review-workflow.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@googleworkspace/cli": minor ---- - -Add a standalone Python Docs review example that plans one literal text replacement, -binds it to a source revision and tab, applies it through existing gws commands, -and verifies the result without retrying ambiguous writes. Validate structures -and text ranges across all tabs before normalization, and preserve attempted or -confirmed mutation outcomes through final output failures and interruptions. diff --git a/.changeset/docs-structured-read.md b/.changeset/docs-structured-read.md deleted file mode 100644 index 41b070876..000000000 --- a/.changeset/docs-structured-read.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@googleworkspace/cli": minor ---- - -Add `gws docs +read` to translate documents into compact structured content with -recursive tabs, headings and an outline, styled text, suggestions, nested tables, -figure metadata, and reference markers. Preserve API indices and revisions, -reject partial field masks, and support the existing formatters, sanitization, -and credential-free dry-run. diff --git a/.changeset/docs-suggest-workflow.md b/.changeset/docs-suggest-workflow.md deleted file mode 100644 index a9948d1bf..000000000 --- a/.changeset/docs-suggest-workflow.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@googleworkspace/cli": minor ---- - -Add `gws docs +suggest` for creating and managing Google Docs suggestions, -including suggested insertions, exact replacements, range deletions, and -accept, reject, or delete actions. \ No newline at end of file diff --git a/.changeset/maintained-public-fork.md b/.changeset/maintained-public-fork.md deleted file mode 100644 index 874117e7b..000000000 --- a/.changeset/maintained-public-fork.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@googleworkspace/cli": patch ---- - -Publish the integrated Docs workflow improvements in the independent ratovarius -fork with upstream attribution, source-install instructions, contribution -tracking, and credential-independent CI. diff --git a/.changeset/offline-dry-run.md b/.changeset/offline-dry-run.md deleted file mode 100644 index ca86d5669..000000000 --- a/.changeset/offline-dry-run.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@googleworkspace/cli": patch ---- - -Skip authentication for Discovery-generated API and `docs +write` dry-runs. -Validate and preview requests without accessing the keyring or reading, changing, -or deleting stored credentials and token caches. Dry-runs work offline with a -fresh cached Discovery schema; schema fetching on first use or cache expiry is -unchanged. Real requests retain their existing authentication and error handling. diff --git a/.changeset/preserve-credentials.md b/.changeset/preserve-credentials.md deleted file mode 100644 index 4b7bafe37..000000000 --- a/.changeset/preserve-credentials.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@googleworkspace/cli": patch ---- - -Preserve saved encrypted credentials and token caches when credential loading, -decryption, or keyring access fails. Report recovery guidance and stop authentication -instead of silently selecting plaintext credentials or another account through ADC. -Explicit token and credentials-file overrides and intentional logout remain unchanged. diff --git a/.changeset/rename-personal-fork.md b/.changeset/rename-personal-fork.md deleted file mode 100644 index b9954b67f..000000000 --- a/.changeset/rename-personal-fork.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@googleworkspace/cli": patch ---- - -Rename the maintained fork to ratovarius/googleworkspace-cli and update repository -links, source installation examples, package metadata, CLI help, and agent guidance. diff --git a/.changeset/scoped-file-roots.md b/.changeset/scoped-file-roots.md deleted file mode 100644 index 6e17edcc3..000000000 --- a/.changeset/scoped-file-roots.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@googleworkspace/cli": minor ---- - -Allow operators to set `GOOGLE_WORKSPACE_CLI_FILE_ROOT` to an existing directory -for `--output` and `--upload` paths while keeping CWD confinement by default. -Relative CLI paths remain CWD-relative. Reject invalid roots, parent traversal -with an explicit root, control characters, and symlink escapes, including -dangling symlinks. Directory flags retain their existing boundaries. - -Reject canonical file paths that cannot be represented as UTF-8 at the CLI -string boundary, so explicit output/upload paths cannot silently become omitted -arguments. diff --git a/.changeset/sheets-append-range.md b/.changeset/sheets-append-range.md deleted file mode 100644 index 1f6ec7b29..000000000 --- a/.changeset/sheets-append-range.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@googleworkspace/cli": minor ---- - -Add `--range` flag to `sheets +append` for targeting specific sheet tabs diff --git a/.changeset/single-upstream-pilot.md b/.changeset/single-upstream-pilot.md deleted file mode 100644 index 93c1f1938..000000000 --- a/.changeset/single-upstream-pilot.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@googleworkspace/cli": patch ---- - -Document credential preservation as the sole upstream pilot and keep further -development of the other improvements in this public fork. diff --git a/.changeset/yaml-empty-collections.md b/.changeset/yaml-empty-collections.md deleted file mode 100644 index 2ea985ea5..000000000 --- a/.changeset/yaml-empty-collections.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@googleworkspace/cli": patch ---- - -Fix YAML mapping values containing empty arrays or objects by separating their -inline collection syntax from the mapping colon. This also fixes structured -Docs reader output with empty outlines, child tabs, or style maps. diff --git a/CHANGELOG.md b/CHANGELOG.md index f332f4ecc..14464dc3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,75 @@ # @googleworkspace/cli +## 0.23.0 + +### Minor Changes + +- c13b864: Add `--allow-unknown-fields` to raw API methods with JSON request bodies. Explicitly + allow fields absent from Discovery recursively, including in dry runs, while + preserving validation of known fields, required fields, JSON, URLs and file paths. + Handwritten helpers retain strict validation. +- f81bf9f: Add `gws docs +comment create` for creating anchored Google Docs comments + without manually using preview-only request fields. +- b0c6482: Add `--include-comments` to `gws docs +read` to return comment threads and the + text referenced by each comment anchor range. +- c13b864: Add a standalone Python companion for visual Google Docs review bundles with + native exports, safe DOCX raster extraction, local HTML, optional PDF page + previews with explicitly unverified page coverage, revision observations, + and an offline fixture workflow. Preserve nested image occurrences and + legitimate asset reuse, and keep oversized optional comments from failing + the required bundle. Verify each export's exact canonical destination against + the real CLI receipt. +- c13b864: Add a standalone Python Docs review example that plans one literal text replacement, + binds it to a source revision and tab, applies it through existing gws commands, + and verifies the result without retrying ambiguous writes. Validate structures + and text ranges across all tabs before normalization, and preserve attempted or + confirmed mutation outcomes through final output failures and interruptions. +- c13b864: Add `gws docs +read` to translate documents into compact structured content with + recursive tabs, headings and an outline, styled text, suggestions, nested tables, + figure metadata, and reference markers. Preserve API indices and revisions, + reject partial field masks, and support the existing formatters, sanitization, + and credential-free dry-run. +- e6ef7a9: Add `gws docs +suggest` for creating and managing Google Docs suggestions, + including suggested insertions, exact replacements, range deletions, and + accept, reject, or delete actions. +- c13b864: Allow operators to set `GOOGLE_WORKSPACE_CLI_FILE_ROOT` to an existing directory + for `--output` and `--upload` paths while keeping CWD confinement by default. + Relative CLI paths remain CWD-relative. Reject invalid roots, parent traversal + with an explicit root, control characters, and symlink escapes, including + dangling symlinks. Directory flags retain their existing boundaries. + + Reject canonical file paths that cannot be represented as UTF-8 at the CLI + string boundary, so explicit output/upload paths cannot silently become omitted + arguments. + +- a3768d0: Add `--range` flag to `sheets +append` for targeting specific sheet tabs + +### Patch Changes + +- 5db4424: Keep Apps Script file selection compatible with the current Clippy checks. +- 05836b4: Keep unreleased work on develop. Require a versioned develop-to-main release PR, + run Rust and companion checks before publication, and create a fork-prefixed + GitHub release at the tested merge commit. +- 18410e9: Publish the integrated Docs workflow improvements in the independent ratovarius + fork with upstream attribution, source-install instructions, contribution + tracking, and credential-independent CI. +- c13b864: Skip authentication for Discovery-generated API and `docs +write` dry-runs. + Validate and preview requests without accessing the keyring or reading, changing, + or deleting stored credentials and token caches. Dry-runs work offline with a + fresh cached Discovery schema; schema fetching on first use or cache expiry is + unchanged. Real requests retain their existing authentication and error handling. +- c13b864: Preserve saved encrypted credentials and token caches when credential loading, + decryption, or keyring access fails. Report recovery guidance and stop authentication + instead of silently selecting plaintext credentials or another account through ADC. + Explicit token and credentials-file overrides and intentional logout remain unchanged. +- 05fb6c2: Rename the maintained fork to ratovarius/googleworkspace-cli and update repository + links, source installation examples, package metadata, CLI help, and agent guidance. +- 465b98f: Document credential preservation as the sole upstream pilot and keep further + development of the other improvements in this public fork. +- c13b864: Fix YAML mapping values containing empty arrays or objects by separating their + inline collection syntax from the mapping colon. This also fixes structured + Docs reader output with empty outlines, child tabs, or style maps. + ## 0.22.5 ### Patch Changes diff --git a/Cargo.lock b/Cargo.lock index b7e7baecd..2b3d3f030 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,7 +20,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -39,9 +39,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" dependencies = [ "memchr", ] @@ -54,9 +54,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android_system_properties" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" dependencies = [ "libc", ] @@ -113,19 +113,28 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.102" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] @@ -145,9 +154,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "base64" @@ -178,9 +187,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" [[package]] name = "block-buffer" @@ -193,15 +202,21 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "by_address" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" [[package]] name = "bytemuck" -version = "1.25.0" +version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" [[package]] name = "byteorder" @@ -211,9 +226,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.11.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "castaway" @@ -226,9 +241,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.58" +version = "1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" +checksum = "54413ede23c2daf518f35156dfde027feb2374004d63bd497f983c8db9c0e313" dependencies = [ "find-msvc-tools", "shlex", @@ -236,21 +251,32 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" [[package]] name = "cfg_aliases" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "chacha20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "rand_core 0.10.1", +] [[package]] name = "chrono" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "js-sys", @@ -281,9 +307,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.0" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" +checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946" dependencies = [ "clap_builder", "clap_derive", @@ -291,9 +317,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.6.0" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d" dependencies = [ "anstream", "anstyle", @@ -303,21 +329,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.0" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" +checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] name = "clap_lex" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" [[package]] name = "colorchoice" @@ -327,9 +353,9 @@ checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "compact_str" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" +checksum = "9dfdd1c2274d9aa354115b09dc9a901d6c5576818cdf70d14cae2bdb47df00ab" dependencies = [ "castaway", "cfg-if", @@ -383,20 +409,35 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + [[package]] name = "crossbeam-channel" -version = "0.5.15" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +checksum = "98b0cc327b5bc766e7fda9c9260cc0fa81b43a8e240440422dff70788e3f9ef1" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "crossterm" @@ -404,7 +445,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.2", "crossterm_winapi", "derive_more", "document-features", @@ -467,12 +508,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" dependencies = [ - "darling_core 0.23.0", - "darling_macro 0.23.0", + "darling_core 0.24.1", + "darling_macro 0.24.1", ] [[package]] @@ -486,20 +527,20 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "darling_core" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" dependencies = [ "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] @@ -510,18 +551,18 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "darling_macro" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" dependencies = [ - "darling_core 0.23.0", + "darling_core 0.24.1", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] @@ -536,7 +577,6 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ - "powerfmt", "serde_core", ] @@ -558,7 +598,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -568,7 +608,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -590,7 +630,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -626,13 +666,13 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] @@ -652,9 +692,9 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "either" -version = "1.15.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "equivalent" @@ -693,9 +733,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "filedescriptor" @@ -710,15 +750,15 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "ef25905e51abafe4dcea6c15fec58c57b601cdbd0ee53d22ea1d3016c587d39b" [[package]] name = "finl_unicode" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5" +checksum = "80bb028c8b4148c9ee0cca68fcd9add6044e81d3619f48577ddf13a263d047a2" [[package]] name = "fixedbitset" @@ -732,12 +772,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - [[package]] name = "foldhash" version = "0.2.0" @@ -755,24 +789,24 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-executor" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" dependencies = [ "futures-core", "futures-task", @@ -781,38 +815,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" [[package]] name = "futures-macro" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] name = "futures-sink" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-core", "futures-io", @@ -864,24 +898,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi 5.3.0", "wasip2", - "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi 6.0.0", - "wasip2", - "wasip3", + "rand_core 0.10.1", + "wasm-bindgen", ] [[package]] @@ -896,7 +929,7 @@ dependencies = [ [[package]] name = "google-workspace" -version = "0.22.5" +version = "0.23.0" dependencies = [ "anyhow", "percent-encoding", @@ -905,14 +938,14 @@ dependencies = [ "serde_json", "serial_test", "tempfile", - "thiserror 2.0.18", + "thiserror 2.0.20", "tokio", "tracing", ] [[package]] name = "google-workspace-cli" -version = "0.22.5" +version = "0.23.0" dependencies = [ "aes-gcm", "anyhow", @@ -934,7 +967,7 @@ dependencies = [ "mail-builder", "mime_guess2", "percent-encoding", - "rand 0.8.5", + "rand 0.8.8", "ratatui", "reqwest", "serde", @@ -942,7 +975,7 @@ dependencies = [ "serial_test", "sha2", "tempfile", - "thiserror 2.0.18", + "thiserror 2.0.20", "tokio", "tokio-util", "toml", @@ -956,9 +989,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.13" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" +checksum = "ef8e5e5a340588f4452631496976cf8636d4a7ecf600239fdc27615d2530bc16" dependencies = [ "atomic-waker", "bytes", @@ -975,22 +1008,24 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ - "foldhash 0.1.5", + "allocator-api2", + "equivalent", + "foldhash", ] [[package]] name = "hashbrown" -version = "0.16.1" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.2.0", + "foldhash", ] [[package]] @@ -1018,9 +1053,9 @@ dependencies = [ [[package]] name = "http" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" dependencies = [ "bytes", "itoa", @@ -1028,9 +1063,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" dependencies = [ "bytes", "http", @@ -1038,9 +1073,9 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +checksum = "23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c" dependencies = [ "bytes", "futures-core", @@ -1063,9 +1098,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.9.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" +checksum = "27b501faa50e7a26c3d3560ca625132f4078a17771f4810baf70475ae48cbe43" dependencies = [ "atomic-waker", "bytes", @@ -1085,16 +1120,15 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ "http", "hyper", "hyper-util", "rustls", "rustls-native-certs", - "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", @@ -1149,12 +1183,13 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" dependencies = [ "displaydoc", "potential_utf", + "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -1162,9 +1197,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" dependencies = [ "displaydoc", "litemap", @@ -1175,9 +1210,9 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -1189,16 +1224,17 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" [[package]] name = "icu_properties" -version = "2.1.2" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" dependencies = [ + "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", @@ -1209,15 +1245,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.1.2" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" [[package]] name = "icu_provider" -version = "2.1.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73" dependencies = [ "displaydoc", "icu_locale_core", @@ -1228,12 +1264,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "ident_case" version = "1.0.1" @@ -1253,9 +1283,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" dependencies = [ "icu_normalizer", "icu_properties", @@ -1263,14 +1293,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" dependencies = [ "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", + "hashbrown 0.17.1", ] [[package]] @@ -1293,32 +1321,22 @@ dependencies = [ [[package]] name = "instability" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb2d60ef19920a3a9193c3e371f726ec1dafc045dac788d0fb3704272458971" +checksum = "2bf84e73fa6f27f299dec58e13223cf70db80da872eb921d4f6138342a0eabc8" dependencies = [ - "darling 0.23.0", + "darling 0.24.1", "indoc", "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] name = "ipnet" -version = "2.12.0" +version = "2.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" - -[[package]] -name = "iri-string" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" -dependencies = [ - "memchr", - "serde", -] +checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0" [[package]] name = "is_terminal_polyfill" @@ -1343,13 +1361,12 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.93" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "797146bb2677299a1eb6b7b50a890f4c361b29ef967addf5b2fa45dae1bb6d7d" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" dependencies = [ "cfg-if", "futures-util", - "once_cell", "wasm-bindgen", ] @@ -1361,7 +1378,7 @@ checksum = "bde5057d6143cc94e861d90f591b9303d6716c6b9602309150bd068853c10899" dependencies = [ "hashbrown 0.16.1", "portable-atomic", - "thiserror 2.0.18", + "thiserror 2.0.20", ] [[package]] @@ -1391,33 +1408,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] -name = "leb128fmt" -version = "0.1.0" +name = "libc" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] -name = "libc" -version = "0.2.183" +name = "libm" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.15" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" +checksum = "6480ccc157a1389bb2e4891b24751b0f798ba640d22386f23143fbcc89da195a" dependencies = [ "libc", ] [[package]] name = "line-clipping" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" +checksum = "e752191d037c44ad111a8caa762921926658402f01cc1253f7bef2020ece4f5e" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.2", ] [[package]] @@ -1428,9 +1445,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" [[package]] name = "litrs" @@ -1449,24 +1466,24 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "lru" -version = "0.16.3" +version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "ff9840bcc50b71349309900da0ce7279aa336ae71d73250b07998932c7d97c25" dependencies = [ - "hashbrown 0.16.1", + "hashbrown 0.17.1", ] [[package]] name = "lru-slab" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f" [[package]] name = "mac_address" @@ -1498,9 +1515,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "memmem" @@ -1543,9 +1560,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mio" -version = "1.2.0" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8" dependencies = [ "libc", "log", @@ -1559,7 +1576,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.2", "cfg-if", "cfg_aliases", "libc", @@ -1587,9 +1604,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-derive" @@ -1599,7 +1616,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -1659,6 +1676,39 @@ dependencies = [ "num-traits", ] +[[package]] +name = "palette" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddeed8580d347d2abf3dcf06a5f0b3dc020258338526b277847cd4248a70fc64" +dependencies = [ + "approx", + "libm", + "palette_derive", + "palette_math", +] + +[[package]] +name = "palette_derive" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88537020289b719d81be994ccf1bbf4990f477e2f69ee52fe3e45f43a02e56be" +dependencies = [ + "by_address", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "palette_math" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e6eb142958d64335fb0e345c5b9ead2ecd6fc438c307e9d7d3c4fd428dbaf12" +dependencies = [ + "libm", +] + [[package]] name = "parking_lot" version = "0.12.5" @@ -1690,9 +1740,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.6" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" +checksum = "6d45aeb61b4bf818e12d4205f2466f8c4748f85f4fce0146d1c03d69d753f0ad" dependencies = [ "memchr", "ucd-trie", @@ -1700,9 +1750,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.6" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77" +checksum = "89cc5a242e25ed4e7704d0be240f2cfbe20a8c27e7e252d94835be93d92dc39f" dependencies = [ "pest", "pest_generator", @@ -1710,25 +1760,24 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.6" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f" +checksum = "7abf21475cc3820fe4b2ca2dc2142902f67a02189f3b5b3a229f4febc01a43e5" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "pest_meta" -version = "2.8.6" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" +checksum = "adba4db388f687393c18c51348d44a41d870ca9df71a2c98172ea3035dc6936e" dependencies = [ "pest", - "sha2", ] [[package]] @@ -1767,7 +1816,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared 0.11.3", - "rand 0.8.5", + "rand 0.8.8", ] [[package]] @@ -1780,7 +1829,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "unicase", ] @@ -1816,22 +1865,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" [[package]] name = "potential_utf" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" dependencies = [ "zerovec", ] @@ -1851,30 +1900,20 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.117", -] - [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] [[package]] name = "quinn" -version = "0.11.9" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "4051e23e9185c255a7e33ef59cdbca87a22d359052eecd22fc6b901fb37d9d11" dependencies = [ "bytes", "cfg_aliases", @@ -1884,7 +1923,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 2.0.18", + "thiserror 2.0.20", "tokio", "tracing", "web-time", @@ -1892,20 +1931,21 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.14" +version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +checksum = "a9746dbde176634f4f2f1faf2404e30a31b2bc1e9cafb5329c95d8177a18c9fc" dependencies = [ "bytes", - "getrandom 0.3.4", + "getrandom 0.4.3", "lru-slab", - "rand 0.9.2", + "rand 0.10.2", + "rand_pcg", "ring", "rustc-hash", "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.18", + "thiserror 2.0.20", "tinyvec", "tracing", "web-time", @@ -1913,23 +1953,23 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694" dependencies = [ "cfg_aliases", "libc", "once_cell", "socket2", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "quote" -version = "1.0.45" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] @@ -1948,23 +1988,24 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" dependencies = [ "libc", - "rand_chacha 0.3.1", + "rand_chacha", "rand_core 0.6.4", ] [[package]] name = "rand" -version = "0.9.2" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", + "chacha20", + "getrandom 0.4.3", + "rand_core 0.10.1", ] [[package]] @@ -1977,16 +2018,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.5", -] - [[package]] name = "rand_core" version = "0.6.4" @@ -1998,42 +2029,52 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.5" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_pcg" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" dependencies = [ - "getrandom 0.3.4", + "rand_core 0.10.1", ] [[package]] name = "ratatui" -version = "0.30.0" +version = "0.30.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc" +checksum = "3274ba0a2c5e1bcad2a2005d20f4dc59dad26b2eb0940fb094500dba4099d57d" dependencies = [ "instability", "ratatui-core", "ratatui-crossterm", "ratatui-macros", + "ratatui-termina", "ratatui-termwiz", "ratatui-widgets", + "serde", ] [[package]] name = "ratatui-core" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293" +checksum = "cbb175c433c8e28a809d1f5773a2ae96e68c0ce40db865cbab1020bf33ae479c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.2", "compact_str", - "hashbrown 0.16.1", - "indoc", + "critical-section", + "hashbrown 0.17.1", "itertools", "kasuari", "lru", + "palette", + "serde", "strum", - "thiserror 2.0.18", + "thiserror 2.0.20", "unicode-segmentation", "unicode-truncate", "unicode-width", @@ -2041,9 +2082,9 @@ dependencies = [ [[package]] name = "ratatui-crossterm" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "577c9b9f652b4c121fb25c6a391dd06406d3b092ba68827e6d2f09550edc54b3" +checksum = "567584a3b0e6a8203c23de40b4861497266725eb5363dbfd18a1edd603cca9f0" dependencies = [ "cfg-if", "crossterm", @@ -2053,19 +2094,30 @@ dependencies = [ [[package]] name = "ratatui-macros" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f1342a13e83e4bb9d0b793d0ea762be633f9582048c892ae9041ef39c936f4" +checksum = "ed7dc68daa7498a43e4d68e0eb078427e10c38fbcfbb1e42d955f1fa2140d814" dependencies = [ "ratatui-core", "ratatui-widgets", ] [[package]] -name = "ratatui-termwiz" +name = "ratatui-termina" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f76fe0bd0ed4295f0321b1676732e2454024c15a35d01904ddb315afd3d545c" +checksum = "c0bf912d9e66f057a759d92e386a280ea886b352ab757d6ac4d653c7ed2c43c2" +dependencies = [ + "instability", + "ratatui-core", + "termina", +] + +[[package]] +name = "ratatui-termwiz" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf03e0380b7744054d6cb74224fe3adf062a029754933f575ca1e3b4c2ce977" dependencies = [ "ratatui-core", "termwiz", @@ -2073,17 +2125,18 @@ dependencies = [ [[package]] name = "ratatui-widgets" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db" +checksum = "66e3d19bcc9130ca376277d93b60767ff121ace3be06f5f95f81dd68956407d1" dependencies = [ - "bitflags 2.11.0", - "hashbrown 0.16.1", + "bitflags 2.13.2", + "hashbrown 0.17.1", "indoc", "instability", "itertools", "line-clipping", "ratatui-core", + "serde", "strum", "time", "unicode-segmentation", @@ -2096,7 +2149,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.2", ] [[package]] @@ -2112,9 +2165,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", @@ -2124,9 +2177,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -2135,9 +2188,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "reqwest" @@ -2196,9 +2249,9 @@ dependencies = [ [[package]] name = "rustc-hash" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" [[package]] name = "rustc_version" @@ -2211,11 +2264,11 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.2", "errno", "libc", "linux-raw-sys", @@ -2224,9 +2277,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.37" +version = "0.23.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634" dependencies = [ "once_cell", "ring", @@ -2238,9 +2291,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" +checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" dependencies = [ "openssl-probe", "rustls-pki-types", @@ -2250,9 +2303,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" dependencies = [ "web-time", "zeroize", @@ -2260,9 +2313,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.10" +version = "0.103.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" +checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2" dependencies = [ "ring", "rustls-pki-types", @@ -2271,9 +2324,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "ryu" @@ -2281,15 +2334,6 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" -[[package]] -name = "scc" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" -dependencies = [ - "sdd", -] - [[package]] name = "schannel" version = "0.1.29" @@ -2305,12 +2349,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sdd" -version = "3.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" - [[package]] name = "seahash" version = "4.1.0" @@ -2323,7 +2361,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.2", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -2336,7 +2374,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.2", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -2355,15 +2393,15 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -2371,29 +2409,29 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ "itoa", "memchr", @@ -2425,28 +2463,27 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "911bd979bf1070a3f3aa7b691a3b3e9968f339ceeec89e08c280a8a22207a32f" +checksum = "699f4197115b8a7e7ff19c9a315a4bd6fffec26cc4626ef45ecaea389e081c6d" dependencies = [ "futures-executor", "futures-util", "log", "once_cell", "parking_lot", - "scc", "serial_test_derive", ] [[package]] name = "serial_test_derive" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a7d91949b85b0d2fb687445e448b40d322b6b3e4af6b44a29b21d9a5f33e6d9" +checksum = "94e153fc76e1c6a068703d6d29c508a0b15c061c4b7e43da59cc097bc342673c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -2462,7 +2499,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -2477,9 +2514,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signal-hook" @@ -2514,9 +2551,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" [[package]] name = "slab" @@ -2526,15 +2563,15 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.15.1" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" [[package]] name = "socket2" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" dependencies = [ "libc", "windows-sys 0.61.2", @@ -2560,23 +2597,23 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.27.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.27.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -2585,6 +2622,12 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "symlink" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" + [[package]] name = "syn" version = "1.0.109" @@ -2598,9 +2641,20 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.117" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" dependencies = [ "proc-macro2", "quote", @@ -2618,13 +2672,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.2" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] @@ -2634,12 +2688,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.2", + "getrandom 0.4.3", "once_cell", "rustix", "windows-sys 0.61.2", ] +[[package]] +name = "termina" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9048a889effe34a5cddee0af7f53285198b16dca3be510858d38dfdb3e62a04e" +dependencies = [ + "bitflags 2.13.2", + "parking_lot", + "rustix", + "signal-hook", + "windows-sys 0.61.2", +] + [[package]] name = "terminfo" version = "0.9.0" @@ -2669,7 +2736,7 @@ checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" dependencies = [ "anyhow", "base64", - "bitflags 2.11.0", + "bitflags 2.13.2", "fancy-regex", "filedescriptor", "finl_unicode", @@ -2714,11 +2781,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.18" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ - "thiserror-impl 2.0.18", + "thiserror-impl 2.0.20", ] [[package]] @@ -2729,37 +2796,36 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "thiserror-impl" -version = "2.0.18" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" dependencies = [ "cfg-if", ] [[package]] name = "time" -version = "0.3.47" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" dependencies = [ "deranged", - "itoa", "libc", "num-conv", "num_threads", @@ -2771,15 +2837,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.27" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" dependencies = [ "num-conv", "time-core", @@ -2787,9 +2853,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" dependencies = [ "displaydoc", "zerovec", @@ -2797,24 +2863,15 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" [[package]] name = "tokio" -version = "1.50.0" +version = "1.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" dependencies = [ "bytes", "libc", @@ -2829,20 +2886,20 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] name = "tokio-rustls" -version = "0.26.4" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +checksum = "b0c85f2c3ef0b1cd58b36682f4b17aaa995f0e5db534d85692b4903abce21f67" dependencies = [ "rustls", "tokio", @@ -2850,13 +2907,14 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" dependencies = [ "bytes", "futures-core", "futures-sink", + "libc", "pin-project-lite", "tokio", ] @@ -2919,20 +2977,20 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.2", "bytes", "futures-util", "http", "http-body", - "iri-string", "pin-project-lite", "tower", "tower-layer", "tower-service", + "url", ] [[package]] @@ -2960,12 +3018,13 @@ dependencies = [ [[package]] name = "tracing-appender" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786d480bce6247ab75f005b14ae1624ad978d3029d9113f0a22fa1ac773faeaf" +checksum = "050686193eb999b4bb3bc2acfa891a13da00f79734704c4b8b4ef1a10b368a3c" dependencies = [ "crossbeam-channel", - "thiserror 2.0.18", + "symlink", + "thiserror 2.0.20", "time", "tracing-subscriber", ] @@ -2978,7 +3037,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -3041,9 +3100,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "ucd-trie" @@ -3059,15 +3118,15 @@ checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" [[package]] name = "unicode-segmentation" -version = "1.13.2" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" [[package]] name = "unicode-truncate" @@ -3086,12 +3145,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "universal-hash" version = "0.5.1" @@ -3134,12 +3187,12 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.23.0" +version = "1.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" dependencies = [ "atomic", - "getrandom 0.4.2", + "getrandom 0.4.3", "js-sys", "sha1_smol", "wasm-bindgen", @@ -3183,27 +3236,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.116" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dc0882f7b5bb01ae8c5215a1230832694481c1a4be062fd410e12ea3da5b631" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" dependencies = [ "cfg-if", "once_cell", @@ -3214,9 +3258,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.66" +version = "0.4.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19280959e2844181895ef62f065c63e0ca07ece4771b53d89bfdb967d97cbf05" +checksum = "6ef4c5d3d2cdf5c54f4231181768f5510842e350db025faf1f7163b1030ed928" dependencies = [ "js-sys", "wasm-bindgen", @@ -3224,9 +3268,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.116" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75973d3066e01d035dbedaad2864c398df42f8dd7b1ea057c35b8407c015b537" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3234,48 +3278,26 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.116" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91af5e4be765819e0bcfee7322c14374dc821e35e72fa663a830bbc7dc199eac" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.116" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9bf0406a78f02f336bf1e451799cca198e8acde4ffa278f0fb20487b150a633" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - [[package]] name = "wasm-streams" version = "0.4.2" @@ -3289,23 +3311,11 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags 2.11.0", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - [[package]] name = "web-sys" -version = "0.3.93" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749466a37ee189057f54748b200186b59a03417a117267baf3fd89cecc9fb837" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" dependencies = [ "js-sys", "wasm-bindgen", @@ -3436,7 +3446,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -3447,7 +3457,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -3707,103 +3717,21 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.51.0" +version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn 2.0.117", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.117", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.11.0", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "writeable" -version = "0.6.2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "yoke" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -3812,13 +3740,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "33811428bee40dbceb6d545e95754741d17a6aef9a4849f0fd62e2ba4f412a78" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", "synstructure", ] @@ -3841,7 +3769,7 @@ dependencies = [ "seahash", "serde", "serde_json", - "thiserror 2.0.18", + "thiserror 2.0.20", "time", "tokio", "url", @@ -3849,70 +3777,70 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "zerotrie" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" dependencies = [ "displaydoc", "yoke", @@ -3921,9 +3849,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.5" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8" dependencies = [ "yoke", "zerofrom", @@ -3932,17 +3860,17 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.6", ] [[package]] name = "zmij" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/FORK.md b/FORK.md index cf0660b87..848a484ed 100644 --- a/FORK.md +++ b/FORK.md @@ -73,7 +73,7 @@ from `main` without rewriting history. Install this fork from source using the [README](README.md#installation). The upstream npm, crates.io, Homebrew, and binary releases do not include -fork-only changes. Package names and version `0.22.5` currently retain their +fork-only changes. Package names and version `0.23.0` currently retain their upstream values for source compatibility; identify a fork build by its Git commit. The inherited `npm/` downloader remains an upstream distribution tool, not an installer for this fork. diff --git a/README.md b/README.md index c0058383d..ed9e62c13 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ server-side validation. This flag grants no additional access. ### Docs suggestions -On `develop`, `gws docs +suggest` provides a guided workflow for Google Docs +`gws docs +suggest` provides a guided workflow for Google Docs suggestions. It can insert text, replace one exact text run, propose a range deletion, list the structured document with suggestion context, and accept, reject, or delete an existing suggestion: @@ -194,9 +194,11 @@ gws docs +comment create \ --end-index 20 ``` -The helper validates UTF-16 ranges and applies the preview-field opt-in -internally, so `--allow-unknown-fields` is not required. The request still -requires edit access and Google Workspace Developer Preview availability. +The helper validates that the indexes are non-negative and ordered, then leaves +document-boundary and UTF-16 boundary validation to Google. It applies the +preview-field opt-in internally, so `--allow-unknown-fields` is not required. +The request still requires edit access and Google Workspace Developer Preview +availability. ```bash # Preview a suggested insertion (Docs Developer Preview). diff --git a/crates/google-workspace-cli/Cargo.toml b/crates/google-workspace-cli/Cargo.toml index 3e5603ce4..653834e2a 100644 --- a/crates/google-workspace-cli/Cargo.toml +++ b/crates/google-workspace-cli/Cargo.toml @@ -14,7 +14,7 @@ [package] name = "google-workspace-cli" -version = "0.22.5" +version = "0.23.0" edition = "2021" description = "Google Workspace CLI — dynamic command surface from Discovery Service" license = "Apache-2.0" @@ -30,7 +30,7 @@ name = "gws" path = "src/main.rs" [dependencies] -google-workspace = { version = "0.22.5", path = "../google-workspace" } +google-workspace = { version = "0.23.0", path = "../google-workspace" } tempfile = "3" aes-gcm = "0.10" anyhow = "1" diff --git a/crates/google-workspace-cli/src/helpers/docs/comment.rs b/crates/google-workspace-cli/src/helpers/docs/comment.rs index 5f605803e..9040ef006 100644 --- a/crates/google-workspace-cli/src/helpers/docs/comment.rs +++ b/crates/google-workspace-cli/src/helpers/docs/comment.rs @@ -61,7 +61,7 @@ pub(super) async fn handle( let params = document_params(action_matches)?; let body = build_comment_create_body(action_matches)?; let dry_run = action_matches.get_flag("dry-run"); - let scopes: Vec<&str> = method.scopes.iter().map(String::as_str).collect(); + let scopes: Vec<&str> = crate::select_scope(&method.scopes).into_iter().collect(); let token = if dry_run { None } else { diff --git a/crates/google-workspace-cli/src/helpers/gmail/mod.rs b/crates/google-workspace-cli/src/helpers/gmail/mod.rs index 27de3eb9c..713e0ab45 100644 --- a/crates/google-workspace-cli/src/helpers/gmail/mod.rs +++ b/crates/google-workspace-cli/src/helpers/gmail/mod.rs @@ -1319,7 +1319,7 @@ pub(super) fn parse_attachments(matches: &ArgMatches) -> Result, let mut total_bytes: u64 = 0; for path in paths { - let canonical = crate::validate::validate_safe_file_path(path, "--attach")?; + let canonical = crate::validate::validate_safe_local_file_path(path, "--attach")?; let metadata = std::fs::metadata(&canonical) .map_err(|e| GwsError::Validation(format!("Cannot read --attach '{path}': {e}")))?; @@ -3166,6 +3166,32 @@ mod tests { assert_eq!(attachments[0].data, b"hello world"); } + #[test] + #[serial_test::serial] + fn test_parse_attachments_ignores_configured_file_root() { + let _root = DefaultFileRoot::unset(); + use std::io::Write; + let cwd = std::env::current_dir().unwrap().canonicalize().unwrap(); + let local_dir = tempfile::tempdir_in(&cwd).unwrap(); + let local_file = local_dir.path().join("local.txt"); + std::fs::write(&local_file, b"local").unwrap(); + + let external_dir = tempfile::tempdir().unwrap(); + let external_file = external_dir.path().join("external.txt"); + let mut file = std::fs::File::create(&external_file).unwrap(); + file.write_all(b"external").unwrap(); + drop(file); + std::env::set_var("GOOGLE_WORKSPACE_CLI_FILE_ROOT", external_dir.path()); + + let local_matches = make_attach_matches(&["test", "-a", local_file.to_str().unwrap()]); + assert!(parse_attachments(&local_matches).is_ok()); + + let external_matches = + make_attach_matches(&["test", "-a", external_file.to_str().unwrap()]); + let err = parse_attachments(&external_matches).unwrap_err(); + assert!(err.to_string().contains("outside the current directory")); + } + #[test] #[serial_test::serial] fn test_parse_attachments_nonexistent_file() { diff --git a/crates/google-workspace/Cargo.toml b/crates/google-workspace/Cargo.toml index d1b5b6fd9..acd0856e8 100644 --- a/crates/google-workspace/Cargo.toml +++ b/crates/google-workspace/Cargo.toml @@ -14,7 +14,7 @@ [package] name = "google-workspace" -version = "0.22.5" +version = "0.23.0" edition = "2021" description = "Google Workspace API client — Discovery Document types, service registry, and HTTP utilities" license = "Apache-2.0" diff --git a/crates/google-workspace/src/validate.rs b/crates/google-workspace/src/validate.rs index a951cae56..c20dc0169 100644 --- a/crates/google-workspace/src/validate.rs +++ b/crates/google-workspace/src/validate.rs @@ -188,6 +188,15 @@ pub fn validate_safe_file_path(path_str: &str, flag_name: &str) -> Result Result { + let cwd = std::env::current_dir() + .map_err(|e| GwsError::Validation(format!("Failed to determine current directory: {e}")))?; + validate_file_path_with_root(path_str, flag_name, &cwd, None) +} + /// Explicit policy keeps filesystem validation independent of process-global env. fn validate_file_path_with_root( path_str: &str, diff --git a/docs/skills.md b/docs/skills.md index 96fcae2eb..2214e1c04 100644 --- a/docs/skills.md +++ b/docs/skills.md @@ -46,6 +46,9 @@ Shortcut commands for common operations. | [gws-gmail-watch](../skills/gws-gmail-watch/SKILL.md) | Gmail: Watch for new emails and stream them as NDJSON. | | [gws-calendar-insert](../skills/gws-calendar-insert/SKILL.md) | Google Calendar: Create a new event. | | [gws-calendar-agenda](../skills/gws-calendar-agenda/SKILL.md) | Google Calendar: Show upcoming events across all calendars. | +| [gws-docs-read](../skills/gws-docs-read/SKILL.md) | Google Docs: Read a document as compact structured content. | +| [gws-docs-suggest](../skills/gws-docs-suggest/SKILL.md) | Google Docs: Create and manage Docs suggestions. | +| [gws-docs-comment](../skills/gws-docs-comment/SKILL.md) | Google Docs: Create a comment anchored to document text. | | [gws-docs-write](../skills/gws-docs-write/SKILL.md) | Google Docs: Append text to a document. | | [gws-chat-send](../skills/gws-chat-send/SKILL.md) | Google Chat: Send a message to a space. | | [gws-events-subscribe](../skills/gws-events-subscribe/SKILL.md) | Google Workspace Events: Subscribe to Workspace events and stream them as NDJSON. | diff --git a/npm/package.json b/npm/package.json index 46293ffae..34ef52eda 100644 --- a/npm/package.json +++ b/npm/package.json @@ -1,7 +1,7 @@ { "name": "@googleworkspace/cli", "description": "Google Workspace CLI — dynamic command surface from Discovery Service", - "version": "0.22.5", + "version": "0.23.0", "license": "Apache-2.0", "author": "Justin Poehnelt", "repository": { diff --git a/package.json b/package.json index 70d27556c..391844134 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "@googleworkspace/cli", - "version": "0.22.5", + "version": "0.23.0", "private": true, - "description": "Google Workspace CLI \u2014 dynamic command surface from Discovery Service", + "description": "Google Workspace CLI — dynamic command surface from Discovery Service", "license": "Apache-2.0", "repository": { "type": "git", @@ -51,7 +51,7 @@ "rust" ], "devDependencies": { - "@changesets/cli": "^2.29.8", - "lefthook": "^2.1.2" + "@changesets/cli": "^2.31.1", + "lefthook": "^2.1.14" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aa0f0290f..3f54666b0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,42 +9,42 @@ importers: .: devDependencies: '@changesets/cli': - specifier: ^2.29.8 - version: 2.29.8 + specifier: ^2.31.1 + version: 2.31.1 lefthook: - specifier: ^2.1.2 - version: 2.1.2 + specifier: ^2.1.14 + version: 2.1.14 packages: - '@babel/runtime@7.28.6': - resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} - '@changesets/apply-release-plan@7.0.14': - resolution: {integrity: sha512-ddBvf9PHdy2YY0OUiEl3TV78mH9sckndJR14QAt87KLEbIov81XO0q0QAmvooBxXlqRRP8I9B7XOzZwQG7JkWA==} + '@changesets/apply-release-plan@7.1.1': + resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} - '@changesets/assemble-release-plan@6.0.9': - resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} + '@changesets/assemble-release-plan@6.0.10': + resolution: {integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==} '@changesets/changelog-git@0.2.1': resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} - '@changesets/cli@2.29.8': - resolution: {integrity: sha512-1weuGZpP63YWUYjay/E84qqwcnt5yJMM0tep10Up7Q5cS/DGe2IZ0Uj3HNMxGhCINZuR7aO9WBMdKnPit5ZDPA==} + '@changesets/cli@2.31.1': + resolution: {integrity: sha512-uO05WTcRBwuVOJVSW8Cmpqw6q0WDL53ajGCMyszutvOe5toOnunbpM4jZzf+qxBOz7i0AzopZ8diBuewjmF40w==} hasBin: true - '@changesets/config@3.1.2': - resolution: {integrity: sha512-CYiRhA4bWKemdYi/uwImjPxqWNpqGPNbEBdX1BdONALFIDK7MCUj6FPkzD+z9gJcvDFUQJn9aDVf4UG7OT6Kog==} + '@changesets/config@3.1.4': + resolution: {integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - '@changesets/get-dependents-graph@2.1.3': - resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} + '@changesets/get-dependents-graph@2.1.4': + resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==} - '@changesets/get-release-plan@4.0.14': - resolution: {integrity: sha512-yjZMHpUHgl4Xl5gRlolVuxDkm4HgSJqT93Ri1Uz8kGrQb+5iJ8dkXJ20M2j/Y4iV5QzS2c5SeTxVSKX+2eMI0g==} + '@changesets/get-release-plan@4.0.16': + resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -55,14 +55,14 @@ packages: '@changesets/logger@0.1.1': resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - '@changesets/parse@0.4.2': - resolution: {integrity: sha512-Uo5MC5mfg4OM0jU3up66fmSn6/NE9INK+8/Vn/7sMVcdWg46zfbvvUSjD9EMonVqPi9fbrJH9SXHn48Tr1f2yA==} + '@changesets/parse@0.4.3': + resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==} '@changesets/pre@2.0.2': resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - '@changesets/read@0.6.6': - resolution: {integrity: sha512-P5QaN9hJSQQKJShzzpBT13FzOSPyHbqdoIBUd2DJdgvnECCyO6LmAOWSV+O8se2TaZJVwSXjL+v9yhb+a9JeJg==} + '@changesets/read@0.6.7': + resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==} '@changesets/should-skip-package@0.1.2': resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} @@ -132,12 +132,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - chardet@2.1.1: - resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + chardet@2.2.0: + resolution: {integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==} cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} @@ -167,8 +163,8 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + fastq@1.20.3: + resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} @@ -197,12 +193,12 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - human-id@4.1.3: - resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} + human-id@4.2.1: + resolution: {integrity: sha512-zPGsiS+dWoTZtZ4AtpA9Y+BdSFSNWvnouNlWNoUFyAM6xHOHmdCvqO3k8AIbdamCOv4gUFUVNPf6rJFfc4UiJw==} hasBin: true - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} engines: {node: '>=0.10.0'} ignore@5.3.2: @@ -232,69 +228,69 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + js-yaml@3.15.2: + resolution: {integrity: sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==} hasBin: true - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + js-yaml@4.3.2: + resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==} hasBin: true jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - lefthook-darwin-arm64@2.1.2: - resolution: {integrity: sha512-AgHu93YuJtj1l9bcKlCbo4Tg8N8xFl9iD6BjXCGaGMu46LSjFiXbJFlkUdpgrL8fIbwoCjJi5FNp3POpqs4Wdw==} + lefthook-darwin-arm64@2.1.14: + resolution: {integrity: sha512-VMUAqY81+8ph7Mc0iROd3JWqj2sOuK7SYDyd8ZgzYVKChCt+Nnz8ehd4gUwprJy7QI28IFSUh1M3wnIRiYh+fA==} cpu: [arm64] os: [darwin] - lefthook-darwin-x64@2.1.2: - resolution: {integrity: sha512-exooc9Ectz13OLJJOXM9AzaFQbqzf9QCF8JuVvGfbr4RYABYK+BwwtydjlPQrA76/n/h4tsS11MH5bBULnLkYA==} + lefthook-darwin-x64@2.1.14: + resolution: {integrity: sha512-uSmjcPRU+yB+D6vk+u6WJDnyHlB+XIv1QZw97N2+qNGG2bNSLH/7MuJ6puCdJv+lVPBEO5wBjE3JIbaEzPOQCw==} cpu: [x64] os: [darwin] - lefthook-freebsd-arm64@2.1.2: - resolution: {integrity: sha512-E1QMlJPEU21n9eewv6ePfh+JmoTSg5R1jaYcKCky10kfbMdohNucI3xV91F2LcerE+p3UejKDqr/1wWO2RMGeQ==} + lefthook-freebsd-arm64@2.1.14: + resolution: {integrity: sha512-po/pmjbp/7BjE9RFfeDnh+CeNsA0d+utppOYKB425I7mgI1GcmT8GAZ9DDut4DIutNjVqKL/lzrj+F87Gm40Rg==} cpu: [arm64] os: [freebsd] - lefthook-freebsd-x64@2.1.2: - resolution: {integrity: sha512-/5zp+x8055Thj46x9S7hgnneZxvWhHQvPWkkgISCab1Lh6eLrbxvhE1qTb1lU3DqTnNmH9NeXdq1xPHc9uGluA==} + lefthook-freebsd-x64@2.1.14: + resolution: {integrity: sha512-+KiXiFjJf7YdHUYjzhDsklcA5bAFZN+pNcz/NbBftrhVTwzNALNoK+SYEKt+9QJsrzL6tpDWmHHFpeLGp+8t8w==} cpu: [x64] os: [freebsd] - lefthook-linux-arm64@2.1.2: - resolution: {integrity: sha512-UK5FvDTkwKO7tOznY8iEZzuTsM1jXMZAG5BMRs7olN1k1K6m2unR6oKABP0hCd0wDErK6DZKDJDJfB564Rzqtw==} + lefthook-linux-arm64@2.1.14: + resolution: {integrity: sha512-bjeJB16ftJaPWGTedssh8ZrqRy1ACfQuTV7a0O3NU1FoIsJtfHOm0o0mV4cPf4q+ZCVCwq1Xf2I11qUpuJFV4Q==} cpu: [arm64] os: [linux] - lefthook-linux-x64@2.1.2: - resolution: {integrity: sha512-4eOtz4PNh8GbJ+nA8YVDfW/eMirQWdZqMP/V/MVtoVBGobf6oXvvuDOySvAPOgNYEFN0Boegytmuji/851Vstg==} + lefthook-linux-x64@2.1.14: + resolution: {integrity: sha512-gYExzjU2w3uKrP1MklbHENS1cXUdCQRIiEJkykI7q4RjhIHi+mQEUAZLxZw93a6jE2pNWaO0me5tB8EbEt4/GQ==} cpu: [x64] os: [linux] - lefthook-openbsd-arm64@2.1.2: - resolution: {integrity: sha512-lJXRJ6iJIBKwomuNBA3CUNSclj2/rKuxGAQoUra214B92VB6jL9zaY5YEs6h/ie9jQrzSnllEeg7xyDIsuVCrQ==} + lefthook-openbsd-arm64@2.1.14: + resolution: {integrity: sha512-MCW76gTlEMBF3Ds8O63UTxjaSguha/5zT0U3Vr719I1sXueSpttfRmm/5YfIB4MygB116yA/Vi+DsizT/X0kcg==} cpu: [arm64] os: [openbsd] - lefthook-openbsd-x64@2.1.2: - resolution: {integrity: sha512-GyOje4W0DIqkmR7/Of5D+mZ0vWqMvtGAVedtJR6d1239xNeMzCS8Q+/a3O1xigceZa5xhlqq0BWlssB/QYPQnA==} + lefthook-openbsd-x64@2.1.14: + resolution: {integrity: sha512-salAc1PAhLI6xrB9pth5UxALQlTOGvZAfaAvgFwixhkdu8D//uW8zS3faFq31ktd1bDAy5wDI8p9yg+fF5+2uA==} cpu: [x64] os: [openbsd] - lefthook-windows-arm64@2.1.2: - resolution: {integrity: sha512-MZKMqTULEpX/8N3fKXAR0A9RjsGKkEEY0japLqrHOIpxsJXry1DRz0FvQo2kkY4WW3rtFegV9m6eesOymuDrUg==} + lefthook-windows-arm64@2.1.14: + resolution: {integrity: sha512-q3JC6lBrYLzkhXEhfnmFxJF47gSd5JeDweH3aNrHoLGX/KkRiOrk9RSyoRwSuGq03EYxSkJhl1FLj2GUxF7VqQ==} cpu: [arm64] os: [win32] - lefthook-windows-x64@2.1.2: - resolution: {integrity: sha512-NZUgObuaSxc0EXAwC/CzkMf7TuQc++GGIk6TLPdaUpoSsNSJSZEwBVz5DtFB1cG+eMkfO/wOKplls+yjimTTtQ==} + lefthook-windows-x64@2.1.14: + resolution: {integrity: sha512-WwIxdwW1lDAaJUU3ETcKlCtdqluGr3Cy+LjKvP4QIQnFf0FEXL78THstIkZ6k6qhfUn7/WvyqSIf0cbTAKw2nQ==} cpu: [x64] os: [win32] - lefthook@2.1.2: - resolution: {integrity: sha512-HdAMl4g47kbWSkrUkCx3Kucq54omFS6piMJtXwXNtmCAfB40UaybTJuYtFW4hNzZ5SvaEimtxTp7P/MNIkEfsA==} + lefthook@2.1.14: + resolution: {integrity: sha512-Y9TL1dmpRlIdSp73SJ6bb+xAZ4s2SinGTK3pgC9PRWMSjMr2iOfowPGnlSOfAo5fu6S5rdiItsQDxeLEWCGk4g==} hasBin: true locate-path@5.0.0: @@ -357,8 +353,8 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} pify@4.0.1: @@ -394,8 +390,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} hasBin: true @@ -448,11 +444,11 @@ packages: snapshots: - '@babel/runtime@7.28.6': {} + '@babel/runtime@7.29.7': {} - '@changesets/apply-release-plan@7.0.14': + '@changesets/apply-release-plan@7.1.1': dependencies: - '@changesets/config': 3.1.2 + '@changesets/config': 3.1.4 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.4 '@changesets/should-skip-package': 0.1.2 @@ -464,59 +460,58 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.7.4 + semver: 7.8.5 - '@changesets/assemble-release-plan@6.0.9': + '@changesets/assemble-release-plan@6.0.10': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-dependents-graph': 2.1.4 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 - semver: 7.7.4 + semver: 7.8.5 '@changesets/changelog-git@0.2.1': dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.29.8': + '@changesets/cli@2.31.1': dependencies: - '@changesets/apply-release-plan': 7.0.14 - '@changesets/assemble-release-plan': 6.0.9 + '@changesets/apply-release-plan': 7.1.1 + '@changesets/assemble-release-plan': 6.0.10 '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.2 + '@changesets/config': 3.1.4 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.14 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/get-release-plan': 4.0.16 '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.6 + '@changesets/read': 0.6.7 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 '@inquirer/external-editor': 1.0.3 '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 - ci-info: 3.9.0 enquirer: 2.4.1 fs-extra: 7.0.1 mri: 1.2.0 - p-limit: 2.3.0 package-manager-detector: 0.2.11 picocolors: 1.1.1 resolve-from: 5.0.0 - semver: 7.7.4 + semver: 7.8.5 spawndamnit: 3.0.1 term-size: 2.2.1 transitivePeerDependencies: - '@types/node' - '@changesets/config@3.1.2': + '@changesets/config@3.1.4': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-dependents-graph': 2.1.4 '@changesets/logger': 0.1.1 + '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 @@ -526,19 +521,19 @@ snapshots: dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@2.1.3': + '@changesets/get-dependents-graph@2.1.4': dependencies: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 - semver: 7.7.4 + semver: 7.8.5 - '@changesets/get-release-plan@4.0.14': + '@changesets/get-release-plan@4.0.16': dependencies: - '@changesets/assemble-release-plan': 6.0.9 - '@changesets/config': 3.1.2 + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/config': 3.1.4 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.6 + '@changesets/read': 0.6.7 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 @@ -556,10 +551,10 @@ snapshots: dependencies: picocolors: 1.1.1 - '@changesets/parse@0.4.2': + '@changesets/parse@0.4.3': dependencies: '@changesets/types': 6.1.0 - js-yaml: 4.1.1 + js-yaml: 4.3.2 '@changesets/pre@2.0.2': dependencies: @@ -568,11 +563,11 @@ snapshots: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.6.6': + '@changesets/read@0.6.7': dependencies: '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.2 + '@changesets/parse': 0.4.3 '@changesets/types': 6.1.0 fs-extra: 7.0.1 p-filter: 2.1.0 @@ -591,24 +586,24 @@ snapshots: dependencies: '@changesets/types': 6.1.0 fs-extra: 7.0.1 - human-id: 4.1.3 + human-id: 4.2.1 prettier: 2.8.8 '@inquirer/external-editor@1.0.3': dependencies: - chardet: 2.1.1 - iconv-lite: 0.7.2 + chardet: 2.2.0 + iconv-lite: 0.7.3 '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.7 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.7 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -625,7 +620,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 + fastq: 1.20.3 '@types/node@12.20.55': {} @@ -649,9 +644,7 @@ snapshots: dependencies: fill-range: 7.1.1 - chardet@2.1.1: {} - - ci-info@3.9.0: {} + chardet@2.2.0: {} cross-spawn@7.0.6: dependencies: @@ -682,7 +675,7 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fastq@1.20.1: + fastq@1.20.3: dependencies: reusify: 1.1.0 @@ -722,9 +715,9 @@ snapshots: graceful-fs@4.2.11: {} - human-id@4.1.3: {} + human-id@4.2.1: {} - iconv-lite@0.7.2: + iconv-lite@0.7.3: dependencies: safer-buffer: 2.1.2 @@ -746,12 +739,12 @@ snapshots: isexe@2.0.0: {} - js-yaml@3.14.2: + js-yaml@3.15.2: dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.1: + js-yaml@4.3.2: dependencies: argparse: 2.0.1 @@ -759,48 +752,48 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - lefthook-darwin-arm64@2.1.2: + lefthook-darwin-arm64@2.1.14: optional: true - lefthook-darwin-x64@2.1.2: + lefthook-darwin-x64@2.1.14: optional: true - lefthook-freebsd-arm64@2.1.2: + lefthook-freebsd-arm64@2.1.14: optional: true - lefthook-freebsd-x64@2.1.2: + lefthook-freebsd-x64@2.1.14: optional: true - lefthook-linux-arm64@2.1.2: + lefthook-linux-arm64@2.1.14: optional: true - lefthook-linux-x64@2.1.2: + lefthook-linux-x64@2.1.14: optional: true - lefthook-openbsd-arm64@2.1.2: + lefthook-openbsd-arm64@2.1.14: optional: true - lefthook-openbsd-x64@2.1.2: + lefthook-openbsd-x64@2.1.14: optional: true - lefthook-windows-arm64@2.1.2: + lefthook-windows-arm64@2.1.14: optional: true - lefthook-windows-x64@2.1.2: + lefthook-windows-x64@2.1.14: optional: true - lefthook@2.1.2: + lefthook@2.1.14: optionalDependencies: - lefthook-darwin-arm64: 2.1.2 - lefthook-darwin-x64: 2.1.2 - lefthook-freebsd-arm64: 2.1.2 - lefthook-freebsd-x64: 2.1.2 - lefthook-linux-arm64: 2.1.2 - lefthook-linux-x64: 2.1.2 - lefthook-openbsd-arm64: 2.1.2 - lefthook-openbsd-x64: 2.1.2 - lefthook-windows-arm64: 2.1.2 - lefthook-windows-x64: 2.1.2 + lefthook-darwin-arm64: 2.1.14 + lefthook-darwin-x64: 2.1.14 + lefthook-freebsd-arm64: 2.1.14 + lefthook-freebsd-x64: 2.1.14 + lefthook-linux-arm64: 2.1.14 + lefthook-linux-x64: 2.1.14 + lefthook-openbsd-arm64: 2.1.14 + lefthook-openbsd-x64: 2.1.14 + lefthook-windows-arm64: 2.1.14 + lefthook-windows-x64: 2.1.14 locate-path@5.0.0: dependencies: @@ -813,7 +806,7 @@ snapshots: micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 2.3.1 + picomatch: 2.3.2 mri@1.2.0: {} @@ -847,7 +840,7 @@ snapshots: picocolors@1.1.1: {} - picomatch@2.3.1: {} + picomatch@2.3.2: {} pify@4.0.1: {} @@ -860,7 +853,7 @@ snapshots: read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 - js-yaml: 3.14.2 + js-yaml: 3.15.2 pify: 4.0.1 strip-bom: 3.0.0 @@ -874,7 +867,7 @@ snapshots: safer-buffer@2.1.2: {} - semver@7.7.4: {} + semver@7.8.5: {} shebang-command@2.0.0: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 000000000..9ef5fe0af --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: [] + +allowBuilds: + lefthook: true diff --git a/skills/gws-admin-reports/SKILL.md b/skills/gws-admin-reports/SKILL.md index 4c9eae171..f1af99afc 100644 --- a/skills/gws-admin-reports/SKILL.md +++ b/skills/gws-admin-reports/SKILL.md @@ -2,7 +2,7 @@ name: gws-admin-reports description: "Google Workspace Admin SDK: Audit logs and usage reports." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-calendar-agenda/SKILL.md b/skills/gws-calendar-agenda/SKILL.md index 89259ff34..3dee03da4 100644 --- a/skills/gws-calendar-agenda/SKILL.md +++ b/skills/gws-calendar-agenda/SKILL.md @@ -2,7 +2,7 @@ name: gws-calendar-agenda description: "Google Calendar: Show upcoming events across all calendars." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-calendar-insert/SKILL.md b/skills/gws-calendar-insert/SKILL.md index dd2989d8c..83b70c813 100644 --- a/skills/gws-calendar-insert/SKILL.md +++ b/skills/gws-calendar-insert/SKILL.md @@ -2,7 +2,7 @@ name: gws-calendar-insert description: "Google Calendar: Create a new event." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-calendar/SKILL.md b/skills/gws-calendar/SKILL.md index 08e134ce7..2b0f6fdcd 100644 --- a/skills/gws-calendar/SKILL.md +++ b/skills/gws-calendar/SKILL.md @@ -2,7 +2,7 @@ name: gws-calendar description: "Google Calendar: Manage calendars and events." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: @@ -58,6 +58,9 @@ The authenticated user for the request is made the data owner of the new calenda Note: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior. - `patch` — Updates metadata for a calendar. This method supports patch semantics. + - `transferOwnership` — Transfers a secondary calendar between users within a Google Workspace organization. Requires user authentication with Manage Calendars administrator privilege, and one of the following authorization scopes: +- https://www.googleapis.com/auth/calendar +- https://www.googleapis.com/auth/calendar.calendars In the request, set useAdminAccess to true. The secondary calendar must be active to be transferred. Transferring disabled or deleted calendars isn't supported. - `update` — Updates metadata for a calendar. ### channels diff --git a/skills/gws-chat-send/SKILL.md b/skills/gws-chat-send/SKILL.md index 3ac2e2375..70f5d0260 100644 --- a/skills/gws-chat-send/SKILL.md +++ b/skills/gws-chat-send/SKILL.md @@ -2,7 +2,7 @@ name: gws-chat-send description: "Google Chat: Send a message to a space." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-chat/SKILL.md b/skills/gws-chat/SKILL.md index 5eaca50c3..9a20418b5 100644 --- a/skills/gws-chat/SKILL.md +++ b/skills/gws-chat/SKILL.md @@ -2,7 +2,7 @@ name: gws-chat description: "Google Chat: Manage Chat spaces and messages." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: @@ -45,17 +45,20 @@ gws chat [flags] - `create` — Creates a space. Can be used to create a named space, or a group chat in `Import mode`. For an example, see [Create a space](https://developers.google.com/workspace/chat/create-spaces). - `delete` — Deletes a named space. Always performs a cascading delete, which means that the space's child resources—like messages posted in the space and memberships in the space—are also deleted. For an example, see [Delete a space](https://developers.google.com/workspace/chat/delete-spaces). - `findDirectMessage` — Returns the existing direct message with the specified user. If no direct message space is found, returns a `404 NOT_FOUND` error. For an example, see [Find a direct message](/chat/api/guides/v1/spaces/find-direct-message). With [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app), returns the direct message space between the specified user and the calling Chat app. + - `findGroupChats` — Returns all spaces with `spaceType == GROUP_CHAT`, whose human memberships contain exactly the calling user, and the users specified in `FindGroupChatsRequest.users`. Only members that have joined the conversation are supported. For an example, see [Find group chats](https://developers.google.com/workspace/chat/find-group-chats). - `get` — Returns details about a space. For an example, see [Get details about a space](https://developers.google.com/workspace/chat/get-spaces). - `list` — Lists spaces the caller is a member of. Group chats and DMs aren't listed until the first message is sent. For an example, see [List spaces](https://developers.google.com/workspace/chat/list-spaces). - `patch` — Updates a space. For an example, see [Update a space](https://developers.google.com/workspace/chat/update-spaces). If you're updating the `displayName` field and receive the error message `ALREADY_EXISTS`, try a different display name.. An existing space within the Google Workspace organization might already use this display name. - - `search` — Returns a list of spaces in a Google Workspace organization based on an administrator's search. In the request, set `use_admin_access` to `true`. For an example, see [Search for and manage spaces](https://developers.google.com/workspace/chat/search-manage-admin). + - `search` — Returns a list of spaces in a Google Workspace organization. For an example, see [Search for and manage spaces](https://developers.google.com/workspace/chat/search-manage-admin). When `use_admin_access` is set to `false`, the results are limited to spaces where the calling user is a joined member. To search with administrator privileges, set `use_admin_access` to `true`. - `setup` — Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn't be specified as a membership in the request. For an example, see [Set up a space with initial members](https://developers.google.com/workspace/chat/set-up-spaces). To specify the human members to add, add memberships with the appropriate `membership.member.name`. To add a human user, use `users/{user}`, where `{user}` can be the email address for the user. - `members` — Operations on the 'members' resource + - `messagePins` — Operations on the 'messagePins' resource - `messages` — Operations on the 'messages' resource - `spaceEvents` — Operations on the 'spaceEvents' resource ### users + - `availability` — Operations on the 'availability' resource - `sections` — Operations on the 'sections' resource - `spaces` — Operations on the 'spaces' resource diff --git a/skills/gws-classroom/SKILL.md b/skills/gws-classroom/SKILL.md index 466a71058..5fa842630 100644 --- a/skills/gws-classroom/SKILL.md +++ b/skills/gws-classroom/SKILL.md @@ -2,7 +2,7 @@ name: gws-classroom description: "Google Classroom: Manage classes, rosters, and coursework." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: @@ -29,7 +29,7 @@ gws classroom [flags] - `getGradingPeriodSettings` — Returns the grading period settings in a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user isn't permitted to access the grading period settings in the requested course or for access errors. * `NOT_FOUND` if the requested course does not exist. - `list` — Returns a list of courses that the requesting user is permitted to view, restricted to those that match the request. Returned courses are ordered by creation time, with the most recently created coming first. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the query argument is malformed. * `NOT_FOUND` if any users specified in the query arguments do not exist. - `patch` — Updates one or more fields in a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to modify the requested course or for access errors. * `NOT_FOUND` if no course exists with the requested ID. * `INVALID_ARGUMENT` if invalid fields are specified in the update mask or if no update mask is supplied. - - `update` — Updates a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to modify the requested course or for access errors. * `NOT_FOUND` if no course exists with the requested ID. * `FAILED_PRECONDITION` for the following request errors: * CourseNotModifiable * CourseTitleCannotContainUrl + - `update` — Updates a course. Note: Unlike other fields, `levels` is not cleared if omitted from the request. The `UpdateCourse` method only modifies `levels` if it is explicitly provided; otherwise, the existing value is preserved. Use the `PatchCourse` method to clear the `levels` field. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to modify the requested course or for access errors. * `NOT_FOUND` if no course exists with the requested ID. - `updateGradingPeriodSettings` — Updates grading period settings of a course. Individual grading periods can be added, removed, or modified using this method. The requesting user and course owner must be eligible to modify Grading Periods. For details, see [licensing requirements](https://developers.google.com/workspace/classroom/grading-periods/manage-grading-periods#licensing_requirements). - `aliases` — Operations on the 'aliases' resource - `announcements` — Operations on the 'announcements' resource diff --git a/skills/gws-docs-comment/SKILL.md b/skills/gws-docs-comment/SKILL.md new file mode 100644 index 000000000..9bbae17d3 --- /dev/null +++ b/skills/gws-docs-comment/SKILL.md @@ -0,0 +1,41 @@ +--- +name: gws-docs-comment +description: "Google Docs: Create a comment anchored to document text." +metadata: + version: 0.23.0 + openclaw: + category: "productivity" + requires: + bins: + - gws + cliHelp: "gws docs +comment --help" +--- + +# docs +comment + +> **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it. + +Create a comment anchored to document text + +## Usage + +```bash +gws docs +comment +``` + +## Examples + +```bash +gws docs +comment create --document DOC_ID --text 'Please review this.' --start-index 1 --end-index 20 +``` + +## Tips + +- Indexes are UTF-16 document indexes. +- Comment creation is a Google Workspace Developer Preview feature. +- Use --dry-run to validate without authentication or sending the request. + +## See Also + +- [gws-shared](../gws-shared/SKILL.md) — Global flags and auth +- [gws-docs](../gws-docs/SKILL.md) — All read and write google docs commands diff --git a/skills/gws-docs-read/SKILL.md b/skills/gws-docs-read/SKILL.md new file mode 100644 index 000000000..f461b9f9f --- /dev/null +++ b/skills/gws-docs-read/SKILL.md @@ -0,0 +1,68 @@ +--- +name: gws-docs-read +description: "Google Docs: Read a document as compact structured content." +metadata: + version: 0.23.0 + openclaw: + category: "productivity" + requires: + bins: + - gws + cliHelp: "gws docs +read --help" +--- + +# docs +read + +> **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it. + +Read a document as compact structured content + +## Usage + +```bash +gws docs +read --document +``` + +## Flags + +| Flag | Required | Default | Description | +|------|----------|---------|-------------| +| `--document` | ✓ | — | Document ID | +| `--params` | — | — | Additional documents.get API parameters as JSON | +| `--include-comments` | — | — | Include comments and their referenced text | + +## Examples + +```bash +gws docs +read --document DOC_ID +gws docs +read --document DOC_ID --format yaml +gws docs +read --document DOC_ID --params '{"fields":"*"}' --dry-run +gws docs +read --document DOC_ID | jq '.outline' +gws docs +read --document DOC_ID | jq '.. | objects | select(.paragraphStyle?.headingId? == "HEADING_ID")' +``` + +## Tips + +- Requests all tabs with includeTabsContent=true and suggestionsViewMode=SUGGESTIONS_INLINE. +- Only those tab/suggestion options are supported; fields must be absent or exactly "*". +- Other documents.get options pass through --params; alt must be json. $fields is rejected. +- JSON/YAML preserve the structured view; table/CSV use the global formatter's array summary. +- tabs[].blocks and childTabs keep API order; outline lists headings with tab IDs and JSON Pointer paths. +- Paragraph text concatenates text runs only. elements retain styles, links, suggestion IDs and reference markers. +- Tables contain rows[].cells[].blocks recursively. Headers, footers and footnotes have separate blocks. +- figures contain image/drawing metadata, including alt text and URIs when returned; images are never downloaded. +- Unknown blocks, inline elements and tab types retain type=unknown markers and raw data. +- startIndex/endIndex are the API's UTF-16 offsets, scoped to each tab/segment; never offsets into extracted text. +- revisionId and suggestionsViewMode are retained when returned. Missing revisionId is not synthesized. +- source=legacyBody indicates a fallback response without populated tabs; all-tab coverage cannot be confirmed. +- This is a content view, not a layout renderer or lossless API round trip. Inherited styles are not resolved. +- Suggestions remain inline, including proposed deletions; this helper does not accept or reject suggestions. +- --include-comments requests comment threads and resolves each comment anchor to referenced text. +- Use raw documents get for unsupported views or field masks. Missing body content produces an error. +- --dry-run validates and prints a request plan without acquiring credentials or fetching document content. +- --sanitize uses the existing Model Armor policy before normalization and retains _sanitization metadata. + +## See Also + +- [gws-shared](../gws-shared/SKILL.md) — Global flags and auth +- [gws-docs](../gws-docs/SKILL.md) — All read and write google docs commands diff --git a/skills/gws-docs-suggest/SKILL.md b/skills/gws-docs-suggest/SKILL.md new file mode 100644 index 000000000..430138559 --- /dev/null +++ b/skills/gws-docs-suggest/SKILL.md @@ -0,0 +1,45 @@ +--- +name: gws-docs-suggest +description: "Google Docs: Create and manage Docs suggestions." +metadata: + version: 0.23.0 + openclaw: + category: "productivity" + requires: + bins: + - gws + cliHelp: "gws docs +suggest --help" +--- + +# docs +suggest + +> **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it. + +Create and manage Docs suggestions + +## Usage + +```bash +gws docs +suggest +``` + +## Examples + +```bash +gws docs +suggest insert --document DOC_ID --text 'Suggested text' +gws docs +suggest replace --document DOC_ID --find 'old' --text 'new' +gws docs +suggest list --document DOC_ID +gws docs +suggest accept --document DOC_ID --suggestion-id SUGGESTION_ID +``` + +## Tips + +- Suggestion writes are a Google Workspace Developer Preview feature. +- The helper opts into unknown preview fields internally; raw commands remain strict. +- Use --dry-run to preview insert, delete-text, accept, reject, and delete requests. +- replace reads the document to locate exactly one matching text run before writing. + +## See Also + +- [gws-shared](../gws-shared/SKILL.md) — Global flags and auth +- [gws-docs](../gws-docs/SKILL.md) — All read and write Google Docs commands diff --git a/skills/gws-docs-write/SKILL.md b/skills/gws-docs-write/SKILL.md index 4c903126f..f93530f81 100644 --- a/skills/gws-docs-write/SKILL.md +++ b/skills/gws-docs-write/SKILL.md @@ -2,7 +2,7 @@ name: gws-docs-write description: "Google Docs: Append text to a document." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-docs/SKILL.md b/skills/gws-docs/SKILL.md index f51b19503..8913676b2 100644 --- a/skills/gws-docs/SKILL.md +++ b/skills/gws-docs/SKILL.md @@ -2,7 +2,7 @@ name: gws-docs description: "Read and write Google Docs." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: @@ -23,6 +23,9 @@ gws docs [flags] | Command | Description | |---------|-------------| +| [`+read`](../gws-docs-read/SKILL.md) | Read a document as compact structured content | +| [`+suggest`](../gws-docs-suggest/SKILL.md) | Create and manage Docs suggestions | +| [`+comment`](../gws-docs-comment/SKILL.md) | Create a comment anchored to document text | | [`+write`](../gws-docs-write/SKILL.md) | Append text to a document | ## API Resources diff --git a/skills/gws-drive-upload/SKILL.md b/skills/gws-drive-upload/SKILL.md index fe2b4017e..7b9bd6c2c 100644 --- a/skills/gws-drive-upload/SKILL.md +++ b/skills/gws-drive-upload/SKILL.md @@ -2,7 +2,7 @@ name: gws-drive-upload description: "Google Drive: Upload a file with automatic metadata." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-drive/SKILL.md b/skills/gws-drive/SKILL.md index d4debbdb0..0df671687 100644 --- a/skills/gws-drive/SKILL.md +++ b/skills/gws-drive/SKILL.md @@ -2,7 +2,7 @@ name: gws-drive description: "Google Drive: Manage files, folders, and shared drives." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: @@ -39,8 +39,14 @@ gws drive [flags] ### approvals - - `get` — Gets an Approval by ID. - - `list` — Lists the Approvals on a file. + - `approve` — Approves an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). This is used to update the ReviewerResponse of the requesting user with a Response of `APPROVED`. If this is the last required reviewer response, this also completes the approval and sets the approval Status to `APPROVED`. + - `cancel` — Cancels an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). Updates the approval Status to `CANCELLED`. This can be called by any user with the `writer` permission on the file while the approval Status is `IN_PROGRESS`. + - `comment` — Comments on an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). This sends a notification to both the initiator and the reviewers. Additionally, a message is also added to the approval activity log. + - `decline` — Declines an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). This is used to update the ReviewerResponse of the requesting user with a Response of `DECLINED`. This also completes the approval and sets the approval Status to `DECLINED`. + - `get` — Gets an approval by ID. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). + - `list` — Lists the approvals on a file. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). By default, this method returns a minimal response that may not include the items array. To retrieve approval details, you must explicitly specify the fields you want using the `fields` query parameter. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter). + - `reassign` — Reassigns the reviewers on an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). Adds or replaces reviewers in the ReviewerResponse of the approval. This can be called by any user with the `writer` permission on the file while the approval Status is `IN_PROGRESS` and the Response for the reviewer being reassigned is `NO_RESPONSE`. + - `start` — Starts an approval on a file. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). ### apps @@ -80,6 +86,7 @@ gws drive [flags] - `create` — Creates a file. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file). This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:* `*/*` (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. - `download` — Downloads the content of a file. For more information, see [Download and export files](https://developers.google.com/workspace/drive/api/guides/manage-downloads). Operations are valid for 24 hours from the time of creation. - `export` — Exports a Google Workspace document to the requested MIME type and returns exported byte content. For more information, see [Download and export files](https://developers.google.com/workspace/drive/api/guides/manage-downloads). Note that the exported content is limited to 10 MB. + - `generateCseToken` — Generates a CSE token which can be used to create or update CSE files. - `generateIds` — Generates a set of file IDs which can be provided in create or copy requests. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file). - `get` — Gets a file's metadata or content by ID. For more information, see [Search for files and folders](https://developers.google.com/workspace/drive/api/guides/search-files). If you provide the URL parameter `alt=media`, then the response includes the file contents in the response body. Downloading content with `alt=media` only works if the file is stored in Drive. - `list` — Lists the user's files. For more information, see [Search for files and folders](https://developers.google.com/workspace/drive/api/guides/search-files). This method accepts the `q` parameter, which is a search query combining one or more search terms. This method returns *all* files by default, including trashed files. If you don't want trashed files to appear in the list, use the `trashed=false` query parameter to remove trashed files from the results. diff --git a/skills/gws-events-renew/SKILL.md b/skills/gws-events-renew/SKILL.md index bb825ed7a..c4592cb05 100644 --- a/skills/gws-events-renew/SKILL.md +++ b/skills/gws-events-renew/SKILL.md @@ -2,7 +2,7 @@ name: gws-events-renew description: "Google Workspace Events: Renew/reactivate Workspace Events subscriptions." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-events-subscribe/SKILL.md b/skills/gws-events-subscribe/SKILL.md index f2e45e90f..2d34a5b59 100644 --- a/skills/gws-events-subscribe/SKILL.md +++ b/skills/gws-events-subscribe/SKILL.md @@ -2,7 +2,7 @@ name: gws-events-subscribe description: "Google Workspace Events: Subscribe to Workspace events and stream them as NDJSON." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-events/SKILL.md b/skills/gws-events/SKILL.md index e72f5124a..38d36a1f6 100644 --- a/skills/gws-events/SKILL.md +++ b/skills/gws-events/SKILL.md @@ -2,7 +2,7 @@ name: gws-events description: "Subscribe to Google Workspace events." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-forms/SKILL.md b/skills/gws-forms/SKILL.md index 3a11a94e9..61ab2682e 100644 --- a/skills/gws-forms/SKILL.md +++ b/skills/gws-forms/SKILL.md @@ -2,7 +2,7 @@ name: gws-forms description: "Read and write Google Forms." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-gmail-forward/SKILL.md b/skills/gws-gmail-forward/SKILL.md index d433cef54..fac0a6d17 100644 --- a/skills/gws-gmail-forward/SKILL.md +++ b/skills/gws-gmail-forward/SKILL.md @@ -2,7 +2,7 @@ name: gws-gmail-forward description: "Gmail: Forward a message to new recipients." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-gmail-read/SKILL.md b/skills/gws-gmail-read/SKILL.md index dc153af44..ab9fdabe0 100644 --- a/skills/gws-gmail-read/SKILL.md +++ b/skills/gws-gmail-read/SKILL.md @@ -2,7 +2,7 @@ name: gws-gmail-read description: "Gmail: Read a message and extract its body or headers." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-gmail-reply-all/SKILL.md b/skills/gws-gmail-reply-all/SKILL.md index 1a4e4c8b9..ef233afa5 100644 --- a/skills/gws-gmail-reply-all/SKILL.md +++ b/skills/gws-gmail-reply-all/SKILL.md @@ -2,7 +2,7 @@ name: gws-gmail-reply-all description: "Gmail: Reply-all to a message (handles threading automatically)." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-gmail-reply/SKILL.md b/skills/gws-gmail-reply/SKILL.md index e3538827e..a8fb229e2 100644 --- a/skills/gws-gmail-reply/SKILL.md +++ b/skills/gws-gmail-reply/SKILL.md @@ -2,7 +2,7 @@ name: gws-gmail-reply description: "Gmail: Reply to a message (handles threading automatically)." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-gmail-send/SKILL.md b/skills/gws-gmail-send/SKILL.md index 55da9c28c..a1e0a0206 100644 --- a/skills/gws-gmail-send/SKILL.md +++ b/skills/gws-gmail-send/SKILL.md @@ -2,7 +2,7 @@ name: gws-gmail-send description: "Gmail: Send an email." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-gmail-triage/SKILL.md b/skills/gws-gmail-triage/SKILL.md index 641a2d114..94eed95a8 100644 --- a/skills/gws-gmail-triage/SKILL.md +++ b/skills/gws-gmail-triage/SKILL.md @@ -2,7 +2,7 @@ name: gws-gmail-triage description: "Gmail: Show unread inbox summary (sender, subject, date)." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-gmail-watch/SKILL.md b/skills/gws-gmail-watch/SKILL.md index fca780f7e..fd48ca40b 100644 --- a/skills/gws-gmail-watch/SKILL.md +++ b/skills/gws-gmail-watch/SKILL.md @@ -2,7 +2,7 @@ name: gws-gmail-watch description: "Gmail: Watch for new emails and stream them as NDJSON." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-gmail/SKILL.md b/skills/gws-gmail/SKILL.md index 3423770e6..c80446508 100644 --- a/skills/gws-gmail/SKILL.md +++ b/skills/gws-gmail/SKILL.md @@ -2,7 +2,7 @@ name: gws-gmail description: "Gmail: Send, read, and manage email." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: @@ -36,8 +36,8 @@ gws gmail [flags] ### users - `getProfile` — Gets the current user's Gmail profile. - - `stop` — Stop receiving push notifications for the given user mailbox. - - `watch` — Set up or update a push notification watch on the given user mailbox. + - `stop` — Turn off push notification delivery for the given user mailbox. For more information, see [Configure push notifications in Gmail API](https://developers.google.com/workspace/gmail/api/guides/push). + - `watch` — Set up or update a push notification watch on the given user mailbox. For more information, see [Configure push notifications in Gmail API](https://developers.google.com/workspace/gmail/api/guides/push). - `drafts` — Operations on the 'drafts' resource - `history` — Operations on the 'history' resource - `labels` — Operations on the 'labels' resource diff --git a/skills/gws-keep/SKILL.md b/skills/gws-keep/SKILL.md index 8c2d0bf4e..c5ab1789d 100644 --- a/skills/gws-keep/SKILL.md +++ b/skills/gws-keep/SKILL.md @@ -2,7 +2,7 @@ name: gws-keep description: "Manage Google Keep notes." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-meet/SKILL.md b/skills/gws-meet/SKILL.md index 6959c2bde..c748672e0 100644 --- a/skills/gws-meet/SKILL.md +++ b/skills/gws-meet/SKILL.md @@ -2,7 +2,7 @@ name: gws-meet description: "Manage Google Meet conferences." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: @@ -23,8 +23,8 @@ gws meet [flags] ### conferenceRecords - - `get` — Gets a conference record by conference ID. - - `list` — Lists the conference records. By default, ordered by start time and in descending order. + - `get` — Gets a conference record by conference ID. For more information, see [Work with conferences](https://developers.google.com/workspace/meet/api/guides/conferences). + - `list` — Lists the conference records. By default, ordered by start time and in descending order. For more information, see [Work with conferences](https://developers.google.com/workspace/meet/api/guides/conferences). - `participants` — Operations on the 'participants' resource - `recordings` — Operations on the 'recordings' resource - `smartNotes` — Operations on the 'smartNotes' resource @@ -32,10 +32,11 @@ gws meet [flags] ### spaces - - `create` — Creates a space. - - `endActiveConference` — Ends an active conference (if there's one). For an example, see [End active conference](https://developers.google.com/workspace/meet/api/guides/meeting-spaces#end-active-conference). - - `get` — Gets details about a meeting space. For an example, see [Get a meeting space](https://developers.google.com/workspace/meet/api/guides/meeting-spaces#get-meeting-space). - - `patch` — Updates details about a meeting space. For an example, see [Update a meeting space](https://developers.google.com/workspace/meet/api/guides/meeting-spaces#update-meeting-space). + - `create` — Creates a space. For more information, see [Manage meeting spaces](https://developers.google.com/workspace/meet/api/guides/manage-meeting-spaces). + - `endActiveConference` — Ends an active conference (if there's one). For more information, see [Manage meeting spaces](https://developers.google.com/workspace/meet/api/guides/manage-meeting-spaces). + - `get` — Gets details about a meeting space. For more information, see [Manage meeting spaces](https://developers.google.com/workspace/meet/api/guides/manage-meeting-spaces). For an example, see [Get a meeting space](https://developers.google.com/workspace/meet/api/guides/meeting-spaces#get-meeting-space). + - `patch` — Updates details about a meeting space. For more information, see [Manage meeting spaces](https://developers.google.com/workspace/meet/api/guides/manage-meeting-spaces). + - `members` — Operations on the 'members' resource ## Discovering Commands diff --git a/skills/gws-modelarmor-create-template/SKILL.md b/skills/gws-modelarmor-create-template/SKILL.md index 3926280e7..0896cb062 100644 --- a/skills/gws-modelarmor-create-template/SKILL.md +++ b/skills/gws-modelarmor-create-template/SKILL.md @@ -2,7 +2,7 @@ name: gws-modelarmor-create-template description: "Google Model Armor: Create a new Model Armor template." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "security" requires: diff --git a/skills/gws-modelarmor-sanitize-prompt/SKILL.md b/skills/gws-modelarmor-sanitize-prompt/SKILL.md index cff9dde94..8fa304319 100644 --- a/skills/gws-modelarmor-sanitize-prompt/SKILL.md +++ b/skills/gws-modelarmor-sanitize-prompt/SKILL.md @@ -2,7 +2,7 @@ name: gws-modelarmor-sanitize-prompt description: "Google Model Armor: Sanitize a user prompt through a Model Armor template." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "security" requires: diff --git a/skills/gws-modelarmor-sanitize-response/SKILL.md b/skills/gws-modelarmor-sanitize-response/SKILL.md index b4cd60faa..e578d0de0 100644 --- a/skills/gws-modelarmor-sanitize-response/SKILL.md +++ b/skills/gws-modelarmor-sanitize-response/SKILL.md @@ -2,7 +2,7 @@ name: gws-modelarmor-sanitize-response description: "Google Model Armor: Sanitize a model response through a Model Armor template." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "security" requires: diff --git a/skills/gws-modelarmor/SKILL.md b/skills/gws-modelarmor/SKILL.md index 15efca471..c6a4f56c5 100644 --- a/skills/gws-modelarmor/SKILL.md +++ b/skills/gws-modelarmor/SKILL.md @@ -2,7 +2,7 @@ name: gws-modelarmor description: "Google Model Armor: Filter user-generated content for safety." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-people/SKILL.md b/skills/gws-people/SKILL.md index 06527a73a..8cd5a5d29 100644 --- a/skills/gws-people/SKILL.md +++ b/skills/gws-people/SKILL.md @@ -2,7 +2,7 @@ name: gws-people description: "Google People: Manage contacts and profiles." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-script-push/SKILL.md b/skills/gws-script-push/SKILL.md index c3920af2b..a6b610d99 100644 --- a/skills/gws-script-push/SKILL.md +++ b/skills/gws-script-push/SKILL.md @@ -2,7 +2,7 @@ name: gws-script-push description: "Google Apps Script: Upload local files to an Apps Script project." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-script/SKILL.md b/skills/gws-script/SKILL.md index e7e288aaf..15801831c 100644 --- a/skills/gws-script/SKILL.md +++ b/skills/gws-script/SKILL.md @@ -2,7 +2,7 @@ name: gws-script description: "Manage Google Apps Script projects." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-shared/SKILL.md b/skills/gws-shared/SKILL.md index ea9497646..15f18839a 100644 --- a/skills/gws-shared/SKILL.md +++ b/skills/gws-shared/SKILL.md @@ -2,7 +2,7 @@ name: gws-shared description: "gws CLI: Shared patterns for authentication, global flags, and output formatting." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-sheets-append/SKILL.md b/skills/gws-sheets-append/SKILL.md index cac70a28c..ea2fccf09 100644 --- a/skills/gws-sheets-append/SKILL.md +++ b/skills/gws-sheets-append/SKILL.md @@ -2,7 +2,7 @@ name: gws-sheets-append description: "Google Sheets: Append a row to a spreadsheet." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: @@ -30,7 +30,7 @@ gws sheets +append --spreadsheet | `--spreadsheet` | ✓ | — | Spreadsheet ID | | `--values` | — | — | Comma-separated values (simple strings) | | `--json-values` | — | — | JSON array of rows, e.g. '[["a","b"],["c","d"]]' | -| `--range` | — | `A1` | Target range in A1 notation (e.g. 'Sheet2!A1') to select a specific tab | +| `--range` | — | — | Target range in A1 notation (e.g. 'Sheet2!A1'). Defaults to 'A1' (first sheet) | ## Examples @@ -44,7 +44,7 @@ gws sheets +append --spreadsheet ID --range "Sheet2!A1" --values 'Alice,100' - Use --values for simple single-row appends. - Use --json-values for bulk multi-row inserts. -- Use --range to append to a specific sheet tab (default: A1, i.e. first sheet). +- Use --range to target a specific sheet tab (default: A1, i.e. first sheet). > [!CAUTION] > This is a **write** command — confirm with the user before executing. diff --git a/skills/gws-sheets-read/SKILL.md b/skills/gws-sheets-read/SKILL.md index a1711dc32..e7d4d9157 100644 --- a/skills/gws-sheets-read/SKILL.md +++ b/skills/gws-sheets-read/SKILL.md @@ -2,7 +2,7 @@ name: gws-sheets-read description: "Google Sheets: Read values from a spreadsheet." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-sheets/SKILL.md b/skills/gws-sheets/SKILL.md index d713253db..ab6eeb279 100644 --- a/skills/gws-sheets/SKILL.md +++ b/skills/gws-sheets/SKILL.md @@ -2,7 +2,7 @@ name: gws-sheets description: "Google Sheets: Read and write spreadsheets." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-slides/SKILL.md b/skills/gws-slides/SKILL.md index afa06f97a..5db86f152 100644 --- a/skills/gws-slides/SKILL.md +++ b/skills/gws-slides/SKILL.md @@ -2,7 +2,7 @@ name: gws-slides description: "Google Slides: Read and write presentations." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-tasks/SKILL.md b/skills/gws-tasks/SKILL.md index da4b44d11..4fbc6812a 100644 --- a/skills/gws-tasks/SKILL.md +++ b/skills/gws-tasks/SKILL.md @@ -2,7 +2,7 @@ name: gws-tasks description: "Google Tasks: Manage task lists and tasks." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-workflow-email-to-task/SKILL.md b/skills/gws-workflow-email-to-task/SKILL.md index bf9456d77..1142009e2 100644 --- a/skills/gws-workflow-email-to-task/SKILL.md +++ b/skills/gws-workflow-email-to-task/SKILL.md @@ -2,7 +2,7 @@ name: gws-workflow-email-to-task description: "Google Workflow: Convert a Gmail message into a Google Tasks entry." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-workflow-file-announce/SKILL.md b/skills/gws-workflow-file-announce/SKILL.md index 0937cd684..d0afb412a 100644 --- a/skills/gws-workflow-file-announce/SKILL.md +++ b/skills/gws-workflow-file-announce/SKILL.md @@ -2,7 +2,7 @@ name: gws-workflow-file-announce description: "Google Workflow: Announce a Drive file in a Chat space." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-workflow-meeting-prep/SKILL.md b/skills/gws-workflow-meeting-prep/SKILL.md index f0edea82e..4b8cfd548 100644 --- a/skills/gws-workflow-meeting-prep/SKILL.md +++ b/skills/gws-workflow-meeting-prep/SKILL.md @@ -2,7 +2,7 @@ name: gws-workflow-meeting-prep description: "Google Workflow: Prepare for your next meeting: agenda, attendees, and linked docs." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-workflow-standup-report/SKILL.md b/skills/gws-workflow-standup-report/SKILL.md index 9b1a8c914..62061375c 100644 --- a/skills/gws-workflow-standup-report/SKILL.md +++ b/skills/gws-workflow-standup-report/SKILL.md @@ -2,7 +2,7 @@ name: gws-workflow-standup-report description: "Google Workflow: Today's meetings + open tasks as a standup summary." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-workflow-weekly-digest/SKILL.md b/skills/gws-workflow-weekly-digest/SKILL.md index f07df867c..cb0a9dab6 100644 --- a/skills/gws-workflow-weekly-digest/SKILL.md +++ b/skills/gws-workflow-weekly-digest/SKILL.md @@ -2,7 +2,7 @@ name: gws-workflow-weekly-digest description: "Google Workflow: Weekly summary: this week's meetings + unread email count." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/gws-workflow/SKILL.md b/skills/gws-workflow/SKILL.md index 4078e1597..eb8c18b4d 100644 --- a/skills/gws-workflow/SKILL.md +++ b/skills/gws-workflow/SKILL.md @@ -2,7 +2,7 @@ name: gws-workflow description: "Google Workflow: Cross-service productivity workflows." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "productivity" requires: diff --git a/skills/persona-content-creator/SKILL.md b/skills/persona-content-creator/SKILL.md index f9846fc6c..29c34f7f8 100644 --- a/skills/persona-content-creator/SKILL.md +++ b/skills/persona-content-creator/SKILL.md @@ -2,7 +2,7 @@ name: persona-content-creator description: "Create, organize, and distribute content across Workspace." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/persona-customer-support/SKILL.md b/skills/persona-customer-support/SKILL.md index 7d777cdb3..40e16ce63 100644 --- a/skills/persona-customer-support/SKILL.md +++ b/skills/persona-customer-support/SKILL.md @@ -2,7 +2,7 @@ name: persona-customer-support description: "Manage customer support — track tickets, respond, escalate issues." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/persona-event-coordinator/SKILL.md b/skills/persona-event-coordinator/SKILL.md index a6a63e2fa..3b3c24be2 100644 --- a/skills/persona-event-coordinator/SKILL.md +++ b/skills/persona-event-coordinator/SKILL.md @@ -2,7 +2,7 @@ name: persona-event-coordinator description: "Plan and manage events — scheduling, invitations, and logistics." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/persona-exec-assistant/SKILL.md b/skills/persona-exec-assistant/SKILL.md index 8e0dc8607..413471898 100644 --- a/skills/persona-exec-assistant/SKILL.md +++ b/skills/persona-exec-assistant/SKILL.md @@ -2,7 +2,7 @@ name: persona-exec-assistant description: "Manage an executive's schedule, inbox, and communications." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/persona-hr-coordinator/SKILL.md b/skills/persona-hr-coordinator/SKILL.md index b0fd11875..35709bc67 100644 --- a/skills/persona-hr-coordinator/SKILL.md +++ b/skills/persona-hr-coordinator/SKILL.md @@ -2,7 +2,7 @@ name: persona-hr-coordinator description: "Handle HR workflows — onboarding, announcements, and employee comms." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/persona-it-admin/SKILL.md b/skills/persona-it-admin/SKILL.md index 270fdeff9..06008fa17 100644 --- a/skills/persona-it-admin/SKILL.md +++ b/skills/persona-it-admin/SKILL.md @@ -2,7 +2,7 @@ name: persona-it-admin description: "Administer IT — monitor security and configure Workspace." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/persona-project-manager/SKILL.md b/skills/persona-project-manager/SKILL.md index 995872c18..84b45cecc 100644 --- a/skills/persona-project-manager/SKILL.md +++ b/skills/persona-project-manager/SKILL.md @@ -2,7 +2,7 @@ name: persona-project-manager description: "Coordinate projects — track tasks, schedule meetings, and share docs." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/persona-researcher/SKILL.md b/skills/persona-researcher/SKILL.md index ef0068cbf..058ae117a 100644 --- a/skills/persona-researcher/SKILL.md +++ b/skills/persona-researcher/SKILL.md @@ -2,7 +2,7 @@ name: persona-researcher description: "Organize research — manage references, notes, and collaboration." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/persona-sales-ops/SKILL.md b/skills/persona-sales-ops/SKILL.md index b22f75524..af639985e 100644 --- a/skills/persona-sales-ops/SKILL.md +++ b/skills/persona-sales-ops/SKILL.md @@ -2,7 +2,7 @@ name: persona-sales-ops description: "Manage sales workflows — track deals, schedule calls, client comms." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/persona-team-lead/SKILL.md b/skills/persona-team-lead/SKILL.md index 46d3e33ab..f559b73d9 100644 --- a/skills/persona-team-lead/SKILL.md +++ b/skills/persona-team-lead/SKILL.md @@ -2,7 +2,7 @@ name: persona-team-lead description: "Lead a team — run standups, coordinate tasks, and communicate." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "persona" requires: diff --git a/skills/recipe-backup-sheet-as-csv/SKILL.md b/skills/recipe-backup-sheet-as-csv/SKILL.md index 8adc1d00a..205ae6abe 100644 --- a/skills/recipe-backup-sheet-as-csv/SKILL.md +++ b/skills/recipe-backup-sheet-as-csv/SKILL.md @@ -2,7 +2,7 @@ name: recipe-backup-sheet-as-csv description: "Export a Google Sheets spreadsheet as a CSV file for local backup or processing." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-batch-invite-to-event/SKILL.md b/skills/recipe-batch-invite-to-event/SKILL.md index c811d150a..6543caa00 100644 --- a/skills/recipe-batch-invite-to-event/SKILL.md +++ b/skills/recipe-batch-invite-to-event/SKILL.md @@ -2,7 +2,7 @@ name: recipe-batch-invite-to-event description: "Add a list of attendees to an existing Google Calendar event and send notifications." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "scheduling" diff --git a/skills/recipe-block-focus-time/SKILL.md b/skills/recipe-block-focus-time/SKILL.md index 6ac952e8c..24d662190 100644 --- a/skills/recipe-block-focus-time/SKILL.md +++ b/skills/recipe-block-focus-time/SKILL.md @@ -2,7 +2,7 @@ name: recipe-block-focus-time description: "Create recurring focus time blocks on Google Calendar to protect deep work hours." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "scheduling" diff --git a/skills/recipe-bulk-download-folder/SKILL.md b/skills/recipe-bulk-download-folder/SKILL.md index 261be02af..aca42cd72 100644 --- a/skills/recipe-bulk-download-folder/SKILL.md +++ b/skills/recipe-bulk-download-folder/SKILL.md @@ -2,7 +2,7 @@ name: recipe-bulk-download-folder description: "List and download all files from a Google Drive folder." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-collect-form-responses/SKILL.md b/skills/recipe-collect-form-responses/SKILL.md index 50e44d387..2ab5cc3bb 100644 --- a/skills/recipe-collect-form-responses/SKILL.md +++ b/skills/recipe-collect-form-responses/SKILL.md @@ -2,7 +2,7 @@ name: recipe-collect-form-responses description: "Retrieve and review responses from a Google Form." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-compare-sheet-tabs/SKILL.md b/skills/recipe-compare-sheet-tabs/SKILL.md index d5b68317d..a149eec64 100644 --- a/skills/recipe-compare-sheet-tabs/SKILL.md +++ b/skills/recipe-compare-sheet-tabs/SKILL.md @@ -2,7 +2,7 @@ name: recipe-compare-sheet-tabs description: "Read data from two tabs in a Google Sheet to compare and identify differences." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-copy-sheet-for-new-month/SKILL.md b/skills/recipe-copy-sheet-for-new-month/SKILL.md index 31ac231c4..4770b97d9 100644 --- a/skills/recipe-copy-sheet-for-new-month/SKILL.md +++ b/skills/recipe-copy-sheet-for-new-month/SKILL.md @@ -2,7 +2,7 @@ name: recipe-copy-sheet-for-new-month description: "Duplicate a Google Sheets template tab for a new month of tracking." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-create-classroom-course/SKILL.md b/skills/recipe-create-classroom-course/SKILL.md index 0e7b08fea..cc09512d6 100644 --- a/skills/recipe-create-classroom-course/SKILL.md +++ b/skills/recipe-create-classroom-course/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-classroom-course description: "Create a Google Classroom course and invite students." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "education" diff --git a/skills/recipe-create-doc-from-template/SKILL.md b/skills/recipe-create-doc-from-template/SKILL.md index 4e9312fb4..77ce816d1 100644 --- a/skills/recipe-create-doc-from-template/SKILL.md +++ b/skills/recipe-create-doc-from-template/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-doc-from-template description: "Copy a Google Docs template, fill in content, and share with collaborators." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-create-events-from-sheet/SKILL.md b/skills/recipe-create-events-from-sheet/SKILL.md index ba248e2f9..151911786 100644 --- a/skills/recipe-create-events-from-sheet/SKILL.md +++ b/skills/recipe-create-events-from-sheet/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-events-from-sheet description: "Read event data from a Google Sheets spreadsheet and create Google Calendar entries for each row." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-create-expense-tracker/SKILL.md b/skills/recipe-create-expense-tracker/SKILL.md index 86edb3c7b..8acbe9097 100644 --- a/skills/recipe-create-expense-tracker/SKILL.md +++ b/skills/recipe-create-expense-tracker/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-expense-tracker description: "Set up a Google Sheets spreadsheet for tracking expenses with headers and initial entries." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-create-feedback-form/SKILL.md b/skills/recipe-create-feedback-form/SKILL.md index 2be679184..bfb5effee 100644 --- a/skills/recipe-create-feedback-form/SKILL.md +++ b/skills/recipe-create-feedback-form/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-feedback-form description: "Create a Google Form for feedback and share it via Gmail." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-create-gmail-filter/SKILL.md b/skills/recipe-create-gmail-filter/SKILL.md index 32e856060..81913c451 100644 --- a/skills/recipe-create-gmail-filter/SKILL.md +++ b/skills/recipe-create-gmail-filter/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-gmail-filter description: "Create a Gmail filter to automatically label, star, or categorize incoming messages." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-create-meet-space/SKILL.md b/skills/recipe-create-meet-space/SKILL.md index bd998538b..a80aa2654 100644 --- a/skills/recipe-create-meet-space/SKILL.md +++ b/skills/recipe-create-meet-space/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-meet-space description: "Create a Google Meet meeting space and share the join link." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "scheduling" diff --git a/skills/recipe-create-presentation/SKILL.md b/skills/recipe-create-presentation/SKILL.md index 5cba51261..39863f403 100644 --- a/skills/recipe-create-presentation/SKILL.md +++ b/skills/recipe-create-presentation/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-presentation description: "Create a new Google Slides presentation and add initial slides." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-create-shared-drive/SKILL.md b/skills/recipe-create-shared-drive/SKILL.md index 2ebebb5fb..a377dfe6d 100644 --- a/skills/recipe-create-shared-drive/SKILL.md +++ b/skills/recipe-create-shared-drive/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-shared-drive description: "Create a Google Shared Drive and add members with appropriate roles." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-create-task-list/SKILL.md b/skills/recipe-create-task-list/SKILL.md index d79a8a0b3..63627e47c 100644 --- a/skills/recipe-create-task-list/SKILL.md +++ b/skills/recipe-create-task-list/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-task-list description: "Set up a new Google Tasks list with initial tasks." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-create-vacation-responder/SKILL.md b/skills/recipe-create-vacation-responder/SKILL.md index 3ad7c2e64..9ab338149 100644 --- a/skills/recipe-create-vacation-responder/SKILL.md +++ b/skills/recipe-create-vacation-responder/SKILL.md @@ -2,7 +2,7 @@ name: recipe-create-vacation-responder description: "Enable a Gmail out-of-office auto-reply with a custom message and date range." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-draft-email-from-doc/SKILL.md b/skills/recipe-draft-email-from-doc/SKILL.md index 993a2cfe3..2ab4c35f3 100644 --- a/skills/recipe-draft-email-from-doc/SKILL.md +++ b/skills/recipe-draft-email-from-doc/SKILL.md @@ -2,7 +2,7 @@ name: recipe-draft-email-from-doc description: "Read content from a Google Doc and use it as the body of a Gmail message." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-email-drive-link/SKILL.md b/skills/recipe-email-drive-link/SKILL.md index 17e190bcd..9a0bd235b 100644 --- a/skills/recipe-email-drive-link/SKILL.md +++ b/skills/recipe-email-drive-link/SKILL.md @@ -2,7 +2,7 @@ name: recipe-email-drive-link description: "Share a Google Drive file and email the link with a message to recipients." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-find-free-time/SKILL.md b/skills/recipe-find-free-time/SKILL.md index 4d3ab2f88..9bb40fff6 100644 --- a/skills/recipe-find-free-time/SKILL.md +++ b/skills/recipe-find-free-time/SKILL.md @@ -2,7 +2,7 @@ name: recipe-find-free-time description: "Query Google Calendar free/busy status for multiple users to find a meeting slot." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "scheduling" diff --git a/skills/recipe-find-large-files/SKILL.md b/skills/recipe-find-large-files/SKILL.md index 27610996b..5d0759179 100644 --- a/skills/recipe-find-large-files/SKILL.md +++ b/skills/recipe-find-large-files/SKILL.md @@ -2,7 +2,7 @@ name: recipe-find-large-files description: "Identify large Google Drive files consuming storage quota." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-forward-labeled-emails/SKILL.md b/skills/recipe-forward-labeled-emails/SKILL.md index 5162a63de..9b1894458 100644 --- a/skills/recipe-forward-labeled-emails/SKILL.md +++ b/skills/recipe-forward-labeled-emails/SKILL.md @@ -2,7 +2,7 @@ name: recipe-forward-labeled-emails description: "Find Gmail messages with a specific label and forward them to another address." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-generate-report-from-sheet/SKILL.md b/skills/recipe-generate-report-from-sheet/SKILL.md index 62bd1ed5a..8dcaf9e72 100644 --- a/skills/recipe-generate-report-from-sheet/SKILL.md +++ b/skills/recipe-generate-report-from-sheet/SKILL.md @@ -2,7 +2,7 @@ name: recipe-generate-report-from-sheet description: "Read data from a Google Sheet and create a formatted Google Docs report." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-label-and-archive-emails/SKILL.md b/skills/recipe-label-and-archive-emails/SKILL.md index c23febd90..7c1d71985 100644 --- a/skills/recipe-label-and-archive-emails/SKILL.md +++ b/skills/recipe-label-and-archive-emails/SKILL.md @@ -2,7 +2,7 @@ name: recipe-label-and-archive-emails description: "Apply Gmail labels to matching messages and archive them to keep your inbox clean." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-log-deal-update/SKILL.md b/skills/recipe-log-deal-update/SKILL.md index 67f98aa01..b6d6013ca 100644 --- a/skills/recipe-log-deal-update/SKILL.md +++ b/skills/recipe-log-deal-update/SKILL.md @@ -2,7 +2,7 @@ name: recipe-log-deal-update description: "Append a deal status update to a Google Sheets sales tracking spreadsheet." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "sales" diff --git a/skills/recipe-organize-drive-folder/SKILL.md b/skills/recipe-organize-drive-folder/SKILL.md index ac74d1db5..ee50e0023 100644 --- a/skills/recipe-organize-drive-folder/SKILL.md +++ b/skills/recipe-organize-drive-folder/SKILL.md @@ -2,7 +2,7 @@ name: recipe-organize-drive-folder description: "Create a Google Drive folder structure and move files into the right locations." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-plan-weekly-schedule/SKILL.md b/skills/recipe-plan-weekly-schedule/SKILL.md index f8445ac10..41a0e5658 100644 --- a/skills/recipe-plan-weekly-schedule/SKILL.md +++ b/skills/recipe-plan-weekly-schedule/SKILL.md @@ -2,7 +2,7 @@ name: recipe-plan-weekly-schedule description: "Review your Google Calendar week, identify gaps, and add events to fill them." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "scheduling" diff --git a/skills/recipe-post-mortem-setup/SKILL.md b/skills/recipe-post-mortem-setup/SKILL.md index 88dcfc835..81182cfb5 100644 --- a/skills/recipe-post-mortem-setup/SKILL.md +++ b/skills/recipe-post-mortem-setup/SKILL.md @@ -2,7 +2,7 @@ name: recipe-post-mortem-setup description: "Create a Google Docs post-mortem, schedule a Google Calendar review, and notify via Chat." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "engineering" diff --git a/skills/recipe-reschedule-meeting/SKILL.md b/skills/recipe-reschedule-meeting/SKILL.md index 83be0954f..23c4b5ed7 100644 --- a/skills/recipe-reschedule-meeting/SKILL.md +++ b/skills/recipe-reschedule-meeting/SKILL.md @@ -2,7 +2,7 @@ name: recipe-reschedule-meeting description: "Move a Google Calendar event to a new time and automatically notify all attendees." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "scheduling" diff --git a/skills/recipe-review-meet-participants/SKILL.md b/skills/recipe-review-meet-participants/SKILL.md index ae54f6301..3c264b3f8 100644 --- a/skills/recipe-review-meet-participants/SKILL.md +++ b/skills/recipe-review-meet-participants/SKILL.md @@ -2,7 +2,7 @@ name: recipe-review-meet-participants description: "Review who attended a Google Meet conference and for how long." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-review-overdue-tasks/SKILL.md b/skills/recipe-review-overdue-tasks/SKILL.md index 396ca928f..1623b4a54 100644 --- a/skills/recipe-review-overdue-tasks/SKILL.md +++ b/skills/recipe-review-overdue-tasks/SKILL.md @@ -2,7 +2,7 @@ name: recipe-review-overdue-tasks description: "Find Google Tasks that are past due and need attention." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-save-email-attachments/SKILL.md b/skills/recipe-save-email-attachments/SKILL.md index 2ea287eef..ba8b5ba0b 100644 --- a/skills/recipe-save-email-attachments/SKILL.md +++ b/skills/recipe-save-email-attachments/SKILL.md @@ -2,7 +2,7 @@ name: recipe-save-email-attachments description: "Find Gmail messages with attachments and save them to a Google Drive folder." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-save-email-to-doc/SKILL.md b/skills/recipe-save-email-to-doc/SKILL.md index 5554e31d5..a89b9d240 100644 --- a/skills/recipe-save-email-to-doc/SKILL.md +++ b/skills/recipe-save-email-to-doc/SKILL.md @@ -2,7 +2,7 @@ name: recipe-save-email-to-doc description: "Save a Gmail message body into a Google Doc for archival or reference." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-schedule-recurring-event/SKILL.md b/skills/recipe-schedule-recurring-event/SKILL.md index 152d3e576..6f5aa95f1 100644 --- a/skills/recipe-schedule-recurring-event/SKILL.md +++ b/skills/recipe-schedule-recurring-event/SKILL.md @@ -2,7 +2,7 @@ name: recipe-schedule-recurring-event description: "Create a recurring Google Calendar event with attendees." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "scheduling" diff --git a/skills/recipe-send-team-announcement/SKILL.md b/skills/recipe-send-team-announcement/SKILL.md index 70b4ee0b2..1a8319f04 100644 --- a/skills/recipe-send-team-announcement/SKILL.md +++ b/skills/recipe-send-team-announcement/SKILL.md @@ -2,7 +2,7 @@ name: recipe-send-team-announcement description: "Send a team announcement via both Gmail and a Google Chat space." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "communication" diff --git a/skills/recipe-share-doc-and-notify/SKILL.md b/skills/recipe-share-doc-and-notify/SKILL.md index 9a5f86954..4406ec9a7 100644 --- a/skills/recipe-share-doc-and-notify/SKILL.md +++ b/skills/recipe-share-doc-and-notify/SKILL.md @@ -2,7 +2,7 @@ name: recipe-share-doc-and-notify description: "Share a Google Docs document with edit access and email collaborators the link." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-share-event-materials/SKILL.md b/skills/recipe-share-event-materials/SKILL.md index ff730a54a..bef7819dd 100644 --- a/skills/recipe-share-event-materials/SKILL.md +++ b/skills/recipe-share-event-materials/SKILL.md @@ -2,7 +2,7 @@ name: recipe-share-event-materials description: "Share Google Drive files with all attendees of a Google Calendar event." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-share-folder-with-team/SKILL.md b/skills/recipe-share-folder-with-team/SKILL.md index 5c5505688..aed9901d5 100644 --- a/skills/recipe-share-folder-with-team/SKILL.md +++ b/skills/recipe-share-folder-with-team/SKILL.md @@ -2,7 +2,7 @@ name: recipe-share-folder-with-team description: "Share a Google Drive folder and all its contents with a list of collaborators." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-sync-contacts-to-sheet/SKILL.md b/skills/recipe-sync-contacts-to-sheet/SKILL.md index d924426b7..6227dfb1c 100644 --- a/skills/recipe-sync-contacts-to-sheet/SKILL.md +++ b/skills/recipe-sync-contacts-to-sheet/SKILL.md @@ -2,7 +2,7 @@ name: recipe-sync-contacts-to-sheet description: "Export Google Contacts directory to a Google Sheets spreadsheet." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "productivity" diff --git a/skills/recipe-watch-drive-changes/SKILL.md b/skills/recipe-watch-drive-changes/SKILL.md index 14f3d79a8..b239de57b 100644 --- a/skills/recipe-watch-drive-changes/SKILL.md +++ b/skills/recipe-watch-drive-changes/SKILL.md @@ -2,7 +2,7 @@ name: recipe-watch-drive-changes description: "Subscribe to change notifications on a Google Drive file or folder." metadata: - version: 0.22.5 + version: 0.23.0 openclaw: category: "recipe" domain: "engineering"