diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 534aad97..fe5bc566 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: 75dcb4ef654ae196b194eb433d5ff95e + docChecksum: 6c50d3df7af689ff921a7b236aa524a5 docVersion: 0.9.0 - speakeasyVersion: 1.796.4 - generationVersion: 2.935.1 - releaseVersion: 0.17.13 - configChecksum: d37a01084a303a979a07f43381a0ddd3 + speakeasyVersion: 1.797.0 + generationVersion: 2.937.18 + releaseVersion: 0.17.14 + configChecksum: e7d16589fea449f13b5c916e3b7884a6 repoURL: https://github.com/gleanwork/api-client-python.git installationURL: https://github.com/gleanwork/api-client-python.git published: true persistentEdits: - generation_id: 3154d106-6806-4de0-b175-918a515cd721 - pristine_commit_hash: 8d5d17c53fc3e4297a82d6af81ad4b6626cf22dd - pristine_tree_hash: cff8522ab0142eb0e9e66884c60dd8dce0a340df + generation_id: e096375a-646e-4fd0-81c4-55efcbfda47f + pristine_commit_hash: 299fa282fab309cfb9dcf2999bcc4179015e1cb9 + pristine_tree_hash: 4c0295eda3bb3c0d350e0332b1b12911ce8e0c1a features: python: acceptHeaders: 3.0.0 @@ -21,7 +21,7 @@ features: additionalProperties: 1.0.2 callbacks: 2.0.0 configurableModuleName: 0.2.0 - constsAndDefaults: 1.0.7 + constsAndDefaults: 1.0.8 core: 6.1.2 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 @@ -49,7 +49,7 @@ features: sdkHooks: 1.3.0 serverEvents: 1.1.1 tests: 1.19.10 - unions: 3.1.9 + unions: 3.1.10 uploadStreams: 1.0.3 trackedFiles: .devcontainer/README.md: @@ -218,8 +218,8 @@ trackedFiles: pristine_git_object: 534e93714734fd41fabc0d64b5da344b2dda110d docs/models/agentruncreate.md: id: 2ab11e93c9de - last_write_checksum: sha1:5f6d67b0cf39049f4ead7eecec6a27f3d2862cba - pristine_git_object: 46d31de6280f25734883618e5ac037cb623e6eda + last_write_checksum: sha1:84b32a41be72ff1d9b9344b6f09a130502c33831 + pristine_git_object: 567a7800015b5a325ede95a88e1f0faad3e7aa9d docs/models/agentrunwaitresponse.md: id: 2c571dee53ea last_write_checksum: sha1:a9d9e9928a5629f4c75364315f312801f06c51b7 @@ -378,8 +378,8 @@ trackedFiles: pristine_git_object: 120f98984fd9088eefaa77137bef62f43912089a docs/models/autocompleterequest.md: id: 17d479e27d90 - last_write_checksum: sha1:e59c2e682e4271aee48faf382e069ec614f1f1b7 - pristine_git_object: f3dfd2e93990c4b6bc193454f63ad4fee24d7095 + last_write_checksum: sha1:82aa2c22916e502829ac94745ca67738ad7f5176 + pristine_git_object: a44caa980c6946dff313cbe372f77d2813415268 docs/models/autocompleterequestrequest.md: id: 317ac647722c last_write_checksum: sha1:12cc5b7ecb4f809bf8735c278e50b9d89c5a337e @@ -488,6 +488,50 @@ trackedFiles: id: 7e034062963b last_write_checksum: sha1:4246de59554acd84a4468d3f1e6c39e694e529ba pristine_git_object: 18c670eccfe85be9099c9282d287c37b21b55162 + docs/models/chatcitationannotation.md: + id: 77f17787d9b5 + last_write_checksum: sha1:6cd7b8bbf5716185f7fa363a2626a16838663107 + pristine_git_object: 9f89894ec1e7cd9b90017fc1acc598013c95ad13 + docs/models/chatcitationannotationtype.md: + id: 664b5f2927b0 + last_write_checksum: sha1:e63e605260827c1fe9f26ed499b02908570dfe5b + pristine_git_object: 10ef1d9a597e47b1ddc3f2690bbe7dd49d431036 + docs/models/chatcitationsnippet.md: + id: 9bcca3c000a9 + last_write_checksum: sha1:be981d1e97f735ac063cfd3589d1958f52a85227 + pristine_git_object: 81e46ee612ae846c14383d11c8c6c718e3d88d4f + docs/models/chatcitationsource.md: + id: ea90d390a04a + last_write_checksum: sha1:e7ea6c6ffd185bd3c349ea40ab36c7c0ab6253e0 + pristine_git_object: dfe70a59c4293bb0929cbc9707a980a9d8a262a2 + docs/models/chatcustomentitysource.md: + id: eb78637ecfde + last_write_checksum: sha1:06f06407644c40bd8bd620529bb3f51e52b85999 + pristine_git_object: a90ae1fb0ba20cc5d9d2553ffca07015df1fe254 + docs/models/chatcustomentitysourcetype.md: + id: d61d5f4eea86 + last_write_checksum: sha1:bdc3b8c6daf7d11a2665f68077bcdba54a6739ca + pristine_git_object: 685edabc49c04646246937497692204fdb38cc32 + docs/models/chatdocumentsource.md: + id: 869ce2916309 + last_write_checksum: sha1:1105a25f424546239858f1c394af7752f9c7e7b7 + pristine_git_object: 2a6ef4cb764d08d8b68028bf4c7b0234cea2fd5f + docs/models/chatdocumentsourcedocument1.md: + id: 74c9b48cb4eb + last_write_checksum: sha1:d7b2497abf709fab98a1694478f62c8ce3cbbcd3 + pristine_git_object: fad2df11792c9f76a78865bc9a82ff0f4ca5ee26 + docs/models/chatdocumentsourcedocument2.md: + id: ea0793940762 + last_write_checksum: sha1:ec9379584254338e4783547765c3cdb4648fab07 + pristine_git_object: 300b33cda0a60c3d800f11b5b2d3b6bdf4b9cf94 + docs/models/chatdocumentsourcetype1.md: + id: 76ae01645596 + last_write_checksum: sha1:819940ac352381200fd511e918619571e3698e0f + pristine_git_object: c5a408df79ff587c2cc8fe9cc3e914fde04ef2eb + docs/models/chatdocumentsourcetype2.md: + id: 284ac2bc5e30 + last_write_checksum: sha1:341be1498cc26eb7a0bb49f93ad0f45533d740b1 + pristine_git_object: a73816c90746461463e119477b53dd8e3829cc01 docs/models/chatfile.md: id: 7a18331d1f94 last_write_checksum: sha1:9f1205fc69a4a6ea9c80355d2bd43c8ed2ed5aab @@ -500,6 +544,14 @@ trackedFiles: id: 0cc9ade06a58 last_write_checksum: sha1:231dba9ebb94cb688a9b1e3dafae879be6d56e5c pristine_git_object: 67979aa2200513b9e68f924662801b4515d21bf8 + docs/models/chatfilesource.md: + id: 5fc34e2cc3f3 + last_write_checksum: sha1:2d425804e10abdcd76500606c82a3cec551e089e + pristine_git_object: 609aa5a12777d6b5523185daa22f60db0e17c85c + docs/models/chatfilesourcetype.md: + id: 0b43ba1d3dcb + last_write_checksum: sha1:990a1ea2cb5ad6d9bdf52fae207db273d282989f + pristine_git_object: ae86b6748d592aad788232d46207b432b8a9560b docs/models/chatfilestatus.md: id: 353dfcb79ee6 last_write_checksum: sha1:14a82425ae8934057ad003b6329fe463aa8a8620 @@ -524,6 +576,14 @@ trackedFiles: id: db6392c084dd last_write_checksum: sha1:14a622b7d6610c4006bda4d046b820a736d75d85 pristine_git_object: 8b11c11bef041ee25c45fec411abe4aacfb48d24 + docs/models/chatpersonsource.md: + id: eea0e0fc9586 + last_write_checksum: sha1:e71ae2f482f4c0eb2bb95b252d1c708b6c3c736a + pristine_git_object: c68d293f5519460f1ad9e15b95bc123633350543 + docs/models/chatpersonsourcetype.md: + id: 3ee6b8b89c44 + last_write_checksum: sha1:09dbeb05298d3dfbeeeb943cfd31ab5ce7e1b1af + pristine_git_object: 21df185715ddbe144cc71c08523ab69a7f8eb048 docs/models/chatrequest.md: id: 81b65d713472 last_write_checksum: sha1:7d7ffd282cd2080d2079fad89032883cae45de95 @@ -1414,8 +1474,8 @@ trackedFiles: pristine_git_object: a851a7f13eb25d515fa9b9244c5dfdc98fa14e2c docs/models/feedrequestcategory.md: id: 31a02f3064c7 - last_write_checksum: sha1:e38370a3acbf451d4ef7ef12060627e8ac6f9adc - pristine_git_object: 14862711e255666c12173d6af658f62b67552679 + last_write_checksum: sha1:88334249125c3dca934c9adab500ae1b30bee4ae + pristine_git_object: 659067097afa1b9f6f30ba835d72e7a8c2cedac6 docs/models/feedrequestoptions.md: id: 58eb26b19e77 last_write_checksum: sha1:fd2ab08736cef8156169b0cfee8c52e7aed1accf @@ -1434,8 +1494,8 @@ trackedFiles: pristine_git_object: f6f92abf16b61f88b527e1c906f605e98306878e docs/models/feedresultcategory.md: id: a5f77f38d0a7 - last_write_checksum: sha1:1e97ca497b2c59006798e80683a5fe80e3f28647 - pristine_git_object: 1394fb32645a59d2c63c38b1baeaa5e480c3fc77 + last_write_checksum: sha1:c42683288d7fc9def7cd7ec3b22a128ddaff6daf + pristine_git_object: 86b5a71fb3f09f75f8c7314dd2222ccb20ee4e9f docs/models/fieldscope.md: id: e6b52bcb22a6 last_write_checksum: sha1:13a1492ce39d2f89a01d626996a345a1339a1873 @@ -1762,8 +1822,8 @@ trackedFiles: pristine_git_object: 4f71310b6864d240adb6739549f5f8fee4807538 docs/models/importagentrequest.md: id: c6a418248afc - last_write_checksum: sha1:a99e2f61be963e0a18c02ed6da4c51941980a148 - pristine_git_object: e45868df24e20d3a9ff002adde0e73bec73957f5 + last_write_checksum: sha1:587b8527b799a3851bbbad6b370153d38e3d47a3 + pristine_git_object: 046afb2ba930318797f575a3a3a233f787936cd9 docs/models/importagentrequestrequest.md: id: d39e542ebba0 last_write_checksum: sha1:e47ad7854090e0542b6793a94800b40290268dc4 @@ -1878,8 +1938,8 @@ trackedFiles: pristine_git_object: 647f9bb67a6af30d7fd71c8ddb3c5e1bf40bb938 docs/models/justificationtype.md: id: 8286affacee4 - last_write_checksum: sha1:b43aabba22190a0734b7a40bb42a04146cbb3ef8 - pristine_git_object: 8229b188ab1d4a1dbbffe18afb59e2c1cb3ded89 + last_write_checksum: sha1:5a0d77fbd2f34cb813482ea62b5e0ca29a8da3a7 + pristine_git_object: 71c24af0e73a4a64b150c60e499338e02a971685 docs/models/knowledgetype.md: id: 1e0c90679228 last_write_checksum: sha1:0030a7539b9362bbb59e0bbd36580676058b3540 @@ -2064,6 +2124,10 @@ trackedFiles: id: a9614076792b last_write_checksum: sha1:683c85b12ba65929d2c250f60767f043cc8edc9e pristine_git_object: 2bc3e9910f3919cf9b9a63f2b6f25b3c45ae9f54 + docs/models/messageinput.md: + id: 9d9844edc7d7 + last_write_checksum: sha1:c626da01ee5c1fcc633daf9ff2037a8aab08719c + pristine_git_object: 887fd9253094a6f3a967f086a271c5f272a53840 docs/models/messagesrequest.md: id: 43ebf5c6fe35 last_write_checksum: sha1:beecc147e019b999a49250a0379489cd5d9ac8a5 @@ -2078,8 +2142,12 @@ trackedFiles: pristine_git_object: 13bcccb386e993653dbaa8c1366d3dfb642c5c31 docs/models/messagetextblock.md: id: 725f98843e44 - last_write_checksum: sha1:7413449c2a3047e781411c7854bcd2053d957e2c - pristine_git_object: 9d44b3e3c25c22a3312ba9153974c8bc8b978d95 + last_write_checksum: sha1:cba3d7eefb0e29cb78f781b95d14caa5fe48953e + pristine_git_object: 578f1121115f67aa2e996f064cb21d756e9e262e + docs/models/messagetextblockinput.md: + id: 289e03226b66 + last_write_checksum: sha1:4d9944d0a753fbdfbd4d48f05610b6b5c7533235 + pristine_git_object: ec369cdea0a164a9662dc69a08fb85395d4da1ad docs/models/messagetype.md: id: 7c0a714c5440 last_write_checksum: sha1:0e6889365b4cb2e70786a18e10c26003d7f55426 @@ -2234,8 +2302,8 @@ trackedFiles: pristine_git_object: d6dffe1463ba8b77cdbfb57994a8b2bb886d07c2 docs/models/platformagentruncreaterequest.md: id: c1b58ab047ae - last_write_checksum: sha1:9653da975cf65f0552fbd11801d4a98e7c2eb25d - pristine_git_object: 072a5ce90d39b9f1ec6a274757364efbe77d5a7f + last_write_checksum: sha1:4ee8bc479e4cb19b7846c0e27dcef6d09ecda294 + pristine_git_object: 8fff9f30b2380cb75cc1367a4491b28185e95de4 docs/models/platformagentrunwaitresponse.md: id: 216b0600404e last_write_checksum: sha1:af98dfbf6f900d7fa891640a5ad5259919062f55 @@ -2330,12 +2398,12 @@ trackedFiles: pristine_git_object: a8bd094eb25aeb63284dd1822a644be919f67173 docs/models/platformchatdocumentsourcedocument1.md: id: 3617a3ed0354 - last_write_checksum: sha1:d75343e04fe71a9c16383c1c3a8383f30ff3ea9f - pristine_git_object: 2b388ba918325d1843ca68af759b22567df35334 + last_write_checksum: sha1:1e83f93cefc6fd5b2887f5aa773781e0ed4c88c1 + pristine_git_object: 6ec8d8c09d237031eac1f6039e1eeeded2029312 docs/models/platformchatdocumentsourcedocument2.md: id: 88f03c86a066 - last_write_checksum: sha1:ba841b422d33031b05ee502a49f6efe29929f8b8 - pristine_git_object: 1b8f64e4c598febb186b9a5552ca6827daf09b60 + last_write_checksum: sha1:092c3da57350bd4fb15d64a9f60990f66f2d883a + pristine_git_object: e2daa3ed24e763de42d74c6a5cbb00f44a1af071 docs/models/platformchatdocumentsourcetype1.md: id: 47c9b6b27f95 last_write_checksum: sha1:ea69403c15356c2edcb66e3bbf405c90b9892496 @@ -2512,14 +2580,22 @@ trackedFiles: id: ea30c4fdad14 last_write_checksum: sha1:890468283cb6b47c68edf4b7b241dec096699d95 pristine_git_object: 626f1c36f215081121802a84c05a3a43b32bf4cd + docs/models/platformmessageinput.md: + id: 6adcce71ebe9 + last_write_checksum: sha1:33024c2575eeef7dc2b3d0f4293a4be154ae5431 + pristine_git_object: 9ee32813b8ef5074b9408b4a1c20d8c1c5422418 docs/models/platformmessagerole.md: id: e6a2fe6fb4fd last_write_checksum: sha1:1c30e8005e9bf57a970710a3c29ab2351a55fc79 pristine_git_object: 3646a0b786e69c448b0ef452354bd107cda591b7 docs/models/platformmessagetextblock.md: id: 3a2015852905 - last_write_checksum: sha1:76d7640c454b990eb346994555ddbab280d5eb28 - pristine_git_object: 68ac42502d86f948d0f9cc6c57f170bc681295c6 + last_write_checksum: sha1:15aba1877dbf1fe88e90b3ac3f9a4df5524d08f1 + pristine_git_object: beeec8607965175bbf0fa32228b317eeec3a53de + docs/models/platformmessagetextblockinput.md: + id: 84ff8f38e838 + last_write_checksum: sha1:7e2cc0010d738cd1a2ce104a90299936fbe40d43 + pristine_git_object: 6e3694484701e30ba1114213a8f0a287b5f4030e docs/models/platformpersonreference.md: id: 8e0eb24c7ab0 last_write_checksum: sha1:b7e91a102caa171583e0033985345592eded3a47 @@ -3640,6 +3716,10 @@ trackedFiles: id: 881201e9e321 last_write_checksum: sha1:4a0de4594e64cfeb0c141ca242c3f8c26e028883 pristine_git_object: 8f87704c8059174c4b82314e393da7476d80b6a1 + docs/models/versionsource.md: + id: 83ae85128a3a + last_write_checksum: sha1:d76fe7354fbd56788bb045f4803bfb178c124d16 + pristine_git_object: f1affcb8ec614174f703c103886f7b9538fb746f docs/models/viewerinfo.md: id: ac723e0773ae last_write_checksum: sha1:85640b3e704418562baf941ab0aba03ee579dd5b @@ -3686,8 +3766,8 @@ trackedFiles: pristine_git_object: 61dd41f0319201cc105e29174ab1cc0018cecbce docs/sdks/agents/README.md: id: 5965d8232fd8 - last_write_checksum: sha1:9a51fee19dc6fd4b71d8c2e04f9672fc9a0aadf8 - pristine_git_object: 08a9bf1711c5040bed18570dc6ba82fe2b6e1ee4 + last_write_checksum: sha1:977d88ddf87ce7b29b8f61e7b77d967061628b08 + pristine_git_object: f05a4d5990ac529b1af76f716cce568ce33285f7 docs/sdks/announcements/README.md: id: 3d2e130a217c last_write_checksum: sha1:ecfa655bb27dee6890656542cfafda0aa6ed1ab9 @@ -3706,8 +3786,8 @@ trackedFiles: pristine_git_object: 456e90e3a787c1e62f09a17d297f1cf756c94d49 docs/sdks/clientagents/README.md: id: 8e00e6d6b64e - last_write_checksum: sha1:4d9960a7d73ccd5649abb3237ab30717f20a1f37 - pristine_git_object: c2cb28eee75dfbac9325402796fde5be17857083 + last_write_checksum: sha1:30b0797795425a07167506a1fee0bfeaefeab473 + pristine_git_object: 4df20f8a5db2773fa76d4ab0a82414da505de16c docs/sdks/clientauthentication/README.md: id: 463bffe80b61 last_write_checksum: sha1:406e18430be9d365f6427c804b3992c880c39498 @@ -3726,8 +3806,8 @@ trackedFiles: pristine_git_object: f2fd9a073a663ef8741c07c7f84fdd3da8ed372c docs/sdks/clientsearch/README.md: id: 0a2a3cf68489 - last_write_checksum: sha1:daec33ac43a46786e18caa77123175caf423e332 - pristine_git_object: 20293342902b2b61006984b5bf14fc6e4bedda42 + last_write_checksum: sha1:792ad600ca1e647e3ad809fa9457765525082a2a + pristine_git_object: 2ca2ff684717b3d458fc9313661acaac6adfb31e docs/sdks/clientshortcuts/README.md: id: d5a9d841b61c last_write_checksum: sha1:7f0f509d6b4242e72b854162d5f052467f2aee8d @@ -3834,8 +3914,8 @@ trackedFiles: pristine_git_object: 79e388be87446ab6a4064b372bad0e8376d0cb5e pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:eb7a93fd564e58d58885bbc5efbb39c22f2743b2 - pristine_git_object: 3d7a9d9c2c6a91b82102ee963a3eab3c08dcf3dd + last_write_checksum: sha1:99d21663bbe69e903d52e6af936915a4e61eae46 + pristine_git_object: 47df73c31b9b71aac2f687d754fff2e18d7312aa scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:c2c83f71dea61eb50c9e05da83b16d18b4da8794 @@ -3862,12 +3942,12 @@ trackedFiles: pristine_git_object: 55f23c1feabfedeb7e8cd5bea8b910f0ae0b77d9 src/glean/api_client/_version.py: id: 0ce22b26136b - last_write_checksum: sha1:802f198e3bdd2c7f707fd3e2b14e080bb12d2d75 - pristine_git_object: 74957f86e0974a86fcf55d934ea94cf222d3160e + last_write_checksum: sha1:1bee0a78c745386143585f3a1bfeb8c1ee164211 + pristine_git_object: baf219c0556adcfb313b1d21660cf2f18d738bb4 src/glean/api_client/agents.py: id: b925701a9217 - last_write_checksum: sha1:1d4b152d9d9260d1c97d4983f521f30b5cfa1085 - pristine_git_object: 2b4bb4f6ad1fedc85b9b0a1722d1e67f5a56ac65 + last_write_checksum: sha1:1520d795d519aba795c8edbce2f833c99b8a4fa5 + pristine_git_object: 68817cd017a63a1ce88ff1154a0f04a99c682be1 src/glean/api_client/announcements.py: id: 452f3d593912 last_write_checksum: sha1:4b9f4ff97fb9754b5da3a36c1cc8edb02318ed7a @@ -3894,8 +3974,8 @@ trackedFiles: pristine_git_object: 42aa2ffce8105a293a0a02353f41f083136fdc5f src/glean/api_client/client_agents.py: id: 61b53ccd2b3b - last_write_checksum: sha1:47eb76d281b6e36c7db43d9039991c6fda408ad4 - pristine_git_object: ff0913b8542d8663e457f3706c58ad9677054354 + last_write_checksum: sha1:710d3b5fe2689de3432a731ae661c913aac26fd6 + pristine_git_object: fa6802c829618bb5025142233e08af4e3ad56b3e src/glean/api_client/client_authentication.py: id: 0b237b7c1b11 last_write_checksum: sha1:4217581430cfa2131471291a6ce36854af64dcb7 @@ -3914,8 +3994,8 @@ trackedFiles: pristine_git_object: d93ffbbf0b761e7a84e54f152f2a528f61e792a8 src/glean/api_client/client_search.py: id: 49ce2de81382 - last_write_checksum: sha1:34c9a481c4b806824c3929c5f35b1ba39345fa5c - pristine_git_object: 53d4e1667b1b67f6c7ba979bfb032387095cf81b + last_write_checksum: sha1:3a2eebd48e3e4ae8cd231eeb1ae4191b71712939 + pristine_git_object: 6c95bb5b54f8ba3ea4935a16174d15454c66a906 src/glean/api_client/client_shortcuts.py: id: 5ef5dacbcba9 last_write_checksum: sha1:94f35f0be652742f2f6d6912df01e133ec1247e2 @@ -4046,8 +4126,8 @@ trackedFiles: pristine_git_object: 77016bfff6209866592fd8b42f2f3527f900992b src/glean/api_client/models/__init__.py: id: d5f6ea5efcbe - last_write_checksum: sha1:13fbd4d8aa5ede7a6786291c66de5fb1a8921f5c - pristine_git_object: 573adfa6e945324491cbe40dfab96c6f8647e413 + last_write_checksum: sha1:e64af386979758264547b1d79da56e038b789f6b + pristine_git_object: f428e57aa5e5ce47e679e1090f6ff0946ac92493 src/glean/api_client/models/accessrequestpermissiondeniedresponse_error.py: id: 22a2fa0d5899 last_write_checksum: sha1:f7dd6f906a4dd7433992f77395f9fb491fa5ac5c @@ -4130,8 +4210,8 @@ trackedFiles: pristine_git_object: 0439dfdf5688b4cadb00dbbf24a97436e55530c1 src/glean/api_client/models/agentruncreate.py: id: e987c7a76285 - last_write_checksum: sha1:463bed5e1b5259ba5ad2521a1c022a7cc778d6b6 - pristine_git_object: 407bbcb8c3da61750d7b2de36281851dcf836595 + last_write_checksum: sha1:f2e7c3cc5ddc4d81024a1f211d6ceb44d99aff03 + pristine_git_object: c85f04f08dd5c38cf2ff61fe97395591c834a921 src/glean/api_client/models/agentrunwaitresponse.py: id: 063b87daf535 last_write_checksum: sha1:6a4a302684707e649a91c32c45192b6d2e06650e @@ -4250,8 +4330,8 @@ trackedFiles: pristine_git_object: 97d2bf4e337f24d11d53d15916bd5c59b9942b66 src/glean/api_client/models/autocompleterequest.py: id: 23b29c9e7dcf - last_write_checksum: sha1:6ec652c62c839121a1cd8cb85ce40fd512ad9005 - pristine_git_object: c57ae464c54fd02c6be6ef63489be48df01ef855 + last_write_checksum: sha1:f2f792c9d5539d92bb275385cae0a32667382c50 + pristine_git_object: 77f48a08f4bde254f8e201d5d03863cd15b9b150 src/glean/api_client/models/autocompleteresponse.py: id: 860297c9ef84 last_write_checksum: sha1:7972aeb2f5bd1c56df96bbd708088add6d5f04fd @@ -4328,6 +4408,26 @@ trackedFiles: id: 5566eef6a9a3 last_write_checksum: sha1:c3c1a2655b64e0203c0ef2d11204be23a2f5ee81 pristine_git_object: 2c89193d682e1258a9d5e072c05546b30d21c66e + src/glean/api_client/models/chatcitationannotation.py: + id: 9d985247eddf + last_write_checksum: sha1:f347d88e7b546419da15d3d7a7bdd80b4615865a + pristine_git_object: 176c5d7566646fc9d002ede1048fd7ca946a7c2b + src/glean/api_client/models/chatcitationsnippet.py: + id: 3a7f86a0be3d + last_write_checksum: sha1:bea2d8405d0592720cbd9cf18b926af01f1c502e + pristine_git_object: 16364ab5f1decdf47831040236233c331c9e49be + src/glean/api_client/models/chatcitationsource.py: + id: f74b5021fef2 + last_write_checksum: sha1:11acf007fa309ac2a001cd8ac389b7b6f1931ca4 + pristine_git_object: 5fbd01edd2cbbffba53eb89fc71625133316376a + src/glean/api_client/models/chatcustomentitysource.py: + id: 2d7c50a1b5bc + last_write_checksum: sha1:0d6f08b9b3e11ae8c70ae07e6f218b763ba27ea6 + pristine_git_object: bfb2f9159bcfb7eb1b5b5a4074fba1a3d0be9bb3 + src/glean/api_client/models/chatdocumentsource.py: + id: 29a0c0fdfff1 + last_write_checksum: sha1:e7cfd02328fbf14ed564e682356b6eb363fc6570 + pristine_git_object: 513c3ec86c430cd1f22f65adf25983f2802b0f64 src/glean/api_client/models/chatfile.py: id: 58a4c45c2027 last_write_checksum: sha1:3c40dc0bc96e493132f0b40ca73a10e7bd1a53e4 @@ -4340,6 +4440,10 @@ trackedFiles: id: b8648f87910e last_write_checksum: sha1:ba4dff8262465c5c878c12a84f82829c64cd0618 pristine_git_object: b4cb6dc4f77e767d75cc0c4ce8402236536907c6 + src/glean/api_client/models/chatfilesource.py: + id: 76b874fd9494 + last_write_checksum: sha1:def9ccb95b39e34cdc2a25da1d99d360984d6415 + pristine_git_object: 7cfc1f8f338ba37b5dc01592926923398b138d97 src/glean/api_client/models/chatfilestatus.py: id: 0e6c1c7a372c last_write_checksum: sha1:2e48fd50170faf7835ed7ab1a1609cd8cf69f0d6 @@ -4368,6 +4472,10 @@ trackedFiles: id: 324d679cb5db last_write_checksum: sha1:1c73e74f9797932c4474c5459aa28694a997c0c0 pristine_git_object: d14b8817de80260f39a0c79a07e5cd806c02e179 + src/glean/api_client/models/chatpersonsource.py: + id: edec67365a9f + last_write_checksum: sha1:605008bd53aa3789c391122510b7f4bd4adfc057 + pristine_git_object: f6f643e8e27d9a858805be3250ab6b12c6916372 src/glean/api_client/models/chatrequest.py: id: df889fc72055 last_write_checksum: sha1:1789889c241b2613c24b26d7966e1182210652ae @@ -5098,16 +5206,16 @@ trackedFiles: pristine_git_object: 44041cb376d89949c815ea1e7813505940605855 src/glean/api_client/models/feedentry.py: id: 023eb6c10ae1 - last_write_checksum: sha1:5eabff3b5cd0b361c5886938f9fbe3a95b8f78ed - pristine_git_object: 6de44a79f6324b46a202478f195e71ea7799e53d + last_write_checksum: sha1:bad47b3f46b621a302ef187b25cdece3774a0bc8 + pristine_git_object: c0d16f3e7b7287b7d047552d70a797e696f86177 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:4ace38fcc2bec0422b3e8177be7e11763c3d4e28 - pristine_git_object: 0b4739142304e7a396d039222f6f85cd7f2beafa + last_write_checksum: sha1:f13f3978c3edf1105b389e48f8116dc5488d61b5 + pristine_git_object: 363ac76d73ca89155bb071fbb83068ac478a0551 src/glean/api_client/models/feedrequestoptions.py: id: b99003fbf522 last_write_checksum: sha1:d5ffee29242075cbe6d2dd5ec916b0c3d40acf54 @@ -5118,8 +5226,8 @@ trackedFiles: pristine_git_object: 683438c837601f483526ec18756fadc7222edb24 src/glean/api_client/models/feedresult.py: id: ae187332b37a - last_write_checksum: sha1:4cb8df83d04bf6b3e85583c8c70785d629b69496 - pristine_git_object: 5dce9c15402c7841069e12dcdbc7620c529b184b + last_write_checksum: sha1:08ef5b972d1ad12881eaafe29413128836e39ae1 + pristine_git_object: a3f149b990f63df3d29c8e3b66c4330d6c6f6759 src/glean/api_client/models/followupaction.py: id: e2de5c4c8524 last_write_checksum: sha1:49e1a826449081fecfcd828c940604db949a8533 @@ -5394,8 +5502,8 @@ trackedFiles: pristine_git_object: d30f537ead3a77557adbd3b857cf4b2fbc9a4bf3 src/glean/api_client/models/importagentrequest.py: id: e548b6034e1c - last_write_checksum: sha1:081f2ec5fa96a0352f2960b1cb393fad6720b759 - pristine_git_object: e1471e404bdfb55693b03171155746261c574dfe + last_write_checksum: sha1:2d2d4af837a6eb076ccf323c922f12e262d37d43 + pristine_git_object: c88111d7009ffc6d2eab2f8f6a5367b682fc8cc9 src/glean/api_client/models/importagentresponse.py: id: 22a3fa434b8b last_write_checksum: sha1:a3e9cc2d8684fe175adf720d8094ad1a0759cca8 @@ -5622,8 +5730,12 @@ trackedFiles: pristine_git_object: c3c75325b3963366f30722e868b0a315df3f6557 src/glean/api_client/models/message.py: id: d2e44a188d40 - last_write_checksum: sha1:2e4eb38d13b95be09550527ce132fa4fac53a8af - pristine_git_object: 9af1fc143591bce1f25e5bb02c8987d0c28f43f1 + last_write_checksum: sha1:609d6f7909210e8a5a233a1ef459cf78638bd3a0 + pristine_git_object: 11d42a8f89fe22e36704855e9b49ea59eb52eaf1 + src/glean/api_client/models/message_input.py: + id: 5dcd2852dd9b + last_write_checksum: sha1:8ff252d6ac28627ffe46b0d7eca7aeb8728ae650 + pristine_git_object: 75d840bf333d8568689c53ab3e5a0932df02d7f7 src/glean/api_client/models/messagesop.py: id: 60537c3f3449 last_write_checksum: sha1:0c6da7e005f1115eb21821ae94fad6fbc1bdc2ab @@ -5858,8 +5970,8 @@ trackedFiles: pristine_git_object: 26bf40035054db162a6577ff5ca9354a56bcea84 src/glean/api_client/models/platformagentruncreaterequest.py: id: fc8dc50abaee - last_write_checksum: sha1:3b693d6de688989dd8039d22220f21ddb277b809 - pristine_git_object: 8d669029c5a70527554b398446c7ebf444ec3258 + last_write_checksum: sha1:a86106b88394793f38020e509ecb22a3a7c56c27 + pristine_git_object: fe723996349ce9181f4b5bbf25eec3604a992b62 src/glean/api_client/models/platformagentrunwaitresponse.py: id: 3498df9c1961 last_write_checksum: sha1:3f8f7707d02ded94a0021b99c00e3df4223b772b @@ -5902,8 +6014,8 @@ trackedFiles: pristine_git_object: f2ec133b16adcf53ecb88e3c1aa69ecd112b5dcd src/glean/api_client/models/platformchatdocumentsource.py: id: 1cd8111e3b4c - last_write_checksum: sha1:43c63d69794b3897ce38c321806a719e7957f36b - pristine_git_object: 73aad8d2edf3d1d6880e9cff3a0057b368d84543 + last_write_checksum: sha1:d74a2645a5776c88544b53ddb06731439ec5c46f + pristine_git_object: 54714c55ff800caea6c9748e180f6640e3470003 src/glean/api_client/models/platformchatfailedresponse.py: id: a67ad1be1af7 last_write_checksum: sha1:58cf0496973a6fc25167bd99f88ecc50d0ba914c @@ -6016,14 +6128,22 @@ trackedFiles: id: 5124dae40c5d last_write_checksum: sha1:e86beb4e210ed500ab72011ef90bb97b909a39e8 pristine_git_object: 7be2c4dcb18341cfe572b18ff9f78655fb7064db + src/glean/api_client/models/platformmessage_input.py: + id: f5ae6d3361dc + last_write_checksum: sha1:a41a40dc3c613f21a3b98c8cf68154585a0a4012 + pristine_git_object: c45c140396f5250eb15093985a7ec240e7328ded src/glean/api_client/models/platformmessagerole.py: id: 23b3de16c716 last_write_checksum: sha1:1c40eefcf4055e49b037d066fb1f2c9daf9afe84 pristine_git_object: 9d7939bdf32bd515ba72c0271a3c89ece1dcb429 src/glean/api_client/models/platformmessagetextblock.py: id: e631f7c5ce6b - last_write_checksum: sha1:fd5a2100de1d3c81a1b455d417995da5cacdd606 - pristine_git_object: 35266bb62875116cdc79897dcf1ebb7ab600d2fe + last_write_checksum: sha1:bf12461143a8e0a80824fe9093455813f1a3d15a + pristine_git_object: 1a7cadf41ea356c7f778c6d9e63cc6d269e3c7f2 + src/glean/api_client/models/platformmessagetextblock_input.py: + id: a94017fc587c + last_write_checksum: sha1:a7bf23349f2aa6aeb11de705a2d947a267f9aaf6 + pristine_git_object: ddc4a1bb76ea66050631863cd0c52a779ba630ef src/glean/api_client/models/platformpersonreference.py: id: 2ff9ab749423 last_write_checksum: sha1:a366e67090ccf5a9754576467db2043a33e8a8e2 @@ -6954,8 +7074,8 @@ trackedFiles: pristine_git_object: a9a640a1a7048736383f96c67c6290c86bf536ee src/glean/api_client/utils/__init__.py: id: d681dc4f06b3 - last_write_checksum: sha1:527db7a6c93948ecdec6a33f56b6551ae44f0180 - pristine_git_object: c48a36ca3d6e47e384b133bc0bcb482c6d8589b9 + last_write_checksum: sha1:e6fb1146e02dbccdc147eb3724b57e71568b8391 + pristine_git_object: e115709b0c3b707de93b00ecf707f85fb1abf1d1 src/glean/api_client/utils/annotations.py: id: 8431a3a9fc4f last_write_checksum: sha1:a4824ad65f730303e4e1e3ec1febf87b4eb46dbc @@ -7010,8 +7130,8 @@ trackedFiles: pristine_git_object: 4a272f16c2af33f6364bd9aec9cdc33b91f228d2 src/glean/api_client/utils/serializers.py: id: c499367f56e9 - last_write_checksum: sha1:7485f1425b0661fd84836186570df90207eec6af - pristine_git_object: 1031ed930bad5ece220cf7416a56c29f40f0588b + last_write_checksum: sha1:2fb543339b424a0818b126e69695df5c91cd4d7b + pristine_git_object: 5e57d36e8883501df8f6293e4c76ac337c4987eb src/glean/api_client/utils/unmarshal_json_response.py: id: 10872f2f336a last_write_checksum: sha1:8bea26e2247cd1c5b8dc60c70725ad0aed487c6d @@ -7522,8 +7642,8 @@ trackedFiles: pristine_git_object: abb763ddc8504b28c0cb6fdf8d25237d46e21bab tests/mockserver/internal/handler/pathpostrestapiv1getchat.go: id: a0ec7bafa599 - last_write_checksum: sha1:2267292ba8173cf8df70ddbc6ac02ff3439cb879 - pristine_git_object: 8740195860b6c08e036caae19aab8e7374350960 + last_write_checksum: sha1:b48e2313407814ee4f8ed181b8e5299a84960c44 + pristine_git_object: 96d4127e0455272a9842e2d1954e5fcefa3278cc tests/mockserver/internal/handler/pathpostrestapiv1getchatapplication.go: id: 7d101c69d4bc last_write_checksum: sha1:7b81898137fdb3a89b4dcfa318b9b5b92e8860c0 @@ -7754,8 +7874,8 @@ trackedFiles: pristine_git_object: dcff6d12e0c3def31984e4a134c46ed1d4704c53 tests/mockserver/internal/sdk/models/components/agentruncreate.go: id: 68e7aadd2c7f - last_write_checksum: sha1:b6d18d560f9137f1603b59692f73da586eaed80d - pristine_git_object: e0f2b034406b69f6beecc2328c713102dc9fb013 + last_write_checksum: sha1:8b09f0255e1c636bee9dbe8d57d6a031dfde6b59 + pristine_git_object: f7cfdd519fea0c88b71704fa5e5143693cebdb91 tests/mockserver/internal/sdk/models/components/agentrunwaitresponse.go: id: 8e31e5609691 last_write_checksum: sha1:75b0a516ab1c183abeeb9e27abc8a00f265f32ad @@ -7862,8 +7982,8 @@ trackedFiles: pristine_git_object: 774930f21f6761e703d10082d6fd42bd5d7c5c32 tests/mockserver/internal/sdk/models/components/autocompleterequest.go: id: 56aa024b9118 - last_write_checksum: sha1:1afcc6580c049f904d96944dcbf6f96dc9ba0b5a - pristine_git_object: dd9b56771c608f8f4e98215078d3df63096c0419 + last_write_checksum: sha1:86415b3329533a2415815b14551f11a9c3dc3c3e + pristine_git_object: 2b02c414795216c099acd4479055f09d9c3d5492 tests/mockserver/internal/sdk/models/components/autocompleteresponse.go: id: 66cd6764f2df last_write_checksum: sha1:ac7d26f25b2828f520494f4fbe7cd7c2beb9f44a @@ -7940,6 +8060,26 @@ trackedFiles: id: 267212a046da last_write_checksum: sha1:5f73994939b88d70f6d9a6cd56c6a5c701ed2712 pristine_git_object: 6d99873d506d21d2ffed0e6f51675d82be9e8e7d + tests/mockserver/internal/sdk/models/components/chatcitationannotation.go: + id: fdae2a68ad9f + last_write_checksum: sha1:d2ac80eda974f2d05ace80e091de04d3de4bf3e3 + pristine_git_object: 573b1a18777a947ed31e7881907999915c6fc07f + tests/mockserver/internal/sdk/models/components/chatcitationsnippet.go: + id: ae5ea378aabb + last_write_checksum: sha1:a01a977a313b24673963d481f08918fd8915f327 + pristine_git_object: bd15f5670872cc4959cb73f0bc95116f58b03448 + tests/mockserver/internal/sdk/models/components/chatcitationsource.go: + id: 409bdfa0834c + last_write_checksum: sha1:e58cacda03f0d19f3603bf3555966340eace8e57 + pristine_git_object: cf84a83c40456934c918f46b578bf6c914f1356e + tests/mockserver/internal/sdk/models/components/chatcustomentitysource.go: + id: 1d69f163af11 + last_write_checksum: sha1:d3690c323f14629b72e200a63a018b77aae0561e + pristine_git_object: faaf2644691338eb8933920954dc3fb9ed553635 + tests/mockserver/internal/sdk/models/components/chatdocumentsource.go: + id: 7256fab64bff + last_write_checksum: sha1:9019032f36ea53ffa2d8c46a42a2697377379bd6 + pristine_git_object: e172a5aac7479c9d73486ec1a296234a5c207324 tests/mockserver/internal/sdk/models/components/chatfile.go: id: ad0d00764036 last_write_checksum: sha1:2d220b166f37523e64aa0965e237872532f4ccfe @@ -7952,6 +8092,10 @@ trackedFiles: id: f4269e82a2a4 last_write_checksum: sha1:4e608b0813ad32b7a981f73a511952b6459979e0 pristine_git_object: 55c746ecdb0de1f37ffcf3bd21cefca8472f6cdf + tests/mockserver/internal/sdk/models/components/chatfilesource.go: + id: 14c86f32d5d7 + last_write_checksum: sha1:c8bc56232dcf9a579b50f78ab1ce899f1d21b0dd + pristine_git_object: 806700932c2415657836639accb722b4237049cf tests/mockserver/internal/sdk/models/components/chatfilestatus.go: id: e34ec1fe6a71 last_write_checksum: sha1:382dc2973696c71b36481555cc1eeed0379b3f2a @@ -7976,6 +8120,10 @@ trackedFiles: id: 0829f3ffdd80 last_write_checksum: sha1:caa7890f13d410e4bde2bcb9f3e3db1f5b0d6c90 pristine_git_object: 74a433050f298fa6c1151cfc1d7bb324dc9c4e0c + tests/mockserver/internal/sdk/models/components/chatpersonsource.go: + id: c9c20096f4a6 + last_write_checksum: sha1:f876e78f35fefbe011e19750f7a382a2af1bd563 + pristine_git_object: 4623c83770336c42b05d4f66fe4aed55e4938beb tests/mockserver/internal/sdk/models/components/chatrequest.go: id: 7667ebf5d58e last_write_checksum: sha1:7d090933c080d356c3716f23a13b2b92cdc93ee9 @@ -8602,12 +8750,12 @@ trackedFiles: pristine_git_object: 04cc3a93272ac70933b0485bee31b335e05ab623 tests/mockserver/internal/sdk/models/components/feedentry.go: id: d25fd66fcf7a - last_write_checksum: sha1:fee85ec5b49bec06f358fa5c1491e2b9022808b7 - pristine_git_object: e52b5300a4c124c6fa886f959ec408e5c98ae282 + last_write_checksum: sha1:5c737e067de0426319bf913fed08aa7ce31df6ec + pristine_git_object: e84bac4d71b95d2ddc00e376a419422a7f2dd4f9 tests/mockserver/internal/sdk/models/components/feedrequest.go: id: b06bc4cef0cf - last_write_checksum: sha1:941e473b866a9275df87c9b7d2b4bd1ebc0c906c - pristine_git_object: 698ed03a551bfc2607a5593aaea66d28ee2aced9 + last_write_checksum: sha1:a33f5163423670d804e9ac093380cd39d2037d84 + pristine_git_object: ea9a683c0d79a52d131d08d5231e438cefde4030 tests/mockserver/internal/sdk/models/components/feedrequestoptions.go: id: fd9245fe1bf2 last_write_checksum: sha1:fa30b7fd6ee3e45896d7bbe36e33e7c0cb9000ba @@ -8618,8 +8766,8 @@ trackedFiles: pristine_git_object: 54f9d1a8997983156c84e69f888c59a80d06c2b1 tests/mockserver/internal/sdk/models/components/feedresult.go: id: 47411573e67a - last_write_checksum: sha1:b291daeded71b10d964bab678de412fe968b070e - pristine_git_object: 9a4cfb737eb02f128d85116b58ec2116f6ee8a8a + last_write_checksum: sha1:c82f576ebad4b8367fbb6b41492ac30d3e6b202a + pristine_git_object: 6e4408b5a7fc07cebe91bd117fd1b1228878193e tests/mockserver/internal/sdk/models/components/followupaction.go: id: 38179fec19b1 last_write_checksum: sha1:32a31f7af77a58ce6f3284e8550d01fcf0d3bddd @@ -8798,8 +8946,8 @@ trackedFiles: pristine_git_object: 537d53a4d6235b3f67a08a6b3c08f88a6782f8ec tests/mockserver/internal/sdk/models/components/importagentrequest.go: id: e32c8cfe1620 - last_write_checksum: sha1:c9c53dcc1d4a41358ceaaa5af0cb024b4c5088f2 - pristine_git_object: 1dd4383e619f5890ee3038c5aca40d12e79c538d + last_write_checksum: sha1:4628536fb393ff34a8748c63447be20e9b6dff7e + pristine_git_object: 100605e0d6d93604893efe2b72d37f4ab10508b2 tests/mockserver/internal/sdk/models/components/importagentresponse.go: id: f99e9c9fe605 last_write_checksum: sha1:bf26c40925bea852b8a302a4c3c585707a1b1622 @@ -8990,8 +9138,12 @@ trackedFiles: pristine_git_object: 0c852dd3a7a2cf25798b15303e82ec7b5e8a59e6 tests/mockserver/internal/sdk/models/components/message.go: id: d96e45d4acde - last_write_checksum: sha1:e26e4e76e56ff85f2df34f754db3bddaf57b1475 - pristine_git_object: 5972aa332f648eba54a1c048c1819c058233db36 + last_write_checksum: sha1:0e6cc5d1d8ec8b4b3f53a139287bdba721f50f80 + pristine_git_object: 1a80d9f41a6955a6808c40689af6f68970f5300c + tests/mockserver/internal/sdk/models/components/messageinput.go: + id: 2e4e9011080e + last_write_checksum: sha1:17693a85d1cc1b7a61b698521a468f9ad7fc8420 + pristine_git_object: 958e2d359d3a312b33fffbf3345e40e21b4ca5d5 tests/mockserver/internal/sdk/models/components/messagesrequest.go: id: ad26cc127163 last_write_checksum: sha1:91ec52d57dfd2e53150a39841b6eebf3bf8d1568 @@ -9106,8 +9258,8 @@ trackedFiles: pristine_git_object: a3139f71ea2e70673649a36519c072d817d45969 tests/mockserver/internal/sdk/models/components/platformagentruncreaterequest.go: id: 77a686bb0b6e - last_write_checksum: sha1:470b1f19968f3aea31ae965922ecfd8a659855fb - pristine_git_object: d653f4bc7ce64623cacfb1c1a48ba3451dbf0d12 + last_write_checksum: sha1:c2becf7b5aea9541b963fd98b364c2825c731f27 + pristine_git_object: dfce10e1e21abb00331b48528dd419203790fe99 tests/mockserver/internal/sdk/models/components/platformagentrunwaitresponse.go: id: 368b82c238d0 last_write_checksum: sha1:77ffebf146f2f6f671f10a8ad893f672ee8c67a5 @@ -9150,8 +9302,8 @@ trackedFiles: pristine_git_object: ccd6eac366414927d53ec579b691a1abf3f34867 tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go: id: 50d8ddf827c8 - last_write_checksum: sha1:601d2c92039f18fcf03ea3abe7a8cb30d96862d2 - pristine_git_object: 63d8078fd2f1510238397be59455ef19090a3a3a + last_write_checksum: sha1:f077a1b4519d5e3f0f54a04ae8efcb6cfe20699c + pristine_git_object: 5d07e389edbc7084c1621b8f65002d97320074df tests/mockserver/internal/sdk/models/components/platformchatfailedresponse.go: id: 921bc4d4fee3 last_write_checksum: sha1:c9fe38548487b8e707e4e5b0e91031881ed91e5b @@ -9264,14 +9416,22 @@ trackedFiles: id: 5eb3e8c3fd80 last_write_checksum: sha1:3051abc1ef3e40cd0385bd9846c987d3ebfbcbbf pristine_git_object: c8062f03d7a576e59acdca705b62c2be08cd9770 + tests/mockserver/internal/sdk/models/components/platformmessageinput.go: + id: 3788a4ec15a6 + last_write_checksum: sha1:ea981efee4da097fb363e5c1b08ad03e4eb399c9 + pristine_git_object: 950aade4bbd44772f9d3258ba526ea6b994625d8 tests/mockserver/internal/sdk/models/components/platformmessagerole.go: id: 09fd90afdd78 last_write_checksum: sha1:9249342777230262261267ff0a32ba1b4248db5d pristine_git_object: bece7dac13fb6fe5bad631a67b835abf18833015 tests/mockserver/internal/sdk/models/components/platformmessagetextblock.go: id: de473d461198 - last_write_checksum: sha1:a36d13b1d29fb55a08134ebf88f3971079b14fbb - pristine_git_object: 0432f13a4feb9922a9d36f79a6f83c78224f9a27 + last_write_checksum: sha1:e07719376d876475003055636e31daa0280853f6 + pristine_git_object: b5fe4dc92e109defc8c40cfcccf0fb09976b0ef2 + tests/mockserver/internal/sdk/models/components/platformmessagetextblockinput.go: + id: 3a3335fcd639 + last_write_checksum: sha1:6a66d3af6869882eba15c10a8598bbac9443744e + pristine_git_object: a2f9800f6c38ae73cda44bafede4ab6d202cbe0f tests/mockserver/internal/sdk/models/components/platformpersonreference.go: id: ebc5c183c98b last_write_checksum: sha1:91afcf6171cafdd18d638818711fe0f3a0ba1021 @@ -10890,8 +11050,8 @@ trackedFiles: pristine_git_object: 200e3ceebf0fb52248b717e6cb20b105611c41ec tests/test_client_agents.py: id: 5ac5a5b220c8 - last_write_checksum: sha1:7a239203a9848e8f05fab59d7d0df262e0ec20b5 - pristine_git_object: 154665a2de0bd7f01ac5f44fdf547c25fdcee9d7 + last_write_checksum: sha1:f83c238eb6eb2f7b78b36f69af68035ee15ec6f7 + pristine_git_object: bcee64d6beeaa0b1b5af97973c9001f63df17252 tests/test_client_authentication.py: id: 7cf5a14528ec last_write_checksum: sha1:3ac1ca0753590620676a8bcc6a06e2aa6375ab71 @@ -10966,8 +11126,8 @@ trackedFiles: pristine_git_object: 6cc8aeec3c52329d389081db0a27f10f53f214b9 tests/test_messages.py: id: be23089b1f8b - last_write_checksum: sha1:bef200db8e7fff0aa33ef17846f5054a2d035a88 - pristine_git_object: 36643db35a2d2a3cf9d327379ee7a6cb30da51d0 + last_write_checksum: sha1:2404e23964ef6a1f5ddc900402b34e597d2d9617 + pristine_git_object: 132005ec7d1e35f805b6a8c28e07e043bce22f0a tests/test_people.py: id: 37c243940039 last_write_checksum: sha1:2b78b1c5ea17f267895188b1b48ff9fe2bc19f17 @@ -10994,8 +11154,8 @@ trackedFiles: pristine_git_object: 63587d5a9e7b7e506ce9daf00d51ce92afb56035 tests/test_summarize.py: id: a255d8a6f627 - last_write_checksum: sha1:1fa40d6b0d438ba1eab1f497726f4290e131484d - pristine_git_object: 176748ca1a31da3ced2490494b227befe400ee32 + last_write_checksum: sha1:a327189497f3a2b98c2e277757da4e4ba22cf768 + pristine_git_object: 072b3207b89ff92c8a22b828c32ce23e2ae0ba88 tests/test_tools.py: id: 70889bdf7321 last_write_checksum: sha1:e9e37efd6a65d805c02d70d548df9c87dd062b0e @@ -12233,7 +12393,7 @@ examples: path: agent_id: "" requestBody: - multipart/form-data: {"bundle": "x-file: example.file"} + multipart/form-data: {"bundle": "x-file: example.file", "versionSource": "USER"} responses: "200": application/json: {"workflowResult": {"workflow": {"author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "lastDraftSavedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "lastUpdatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}}} @@ -12583,6 +12743,7 @@ generatedTests: platform-trigger-presets-get: "2026-08-21T02:33:03Z" platform-trigger-presets-input-values-list: "2026-08-21T02:33:03Z" platform-trigger-presets-events-search: "2026-08-21T02:33:03Z" +releaseNotes: "## Python SDK Changes:\n* `glean.agents.create_run()`: `response.run.messages[].content[].annotations` **Added**\n* `glean.client.agents.import()`: `request` **Changed**\n* `glean.client.agents.run()`: `response.run.messages[].content[].annotations` **Added**\n* `glean.client.search.retrieve_feed()`: \n * `request.categories[]` **Changed**\n * `response.results[]` **Changed**\n" generatedFiles: - .devcontainer/README.md - .devcontainer/devcontainer.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 4687d804..e449cccd 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -34,7 +34,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true python: - version: 0.17.13 + version: 0.17.14 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index 614cfd84..7ee55ac5 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -2,8 +2,8 @@ openapi: 3.1.0 info: version: "0.9.0" title: Glean API - x-source-commit-sha: 31a8965bc9e49871a44c872a19d7442c25790b41 - x-open-api-commit-sha: 50797dafaa6c32f59f7dd18b9a5766b5321fffaa + x-source-commit-sha: 5f1d873383438dc574c1075f9476915610e56875 + x-open-api-commit-sha: 6a8c8e16bbbca13a130766a72f307fb373b8256a 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. @@ -7135,6 +7135,163 @@ components: type: string enum: - text + PlatformChatDocumentSource: + type: object + additionalProperties: false + required: + - type + properties: + type: + type: string + x-discriminator: true + enum: + - DOCUMENT + document_id: + type: string + minLength: 1 + url: + type: string + minLength: 1 + title: + type: string + datasource: + type: string + anyOf: + - required: + - document_id + properties: + document_id: + type: string + minLength: 1 + - required: + - url + properties: + url: + type: string + minLength: 1 + PlatformChatPersonSource: + type: object + additionalProperties: false + required: + - type + - person_id + properties: + type: + type: string + x-discriminator: true + enum: + - PERSON + person_id: + type: string + minLength: 1 + name: + type: string + url: + type: string + PlatformChatFileSource: + type: object + additionalProperties: false + required: + - type + - file_id + properties: + type: + type: string + x-discriminator: true + enum: + - FILE + file_id: + type: string + minLength: 1 + title: + type: string + url: + type: string + datasource: + type: string + PlatformChatCustomEntitySource: + type: object + additionalProperties: false + required: + - type + - entity_id + properties: + type: + type: string + x-discriminator: true + enum: + - CUSTOM_ENTITY + entity_id: + type: string + minLength: 1 + name: + type: string + title: + type: string + url: + type: string + datasource: + type: string + PlatformChatCitationSource: + description: Four-variant citation source union. + x-multiple-discriminators: true + oneOf: + - $ref: "#/components/schemas/PlatformChatDocumentSource" + - $ref: "#/components/schemas/PlatformChatPersonSource" + - $ref: "#/components/schemas/PlatformChatFileSource" + - $ref: "#/components/schemas/PlatformChatCustomEntitySource" + discriminator: + propertyName: type + mapping: + DOCUMENT: "#/components/schemas/PlatformChatDocumentSource" + PERSON: "#/components/schemas/PlatformChatPersonSource" + FILE: "#/components/schemas/PlatformChatFileSource" + CUSTOM_ENTITY: "#/components/schemas/PlatformChatCustomEntitySource" + PlatformChatCitationSnippet: + type: object + additionalProperties: false + required: + - text + properties: + text: + type: string + minLength: 1 + page_number: + type: + - integer + - "null" + PlatformChatCitationAnnotation: + type: object + additionalProperties: false + required: + - type + - sources + properties: + type: + type: string + enum: + - CITATION + sources: + type: array + minItems: 1 + items: + $ref: "#/components/schemas/PlatformChatCitationSource" + start_index: + type: + - integer + - "null" + minimum: 0 + end_index: + type: + - integer + - "null" + minimum: 0 + snippets: + type: + - array + - "null" + items: + $ref: "#/components/schemas/PlatformChatCitationSnippet" PlatformMessageTextBlock: type: object required: @@ -7146,6 +7303,11 @@ components: description: Text content. type: $ref: "#/components/schemas/PlatformContentType" + annotations: + type: array + readOnly: true + items: + $ref: "#/components/schemas/PlatformChatCitationAnnotation" PlatformMessage: type: object required: @@ -7321,150 +7483,6 @@ components: pattern: ^resp_[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ description: | Platform-owned, non-persisted response envelope identifier in `resp_` form. The same identifier is used for every event in one streamed response. - PlatformChatDocumentSource: - type: object - additionalProperties: false - required: - - type - properties: - type: - type: string - enum: - - DOCUMENT - document_id: - type: string - minLength: 1 - url: - type: string - minLength: 1 - title: - type: string - datasource: - type: string - anyOf: - - required: - - document_id - - required: - - url - PlatformChatPersonSource: - type: object - additionalProperties: false - required: - - type - - person_id - properties: - type: - type: string - enum: - - PERSON - person_id: - type: string - minLength: 1 - name: - type: string - url: - type: string - PlatformChatFileSource: - type: object - additionalProperties: false - required: - - type - - file_id - properties: - type: - type: string - enum: - - FILE - file_id: - type: string - minLength: 1 - title: - type: string - url: - type: string - datasource: - type: string - PlatformChatCustomEntitySource: - type: object - additionalProperties: false - required: - - type - - entity_id - properties: - type: - type: string - enum: - - CUSTOM_ENTITY - entity_id: - type: string - minLength: 1 - name: - type: string - title: - type: string - url: - type: string - datasource: - type: string - PlatformChatCitationSource: - description: Four-variant citation source union. - oneOf: - - $ref: "#/components/schemas/PlatformChatDocumentSource" - - $ref: "#/components/schemas/PlatformChatPersonSource" - - $ref: "#/components/schemas/PlatformChatFileSource" - - $ref: "#/components/schemas/PlatformChatCustomEntitySource" - discriminator: - propertyName: type - mapping: - DOCUMENT: "#/components/schemas/PlatformChatDocumentSource" - PERSON: "#/components/schemas/PlatformChatPersonSource" - FILE: "#/components/schemas/PlatformChatFileSource" - CUSTOM_ENTITY: "#/components/schemas/PlatformChatCustomEntitySource" - PlatformChatCitationSnippet: - type: object - additionalProperties: false - required: - - text - properties: - text: - type: string - minLength: 1 - page_number: - type: - - integer - - "null" - PlatformChatCitationAnnotation: - type: object - additionalProperties: false - required: - - type - - sources - properties: - type: - type: string - enum: - - CITATION - sources: - type: array - minItems: 1 - items: - $ref: "#/components/schemas/PlatformChatCitationSource" - start_index: - type: - - integer - - "null" - minimum: 0 - end_index: - type: - - integer - - "null" - minimum: 0 - snippets: - type: - - array - - "null" - items: - $ref: "#/components/schemas/PlatformChatCitationSnippet" PlatformChatOutputTextContent: type: object additionalProperties: false @@ -14004,6 +14022,18 @@ components: description: Optional commit message for the imported version. syncMode: $ref: '#/components/schemas/ImportAgentSyncMode' + versionSource: + type: string + enum: + - GIT + - USER + description: | + Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports. + default: USER + publishedBaselineHash: + type: string + description: | + Optional baseline hash of the currently published agent definition. When publish hash validation is enabled, an import updating an existing agent with syncMode PUBLISHED is rejected with HTTP 409 if the current published definition hash is nonempty and does not match this baseline. Leading and trailing whitespace is trimmed; omitted or blank values skip validation. Ignored for STAGED imports, new agents, and transient previews. isDraft: type: boolean description: | @@ -14043,6 +14073,163 @@ components: type: string enum: - text + ChatDocumentSource: + type: object + anyOf: + - properties: + document_id: + type: string + minLength: 1 + required: + - document_id + - properties: + url: + type: string + minLength: 1 + required: + - url + properties: + type: + type: string + enum: + - DOCUMENT + x-discriminator: true + document_id: + type: string + minLength: 1 + url: + type: string + minLength: 1 + title: + type: string + datasource: + type: string + required: + - type + additionalProperties: false + ChatPersonSource: + type: object + properties: + type: + type: string + enum: + - PERSON + x-discriminator: true + person_id: + type: string + minLength: 1 + name: + type: string + url: + type: string + required: + - type + - person_id + additionalProperties: false + ChatFileSource: + type: object + properties: + type: + type: string + enum: + - FILE + x-discriminator: true + file_id: + type: string + minLength: 1 + title: + type: string + url: + type: string + datasource: + type: string + required: + - type + - file_id + additionalProperties: false + ChatCustomEntitySource: + type: object + properties: + type: + type: string + enum: + - CUSTOM_ENTITY + x-discriminator: true + entity_id: + type: string + minLength: 1 + name: + type: string + title: + type: string + url: + type: string + datasource: + type: string + required: + - type + - entity_id + additionalProperties: false + ChatCitationSource: + oneOf: + - $ref: '#/components/schemas/ChatDocumentSource' + - $ref: '#/components/schemas/ChatPersonSource' + - $ref: '#/components/schemas/ChatFileSource' + - $ref: '#/components/schemas/ChatCustomEntitySource' + discriminator: + propertyName: type + mapping: + DOCUMENT: '#/components/schemas/ChatDocumentSource' + PERSON: '#/components/schemas/ChatPersonSource' + FILE: '#/components/schemas/ChatFileSource' + CUSTOM_ENTITY: '#/components/schemas/ChatCustomEntitySource' + description: Four-variant citation source union. + x-multiple-discriminators: true + ChatCitationSnippet: + type: object + properties: + text: + type: string + minLength: 1 + page_number: + type: + - integer + - "null" + required: + - text + additionalProperties: false + ChatCitationAnnotation: + type: object + properties: + type: + type: string + enum: + - CITATION + sources: + type: array + items: + $ref: '#/components/schemas/ChatCitationSource' + minItems: 1 + start_index: + type: + - integer + - "null" + minimum: 0 + end_index: + type: + - integer + - "null" + minimum: 0 + snippets: + type: + - array + - "null" + items: + $ref: '#/components/schemas/ChatCitationSnippet' + required: + - type + - sources + additionalProperties: false Message: type: object properties: @@ -14060,6 +14247,11 @@ components: type: string type: $ref: '#/components/schemas/ContentType' + annotations: + type: array + items: + $ref: '#/components/schemas/ChatCitationAnnotation' + readOnly: true title: MessageTextBlock required: - text @@ -15666,8 +15858,7 @@ components: description: Filter to only return results of the given type(s). All types may be returned if omitted. resultSize: type: integer - description: | - Maximum number of results to be returned. If no value is provided, the backend will cap at 200. + description: Maximum number of results to be returned. If no value is provided, the backend will cap at 200. example: 10 authTokens: type: array @@ -15935,6 +16126,8 @@ components: - KNOWLEDGE_GAP - ARTIFACT_CREATION - EDIT_DOC + - CHAT_TO_ARTIFACT + - SHARE_ARTIFACT description: Categories of content requested. An allowlist gives flexibility to request content separately or together. requestOptions: $ref: '#/components/schemas/FeedRequestOptions' @@ -16408,6 +16601,8 @@ components: - KNOWLEDGE_GAP - ARTIFACT_CREATION - EDIT_DOC + - CHAT_TO_ARTIFACT + - SHARE_ARTIFACT description: Type of the justification. justification: type: string @@ -16504,6 +16699,8 @@ components: - KNOWLEDGE_GAP - ARTIFACT_CREATION - EDIT_DOC + - CHAT_TO_ARTIFACT + - SHARE_ARTIFACT description: Category of the result, one of the requested categories in incoming request. primaryEntry: $ref: '#/components/schemas/FeedEntry' diff --git a/.speakeasy/tests.arazzo.yaml b/.speakeasy/tests.arazzo.yaml index ca09331b..a0c16dd3 100644 --- a/.speakeasy/tests.arazzo.yaml +++ b/.speakeasy/tests.arazzo.yaml @@ -159160,6 +159160,7 @@ workflows: contentType: multipart/form-data payload: bundle: 'x-file: example.file' + versionSource: USER successCriteria: - condition: $statusCode == 200 - condition: $response.header.Content-Type == application/json diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 846a2600..b09477b0 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.796.4 +speakeasyVersion: 1.797.0 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:09eb059f0216714606cd4c098bf2c97994e46c67ba091ffd108681cf9ae831a5 - sourceBlobDigest: sha256:a9418b93b4aaa7cd6d428375e23d233ffca2418e04be1fee988a029e3cb02931 + sourceRevisionDigest: sha256:1f470e422d6b202bf6bb80cc2e4b73077b7dab6d476cda804245fc0402ea42f1 + sourceBlobDigest: sha256:8919e7ffe50c1ca78844cd89c216e8ab3c54a8e0003bd5072e7fe3cd35fb192c tags: - latest Glean Client API: @@ -16,10 +16,10 @@ targets: glean: source: Glean API sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:09eb059f0216714606cd4c098bf2c97994e46c67ba091ffd108681cf9ae831a5 - sourceBlobDigest: sha256:a9418b93b4aaa7cd6d428375e23d233ffca2418e04be1fee988a029e3cb02931 + sourceRevisionDigest: sha256:1f470e422d6b202bf6bb80cc2e4b73077b7dab6d476cda804245fc0402ea42f1 + sourceBlobDigest: sha256:8919e7ffe50c1ca78844cd89c216e8ab3c54a8e0003bd5072e7fe3cd35fb192c codeSamplesNamespace: glean-api-specs-python-code-samples - codeSamplesRevisionDigest: sha256:378452df2ea1abfd42848dbaaa791971fea47c98f7845e9b7f313f12da2109f6 + codeSamplesRevisionDigest: sha256:07e63ad12522c0ccf6dc9dab0943696972a489679ebc077bb6bfd23d25a123b8 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index 2ae64d92..5d10ffd7 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -988,4 +988,14 @@ Based on: ### Generated - [python v0.17.13] . ### Releases -- [PyPI v0.17.13] https://pypi.org/project/glean-api-client/0.17.13 - . \ No newline at end of file +- [PyPI v0.17.13] https://pypi.org/project/glean-api-client/0.17.13 - . + +## 2026-09-18 03:34:43 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.797.0 (2.937.18) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.17.14] . +### Releases +- [PyPI v0.17.14] https://pypi.org/project/glean-api-client/0.17.14 - . \ No newline at end of file diff --git a/docs/models/agentruncreate.md b/docs/models/agentruncreate.md index 46d31de6..567a7800 100644 --- a/docs/models/agentruncreate.md +++ b/docs/models/agentruncreate.md @@ -9,5 +9,5 @@ Payload for creating a run. **Important**: If the agent uses an input form trigg | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | `agent_id` | *str* | :heavy_check_mark: | The ID of the agent to run. | | `input` | Dict[str, *Any*] | :heavy_minus_sign: | The input to the agent. Required when the agent uses an input form trigger. | -| `messages` | List[[models.Message](../models/message.md)] | :heavy_minus_sign: | The messages to pass an input to the agent. | +| `messages` | List[[models.MessageInput](../models/messageinput.md)] | :heavy_minus_sign: | The messages to pass an input to the agent. | | `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | The metadata to pass to the agent. | \ No newline at end of file diff --git a/docs/models/autocompleterequest.md b/docs/models/autocompleterequest.md index f3dfd2e9..a44caa98 100644 --- a/docs/models/autocompleterequest.md +++ b/docs/models/autocompleterequest.md @@ -11,5 +11,5 @@ | `datasources_filter` | List[*str*] | :heavy_minus_sign: | Filter results to only those relevant to one or more datasources (e.g. jira, gdrive). Results are unfiltered if missing. | | | `datasource` | *Optional[str]* | :heavy_minus_sign: | Filter to only return results relevant to the given datasource. | | | `result_types` | List[[models.AutocompleteRequestResultType](../models/autocompleterequestresulttype.md)] | :heavy_minus_sign: | Filter to only return results of the given type(s). All types may be returned if omitted. | | -| `result_size` | *Optional[int]* | :heavy_minus_sign: | Maximum number of results to be returned. If no value is provided, the backend will cap at 200.
| 10 | +| `result_size` | *Optional[int]* | :heavy_minus_sign: | Maximum number of results to be returned. If no value is provided, the backend will cap at 200. | 10 | | `auth_tokens` | List[[models.AuthToken](../models/authtoken.md)] | :heavy_minus_sign: | Auth tokens which may be used for federated results. | | \ No newline at end of file diff --git a/docs/models/chatcitationannotation.md b/docs/models/chatcitationannotation.md new file mode 100644 index 00000000..9f89894e --- /dev/null +++ b/docs/models/chatcitationannotation.md @@ -0,0 +1,12 @@ +# ChatCitationAnnotation + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `type` | [models.ChatCitationAnnotationType](../models/chatcitationannotationtype.md) | :heavy_check_mark: | N/A | +| `sources` | List[[models.ChatCitationSource](../models/chatcitationsource.md)] | :heavy_check_mark: | N/A | +| `start_index` | *OptionalNullable[int]* | :heavy_minus_sign: | N/A | +| `end_index` | *OptionalNullable[int]* | :heavy_minus_sign: | N/A | +| `snippets` | List[[models.ChatCitationSnippet](../models/chatcitationsnippet.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/chatcitationannotationtype.md b/docs/models/chatcitationannotationtype.md new file mode 100644 index 00000000..10ef1d9a --- /dev/null +++ b/docs/models/chatcitationannotationtype.md @@ -0,0 +1,16 @@ +# ChatCitationAnnotationType + +## Example Usage + +```python +from glean.api_client.models import ChatCitationAnnotationType + +value = ChatCitationAnnotationType.CITATION +``` + + +## Values + +| Name | Value | +| ---------- | ---------- | +| `CITATION` | CITATION | \ No newline at end of file diff --git a/docs/models/chatcitationsnippet.md b/docs/models/chatcitationsnippet.md new file mode 100644 index 00000000..81e46ee6 --- /dev/null +++ b/docs/models/chatcitationsnippet.md @@ -0,0 +1,9 @@ +# ChatCitationSnippet + + +## Fields + +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `text` | *str* | :heavy_check_mark: | N/A | +| `page_number` | *OptionalNullable[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/chatcitationsource.md b/docs/models/chatcitationsource.md new file mode 100644 index 00000000..dfe70a59 --- /dev/null +++ b/docs/models/chatcitationsource.md @@ -0,0 +1,31 @@ +# ChatCitationSource + +Four-variant citation source union. + + +## Supported Types + +### `models.ChatDocumentSource` + +```python +value: models.ChatDocumentSource = /* values here */ +``` + +### `models.ChatPersonSource` + +```python +value: models.ChatPersonSource = /* values here */ +``` + +### `models.ChatFileSource` + +```python +value: models.ChatFileSource = /* values here */ +``` + +### `models.ChatCustomEntitySource` + +```python +value: models.ChatCustomEntitySource = /* values here */ +``` + diff --git a/docs/models/chatcustomentitysource.md b/docs/models/chatcustomentitysource.md new file mode 100644 index 00000000..a90ae1fb --- /dev/null +++ b/docs/models/chatcustomentitysource.md @@ -0,0 +1,13 @@ +# ChatCustomEntitySource + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `type` | [models.ChatCustomEntitySourceType](../models/chatcustomentitysourcetype.md) | :heavy_check_mark: | N/A | +| `entity_id` | *str* | :heavy_check_mark: | N/A | +| `name` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `title` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `url` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `datasource` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/chatcustomentitysourcetype.md b/docs/models/chatcustomentitysourcetype.md new file mode 100644 index 00000000..685edabc --- /dev/null +++ b/docs/models/chatcustomentitysourcetype.md @@ -0,0 +1,16 @@ +# ChatCustomEntitySourceType + +## Example Usage + +```python +from glean.api_client.models import ChatCustomEntitySourceType + +value = ChatCustomEntitySourceType.CUSTOM_ENTITY +``` + + +## Values + +| Name | Value | +| --------------- | --------------- | +| `CUSTOM_ENTITY` | CUSTOM_ENTITY | \ No newline at end of file diff --git a/docs/models/chatdocumentsource.md b/docs/models/chatdocumentsource.md new file mode 100644 index 00000000..2a6ef4cb --- /dev/null +++ b/docs/models/chatdocumentsource.md @@ -0,0 +1,17 @@ +# ChatDocumentSource + + +## Supported Types + +### `models.ChatDocumentSourceDocument1` + +```python +value: models.ChatDocumentSourceDocument1 = /* values here */ +``` + +### `models.ChatDocumentSourceDocument2` + +```python +value: models.ChatDocumentSourceDocument2 = /* values here */ +``` + diff --git a/docs/models/chatdocumentsourcedocument1.md b/docs/models/chatdocumentsourcedocument1.md new file mode 100644 index 00000000..fad2df11 --- /dev/null +++ b/docs/models/chatdocumentsourcedocument1.md @@ -0,0 +1,12 @@ +# ChatDocumentSourceDocument1 + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `document_id` | *str* | :heavy_check_mark: | N/A | +| `type` | [models.ChatDocumentSourceType1](../models/chatdocumentsourcetype1.md) | :heavy_check_mark: | N/A | +| `url` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `title` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `datasource` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/chatdocumentsourcedocument2.md b/docs/models/chatdocumentsourcedocument2.md new file mode 100644 index 00000000..300b33cd --- /dev/null +++ b/docs/models/chatdocumentsourcedocument2.md @@ -0,0 +1,12 @@ +# ChatDocumentSourceDocument2 + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `url` | *str* | :heavy_check_mark: | N/A | +| `type` | [models.ChatDocumentSourceType2](../models/chatdocumentsourcetype2.md) | :heavy_check_mark: | N/A | +| `document_id` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `title` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `datasource` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/chatdocumentsourcetype1.md b/docs/models/chatdocumentsourcetype1.md new file mode 100644 index 00000000..c5a408df --- /dev/null +++ b/docs/models/chatdocumentsourcetype1.md @@ -0,0 +1,16 @@ +# ChatDocumentSourceType1 + +## Example Usage + +```python +from glean.api_client.models import ChatDocumentSourceType1 + +value = ChatDocumentSourceType1.DOCUMENT +``` + + +## Values + +| Name | Value | +| ---------- | ---------- | +| `DOCUMENT` | DOCUMENT | \ No newline at end of file diff --git a/docs/models/chatdocumentsourcetype2.md b/docs/models/chatdocumentsourcetype2.md new file mode 100644 index 00000000..a73816c9 --- /dev/null +++ b/docs/models/chatdocumentsourcetype2.md @@ -0,0 +1,16 @@ +# ChatDocumentSourceType2 + +## Example Usage + +```python +from glean.api_client.models import ChatDocumentSourceType2 + +value = ChatDocumentSourceType2.DOCUMENT +``` + + +## Values + +| Name | Value | +| ---------- | ---------- | +| `DOCUMENT` | DOCUMENT | \ No newline at end of file diff --git a/docs/models/chatfilesource.md b/docs/models/chatfilesource.md new file mode 100644 index 00000000..609aa5a1 --- /dev/null +++ b/docs/models/chatfilesource.md @@ -0,0 +1,12 @@ +# ChatFileSource + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `type` | [models.ChatFileSourceType](../models/chatfilesourcetype.md) | :heavy_check_mark: | N/A | +| `file_id` | *str* | :heavy_check_mark: | N/A | +| `title` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `url` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `datasource` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/chatfilesourcetype.md b/docs/models/chatfilesourcetype.md new file mode 100644 index 00000000..ae86b674 --- /dev/null +++ b/docs/models/chatfilesourcetype.md @@ -0,0 +1,16 @@ +# ChatFileSourceType + +## Example Usage + +```python +from glean.api_client.models import ChatFileSourceType + +value = ChatFileSourceType.FILE +``` + + +## Values + +| Name | Value | +| ------ | ------ | +| `FILE` | FILE | \ No newline at end of file diff --git a/docs/models/chatpersonsource.md b/docs/models/chatpersonsource.md new file mode 100644 index 00000000..c68d293f --- /dev/null +++ b/docs/models/chatpersonsource.md @@ -0,0 +1,11 @@ +# ChatPersonSource + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `type` | [models.ChatPersonSourceType](../models/chatpersonsourcetype.md) | :heavy_check_mark: | N/A | +| `person_id` | *str* | :heavy_check_mark: | N/A | +| `name` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `url` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/chatpersonsourcetype.md b/docs/models/chatpersonsourcetype.md new file mode 100644 index 00000000..21df1857 --- /dev/null +++ b/docs/models/chatpersonsourcetype.md @@ -0,0 +1,16 @@ +# ChatPersonSourceType + +## Example Usage + +```python +from glean.api_client.models import ChatPersonSourceType + +value = ChatPersonSourceType.PERSON +``` + + +## Values + +| Name | Value | +| -------- | -------- | +| `PERSON` | PERSON | \ No newline at end of file diff --git a/docs/models/feedrequestcategory.md b/docs/models/feedrequestcategory.md index 14862711..65906709 100644 --- a/docs/models/feedrequestcategory.md +++ b/docs/models/feedrequestcategory.md @@ -62,4 +62,6 @@ value = FeedRequestCategory.DOCUMENT_SUGGESTION | `ADMIN_HEALTH_CENTER` | ADMIN_HEALTH_CENTER | | `KNOWLEDGE_GAP` | KNOWLEDGE_GAP | | `ARTIFACT_CREATION` | ARTIFACT_CREATION | -| `EDIT_DOC` | EDIT_DOC | \ No newline at end of file +| `EDIT_DOC` | EDIT_DOC | +| `CHAT_TO_ARTIFACT` | CHAT_TO_ARTIFACT | +| `SHARE_ARTIFACT` | SHARE_ARTIFACT | \ No newline at end of file diff --git a/docs/models/feedresultcategory.md b/docs/models/feedresultcategory.md index 1394fb32..86b5a71f 100644 --- a/docs/models/feedresultcategory.md +++ b/docs/models/feedresultcategory.md @@ -66,4 +66,6 @@ value = FeedResultCategory.DOCUMENT_SUGGESTION | `ADMIN_HEALTH_CENTER` | ADMIN_HEALTH_CENTER | | `KNOWLEDGE_GAP` | KNOWLEDGE_GAP | | `ARTIFACT_CREATION` | ARTIFACT_CREATION | -| `EDIT_DOC` | EDIT_DOC | \ No newline at end of file +| `EDIT_DOC` | EDIT_DOC | +| `CHAT_TO_ARTIFACT` | CHAT_TO_ARTIFACT | +| `SHARE_ARTIFACT` | SHARE_ARTIFACT | \ No newline at end of file diff --git a/docs/models/importagentrequest.md b/docs/models/importagentrequest.md index e45868df..046afb2b 100644 --- a/docs/models/importagentrequest.md +++ b/docs/models/importagentrequest.md @@ -3,11 +3,13 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `bundle` | [models.Bundle](../models/bundle.md) | :heavy_check_mark: | Zip of the agent folder (spec.yaml, instructions.md, skills/, subagents/) with symlinks dereferenced.
| -| `git_commit_sha` | *Optional[str]* | :heavy_minus_sign: | Optional Git commit SHA to associate with this import. | -| `git_author_id` | *Optional[str]* | :heavy_minus_sign: | Optional VCS commit author ID to associate with this import. | -| `commit_message` | *Optional[str]* | :heavy_minus_sign: | Optional commit message for the imported version. | -| `sync_mode` | [Optional[models.ImportAgentSyncMode]](../models/importagentsyncmode.md) | :heavy_minus_sign: | Whether the imported version is staged (saved without updating the live version) or published directly to the live version.
| -| `is_draft` | *Optional[bool]* | :heavy_minus_sign: | Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead.
| \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `bundle` | [models.Bundle](../models/bundle.md) | :heavy_check_mark: | Zip of the agent folder (spec.yaml, instructions.md, skills/, subagents/) with symlinks dereferenced.
| +| `git_commit_sha` | *Optional[str]* | :heavy_minus_sign: | Optional Git commit SHA to associate with this import. | +| `git_author_id` | *Optional[str]* | :heavy_minus_sign: | Optional VCS commit author ID to associate with this import. | +| `commit_message` | *Optional[str]* | :heavy_minus_sign: | Optional commit message for the imported version. | +| `sync_mode` | [Optional[models.ImportAgentSyncMode]](../models/importagentsyncmode.md) | :heavy_minus_sign: | Whether the imported version is staged (saved without updating the live version) or published directly to the live version.
| +| `version_source` | [Optional[models.VersionSource]](../models/versionsource.md) | :heavy_minus_sign: | Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports.
| +| `published_baseline_hash` | *Optional[str]* | :heavy_minus_sign: | Optional baseline hash of the currently published agent definition. When publish hash validation is enabled, an import updating an existing agent with syncMode PUBLISHED is rejected with HTTP 409 if the current published definition hash is nonempty and does not match this baseline. Leading and trailing whitespace is trimmed; omitted or blank values skip validation. Ignored for STAGED imports, new agents, and transient previews.
| +| `is_draft` | *Optional[bool]* | :heavy_minus_sign: | Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead.
| \ No newline at end of file diff --git a/docs/models/justificationtype.md b/docs/models/justificationtype.md index 8229b188..71c24af0 100644 --- a/docs/models/justificationtype.md +++ b/docs/models/justificationtype.md @@ -80,4 +80,6 @@ value = JustificationType.FREQUENTLY_ACCESSED | `ADMIN_HEALTH_CENTER` | ADMIN_HEALTH_CENTER | | `KNOWLEDGE_GAP` | KNOWLEDGE_GAP | | `ARTIFACT_CREATION` | ARTIFACT_CREATION | -| `EDIT_DOC` | EDIT_DOC | \ No newline at end of file +| `EDIT_DOC` | EDIT_DOC | +| `CHAT_TO_ARTIFACT` | CHAT_TO_ARTIFACT | +| `SHARE_ARTIFACT` | SHARE_ARTIFACT | \ No newline at end of file diff --git a/docs/models/messageinput.md b/docs/models/messageinput.md new file mode 100644 index 00000000..887fd925 --- /dev/null +++ b/docs/models/messageinput.md @@ -0,0 +1,9 @@ +# MessageInput + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `role` | *Optional[str]* | :heavy_minus_sign: | The role of the message. | USER | +| `content` | List[[models.MessageTextBlockInput](../models/messagetextblockinput.md)] | :heavy_minus_sign: | The content of the message. | | \ No newline at end of file diff --git a/docs/models/messagetextblock.md b/docs/models/messagetextblock.md index 9d44b3e3..578f1121 100644 --- a/docs/models/messagetextblock.md +++ b/docs/models/messagetextblock.md @@ -3,7 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | -| `text` | *str* | :heavy_check_mark: | N/A | -| `type` | [models.ContentType](../models/contenttype.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `text` | *str* | :heavy_check_mark: | N/A | +| `type` | [models.ContentType](../models/contenttype.md) | :heavy_check_mark: | N/A | +| `annotations` | List[[models.ChatCitationAnnotation](../models/chatcitationannotation.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/messagetextblockinput.md b/docs/models/messagetextblockinput.md new file mode 100644 index 00000000..ec369cde --- /dev/null +++ b/docs/models/messagetextblockinput.md @@ -0,0 +1,9 @@ +# MessageTextBlockInput + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | +| `text` | *str* | :heavy_check_mark: | N/A | +| `type` | [models.ContentType](../models/contenttype.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/platformagentruncreaterequest.md b/docs/models/platformagentruncreaterequest.md index 072a5ce9..8fff9f30 100644 --- a/docs/models/platformagentruncreaterequest.md +++ b/docs/models/platformagentruncreaterequest.md @@ -9,6 +9,6 @@ Request to run an agent. A request MUST supply either `messages` (a non-empty co | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `input` | Dict[str, *Any*] | :heavy_minus_sign: | Input fields for an input-form triggered agent. | -| `messages` | List[[models.PlatformMessage](../models/platformmessage.md)] | :heavy_minus_sign: | Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`.
| +| `messages` | List[[models.PlatformMessageInput](../models/platformmessageinput.md)] | :heavy_minus_sign: | Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`.
| | `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | Metadata to pass to the agent. | | `stream` | *Optional[bool]* | :heavy_minus_sign: | Whether to stream the run response as server-sent events. | \ No newline at end of file diff --git a/docs/models/platformchatdocumentsourcedocument1.md b/docs/models/platformchatdocumentsourcedocument1.md index 2b388ba9..6ec8d8c0 100644 --- a/docs/models/platformchatdocumentsourcedocument1.md +++ b/docs/models/platformchatdocumentsourcedocument1.md @@ -5,8 +5,8 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `type` | [models.PlatformChatDocumentSourceType1](../models/platformchatdocumentsourcetype1.md) | :heavy_check_mark: | N/A | | `document_id` | *str* | :heavy_check_mark: | N/A | +| `type` | [models.PlatformChatDocumentSourceType1](../models/platformchatdocumentsourcetype1.md) | :heavy_check_mark: | N/A | | `url` | *Optional[str]* | :heavy_minus_sign: | N/A | | `title` | *Optional[str]* | :heavy_minus_sign: | N/A | | `datasource` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/platformchatdocumentsourcedocument2.md b/docs/models/platformchatdocumentsourcedocument2.md index 1b8f64e4..e2daa3ed 100644 --- a/docs/models/platformchatdocumentsourcedocument2.md +++ b/docs/models/platformchatdocumentsourcedocument2.md @@ -5,8 +5,8 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `url` | *str* | :heavy_check_mark: | N/A | | `type` | [models.PlatformChatDocumentSourceType2](../models/platformchatdocumentsourcetype2.md) | :heavy_check_mark: | N/A | | `document_id` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `url` | *str* | :heavy_check_mark: | N/A | | `title` | *Optional[str]* | :heavy_minus_sign: | N/A | | `datasource` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/platformmessageinput.md b/docs/models/platformmessageinput.md new file mode 100644 index 00000000..9ee32813 --- /dev/null +++ b/docs/models/platformmessageinput.md @@ -0,0 +1,9 @@ +# PlatformMessageInput + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `role` | [models.PlatformMessageRole](../models/platformmessagerole.md) | :heavy_check_mark: | Role of the message author. | USER | +| `content` | List[[models.PlatformMessageTextBlockInput](../models/platformmessagetextblockinput.md)] | :heavy_check_mark: | Content blocks in the message. | | \ No newline at end of file diff --git a/docs/models/platformmessagetextblock.md b/docs/models/platformmessagetextblock.md index 68ac4250..beeec860 100644 --- a/docs/models/platformmessagetextblock.md +++ b/docs/models/platformmessagetextblock.md @@ -3,7 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `text` | *str* | :heavy_check_mark: | Text content. | -| `type` | [models.PlatformContentType](../models/platformcontenttype.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `text` | *str* | :heavy_check_mark: | Text content. | +| `type` | [models.PlatformContentType](../models/platformcontenttype.md) | :heavy_check_mark: | N/A | +| `annotations` | List[[models.PlatformChatCitationAnnotation](../models/platformchatcitationannotation.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/platformmessagetextblockinput.md b/docs/models/platformmessagetextblockinput.md new file mode 100644 index 00000000..6e369448 --- /dev/null +++ b/docs/models/platformmessagetextblockinput.md @@ -0,0 +1,9 @@ +# PlatformMessageTextBlockInput + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `text` | *str* | :heavy_check_mark: | Text content. | +| `type` | [models.PlatformContentType](../models/platformcontenttype.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/versionsource.md b/docs/models/versionsource.md new file mode 100644 index 00000000..f1affcb8 --- /dev/null +++ b/docs/models/versionsource.md @@ -0,0 +1,20 @@ +# VersionSource + +Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports. + + +## Example Usage + +```python +from glean.api_client.models import VersionSource + +value = VersionSource.GIT +``` + + +## Values + +| Name | Value | +| ------ | ------ | +| `GIT` | GIT | +| `USER` | USER | \ No newline at end of file diff --git a/docs/sdks/agents/README.md b/docs/sdks/agents/README.md index 08a9bf17..f05a4d59 100644 --- a/docs/sdks/agents/README.md +++ b/docs/sdks/agents/README.md @@ -179,7 +179,7 @@ with Glean( | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `agent_id` | *str* | :heavy_check_mark: | ID of the agent to run. | {agent_id} | | `input` | Dict[str, *Any*] | :heavy_minus_sign: | Input fields for an input-form triggered agent. | | -| `messages` | List[[models.PlatformMessage](../../models/platformmessage.md)] | :heavy_minus_sign: | Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`.
| | +| `messages` | List[[models.PlatformMessageInput](../../models/platformmessageinput.md)] | :heavy_minus_sign: | Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`.
| | | `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | Metadata to pass to the agent. | | | `stream` | *Optional[bool]* | :heavy_minus_sign: | Whether to stream the run response as server-sent events. | | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | diff --git a/docs/sdks/clientagents/README.md b/docs/sdks/clientagents/README.md index c2cb28ee..4df20f8a 100644 --- a/docs/sdks/clientagents/README.md +++ b/docs/sdks/clientagents/README.md @@ -195,7 +195,7 @@ Imports an [agent](https://developers.glean.com/agents/agents-api) from its on-d ```python -from glean.api_client import Glean +from glean.api_client import Glean, models import os @@ -206,7 +206,7 @@ with Glean( res = glean.client.agents.import_(agent_id="", bundle={ "file_name": "example.file", "content": open("example.file", "rb"), - }) + }, version_source=models.VersionSource.USER) # Handle response print(res) @@ -215,18 +215,20 @@ with Glean( ### Parameters -| Parameter | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `agent_id` | *str* | :heavy_check_mark: | The ID of the agent to create or update. | -| `bundle` | [models.Bundle](../../models/bundle.md) | :heavy_check_mark: | Zip of the agent folder (spec.yaml, instructions.md, skills/, subagents/) with symlinks dereferenced.
| -| `locale` | *Optional[str]* | :heavy_minus_sign: | The client's preferred locale in rfc5646 format (e.g. `en`, `ja`, `pt-BR`). If omitted, the `Accept-Language` will be used. If not present or not supported, defaults to the closest match or `en`. | -| `timezone_offset` | *Optional[int]* | :heavy_minus_sign: | The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. | -| `git_commit_sha` | *Optional[str]* | :heavy_minus_sign: | Optional Git commit SHA to associate with this import. | -| `git_author_id` | *Optional[str]* | :heavy_minus_sign: | Optional VCS commit author ID to associate with this import. | -| `commit_message` | *Optional[str]* | :heavy_minus_sign: | Optional commit message for the imported version. | -| `sync_mode` | [Optional[models.ImportAgentSyncMode]](../../models/importagentsyncmode.md) | :heavy_minus_sign: | Whether the imported version is staged (saved without updating the live version) or published directly to the live version.
| -| `is_draft` | *Optional[bool]* | :heavy_minus_sign: | Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead.
| -| `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 | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `agent_id` | *str* | :heavy_check_mark: | The ID of the agent to create or update. | +| `bundle` | [models.Bundle](../../models/bundle.md) | :heavy_check_mark: | Zip of the agent folder (spec.yaml, instructions.md, skills/, subagents/) with symlinks dereferenced.
| +| `locale` | *Optional[str]* | :heavy_minus_sign: | The client's preferred locale in rfc5646 format (e.g. `en`, `ja`, `pt-BR`). If omitted, the `Accept-Language` will be used. If not present or not supported, defaults to the closest match or `en`. | +| `timezone_offset` | *Optional[int]* | :heavy_minus_sign: | The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. | +| `git_commit_sha` | *Optional[str]* | :heavy_minus_sign: | Optional Git commit SHA to associate with this import. | +| `git_author_id` | *Optional[str]* | :heavy_minus_sign: | Optional VCS commit author ID to associate with this import. | +| `commit_message` | *Optional[str]* | :heavy_minus_sign: | Optional commit message for the imported version. | +| `sync_mode` | [Optional[models.ImportAgentSyncMode]](../../models/importagentsyncmode.md) | :heavy_minus_sign: | Whether the imported version is staged (saved without updating the live version) or published directly to the live version.
| +| `version_source` | [Optional[models.VersionSource]](../../models/versionsource.md) | :heavy_minus_sign: | Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports.
| +| `published_baseline_hash` | *Optional[str]* | :heavy_minus_sign: | Optional baseline hash of the currently published agent definition. When publish hash validation is enabled, an import updating an existing agent with syncMode PUBLISHED is rejected with HTTP 409 if the current published definition hash is nonempty and does not match this baseline. Leading and trailing whitespace is trimmed; omitted or blank values skip validation. Ignored for STAGED imports, new agents, and transient previews.
| +| `is_draft` | *Optional[bool]* | :heavy_minus_sign: | Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead.
| +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -317,7 +319,7 @@ with Glean( | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | `agent_id` | *str* | :heavy_check_mark: | The ID of the agent to run. | | `input` | Dict[str, *Any*] | :heavy_minus_sign: | The input to the agent. Required when the agent uses an input form trigger. | -| `messages` | List[[models.Message](../../models/message.md)] | :heavy_minus_sign: | The messages to pass an input to the agent. | +| `messages` | List[[models.MessageInput](../../models/messageinput.md)] | :heavy_minus_sign: | The messages to pass an input to the agent. | | `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | The metadata to pass to the agent. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | @@ -368,7 +370,7 @@ with Glean( | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | `agent_id` | *str* | :heavy_check_mark: | The ID of the agent to run. | | `input` | Dict[str, *Any*] | :heavy_minus_sign: | The input to the agent. Required when the agent uses an input form trigger. | -| `messages` | List[[models.Message](../../models/message.md)] | :heavy_minus_sign: | The messages to pass an input to the agent. | +| `messages` | List[[models.MessageInput](../../models/messageinput.md)] | :heavy_minus_sign: | The messages to pass an input to the agent. | | `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | The metadata to pass to the agent. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | diff --git a/docs/sdks/clientsearch/README.md b/docs/sdks/clientsearch/README.md index 20293342..2ca2ff68 100644 --- a/docs/sdks/clientsearch/README.md +++ b/docs/sdks/clientsearch/README.md @@ -212,7 +212,7 @@ with Glean( | `datasources_filter` | List[*str*] | :heavy_minus_sign: | Filter results to only those relevant to one or more datasources (e.g. jira, gdrive). Results are unfiltered if missing. | | | `datasource` | *Optional[str]* | :heavy_minus_sign: | Filter to only return results relevant to the given datasource. | | | `result_types` | List[[models.AutocompleteRequestResultType](../../models/autocompleterequestresulttype.md)] | :heavy_minus_sign: | Filter to only return results of the given type(s). All types may be returned if omitted. | | -| `result_size` | *Optional[int]* | :heavy_minus_sign: | Maximum number of results to be returned. If no value is provided, the backend will cap at 200.
| 10 | +| `result_size` | *Optional[int]* | :heavy_minus_sign: | Maximum number of results to be returned. If no value is provided, the backend will cap at 200. | 10 | | `auth_tokens` | List[[models.AuthToken](../../models/authtoken.md)] | :heavy_minus_sign: | Auth tokens which may be used for federated results. | | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | diff --git a/pyproject.toml b/pyproject.toml index 3d7a9d9c..47df73c3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "glean-api-client" -version = "0.17.13" +version = "0.17.14" 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 74957f86..baf219c0 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.17.13" +__version__: str = "0.17.14" __openapi_doc_version__: str = "0.9.0" -__gen_version__: str = "2.935.1" -__user_agent__: str = "speakeasy-sdk/python 0.17.13 2.935.1 0.9.0 glean-api-client" +__gen_version__: str = "2.937.18" +__user_agent__: str = "speakeasy-sdk/python 0.17.14 2.937.18 0.9.0 glean-api-client" try: if __package__ is not None: diff --git a/src/glean/api_client/agents.py b/src/glean/api_client/agents.py index 2b4bb4f6..68817cd0 100644 --- a/src/glean/api_client/agents.py +++ b/src/glean/api_client/agents.py @@ -661,8 +661,8 @@ def create_run( input: Optional[Mapping[str, Any]] = None, messages: Optional[ Union[ - Iterable[models.PlatformMessage], - Iterable[models.PlatformMessageTypedDict], + Iterable[models.PlatformMessageInput], + Iterable[models.PlatformMessageInputTypedDict], ] ] = None, metadata: Optional[Mapping[str, Any]] = None, @@ -705,7 +705,7 @@ def create_run( platform_agent_run_create_request=models.PlatformAgentRunCreateRequest( input=utils.unmarshal(input, Optional[Dict[str, Any]]), messages=utils.get_pydantic_model( - messages, Optional[List[models.PlatformMessage]] + messages, Optional[List[models.PlatformMessageInput]] ), metadata=utils.unmarshal(metadata, Optional[Dict[str, Any]]), stream=stream, @@ -810,8 +810,8 @@ async def create_run_async( input: Optional[Mapping[str, Any]] = None, messages: Optional[ Union[ - Iterable[models.PlatformMessage], - Iterable[models.PlatformMessageTypedDict], + Iterable[models.PlatformMessageInput], + Iterable[models.PlatformMessageInputTypedDict], ] ] = None, metadata: Optional[Mapping[str, Any]] = None, @@ -854,7 +854,7 @@ async def create_run_async( platform_agent_run_create_request=models.PlatformAgentRunCreateRequest( input=utils.unmarshal(input, Optional[Dict[str, Any]]), messages=utils.get_pydantic_model( - messages, Optional[List[models.PlatformMessage]] + messages, Optional[List[models.PlatformMessageInput]] ), metadata=utils.unmarshal(metadata, Optional[Dict[str, Any]]), stream=stream, diff --git a/src/glean/api_client/client_agents.py b/src/glean/api_client/client_agents.py index ff0913b8..fa6802c8 100644 --- a/src/glean/api_client/client_agents.py +++ b/src/glean/api_client/client_agents.py @@ -890,6 +890,8 @@ def import_( git_author_id: Optional[str] = None, commit_message: Optional[str] = None, sync_mode: Optional[models.ImportAgentSyncMode] = None, + version_source: Optional[models.VersionSource] = models.VersionSource.USER, + published_baseline_hash: Optional[str] = None, is_draft: Optional[bool] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -910,6 +912,10 @@ def import_( :param commit_message: Optional commit message for the imported version. :param sync_mode: Whether the imported version is staged (saved without updating the live version) or published directly to the live version. + :param version_source: Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports. + + :param published_baseline_hash: Optional baseline hash of the currently published agent definition. When publish hash validation is enabled, an import updating an existing agent with syncMode PUBLISHED is rejected with HTTP 409 if the current published definition hash is nonempty and does not match this baseline. Leading and trailing whitespace is trimmed; omitted or blank values skip validation. Ignored for STAGED imports, new agents, and transient previews. + :param is_draft: Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. :param retries: Override the default retry configuration for this method @@ -937,6 +943,8 @@ def import_( git_author_id=git_author_id, commit_message=commit_message, sync_mode=sync_mode, + version_source=version_source, + published_baseline_hash=published_baseline_hash, is_draft=is_draft, ), ) @@ -1016,6 +1024,8 @@ async def import__async( git_author_id: Optional[str] = None, commit_message: Optional[str] = None, sync_mode: Optional[models.ImportAgentSyncMode] = None, + version_source: Optional[models.VersionSource] = models.VersionSource.USER, + published_baseline_hash: Optional[str] = None, is_draft: Optional[bool] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -1036,6 +1046,10 @@ async def import__async( :param commit_message: Optional commit message for the imported version. :param sync_mode: Whether the imported version is staged (saved without updating the live version) or published directly to the live version. + :param version_source: Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports. + + :param published_baseline_hash: Optional baseline hash of the currently published agent definition. When publish hash validation is enabled, an import updating an existing agent with syncMode PUBLISHED is rejected with HTTP 409 if the current published definition hash is nonempty and does not match this baseline. Leading and trailing whitespace is trimmed; omitted or blank values skip validation. Ignored for STAGED imports, new agents, and transient previews. + :param is_draft: Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. :param retries: Override the default retry configuration for this method @@ -1063,6 +1077,8 @@ async def import__async( git_author_id=git_author_id, commit_message=commit_message, sync_mode=sync_mode, + version_source=version_source, + published_baseline_hash=published_baseline_hash, is_draft=is_draft, ), ) @@ -1350,7 +1366,7 @@ def run_stream( agent_id: str, input: Optional[Mapping[str, Any]] = None, messages: Optional[ - Union[Iterable[models.Message], Iterable[models.MessageTypedDict]] + Union[Iterable[models.MessageInput], Iterable[models.MessageInputTypedDict]] ] = None, metadata: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -1384,7 +1400,9 @@ def run_stream( request = models.AgentRunCreate( agent_id=agent_id, input=utils.unmarshal(input, Optional[Dict[str, Any]]), - messages=utils.get_pydantic_model(messages, Optional[List[models.Message]]), + messages=utils.get_pydantic_model( + messages, Optional[List[models.MessageInput]] + ), metadata=utils.unmarshal(metadata, Optional[Dict[str, Any]]), ) @@ -1471,7 +1489,7 @@ async def run_stream_async( agent_id: str, input: Optional[Mapping[str, Any]] = None, messages: Optional[ - Union[Iterable[models.Message], Iterable[models.MessageTypedDict]] + Union[Iterable[models.MessageInput], Iterable[models.MessageInputTypedDict]] ] = None, metadata: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -1505,7 +1523,9 @@ async def run_stream_async( request = models.AgentRunCreate( agent_id=agent_id, input=utils.unmarshal(input, Optional[Dict[str, Any]]), - messages=utils.get_pydantic_model(messages, Optional[List[models.Message]]), + messages=utils.get_pydantic_model( + messages, Optional[List[models.MessageInput]] + ), metadata=utils.unmarshal(metadata, Optional[Dict[str, Any]]), ) @@ -1592,7 +1612,7 @@ def run( agent_id: str, input: Optional[Mapping[str, Any]] = None, messages: Optional[ - Union[Iterable[models.Message], Iterable[models.MessageTypedDict]] + Union[Iterable[models.MessageInput], Iterable[models.MessageInputTypedDict]] ] = None, metadata: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -1626,7 +1646,9 @@ def run( request = models.AgentRunCreate( agent_id=agent_id, input=utils.unmarshal(input, Optional[Dict[str, Any]]), - messages=utils.get_pydantic_model(messages, Optional[List[models.Message]]), + messages=utils.get_pydantic_model( + messages, Optional[List[models.MessageInput]] + ), metadata=utils.unmarshal(metadata, Optional[Dict[str, Any]]), ) @@ -1710,7 +1732,7 @@ async def run_async( agent_id: str, input: Optional[Mapping[str, Any]] = None, messages: Optional[ - Union[Iterable[models.Message], Iterable[models.MessageTypedDict]] + Union[Iterable[models.MessageInput], Iterable[models.MessageInputTypedDict]] ] = None, metadata: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -1744,7 +1766,9 @@ async def run_async( request = models.AgentRunCreate( agent_id=agent_id, input=utils.unmarshal(input, Optional[Dict[str, Any]]), - messages=utils.get_pydantic_model(messages, Optional[List[models.Message]]), + messages=utils.get_pydantic_model( + messages, Optional[List[models.MessageInput]] + ), metadata=utils.unmarshal(metadata, Optional[Dict[str, Any]]), ) diff --git a/src/glean/api_client/client_search.py b/src/glean/api_client/client_search.py index 53d4e166..6c95bb5b 100644 --- a/src/glean/api_client/client_search.py +++ b/src/glean/api_client/client_search.py @@ -356,7 +356,6 @@ def autocomplete( :param datasource: Filter to only return results relevant to the given datasource. :param result_types: Filter to only return results of the given type(s). All types may be returned if omitted. :param result_size: Maximum number of results to be returned. If no value is provided, the backend will cap at 200. - :param auth_tokens: Auth tokens which may be used for federated results. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -491,7 +490,6 @@ async def autocomplete_async( :param datasource: Filter to only return results relevant to the given datasource. :param result_types: Filter to only return results of the given type(s). All types may be returned if omitted. :param result_size: Maximum number of results to be returned. If no value is provided, the backend will cap at 200. - :param auth_tokens: Auth tokens which may be used for federated results. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method diff --git a/src/glean/api_client/models/__init__.py b/src/glean/api_client/models/__init__.py index 573adfa6..f428e57a 100644 --- a/src/glean/api_client/models/__init__.py +++ b/src/glean/api_client/models/__init__.py @@ -291,15 +291,47 @@ CanonicalizingRegexTypeTypedDict, ) from .chat import Chat, ChatTypedDict + from .chatcitationannotation import ( + ChatCitationAnnotation, + ChatCitationAnnotationType, + ChatCitationAnnotationTypedDict, + ) + from .chatcitationsnippet import ChatCitationSnippet, ChatCitationSnippetTypedDict + from .chatcitationsource import ChatCitationSource, ChatCitationSourceTypedDict + from .chatcustomentitysource import ( + ChatCustomEntitySource, + ChatCustomEntitySourceType, + ChatCustomEntitySourceTypedDict, + ) + from .chatdocumentsource import ( + ChatDocumentSource, + ChatDocumentSourceDocument1, + ChatDocumentSourceDocument1TypedDict, + ChatDocumentSourceDocument2, + ChatDocumentSourceDocument2TypedDict, + ChatDocumentSourceType1, + ChatDocumentSourceType2, + ChatDocumentSourceTypedDict, + ) from .chatfile import ChatFile, ChatFileTypedDict from .chatfilefailurereason import ChatFileFailureReason from .chatfilemetadata import ChatFileMetadata, ChatFileMetadataTypedDict + from .chatfilesource import ( + ChatFileSource, + ChatFileSourceType, + ChatFileSourceTypedDict, + ) from .chatfilestatus import ChatFileStatus from .chatmessage import Author, ChatMessage, ChatMessageTypedDict, MessageType from .chatmessagecitation import ChatMessageCitation, ChatMessageCitationTypedDict from .chatmessagefragment import ChatMessageFragment, ChatMessageFragmentTypedDict from .chatmetadataresult import ChatMetadataResult, ChatMetadataResultTypedDict from .chatop import ChatRequestRequest, ChatRequestRequestTypedDict + from .chatpersonsource import ( + ChatPersonSource, + ChatPersonSourceType, + ChatPersonSourceTypedDict, + ) from .chatrequest import ChatRequest, ChatRequestTypedDict from .chatresponse import ChatResponse, ChatResponseTypedDict from .chatrestrictionfilters import ( @@ -1031,6 +1063,7 @@ BundleTypedDict, ImportAgentRequest, ImportAgentRequestTypedDict, + VersionSource, ) from .importagentresponse import ImportAgentResponse, ImportAgentResponseTypedDict from .importagentstatus import ImportAgentStatus @@ -1194,6 +1227,12 @@ MessageTextBlockTypedDict, MessageTypedDict, ) + from .message_input import ( + MessageInput, + MessageInputTypedDict, + MessageTextBlockInput, + MessageTextBlockInputTypedDict, + ) from .messagesop import MessagesRequestRequest, MessagesRequestRequestTypedDict from .messagesrequest import ( Datasource, @@ -1547,11 +1586,19 @@ ) from .platformfilteroperator import PlatformFilterOperator from .platformmessage import PlatformMessage, PlatformMessageTypedDict + from .platformmessage_input import ( + PlatformMessageInput, + PlatformMessageInputTypedDict, + ) from .platformmessagerole import PlatformMessageRole from .platformmessagetextblock import ( PlatformMessageTextBlock, PlatformMessageTextBlockTypedDict, ) + from .platformmessagetextblock_input import ( + PlatformMessageTextBlockInput, + PlatformMessageTextBlockInputTypedDict, + ) from .platformpersonreference import ( PlatformPersonReference, PlatformPersonReferenceTypedDict, @@ -2354,10 +2401,31 @@ "ChannelInviteInfo", "ChannelInviteInfoTypedDict", "Chat", + "ChatCitationAnnotation", + "ChatCitationAnnotationType", + "ChatCitationAnnotationTypedDict", + "ChatCitationSnippet", + "ChatCitationSnippetTypedDict", + "ChatCitationSource", + "ChatCitationSourceTypedDict", + "ChatCustomEntitySource", + "ChatCustomEntitySourceType", + "ChatCustomEntitySourceTypedDict", + "ChatDocumentSource", + "ChatDocumentSourceDocument1", + "ChatDocumentSourceDocument1TypedDict", + "ChatDocumentSourceDocument2", + "ChatDocumentSourceDocument2TypedDict", + "ChatDocumentSourceType1", + "ChatDocumentSourceType2", + "ChatDocumentSourceTypedDict", "ChatFile", "ChatFileFailureReason", "ChatFileMetadata", "ChatFileMetadataTypedDict", + "ChatFileSource", + "ChatFileSourceType", + "ChatFileSourceTypedDict", "ChatFileStatus", "ChatFileTypedDict", "ChatMessage", @@ -2370,6 +2438,9 @@ "ChatMetadataResult", "ChatMetadataResultTypedDict", "ChatMetadataTypedDict", + "ChatPersonSource", + "ChatPersonSourceType", + "ChatPersonSourceTypedDict", "ChatRequest", "ChatRequestRequest", "ChatRequestRequestTypedDict", @@ -3068,7 +3139,11 @@ "Meeting", "MeetingTypedDict", "Message", + "MessageInput", + "MessageInputTypedDict", "MessageTextBlock", + "MessageTextBlockInput", + "MessageTextBlockInputTypedDict", "MessageTextBlockTypedDict", "MessageType", "MessageTypedDict", @@ -3263,8 +3338,12 @@ "PlatformFilterOperator", "PlatformFilterTypedDict", "PlatformMessage", + "PlatformMessageInput", + "PlatformMessageInputTypedDict", "PlatformMessageRole", "PlatformMessageTextBlock", + "PlatformMessageTextBlockInput", + "PlatformMessageTextBlockInputTypedDict", "PlatformMessageTextBlockTypedDict", "PlatformMessageTypedDict", "PlatformPersonReference", @@ -3777,6 +3856,7 @@ "VerifyRequestRequest", "VerifyRequestRequestTypedDict", "VerifyRequestTypedDict", + "VersionSource", "ViewerInfo", "ViewerInfoRole", "ViewerInfoTypedDict", @@ -3950,11 +4030,32 @@ "CanonicalizingRegexTypeTypedDict": ".canonicalizingregextype", "Chat": ".chat", "ChatTypedDict": ".chat", + "ChatCitationAnnotation": ".chatcitationannotation", + "ChatCitationAnnotationType": ".chatcitationannotation", + "ChatCitationAnnotationTypedDict": ".chatcitationannotation", + "ChatCitationSnippet": ".chatcitationsnippet", + "ChatCitationSnippetTypedDict": ".chatcitationsnippet", + "ChatCitationSource": ".chatcitationsource", + "ChatCitationSourceTypedDict": ".chatcitationsource", + "ChatCustomEntitySource": ".chatcustomentitysource", + "ChatCustomEntitySourceType": ".chatcustomentitysource", + "ChatCustomEntitySourceTypedDict": ".chatcustomentitysource", + "ChatDocumentSource": ".chatdocumentsource", + "ChatDocumentSourceDocument1": ".chatdocumentsource", + "ChatDocumentSourceDocument1TypedDict": ".chatdocumentsource", + "ChatDocumentSourceDocument2": ".chatdocumentsource", + "ChatDocumentSourceDocument2TypedDict": ".chatdocumentsource", + "ChatDocumentSourceType1": ".chatdocumentsource", + "ChatDocumentSourceType2": ".chatdocumentsource", + "ChatDocumentSourceTypedDict": ".chatdocumentsource", "ChatFile": ".chatfile", "ChatFileTypedDict": ".chatfile", "ChatFileFailureReason": ".chatfilefailurereason", "ChatFileMetadata": ".chatfilemetadata", "ChatFileMetadataTypedDict": ".chatfilemetadata", + "ChatFileSource": ".chatfilesource", + "ChatFileSourceType": ".chatfilesource", + "ChatFileSourceTypedDict": ".chatfilesource", "ChatFileStatus": ".chatfilestatus", "Author": ".chatmessage", "ChatMessage": ".chatmessage", @@ -3968,6 +4069,9 @@ "ChatMetadataResultTypedDict": ".chatmetadataresult", "ChatRequestRequest": ".chatop", "ChatRequestRequestTypedDict": ".chatop", + "ChatPersonSource": ".chatpersonsource", + "ChatPersonSourceType": ".chatpersonsource", + "ChatPersonSourceTypedDict": ".chatpersonsource", "ChatRequest": ".chatrequest", "ChatRequestTypedDict": ".chatrequest", "ChatResponse": ".chatresponse", @@ -4509,6 +4613,7 @@ "BundleTypedDict": ".importagentrequest", "ImportAgentRequest": ".importagentrequest", "ImportAgentRequestTypedDict": ".importagentrequest", + "VersionSource": ".importagentrequest", "ImportAgentResponse": ".importagentresponse", "ImportAgentResponseTypedDict": ".importagentresponse", "ImportAgentStatus": ".importagentstatus", @@ -4634,6 +4739,10 @@ "MessageTextBlock": ".message", "MessageTextBlockTypedDict": ".message", "MessageTypedDict": ".message", + "MessageInput": ".message_input", + "MessageInputTypedDict": ".message_input", + "MessageTextBlockInput": ".message_input", + "MessageTextBlockInputTypedDict": ".message_input", "MessagesRequestRequest": ".messagesop", "MessagesRequestRequestTypedDict": ".messagesop", "Datasource": ".messagesrequest", @@ -4863,9 +4972,13 @@ "PlatformFilterOperator": ".platformfilteroperator", "PlatformMessage": ".platformmessage", "PlatformMessageTypedDict": ".platformmessage", + "PlatformMessageInput": ".platformmessage_input", + "PlatformMessageInputTypedDict": ".platformmessage_input", "PlatformMessageRole": ".platformmessagerole", "PlatformMessageTextBlock": ".platformmessagetextblock", "PlatformMessageTextBlockTypedDict": ".platformmessagetextblock", + "PlatformMessageTextBlockInput": ".platformmessagetextblock_input", + "PlatformMessageTextBlockInputTypedDict": ".platformmessagetextblock_input", "PlatformPersonReference": ".platformpersonreference", "PlatformPersonReferenceTypedDict": ".platformpersonreference", "PlatformProblemDetailCode": ".platformproblemdetailcode", diff --git a/src/glean/api_client/models/agentruncreate.py b/src/glean/api_client/models/agentruncreate.py index 407bbcb8..c85f04f0 100644 --- a/src/glean/api_client/models/agentruncreate.py +++ b/src/glean/api_client/models/agentruncreate.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .message import Message, MessageTypedDict +from .message_input import MessageInput, MessageInputTypedDict from glean.api_client.types import BaseModel, UNSET_SENTINEL from pydantic import model_serializer from typing import Any, Dict, List, Optional @@ -15,7 +15,7 @@ class AgentRunCreateTypedDict(TypedDict): r"""The ID of the agent to run.""" input: NotRequired[Dict[str, Any]] r"""The input to the agent. Required when the agent uses an input form trigger.""" - messages: NotRequired[List[MessageTypedDict]] + messages: NotRequired[List[MessageInputTypedDict]] r"""The messages to pass an input to the agent.""" metadata: NotRequired[Dict[str, Any]] r"""The metadata to pass to the agent.""" @@ -30,7 +30,7 @@ class AgentRunCreate(BaseModel): input: Optional[Dict[str, Any]] = None r"""The input to the agent. Required when the agent uses an input form trigger.""" - messages: Optional[List[Message]] = None + messages: Optional[List[MessageInput]] = None r"""The messages to pass an input to the agent.""" metadata: Optional[Dict[str, Any]] = None diff --git a/src/glean/api_client/models/autocompleterequest.py b/src/glean/api_client/models/autocompleterequest.py index c57ae464..77f48a08 100644 --- a/src/glean/api_client/models/autocompleterequest.py +++ b/src/glean/api_client/models/autocompleterequest.py @@ -40,9 +40,7 @@ class AutocompleteRequestTypedDict(TypedDict): result_types: NotRequired[List[AutocompleteRequestResultType]] r"""Filter to only return results of the given type(s). All types may be returned if omitted.""" result_size: NotRequired[int] - r"""Maximum number of results to be returned. If no value is provided, the backend will cap at 200. - - """ + r"""Maximum number of results to be returned. If no value is provided, the backend will cap at 200.""" auth_tokens: NotRequired[List[AuthTokenTypedDict]] r"""Auth tokens which may be used for federated results.""" @@ -74,9 +72,7 @@ class AutocompleteRequest(BaseModel): r"""Filter to only return results of the given type(s). All types may be returned if omitted.""" result_size: Annotated[Optional[int], pydantic.Field(alias="resultSize")] = None - r"""Maximum number of results to be returned. If no value is provided, the backend will cap at 200. - - """ + r"""Maximum number of results to be returned. If no value is provided, the backend will cap at 200.""" auth_tokens: Annotated[ Optional[List[AuthToken]], pydantic.Field(alias="authTokens") diff --git a/src/glean/api_client/models/chatcitationannotation.py b/src/glean/api_client/models/chatcitationannotation.py new file mode 100644 index 00000000..176c5d75 --- /dev/null +++ b/src/glean/api_client/models/chatcitationannotation.py @@ -0,0 +1,65 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .chatcitationsnippet import ChatCitationSnippet, ChatCitationSnippetTypedDict +from .chatcitationsource import ChatCitationSource, ChatCitationSourceTypedDict +from enum import Enum +from glean.api_client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ChatCitationAnnotationType(str, Enum): + CITATION = "CITATION" + + +class ChatCitationAnnotationTypedDict(TypedDict): + type: ChatCitationAnnotationType + sources: List[ChatCitationSourceTypedDict] + start_index: NotRequired[Nullable[int]] + end_index: NotRequired[Nullable[int]] + snippets: NotRequired[Nullable[List[ChatCitationSnippetTypedDict]]] + + +class ChatCitationAnnotation(BaseModel): + type: ChatCitationAnnotationType + + sources: List[ChatCitationSource] + + start_index: OptionalNullable[int] = UNSET + + end_index: OptionalNullable[int] = UNSET + + snippets: OptionalNullable[List[ChatCitationSnippet]] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["start_index", "end_index", "snippets"]) + nullable_fields = set(["start_index", "end_index", "snippets"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/glean/api_client/models/chatcitationsnippet.py b/src/glean/api_client/models/chatcitationsnippet.py new file mode 100644 index 00000000..16364ab5 --- /dev/null +++ b/src/glean/api_client/models/chatcitationsnippet.py @@ -0,0 +1,48 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from glean.api_client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing_extensions import NotRequired, TypedDict + + +class ChatCitationSnippetTypedDict(TypedDict): + text: str + page_number: NotRequired[Nullable[int]] + + +class ChatCitationSnippet(BaseModel): + text: str + + page_number: OptionalNullable[int] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page_number"]) + nullable_fields = set(["page_number"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/glean/api_client/models/chatcitationsource.py b/src/glean/api_client/models/chatcitationsource.py new file mode 100644 index 00000000..5fbd01ed --- /dev/null +++ b/src/glean/api_client/models/chatcitationsource.py @@ -0,0 +1,38 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .chatcustomentitysource import ( + ChatCustomEntitySource, + ChatCustomEntitySourceTypedDict, +) +from .chatdocumentsource import ChatDocumentSource, ChatDocumentSourceTypedDict +from .chatfilesource import ChatFileSource, ChatFileSourceTypedDict +from .chatpersonsource import ChatPersonSource, ChatPersonSourceTypedDict +from glean.api_client.utils import get_discriminator +from pydantic import Discriminator, Tag +from typing import Union +from typing_extensions import Annotated, TypeAliasType + + +ChatCitationSourceTypedDict = TypeAliasType( + "ChatCitationSourceTypedDict", + Union[ + ChatPersonSourceTypedDict, + ChatFileSourceTypedDict, + ChatCustomEntitySourceTypedDict, + ChatDocumentSourceTypedDict, + ], +) +r"""Four-variant citation source union.""" + + +ChatCitationSource = Annotated[ + Union[ + Annotated[ChatDocumentSource, Tag("DOCUMENT")], + Annotated[ChatPersonSource, Tag("PERSON")], + Annotated[ChatFileSource, Tag("FILE")], + Annotated[ChatCustomEntitySource, Tag("CUSTOM_ENTITY")], + ], + Discriminator(lambda m: get_discriminator(m, "type", "type")), +] +r"""Four-variant citation source union.""" diff --git a/src/glean/api_client/models/chatcustomentitysource.py b/src/glean/api_client/models/chatcustomentitysource.py new file mode 100644 index 00000000..bfb2f915 --- /dev/null +++ b/src/glean/api_client/models/chatcustomentitysource.py @@ -0,0 +1,51 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class ChatCustomEntitySourceType(str, Enum): + CUSTOM_ENTITY = "CUSTOM_ENTITY" + + +class ChatCustomEntitySourceTypedDict(TypedDict): + type: ChatCustomEntitySourceType + entity_id: str + name: NotRequired[str] + title: NotRequired[str] + url: NotRequired[str] + datasource: NotRequired[str] + + +class ChatCustomEntitySource(BaseModel): + type: ChatCustomEntitySourceType + + entity_id: str + + name: Optional[str] = None + + title: Optional[str] = None + + url: Optional[str] = None + + datasource: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["name", "title", "url", "datasource"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/glean/api_client/models/chatdocumentsource.py b/src/glean/api_client/models/chatdocumentsource.py new file mode 100644 index 00000000..513c3ec8 --- /dev/null +++ b/src/glean/api_client/models/chatdocumentsource.py @@ -0,0 +1,100 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict + + +class ChatDocumentSourceType2(str, Enum): + DOCUMENT = "DOCUMENT" + + +class ChatDocumentSourceDocument2TypedDict(TypedDict): + url: str + type: ChatDocumentSourceType2 + document_id: NotRequired[str] + title: NotRequired[str] + datasource: NotRequired[str] + + +class ChatDocumentSourceDocument2(BaseModel): + url: str + + type: ChatDocumentSourceType2 + + document_id: Optional[str] = None + + title: Optional[str] = None + + datasource: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["document_id", "title", "datasource"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +class ChatDocumentSourceType1(str, Enum): + DOCUMENT = "DOCUMENT" + + +class ChatDocumentSourceDocument1TypedDict(TypedDict): + document_id: str + type: ChatDocumentSourceType1 + url: NotRequired[str] + title: NotRequired[str] + datasource: NotRequired[str] + + +class ChatDocumentSourceDocument1(BaseModel): + document_id: str + + type: ChatDocumentSourceType1 + + url: Optional[str] = None + + title: Optional[str] = None + + datasource: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["url", "title", "datasource"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +ChatDocumentSourceTypedDict = TypeAliasType( + "ChatDocumentSourceTypedDict", + Union[ChatDocumentSourceDocument1TypedDict, ChatDocumentSourceDocument2TypedDict], +) + + +ChatDocumentSource = TypeAliasType( + "ChatDocumentSource", + Union[ChatDocumentSourceDocument1, ChatDocumentSourceDocument2], +) diff --git a/src/glean/api_client/models/chatfilesource.py b/src/glean/api_client/models/chatfilesource.py new file mode 100644 index 00000000..7cfc1f8f --- /dev/null +++ b/src/glean/api_client/models/chatfilesource.py @@ -0,0 +1,48 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class ChatFileSourceType(str, Enum): + FILE = "FILE" + + +class ChatFileSourceTypedDict(TypedDict): + type: ChatFileSourceType + file_id: str + title: NotRequired[str] + url: NotRequired[str] + datasource: NotRequired[str] + + +class ChatFileSource(BaseModel): + type: ChatFileSourceType + + file_id: str + + title: Optional[str] = None + + url: Optional[str] = None + + datasource: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["title", "url", "datasource"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/glean/api_client/models/chatpersonsource.py b/src/glean/api_client/models/chatpersonsource.py new file mode 100644 index 00000000..f6f643e8 --- /dev/null +++ b/src/glean/api_client/models/chatpersonsource.py @@ -0,0 +1,45 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class ChatPersonSourceType(str, Enum): + PERSON = "PERSON" + + +class ChatPersonSourceTypedDict(TypedDict): + type: ChatPersonSourceType + person_id: str + name: NotRequired[str] + url: NotRequired[str] + + +class ChatPersonSource(BaseModel): + type: ChatPersonSourceType + + person_id: str + + name: Optional[str] = None + + url: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["name", "url"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/glean/api_client/models/feedentry.py b/src/glean/api_client/models/feedentry.py index 6de44a79..c0d16f3e 100644 --- a/src/glean/api_client/models/feedentry.py +++ b/src/glean/api_client/models/feedentry.py @@ -134,6 +134,8 @@ class JustificationType(str, Enum, metaclass=utils.OpenEnumMeta): KNOWLEDGE_GAP = "KNOWLEDGE_GAP" ARTIFACT_CREATION = "ARTIFACT_CREATION" EDIT_DOC = "EDIT_DOC" + CHAT_TO_ARTIFACT = "CHAT_TO_ARTIFACT" + SHARE_ARTIFACT = "SHARE_ARTIFACT" class FeedEntryTypedDict(TypedDict): diff --git a/src/glean/api_client/models/feedrequest.py b/src/glean/api_client/models/feedrequest.py index 0b473914..363ac76d 100644 --- a/src/glean/api_client/models/feedrequest.py +++ b/src/glean/api_client/models/feedrequest.py @@ -62,6 +62,8 @@ class FeedRequestCategory(str, Enum): KNOWLEDGE_GAP = "KNOWLEDGE_GAP" ARTIFACT_CREATION = "ARTIFACT_CREATION" EDIT_DOC = "EDIT_DOC" + CHAT_TO_ARTIFACT = "CHAT_TO_ARTIFACT" + SHARE_ARTIFACT = "SHARE_ARTIFACT" class FeedRequestTypedDict(TypedDict): diff --git a/src/glean/api_client/models/feedresult.py b/src/glean/api_client/models/feedresult.py index 5dce9c15..a3f149b9 100644 --- a/src/glean/api_client/models/feedresult.py +++ b/src/glean/api_client/models/feedresult.py @@ -64,6 +64,8 @@ class FeedResultCategory(str, Enum, metaclass=utils.OpenEnumMeta): KNOWLEDGE_GAP = "KNOWLEDGE_GAP" ARTIFACT_CREATION = "ARTIFACT_CREATION" EDIT_DOC = "EDIT_DOC" + CHAT_TO_ARTIFACT = "CHAT_TO_ARTIFACT" + SHARE_ARTIFACT = "SHARE_ARTIFACT" class PlacementReason(str, Enum, metaclass=utils.OpenEnumMeta): diff --git a/src/glean/api_client/models/importagentrequest.py b/src/glean/api_client/models/importagentrequest.py index e1471e40..c88111d7 100644 --- a/src/glean/api_client/models/importagentrequest.py +++ b/src/glean/api_client/models/importagentrequest.py @@ -2,6 +2,7 @@ from __future__ import annotations from .importagentsyncmode import ImportAgentSyncMode +from enum import Enum from glean.api_client.types import BaseModel, UNSET_SENTINEL from glean.api_client.utils import FieldMetadata, MultipartFormMetadata import io @@ -51,6 +52,13 @@ def serialize_model(self, handler): return m +class VersionSource(str, Enum): + r"""Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports.""" + + GIT = "GIT" + USER = "USER" + + class ImportAgentRequestTypedDict(TypedDict): bundle: BundleTypedDict r"""Zip of the agent folder (spec.yaml, instructions.md, skills/, subagents/) with symlinks dereferenced. @@ -65,6 +73,14 @@ class ImportAgentRequestTypedDict(TypedDict): sync_mode: NotRequired[ImportAgentSyncMode] r"""Whether the imported version is staged (saved without updating the live version) or published directly to the live version. + """ + version_source: NotRequired[VersionSource] + r"""Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports. + + """ + published_baseline_hash: NotRequired[str] + r"""Optional baseline hash of the currently published agent definition. When publish hash validation is enabled, an import updating an existing agent with syncMode PUBLISHED is rejected with HTTP 409 if the current published definition hash is nonempty and does not match this baseline. Leading and trailing whitespace is trimmed; omitted or blank values skip validation. Ignored for STAGED imports, new agents, and transient previews. + """ is_draft: NotRequired[bool] r"""Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. @@ -108,6 +124,24 @@ class ImportAgentRequest(BaseModel): """ + version_source: Annotated[ + Optional[VersionSource], + pydantic.Field(alias="versionSource"), + FieldMetadata(multipart=True), + ] = VersionSource.USER + r"""Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports. + + """ + + published_baseline_hash: Annotated[ + Optional[str], + pydantic.Field(alias="publishedBaselineHash"), + FieldMetadata(multipart=True), + ] = None + r"""Optional baseline hash of the currently published agent definition. When publish hash validation is enabled, an import updating an existing agent with syncMode PUBLISHED is rejected with HTTP 409 if the current published definition hash is nonempty and does not match this baseline. Leading and trailing whitespace is trimmed; omitted or blank values skip validation. Ignored for STAGED imports, new agents, and transient previews. + + """ + is_draft: Annotated[ Optional[bool], pydantic.Field(alias="isDraft"), FieldMetadata(multipart=True) ] = None @@ -118,7 +152,15 @@ class ImportAgentRequest(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( - ["gitCommitSha", "gitAuthorId", "commitMessage", "syncMode", "isDraft"] + [ + "gitCommitSha", + "gitAuthorId", + "commitMessage", + "syncMode", + "versionSource", + "publishedBaselineHash", + "isDraft", + ] ) serialized = handler(self) m = {} diff --git a/src/glean/api_client/models/message.py b/src/glean/api_client/models/message.py index 9af1fc14..11d42a8f 100644 --- a/src/glean/api_client/models/message.py +++ b/src/glean/api_client/models/message.py @@ -1,6 +1,10 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .chatcitationannotation import ( + ChatCitationAnnotation, + ChatCitationAnnotationTypedDict, +) from .contenttype import ContentType from glean.api_client.types import BaseModel, UNSET_SENTINEL from pydantic import model_serializer @@ -11,6 +15,7 @@ class MessageTextBlockTypedDict(TypedDict): text: str type: ContentType + annotations: NotRequired[List[ChatCitationAnnotationTypedDict]] class MessageTextBlock(BaseModel): @@ -18,6 +23,24 @@ class MessageTextBlock(BaseModel): type: ContentType + annotations: Optional[List[ChatCitationAnnotation]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["annotations"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + class MessageTypedDict(TypedDict): role: NotRequired[str] diff --git a/src/glean/api_client/models/message_input.py b/src/glean/api_client/models/message_input.py new file mode 100644 index 00000000..75d840bf --- /dev/null +++ b/src/glean/api_client/models/message_input.py @@ -0,0 +1,50 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .contenttype import ContentType +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class MessageTextBlockInputTypedDict(TypedDict): + text: str + type: ContentType + + +class MessageTextBlockInput(BaseModel): + text: str + + type: ContentType + + +class MessageInputTypedDict(TypedDict): + role: NotRequired[str] + r"""The role of the message.""" + content: NotRequired[List[MessageTextBlockInputTypedDict]] + r"""The content of the message.""" + + +class MessageInput(BaseModel): + role: Optional[str] = None + r"""The role of the message.""" + + content: Optional[List[MessageTextBlockInput]] = None + r"""The content of the message.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["role", "content"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/glean/api_client/models/platformagentruncreaterequest.py b/src/glean/api_client/models/platformagentruncreaterequest.py index 8d669029..fe723996 100644 --- a/src/glean/api_client/models/platformagentruncreaterequest.py +++ b/src/glean/api_client/models/platformagentruncreaterequest.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .platformmessage import PlatformMessage, PlatformMessageTypedDict +from .platformmessage_input import PlatformMessageInput, PlatformMessageInputTypedDict from glean.api_client.types import BaseModel, UNSET_SENTINEL from pydantic import model_serializer from typing import Any, Dict, List, Optional @@ -13,7 +13,7 @@ class PlatformAgentRunCreateRequestTypedDict(TypedDict): input: NotRequired[Dict[str, Any]] r"""Input fields for an input-form triggered agent.""" - messages: NotRequired[List[PlatformMessageTypedDict]] + messages: NotRequired[List[PlatformMessageInputTypedDict]] r"""Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`. """ @@ -29,7 +29,7 @@ class PlatformAgentRunCreateRequest(BaseModel): input: Optional[Dict[str, Any]] = None r"""Input fields for an input-form triggered agent.""" - messages: Optional[List[PlatformMessage]] = None + messages: Optional[List[PlatformMessageInput]] = None r"""Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`. """ diff --git a/src/glean/api_client/models/platformchatdocumentsource.py b/src/glean/api_client/models/platformchatdocumentsource.py index 73aad8d2..54714c55 100644 --- a/src/glean/api_client/models/platformchatdocumentsource.py +++ b/src/glean/api_client/models/platformchatdocumentsource.py @@ -13,18 +13,18 @@ class PlatformChatDocumentSourceType2(str, Enum): class PlatformChatDocumentSourceDocument2TypedDict(TypedDict): - type: PlatformChatDocumentSourceType2 url: str + type: PlatformChatDocumentSourceType2 document_id: NotRequired[str] title: NotRequired[str] datasource: NotRequired[str] class PlatformChatDocumentSourceDocument2(BaseModel): - type: PlatformChatDocumentSourceType2 - url: str + type: PlatformChatDocumentSourceType2 + document_id: Optional[str] = None title: Optional[str] = None @@ -53,18 +53,18 @@ class PlatformChatDocumentSourceType1(str, Enum): class PlatformChatDocumentSourceDocument1TypedDict(TypedDict): - type: PlatformChatDocumentSourceType1 document_id: str + type: PlatformChatDocumentSourceType1 url: NotRequired[str] title: NotRequired[str] datasource: NotRequired[str] class PlatformChatDocumentSourceDocument1(BaseModel): - type: PlatformChatDocumentSourceType1 - document_id: str + type: PlatformChatDocumentSourceType1 + url: Optional[str] = None title: Optional[str] = None diff --git a/src/glean/api_client/models/platformmessage_input.py b/src/glean/api_client/models/platformmessage_input.py new file mode 100644 index 00000000..c45c1403 --- /dev/null +++ b/src/glean/api_client/models/platformmessage_input.py @@ -0,0 +1,37 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .platformmessagerole import PlatformMessageRole +from .platformmessagetextblock_input import ( + PlatformMessageTextBlockInput, + PlatformMessageTextBlockInputTypedDict, +) +from glean.api_client import models +from glean.api_client.types import BaseModel +from pydantic import field_serializer +from typing import List +from typing_extensions import TypedDict + + +class PlatformMessageInputTypedDict(TypedDict): + role: PlatformMessageRole + r"""Role of the message author.""" + content: List[PlatformMessageTextBlockInputTypedDict] + r"""Content blocks in the message.""" + + +class PlatformMessageInput(BaseModel): + role: PlatformMessageRole + r"""Role of the message author.""" + + content: List[PlatformMessageTextBlockInput] + r"""Content blocks in the message.""" + + @field_serializer("role") + def serialize_role(self, value): + if isinstance(value, str): + try: + return models.PlatformMessageRole(value) + except ValueError: + return value + return value diff --git a/src/glean/api_client/models/platformmessagetextblock.py b/src/glean/api_client/models/platformmessagetextblock.py index 35266bb6..1a7cadf4 100644 --- a/src/glean/api_client/models/platformmessagetextblock.py +++ b/src/glean/api_client/models/platformmessagetextblock.py @@ -1,15 +1,22 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .platformchatcitationannotation import ( + PlatformChatCitationAnnotation, + PlatformChatCitationAnnotationTypedDict, +) from .platformcontenttype import PlatformContentType -from glean.api_client.types import BaseModel -from typing_extensions import TypedDict +from glean.api_client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict class PlatformMessageTextBlockTypedDict(TypedDict): text: str r"""Text content.""" type: PlatformContentType + annotations: NotRequired[List[PlatformChatCitationAnnotationTypedDict]] class PlatformMessageTextBlock(BaseModel): @@ -17,3 +24,21 @@ class PlatformMessageTextBlock(BaseModel): r"""Text content.""" type: PlatformContentType + + annotations: Optional[List[PlatformChatCitationAnnotation]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["annotations"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/glean/api_client/models/platformmessagetextblock_input.py b/src/glean/api_client/models/platformmessagetextblock_input.py new file mode 100644 index 00000000..ddc4a1bb --- /dev/null +++ b/src/glean/api_client/models/platformmessagetextblock_input.py @@ -0,0 +1,19 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .platformcontenttype import PlatformContentType +from glean.api_client.types import BaseModel +from typing_extensions import TypedDict + + +class PlatformMessageTextBlockInputTypedDict(TypedDict): + text: str + r"""Text content.""" + type: PlatformContentType + + +class PlatformMessageTextBlockInput(BaseModel): + text: str + r"""Text content.""" + + type: PlatformContentType diff --git a/src/glean/api_client/utils/__init__.py b/src/glean/api_client/utils/__init__.py index c48a36ca..e115709b 100644 --- a/src/glean/api_client/utils/__init__.py +++ b/src/glean/api_client/utils/__init__.py @@ -35,6 +35,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: from .security import get_security, get_security_from_env from .serializers import ( + ALLOW_UNKNOWN_UNION_VARIANTS, get_pydantic_model, marshal_json, unmarshal, @@ -106,6 +107,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: "stream_to_bytes", "stream_to_bytes_async", "template_url", + "ALLOW_UNKNOWN_UNION_VARIANTS", "unmarshal", "unmarshal_json", "validate_decimal", @@ -128,6 +130,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: "parse_duration": ".datetimes", "get_global_from_env": ".values", "get_headers": ".headers", + "ALLOW_UNKNOWN_UNION_VARIANTS": ".serializers", "get_pydantic_model": ".serializers", "get_query_params": ".queryparams", "get_response_headers": ".headers", diff --git a/src/glean/api_client/utils/serializers.py b/src/glean/api_client/utils/serializers.py index 1031ed93..5e57d36e 100644 --- a/src/glean/api_client/utils/serializers.py +++ b/src/glean/api_client/utils/serializers.py @@ -112,11 +112,26 @@ def validate(c): return validate +ALLOW_UNKNOWN_UNION_VARIANTS = "speakeasy_allow_unknown_union_variants" +"""Validation-context key enabling the Unknown fallback on open discriminated +unions. The SDK sets it when deserializing server responses; validation +without it (e.g. of user-constructed request payloads) stays strict. Pass +``context={ALLOW_UNKNOWN_UNION_VARIANTS: True}`` to ``model_validate`` to +opt in when parsing response payloads manually.""" + + def unmarshal_json(raw, typ: Any) -> Any: - return unmarshal(from_json(raw), typ, coerce_iterables=False) + return unmarshal( + from_json(raw), typ, coerce_iterables=False, allow_unknown_union_variants=True + ) -def unmarshal(val, typ: Any, coerce_iterables: bool = True) -> Any: +def unmarshal( + val, + typ: Any, + coerce_iterables: bool = True, + allow_unknown_union_variants: bool = False, +) -> Any: if coerce_iterables: val = _coerce_iterables_for_type(val, typ) unmarshaller = create_model( @@ -125,7 +140,12 @@ def unmarshal(val, typ: Any, coerce_iterables: bool = True) -> Any: __config__=ConfigDict(populate_by_name=True, arbitrary_types_allowed=True), ) - m = unmarshaller(body=val) + if allow_unknown_union_variants: + m = unmarshaller.model_validate( + {"body": val}, context={ALLOW_UNKNOWN_UNION_VARIANTS: True} + ) + else: + m = unmarshaller(body=val) # pyright: ignore[reportAttributeAccessIssue] return m.body # type: ignore diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go index 87401958..96d4127e 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go @@ -628,8 +628,8 @@ func testGetchatGetchat0(w http.ResponseWriter, req *http.Request) { Roles: []components.UserRoleSpecification{}, SourceDocumentSpec: types.Pointer(components.CreateDocumentSpecUnionDocumentSpec3( components.DocumentSpec3{ - UgcType: components.DocumentSpecUgcType1Shortcuts, - ContentID: 602763, + UgcType: components.DocumentSpecUgcType1Announcements, + ContentID: 848009, }, )), SourceType: components.AnswerSourceTypeAssistant.ToPointer(), diff --git a/tests/mockserver/internal/sdk/models/components/agentruncreate.go b/tests/mockserver/internal/sdk/models/components/agentruncreate.go index e0f2b034..f7cfdd51 100644 --- a/tests/mockserver/internal/sdk/models/components/agentruncreate.go +++ b/tests/mockserver/internal/sdk/models/components/agentruncreate.go @@ -9,7 +9,7 @@ type AgentRunCreate struct { // The input to the agent. Required when the agent uses an input form trigger. Input map[string]any `json:"input,omitempty"` // The messages to pass an input to the agent. - Messages []Message `json:"messages,omitempty"` + Messages []MessageInput `json:"messages,omitempty"` // The metadata to pass to the agent. Metadata map[string]any `json:"metadata,omitempty"` } @@ -28,7 +28,7 @@ func (o *AgentRunCreate) GetInput() map[string]any { return o.Input } -func (o *AgentRunCreate) GetMessages() []Message { +func (o *AgentRunCreate) GetMessages() []MessageInput { if o == nil { return nil } diff --git a/tests/mockserver/internal/sdk/models/components/autocompleterequest.go b/tests/mockserver/internal/sdk/models/components/autocompleterequest.go index dd9b5677..2b02c414 100644 --- a/tests/mockserver/internal/sdk/models/components/autocompleterequest.go +++ b/tests/mockserver/internal/sdk/models/components/autocompleterequest.go @@ -81,7 +81,6 @@ type AutocompleteRequest struct { // Filter to only return results of the given type(s). All types may be returned if omitted. ResultTypes []AutocompleteRequestResultType `json:"resultTypes,omitempty"` // Maximum number of results to be returned. If no value is provided, the backend will cap at 200. - // ResultSize *int64 `json:"resultSize,omitempty"` // Auth tokens which may be used for federated results. AuthTokens []AuthToken `json:"authTokens,omitempty"` diff --git a/tests/mockserver/internal/sdk/models/components/chatcitationannotation.go b/tests/mockserver/internal/sdk/models/components/chatcitationannotation.go new file mode 100644 index 00000000..573b1a18 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/chatcitationannotation.go @@ -0,0 +1,75 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" + "mockserver/internal/sdk/optionalnullable" +) + +type ChatCitationAnnotationType string + +const ( + ChatCitationAnnotationTypeCitation ChatCitationAnnotationType = "CITATION" +) + +func (e ChatCitationAnnotationType) ToPointer() *ChatCitationAnnotationType { + return &e +} +func (e *ChatCitationAnnotationType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "CITATION": + *e = ChatCitationAnnotationType(v) + return nil + default: + return fmt.Errorf("invalid value for ChatCitationAnnotationType: %v", v) + } +} + +type ChatCitationAnnotation struct { + Type ChatCitationAnnotationType `json:"type"` + Sources []ChatCitationSource `json:"sources"` + StartIndex optionalnullable.OptionalNullable[int64] `json:"start_index,omitempty"` + EndIndex optionalnullable.OptionalNullable[int64] `json:"end_index,omitempty"` + Snippets optionalnullable.OptionalNullable[[]ChatCitationSnippet] `json:"snippets,omitempty"` +} + +func (o *ChatCitationAnnotation) GetType() ChatCitationAnnotationType { + if o == nil { + return ChatCitationAnnotationType("") + } + return o.Type +} + +func (o *ChatCitationAnnotation) GetSources() []ChatCitationSource { + if o == nil { + return []ChatCitationSource{} + } + return o.Sources +} + +func (o *ChatCitationAnnotation) GetStartIndex() optionalnullable.OptionalNullable[int64] { + if o == nil { + return nil + } + return o.StartIndex +} + +func (o *ChatCitationAnnotation) GetEndIndex() optionalnullable.OptionalNullable[int64] { + if o == nil { + return nil + } + return o.EndIndex +} + +func (o *ChatCitationAnnotation) GetSnippets() optionalnullable.OptionalNullable[[]ChatCitationSnippet] { + if o == nil { + return nil + } + return o.Snippets +} diff --git a/tests/mockserver/internal/sdk/models/components/chatcitationsnippet.go b/tests/mockserver/internal/sdk/models/components/chatcitationsnippet.go new file mode 100644 index 00000000..bd15f567 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/chatcitationsnippet.go @@ -0,0 +1,26 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "mockserver/internal/sdk/optionalnullable" +) + +type ChatCitationSnippet struct { + Text string `json:"text"` + PageNumber optionalnullable.OptionalNullable[int64] `json:"page_number,omitempty"` +} + +func (o *ChatCitationSnippet) GetText() string { + if o == nil { + return "" + } + return o.Text +} + +func (o *ChatCitationSnippet) GetPageNumber() optionalnullable.OptionalNullable[int64] { + if o == nil { + return nil + } + return o.PageNumber +} diff --git a/tests/mockserver/internal/sdk/models/components/chatcitationsource.go b/tests/mockserver/internal/sdk/models/components/chatcitationsource.go new file mode 100644 index 00000000..cf84a83c --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/chatcitationsource.go @@ -0,0 +1,147 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "errors" + "fmt" + "mockserver/internal/sdk/utils" +) + +type ChatCitationSourceType string + +const ( + ChatCitationSourceTypeDocument ChatCitationSourceType = "DOCUMENT" + ChatCitationSourceTypePerson ChatCitationSourceType = "PERSON" + ChatCitationSourceTypeFile ChatCitationSourceType = "FILE" + ChatCitationSourceTypeCustomEntity ChatCitationSourceType = "CUSTOM_ENTITY" +) + +// ChatCitationSource - Four-variant citation source union. +type ChatCitationSource struct { + ChatDocumentSource *ChatDocumentSource `queryParam:"inline"` + ChatPersonSource *ChatPersonSource `queryParam:"inline"` + ChatFileSource *ChatFileSource `queryParam:"inline"` + ChatCustomEntitySource *ChatCustomEntitySource `queryParam:"inline"` + + Type ChatCitationSourceType +} + +func CreateChatCitationSourceDocument(document ChatDocumentSource) ChatCitationSource { + typ := ChatCitationSourceTypeDocument + + return ChatCitationSource{ + ChatDocumentSource: &document, + Type: typ, + } +} + +func CreateChatCitationSourcePerson(person ChatPersonSource) ChatCitationSource { + typ := ChatCitationSourceTypePerson + + typStr := ChatPersonSourceType(typ) + person.Type = typStr + + return ChatCitationSource{ + ChatPersonSource: &person, + Type: typ, + } +} + +func CreateChatCitationSourceFile(file ChatFileSource) ChatCitationSource { + typ := ChatCitationSourceTypeFile + + typStr := ChatFileSourceType(typ) + file.Type = typStr + + return ChatCitationSource{ + ChatFileSource: &file, + Type: typ, + } +} + +func CreateChatCitationSourceCustomEntity(customEntity ChatCustomEntitySource) ChatCitationSource { + typ := ChatCitationSourceTypeCustomEntity + + typStr := ChatCustomEntitySourceType(typ) + customEntity.Type = typStr + + return ChatCitationSource{ + ChatCustomEntitySource: &customEntity, + Type: typ, + } +} + +func (u *ChatCitationSource) UnmarshalJSON(data []byte) error { + + type discriminator struct { + Type string `json:"type"` + } + + dis := new(discriminator) + if err := json.Unmarshal(data, &dis); err != nil { + return fmt.Errorf("could not unmarshal discriminator: %w", err) + } + + switch dis.Type { + case "DOCUMENT": + chatDocumentSource := new(ChatDocumentSource) + if err := utils.UnmarshalJSON(data, &chatDocumentSource, "", true, nil); err != nil { + return fmt.Errorf("could not unmarshal `%s` into expected (Type == DOCUMENT) type ChatDocumentSource within ChatCitationSource: %w", string(data), err) + } + + u.ChatDocumentSource = chatDocumentSource + u.Type = ChatCitationSourceTypeDocument + return nil + case "PERSON": + chatPersonSource := new(ChatPersonSource) + if err := utils.UnmarshalJSON(data, &chatPersonSource, "", true, nil); err != nil { + return fmt.Errorf("could not unmarshal `%s` into expected (Type == PERSON) type ChatPersonSource within ChatCitationSource: %w", string(data), err) + } + + u.ChatPersonSource = chatPersonSource + u.Type = ChatCitationSourceTypePerson + return nil + case "FILE": + chatFileSource := new(ChatFileSource) + if err := utils.UnmarshalJSON(data, &chatFileSource, "", true, nil); err != nil { + return fmt.Errorf("could not unmarshal `%s` into expected (Type == FILE) type ChatFileSource within ChatCitationSource: %w", string(data), err) + } + + u.ChatFileSource = chatFileSource + u.Type = ChatCitationSourceTypeFile + return nil + case "CUSTOM_ENTITY": + chatCustomEntitySource := new(ChatCustomEntitySource) + if err := utils.UnmarshalJSON(data, &chatCustomEntitySource, "", true, nil); err != nil { + return fmt.Errorf("could not unmarshal `%s` into expected (Type == CUSTOM_ENTITY) type ChatCustomEntitySource within ChatCitationSource: %w", string(data), err) + } + + u.ChatCustomEntitySource = chatCustomEntitySource + u.Type = ChatCitationSourceTypeCustomEntity + return nil + } + + return fmt.Errorf("could not unmarshal `%s` into any supported union types for ChatCitationSource", string(data)) +} + +func (u ChatCitationSource) MarshalJSON() ([]byte, error) { + if u.ChatDocumentSource != nil { + return utils.MarshalJSON(u.ChatDocumentSource, "", true) + } + + if u.ChatPersonSource != nil { + return utils.MarshalJSON(u.ChatPersonSource, "", true) + } + + if u.ChatFileSource != nil { + return utils.MarshalJSON(u.ChatFileSource, "", true) + } + + if u.ChatCustomEntitySource != nil { + return utils.MarshalJSON(u.ChatCustomEntitySource, "", true) + } + + return nil, errors.New("could not marshal union type ChatCitationSource: all fields are null") +} diff --git a/tests/mockserver/internal/sdk/models/components/chatcustomentitysource.go b/tests/mockserver/internal/sdk/models/components/chatcustomentitysource.go new file mode 100644 index 00000000..faaf2644 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/chatcustomentitysource.go @@ -0,0 +1,94 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" + "mockserver/internal/sdk/utils" +) + +type ChatCustomEntitySourceType string + +const ( + ChatCustomEntitySourceTypeCustomEntity ChatCustomEntitySourceType = "CUSTOM_ENTITY" +) + +func (e ChatCustomEntitySourceType) ToPointer() *ChatCustomEntitySourceType { + return &e +} +func (e *ChatCustomEntitySourceType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "CUSTOM_ENTITY": + *e = ChatCustomEntitySourceType(v) + return nil + default: + return fmt.Errorf("invalid value for ChatCustomEntitySourceType: %v", v) + } +} + +type ChatCustomEntitySource struct { + Type ChatCustomEntitySourceType `json:"type"` + EntityID string `json:"entity_id"` + Name *string `json:"name,omitempty"` + Title *string `json:"title,omitempty"` + URL *string `json:"url,omitempty"` + Datasource *string `json:"datasource,omitempty"` +} + +func (c ChatCustomEntitySource) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(c, "", false) +} + +func (c *ChatCustomEntitySource) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &c, "", false, []string{"type", "entity_id"}); err != nil { + return err + } + return nil +} + +func (o *ChatCustomEntitySource) GetType() ChatCustomEntitySourceType { + if o == nil { + return ChatCustomEntitySourceType("") + } + return o.Type +} + +func (o *ChatCustomEntitySource) GetEntityID() string { + if o == nil { + return "" + } + return o.EntityID +} + +func (o *ChatCustomEntitySource) GetName() *string { + if o == nil { + return nil + } + return o.Name +} + +func (o *ChatCustomEntitySource) GetTitle() *string { + if o == nil { + return nil + } + return o.Title +} + +func (o *ChatCustomEntitySource) GetURL() *string { + if o == nil { + return nil + } + return o.URL +} + +func (o *ChatCustomEntitySource) GetDatasource() *string { + if o == nil { + return nil + } + return o.Datasource +} diff --git a/tests/mockserver/internal/sdk/models/components/chatdocumentsource.go b/tests/mockserver/internal/sdk/models/components/chatdocumentsource.go new file mode 100644 index 00000000..e172a5aa --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/chatdocumentsource.go @@ -0,0 +1,227 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "errors" + "fmt" + "mockserver/internal/sdk/utils" +) + +type ChatDocumentSourceType2 string + +const ( + ChatDocumentSourceType2Document ChatDocumentSourceType2 = "DOCUMENT" +) + +func (e ChatDocumentSourceType2) ToPointer() *ChatDocumentSourceType2 { + return &e +} +func (e *ChatDocumentSourceType2) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "DOCUMENT": + *e = ChatDocumentSourceType2(v) + return nil + default: + return fmt.Errorf("invalid value for ChatDocumentSourceType2: %v", v) + } +} + +type ChatDocumentSourceDocument2 struct { + URL string `json:"url"` + Type ChatDocumentSourceType2 `json:"type"` + DocumentID *string `json:"document_id,omitempty"` + Title *string `json:"title,omitempty"` + Datasource *string `json:"datasource,omitempty"` +} + +func (c ChatDocumentSourceDocument2) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(c, "", false) +} + +func (c *ChatDocumentSourceDocument2) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &c, "", false, []string{"url", "type"}); err != nil { + return err + } + return nil +} + +func (o *ChatDocumentSourceDocument2) GetURL() string { + if o == nil { + return "" + } + return o.URL +} + +func (o *ChatDocumentSourceDocument2) GetType() ChatDocumentSourceType2 { + if o == nil { + return ChatDocumentSourceType2("") + } + return o.Type +} + +func (o *ChatDocumentSourceDocument2) GetDocumentID() *string { + if o == nil { + return nil + } + return o.DocumentID +} + +func (o *ChatDocumentSourceDocument2) GetTitle() *string { + if o == nil { + return nil + } + return o.Title +} + +func (o *ChatDocumentSourceDocument2) GetDatasource() *string { + if o == nil { + return nil + } + return o.Datasource +} + +type ChatDocumentSourceType1 string + +const ( + ChatDocumentSourceType1Document ChatDocumentSourceType1 = "DOCUMENT" +) + +func (e ChatDocumentSourceType1) ToPointer() *ChatDocumentSourceType1 { + return &e +} +func (e *ChatDocumentSourceType1) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "DOCUMENT": + *e = ChatDocumentSourceType1(v) + return nil + default: + return fmt.Errorf("invalid value for ChatDocumentSourceType1: %v", v) + } +} + +type ChatDocumentSourceDocument1 struct { + DocumentID string `json:"document_id"` + Type ChatDocumentSourceType1 `json:"type"` + URL *string `json:"url,omitempty"` + Title *string `json:"title,omitempty"` + Datasource *string `json:"datasource,omitempty"` +} + +func (c ChatDocumentSourceDocument1) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(c, "", false) +} + +func (c *ChatDocumentSourceDocument1) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &c, "", false, []string{"document_id", "type"}); err != nil { + return err + } + return nil +} + +func (o *ChatDocumentSourceDocument1) GetDocumentID() string { + if o == nil { + return "" + } + return o.DocumentID +} + +func (o *ChatDocumentSourceDocument1) GetType() ChatDocumentSourceType1 { + if o == nil { + return ChatDocumentSourceType1("") + } + return o.Type +} + +func (o *ChatDocumentSourceDocument1) GetURL() *string { + if o == nil { + return nil + } + return o.URL +} + +func (o *ChatDocumentSourceDocument1) GetTitle() *string { + if o == nil { + return nil + } + return o.Title +} + +func (o *ChatDocumentSourceDocument1) GetDatasource() *string { + if o == nil { + return nil + } + return o.Datasource +} + +type ChatDocumentSourceType string + +const ( + ChatDocumentSourceTypeChatDocumentSourceDocument1 ChatDocumentSourceType = "ChatDocumentSource_Document_1" + ChatDocumentSourceTypeChatDocumentSourceDocument2 ChatDocumentSourceType = "ChatDocumentSource_Document_2" +) + +type ChatDocumentSource struct { + ChatDocumentSourceDocument1 *ChatDocumentSourceDocument1 `queryParam:"inline"` + ChatDocumentSourceDocument2 *ChatDocumentSourceDocument2 `queryParam:"inline"` + + Type ChatDocumentSourceType +} + +func CreateChatDocumentSourceChatDocumentSourceDocument1(chatDocumentSourceDocument1 ChatDocumentSourceDocument1) ChatDocumentSource { + typ := ChatDocumentSourceTypeChatDocumentSourceDocument1 + + return ChatDocumentSource{ + ChatDocumentSourceDocument1: &chatDocumentSourceDocument1, + Type: typ, + } +} + +func CreateChatDocumentSourceChatDocumentSourceDocument2(chatDocumentSourceDocument2 ChatDocumentSourceDocument2) ChatDocumentSource { + typ := ChatDocumentSourceTypeChatDocumentSourceDocument2 + + return ChatDocumentSource{ + ChatDocumentSourceDocument2: &chatDocumentSourceDocument2, + Type: typ, + } +} + +func (u *ChatDocumentSource) UnmarshalJSON(data []byte) error { + + var chatDocumentSourceDocument1 ChatDocumentSourceDocument1 = ChatDocumentSourceDocument1{} + if err := utils.UnmarshalJSON(data, &chatDocumentSourceDocument1, "", true, nil); err == nil { + u.ChatDocumentSourceDocument1 = &chatDocumentSourceDocument1 + u.Type = ChatDocumentSourceTypeChatDocumentSourceDocument1 + return nil + } + + var chatDocumentSourceDocument2 ChatDocumentSourceDocument2 = ChatDocumentSourceDocument2{} + if err := utils.UnmarshalJSON(data, &chatDocumentSourceDocument2, "", true, nil); err == nil { + u.ChatDocumentSourceDocument2 = &chatDocumentSourceDocument2 + u.Type = ChatDocumentSourceTypeChatDocumentSourceDocument2 + return nil + } + + return fmt.Errorf("could not unmarshal `%s` into any supported union types for ChatDocumentSource", string(data)) +} + +func (u ChatDocumentSource) MarshalJSON() ([]byte, error) { + if u.ChatDocumentSourceDocument1 != nil { + return utils.MarshalJSON(u.ChatDocumentSourceDocument1, "", true) + } + + if u.ChatDocumentSourceDocument2 != nil { + return utils.MarshalJSON(u.ChatDocumentSourceDocument2, "", true) + } + + return nil, errors.New("could not marshal union type ChatDocumentSource: all fields are null") +} diff --git a/tests/mockserver/internal/sdk/models/components/chatfilesource.go b/tests/mockserver/internal/sdk/models/components/chatfilesource.go new file mode 100644 index 00000000..80670093 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/chatfilesource.go @@ -0,0 +1,86 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" + "mockserver/internal/sdk/utils" +) + +type ChatFileSourceType string + +const ( + ChatFileSourceTypeFile ChatFileSourceType = "FILE" +) + +func (e ChatFileSourceType) ToPointer() *ChatFileSourceType { + return &e +} +func (e *ChatFileSourceType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "FILE": + *e = ChatFileSourceType(v) + return nil + default: + return fmt.Errorf("invalid value for ChatFileSourceType: %v", v) + } +} + +type ChatFileSource struct { + Type ChatFileSourceType `json:"type"` + FileID string `json:"file_id"` + Title *string `json:"title,omitempty"` + URL *string `json:"url,omitempty"` + Datasource *string `json:"datasource,omitempty"` +} + +func (c ChatFileSource) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(c, "", false) +} + +func (c *ChatFileSource) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &c, "", false, []string{"type", "file_id"}); err != nil { + return err + } + return nil +} + +func (o *ChatFileSource) GetType() ChatFileSourceType { + if o == nil { + return ChatFileSourceType("") + } + return o.Type +} + +func (o *ChatFileSource) GetFileID() string { + if o == nil { + return "" + } + return o.FileID +} + +func (o *ChatFileSource) GetTitle() *string { + if o == nil { + return nil + } + return o.Title +} + +func (o *ChatFileSource) GetURL() *string { + if o == nil { + return nil + } + return o.URL +} + +func (o *ChatFileSource) GetDatasource() *string { + if o == nil { + return nil + } + return o.Datasource +} diff --git a/tests/mockserver/internal/sdk/models/components/chatpersonsource.go b/tests/mockserver/internal/sdk/models/components/chatpersonsource.go new file mode 100644 index 00000000..4623c837 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/chatpersonsource.go @@ -0,0 +1,78 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" + "mockserver/internal/sdk/utils" +) + +type ChatPersonSourceType string + +const ( + ChatPersonSourceTypePerson ChatPersonSourceType = "PERSON" +) + +func (e ChatPersonSourceType) ToPointer() *ChatPersonSourceType { + return &e +} +func (e *ChatPersonSourceType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "PERSON": + *e = ChatPersonSourceType(v) + return nil + default: + return fmt.Errorf("invalid value for ChatPersonSourceType: %v", v) + } +} + +type ChatPersonSource struct { + Type ChatPersonSourceType `json:"type"` + PersonID string `json:"person_id"` + Name *string `json:"name,omitempty"` + URL *string `json:"url,omitempty"` +} + +func (c ChatPersonSource) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(c, "", false) +} + +func (c *ChatPersonSource) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &c, "", false, []string{"type", "person_id"}); err != nil { + return err + } + return nil +} + +func (o *ChatPersonSource) GetType() ChatPersonSourceType { + if o == nil { + return ChatPersonSourceType("") + } + return o.Type +} + +func (o *ChatPersonSource) GetPersonID() string { + if o == nil { + return "" + } + return o.PersonID +} + +func (o *ChatPersonSource) GetName() *string { + if o == nil { + return nil + } + return o.Name +} + +func (o *ChatPersonSource) GetURL() *string { + if o == nil { + return nil + } + return o.URL +} diff --git a/tests/mockserver/internal/sdk/models/components/feedentry.go b/tests/mockserver/internal/sdk/models/components/feedentry.go index e52b5300..e84bac4d 100644 --- a/tests/mockserver/internal/sdk/models/components/feedentry.go +++ b/tests/mockserver/internal/sdk/models/components/feedentry.go @@ -120,6 +120,8 @@ const ( JustificationTypeKnowledgeGap JustificationType = "KNOWLEDGE_GAP" JustificationTypeArtifactCreation JustificationType = "ARTIFACT_CREATION" JustificationTypeEditDoc JustificationType = "EDIT_DOC" + JustificationTypeChatToArtifact JustificationType = "CHAT_TO_ARTIFACT" + JustificationTypeShareArtifact JustificationType = "SHARE_ARTIFACT" ) func (e JustificationType) ToPointer() *JustificationType { @@ -258,6 +260,10 @@ func (e *JustificationType) UnmarshalJSON(data []byte) error { case "ARTIFACT_CREATION": fallthrough case "EDIT_DOC": + fallthrough + case "CHAT_TO_ARTIFACT": + fallthrough + case "SHARE_ARTIFACT": *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 698ed03a..ea9a683c 100644 --- a/tests/mockserver/internal/sdk/models/components/feedrequest.go +++ b/tests/mockserver/internal/sdk/models/components/feedrequest.go @@ -60,6 +60,8 @@ const ( FeedRequestCategoryKnowledgeGap FeedRequestCategory = "KNOWLEDGE_GAP" FeedRequestCategoryArtifactCreation FeedRequestCategory = "ARTIFACT_CREATION" FeedRequestCategoryEditDoc FeedRequestCategory = "EDIT_DOC" + FeedRequestCategoryChatToArtifact FeedRequestCategory = "CHAT_TO_ARTIFACT" + FeedRequestCategoryShareArtifact FeedRequestCategory = "SHARE_ARTIFACT" ) func (e FeedRequestCategory) ToPointer() *FeedRequestCategory { @@ -170,6 +172,10 @@ func (e *FeedRequestCategory) UnmarshalJSON(data []byte) error { case "ARTIFACT_CREATION": fallthrough case "EDIT_DOC": + fallthrough + case "CHAT_TO_ARTIFACT": + fallthrough + case "SHARE_ARTIFACT": *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 9a4cfb73..6e4408b5 100644 --- a/tests/mockserver/internal/sdk/models/components/feedresult.go +++ b/tests/mockserver/internal/sdk/models/components/feedresult.go @@ -61,6 +61,8 @@ const ( FeedResultCategoryKnowledgeGap FeedResultCategory = "KNOWLEDGE_GAP" FeedResultCategoryArtifactCreation FeedResultCategory = "ARTIFACT_CREATION" FeedResultCategoryEditDoc FeedResultCategory = "EDIT_DOC" + FeedResultCategoryChatToArtifact FeedResultCategory = "CHAT_TO_ARTIFACT" + FeedResultCategoryShareArtifact FeedResultCategory = "SHARE_ARTIFACT" ) func (e FeedResultCategory) ToPointer() *FeedResultCategory { @@ -171,6 +173,10 @@ func (e *FeedResultCategory) UnmarshalJSON(data []byte) error { case "ARTIFACT_CREATION": fallthrough case "EDIT_DOC": + fallthrough + case "CHAT_TO_ARTIFACT": + fallthrough + case "SHARE_ARTIFACT": *e = FeedResultCategory(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/importagentrequest.go b/tests/mockserver/internal/sdk/models/components/importagentrequest.go index 1dd4383e..100605e0 100644 --- a/tests/mockserver/internal/sdk/models/components/importagentrequest.go +++ b/tests/mockserver/internal/sdk/models/components/importagentrequest.go @@ -3,7 +3,10 @@ package components import ( + "encoding/json" + "fmt" "io" + "mockserver/internal/sdk/utils" ) type Bundle struct { @@ -25,6 +28,33 @@ func (o *Bundle) GetContent() io.Reader { return o.Content } +// VersionSource - Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports. +type VersionSource string + +const ( + VersionSourceGit VersionSource = "GIT" + VersionSourceUser VersionSource = "USER" +) + +func (e VersionSource) ToPointer() *VersionSource { + return &e +} +func (e *VersionSource) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "GIT": + fallthrough + case "USER": + *e = VersionSource(v) + return nil + default: + return fmt.Errorf("invalid value for VersionSource: %v", v) + } +} + type ImportAgentRequest struct { // Zip of the agent folder (spec.yaml, instructions.md, skills/, subagents/) with symlinks dereferenced. // @@ -38,11 +68,28 @@ type ImportAgentRequest struct { // Whether the imported version is staged (saved without updating the live version) or published directly to the live version. // SyncMode *ImportAgentSyncMode `multipartForm:"name=syncMode"` + // Provenance recorded on the staged commit or published version this import produces. Doesn't change the agent's management mode (workflowSource). GIT: synced from a Git repository. USER: uploaded by a user. Defaults to USER when omitted. Ignored for transient imports. + // + VersionSource *VersionSource `default:"USER" multipartForm:"name=versionSource"` + // Optional baseline hash of the currently published agent definition. When publish hash validation is enabled, an import updating an existing agent with syncMode PUBLISHED is rejected with HTTP 409 if the current published definition hash is nonempty and does not match this baseline. Leading and trailing whitespace is trimmed; omitted or blank values skip validation. Ignored for STAGED imports, new agents, and transient previews. + // + PublishedBaselineHash *string `multipartForm:"name=publishedBaselineHash"` // Deprecated. Draft mutation semantics are not supported for transient previews. Use transient and parentWorkflowId instead. // IsDraft *bool `multipartForm:"name=isDraft"` } +func (i ImportAgentRequest) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(i, "", false) +} + +func (i *ImportAgentRequest) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &i, "", false, []string{"bundle"}); err != nil { + return err + } + return nil +} + func (o *ImportAgentRequest) GetBundle() Bundle { if o == nil { return Bundle{} @@ -78,6 +125,20 @@ func (o *ImportAgentRequest) GetSyncMode() *ImportAgentSyncMode { return o.SyncMode } +func (o *ImportAgentRequest) GetVersionSource() *VersionSource { + if o == nil { + return nil + } + return o.VersionSource +} + +func (o *ImportAgentRequest) GetPublishedBaselineHash() *string { + if o == nil { + return nil + } + return o.PublishedBaselineHash +} + func (o *ImportAgentRequest) GetIsDraft() *bool { if o == nil { return nil diff --git a/tests/mockserver/internal/sdk/models/components/message.go b/tests/mockserver/internal/sdk/models/components/message.go index 5972aa33..1a80d9f4 100644 --- a/tests/mockserver/internal/sdk/models/components/message.go +++ b/tests/mockserver/internal/sdk/models/components/message.go @@ -3,8 +3,9 @@ package components type MessageTextBlock struct { - Text string `json:"text"` - Type ContentType `json:"type"` + Text string `json:"text"` + Type ContentType `json:"type"` + Annotations []ChatCitationAnnotation `json:"annotations,omitempty"` } func (o *MessageTextBlock) GetText() string { @@ -21,6 +22,13 @@ func (o *MessageTextBlock) GetType() ContentType { return o.Type } +func (o *MessageTextBlock) GetAnnotations() []ChatCitationAnnotation { + if o == nil { + return nil + } + return o.Annotations +} + type Message struct { // The role of the message. Role *string `json:"role,omitempty"` diff --git a/tests/mockserver/internal/sdk/models/components/messageinput.go b/tests/mockserver/internal/sdk/models/components/messageinput.go new file mode 100644 index 00000000..958e2d35 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/messageinput.go @@ -0,0 +1,43 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type MessageTextBlockInput struct { + Text string `json:"text"` + Type ContentType `json:"type"` +} + +func (o *MessageTextBlockInput) GetText() string { + if o == nil { + return "" + } + return o.Text +} + +func (o *MessageTextBlockInput) GetType() ContentType { + if o == nil { + return ContentType("") + } + return o.Type +} + +type MessageInput struct { + // The role of the message. + Role *string `json:"role,omitempty"` + // The content of the message. + Content []MessageTextBlockInput `json:"content,omitempty"` +} + +func (o *MessageInput) GetRole() *string { + if o == nil { + return nil + } + return o.Role +} + +func (o *MessageInput) GetContent() []MessageTextBlockInput { + if o == nil { + return nil + } + return o.Content +} diff --git a/tests/mockserver/internal/sdk/models/components/platformagentruncreaterequest.go b/tests/mockserver/internal/sdk/models/components/platformagentruncreaterequest.go index d653f4bc..dfce10e1 100644 --- a/tests/mockserver/internal/sdk/models/components/platformagentruncreaterequest.go +++ b/tests/mockserver/internal/sdk/models/components/platformagentruncreaterequest.go @@ -12,7 +12,7 @@ type PlatformAgentRunCreateRequest struct { Input map[string]any `json:"input,omitempty"` // Messages to pass to the agent. When provided, the array MUST contain at least one message and each message MUST specify a valid `role` and non-empty `content`. // - Messages []PlatformMessage `json:"messages,omitempty"` + Messages []PlatformMessageInput `json:"messages,omitempty"` // Metadata to pass to the agent. Metadata map[string]any `json:"metadata,omitempty"` // Whether to stream the run response as server-sent events. @@ -37,7 +37,7 @@ func (o *PlatformAgentRunCreateRequest) GetInput() map[string]any { return o.Input } -func (o *PlatformAgentRunCreateRequest) GetMessages() []PlatformMessage { +func (o *PlatformAgentRunCreateRequest) GetMessages() []PlatformMessageInput { if o == nil { return nil } diff --git a/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go b/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go index 63d8078f..5d07e389 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go @@ -33,9 +33,9 @@ func (e *PlatformChatDocumentSourceType2) UnmarshalJSON(data []byte) error { } type PlatformChatDocumentSourceDocument2 struct { + URL string `json:"url"` Type PlatformChatDocumentSourceType2 `json:"type"` DocumentID *string `json:"document_id,omitempty"` - URL string `json:"url"` Title *string `json:"title,omitempty"` Datasource *string `json:"datasource,omitempty"` } @@ -45,12 +45,19 @@ func (p PlatformChatDocumentSourceDocument2) MarshalJSON() ([]byte, error) { } func (p *PlatformChatDocumentSourceDocument2) UnmarshalJSON(data []byte) error { - if err := utils.UnmarshalJSON(data, &p, "", false, []string{"type", "url"}); err != nil { + if err := utils.UnmarshalJSON(data, &p, "", false, []string{"url", "type"}); err != nil { return err } return nil } +func (o *PlatformChatDocumentSourceDocument2) GetURL() string { + if o == nil { + return "" + } + return o.URL +} + func (o *PlatformChatDocumentSourceDocument2) GetType() PlatformChatDocumentSourceType2 { if o == nil { return PlatformChatDocumentSourceType2("") @@ -65,13 +72,6 @@ func (o *PlatformChatDocumentSourceDocument2) GetDocumentID() *string { return o.DocumentID } -func (o *PlatformChatDocumentSourceDocument2) GetURL() string { - if o == nil { - return "" - } - return o.URL -} - func (o *PlatformChatDocumentSourceDocument2) GetTitle() *string { if o == nil { return nil @@ -110,8 +110,8 @@ func (e *PlatformChatDocumentSourceType1) UnmarshalJSON(data []byte) error { } type PlatformChatDocumentSourceDocument1 struct { - Type PlatformChatDocumentSourceType1 `json:"type"` DocumentID string `json:"document_id"` + Type PlatformChatDocumentSourceType1 `json:"type"` URL *string `json:"url,omitempty"` Title *string `json:"title,omitempty"` Datasource *string `json:"datasource,omitempty"` @@ -122,24 +122,24 @@ func (p PlatformChatDocumentSourceDocument1) MarshalJSON() ([]byte, error) { } func (p *PlatformChatDocumentSourceDocument1) UnmarshalJSON(data []byte) error { - if err := utils.UnmarshalJSON(data, &p, "", false, []string{"type", "document_id"}); err != nil { + if err := utils.UnmarshalJSON(data, &p, "", false, []string{"document_id", "type"}); err != nil { return err } return nil } -func (o *PlatformChatDocumentSourceDocument1) GetType() PlatformChatDocumentSourceType1 { +func (o *PlatformChatDocumentSourceDocument1) GetDocumentID() string { if o == nil { - return PlatformChatDocumentSourceType1("") + return "" } - return o.Type + return o.DocumentID } -func (o *PlatformChatDocumentSourceDocument1) GetDocumentID() string { +func (o *PlatformChatDocumentSourceDocument1) GetType() PlatformChatDocumentSourceType1 { if o == nil { - return "" + return PlatformChatDocumentSourceType1("") } - return o.DocumentID + return o.Type } func (o *PlatformChatDocumentSourceDocument1) GetURL() *string { diff --git a/tests/mockserver/internal/sdk/models/components/platformmessageinput.go b/tests/mockserver/internal/sdk/models/components/platformmessageinput.go new file mode 100644 index 00000000..950aade4 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformmessageinput.go @@ -0,0 +1,24 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type PlatformMessageInput struct { + // Role of the message author. + Role PlatformMessageRole `json:"role"` + // Content blocks in the message. + Content []PlatformMessageTextBlockInput `json:"content"` +} + +func (o *PlatformMessageInput) GetRole() PlatformMessageRole { + if o == nil { + return PlatformMessageRole("") + } + return o.Role +} + +func (o *PlatformMessageInput) GetContent() []PlatformMessageTextBlockInput { + if o == nil { + return []PlatformMessageTextBlockInput{} + } + return o.Content +} diff --git a/tests/mockserver/internal/sdk/models/components/platformmessagetextblock.go b/tests/mockserver/internal/sdk/models/components/platformmessagetextblock.go index 0432f13a..b5fe4dc9 100644 --- a/tests/mockserver/internal/sdk/models/components/platformmessagetextblock.go +++ b/tests/mockserver/internal/sdk/models/components/platformmessagetextblock.go @@ -4,8 +4,9 @@ package components type PlatformMessageTextBlock struct { // Text content. - Text string `json:"text"` - Type PlatformContentType `json:"type"` + Text string `json:"text"` + Type PlatformContentType `json:"type"` + Annotations []PlatformChatCitationAnnotation `json:"annotations,omitempty"` } func (o *PlatformMessageTextBlock) GetText() string { @@ -21,3 +22,10 @@ func (o *PlatformMessageTextBlock) GetType() PlatformContentType { } return o.Type } + +func (o *PlatformMessageTextBlock) GetAnnotations() []PlatformChatCitationAnnotation { + if o == nil { + return nil + } + return o.Annotations +} diff --git a/tests/mockserver/internal/sdk/models/components/platformmessagetextblockinput.go b/tests/mockserver/internal/sdk/models/components/platformmessagetextblockinput.go new file mode 100644 index 00000000..a2f9800f --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformmessagetextblockinput.go @@ -0,0 +1,23 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type PlatformMessageTextBlockInput struct { + // Text content. + Text string `json:"text"` + Type PlatformContentType `json:"type"` +} + +func (o *PlatformMessageTextBlockInput) GetText() string { + if o == nil { + return "" + } + return o.Text +} + +func (o *PlatformMessageTextBlockInput) GetType() PlatformContentType { + if o == nil { + return PlatformContentType("") + } + return o.Type +} diff --git a/tests/test_client_agents.py b/tests/test_client_agents.py index 154665a2..bcee64d6 100644 --- a/tests/test_client_agents.py +++ b/tests/test_client_agents.py @@ -1,6 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from glean.api_client import Glean +from glean.api_client import Glean, models import os from tests.test_client import create_test_http_client @@ -35,5 +35,6 @@ def test_client_agents_import_agent(): "file_name": "example.file", "content": open(".speakeasy/testfiles/example.file", "rb"), }, + version_source=models.VersionSource.USER, ) assert res is not None diff --git a/tests/test_messages.py b/tests/test_messages.py index 36643db3..132005ec 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.MICROSOFTTEAMS, + datasource=models.Datasource.FACEBOOKWORKPLACE, timestamp_millis=558834, ) assert res is not None diff --git a/tests/test_summarize.py b/tests/test_summarize.py index 176748ca..072b3207 100644 --- a/tests/test_summarize.py +++ b/tests/test_summarize.py @@ -21,8 +21,8 @@ def test_summarize_summarize(): "id": "", }, { - "ugc_type": models.DocumentSpecUgcType1.ANSWERS, - "content_id": 141216, + "ugc_type": models.DocumentSpecUgcType2.SHORTCUTS, + "ugc_id": "", }, ] )