@aight-cool/aight-utils 0.1.22 → 0.1.23

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.
@@ -15,4 +15,16 @@ export interface AightConfig {
15
15
  /** Returns a sanitized copy of the config with secrets redacted */
16
16
  export declare function getClientSafeConfig(config: AightConfig): Record<string, unknown>;
17
17
  export declare function getPluginConfig(api: OpenClawPluginApi): AightConfig;
18
+ /**
19
+ * Read whether the agent_end push hook is allowed conversation access.
20
+ * OpenClaw 2026.5.x blocks non-bundled plugin hooks from seeing message
21
+ * payloads unless `plugins.entries.aight-utils.hooks.allowConversationAccess`
22
+ * is explicitly true.
23
+ */
24
+ export declare function isPushHookEnabled(api: OpenClawPluginApi): Promise<boolean>;
25
+ /**
26
+ * Ensure `allowConversationAccess` is true so the agent_end hook can build
27
+ * push previews from message content. Idempotent — only writes if unset.
28
+ */
29
+ export declare function ensurePushHookEnabled(api: OpenClawPluginApi): Promise<boolean>;
18
30
  export declare function registerConfig(api: OpenClawPluginApi): void;
@@ -22,6 +22,67 @@ export function getPluginConfig(api) {
22
22
  const raw = api.pluginConfig;
23
23
  return raw && typeof raw === "object" && !Array.isArray(raw) ? raw : {};
24
24
  }
25
+ // In-memory cache: the flag is monotonic in practice (only ever enabled),
26
+ // so we can avoid re-reading the config file on every aight.status call
27
+ // once we observe it true.
28
+ let pushHookEnabledCache = null;
29
+ /**
30
+ * Read whether the agent_end push hook is allowed conversation access.
31
+ * OpenClaw 2026.5.x blocks non-bundled plugin hooks from seeing message
32
+ * payloads unless `plugins.entries.aight-utils.hooks.allowConversationAccess`
33
+ * is explicitly true.
34
+ */
35
+ export async function isPushHookEnabled(api) {
36
+ if (pushHookEnabledCache === true)
37
+ return true;
38
+ try {
39
+ const currentConfig = (await api.runtime.config.loadConfig());
40
+ const enabled = currentConfig?.plugins?.entries?.["aight-utils"]?.hooks?.allowConversationAccess === true;
41
+ if (enabled)
42
+ pushHookEnabledCache = true;
43
+ return enabled;
44
+ }
45
+ catch {
46
+ return false;
47
+ }
48
+ }
49
+ /**
50
+ * Ensure `allowConversationAccess` is true so the agent_end hook can build
51
+ * push previews from message content. Idempotent — only writes if unset.
52
+ */
53
+ export async function ensurePushHookEnabled(api) {
54
+ if (pushHookEnabledCache === true)
55
+ return true;
56
+ try {
57
+ const currentConfig = (await api.runtime.config.loadConfig());
58
+ const pluginEntry = currentConfig?.plugins?.entries?.["aight-utils"] ?? {};
59
+ if (pluginEntry.hooks?.allowConversationAccess === true) {
60
+ pushHookEnabledCache = true;
61
+ return true;
62
+ }
63
+ await api.runtime.config.writeConfigFile({
64
+ ...currentConfig,
65
+ plugins: {
66
+ ...currentConfig.plugins,
67
+ entries: {
68
+ ...currentConfig.plugins?.entries,
69
+ "aight-utils": {
70
+ ...pluginEntry,
71
+ hooks: { ...pluginEntry.hooks, allowConversationAccess: true },
72
+ },
73
+ },
74
+ },
75
+ });
76
+ pushHookEnabledCache = true;
77
+ api.logger.info("[aight-utils] Enabled hooks.allowConversationAccess for push hook");
78
+ return true;
79
+ }
80
+ catch (err) {
81
+ const msg = err instanceof Error ? err.message : String(err);
82
+ api.logger.warn(`[aight-utils] Failed to enable push hook conversation access: ${msg}`);
83
+ return false;
84
+ }
85
+ }
25
86
  export function registerConfig(api) {
26
87
  api.registerGatewayMethod("aight.config.get", ({ respond }) => {
27
88
  respond(true, getClientSafeConfig(getPluginConfig(api)));
@@ -82,8 +143,9 @@ export function registerConfig(api) {
82
143
  respond(false, { error: msg });
83
144
  }
84
145
  });
85
- api.registerGatewayMethod("aight.status", ({ respond }) => {
146
+ api.registerGatewayMethod("aight.status", async ({ respond }) => {
86
147
  const cfg = getPluginConfig(api);
148
+ const pushHookEnabled = await isPushHookEnabled(api);
87
149
  respond(true, {
88
150
  ok: true,
89
151
  version: "0.1.0",
@@ -91,6 +153,7 @@ export function registerConfig(api) {
91
153
  mode: cfg.push?.mode ?? DEFAULT_PUSH_MODE,
92
154
  relayUrl: cfg.push?.relayUrl ?? "https://push.aight.app",
93
155
  },
156
+ pushHookEnabled,
94
157
  today: {
95
158
  enabled: cfg.today?.enabled ?? true,
96
159
  },
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
package/dist/src/push.js CHANGED
@@ -7,6 +7,7 @@
7
7
  * alongside the device token. When sending a push, the plugin includes the
8
8
  * sendKey. The relay recomputes the HMAC and verifies — zero state, no shared secrets.
9
9
  */
10
+ import { ensurePushHookEnabled } from "./config.js";
10
11
  import { DEFAULT_RELAY_URL } from "./defaults.js";
11
12
  import { loadTokens, registerToken, unregisterToken } from "./push-store.js";
12
13
  import { obtainSendKey, sendPush } from "./push-net.js";
@@ -15,6 +16,14 @@ export { loadTokens, saveTokens, registerToken, unregisterToken } from "./push-s
15
16
  export { sendPush, obtainSendKey } from "./push-net.js";
16
17
  // ── Registration ──
17
18
  export function registerPush(api, _config) {
19
+ // Recovery for existing users: if any tokens are already registered (from
20
+ // a previous version that didn't enable allowConversationAccess), enable
21
+ // it now so push previews work without requiring re-registration.
22
+ if (loadTokens().length > 0) {
23
+ ensurePushHookEnabled(api).catch(() => {
24
+ /* errors already logged inside the helper */
25
+ });
26
+ }
18
27
  api.registerGatewayMethod("aight.push.register", ({ params, respond }) => {
19
28
  if (!params ||
20
29
  typeof params !== "object" ||
@@ -38,6 +47,12 @@ export function registerPush(api, _config) {
38
47
  });
39
48
  respond(true, { ok: true, deviceId });
40
49
  api.logger.info(`[aight-utils] Push token registered for device ${deviceId}`);
50
+ // The user explicitly opted into notifications — enable conversation
51
+ // access so the agent_end hook can build push previews. Required by
52
+ // openclaw 2026.5.x for non-bundled plugins.
53
+ ensurePushHookEnabled(api).catch(() => {
54
+ /* errors already logged inside the helper */
55
+ });
41
56
  // Obtain sendKey from relay in background
42
57
  const relayUrl = _config.push?.relayUrl ?? DEFAULT_RELAY_URL;
43
58
  obtainSendKey(relayUrl, pushToken)
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/push.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Uses Node built-ins only (no child_process).
6
6
  */
7
7
  /** Updated by scripts/release.sh — do not edit manually. */
8
- const VERSION = "0.1.22";
8
+ const VERSION = "0.1.23";
9
9
  const CACHE_TTL_MS = 60 * 60 * 1000; // 1 hour
10
10
  const npmCache = new Map();
11
11
  async function getLatestNpmVersion(pkg) {
@@ -2,7 +2,7 @@
2
2
  "id": "aight-utils",
3
3
  "name": "Aight App Utils",
4
4
  "description": "Aight App: Push notifications, Today items, config RPC, and agent bootstrap",
5
- "version": "0.1.22",
5
+ "version": "0.1.23",
6
6
  "activation": {
7
7
  "onStartup": true
8
8
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aight-cool/aight-utils",
3
- "version": "0.1.22",
3
+ "version": "0.1.23",
4
4
  "description": "OpenClaw gateway plugin for Aight App: push notifications, Today items, config RPC, and agent bootstrap",
5
5
  "type": "module",
6
6
  "files": [