From 24a7c9407f6ba1d2387d94b96691756d3973468e Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Thu, 27 Aug 2026 07:59:19 +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 + .../handler/pathpostrestapiv1getchat.go | 4 +- .../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_search.py | 1 - tests/test_skills.py | 6 +- tests/test_summarize.py | 5 +- 37 files changed, 291 insertions(+), 196 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index fb978c5e..616f55d6 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: ca25759248adc71e495f569d79100104 docVersion: 0.9.0 - speakeasyVersion: 1.795.1 - generationVersion: 2.932.9 - releaseVersion: 0.16.0 - configChecksum: 305d1b3865da828cf96c1c98829ad9ba + speakeasyVersion: 1.796.0 + generationVersion: 2.932.15 + 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: 6708ebcb-471d-47b7-a74c-0f70b841bb93 + pristine_commit_hash: 7fc21911c3c9bbb4a4b5909df72d71d58db64160 + pristine_tree_hash: 2dcb83abcd69aafb3fadcc73532cda82810cb443 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:d0112d6c3e27afa57f4684718e73d9fc11c8a858 + pristine_git_object: d9a0677ba83f37c348b279589487a23510115c1a 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 @@ -7365,8 +7365,8 @@ trackedFiles: pristine_git_object: abb763ddc8504b28c0cb6fdf8d25237d46e21bab tests/mockserver/internal/handler/pathpostrestapiv1getchat.go: id: a0ec7bafa599 - last_write_checksum: sha1:2267292ba8173cf8df70ddbc6ac02ff3439cb879 - pristine_git_object: 8740195860b6c08e036caae19aab8e7374350960 + last_write_checksum: sha1:b48e2313407814ee4f8ed181b8e5299a84960c44 + pristine_git_object: 96d4127e0455272a9842e2d1954e5fcefa3278cc tests/mockserver/internal/handler/pathpostrestapiv1getchatapplication.go: id: 7d101c69d4bc last_write_checksum: sha1:7b81898137fdb3a89b4dcfa318b9b5b92e8860c0 @@ -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 @@ -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:56ebc69bb4f81505bc6d5f557eafd27f2bf6287d + pristine_git_object: 3f56a110361de93de6f420cfacda057683eabbc8 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..fed11cc8 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: 158ee29bcceb269012c2e58e1967fcfa13d48edb + x-open-api-commit-sha: 4a235842351b8833fa34fcced4294192c0942a71 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..db5406c9 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.795.1 +speakeasyVersion: 1.796.0 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:90133ae2ed4bca7f388138e9d043405e381f920c07c8e54bdf3af2505b0a24ae - sourceBlobDigest: sha256:ffea0cebe421d06f6145114c557713c6b11600ae8dc1e06469304d89e720bf27 + sourceRevisionDigest: sha256:040161c5f1e0776f14659617f5c55f03c928861d54556d1c9fa9c46a13f13ade + sourceBlobDigest: sha256:b6c644ba002eb96b016388abcb7371f1e8f7b21a9d399798079876a3fd2eec1f 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:040161c5f1e0776f14659617f5c55f03c928861d54556d1c9fa9c46a13f13ade + sourceBlobDigest: sha256:b6c644ba002eb96b016388abcb7371f1e8f7b21a9d399798079876a3fd2eec1f 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..d653d7ef 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-27 07:55:28 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.796.0 (2.932.15) 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..d9a0677b 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.932.15" +__user_agent__: str = "speakeasy-sdk/python 0.16.1 2.932.15 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/handler/pathpostrestapiv1getchat.go b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go index 87401958..96d4127e 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go @@ -628,8 +628,8 @@ func testGetchatGetchat0(w http.ResponseWriter, req *http.Request) { Roles: []components.UserRoleSpecification{}, SourceDocumentSpec: types.Pointer(components.CreateDocumentSpecUnionDocumentSpec3( components.DocumentSpec3{ - UgcType: components.DocumentSpecUgcType1Shortcuts, - ContentID: 602763, + UgcType: components.DocumentSpecUgcType1Announcements, + ContentID: 848009, }, )), SourceType: components.AnswerSourceTypeAssistant.ToPointer(), 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_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..3f56a110 100644 --- a/tests/test_summarize.py +++ b/tests/test_summarize.py @@ -18,11 +18,12 @@ def test_summarize_summarize(): res = glean.client.documents.summarize( document_specs=[ { - "ugc_type": models.DocumentSpecUgcType2.ARTIFACTS, + "ugc_type": models.DocumentSpecUgcType2.ANNOUNCEMENTS, "ugc_id": "", }, { - "id": "", + "ugc_type": models.DocumentSpecUgcType2.ANNOUNCEMENTS, + "ugc_id": "", }, ] ) From 9527b879fa817ab7f9f9086faac52ad5e27390c9 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Thu, 27 Aug 2026 07:59:27 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow