From a3aff111a6df37985093e38b3cff0e7594bd001d Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Mon, 31 Aug 2026 04:12:43 +0000 Subject: [PATCH 1/2] ## Python SDK Changes: * `glean.client.chat.create()`: * `request.messages[].fragments[]` **Changed** * `response.messages[].fragments[]` **Changed** * `glean.client.chat.retrieve()`: `response.chat_result.chat.messages[].fragments[]` **Changed** * `glean.client.chat.create_stream()`: * `request.messages[].fragments[]` **Changed** * `glean.client.agents.run_stream()`: `error.authentication_suggestions[].request_type.enum(sandbox_egress)` **Added** * `glean.client.agents.run()`: `error.authentication_suggestions[].request_type.enum(sandbox_egress)` **Added** --- .speakeasy/gen.lock | 156 +++++++++--------- .speakeasy/gen.yaml | 2 +- .speakeasy/glean-merged-spec.yaml | 102 ++++++++---- .speakeasy/tests.arazzo.yaml | 12 +- .speakeasy/workflow.lock | 12 +- RELEASES.md | 12 +- docs/models/chatmessagefragment.md | 22 +-- docs/models/importagentrequest.md | 16 +- docs/models/platformagentscreaterunrequest.md | 8 +- docs/models/platformsearchrequest.md | 16 +- docs/models/platformskillsupdaterequest.md | 8 +- docs/models/servertoolrequestrequesttype.md | 3 +- docs/models/servertoolresponse.md | 3 + docs/models/servertoolresponserequesttype.md | 3 +- docs/sdks/agents/README.md | 7 +- docs/sdks/chatsdk/README.md | 2 +- docs/sdks/clientagents/README.md | 2 +- docs/sdks/search/README.md | 20 +-- docs/sdks/skills/README.md | 6 +- pyproject.toml | 2 +- src/glean/api_client/_version.py | 6 +- src/glean/api_client/client_agents.py | 4 +- .../api_client/models/chatmessagefragment.py | 6 + .../api_client/models/importagentrequest.py | 4 +- .../api_client/models/servertoolrequest.py | 2 + .../api_client/models/servertoolresponse.py | 8 + src/glean/api_client/utils/retries.py | 2 + .../models/components/chatmessagefragment.go | 3 + .../models/components/importagentrequest.go | 2 +- .../models/components/servertoolrequest.go | 3 + .../models/components/servertoolresponse.go | 6 + tests/test_agents.py | 7 +- tests/test_chat_sdk.py | 4 +- tests/test_messages.py | 2 +- tests/test_search.py | 1 - tests/test_skills.py | 6 +- tests/test_summarize.py | 5 +- 37 files changed, 289 insertions(+), 196 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index fb978c5e..f905135b 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: 3e3290ca-0ee8-4981-b1bc-14536048fa63 management: - docChecksum: 89c2eac364945e9c2e201f80cb8a2d72 + docChecksum: fb9d8ae7cc1a12941bd14e32d7c6e88a docVersion: 0.9.0 - speakeasyVersion: 1.795.1 - generationVersion: 2.932.9 - releaseVersion: 0.16.0 - configChecksum: 305d1b3865da828cf96c1c98829ad9ba + speakeasyVersion: 1.796.2 + generationVersion: 2.933.0 + releaseVersion: 0.16.1 + configChecksum: c4ea74bb21e39957d292092ac1c8c45c repoURL: https://github.com/gleanwork/api-client-python.git installationURL: https://github.com/gleanwork/api-client-python.git published: true persistentEdits: - generation_id: cd37a2f4-9877-4161-9fc7-f557dd9e4231 - pristine_commit_hash: 72efbc39af4ca0a33ff8d10dc9395be6ab128f55 - pristine_tree_hash: 7d506ac8f9bdc4b783207925aee89b353e41ad64 + generation_id: 2ec0a2dc-1afd-4737-a70d-023685035844 + pristine_commit_hash: 9bc8df8f6902ab2ec4c4dd08d1678d7559fe32fa + pristine_tree_hash: 956d06de7dfd6764031e4c0a2076718d2a4f8b1b features: python: acceptHeaders: 3.0.0 @@ -22,7 +22,7 @@ features: callbacks: 2.0.0 configurableModuleName: 0.2.0 constsAndDefaults: 1.0.7 - core: 6.1.0 + core: 6.1.2 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 devContainers: 3.0.0 @@ -45,7 +45,7 @@ features: nameOverrides: 3.0.3 nullables: 1.0.2 responseFormat: 1.1.0 - retries: 3.1.0 + retries: 3.1.1 sdkHooks: 1.3.0 tests: 1.19.10 unions: 3.1.9 @@ -513,8 +513,8 @@ trackedFiles: pristine_git_object: 66737ea5adad94131631be69fbb4a398a43fd94b docs/models/chatmessagefragment.md: id: 9f4738df6b1b - last_write_checksum: sha1:7f004324dfbdb6182e010a2e0121d9ad026f9c5c - pristine_git_object: 1a6f0ed225844450fb6ea131033c438d5eb60eb3 + last_write_checksum: sha1:fcca5d53ea3bffabb004a2273d0bc3d97d6f0c08 + pristine_git_object: 9fbc47f847fc288e59c2bd50629097fe3a378de4 docs/models/chatmetadata.md: id: 04d1111a98ac last_write_checksum: sha1:3e94025fd78eea7b18064ba4b5741bec7286e912 @@ -1761,8 +1761,8 @@ trackedFiles: pristine_git_object: 4f71310b6864d240adb6739549f5f8fee4807538 docs/models/importagentrequest.md: id: c6a418248afc - last_write_checksum: sha1:cfaaea16e4b54ec0c3d0e4a7ccd4161c0a1d9ba1 - pristine_git_object: d9f9e2a477b577b5129c6693aafe52245d086670 + last_write_checksum: sha1:a99e2f61be963e0a18c02ed6da4c51941980a148 + pristine_git_object: e45868df24e20d3a9ff002adde0e73bec73957f5 docs/models/importagentrequestrequest.md: id: d39e542ebba0 last_write_checksum: sha1:e47ad7854090e0542b6793a94800b40290268dc4 @@ -2253,8 +2253,8 @@ trackedFiles: pristine_git_object: 6ba12306df49a4d5a78a1c53269fc78d2672b7b7 docs/models/platformagentscreaterunrequest.md: id: c9a4aa1f28b2 - last_write_checksum: sha1:34bcec4aebfc10fa3633b22838cca8370e56496b - pristine_git_object: df93145879eef0a308f74b9241ac16c9b6acacb9 + last_write_checksum: sha1:98d453933f6d93d158222fedb82b67180880266c + pristine_git_object: 1e66f04a2f7c8e8d71c1cc063d9c441171fe92af docs/models/platformagentscreaterunresponse.md: id: 24710130cfb1 last_write_checksum: sha1:7060b94ca4737945356ac99814fe4cebec042bfe @@ -2453,8 +2453,8 @@ trackedFiles: pristine_git_object: dc35339f57048b4a4f944d31159cae21f09d4f32 docs/models/platformsearchrequest.md: id: 9f3be4029289 - last_write_checksum: sha1:044590ee0e94f1b366a29836b9b4b68767d3f384 - pristine_git_object: 59d2dc190095f5bc22afa1240fb3da2a58bdf07d + last_write_checksum: sha1:b690be7d344311de3865bb4e19c32de3c2e1e470 + pristine_git_object: 1972bc5104d040207fa34c6e87b6346b707c9c2f docs/models/platformsearchresponse.md: id: b20c8f7128fc last_write_checksum: sha1:2a830bd20b46e9d3079e7445a39122c9a2457320 @@ -2577,8 +2577,8 @@ trackedFiles: pristine_git_object: 566f1092589cad8787c57dd7042e2f2c71ea49b4 docs/models/platformskillsupdaterequest.md: id: f8592c4371a6 - last_write_checksum: sha1:32c122889d11396f07aef39f80135d7c15880d70 - pristine_git_object: 3ea30e833501442e500b5572098b632d97d0f7ab + last_write_checksum: sha1:fd941f884d06bbe3011eb8e6289bdcb55e54e4b2 + pristine_git_object: 7bf2215d7b76b6de9649f86008d3a47360868e95 docs/models/platformskillsyncresponse.md: id: b449d9f6b2c6 last_write_checksum: sha1:f8f1d23d37aac8ede523cdb7fa744e9c9dc55cbc @@ -3117,16 +3117,16 @@ trackedFiles: pristine_git_object: 180a4193ec93c68e238c6618ecd50a4f7bd67e84 docs/models/servertoolrequestrequesttype.md: id: 06e29cd74eb4 - last_write_checksum: sha1:29be142660f33ad5ca2399f1da87f21c5757c503 - pristine_git_object: 7a1e67214279e73d186e24e24900a1834a96a416 + last_write_checksum: sha1:fac9094b720e430195d4cd22a93be49db884c522 + pristine_git_object: a35c91699c5322569374d81f62ffed03b7e37577 docs/models/servertoolresponse.md: id: 533b7f497998 - last_write_checksum: sha1:991ff0a35963108d59aad7e0bad9c15b0ec05af5 - pristine_git_object: a29914c141c0dce838c27ab19deb3e13f5369807 + last_write_checksum: sha1:5ccff00d517c1b648a9c7033db5f08b1b054380c + pristine_git_object: d27cfb3a2dae42ed597add533e00d04b388ba907 docs/models/servertoolresponserequesttype.md: id: 55248e6ccbdb - last_write_checksum: sha1:7e5ddff2060ef3f7530874736499225d1cebaedc - pristine_git_object: ad53ed32a703ab9959503cdb5f28410a778a921d + last_write_checksum: sha1:1d6691fdb715c735d272e313f9c2bbd4a491ce55 + pristine_git_object: 537662b15a533b8fa73430270d758363c3a2b878 docs/models/sessioninfo.md: id: 4f35f0cd75e6 last_write_checksum: sha1:54947b191223cc0100d33978470ef085255e0b45 @@ -3589,8 +3589,8 @@ trackedFiles: pristine_git_object: 61dd41f0319201cc105e29174ab1cc0018cecbce docs/sdks/agents/README.md: id: 5965d8232fd8 - last_write_checksum: sha1:578b795ea5a1511d0f0540a8d975eb93ca34366f - pristine_git_object: c3384d9d05bd776a0500f2b128218024b22a00da + last_write_checksum: sha1:5b7b93667d435959548d8de1e845783f047e12af + pristine_git_object: f7fb5a042c4484456d1b0065c874b95d06909fb7 docs/sdks/announcements/README.md: id: 3d2e130a217c last_write_checksum: sha1:ecfa655bb27dee6890656542cfafda0aa6ed1ab9 @@ -3601,16 +3601,16 @@ trackedFiles: pristine_git_object: 85153af7ec594c2dbd1e4a8c2eba5ce713796265 docs/sdks/chatsdk/README.md: id: 83b4ee321663 - last_write_checksum: sha1:47740532523da2b553e05be325f4af9de0fcd998 - pristine_git_object: fbb19c8f85059b35437ecc3f384f449499bd38cc + last_write_checksum: sha1:80b27be92fe4d96fca14313eaa9fcb1524f7bac1 + pristine_git_object: f541f724429e74e02ddfdc6ae0c99d1fdc38d04d docs/sdks/clientactivity/README.md: id: a309613986a5 last_write_checksum: sha1:d9737458d891593ba2fb3372ab6e60ea728fe9a5 pristine_git_object: 456e90e3a787c1e62f09a17d297f1cf756c94d49 docs/sdks/clientagents/README.md: id: 8e00e6d6b64e - last_write_checksum: sha1:43ebb3e3cf6d1b6fa0db0b18d6329f5fd5e34d39 - pristine_git_object: e54900d95d497bbd20dc36b1924093114a35cc99 + last_write_checksum: sha1:69f7c787ac3864656be5d90ca2b1471ac5db6150 + pristine_git_object: 97c3466397e7f69a19393bdb1959c3065c9b4080 docs/sdks/clientauthentication/README.md: id: 463bffe80b61 last_write_checksum: sha1:406e18430be9d365f6427c804b3992c880c39498 @@ -3705,12 +3705,12 @@ trackedFiles: pristine_git_object: 5dd26e03b79389a3e71e90f9a3ce29b7fa384dd9 docs/sdks/search/README.md: id: 5c534716244c - last_write_checksum: sha1:295a5230f6ddc2ec33782b272b44e8d041a8a1e8 - pristine_git_object: 2367ff8a3d48bca392eedfc035583e9806bb5b98 + last_write_checksum: sha1:4e2148cb7fce20b3afd277cd417a1711eb4299c9 + pristine_git_object: e8db7383c463ca50b1521dbe4ce637697dba67de docs/sdks/skills/README.md: id: 3a14a5c90791 - last_write_checksum: sha1:49e30084ae2c99ba6a53d5aa6e0851e63cc2dba8 - pristine_git_object: 8cdfbc33daa86ae3521cb79c6fdc38bebff866cf + last_write_checksum: sha1:714358973925fabec1cdce11f90d590b401a0312 + pristine_git_object: b89e44039e28c1812c19444a36c32f902463cac9 docs/sdks/tools/README.md: id: 044286549bac last_write_checksum: sha1:9b9a8e80c1d16018bd66150ba482b83825d6cf67 @@ -3737,8 +3737,8 @@ trackedFiles: pristine_git_object: 79e388be87446ab6a4064b372bad0e8376d0cb5e pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:c24376fbeda6b68fea9fac8500c6133e9a13f7e5 - pristine_git_object: d391b6dbed7565288eed49d23677f789e3c487eb + last_write_checksum: sha1:47c4c996133e0a3adbcf155d937d19aa4c5a7d25 + pristine_git_object: 3e07b290191d20adb52b0682dcefceb99e4ffd4c scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:c2c83f71dea61eb50c9e05da83b16d18b4da8794 @@ -3765,8 +3765,8 @@ trackedFiles: pristine_git_object: 55f23c1feabfedeb7e8cd5bea8b910f0ae0b77d9 src/glean/api_client/_version.py: id: 0ce22b26136b - last_write_checksum: sha1:6da27c6d8ff767845d1be3bae351052f981443bc - pristine_git_object: 6a6123654415d50089aa40e1b02b93a5b42437ec + last_write_checksum: sha1:5a1b915ca864b7c3d74ee1d7dd28515f488953a7 + pristine_git_object: a511f7fd6941269d63893322ef0a654fe236d8a9 src/glean/api_client/agents.py: id: b925701a9217 last_write_checksum: sha1:1d4b152d9d9260d1c97d4983f521f30b5cfa1085 @@ -3797,8 +3797,8 @@ trackedFiles: pristine_git_object: 42aa2ffce8105a293a0a02353f41f083136fdc5f src/glean/api_client/client_agents.py: id: 61b53ccd2b3b - last_write_checksum: sha1:fe9820c6802f3a7fc2bd2e7076a2eec27f900622 - pristine_git_object: 814240564355d980d80b74995f8fb124679d033d + last_write_checksum: sha1:efa0b138b2cd790201bd7ecb60cc2ad507774207 + pristine_git_object: 01d443da1fcac6c073178f43e5402e46ee82502e src/glean/api_client/client_authentication.py: id: 0b237b7c1b11 last_write_checksum: sha1:4217581430cfa2131471291a6ce36854af64dcb7 @@ -4257,8 +4257,8 @@ trackedFiles: pristine_git_object: 15fd378692330c508ca2b7c0c8df8070e7c688a3 src/glean/api_client/models/chatmessagefragment.py: id: 86344b2c1c3d - last_write_checksum: sha1:0a9e72b24f34fce355b038bfe71685bc2373fd75 - pristine_git_object: a8d3093ba7d9f481f265f0a94a407bb6b0bb6c6d + last_write_checksum: sha1:dbeb483ab92b411fc03a38b42769292ded7a0201 + pristine_git_object: 48632a889a6d4c056d7041337c0cf82c9317d933 src/glean/api_client/models/chatmetadata.py: id: 0469e4eebd69 last_write_checksum: sha1:6665183f9ae42b7258ed3b47d8bedbad19c5c7f7 @@ -5297,8 +5297,8 @@ trackedFiles: pristine_git_object: d30f537ead3a77557adbd3b857cf4b2fbc9a4bf3 src/glean/api_client/models/importagentrequest.py: id: e548b6034e1c - last_write_checksum: sha1:9fd1a71f0c294cffa3edf687d5d668f4974b065c - pristine_git_object: 92ac1ff0289fba3af470ec676a2f357ee651795f + last_write_checksum: sha1:081f2ec5fa96a0352f2960b1cb393fad6720b759 + pristine_git_object: e1471e404bdfb55693b03171155746261c574dfe src/glean/api_client/models/importagentresponse.py: id: 22a3fa434b8b last_write_checksum: sha1:a3e9cc2d8684fe175adf720d8094ad1a0759cca8 @@ -6369,12 +6369,12 @@ trackedFiles: pristine_git_object: 61ec44733bdc5ae0deb7b9c710f42b67246990d8 src/glean/api_client/models/servertoolrequest.py: id: 68e8f4700c18 - last_write_checksum: sha1:b5e17e1e4bfaa80ea7d67de11eeb9a330ef2134a - pristine_git_object: 2e1f8e5351447ffec48f4f640f0c4fe0637f58fb + last_write_checksum: sha1:fd353a890565dffa872f1ed76e8276c713c72674 + pristine_git_object: c88abbe5702b9dfa72709ac74658c54c726f7753 src/glean/api_client/models/servertoolresponse.py: id: 48123cc8f7a6 - last_write_checksum: sha1:b4df3fbbf54189a5896bd50a4001050d3263d236 - pristine_git_object: 90ec004987f466c63a193d05eade090fa4f90dc1 + last_write_checksum: sha1:20105bc9f50d17cf32c0ed6e2985a06acd7c7e5c + pristine_git_object: 8af507a2405c4555021fba915084ca3c8d170d6c src/glean/api_client/models/sessioninfo.py: id: 4127a11bdfbc last_write_checksum: sha1:109e98c476f5bf747e35b7051e2702961c518167 @@ -6845,8 +6845,8 @@ trackedFiles: pristine_git_object: 591415af8e64baa410627b507d2740afb5387d13 src/glean/api_client/utils/retries.py: id: 36d4cce6fbf6 - last_write_checksum: sha1:481dfc7cd6a07a3987f0f443e91bee72888ae41d - pristine_git_object: c7418a62826fc73990a52e70df0d54093c5e2a57 + last_write_checksum: sha1:251e4dd969bb6c06025afe1bad1b5035e94c2060 + pristine_git_object: 406c1e7c36c7a4fa4fb48bb567d254e2803e1792 src/glean/api_client/utils/security.py: id: 5c4255995c2c last_write_checksum: sha1:355ba142fd72ec019e46b9aadb1da7172c17a312 @@ -7809,8 +7809,8 @@ trackedFiles: pristine_git_object: f06157bccfa3a63727745952da0cfa5d323c3d23 tests/mockserver/internal/sdk/models/components/chatmessagefragment.go: id: 8d14e05d6934 - last_write_checksum: sha1:d41f5568b67d2f41291d7fc880ef28fad6d59a72 - pristine_git_object: 632727b0852cefdc9b6ce1267faeddd4b164a1d0 + last_write_checksum: sha1:76403862fa202942fb3aece99946850c0d1f6f21 + pristine_git_object: 99f8ed7d37dc7334d81d332a7c25098d41b14906 tests/mockserver/internal/sdk/models/components/chatmetadata.go: id: 53881e1500d3 last_write_checksum: sha1:2069155b9191362259f87a10f5eb7426b3bad1b8 @@ -8641,8 +8641,8 @@ trackedFiles: pristine_git_object: 537d53a4d6235b3f67a08a6b3c08f88a6782f8ec tests/mockserver/internal/sdk/models/components/importagentrequest.go: id: e32c8cfe1620 - last_write_checksum: sha1:75b76342950aac00545d4ea1d5b276b44441d765 - pristine_git_object: f4d77d24a94bc7b21ea6f064c917c24b2a7c7af7 + last_write_checksum: sha1:c9c53dcc1d4a41358ceaaa5af0cb024b4c5088f2 + pristine_git_object: 1dd4383e619f5890ee3038c5aca40d12e79c538d tests/mockserver/internal/sdk/models/components/importagentresponse.go: id: f99e9c9fe605 last_write_checksum: sha1:bf26c40925bea852b8a302a4c3c585707a1b1622 @@ -9517,12 +9517,12 @@ trackedFiles: pristine_git_object: 207653771e5bb2ae5982853962b6318d8c83229f tests/mockserver/internal/sdk/models/components/servertoolrequest.go: id: 574fa6f36078 - last_write_checksum: sha1:6690ff38d976f82a1c585d4c9ab3cebfd1ad2828 - pristine_git_object: 3bf8c6b39892210207a22b82d84673f88b5659c1 + last_write_checksum: sha1:5797ecad57b0bd287b321202bb3c8c6c7cb84c5f + pristine_git_object: c4437ec5a8d0e2853f75f41a25e9d9536c120c8e tests/mockserver/internal/sdk/models/components/servertoolresponse.go: id: 621e6633f5d6 - last_write_checksum: sha1:4b508f1f965688a2066e0c4f61c03a9d736516e6 - pristine_git_object: f4b84c3b0ec23c99703c36f92065a4071d389743 + last_write_checksum: sha1:692af6a4cbc61ff2f03245685fc6202e4f253f5b + pristine_git_object: a518da25fe1c2a61640f0b1c2e9de510f4a705d5 tests/mockserver/internal/sdk/models/components/sessioninfo.go: id: 23183e4b8fb8 last_write_checksum: sha1:d0a7c3cb679745701743e6ec68c15cf72b3e0a2f @@ -10641,8 +10641,8 @@ trackedFiles: pristine_git_object: db4221c9f5953adc8f8219979060f1248ae5c342 tests/test_agents.py: id: 2eb70a860f3a - last_write_checksum: sha1:6e1b73ba0d82b9ea9bfa33819b2293f35d344dae - pristine_git_object: 8b75a0e000414b7fb57a82ac2523251ca40fc12e + last_write_checksum: sha1:78899739204e9e80aae4337c6396a57ab816a4e0 + pristine_git_object: 39a3f77bf4a5c99d3def7a0bb99493a9ef83e95c tests/test_announcements.py: id: 720cc07fca06 last_write_checksum: sha1:1d0dcab6446633bc6809bc67e14b6cc1755aa319 @@ -10657,8 +10657,8 @@ trackedFiles: pristine_git_object: d2b02f269ac418b9a9240772f28ab1bd3cfa4997 tests/test_chat_sdk.py: id: d6e6d5c5a1b2 - last_write_checksum: sha1:72cb3066bc3db6fba04a615d4a8f4505de1de29c - pristine_git_object: 41b3a54c70ea6fa17f921c13ad06a07899fe0f51 + last_write_checksum: sha1:8517d306da079161e7be794bccd264e110a9dbad + pristine_git_object: 0ea26010bc53d5f562beb6a9637aa40cab8c03d6 tests/test_client.py: id: 6b61d4b06ccc last_write_checksum: sha1:df970d19cdb9f9e057722699dc73965b6f9b1758 @@ -10745,8 +10745,8 @@ trackedFiles: pristine_git_object: 6cc8aeec3c52329d389081db0a27f10f53f214b9 tests/test_messages.py: id: be23089b1f8b - last_write_checksum: sha1:a91c985cd1d11560059dc448b10e0c7b75ed60e5 - pristine_git_object: dfdc18641f0d6c38d84b4603ad2da71f75f2e13c + last_write_checksum: sha1:b7415512608102fa07b1990a350a7da66946fe46 + pristine_git_object: 636f01d348f30db3ee81985044634511b615af16 tests/test_people.py: id: 37c243940039 last_write_checksum: sha1:2b78b1c5ea17f267895188b1b48ff9fe2bc19f17 @@ -10765,16 +10765,16 @@ trackedFiles: pristine_git_object: 3fa82f944c8693f534f71d96c489225c3f65cb5d tests/test_search.py: id: dd86606b335f - last_write_checksum: sha1:40d22ed4eca2f98edacba5f3f9122f7f6ccd6e89 - pristine_git_object: c3b37c851073899ae790451988d2617aa065ec9c + last_write_checksum: sha1:a92637edcfdef5c493a5ceb2ba468b8d75a6f05a + pristine_git_object: 015f97b862bc14fabb30c23d2c1eecbad3a532f6 tests/test_skills.py: id: ac5db26bd6b1 - last_write_checksum: sha1:88782257782c4a24a77f5ab5d8e50d1129086b6f - pristine_git_object: 98d7f69d362a6770ee01a6c3d9f3684b01a6cbd6 + last_write_checksum: sha1:51a01a7104693f6ddde3496296f520a0f1c6243d + pristine_git_object: 63587d5a9e7b7e506ce9daf00d51ce92afb56035 tests/test_summarize.py: id: a255d8a6f627 - last_write_checksum: sha1:6244d4da1522f443776e78aeb31dd83ebdc90c42 - pristine_git_object: 2b5d1f38b094214933fc3b8da79ff8ed979c5122 + last_write_checksum: sha1:d0245ffca1533446942ac2b0f1109d4f6e9888b4 + pristine_git_object: f9c494d59cc7d73c8b3ea1c965b544c79625198a tests/test_tools.py: id: 70889bdf7321 last_write_checksum: sha1:e9e37efd6a65d805c02d70d548df9c87dd062b0e @@ -11764,7 +11764,7 @@ examples: path: agent_id: "" requestBody: - application/json: {"messages": [{"role": "USER", "content": []}], "stream": false} + application/json: {"messages": [{"role": "USER", "content": [{"text": "What is our parental leave policy?", "type": "text"}]}], "stream": false} responses: "200": application/json: {"run": {"agent_id": "", "messages": [{"role": "USER", "content": []}], "status": "error"}, "messages": [{"role": "USER", "content": []}], "request_id": ""} @@ -11929,7 +11929,7 @@ examples: platform-chat-create: speakeasy-default-platform-chat-create: requestBody: - application/json: {"input": "", "stream": false, "store": true} + application/json: {"input": "What is our parental leave policy?", "stream": false, "store": true} responses: "200": application/json: {"id": "", "object": "RESPONSE", "created_at": "2026-05-19T05:32:52.505Z", "status": "COMPLETED", "output": [{"type": "MESSAGE", "role": "ASSISTANT", "content": [{"type": "OUTPUT_TEXT", "text": ""}]}], "store": false, "request_id": ""} @@ -11941,7 +11941,7 @@ examples: platform-skills-import: speakeasy-default-platform-skills-import: requestBody: - application/json: {"source_urls": [""]} + application/json: {"source_urls": ["https://github.com/anthropics/skills/tree/main/skills/skill-creator"]} responses: "200": application/json: {"skills": [], "request_id": ""} @@ -11952,7 +11952,7 @@ examples: platform-skills-preview-source: speakeasy-default-platform-skills-preview-source: requestBody: - application/json: {"source_url": "https://ugly-information.name/", "stream": false} + application/json: {"source_url": "https://github.com/anthropics/skills", "stream": false} responses: "200": application/json: {"skills": [], "failures": [{"source_url": "https://slimy-availability.org", "code": "SKILL_FETCH_FAILED", "detail": ""}], "request_id": ""} @@ -11967,7 +11967,7 @@ examples: path: skill_id: "" requestBody: - application/json: {"status": "DISABLED"} + application/json: {"status": "ENABLED"} responses: "200": application/json: {"skill": {"id": "", "display_name": "Afton14", "description": "taut netsuke duh sonata boastfully elegantly management come", "latest_version": 425795, "latest_minor_version": 741364, "status": "DISABLED", "origin": "CUSTOM", "owner": {"name": ""}, "created_at": "2024-12-20T01:31:39.364Z", "updated_at": "2025-12-04T02:59:37.124Z"}, "request_id": ""} @@ -12351,7 +12351,7 @@ generatedTests: platform-trigger-presets-get: "2026-08-21T02:33:03Z" platform-trigger-presets-input-values-list: "2026-08-21T02:33:03Z" platform-trigger-presets-events-search: "2026-08-21T02:33:03Z" -releaseNotes: "## Python SDK Changes:\n* `glean.chat.create()`: \n * `request.input.union(Array)[].role` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n* `glean.triggers.list_presets()`: **Added**\n* `glean.triggers.list_preset_input_values()`: **Added**\n* `glean.triggers.update()`: **Added**\n* `glean.triggers.delete()`: **Added**\n* `glean.triggers.search_events()`: **Added**\n* `glean.triggers.create()`: **Added**\n* `glean.triggers.get_preset()`: **Added**\n* `glean.triggers.get()`: **Added**\n* `glean.triggers.search_preset_events()`: **Added**\n* `glean.triggers.list()`: **Added**\n* `glean.client.chat.create()`: \n * `request.messages[].citations[].source_skill` **Added**\n * `response.messages[].citations[].source_skill` **Added**\n* `glean.client.chat.retrieve()`: `response.chat_result.chat.messages[].citations[].source_skill` **Added**\n* `glean.client.chat.create_stream()`: \n * `request.messages[].citations[].source_skill` **Added**\n* `glean.client.search.retrieve_feed()`: \n * `request.categories[]` **Changed**\n * `response.results[]` **Changed**\n" +releaseNotes: "## Python SDK Changes:\n* `glean.client.chat.create()`: \n * `request.messages[].fragments[]` **Changed**\n * `response.messages[].fragments[]` **Changed**\n* `glean.client.chat.retrieve()`: `response.chat_result.chat.messages[].fragments[]` **Changed**\n* `glean.client.chat.create_stream()`: \n * `request.messages[].fragments[]` **Changed**\n* `glean.client.agents.run_stream()`: `error.authentication_suggestions[].request_type.enum(sandbox_egress)` **Added**\n* `glean.client.agents.run()`: `error.authentication_suggestions[].request_type.enum(sandbox_egress)` **Added**\n" generatedFiles: - .devcontainer/README.md - .devcontainer/devcontainer.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 03fd977a..382692e0 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -34,7 +34,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true python: - version: 0.16.0 + version: 0.16.1 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index c9540561..8392d80c 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -1,9 +1,9 @@ -openapi: 3.0.0 +openapi: 3.1.0 info: version: "0.9.0" title: Glean API - x-source-commit-sha: ae20e37cc1d6786192c975f846fbe57527d94d7e - x-open-api-commit-sha: 68a8939fe1b80a3a659ea78c778a5ddfdcb8e999 + x-source-commit-sha: f48273c3600db7205cbeadc33bbf4f0fd618937e + x-open-api-commit-sha: 16a45a8fc5024d56778fb90ec329726a02cd0107 description: | # Introduction In addition to the data sources that Glean has built-in support for, Glean also provides a REST API that enables customers to put arbitrary content in the search index. This is useful, for example, for doing permissions-aware search over content in internal tools that reside on-prem as well as for searching over applications that Glean does not currently support first class. In addition these APIs allow the customer to push organization data (people info, organization structure etc) into Glean. @@ -6747,6 +6747,8 @@ components: PlatformAgentsSearchRequest: type: object additionalProperties: false + example: + name: HR Policy Agent properties: name: type: string @@ -7070,6 +7072,12 @@ components: additionalProperties: false description: | Request to run an agent. A request MUST supply either `messages` (a non-empty conversation) or `input` (for input-form triggered agents). + example: + messages: + - role: USER + content: + - text: What is our parental leave policy? + type: text properties: input: type: object @@ -7186,6 +7194,8 @@ components: additionalProperties: false required: - input + example: + input: What is our parental leave policy? properties: input: description: | @@ -7327,8 +7337,9 @@ components: type: string minLength: 1 page_number: - type: integer - nullable: true + type: + - integer + - "null" PlatformChatCitationAnnotation: type: object additionalProperties: false @@ -7346,16 +7357,19 @@ components: items: $ref: "#/components/schemas/PlatformChatCitationSource" start_index: - type: integer + type: + - integer + - "null" minimum: 0 - nullable: true end_index: - type: integer + type: + - integer + - "null" minimum: 0 - nullable: true snippets: - type: array - nullable: true + type: + - array + - "null" items: $ref: "#/components/schemas/PlatformChatCitationSnippet" PlatformChatOutputTextContent: @@ -7432,9 +7446,10 @@ components: store: type: boolean conversation_id: - type: string + type: + - string + - "null" minLength: 1 - nullable: true description: Present when the interaction was persisted. request_id: type: string @@ -7554,8 +7569,9 @@ components: type: boolean description: Whether additional results are available. next_cursor: - type: string - nullable: true + type: + - string + - "null" description: Cursor for the next page, or null when no more results are available. request_id: type: string @@ -7586,6 +7602,9 @@ components: additionalProperties: false required: - source_urls + example: + source_urls: + - https://github.com/anthropics/skills/tree/main/skills/skill-creator properties: source_urls: type: array @@ -7678,6 +7697,8 @@ components: additionalProperties: false required: - source_url + example: + source_url: https://github.com/anthropics/skills properties: source_url: type: string @@ -7800,6 +7821,8 @@ components: additionalProperties: false required: - status + example: + status: ENABLED properties: status: $ref: "#/components/schemas/PlatformSkillUpdateStatus" @@ -7891,8 +7914,9 @@ components: type: boolean description: Whether additional results are available. next_cursor: - type: string - nullable: true + type: + - string + - "null" description: Cursor for the next page, or null when no more results are available. request_id: type: string @@ -8011,11 +8035,11 @@ components: default: 10 description: Number of results to return per page. cursor: - type: string - nullable: true + type: + - string + - "null" description: | Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request. - example: "" datasources: type: array minItems: 1 @@ -8066,8 +8090,9 @@ components: description: The datasource this result originates from. example: confluence document_type: - type: string - nullable: true + type: + - string + - "null" minLength: 1 description: The document type within the datasource. example: page @@ -8076,14 +8101,16 @@ components: owner: $ref: "#/components/schemas/PlatformPersonReference" updated_at: - type: string + type: + - string + - "null" format: date-time - nullable: true description: When the result was last modified. created_at: - type: string + type: + - string + - "null" format: date-time - nullable: true description: When the result was created. PlatformSearchResponse: type: object @@ -8105,8 +8132,9 @@ components: type: boolean description: Indicates whether additional pages of results are available. next_cursor: - type: string - nullable: true + type: + - string + - "null" description: Opaque token to pass as `cursor` in the next request. request_id: type: string @@ -8283,8 +8311,9 @@ components: type: boolean description: Whether additional results are available. next_cursor: - type: string - nullable: true + type: + - string + - "null" description: Cursor for the next page, or null when no more results are available. request_id: type: string @@ -8644,8 +8673,9 @@ components: type: boolean description: Whether additional results are available. next_cursor: - type: string - nullable: true + type: + - string + - "null" description: Cursor for the next page, or null when no more results are available. request_id: type: string @@ -12896,15 +12926,18 @@ components: - EXECUTION - AUTHENTICATION_SUGGESTION - VOTE_SUGGESTION + - SANDBOX_EGRESS description: The type of request made to the user. x-enumDescriptions: EXECUTION: Request for approving execution of the tool. AUTHENTICATION_SUGGESTION: Request for authenticating to a tool, provided as a (tool) suggestion. VOTE_SUGGESTION: Suggestion to vote for enabling an available-but-not-enabled tool. + SANDBOX_EGRESS: Request to approve an outbound/egress call from the sandbox. x-speakeasy-enum-descriptions: EXECUTION: Request for approving execution of the tool. AUTHENTICATION_SUGGESTION: Request for authenticating to a tool, provided as a (tool) suggestion. VOTE_SUGGESTION: Suggestion to vote for enabling an available-but-not-enabled tool. + SANDBOX_EGRESS: Request to approve an outbound/egress call from the sandbox. requestId: type: string description: Unique identifier for this request. @@ -13004,6 +13037,9 @@ components: For VOTE_SUGGESTION requests: - voted: whether the user voted for this tool + + For SANDBOX_EGRESS requests: + - isGranted: whether the sandbox egress call is approved x-visibility: Preview x-glean-experimental: id: 3eae3ee7-2c06-4027-be14-98260a3ce608 @@ -13590,7 +13626,7 @@ components: isDraft: type: boolean description: | - When true, validates and stores a draft preview without publishing (used for PR preview links). Takes precedence over `syncMode`: when `isDraft` is true, `syncMode` is ignored. + Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. required: - bundle ImportAgentStatus: diff --git a/.speakeasy/tests.arazzo.yaml b/.speakeasy/tests.arazzo.yaml index 17668422..fc6744c3 100644 --- a/.speakeasy/tests.arazzo.yaml +++ b/.speakeasy/tests.arazzo.yaml @@ -158787,7 +158787,9 @@ workflows: contentType: application/json payload: messages: - - content: [] + - content: + - text: What is our parental leave policy? + type: text role: USER stream: false successCriteria: @@ -159055,7 +159057,7 @@ workflows: requestBody: contentType: application/json payload: - input: + input: What is our parental leave policy? store: true stream: false successCriteria: @@ -159075,7 +159077,7 @@ workflows: contentType: application/json payload: source_urls: - - + - https://github.com/anthropics/skills/tree/main/skills/skill-creator successCriteria: - condition: $statusCode == 200 - condition: $response.header.Content-Type == application/json @@ -159092,7 +159094,7 @@ workflows: requestBody: contentType: application/json payload: - source_url: https://ugly-information.name/ + source_url: https://github.com/anthropics/skills stream: false successCriteria: - condition: $statusCode == 200 @@ -159114,7 +159116,7 @@ workflows: requestBody: contentType: application/json payload: - status: DISABLED + status: ENABLED successCriteria: - condition: $statusCode == 200 - condition: $response.header.Content-Type == application/json diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 626778f7..42405b97 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.795.1 +speakeasyVersion: 1.796.2 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:90133ae2ed4bca7f388138e9d043405e381f920c07c8e54bdf3af2505b0a24ae - sourceBlobDigest: sha256:ffea0cebe421d06f6145114c557713c6b11600ae8dc1e06469304d89e720bf27 + sourceRevisionDigest: sha256:896616c197b10fa2a209a2c65142757b565fab39143269282bf7e9deb873d20d + sourceBlobDigest: sha256:26e432a250f02712c7ae9c28e38a1831eda356997e5bf4dfe75d6cf023f1a939 tags: - latest Glean Client API: @@ -16,10 +16,10 @@ targets: glean: source: Glean API sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:90133ae2ed4bca7f388138e9d043405e381f920c07c8e54bdf3af2505b0a24ae - sourceBlobDigest: sha256:ffea0cebe421d06f6145114c557713c6b11600ae8dc1e06469304d89e720bf27 + sourceRevisionDigest: sha256:896616c197b10fa2a209a2c65142757b565fab39143269282bf7e9deb873d20d + sourceBlobDigest: sha256:26e432a250f02712c7ae9c28e38a1831eda356997e5bf4dfe75d6cf023f1a939 codeSamplesNamespace: glean-api-specs-python-code-samples - codeSamplesRevisionDigest: sha256:985280ee4fe1f57740b53a8a893bbcd79361460bcc2ab8b2696bb0f81e6350f4 + codeSamplesRevisionDigest: sha256:ee9a80c4f99cb6668f7317e73a934f464b9361494a07111394cea3fe95ea7e05 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index d632e591..610e723d 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -828,4 +828,14 @@ Based on: ### Generated - [python v0.16.0] . ### Releases -- [PyPI v0.16.0] https://pypi.org/project/glean-api-client/0.16.0 - . \ No newline at end of file +- [PyPI v0.16.0] https://pypi.org/project/glean-api-client/0.16.0 - . + +## 2026-08-31 04:08:41 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.796.2 (2.933.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.16.1] . +### Releases +- [PyPI v0.16.1] https://pypi.org/project/glean-api-client/0.16.1 - . \ No newline at end of file diff --git a/docs/models/chatmessagefragment.md b/docs/models/chatmessagefragment.md index 1a6f0ed2..9fbc47f8 100644 --- a/docs/models/chatmessagefragment.md +++ b/docs/models/chatmessagefragment.md @@ -5,14 +5,14 @@ Represents a part of a ChatMessage that originates from a single action/tool. It ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `structured_results` | List[[models.StructuredResult](../models/structuredresult.md)] | :heavy_minus_sign: | An array of entities in the work graph retrieved via a data request. | | -| `tracking_token` | *Optional[str]* | :heavy_minus_sign: | An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. | | -| `text` | *Optional[str]* | :heavy_minus_sign: | N/A | | -| `query_suggestion` | [Optional[models.QuerySuggestion]](../models/querysuggestion.md) | :heavy_minus_sign: | N/A | {
"query": "app:github type:pull author:mortimer",
"label": "Mortimer's PRs",
"datasource": "github"
} | -| `file` | [Optional[models.ChatFile]](../models/chatfile.md) | :heavy_minus_sign: | Structure for file uploaded by a user for Chat. | | -| `action` | [Optional[models.ToolInfo]](../models/toolinfo.md) | :heavy_minus_sign: | N/A | | -| `citation` | [Optional[models.ChatMessageCitation]](../models/chatmessagecitation.md) | :heavy_minus_sign: | Information about the source for a ChatMessage. | | -| `server_tool_request` | [Optional[models.ServerToolRequest]](../models/servertoolrequest.md) | :heavy_minus_sign: | N/A | | -| `server_tool_response` | [Optional[models.ServerToolResponse]](../models/servertoolresponse.md) | :heavy_minus_sign: | Response to a server tool request. The applicable fields depend on requestType:

