@openclaw/googlechat 2026.5.30-beta.1 → 2026.5.31-beta.2

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.
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # OpenClaw Google Chat
2
+
3
+ Official OpenClaw channel plugin for Google Chat spaces and direct messages.
4
+
5
+ Install from OpenClaw:
6
+
7
+ ```bash
8
+ openclaw plugin add @openclaw/googlechat
9
+ ```
10
+
11
+ Configure the Google Chat app credentials and allowed spaces in OpenClaw. The plugin lets agents receive Google Chat events and reply through the configured app.
@@ -1,7 +1,7 @@
1
1
  import { c as resolveGoogleChatAccount, o as listEnabledGoogleChatAccounts } from "./channel-base-DpPD0ef1.js";
2
2
  import { P as getGoogleChatRuntime } from "./runtime-api-BbVoWRxq.js";
3
3
  import { c as sendGoogleChatMessage, o as listGoogleChatReactions, r as deleteGoogleChatReaction, t as createGoogleChatReaction, u as uploadGoogleChatAttachment } from "./api-DxtI9OoY.js";
4
- import { n as resolveGoogleChatOutboundSpace } from "./channel-DOyK3HP4.js";
4
+ import { n as resolveGoogleChatOutboundSpace } from "./channel-DJdo8yPb.js";
5
5
  import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
6
6
  import { createActionGate, jsonResult, readPositiveIntegerParam, readReactionParams, readStringParam } from "openclaw/plugin-sdk/channel-actions";
7
7
  import { loadOutboundMediaFromUrl } from "openclaw/plugin-sdk/outbound-media";
package/dist/api.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { a as googlechatSetupAdapter, i as googlechatSetupWizard } from "./channel-base-DpPD0ef1.js";
2
- import { t as googlechatPlugin } from "./channel-DOyK3HP4.js";
2
+ import { t as googlechatPlugin } from "./channel-DJdo8yPb.js";
3
3
  export { googlechatPlugin, googlechatSetupAdapter, googlechatSetupWizard };
@@ -1,7 +1,7 @@
1
1
  import { c as resolveGoogleChatAccount, n as createGoogleChatPluginBase, r as formatGoogleChatAllowFromEntry, s as listGoogleChatAccountIds, t as GOOGLECHAT_CHANNEL_ID } from "./channel-base-DpPD0ef1.js";
2
2
  import { T as resolveChannelMediaMaxBytes, _ as missingTargetError, a as buildChannelConfigSchema, g as loadOutboundMediaFromUrl, i as PAIRING_APPROVED_MESSAGE, o as chunkTextForOutbound, r as GoogleChatConfigSchema, t as DEFAULT_ACCOUNT_ID, x as readRemoteMediaBuffer } from "./runtime-api-BbVoWRxq.js";
3
3
  import { a as findGoogleChatDirectMessage } from "./api-DxtI9OoY.js";
4
- import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-5OTt6Vdl.js";
4
+ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-DCNyxrqR.js";
5
5
  import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-lCMHqumt.js";
6
6
  import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
7
7
  import { buildPassiveProbedChannelStatusSummary } from "openclaw/plugin-sdk/extension-shared";
@@ -89,7 +89,7 @@ function resolveGoogleChatGroupRequireMention(params) {
89
89
  }
90
90
  //#endregion
91
91
  //#region extensions/googlechat/src/channel.adapters.ts
92
- const loadGoogleChatChannelRuntime$2 = createLazyRuntimeNamedExport(() => import("./channel.runtime-BNMnEtqx.js"), "googleChatChannelRuntime");
92
+ const loadGoogleChatChannelRuntime$2 = createLazyRuntimeNamedExport(() => import("./channel.runtime-BeYlQtHv.js"), "googleChatChannelRuntime");
93
93
  function createGoogleChatSendReceipt(params) {
94
94
  const messageId = params.messageId?.trim();
95
95
  return createMessageReceiptFromOutboundResults({
@@ -137,14 +137,30 @@ const googlechatSecurityAdapter = {
137
137
  },
138
138
  collectWarnings: collectGoogleChatSecurityWarnings
139
139
  };
140
- const googlechatThreadingAdapter = { scopedAccountReplyToMode: {
141
- resolveAccount: (cfg, accountId) => resolveGoogleChatAccount({
142
- cfg,
143
- accountId
144
- }),
145
- resolveReplyToMode: (account, _chatType) => account.config.replyToMode,
146
- fallback: "off"
147
- } };
140
+ const googlechatThreadingAdapter = {
141
+ scopedAccountReplyToMode: {
142
+ resolveAccount: (cfg, accountId) => resolveGoogleChatAccount({
143
+ cfg,
144
+ accountId
145
+ }),
146
+ resolveReplyToMode: (account, _chatType) => account.config.replyToMode,
147
+ fallback: "off"
148
+ },
149
+ buildToolContext: ({ cfg, accountId, context, hasRepliedRef }) => {
150
+ const currentChannelId = normalizeGoogleChatTarget(context.To);
151
+ const replyToId = normalizeOptionalString(context.ReplyToIdFull) ?? normalizeOptionalString(context.ReplyToId);
152
+ return {
153
+ currentChannelId,
154
+ currentMessageId: replyToId,
155
+ currentThreadTs: replyToId,
156
+ replyToMode: resolveGoogleChatAccount({
157
+ cfg,
158
+ accountId
159
+ }).config.replyToMode,
160
+ hasRepliedRef
161
+ };
162
+ }
163
+ };
148
164
  const googlechatPairingTextAdapter = {
149
165
  idLabel: "googlechatUserId",
150
166
  message: PAIRING_APPROVED_MESSAGE,
@@ -330,7 +346,7 @@ const collectGoogleChatMutableAllowlistWarnings = createDangerousNameMatchingMut
330
346
  });
331
347
  //#endregion
332
348
  //#region extensions/googlechat/src/gateway.ts
333
- const loadGoogleChatChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./channel.runtime-BNMnEtqx.js"), "googleChatChannelRuntime");
349
+ const loadGoogleChatChannelRuntime$1 = createLazyRuntimeNamedExport(() => import("./channel.runtime-BeYlQtHv.js"), "googleChatChannelRuntime");
334
350
  async function startGoogleChatGatewayAccount(ctx) {
335
351
  const account = ctx.account;
336
352
  const statusSink = createAccountStatusSink({
@@ -370,7 +386,7 @@ async function startGoogleChatGatewayAccount(ctx) {
370
386
  }
371
387
  //#endregion
372
388
  //#region extensions/googlechat/src/channel.ts
373
- const loadGoogleChatChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-BNMnEtqx.js"), "googleChatChannelRuntime");
389
+ const loadGoogleChatChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-BeYlQtHv.js"), "googleChatChannelRuntime");
374
390
  const googlechatActions = {
375
391
  describeMessageTool: ({ cfg, accountId }) => {
376
392
  const accounts = accountId ? [resolveGoogleChatAccount({
@@ -390,7 +406,7 @@ const googlechatActions = {
390
406
  },
391
407
  extractToolSend: ({ args }) => extractToolSend(args, "sendMessage"),
392
408
  handleAction: async (ctx) => {
393
- const { googlechatMessageActions } = await import("./actions-D5wrXGD8.js");
409
+ const { googlechatMessageActions } = await import("./actions-CZqDyDax.js");
394
410
  if (!googlechatMessageActions.handleAction) throw new Error("Google Chat actions are not available.");
395
411
  return await googlechatMessageActions.handleAction(ctx);
396
412
  }
@@ -1,2 +1,2 @@
1
- import { t as googlechatPlugin } from "./channel-DOyK3HP4.js";
1
+ import { t as googlechatPlugin } from "./channel-DJdo8yPb.js";
2
2
  export { googlechatPlugin };
@@ -1,4 +1,3 @@
1
- import "./channel-base-DpPD0ef1.js";
2
1
  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
2
  import { c as sendGoogleChatMessage, d as verifyGoogleChatRequest, i as downloadGoogleChatMedia, l as updateGoogleChatMessage, n as deleteGoogleChatMessage, s as probeGoogleChat, u as uploadGoogleChatAttachment } from "./api-DxtI9OoY.js";
4
3
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -1,3 +1,3 @@
1
- import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-5OTt6Vdl.js";
1
+ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-DCNyxrqR.js";
2
2
  import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-lCMHqumt.js";
3
3
  export { collectRuntimeConfigAssignments, legacyConfigRules, normalizeCompatibilityConfig, secretTargetRegistryEntries };
@@ -6,7 +6,7 @@ function hasLegacyGoogleChatStreamMode(value) {
6
6
  function hasLegacyGoogleChatGroupAllowAlias(value) {
7
7
  const groups = asObjectRecord(asObjectRecord(value)?.groups);
8
8
  if (!groups) return false;
9
- return Object.values(groups).some((group) => Object.prototype.hasOwnProperty.call(asObjectRecord(group) ?? {}, "allow"));
9
+ return Object.values(groups).some((group) => Object.hasOwn(asObjectRecord(group) ?? {}, "allow"));
10
10
  }
11
11
  function hasLegacyAccountAliases(value, match) {
12
12
  const accounts = asObjectRecord(value);
@@ -18,7 +18,7 @@ function normalizeGoogleChatGroups(params) {
18
18
  const nextGroups = { ...params.groups };
19
19
  for (const [groupId, groupValue] of Object.entries(params.groups)) {
20
20
  const group = asObjectRecord(groupValue);
21
- if (!group || !Object.prototype.hasOwnProperty.call(group, "allow")) continue;
21
+ if (!group || !Object.hasOwn(group, "allow")) continue;
22
22
  const nextGroup = { ...group };
23
23
  if (nextGroup.enabled === void 0) {
24
24
  nextGroup.enabled = group.allow;
@@ -1,2 +1,2 @@
1
- import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-5OTt6Vdl.js";
1
+ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-DCNyxrqR.js";
2
2
  export { legacyConfigRules, normalizeCompatibilityConfig };
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@openclaw/googlechat",
3
- "version": "2026.5.30-beta.1",
3
+ "version": "2026.5.31-beta.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/googlechat",
9
- "version": "2026.5.30-beta.1",
9
+ "version": "2026.5.31-beta.2",
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.5.30-beta.1"
16
+ "openclaw": ">=2026.5.31-beta.2"
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.5.30-beta.1",
3
+ "version": "2026.5.31-beta.2",
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.5.30-beta.1"
16
+ "openclaw": ">=2026.5.31-beta.2"
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.5.30-beta.1"
74
+ "pluginApi": ">=2026.5.31-beta.2"
75
75
  },
76
76
  "build": {
77
- "openclawVersion": "2026.5.30-beta.1"
77
+ "openclawVersion": "2026.5.31-beta.2"
78
78
  },
79
79
  "release": {
80
80
  "publishToClawHub": true,
@@ -88,7 +88,8 @@
88
88
  "files": [
89
89
  "dist/**",
90
90
  "openclaw.plugin.json",
91
- "npm-shrinkwrap.json"
91
+ "npm-shrinkwrap.json",
92
+ "README.md"
92
93
  ],
93
94
  "bundledDependencies": [
94
95
  "gaxios",