@aight-cool/aight-utils 0.1.21 → 0.1.22

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/dist/index.js CHANGED
@@ -63,7 +63,6 @@ const aightPlugin = {
63
63
  registerVersion(api);
64
64
  registerGroupRpc(api);
65
65
  registerNotifPrefsRPC(api);
66
- api.logger.info("[aight-utils] Plugin loaded");
67
66
  },
68
67
  };
69
68
  export default aightPlugin;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,oFAAoF;IAEjG,YAAY,EAAE;QACZ,KAAK,CAAC,KAAc;YAClB,MAAM,GAAG,GACP,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzD,CAAC,CAAE,KAAiC;gBACpC,CAAC,CAAC,EAAE,CAAC;YACT,OAAO;gBACL,IAAI,EAAE;oBACJ,IAAI,EAAG,GAAG,CAAC,IAAY,EAAE,IAAI,IAAI,SAAS;oBAC1C,QAAQ,EAAG,GAAG,CAAC,IAAY,EAAE,QAAQ,IAAI,wBAAwB;oBACjE,WAAW,EAAG,GAAG,CAAC,IAAY,EAAE,WAAW;iBAC5C;gBACD,KAAK,EAAE;oBACL,OAAO,EAAG,GAAG,CAAC,KAAa,EAAE,OAAO,IAAI,IAAI;iBAC7C;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE;YACP,WAAW,EAAE;gBACX,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,6DAA6D;aACpE;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,wBAAwB;aACtC;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,qBAAqB;gBAC5B,SAAS,EAAE,IAAI;aAChB;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,YAAY;aACpB;SACF;KACF;IAED,QAAQ,CAAC,GAAsB;QAC7B,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAEjC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5B,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtB,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,eAAe,CAAC,GAAG,CAAC,CAAC;QACrB,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtB,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAE3B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;CACF,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,oFAAoF;IAEjG,YAAY,EAAE;QACZ,KAAK,CAAC,KAAc;YAClB,MAAM,GAAG,GACP,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzD,CAAC,CAAE,KAAiC;gBACpC,CAAC,CAAC,EAAE,CAAC;YACT,OAAO;gBACL,IAAI,EAAE;oBACJ,IAAI,EAAG,GAAG,CAAC,IAAY,EAAE,IAAI,IAAI,SAAS;oBAC1C,QAAQ,EAAG,GAAG,CAAC,IAAY,EAAE,QAAQ,IAAI,wBAAwB;oBACjE,WAAW,EAAG,GAAG,CAAC,IAAY,EAAE,WAAW;iBAC5C;gBACD,KAAK,EAAE;oBACL,OAAO,EAAG,GAAG,CAAC,KAAa,EAAE,OAAO,IAAI,IAAI;iBAC7C;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE;YACP,WAAW,EAAE;gBACX,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,6DAA6D;aACpE;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,wBAAwB;aACtC;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,qBAAqB;gBAC5B,SAAS,EAAE,IAAI;aAChB;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,YAAY;aACpB;SACF;KACF;IAED,QAAQ,CAAC,GAAsB;QAC7B,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAEjC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5B,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtB,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,eAAe,CAAC,GAAG,CAAC,CAAC;QACrB,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtB,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Agent Bootstrap — injects AIGHT.md at runtime via agent:bootstrap hook
2
+ * Agent Bootstrap — injects AIGHT.md via before_prompt_build hook
3
3
  */
4
4
  import type { OpenClawPluginApi } from "openclaw/plugin-sdk";
5
5
  export declare function registerBootstrap(api: OpenClawPluginApi): void;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Agent Bootstrap — injects AIGHT.md at runtime via agent:bootstrap hook
2
+ * Agent Bootstrap — injects AIGHT.md via before_prompt_build hook
3
3
  */
4
4
  const AIGHT_MD = `# Aight Integration
5
5
 
@@ -248,14 +248,12 @@ See the Shortcuts Protocol at the top of this document.
248
248
  `;
