instar 0.28.9 → 0.28.10
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/core/MessageSentinel.d.ts.map +1 -1
- package/dist/core/MessageSentinel.js +5 -1
- package/dist/core/MessageSentinel.js.map +1 -1
- package/dist/messaging/slack/SocketModeClient.d.ts +0 -2
- package/dist/messaging/slack/SocketModeClient.d.ts.map +1 -1
- package/dist/messaging/slack/SocketModeClient.js +16 -21
- package/dist/messaging/slack/SocketModeClient.js.map +1 -1
- package/dist/publishing/PrivateViewer.d.ts +12 -1
- package/dist/publishing/PrivateViewer.d.ts.map +1 -1
- package/dist/publishing/PrivateViewer.js +4 -1
- package/dist/publishing/PrivateViewer.js.map +1 -1
- package/dist/scheduler/JobScheduler.d.ts +15 -0
- package/dist/scheduler/JobScheduler.d.ts.map +1 -1
- package/dist/scheduler/JobScheduler.js +112 -20
- package/dist/scheduler/JobScheduler.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +22 -3
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +51 -51
- package/upgrades/0.28.10.md +19 -0
- package/upgrades/0.28.9.md +3 -3
- package/upgrades/NEXT.md +35 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageSentinel.d.ts","sourceRoot":"","sources":["../../src/core/MessageSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAElF,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;IACxC,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAE7B,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7C,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB;AA+FD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,gBAAgB,CAAc;gBAE1B,MAAM,GAAE,qBAA0B;IAmB9C;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmDhE;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IA2FpB;;OAEG;YACW,WAAW;
|
|
1
|
+
{"version":3,"file":"MessageSentinel.d.ts","sourceRoot":"","sources":["../../src/core/MessageSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAElF,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;IACxC,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAE7B,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7C,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB;AA+FD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,gBAAgB,CAAc;gBAE1B,MAAM,GAAE,qBAA0B;IAmB9C;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmDhE;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IA2FpB;;OAEG;YACW,WAAW;IAqEzB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,eAAe;IA4BvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB;;OAEG;IACH,UAAU,IAAI,IAAI;IAUlB;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
|
|
@@ -289,13 +289,17 @@ export class MessageSentinel {
|
|
|
289
289
|
'- emergency-stop: User wants the agent to stop immediately (examples: "don\'t do that", "I changed my mind stop", "NO NO NO", "cancel what you\'re doing")',
|
|
290
290
|
'- pause: User DIRECTLY INSTRUCTS the agent to pause and wait (examples: "wait for me", "pause please", "not yet hold off", "stop and wait for my signal")',
|
|
291
291
|
'- redirect: User wants to change the agent\'s course (examples: "actually do X instead", "no I meant Y", "forget that, do this")',
|
|
292
|
-
'- normal: Regular conversation that doesn\'t require interruption (examples: "hold on let me think", "wait a second I\'m reading", "one moment let me check something")',
|
|
292
|
+
'- normal: Regular conversation that doesn\'t require interruption (examples: "hold on let me think", "wait a second I\'m reading", "one moment let me check something", "OK hold on I don\'t think that\'s right")',
|
|
293
293
|
'',
|
|
294
294
|
'KEY DISTINCTION: Phrases like "hold on", "wait", "one moment" are NORMAL unless the user is clearly directing the agent.',
|
|
295
295
|
'A user narrating their own thought process ("hold on let me think") is NORMAL, not a directive to the agent.',
|
|
296
|
+
'If the message contains substantive content AFTER a hold-like phrase (questions, disagreements, corrections, instructions), it is NORMAL — the "hold on" is conversational, not a pause command.',
|
|
297
|
+
'Example: "OK hold on I don\'t think that\'s how it works" → NORMAL (user is disagreeing, not commanding a pause)',
|
|
298
|
+
'Example: "Hold on, wait for me to finish reading" → pause (user is directing the agent to wait)',
|
|
296
299
|
'',
|
|
297
300
|
'IMPORTANT: When in doubt between emergency-stop and normal, prefer emergency-stop.',
|
|
298
301
|
'It is much safer to stop unnecessarily than to continue destructively.',
|
|
302
|
+
'However, when in doubt between pause and normal for messages with substantive content, prefer normal.',
|
|
299
303
|
'',
|
|
300
304
|
`Message: "${message}"`,
|
|
301
305
|
'',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageSentinel.js","sourceRoot":"","sources":["../../src/core/MessageSentinel.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MessageSentinel.js","sourceRoot":"","sources":["../../src/core/MessageSentinel.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,8 +24,6 @@ export declare class SocketModeClient {
|
|
|
24
24
|
private consecutiveErrors;
|
|
25
25
|
private heartbeatTimer;
|
|
26
26
|
private lastEventAt;
|
|
27
|
-
private lastPongAt;
|
|
28
|
-
private pendingPing;
|
|
29
27
|
private outboundQueue;
|
|
30
28
|
private connectionTime;
|
|
31
29
|
constructor(apiClient: SlackApiClient, handlers: SocketModeHandlers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketModeClient.d.ts","sourceRoot":"","sources":["../../../src/messaging/slack/SocketModeClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AAUpE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;
|
|
1
|
+
{"version":3,"file":"SocketModeClient.d.ts","sourceRoot":"","sources":["../../../src/messaging/slack/SocketModeClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AAUpE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAaD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,cAAc,CAAuB;gBAEjC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB;IAKnE,IAAI,WAAW,IAAI,OAAO,CAEzB;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC,8EAA8E;IACxE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBhC,gFAAgF;IAChF,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;YAWnB,eAAe;IA4B7B,OAAO,CAAC,iBAAiB;YAuCX,iBAAiB;IAsC/B,OAAO,CAAC,iBAAiB;YA2BX,iBAAiB;IAe/B,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,WAAW;CAOpB"}
|
|
@@ -16,8 +16,7 @@ if (typeof globalThis.WebSocket === 'undefined') {
|
|
|
16
16
|
}
|
|
17
17
|
const MAX_OUTBOUND_QUEUE = 100;
|
|
18
18
|
const HEARTBEAT_INTERVAL_MS = 30_000; // Check connection health every 30s
|
|
19
|
-
const
|
|
20
|
-
const DEAD_SILENCE_MS = 300_000; // 5 min with no events AND no pong → force reconnect
|
|
19
|
+
const DEAD_SILENCE_MS = 300_000; // 5 min with no events → send liveness probe
|
|
21
20
|
const MAX_BACKOFF_MS = 60_000;
|
|
22
21
|
const TOO_MANY_WS_DELAY_MS = 30_000;
|
|
23
22
|
export class SocketModeClient {
|
|
@@ -29,8 +28,6 @@ export class SocketModeClient {
|
|
|
29
28
|
consecutiveErrors = 0;
|
|
30
29
|
heartbeatTimer = null;
|
|
31
30
|
lastEventAt = 0;
|
|
32
|
-
lastPongAt = 0;
|
|
33
|
-
pendingPing = false;
|
|
34
31
|
outboundQueue = [];
|
|
35
32
|
connectionTime = null;
|
|
36
33
|
constructor(apiClient, handlers) {
|
|
@@ -116,7 +113,6 @@ export class SocketModeClient {
|
|
|
116
113
|
});
|
|
117
114
|
this.ws.addEventListener('message', (event) => {
|
|
118
115
|
this.lastEventAt = Date.now();
|
|
119
|
-
this.pendingPing = false; // Any message received = connection alive
|
|
120
116
|
this._handleRawMessage(typeof event.data === 'string' ? event.data : String(event.data));
|
|
121
117
|
});
|
|
122
118
|
this.ws.addEventListener('close', (event) => {
|
|
@@ -220,8 +216,6 @@ export class SocketModeClient {
|
|
|
220
216
|
}
|
|
221
217
|
_startHeartbeat() {
|
|
222
218
|
this._clearHeartbeat();
|
|
223
|
-
this.lastPongAt = Date.now();
|
|
224
|
-
this.pendingPing = false;
|
|
225
219
|
this.heartbeatTimer = setInterval(() => {
|
|
226
220
|
// 1. Check if WebSocket is still in OPEN state
|
|
227
221
|
if (this.ws && this.ws.readyState !== WebSocket.OPEN) {
|
|
@@ -229,24 +223,20 @@ export class SocketModeClient {
|
|
|
229
223
|
this._forceReconnect();
|
|
230
224
|
return;
|
|
231
225
|
}
|
|
232
|
-
// 2. If
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
// 3. If no events for DEAD_SILENCE_MS, send a probe ping
|
|
226
|
+
// 2. If no events for DEAD_SILENCE_MS, send a probe to test the connection.
|
|
227
|
+
// Slack Socket Mode has no application-level ping/pong — Slack will
|
|
228
|
+
// silently ignore any JSON we send. So we test with send(): if it
|
|
229
|
+
// throws, the socket is dead at the OS level → force reconnect.
|
|
230
|
+
// If send() succeeds, the TCP connection is alive — reset the silence
|
|
231
|
+
// timer and check again later.
|
|
242
232
|
const sinceLastEvent = Date.now() - this.lastEventAt;
|
|
243
|
-
if (sinceLastEvent > DEAD_SILENCE_MS
|
|
233
|
+
if (sinceLastEvent > DEAD_SILENCE_MS) {
|
|
244
234
|
console.log(`[slack-socket] No events for ${Math.round(sinceLastEvent / 60000)}m — sending liveness probe`);
|
|
245
|
-
this.pendingPing = true;
|
|
246
|
-
this.lastPongAt = Date.now(); // Reset pong timer to now (give PING_TIMEOUT_MS to respond)
|
|
247
235
|
try {
|
|
248
|
-
// Send an empty JSON object — Slack will ignore it but the send() will throw if the socket is dead
|
|
249
236
|
this.ws?.send('{"type":"ping"}');
|
|
237
|
+
// send() succeeded → TCP connection is alive. Reset silence timer
|
|
238
|
+
// so we don't immediately re-probe on the next tick.
|
|
239
|
+
this.lastEventAt = Date.now();
|
|
250
240
|
}
|
|
251
241
|
catch {
|
|
252
242
|
console.warn('[slack-socket] Liveness probe send failed, forcing reconnect');
|
|
@@ -258,11 +248,16 @@ export class SocketModeClient {
|
|
|
258
248
|
_forceReconnect() {
|
|
259
249
|
this._clearHeartbeat();
|
|
260
250
|
if (this.ws) {
|
|
251
|
+
// Temporarily clear started to prevent the close handler from
|
|
252
|
+
// triggering its own reconnect (same pattern as reconnect()).
|
|
253
|
+
const wasStarted = this.started;
|
|
254
|
+
this.started = false;
|
|
261
255
|
try {
|
|
262
256
|
this.ws.close();
|
|
263
257
|
}
|
|
264
258
|
catch { /* ok */ }
|
|
265
259
|
this.ws = null;
|
|
260
|
+
this.started = wasStarted;
|
|
266
261
|
}
|
|
267
262
|
// Trigger reconnect directly instead of relying on close event
|
|
268
263
|
if (this.started && !this.reconnecting) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketModeClient.js","sourceRoot":"","sources":["../../../src/messaging/slack/SocketModeClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAkB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpE,4DAA4D;AAC5D,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;IAChD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,2EAA2E;IAC3E,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC;AACpC,CAAC;AAeD,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,qBAAqB,GAAG,MAAM,CAAC,CAAG,oCAAoC;AAC5E,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"SocketModeClient.js","sourceRoot":"","sources":["../../../src/messaging/slack/SocketModeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,15 @@
|
|
|
8
8
|
* Unlike Telegraph (public), private views are gated by the agent's
|
|
9
9
|
* auth token and only accessible through the tunnel URL.
|
|
10
10
|
*/
|
|
11
|
+
export interface PrivateViewMetadata {
|
|
12
|
+
/** Source that created this view (e.g. { type: 'job', id: 'coherence-audit' }) */
|
|
13
|
+
source?: {
|
|
14
|
+
type: string;
|
|
15
|
+
id: string;
|
|
16
|
+
};
|
|
17
|
+
/** Arbitrary key-value pairs for linking views to originating contexts */
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}
|
|
11
20
|
export interface PrivateView {
|
|
12
21
|
id: string;
|
|
13
22
|
title: string;
|
|
@@ -16,6 +25,8 @@ export interface PrivateView {
|
|
|
16
25
|
pinHash?: string;
|
|
17
26
|
createdAt: string;
|
|
18
27
|
updatedAt?: string;
|
|
28
|
+
/** Optional metadata for linking views to jobs, features, etc. */
|
|
29
|
+
metadata?: PrivateViewMetadata;
|
|
19
30
|
}
|
|
20
31
|
export interface PrivateViewerConfig {
|
|
21
32
|
/** Directory to store views */
|
|
@@ -29,7 +40,7 @@ export declare class PrivateViewer {
|
|
|
29
40
|
* Store markdown content for private viewing.
|
|
30
41
|
* If a PIN is provided, the view requires PIN entry before content is shown.
|
|
31
42
|
*/
|
|
32
|
-
create(title: string, markdown: string, pin?: string): PrivateView;
|
|
43
|
+
create(title: string, markdown: string, pin?: string, metadata?: PrivateViewMetadata): PrivateView;
|
|
33
44
|
/**
|
|
34
45
|
* Update an existing view.
|
|
35
46
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivateViewer.d.ts","sourceRoot":"","sources":["../../src/publishing/PrivateViewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"PrivateViewer.d.ts","sourceRoot":"","sources":["../../src/publishing/PrivateViewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,0EAA0E;IAC1E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAK;gBAEd,MAAM,EAAE,mBAAmB;IAOvC;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,WAAW;IAyBlG;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAWvE;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAUnC;;OAEG;IACH,IAAI,IAAI,WAAW,EAAE;IAgBrB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAW3B;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAU3C;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,UAAQ,GAAG,MAAM;IAyHvD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;IA8GrC,OAAO,CAAC,IAAI;CAIb"}
|
|
@@ -26,7 +26,7 @@ export class PrivateViewer {
|
|
|
26
26
|
* Store markdown content for private viewing.
|
|
27
27
|
* If a PIN is provided, the view requires PIN entry before content is shown.
|
|
28
28
|
*/
|
|
29
|
-
create(title, markdown, pin) {
|
|
29
|
+
create(title, markdown, pin, metadata) {
|
|
30
30
|
const id = crypto.randomUUID();
|
|
31
31
|
// Ensure monotonically increasing timestamps even within same millisecond
|
|
32
32
|
let now = Date.now();
|
|
@@ -43,6 +43,9 @@ export class PrivateViewer {
|
|
|
43
43
|
if (pin) {
|
|
44
44
|
view.pinHash = crypto.createHash('sha256').update(pin).digest('hex');
|
|
45
45
|
}
|
|
46
|
+
if (metadata && Object.keys(metadata).length > 0) {
|
|
47
|
+
view.metadata = metadata;
|
|
48
|
+
}
|
|
46
49
|
this.save(view);
|
|
47
50
|
return view;
|
|
48
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivateViewer.js","sourceRoot":"","sources":["../../src/publishing/PrivateViewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"PrivateViewer.js","sourceRoot":"","sources":["../../src/publishing/PrivateViewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,10 @@ export declare class JobScheduler {
|
|
|
45
45
|
private paused;
|
|
46
46
|
/** Map session names to run IDs for completion tracking */
|
|
47
47
|
private activeRunIds;
|
|
48
|
+
/** Retry state for skipped jobs: slug → { retries, lastAttempt, timer } */
|
|
49
|
+
private retryState;
|
|
50
|
+
/** Retry delays in ms: 1min, 5min, 15min, 30min, 1h, 2h */
|
|
51
|
+
private static readonly RETRY_DELAYS_MS;
|
|
48
52
|
/** Local machine identity — used for machine-scoped job filtering */
|
|
49
53
|
private machineId;
|
|
50
54
|
private machineName;
|
|
@@ -218,8 +222,19 @@ export declare class JobScheduler {
|
|
|
218
222
|
/**
|
|
219
223
|
* Run a job's gate command. Returns true if the job should proceed, false to skip.
|
|
220
224
|
* Gates are zero-token pre-screening — a bash command that exits 0 (proceed) or non-zero (skip).
|
|
225
|
+
* Retries up to 3 times with 5s delay to handle transient failures (e.g., server restart windows).
|
|
221
226
|
*/
|
|
222
227
|
private runGate;
|
|
228
|
+
/**
|
|
229
|
+
* Schedule a retry for a transiently-skipped job.
|
|
230
|
+
* Uses escalating delays: 1min, 5min, 15min, 30min, 1h, 2h.
|
|
231
|
+
* Gives up after exhausting all retry slots within a single scheduled window.
|
|
232
|
+
*/
|
|
233
|
+
private scheduleRetry;
|
|
234
|
+
/**
|
|
235
|
+
* Clear retry state for a job (on success or new cron window).
|
|
236
|
+
*/
|
|
237
|
+
private clearRetryState;
|
|
223
238
|
/**
|
|
224
239
|
* Alert when a job hits consecutive failure thresholds.
|
|
225
240
|
* Critical/high priority jobs alert after 2 failures.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobScheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler/JobScheduler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"JobScheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler/JobScheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,17 @@ export class JobScheduler {
|
|
|
38
38
|
paused = false;
|
|
39
39
|
/** Map session names to run IDs for completion tracking */
|
|
40
40
|
activeRunIds = new Map();
|
|
41
|
+
/** Retry state for skipped jobs: slug → { retries, lastAttempt, timer } */
|
|
42
|
+
retryState = new Map();
|
|
43
|
+
/** Retry delays in ms: 1min, 5min, 15min, 30min, 1h, 2h */
|
|
44
|
+
static RETRY_DELAYS_MS = [
|
|
45
|
+
60_000, // 1 min
|
|
46
|
+
300_000, // 5 min
|
|
47
|
+
900_000, // 15 min
|
|
48
|
+
1_800_000, // 30 min
|
|
49
|
+
3_600_000, // 1 hour
|
|
50
|
+
7_200_000, // 2 hours
|
|
51
|
+
];
|
|
41
52
|
/** Local machine identity — used for machine-scoped job filtering */
|
|
42
53
|
machineId = null;
|
|
43
54
|
machineName = null;
|
|
@@ -153,6 +164,8 @@ export class JobScheduler {
|
|
|
153
164
|
for (const job of scopedJobs) {
|
|
154
165
|
try {
|
|
155
166
|
const task = new Cron(job.schedule, () => {
|
|
167
|
+
// New cron window — reset retry state so we get fresh attempts
|
|
168
|
+
this.clearRetryState(job.slug);
|
|
156
169
|
this.triggerJob(job.slug, 'scheduled');
|
|
157
170
|
});
|
|
158
171
|
this.cronTasks.set(job.slug, task);
|
|
@@ -196,6 +209,12 @@ export class JobScheduler {
|
|
|
196
209
|
}
|
|
197
210
|
this.cronTasks.clear();
|
|
198
211
|
this.queue = [];
|
|
212
|
+
// Clear all retry timers
|
|
213
|
+
for (const [, state] of this.retryState) {
|
|
214
|
+
if (state.timer)
|
|
215
|
+
clearTimeout(state.timer);
|
|
216
|
+
}
|
|
217
|
+
this.retryState.clear();
|
|
199
218
|
this.running = false;
|
|
200
219
|
this.state.appendEvent({
|
|
201
220
|
type: 'scheduler_stop',
|
|
@@ -247,11 +266,13 @@ export class JobScheduler {
|
|
|
247
266
|
timestamp: new Date().toISOString(),
|
|
248
267
|
metadata: { slug, reason, priority: job.priority },
|
|
249
268
|
});
|
|
269
|
+
this.scheduleRetry(slug, 'quota');
|
|
250
270
|
return 'skipped';
|
|
251
271
|
}
|
|
252
272
|
// Run gate command if configured — zero-token pre-screening
|
|
253
273
|
if (job.gate) {
|
|
254
274
|
if (!this.runGate(job)) {
|
|
275
|
+
this.scheduleRetry(slug, 'gate');
|
|
255
276
|
return 'skipped';
|
|
256
277
|
}
|
|
257
278
|
}
|
|
@@ -269,6 +290,8 @@ export class JobScheduler {
|
|
|
269
290
|
console.error(`[scheduler] Failed to broadcast claim for "${slug}": ${err}`);
|
|
270
291
|
});
|
|
271
292
|
}
|
|
293
|
+
// Clear retry state on successful trigger
|
|
294
|
+
this.clearRetryState(slug);
|
|
272
295
|
this.spawnJobSession(job, reason);
|
|
273
296
|
return 'triggered';
|
|
274
297
|
}
|
|
@@ -556,6 +579,14 @@ export class JobScheduler {
|
|
|
556
579
|
// @silent-fallback-ok — topic awareness is non-critical
|
|
557
580
|
}
|
|
558
581
|
}
|
|
582
|
+
// Inject view metadata instruction so job-created reports are linked
|
|
583
|
+
const viewMetaBlock = [
|
|
584
|
+
'[VIEW METADATA]',
|
|
585
|
+
`When creating private views (POST /view), include metadata to link the report to this job:`,
|
|
586
|
+
` "metadata": { "source": { "type": "job", "id": "${job.slug}" } }`,
|
|
587
|
+
'[/VIEW METADATA]',
|
|
588
|
+
].join('\n');
|
|
589
|
+
base = `${viewMetaBlock}\n\n${base}`;
|
|
559
590
|
// Inject handoff notes from the last execution (continuity between runs)
|
|
560
591
|
const handoff = this.runHistory.getLastHandoff(job.slug);
|
|
561
592
|
if (handoff) {
|
|
@@ -925,29 +956,90 @@ export class JobScheduler {
|
|
|
925
956
|
/**
|
|
926
957
|
* Run a job's gate command. Returns true if the job should proceed, false to skip.
|
|
927
958
|
* Gates are zero-token pre-screening — a bash command that exits 0 (proceed) or non-zero (skip).
|
|
959
|
+
* Retries up to 3 times with 5s delay to handle transient failures (e.g., server restart windows).
|
|
928
960
|
*/
|
|
929
961
|
runGate(job) {
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
962
|
+
const maxAttempts = 3;
|
|
963
|
+
const retryDelayMs = 5000;
|
|
964
|
+
let lastErr;
|
|
965
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
966
|
+
try {
|
|
967
|
+
execFileSync('/bin/sh', ['-c', job.gate], {
|
|
968
|
+
encoding: 'utf-8',
|
|
969
|
+
timeout: 10000,
|
|
970
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
971
|
+
});
|
|
972
|
+
if (attempt > 1) {
|
|
973
|
+
console.log(`[scheduler] Gate for "${job.slug}" passed on attempt ${attempt}/${maxAttempts}`);
|
|
974
|
+
}
|
|
975
|
+
return true;
|
|
976
|
+
}
|
|
977
|
+
catch (err) {
|
|
978
|
+
lastErr = err;
|
|
979
|
+
if (attempt < maxAttempts) {
|
|
980
|
+
console.log(`[scheduler] Gate for "${job.slug}" failed (attempt ${attempt}/${maxAttempts}), retrying in ${retryDelayMs / 1000}s...`);
|
|
981
|
+
try {
|
|
982
|
+
execFileSync('/bin/sleep', [String(retryDelayMs / 1000)], { stdio: 'ignore' });
|
|
983
|
+
}
|
|
984
|
+
catch { /* ignore */ }
|
|
985
|
+
}
|
|
986
|
+
}
|
|
937
987
|
}
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
988
|
+
// All attempts failed
|
|
989
|
+
const stderr = lastErr?.stderr?.trim() || '';
|
|
990
|
+
const exitCode = lastErr?.status ?? null;
|
|
991
|
+
const gateCmd = job.gate.length > 200 ? job.gate.slice(0, 200) + '…' : job.gate;
|
|
992
|
+
this.skipLedger.recordSkip(job.slug, 'gate');
|
|
993
|
+
this.state.appendEvent({
|
|
994
|
+
type: 'job_gate_skip',
|
|
995
|
+
summary: `Job "${job.slug}" skipped — gate returned exit ${exitCode} after ${maxAttempts} attempts${stderr ? `: ${stderr.slice(0, 200)}` : ''}`,
|
|
996
|
+
timestamp: new Date().toISOString(),
|
|
997
|
+
metadata: { slug: job.slug, exitCode, stderr: stderr.slice(0, 500), gate: gateCmd, attempts: maxAttempts },
|
|
998
|
+
});
|
|
999
|
+
return false;
|
|
1000
|
+
}
|
|
1001
|
+
/**
|
|
1002
|
+
* Schedule a retry for a transiently-skipped job.
|
|
1003
|
+
* Uses escalating delays: 1min, 5min, 15min, 30min, 1h, 2h.
|
|
1004
|
+
* Gives up after exhausting all retry slots within a single scheduled window.
|
|
1005
|
+
*/
|
|
1006
|
+
scheduleRetry(slug, skipReason) {
|
|
1007
|
+
const state = this.retryState.get(slug);
|
|
1008
|
+
const retries = state ? state.retries : 0;
|
|
1009
|
+
const maxRetries = JobScheduler.RETRY_DELAYS_MS.length;
|
|
1010
|
+
if (retries >= maxRetries) {
|
|
1011
|
+
console.log(`[scheduler] Job "${slug}" exhausted ${maxRetries} retries (last skip: ${skipReason}) — waiting for next cron window`);
|
|
1012
|
+
return;
|
|
1013
|
+
}
|
|
1014
|
+
// Clear any existing retry timer
|
|
1015
|
+
if (state?.timer)
|
|
1016
|
+
clearTimeout(state.timer);
|
|
1017
|
+
const delayMs = JobScheduler.RETRY_DELAYS_MS[retries];
|
|
1018
|
+
const nextRetry = retries + 1;
|
|
1019
|
+
const delayLabel = delayMs >= 3_600_000 ? `${delayMs / 3_600_000}h`
|
|
1020
|
+
: delayMs >= 60_000 ? `${delayMs / 60_000}m`
|
|
1021
|
+
: `${delayMs / 1000}s`;
|
|
1022
|
+
console.log(`[scheduler] Job "${slug}" skipped (${skipReason}) — retry ${nextRetry}/${maxRetries} in ${delayLabel}`);
|
|
1023
|
+
const timer = setTimeout(() => {
|
|
1024
|
+
if (!this.running || this.paused)
|
|
1025
|
+
return;
|
|
1026
|
+
const job = this.jobs.find(j => j.slug === slug);
|
|
1027
|
+
if (!job || !job.enabled)
|
|
1028
|
+
return;
|
|
1029
|
+
console.log(`[scheduler] Retrying job "${slug}" (attempt ${nextRetry})`);
|
|
1030
|
+
this.triggerJob(slug, `retry:${skipReason}`);
|
|
1031
|
+
}, delayMs);
|
|
1032
|
+
this.retryState.set(slug, { retries: nextRetry, timer });
|
|
1033
|
+
}
|
|
1034
|
+
/**
|
|
1035
|
+
* Clear retry state for a job (on success or new cron window).
|
|
1036
|
+
*/
|
|
1037
|
+
clearRetryState(slug) {
|
|
1038
|
+
const state = this.retryState.get(slug);
|
|
1039
|
+
if (state) {
|
|
1040
|
+
if (state.timer)
|
|
1041
|
+
clearTimeout(state.timer);
|
|
1042
|
+
this.retryState.delete(slug);
|
|
951
1043
|
}
|
|
952
1044
|
}
|
|
953
1045
|
/**
|