For EXECUTION requests:
- isGranted: whether tool execution is approved
- reason: optional explanation

For AUTHENTICATION_SUGGESTION requests:
- isGranted: whether auth completed successfully (true=connected, false=skipped)
- authContext: contains serverId or actionPackId for identifying the authenticated entity
- reason: optional explanation for skip

For VOTE_SUGGESTION requests:
- voted: whether the user voted for this tool
| | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `structured_results` | List[[models.StructuredResult](../models/structuredresult.md)] | :heavy_minus_sign: | An array of entities in the work graph retrieved via a data request. | | +| `tracking_token` | *Optional[str]* | :heavy_minus_sign: | An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. | | +| `text` | *Optional[str]* | :heavy_minus_sign: | N/A | | +| `query_suggestion` | [Optional[models.QuerySuggestion]](../models/querysuggestion.md) | :heavy_minus_sign: | N/A | {
"query": "app:github type:pull author:mortimer",
"label": "Mortimer's PRs",
"datasource": "github"
} | +| `file` | [Optional[models.ChatFile]](../models/chatfile.md) | :heavy_minus_sign: | Structure for file uploaded by a user for Chat. | | +| `action` | [Optional[models.ToolInfo]](../models/toolinfo.md) | :heavy_minus_sign: | N/A | | +| `citation` | [Optional[models.ChatMessageCitation]](../models/chatmessagecitation.md) | :heavy_minus_sign: | Information about the source for a ChatMessage. | | +| `server_tool_request` | [Optional[models.ServerToolRequest]](../models/servertoolrequest.md) | :heavy_minus_sign: | N/A | | +| `server_tool_response` | [Optional[models.ServerToolResponse]](../models/servertoolresponse.md) | :heavy_minus_sign: | Response to a server tool request. The applicable fields depend on requestType:

