easyoref 1.11.0 → 1.11.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/dist/agent/auth.d.ts +11 -0
- package/dist/agent/auth.d.ts.map +1 -0
- package/dist/agent/auth.js +54 -0
- package/dist/agent/auth.js.map +1 -0
- package/dist/agent/dry-run.d.ts +12 -0
- package/dist/agent/dry-run.d.ts.map +1 -0
- package/dist/agent/dry-run.js +229 -0
- package/dist/agent/dry-run.js.map +1 -0
- package/dist/agent/gramjs-monitor.d.ts +13 -0
- package/dist/agent/gramjs-monitor.d.ts.map +1 -0
- package/dist/agent/gramjs-monitor.js +193 -0
- package/dist/agent/gramjs-monitor.js.map +1 -0
- package/dist/agent/graph.d.ts +44 -0
- package/dist/agent/graph.d.ts.map +1 -0
- package/dist/agent/graph.js +707 -0
- package/dist/agent/graph.js.map +1 -0
- package/dist/agent/queue.d.ts +15 -0
- package/dist/agent/queue.d.ts.map +1 -0
- package/dist/agent/queue.js +40 -0
- package/dist/agent/queue.js.map +1 -0
- package/dist/agent/redis.d.ts +8 -0
- package/dist/agent/redis.d.ts.map +1 -0
- package/dist/agent/redis.js +33 -0
- package/dist/agent/redis.js.map +1 -0
- package/dist/agent/store.d.ts +39 -0
- package/dist/agent/store.d.ts.map +1 -0
- package/dist/agent/store.js +52 -0
- package/dist/agent/store.js.map +1 -0
- package/dist/agent/types.d.ts +102 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +3 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/agent/worker.d.ts +10 -0
- package/dist/agent/worker.d.ts.map +1 -0
- package/dist/agent/worker.js +69 -0
- package/dist/agent/worker.js.map +1 -0
- package/dist/bin.d.ts +17 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +82 -0
- package/dist/bin.js.map +1 -0
- package/dist/bot.d.ts +16 -0
- package/dist/bot.d.ts.map +1 -0
- package/dist/bot.js +557 -0
- package/dist/bot.js.map +1 -0
- package/dist/config.d.ts +116 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +145 -0
- package/dist/config.js.map +1 -0
- package/dist/gif-state.d.ts +17 -0
- package/dist/gif-state.d.ts.map +1 -0
- package/dist/gif-state.js +67 -0
- package/dist/gif-state.js.map +1 -0
- package/dist/i18n.d.ts +49 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +229 -0
- package/dist/i18n.js.map +1 -0
- package/dist/init.d.ts +7 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +163 -0
- package/dist/init.js.map +1 -0
- package/dist/logger.d.ts +14 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +45 -0
- package/dist/logger.js.map +1 -0
- package/dist/service.d.ts +19 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +165 -0
- package/dist/service.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/agent/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BullMQ queue — enrich alert jobs.
|
|
3
|
+
*
|
|
4
|
+
* Job payload: { alertId, alertTs }
|
|
5
|
+
* Job is added with a delay (config.agent.enrichDelayMs) after alert fires,
|
|
6
|
+
* then the worker runs the LangGraph pipeline and edits the Telegram message.
|
|
7
|
+
*/
|
|
8
|
+
import { Queue } from "bullmq";
|
|
9
|
+
export interface EnrichJobData {
|
|
10
|
+
alertId: string;
|
|
11
|
+
alertTs: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function getEnrichQueue(): Queue<EnrichJobData>;
|
|
14
|
+
export declare function enqueueEnrich(alertId: string, alertTs: number): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/agent/queue.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAI/B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC,CAiBrD;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BullMQ queue — enrich alert jobs.
|
|
3
|
+
*
|
|
4
|
+
* Job payload: { alertId, alertTs }
|
|
5
|
+
* Job is added with a delay (config.agent.enrichDelayMs) after alert fires,
|
|
6
|
+
* then the worker runs the LangGraph pipeline and edits the Telegram message.
|
|
7
|
+
*/
|
|
8
|
+
import { Queue } from "bullmq";
|
|
9
|
+
import { config } from "../config.js";
|
|
10
|
+
import * as logger from "../logger.js";
|
|
11
|
+
let _queue = null;
|
|
12
|
+
export function getEnrichQueue() {
|
|
13
|
+
if (!_queue) {
|
|
14
|
+
_queue = new Queue("enrich-alert", {
|
|
15
|
+
connection: {
|
|
16
|
+
host: new URL(config.agent.redisUrl).hostname,
|
|
17
|
+
port: Number(new URL(config.agent.redisUrl).port || 6379),
|
|
18
|
+
password: new URL(config.agent.redisUrl).password || undefined,
|
|
19
|
+
},
|
|
20
|
+
defaultJobOptions: {
|
|
21
|
+
removeOnComplete: 100,
|
|
22
|
+
removeOnFail: 50,
|
|
23
|
+
attempts: 2,
|
|
24
|
+
backoff: { type: "exponential", delay: 10_000 },
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return _queue;
|
|
29
|
+
}
|
|
30
|
+
export async function enqueueEnrich(alertId, alertTs) {
|
|
31
|
+
if (!config.agent.enabled)
|
|
32
|
+
return;
|
|
33
|
+
const queue = getEnrichQueue();
|
|
34
|
+
await queue.add("enrich", { alertId, alertTs }, { delay: config.agent.enrichDelayMs });
|
|
35
|
+
logger.info("Enrich job enqueued", {
|
|
36
|
+
alertId,
|
|
37
|
+
delay_ms: config.agent.enrichDelayMs,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/agent/queue.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAOvC,IAAI,MAAM,GAAgC,IAAI,CAAC;AAE/C,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,KAAK,CAAgB,cAAc,EAAE;YAChD,UAAU,EAAE;gBACV,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ;gBAC7C,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBACzD,QAAQ,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,SAAS;aAC/D;YACD,iBAAiB,EAAE;gBACjB,gBAAgB,EAAE,GAAG;gBACrB,YAAY,EAAE,EAAE;gBAChB,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE;aAChD;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,OAAe;IAEf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO;IAElC,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,KAAK,CAAC,GAAG,CACb,QAAQ,EACR,EAAE,OAAO,EAAE,OAAO,EAAE,EACpB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CACtC,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;QACjC,OAAO;QACP,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;KACrC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redis singleton (ioredis).
|
|
3
|
+
* Lazily initialized so the main bot still works when agent.enabled=false.
|
|
4
|
+
*/
|
|
5
|
+
import { Redis as IORedis } from "ioredis";
|
|
6
|
+
export declare function getRedis(): IORedis;
|
|
7
|
+
export declare function closeRedis(): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=redis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/agent/redis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC;AAM3C,wBAAgB,QAAQ,IAAI,OAAO,CAmBlC;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redis singleton (ioredis).
|
|
3
|
+
* Lazily initialized so the main bot still works when agent.enabled=false.
|
|
4
|
+
*/
|
|
5
|
+
import { Redis as IORedis } from "ioredis";
|
|
6
|
+
import { config } from "../config.js";
|
|
7
|
+
import * as logger from "../logger.js";
|
|
8
|
+
let _redis = null;
|
|
9
|
+
export function getRedis() {
|
|
10
|
+
if (!_redis) {
|
|
11
|
+
_redis = new IORedis(config.agent.redisUrl, {
|
|
12
|
+
lazyConnect: false,
|
|
13
|
+
maxRetriesPerRequest: 3,
|
|
14
|
+
enableReadyCheck: true,
|
|
15
|
+
});
|
|
16
|
+
_redis.on("error", (err) => {
|
|
17
|
+
logger.warn("Redis error", { error: String(err) });
|
|
18
|
+
});
|
|
19
|
+
_redis.on("connect", () => {
|
|
20
|
+
logger.info("Redis connected", {
|
|
21
|
+
url: config.agent.redisUrl.replace(/:[^:@]+@/, ":***@"),
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return _redis;
|
|
26
|
+
}
|
|
27
|
+
export async function closeRedis() {
|
|
28
|
+
if (_redis) {
|
|
29
|
+
await _redis.quit();
|
|
30
|
+
_redis = null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=redis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/agent/redis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,IAAI,MAAM,GAAmB,IAAI,CAAC;AAElC,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC1C,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,CAAC;YACvB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAChC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC7B,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alert state store — Redis operations.
|
|
3
|
+
*
|
|
4
|
+
* Keys:
|
|
5
|
+
* alert:{alertId}:meta — {messageId, chatId, isCaption, alertTs, alertType} TTL 20min
|
|
6
|
+
* alert:{alertId}:posts — LPUSH list of ChannelPost JSON TTL 20min
|
|
7
|
+
* alert:active — {alertId, alertTs, alertType} TTL 20min
|
|
8
|
+
*/
|
|
9
|
+
import type { AlertType } from "./types.js";
|
|
10
|
+
export interface AlertMeta {
|
|
11
|
+
alertId: string;
|
|
12
|
+
messageId: number;
|
|
13
|
+
chatId: string;
|
|
14
|
+
isCaption: boolean;
|
|
15
|
+
alertTs: number;
|
|
16
|
+
alertType: AlertType;
|
|
17
|
+
alertAreas: string[];
|
|
18
|
+
currentText: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ChannelPost {
|
|
21
|
+
channel: string;
|
|
22
|
+
text: string;
|
|
23
|
+
ts: number;
|
|
24
|
+
/** https://t.me/username/messageId — for the sources footer */
|
|
25
|
+
messageUrl?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ActiveAlert {
|
|
28
|
+
alertId: string;
|
|
29
|
+
alertTs: number;
|
|
30
|
+
alertType: AlertType;
|
|
31
|
+
}
|
|
32
|
+
export declare function saveAlertMeta(meta: AlertMeta): Promise<void>;
|
|
33
|
+
export declare function getAlertMeta(alertId: string): Promise<AlertMeta | null>;
|
|
34
|
+
export declare function pushChannelPost(alertId: string, post: ChannelPost): Promise<void>;
|
|
35
|
+
export declare function getChannelPosts(alertId: string): Promise<ChannelPost[]>;
|
|
36
|
+
export declare function setActiveAlert(active: ActiveAlert): Promise<void>;
|
|
37
|
+
export declare function getActiveAlert(): Promise<ActiveAlert | null>;
|
|
38
|
+
export declare function clearActiveAlert(): Promise<void>;
|
|
39
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/agent/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB;AAID,wBAAsB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAI7E;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAK7E;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAIlE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGtD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alert state store — Redis operations.
|
|
3
|
+
*
|
|
4
|
+
* Keys:
|
|
5
|
+
* alert:{alertId}:meta — {messageId, chatId, isCaption, alertTs, alertType} TTL 20min
|
|
6
|
+
* alert:{alertId}:posts — LPUSH list of ChannelPost JSON TTL 20min
|
|
7
|
+
* alert:active — {alertId, alertTs, alertType} TTL 20min
|
|
8
|
+
*/
|
|
9
|
+
import { getRedis } from "./redis.js";
|
|
10
|
+
const TTL_S = 20 * 60; // 20 minutes
|
|
11
|
+
// ── Store ──────────────────────────────────────────────
|
|
12
|
+
export async function saveAlertMeta(meta) {
|
|
13
|
+
const redis = getRedis();
|
|
14
|
+
const key = `alert:${meta.alertId}:meta`;
|
|
15
|
+
await redis.setex(key, TTL_S, JSON.stringify(meta));
|
|
16
|
+
await setActiveAlert({
|
|
17
|
+
alertId: meta.alertId,
|
|
18
|
+
alertTs: meta.alertTs,
|
|
19
|
+
alertType: meta.alertType,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export async function getAlertMeta(alertId) {
|
|
23
|
+
const redis = getRedis();
|
|
24
|
+
const raw = await redis.get(`alert:${alertId}:meta`);
|
|
25
|
+
return raw ? JSON.parse(raw) : null;
|
|
26
|
+
}
|
|
27
|
+
export async function pushChannelPost(alertId, post) {
|
|
28
|
+
const redis = getRedis();
|
|
29
|
+
const key = `alert:${alertId}:posts`;
|
|
30
|
+
await redis.lpush(key, JSON.stringify(post));
|
|
31
|
+
await redis.expire(key, TTL_S);
|
|
32
|
+
}
|
|
33
|
+
export async function getChannelPosts(alertId) {
|
|
34
|
+
const redis = getRedis();
|
|
35
|
+
const key = `alert:${alertId}:posts`;
|
|
36
|
+
const items = await redis.lrange(key, 0, -1);
|
|
37
|
+
return items.map((i) => JSON.parse(i));
|
|
38
|
+
}
|
|
39
|
+
export async function setActiveAlert(active) {
|
|
40
|
+
const redis = getRedis();
|
|
41
|
+
await redis.setex("alert:active", TTL_S, JSON.stringify(active));
|
|
42
|
+
}
|
|
43
|
+
export async function getActiveAlert() {
|
|
44
|
+
const redis = getRedis();
|
|
45
|
+
const raw = await redis.get("alert:active");
|
|
46
|
+
return raw ? JSON.parse(raw) : null;
|
|
47
|
+
}
|
|
48
|
+
export async function clearActiveAlert() {
|
|
49
|
+
const redis = getRedis();
|
|
50
|
+
await redis.del("alert:active");
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/agent/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa;AA6BpC,0DAA0D;AAE1D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAe;IACjD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,OAAO,OAAO,CAAC;IACzC,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,MAAM,cAAc,CAAC;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe;IAChD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,OAAO,OAAO,CAAC,CAAC;IACrD,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,IAAiB;IAEjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,SAAS,OAAO,QAAQ,CAAC;IACrC,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,SAAS,OAAO,QAAQ,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAmB;IACtD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/** Shared types for the agent subsystem */
|
|
2
|
+
export type AlertType = "early_warning" | "siren" | "resolved";
|
|
3
|
+
/**
|
|
4
|
+
* Qualitative count descriptor — used when channels report without exact numbers.
|
|
5
|
+
* "none" is only shown if confidence > 0.95 and explicitly stated in source.
|
|
6
|
+
*/
|
|
7
|
+
export type QualCount = "all" | "most" | "many" | "few" | "exists" | "none" | "more_than" | "less_than";
|
|
8
|
+
export interface RelevanceCheck {
|
|
9
|
+
channel: string;
|
|
10
|
+
text: string;
|
|
11
|
+
ts: number;
|
|
12
|
+
/** true if post passed keyword/region pre-filter */
|
|
13
|
+
relevant: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ExtractionResult {
|
|
16
|
+
channel: string;
|
|
17
|
+
/** V1: region relevance (0-1) — does post mention our alert region? */
|
|
18
|
+
region_relevance: number;
|
|
19
|
+
/** V2: source trust (0-1) — factual reporting vs rumors/panic? */
|
|
20
|
+
source_trust: number;
|
|
21
|
+
/** Extracted data */
|
|
22
|
+
country_origin: string | null;
|
|
23
|
+
rocket_count: number | null;
|
|
24
|
+
is_cassette: boolean | null;
|
|
25
|
+
/** Rocket breakdown: intercepted by Iron Dome */
|
|
26
|
+
intercepted: number | null;
|
|
27
|
+
/** Qualitative descriptor when no exact number is stated (null if exact number given) */
|
|
28
|
+
intercepted_qual: QualCount | null;
|
|
29
|
+
intercepted_qual_num: number | null;
|
|
30
|
+
/** Rocket breakdown: fell in sea/empty area */
|
|
31
|
+
sea_impact: number | null;
|
|
32
|
+
sea_impact_qual: QualCount | null;
|
|
33
|
+
sea_impact_qual_num: number | null;
|
|
34
|
+
/** Rocket breakdown: hit open/populated ground */
|
|
35
|
+
open_area_impact: number | null;
|
|
36
|
+
open_area_impact_qual: QualCount | null;
|
|
37
|
+
open_area_impact_qual_num: number | null;
|
|
38
|
+
hits_confirmed: number | null;
|
|
39
|
+
eta_refined_minutes: number | null;
|
|
40
|
+
/** V3: tone — "calm"|"neutral"|"alarmist" */
|
|
41
|
+
tone: "calm" | "neutral" | "alarmist";
|
|
42
|
+
/** Overall extraction confidence (0-1) */
|
|
43
|
+
confidence: number;
|
|
44
|
+
}
|
|
45
|
+
export interface ValidatedExtraction extends ExtractionResult {
|
|
46
|
+
/** Passed all three validators? */
|
|
47
|
+
valid: boolean;
|
|
48
|
+
/** Reason if rejected */
|
|
49
|
+
reject_reason?: string;
|
|
50
|
+
/** Link to original Telegram post (from ChannelPost.messageUrl) */
|
|
51
|
+
messageUrl?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface CitedSource {
|
|
54
|
+
/** 1-based citation index */
|
|
55
|
+
index: number;
|
|
56
|
+
channel: string;
|
|
57
|
+
messageUrl: string | null;
|
|
58
|
+
}
|
|
59
|
+
export interface VotedResult {
|
|
60
|
+
/** ETA in minutes (highest-confidence source) */
|
|
61
|
+
eta_refined_minutes: number | null;
|
|
62
|
+
/** Citation indices that provided ETA */
|
|
63
|
+
eta_citations: number[];
|
|
64
|
+
/** Unique origin countries with per-country citation indices */
|
|
65
|
+
country_origins: Array<{
|
|
66
|
+
name: string;
|
|
67
|
+
citations: number[];
|
|
68
|
+
}> | null;
|
|
69
|
+
/** Rocket count range across sources (min == max → exact) */
|
|
70
|
+
rocket_count_min: number | null;
|
|
71
|
+
rocket_count_max: number | null;
|
|
72
|
+
rocket_citations: number[];
|
|
73
|
+
/** Avg weighted confidence of sources reporting rocket count (for uncertainty marker) */
|
|
74
|
+
rocket_confidence: number;
|
|
75
|
+
is_cassette: boolean | null;
|
|
76
|
+
/** Avg weighted confidence of sources confirming cassette munitions */
|
|
77
|
+
is_cassette_confidence: number;
|
|
78
|
+
/** Rocket breakdown (median values; null if no sources reported) */
|
|
79
|
+
intercepted: number | null;
|
|
80
|
+
intercepted_qual: QualCount | null;
|
|
81
|
+
intercepted_qual_num: number | null;
|
|
82
|
+
/** Avg weighted confidence of sources reporting intercepted count */
|
|
83
|
+
intercepted_confidence: number;
|
|
84
|
+
sea_impact: number | null;
|
|
85
|
+
sea_impact_qual: QualCount | null;
|
|
86
|
+
sea_impact_qual_num: number | null;
|
|
87
|
+
sea_confidence: number;
|
|
88
|
+
open_area_impact: number | null;
|
|
89
|
+
open_area_impact_qual: QualCount | null;
|
|
90
|
+
open_area_impact_qual_num: number | null;
|
|
91
|
+
open_area_confidence: number;
|
|
92
|
+
hits_confirmed: number | null;
|
|
93
|
+
/** Citation indices that provided hits data */
|
|
94
|
+
hits_citations: number[];
|
|
95
|
+
/** Avg weighted confidence of sources reporting confirmed hits */
|
|
96
|
+
hits_confidence: number;
|
|
97
|
+
confidence: number;
|
|
98
|
+
sources_count: number;
|
|
99
|
+
/** All valid sources, ordered by citation index */
|
|
100
|
+
citedSources: CitedSource[];
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA,2CAA2C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BullMQ worker — processes "enrich-alert" jobs.
|
|
3
|
+
*
|
|
4
|
+
* Started alongside the bot when agent.enabled=true.
|
|
5
|
+
* Picks up jobs from the queue after the enrichDelayMs delay,
|
|
6
|
+
* fetches alert meta from Redis, runs LangGraph enrichment.
|
|
7
|
+
*/
|
|
8
|
+
export declare function startEnrichWorker(): void;
|
|
9
|
+
export declare function stopEnrichWorker(): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/agent/worker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,wBAAgB,iBAAiB,IAAI,IAAI,CA0DxC;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKtD"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BullMQ worker — processes "enrich-alert" jobs.
|
|
3
|
+
*
|
|
4
|
+
* Started alongside the bot when agent.enabled=true.
|
|
5
|
+
* Picks up jobs from the queue after the enrichDelayMs delay,
|
|
6
|
+
* fetches alert meta from Redis, runs LangGraph enrichment.
|
|
7
|
+
*/
|
|
8
|
+
import { Worker } from "bullmq";
|
|
9
|
+
import { config } from "../config.js";
|
|
10
|
+
import * as logger from "../logger.js";
|
|
11
|
+
import { runEnrichment } from "./graph.js";
|
|
12
|
+
import { enqueueEnrich } from "./queue.js";
|
|
13
|
+
import { getActiveAlert, getAlertMeta } from "./store.js";
|
|
14
|
+
let _worker = null;
|
|
15
|
+
export function startEnrichWorker() {
|
|
16
|
+
if (!config.agent.enabled)
|
|
17
|
+
return;
|
|
18
|
+
const connection = {
|
|
19
|
+
host: new URL(config.agent.redisUrl).hostname,
|
|
20
|
+
port: Number(new URL(config.agent.redisUrl).port || 6379),
|
|
21
|
+
password: new URL(config.agent.redisUrl).password || undefined,
|
|
22
|
+
};
|
|
23
|
+
_worker = new Worker("enrich-alert", async (job) => {
|
|
24
|
+
const { alertId, alertTs } = job.data;
|
|
25
|
+
logger.info("Enrich worker: processing job", { alertId, jobId: job.id });
|
|
26
|
+
const meta = await getAlertMeta(alertId);
|
|
27
|
+
if (!meta) {
|
|
28
|
+
logger.warn("Enrich worker: alert meta not found — skipping", {
|
|
29
|
+
alertId,
|
|
30
|
+
});
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
await runEnrichment({
|
|
34
|
+
alertId,
|
|
35
|
+
alertTs,
|
|
36
|
+
alertType: meta.alertType,
|
|
37
|
+
alertAreas: meta.alertAreas ?? [],
|
|
38
|
+
chatId: meta.chatId,
|
|
39
|
+
messageId: meta.messageId,
|
|
40
|
+
isCaption: meta.isCaption,
|
|
41
|
+
currentText: meta.currentText ?? "",
|
|
42
|
+
});
|
|
43
|
+
// Re-enqueue if alert is still active (loop every enrichDelayMs)
|
|
44
|
+
const still = await getActiveAlert();
|
|
45
|
+
if (still && still.alertId === alertId) {
|
|
46
|
+
await enqueueEnrich(alertId, alertTs);
|
|
47
|
+
}
|
|
48
|
+
}, {
|
|
49
|
+
connection,
|
|
50
|
+
concurrency: 1,
|
|
51
|
+
});
|
|
52
|
+
_worker.on("completed", (job) => {
|
|
53
|
+
logger.info("Enrich worker: job completed", { jobId: job.id });
|
|
54
|
+
});
|
|
55
|
+
_worker.on("failed", (job, err) => {
|
|
56
|
+
logger.error("Enrich worker: job failed", {
|
|
57
|
+
jobId: job?.id,
|
|
58
|
+
error: String(err),
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
logger.info("Enrich worker started");
|
|
62
|
+
}
|
|
63
|
+
export async function stopEnrichWorker() {
|
|
64
|
+
if (_worker) {
|
|
65
|
+
await _worker.close();
|
|
66
|
+
_worker = null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/agent/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* EasyOref CLI entrypoint.
|
|
4
|
+
*
|
|
5
|
+
* easyoref — run the bot (foreground)
|
|
6
|
+
* easyoref run — same as above
|
|
7
|
+
* easyoref init — interactive setup wizard
|
|
8
|
+
* easyoref install — create systemd service + start
|
|
9
|
+
* easyoref uninstall — remove systemd service
|
|
10
|
+
* easyoref start — start service (install if needed)
|
|
11
|
+
* easyoref stop — stop service
|
|
12
|
+
* easyoref restart — restart service
|
|
13
|
+
* easyoref status — show service status
|
|
14
|
+
* easyoref logs — follow service logs
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=bin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* EasyOref CLI entrypoint.
|
|
4
|
+
*
|
|
5
|
+
* easyoref — run the bot (foreground)
|
|
6
|
+
* easyoref run — same as above
|
|
7
|
+
* easyoref init — interactive setup wizard
|
|
8
|
+
* easyoref install — create systemd service + start
|
|
9
|
+
* easyoref uninstall — remove systemd service
|
|
10
|
+
* easyoref start — start service (install if needed)
|
|
11
|
+
* easyoref stop — stop service
|
|
12
|
+
* easyoref restart — restart service
|
|
13
|
+
* easyoref status — show service status
|
|
14
|
+
* easyoref logs — follow service logs
|
|
15
|
+
*/
|
|
16
|
+
const command = process.argv[2];
|
|
17
|
+
switch (command) {
|
|
18
|
+
case "init": {
|
|
19
|
+
const { init } = await import("./init.js");
|
|
20
|
+
await init();
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
case "install": {
|
|
24
|
+
const svc = await import("./service.js");
|
|
25
|
+
svc.install();
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
case "uninstall": {
|
|
29
|
+
const svc = await import("./service.js");
|
|
30
|
+
svc.uninstall();
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
case "start": {
|
|
34
|
+
const svc = await import("./service.js");
|
|
35
|
+
svc.start();
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
case "stop": {
|
|
39
|
+
const svc = await import("./service.js");
|
|
40
|
+
svc.stop();
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
case "restart": {
|
|
44
|
+
const svc = await import("./service.js");
|
|
45
|
+
svc.restart();
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case "status": {
|
|
49
|
+
const svc = await import("./service.js");
|
|
50
|
+
svc.status();
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case "logs": {
|
|
54
|
+
const svc = await import("./service.js");
|
|
55
|
+
svc.logs();
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
case "--help":
|
|
59
|
+
case "-h":
|
|
60
|
+
console.log(`
|
|
61
|
+
EasyOref — Telegram alert bot for Israeli civil defense
|
|
62
|
+
|
|
63
|
+
Usage:
|
|
64
|
+
easyoref Run the bot (foreground)
|
|
65
|
+
easyoref init Interactive setup wizard
|
|
66
|
+
|
|
67
|
+
Service management:
|
|
68
|
+
easyoref install Create systemd service & start
|
|
69
|
+
easyoref uninstall Remove systemd service
|
|
70
|
+
easyoref start Start service (auto-install if needed)
|
|
71
|
+
easyoref stop Stop service
|
|
72
|
+
easyoref restart Restart service
|
|
73
|
+
easyoref status Show service status
|
|
74
|
+
easyoref logs Follow service logs
|
|
75
|
+
`);
|
|
76
|
+
break;
|
|
77
|
+
case "run":
|
|
78
|
+
default:
|
|
79
|
+
await import("./bot.js");
|
|
80
|
+
}
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AAEH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,CAAC,CAAC;QACZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,IAAI,EAAE,CAAC;QACb,MAAM;IACR,CAAC;IAED,KAAK,SAAS,CAAC,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,MAAM;IACR,CAAC;IAED,KAAK,WAAW,CAAC,CAAC,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM;IACR,CAAC;IAED,KAAK,OAAO,CAAC,CAAC,CAAC;QACb,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM;IACR,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,MAAM;IACR,CAAC;IAED,KAAK,SAAS,CAAC,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,MAAM;IACR,CAAC;IAED,KAAK,QAAQ,CAAC,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,MAAM;IACR,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,MAAM;IACR,CAAC;IAED,KAAK,QAAQ,CAAC;IACd,KAAK,IAAI;QACP,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAef,CAAC,CAAC;QACC,MAAM;IAER,KAAK,KAAK,CAAC;IACX;QACE,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/bot.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EasyOref — Real-time Israeli Red Alert Filter Bot
|
|
3
|
+
*
|
|
4
|
+
* Architecture:
|
|
5
|
+
* oref.org.il API → local filter (area map) → Telegram (grammY)
|
|
6
|
+
*
|
|
7
|
+
* Flow:
|
|
8
|
+
* 1. Poll oref.org.il every 2 seconds for active alerts
|
|
9
|
+
* 2. Match areas against configured regions (Hebrew names)
|
|
10
|
+
* 3. Classify alert type: early warning / siren / incident over
|
|
11
|
+
* 4. If relevant → send calm message to family Telegram chat
|
|
12
|
+
*
|
|
13
|
+
* No LLM needed — purely deterministic matching for <1s latency.
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=bot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
|