@steadwing/openalerts 0.2.5 → 0.2.6

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 (134) hide show
  1. package/README.md +198 -141
  2. package/dist/channels/console.d.ts +6 -0
  3. package/dist/channels/console.d.ts.map +1 -0
  4. package/dist/channels/console.js +10 -0
  5. package/dist/channels/console.js.map +1 -0
  6. package/dist/channels/telegram.d.ts +12 -0
  7. package/dist/channels/telegram.d.ts.map +1 -0
  8. package/dist/channels/telegram.js +28 -0
  9. package/dist/channels/telegram.js.map +1 -0
  10. package/dist/channels/webhook.d.ts +8 -0
  11. package/dist/channels/webhook.d.ts.map +1 -0
  12. package/dist/channels/webhook.js +15 -0
  13. package/dist/channels/webhook.js.map +1 -0
  14. package/dist/cli.d.ts +3 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +234 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/config.d.ts +51 -0
  19. package/dist/config.d.ts.map +1 -0
  20. package/dist/config.js +86 -0
  21. package/dist/config.js.map +1 -0
  22. package/dist/core/alert-channel.d.ts +3 -10
  23. package/dist/core/alert-channel.d.ts.map +1 -0
  24. package/dist/core/alert-channel.js +9 -30
  25. package/dist/core/alert-channel.js.map +1 -0
  26. package/dist/core/bounded-map.d.ts +1 -0
  27. package/dist/core/bounded-map.d.ts.map +1 -0
  28. package/dist/core/bounded-map.js +1 -0
  29. package/dist/core/bounded-map.js.map +1 -0
  30. package/dist/core/engine.d.ts +6 -18
  31. package/dist/core/engine.d.ts.map +1 -0
  32. package/dist/core/engine.js +48 -98
  33. package/dist/core/engine.js.map +1 -0
  34. package/dist/core/evaluator.d.ts +1 -0
  35. package/dist/core/evaluator.d.ts.map +1 -0
  36. package/dist/core/evaluator.js +1 -0
  37. package/dist/core/evaluator.js.map +1 -0
  38. package/dist/core/event-bus.d.ts +1 -0
  39. package/dist/core/event-bus.d.ts.map +1 -0
  40. package/dist/core/event-bus.js +1 -0
  41. package/dist/core/event-bus.js.map +1 -0
  42. package/dist/core/formatter.d.ts +1 -0
  43. package/dist/core/formatter.d.ts.map +1 -0
  44. package/dist/core/formatter.js +1 -0
  45. package/dist/core/formatter.js.map +1 -0
  46. package/dist/core/rules.d.ts +1 -0
  47. package/dist/core/rules.d.ts.map +1 -0
  48. package/dist/core/rules.js +1 -0
  49. package/dist/core/rules.js.map +1 -0
  50. package/dist/core/store.d.ts +6 -9
  51. package/dist/core/store.d.ts.map +1 -0
  52. package/dist/core/store.js +43 -96
  53. package/dist/core/store.js.map +1 -0
  54. package/dist/core/types.d.ts +1 -0
  55. package/dist/core/types.d.ts.map +1 -0
  56. package/dist/core/types.js +1 -0
  57. package/dist/core/types.js.map +1 -0
  58. package/dist/db/index.d.ts +6 -0
  59. package/dist/db/index.d.ts.map +1 -0
  60. package/dist/db/index.js +31 -0
  61. package/dist/db/index.js.map +1 -0
  62. package/dist/db/queries.d.ts +157 -0
  63. package/dist/db/queries.d.ts.map +1 -0
  64. package/dist/db/queries.js +221 -0
  65. package/dist/db/queries.js.map +1 -0
  66. package/dist/db/schema.d.ts +5 -0
  67. package/dist/db/schema.d.ts.map +1 -0
  68. package/dist/db/schema.js +177 -0
  69. package/dist/db/schema.js.map +1 -0
  70. package/dist/readers/openclaw.d.ts +11 -0
  71. package/dist/readers/openclaw.d.ts.map +1 -0
  72. package/dist/readers/openclaw.js +267 -0
  73. package/dist/readers/openclaw.js.map +1 -0
  74. package/dist/server/dashboard.d.ts +2 -0
  75. package/dist/server/dashboard.d.ts.map +1 -0
  76. package/dist/server/dashboard.js +765 -0
  77. package/dist/server/dashboard.js.map +1 -0
  78. package/dist/server/index.d.ts +10 -0
  79. package/dist/server/index.d.ts.map +1 -0
  80. package/dist/server/index.js +28 -0
  81. package/dist/server/index.js.map +1 -0
  82. package/dist/server/routes.d.ts +6 -0
  83. package/dist/server/routes.d.ts.map +1 -0
  84. package/dist/server/routes.js +146 -0
  85. package/dist/server/routes.js.map +1 -0
  86. package/dist/server/sse.d.ts +21 -0
  87. package/dist/server/sse.d.ts.map +1 -0
  88. package/dist/server/sse.js +53 -0
  89. package/dist/server/sse.js.map +1 -0
  90. package/dist/watchers/files.d.ts +19 -0
  91. package/dist/watchers/files.d.ts.map +1 -0
  92. package/dist/watchers/files.js +105 -0
  93. package/dist/watchers/files.js.map +1 -0
  94. package/dist/watchers/gateway-adapter.d.ts +18 -0
  95. package/dist/watchers/gateway-adapter.d.ts.map +1 -0
  96. package/dist/watchers/gateway-adapter.js +273 -0
  97. package/dist/watchers/gateway-adapter.js.map +1 -0
  98. package/dist/watchers/gateway.d.ts +27 -0
  99. package/dist/watchers/gateway.d.ts.map +1 -0
  100. package/dist/watchers/gateway.js +131 -0
  101. package/dist/watchers/gateway.js.map +1 -0
  102. package/package.json +29 -43
  103. package/LICENSE +0 -201
  104. package/dist/collections/collection-manager.d.ts +0 -50
  105. package/dist/collections/collection-manager.js +0 -583
  106. package/dist/collections/event-parser.d.ts +0 -27
  107. package/dist/collections/event-parser.js +0 -321
  108. package/dist/collections/index.d.ts +0 -6
  109. package/dist/collections/index.js +0 -6
  110. package/dist/collections/persistence.d.ts +0 -25
  111. package/dist/collections/persistence.js +0 -213
  112. package/dist/collections/types.d.ts +0 -177
  113. package/dist/collections/types.js +0 -15
  114. package/dist/core/index.d.ts +0 -13
  115. package/dist/core/index.js +0 -23
  116. package/dist/core/llm-enrichment.d.ts +0 -21
  117. package/dist/core/llm-enrichment.js +0 -180
  118. package/dist/core/platform.d.ts +0 -17
  119. package/dist/core/platform.js +0 -93
  120. package/dist/index.d.ts +0 -8
  121. package/dist/index.js +0 -600
  122. package/dist/plugin/adapter.d.ts +0 -150
  123. package/dist/plugin/adapter.js +0 -530
  124. package/dist/plugin/commands.d.ts +0 -18
  125. package/dist/plugin/commands.js +0 -103
  126. package/dist/plugin/dashboard-html.d.ts +0 -7
  127. package/dist/plugin/dashboard-html.js +0 -968
  128. package/dist/plugin/dashboard-routes.d.ts +0 -12
  129. package/dist/plugin/dashboard-routes.js +0 -444
  130. package/dist/plugin/gateway-client.d.ts +0 -39
  131. package/dist/plugin/gateway-client.js +0 -200
  132. package/dist/plugin/log-bridge.d.ts +0 -22
  133. package/dist/plugin/log-bridge.js +0 -363
  134. package/openclaw.plugin.json +0 -87
@@ -0,0 +1,11 @@
1
+ import type { DatabaseSync } from "node:sqlite";
2
+ import type { WatchConfig } from "../config.js";
3
+ export declare function readWorkspaceDocs(db: DatabaseSync, ocDir: string, workspaces: string[]): void;
4
+ export declare function readCronJobs(db: DatabaseSync, ocDir: string): void;
5
+ export declare function readCronRuns(db: DatabaseSync, ocDir: string): void;
6
+ export declare function readSessions(db: DatabaseSync, ocDir: string): void;
7
+ export declare function readActions(db: DatabaseSync, ocDir: string): void;
8
+ export declare function readDeliveryQueue(db: DatabaseSync, ocDir: string): void;
9
+ export declare function readOcConfig(db: DatabaseSync, ocDir: string): void;
10
+ export declare function loadAll(db: DatabaseSync, config: WatchConfig): void;
11
+ //# sourceMappingURL=openclaw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../src/readers/openclaw.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAmChD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAwC7F;AAmBD,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAuBlE;AAmBD,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA6BlE;AAkBD,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAwBlE;AAuBD,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAgCjE;AAcD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAgDvE;AAID,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAoBlE;AAID,wBAAgB,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CASnE"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Reads all relevant OpenClaw files and translates them into DB records.
3
+ * Called once on startup and then on file-change events.
4
+ */
5
+ import fs from "node:fs";
6
+ import path from "node:path";
7
+ import { upsertAgentInfo, upsertCronJob, insertCronRun, upsertSession, upsertAction, upsertDeliveryItem, upsertOcConfig, } from "../db/queries.js";
8
+ function readFileSafe(filePath) {
9
+ try {
10
+ if (fs.existsSync(filePath))
11
+ return fs.readFileSync(filePath, "utf8");
12
+ }
13
+ catch { /* ignore */ }
14
+ return null;
15
+ }
16
+ function parseJsonSafe(text) {
17
+ if (!text)
18
+ return null;
19
+ try {
20
+ return JSON.parse(text);
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ function readJsonFile(filePath) {
27
+ return parseJsonSafe(readFileSafe(filePath));
28
+ }
29
+ // ── Workspace docs (SOUL, HEARTBEAT, etc.) ───────────────────────────────────
30
+ export function readWorkspaceDocs(db, ocDir, workspaces) {
31
+ // Read main workspace (first in list)
32
+ const workspaceNames = workspaces.length > 0 ? workspaces : ["workspace"];
33
+ for (const wsName of workspaceNames) {
34
+ const wsPath = path.isAbsolute(wsName) ? wsName : path.join(ocDir, wsName);
35
+ if (!fs.existsSync(wsPath))
36
+ continue;
37
+ // Derive agent_id from workspace name (workspace → main, workspace-study → study)
38
+ let agentId = wsName.replace(/^workspace-?/, "") || "main";
39
+ if (agentId === "")
40
+ agentId = "main";
41
+ // Try to get name/emoji from IDENTITY.md
42
+ const identityRaw = readFileSafe(path.join(wsPath, "IDENTITY.md"));
43
+ let name;
44
+ let emoji;
45
+ if (identityRaw) {
46
+ // Matches both "**Name:** Value" and "**Name**: Value" and "**Name** Value"
47
+ const nameMatch = identityRaw.match(/\*\*Name[:\*]+\s*(.+)/i) || identityRaw.match(/^[#\s\-]*Name[:\s]+(.+)/im);
48
+ if (nameMatch)
49
+ name = nameMatch[1].trim().replace(/["`*]/g, "");
50
+ const emojiMatch = identityRaw.match(/\*\*Emoji[:\*]+\s*(.+)/i);
51
+ if (emojiMatch)
52
+ emoji = emojiMatch[1].trim();
53
+ }
54
+ const row = {
55
+ agent_id: agentId,
56
+ name,
57
+ emoji,
58
+ soul_md: readFileSafe(path.join(wsPath, "SOUL.md")) ?? undefined,
59
+ heartbeat_md: readFileSafe(path.join(wsPath, "HEARTBEAT.md")) ?? undefined,
60
+ memory_md: readFileSafe(path.join(wsPath, "MEMORY.md")) ?? undefined,
61
+ identity_md: identityRaw ?? undefined,
62
+ user_md: readFileSafe(path.join(wsPath, "USER.md")) ?? undefined,
63
+ agents_md: readFileSafe(path.join(wsPath, "AGENTS.md")) ?? undefined,
64
+ tools_md: readFileSafe(path.join(wsPath, "TOOLS.md")) ?? undefined,
65
+ updated_at: Date.now(),
66
+ };
67
+ upsertAgentInfo(db, row);
68
+ }
69
+ }
70
+ export function readCronJobs(db, ocDir) {
71
+ const jobsPath = path.join(ocDir, "cron", "jobs.json");
72
+ const data = readJsonFile(jobsPath);
73
+ if (!data?.jobs)
74
+ return;
75
+ const now = Date.now();
76
+ for (const job of data.jobs) {
77
+ const row = {
78
+ id: job.id,
79
+ agent_id: job.agentId,
80
+ name: job.name,
81
+ description: job.description,
82
+ schedule_expr: job.schedule?.expr,
83
+ schedule_tz: job.schedule?.tz,
84
+ last_run_at: job.state?.lastRunAtMs,
85
+ last_status: job.state?.lastStatus,
86
+ last_error: job.state?.lastError,
87
+ next_run_at: job.state?.nextRunAtMs,
88
+ consecutive_errors: job.state?.consecutiveErrors ?? 0,
89
+ updated_at: now,
90
+ };
91
+ upsertCronJob(db, row);
92
+ }
93
+ }
94
+ // Track which run files we've already read (by file + size) to avoid re-reading
95
+ const _cronRunCache = new Map();
96
+ export function readCronRuns(db, ocDir) {
97
+ const runsDir = path.join(ocDir, "cron", "runs");
98
+ if (!fs.existsSync(runsDir))
99
+ return;
100
+ const files = fs.readdirSync(runsDir).filter(f => f.endsWith(".jsonl"));
101
+ for (const file of files) {
102
+ const filePath = path.join(runsDir, file);
103
+ const size = fs.statSync(filePath).size;
104
+ if (_cronRunCache.get(filePath) === size)
105
+ continue; // not changed
106
+ _cronRunCache.set(filePath, size);
107
+ const lines = (readFileSafe(filePath) ?? "").split("\n").filter(Boolean);
108
+ for (const line of lines) {
109
+ const e = parseJsonSafe(line);
110
+ if (!e || !e.ts || !e.jobId)
111
+ continue;
112
+ const row = {
113
+ job_id: e.jobId,
114
+ ts: e.ts,
115
+ action: e.action,
116
+ status: e.status,
117
+ error: e.error,
118
+ duration_ms: e.durationMs,
119
+ session_id: e.sessionId,
120
+ session_key: e.sessionKey,
121
+ next_run_at: e.nextRunAtMs,
122
+ };
123
+ insertCronRun(db, row);
124
+ }
125
+ }
126
+ }
127
+ export function readSessions(db, ocDir) {
128
+ const sessionsPath = path.join(ocDir, "collections", "sessions.json");
129
+ const data = readJsonFile(sessionsPath);
130
+ if (!Array.isArray(data))
131
+ return;
132
+ const now = Date.now();
133
+ for (const s of data) {
134
+ if (!s.key)
135
+ continue;
136
+ const row = {
137
+ session_key: s.key,
138
+ agent_id: s.agentId,
139
+ platform: s.platform,
140
+ recipient: s.recipient,
141
+ is_group: s.isGroup ? 1 : 0,
142
+ last_activity_at: s.lastActivityAt,
143
+ status: s.status,
144
+ message_count: s.messageCount,
145
+ total_cost_usd: s.totalCostUsd,
146
+ total_input_tokens: s.totalInputTokens,
147
+ total_output_tokens: s.totalOutputTokens,
148
+ updated_at: now,
149
+ };
150
+ upsertSession(db, row);
151
+ }
152
+ }
153
+ let _actionsOffset = 0;
154
+ export function readActions(db, ocDir) {
155
+ const actionsPath = path.join(ocDir, "collections", "actions.jsonl");
156
+ if (!fs.existsSync(actionsPath))
157
+ return;
158
+ const raw = readFileSafe(actionsPath) ?? "";
159
+ const lines = raw.split("\n").filter(Boolean);
160
+ // Only process new lines since last read
161
+ const newLines = lines.slice(_actionsOffset);
162
+ _actionsOffset = lines.length;
163
+ for (const line of newLines) {
164
+ const e = parseJsonSafe(line);
165
+ if (!e?.id || !e.timestamp)
166
+ continue;
167
+ const row = {
168
+ id: e.id,
169
+ run_id: e.runId,
170
+ session_key: e.sessionKey,
171
+ seq: e.seq,
172
+ type: e.type,
173
+ event_type: e.eventType,
174
+ ts: e.timestamp,
175
+ duration_ms: e.duration,
176
+ tool_name: e.toolName,
177
+ input_tokens: e.inputTokens,
178
+ output_tokens: e.outputTokens,
179
+ cost_usd: e.costUsd,
180
+ model: e.model,
181
+ provider: e.provider,
182
+ };
183
+ upsertAction(db, row);
184
+ }
185
+ }
186
+ export function readDeliveryQueue(db, ocDir) {
187
+ const queueDir = path.join(ocDir, "delivery-queue");
188
+ if (!fs.existsSync(queueDir))
189
+ return;
190
+ const files = fs.readdirSync(queueDir).filter(f => f.endsWith(".json") && !f.startsWith("."));
191
+ const now = Date.now();
192
+ for (const file of files) {
193
+ const data = readJsonFile(path.join(queueDir, file));
194
+ if (!data?.id)
195
+ continue;
196
+ const text = data.payloads?.[0]?.text ?? "";
197
+ const row = {
198
+ id: data.id,
199
+ channel: data.channel,
200
+ to_address: data.to,
201
+ text: text.substring(0, 1000), // cap size
202
+ enqueued_at: data.enqueuedAt,
203
+ retry_count: data.retryCount,
204
+ last_error: data.lastError,
205
+ status: "pending",
206
+ updated_at: now,
207
+ };
208
+ upsertDeliveryItem(db, row);
209
+ }
210
+ // Mark items no longer on disk as 'sent'
211
+ const failedDir = path.join(queueDir, "failed");
212
+ if (fs.existsSync(failedDir)) {
213
+ const failedFiles = fs.readdirSync(failedDir).filter(f => f.endsWith(".json"));
214
+ for (const file of failedFiles) {
215
+ const data = readJsonFile(path.join(failedDir, file));
216
+ if (!data?.id)
217
+ continue;
218
+ const text = data.payloads?.[0]?.text ?? "";
219
+ const row = {
220
+ id: data.id,
221
+ channel: data.channel,
222
+ to_address: data.to,
223
+ text: text.substring(0, 1000),
224
+ enqueued_at: data.enqueuedAt,
225
+ retry_count: data.retryCount,
226
+ last_error: data.lastError,
227
+ status: "failed",
228
+ updated_at: now,
229
+ };
230
+ upsertDeliveryItem(db, row);
231
+ }
232
+ }
233
+ }
234
+ // ── openclaw.json config ─────────────────────────────────────────────────────
235
+ export function readOcConfig(db, ocDir) {
236
+ const configPath = path.join(ocDir, "openclaw.json");
237
+ const data = readJsonFile(configPath);
238
+ if (!data)
239
+ return;
240
+ // Store safe subset (no API keys)
241
+ const safe = {
242
+ meta: data.meta,
243
+ wizard: data.wizard,
244
+ diagnostics: data.diagnostics,
245
+ gateway: data.gateway,
246
+ };
247
+ upsertOcConfig(db, "openclaw", safe);
248
+ // Store model provider names (not keys)
249
+ const models = data.models;
250
+ const providers = models?.providers;
251
+ if (providers) {
252
+ const providerNames = Object.keys(providers);
253
+ upsertOcConfig(db, "providers", providerNames);
254
+ }
255
+ }
256
+ // ── Full initial load ─────────────────────────────────────────────────────────
257
+ export function loadAll(db, config) {
258
+ const { openclawDir, workspaces } = config;
259
+ readWorkspaceDocs(db, openclawDir, workspaces);
260
+ readCronJobs(db, openclawDir);
261
+ readCronRuns(db, openclawDir);
262
+ readSessions(db, openclawDir);
263
+ readActions(db, openclawDir);
264
+ readDeliveryQueue(db, openclawDir);
265
+ readOcConfig(db, openclawDir);
266
+ }
267
+ //# sourceMappingURL=openclaw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../src/readers/openclaw.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function getDashboardHtml(): string;
2
+ //# sourceMappingURL=dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/server/dashboard.ts"],"names":[],"mappings":"AAivBA,wBAAgB,gBAAgB,IAAI,MAAM,CAczC"}