For EXECUTION requests:
- isGranted: whether tool execution is approved
- reason: optional explanation

For AUTHENTICATION_SUGGESTION requests:
- isGranted: whether auth completed successfully (true=connected, false=skipped)
- authContext: contains serverId or actionPackId for identifying the authenticated entity
- reason: optional explanation for skip

For VOTE_SUGGESTION requests:
- voted: whether the user voted for this tool

For SANDBOX_EGRESS requests:
- isGranted: whether the sandbox egress call is approved
| | \ No newline at end of file diff --git a/docs/models/importagentrequest.md b/docs/models/importagentrequest.md index d9f9e2a4..e45868df 100644 --- a/docs/models/importagentrequest.md +++ b/docs/models/importagentrequest.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `bundle` | [models.Bundle](../models/bundle.md) | :heavy_check_mark: | Zip of the agent folder (spec.yaml, instructions.md, skills/, subagents/) with symlinks dereferenced.
| -| `git_commit_sha` | *Optional[str]* | :heavy_minus_sign: | Optional Git commit SHA to associate with this import. | -| `git_author_id` | *Optional[str]* | :heavy_minus_sign: | Optional VCS commit author ID to associate with this import. | -| `commit_message` | *Optional[str]* | :heavy_minus_sign: | Optional commit message for the imported version. | -| `sync_mode` | [Optional[models.ImportAgentSyncMode]](../models/importagentsyncmode.md) | :heavy_minus_sign: | Whether the imported version is staged (saved without updating the live version) or published directly to the live version.
| -| `is_draft` | *Optional[bool]* | :heavy_minus_sign: | When true, validates and stores a draft preview without publishing (used for PR preview links). Takes precedence over `syncMode`: when `isDraft` is true, `syncMode` is ignored.
| \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `bundle` | [models.Bundle](../models/bundle.md) | :heavy_check_mark: | Zip of the agent folder (spec.yaml, instructions.md, skills/, subagents/) with symlinks dereferenced.
| +| `git_commit_sha` | *Optional[str]* | :heavy_minus_sign: | Optional Git commit SHA to associate with this import. | +| `git_author_id` | *Optional[str]* | :heavy_minus_sign: | Optional VCS commit author ID to associate with this import. | +| `commit_message` | *Optional[str]* | :heavy_minus_sign: | Optional commit message for the imported version. | +| `sync_mode` | [Optional[models.ImportAgentSyncMode]](../models/importagentsyncmode.md) | :heavy_minus_sign: | Whether the imported version is staged (saved without updating the live version) or published directly to the live version.
| +| `is_draft` | *Optional[bool]* | :heavy_minus_sign: | Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead.
| \ No newline at end of file diff --git a/docs/models/platformagentscreaterunrequest.md b/docs/models/platformagentscreaterunrequest.md index df931458..1e66f04a 100644 --- a/docs/models/platformagentscreaterunrequest.md +++ b/docs/models/platformagentscreaterunrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `agent_id` | *str* | :heavy_check_mark: | ID of the agent to run. | -| `platform_agent_run_create_request` | [models.PlatformAgentRunCreateRequest](../models/platformagentruncreaterequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `agent_id` | *str* | :heavy_check_mark: | ID of the agent to run. | | +| `platform_agent_run_create_request` | [models.PlatformAgentRunCreateRequest](../models/platformagentruncreaterequest.md) | :heavy_check_mark: | N/A | {
"messages": [
{
"role": "USER",
"content": [
{
"text": "What is our parental leave policy?",
"type": "text"
}
]
}
]
} | \ No newline at end of file diff --git a/docs/models/platformsearchrequest.md b/docs/models/platformsearchrequest.md index 59d2dc19..1972bc51 100644 --- a/docs/models/platformsearchrequest.md +++ b/docs/models/platformsearchrequest.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `query` | *str* | :heavy_check_mark: | The search query string. Supports inline operators such as `from:jane type:document app:confluence`. Inline operators are AND'd with structured `filters`.
| | -| `page_size` | *Optional[int]* | :heavy_minus_sign: | Number of results to return per page. | | -| `cursor` | *OptionalNullable[str]* | :heavy_minus_sign: | Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request.
| | -| `datasources` | List[*str*] | :heavy_minus_sign: | Restrict results to specific datasource identifiers returned by `GET /api/search/filters`. Scopes by datasource type and may include results from multiple instances of that type.
| | -| `filters` | List[[models.PlatformFilter](../models/platformfilter.md)] | :heavy_minus_sign: | Structured filters applied to search results. Multiple values within a filter with `EQUALS` are OR'd; separate filters are AND'd. Conflicting constraints on the same field (for example, `type:document` in `query` and `type:spreadsheet` in a filter) return an empty result set. See `Filter.field` for built-in field names and operators. Other nonblank field names are accepted as custom filters without validation; behavior depends on your connected sources.
| | -| `time_range` | [Optional[models.PlatformTimeRange]](../models/platformtimerange.md) | :heavy_minus_sign: | Filter results to those last updated within this range. | | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `query` | *str* | :heavy_check_mark: | The search query string. Supports inline operators such as `from:jane type:document app:confluence`. Inline operators are AND'd with structured `filters`.
| +| `page_size` | *Optional[int]* | :heavy_minus_sign: | Number of results to return per page. | +| `cursor` | *OptionalNullable[str]* | :heavy_minus_sign: | Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request.
| +| `datasources` | List[*str*] | :heavy_minus_sign: | Restrict results to specific datasource identifiers returned by `GET /api/search/filters`. Scopes by datasource type and may include results from multiple instances of that type.
| +| `filters` | List[[models.PlatformFilter](../models/platformfilter.md)] | :heavy_minus_sign: | Structured filters applied to search results. Multiple values within a filter with `EQUALS` are OR'd; separate filters are AND'd. Conflicting constraints on the same field (for example, `type:document` in `query` and `type:spreadsheet` in a filter) return an empty result set. See `Filter.field` for built-in field names and operators. Other nonblank field names are accepted as custom filters without validation; behavior depends on your connected sources.
| +| `time_range` | [Optional[models.PlatformTimeRange]](../models/platformtimerange.md) | :heavy_minus_sign: | Filter results to those last updated within this range. | \ No newline at end of file diff --git a/docs/models/platformskillsupdaterequest.md b/docs/models/platformskillsupdaterequest.md index 3ea30e83..7bf2215d 100644 --- a/docs/models/platformskillsupdaterequest.md +++ b/docs/models/platformskillsupdaterequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `skill_id` | *str* | :heavy_check_mark: | Glean skill ID. | -| `platform_skill_update_request` | [models.PlatformSkillUpdateRequest](../models/platformskillupdaterequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `skill_id` | *str* | :heavy_check_mark: | Glean skill ID. | | +| `platform_skill_update_request` | [models.PlatformSkillUpdateRequest](../models/platformskillupdaterequest.md) | :heavy_check_mark: | N/A | {
"status": "ENABLED"
} | \ No newline at end of file diff --git a/docs/models/servertoolrequestrequesttype.md b/docs/models/servertoolrequestrequesttype.md index 7a1e6721..a35c9169 100644 --- a/docs/models/servertoolrequestrequesttype.md +++ b/docs/models/servertoolrequestrequesttype.md @@ -19,4 +19,5 @@ value = ServerToolRequestRequestType.EXECUTION | --------------------------- | --------------------------- | | `EXECUTION` | EXECUTION | | `AUTHENTICATION_SUGGESTION` | AUTHENTICATION_SUGGESTION | -| `VOTE_SUGGESTION` | VOTE_SUGGESTION | \ No newline at end of file +| `VOTE_SUGGESTION` | VOTE_SUGGESTION | +| `SANDBOX_EGRESS` | SANDBOX_EGRESS | \ No newline at end of file diff --git a/docs/models/servertoolresponse.md b/docs/models/servertoolresponse.md index a29914c1..d27cfb3a 100644 --- a/docs/models/servertoolresponse.md +++ b/docs/models/servertoolresponse.md @@ -14,6 +14,9 @@ For AUTHENTICATION_SUGGESTION requests: For VOTE_SUGGESTION requests: - voted: whether the user voted for this tool +For SANDBOX_EGRESS requests: +- isGranted: whether the sandbox egress call is approved + ## Fields diff --git a/docs/models/servertoolresponserequesttype.md b/docs/models/servertoolresponserequesttype.md index ad53ed32..537662b1 100644 --- a/docs/models/servertoolresponserequesttype.md +++ b/docs/models/servertoolresponserequesttype.md @@ -19,4 +19,5 @@ value = ServerToolResponseRequestType.EXECUTION | --------------------------- | --------------------------- | | `EXECUTION` | EXECUTION | | `AUTHENTICATION_SUGGESTION` | AUTHENTICATION_SUGGESTION | -| `VOTE_SUGGESTION` | VOTE_SUGGESTION | \ No newline at end of file +| `VOTE_SUGGESTION` | VOTE_SUGGESTION | +| `SANDBOX_EGRESS` | SANDBOX_EGRESS | \ No newline at end of file diff --git a/docs/sdks/agents/README.md b/docs/sdks/agents/README.md index c3384d9d..f7fb5a04 100644 --- a/docs/sdks/agents/README.md +++ b/docs/sdks/agents/README.md @@ -159,7 +159,12 @@ with Glean( res = glean.agents.create_run(agent_id="", messages=[ { "role": models.PlatformMessageRole.USER, - "content": [], + "content": [ + { + "text": "What is our parental leave policy?", + "type": models.PlatformContentType.TEXT, + }, + ], }, ], stream=False) diff --git a/docs/sdks/chatsdk/README.md b/docs/sdks/chatsdk/README.md index fbb19c8f..f541f724 100644 --- a/docs/sdks/chatsdk/README.md +++ b/docs/sdks/chatsdk/README.md @@ -23,7 +23,7 @@ with Glean( api_token=os.getenv("GLEAN_API_TOKEN", ""), ) as glean: - res = glean.chat.create(input="", stream=False, store=True) + res = glean.chat.create(input="What is our parental leave policy?", stream=False, store=True) # Handle response print(res) diff --git a/docs/sdks/clientagents/README.md b/docs/sdks/clientagents/README.md index e54900d9..97c34663 100644 --- a/docs/sdks/clientagents/README.md +++ b/docs/sdks/clientagents/README.md @@ -221,7 +221,7 @@ with Glean( | `git_author_id` | *Optional[str]* | :heavy_minus_sign: | Optional VCS commit author ID to associate with this import. | | `commit_message` | *Optional[str]* | :heavy_minus_sign: | Optional commit message for the imported version. | | `sync_mode` | [Optional[models.ImportAgentSyncMode]](../../models/importagentsyncmode.md) | :heavy_minus_sign: | Whether the imported version is staged (saved without updating the live version) or published directly to the live version.
| -| `is_draft` | *Optional[bool]* | :heavy_minus_sign: | When true, validates and stores a draft preview without publishing (used for PR preview links). Takes precedence over `syncMode`: when `isDraft` is true, `syncMode` is ignored.
| +| `is_draft` | *Optional[bool]* | :heavy_minus_sign: | Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead.
| | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response diff --git a/docs/sdks/search/README.md b/docs/sdks/search/README.md index 2367ff8a..e8db7383 100644 --- a/docs/sdks/search/README.md +++ b/docs/sdks/search/README.md @@ -25,7 +25,7 @@ with Glean( api_token=os.getenv("GLEAN_API_TOKEN", ""), ) as glean: - res = glean.search.query(query="quarterly planning 2026", page_size=10, cursor="", datasources=[ + res = glean.search.query(query="quarterly planning 2026", page_size=10, datasources=[ "confluence", "google_drive", ], filters=[ @@ -45,15 +45,15 @@ with Glean( ### Parameters -| Parameter | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `query` | *str* | :heavy_check_mark: | The search query string. Supports inline operators such as `from:jane type:document app:confluence`. Inline operators are AND'd with structured `filters`.
| | -| `page_size` | *Optional[int]* | :heavy_minus_sign: | Number of results to return per page. | | -| `cursor` | *OptionalNullable[str]* | :heavy_minus_sign: | Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request.
| | -| `datasources` | List[*str*] | :heavy_minus_sign: | Restrict results to specific datasource identifiers returned by `GET /api/search/filters`. Scopes by datasource type and may include results from multiple instances of that type.
| | -| `filters` | List[[models.PlatformFilter](../../models/platformfilter.md)] | :heavy_minus_sign: | Structured filters applied to search results. Multiple values within a filter with `EQUALS` are OR'd; separate filters are AND'd. Conflicting constraints on the same field (for example, `type:document` in `query` and `type:spreadsheet` in a filter) return an empty result set. See `Filter.field` for built-in field names and operators. Other nonblank field names are accepted as custom filters without validation; behavior depends on your connected sources.
| | -| `time_range` | [Optional[models.PlatformTimeRange]](../../models/platformtimerange.md) | :heavy_minus_sign: | Filter results to those last updated within this range. | | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `query` | *str* | :heavy_check_mark: | The search query string. Supports inline operators such as `from:jane type:document app:confluence`. Inline operators are AND'd with structured `filters`.
| +| `page_size` | *Optional[int]* | :heavy_minus_sign: | Number of results to return per page. | +| `cursor` | *OptionalNullable[str]* | :heavy_minus_sign: | Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request.
| +| `datasources` | List[*str*] | :heavy_minus_sign: | Restrict results to specific datasource identifiers returned by `GET /api/search/filters`. Scopes by datasource type and may include results from multiple instances of that type.
| +| `filters` | List[[models.PlatformFilter](../../models/platformfilter.md)] | :heavy_minus_sign: | Structured filters applied to search results. Multiple values within a filter with `EQUALS` are OR'd; separate filters are AND'd. Conflicting constraints on the same field (for example, `type:document` in `query` and `type:spreadsheet` in a filter) return an empty result set. See `Filter.field` for built-in field names and operators. Other nonblank field names are accepted as custom filters without validation; behavior depends on your connected sources.
| +| `time_range` | [Optional[models.PlatformTimeRange]](../../models/platformtimerange.md) | :heavy_minus_sign: | Filter results to those last updated within this range. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response diff --git a/docs/sdks/skills/README.md b/docs/sdks/skills/README.md index 8cdfbc33..b89e4403 100644 --- a/docs/sdks/skills/README.md +++ b/docs/sdks/skills/README.md @@ -127,7 +127,7 @@ with Glean( ) as glean: res = glean.skills.import_(source_urls=[ - "", + "https://github.com/anthropics/skills/tree/main/skills/skill-creator", ]) # Handle response @@ -217,7 +217,7 @@ with Glean( api_token=os.getenv("GLEAN_API_TOKEN", ""), ) as glean: - res = glean.skills.preview_source(source_url="https://ugly-information.name/", stream=False) + res = glean.skills.preview_source(source_url="https://github.com/anthropics/skills", stream=False) # Handle response print(res) @@ -261,7 +261,7 @@ with Glean( api_token=os.getenv("GLEAN_API_TOKEN", ""), ) as glean: - res = glean.skills.update(skill_id="", status=models.PlatformSkillUpdateStatus.DISABLED) + res = glean.skills.update(skill_id="", status=models.PlatformSkillUpdateStatus.ENABLED) # Handle response print(res) diff --git a/pyproject.toml b/pyproject.toml index d391b6db..3e07b290 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "glean-api-client" -version = "0.16.0" +version = "0.16.1" description = "Python Client SDK Generated by Speakeasy." authors = [{ name = "Glean Technologies, Inc." },] readme = "README-PYPI.md" diff --git a/src/glean/api_client/_version.py b/src/glean/api_client/_version.py index 6a612365..a511f7fd 100644 --- a/src/glean/api_client/_version.py +++ b/src/glean/api_client/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "glean-api-client" -__version__: str = "0.16.0" +__version__: str = "0.16.1" __openapi_doc_version__: str = "0.9.0" -__gen_version__: str = "2.932.9" -__user_agent__: str = "speakeasy-sdk/python 0.16.0 2.932.9 0.9.0 glean-api-client" +__gen_version__: str = "2.933.0" +__user_agent__: str = "speakeasy-sdk/python 0.16.1 2.933.0 0.9.0 glean-api-client" try: if __package__ is not None: diff --git a/src/glean/api_client/client_agents.py b/src/glean/api_client/client_agents.py index 81424056..01d443da 100644 --- a/src/glean/api_client/client_agents.py +++ b/src/glean/api_client/client_agents.py @@ -861,7 +861,7 @@ def import_( :param commit_message: Optional commit message for the imported version. :param sync_mode: Whether the imported version is staged (saved without updating the live version) or published directly to the live version. - :param is_draft: When true, validates and stores a draft preview without publishing (used for PR preview links). Takes precedence over `syncMode`: when `isDraft` is true, `syncMode` is ignored. + :param is_draft: Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -987,7 +987,7 @@ async def import__async( :param commit_message: Optional commit message for the imported version. :param sync_mode: Whether the imported version is staged (saved without updating the live version) or published directly to the live version. - :param is_draft: When true, validates and stores a draft preview without publishing (used for PR preview links). Takes precedence over `syncMode`: when `isDraft` is true, `syncMode` is ignored. + :param is_draft: Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method diff --git a/src/glean/api_client/models/chatmessagefragment.py b/src/glean/api_client/models/chatmessagefragment.py index a8d3093b..48632a88 100644 --- a/src/glean/api_client/models/chatmessagefragment.py +++ b/src/glean/api_client/models/chatmessagefragment.py @@ -45,6 +45,9 @@ class ChatMessageFragmentTypedDict(TypedDict): For VOTE_SUGGESTION requests: - voted: whether the user voted for this tool + For SANDBOX_EGRESS requests: + - isGranted: whether the sandbox egress call is approved + """ @@ -96,6 +99,9 @@ class ChatMessageFragment(BaseModel): For VOTE_SUGGESTION requests: - voted: whether the user voted for this tool + For SANDBOX_EGRESS requests: + - isGranted: whether the sandbox egress call is approved + """ @model_serializer(mode="wrap") diff --git a/src/glean/api_client/models/importagentrequest.py b/src/glean/api_client/models/importagentrequest.py index 92ac1ff0..e1471e40 100644 --- a/src/glean/api_client/models/importagentrequest.py +++ b/src/glean/api_client/models/importagentrequest.py @@ -67,7 +67,7 @@ class ImportAgentRequestTypedDict(TypedDict): """ is_draft: NotRequired[bool] - r"""When true, validates and stores a draft preview without publishing (used for PR preview links). Takes precedence over `syncMode`: when `isDraft` is true, `syncMode` is ignored. + r"""Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. """ @@ -111,7 +111,7 @@ class ImportAgentRequest(BaseModel): is_draft: Annotated[ Optional[bool], pydantic.Field(alias="isDraft"), FieldMetadata(multipart=True) ] = None - r"""When true, validates and stores a draft preview without publishing (used for PR preview links). Takes precedence over `syncMode`: when `isDraft` is true, `syncMode` is ignored. + r"""Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. """ diff --git a/src/glean/api_client/models/servertoolrequest.py b/src/glean/api_client/models/servertoolrequest.py index 2e1f8e53..c88abbe5 100644 --- a/src/glean/api_client/models/servertoolrequest.py +++ b/src/glean/api_client/models/servertoolrequest.py @@ -20,6 +20,8 @@ class ServerToolRequestRequestType(str, Enum, metaclass=utils.OpenEnumMeta): AUTHENTICATION_SUGGESTION = "AUTHENTICATION_SUGGESTION" # Suggestion to vote for enabling an available-but-not-enabled tool. VOTE_SUGGESTION = "VOTE_SUGGESTION" + # Request to approve an outbound/egress call from the sandbox. + SANDBOX_EGRESS = "SANDBOX_EGRESS" class ServerToolRequestTypedDict(TypedDict): diff --git a/src/glean/api_client/models/servertoolresponse.py b/src/glean/api_client/models/servertoolresponse.py index 90ec0049..8af507a2 100644 --- a/src/glean/api_client/models/servertoolresponse.py +++ b/src/glean/api_client/models/servertoolresponse.py @@ -20,6 +20,8 @@ class ServerToolResponseRequestType(str, Enum, metaclass=utils.OpenEnumMeta): AUTHENTICATION_SUGGESTION = "AUTHENTICATION_SUGGESTION" # Suggestion to vote for enabling an available-but-not-enabled tool. VOTE_SUGGESTION = "VOTE_SUGGESTION" + # Request to approve an outbound/egress call from the sandbox. + SANDBOX_EGRESS = "SANDBOX_EGRESS" class GrantScope(str, Enum, metaclass=utils.OpenEnumMeta): @@ -48,6 +50,9 @@ class ServerToolResponseTypedDict(TypedDict): For VOTE_SUGGESTION requests: - voted: whether the user voted for this tool + For SANDBOX_EGRESS requests: + - isGranted: whether the sandbox egress call is approved + """ request_type: ServerToolResponseRequestType @@ -81,6 +86,9 @@ class ServerToolResponse(BaseModel): For VOTE_SUGGESTION requests: - voted: whether the user voted for this tool + For SANDBOX_EGRESS requests: + - isGranted: whether the sandbox egress call is approved + """ request_type: Annotated[ diff --git a/src/glean/api_client/utils/retries.py b/src/glean/api_client/utils/retries.py index c7418a62..406c1e7c 100644 --- a/src/glean/api_client/utils/retries.py +++ b/src/glean/api_client/utils/retries.py @@ -318,6 +318,7 @@ def retry_with_backoff( retry_after_ms = _parse_retry_after_ms_header(exception.response) if retry_after_ms is not None: exception.retry_after = retry_after_ms + exception.response.close() sleep = _get_sleep_interval( exception, initial_interval, @@ -358,6 +359,7 @@ async def retry_with_backoff_async( retry_after_ms = _parse_retry_after_ms_header(exception.response) if retry_after_ms is not None: exception.retry_after = retry_after_ms + await exception.response.aclose() sleep = _get_sleep_interval( exception, initial_interval, diff --git a/tests/mockserver/internal/sdk/models/components/chatmessagefragment.go b/tests/mockserver/internal/sdk/models/components/chatmessagefragment.go index 632727b0..99f8ed7d 100644 --- a/tests/mockserver/internal/sdk/models/components/chatmessagefragment.go +++ b/tests/mockserver/internal/sdk/models/components/chatmessagefragment.go @@ -30,6 +30,9 @@ type ChatMessageFragment struct { // For VOTE_SUGGESTION requests: // - voted: whether the user voted for this tool // + // For SANDBOX_EGRESS requests: + // - isGranted: whether the sandbox egress call is approved + // ServerToolResponse *ServerToolResponse `json:"serverToolResponse,omitempty"` } diff --git a/tests/mockserver/internal/sdk/models/components/importagentrequest.go b/tests/mockserver/internal/sdk/models/components/importagentrequest.go index f4d77d24..1dd4383e 100644 --- a/tests/mockserver/internal/sdk/models/components/importagentrequest.go +++ b/tests/mockserver/internal/sdk/models/components/importagentrequest.go @@ -38,7 +38,7 @@ type ImportAgentRequest struct { // Whether the imported version is staged (saved without updating the live version) or published directly to the live version. // SyncMode *ImportAgentSyncMode `multipartForm:"name=syncMode"` - // When true, validates and stores a draft preview without publishing (used for PR preview links). Takes precedence over `syncMode`: when `isDraft` is true, `syncMode` is ignored. + // Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. // IsDraft *bool `multipartForm:"name=isDraft"` } diff --git a/tests/mockserver/internal/sdk/models/components/servertoolrequest.go b/tests/mockserver/internal/sdk/models/components/servertoolrequest.go index 3bf8c6b3..c4437ec5 100644 --- a/tests/mockserver/internal/sdk/models/components/servertoolrequest.go +++ b/tests/mockserver/internal/sdk/models/components/servertoolrequest.go @@ -14,6 +14,7 @@ const ( ServerToolRequestRequestTypeExecution ServerToolRequestRequestType = "EXECUTION" ServerToolRequestRequestTypeAuthenticationSuggestion ServerToolRequestRequestType = "AUTHENTICATION_SUGGESTION" ServerToolRequestRequestTypeVoteSuggestion ServerToolRequestRequestType = "VOTE_SUGGESTION" + ServerToolRequestRequestTypeSandboxEgress ServerToolRequestRequestType = "SANDBOX_EGRESS" ) func (e ServerToolRequestRequestType) ToPointer() *ServerToolRequestRequestType { @@ -30,6 +31,8 @@ func (e *ServerToolRequestRequestType) UnmarshalJSON(data []byte) error { case "AUTHENTICATION_SUGGESTION": fallthrough case "VOTE_SUGGESTION": + fallthrough + case "SANDBOX_EGRESS": *e = ServerToolRequestRequestType(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/servertoolresponse.go b/tests/mockserver/internal/sdk/models/components/servertoolresponse.go index f4b84c3b..a518da25 100644 --- a/tests/mockserver/internal/sdk/models/components/servertoolresponse.go +++ b/tests/mockserver/internal/sdk/models/components/servertoolresponse.go @@ -15,6 +15,7 @@ const ( ServerToolResponseRequestTypeExecution ServerToolResponseRequestType = "EXECUTION" ServerToolResponseRequestTypeAuthenticationSuggestion ServerToolResponseRequestType = "AUTHENTICATION_SUGGESTION" ServerToolResponseRequestTypeVoteSuggestion ServerToolResponseRequestType = "VOTE_SUGGESTION" + ServerToolResponseRequestTypeSandboxEgress ServerToolResponseRequestType = "SANDBOX_EGRESS" ) func (e ServerToolResponseRequestType) ToPointer() *ServerToolResponseRequestType { @@ -31,6 +32,8 @@ func (e *ServerToolResponseRequestType) UnmarshalJSON(data []byte) error { case "AUTHENTICATION_SUGGESTION": fallthrough case "VOTE_SUGGESTION": + fallthrough + case "SANDBOX_EGRESS": *e = ServerToolResponseRequestType(v) return nil default: @@ -81,6 +84,9 @@ func (e *GrantScope) UnmarshalJSON(data []byte) error { // // For VOTE_SUGGESTION requests: // - voted: whether the user voted for this tool +// +// For SANDBOX_EGRESS requests: +// - isGranted: whether the sandbox egress call is approved type ServerToolResponse struct { // The type of request made to the user. RequestType ServerToolResponseRequestType `json:"requestType"` diff --git a/tests/test_agents.py b/tests/test_agents.py index 8b75a0e0..39a3f77b 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -133,7 +133,12 @@ def test_agents_platform_agents_create_run(): messages=[ { "role": models.PlatformMessageRole.USER, - "content": [], + "content": [ + { + "text": "What is our parental leave policy?", + "type": models.PlatformContentType.TEXT, + }, + ], }, ], stream=False, diff --git a/tests/test_chat_sdk.py b/tests/test_chat_sdk.py index 41b3a54c..0ea26010 100644 --- a/tests/test_chat_sdk.py +++ b/tests/test_chat_sdk.py @@ -15,5 +15,7 @@ def test_chat_sdk_platform_chat_create(): ) as glean: assert glean is not None - res = glean.chat.create(input="", stream=False, store=True) + res = glean.chat.create( + input="What is our parental leave policy?", stream=False, store=True + ) assert res is not None diff --git a/tests/test_messages.py b/tests/test_messages.py index dfdc1864..636f01d3 100644 --- a/tests/test_messages.py +++ b/tests/test_messages.py @@ -18,7 +18,7 @@ def test_messages_messages(): res = glean.client.messages.retrieve( id_type=models.IDType.CONVERSATION_ID, id="", - datasource=models.Datasource.SLACKENTGRID, + datasource=models.Datasource.GCHAT, timestamp_millis=558834, ) assert res is not None diff --git a/tests/test_search.py b/tests/test_search.py index c3b37c85..015f97b8 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -2233,7 +2233,6 @@ def test_search_platform_search(): res = glean.search.query( query="quarterly planning 2026", page_size=10, - cursor="", datasources=[ "confluence", "google_drive", diff --git a/tests/test_skills.py b/tests/test_skills.py index 98d7f69d..63587d5a 100644 --- a/tests/test_skills.py +++ b/tests/test_skills.py @@ -159,7 +159,7 @@ def test_skills_platform_skills_import(): res = glean.skills.import_( source_urls=[ - "", + "https://github.com/anthropics/skills/tree/main/skills/skill-creator", ] ) assert res is not None @@ -176,7 +176,7 @@ def test_skills_platform_skills_preview_source(): assert glean is not None res = glean.skills.preview_source( - source_url="https://ugly-information.name/", stream=False + source_url="https://github.com/anthropics/skills", stream=False ) assert res is not None @@ -192,7 +192,7 @@ def test_skills_platform_skills_update(): assert glean is not None res = glean.skills.update( - skill_id="", status=models.PlatformSkillUpdateStatus.DISABLED + skill_id="", status=models.PlatformSkillUpdateStatus.ENABLED ) assert res is not None diff --git a/tests/test_summarize.py b/tests/test_summarize.py index 2b5d1f38..f9c494d5 100644 --- a/tests/test_summarize.py +++ b/tests/test_summarize.py @@ -1,6 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from glean.api_client import Glean, models +from glean.api_client import Glean import os from tests.test_client import create_test_http_client @@ -18,8 +18,7 @@ def test_summarize_summarize(): res = glean.client.documents.summarize( document_specs=[ { - "ugc_type": models.DocumentSpecUgcType2.ARTIFACTS, - "ugc_id": "", + "id": "", }, { "id": "", From b72178b9aa2f7b082cead91972627fcc5e2a728a Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2026 04:12:52 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow