diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 49e59a2b..6babcbe2 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: 1d1c4c798b764226bfeeae4268f907c1 + docChecksum: 42a4f4f5cf82b2e88a03e1a2142f838d docVersion: 0.9.0 - speakeasyVersion: 1.792.0 - generationVersion: 2.927.0 - releaseVersion: 0.15.5 - configChecksum: 2d7eb6b1e296b48ffc7d66cf6e6b21cd + speakeasyVersion: 1.793.2 + generationVersion: 2.928.0 + releaseVersion: 0.15.6 + configChecksum: 9daa946e37cb85898ebf91d467b23545 repoURL: https://github.com/gleanwork/api-client-python.git installationURL: https://github.com/gleanwork/api-client-python.git published: true persistentEdits: - generation_id: 2c6b40a9-5bf5-4774-9389-0275aa4de10b - pristine_commit_hash: 9d93e89051da150d3c7ed6e5acb2fc862affb253 - pristine_tree_hash: f94026f8e759a799c60bb7b8c2b8fac16e8400a6 + generation_id: 507c38d4-b6aa-4b35-abb5-d2b53bbf55b1 + pristine_commit_hash: 11ee6592dfdf5f34ef9e6c94bc1dc1d1877e9e0a + pristine_tree_hash: 6cbb74c3f4f22268e5c532b8e911aae15ddc46d6 features: python: acceptHeaders: 3.0.0 @@ -1403,8 +1403,8 @@ trackedFiles: pristine_git_object: a851a7f13eb25d515fa9b9244c5dfdc98fa14e2c docs/models/feedrequestcategory.md: id: 31a02f3064c7 - last_write_checksum: sha1:63f6abf5e4f5048535b7767274c8a18176020427 - pristine_git_object: c3eab96e8f64c7ed1323eaf2c292c044db933f71 + last_write_checksum: sha1:e377f827763a348ab5dce9ad4b795b4481b8aba9 + pristine_git_object: 35d5beb1e75476d726e4106beba705ecb46b9228 docs/models/feedrequestoptions.md: id: 58eb26b19e77 last_write_checksum: sha1:fd2ab08736cef8156169b0cfee8c52e7aed1accf @@ -1419,12 +1419,12 @@ trackedFiles: pristine_git_object: 7f3ded753911005508191be31592746cef1c2781 docs/models/feedresult.md: id: 4b67dc1cea64 - last_write_checksum: sha1:6781234248531681b38a1394afc7a62438440758 - pristine_git_object: f14153ca4fc73e08d620714d4ed5ef2c0bad05c5 + last_write_checksum: sha1:9257ff8b3d935716255b221c801b7e080b31f580 + pristine_git_object: f6f92abf16b61f88b527e1c906f605e98306878e docs/models/feedresultcategory.md: id: a5f77f38d0a7 - last_write_checksum: sha1:2bfa3af25a938fbbc55b12b94d555f4b95517986 - pristine_git_object: c27f4b3b80f6c54cb0fe407dc9151821aad91a2e + last_write_checksum: sha1:141ed36910bee33d07acc055181eeb9a9e25087d + pristine_git_object: 3689b4f8adf4ec869de90b6bff497b52b474f877 docs/models/fieldscope.md: id: e6b52bcb22a6 last_write_checksum: sha1:13a1492ce39d2f89a01d626996a345a1339a1873 @@ -1811,8 +1811,8 @@ trackedFiles: pristine_git_object: 92e666de5f7156588d4dbaa09b36fec6e8f2403e docs/models/input.md: id: 5cbc446a3956 - last_write_checksum: sha1:21bbe04c0f6ee4212e9cb7a56a4697391d0b8800 - pristine_git_object: 3df083089f7f6f344f710748aae75582955e7e71 + last_write_checksum: sha1:edb11fdd84b602cb02ed2ca9e3a54e664bfafb17 + pristine_git_object: c54bec05e2353c4d45c272873e3d645b333a2d7e docs/models/inputoptions.md: id: 138e423f4a10 last_write_checksum: sha1:35aa8de6835bef5a294ef685f6480529f55f26f6 @@ -1871,8 +1871,8 @@ trackedFiles: pristine_git_object: 647f9bb67a6af30d7fd71c8ddb3c5e1bf40bb938 docs/models/justificationtype.md: id: 8286affacee4 - last_write_checksum: sha1:02dcd2b35c40d2f4c5435e0724cb13efabbe9a9e - pristine_git_object: cff9e6dd34fd05679bdc9629b86bb9b4d9577436 + last_write_checksum: sha1:b4cd16dcb4faf8eaf3074fcbb9e947543cb2bac6 + pristine_git_object: ebb1b8b6a5cf0130beeac43fd8ebe646ab3c8b89 docs/models/knowledgetype.md: id: 1e0c90679228 last_write_checksum: sha1:0030a7539b9362bbb59e0bbd36580676058b3540 @@ -2083,8 +2083,8 @@ trackedFiles: pristine_git_object: b1cd1e56279e4db030fc140598c10231ff311137 docs/models/object.md: id: 7ffe67d0b83f - last_write_checksum: sha1:cfed269f495144bd4a6de8da4b0bef46f7911d72 - pristine_git_object: fedbfbb5b542f5d5c91327b32225a0c18d3eca68 + last_write_checksum: sha1:f0d75b529d5e6940235cd6e8bff91249c97f8f07 + pristine_git_object: 06f80d51f75580152f7992a7b7dc76cda72db346 docs/models/objectdefinition.md: id: 11daa0bec25f last_write_checksum: sha1:6990618d91fdb10bba60313d1b94e1f1be0dcc24 @@ -2203,8 +2203,8 @@ trackedFiles: pristine_git_object: a24b8b95237035cda5ff134a9c0cc3bb601e06d7 docs/models/placementreason.md: id: e3d1cdfcf2b5 - last_write_checksum: sha1:f4720f3ce89ed29c92e2bd0aa15169ccc428bafd - pristine_git_object: 515cd010b7035e35f410e715d18da9c175d18e89 + last_write_checksum: sha1:20993a6ca9e751a4d3aa46f8f84f03fc00348d53 + pristine_git_object: f17278f2ff7680bcda387e90fb710196973b281c docs/models/platformactionsummary.md: id: 66630faec49a last_write_checksum: sha1:918357358bb6dd6840b6ef69e9bbfc05620f3eda @@ -2275,8 +2275,8 @@ trackedFiles: pristine_git_object: e15e66b29879dd3b3686d9faf64bce2bf40367b5 docs/models/platformchatcitationannotationtype.md: id: 5a3d664a4de0 - last_write_checksum: sha1:fa9bf18e32084d55a086f56c361162903b9d7eb0 - pristine_git_object: e3bd53ef1230ec9539fae60f8dbcfd7137be015f + last_write_checksum: sha1:a83dc5f7153c2ff2f9182814a510d30f4db79edd + pristine_git_object: 8b83f20e7d35a28336d2ba64a7ef200f13d552c6 docs/models/platformchatcitationsnippet.md: id: c06b44710f50 last_write_checksum: sha1:23d5a1e3a551da8805c66df5f1f5854edd42f997 @@ -2291,12 +2291,12 @@ trackedFiles: pristine_git_object: 34af8ff1c4add0e01b27c73bb654ba7c32433860 docs/models/platformchatcompletedresponsestatus.md: id: f52ac98c71f7 - last_write_checksum: sha1:d86828d0116f982a35bbbad563f5f536a176257b - pristine_git_object: 904a9c8af84b218e1531be2907087fefdb0fb516 + last_write_checksum: sha1:08119b0731b552212f11f6f657a933cd06d9daec + pristine_git_object: 8bed3e0696e7a1665d1fc1ef77e883aa51affcb1 docs/models/platformchatcreaterequest.md: id: cd33a9dfda85 - last_write_checksum: sha1:e7b60df8a893f94b2c4e91d8c48ca634e6ee3965 - pristine_git_object: 6b00a961af3ae11b028ef12e4dcb5d66f059987d + last_write_checksum: sha1:a7d397ede45f0f7fd3332236f19e7bfe0f916f5a + pristine_git_object: f37f1031bb6bf575329284f2c5c9426194d0eca1 docs/models/platformchatcreateresponse.md: id: d07ae96f238d last_write_checksum: sha1:2e27d36585ba58fc31cff8823ea1b6ba5203dd57 @@ -2307,8 +2307,8 @@ trackedFiles: pristine_git_object: 8631370028a7c5005205ac7f2a6deb35691bde9e docs/models/platformchatcustomentitysourcetype.md: id: 4a2f676cfbbf - last_write_checksum: sha1:f9d3d784b8345805e7da76d170aad7ae1a2ce565 - pristine_git_object: 67daadbc2301f12e55042279884712c6dce55aff + last_write_checksum: sha1:97187241129d869f4eeb58fbb00fc0df7fdb146e + pristine_git_object: 5f5b4fc6a9d3a1d27f2d4705173376c15ed71e9f docs/models/platformchatdocumentsource.md: id: 953dce7a7ae9 last_write_checksum: sha1:db9abd75c816fff5a3726568415a64b6024336a9 @@ -2323,56 +2323,56 @@ trackedFiles: pristine_git_object: 1b8f64e4c598febb186b9a5552ca6827daf09b60 docs/models/platformchatdocumentsourcetype1.md: id: 47c9b6b27f95 - last_write_checksum: sha1:d63b162e3b63e3a835d8fc35c8bf25cdfc806acf - pristine_git_object: 60cb54d7cbc72e463642a8f7897741b5d9a85dc4 + last_write_checksum: sha1:ea69403c15356c2edcb66e3bbf405c90b9892496 + pristine_git_object: 81404bd87eb8e842cb795c315d1425c2841d3acf docs/models/platformchatdocumentsourcetype2.md: id: 4bd893a73267 - last_write_checksum: sha1:418c77b0474def8a736d26b49d0abb6aa24dbc77 - pristine_git_object: 1fd2304902ee5390e7b2194481d599f640884139 + last_write_checksum: sha1:920bce6ed056ceb6e7958e0be8620ef2ff4f6e31 + pristine_git_object: 30967f4550b07d4dc49b041428597bc44b56731f docs/models/platformchatfilesource.md: id: b64eca888132 last_write_checksum: sha1:88e87ca14737f8d3166da647fbb1313fdacad945 pristine_git_object: f18a6c67730ad51ee22272a20c75e9be0a5e3745 docs/models/platformchatfilesourcetype.md: id: 5d5aa5197a97 - last_write_checksum: sha1:b77d67df65d98faa83f7685ff7a52d53490113e7 - pristine_git_object: 156db8e2059f401f7452bcb57453ea18c26b01ab + last_write_checksum: sha1:3c2addfc1c2334452e8c420b7a0535f1179a8ecb + pristine_git_object: eccc6d3a144cf818a082a0f8761d820e32e41d93 docs/models/platformchatinputmessage.md: id: c9769df9aff9 last_write_checksum: sha1:bf167f7b171a561dfc3713b0d524135d05229809 pristine_git_object: d69e40b0db035b7e3f05be03d64a5149324d8261 docs/models/platformchatinputmessagerole.md: id: 0b46bce28b93 - last_write_checksum: sha1:6afb0dadbd6de522e699f2005572a6755f4cbde6 - pristine_git_object: b756fc9543f34a0104eb9c3f1f9ab2901a23a4a8 + last_write_checksum: sha1:f48e66526e0a2167b36ca51042ccd0df50b1c59c + pristine_git_object: cdf92876978850841d258d07db48586891089897 docs/models/platformchatoutputmessage.md: id: d236a3fe09a2 last_write_checksum: sha1:be7029860368e4db9a914916e2e2617f233f24aa pristine_git_object: a931e573200b0863e0902d8fef8bf77032a13643 docs/models/platformchatoutputmessagerole.md: id: 50ec5e5c605b - last_write_checksum: sha1:2c85de61ff192dfdb6252747be2a367cfd8cc1ea - pristine_git_object: 7f8dc49418efa328521e2f64cb622279b81511be + last_write_checksum: sha1:abf7f0886f60b8c18568e07d4cc1aecd9833360d + pristine_git_object: 07e97be111d2ee7924ce0295af12e5dfe2f668f1 docs/models/platformchatoutputmessagetype.md: id: f19e88fb1997 - last_write_checksum: sha1:0db13db8e85a17ffbf000e5984548b5ebb93f09c - pristine_git_object: 8e2d0020a502eef1249ce19d1dcdcc4f696e571d + last_write_checksum: sha1:03bd4ec00c5fd4668246640263bc0eb4cd5ed319 + pristine_git_object: c14068505b05003de4e946a3418828950b15479a docs/models/platformchatoutputtextcontent.md: id: fd2f6a03da55 last_write_checksum: sha1:c72902588f7531a39f1783e29433709cfe157a7a pristine_git_object: 1ea074b5e646042d60c921c8d3351e31bc0ccde2 docs/models/platformchatoutputtextcontenttype.md: id: 2eca715382a5 - last_write_checksum: sha1:0fc8d0cde4553b138b2e2c9f131faaa478faeb09 - pristine_git_object: 05886daacc0a2814c0d1609ebb4d6eaf2f40f5d9 + last_write_checksum: sha1:89991c8d41e18cda29836b95477f9d6fc9919f58 + pristine_git_object: 2f8f45b28775f40b8b5014f1d056f6699de24a70 docs/models/platformchatpersonsource.md: id: 779c60aeabfb last_write_checksum: sha1:bbb6d30600c5b18a2b6e286f878fc721a8e81d94 pristine_git_object: c42d99e3556e5c16dbf32d1b37677dd04305c15a docs/models/platformchatpersonsourcetype.md: id: e514ca59ade7 - last_write_checksum: sha1:56015a25be5c0c7f8c345250cb3d1c90760fc0c7 - pristine_git_object: 3c36b121d3dff43a7665ca2a1ff1dcc6d3682789 + last_write_checksum: sha1:e0856c009120a4df0c15efccdb17b7474ba9fcd7 + pristine_git_object: 4648aec0ab515b868f019c2d399cd3a45f34472c docs/models/platformcontenttype.md: id: a9175ad4799d last_write_checksum: sha1:abb012a639cead86824ed11e596bda3632e2fddb @@ -3431,8 +3431,8 @@ trackedFiles: pristine_git_object: 85153af7ec594c2dbd1e4a8c2eba5ce713796265 docs/sdks/chatsdk/README.md: id: 83b4ee321663 - last_write_checksum: sha1:62f9a8c011ac90c694906d130778fc9e085e53d8 - pristine_git_object: 36fdb267cc1fede165adb54e68b0369f6c091d0e + last_write_checksum: sha1:47740532523da2b553e05be325f4af9de0fcd998 + pristine_git_object: fbb19c8f85059b35437ecc3f384f449499bd38cc docs/sdks/clientactivity/README.md: id: a309613986a5 last_write_checksum: sha1:d9737458d891593ba2fb3372ab6e60ea728fe9a5 @@ -3539,12 +3539,12 @@ trackedFiles: pristine_git_object: 2367ff8a3d48bca392eedfc035583e9806bb5b98 docs/sdks/skills/README.md: id: 3a14a5c90791 - last_write_checksum: sha1:9a3df5cc9d02857242b4beffca8425e9cda22456 - pristine_git_object: f3f50714613a13b869631f96a3f0a2057e6eb06e + last_write_checksum: sha1:49e30084ae2c99ba6a53d5aa6e0851e63cc2dba8 + pristine_git_object: 8cdfbc33daa86ae3521cb79c6fdc38bebff866cf docs/sdks/tools/README.md: id: 044286549bac - last_write_checksum: sha1:692aff6a75b65e73bad2742d68cfd78be6bf6f6d - pristine_git_object: 5481f3f8b06a25d77b856f3e42a989d9f4914c90 + last_write_checksum: sha1:9b9a8e80c1d16018bd66150ba482b83825d6cf67 + pristine_git_object: 8a3368140d93e032981bd19a4cff0ad9c35e8f1e docs/sdks/visibilityoverrides/README.md: id: c7d003d6a68f last_write_checksum: sha1:738c52c3b0964cfb441542710e10c51ca226f177 @@ -3563,8 +3563,8 @@ trackedFiles: pristine_git_object: 79e388be87446ab6a4064b372bad0e8376d0cb5e pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:45e124f939485287d52a21c3cef63a7f0d6b7c47 - pristine_git_object: 0a9c335a9a31ec8fdae149276535421a5ea9865a + last_write_checksum: sha1:3807566269aef99f86d2c2a1fa8e983dfc13d829 + pristine_git_object: ce622856eb04966624b35b572cb6c150763d7629 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:c2c83f71dea61eb50c9e05da83b16d18b4da8794 @@ -3591,8 +3591,8 @@ trackedFiles: pristine_git_object: 55f23c1feabfedeb7e8cd5bea8b910f0ae0b77d9 src/glean/api_client/_version.py: id: 0ce22b26136b - last_write_checksum: sha1:b46c6e4af3f5cb325a715d8f230ab39237903756 - pristine_git_object: c5dd907a297d4edf9c1839e3cfd484204c8fdac0 + last_write_checksum: sha1:eb4806b98ee0b74ee502839325124d490471c26f + pristine_git_object: a08d3d4ac2d74e92dcdf3d88ffcd1010fbe95703 src/glean/api_client/agents.py: id: b925701a9217 last_write_checksum: sha1:1d4b152d9d9260d1c97d4983f521f30b5cfa1085 @@ -3611,8 +3611,8 @@ trackedFiles: pristine_git_object: bf7b1b3b25ce6530403b0dd9f60599d236c780ce src/glean/api_client/chat_sdk.py: id: f2f30e13ca42 - last_write_checksum: sha1:85cacb2d7e0ab9a89daf48159d3b19680cc3425e - pristine_git_object: 4275af06711244c4e56b62c34e78bb5c7b37f8c1 + last_write_checksum: sha1:328e511b8bdb485025a2091b999cb098c89960b3 + pristine_git_object: 8d63acc688a0876d3a64f4fe794b8aad3d17ed8a src/glean/api_client/client.py: id: c0c188098f10 last_write_checksum: sha1:bfadba5dfdc64280fd9c7bdbf96a0651e5db429f @@ -4819,16 +4819,16 @@ trackedFiles: pristine_git_object: 44041cb376d89949c815ea1e7813505940605855 src/glean/api_client/models/feedentry.py: id: 023eb6c10ae1 - last_write_checksum: sha1:baa7d04a5ae830282e82b19e870788c2b90da464 - pristine_git_object: 03dd978e2940f2d93f5b9393c84d60c0e36f10b6 + last_write_checksum: sha1:6635973c660961c22f525cd1faa1af242c137d3b + pristine_git_object: 30ea4f0e06463e3b33450cccbf766ad0490a8903 src/glean/api_client/models/feedop.py: id: b8067ac0a127 last_write_checksum: sha1:c58cb0a3a01925eb14d84176c5c6e9d8f4d84cf1 pristine_git_object: f39626285f84630e5a9233736d652914b759d44b src/glean/api_client/models/feedrequest.py: id: 33496b6a5bab - last_write_checksum: sha1:e67128cc0d6e17f4bf4f5a33717cd0ef53e68560 - pristine_git_object: 69d85fb78ee67fc423208f0cb864b5416c5d38f4 + last_write_checksum: sha1:9e76dc4e42515478e49a66aac44c597544970a04 + pristine_git_object: d6d5f2d0cdf0519b45b59814f749b9240de850ad src/glean/api_client/models/feedrequestoptions.py: id: b99003fbf522 last_write_checksum: sha1:d5ffee29242075cbe6d2dd5ec916b0c3d40acf54 @@ -4839,8 +4839,8 @@ trackedFiles: pristine_git_object: 683438c837601f483526ec18756fadc7222edb24 src/glean/api_client/models/feedresult.py: id: ae187332b37a - last_write_checksum: sha1:fd675d08d2aa02216a2c20748560bf9273e35347 - pristine_git_object: f5bc568a98732c157152a822c5009544bd4275eb + last_write_checksum: sha1:10a4ce7eb8ab59144da0378ef166f99323a83a4c + pristine_git_object: 548eedb012383c7dea8ac5649096c876e1794a69 src/glean/api_client/models/followupaction.py: id: e2de5c4c8524 last_write_checksum: sha1:49e1a826449081fecfcd828c940604db949a8533 @@ -5559,8 +5559,8 @@ trackedFiles: pristine_git_object: 04be56b8972f39419fc27c325e9f4824a09f96f2 src/glean/api_client/models/platformchatcitationannotation.py: id: 50f8f46928e1 - last_write_checksum: sha1:ab8c8b10f62850297db51063e09bb29479c12e12 - pristine_git_object: e100f70c8bcd8303c5fd51b63c733faa479420db + last_write_checksum: sha1:205801bf117b3d26c686c529d0d8cb28e30a6100 + pristine_git_object: 5dd276ba7ca775a7c7f0a50e3fa7ad1228c39924 src/glean/api_client/models/platformchatcitationsnippet.py: id: 99f1e0941ff0 last_write_checksum: sha1:97c26e2f2d9196f5bb6514b90248c920278eb9b0 @@ -5571,40 +5571,40 @@ trackedFiles: pristine_git_object: 790d1678e2ca7151021a18bcd5f48344fbfb6b77 src/glean/api_client/models/platformchatcompletedresponse.py: id: ed59f46e73df - last_write_checksum: sha1:751f90005564470d001894b717276fc8079445c4 - pristine_git_object: 946d487c21beaecdb8b8b23e411aca25d44fb4e0 + last_write_checksum: sha1:0dd038141a88aec0d7a5838053ac167f894ffc53 + pristine_git_object: 4b32c84bd902a79b2e55da4f0e602a485a0fdff1 src/glean/api_client/models/platformchatcreaterequest.py: id: d6d4fc59e049 - last_write_checksum: sha1:134f060233ff4ec9858ef2b0709a7bcd54f43ef6 - pristine_git_object: 252f07c14d7c123424d9b17b5d2c2802ae6ad642 + last_write_checksum: sha1:aa28b7ef6c55c105e95ee31604f5c060b968abd6 + pristine_git_object: b596efc574a30fc43c9780d9b19dc2c6bfeac6ce src/glean/api_client/models/platformchatcustomentitysource.py: id: 385a56c07858 - last_write_checksum: sha1:94736d2559fc829455e00b865f787e97b5b6d7a9 - pristine_git_object: 768037684869993e6de63e7457072716d2cc6149 + last_write_checksum: sha1:219f6e5baa20d6954839bfc16a00a9f424fbb96e + pristine_git_object: f2ec133b16adcf53ecb88e3c1aa69ecd112b5dcd src/glean/api_client/models/platformchatdocumentsource.py: id: 1cd8111e3b4c - last_write_checksum: sha1:9381db0a65890243ff595a663ee7b78621f85880 - pristine_git_object: 0fa4f61a2bbcfc246569e597192574f429c3e3e2 + last_write_checksum: sha1:43c63d69794b3897ce38c321806a719e7957f36b + pristine_git_object: 73aad8d2edf3d1d6880e9cff3a0057b368d84543 src/glean/api_client/models/platformchatfilesource.py: id: 1a9d4653c065 - last_write_checksum: sha1:b335a3fe30a805eaf7fe831e82231edc0f280c9b - pristine_git_object: bde933e7ef7312398aafb3622337ac3867f77e70 + last_write_checksum: sha1:d995e1a8bf690e316793f4916fbca81f0a279e47 + pristine_git_object: 228194cbc7650afc2858cb8d66ee469d388fb543 src/glean/api_client/models/platformchatinputmessage.py: id: e32871fda394 - last_write_checksum: sha1:44856f2b0747bd3dee0ba7dea3f63d1c7b871b41 - pristine_git_object: 1031b46478635c863692e2ca0d32644bd0977c66 + last_write_checksum: sha1:1ddb82a8dcac6a1943b99fb2cdfb2c464e8eab07 + pristine_git_object: 9d21d2a18e6de246b38312c05fafc8698635ac6a src/glean/api_client/models/platformchatoutputmessage.py: id: 15c8512d3810 - last_write_checksum: sha1:58607803b4c6067d91792378356cc1af3d769309 - pristine_git_object: 686a0c29b38fc9796d4454ffe88d0e3bb7ddfed6 + last_write_checksum: sha1:1f0846a6e9bf7c2a1b9f5ea870cb0c4f6896c449 + pristine_git_object: 9082277a0bb6b75d23c5fef7eead2aa13d8147cf src/glean/api_client/models/platformchatoutputtextcontent.py: id: 91b9987e8b98 - last_write_checksum: sha1:936d1dad8ef1421b171c6b02006b9b66e6fab3da - pristine_git_object: 0d076b64bd1876e63763f043398f508e47146b16 + last_write_checksum: sha1:a24b36ff3c3d310f82183fd5d0c39a0182bef73a + pristine_git_object: d37425276eb8efbdd22c199f76b5448f8c9cb0b4 src/glean/api_client/models/platformchatpersonsource.py: id: 617b816c747b - last_write_checksum: sha1:83261124006375eaa486bc3703beb10271e39450 - pristine_git_object: d25484864c73797b854d25188747a07815195aa0 + last_write_checksum: sha1:1068fde6d156f689d9f93b799dd8b5a2fa399315 + pristine_git_object: a2e120b176b2a3d8f8d5060f5717290ffb07eda4 src/glean/api_client/models/platformcontenttype.py: id: 87e6bc168e08 last_write_checksum: sha1:97548628abf68b0b2727ba126ce363000e8d2882 @@ -6439,12 +6439,12 @@ trackedFiles: pristine_git_object: 91ea57d2012c5dda71fb1a4b5d420173d7c357b5 src/glean/api_client/skills.py: id: 79f3c37e1b5a - last_write_checksum: sha1:dfa798ad4b711ec1d6368d32f296f612f79ddd5f - pristine_git_object: d86ec8e33184403d1d84a32f1b23de3f80ecc3f2 + last_write_checksum: sha1:aebe5c9b6e2b24a13332ca13160d3994e008e477 + pristine_git_object: 89e97e10c092905a2b012a8f05f8fc986d018c6e src/glean/api_client/tools.py: id: 3ea40147c1cc - last_write_checksum: sha1:255ffc640ebbd6a9f0c6486a78f1e7d3eb9f4645 - pristine_git_object: aa8b10a3ab803a126388d5221b8b65cf44c647cf + last_write_checksum: sha1:83c2360844995f2f83170f8e8c8388ffe5800758 + pristine_git_object: a9a8b1001149141922966a721ceed7660f21796c src/glean/api_client/types/__init__.py: id: f63c790831ee last_write_checksum: sha1:f9ad14217f832e74f594285960125add50324be9 @@ -6991,8 +6991,8 @@ trackedFiles: pristine_git_object: abb763ddc8504b28c0cb6fdf8d25237d46e21bab tests/mockserver/internal/handler/pathpostrestapiv1getchat.go: id: a0ec7bafa599 - last_write_checksum: sha1:b48e2313407814ee4f8ed181b8e5299a84960c44 - pristine_git_object: 96d4127e0455272a9842e2d1954e5fcefa3278cc + last_write_checksum: sha1:2267292ba8173cf8df70ddbc6ac02ff3439cb879 + pristine_git_object: 8740195860b6c08e036caae19aab8e7374350960 tests/mockserver/internal/handler/pathpostrestapiv1getchatapplication.go: id: 7d101c69d4bc last_write_checksum: sha1:7b81898137fdb3a89b4dcfa318b9b5b92e8860c0 @@ -8059,12 +8059,12 @@ trackedFiles: pristine_git_object: 04cc3a93272ac70933b0485bee31b335e05ab623 tests/mockserver/internal/sdk/models/components/feedentry.go: id: d25fd66fcf7a - last_write_checksum: sha1:7c8546042939c356feeb9846070c23a04edd1a13 - pristine_git_object: 75c2030f1bf29bd59360b09c62df32f9efee0517 + last_write_checksum: sha1:ca05066846a6d047343e46a4d545a1402e92b96c + pristine_git_object: 90b0237c9a4c54e1aceada9137ee3ff4409b9837 tests/mockserver/internal/sdk/models/components/feedrequest.go: id: b06bc4cef0cf - last_write_checksum: sha1:ca761301495e36eaf10fc4fa9086380498e6491a - pristine_git_object: 854c8390fa48c1647f0f3c04d19d89f6aae43d6f + last_write_checksum: sha1:a1293c6cdc3c294628e854614229c370a5218b71 + pristine_git_object: 97365efff1b005e6769bb2d5b561de68aadfc221 tests/mockserver/internal/sdk/models/components/feedrequestoptions.go: id: fd9245fe1bf2 last_write_checksum: sha1:fa30b7fd6ee3e45896d7bbe36e33e7c0cb9000ba @@ -8075,8 +8075,8 @@ trackedFiles: pristine_git_object: 54f9d1a8997983156c84e69f888c59a80d06c2b1 tests/mockserver/internal/sdk/models/components/feedresult.go: id: 47411573e67a - last_write_checksum: sha1:1980e5be5848c3aa1e732c680f7472899c9eb19c - pristine_git_object: 158c74284653d58bdffbab15a8f23188e092875d + last_write_checksum: sha1:973eec9b2d273d721f6310ebb20578c7d4f142d1 + pristine_git_object: cc69740a57fd002be69b2922812d7497a0778f51 tests/mockserver/internal/sdk/models/components/followupaction.go: id: 38179fec19b1 last_write_checksum: sha1:32a31f7af77a58ce6f3284e8550d01fcf0d3bddd @@ -8587,8 +8587,8 @@ trackedFiles: pristine_git_object: 58281ae6e982ccb6e585a3299a3893a5850cfb3d tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go: id: f4acfb6b571a - last_write_checksum: sha1:a07b63c29342dbc8760451a07748ecc5a795dd2a - pristine_git_object: eb920c4166fc2bc302a641531f1c92c946847124 + last_write_checksum: sha1:1f7f643895fdec20a70e5efebecdf9d8f636384e + pristine_git_object: 64b253ab16d8eea7f910fb7c32635756312c7866 tests/mockserver/internal/sdk/models/components/platformchatcitationsnippet.go: id: 19303510f847 last_write_checksum: sha1:521a16886f1f96d692e7dfc60c68ed16195f9db9 @@ -8599,40 +8599,40 @@ trackedFiles: pristine_git_object: c4c149d7a1856c60ae47b1f2e9b524d4d8458459 tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go: id: dfc6d86d9ca2 - last_write_checksum: sha1:b6cfe25cea6372862c6cb89c31f0a27f32768b48 - pristine_git_object: 3626477733c9d6b8350ce69c4b0c114e6d12ecee + last_write_checksum: sha1:0a214ec8175734c89d968fbb3af56fc19e817264 + pristine_git_object: be4e37123971803d69d6581668ac6fa8e0f56347 tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go: id: b024a90db5cf - last_write_checksum: sha1:a5d728f3340cd89d08c5cb4c45ca2495bf063099 - pristine_git_object: ff12189e8a27b80e6ebd875b23d3ab15415afc9b + last_write_checksum: sha1:c7c3b67893cd7e42c4995e7e5b8f13bbb91090f1 + pristine_git_object: a5b50b89f856fa678f9bc26fa08818a8d91f183b tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go: id: 19335eec1f0c - last_write_checksum: sha1:782fd0be48c718f3748c4f0a49dc82cface4d644 - pristine_git_object: a935970d4dccc9196d4c34855dc24db23f0f2a44 + last_write_checksum: sha1:52947945dd84893095dd04c7c1d0fed92eed9d03 + pristine_git_object: ccd6eac366414927d53ec579b691a1abf3f34867 tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go: id: 50d8ddf827c8 - last_write_checksum: sha1:c172280641caf057547c11ec1fa16e539a11fcdb - pristine_git_object: 9dd42aa5e0abcb1b41e68d833f349779f7fa90b1 + last_write_checksum: sha1:601d2c92039f18fcf03ea3abe7a8cb30d96862d2 + pristine_git_object: 63d8078fd2f1510238397be59455ef19090a3a3a tests/mockserver/internal/sdk/models/components/platformchatfilesource.go: id: f717724c0acb - last_write_checksum: sha1:572e86750f5f0a9d3a1d7bb4fe6507d47d9d11a1 - pristine_git_object: ad39a1dedf884498db229569f975d07cbfceda37 + last_write_checksum: sha1:9c1cf43539e36e553ea918fd22db2e9a6985f926 + pristine_git_object: 6714718990fc59806d1a8f15d9b24515397fa930 tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go: id: 56818bc51e4c - last_write_checksum: sha1:70c4b032b5066633b8cd34d0c49c28df2387bf75 - pristine_git_object: 5989ab25d09e93f7dda37735c4756dd941e76b14 + last_write_checksum: sha1:42af3af208da28f93f0f2201e3daa8b46a7e1dba + pristine_git_object: 97c1e067fb5ecb6b2f97606419d967243488f520 tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go: id: 7ca1fc5cc683 - last_write_checksum: sha1:9da219f4f8004153d64d9ec89365dd92ba0b99f7 - pristine_git_object: c7ccd4be66bf0f4e6a931a470d244774d3ca256d + last_write_checksum: sha1:3db396040f3153e9079616c8618abeecc999e663 + pristine_git_object: 69218f0ebe38116259e1e0a7c021e605a79e88f6 tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go: id: b5d5f31f9886 - last_write_checksum: sha1:7b83b7cadf85b852949b765447c7c165acf49021 - pristine_git_object: fedd3f2853557a146f561b333d30dfe6799bf274 + last_write_checksum: sha1:65d94d8a5470bd836564c69e1476d29c7c8041b9 + pristine_git_object: d5020f5ca750f648d73d9153f3a332745d72304c tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go: id: b44852860bd9 - last_write_checksum: sha1:baa4c11fc983d682b8f66d282ef55955bfd3bf99 - pristine_git_object: 1e969fb91bd34be3dcd9e2e2e242565eb97b15fd + last_write_checksum: sha1:ae83c0e9521f08d5818d9aa5cff33ca7233239a7 + pristine_git_object: 9576e8664747c8ca292816827aae56589aeab5c0 tests/mockserver/internal/sdk/models/components/platformcontenttype.go: id: d1a02baa3621 last_write_checksum: sha1:b552f26421544664b54a4423c8335c90b09480c6 @@ -10207,8 +10207,8 @@ trackedFiles: pristine_git_object: 6cc8aeec3c52329d389081db0a27f10f53f214b9 tests/test_messages.py: id: be23089b1f8b - last_write_checksum: sha1:2404e23964ef6a1f5ddc900402b34e597d2d9617 - pristine_git_object: 132005ec7d1e35f805b6a8c28e07e043bce22f0a + last_write_checksum: sha1:bef200db8e7fff0aa33ef17846f5054a2d035a88 + pristine_git_object: 36643db35a2d2a3cf9d327379ee7a6cb30da51d0 tests/test_people.py: id: 37c243940039 last_write_checksum: sha1:2b78b1c5ea17f267895188b1b48ff9fe2bc19f17 @@ -10235,8 +10235,8 @@ trackedFiles: pristine_git_object: 98d7f69d362a6770ee01a6c3d9f3684b01a6cbd6 tests/test_summarize.py: id: a255d8a6f627 - last_write_checksum: sha1:f6642c3c0f1fb75b4f7bb80025d98eb45a89d51f - pristine_git_object: 2cfa3243af32eacf74865c581c8ad2ddf0b0f551 + last_write_checksum: sha1:4f50b660d414adea1d509dfc957eb74a12654ee4 + pristine_git_object: 63b4eb8541c2b110dab6dda746fef9ac074611f1 tests/test_tools.py: id: 70889bdf7321 last_write_checksum: sha1:e9e37efd6a65d805c02d70d548df9c87dd062b0e @@ -11390,7 +11390,7 @@ examples: application/json: {"input": "", "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": ""} + 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": ""} text/event-stream: "" "400": application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} @@ -11677,6 +11677,7 @@ generatedTests: post_/api/index/v1/debug/{datasource}/documents: "2026-08-07T21:21:16Z" post_/api/index/v1/debug/{datasource}/document/events: "2026-08-07T21:21:16Z" post_/api/index/v1/debug/{datasource}/user: "2026-08-07T21:21:16Z" +releaseNotes: "## Python SDK Changes:\n* `glean.chat.create()`: \n * `request.input.union(Array)[].role` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n* `glean.client.search.retrieve_feed()`: \n * `request.categories[].enum(knowledge_gap)` **Added**\n * `response.results[]` **Changed**\n" generatedFiles: - .devcontainer/README.md - .devcontainer/devcontainer.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index e610108f..e39e96c5 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -34,7 +34,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true python: - version: 0.15.5 + version: 0.15.6 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index 1906bd1f..e031eb14 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -2,8 +2,8 @@ openapi: 3.0.0 info: version: "0.9.0" title: Glean API - x-source-commit-sha: 7a82cb818d032eca9f42d56706dd9e0a65418d45 - x-open-api-commit-sha: 987c3f6458420f6a99420d808bdccea74ab84dad + x-source-commit-sha: 2288984b38ffe35327b6acd9c627f5c8e988cbc9 + x-open-api-commit-sha: 39dce31b0d2a433e036ea5fa62954a892f5d12f6 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. @@ -205,7 +205,8 @@ paths: text/event-stream: schema: type: string - description: Server-sent events emitted by the running agent. + description: | + Server-sent events emitted by the running agent. Successful runs emit `message` events. A terminal failure after the stream has started emits exactly one `run.failed` event whose `data` is an `AgentRunFailedEventData` payload, then closes. example: | id: 1 event: message @@ -214,6 +215,10 @@ paths: id: 2 event: message data: {"messages":[{"role":"GLEAN_AI","content":[{"text":", I can help with HR policy questions.","type":"text"}]}]} + + id: 3 + event: run.failed + data: {"error":{"type":"https://developers.glean.com/errors/spend-limit-exceeded","title":"Spend Limit Exceeded","status":403,"detail":"You've reached the monthly limit set by your admin.","code":"spend_limit_exceeded","request_id":"req_123","documentation_url":"https://developers.glean.com/errors/spend-limit-exceeded"}} "400": $ref: "#/components/responses/PlatformBadRequest" "401": @@ -277,20 +282,24 @@ paths: Server-sent events for a streaming chat run. Event payloads are documented under ChatStream* schemas. example: | id: 1 - event: response.created - data: {"type":"response.created","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015"} + event: RESPONSE_CREATED + data: {"type":"RESPONSE_CREATED","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015"} id: 2 - event: response.output_text.delta - data: {"type":"response.output_text.delta","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","delta":"Hello"} + event: RESPONSE_PROGRESS + data: {"type":"RESPONSE_PROGRESS","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","text":"**Searching:** foo"} id: 3 - event: response.output_text.done - data: {"type":"response.output_text.done","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","text":"Hello"} + event: RESPONSE_OUTPUT_TEXT_DELTA + data: {"type":"RESPONSE_OUTPUT_TEXT_DELTA","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","delta":"Hello"} id: 4 - event: response.completed - data: {"type":"response.completed","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","response":{"id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","object":"response","status":"completed","output":[{"type":"message","role":"assistant","content":[{"type":"output_text","text":"Hello"}]}],"store":true,"request_id":"req_123","created_at":"2026-07-14T20:00:00Z"}} + event: RESPONSE_OUTPUT_TEXT_DONE + data: {"type":"RESPONSE_OUTPUT_TEXT_DONE","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","text":"Hello"} + + id: 5 + event: RESPONSE_COMPLETED + data: {"type":"RESPONSE_COMPLETED","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","response":{"id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","object":"RESPONSE","status":"COMPLETED","output":[{"type":"MESSAGE","role":"ASSISTANT","content":[{"type":"OUTPUT_TEXT","text":"Hello"}]}],"store":true,"request_id":"req_123","created_at":"2026-07-14T20:00:00Z"}} "400": $ref: "#/components/responses/PlatformBadRequest" "401": @@ -417,42 +426,42 @@ paths: x-speakeasy-name-override: list security: - APIToken: [] - /api/skills/validation: + /api/skills/import: post: tags: - Skills - summary: Validate skill bundle + summary: Import skills from GitHub description: | - Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. - operationId: platform-skills-validate + Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. + operationId: platform-skills-import x-visibility: Public x-glean-experimental: - id: 0b086fa6-30f8-4279-8d11-10ab0059c14a - introduced: "2026-06-24" + id: 9162d790-e101-437d-a9a0-25e4687d150b + introduced: "2026-07-28" + x-codegen-request-body-name: request requestBody: required: true content: - multipart/form-data: + application/json: schema: - $ref: "#/components/schemas/PlatformSkillValidationRequest" - x-codegen-request-body-name: request + $ref: "#/components/schemas/PlatformSkillImportRequest" responses: "200": - description: Successful response. + description: Skills imported successfully. content: application/json: schema: - $ref: "#/components/schemas/PlatformSkillValidationResponse" + $ref: "#/components/schemas/PlatformSkillImportResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" + "409": + $ref: "#/components/responses/PlatformConflict" "413": $ref: "#/components/responses/PlatformRequestTooLarge" "429": @@ -462,45 +471,45 @@ paths: "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: skills - x-speakeasy-name-override: validate + x-speakeasy-name-override: import security: - APIToken: [] - /api/skills/import: + /api/skills/validation: post: tags: - Skills - summary: Import skills from GitHub + summary: Validate skill bundle description: | - Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. - operationId: platform-skills-import + Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. + operationId: platform-skills-validate x-visibility: Public x-glean-experimental: - id: 9162d790-e101-437d-a9a0-25e4687d150b - introduced: "2026-07-28" - x-codegen-request-body-name: request + id: 0b086fa6-30f8-4279-8d11-10ab0059c14a + introduced: "2026-06-24" requestBody: required: true content: - application/json: + multipart/form-data: schema: - $ref: "#/components/schemas/PlatformSkillImportRequest" + $ref: "#/components/schemas/PlatformSkillValidationRequest" + x-codegen-request-body-name: request responses: "200": - description: Skills imported successfully. + description: Successful response. content: application/json: schema: - $ref: "#/components/schemas/PlatformSkillImportResponse" + $ref: "#/components/schemas/PlatformSkillValidationResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" - "409": - $ref: "#/components/responses/PlatformConflict" "413": $ref: "#/components/responses/PlatformRequestTooLarge" "429": @@ -510,7 +519,7 @@ paths: "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: skills - x-speakeasy-name-override: import + x-speakeasy-name-override: validate security: - APIToken: [] /api/skills/sources/preview: @@ -3999,14 +4008,15 @@ paths: summary: Get tool definitions from a tool server. description: | Returns the name, description and JSON input schema for the named tools on the - specified tool server. Works for both action packs and MCP servers. + specified tool server. Works for Glean's built-in tools, tool packs and MCP + servers. `toolNames` is required. Names that do not exist on the server are returned in `notFound` rather than failing the request, so a single bad name does not force callers into one-at-a-time retries. Matching is case-insensitive and treats `-` and `_` as equivalent. - Native tools are not served; `serverId=native` returns 404. + Use `serverId=native` for Glean's built-in tools. tags: - Tools security: @@ -6014,6 +6024,8 @@ paths: summary: Chat description: Have a conversation with Glean AI. operationId: chatStream + security: + - APIToken: [] x-visibility: Public x-codegen-request-body-name: payload parameters: @@ -6603,8 +6615,8 @@ components: role: type: string enum: - - user - - assistant + - USER + - ASSISTANT content: type: string minLength: 1 @@ -6616,7 +6628,7 @@ components: properties: input: description: | - Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. oneOf: - type: string minLength: 1 @@ -6654,7 +6666,7 @@ components: type: type: string enum: - - document + - DOCUMENT document_id: type: string minLength: 1 @@ -6680,7 +6692,7 @@ components: type: type: string enum: - - person + - PERSON person_id: type: string minLength: 1 @@ -6698,7 +6710,7 @@ components: type: type: string enum: - - file + - FILE file_id: type: string minLength: 1 @@ -6718,7 +6730,7 @@ components: type: type: string enum: - - custom_entity + - CUSTOM_ENTITY entity_id: type: string minLength: 1 @@ -6740,10 +6752,10 @@ components: discriminator: propertyName: type mapping: - document: "#/components/schemas/ChatDocumentSource" - person: "#/components/schemas/ChatPersonSource" - file: "#/components/schemas/ChatFileSource" - custom_entity: "#/components/schemas/ChatCustomEntitySource" + DOCUMENT: "#/components/schemas/ChatDocumentSource" + PERSON: "#/components/schemas/ChatPersonSource" + FILE: "#/components/schemas/ChatFileSource" + CUSTOM_ENTITY: "#/components/schemas/ChatCustomEntitySource" PlatformChatCitationSnippet: type: object additionalProperties: false @@ -6766,7 +6778,7 @@ components: type: type: string enum: - - citation + - CITATION sources: type: array minItems: 1 @@ -6795,7 +6807,7 @@ components: type: type: string enum: - - output_text + - OUTPUT_TEXT text: type: string annotations: @@ -6813,11 +6825,11 @@ components: type: type: string enum: - - message + - MESSAGE role: type: string enum: - - assistant + - ASSISTANT content: type: array minItems: 1 @@ -6841,7 +6853,7 @@ components: object: type: string enum: - - response + - RESPONSE created_at: type: string format: date-time @@ -6849,7 +6861,7 @@ components: status: type: string enum: - - completed + - COMPLETED output: type: array minItems: 1 @@ -7008,6 +7020,37 @@ components: request_id: type: string description: Platform-generated request ID for support correlation. + PlatformSkillImportRequest: + type: object + additionalProperties: false + required: + - source_urls + properties: + source_urls: + type: array + minItems: 1 + maxItems: 100 + uniqueItems: true + description: Resolved GitHub skill URLs selected from a source preview. + items: + type: string + minLength: 1 + maxLength: 2048 + PlatformSkillImportResponse: + type: object + required: + - skills + - request_id + properties: + skills: + type: array + minItems: 1 + description: Independently persisted skills in request order. + items: + $ref: "#/components/schemas/PlatformSkill" + request_id: + type: string + description: Platform-generated request ID for support correlation. PlatformSkillValidationRequest: type: object additionalProperties: false @@ -7069,37 +7112,6 @@ components: request_id: type: string description: Platform-generated request ID for support correlation. - PlatformSkillImportRequest: - type: object - additionalProperties: false - required: - - source_urls - properties: - source_urls: - type: array - minItems: 1 - maxItems: 100 - uniqueItems: true - description: Resolved GitHub skill URLs selected from a source preview. - items: - type: string - minLength: 1 - maxLength: 2048 - PlatformSkillImportResponse: - type: object - required: - - skills - - request_id - properties: - skills: - type: array - minItems: 1 - description: Independently persisted skills in request order. - items: - $ref: "#/components/schemas/PlatformSkill" - request_id: - type: string - description: Platform-generated request ID for support correlation. PlatformSkillSourcePreviewRequest: type: object additionalProperties: false @@ -14344,6 +14356,7 @@ components: - OOO_PLANNER - OOO_CATCH_UP - ADMIN_HEALTH_CENTER + - KNOWLEDGE_GAP description: Categories of content requested. An allowlist gives flexibility to request content separately or together. requestOptions: $ref: '#/components/schemas/FeedRequestOptions' @@ -14789,6 +14802,7 @@ components: - OOO_PLANNER - OOO_CATCH_UP - ADMIN_HEALTH_CENTER + - KNOWLEDGE_GAP description: Type of the justification. justification: type: string @@ -14880,6 +14894,7 @@ components: - OOO_PLANNER - OOO_CATCH_UP - ADMIN_HEALTH_CENTER + - KNOWLEDGE_GAP description: Category of the result, one of the requested categories in incoming request. primaryEntry: $ref: '#/components/schemas/FeedEntry' @@ -14896,7 +14911,8 @@ components: enum: - ORGANIC - PROMO - description: Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. + - PINNED + description: Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). required: - category - primaryEntry diff --git a/.speakeasy/tests.arazzo.yaml b/.speakeasy/tests.arazzo.yaml index bbf00bc2..e0724639 100644 --- a/.speakeasy/tests.arazzo.yaml +++ b/.speakeasy/tests.arazzo.yaml @@ -159063,7 +159063,7 @@ workflows: - condition: $response.header.Content-Type == application/json - context: $response.body condition: | - {"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":""} + {"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":""} type: simple x-speakeasy-test-group: chat_SDK x-speakeasy-test-rebuild: true diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 137e8640..25704efa 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.792.0 +speakeasyVersion: 1.793.2 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:ca77ef4550d695da210e8f0d32f3422d29e9d09f7aa66f7b13d248c6ec8c7941 - sourceBlobDigest: sha256:469de4cd2c8ab4928c3989656bf63cc265a8ceea5a8b3e3498734137b19723f8 + sourceRevisionDigest: sha256:e1ee49fd7feb0a8d82f357f647835566a9a6ac91542790c1c2f48732b7dcb923 + sourceBlobDigest: sha256:338cd7c98353a9d15702b9ef4d062ab1b33816303cfcf2b26486a129269f2814 tags: - latest Glean Client API: @@ -16,10 +16,10 @@ targets: glean: source: Glean API sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:ca77ef4550d695da210e8f0d32f3422d29e9d09f7aa66f7b13d248c6ec8c7941 - sourceBlobDigest: sha256:469de4cd2c8ab4928c3989656bf63cc265a8ceea5a8b3e3498734137b19723f8 + sourceRevisionDigest: sha256:e1ee49fd7feb0a8d82f357f647835566a9a6ac91542790c1c2f48732b7dcb923 + sourceBlobDigest: sha256:338cd7c98353a9d15702b9ef4d062ab1b33816303cfcf2b26486a129269f2814 codeSamplesNamespace: glean-api-specs-python-code-samples - codeSamplesRevisionDigest: sha256:2c3560eb6c6ea1afdbbf7fd64c9e27673ca3ae028fb784f30ecd9151553898f8 + codeSamplesRevisionDigest: sha256:1426503cf43714290faf1a9a9a0d94f83a6638e69dd2fa02ede4f4be83ab7fab workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index a7ebe040..567718e9 100644 --- a/README.md +++ b/README.md @@ -561,8 +561,8 @@ For more information on obtaining the appropriate token type, please contact you * [create](docs/sdks/skills/README.md#create) - Create skill * [list](docs/sdks/skills/README.md#list) - List skills -* [validate](docs/sdks/skills/README.md#validate) - Validate skill bundle * [import_](docs/sdks/skills/README.md#import_) - Import skills from GitHub +* [validate](docs/sdks/skills/README.md#validate) - Validate skill bundle * [preview_source](docs/sdks/skills/README.md#preview_source) - Preview a GitHub skill source * [update](docs/sdks/skills/README.md#update) - Update skill * [delete](docs/sdks/skills/README.md#delete) - Delete skill diff --git a/RELEASES.md b/RELEASES.md index 12d27e04..b445cd0f 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -818,4 +818,14 @@ Based on: ### Generated - [python v0.15.5] . ### Releases -- [PyPI v0.15.5] https://pypi.org/project/glean-api-client/0.15.5 - . \ No newline at end of file +- [PyPI v0.15.5] https://pypi.org/project/glean-api-client/0.15.5 - . + +## 2026-08-14 01:59:01 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.793.2 (2.928.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.15.6] . +### Releases +- [PyPI v0.15.6] https://pypi.org/project/glean-api-client/0.15.6 - . \ No newline at end of file diff --git a/docs/models/feedrequestcategory.md b/docs/models/feedrequestcategory.md index c3eab96e..35d5beb1 100644 --- a/docs/models/feedrequestcategory.md +++ b/docs/models/feedrequestcategory.md @@ -57,4 +57,5 @@ value = FeedRequestCategory.DOCUMENT_SUGGESTION | `DEMO_CARD` | DEMO_CARD | | `OOO_PLANNER` | OOO_PLANNER | | `OOO_CATCH_UP` | OOO_CATCH_UP | -| `ADMIN_HEALTH_CENTER` | ADMIN_HEALTH_CENTER | \ No newline at end of file +| `ADMIN_HEALTH_CENTER` | ADMIN_HEALTH_CENTER | +| `KNOWLEDGE_GAP` | KNOWLEDGE_GAP | \ No newline at end of file diff --git a/docs/models/feedresult.md b/docs/models/feedresult.md index f14153ca..f6f92abf 100644 --- a/docs/models/feedresult.md +++ b/docs/models/feedresult.md @@ -3,10 +3,10 @@ ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `category` | [models.FeedResultCategory](../models/feedresultcategory.md) | :heavy_check_mark: | Category of the result, one of the requested categories in incoming request. | -| `primary_entry` | [models.FeedEntry](../models/feedentry.md) | :heavy_check_mark: | N/A | -| `secondary_entries` | List[[models.FeedEntry](../models/feedentry.md)] | :heavy_minus_sign: | Secondary entries for the result e.g. suggested docs for the calendar, carousel. | -| `rank` | *Optional[int]* | :heavy_minus_sign: | Rank of the result. Rank is suggested by server. Client side rank may differ. | -| `placement_reason` | [Optional[models.PlacementReason]](../models/placementreason.md) | :heavy_minus_sign: | Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `category` | [models.FeedResultCategory](../models/feedresultcategory.md) | :heavy_check_mark: | Category of the result, one of the requested categories in incoming request. | +| `primary_entry` | [models.FeedEntry](../models/feedentry.md) | :heavy_check_mark: | N/A | +| `secondary_entries` | List[[models.FeedEntry](../models/feedentry.md)] | :heavy_minus_sign: | Secondary entries for the result e.g. suggested docs for the calendar, carousel. | +| `rank` | *Optional[int]* | :heavy_minus_sign: | Rank of the result. Rank is suggested by server. Client side rank may differ. | +| `placement_reason` | [Optional[models.PlacementReason]](../models/placementreason.md) | :heavy_minus_sign: | Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). | \ No newline at end of file diff --git a/docs/models/feedresultcategory.md b/docs/models/feedresultcategory.md index c27f4b3b..3689b4f8 100644 --- a/docs/models/feedresultcategory.md +++ b/docs/models/feedresultcategory.md @@ -61,4 +61,5 @@ value = FeedResultCategory.DOCUMENT_SUGGESTION | `DEMO_CARD` | DEMO_CARD | | `OOO_PLANNER` | OOO_PLANNER | | `OOO_CATCH_UP` | OOO_CATCH_UP | -| `ADMIN_HEALTH_CENTER` | ADMIN_HEALTH_CENTER | \ No newline at end of file +| `ADMIN_HEALTH_CENTER` | ADMIN_HEALTH_CENTER | +| `KNOWLEDGE_GAP` | KNOWLEDGE_GAP | \ No newline at end of file diff --git a/docs/models/input.md b/docs/models/input.md index 3df08308..c54bec05 100644 --- a/docs/models/input.md +++ b/docs/models/input.md @@ -1,6 +1,6 @@ # Input -Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. +Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. diff --git a/docs/models/justificationtype.md b/docs/models/justificationtype.md index cff9e6dd..ebb1b8b6 100644 --- a/docs/models/justificationtype.md +++ b/docs/models/justificationtype.md @@ -74,4 +74,5 @@ value = JustificationType.FREQUENTLY_ACCESSED | `DEMO_CARD` | DEMO_CARD | | `OOO_PLANNER` | OOO_PLANNER | | `OOO_CATCH_UP` | OOO_CATCH_UP | -| `ADMIN_HEALTH_CENTER` | ADMIN_HEALTH_CENTER | \ No newline at end of file +| `ADMIN_HEALTH_CENTER` | ADMIN_HEALTH_CENTER | +| `KNOWLEDGE_GAP` | KNOWLEDGE_GAP | \ No newline at end of file diff --git a/docs/models/object.md b/docs/models/object.md index fedbfbb5..06f80d51 100644 --- a/docs/models/object.md +++ b/docs/models/object.md @@ -13,4 +13,4 @@ value = Object.RESPONSE | Name | Value | | ---------- | ---------- | -| `RESPONSE` | response | \ No newline at end of file +| `RESPONSE` | RESPONSE | \ No newline at end of file diff --git a/docs/models/placementreason.md b/docs/models/placementreason.md index 515cd010..f17278f2 100644 --- a/docs/models/placementreason.md +++ b/docs/models/placementreason.md @@ -1,6 +1,6 @@ # PlacementReason -Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. +Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). ## Example Usage @@ -18,4 +18,5 @@ value = PlacementReason.ORGANIC | Name | Value | | --------- | --------- | | `ORGANIC` | ORGANIC | -| `PROMO` | PROMO | \ No newline at end of file +| `PROMO` | PROMO | +| `PINNED` | PINNED | \ No newline at end of file diff --git a/docs/models/platformchatcitationannotationtype.md b/docs/models/platformchatcitationannotationtype.md index e3bd53ef..8b83f20e 100644 --- a/docs/models/platformchatcitationannotationtype.md +++ b/docs/models/platformchatcitationannotationtype.md @@ -13,4 +13,4 @@ value = PlatformChatCitationAnnotationType.CITATION | Name | Value | | ---------- | ---------- | -| `CITATION` | citation | \ No newline at end of file +| `CITATION` | CITATION | \ No newline at end of file diff --git a/docs/models/platformchatcompletedresponsestatus.md b/docs/models/platformchatcompletedresponsestatus.md index 904a9c8a..8bed3e06 100644 --- a/docs/models/platformchatcompletedresponsestatus.md +++ b/docs/models/platformchatcompletedresponsestatus.md @@ -13,4 +13,4 @@ value = PlatformChatCompletedResponseStatus.COMPLETED | Name | Value | | ----------- | ----------- | -| `COMPLETED` | completed | \ No newline at end of file +| `COMPLETED` | COMPLETED | \ No newline at end of file diff --git a/docs/models/platformchatcreaterequest.md b/docs/models/platformchatcreaterequest.md index 6b00a961..f37f1031 100644 --- a/docs/models/platformchatcreaterequest.md +++ b/docs/models/platformchatcreaterequest.md @@ -5,7 +5,7 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | -| `input` | [models.Input](../models/input.md) | :heavy_check_mark: | Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`.
| +| `input` | [models.Input](../models/input.md) | :heavy_check_mark: | Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`.
| | `stream` | *Optional[bool]* | :heavy_minus_sign: | When true, respond with `text/event-stream`. When false or omitted, respond with `application/json`.
| | `store` | *Optional[bool]* | :heavy_minus_sign: | When true (default), persist the interaction and return a `conversation_id`. When false, run ephemerally with no persistence.
| | `conversation_id` | *Optional[str]* | :heavy_minus_sign: | Continue an existing stored conversation. Incompatible with message-array `input` and with `store: false`.
| \ No newline at end of file diff --git a/docs/models/platformchatcustomentitysourcetype.md b/docs/models/platformchatcustomentitysourcetype.md index 67daadbc..5f5b4fc6 100644 --- a/docs/models/platformchatcustomentitysourcetype.md +++ b/docs/models/platformchatcustomentitysourcetype.md @@ -13,4 +13,4 @@ value = PlatformChatCustomEntitySourceType.CUSTOM_ENTITY | Name | Value | | --------------- | --------------- | -| `CUSTOM_ENTITY` | custom_entity | \ No newline at end of file +| `CUSTOM_ENTITY` | CUSTOM_ENTITY | \ No newline at end of file diff --git a/docs/models/platformchatdocumentsourcetype1.md b/docs/models/platformchatdocumentsourcetype1.md index 60cb54d7..81404bd8 100644 --- a/docs/models/platformchatdocumentsourcetype1.md +++ b/docs/models/platformchatdocumentsourcetype1.md @@ -13,4 +13,4 @@ value = PlatformChatDocumentSourceType1.DOCUMENT | Name | Value | | ---------- | ---------- | -| `DOCUMENT` | document | \ No newline at end of file +| `DOCUMENT` | DOCUMENT | \ No newline at end of file diff --git a/docs/models/platformchatdocumentsourcetype2.md b/docs/models/platformchatdocumentsourcetype2.md index 1fd23049..30967f45 100644 --- a/docs/models/platformchatdocumentsourcetype2.md +++ b/docs/models/platformchatdocumentsourcetype2.md @@ -13,4 +13,4 @@ value = PlatformChatDocumentSourceType2.DOCUMENT | Name | Value | | ---------- | ---------- | -| `DOCUMENT` | document | \ No newline at end of file +| `DOCUMENT` | DOCUMENT | \ No newline at end of file diff --git a/docs/models/platformchatfilesourcetype.md b/docs/models/platformchatfilesourcetype.md index 156db8e2..eccc6d3a 100644 --- a/docs/models/platformchatfilesourcetype.md +++ b/docs/models/platformchatfilesourcetype.md @@ -13,4 +13,4 @@ value = PlatformChatFileSourceType.FILE | Name | Value | | ------ | ------ | -| `FILE` | file | \ No newline at end of file +| `FILE` | FILE | \ No newline at end of file diff --git a/docs/models/platformchatinputmessagerole.md b/docs/models/platformchatinputmessagerole.md index b756fc95..cdf92876 100644 --- a/docs/models/platformchatinputmessagerole.md +++ b/docs/models/platformchatinputmessagerole.md @@ -13,5 +13,5 @@ value = PlatformChatInputMessageRole.USER | Name | Value | | ----------- | ----------- | -| `USER` | user | -| `ASSISTANT` | assistant | \ No newline at end of file +| `USER` | USER | +| `ASSISTANT` | ASSISTANT | \ No newline at end of file diff --git a/docs/models/platformchatoutputmessagerole.md b/docs/models/platformchatoutputmessagerole.md index 7f8dc494..07e97be1 100644 --- a/docs/models/platformchatoutputmessagerole.md +++ b/docs/models/platformchatoutputmessagerole.md @@ -13,4 +13,4 @@ value = PlatformChatOutputMessageRole.ASSISTANT | Name | Value | | ----------- | ----------- | -| `ASSISTANT` | assistant | \ No newline at end of file +| `ASSISTANT` | ASSISTANT | \ No newline at end of file diff --git a/docs/models/platformchatoutputmessagetype.md b/docs/models/platformchatoutputmessagetype.md index 8e2d0020..c1406850 100644 --- a/docs/models/platformchatoutputmessagetype.md +++ b/docs/models/platformchatoutputmessagetype.md @@ -13,4 +13,4 @@ value = PlatformChatOutputMessageType.MESSAGE | Name | Value | | --------- | --------- | -| `MESSAGE` | message | \ No newline at end of file +| `MESSAGE` | MESSAGE | \ No newline at end of file diff --git a/docs/models/platformchatoutputtextcontenttype.md b/docs/models/platformchatoutputtextcontenttype.md index 05886daa..2f8f45b2 100644 --- a/docs/models/platformchatoutputtextcontenttype.md +++ b/docs/models/platformchatoutputtextcontenttype.md @@ -13,4 +13,4 @@ value = PlatformChatOutputTextContentType.OUTPUT_TEXT | Name | Value | | ------------- | ------------- | -| `OUTPUT_TEXT` | output_text | \ No newline at end of file +| `OUTPUT_TEXT` | OUTPUT_TEXT | \ No newline at end of file diff --git a/docs/models/platformchatpersonsourcetype.md b/docs/models/platformchatpersonsourcetype.md index 3c36b121..4648aec0 100644 --- a/docs/models/platformchatpersonsourcetype.md +++ b/docs/models/platformchatpersonsourcetype.md @@ -13,4 +13,4 @@ value = PlatformChatPersonSourceType.PERSON | Name | Value | | -------- | -------- | -| `PERSON` | person | \ No newline at end of file +| `PERSON` | PERSON | \ No newline at end of file diff --git a/docs/sdks/chatsdk/README.md b/docs/sdks/chatsdk/README.md index 36fdb267..fbb19c8f 100644 --- a/docs/sdks/chatsdk/README.md +++ b/docs/sdks/chatsdk/README.md @@ -34,7 +34,7 @@ with Glean( | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | -| `input` | [models.Input](../../models/input.md) | :heavy_check_mark: | Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`.
| +| `input` | [models.Input](../../models/input.md) | :heavy_check_mark: | Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`.
| | `stream` | *Optional[bool]* | :heavy_minus_sign: | When true, respond with `text/event-stream`. When false or omitted, respond with `application/json`.
| | `store` | *Optional[bool]* | :heavy_minus_sign: | When true (default), persist the interaction and return a `conversation_id`. When false, run ephemerally with no persistence.
| | `conversation_id` | *Optional[str]* | :heavy_minus_sign: | Continue an existing stored conversation. Incompatible with message-array `input` and with `store: false`.
| diff --git a/docs/sdks/skills/README.md b/docs/sdks/skills/README.md index f3f50714..8cdfbc33 100644 --- a/docs/sdks/skills/README.md +++ b/docs/sdks/skills/README.md @@ -6,8 +6,8 @@ * [create](#create) - Create skill * [list](#list) - List skills -* [validate](#validate) - Validate skill bundle * [import_](#import_) - Import skills from GitHub +* [validate](#validate) - Validate skill bundle * [preview_source](#preview_source) - Preview a GitHub skill source * [update](#update) - Update skill * [delete](#delete) - Delete skill @@ -109,14 +109,14 @@ with Glean( | errors.PlatformProblemDetailError | 500, 503 | application/problem+json | | errors.GleanError | 4XX, 5XX | \*/\* | -## validate +## import_ -Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. +Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. ### Example Usage - + ```python from glean.api_client import Glean import os @@ -126,10 +126,9 @@ with Glean( api_token=os.getenv("GLEAN_API_TOKEN", ""), ) as glean: - res = glean.skills.validate(file={ - "file_name": "example.file", - "content": open("example.file", "rb"), - }) + res = glean.skills.import_(source_urls=[ + "", + ]) # Handle response print(res) @@ -138,31 +137,31 @@ with Glean( ### Parameters -| Parameter | Type | Required | Description | -| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| `file` | [models.PlatformSkillValidationRequestFile](../../models/platformskillvalidationrequestfile.md) | :heavy_check_mark: | SKILL.md, .zip, or .skill bundle to validate. | -| `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 | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `source_urls` | List[*str*] | :heavy_check_mark: | Resolved GitHub skill URLs selected from a source preview. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response -**[models.PlatformSkillValidationResponse](../../models/platformskillvalidationresponse.md)** +**[models.PlatformSkillImportResponse](../../models/platformskillimportresponse.md)** ### Errors | Error Type | Status Code | Content Type | | --------------------------------- | --------------------------------- | --------------------------------- | -| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 400, 401, 403, 408, 409, 413, 429 | application/problem+json | | errors.PlatformProblemDetailError | 500, 503 | application/problem+json | | errors.GleanError | 4XX, 5XX | \*/\* | -## import_ +## validate -Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. +Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. ### Example Usage - + ```python from glean.api_client import Glean import os @@ -172,9 +171,10 @@ with Glean( api_token=os.getenv("GLEAN_API_TOKEN", ""), ) as glean: - res = glean.skills.import_(source_urls=[ - "", - ]) + res = glean.skills.validate(file={ + "file_name": "example.file", + "content": open("example.file", "rb"), + }) # Handle response print(res) @@ -183,20 +183,20 @@ with Glean( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `source_urls` | List[*str*] | :heavy_check_mark: | Resolved GitHub skill URLs selected from a source preview. | -| `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 | +| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| `file` | [models.PlatformSkillValidationRequestFile](../../models/platformskillvalidationrequestfile.md) | :heavy_check_mark: | SKILL.md, .zip, or .skill bundle to validate. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response -**[models.PlatformSkillImportResponse](../../models/platformskillimportresponse.md)** +**[models.PlatformSkillValidationResponse](../../models/platformskillvalidationresponse.md)** ### Errors | Error Type | Status Code | Content Type | | --------------------------------- | --------------------------------- | --------------------------------- | -| errors.PlatformProblemDetailError | 400, 401, 403, 408, 409, 413, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | | errors.PlatformProblemDetailError | 500, 503 | application/problem+json | | errors.GleanError | 4XX, 5XX | \*/\* | diff --git a/docs/sdks/tools/README.md b/docs/sdks/tools/README.md index 5481f3f8..8a336814 100644 --- a/docs/sdks/tools/README.md +++ b/docs/sdks/tools/README.md @@ -279,14 +279,15 @@ with Glean( ## get_tool_server_tools Returns the name, description and JSON input schema for the named tools on the -specified tool server. Works for both action packs and MCP servers. +specified tool server. Works for Glean's built-in tools, tool packs and MCP +servers. `toolNames` is required. Names that do not exist on the server are returned in `notFound` rather than failing the request, so a single bad name does not force callers into one-at-a-time retries. Matching is case-insensitive and treats `-` and `_` as equivalent. -Native tools are not served; `serverId=native` returns 404. +Use `serverId=native` for Glean's built-in tools. ### Example Usage diff --git a/pyproject.toml b/pyproject.toml index 0a9c335a..ce622856 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "glean-api-client" -version = "0.15.5" +version = "0.15.6" 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 c5dd907a..a08d3d4a 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.15.5" +__version__: str = "0.15.6" __openapi_doc_version__: str = "0.9.0" -__gen_version__: str = "2.927.0" -__user_agent__: str = "speakeasy-sdk/python 0.15.5 2.927.0 0.9.0 glean-api-client" +__gen_version__: str = "2.928.0" +__user_agent__: str = "speakeasy-sdk/python 0.15.6 2.928.0 0.9.0 glean-api-client" try: if __package__ is not None: diff --git a/src/glean/api_client/chat_sdk.py b/src/glean/api_client/chat_sdk.py index 4275af06..8d63acc6 100644 --- a/src/glean/api_client/chat_sdk.py +++ b/src/glean/api_client/chat_sdk.py @@ -34,7 +34,7 @@ def create( Run an assistant turn. Set `stream` to true to receive server-sent events; otherwise the response is a typed JSON response object. - :param input: Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + :param input: Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. :param stream: When true, respond with `text/event-stream`. When false or omitted, respond with `application/json`. @@ -167,7 +167,7 @@ async def create_async( Run an assistant turn. Set `stream` to true to receive server-sent events; otherwise the response is a typed JSON response object. - :param input: Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + :param input: Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. :param stream: When true, respond with `text/event-stream`. When false or omitted, respond with `application/json`. diff --git a/src/glean/api_client/models/feedentry.py b/src/glean/api_client/models/feedentry.py index 03dd978e..30ea4f0e 100644 --- a/src/glean/api_client/models/feedentry.py +++ b/src/glean/api_client/models/feedentry.py @@ -128,6 +128,7 @@ class JustificationType(str, Enum, metaclass=utils.OpenEnumMeta): OOO_PLANNER = "OOO_PLANNER" OOO_CATCH_UP = "OOO_CATCH_UP" ADMIN_HEALTH_CENTER = "ADMIN_HEALTH_CENTER" + KNOWLEDGE_GAP = "KNOWLEDGE_GAP" class FeedEntryTypedDict(TypedDict): diff --git a/src/glean/api_client/models/feedrequest.py b/src/glean/api_client/models/feedrequest.py index 69d85fb7..d6d5f2d0 100644 --- a/src/glean/api_client/models/feedrequest.py +++ b/src/glean/api_client/models/feedrequest.py @@ -57,6 +57,7 @@ class FeedRequestCategory(str, Enum): OOO_PLANNER = "OOO_PLANNER" OOO_CATCH_UP = "OOO_CATCH_UP" ADMIN_HEALTH_CENTER = "ADMIN_HEALTH_CENTER" + KNOWLEDGE_GAP = "KNOWLEDGE_GAP" class FeedRequestTypedDict(TypedDict): diff --git a/src/glean/api_client/models/feedresult.py b/src/glean/api_client/models/feedresult.py index f5bc568a..548eedb0 100644 --- a/src/glean/api_client/models/feedresult.py +++ b/src/glean/api_client/models/feedresult.py @@ -59,13 +59,15 @@ class FeedResultCategory(str, Enum, metaclass=utils.OpenEnumMeta): OOO_PLANNER = "OOO_PLANNER" OOO_CATCH_UP = "OOO_CATCH_UP" ADMIN_HEALTH_CENTER = "ADMIN_HEALTH_CENTER" + KNOWLEDGE_GAP = "KNOWLEDGE_GAP" class PlacementReason(str, Enum, metaclass=utils.OpenEnumMeta): - r"""Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework.""" + r"""Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards).""" ORGANIC = "ORGANIC" PROMO = "PROMO" + PINNED = "PINNED" class FeedResultTypedDict(TypedDict): @@ -77,7 +79,7 @@ class FeedResultTypedDict(TypedDict): rank: NotRequired[int] r"""Rank of the result. Rank is suggested by server. Client side rank may differ.""" placement_reason: NotRequired[PlacementReason] - r"""Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework.""" + r"""Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards).""" class FeedResult(BaseModel): @@ -97,7 +99,7 @@ class FeedResult(BaseModel): placement_reason: Annotated[ Optional[PlacementReason], pydantic.Field(alias="placementReason") ] = None - r"""Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework.""" + r"""Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards).""" @field_serializer("category") def serialize_category(self, value): diff --git a/src/glean/api_client/models/platformchatcitationannotation.py b/src/glean/api_client/models/platformchatcitationannotation.py index e100f70c..5dd276ba 100644 --- a/src/glean/api_client/models/platformchatcitationannotation.py +++ b/src/glean/api_client/models/platformchatcitationannotation.py @@ -23,7 +23,7 @@ class PlatformChatCitationAnnotationType(str, Enum): - CITATION = "citation" + CITATION = "CITATION" class PlatformChatCitationAnnotationTypedDict(TypedDict): diff --git a/src/glean/api_client/models/platformchatcompletedresponse.py b/src/glean/api_client/models/platformchatcompletedresponse.py index 946d487c..4b32c84b 100644 --- a/src/glean/api_client/models/platformchatcompletedresponse.py +++ b/src/glean/api_client/models/platformchatcompletedresponse.py @@ -20,11 +20,11 @@ class Object(str, Enum): - RESPONSE = "response" + RESPONSE = "RESPONSE" class PlatformChatCompletedResponseStatus(str, Enum): - COMPLETED = "completed" + COMPLETED = "COMPLETED" class PlatformChatCompletedResponseTypedDict(TypedDict): diff --git a/src/glean/api_client/models/platformchatcreaterequest.py b/src/glean/api_client/models/platformchatcreaterequest.py index 252f07c1..b596efc5 100644 --- a/src/glean/api_client/models/platformchatcreaterequest.py +++ b/src/glean/api_client/models/platformchatcreaterequest.py @@ -14,20 +14,20 @@ InputTypedDict = TypeAliasType( "InputTypedDict", Union[str, List[PlatformChatInputMessageTypedDict]] ) -r"""Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. +r"""Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. """ Input = TypeAliasType("Input", Union[str, List[PlatformChatInputMessage]]) -r"""Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. +r"""Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. """ class PlatformChatCreateRequestTypedDict(TypedDict): input: InputTypedDict - r"""Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + r"""Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. """ stream: NotRequired[bool] @@ -46,7 +46,7 @@ class PlatformChatCreateRequestTypedDict(TypedDict): class PlatformChatCreateRequest(BaseModel): input: Input - r"""Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + r"""Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. """ diff --git a/src/glean/api_client/models/platformchatcustomentitysource.py b/src/glean/api_client/models/platformchatcustomentitysource.py index 76803768..f2ec133b 100644 --- a/src/glean/api_client/models/platformchatcustomentitysource.py +++ b/src/glean/api_client/models/platformchatcustomentitysource.py @@ -9,7 +9,7 @@ class PlatformChatCustomEntitySourceType(str, Enum): - CUSTOM_ENTITY = "custom_entity" + CUSTOM_ENTITY = "CUSTOM_ENTITY" class PlatformChatCustomEntitySourceTypedDict(TypedDict): diff --git a/src/glean/api_client/models/platformchatdocumentsource.py b/src/glean/api_client/models/platformchatdocumentsource.py index 0fa4f61a..73aad8d2 100644 --- a/src/glean/api_client/models/platformchatdocumentsource.py +++ b/src/glean/api_client/models/platformchatdocumentsource.py @@ -9,7 +9,7 @@ class PlatformChatDocumentSourceType2(str, Enum): - DOCUMENT = "document" + DOCUMENT = "DOCUMENT" class PlatformChatDocumentSourceDocument2TypedDict(TypedDict): @@ -49,7 +49,7 @@ def serialize_model(self, handler): class PlatformChatDocumentSourceType1(str, Enum): - DOCUMENT = "document" + DOCUMENT = "DOCUMENT" class PlatformChatDocumentSourceDocument1TypedDict(TypedDict): diff --git a/src/glean/api_client/models/platformchatfilesource.py b/src/glean/api_client/models/platformchatfilesource.py index bde933e7..228194cb 100644 --- a/src/glean/api_client/models/platformchatfilesource.py +++ b/src/glean/api_client/models/platformchatfilesource.py @@ -9,7 +9,7 @@ class PlatformChatFileSourceType(str, Enum): - FILE = "file" + FILE = "FILE" class PlatformChatFileSourceTypedDict(TypedDict): diff --git a/src/glean/api_client/models/platformchatinputmessage.py b/src/glean/api_client/models/platformchatinputmessage.py index 1031b464..9d21d2a1 100644 --- a/src/glean/api_client/models/platformchatinputmessage.py +++ b/src/glean/api_client/models/platformchatinputmessage.py @@ -7,8 +7,8 @@ class PlatformChatInputMessageRole(str, Enum): - USER = "user" - ASSISTANT = "assistant" + USER = "USER" + ASSISTANT = "ASSISTANT" class PlatformChatInputMessageTypedDict(TypedDict): diff --git a/src/glean/api_client/models/platformchatoutputmessage.py b/src/glean/api_client/models/platformchatoutputmessage.py index 686a0c29..9082277a 100644 --- a/src/glean/api_client/models/platformchatoutputmessage.py +++ b/src/glean/api_client/models/platformchatoutputmessage.py @@ -12,11 +12,11 @@ class PlatformChatOutputMessageType(str, Enum): - MESSAGE = "message" + MESSAGE = "MESSAGE" class PlatformChatOutputMessageRole(str, Enum): - ASSISTANT = "assistant" + ASSISTANT = "ASSISTANT" class PlatformChatOutputMessageTypedDict(TypedDict): diff --git a/src/glean/api_client/models/platformchatoutputtextcontent.py b/src/glean/api_client/models/platformchatoutputtextcontent.py index 0d076b64..d3742527 100644 --- a/src/glean/api_client/models/platformchatoutputtextcontent.py +++ b/src/glean/api_client/models/platformchatoutputtextcontent.py @@ -13,7 +13,7 @@ class PlatformChatOutputTextContentType(str, Enum): - OUTPUT_TEXT = "output_text" + OUTPUT_TEXT = "OUTPUT_TEXT" class PlatformChatOutputTextContentTypedDict(TypedDict): diff --git a/src/glean/api_client/models/platformchatpersonsource.py b/src/glean/api_client/models/platformchatpersonsource.py index d2548486..a2e120b1 100644 --- a/src/glean/api_client/models/platformchatpersonsource.py +++ b/src/glean/api_client/models/platformchatpersonsource.py @@ -9,7 +9,7 @@ class PlatformChatPersonSourceType(str, Enum): - PERSON = "person" + PERSON = "PERSON" class PlatformChatPersonSourceTypedDict(TypedDict): diff --git a/src/glean/api_client/skills.py b/src/glean/api_client/skills.py index d86ec8e3..89e97e10 100644 --- a/src/glean/api_client/skills.py +++ b/src/glean/api_client/skills.py @@ -466,24 +466,21 @@ async def list_async( raise errors.GleanError("Unexpected response received", http_res) - def validate( + def import_( self, *, - file: Union[ - models.PlatformSkillValidationRequestFile, - models.PlatformSkillValidationRequestFileTypedDict, - ], + source_urls: Iterable[str], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.PlatformSkillValidationResponse: - r"""Validate skill bundle + ) -> models.PlatformSkillImportResponse: + r"""Import skills from GitHub - Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. + Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. - :param file: SKILL.md, .zip, or .skill bundle to validate. + :param source_urls: Resolved GitHub skill URLs selected from a source preview. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -499,15 +496,13 @@ def validate( else: base_url = self._get_url(base_url, url_variables) - request = models.PlatformSkillValidationRequest( - file=utils.get_pydantic_model( - file, models.PlatformSkillValidationRequestFile - ), + request = models.PlatformSkillImportRequest( + source_urls=utils.unmarshal(source_urls, List[str]), ) req = self._build_request( method="POST", - path="/api/skills/validation", + path="/api/skills/import", base_url=base_url, url_variables=url_variables, request=request, @@ -519,11 +514,7 @@ def validate( http_headers=http_headers, security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request, - False, - False, - "multipart", - models.PlatformSkillValidationRequest, + request, False, False, "json", models.PlatformSkillImportRequest ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -541,16 +532,17 @@ def validate( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="platform-skills-validate", + operation_id="platform-skills-import", oauth2_scopes=None, security_source=get_security_from_env( self.sdk_configuration.security, models.Security ), tags=["Skills"], extensions={ + "x-codegen-request-body-name": "request", "x-glean-experimental": { - "id": "0b086fa6-30f8-4279-8d11-10ab0059c14a", - "introduced": "2026-06-24", + "id": "9162d790-e101-437d-a9a0-25e4687d150b", + "introduced": "2026-07-28", }, "x-visibility": "Public", }, @@ -562,12 +554,10 @@ def validate( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response( - models.PlatformSkillValidationResponse, http_res - ) + return unmarshal_json_response(models.PlatformSkillImportResponse, http_res) if utils.match_response( http_res, - ["400", "401", "403", "404", "408", "413", "429"], + ["400", "401", "403", "408", "409", "413", "429"], "application/problem+json", ): response_data = unmarshal_json_response( @@ -588,24 +578,21 @@ def validate( raise errors.GleanError("Unexpected response received", http_res) - async def validate_async( + async def import__async( self, *, - file: Union[ - models.PlatformSkillValidationRequestFile, - models.PlatformSkillValidationRequestFileTypedDict, - ], + source_urls: Iterable[str], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.PlatformSkillValidationResponse: - r"""Validate skill bundle + ) -> models.PlatformSkillImportResponse: + r"""Import skills from GitHub - Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. + Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. - :param file: SKILL.md, .zip, or .skill bundle to validate. + :param source_urls: Resolved GitHub skill URLs selected from a source preview. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -621,15 +608,13 @@ async def validate_async( else: base_url = self._get_url(base_url, url_variables) - request = models.PlatformSkillValidationRequest( - file=utils.get_pydantic_model( - file, models.PlatformSkillValidationRequestFile - ), + request = models.PlatformSkillImportRequest( + source_urls=utils.unmarshal(source_urls, List[str]), ) req = self._build_request_async( method="POST", - path="/api/skills/validation", + path="/api/skills/import", base_url=base_url, url_variables=url_variables, request=request, @@ -641,11 +626,7 @@ async def validate_async( http_headers=http_headers, security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request, - False, - False, - "multipart", - models.PlatformSkillValidationRequest, + request, False, False, "json", models.PlatformSkillImportRequest ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -663,16 +644,17 @@ async def validate_async( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="platform-skills-validate", + operation_id="platform-skills-import", oauth2_scopes=None, security_source=get_security_from_env( self.sdk_configuration.security, models.Security ), tags=["Skills"], extensions={ + "x-codegen-request-body-name": "request", "x-glean-experimental": { - "id": "0b086fa6-30f8-4279-8d11-10ab0059c14a", - "introduced": "2026-06-24", + "id": "9162d790-e101-437d-a9a0-25e4687d150b", + "introduced": "2026-07-28", }, "x-visibility": "Public", }, @@ -684,12 +666,10 @@ async def validate_async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response( - models.PlatformSkillValidationResponse, http_res - ) + return unmarshal_json_response(models.PlatformSkillImportResponse, http_res) if utils.match_response( http_res, - ["400", "401", "403", "404", "408", "413", "429"], + ["400", "401", "403", "408", "409", "413", "429"], "application/problem+json", ): response_data = unmarshal_json_response( @@ -710,21 +690,24 @@ async def validate_async( raise errors.GleanError("Unexpected response received", http_res) - def import_( + def validate( self, *, - source_urls: Iterable[str], + file: Union[ + models.PlatformSkillValidationRequestFile, + models.PlatformSkillValidationRequestFileTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.PlatformSkillImportResponse: - r"""Import skills from GitHub + ) -> models.PlatformSkillValidationResponse: + r"""Validate skill bundle - Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. + Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. - :param source_urls: Resolved GitHub skill URLs selected from a source preview. + :param file: SKILL.md, .zip, or .skill bundle to validate. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -740,13 +723,15 @@ def import_( else: base_url = self._get_url(base_url, url_variables) - request = models.PlatformSkillImportRequest( - source_urls=utils.unmarshal(source_urls, List[str]), + request = models.PlatformSkillValidationRequest( + file=utils.get_pydantic_model( + file, models.PlatformSkillValidationRequestFile + ), ) req = self._build_request( method="POST", - path="/api/skills/import", + path="/api/skills/validation", base_url=base_url, url_variables=url_variables, request=request, @@ -758,7 +743,11 @@ def import_( http_headers=http_headers, security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request, False, False, "json", models.PlatformSkillImportRequest + request, + False, + False, + "multipart", + models.PlatformSkillValidationRequest, ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -776,17 +765,16 @@ def import_( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="platform-skills-import", + operation_id="platform-skills-validate", oauth2_scopes=None, security_source=get_security_from_env( self.sdk_configuration.security, models.Security ), tags=["Skills"], extensions={ - "x-codegen-request-body-name": "request", "x-glean-experimental": { - "id": "9162d790-e101-437d-a9a0-25e4687d150b", - "introduced": "2026-07-28", + "id": "0b086fa6-30f8-4279-8d11-10ab0059c14a", + "introduced": "2026-06-24", }, "x-visibility": "Public", }, @@ -798,10 +786,12 @@ def import_( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.PlatformSkillImportResponse, http_res) + return unmarshal_json_response( + models.PlatformSkillValidationResponse, http_res + ) if utils.match_response( http_res, - ["400", "401", "403", "408", "409", "413", "429"], + ["400", "401", "403", "404", "408", "413", "429"], "application/problem+json", ): response_data = unmarshal_json_response( @@ -822,21 +812,24 @@ def import_( raise errors.GleanError("Unexpected response received", http_res) - async def import__async( + async def validate_async( self, *, - source_urls: Iterable[str], + file: Union[ + models.PlatformSkillValidationRequestFile, + models.PlatformSkillValidationRequestFileTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.PlatformSkillImportResponse: - r"""Import skills from GitHub + ) -> models.PlatformSkillValidationResponse: + r"""Validate skill bundle - Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. + Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. - :param source_urls: Resolved GitHub skill URLs selected from a source preview. + :param file: SKILL.md, .zip, or .skill bundle to validate. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -852,13 +845,15 @@ async def import__async( else: base_url = self._get_url(base_url, url_variables) - request = models.PlatformSkillImportRequest( - source_urls=utils.unmarshal(source_urls, List[str]), + request = models.PlatformSkillValidationRequest( + file=utils.get_pydantic_model( + file, models.PlatformSkillValidationRequestFile + ), ) req = self._build_request_async( method="POST", - path="/api/skills/import", + path="/api/skills/validation", base_url=base_url, url_variables=url_variables, request=request, @@ -870,7 +865,11 @@ async def import__async( http_headers=http_headers, security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request, False, False, "json", models.PlatformSkillImportRequest + request, + False, + False, + "multipart", + models.PlatformSkillValidationRequest, ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -888,17 +887,16 @@ async def import__async( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="platform-skills-import", + operation_id="platform-skills-validate", oauth2_scopes=None, security_source=get_security_from_env( self.sdk_configuration.security, models.Security ), tags=["Skills"], extensions={ - "x-codegen-request-body-name": "request", "x-glean-experimental": { - "id": "9162d790-e101-437d-a9a0-25e4687d150b", - "introduced": "2026-07-28", + "id": "0b086fa6-30f8-4279-8d11-10ab0059c14a", + "introduced": "2026-06-24", }, "x-visibility": "Public", }, @@ -910,10 +908,12 @@ async def import__async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.PlatformSkillImportResponse, http_res) + return unmarshal_json_response( + models.PlatformSkillValidationResponse, http_res + ) if utils.match_response( http_res, - ["400", "401", "403", "408", "409", "413", "429"], + ["400", "401", "403", "404", "408", "413", "429"], "application/problem+json", ): response_data = unmarshal_json_response( diff --git a/src/glean/api_client/tools.py b/src/glean/api_client/tools.py index aa8b10a3..a9a8b100 100644 --- a/src/glean/api_client/tools.py +++ b/src/glean/api_client/tools.py @@ -1211,14 +1211,15 @@ def get_tool_server_tools( r"""Get tool definitions from a tool server. Returns the name, description and JSON input schema for the named tools on the - specified tool server. Works for both action packs and MCP servers. + specified tool server. Works for Glean's built-in tools, tool packs and MCP + servers. `toolNames` is required. Names that do not exist on the server are returned in `notFound` rather than failing the request, so a single bad name does not force callers into one-at-a-time retries. Matching is case-insensitive and treats `-` and `_` as equivalent. - Native tools are not served; `serverId=native` returns 404. + Use `serverId=native` for Glean's built-in tools. :param server_id: Unique identifier of the tool server. @@ -1315,14 +1316,15 @@ async def get_tool_server_tools_async( r"""Get tool definitions from a tool server. Returns the name, description and JSON input schema for the named tools on the - specified tool server. Works for both action packs and MCP servers. + specified tool server. Works for Glean's built-in tools, tool packs and MCP + servers. `toolNames` is required. Names that do not exist on the server are returned in `notFound` rather than failing the request, so a single bad name does not force callers into one-at-a-time retries. Matching is case-insensitive and treats `-` and `_` as equivalent. - Native tools are not served; `serverId=native` returns 404. + Use `serverId=native` for Glean's built-in tools. :param server_id: Unique identifier of the tool server. diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go index 96d4127e..87401958 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.DocumentSpecUgcType1Announcements, - ContentID: 848009, + UgcType: components.DocumentSpecUgcType1Shortcuts, + ContentID: 602763, }, )), SourceType: components.AnswerSourceTypeAssistant.ToPointer(), diff --git a/tests/mockserver/internal/sdk/models/components/feedentry.go b/tests/mockserver/internal/sdk/models/components/feedentry.go index 75c2030f..90b0237c 100644 --- a/tests/mockserver/internal/sdk/models/components/feedentry.go +++ b/tests/mockserver/internal/sdk/models/components/feedentry.go @@ -114,6 +114,7 @@ const ( JustificationTypeOooPlanner JustificationType = "OOO_PLANNER" JustificationTypeOooCatchUp JustificationType = "OOO_CATCH_UP" JustificationTypeAdminHealthCenter JustificationType = "ADMIN_HEALTH_CENTER" + JustificationTypeKnowledgeGap JustificationType = "KNOWLEDGE_GAP" ) func (e JustificationType) ToPointer() *JustificationType { @@ -240,6 +241,8 @@ func (e *JustificationType) UnmarshalJSON(data []byte) error { case "OOO_CATCH_UP": fallthrough case "ADMIN_HEALTH_CENTER": + fallthrough + case "KNOWLEDGE_GAP": *e = JustificationType(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/feedrequest.go b/tests/mockserver/internal/sdk/models/components/feedrequest.go index 854c8390..97365eff 100644 --- a/tests/mockserver/internal/sdk/models/components/feedrequest.go +++ b/tests/mockserver/internal/sdk/models/components/feedrequest.go @@ -55,6 +55,7 @@ const ( FeedRequestCategoryOooPlanner FeedRequestCategory = "OOO_PLANNER" FeedRequestCategoryOooCatchUp FeedRequestCategory = "OOO_CATCH_UP" FeedRequestCategoryAdminHealthCenter FeedRequestCategory = "ADMIN_HEALTH_CENTER" + FeedRequestCategoryKnowledgeGap FeedRequestCategory = "KNOWLEDGE_GAP" ) func (e FeedRequestCategory) ToPointer() *FeedRequestCategory { @@ -155,6 +156,8 @@ func (e *FeedRequestCategory) UnmarshalJSON(data []byte) error { case "OOO_CATCH_UP": fallthrough case "ADMIN_HEALTH_CENTER": + fallthrough + case "KNOWLEDGE_GAP": *e = FeedRequestCategory(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/feedresult.go b/tests/mockserver/internal/sdk/models/components/feedresult.go index 158c7428..cc69740a 100644 --- a/tests/mockserver/internal/sdk/models/components/feedresult.go +++ b/tests/mockserver/internal/sdk/models/components/feedresult.go @@ -56,6 +56,7 @@ const ( FeedResultCategoryOooPlanner FeedResultCategory = "OOO_PLANNER" FeedResultCategoryOooCatchUp FeedResultCategory = "OOO_CATCH_UP" FeedResultCategoryAdminHealthCenter FeedResultCategory = "ADMIN_HEALTH_CENTER" + FeedResultCategoryKnowledgeGap FeedResultCategory = "KNOWLEDGE_GAP" ) func (e FeedResultCategory) ToPointer() *FeedResultCategory { @@ -156,6 +157,8 @@ func (e *FeedResultCategory) UnmarshalJSON(data []byte) error { case "OOO_CATCH_UP": fallthrough case "ADMIN_HEALTH_CENTER": + fallthrough + case "KNOWLEDGE_GAP": *e = FeedResultCategory(v) return nil default: @@ -163,12 +166,13 @@ func (e *FeedResultCategory) UnmarshalJSON(data []byte) error { } } -// PlacementReason - Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. +// PlacementReason - Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). type PlacementReason string const ( PlacementReasonOrganic PlacementReason = "ORGANIC" PlacementReasonPromo PlacementReason = "PROMO" + PlacementReasonPinned PlacementReason = "PINNED" ) func (e PlacementReason) ToPointer() *PlacementReason { @@ -183,6 +187,8 @@ func (e *PlacementReason) UnmarshalJSON(data []byte) error { case "ORGANIC": fallthrough case "PROMO": + fallthrough + case "PINNED": *e = PlacementReason(v) return nil default: @@ -198,7 +204,7 @@ type FeedResult struct { SecondaryEntries []FeedEntry `json:"secondaryEntries,omitempty"` // Rank of the result. Rank is suggested by server. Client side rank may differ. Rank *int64 `json:"rank,omitempty"` - // Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. + // Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). PlacementReason *PlacementReason `json:"placementReason,omitempty"` } diff --git a/tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go b/tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go index eb920c41..64b253ab 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go @@ -11,7 +11,7 @@ import ( type PlatformChatCitationAnnotationType string const ( - PlatformChatCitationAnnotationTypeCitation PlatformChatCitationAnnotationType = "citation" + PlatformChatCitationAnnotationTypeCitation PlatformChatCitationAnnotationType = "CITATION" ) func (e PlatformChatCitationAnnotationType) ToPointer() *PlatformChatCitationAnnotationType { @@ -23,7 +23,7 @@ func (e *PlatformChatCitationAnnotationType) UnmarshalJSON(data []byte) error { return err } switch v { - case "citation": + case "CITATION": *e = PlatformChatCitationAnnotationType(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go b/tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go index 36264777..be4e3712 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go @@ -13,7 +13,7 @@ import ( type Object string const ( - ObjectResponse Object = "response" + ObjectResponse Object = "RESPONSE" ) func (e Object) ToPointer() *Object { @@ -25,7 +25,7 @@ func (e *Object) UnmarshalJSON(data []byte) error { return err } switch v { - case "response": + case "RESPONSE": *e = Object(v) return nil default: @@ -36,7 +36,7 @@ func (e *Object) UnmarshalJSON(data []byte) error { type PlatformChatCompletedResponseStatus string const ( - PlatformChatCompletedResponseStatusCompleted PlatformChatCompletedResponseStatus = "completed" + PlatformChatCompletedResponseStatusCompleted PlatformChatCompletedResponseStatus = "COMPLETED" ) func (e PlatformChatCompletedResponseStatus) ToPointer() *PlatformChatCompletedResponseStatus { @@ -48,7 +48,7 @@ func (e *PlatformChatCompletedResponseStatus) UnmarshalJSON(data []byte) error { return err } switch v { - case "completed": + case "COMPLETED": *e = PlatformChatCompletedResponseStatus(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go b/tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go index ff12189e..a5b50b89 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go @@ -15,7 +15,7 @@ const ( InputTypeArrayOfPlatformChatInputMessage InputType = "arrayOfPlatformChatInputMessage" ) -// Input - Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. +// Input - Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. type Input struct { Str *string `queryParam:"inline"` ArrayOfPlatformChatInputMessage []PlatformChatInputMessage `queryParam:"inline"` @@ -73,7 +73,7 @@ func (u Input) MarshalJSON() ([]byte, error) { } type PlatformChatCreateRequest struct { - // Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + // Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. // Input Input `json:"input"` // When true, respond with `text/event-stream`. When false or omitted, respond with `application/json`. diff --git a/tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go b/tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go index a935970d..ccd6eac3 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go @@ -11,7 +11,7 @@ import ( type PlatformChatCustomEntitySourceType string const ( - PlatformChatCustomEntitySourceTypeCustomEntity PlatformChatCustomEntitySourceType = "custom_entity" + PlatformChatCustomEntitySourceTypeCustomEntity PlatformChatCustomEntitySourceType = "CUSTOM_ENTITY" ) func (e PlatformChatCustomEntitySourceType) ToPointer() *PlatformChatCustomEntitySourceType { @@ -23,7 +23,7 @@ func (e *PlatformChatCustomEntitySourceType) UnmarshalJSON(data []byte) error { return err } switch v { - case "custom_entity": + case "CUSTOM_ENTITY": *e = PlatformChatCustomEntitySourceType(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go b/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go index 9dd42aa5..63d8078f 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go @@ -12,7 +12,7 @@ import ( type PlatformChatDocumentSourceType2 string const ( - PlatformChatDocumentSourceType2Document PlatformChatDocumentSourceType2 = "document" + PlatformChatDocumentSourceType2Document PlatformChatDocumentSourceType2 = "DOCUMENT" ) func (e PlatformChatDocumentSourceType2) ToPointer() *PlatformChatDocumentSourceType2 { @@ -24,7 +24,7 @@ func (e *PlatformChatDocumentSourceType2) UnmarshalJSON(data []byte) error { return err } switch v { - case "document": + case "DOCUMENT": *e = PlatformChatDocumentSourceType2(v) return nil default: @@ -89,7 +89,7 @@ func (o *PlatformChatDocumentSourceDocument2) GetDatasource() *string { type PlatformChatDocumentSourceType1 string const ( - PlatformChatDocumentSourceType1Document PlatformChatDocumentSourceType1 = "document" + PlatformChatDocumentSourceType1Document PlatformChatDocumentSourceType1 = "DOCUMENT" ) func (e PlatformChatDocumentSourceType1) ToPointer() *PlatformChatDocumentSourceType1 { @@ -101,7 +101,7 @@ func (e *PlatformChatDocumentSourceType1) UnmarshalJSON(data []byte) error { return err } switch v { - case "document": + case "DOCUMENT": *e = PlatformChatDocumentSourceType1(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/platformchatfilesource.go b/tests/mockserver/internal/sdk/models/components/platformchatfilesource.go index ad39a1de..67147189 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatfilesource.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatfilesource.go @@ -11,7 +11,7 @@ import ( type PlatformChatFileSourceType string const ( - PlatformChatFileSourceTypeFile PlatformChatFileSourceType = "file" + PlatformChatFileSourceTypeFile PlatformChatFileSourceType = "FILE" ) func (e PlatformChatFileSourceType) ToPointer() *PlatformChatFileSourceType { @@ -23,7 +23,7 @@ func (e *PlatformChatFileSourceType) UnmarshalJSON(data []byte) error { return err } switch v { - case "file": + case "FILE": *e = PlatformChatFileSourceType(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go b/tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go index 5989ab25..97c1e067 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go @@ -11,8 +11,8 @@ import ( type PlatformChatInputMessageRole string const ( - PlatformChatInputMessageRoleUser PlatformChatInputMessageRole = "user" - PlatformChatInputMessageRoleAssistant PlatformChatInputMessageRole = "assistant" + PlatformChatInputMessageRoleUser PlatformChatInputMessageRole = "USER" + PlatformChatInputMessageRoleAssistant PlatformChatInputMessageRole = "ASSISTANT" ) func (e PlatformChatInputMessageRole) ToPointer() *PlatformChatInputMessageRole { @@ -24,9 +24,9 @@ func (e *PlatformChatInputMessageRole) UnmarshalJSON(data []byte) error { return err } switch v { - case "user": + case "USER": fallthrough - case "assistant": + case "ASSISTANT": *e = PlatformChatInputMessageRole(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go b/tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go index c7ccd4be..69218f0e 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go @@ -10,7 +10,7 @@ import ( type PlatformChatOutputMessageType string const ( - PlatformChatOutputMessageTypeMessage PlatformChatOutputMessageType = "message" + PlatformChatOutputMessageTypeMessage PlatformChatOutputMessageType = "MESSAGE" ) func (e PlatformChatOutputMessageType) ToPointer() *PlatformChatOutputMessageType { @@ -22,7 +22,7 @@ func (e *PlatformChatOutputMessageType) UnmarshalJSON(data []byte) error { return err } switch v { - case "message": + case "MESSAGE": *e = PlatformChatOutputMessageType(v) return nil default: @@ -33,7 +33,7 @@ func (e *PlatformChatOutputMessageType) UnmarshalJSON(data []byte) error { type PlatformChatOutputMessageRole string const ( - PlatformChatOutputMessageRoleAssistant PlatformChatOutputMessageRole = "assistant" + PlatformChatOutputMessageRoleAssistant PlatformChatOutputMessageRole = "ASSISTANT" ) func (e PlatformChatOutputMessageRole) ToPointer() *PlatformChatOutputMessageRole { @@ -45,7 +45,7 @@ func (e *PlatformChatOutputMessageRole) UnmarshalJSON(data []byte) error { return err } switch v { - case "assistant": + case "ASSISTANT": *e = PlatformChatOutputMessageRole(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go b/tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go index fedd3f28..d5020f5c 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go @@ -10,7 +10,7 @@ import ( type PlatformChatOutputTextContentType string const ( - PlatformChatOutputTextContentTypeOutputText PlatformChatOutputTextContentType = "output_text" + PlatformChatOutputTextContentTypeOutputText PlatformChatOutputTextContentType = "OUTPUT_TEXT" ) func (e PlatformChatOutputTextContentType) ToPointer() *PlatformChatOutputTextContentType { @@ -22,7 +22,7 @@ func (e *PlatformChatOutputTextContentType) UnmarshalJSON(data []byte) error { return err } switch v { - case "output_text": + case "OUTPUT_TEXT": *e = PlatformChatOutputTextContentType(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go b/tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go index 1e969fb9..9576e866 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go @@ -11,7 +11,7 @@ import ( type PlatformChatPersonSourceType string const ( - PlatformChatPersonSourceTypePerson PlatformChatPersonSourceType = "person" + PlatformChatPersonSourceTypePerson PlatformChatPersonSourceType = "PERSON" ) func (e PlatformChatPersonSourceType) ToPointer() *PlatformChatPersonSourceType { @@ -23,7 +23,7 @@ func (e *PlatformChatPersonSourceType) UnmarshalJSON(data []byte) error { return err } switch v { - case "person": + case "PERSON": *e = PlatformChatPersonSourceType(v) return nil default: diff --git a/tests/test_messages.py b/tests/test_messages.py index 132005ec..36643db3 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.FACEBOOKWORKPLACE, + datasource=models.Datasource.MICROSOFTTEAMS, timestamp_millis=558834, ) assert res is not None diff --git a/tests/test_summarize.py b/tests/test_summarize.py index 2cfa3243..63b4eb85 100644 --- a/tests/test_summarize.py +++ b/tests/test_summarize.py @@ -18,10 +18,10 @@ def test_summarize_summarize(): res = glean.client.documents.summarize( document_specs=[ { - "url": "https://livid-velocity.net", + "url": "https://dim-glider.com/", }, { - "url": "https://livid-velocity.net", + "id": "", }, ] )