@bryti/agent 0.0.1 → 0.1.0
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/Dockerfile +27 -0
- package/README.md +77 -50
- package/config.example.yml +265 -0
- package/dist/active-hours.d.ts +23 -0
- package/dist/active-hours.d.ts.map +1 -0
- package/dist/active-hours.js +68 -0
- package/dist/active-hours.js.map +1 -0
- package/dist/agent.d.ts +84 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +383 -0
- package/dist/agent.js.map +1 -0
- package/dist/channels/markdown/ir.d.ts +79 -0
- package/dist/channels/markdown/ir.d.ts.map +1 -0
- package/dist/channels/markdown/ir.js +824 -0
- package/dist/channels/markdown/ir.js.map +1 -0
- package/dist/channels/markdown/render.d.ts +35 -0
- package/dist/channels/markdown/render.d.ts.map +1 -0
- package/dist/channels/markdown/render.js +178 -0
- package/dist/channels/markdown/render.js.map +1 -0
- package/dist/channels/telegram-network-errors.d.ts +27 -0
- package/dist/channels/telegram-network-errors.d.ts.map +1 -0
- package/dist/channels/telegram-network-errors.js +156 -0
- package/dist/channels/telegram-network-errors.js.map +1 -0
- package/dist/channels/telegram.d.ts +76 -0
- package/dist/channels/telegram.d.ts.map +1 -0
- package/dist/channels/telegram.js +814 -0
- package/dist/channels/telegram.js.map +1 -0
- package/dist/channels/types.d.ts +59 -0
- package/dist/channels/types.d.ts.map +1 -0
- package/dist/channels/types.js +9 -0
- package/dist/channels/types.js.map +1 -0
- package/dist/channels/whatsapp.d.ts +45 -0
- package/dist/channels/whatsapp.d.ts.map +1 -0
- package/dist/channels/whatsapp.js +310 -0
- package/dist/channels/whatsapp.js.map +1 -0
- package/dist/cli.d.ts +13 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +635 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands.d.ts +35 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +113 -0
- package/dist/commands.js.map +1 -0
- package/dist/compaction/history.d.ts +17 -0
- package/dist/compaction/history.d.ts.map +1 -0
- package/dist/compaction/history.js +35 -0
- package/dist/compaction/history.js.map +1 -0
- package/dist/compaction/index.d.ts +3 -0
- package/dist/compaction/index.d.ts.map +1 -0
- package/dist/compaction/index.js +3 -0
- package/dist/compaction/index.js.map +1 -0
- package/dist/compaction/proactive.d.ts +25 -0
- package/dist/compaction/proactive.d.ts.map +1 -0
- package/dist/compaction/proactive.js +87 -0
- package/dist/compaction/proactive.js.map +1 -0
- package/dist/compaction/transcript-repair.d.ts +55 -0
- package/dist/compaction/transcript-repair.d.ts.map +1 -0
- package/dist/compaction/transcript-repair.js +215 -0
- package/dist/compaction/transcript-repair.js.map +1 -0
- package/dist/config.d.ts +128 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +317 -0
- package/dist/config.js.map +1 -0
- package/dist/crash-recovery.d.ts +23 -0
- package/dist/crash-recovery.d.ts.map +1 -0
- package/dist/crash-recovery.js +96 -0
- package/dist/crash-recovery.js.map +1 -0
- package/dist/defaults/extensions/EXTENSIONS.md +158 -0
- package/dist/defaults/extensions/documents-hedgedoc.ts +153 -0
- package/dist/history.d.ts +31 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +49 -0
- package/dist/history.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +673 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +39 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +143 -0
- package/dist/logger.js.map +1 -0
- package/dist/memory/conversation-search.d.ts +15 -0
- package/dist/memory/conversation-search.d.ts.map +1 -0
- package/dist/memory/conversation-search.js +60 -0
- package/dist/memory/conversation-search.js.map +1 -0
- package/dist/memory/core-memory.d.ts +28 -0
- package/dist/memory/core-memory.d.ts.map +1 -0
- package/dist/memory/core-memory.js +102 -0
- package/dist/memory/core-memory.js.map +1 -0
- package/dist/memory/embeddings.d.ts +44 -0
- package/dist/memory/embeddings.d.ts.map +1 -0
- package/dist/memory/embeddings.js +139 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/search.d.ts +49 -0
- package/dist/memory/search.d.ts.map +1 -0
- package/dist/memory/search.js +97 -0
- package/dist/memory/search.js.map +1 -0
- package/dist/memory/store.d.ts +32 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +205 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/message-queue.d.ts +73 -0
- package/dist/message-queue.d.ts.map +1 -0
- package/dist/message-queue.js +188 -0
- package/dist/message-queue.js.map +1 -0
- package/dist/model-infra.d.ts +64 -0
- package/dist/model-infra.d.ts.map +1 -0
- package/dist/model-infra.js +202 -0
- package/dist/model-infra.js.map +1 -0
- package/dist/projection/format.d.ts +10 -0
- package/dist/projection/format.d.ts.map +1 -0
- package/dist/projection/format.js +30 -0
- package/dist/projection/format.js.map +1 -0
- package/dist/projection/index.d.ts +11 -0
- package/dist/projection/index.d.ts.map +1 -0
- package/dist/projection/index.js +9 -0
- package/dist/projection/index.js.map +1 -0
- package/dist/projection/reflection.d.ts +94 -0
- package/dist/projection/reflection.d.ts.map +1 -0
- package/dist/projection/reflection.js +334 -0
- package/dist/projection/reflection.js.map +1 -0
- package/dist/projection/store.d.ts +144 -0
- package/dist/projection/store.d.ts.map +1 -0
- package/dist/projection/store.js +519 -0
- package/dist/projection/store.js.map +1 -0
- package/dist/projection/tools.d.ts +11 -0
- package/dist/projection/tools.d.ts.map +1 -0
- package/dist/projection/tools.js +237 -0
- package/dist/projection/tools.js.map +1 -0
- package/dist/scheduler.d.ts +36 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +286 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/system-prompt.d.ts +41 -0
- package/dist/system-prompt.d.ts.map +1 -0
- package/dist/system-prompt.js +162 -0
- package/dist/system-prompt.js.map +1 -0
- package/dist/time.d.ts +52 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +138 -0
- package/dist/time.js.map +1 -0
- package/dist/tools/archival-memory-tool.d.ts +8 -0
- package/dist/tools/archival-memory-tool.d.ts.map +1 -0
- package/dist/tools/archival-memory-tool.js +68 -0
- package/dist/tools/archival-memory-tool.js.map +1 -0
- package/dist/tools/conversation-search-tool.d.ts +6 -0
- package/dist/tools/conversation-search-tool.d.ts.map +1 -0
- package/dist/tools/conversation-search-tool.js +28 -0
- package/dist/tools/conversation-search-tool.js.map +1 -0
- package/dist/tools/core-memory-tool.d.ts +7 -0
- package/dist/tools/core-memory-tool.d.ts.map +1 -0
- package/dist/tools/core-memory-tool.js +59 -0
- package/dist/tools/core-memory-tool.js.map +1 -0
- package/dist/tools/fetch-url.d.ts +15 -0
- package/dist/tools/fetch-url.d.ts.map +1 -0
- package/dist/tools/fetch-url.js +76 -0
- package/dist/tools/fetch-url.js.map +1 -0
- package/dist/tools/files.d.ts +10 -0
- package/dist/tools/files.d.ts.map +1 -0
- package/dist/tools/files.js +127 -0
- package/dist/tools/files.js.map +1 -0
- package/dist/tools/index.d.ts +17 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +118 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/result.d.ts +21 -0
- package/dist/tools/result.d.ts.map +1 -0
- package/dist/tools/result.js +36 -0
- package/dist/tools/result.js.map +1 -0
- package/dist/tools/skill-install.d.ts +17 -0
- package/dist/tools/skill-install.d.ts.map +1 -0
- package/dist/tools/skill-install.js +148 -0
- package/dist/tools/skill-install.js.map +1 -0
- package/dist/tools/web-search.d.ts +42 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +237 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/trust/guardrail.d.ts +60 -0
- package/dist/trust/guardrail.d.ts.map +1 -0
- package/dist/trust/guardrail.js +171 -0
- package/dist/trust/guardrail.js.map +1 -0
- package/dist/trust/index.d.ts +12 -0
- package/dist/trust/index.d.ts.map +1 -0
- package/dist/trust/index.js +12 -0
- package/dist/trust/index.js.map +1 -0
- package/dist/trust/store.d.ts +118 -0
- package/dist/trust/store.d.ts.map +1 -0
- package/dist/trust/store.js +209 -0
- package/dist/trust/store.js.map +1 -0
- package/dist/trust/wrapper.d.ts +36 -0
- package/dist/trust/wrapper.d.ts.map +1 -0
- package/dist/trust/wrapper.js +142 -0
- package/dist/trust/wrapper.js.map +1 -0
- package/dist/usage.d.ts +53 -0
- package/dist/usage.d.ts.map +1 -0
- package/dist/usage.js +124 -0
- package/dist/usage.js.map +1 -0
- package/dist/util/math.d.ts +9 -0
- package/dist/util/math.d.ts.map +1 -0
- package/dist/util/math.js +22 -0
- package/dist/util/math.js.map +1 -0
- package/dist/util/ssrf.d.ts +21 -0
- package/dist/util/ssrf.d.ts.map +1 -0
- package/dist/util/ssrf.js +77 -0
- package/dist/util/ssrf.js.map +1 -0
- package/dist/workers/index.d.ts +8 -0
- package/dist/workers/index.d.ts.map +1 -0
- package/dist/workers/index.js +7 -0
- package/dist/workers/index.js.map +1 -0
- package/dist/workers/registry.d.ts +53 -0
- package/dist/workers/registry.d.ts.map +1 -0
- package/dist/workers/registry.js +38 -0
- package/dist/workers/registry.js.map +1 -0
- package/dist/workers/scoped-tools.d.ts +21 -0
- package/dist/workers/scoped-tools.d.ts.map +1 -0
- package/dist/workers/scoped-tools.js +111 -0
- package/dist/workers/scoped-tools.js.map +1 -0
- package/dist/workers/spawn.d.ts +62 -0
- package/dist/workers/spawn.d.ts.map +1 -0
- package/dist/workers/spawn.js +314 -0
- package/dist/workers/spawn.js.map +1 -0
- package/dist/workers/tools.d.ts +26 -0
- package/dist/workers/tools.d.ts.map +1 -0
- package/dist/workers/tools.js +380 -0
- package/dist/workers/tools.js.map +1 -0
- package/docker-compose.yml +72 -0
- package/package.json +16 -1
- package/run.sh +27 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../../src/channels/markdown/ir.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-agnostic markdown renderer.
|
|
3
|
+
*
|
|
4
|
+
* Callers supply `styleMarkers` (open/close strings per style) and `escapeText`
|
|
5
|
+
* (platform-specific entity escaping). Telegram and WhatsApp each plug in their
|
|
6
|
+
* own implementations. This is the only place in the pipeline that emits
|
|
7
|
+
* platform-specific syntax.
|
|
8
|
+
*/
|
|
9
|
+
import type { MarkdownIR, MarkdownLinkSpan, MarkdownStyle } from "./ir.js";
|
|
10
|
+
export type RenderStyleMarker = {
|
|
11
|
+
open: string;
|
|
12
|
+
close: string;
|
|
13
|
+
};
|
|
14
|
+
export type RenderStyleMap = Partial<Record<MarkdownStyle, RenderStyleMarker>>;
|
|
15
|
+
export type RenderLink = {
|
|
16
|
+
start: number;
|
|
17
|
+
end: number;
|
|
18
|
+
open: string;
|
|
19
|
+
close: string;
|
|
20
|
+
};
|
|
21
|
+
export type RenderOptions = {
|
|
22
|
+
styleMarkers: RenderStyleMap;
|
|
23
|
+
escapeText: (text: string) => string;
|
|
24
|
+
buildLink?: (link: MarkdownLinkSpan, text: string) => RenderLink | null;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Render a `MarkdownIR` to a string using the supplied platform markers.
|
|
28
|
+
*
|
|
29
|
+
* Invariant: each style span and link is opened and closed exactly once, even
|
|
30
|
+
* when spans overlap. Overlapping spans are handled by the sweep-line loop
|
|
31
|
+
* below: every span is always closed at its recorded end position regardless
|
|
32
|
+
* of what other spans are active at that point.
|
|
33
|
+
*/
|
|
34
|
+
export declare function renderMarkdownWithMarkers(ir: MarkdownIR, options: RenderOptions): string;
|
|
35
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/channels/markdown/render.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAqB,MAAM,SAAS,CAAC;AAE9F,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,cAAc,CAAC;IAC7B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC;CACzE,CAAC;AA2CF;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CA2JxF"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
// When two spans start at the same position the one with higher rank (lower
|
|
2
|
+
// index in STYLE_ORDER) is opened first so the outer span wraps the inner.
|
|
3
|
+
// This prevents inverted nesting where, for example, a code span would end up
|
|
4
|
+
// wrapped inside a bold span instead of the other way around.
|
|
5
|
+
const STYLE_ORDER = [
|
|
6
|
+
"code_block",
|
|
7
|
+
"code",
|
|
8
|
+
"bold",
|
|
9
|
+
"italic",
|
|
10
|
+
"strikethrough",
|
|
11
|
+
"spoiler",
|
|
12
|
+
];
|
|
13
|
+
// Inverse lookup: style → index in STYLE_ORDER (lower = higher priority / outer).
|
|
14
|
+
const STYLE_RANK = new Map(STYLE_ORDER.map((style, index) => [style, index]));
|
|
15
|
+
/**
|
|
16
|
+
* Sort style spans for deterministic processing.
|
|
17
|
+
*
|
|
18
|
+
* Primary key: start position ascending (process spans left to right).
|
|
19
|
+
* Secondary key: end position descending (longest span first, so the outer
|
|
20
|
+
* tag is opened before the inner one).
|
|
21
|
+
* Tertiary key: STYLE_RANK ascending (higher-priority style is outer when
|
|
22
|
+
* two spans have identical start and end positions).
|
|
23
|
+
*
|
|
24
|
+
* Together these three keys ensure nesting is always correct.
|
|
25
|
+
*/
|
|
26
|
+
function sortStyleSpans(spans) {
|
|
27
|
+
return [...spans].toSorted((a, b) => {
|
|
28
|
+
if (a.start !== b.start) {
|
|
29
|
+
return a.start - b.start;
|
|
30
|
+
}
|
|
31
|
+
if (a.end !== b.end) {
|
|
32
|
+
return b.end - a.end;
|
|
33
|
+
}
|
|
34
|
+
return (STYLE_RANK.get(a.style) ?? 0) - (STYLE_RANK.get(b.style) ?? 0);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Render a `MarkdownIR` to a string using the supplied platform markers.
|
|
39
|
+
*
|
|
40
|
+
* Invariant: each style span and link is opened and closed exactly once, even
|
|
41
|
+
* when spans overlap. Overlapping spans are handled by the sweep-line loop
|
|
42
|
+
* below: every span is always closed at its recorded end position regardless
|
|
43
|
+
* of what other spans are active at that point.
|
|
44
|
+
*/
|
|
45
|
+
export function renderMarkdownWithMarkers(ir, options) {
|
|
46
|
+
const text = ir.text ?? "";
|
|
47
|
+
if (!text) {
|
|
48
|
+
return "";
|
|
49
|
+
}
|
|
50
|
+
const styleMarkers = options.styleMarkers;
|
|
51
|
+
const styled = sortStyleSpans(ir.styles.filter((span) => Boolean(styleMarkers[span.style])));
|
|
52
|
+
const boundaries = new Set();
|
|
53
|
+
boundaries.add(0);
|
|
54
|
+
boundaries.add(text.length);
|
|
55
|
+
const startsAt = new Map();
|
|
56
|
+
for (const span of styled) {
|
|
57
|
+
if (span.start === span.end) {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
boundaries.add(span.start);
|
|
61
|
+
boundaries.add(span.end);
|
|
62
|
+
const bucket = startsAt.get(span.start);
|
|
63
|
+
if (bucket) {
|
|
64
|
+
bucket.push(span);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
startsAt.set(span.start, [span]);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
for (const spans of startsAt.values()) {
|
|
71
|
+
spans.sort((a, b) => {
|
|
72
|
+
if (a.end !== b.end) {
|
|
73
|
+
return b.end - a.end;
|
|
74
|
+
}
|
|
75
|
+
return (STYLE_RANK.get(a.style) ?? 0) - (STYLE_RANK.get(b.style) ?? 0);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
const linkStarts = new Map();
|
|
79
|
+
if (options.buildLink) {
|
|
80
|
+
for (const link of ir.links) {
|
|
81
|
+
if (link.start === link.end) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
const rendered = options.buildLink(link, text);
|
|
85
|
+
if (!rendered) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
boundaries.add(rendered.start);
|
|
89
|
+
boundaries.add(rendered.end);
|
|
90
|
+
const openBucket = linkStarts.get(rendered.start);
|
|
91
|
+
if (openBucket) {
|
|
92
|
+
openBucket.push(rendered);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
linkStarts.set(rendered.start, [rendered]);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Collect all unique character positions where a span starts or ends, then
|
|
100
|
+
// sort them. The main loop walks these boundaries left to right — this is a
|
|
101
|
+
// sweep-line algorithm over character positions.
|
|
102
|
+
const points = [...boundaries].toSorted((a, b) => a - b);
|
|
103
|
+
// Active-span stack: entries are pushed when a span opens and popped (in
|
|
104
|
+
// reverse / LIFO order) when the span's end position is reached. Because
|
|
105
|
+
// spans may overlap, spans that are still logically open when another span
|
|
106
|
+
// needs to close must be temporarily closed and then reopened around the
|
|
107
|
+
// text slice — the stack makes this order explicit.
|
|
108
|
+
const stack = [];
|
|
109
|
+
let out = "";
|
|
110
|
+
for (let i = 0; i < points.length; i += 1) {
|
|
111
|
+
const pos = points[i];
|
|
112
|
+
// Close ALL elements (styles and links) in LIFO order at this position
|
|
113
|
+
while (stack.length && stack[stack.length - 1]?.end === pos) {
|
|
114
|
+
const item = stack.pop();
|
|
115
|
+
if (item) {
|
|
116
|
+
out += item.close;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const openingItems = [];
|
|
120
|
+
const openingLinks = linkStarts.get(pos);
|
|
121
|
+
if (openingLinks && openingLinks.length > 0) {
|
|
122
|
+
for (const [index, link] of openingLinks.entries()) {
|
|
123
|
+
openingItems.push({
|
|
124
|
+
end: link.end,
|
|
125
|
+
open: link.open,
|
|
126
|
+
close: link.close,
|
|
127
|
+
kind: "link",
|
|
128
|
+
index,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const openingStyles = startsAt.get(pos);
|
|
133
|
+
if (openingStyles) {
|
|
134
|
+
for (const [index, span] of openingStyles.entries()) {
|
|
135
|
+
const marker = styleMarkers[span.style];
|
|
136
|
+
if (!marker) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
openingItems.push({
|
|
140
|
+
end: span.end,
|
|
141
|
+
open: marker.open,
|
|
142
|
+
close: marker.close,
|
|
143
|
+
kind: "style",
|
|
144
|
+
style: span.style,
|
|
145
|
+
index,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (openingItems.length > 0) {
|
|
150
|
+
openingItems.sort((a, b) => {
|
|
151
|
+
if (a.end !== b.end) {
|
|
152
|
+
return b.end - a.end;
|
|
153
|
+
}
|
|
154
|
+
if (a.kind !== b.kind) {
|
|
155
|
+
return a.kind === "link" ? -1 : 1;
|
|
156
|
+
}
|
|
157
|
+
if (a.kind === "style" && b.kind === "style") {
|
|
158
|
+
return (STYLE_RANK.get(a.style) ?? 0) - (STYLE_RANK.get(b.style) ?? 0);
|
|
159
|
+
}
|
|
160
|
+
return a.index - b.index;
|
|
161
|
+
});
|
|
162
|
+
// Open outer spans first (larger end) so LIFO closes stay valid for same-start overlaps.
|
|
163
|
+
for (const item of openingItems) {
|
|
164
|
+
out += item.open;
|
|
165
|
+
stack.push({ close: item.close, end: item.end });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
const next = points[i + 1];
|
|
169
|
+
if (next === undefined) {
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
if (next > pos) {
|
|
173
|
+
out += options.escapeText(text.slice(pos, next));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return out;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/channels/markdown/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telegram network error classifier.
|
|
3
|
+
*
|
|
4
|
+
* Classifies errors as recoverable (transient network) vs permanent (API).
|
|
5
|
+
* Used by the polling restart loop and getFile retry logic.
|
|
6
|
+
*/
|
|
7
|
+
export type TelegramNetworkErrorContext = "polling" | "send" | "getfile" | "unknown";
|
|
8
|
+
/**
|
|
9
|
+
* True if the error is a transient network error worth retrying. False for
|
|
10
|
+
* permanent API errors (4xx). Message-based matching is disabled for "send"
|
|
11
|
+
* context to avoid suppressing real delivery errors.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isRecoverableTelegramNetworkError(err: unknown, options?: {
|
|
14
|
+
context?: TelegramNetworkErrorContext;
|
|
15
|
+
allowMessageMatch?: boolean;
|
|
16
|
+
}): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Returns true for Telegram's permanent "file is too big" error (>20 MB).
|
|
19
|
+
* This is a 400 Bad Request and should never be retried.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isFileTooBigError(err: unknown): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Returns true if a getFile error is worth retrying (i.e. it is NOT a
|
|
24
|
+
* permanent "file is too big" error and IS a recoverable network error).
|
|
25
|
+
*/
|
|
26
|
+
export declare function isRetryableGetFileError(err: unknown): boolean;
|
|
27
|
+
//# sourceMappingURL=telegram-network-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram-network-errors.d.ts","sourceRoot":"","sources":["../../src/channels/telegram-network-errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0GH,MAAM,MAAM,2BAA2B,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAErF;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,2BAA2B,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GACnF,OAAO,CAsBT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKvD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAG7D"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telegram network error classifier.
|
|
3
|
+
*
|
|
4
|
+
* Classifies errors as recoverable (transient network) vs permanent (API).
|
|
5
|
+
* Used by the polling restart loop and getFile retry logic.
|
|
6
|
+
*/
|
|
7
|
+
const RECOVERABLE_ERROR_CODES = new Set([
|
|
8
|
+
"ECONNRESET",
|
|
9
|
+
"ECONNREFUSED",
|
|
10
|
+
"EPIPE",
|
|
11
|
+
"ETIMEDOUT",
|
|
12
|
+
"ESOCKETTIMEDOUT",
|
|
13
|
+
"ENETUNREACH",
|
|
14
|
+
"EHOSTUNREACH",
|
|
15
|
+
"ENOTFOUND",
|
|
16
|
+
"EAI_AGAIN",
|
|
17
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
18
|
+
"UND_ERR_HEADERS_TIMEOUT",
|
|
19
|
+
"UND_ERR_BODY_TIMEOUT",
|
|
20
|
+
"UND_ERR_SOCKET",
|
|
21
|
+
"UND_ERR_ABORTED",
|
|
22
|
+
"ECONNABORTED",
|
|
23
|
+
"ERR_NETWORK",
|
|
24
|
+
]);
|
|
25
|
+
const RECOVERABLE_ERROR_NAMES = new Set([
|
|
26
|
+
"AbortError",
|
|
27
|
+
"TimeoutError",
|
|
28
|
+
"ConnectTimeoutError",
|
|
29
|
+
"HeadersTimeoutError",
|
|
30
|
+
"BodyTimeoutError",
|
|
31
|
+
]);
|
|
32
|
+
const RECOVERABLE_MESSAGE_SNIPPETS = [
|
|
33
|
+
"fetch failed",
|
|
34
|
+
"typeerror: fetch failed",
|
|
35
|
+
"undici",
|
|
36
|
+
"network error",
|
|
37
|
+
"network request",
|
|
38
|
+
"client network socket disconnected",
|
|
39
|
+
"socket hang up",
|
|
40
|
+
"getaddrinfo",
|
|
41
|
+
"timeout",
|
|
42
|
+
"timed out",
|
|
43
|
+
];
|
|
44
|
+
const FILE_TOO_BIG_RE = /file is too big/i;
|
|
45
|
+
function getErrorCode(err) {
|
|
46
|
+
if (!err || typeof err !== "object")
|
|
47
|
+
return undefined;
|
|
48
|
+
const code = err.code;
|
|
49
|
+
if (typeof code === "string")
|
|
50
|
+
return code;
|
|
51
|
+
const errno = err.errno;
|
|
52
|
+
if (typeof errno === "string")
|
|
53
|
+
return errno;
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
function getErrorName(err) {
|
|
57
|
+
if (!err || typeof err !== "object")
|
|
58
|
+
return "";
|
|
59
|
+
return "name" in err ? String(err.name) : "";
|
|
60
|
+
}
|
|
61
|
+
function formatErrorMessage(err) {
|
|
62
|
+
if (!err)
|
|
63
|
+
return "";
|
|
64
|
+
if (typeof err === "string")
|
|
65
|
+
return err;
|
|
66
|
+
if (err instanceof Error)
|
|
67
|
+
return err.message;
|
|
68
|
+
return String(err);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Walk the error chain: err -> err.cause -> err.reason -> err.errors[].
|
|
72
|
+
* Grammy's HttpError wraps the underlying fetch error in .error (not .cause),
|
|
73
|
+
* so we follow that too, but only for HttpError to avoid widening the search.
|
|
74
|
+
*/
|
|
75
|
+
function collectErrorCandidates(err) {
|
|
76
|
+
const queue = [err];
|
|
77
|
+
const seen = new Set();
|
|
78
|
+
const candidates = [];
|
|
79
|
+
while (queue.length > 0) {
|
|
80
|
+
const current = queue.shift();
|
|
81
|
+
if (current == null || seen.has(current))
|
|
82
|
+
continue;
|
|
83
|
+
seen.add(current);
|
|
84
|
+
candidates.push(current);
|
|
85
|
+
if (typeof current === "object") {
|
|
86
|
+
const cause = current.cause;
|
|
87
|
+
if (cause && !seen.has(cause))
|
|
88
|
+
queue.push(cause);
|
|
89
|
+
const reason = current.reason;
|
|
90
|
+
if (reason && !seen.has(reason))
|
|
91
|
+
queue.push(reason);
|
|
92
|
+
const errors = current.errors;
|
|
93
|
+
if (Array.isArray(errors)) {
|
|
94
|
+
for (const nested of errors) {
|
|
95
|
+
if (nested && !seen.has(nested))
|
|
96
|
+
queue.push(nested);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Grammy HttpError wraps the real network error in .error
|
|
100
|
+
if (getErrorName(current) === "HttpError") {
|
|
101
|
+
const wrapped = current.error;
|
|
102
|
+
if (wrapped && !seen.has(wrapped))
|
|
103
|
+
queue.push(wrapped);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return candidates;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* True if the error is a transient network error worth retrying. False for
|
|
111
|
+
* permanent API errors (4xx). Message-based matching is disabled for "send"
|
|
112
|
+
* context to avoid suppressing real delivery errors.
|
|
113
|
+
*/
|
|
114
|
+
export function isRecoverableTelegramNetworkError(err, options = {}) {
|
|
115
|
+
if (!err)
|
|
116
|
+
return false;
|
|
117
|
+
const allowMessageMatch = typeof options.allowMessageMatch === "boolean"
|
|
118
|
+
? options.allowMessageMatch
|
|
119
|
+
: options.context !== "send";
|
|
120
|
+
for (const candidate of collectErrorCandidates(err)) {
|
|
121
|
+
const code = getErrorCode(candidate)?.trim().toUpperCase();
|
|
122
|
+
if (code && RECOVERABLE_ERROR_CODES.has(code))
|
|
123
|
+
return true;
|
|
124
|
+
const name = getErrorName(candidate);
|
|
125
|
+
if (name && RECOVERABLE_ERROR_NAMES.has(name))
|
|
126
|
+
return true;
|
|
127
|
+
if (allowMessageMatch) {
|
|
128
|
+
const message = formatErrorMessage(candidate).toLowerCase();
|
|
129
|
+
if (message && RECOVERABLE_MESSAGE_SNIPPETS.some((s) => message.includes(s)))
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Returns true for Telegram's permanent "file is too big" error (>20 MB).
|
|
137
|
+
* This is a 400 Bad Request and should never be retried.
|
|
138
|
+
*/
|
|
139
|
+
export function isFileTooBigError(err) {
|
|
140
|
+
if (!err || typeof err !== "object")
|
|
141
|
+
return false;
|
|
142
|
+
const description = err.description;
|
|
143
|
+
if (typeof description === "string" && FILE_TOO_BIG_RE.test(description))
|
|
144
|
+
return true;
|
|
145
|
+
return FILE_TOO_BIG_RE.test(formatErrorMessage(err));
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Returns true if a getFile error is worth retrying (i.e. it is NOT a
|
|
149
|
+
* permanent "file is too big" error and IS a recoverable network error).
|
|
150
|
+
*/
|
|
151
|
+
export function isRetryableGetFileError(err) {
|
|
152
|
+
if (isFileTooBigError(err))
|
|
153
|
+
return false;
|
|
154
|
+
return isRecoverableTelegramNetworkError(err, { context: "getfile" });
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=telegram-network-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram-network-errors.js","sourceRoot":"","sources":["../../src/channels/telegram-network-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telegram bridge using grammy.
|
|
3
|
+
*
|
|
4
|
+
* ChannelBridge for Telegram DMs. Long polling for now, webhook later.
|
|
5
|
+
*
|
|
6
|
+
* All outgoing messages use HTML parse mode. LLM markdown output is converted
|
|
7
|
+
* via a proper markdown IR (not regex) before sending. HTML is far simpler
|
|
8
|
+
* than MarkdownV2, which requires escaping 18 characters and breaks constantly
|
|
9
|
+
* on LLM output.
|
|
10
|
+
*/
|
|
11
|
+
import type { ApprovalResult, ChannelBridge, IncomingMessage, SendOpts } from "./types.js";
|
|
12
|
+
/**
|
|
13
|
+
* Convert LLM markdown to Telegram HTML via the markdown IR.
|
|
14
|
+
* Handles bold, italic, strikethrough, code, links, headings (as bold),
|
|
15
|
+
* and tables (as bullet lists, since Telegram has no table support).
|
|
16
|
+
*/
|
|
17
|
+
export declare function markdownToHtml(text: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Parse markdown into an IR, split at semantic boundaries, and render each
|
|
20
|
+
* chunk to Telegram HTML. Splitting after IR parsing means code blocks,
|
|
21
|
+
* bold spans, and links are never cut in half.
|
|
22
|
+
*/
|
|
23
|
+
export declare function markdownToTelegramChunks(text: string, maxLength?: number): string[];
|
|
24
|
+
/**
|
|
25
|
+
* Split text into chunks that fit Telegram's message limit.
|
|
26
|
+
* Prefers paragraph boundaries, then newlines, then sentences, then hard cut.
|
|
27
|
+
*/
|
|
28
|
+
export declare function chunkMessage(text: string, maxLength?: number): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Telegram bridge implementation.
|
|
31
|
+
*/
|
|
32
|
+
export declare class TelegramBridge implements ChannelBridge {
|
|
33
|
+
private readonly botToken;
|
|
34
|
+
readonly name = "telegram";
|
|
35
|
+
readonly platform: "telegram";
|
|
36
|
+
private bot;
|
|
37
|
+
private handler;
|
|
38
|
+
private typingIntervals;
|
|
39
|
+
private readonly allowedUsers;
|
|
40
|
+
/** Pending approval requests: approvalKey → resolve function */
|
|
41
|
+
private pendingApprovals;
|
|
42
|
+
/** Media group buffer: media_group_id → accumulated entry */
|
|
43
|
+
private mediaGroupBuffer;
|
|
44
|
+
constructor(botToken: string, allowedUsers?: number[]);
|
|
45
|
+
start(): Promise<void>;
|
|
46
|
+
stop(): Promise<void>;
|
|
47
|
+
sendMessage(channelId: string, text: string, opts?: SendOpts): Promise<string>;
|
|
48
|
+
editMessage(channelId: string, messageId: string, text: string): Promise<void>;
|
|
49
|
+
sendTyping(channelId: string): Promise<void>;
|
|
50
|
+
onMessage(handler: (msg: IncomingMessage) => Promise<void>): void;
|
|
51
|
+
sendApprovalRequest(channelId: string, prompt: string, approvalKey: string, timeoutMs?: number): Promise<ApprovalResult>;
|
|
52
|
+
/**
|
|
53
|
+
* Flush a buffered media group (album) as a single message with all images.
|
|
54
|
+
*/
|
|
55
|
+
private flushMediaGroup;
|
|
56
|
+
/**
|
|
57
|
+
* Download the largest available photo from a photo message.
|
|
58
|
+
* Returns a single-element array on success, null on failure.
|
|
59
|
+
*/
|
|
60
|
+
private downloadPhoto;
|
|
61
|
+
/**
|
|
62
|
+
* Download an image document (sent as a file rather than a compressed photo).
|
|
63
|
+
* Returns a single-element array on success, null on failure.
|
|
64
|
+
*/
|
|
65
|
+
private downloadDocument;
|
|
66
|
+
/**
|
|
67
|
+
* Check if user is allowed to use the bot.
|
|
68
|
+
* When allowed_users is empty, nobody is allowed (deny by default).
|
|
69
|
+
*/
|
|
70
|
+
private isAllowed;
|
|
71
|
+
/**
|
|
72
|
+
* Stop typing indicator for a channel.
|
|
73
|
+
*/
|
|
74
|
+
private stopTyping;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=telegram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/channels/telegram.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgF3F;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAqB,GAAG,MAAM,EAAE,CAK/F;AA4BD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAqB,GAAG,MAAM,EAAE,CAkDnF;AAwGD;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;IAatC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZrC,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAExC,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,gEAAgE;IAChE,OAAO,CAAC,gBAAgB,CAA4D;IACpF,6DAA6D;IAC7D,OAAO,CAAC,gBAAgB,CAA2C;gBAEtC,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,EAAO;IAcpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyQtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBrB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA6C9E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9E,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkClD,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAqB3D,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,SAAgB,GACxB,OAAO,CAAC,cAAc,CAAC;IA6D1B;;OAEG;YACW,eAAe;IAyB7B;;;OAGG;YACW,aAAa;IAkD3B;;;OAGG;YACW,gBAAgB;IA0C9B;;;OAGG;IACH,OAAO,CAAC,SAAS;IAajB;;OAEG;IACH,OAAO,CAAC,UAAU;CAOnB"}
|