diff --git a/docs/.generated/plugin-sdk-api-baseline.sha256 b/docs/.generated/plugin-sdk-api-baseline.sha256 index 1ca8c05b2563..4e5621a06590 100644 --- a/docs/.generated/plugin-sdk-api-baseline.sha256 +++ b/docs/.generated/plugin-sdk-api-baseline.sha256 @@ -1,116 +1,116 @@ -4aac17f08825a1e381ff2c19e0a447986353038be9c77943f9cbd3de4573e116 module/account-core -419ac9790cc63052327ed3d727197f583402cc13eb1dc9beb072938ddb70c9f5 module/account-helpers +abe3df6fc59f74c8a0e12aafcde8ef06b0fe8c25a1a6025be9ae4d666cc533a9 module/account-core +fcc4a78acfe1b07f6a9c7f65fcc3467941f21c3783edb3e1d23d1d3a4fb738ea module/account-helpers 71522995185b956a0cc4927a472cc8d1153e5e998874bfd9a750513175174713 module/account-id -46e3736461cd8e238604ba5ad92023c00b1dc28358a27b4349fe5e16cd320719 module/account-resolution +96bcaa5a97445164026eb1a8ae3a7190c8b3bfdfcc1edb10232ee6eaeeac646e module/account-resolution 4fbb1c87e99399f842a20d75d5e35a4b7064a1b7f02115c23f9a2a7cdcfb57ee module/agent-config-primitives -8e78e6ab3e3e76fbf4e5a0c56b38b9ec936aab54b1c09a41c5a3bf9c93da5475 module/agent-harness -8bfacea25437c95d2bd63d0468b10aeabff6249ca7a9495b3227692b7ac4226b module/agent-harness-runtime +0b7384f469aa8a42637203665377f96f4b5f11878b400f1fca2047ed1a8c92b1 module/agent-harness +f86acd7a8497dcee988d85a21124da1c1af7988b302622e4e9c7fa025d85eb35 module/agent-harness-runtime d6097cfa1b410f4b5267a56a7bd19c2a33fbaf6642683dae6aec68e998e48f6c module/agent-media-payload -c36bfc7abe97c176e888a3bb9fac0c90c96d3070eb9a85663563567e3ddea87e module/agent-runtime +7e39f1161acc4e9e15312b726fa21cba80583af6659a502163e26b0cbf7419bf module/agent-runtime b57a3cb274a9977c48c5387772df7707e50dde9a6132e532e7367a27225dc142 module/agent-scope-runtime 8fecb210e22bce4532b6ab649b09465f0bd2c857a44abf40db7d683d6491e6da module/allow-from -32e3efc34e4ca59cfb8bf21bcaa50da234821493f51ca41dc681ec39e127aa98 module/allowlist-config-edit -77e6a9f68956ad35faf971b20eb5626b0be145c5ed339128b3d7f2f982303070 module/approval-auth-runtime -d9daa4e9c2907ec47fb6f16546bf54c7adc3c4f7f27986b968e9e4cb338f96af module/approval-client-runtime -0e7edb7b1ebd6e79f3fee98a1b95c5b774060d9e8a458c02abc04df2cacf1ed3 module/approval-delivery-runtime +2572e35200838bff7692c7218566589b2a78c79c07b7679dd051abd980b5f85f module/allowlist-config-edit +380aece9050c46d0660b640602cbf86f01b02394cf5fd5cc51f443502a58d2fb module/approval-auth-runtime +760aafdd2002d633ae954c92e8a8034532f08fba0e54ed7ad15491511913a333 module/approval-client-runtime +7e1c18824145a97a453e44a6e03b26f185b936457c860ca8a96f2a2def88920c module/approval-delivery-runtime fca9de6851d929547fa3ad91e4501fd2b58cee98dab3ad0a4803b22291501c0a module/approval-gateway-runtime 00583c41e60108630d09a5f6d22404fdc005156026d7f912141f126c5b2d9e37 module/approval-handler-adapter-runtime -e98adbe97ca35fc3a08cd0b60bc8147ea1fc1c3997d23468cc41955cf06e7cb9 module/approval-handler-runtime -5a3224c224d3137133d792b008d3cbe2289f1c20fa9ae8accc29fff5e122827b module/approval-native-runtime -c780434525ebbc108da16cad140af3dd2c8f28fc651796bf3e98d9f2d10ba7fb module/approval-reply-runtime -5a642da623761f811a04aea7ed7f0c907a5c280ebf02770ecb0ef7bd40632b72 module/approval-runtime +0ffc2dcde88e3c45eeb237053f78333401537c09c329228c02884be4714213b8 module/approval-handler-runtime +fbb152e828397f1b7d804471554c7ccb6833fe90e3ac5e5efd6b7dc90d010a71 module/approval-native-runtime +f80b8064a51b5dc4814de28449deec83ab8ed2f40ad9fd15a9052b6c68ab7849 module/approval-reply-runtime +bcb23d2bad37e0d6cefecc60cdd96d97941b8ebb31f552e07d3983a3fe6c1f7b module/approval-runtime 01ca912836b8dec672f705e294f72d346e778557e4c591317d67558ea7669c0b module/archive d7e53de63b0ac11a266e4abdc18ba6e9401b80309f5c8f5f6a72a00f65dfe3bd module/boolean-param b11b9d8fb991e26acd6e7efcb96b77635455d2c9b94d0a7e840dbdac94ad5b85 module/channel-actions -9dfbef78e1be47e408a07f546c3c6ddda518b208610fdf79b6b3c1124a6c277c module/channel-config-helpers +f02181e6e2a9da167d0b106ffa8934458ccfc9d3572509cc732c6a7300849829 module/channel-config-helpers c2cc71d5070b6071c51248b0648d1ad1a9468d3737df890adc77ec02025e8853 module/channel-config-primitives a6cca5706f3aba6abb2178b175a0986d921ade98c2c05d2a54451e2fb7e16825 module/channel-config-schema -ff8e67527d2c9c4d4b792b3a69c3beb2d3d38558ecec3d1083a8f65a19d0887d module/channel-contract -cdba5e545ad62f1f09ebce98fe6b7d377cfcddb54b543dea464c752af1c2670a module/channel-core -6ef4bf41d687cb45e53530600fcaa3bc3a030e3b88a3676dc68702ac64ad65d4 module/channel-dm-policy -4687d387d96835a999c87c253cb27fa250a440120850280bcb5814717b464a0a module/channel-entry-contract +8b5cd3810460cc85e72b1ca4382005c257336b62626362ba54092c417a62aa0e module/channel-contract +391c7dae1098f887ee6ccf29bc15b2b4418a2280ee88c623de7f54435257e13f module/channel-core +eccb43e6d478bee9ccbc6e76d57006dded896a6a2ae749b68e9b1a599e128898 module/channel-dm-policy +e8b0331142cf153199e6375f8122d1a1e7f34d3f8ee7ddb8c237e049e59b7194 module/channel-entry-contract 47cf8765e76c151ae7d2991d41beca62922a8837c1521e10a3fd23f9992c2d7c module/channel-feedback -981112031c8abfd1084aae87cbfc99f3677092db011cfe6e9bd84b3a66bf8eb9 module/channel-inbound +c45e600724ec739ff3ba77a29ff7d39c64a4ade3083055864ffef85917e91b4e module/channel-inbound 3115366026efa38e07bfe0bfecd483e93454cc7bcad432385139c956777accff module/channel-inbound-debounce bc59c696ee45fb500d105c619c0ec81b8186bebe99135f23dc818ac16004deb0 module/channel-ingress-runtime -b7928dbfc74c436091ead47f05200a8edf2a6c8bf50ebc3b9382ab8d99766d4b module/channel-lifecycle +41a3c1cbfb690e37983ded136e1d0aefb1c73ebdb21c70ee34528e74e2f187e0 module/channel-lifecycle 0e47457e38d1df0bd572e1408cde2ca6a788b65205f43c585316b5ad3a8f2f16 module/channel-logging -42622a581dd0cd2b1879f1f9263c3a640f7279fedc3d66eee9f5171063b2a4a3 module/channel-message -62d1c8395856b79e3deee1199cb4b6c9fbfa5c38d2f41fe3ba5de50b74cf45f1 module/channel-outbound -e8c6fde792375229d085d9cd5b051954efa5b65ae1e6f1f6bc66828598a8c010 module/channel-pairing -8c3db487145020cda8d1dd1ac40ebb4b3956f44d2644ba1520375a4131c946df module/channel-plugin-common -7eb1691d337a4f56fca881c3350c9594bd54a93f1d4e39b05b455a13902a53ef module/channel-policy -c5a9b3aa4345ff90da02efe914dac6d33ed3d3a2c3a1a0195bd5d6069727f269 module/channel-reply-pipeline +470fadadc7ac509dfd25220345ce2c51cec5878edf3161668a0e64b399d2d50c module/channel-message +3789f7171bd487f6f4a3b812817a7d78b9ac5e15e09887070527131fb3dd698f module/channel-outbound +a074a0e1f35f11ba528c158314e4b4d2c04e24def604ec9ae2ed912c5f8cec9e module/channel-pairing +67627a8a2aa39d4894ff5a28e515df6b5b0d431a63b05e91ec4f2159ebdc9a90 module/channel-plugin-common +31db1bb899aa81d83d9120e7f87e25862f2e2510d1e62c28b2daa5a3aeb6799c module/channel-policy +8a4a9a781f458c679a43bfe4072b3706e81ae722f77fd8f420f44898c94c5541 module/channel-reply-pipeline 482370e60135db9bfaf07f24bab549e5fde09ab265a6061a1f587c5d93929e91 module/channel-runtime-context 241050b8979ed905727789e99011535631dd8c205aa6967401677d78281900de module/channel-secret-basic-runtime 2edd63d294a8ee128a18c1815f6ae53be915569c49ebbad0dd139eb60475b0e6 module/channel-secret-runtime -87c04f21c6aa9059be0961bf7db907fdfd70a3631690a005a00fe739c6b98006 module/channel-send-result -8030ac7aff2fbeefe215da8831518e30c2b962f79d8a58049011e3a385fa1a6b module/channel-setup -027ed93d1c903e31c6c01a7f89a338427f6842bd702016f0b9513b91b4a9ec7f module/channel-status +331baf55a75adedcc882d1c03b2c1ad4e594c182879decb91fcf7b6ae59e32a5 module/channel-send-result +f352cc8c8f096d3d2ddb0e374bae66f1ab49697f678e5f703165c62a3f492fb9 module/channel-setup +d849e6ab5d37a686fee9d33f5dc305c7c142b5477a1cb7826d3c4b03e96950fc module/channel-status f6c25ae55d49d90431682ca53c9dd836304942a738425d6ff028146a0c6d2c97 module/channel-streaming b2f920ff4a6b4190e6d6ea0a3effb001751e092f0e3ac0cf296721ff8c383d86 module/channel-streaming-config fdeffe356c7c4edeec9f8fd03edcadc375eabc7a9412e582b10c3180e3ef40fc module/cli-argv ad12670dbfe538f8d0ebf4fb2b68080e93a760278278e6b1ce9bb129d4b2d533 module/collection-runtime -87bbd4c3da491a674c3dddb10603bc47bc5e219634a566f3bc203ed2d3068b75 module/command-auth -5d308deb05b5e84172e01b118ae0fb526cf3aefec9b55fd836bc19b3e2055323 module/command-auth-native +48388ca2c61744282d3d0b6d23e45890926f8238c737dce7e60d8163c079c8b5 module/command-auth +5d2ba0ec9a10fe7cc1e41ecfc7ba03f50a2e0d9209cb7383f281c5390364f187 module/command-auth-native 50c24235bca2c1d3c011f6bc266b57078b78a76d2d27ee12e7b3245f2947b493 module/command-detection e24382c2cca7fd2cf69ac353e258153dab80b279daf9f0ef54a727981a7dff3c module/command-primitives-runtime 1d6ebcdc843b7072a7fc4475eadadb90a1111d49c1da1e4326775800873cf9f1 module/command-status ab86235fcfff7c7cf0021fafeca6e92afe2c257ccf6a4a38441e0d41532998ff module/config-contracts 0d99f5cb8c4978ed760e5fb4e476543759fbd8fd5bf73cc50a50c1d550203826 module/config-mutation -5465d8cd4b47a137f6526cc7978e0fd491df74e25c89a24c231790c1c72110c9 module/config-runtime -ac96ff12fe67214afc91fb76441305038e44fba4376b89a4240295d2e9f5bd00 module/conversation-runtime -3dfe69e2c15695ac792feca7a032e6e7f5336c0a37dc71022bcc7ca122e99cb0 module/core -c4096eaab3d2315e9b51faff98891dbaf15f5e116f21b0206f32452d7f929fa3 module/dedupe-runtime +29271d7ed7b05e5caf95cba73a70a506cf2e2d25131ec08da8d8ab544a1a6f61 module/config-runtime +e90b0b9ae9153ad79242ef2ef7306b3ab4473c949d498b241a12c87227c25467 module/conversation-runtime +e725cc808a84fcf150668834c6cfc4126098da5e51e5a7a1cf65fe221aa2e8b4 module/core +001093661e24e8162d9a6b4ba6c0b6016a77f3a75cee322ac16ddab5818d50ec module/dedupe-runtime ebef0e650ab45e44c9335e2b3e15588c968cea6dadd125364a076f9c50ad1e8c module/device-bootstrap 21d86413166ef815581d606f678b6a216a1cc73ffe470b841f5bc4a131bff6df module/diagnostic-runtime -858571cff873d31deb36695f73d88878fa01179e94422ec59a1504a956b0b0da module/directory-runtime -5f13d2cf4c60925bd2f7ee030dc8ebca3087dd328f6706aed76317ad7df6a090 module/discord +8882a5a1f5ab632fa7b26cca76fc584a36fa097f377ac5e25436d417c8471daf module/directory-runtime +9e5be3a87631bc4604d0a20eb365b3f2030903da16ddc8ac1a641313b260ce19 module/discord 39fe343ed2119de714757c365eef2ccec89c2c82a0876c60a4bef8ce469f8c8a module/error-runtime ce4f1602bf5b5de968ca97cede4f498b6ae709a0a59393b5ce9255cf0e6a9d5e module/extension-shared dd9f6e0fd33cc88b22543c1ee30cc09cf4de4d8f30dff7b7f9cebef885c21543 module/gateway-method-runtime -34961e1fa8cb3da48e985d41eb9007fda2a9fde2e59f0fad171e88b72555b7a3 module/gateway-runtime +aef9254aebfcd85721819e964284f6e52d1f39a1ab20d65b7f42487a63dcd3c9 module/gateway-runtime 1b1c6bd5bfc0cfb0c5bb9bd97f8ac1928750cb87232a3415dd066cc21d7b48b7 module/group-access -5bf422b18d8d7b06d1ba7d5a730d59ef463bb377f00b4aba23ea55d51c5d19ca module/health -8366c7453654530db5ea90ba6e91a4f0c8d531b2764506538c169682d1e0bf09 module/hook-runtime +c42a3d501b14b606fe104d98f780f0d0d9c0d972709afedb427bf925c7a12a2a module/health +6a92065dc642dc1552a6d2ead33d9f29956de59b19ecbe8d048f55864bac6428 module/hook-runtime a953bd0c23c562e29fc512bc2354ed45c497728169d8201cb2cdb75d9e056073 module/inbound-envelope 4928af5d2509f696b896f53ac790303a0742202dbcdae3e44fe6d1b434a9c1ba module/inbound-event-delivery -5bdcaeb3278d659917340b38cf4a0084af7f4a5bb3b650925cef09eb876ffe4d module/inbound-reply-dispatch -b55f95b960e1981528b6113b88d740ceeebec4b937d918a2fc0903c6e4041712 module/infra-runtime +fe61193e1bcb4e214acfa92e02e35238485c681958a84ab2982cf34937fb75ef module/inbound-reply-dispatch +049c5e2e70f863164c4d1c49747dface6791fde278c976f318bd55b5a33394d8 module/infra-runtime ce73721421f1b903dd04ead4df173582e59ea3e9990248102c448b419cc6d272 module/ingress-effect-once -c66c8fd98b1a73f40fa7b65f3192b971079f88dec2accf59c4260ba0ec663fd0 module/interactive-runtime +d70942696003e682318195c52842c66859f6f82ba5c2eadbaffe2ed73cc14d64 module/interactive-runtime 408d257ab5cc4b88a22b7e7595039cb8fc524b261c44141b294fbd0100ba62ee module/json-store e907fd3a98185f2c261f2aafcaa5a19ee1d7b459d519a498397d629f84c68312 module/lazy-runtime cc2d0e1c1e7b9491eb254f314ed2c081a33256936781017eb5d8f9f11808f35b module/logging-core f1ca4ced4305d0769c2d8cc1291137ac7002fe0e6eaec2c1a71edad2204c8311 module/matrix 4d18b3bcec2c4291085e6001ed444198fe74f12708956e1c40c964d84e53bec8 module/media-local-roots f74d7295fe716aa140aa0bc9300d6259d71dab826de0808fca6bb02592bf5d6e module/media-mime -1d623d95396574c9fec1593fcb561712b6c31858feb5f56effb6a23b7de9a401 module/media-runtime +5e5c0a9db4c3745f448bf8cb3ad45320d3b826c75a02227c6dfc9f9323ab8ff5 module/media-runtime 6a52f93107335f88751704352cc01e62add06f854a5b7d765e2a5ee87c0313b6 module/media-store 3bdcc734f6ea5f59320708cb2b87de9c5422a8b70745774ea0cc8a01cf656924 module/media-understanding -b657aac5f69385a9e3debd37fbc454cc04178ecc773d7f7716bfb1e5032d5228 module/media-understanding-runtime -95e4eb4e745c40f5931d26bba40322f94072bc4092d3d974447827e5a460bc49 module/meeting-runtime +67ffe0251f234c9641ebedc61bfd2866b81e59c907757054517056476a6b8c92 module/media-understanding-runtime +eeb5522f22d133e3ecba1cb0625567f69f4311a7437abd1d04d2588cceae97c7 module/meeting-runtime 3312468e2e8f3423b765fac6bb17944b800ea2c84acffeb64342c99040b2f482 module/memory-core-host-engine-foundation -93db7bf3cafd82afa1b23a0b9523814eaad831e653bead38e885b585ae32a42c module/memory-host-core +736ea5244232d7ab9bd7f56522110b6bf23d66328f938f34ae949d1c1146d1cd module/memory-host-core 1efa0aadc4261d1c6073058cbf3dcc9fa681424819bdd14333e19b249bbc4b18 module/messaging-targets -431eb0702c316a398e599ee502b87d507f5532b38766cf6c8bd5c890174c9001 module/model-session-runtime -b26ee64a33b2829ec2cd8b1e18a20ae9e6639b98a3f02a49390401fcb652c1e2 module/models-provider-runtime -c77c57a509350dfbb58ef2618074e79e002f056213d26ed99db7db2c3dbb3e28 module/native-command-config-runtime +a2e353787e32fc3782829b08446470405e0976e10c76e86ffb7b11dcc80460ac module/model-session-runtime +c1abc36d25082a8bf1182df28d263f5324be6f95531da298895c2c0f5161fb54 module/models-provider-runtime +49adf538a3a8dd6c0f731e7b830cae50205d7159693687f70d455ac8cd247b38 module/native-command-config-runtime f6ffada942145ca2fcec4df90740b4578afa09e81d46cc09122a65d6e345fe02 module/native-command-registry a6b5532576fa4cfd609d0966927eec12806424f2e1efce9fe47d903dfeb8e4dd module/param-readers ca7a56bb1a6169b4cf9befbf5aa21da280a8086fdc49fca4eec520a7a7c98549 module/persistent-dedupe b31f5d86904097993a55377fed7973cd298b0e1f49cade7e37a1e28f6e724108 module/plugin-config-runtime -1f31ea143ed938acfea91f392d0b9d2523c5cb210a19f855b8cbffc9ccfd79f9 module/plugin-entry -e7b6e488d4a1bb74524972ff20cd192b8874ba1732dfb93208b95b79cbfe206e module/plugin-runtime -afdba77987b59dce88909953957aacf2eb89a53aad6eee68bb51fbc41dec885a module/provider-auth -82f44ff3818722a5c68dc0d4b1d8eaedd4fd25465cd5e90830406859fb239797 module/provider-catalog-runtime +ad5690877b439ac6c0b9dda3cf9717381806eb6dd73ac8f1feac7ea940a417aa module/plugin-entry +43eec9105fcc5705fa9b79a99091e439ba838750b3680f8e0162fe089c078f33 module/plugin-runtime +a7fa196e6eefce5fcf3cdfde6a0eb4a8a45f08af47aa7944eda541b6e6d85c4f module/provider-auth +c749ce6c84288cd3f1ed9f739281fade28220e739232daa83df4e0f94187279e module/provider-catalog-runtime 8131147d699394bd06503e2ea2f5f1a50b1594a87dded6d118b74a8d0328c8f6 module/proxy-capture 6bcb504093173b6e6197b0df7ded4522345e744c67d58d78d0f43d32a2ab7f80 module/question-gateway-runtime -67a15bf269ff7c416be279acc44ed59dd5166a880a974896e323649471040450 module/reply-chunking -02ad5f48679edf74161e4afc35b427b25e2b10b0732ce1e9bf3a0665843ef24b module/reply-dispatch-runtime +e558b0ddc597bd5bc2bbcf2a404485676c66685583ecce7df552217a080c4219 module/reply-chunking +4363add8bc5efd6bc55b14c498a9679544d191aa0889ed5fe745c37c9238458e module/reply-dispatch-runtime 73f861fa3179d5af1159853c5acab0eec7a6c8f9398dcb75ea770e784fca6727 module/reply-history -4a13b649afa1a4c80617c40f8f530f2429f7f49eedc8992b7a6d7b1ca97bf387 module/reply-payload -415c1fa44c40b10f5516f998be131bfbc5e005d60512640cb34d3a04c96675aa module/reply-runtime +d266216e54afb7e8a205bea13e82e0495b53d3b039cc2b795df3a286fc9515d9 module/reply-payload +89f36ce57892c19ee44123d14af87e4a1fc9843b970fc7c26328af6ca461e3f2 module/reply-runtime aa07d85d99fdd2b1e0cbe9975fb6dcae66b8bdce2607c6bd5402ae68bb15118c module/root-walk ad6c5c5b16e22f8b06994f69ecfafbc9a9622b07c14670f3c4e8ee81cf3b8c4d module/routing 7877a7e58fa32a64107154e5b714c6d165e96989d4aa5f43e0afac085a187af0 module/run-command @@ -118,34 +118,34 @@ ad6c5c5b16e22f8b06994f69ecfafbc9a9622b07c14670f3c4e8ee81cf3b8c4d module/routing 0570a20fac6020880900a0cf9a889d8f28f47b89d0e1d17862265b557236d440 module/runtime-config-snapshot bfe087e249a3c0adda4d24727220a65bcc159f53d6a4d6d8cd9b252627ef8e98 module/runtime-env 49e9b6a8195c89704eaa80656f176444af7cacbf639b759f41f2c78ae6bfcfd9 module/runtime-group-policy -b0759c32a3572a57cb60a926af8199ec7baec6a033d03a31bc885d74eb511e71 module/runtime-store +baee8323f480c34d7ddf6fc70c8e650ab9d399bbcd8045f94d4a4006d5c90e2a module/runtime-store d17862c40825af1ddf0257b44f1e1cbb9c375e8e5ed668fae75d530d1a465cf9 module/secret-file 8e2ac4d3973d8d8ce4478e3440d66ee5c0d9213b0fe9e927c421d14fd31e5e86 module/secret-input b1b0229280d7cc4a880e4db75130714eb6adc9d6aea31240dc9a8ff6fda55219 module/secret-input-runtime 0cbc3908bd9e1d4527585023a1692eba6c0bfe82f107f49a926a8d1c79aee2a0 module/secret-ref-runtime -eda7ada1e907c8a4c576402303cd71e6f633b5998f08625c56555827f1c685df module/security-runtime -435bb9efa70c551004f23a07b6e9a6dd1f71f700649807ab9a9236126e45aeef module/session-catalog -d1403c3f0a4fe5e468c5e5ab596095caa4b27d00019406c4dfc6c2087a6261be module/session-discussion -9413a28933b8546333f70fd06795acc2d7f4ba05bc89683caf31fbfa17ec7a86 module/session-store-runtime -395444ac26275b34c00d5ecee41e0c4cf2281b0aadf5f54f6bcecf3bfcad7e9d module/setup -8f8f98216f02d6b4de7aee6798c81e86a0ad1319cccb399ed1beedefc151cea0 module/setup-runtime +0ce7d494173690c245cb5dbd64119140d632cb7c0f520b0a8e235de2197b7c20 module/security-runtime +ca0db2dbca3eaae8d3a8648a0ee270af8c0d84852191c8f60670affc5ffdd0fe module/session-catalog +ae3caea5548c99cf2e16aa2bd7d4dd0562b7dd7c7d6ba89f5b23a993e0bcf224 module/session-discussion +5b186bdc779ee4fbd45c188078a2c306781ae0c746d41affaf43200b3941234e module/session-store-runtime +29a929d8bd0845de8bcb4d33cc7b8af7e5e9366a94a9c23c6d5013e3e0534d45 module/setup +533a6b5af4c984e3ec9bc57bd7685b2cbe421231195fa73a7cb1ef4d47e3a1e7 module/setup-runtime d0cb4c5abb7484352088f556c1ba7c7b147d7b57977b8246e5cb7187937768b7 module/setup-tools -21b172f6fbf2b333025f7a53aa8ffec1d3f484d5d9ac506793bec8c31aa6b63e module/skill-commands-runtime -767241d69aabda48508c493ac06723716948c3a2839e5b7ded4a67aeb0ecbca5 module/speech-settings -9d0e415afe55d42a01f4b04ddd1587291ee5e397f3b37aa01534b9e6357634ee module/ssrf-policy -b24923722ab5ea7f24392c24bab1de29e38abd2dc048ad4e6ae52cdf9d77079a module/ssrf-runtime +f69a8cbdbd73557bff2c7c82c780bd2eb55b9949d2a7fb08c698bec4977eb6fa module/skill-commands-runtime +1868b2613210b60543d85370b87972c4f75cde3b216d2277cad5403c4b464c10 module/speech-settings +8409dc78249517ef77c97284f503938b7f485977cbb39fa8921b9cc0861a053b module/ssrf-policy +4062722a2282ca8535e8f208463f742c06e39f0fd2a38dee764d4875fff91b2d module/ssrf-runtime 3855f0a23281d21063762f5b3be2b7485c8bdb3b4cd1692de4f2a17d4eeae496 module/state-paths -a50a20fa4ef9c36086b36939cd485585c5742394feb5aba712a44b7051ea6d6a module/status-helpers +cf07ea6f699ed1eb4bc8db1eed5dee2a018a2c583bd438134dfa1d24ee5b3e35 module/status-helpers f097d0096b21c8a052f0f649b7512ecf2aba4744ae6956f001950e053828b309 module/string-coerce-runtime 9a02a0744c0a73e575c8980cd0e4256866b6d436636061c7774e2e712636466c module/telegram-account aef35bee2502cd6ed8765409b758e452aff8ac9469fd773e6a2a44c9a1bc3f66 module/temp-path 87fa81b9e58d8fc04a4b4202d2d37fca339615f5225687d9db905151439e0f4d module/text-chunking fcdaf13ecea269f1a471ba4fe14958f3c8e198eaa20f354546a648408ed74064 module/text-runtime -3441d3b0b14412f99e7b98dcf5c4194ca3b88f8ee0576e0af0d43b6a4c1e9bba module/tool-plugin +88cc8ab15e17398976dbacbb63de4ee1e5a567957d44446de6ef56cc141943d8 module/tool-plugin dc1a073c59ab61e2789533b777b3f0cb9af689d64a97796b10e8aa82552510db module/tool-results -27702cab40228c505888b90c0737738b030a773e67388e6f7802ef8384f2a466 module/tool-send +2b21b9fcdee0805a7d5385053bb10a57faa67986b784b7123e0b5b16d46d93e4 module/tool-send cda105b721d498df23a554c6b68be150b8fe66b8b9172185c31a0b3b0646b1dc module/web-media -50357dc1b7b851bbabe9631d9d9690287960cf052b2504dc92c31c3b9c23b614 module/webhook-ingress +316f631dc73e9afc30166562f18284f167a23b41ed5fd3aabd7862e2f09ee6ac module/webhook-ingress e3a199a9ce0b85d203e9e8a29b500db29c6b7af307e3145d0a311e29d598925b module/webhook-request-guards de59e86e126b75d13251cba7ebbe27b44d9b5588785d98df5ff4d6722374c81f module/widget-html 9161b36ec0ab062ea41b363c894fcd672a7727f21cb726739f99f9c184fce69d module/zod diff --git a/extensions/telegram/src/bot-message-dispatch-turn.ts b/extensions/telegram/src/bot-message-dispatch-turn.ts index 5c3edf1d1c2f..583ce9af949d 100644 --- a/extensions/telegram/src/bot-message-dispatch-turn.ts +++ b/extensions/telegram/src/bot-message-dispatch-turn.ts @@ -48,6 +48,9 @@ export async function runTelegramDispatchTurn(params: { }) { const { context } = params; const isRoomEvent = context.ctxPayload.InboundEventKind === "room_event"; + const toolProgressEnabled = + params.streamMode !== "off" && + resolveChannelStreamingPreviewToolProgress(params.telegramCfg, true, params.streamMode); const beginDeliveryCorrelation = () => telegramInboundEventDelivery.begin( context.ctxPayload.SessionKey, @@ -248,14 +251,11 @@ export async function runTelegramDispatchTurn(params: { }, suppressDefaultToolProgressMessages: !params.draft.streamDeliveryEnabled || Boolean(params.draft.answerLane.stream), + suppressToolProgressMessages: !toolProgressEnabled, forceToolResultProgress: Boolean(params.draft.answerLane.stream) && params.streamMode === "progress" && - resolveChannelStreamingPreviewToolProgress( - params.telegramCfg, - true, - params.streamMode, - ), + toolProgressEnabled, allowProgressCallbacksWhenSourceDeliverySuppressed: !isRoomEvent && Boolean(params.draft.answerLane.stream), onVerboseProgressVisibility: (isActive) => { diff --git a/extensions/telegram/src/bot-message-dispatch.preview-hook-safety.test.ts b/extensions/telegram/src/bot-message-dispatch.preview-hook-safety.test.ts index 0b88e153f31a..c1269bf5f3de 100644 --- a/extensions/telegram/src/bot-message-dispatch.preview-hook-safety.test.ts +++ b/extensions/telegram/src/bot-message-dispatch.preview-hook-safety.test.ts @@ -17,6 +17,45 @@ function registerHooks(...hooks: string[]) { } describeTelegramDispatch("Telegram provider preview hook safety", () => { + it.each([ + { + label: "streaming is off", + streamMode: "off", + telegramCfg: {}, + }, + { + label: "partial tool progress is off", + streamMode: "partial", + telegramCfg: { streaming: { preview: { toolProgress: false } } }, + }, + { + label: "progress tool progress is off", + streamMode: "progress", + telegramCfg: { streaming: { progress: { toolProgress: false } } }, + }, + ] as const)( + "suppresses standalone tool progress when $label", + async ({ streamMode, telegramCfg }) => { + await dispatchWithContext({ context: createContext(), streamMode, telegramCfg }); + + expectDispatchParams({ + replyOptions: expect.objectContaining({ suppressToolProgressMessages: true }), + }); + }, + ); + + it("allows verbose progress when progress rendering is enabled", async () => { + await dispatchWithContext({ + context: createContext(), + streamMode: "progress", + telegramCfg: { streaming: { progress: { toolProgress: true } } }, + }); + + expectDispatchParams({ + replyOptions: expect.objectContaining({ suppressToolProgressMessages: false }), + }); + }); + it("preserves answer previews when no hooks are registered", async () => { await dispatchWithContext({ context: createContext() }); diff --git a/src/auto-reply/get-reply-options.types.ts b/src/auto-reply/get-reply-options.types.ts index afa8d030b98b..5eb2e5003a98 100644 --- a/src/auto-reply/get-reply-options.types.ts +++ b/src/auto-reply/get-reply-options.types.ts @@ -172,6 +172,8 @@ export type GetReplyOptions = { * channel to surface progress via its own streaming/edit UX. */ suppressDefaultToolProgressMessages?: boolean; + /** Suppress standalone tool/progress text even when verbose progress is enabled. */ + suppressToolProgressMessages?: boolean; /** Allow channel-owned tool lifecycle feedback while text progress remains hidden. */ allowToolLifecycleWhenProgressHidden?: boolean; /** diff --git a/src/auto-reply/reply/dispatch-from-config.choose-route.ts b/src/auto-reply/reply/dispatch-from-config.choose-route.ts index f24b057bff14..fc38b8c24737 100644 --- a/src/auto-reply/reply/dispatch-from-config.choose-route.ts +++ b/src/auto-reply/reply/dispatch-from-config.choose-route.ts @@ -88,7 +88,8 @@ export async function chooseDispatchRoute(state: PrepareDispatchOperationReadySt const shouldSuppressProgressDelivery = () => sendPolicyDenied || (suppressDelivery && !shouldDeliverVerboseProgressDespiteSourceSuppression()); - const shouldSuppressDefaultToolProgressMessages = () => !shouldEmitVerboseProgress(); + const shouldSuppressDefaultToolProgressMessages = () => + params.replyOptions?.suppressToolProgressMessages === true || !shouldEmitVerboseProgress(); const shouldSendVerboseProgressMessages = () => !shouldSuppressDefaultToolProgressMessages(); const shouldSendToolSummaries = () => shouldSendVerboseProgressMessages(); const notifiedSessionMetadataChangeKeys = new Set(); diff --git a/src/auto-reply/reply/dispatch-from-config.execute.ts b/src/auto-reply/reply/dispatch-from-config.execute.ts index ae561a85709a..ba6c58ebbee3 100644 --- a/src/auto-reply/reply/dispatch-from-config.execute.ts +++ b/src/auto-reply/reply/dispatch-from-config.execute.ts @@ -230,8 +230,11 @@ export async function executeDispatch(state: PrepareDispatchExecutionReadyState) state.shouldDeliverForcedToolProgressDespiteSourceSuppression(); const forceToolResultProgress = params.replyOptions?.forceToolResultProgress === true; - const requiresDurableToolResult = - forceToolResultProgress && requiresDurableToolResultDelivery(payload); + const durableToolResult = requiresDurableToolResultDelivery(payload); + const requiresDurableToolResult = forceToolResultProgress && durableToolResult; + if (params.replyOptions?.suppressToolProgressMessages && !durableToolResult) { + return; + } const shouldForwardToolResultProgress = isFastModeAutoProgress ? shouldForwardProgressCallback({ forwardWhenSourceDeliverySuppressed: true, diff --git a/src/auto-reply/reply/dispatch-from-config.hooks-and-send-policy.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.hooks-and-send-policy.test-utils.ts index bdd45942e707..1b1a0295e26a 100644 --- a/src/auto-reply/reply/dispatch-from-config.hooks-and-send-policy.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.hooks-and-send-policy.test-utils.ts @@ -2703,6 +2703,7 @@ describe("sendPolicy deny — suppress delivery, not processing (#53328)", () => sourceReplyDeliveryMode: "message_tool_only", forceToolResultProgress: true, suppressDefaultToolProgressMessages: true, + suppressToolProgressMessages: true, allowProgressCallbacksWhenSourceDeliverySuppressed: true, onToolResult, }, diff --git a/src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts b/src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts index f9b3a4bd268a..7fbc52825622 100644 --- a/src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts +++ b/src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts @@ -726,6 +726,7 @@ describe("dispatchReplyFromConfig", () => { cfg, dispatcher, replyResolver: async () => notice, + replyOptions: { suppressToolProgressMessages: true }, }); expect(ttsMocks.maybeApplyTtsToPayload).not.toHaveBeenCalled(); @@ -1594,5 +1595,52 @@ describe("dispatchReplyFromConfig", () => { expect(dispatcher.sendToolResult).toHaveBeenCalledWith({ text: "🔧 exec: ls" }); expect(dispatcher.sendFinalReply).toHaveBeenCalledWith({ text: "done" }); }); + + it("keeps channel-hidden tool progress suppressed when verbose is enabled", async () => { + setNoAbort(); + sessionStoreMocks.currentEntry = { + verboseLevel: "on", + }; + const dispatcher = createDispatcher(); + const onToolResult = vi.fn(() => false); + const replyResolver = async ( + _ctx: MsgContext, + opts?: GetReplyOptions, + _cfg?: OpenClawConfig, + ) => { + await opts?.onItemEvent?.({ + kind: "preamble", + itemId: "preamble-1", + progressText: "Checking the workspace", + }); + await opts?.onToolResult?.({ text: "🔧 exec: ls" }); + await opts?.onToolResult?.({ + text: "💨Fast: auto-off(75s>=60s)", + channelData: { openclawProgressKind: "fast-mode-auto" }, + }); + await opts?.onToolResult?.({ text: "Command failed", isError: true }); + await opts?.onPlanUpdate?.({ + phase: "update", + steps: [{ step: "Inspect files", status: "in_progress" }], + }); + return { text: "done" } satisfies ReplyPayload; + }; + + await dispatchReplyFromConfig({ + ctx: buildTestCtx({ + Provider: "telegram", + ChatType: "direct", + SessionKey: "agent:main:main", + }), + cfg: emptyConfig, + dispatcher, + replyResolver, + replyOptions: { suppressToolProgressMessages: true, onToolResult }, + }); + + expect(onToolResult).not.toHaveBeenCalled(); + expect(dispatcher.sendToolResult).not.toHaveBeenCalled(); + expect(dispatcher.sendFinalReply).toHaveBeenCalledWith({ text: "done" }); + }); }); /* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */