@openclaw/googlechat 2026.6.8-beta.2 → 2026.6.9-beta.1

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.
@@ -1,5 +1,5 @@
1
1
  import { l as resolveGoogleChatAccount, o as listEnabledGoogleChatAccounts } from "./channel-base-Qh87GFW_.js";
2
- import { b as uploadGoogleChatAttachment, d as resolveGoogleChatOutboundSpace, f as createGoogleChatReaction, g as listGoogleChatReactions, m as deleteGoogleChatReaction, v as sendGoogleChatMessage } from "./channel.adapters-BQoq1F4R.js";
2
+ import { b as uploadGoogleChatAttachment, d as resolveGoogleChatOutboundSpace, f as createGoogleChatReaction, g as listGoogleChatReactions, m as deleteGoogleChatReaction, v as sendGoogleChatMessage } from "./channel.adapters-rfIzAe6X.js";
3
3
  import { P as getGoogleChatRuntime } from "./runtime-api-BbVoWRxq.js";
4
4
  import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
5
5
  import { createActionGate, jsonResult, readPositiveIntegerParam, readReactionParams, readStringParam } from "openclaw/plugin-sdk/channel-actions";
@@ -81,31 +81,31 @@ const googlechatMessageActions = {
81
81
  buffer: loaded.buffer,
82
82
  contentType: loaded.contentType
83
83
  });
84
- await sendGoogleChatMessage({
85
- account,
86
- space,
87
- text: content,
88
- thread: threadId ?? void 0,
89
- attachments: upload.attachmentUploadToken ? [{
90
- attachmentUploadToken: upload.attachmentUploadToken,
91
- contentName: uploadFileName
92
- }] : void 0
93
- });
94
84
  return jsonResult({
95
85
  ok: true,
96
- to: space
86
+ to: space,
87
+ ...await sendGoogleChatMessage({
88
+ account,
89
+ space,
90
+ text: content,
91
+ thread: threadId ?? void 0,
92
+ attachments: upload.attachmentUploadToken ? [{
93
+ attachmentUploadToken: upload.attachmentUploadToken,
94
+ contentName: uploadFileName
95
+ }] : void 0
96
+ })
97
97
  });
98
98
  }
99
99
  if (action === "upload-file") throw new Error("upload-file requires media, filePath, or path");
100
- await sendGoogleChatMessage({
101
- account,
102
- space,
103
- text: content,
104
- thread: threadId ?? void 0
105
- });
106
100
  return jsonResult({
107
101
  ok: true,
108
- to: space
102
+ to: space,
103
+ ...await sendGoogleChatMessage({
104
+ account,
105
+ space,
106
+ text: content,
107
+ thread: threadId ?? void 0
108
+ })
109
109
  });
110
110
  }
111
111
  if (action === "react") {
package/dist/api.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { a as googlechatSetupAdapter, i as googlechatSetupWizard } from "./channel-base-Qh87GFW_.js";
2
- import { t as googlechatPlugin } from "./channel-BY9hwCh2.js";
2
+ import { t as googlechatPlugin } from "./channel-DdyiyZCr.js";
3
3
  export { googlechatPlugin, googlechatSetupAdapter, googlechatSetupWizard };
@@ -1,5 +1,5 @@
1
1
  import { l as resolveGoogleChatAccount } from "./channel-base-Qh87GFW_.js";
2
- import { l as isGoogleChatUserTarget, u as normalizeGoogleChatTarget } from "./channel.adapters-BQoq1F4R.js";
2
+ import { l as isGoogleChatUserTarget, u as normalizeGoogleChatTarget } from "./channel.adapters-rfIzAe6X.js";
3
3
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { createResolvedApproverActionAuthAdapter, resolveApprovalApprovers } from "openclaw/plugin-sdk/approval-auth-runtime";
5
5
  //#region extensions/googlechat/src/approval-auth.ts
@@ -1,6 +1,6 @@
1
1
  import { l as resolveGoogleChatAccount } from "./channel-base-Qh87GFW_.js";
2
- import { A as registerGoogleChatManualApprovalFollowupSuppression, C as buildGoogleChatApprovalActionParameters, E as createGoogleChatApprovalToken, M as unregisterGoogleChatApprovalCardBindings, N as unregisterGoogleChatManualApprovalFollowupSuppression, S as GOOGLECHAT_APPROVAL_ACTION, d as resolveGoogleChatOutboundSpace, k as registerGoogleChatApprovalCardBinding, v as sendGoogleChatMessage, y as updateGoogleChatMessage } from "./channel.adapters-BQoq1F4R.js";
3
- import { n as isGoogleChatNativeApprovalClientEnabled, r as shouldHandleGoogleChatNativeApprovalRequest } from "./channel-BY9hwCh2.js";
2
+ import { A as registerGoogleChatManualApprovalFollowupSuppression, C as buildGoogleChatApprovalActionParameters, E as createGoogleChatApprovalToken, M as unregisterGoogleChatApprovalCardBindings, N as unregisterGoogleChatManualApprovalFollowupSuppression, S as GOOGLECHAT_APPROVAL_ACTION, d as resolveGoogleChatOutboundSpace, k as registerGoogleChatApprovalCardBinding, v as sendGoogleChatMessage, y as updateGoogleChatMessage } from "./channel.adapters-rfIzAe6X.js";
3
+ import { n as isGoogleChatNativeApprovalClientEnabled, r as shouldHandleGoogleChatNativeApprovalRequest } from "./channel-DdyiyZCr.js";
4
4
  import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { createChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-runtime";
@@ -1,7 +1,7 @@
1
1
  import { c as resolveDefaultGoogleChatAccountId, l as resolveGoogleChatAccount, n as createGoogleChatPluginBase, s as listGoogleChatAccountIds, t as GOOGLECHAT_CHANNEL_ID } from "./channel-base-Qh87GFW_.js";
2
- import { a as googlechatPairingTextAdapter, c as isGoogleChatSpaceTarget, i as googlechatOutboundAdapter, l as isGoogleChatUserTarget, n as googlechatGroupsAdapter, o as googlechatSecurityAdapter, r as googlechatMessageAdapter, s as googlechatThreadingAdapter, t as googlechatDirectoryAdapter, u as normalizeGoogleChatTarget } from "./channel.adapters-BQoq1F4R.js";
2
+ import { a as googlechatPairingTextAdapter, c as isGoogleChatSpaceTarget, i as googlechatOutboundAdapter, l as isGoogleChatUserTarget, n as googlechatGroupsAdapter, o as googlechatSecurityAdapter, r as googlechatMessageAdapter, s as googlechatThreadingAdapter, t as googlechatDirectoryAdapter, u as normalizeGoogleChatTarget } from "./channel.adapters-rfIzAe6X.js";
3
3
  import { a as buildChannelConfigSchema, r as GoogleChatConfigSchema, t as DEFAULT_ACCOUNT_ID } from "./runtime-api-BbVoWRxq.js";
4
- import { n as googleChatApprovalAuth, r as normalizeGoogleChatApproverId, t as getGoogleChatApprovalApprovers } from "./approval-auth-C-vWY4bY.js";
4
+ import { n as googleChatApprovalAuth, r as normalizeGoogleChatApproverId, t as getGoogleChatApprovalApprovers } from "./approval-auth-DuZX088b.js";
5
5
  import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-BcEqUZ4j.js";
6
6
  import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-lCMHqumt.js";
7
7
  import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
@@ -139,7 +139,7 @@ const googleChatApprovalCapability = createApproverRestrictedNativeApprovalCapab
139
139
  accountId,
140
140
  request
141
141
  }),
142
- load: async () => (await import("./approval-handler.runtime-CWeVJAQF.js")).googleChatApprovalNativeRuntime
142
+ load: async () => (await import("./approval-handler.runtime-BINXA5ac.js")).googleChatApprovalNativeRuntime
143
143
  })
144
144
  });
145
145
  splitChannelApprovalCapability(googleChatApprovalCapability);
@@ -182,7 +182,7 @@ const collectGoogleChatMutableAllowlistWarnings = createDangerousNameMatchingMut
182
182
  });
183
183
  //#endregion
184
184
  //#region extensions/googlechat/src/gateway.ts
185
- const loadGoogleChatChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./channel.runtime-CbSK_Zox.js"), "googleChatChannelRuntime");
185
+ const loadGoogleChatChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./channel.runtime-DCjJHHQx.js"), "googleChatChannelRuntime");
186
186
  async function startGoogleChatGatewayAccount(ctx) {
187
187
  const account = ctx.account;
188
188
  const statusSink = createAccountStatusSink({
@@ -198,6 +198,15 @@ async function startGoogleChatGatewayAccount(ctx) {
198
198
  audienceType: account.config.audienceType,
199
199
  audience: account.config.audience
200
200
  });
201
+ let stopped = false;
202
+ const markStopped = () => {
203
+ if (stopped) return;
204
+ stopped = true;
205
+ statusSink({
206
+ running: false,
207
+ lastStopAt: Date.now()
208
+ });
209
+ };
201
210
  if (isGoogleChatNativeApprovalClientEnabled({
202
211
  cfg: ctx.cfg,
203
212
  accountId: account.accountId
@@ -209,31 +218,33 @@ async function startGoogleChatGatewayAccount(ctx) {
209
218
  context: { account },
210
219
  abortSignal: ctx.abortSignal
211
220
  });
212
- await runPassiveAccountLifecycle({
213
- abortSignal: ctx.abortSignal,
214
- start: async () => await startGoogleChatMonitor({
215
- account,
216
- config: ctx.cfg,
217
- runtime: ctx.runtime,
221
+ try {
222
+ await runPassiveAccountLifecycle({
218
223
  abortSignal: ctx.abortSignal,
219
- webhookPath: account.config.webhookPath,
220
- webhookUrl: account.config.webhookUrl,
221
- statusSink
222
- }),
223
- stop: async (unregister) => {
224
- unregister?.();
225
- },
226
- onStop: async () => {
227
- statusSink({
228
- running: false,
229
- lastStopAt: Date.now()
230
- });
231
- }
232
- });
224
+ start: async () => await startGoogleChatMonitor({
225
+ account,
226
+ config: ctx.cfg,
227
+ runtime: ctx.runtime,
228
+ abortSignal: ctx.abortSignal,
229
+ webhookPath: account.config.webhookPath,
230
+ webhookUrl: account.config.webhookUrl,
231
+ statusSink
232
+ }),
233
+ stop: async (unregister) => {
234
+ unregister?.();
235
+ },
236
+ onStop: async () => {
237
+ markStopped();
238
+ }
239
+ });
240
+ } catch (error) {
241
+ markStopped();
242
+ throw error;
243
+ }
233
244
  }
234
245
  //#endregion
235
246
  //#region extensions/googlechat/src/channel.ts
236
- const loadGoogleChatChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-CbSK_Zox.js"), "googleChatChannelRuntime");
247
+ const loadGoogleChatChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-DCjJHHQx.js"), "googleChatChannelRuntime");
237
248
  const googlechatActions = {
238
249
  describeMessageTool: ({ cfg, accountId }) => {
239
250
  const accounts = accountId ? [resolveGoogleChatAccount({
@@ -253,7 +264,7 @@ const googlechatActions = {
253
264
  },
254
265
  extractToolSend: ({ args }) => extractToolSend(args, "sendMessage"),
255
266
  handleAction: async (ctx) => {
256
- const { googlechatMessageActions } = await import("./actions-DvYC089V.js");
267
+ const { googlechatMessageActions } = await import("./actions-C04gwS_r.js");
257
268
  if (!googlechatMessageActions.handleAction) throw new Error("Google Chat actions are not available.");
258
269
  return await googlechatMessageActions.handleAction(ctx);
259
270
  }
@@ -1,2 +1,2 @@
1
- import { t as googlechatPlugin } from "./channel-BY9hwCh2.js";
1
+ import { t as googlechatPlugin } from "./channel-DdyiyZCr.js";
2
2
  export { googlechatPlugin };
@@ -703,7 +703,10 @@ async function sendGoogleChatMessage(params) {
703
703
  method: "POST",
704
704
  body: JSON.stringify(body)
705
705
  });
706
- return result ? { messageName: result.name } : null;
706
+ return result ? {
707
+ messageName: result.name,
708
+ threadName: result.thread?.name
709
+ } : null;
707
710
  }
708
711
  async function updateGoogleChatMessage(params) {
709
712
  const { account, messageName, text, cardsV2 } = params;
@@ -839,7 +842,7 @@ function resolveGoogleChatGroupRequireMention(params) {
839
842
  }
840
843
  //#endregion
841
844
  //#region extensions/googlechat/src/channel.adapters.ts
842
- const loadGoogleChatChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-CbSK_Zox.js"), "googleChatChannelRuntime");
845
+ const loadGoogleChatChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-DCjJHHQx.js"), "googleChatChannelRuntime");
843
846
  function createGoogleChatSendReceipt(params) {
844
847
  const messageId = params.messageId?.trim();
845
848
  return createMessageReceiptFromOutboundResults({
@@ -1,6 +1,6 @@
1
- import { D as getGoogleChatApprovalCardBinding, O as readGoogleChatApprovalActionToken, T as completeGoogleChatApprovalCardBinding, _ as probeGoogleChat, b as uploadGoogleChatAttachment, h as downloadGoogleChatMedia, j as releaseGoogleChatApprovalCardBinding, p as deleteGoogleChatMessage, v as sendGoogleChatMessage, w as claimGoogleChatApprovalCardBinding, x as verifyGoogleChatRequest, y as updateGoogleChatMessage } from "./channel.adapters-BQoq1F4R.js";
1
+ import { D as getGoogleChatApprovalCardBinding, O as readGoogleChatApprovalActionToken, T as completeGoogleChatApprovalCardBinding, _ as probeGoogleChat, b as uploadGoogleChatAttachment, h as downloadGoogleChatMedia, j as releaseGoogleChatApprovalCardBinding, p as deleteGoogleChatMessage, v as sendGoogleChatMessage, w as claimGoogleChatApprovalCardBinding, x as verifyGoogleChatRequest, y as updateGoogleChatMessage } from "./channel.adapters-rfIzAe6X.js";
2
2
  import { E as resolveDefaultGroupPolicy, M as warnMissingProviderGroupPolicyFallbackOnce, O as resolveInboundRouteEnvelopeBuilderWithRuntime, P as getGoogleChatRuntime, k as resolveWebhookPath, m as isDangerousNameMatchingEnabled, n as GROUP_POLICY_BLOCKED_LABEL, u as createChannelPairingController, w as resolveAllowlistProviderRuntimeGroupPolicy } from "./runtime-api-BbVoWRxq.js";
3
- import { n as googleChatApprovalAuth } from "./approval-auth-C-vWY4bY.js";
3
+ import { n as googleChatApprovalAuth } from "./approval-auth-DuZX088b.js";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { mergePairLoopGuardConfig } from "openclaw/plugin-sdk/pair-loop-guard-runtime";
6
6
  import { recordChannelBotPairLoopAndCheckSuppression } from "openclaw/plugin-sdk/channel-inbound";
@@ -1,4 +1,4 @@
1
- import { t as googlechatDirectoryAdapter } from "./channel.adapters-BQoq1F4R.js";
1
+ import { t as googlechatDirectoryAdapter } from "./channel.adapters-rfIzAe6X.js";
2
2
  //#region extensions/googlechat/directory-contract-api.ts
3
3
  const googlechatDirectoryContractPlugin = {
4
4
  id: "googlechat",
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@openclaw/googlechat",
3
- "version": "2026.6.8-beta.2",
3
+ "version": "2026.6.9-beta.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/googlechat",
9
- "version": "2026.6.8-beta.2",
9
+ "version": "2026.6.9-beta.1",
10
10
  "dependencies": {
11
11
  "gaxios": "7.1.4",
12
12
  "google-auth-library": "10.6.2",
13
13
  "zod": "4.4.3"
14
14
  },
15
15
  "peerDependencies": {
16
- "openclaw": ">=2026.6.8-beta.2"
16
+ "openclaw": ">=2026.6.9-beta.1"
17
17
  },
18
18
  "peerDependenciesMeta": {
19
19
  "openclaw": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/googlechat",
3
- "version": "2026.6.8-beta.2",
3
+ "version": "2026.6.9-beta.1",
4
4
  "description": "OpenClaw Google Chat channel plugin for spaces and direct messages.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,7 +13,7 @@
13
13
  "zod": "4.4.3"
14
14
  },
15
15
  "peerDependencies": {
16
- "openclaw": ">=2026.6.8-beta.2"
16
+ "openclaw": ">=2026.6.9-beta.1"
17
17
  },
18
18
  "peerDependenciesMeta": {
19
19
  "openclaw": {
@@ -71,10 +71,10 @@
71
71
  "minHostVersion": ">=2026.4.10"
72
72
  },
73
73
  "compat": {
74
- "pluginApi": ">=2026.6.8-beta.2"
74
+ "pluginApi": ">=2026.6.9-beta.1"
75
75
  },
76
76
  "build": {
77
- "openclawVersion": "2026.6.8-beta.2"
77
+ "openclawVersion": "2026.6.9-beta.1"
78
78
  },
79
79
  "release": {
80
80
  "publishToClawHub": true,