@openclaw/google-meet 2026.7.1-beta.1 → 2026.7.1-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/dist/{chrome-create-Cf3bQPav.js → chrome-create-BhgM0jQO.js} +20 -8
  2. package/dist/{cli-D-HGF-yt.js → cli-D364Yrym.js} +4 -4
  3. package/dist/{config-D_YKxh0m.js → config-DDYRr7-P.js} +2 -1
  4. package/dist/{create-9bdDXOHB.js → create-CkkaRlbI.js} +4 -3
  5. package/dist/index.js +180 -151
  6. package/dist/{oauth-DK1mwF2i.js → oauth-75iPDzIn.js} +6 -3
  7. package/node_modules/commander/Readme.md +11 -15
  8. package/node_modules/commander/index.js +14 -17
  9. package/node_modules/commander/lib/argument.js +3 -6
  10. package/node_modules/commander/lib/command.js +46 -33
  11. package/node_modules/commander/lib/error.js +2 -5
  12. package/node_modules/commander/lib/help.js +4 -20
  13. package/node_modules/commander/lib/option.js +3 -6
  14. package/node_modules/commander/lib/suggestSimilar.js +2 -4
  15. package/node_modules/commander/package.json +10 -28
  16. package/node_modules/commander/typings/index.d.ts +3 -3
  17. package/node_modules/typebox/build/compile/validator.d.mts +2 -7
  18. package/node_modules/typebox/build/compile/validator.mjs +6 -36
  19. package/node_modules/typebox/build/error/errors.d.mts +1 -7
  20. package/node_modules/typebox/build/format/_idna.mjs +36 -6
  21. package/node_modules/typebox/build/format/_puny.mjs +4 -1
  22. package/node_modules/typebox/build/format/uuid.d.mts +2 -2
  23. package/node_modules/typebox/build/format/uuid.mjs +3 -3
  24. package/node_modules/typebox/build/guard/emit.d.mts +0 -4
  25. package/node_modules/typebox/build/guard/emit.mjs +0 -8
  26. package/node_modules/typebox/build/guard/guard.d.mts +4 -8
  27. package/node_modules/typebox/build/guard/guard.mjs +5 -13
  28. package/node_modules/typebox/build/schema/engine/boolean.d.mts +3 -3
  29. package/node_modules/typebox/build/schema/engine/boolean.mjs +4 -4
  30. package/node_modules/typebox/build/schema/engine/index.d.mts +0 -1
  31. package/node_modules/typebox/build/schema/engine/index.mjs +0 -1
  32. package/node_modules/typebox/build/schema/engine/schema.mjs +5 -10
  33. package/node_modules/typebox/build/schema/engine/type.mjs +14 -18
  34. package/node_modules/typebox/build/schema/types/dependencies.mjs +1 -1
  35. package/node_modules/typebox/build/schema/types/index.d.mts +0 -1
  36. package/node_modules/typebox/build/schema/types/index.mjs +0 -1
  37. package/node_modules/typebox/build/schema/types/schema.d.mts +1 -1
  38. package/node_modules/typebox/build/schema/types/schema.mjs +2 -2
  39. package/node_modules/typebox/build/system/locale/ar_001.mjs +0 -1
  40. package/node_modules/typebox/build/system/locale/bn_BD.mjs +0 -1
  41. package/node_modules/typebox/build/system/locale/cs_CZ.mjs +0 -1
  42. package/node_modules/typebox/build/system/locale/de_DE.mjs +0 -1
  43. package/node_modules/typebox/build/system/locale/el_GR.mjs +0 -1
  44. package/node_modules/typebox/build/system/locale/en_US.mjs +0 -1
  45. package/node_modules/typebox/build/system/locale/es_419.mjs +0 -1
  46. package/node_modules/typebox/build/system/locale/es_AR.mjs +0 -1
  47. package/node_modules/typebox/build/system/locale/es_ES.mjs +0 -1
  48. package/node_modules/typebox/build/system/locale/es_MX.mjs +0 -1
  49. package/node_modules/typebox/build/system/locale/fa_IR.mjs +0 -1
  50. package/node_modules/typebox/build/system/locale/fil_PH.mjs +0 -1
  51. package/node_modules/typebox/build/system/locale/fr_CA.mjs +0 -1
  52. package/node_modules/typebox/build/system/locale/fr_FR.mjs +0 -1
  53. package/node_modules/typebox/build/system/locale/ha_NG.mjs +0 -1
  54. package/node_modules/typebox/build/system/locale/hi_IN.mjs +0 -1
  55. package/node_modules/typebox/build/system/locale/hu_HU.mjs +0 -1
  56. package/node_modules/typebox/build/system/locale/id_ID.mjs +0 -1
  57. package/node_modules/typebox/build/system/locale/it_IT.mjs +0 -1
  58. package/node_modules/typebox/build/system/locale/ja_JP.mjs +0 -1
  59. package/node_modules/typebox/build/system/locale/ko_KR.mjs +0 -1
  60. package/node_modules/typebox/build/system/locale/ms_MY.mjs +0 -1
  61. package/node_modules/typebox/build/system/locale/nl_NL.mjs +0 -1
  62. package/node_modules/typebox/build/system/locale/pl_PL.mjs +0 -1
  63. package/node_modules/typebox/build/system/locale/pt_BR.mjs +0 -1
  64. package/node_modules/typebox/build/system/locale/pt_PT.mjs +0 -1
  65. package/node_modules/typebox/build/system/locale/ro_RO.mjs +0 -1
  66. package/node_modules/typebox/build/system/locale/ru_RU.mjs +0 -1
  67. package/node_modules/typebox/build/system/locale/sv_SE.mjs +0 -1
  68. package/node_modules/typebox/build/system/locale/sw_TZ.mjs +0 -1
  69. package/node_modules/typebox/build/system/locale/th_TH.mjs +0 -1
  70. package/node_modules/typebox/build/system/locale/tr_TR.mjs +0 -1
  71. package/node_modules/typebox/build/system/locale/uk_UA.mjs +0 -1
  72. package/node_modules/typebox/build/system/locale/ur_PK.mjs +0 -1
  73. package/node_modules/typebox/build/system/locale/vi_VN.mjs +0 -1
  74. package/node_modules/typebox/build/system/locale/yo_NG.mjs +0 -1
  75. package/node_modules/typebox/build/system/locale/zh_Hans.mjs +0 -1
  76. package/node_modules/typebox/build/system/locale/zh_Hant.mjs +0 -1
  77. package/node_modules/typebox/build/system/memory/clone.d.mts +2 -3
  78. package/node_modules/typebox/build/system/memory/clone.mjs +73 -26
  79. package/node_modules/typebox/build/system/settings/settings.d.mts +15 -0
  80. package/node_modules/typebox/build/system/settings/settings.mjs +3 -1
  81. package/node_modules/typebox/build/type/action/_add_immutable.d.mts +11 -0
  82. package/node_modules/typebox/build/type/action/_add_immutable.mjs +11 -0
  83. package/node_modules/typebox/build/type/action/_add_optional.d.mts +11 -0
  84. package/node_modules/typebox/build/type/action/_add_optional.mjs +11 -0
  85. package/node_modules/typebox/build/type/action/_add_readonly.d.mts +11 -0
  86. package/node_modules/typebox/build/type/action/_add_readonly.mjs +11 -0
  87. package/node_modules/typebox/build/type/action/_remove_immutable.d.mts +11 -0
  88. package/node_modules/typebox/build/type/action/_remove_immutable.mjs +11 -0
  89. package/node_modules/typebox/build/type/action/_remove_optional.d.mts +11 -0
  90. package/node_modules/typebox/build/type/action/_remove_optional.mjs +11 -0
  91. package/node_modules/typebox/build/type/action/_remove_readonly.d.mts +11 -0
  92. package/node_modules/typebox/build/type/action/_remove_readonly.mjs +11 -0
  93. package/node_modules/typebox/build/type/action/conditional.d.mts +2 -3
  94. package/node_modules/typebox/build/type/action/conditional.mjs +2 -1
  95. package/node_modules/typebox/build/type/action/index.d.mts +7 -4
  96. package/node_modules/typebox/build/type/action/index.mjs +7 -4
  97. package/node_modules/typebox/build/type/action/mapped.d.mts +2 -3
  98. package/node_modules/typebox/build/type/action/mapped.mjs +2 -1
  99. package/node_modules/typebox/build/type/action/module.d.mts +8 -7
  100. package/node_modules/typebox/build/type/action/module.mjs +7 -6
  101. package/node_modules/typebox/build/type/action/readonly_object.d.mts +0 -5
  102. package/node_modules/typebox/build/type/action/readonly_object.mjs +0 -5
  103. package/node_modules/typebox/build/type/action/with.d.mts +11 -0
  104. package/node_modules/typebox/build/type/action/with.mjs +11 -0
  105. package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +1 -1
  106. package/node_modules/typebox/build/type/engine/call/instantiate.d.mts +1 -3
  107. package/node_modules/typebox/build/type/engine/call/instantiate.mjs +3 -2
  108. package/node_modules/typebox/build/type/engine/call/resolve_arguments.mjs +2 -2
  109. package/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.d.mts +3 -4
  110. package/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.mjs +2 -1
  111. package/node_modules/typebox/build/type/engine/cyclic/candidates.d.mts +2 -3
  112. package/node_modules/typebox/build/type/engine/cyclic/candidates.mjs +3 -6
  113. package/node_modules/typebox/build/type/engine/cyclic/check.d.mts +6 -9
  114. package/node_modules/typebox/build/type/engine/cyclic/check.mjs +10 -16
  115. package/node_modules/typebox/build/type/engine/cyclic/dependencies.d.mts +1 -4
  116. package/node_modules/typebox/build/type/engine/cyclic/dependencies.mjs +9 -15
  117. package/node_modules/typebox/build/type/engine/cyclic/extends.d.mts +1 -4
  118. package/node_modules/typebox/build/type/engine/cyclic/extends.mjs +8 -14
  119. package/node_modules/typebox/build/type/engine/cyclic/instantiate.d.mts +2 -5
  120. package/node_modules/typebox/build/type/engine/cyclic/instantiate.mjs +3 -2
  121. package/node_modules/typebox/build/type/engine/enum/index.d.mts +0 -1
  122. package/node_modules/typebox/build/type/engine/enum/index.mjs +0 -1
  123. package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +1 -2
  124. package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +2 -6
  125. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +10 -6
  126. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +10 -6
  127. package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +2 -1
  128. package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +3 -3
  129. package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +17 -5
  130. package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +34 -8
  131. package/node_modules/typebox/build/type/engine/exclude/operation.d.mts +5 -6
  132. package/node_modules/typebox/build/type/engine/exclude/operation.mjs +11 -12
  133. package/node_modules/typebox/build/type/engine/extract/operation.d.mts +5 -6
  134. package/node_modules/typebox/build/type/engine/extract/operation.mjs +11 -12
  135. package/node_modules/typebox/build/type/engine/immutable/instantiate_add.d.mts +10 -0
  136. package/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs +14 -0
  137. package/node_modules/typebox/build/type/engine/immutable/instantiate_remove.d.mts +10 -0
  138. package/node_modules/typebox/build/type/engine/immutable/instantiate_remove.mjs +14 -0
  139. package/node_modules/typebox/build/type/engine/index.d.mts +2 -2
  140. package/node_modules/typebox/build/type/engine/index.mjs +2 -2
  141. package/node_modules/typebox/build/type/engine/indexable/from_dependent.d.mts +5 -0
  142. package/node_modules/typebox/build/type/engine/indexable/from_dependent.mjs +8 -0
  143. package/node_modules/typebox/build/type/engine/indexable/from_enum.d.mts +3 -3
  144. package/node_modules/typebox/build/type/engine/indexable/from_enum.mjs +4 -4
  145. package/node_modules/typebox/build/type/engine/indexable/from_template_literal.d.mts +2 -2
  146. package/node_modules/typebox/build/type/engine/indexable/from_template_literal.mjs +3 -3
  147. package/node_modules/typebox/build/type/engine/indexable/from_type.d.mts +3 -1
  148. package/node_modules/typebox/build/type/engine/indexable/from_type.mjs +9 -6
  149. package/node_modules/typebox/build/type/engine/indexed/instantiate.d.mts +2 -1
  150. package/node_modules/typebox/build/type/engine/indexed/instantiate.mjs +5 -2
  151. package/node_modules/typebox/build/type/engine/instantiate.d.mts +44 -31
  152. package/node_modules/typebox/build/type/engine/instantiate.mjs +82 -83
  153. package/node_modules/typebox/build/type/engine/interface/instantiate.d.mts +3 -6
  154. package/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.d.mts +2 -2
  155. package/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.mjs +3 -3
  156. package/node_modules/typebox/build/type/engine/keyof/instantiate.d.mts +2 -1
  157. package/node_modules/typebox/build/type/engine/keyof/instantiate.mjs +5 -1
  158. package/node_modules/typebox/build/type/engine/mapped/mapped_operation.d.mts +4 -4
  159. package/node_modules/typebox/build/type/engine/mapped/mapped_operation.mjs +3 -3
  160. package/node_modules/typebox/build/type/engine/mapped/mapped_variants.d.mts +5 -4
  161. package/node_modules/typebox/build/type/engine/mapped/mapped_variants.mjs +10 -5
  162. package/node_modules/typebox/build/type/engine/module/instantiate.d.mts +7 -9
  163. package/node_modules/typebox/build/type/engine/module/instantiate.mjs +17 -15
  164. package/node_modules/typebox/build/type/engine/object/from_dependent.d.mts +5 -0
  165. package/node_modules/typebox/build/type/engine/object/from_dependent.mjs +8 -0
  166. package/node_modules/typebox/build/type/engine/object/from_type.d.mts +3 -1
  167. package/node_modules/typebox/build/type/engine/object/from_type.mjs +8 -5
  168. package/node_modules/typebox/build/type/engine/object/from_union.mjs +2 -2
  169. package/node_modules/typebox/build/type/engine/optional/instantiate_add.d.mts +10 -0
  170. package/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs +14 -0
  171. package/node_modules/typebox/build/type/engine/optional/instantiate_remove.d.mts +10 -0
  172. package/node_modules/typebox/build/type/engine/optional/instantiate_remove.mjs +14 -0
  173. package/node_modules/typebox/build/type/engine/parameters/instantiate.d.mts +3 -4
  174. package/node_modules/typebox/build/type/engine/parameters/instantiate.mjs +2 -1
  175. package/node_modules/typebox/build/type/engine/partial/from_dependent.d.mts +5 -0
  176. package/node_modules/typebox/build/type/engine/partial/from_dependent.mjs +8 -0
  177. package/node_modules/typebox/build/type/engine/partial/from_intersect.d.mts +1 -1
  178. package/node_modules/typebox/build/type/engine/partial/from_intersect.mjs +3 -2
  179. package/node_modules/typebox/build/type/engine/partial/from_object.d.mts +2 -2
  180. package/node_modules/typebox/build/type/engine/partial/from_object.mjs +2 -2
  181. package/node_modules/typebox/build/type/engine/partial/from_type.d.mts +3 -1
  182. package/node_modules/typebox/build/type/engine/partial/from_type.mjs +7 -4
  183. package/node_modules/typebox/build/type/engine/priority/index.d.mts +1 -0
  184. package/node_modules/typebox/build/type/engine/priority/index.mjs +1 -0
  185. package/node_modules/typebox/build/type/engine/priority/priority.d.mts +20 -0
  186. package/node_modules/typebox/build/type/engine/priority/priority.mjs +28 -0
  187. package/node_modules/typebox/build/type/engine/readonly/instantiate_add.d.mts +10 -0
  188. package/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs +14 -0
  189. package/node_modules/typebox/build/type/engine/readonly/instantiate_remove.d.mts +10 -0
  190. package/node_modules/typebox/build/type/engine/readonly/instantiate_remove.mjs +14 -0
  191. package/node_modules/typebox/build/type/engine/readonly_object/from_array.d.mts +2 -2
  192. package/node_modules/typebox/build/type/engine/readonly_object/from_array.mjs +2 -2
  193. package/node_modules/typebox/build/type/engine/readonly_object/from_dependent.d.mts +5 -0
  194. package/node_modules/typebox/build/type/engine/readonly_object/from_dependent.mjs +8 -0
  195. package/node_modules/typebox/build/type/engine/readonly_object/from_intersect.d.mts +1 -1
  196. package/node_modules/typebox/build/type/engine/readonly_object/from_intersect.mjs +3 -2
  197. package/node_modules/typebox/build/type/engine/readonly_object/from_object.d.mts +2 -2
  198. package/node_modules/typebox/build/type/engine/readonly_object/from_object.mjs +2 -2
  199. package/node_modules/typebox/build/type/engine/readonly_object/from_tuple.d.mts +2 -2
  200. package/node_modules/typebox/build/type/engine/readonly_object/from_tuple.mjs +2 -2
  201. package/node_modules/typebox/build/type/engine/readonly_object/from_type.d.mts +3 -1
  202. package/node_modules/typebox/build/type/engine/readonly_object/from_type.mjs +8 -5
  203. package/node_modules/typebox/build/type/engine/record/from_key_enum.d.mts +2 -2
  204. package/node_modules/typebox/build/type/engine/record/from_key_enum.mjs +2 -2
  205. package/node_modules/typebox/build/type/engine/record/from_key_template_literal.d.mts +2 -2
  206. package/node_modules/typebox/build/type/engine/record/from_key_template_literal.mjs +2 -2
  207. package/node_modules/typebox/build/type/engine/ref/instantiate.d.mts +3 -3
  208. package/node_modules/typebox/build/type/engine/ref/instantiate.mjs +6 -6
  209. package/node_modules/typebox/build/type/engine/required/from_dependent.d.mts +5 -0
  210. package/node_modules/typebox/build/type/engine/required/from_dependent.mjs +8 -0
  211. package/node_modules/typebox/build/type/engine/required/from_intersect.d.mts +1 -1
  212. package/node_modules/typebox/build/type/engine/required/from_intersect.mjs +3 -2
  213. package/node_modules/typebox/build/type/engine/required/from_object.d.mts +2 -2
  214. package/node_modules/typebox/build/type/engine/required/from_object.mjs +2 -2
  215. package/node_modules/typebox/build/type/engine/required/from_type.d.mts +3 -1
  216. package/node_modules/typebox/build/type/engine/required/from_type.mjs +7 -4
  217. package/node_modules/typebox/build/type/engine/template_literal/decode.mjs +3 -3
  218. package/node_modules/typebox/build/type/engine/template_literal/encode.d.mts +2 -2
  219. package/node_modules/typebox/build/type/engine/template_literal/encode.mjs +6 -6
  220. package/node_modules/typebox/build/type/engine/template_literal/is_finite.mjs +1 -1
  221. package/node_modules/typebox/build/type/engine/template_literal/is_pattern.mjs +1 -0
  222. package/node_modules/typebox/build/type/engine/this/expand_this.d.mts +1 -4
  223. package/node_modules/typebox/build/type/engine/this/expand_this.mjs +7 -13
  224. package/node_modules/typebox/build/type/engine/with/instantiate.d.mts +8 -0
  225. package/node_modules/typebox/build/type/engine/{options → with}/instantiate.mjs +5 -5
  226. package/node_modules/typebox/build/type/extends/dependent.d.mts +6 -0
  227. package/node_modules/typebox/build/type/extends/dependent.mjs +6 -0
  228. package/node_modules/typebox/build/type/extends/enum.d.mts +4 -4
  229. package/node_modules/typebox/build/type/extends/enum.mjs +3 -2
  230. package/node_modules/typebox/build/type/extends/extends_left.d.mts +5 -7
  231. package/node_modules/typebox/build/type/extends/extends_left.mjs +24 -27
  232. package/node_modules/typebox/build/type/extends/extends_right.d.mts +7 -5
  233. package/node_modules/typebox/build/type/extends/extends_right.mjs +20 -15
  234. package/node_modules/typebox/build/type/extends/inference.mjs +1 -1
  235. package/node_modules/typebox/build/type/extends/object.d.mts +8 -1
  236. package/node_modules/typebox/build/type/extends/object.mjs +25 -3
  237. package/node_modules/typebox/build/type/extends/parameters.mjs +2 -2
  238. package/node_modules/typebox/build/type/extends/record.d.mts +13 -0
  239. package/node_modules/typebox/build/type/extends/record.mjs +23 -0
  240. package/node_modules/typebox/build/type/extends/template_literal.d.mts +3 -3
  241. package/node_modules/typebox/build/type/extends/template_literal.mjs +3 -3
  242. package/node_modules/typebox/build/type/extends/tuple.d.mts +3 -6
  243. package/node_modules/typebox/build/type/extends/tuple.mjs +6 -5
  244. package/node_modules/typebox/build/type/extends/union.mjs +2 -2
  245. package/node_modules/typebox/build/type/script/mapping.d.mts +84 -99
  246. package/node_modules/typebox/build/type/script/mapping.mjs +81 -85
  247. package/node_modules/typebox/build/type/script/parser.d.mts +40 -40
  248. package/node_modules/typebox/build/type/script/parser.mjs +22 -22
  249. package/node_modules/typebox/build/type/script/script.d.mts +3 -4
  250. package/node_modules/typebox/build/type/script/script.mjs +3 -2
  251. package/node_modules/typebox/build/type/script/token/internal/guard.d.mts +1 -1
  252. package/node_modules/typebox/build/type/script/token/internal/guard.mjs +1 -1
  253. package/node_modules/typebox/build/type/script/token/internal/take.mjs +1 -1
  254. package/node_modules/typebox/build/type/script/token/until.mjs +2 -2
  255. package/node_modules/typebox/build/type/types/_codec.d.mts +12 -12
  256. package/node_modules/typebox/build/type/types/_codec.mjs +0 -1
  257. package/node_modules/typebox/build/type/types/_immutable.d.mts +2 -9
  258. package/node_modules/typebox/build/type/types/_immutable.mjs +2 -10
  259. package/node_modules/typebox/build/type/types/_optional.d.mts +2 -9
  260. package/node_modules/typebox/build/type/types/_optional.mjs +2 -11
  261. package/node_modules/typebox/build/type/types/_readonly.d.mts +2 -9
  262. package/node_modules/typebox/build/type/types/_readonly.mjs +2 -10
  263. package/node_modules/typebox/build/type/types/_refine.d.mts +8 -10
  264. package/node_modules/typebox/build/type/types/_refine.mjs +1 -2
  265. package/node_modules/typebox/build/type/types/call.d.mts +3 -3
  266. package/node_modules/typebox/build/type/types/call.mjs +3 -2
  267. package/node_modules/typebox/build/type/types/deferred.d.mts +1 -0
  268. package/node_modules/typebox/build/type/types/deferred.mjs +1 -1
  269. package/node_modules/typebox/build/type/types/dependent.d.mts +17 -0
  270. package/node_modules/typebox/build/type/types/dependent.mjs +24 -0
  271. package/node_modules/typebox/build/type/types/enum.d.mts +3 -1
  272. package/node_modules/typebox/build/type/types/enum.mjs +5 -0
  273. package/node_modules/typebox/build/type/types/index.d.mts +1 -4
  274. package/node_modules/typebox/build/type/types/index.mjs +1 -4
  275. package/node_modules/typebox/build/type/types/number.d.mts +1 -1
  276. package/node_modules/typebox/build/type/types/number.mjs +1 -1
  277. package/node_modules/typebox/build/type/types/record.d.mts +13 -7
  278. package/node_modules/typebox/build/type/types/record.mjs +15 -9
  279. package/node_modules/typebox/build/type/types/static.d.mts +2 -5
  280. package/node_modules/typebox/build/typebox.d.mts +4 -8
  281. package/node_modules/typebox/build/typebox.mjs +4 -8
  282. package/node_modules/typebox/build/value/clean/clean.mjs +4 -2
  283. package/node_modules/typebox/build/value/clean/from_intersect.mjs +2 -2
  284. package/node_modules/typebox/build/value/clean/from_type.mjs +8 -10
  285. package/node_modules/typebox/build/value/clean/from_union.d.mts +1 -1
  286. package/node_modules/typebox/build/value/clean/from_union.mjs +1 -2
  287. package/node_modules/typebox/build/value/clone/clone.mjs +2 -73
  288. package/node_modules/typebox/build/value/codec/decode.mjs +4 -2
  289. package/node_modules/typebox/build/value/codec/encode.mjs +4 -2
  290. package/node_modules/typebox/build/value/codec/from_array.mjs +1 -4
  291. package/node_modules/typebox/build/value/codec/from_object.mjs +1 -4
  292. package/node_modules/typebox/build/value/codec/from_record.mjs +2 -7
  293. package/node_modules/typebox/build/value/codec/from_tuple.mjs +1 -4
  294. package/node_modules/typebox/build/value/codec/from_union.mjs +2 -3
  295. package/node_modules/typebox/build/value/convert/from_enum.mjs +3 -4
  296. package/node_modules/typebox/build/value/convert/from_template_literal.d.mts +1 -1
  297. package/node_modules/typebox/build/value/convert/from_template_literal.mjs +2 -3
  298. package/node_modules/typebox/build/value/convert/from_type.mjs +19 -21
  299. package/node_modules/typebox/build/value/create/from_enum.mjs +2 -2
  300. package/node_modules/typebox/build/value/create/from_type.mjs +23 -31
  301. package/node_modules/typebox/build/value/default/from_object.mjs +1 -1
  302. package/node_modules/typebox/build/value/default/from_type.mjs +8 -10
  303. package/node_modules/typebox/build/value/index.d.mts +0 -1
  304. package/node_modules/typebox/build/value/index.mjs +0 -1
  305. package/node_modules/typebox/build/value/repair/from_enum.mjs +2 -3
  306. package/node_modules/typebox/build/value/repair/from_type.mjs +24 -22
  307. package/node_modules/typebox/build/value/shared/union_priority_sort.d.mts +6 -2
  308. package/node_modules/typebox/build/value/shared/union_priority_sort.mjs +62 -26
  309. package/node_modules/typebox/build/value/value.d.mts +0 -1
  310. package/node_modules/typebox/build/value/value.mjs +0 -1
  311. package/node_modules/typebox/package.json +25 -25
  312. package/node_modules/typebox/readme.md +97 -80
  313. package/npm-shrinkwrap.json +12 -12
  314. package/package.json +6 -6
  315. package/node_modules/commander/esm.mjs +0 -16
  316. package/node_modules/commander/typings/esm.d.mts +0 -3
  317. package/node_modules/typebox/build/schema/engine/_guard.d.mts +0 -6
  318. package/node_modules/typebox/build/schema/engine/_guard.mjs +0 -26
  319. package/node_modules/typebox/build/schema/types/_guard.d.mts +0 -10
  320. package/node_modules/typebox/build/schema/types/_guard.mjs +0 -16
  321. package/node_modules/typebox/build/type/action/_optional.d.mts +0 -19
  322. package/node_modules/typebox/build/type/action/_optional.mjs +0 -40
  323. package/node_modules/typebox/build/type/action/_readonly.d.mts +0 -19
  324. package/node_modules/typebox/build/type/action/_readonly.mjs +0 -40
  325. package/node_modules/typebox/build/type/action/awaited.d.mts +0 -15
  326. package/node_modules/typebox/build/type/action/awaited.mjs +0 -15
  327. package/node_modules/typebox/build/type/action/options.d.mts +0 -11
  328. package/node_modules/typebox/build/type/action/options.mjs +0 -11
  329. package/node_modules/typebox/build/type/engine/awaited/instantiate.d.mts +0 -11
  330. package/node_modules/typebox/build/type/engine/awaited/instantiate.mjs +0 -20
  331. package/node_modules/typebox/build/type/engine/enum/enum_to_union.d.mts +0 -14
  332. package/node_modules/typebox/build/type/engine/enum/enum_to_union.mjs +0 -24
  333. package/node_modules/typebox/build/type/engine/options/index.d.mts +0 -1
  334. package/node_modules/typebox/build/type/engine/options/index.mjs +0 -1
  335. package/node_modules/typebox/build/type/engine/options/instantiate.d.mts +0 -8
  336. package/node_modules/typebox/build/type/extends/async_iterator.d.mts +0 -7
  337. package/node_modules/typebox/build/type/extends/async_iterator.mjs +0 -9
  338. package/node_modules/typebox/build/type/extends/iterator.d.mts +0 -7
  339. package/node_modules/typebox/build/type/extends/iterator.mjs +0 -9
  340. package/node_modules/typebox/build/type/extends/promise.d.mts +0 -7
  341. package/node_modules/typebox/build/type/extends/promise.mjs +0 -9
  342. package/node_modules/typebox/build/type/types/async_iterator.d.mts +0 -20
  343. package/node_modules/typebox/build/type/types/async_iterator.mjs +0 -28
  344. package/node_modules/typebox/build/type/types/base.d.mts +0 -50
  345. package/node_modules/typebox/build/type/types/base.mjs +0 -84
  346. package/node_modules/typebox/build/type/types/iterator.d.mts +0 -20
  347. package/node_modules/typebox/build/type/types/iterator.mjs +0 -28
  348. package/node_modules/typebox/build/type/types/promise.d.mts +0 -21
  349. package/node_modules/typebox/build/type/types/promise.mjs +0 -29
  350. package/node_modules/typebox/build/value/clean/from_base.d.mts +0 -2
  351. package/node_modules/typebox/build/value/clean/from_base.mjs +0 -4
  352. package/node_modules/typebox/build/value/convert/from_base.d.mts +0 -2
  353. package/node_modules/typebox/build/value/convert/from_base.mjs +0 -4
  354. package/node_modules/typebox/build/value/create/from_async_iterator.d.mts +0 -2
  355. package/node_modules/typebox/build/value/create/from_async_iterator.mjs +0 -5
  356. package/node_modules/typebox/build/value/create/from_base.d.mts +0 -2
  357. package/node_modules/typebox/build/value/create/from_base.mjs +0 -4
  358. package/node_modules/typebox/build/value/create/from_iterator.d.mts +0 -2
  359. package/node_modules/typebox/build/value/create/from_iterator.mjs +0 -5
  360. package/node_modules/typebox/build/value/create/from_promise.d.mts +0 -2
  361. package/node_modules/typebox/build/value/create/from_promise.mjs +0 -5
  362. package/node_modules/typebox/build/value/default/from_base.d.mts +0 -2
  363. package/node_modules/typebox/build/value/default/from_base.mjs +0 -5
  364. package/node_modules/typebox/build/value/mutate/error.d.mts +0 -3
  365. package/node_modules/typebox/build/value/mutate/error.mjs +0 -6
  366. package/node_modules/typebox/build/value/mutate/from_array.d.mts +0 -2
  367. package/node_modules/typebox/build/value/mutate/from_array.mjs +0 -16
  368. package/node_modules/typebox/build/value/mutate/from_object.d.mts +0 -2
  369. package/node_modules/typebox/build/value/mutate/from_object.mjs +0 -40
  370. package/node_modules/typebox/build/value/mutate/from_unknown.d.mts +0 -2
  371. package/node_modules/typebox/build/value/mutate/from_unknown.mjs +0 -7
  372. package/node_modules/typebox/build/value/mutate/from_value.d.mts +0 -2
  373. package/node_modules/typebox/build/value/mutate/from_value.mjs +0 -12
  374. package/node_modules/typebox/build/value/mutate/index.d.mts +0 -1
  375. package/node_modules/typebox/build/value/mutate/index.mjs +0 -1
  376. package/node_modules/typebox/build/value/mutate/mutate.d.mts +0 -11
  377. package/node_modules/typebox/build/value/mutate/mutate.mjs +0 -41
  378. package/node_modules/typebox/build/value/repair/from_base.d.mts +0 -2
  379. package/node_modules/typebox/build/value/repair/from_base.mjs +0 -8
  380. /package/node_modules/typebox/build/type/engine/{awaited → with}/index.d.mts +0 -0
  381. /package/node_modules/typebox/build/type/engine/{awaited → with}/index.mjs +0 -0
