instar 1.3.1121 → 1.3.1122
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/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +60 -44
- package/dist/commands/server.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/dist/messaging/DeliverySinkFailure.d.ts +14 -0
- package/dist/messaging/DeliverySinkFailure.d.ts.map +1 -0
- package/dist/messaging/DeliverySinkFailure.js +23 -0
- package/dist/messaging/DeliverySinkFailure.js.map +1 -0
- package/dist/messaging/NotificationBatcher.d.ts.map +1 -1
- package/dist/messaging/NotificationBatcher.js +14 -4
- package/dist/messaging/NotificationBatcher.js.map +1 -1
- package/dist/messaging/telegramSendSideComposition.d.ts +40 -0
- package/dist/messaging/telegramSendSideComposition.d.ts.map +1 -0
- package/dist/messaging/telegramSendSideComposition.js +36 -0
- package/dist/messaging/telegramSendSideComposition.js.map +1 -0
- package/dist/scheduler/JobScheduler.d.ts +23 -8
- package/dist/scheduler/JobScheduler.d.ts.map +1 -1
- package/dist/scheduler/JobScheduler.js +189 -29
- package/dist/scheduler/JobScheduler.js.map +1 -1
- package/dist/testing/selfActionRegistry.d.ts.map +1 -1
- package/dist/testing/selfActionRegistry.js +53 -0
- package/dist/testing/selfActionRegistry.js.map +1 -1
- package/dist/threadline/TelegramBridge.d.ts +4 -0
- package/dist/threadline/TelegramBridge.d.ts.map +1 -1
- package/dist/threadline/TelegramBridge.js +24 -0
- package/dist/threadline/TelegramBridge.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +3 -3
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/upgrades/1.3.1122.md +64 -0
- package/upgrades/scheduler-alert-delivery.eli16.md +46 -0
- package/upgrades/side-effects/scheduler-alert-delivery.md +168 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"generatedFrom": "source-tree",
|
|
4
4
|
"registrySha256": "5413a0c6ef9ba2bda876b509d1c0bfebe450da3708cd5a5d627d6cb836012d58",
|
|
5
|
-
"packageVersion": "1.3.
|
|
5
|
+
"packageVersion": "1.3.1122",
|
|
6
6
|
"guards": [
|
|
7
7
|
{
|
|
8
8
|
"ref": "docs/canonical-migration-contracts.json",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"sha256": "
|
|
2
|
+
"sha256": "11ce55d65baed309e0b55b093b70883c00303b387b04aa31409d1906fa7b362c",
|
|
3
3
|
"registrySha256": "5413a0c6ef9ba2bda876b509d1c0bfebe450da3708cd5a5d627d6cb836012d58",
|
|
4
|
-
"packageVersion": "1.3.
|
|
4
|
+
"packageVersion": "1.3.1122"
|
|
5
5
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface DeliverySinkFailure {
|
|
2
|
+
component: string;
|
|
3
|
+
primary: string;
|
|
4
|
+
reason: string;
|
|
5
|
+
impact: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Delivery absence is never a successful no-op. This helper gives every
|
|
9
|
+
* send-side component the same loud, durable degradation path while allowing
|
|
10
|
+
* callers to keep their own retry/backoff authority.
|
|
11
|
+
*/
|
|
12
|
+
export declare function reportDeliverySinkFailure(failure: DeliverySinkFailure): void;
|
|
13
|
+
export declare function requireDeliverySink<T>(sink: T | null | undefined, failure: DeliverySinkFailure): sink is T;
|
|
14
|
+
//# sourceMappingURL=DeliverySinkFailure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeliverySinkFailure.d.ts","sourceRoot":"","sources":["../../src/messaging/DeliverySinkFailure.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAS5E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,IAAI,IAAI,CAAC,CAIX"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DegradationReporter } from '../monitoring/DegradationReporter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Delivery absence is never a successful no-op. This helper gives every
|
|
4
|
+
* send-side component the same loud, durable degradation path while allowing
|
|
5
|
+
* callers to keep their own retry/backoff authority.
|
|
6
|
+
*/
|
|
7
|
+
export function reportDeliverySinkFailure(failure) {
|
|
8
|
+
console.error(`[delivery-sink] ${failure.component}: ${failure.reason}`);
|
|
9
|
+
DegradationReporter.getInstance().report({
|
|
10
|
+
feature: `${failure.component}.delivery-sink`,
|
|
11
|
+
primary: failure.primary,
|
|
12
|
+
fallback: 'Record the delivery failure through the owning component policy',
|
|
13
|
+
reason: failure.reason,
|
|
14
|
+
impact: failure.impact,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export function requireDeliverySink(sink, failure) {
|
|
18
|
+
if (sink != null)
|
|
19
|
+
return true;
|
|
20
|
+
reportDeliverySinkFailure(failure);
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=DeliverySinkFailure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeliverySinkFailure.js","sourceRoot":"","sources":["../../src/messaging/DeliverySinkFailure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAS3E;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA4B;IACpE,OAAO,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,mBAAmB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QACvC,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,gBAAgB;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,iEAAiE;QAC3E,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAA0B,EAC1B,OAA4B;IAE5B,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationBatcher.d.ts","sourceRoot":"","sources":["../../src/messaging/NotificationBatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"NotificationBatcher.d.ts","sourceRoot":"","sources":["../../src/messaging/NotificationBatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAgB7F,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAK;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAkC;gBAE7C,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAI3C,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAI3C,KAAK,IAAI,IAAI;IAUb,IAAI,IAAI,IAAI;IAON,OAAO,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CzD,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAO3B,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCxD,YAAY,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAOnD,QAAQ,IAAI,YAAY;IAWxB;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAYzC,SAAS,IAAI,OAAO;IAIpB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM;IA4BrE;;;;;OAKG;IACH,eAAe,CAAC,KAAK,GAAE,MAAmB,GAAG,MAAM,GAAG,IAAI;IAmB1D;;;OAGG;IACH,oBAAoB,CAAC,KAAK,GAAE,MAAmB,GAAG,MAAM;IAOxD,YAAY,IAAI,OAAO;IAkBvB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;YAiBV,UAAU;YAqBV,UAAU;CAiBzB"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Born from: Matthew Berman OpenClaw analysis (2026-02-25)
|
|
10
10
|
*/
|
|
11
|
+
import { requireDeliverySink, reportDeliverySinkFailure } from './DeliverySinkFailure.js';
|
|
11
12
|
const CATEGORY_HEADERS = {
|
|
12
13
|
'job-complete': 'JOBS',
|
|
13
14
|
'attention-update': 'ATTENTION',
|
|
@@ -259,15 +260,24 @@ export class NotificationBatcher {
|
|
|
259
260
|
return `${category}:${normalized}`;
|
|
260
261
|
}
|
|
261
262
|
async sendDirect(topicId, message) {
|
|
262
|
-
if (!this.sendFn
|
|
263
|
+
if (!requireDeliverySink(this.sendFn, {
|
|
264
|
+
component: 'NotificationBatcher',
|
|
265
|
+
primary: 'Deliver queued and immediate notifications through the configured messaging sink',
|
|
266
|
+
reason: `No delivery sink is configured for topic ${topicId}`,
|
|
267
|
+
impact: 'A notification was not delivered; startup composition or messaging configuration is incomplete',
|
|
268
|
+
}))
|
|
263
269
|
return;
|
|
264
|
-
}
|
|
265
270
|
try {
|
|
266
271
|
await this.sendFn(topicId, message);
|
|
267
272
|
}
|
|
268
273
|
catch (err) {
|
|
269
|
-
//
|
|
270
|
-
|
|
274
|
+
// Keep batching non-throwing, but never treat a failed send as silence.
|
|
275
|
+
reportDeliverySinkFailure({
|
|
276
|
+
component: 'NotificationBatcher',
|
|
277
|
+
primary: 'Deliver queued and immediate notifications through the configured messaging sink',
|
|
278
|
+
reason: `Configured sink failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
279
|
+
impact: 'A notification was not delivered; the queue remains observable through degradation state',
|
|
280
|
+
});
|
|
271
281
|
}
|
|
272
282
|
}
|
|
273
283
|
async checkFlush() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationBatcher.js","sourceRoot":"","sources":["../../src/messaging/NotificationBatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"NotificationBatcher.js","sourceRoot":"","sources":["../../src/messaging/NotificationBatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AA2C1F,MAAM,gBAAgB,GAA2B;IAC/C,cAAc,EAAE,MAAM;IACtB,kBAAkB,EAAE,WAAW;IAC/B,mBAAmB,EAAE,UAAU;IAC/B,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAM,cAAc,GAAkB;IACpC,OAAO,EAAE,IAAI;IACb,sBAAsB,EAAE,EAAE;IAC1B,qBAAqB,EAAE,GAAG;CAC3B,CAAC;AAEF,MAAM,OAAO,mBAAmB;IACtB,YAAY,GAAyB,EAAE,CAAC;IACxC,WAAW,GAAyB,EAAE,CAAC;IACvC,MAAM,GAAwB,IAAI,CAAC;IACnC,MAAM,CAAgB;IACtB,UAAU,GAA0C,IAAI,CAAC;IACzD,gBAAgB,GAAgB,IAAI,CAAC;IACrC,eAAe,GAAgB,IAAI,CAAC;IACpC,YAAY,GAAG,CAAC,CAAC;IACjB,eAAe,GAAG,CAAC,CAAC;IAC5B;;;;;OAKG;IACK,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEzD,YAAY,MAA+B;QACzC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,eAAe,CAAC,MAAoB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAE5B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAE3B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,YAAiC;QAC7C,IAAI,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC;QAEtC,wCAAwC;QACxC,IAAI,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACvD,aAAa,GAAG,QAAQ,CAAC;QAC3B,CAAC;QAED,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAEjF,0EAA0E;QAC1E,4EAA4E;QAC5E,oEAAoE;QACpE,MAAM,aAAa,GAAG,GAAG,YAAY,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC1D,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;QAChG,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,QAAQ,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,mBAAmB;YAChE,OAAO;QACT,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,QAAQ;YACR,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAA0B;QACpC,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACxE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEjC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE5D,mBAAmB;QACnB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgC,CAAC;QACxD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC/D,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAE9C,kDAAkD;YAClD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;QAE3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY;QACV,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YACjC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;SAChC,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YAC1C,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;YACxC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAiB;QAChC,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAC;oBACjC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,UAAkB,EAAE,KAA2B;QAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,8BAA8B;QAC9B,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CACxD,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAEzD,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,GAAG,MAAM,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,CAAC;YAED,8BAA8B;YAC9B,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,QAAgB,IAAI,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAC9D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;QACpC,MAAM,QAAQ,GACZ,YAAY,GAAG,UAAU;YACvB,CAAC,CAAC,cAAc,IAAI,YAAY,IAAI,cAAc,GAAG,UAAU;YAC/D,CAAC,CAAC,cAAc,IAAI,YAAY,IAAI,cAAc,GAAG,UAAU,CAAC;QACpE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;YAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,QAAgB,IAAI,CAAC,GAAG,EAAE;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,MAAM,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC;QAC/B,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;IAClD,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO;YAAE,OAAO,KAAK,CAAC;QAEnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAE9D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;QAEpC,IAAI,YAAY,GAAG,UAAU,EAAE,CAAC;YAC9B,OAAO,cAAc,IAAI,YAAY,IAAI,cAAc,GAAG,UAAU,CAAC;QACvE,CAAC;QAED,OAAO,cAAc,IAAI,YAAY,IAAI,cAAc,GAAG,UAAU,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,QAAgB,EAAE,OAAe;QACxD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC;QAChF,MAAM,UAAU,GAAG,SAAS;aACzB,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;aAC5B,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;aACxB,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;aACxB,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;aAC7B,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;aACxB,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;aAC7B,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;aACzB,OAAO,CAAC,mCAAmC,EAAE,KAAK,CAAC;aACnD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,WAAW,EAAE;aACb,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,OAAe;QACvD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE;YACpC,SAAS,EAAE,qBAAqB;YAChC,OAAO,EAAE,kFAAkF;YAC3F,MAAM,EAAE,4CAA4C,OAAO,EAAE;YAC7D,MAAM,EAAE,gGAAgG;SACzG,CAAC;YAAE,OAAO;QAEX,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wEAAwE;YACxE,yBAAyB,CAAC;gBACxB,SAAS,EAAE,qBAAqB;gBAChC,OAAO,EAAE,kFAAkF;gBAC3F,MAAM,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACrF,MAAM,EAAE,0FAA0F;aACnG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChE,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3F,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/D,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { TelegramAdapter } from '../messaging/TelegramAdapter.js';
|
|
2
|
+
import type { NotificationBatcher } from '../messaging/NotificationBatcher.js';
|
|
3
|
+
import type { JobScheduler } from '../scheduler/JobScheduler.js';
|
|
4
|
+
export type TelegramStartupMode = 'send-only' | 'server-polling';
|
|
5
|
+
export interface TelegramStartupTopologyInput {
|
|
6
|
+
telegramConfigured: boolean;
|
|
7
|
+
skipTelegram: boolean;
|
|
8
|
+
coordinatorAwake: boolean;
|
|
9
|
+
lifelineOwnsPolling: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface TelegramStartupTopology {
|
|
12
|
+
mode: TelegramStartupMode;
|
|
13
|
+
/** Threadline mirroring owns durable bindings, so only the awake owner may arm it. */
|
|
14
|
+
bridgeOwner: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the production Telegram messaging topology once, before either construction
|
|
18
|
+
* branch. The result carries both inbound poll ownership and the independent
|
|
19
|
+
* one-voice verdict for the stateful Threadline bridge.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveTelegramStartupTopology(input: TelegramStartupTopologyInput): TelegramStartupTopology | undefined;
|
|
22
|
+
export interface TelegramSendSideDeps {
|
|
23
|
+
mode: TelegramStartupMode;
|
|
24
|
+
telegram: TelegramAdapter;
|
|
25
|
+
scheduler?: JobScheduler;
|
|
26
|
+
notificationBatcher: NotificationBatcher;
|
|
27
|
+
}
|
|
28
|
+
export interface TelegramSendSideResult {
|
|
29
|
+
mode: TelegramStartupMode;
|
|
30
|
+
schedulerAttached: boolean;
|
|
31
|
+
batcherAttached: true;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Poll ownership controls only who calls getUpdates. Every TelegramAdapter can
|
|
35
|
+
* send, so all send-side dependency handoffs converge here after the ownership
|
|
36
|
+
* branches. Keeping this seam outside those branches makes an omitted handoff
|
|
37
|
+
* structurally difficult instead of relying on duplicated branch discipline.
|
|
38
|
+
*/
|
|
39
|
+
export declare function wireTelegramSendSide(deps: TelegramSendSideDeps): TelegramSendSideResult;
|
|
40
|
+
//# sourceMappingURL=telegramSendSideComposition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegramSendSideComposition.d.ts","sourceRoot":"","sources":["../../src/messaging/telegramSendSideComposition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAEjE,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,sFAAsF;IACtF,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,4BAA4B,GAClC,uBAAuB,GAAG,SAAS,CAMrC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,IAAI,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,sBAAsB,CAiBvF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the production Telegram messaging topology once, before either construction
|
|
3
|
+
* branch. The result carries both inbound poll ownership and the independent
|
|
4
|
+
* one-voice verdict for the stateful Threadline bridge.
|
|
5
|
+
*/
|
|
6
|
+
export function resolveTelegramStartupTopology(input) {
|
|
7
|
+
if (!input.telegramConfigured)
|
|
8
|
+
return undefined;
|
|
9
|
+
const mode = input.skipTelegram || !input.coordinatorAwake || input.lifelineOwnsPolling
|
|
10
|
+
? 'send-only'
|
|
11
|
+
: 'server-polling';
|
|
12
|
+
return { mode, bridgeOwner: input.coordinatorAwake };
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Poll ownership controls only who calls getUpdates. Every TelegramAdapter can
|
|
16
|
+
* send, so all send-side dependency handoffs converge here after the ownership
|
|
17
|
+
* branches. Keeping this seam outside those branches makes an omitted handoff
|
|
18
|
+
* structurally difficult instead of relying on duplicated branch discipline.
|
|
19
|
+
*/
|
|
20
|
+
export function wireTelegramSendSide(deps) {
|
|
21
|
+
if (deps.scheduler) {
|
|
22
|
+
deps.scheduler.setMessenger(deps.telegram);
|
|
23
|
+
deps.scheduler.setTelegram(deps.telegram);
|
|
24
|
+
}
|
|
25
|
+
deps.notificationBatcher.setSendFunction(async (topicId, text) => {
|
|
26
|
+
await deps.telegram.sendToTopic(topicId, text);
|
|
27
|
+
return { messageId: 0 };
|
|
28
|
+
});
|
|
29
|
+
deps.notificationBatcher.start();
|
|
30
|
+
return {
|
|
31
|
+
mode: deps.mode,
|
|
32
|
+
schedulerAttached: deps.scheduler != null,
|
|
33
|
+
batcherAttached: true,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=telegramSendSideComposition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegramSendSideComposition.js","sourceRoot":"","sources":["../../src/messaging/telegramSendSideComposition.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAmC;IAEnC,IAAI,CAAC,KAAK,CAAC,kBAAkB;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,mBAAmB;QACrF,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,gBAAgB,CAAC;IACrB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;AACvD,CAAC;AAeD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA0B;IAC7D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC/D,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAEjC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,iBAAiB,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACzC,eAAe,EAAE,IAAI;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -66,6 +66,12 @@ export declare class JobScheduler {
|
|
|
66
66
|
private messenger;
|
|
67
67
|
/** Optional Telegram adapter for job-topic coupling */
|
|
68
68
|
private telegram;
|
|
69
|
+
/** Coalesce overlapping completion/error callbacks for the same alert episode. */
|
|
70
|
+
private failureAlertsInFlight;
|
|
71
|
+
/** Scheduler-owned wakeups for delivery retries and unresolved reminders. */
|
|
72
|
+
private failureAlertTimers;
|
|
73
|
+
/** Startup composition has completed, even when its result is "no sink". */
|
|
74
|
+
private failureAlertDeliveryActive;
|
|
69
75
|
/** Optional quota tracker for death classification cross-reference */
|
|
70
76
|
private quotaTracker;
|
|
71
77
|
/** Optional job claim manager for multi-machine deduplication (Phase 4C) */
|
|
@@ -142,6 +148,13 @@ export declare class JobScheduler {
|
|
|
142
148
|
* Every job gets its own topic — the user's window into the job.
|
|
143
149
|
*/
|
|
144
150
|
setTelegram(adapter: TelegramAdapter): void;
|
|
151
|
+
/**
|
|
152
|
+
* Mark startup composition complete and arm persisted failure-alert episodes.
|
|
153
|
+
* Production calls this after every Telegram construction branch, including
|
|
154
|
+
* the intentional "no sink" result, so an overdue missing-sink episode stays
|
|
155
|
+
* loud and retryable without ever waking against a half-composed dependency.
|
|
156
|
+
*/
|
|
157
|
+
activateFailureAlertDelivery(): void;
|
|
145
158
|
/**
|
|
146
159
|
* Set the quota tracker for session death classification.
|
|
147
160
|
* When set, session deaths are cross-referenced with quota state
|
|
@@ -389,17 +402,19 @@ export declare class JobScheduler {
|
|
|
389
402
|
*/
|
|
390
403
|
private clearRetryState;
|
|
391
404
|
/**
|
|
392
|
-
* Alert when a job
|
|
393
|
-
* Critical/high priority jobs alert after 2 failures.
|
|
394
|
-
* Medium/low priority jobs alert after 3 failures.
|
|
395
|
-
* Only alerts at the threshold (not every failure after).
|
|
405
|
+
* Alert when a job reaches or remains beyond its failure threshold.
|
|
396
406
|
*
|
|
397
|
-
*
|
|
398
|
-
*
|
|
399
|
-
*
|
|
400
|
-
*
|
|
407
|
+
* Eligibility and delivery are separate: an episode remains eligible until a
|
|
408
|
+
* send succeeds, then follows a widening reminder cadence until recovery.
|
|
409
|
+
* Both tracks persist across restart. This repairs a missed threshold without
|
|
410
|
+
* turning every later cron tick into an alert flood.
|
|
401
411
|
*/
|
|
402
412
|
private alertOnConsecutiveFailures;
|
|
413
|
+
private failureAlertStateKey;
|
|
414
|
+
private isCurrentFailureAlertAttempt;
|
|
415
|
+
private clearFailureAlertState;
|
|
416
|
+
private scheduleFailureAlert;
|
|
417
|
+
private recordFailureAlertDeliveryFailure;
|
|
403
418
|
/**
|
|
404
419
|
* Build an intelligent "Job Blocked" notification when a job can't start
|
|
405
420
|
* because all session slots are occupied. Includes session diagnostics,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobScheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler/JobScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAc,MAAM,kBAAkB,CAAC;AAE5G,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAY,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"JobScheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler/JobScheduler.ts"],"names":[],"mappings":"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"}
|