249
249
  export function registerBootstrap(api) {
250
250
  try {
251
- api.logger.info("[aight-utils] Attempting to register bootstrap hook...");
252
- api.logger.info(`[aight-utils] api.on type: ${typeof api.on}`);
253
- api.on("before_agent_start", (_event, ctx) => {
254
- // Inject AIGHT.md context into every agent session
255
- api.logger.info(`[aight-utils] Bootstrap: injecting AIGHT.md into session ${ctx?.sessionKey}`);
256
- return { systemPrompt: AIGHT_MD };
257
- });
258
- api.logger.info("[aight-utils] Bootstrap hook registered (before_agent_start)");
251
+ // Register both event names so we work on old (before_agent_start only) and
252
+ // new (before_prompt_build) openclaw. Identical return shape lets the new
253
+ // SDK's `??` merge dedupe the injection.
254
+ const handler = () => ({ systemPrompt: AIGHT_MD });
255
+ api.on("before_prompt_build", handler);
256
+ api.on("before_agent_start", handler);
259
257
  }
260
258
  catch (err) {
261
259
  api.logger.error(`[aight-utils] Failed to register bootstrap hook: ${err}`);
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoPhB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,GAAsB;IACtD,IAAI,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QAC1E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAe,EAAE,GAA4B,EAAE,EAAE;YAC7E,mDAAmD;YACnD,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,4DAA4D,GAAG,EAAE,UAAU,EAAE,CAC9E,CAAC;YACF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,GAAG,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoPhB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,GAAsB;IACtD,IAAI,CAAC;QACH,4EAA4E;QAC5E,0EAA0E;QAC1E,yCAAyC;QACzC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,GAAG,CAAC,EAAE,CAAC,qBAA4B,EAAE,OAAO,CAAC,CAAC;QAC9C,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,GAAG,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -8,8 +8,7 @@ import { join } from "path";
8
8
  import { homedir } from "os";
9
9
  const FILENAME = "group-names.json";
10
10
  function filePath(api) {
11
- const dir = api.dataDir ??
12
- join(homedir(), ".openclaw", "plugin-data", "aight-utils");
11
+ const dir = api.dataDir ?? join(homedir(), ".openclaw", "plugin-data", "aight-utils");
13
12
  mkdirSync(dir, { recursive: true });
14
13
  return join(dir, FILENAME);
15
14
  }
@@ -56,6 +55,5 @@ export function registerGroupRpc(api) {
56
55
  removeGroupName(api, groupId);
57
56
  respond(true, { ok: true });
58
57
  });
59
- api.logger.info("[aight-utils] Group name RPC registered");
60
58
  }
61
59
  //# sourceMappingURL=groups.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/groups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/groups.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,14 @@ export function loadNotifPrefs() {
28
28
  return { ...DEFAULTS };
29
29
  const raw = fs.readFileSync(PREFS_FILE, "utf-8");
30
30
  const parsed = JSON.parse(raw);
31
- return { ...DEFAULTS, ...parsed };
31
+ const prefs = { ...DEFAULTS, ...parsed };
32
+ // Normalize expired timed mute in memory so getPrefs returns coherent
33
+ // state to the app. No write — disk is reconciled on the next setPrefs.
34
+ if (prefs.globalMute && prefs.muteUntil && Date.now() >= new Date(prefs.muteUntil).getTime()) {
35
+ prefs.globalMute = false;
36
+ prefs.muteUntil = null;
37
+ }
38
+ return prefs;
32
39
  }
33
40
  catch {
34
41
  return { ...DEFAULTS };
@@ -53,18 +60,9 @@ export function shouldSendPush(sessionKey) {
53
60
  if (!sessionKey)
54
61
  return true; // fail open
55
62
  const prefs = loadNotifPrefs();
56
- // Global mute
57
- if (prefs.globalMute) {
58
- if (!prefs.muteUntil)
59
- return false; // indefinite
60
- const expiry = new Date(prefs.muteUntil).getTime();
61
- if (Date.now() < expiry)
62
- return false;
63
- // Mute expired — clear it
64
- prefs.globalMute = false;
65
- prefs.muteUntil = null;
66
- saveNotifPrefs(prefs);
67
- }
63
+ // Global mute (loadNotifPrefs already normalizes expired timed mutes)
64
+ if (prefs.globalMute)
65
+ return false;
68
66
  // Category check
69
67
  const category = classifySessionKey(sessionKey);
70
68
  return prefs[category];
@@ -91,6 +89,5 @@ export function registerNotifPrefsRPC(api) {
91
89
  api.logger.info(`[aight-utils] Notification prefs updated: ${JSON.stringify(current)}`);
92
90
  respond(true, current);
93
91
  });
94
- api.logger.info("[aight-utils] Notification prefs RPC registered");
95
92
  }
96
93
  //# sourceMappingURL=notif-prefs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notif-prefs.js","sourceRoot":"","sources":["../../src/notif-prefs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notif-prefs.js","sourceRoot":"","sources":["../../src/notif-prefs.ts"],"names":[],"mappings":"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"}
@@ -6,32 +6,39 @@ import { loadTokens, unregisterToken } from "./push-store.js";
6
6
  import { sendPush } from "./push-net.js";
7
7
  import { loadGroupName } from "./groups.js";
8
8
  import { shouldSendPush } from "./notif-prefs.js";
9
+ const HIDDEN_SUFFIXES = [
10
+ ":aight-config",
11
+ ":aight-pentest",
12
+ ":speak",
13
+ ":structured_content",
14
+ ":main",
15
+ "security-fix",
16
+ "skill-scan",
17
+ ];
18
+ const HIDDEN_SUBSTRINGS = ["subagent", "security-audit", "_skill-audit-", "_ensure-skill-defender"];
19
+ const META_RESPONSES = ["NO_REPLY", "REPLY_SKIP", "ANNOUNCE_SKIP", "HEARTBEAT_OK"];
20
+ const STALE_TOKEN_ERRORS = ["baddevicetoken", "unregistered", "devicetokennotfortopic", "expired"];
9
21
  export function registerPushHook(api) {
10
22
  try {
11
23
  api.on("agent_end", async (event, ctx) => {
12
- api.logger.info(`[aight-utils] agent_end fired session=${ctx.sessionKey} agent=${ctx.agentId}`);
24
+ const sessionKey = ctx.sessionKey ?? "";
25
+ api.logger.info(`[aight-utils] agent_end fired session=${sessionKey} agent=${ctx.agentId}`);
13
26
  const tokens = loadTokens();
14
27
  if (tokens.length === 0)
15
28
  return;
16
29
  // Skip hidden/internal sessions — no push notifications for config,
17
30
  // security, voice, sub-agent, or other background sessions.
18
- const sk = ctx.sessionKey ?? "";
19
- if (sk.endsWith(":aight-config") ||
20
- sk.endsWith(":aight-pentest") ||
21
- sk.endsWith(":speak") ||
22
- sk.endsWith(":structured_content") ||
23
- sk.endsWith(":main") ||
24
- sk.includes("subagent") ||
25
- sk.includes("security-audit") ||
26
- sk.includes("_skill-audit-") ||
27
- sk.includes("_ensure-skill-defender") ||
28
- sk.endsWith("security-fix") ||
29
- sk.endsWith("skill-scan")) {
30
- api.logger.info(`[aight-utils] Skipping hidden session push: ${sk}`);
31
+ if (HIDDEN_SUFFIXES.some((s) => sessionKey.endsWith(s)) ||
32
+ HIDDEN_SUBSTRINGS.some((s) => sessionKey.includes(s))) {
33
+ api.logger.info(`[aight-utils] Skipping hidden session push: ${sessionKey}`);
34
+ return;
35
+ }
36
+ // Notification preference gate — bail before expensive preview extraction
37
+ if (!shouldSendPush(sessionKey)) {
38
+ api.logger.info(`[aight-utils] Push suppressed by notification prefs: ${sessionKey}`);
31
39
  return;
32
40
  }
33
41
  const msgs = event.messages ?? [];
34
- api.logger.info(`[aight-utils] messages count=${msgs.length} roles=${msgs.map((m) => m.role).join(",")}`);
35
42
  // Extract last assistant message - try string and array content formats
36
43
  let preview = "";
37
44
  for (let i = msgs.length - 1; i >= 0; i--) {
@@ -54,16 +61,7 @@ export function registerPushHook(api) {
54
61
  api.logger.info(`[aight-utils] No preview found, skipping push`);
55
62
  return;
56
63
  }
57
- // Skip hidden/internal sessions (aight-config, structured_content, etc.)
58
- const sessionKey_ = ctx.sessionKey ?? "";
59
- const HIDDEN_SESSIONS = ["aight-config", "structured_content"];
60
- if (HIDDEN_SESSIONS.some((h) => sessionKey_.includes(h))) {
61
- api.logger.info(`[aight-utils] Skipping hidden session: ${sessionKey_}`);
62
- return;
63
- }
64
- // Skip internal/meta responses
65
- const skip = ["NO_REPLY", "REPLY_SKIP", "ANNOUNCE_SKIP", "HEARTBEAT_OK"];
66
- if (skip.includes(preview.trim())) {
64
+ if (META_RESPONSES.includes(preview.trim())) {
67
65
  api.logger.info(`[aight-utils] Skipping meta response: ${preview.trim()}`);
68
66
  return;
69
67
  }
@@ -74,9 +72,7 @@ export function registerPushHook(api) {
74
72
  const agent = agents.find((a) => a.id === agentId);
75
73
  const displayName = agent?.name ?? agent?.identity?.name ?? agentId;
76
74
  // Resolve group chat name for push subtitle (WhatsApp-style layout)
77
- const pushTitle = displayName;
78
75
  let pushSubtitle;
79
- const sessionKey = ctx.sessionKey ?? "";
80
76
  if (sessionKey.includes(":group-chat:")) {
81
77
  const groupId = sessionKey.split(":group-chat:")[1];
82
78
  if (groupId) {
@@ -87,31 +83,22 @@ export function registerPushHook(api) {
87
83
  }
88
84
  }
89
85
  const cleanBody = preview.trim().replace(/\n+/g, " ").trim();
90
- // ── Notification preference gate ──
91
- // Check if this category is muted — if so, don't send the push at all.
92
- const sk_ = ctx.sessionKey ?? "";
93
- if (!shouldSendPush(sk_)) {
94
- api.logger.info(`[aight-utils] Push suppressed by notification prefs: ${sk_}`);
95
- return;
96
- }
86
+ const pushPayload = {
87
+ title: displayName.trim(),
88
+ subtitle: pushSubtitle,
89
+ body: cleanBody,
90
+ data: { sessionKey, agentId },
91
+ };
97
92
  for (const device of tokens) {
98
93
  if (!device.sendKey)
99
94
  continue;
100
95
  try {
101
- const pushResult = await sendPush(device, {
102
- title: pushTitle.trim(),
103
- subtitle: pushSubtitle,
104
- body: cleanBody,
105
- data: { sessionKey: ctx.sessionKey, agentId },
106
- }, freshConfig);
107
- api.logger.info(`[aight-utils] Push sent: session=${ctx.sessionKey} device=${device.deviceId} ok=${pushResult.ok}${pushResult.error ? ` error=${pushResult.error}` : ""}`);
96
+ const pushResult = await sendPush(device, pushPayload, freshConfig);
97
+ api.logger.info(`[aight-utils] Push sent: session=${sessionKey} device=${device.deviceId} ok=${pushResult.ok}${pushResult.error ? ` error=${pushResult.error}` : ""}`);
108
98
  // Auto-prune stale tokens — if the relay rejects the token, remove it
109
99
  if (!pushResult.ok && pushResult.error) {
110
- const err = pushResult.error.toLowerCase();
111
- if (err.includes("baddevicetoken") ||
112
- err.includes("unregistered") ||
113
- err.includes("devicetokennotfortopic") ||
114
- err.includes("expired")) {
100
+ const errLower = pushResult.error.toLowerCase();
101
+ if (STALE_TOKEN_ERRORS.some((e) => errLower.includes(e))) {
115
102
  api.logger.info(`[aight-utils] Pruning stale device token: ${device.deviceId}`);
116
103
  unregisterToken(device.deviceId);
117
104
  }
@@ -122,7 +109,6 @@ export function registerPushHook(api) {
122
109
  }
123
110
  }
124
111
  });
125
- api.logger.info("[aight-utils] Push hook registered (agent_end)");
126
112
  }
127
113
  catch (err) {
128
114
  api.logger.error(`[aight-utils] Failed to register push hook: ${err instanceof Error ? err.message : String(err)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"push-hook.js","sourceRoot":"","sources":["../../src/push-hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push-hook.js","sourceRoot":"","sources":["../../src/push-hook.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,10 @@ export async function obtainSendKey(relayUrl, pushToken) {
20
20
  }
21
21
  export async function sendPush(device, payload, config) {
22
22
  if (!device.sendKey) {
23
- return { ok: false, error: `No sendKey for device ${device.deviceId} — re-register to obtain one` };
23
+ return {
24
+ ok: false,
25
+ error: `No sendKey for device ${device.deviceId} — re-register to obtain one`,
26
+ };
24
27
  }
25
28
  const relayUrl = config.push?.relayUrl ?? DEFAULT_RELAY_URL;
26
29
  const mode = config.push?.mode ?? DEFAULT_PUSH_MODE;
@@ -1 +1 @@
1
- {"version":3,"file":"push-net.js","sourceRoot":"","sources":["../../src/push-net.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAErE,yCAAyC;AAEzC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,SAAiB;IACrE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,WAAW,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;KAC3C,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqC,CAAC;IACpE,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAmB,EACnB,OAAoB,EACpB,MAAmB;IAEnB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,MAAM,CAAC,QAAQ,8BAA8B,EAAE,CAAC;IACtG,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,iBAAiB,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,iBAAiB,CAAC;IAEpD,MAAM,QAAQ,GAA4B;QACxC,KAAK,EAAE,MAAM,CAAC,SAAS;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;KACjC,CAAC;IAEF,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACvC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/B,IAAI,OAAO,CAAC,QAAQ;YAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC3D,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,OAAO,EAAE;YAC1C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,EAAE,CAAC;QACvE,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAChF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"push-net.js","sourceRoot":"","sources":["../../src/push-net.ts"],"names":[],"mappings":"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"}
@@ -7,37 +7,46 @@ import { sendPush } from "./push-net.js";
7
7
  const CHECK_INTERVAL_MS = 30_000;
8
8
  export function registerReminders(api, config) {
9
9
  let timer = null;
10
+ let running = false;
10
11
  async function checkReminders() {
11
- const now = Date.now();
12
- const items = loadItems();
13
- let changed = false;
14
- const dueItems = items.filter((i) => i.type === "trigger" &&
15
- i.status === "active" &&
16
- i.scheduledFor &&
17
- new Date(i.scheduledFor).getTime() <= now);
18
- if (dueItems.length === 0)
12
+ if (running)
19
13
  return;
20
- const tokens = loadTokens();
21
- for (const item of dueItems) {
22
- item.status = "fired";
23
- item.updatedAt = new Date().toISOString();
24
- changed = true;
25
- api.logger.info(`[aight-utils] Trigger fired: ${item.title} (${item.id})`);
26
- for (const device of tokens) {
27
- try {
28
- await sendPush(device, {
29
- title: "Reminder",
30
- body: item.title,
31
- data: { itemId: item.id, type: "trigger" },
32
- }, config);
33
- }
34
- catch (err) {
35
- api.logger.error(`[aight-utils] Push failed for ${device.deviceId}: ${err instanceof Error ? err.message : String(err)}`);
14
+ running = true;
15
+ try {
16
+ const now = Date.now();
17
+ const items = loadItems();
18
+ let changed = false;
19
+ const dueItems = items.filter((i) => i.type === "trigger" &&
20
+ i.status === "active" &&
21
+ i.scheduledFor &&
22
+ new Date(i.scheduledFor).getTime() <= now);
23
+ if (dueItems.length === 0)
24
+ return;
25
+ const tokens = loadTokens();
26
+ for (const item of dueItems) {
27
+ item.status = "fired";
28
+ item.updatedAt = new Date().toISOString();
29
+ changed = true;
30
+ api.logger.info(`[aight-utils] Trigger fired: ${item.title} (${item.id})`);
31
+ for (const device of tokens) {
32
+ try {
33
+ await sendPush(device, {
34
+ title: "Reminder",
35
+ body: item.title,
36
+ data: { itemId: item.id, type: "trigger" },
37
+ }, config);
38
+ }
39
+ catch (err) {
40
+ api.logger.error(`[aight-utils] Push failed for ${device.deviceId}: ${err instanceof Error ? err.message : String(err)}`);
41
+ }
36
42
  }
37
43
  }
44
+ if (changed) {
45
+ saveItems(items);
46
+ }
38
47
  }
39
- if (changed) {
40
- saveItems(items);
48
+ finally {
49
+ running = false;
41
50
  }
42
51
  }
43
52
  api.registerService({
@@ -1 +1 @@
1
- {"version":3,"file":"reminders.js","sourceRoot":"","sources":["../../src/reminders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reminders.js","sourceRoot":"","sources":["../../src/reminders.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.21";
8
+ const VERSION = "0.1.22";
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,13 @@
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.21",
5
+ "version": "0.1.22",
6
+ "activation": {
7
+ "onStartup": true
8
+ },
9
+ "contracts": {
10
+ "tools": ["aight_item"]
11
+ },
6
12
  "configSchema": {
7
13
  "type": "object",
8
14
  "additionalProperties": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aight-cool/aight-utils",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
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": [