package/dist/index.js CHANGED
@@ -1,10 +1,13 @@
1
- import { a as buildGoogleMeetCalendarDayWindow, i as resolveGoogleMeetGatewayOperationTimeoutMs, n as DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND, o as findGoogleMeetCalendarEvent, r as resolveGoogleMeetConfig, s as listGoogleMeetCalendarEvents, t as DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND } from "./config-D_YKxh0m.js";
2
- import { a as isSameMeetUrlForReuse, c as resolveChromeNode, f as endGoogleMeetActiveConference, g as fetchLatestGoogleMeetConferenceRecord, h as fetchGoogleMeetSpace, i as callBrowserProxyOnNode, l as resolveChromeNodeInfo, m as fetchGoogleMeetAttendance, n as isGoogleMeetBrowserManualActionError, o as normalizeMeetUrlForReuse, p as fetchGoogleMeetArtifacts, r as asBrowserTabs, s as readBrowserTab, t as createMeetWithBrowserProxyOnNode, u as buildGoogleMeetPreflightReport } from "./chrome-create-Cf3bQPav.js";
1
+ import { a as buildGoogleMeetCalendarDayWindow, i as resolveGoogleMeetGatewayOperationTimeoutMs, n as DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND, o as findGoogleMeetCalendarEvent, r as resolveGoogleMeetConfig, s as listGoogleMeetCalendarEvents, t as DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND } from "./config-DDYRr7-P.js";
2
+ import { _ as fetchLatestGoogleMeetConferenceRecord, a as forceMeetEnglishUi, c as readBrowserTab, d as buildGoogleMeetPreflightReport, g as fetchGoogleMeetSpace, h as fetchGoogleMeetAttendance, i as callBrowserProxyOnNode, l as resolveChromeNode, m as fetchGoogleMeetArtifacts, n as isGoogleMeetBrowserManualActionError, o as isSameMeetUrlForReuse, p as endGoogleMeetActiveConference, r as asBrowserTabs, s as normalizeMeetUrlForReuse, t as createMeetWithBrowserProxyOnNode, u as resolveChromeNodeInfo } from "./chrome-create-BhgM0jQO.js";
3
3
  import { optionalPositiveIntegerSchema, readPositiveIntegerParam } from "openclaw/plugin-sdk/channel-actions";
4
4
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
5
5
  import { ErrorCodes, GatewayClient, callGatewayFromCli, errorShape, startGatewayClientWhenEventLoopReady } from "openclaw/plugin-sdk/gateway-runtime";
6
+ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
6
7
  import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
8
+ import { normalizeAgentId } from "openclaw/plugin-sdk/routing";
7
9
  import { asRecord, normalizeOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
10
+ import { jsonResult } from "openclaw/plugin-sdk/tool-results";
8
11
  import { Type } from "typebox";
9
12
  import { isBlockedHostnameOrIp } from "openclaw/plugin-sdk/ssrf-runtime";
10
13
  import { addTimerTimeoutGraceMs } from "openclaw/plugin-sdk/number-runtime";
@@ -16,7 +19,6 @@ import { sleep } from "openclaw/plugin-sdk/runtime-env";
16
19
  import fs from "node:fs";
17
20
  import os from "node:os";
18
21
  import path from "node:path";
19
- import { normalizeAgentId } from "openclaw/plugin-sdk/routing";
20
22
  import { getRealtimeTranscriptionProvider, listRealtimeTranscriptionProviders } from "openclaw/plugin-sdk/realtime-transcription";
21
23
  //#region extensions/google-meet/src/transports/chrome-audio-device.ts
22
24
  const GOOGLE_MEET_SYSTEM_PROFILER_COMMAND = "/usr/sbin/system_profiler";
@@ -962,6 +964,8 @@ async function startCommandAgentAudioBridge(params) {
962
964
  inputProcess.stderr?.on("data", (chunk) => {
963
965
  params.logger.debug?.(`[google-meet] audio input: ${String(chunk).trim()}`);
964
966
  });
967
+ inputProcess.stdout?.on("error", fail("audio input command stdout"));
968
+ inputProcess.stderr?.on("error", fail("audio input command stderr"));
965
969
  outputProcess.on("error", fail("audio output command"));
966
970
  outputProcess.stdin?.on?.("error", fail("audio output command"));
967
971
  outputProcess.on("exit", (code, signal) => {
@@ -973,6 +977,7 @@ async function startCommandAgentAudioBridge(params) {
973
977
  outputProcess.stderr?.on("data", (chunk) => {
974
978
  params.logger.debug?.(`[google-meet] audio output: ${String(chunk).trim()}`);
975
979
  });
980
+ outputProcess.stderr?.on("error", fail("audio output command stderr"));
976
981
  const writeOutputAudio = (audio) => {
977
982
  const suppression = recordGoogleMeetOutputActivity({
978
983
  tracker: outputActivity,
@@ -1241,6 +1246,10 @@ async function startCommandRealtimeAudioBridge(params) {
1241
1246
  proc.stderr?.on("data", (chunk) => {
1242
1247
  params.logger.debug?.(`[google-meet] audio output: ${String(chunk).trim()}`);
1243
1248
  });
1249
+ proc.stderr?.on("error", (error) => {
1250
+ if (proc !== outputProcess) return;
1251
+ fail("audio output command stderr")(error);
1252
+ });
1244
1253
  };
1245
1254
  const clearOutputPlayback = () => {
1246
1255
  if (stopped) return;
@@ -1287,9 +1296,15 @@ async function startCommandRealtimeAudioBridge(params) {
1287
1296
  if (beforeClearCount === clearCount) clearOutputPlayback();
1288
1297
  params.logger.debug?.(`[google-meet] human barge-in detected by local input (rms=${Math.round(stats.rms)}, peak=${stats.peak})`);
1289
1298
  });
1299
+ bargeInInputProcess.stdout?.on("error", (error) => {
1300
+ params.logger.warn(`[google-meet] human barge-in input stdout failed: ${formatErrorMessage(error)}`);
1301
+ });
1290
1302
  bargeInInputProcess.stderr?.on("data", (chunk) => {
1291
1303
  params.logger.debug?.(`[google-meet] barge-in input: ${String(chunk).trim()}`);
1292
1304
  });
1305
+ bargeInInputProcess.stderr?.on("error", (error) => {
1306
+ params.logger.warn(`[google-meet] human barge-in input stderr failed: ${formatErrorMessage(error)}`);
1307
+ });
1293
1308
  bargeInInputProcess.on("error", (error) => {
1294
1309
  params.logger.warn(`[google-meet] human barge-in input failed: ${formatErrorMessage(error)}`);
1295
1310
  });
@@ -1308,6 +1323,8 @@ async function startCommandRealtimeAudioBridge(params) {
1308
1323
  inputProcess.stderr?.on("data", (chunk) => {
1309
1324
  params.logger.debug?.(`[google-meet] audio input: ${String(chunk).trim()}`);
1310
1325
  });
1326
+ inputProcess.stdout?.on("error", fail("audio input command stdout"));
1327
+ inputProcess.stderr?.on("error", fail("audio input command stderr"));
1311
1328
  const resolved = resolveGoogleMeetRealtimeProvider({
1312
1329
  config: params.config,
1313
1330
  fullConfig: params.fullConfig,
@@ -2389,7 +2406,7 @@ function meetStatusScript(params) {
2389
2406
  notes.push("Muted Meet microphone for observe-only mode.");
2390
2407
  }
2391
2408
  const join = !readOnly && ${JSON.stringify(params.autoJoin)}
2392
- ? findButton(/join now|ask to join/i)
2409
+ ? findButton(/join now|ask to join|join here too/i)
2393
2410
  : null;
2394
2411
  if (join) join.click();
2395
2412
  const microphoneChoice = findButton(/\\buse microphone\\b/i);
@@ -2623,7 +2640,7 @@ async function openMeetWithBrowserRequest(params) {
2623
2640
  tab = readBrowserTab(await params.callBrowser({
2624
2641
  method: "POST",
2625
2642
  path: "/tabs/open",
2626
- body: { url: params.url },
2643
+ body: { url: forceMeetEnglishUi(params.url) },
2627
2644
  timeoutMs
2628
2645
  }));
2629
2646
  targetId = tab?.targetId;
@@ -2967,93 +2984,88 @@ async function createConnectedGatewayClient(config) {
2967
2984
  });
2968
2985
  return client;
2969
2986
  }
2987
+ function createVoiceCallGateway(params) {
2988
+ if (!params.config.voiceCall.gatewayUrl) return {
2989
+ trustedPluginIdentity: true,
2990
+ request: (method, requestParams) => params.runtime.gateway.request(method, requestParams, { timeoutMs: params.config.voiceCall.requestTimeoutMs })
2991
+ };
2992
+ return {
2993
+ trustedPluginIdentity: false,
2994
+ async request(method, requestParams) {
2995
+ const client = await createConnectedGatewayClient(params.config);
2996
+ try {
2997
+ return await client.request(method, requestParams, { timeoutMs: params.config.voiceCall.requestTimeoutMs });
2998
+ } finally {
2999
+ await client.stopAndWait({ timeoutMs: 1e3 });
3000
+ }
3001
+ }
3002
+ };
3003
+ }
2970
3004
  function isVoiceCallMissingError(error) {
2971
3005
  const message = formatErrorMessage(error).toLowerCase();
2972
3006
  return message.includes("call not found") || message.includes("call is not active");
2973
3007
  }
2974
3008
  async function joinMeetViaVoiceCallGateway(params) {
2975
- let client;
2976
- try {
2977
- client = await createConnectedGatewayClient(params.config);
2978
- params.logger?.info(`[google-meet] Delegating Twilio join to Voice Call (dtmf=${params.dtmfSequence ? "pre-connect" : "none"}, intro=${params.message ? "delayed" : "none"})`);
2979
- const start = await client.request("voicecall.start", {
2980
- to: params.dialInNumber,
2981
- mode: "conversation",
2982
- ...params.dtmfSequence ? { dtmfSequence: params.dtmfSequence } : {},
2983
- ...params.requesterSessionKey ? { requesterSessionKey: params.requesterSessionKey } : {},
2984
- ...params.sessionKey ? { sessionKey: params.sessionKey } : {}
2985
- }, { timeoutMs: params.config.voiceCall.requestTimeoutMs });
2986
- if (!start.callId) throw new Error(start.error || "voicecall.start did not return callId");
2987
- params.logger?.info(`[google-meet] Voice Call Twilio phone leg started: callId=${start.callId}`);
2988
- const dtmfSent = Boolean(params.dtmfSequence);
2989
- if (dtmfSent) params.logger?.info(`[google-meet] Meet DTMF queued before realtime connect: callId=${start.callId} digits=${params.dtmfSequence?.length ?? 0}`);
2990
- let introSent = false;
2991
- if (params.message) {
2992
- const delayMs = params.dtmfSequence ? params.config.voiceCall.postDtmfSpeechDelayMs : 0;
2993
- if (delayMs > 0) {
2994
- params.logger?.info(`[google-meet] Waiting ${delayMs}ms after Meet DTMF before speaking intro for callId=${start.callId}`);
2995
- await sleep(delayMs);
2996
- }
2997
- let spoken;
2998
- try {
2999
- spoken = await client.request("voicecall.speak", {
3000
- callId: start.callId,
3001
- allowTwimlFallback: false,
3002
- message: params.message
3003
- }, { timeoutMs: params.config.voiceCall.requestTimeoutMs });
3004
- } catch (err) {
3005
- params.logger?.warn?.(`[google-meet] Skipped intro speech because realtime bridge was not ready: ${formatErrorMessage(err)}`);
3006
- spoken = { success: false };
3007
- }
3008
- if (spoken.success === false) params.logger?.warn?.(`[google-meet] Skipped intro speech because realtime bridge was not ready: ${spoken.error || "voicecall.speak failed"}`);
3009
- else {
3010
- introSent = true;
3011
- params.logger?.info(`[google-meet] Intro speech requested after Meet dial sequence: callId=${start.callId}`);
3012
- }
3009
+ if (params.agentId && params.agentId !== "main" && !params.gateway.trustedPluginIdentity) throw new Error("Per-agent Voice Call routing requires the local Gateway runtime. Remove google-meet voiceCall.gatewayUrl or omit agent routing.");
3010
+ params.logger?.info(`[google-meet] Delegating Twilio join to Voice Call (dtmf=${params.dtmfSequence ? "pre-connect" : "none"}, intro=${params.message ? "delayed" : "none"})`);
3011
+ const start = await params.gateway.request("voicecall.start", {
3012
+ to: params.dialInNumber,
3013
+ mode: "conversation",
3014
+ ...params.dtmfSequence ? { dtmfSequence: params.dtmfSequence } : {},
3015
+ ...params.requesterSessionKey ? { requesterSessionKey: params.requesterSessionKey } : {},
3016
+ ...params.agentId && params.gateway.trustedPluginIdentity ? { agentId: params.agentId } : {},
3017
+ ...params.sessionKey ? { sessionKey: params.sessionKey } : {}
3018
+ });
3019
+ if (!start.callId) throw new Error(start.error || "voicecall.start did not return callId");
3020
+ params.logger?.info(`[google-meet] Voice Call Twilio phone leg started: callId=${start.callId}`);
3021
+ const dtmfSent = Boolean(params.dtmfSequence);
3022
+ if (dtmfSent) params.logger?.info(`[google-meet] Meet DTMF queued before realtime connect: callId=${start.callId} digits=${params.dtmfSequence?.length ?? 0}`);
3023
+ let introSent = false;
3024
+ if (params.message) {
3025
+ const delayMs = params.dtmfSequence ? params.config.voiceCall.postDtmfSpeechDelayMs : 0;
3026
+ if (delayMs > 0) {
3027
+ params.logger?.info(`[google-meet] Waiting ${delayMs}ms after Meet DTMF before speaking intro for callId=${start.callId}`);
3028
+ await sleep(delayMs);
3013
3029
  }
3014
- return {
3015
- callId: start.callId,
3016
- dtmfSent,
3017
- introSent
3018
- };
3019
- } finally {
3020
- await client?.stopAndWait({ timeoutMs: 1e3 });
3021
- }
3022
- }
3023
- async function endMeetVoiceCallGatewayCall(params) {
3024
- let client;
3025
- try {
3026
- client = await createConnectedGatewayClient(params.config);
3030
+ let spoken;
3027
3031
  try {
3028
- await client.request("voicecall.end", { callId: params.callId }, { timeoutMs: params.config.voiceCall.requestTimeoutMs });
3032
+ spoken = await params.gateway.request("voicecall.speak", {
3033
+ callId: start.callId,
3034
+ allowTwimlFallback: false,
3035
+ message: params.message
3036
+ });
3029
3037
  } catch (err) {
3030
- if (!isVoiceCallMissingError(err)) throw err;
3038
+ params.logger?.warn?.(`[google-meet] Skipped intro speech because realtime bridge was not ready: ${formatErrorMessage(err)}`);
3039
+ spoken = { success: false };
3040
+ }
3041
+ if (spoken.success === false) params.logger?.warn?.(`[google-meet] Skipped intro speech because realtime bridge was not ready: ${spoken.error || "voicecall.speak failed"}`);
3042
+ else {
3043
+ introSent = true;
3044
+ params.logger?.info(`[google-meet] Intro speech requested after Meet dial sequence: callId=${start.callId}`);
3031
3045
  }
3032
- } finally {
3033
- await client?.stopAndWait({ timeoutMs: 1e3 });
3034
3046
  }
3047
+ return {
3048
+ callId: start.callId,
3049
+ dtmfSent,
3050
+ introSent
3051
+ };
3035
3052
  }
3036
- async function getMeetVoiceCallGatewayCall(params) {
3037
- let client;
3053
+ async function endMeetVoiceCallGatewayCall(params) {
3038
3054
  try {
3039
- client = await createConnectedGatewayClient(params.config);
3040
- return await client.request("voicecall.status", { callId: params.callId }, { timeoutMs: params.config.voiceCall.requestTimeoutMs });
3041
- } finally {
3042
- await client?.stopAndWait({ timeoutMs: 1e3 });
3055
+ await params.gateway.request("voicecall.end", { callId: params.callId });
3056
+ } catch (err) {
3057
+ if (!isVoiceCallMissingError(err)) throw err;
3043
3058
  }
3044
3059
  }
3060
+ async function getMeetVoiceCallGatewayCall(params) {
3061
+ return await params.gateway.request("voicecall.status", { callId: params.callId });
3062
+ }
3045
3063
  async function speakMeetViaVoiceCallGateway(params) {
3046
- let client;
3047
- try {
3048
- client = await createConnectedGatewayClient(params.config);
3049
- const spoken = await client.request("voicecall.speak", {
3050
- callId: params.callId,
3051
- message: params.message
3052
- }, { timeoutMs: params.config.voiceCall.requestTimeoutMs });
3053
- if (spoken.success === false) throw new Error(spoken.error || "voicecall.speak failed");
3054
- } finally {
3055
- await client?.stopAndWait({ timeoutMs: 1e3 });
3056
- }
3064
+ const spoken = await params.gateway.request("voicecall.speak", {
3065
+ callId: params.callId,
3066
+ message: params.message
3067
+ });
3068
+ if (spoken.success === false) throw new Error(spoken.error || "voicecall.speak failed");
3057
3069
  }
3058
3070
  //#endregion
3059
3071
  //#region extensions/google-meet/src/runtime.ts
@@ -3172,8 +3184,10 @@ var GoogleMeetRuntime = class {
3172
3184
  #sessionStops = /* @__PURE__ */ new Map();
3173
3185
  #sessionSpeakers = /* @__PURE__ */ new Map();
3174
3186
  #sessionHealth = /* @__PURE__ */ new Map();
3187
+ #voiceCallGateway;
3175
3188
  constructor(params) {
3176
3189
  this.params = params;
3190
+ this.#voiceCallGateway = createVoiceCallGateway(params);
3177
3191
  }
3178
3192
  list() {
3179
3193
  this.#refreshHealth();
@@ -3321,9 +3335,16 @@ var GoogleMeetRuntime = class {
3321
3335
  };
3322
3336
  try {
3323
3337
  if (transport === "chrome" || transport === "chrome-node") {
3338
+ const chromeConfig = request.agentId ? {
3339
+ ...this.params.config,
3340
+ realtime: {
3341
+ ...this.params.config.realtime,
3342
+ agentId: request.agentId
3343
+ }
3344
+ } : this.params.config;
3324
3345
  const result = transport === "chrome-node" ? await launchChromeMeetOnNode({
3325
3346
  runtime: this.params.runtime,
3326
- config: this.params.config,
3347
+ config: chromeConfig,
3327
3348
  fullConfig: this.params.fullConfig,
3328
3349
  meetingSessionId: session.id,
3329
3350
  requesterSessionKey: request.requesterSessionKey,
@@ -3332,7 +3353,7 @@ var GoogleMeetRuntime = class {
3332
3353
  logger: this.params.logger
3333
3354
  }) : await launchChromeMeet({
3334
3355
  runtime: this.params.runtime,
3335
- config: this.params.config,
3356
+ config: chromeConfig,
3336
3357
  fullConfig: this.params.fullConfig,
3337
3358
  meetingSessionId: session.id,
3338
3359
  requesterSessionKey: request.requesterSessionKey,
@@ -3360,11 +3381,13 @@ var GoogleMeetRuntime = class {
3360
3381
  const dtmfSequence = request.dtmfSequence || this.params.config.twilio.defaultDtmfSequence ? rawDtmfSequence : prefixDtmfWait(rawDtmfSequence, this.params.config.voiceCall.dtmfDelayMs);
3361
3382
  const voiceCallResult = this.params.config.voiceCall.enabled ? await joinMeetViaVoiceCallGateway({
3362
3383
  config: this.params.config,
3384
+ gateway: this.#voiceCallGateway,
3363
3385
  dialInNumber,
3364
3386
  dtmfSequence,
3365
3387
  logger: this.params.logger,
3366
3388
  ...request.requesterSessionKey ? { requesterSessionKey: request.requesterSessionKey } : {},
3367
- sessionKey: buildTwilioVoiceCallSessionKey(session.id),
3389
+ agentId: request.agentId,
3390
+ sessionKey: request.agentId ? `agent:${request.agentId}:google-meet:${session.id}` : buildTwilioVoiceCallSessionKey(session.id),
3368
3391
  message: isGoogleMeetTalkBackMode$1(mode) ? request.message ?? this.params.config.voiceCall.introMessage ?? this.params.config.realtime.introMessage : void 0
3369
3392
  }) : void 0;
3370
3393
  delegatedTwilioSpoken = Boolean(voiceCallResult?.introSent);
@@ -3378,7 +3401,7 @@ var GoogleMeetRuntime = class {
3378
3401
  };
3379
3402
  if (voiceCallResult?.callId) this.#sessionStops.set(session.id, async () => {
3380
3403
  await endMeetVoiceCallGatewayCall({
3381
- config: this.params.config,
3404
+ gateway: this.#voiceCallGateway,
3382
3405
  callId: voiceCallResult.callId
3383
3406
  });
3384
3407
  });
@@ -3425,7 +3448,7 @@ var GoogleMeetRuntime = class {
3425
3448
  if (session.transport === "twilio" && session.twilio?.voiceCallId) {
3426
3449
  try {
3427
3450
  await speakMeetViaVoiceCallGateway({
3428
- config: this.params.config,
3451
+ gateway: this.#voiceCallGateway,
3429
3452
  callId: session.twilio.voiceCallId,
3430
3453
  message: instructions || this.params.config.voiceCall.introMessage || this.params.config.realtime.introMessage || ""
3431
3454
  });
@@ -3619,7 +3642,7 @@ var GoogleMeetRuntime = class {
3619
3642
  }
3620
3643
  try {
3621
3644
  if ((await getMeetVoiceCallGatewayCall({
3622
- config: this.params.config,
3645
+ gateway: this.#voiceCallGateway,
3623
3646
  callId
3624
3647
  })).found === false) this.#markTwilioSessionEnded(session, "Voice Call is no longer active.");
3625
3648
  } catch (error) {
@@ -3723,7 +3746,7 @@ var GoogleMeetRuntime = class {
3723
3746
  //#endregion
3724
3747
  //#region extensions/google-meet/src/node-invoke-policy.ts
3725
3748
  const GOOGLE_MEET_CHROME_NODE_COMMAND = "googlemeet.chrome";
3726
- const START_MODES = new Set([
3749
+ const START_MODES = /* @__PURE__ */ new Set([
3727
3750
  "agent",
3728
3751
  "bidi",
3729
3752
  "realtime",
@@ -3867,16 +3890,8 @@ function createGoogleMeetChromeNodeInvokePolicy(config) {
3867
3890
  }
3868
3891
  //#endregion
3869
3892
  //#region extensions/google-meet/index.ts
3870
- let googleMeetCreateModulePromise = null;
3871
- let googleMeetCliModulePromise = null;
3872
- const loadGoogleMeetCreateModule = async () => {
3873
- googleMeetCreateModulePromise ??= import("./create-9bdDXOHB.js");
3874
- return await googleMeetCreateModulePromise;
3875
- };
3876
- const loadGoogleMeetCliModule = async () => {
3877
- googleMeetCliModulePromise ??= import("./cli-D-HGF-yt.js");
3878
- return await googleMeetCliModulePromise;
3879
- };
3893
+ const loadGoogleMeetCreateModule = createLazyRuntimeModule(() => import("./create-CkkaRlbI.js"));
3894
+ const loadGoogleMeetCliModule = createLazyRuntimeModule(() => import("./cli-D364Yrym.js"));
3880
3895
  const googleMeetConfigSchema = {
3881
3896
  parse(value) {
3882
3897
  return resolveGoogleMeetConfig(value);
@@ -4161,15 +4176,6 @@ const GoogleMeetToolSchema = Type.Object({
4161
4176
  function asParamRecord(params) {
4162
4177
  return params && typeof params === "object" && !Array.isArray(params) ? params : {};
4163
4178
  }
4164
- function json(payload) {
4165
- return {
4166
- content: [{
4167
- type: "text",
4168
- text: JSON.stringify(payload, null, 2)
4169
- }],
4170
- details: payload
4171
- };
4172
- }
4173
4179
  function normalizeTransport(value) {
4174
4180
  return value === "chrome" || value === "chrome-node" || value === "twilio" ? value : void 0;
4175
4181
  }
@@ -4230,6 +4236,7 @@ function readGatewayErrorDetails(err) {
4230
4236
  }
4231
4237
  async function callGoogleMeetGatewayFromTool(params) {
4232
4238
  try {
4239
+ if (params.runtime) return await params.runtime.gateway.request(googleMeetGatewayMethodForToolAction(params.action), params.raw, { timeoutMs: resolveGoogleMeetGatewayOperationTimeoutMs(params.config) });
4233
4240
  return await googleMeetToolDeps.callGatewayFromCli(googleMeetGatewayMethodForToolAction(params.action), {
4234
4241
  json: true,
4235
4242
  timeout: String(resolveGoogleMeetGatewayOperationTimeoutMs(params.config))
@@ -4240,6 +4247,15 @@ async function callGoogleMeetGatewayFromTool(params) {
4240
4247
  throw err;
4241
4248
  }
4242
4249
  }
4250
+ function keepTrustedToolAgentId(raw, client) {
4251
+ const { agentId: rawAgentId, ...rest } = raw;
4252
+ if (client?.internal?.pluginRuntimeOwnerId !== "google-meet") return rest;
4253
+ const agentId = normalizeOptionalString(rawAgentId);
4254
+ return agentId ? {
4255
+ ...rest,
4256
+ agentId
4257
+ } : rest;
4258
+ }
4243
4259
  async function createMeetFromParams(params) {
4244
4260
  return (await loadGoogleMeetCreateModule()).createMeetFromParams(params);
4245
4261
  }
@@ -4247,7 +4263,7 @@ async function createAndJoinMeetFromParams(params) {
4247
4263
  return (await loadGoogleMeetCreateModule()).createAndJoinMeetFromParams(params);
4248
4264
  }
4249
4265
  async function resolveGoogleMeetTokenFromParams(config, raw) {
4250
- const { resolveGoogleMeetAccessToken } = await import("./oauth-DK1mwF2i.js");
4266
+ const { resolveGoogleMeetAccessToken } = await import("./oauth-75iPDzIn.js");
4251
4267
  return resolveGoogleMeetAccessToken({
4252
4268
  clientId: normalizeOptionalString(raw.clientId) ?? config.oauth.clientId,
4253
4269
  clientSecret: normalizeOptionalString(raw.clientSecret) ?? config.oauth.clientSecret,
@@ -4404,25 +4420,27 @@ var google_meet_default = definePluginEntry({
4404
4420
  const payload = formatGatewayError(err);
4405
4421
  respond(false, payload, errorShape(code, typeof payload.error === "string" ? payload.error : "Google Meet request failed", { details: payload }));
4406
4422
  };
4407
- api.registerGatewayMethod("googlemeet.join", async ({ params, respond }) => {
4423
+ api.registerGatewayMethod("googlemeet.join", async ({ params, client, respond }) => {
4408
4424
  try {
4425
+ const trustedParams = keepTrustedToolAgentId(asParamRecord(params), client);
4409
4426
  respond(true, await (await ensureRuntime()).join({
4410
- url: resolveMeetingInput(config, params?.url),
4411
- transport: normalizeTransport(params?.transport),
4412
- mode: normalizeMode(params?.mode),
4413
- dialInNumber: normalizeOptionalString(params?.dialInNumber),
4414
- pin: normalizeOptionalString(params?.pin),
4415
- dtmfSequence: normalizeOptionalString(params?.dtmfSequence),
4416
- message: normalizeOptionalString(params?.message),
4417
- requesterSessionKey: normalizeOptionalString(params?.requesterSessionKey)
4427
+ url: resolveMeetingInput(config, trustedParams.url),
4428
+ transport: normalizeTransport(trustedParams.transport),
4429
+ mode: normalizeMode(trustedParams.mode),
4430
+ dialInNumber: normalizeOptionalString(trustedParams.dialInNumber),
4431
+ pin: normalizeOptionalString(trustedParams.pin),
4432
+ dtmfSequence: normalizeOptionalString(trustedParams.dtmfSequence),
4433
+ message: normalizeOptionalString(trustedParams.message),
4434
+ requesterSessionKey: normalizeOptionalString(trustedParams.requesterSessionKey),
4435
+ agentId: normalizeOptionalString(trustedParams.agentId)
4418
4436
  }));
4419
4437
  } catch (err) {
4420
4438
  sendError(respond, err);
4421
4439
  }
4422
4440
  });
4423
- api.registerGatewayMethod("googlemeet.create", async ({ params, respond }) => {
4441
+ api.registerGatewayMethod("googlemeet.create", async ({ params, client, respond }) => {
4424
4442
  try {
4425
- const raw = asParamRecord(params);
4443
+ const raw = keepTrustedToolAgentId(asParamRecord(params), client);
4426
4444
  respond(true, shouldJoinCreatedMeet(raw) ? await createAndJoinMeetFromParams({
4427
4445
  config,
4428
4446
  runtime: api.runtime,
@@ -4502,7 +4520,8 @@ var google_meet_default = definePluginEntry({
4502
4520
  });
4503
4521
  api.registerGatewayMethod("googlemeet.artifacts", async ({ params, respond }) => {
4504
4522
  try {
4505
- const resolved = await resolveArtifactQueryFromParams(config, asParamRecord(params));
4523
+ const raw = asParamRecord(params);
4524
+ const resolved = await resolveArtifactQueryFromParams(config, raw);
4506
4525
  respond(true, await fetchGoogleMeetArtifacts({
4507
4526
  accessToken: resolved.token.accessToken,
4508
4527
  meeting: resolved.meeting,
@@ -4518,7 +4537,8 @@ var google_meet_default = definePluginEntry({
4518
4537
  });
4519
4538
  api.registerGatewayMethod("googlemeet.attendance", async ({ params, respond }) => {
4520
4539
  try {
4521
- const resolved = await resolveArtifactQueryFromParams(config, asParamRecord(params));
4540
+ const raw = asParamRecord(params);
4541
+ const resolved = await resolveArtifactQueryFromParams(config, raw);
4522
4542
  respond(true, await fetchGoogleMeetAttendance({
4523
4543
  accessToken: resolved.token.accessToken,
4524
4544
  meeting: resolved.meeting,
@@ -4575,17 +4595,19 @@ var google_meet_default = definePluginEntry({
4575
4595
  sendError(respond, err);
4576
4596
  }
4577
4597
  });
4578
- api.registerGatewayMethod("googlemeet.testSpeech", async ({ params, respond }) => {
4598
+ api.registerGatewayMethod("googlemeet.testSpeech", async ({ params, client, respond }) => {
4579
4599
  try {
4600
+ const trustedParams = keepTrustedToolAgentId(asParamRecord(params), client);
4580
4601
  respond(true, await (await ensureRuntime()).testSpeech({
4581
- url: resolveMeetingInput(config, params?.url),
4582
- transport: normalizeTransport(params?.transport),
4583
- mode: normalizeMode(params?.mode),
4584
- dialInNumber: normalizeOptionalString(params?.dialInNumber),
4585
- pin: normalizeOptionalString(params?.pin),
4586
- dtmfSequence: normalizeOptionalString(params?.dtmfSequence),
4587
- message: normalizeOptionalString(params?.message),
4588
- requesterSessionKey: normalizeOptionalString(params?.requesterSessionKey)
4602
+ url: resolveMeetingInput(config, trustedParams.url),
4603
+ transport: normalizeTransport(trustedParams.transport),
4604
+ mode: normalizeMode(trustedParams.mode),
4605
+ dialInNumber: normalizeOptionalString(trustedParams.dialInNumber),
4606
+ pin: normalizeOptionalString(trustedParams.pin),
4607
+ dtmfSequence: normalizeOptionalString(trustedParams.dtmfSequence),
4608
+ message: normalizeOptionalString(trustedParams.message),
4609
+ requesterSessionKey: normalizeOptionalString(trustedParams.requesterSessionKey),
4610
+ agentId: normalizeOptionalString(trustedParams.agentId)
4589
4611
  }));
4590
4612
  } catch (err) {
4591
4613
  sendError(respond, err);
@@ -4611,58 +4633,65 @@ var google_meet_default = definePluginEntry({
4611
4633
  async execute(_toolCallId, params) {
4612
4634
  const raw = asParamRecord(params);
4613
4635
  const requesterSessionKey = normalizeOptionalString(toolContext.sessionKey);
4614
- const rawWithRequester = requesterSessionKey ? {
4615
- ...raw,
4616
- requesterSessionKey
4617
- } : raw;
4636
+ const agentId = toolContext.agentId ? normalizeAgentId(toolContext.agentId) : void 0;
4618
4637
  try {
4638
+ const useTrustedRuntime = agentId ? await api.runtime.gateway.isAvailable() : false;
4639
+ if (agentId && agentId !== "main" && !useTrustedRuntime) throw new Error("Per-agent Google Meet routing requires a Gateway-hosted agent run.");
4640
+ const rawWithRequester = {
4641
+ ...raw,
4642
+ ...requesterSessionKey ? { requesterSessionKey } : {},
4643
+ ...useTrustedRuntime ? { agentId } : {}
4644
+ };
4619
4645
  assertGoogleMeetAgentToolActionSupported({
4620
4646
  config,
4621
4647
  raw
4622
4648
  });
4623
4649
  switch (raw.action) {
4624
- case "join": return json(await callGoogleMeetGatewayFromTool({
4650
+ case "join": return jsonResult(await callGoogleMeetGatewayFromTool({
4625
4651
  config,
4626
4652
  action: "join",
4627
- raw: rawWithRequester
4653
+ raw: rawWithRequester,
4654
+ runtime: useTrustedRuntime ? api.runtime : void 0
4628
4655
  }));
4629
- case "create": return json(await callGoogleMeetGatewayFromTool({
4656
+ case "create": return jsonResult(await callGoogleMeetGatewayFromTool({
4630
4657
  config,
4631
4658
  action: "create",
4632
- raw: rawWithRequester
4659
+ raw: rawWithRequester,
4660
+ runtime: useTrustedRuntime ? api.runtime : void 0
4633
4661
  }));
4634
- case "test_speech": return json(await callGoogleMeetGatewayFromTool({
4662
+ case "test_speech": return jsonResult(await callGoogleMeetGatewayFromTool({
4635
4663
  config,
4636
4664
  action: "test_speech",
4637
- raw: rawWithRequester
4665
+ raw: rawWithRequester,
4666
+ runtime: useTrustedRuntime ? api.runtime : void 0
4638
4667
  }));
4639
- case "test_listen": return json(await callGoogleMeetGatewayFromTool({
4668
+ case "test_listen": return jsonResult(await callGoogleMeetGatewayFromTool({
4640
4669
  config,
4641
4670
  action: "test_listen",
4642
4671
  raw
4643
4672
  }));
4644
- case "status": return json(await callGoogleMeetGatewayFromTool({
4673
+ case "status": return jsonResult(await callGoogleMeetGatewayFromTool({
4645
4674
  config,
4646
4675
  action: "status",
4647
4676
  raw
4648
4677
  }));
4649
- case "recover_current_tab": return json(await callGoogleMeetGatewayFromTool({
4678
+ case "recover_current_tab": return jsonResult(await callGoogleMeetGatewayFromTool({
4650
4679
  config,
4651
4680
  action: "recover_current_tab",
4652
4681
  raw
4653
4682
  }));
4654
- case "setup_status": return json(await callGoogleMeetGatewayFromTool({
4683
+ case "setup_status": return jsonResult(await callGoogleMeetGatewayFromTool({
4655
4684
  config,
4656
4685
  action: "setup_status",
4657
4686
  raw
4658
4687
  }));
4659
4688
  case "resolve_space": {
4660
4689
  const { token: _token, ...result } = await resolveSpaceFromParams(config, raw);
4661
- return json(result);
4690
+ return jsonResult(result);
4662
4691
  }
4663
4692
  case "preflight": {
4664
4693
  const { meeting, token, space } = await resolveSpaceFromParams(config, raw);
4665
- return json(buildGoogleMeetPreflightReport({
4694
+ return jsonResult(buildGoogleMeetPreflightReport({
4666
4695
  input: meeting,
4667
4696
  space,
4668
4697
  previewAcknowledged: config.preview.enrollmentAcknowledged,
@@ -4676,7 +4705,7 @@ var google_meet_default = definePluginEntry({
4676
4705
  raw,
4677
4706
  accessToken: token.accessToken
4678
4707
  });
4679
- return json({
4708
+ return jsonResult({
4680
4709
  ...await fetchLatestGoogleMeetConferenceRecord({
4681
4710
  accessToken: token.accessToken,
4682
4711
  meeting: resolved.meeting
@@ -4687,7 +4716,7 @@ var google_meet_default = definePluginEntry({
4687
4716
  case "calendar_events": {
4688
4717
  const token = await resolveGoogleMeetTokenFromParams(config, raw);
4689
4718
  const window = raw.today === true ? buildGoogleMeetCalendarDayWindow() : {};
4690
- return json(await listGoogleMeetCalendarEvents({
4719
+ return jsonResult(await listGoogleMeetCalendarEvents({
4691
4720
  accessToken: token.accessToken,
4692
4721
  calendarId: normalizeOptionalString(raw.calendarId),
4693
4722
  eventQuery: normalizeOptionalString(raw.event),
@@ -4696,7 +4725,7 @@ var google_meet_default = definePluginEntry({
4696
4725
  }
4697
4726
  case "artifacts": {
4698
4727
  const resolved = await resolveArtifactQueryFromParams(config, raw);
4699
- return json(await fetchGoogleMeetArtifacts({
4728
+ return jsonResult(await fetchGoogleMeetArtifacts({
4700
4729
  accessToken: resolved.token.accessToken,
4701
4730
  meeting: resolved.meeting,
4702
4731
  conferenceRecord: resolved.conferenceRecord,
@@ -4708,7 +4737,7 @@ var google_meet_default = definePluginEntry({
4708
4737
  }
4709
4738
  case "attendance": {
4710
4739
  const resolved = await resolveArtifactQueryFromParams(config, raw);
4711
- return json(await fetchGoogleMeetAttendance({
4740
+ return jsonResult(await fetchGoogleMeetAttendance({
4712
4741
  accessToken: resolved.token.accessToken,
4713
4742
  meeting: resolved.meeting,
4714
4743
  conferenceRecord: resolved.conferenceRecord,
@@ -4719,22 +4748,22 @@ var google_meet_default = definePluginEntry({
4719
4748
  earlyBeforeMinutes: resolved.earlyBeforeMinutes
4720
4749
  }));
4721
4750
  }
4722
- case "export": return json(await exportGoogleMeetBundleFromParams(config, raw));
4751
+ case "export": return jsonResult(await exportGoogleMeetBundleFromParams(config, raw));
4723
4752
  case "leave":
4724
4753
  if (!normalizeOptionalString(raw.sessionId)) throw new Error("sessionId required");
4725
- return json(await callGoogleMeetGatewayFromTool({
4754
+ return jsonResult(await callGoogleMeetGatewayFromTool({
4726
4755
  config,
4727
4756
  action: "leave",
4728
4757
  raw
4729
4758
  }));
4730
- case "end_active_conference": return json(await callGoogleMeetGatewayFromTool({
4759
+ case "end_active_conference": return jsonResult(await callGoogleMeetGatewayFromTool({
4731
4760
  config,
4732
4761
  action: "end_active_conference",
4733
4762
  raw
4734
4763
  }));
4735
4764
  case "speak":
4736
4765
  if (!normalizeOptionalString(raw.sessionId)) throw new Error("sessionId required");
4737
- return json(await callGoogleMeetGatewayFromTool({
4766
+ return jsonResult(await callGoogleMeetGatewayFromTool({
4738
4767
  config,
4739
4768
  action: "speak",
4740
4769
  raw
@@ -4742,7 +4771,7 @@ var google_meet_default = definePluginEntry({
4742
4771
  default: throw new Error("unknown google_meet action");
4743
4772
  }
4744
4773
  } catch (err) {
4745
- return json(formatGatewayError(err));
4774
+ return jsonResult(formatGatewayError(err));
4746
4775
  }
4747
4776
  }
4748
4777
  }), { name: "google_meet" });