github-issue-tower-defence-management 1.140.0 → 1.140.1
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/CHANGELOG.md +7 -0
- package/bin/adapter/repositories/FileSystemSessionOutputActivityRepository.js +6 -40
- package/bin/adapter/repositories/FileSystemSessionOutputActivityRepository.js.map +1 -1
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js +9 -46
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/repositories/FileSystemSessionOutputActivityRepository.test.ts +24 -11
- package/src/adapter/repositories/FileSystemSessionOutputActivityRepository.ts +8 -50
- package/src/domain/entities/LiveSessionActivitySnapshot.ts +0 -1
- package/src/domain/entities/LiveSessionOutputActivity.ts +0 -1
- package/src/domain/usecases/NotifySilentLiveSessionsUseCase.test.ts +7 -114
- package/src/domain/usecases/NotifySilentLiveSessionsUseCase.ts +8 -53
- package/types/adapter/repositories/FileSystemSessionOutputActivityRepository.d.ts +1 -1
- package/types/adapter/repositories/FileSystemSessionOutputActivityRepository.d.ts.map +1 -1
- package/types/domain/entities/LiveSessionActivitySnapshot.d.ts +0 -1
- package/types/domain/entities/LiveSessionActivitySnapshot.d.ts.map +1 -1
- package/types/domain/entities/LiveSessionOutputActivity.d.ts +0 -1
- package/types/domain/entities/LiveSessionOutputActivity.d.ts.map +1 -1
- package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts +0 -1
- package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [1.140.1](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.140.0...v1.140.1) (2026-07-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* always remind genuinely-silent sessions, remove in-progress-tool-call suppression ([#1281](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1281)) ([6d13212](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/6d1321225687e02db713a8795e3eb1a91eb0c1fe)), closes [#1279](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1279)
|
|
7
|
+
|
|
1
8
|
# [1.140.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.139.1...v1.140.0) (2026-07-26)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -47,42 +47,30 @@ const parseEpochMilliseconds = (timestamp) => {
|
|
|
47
47
|
const parsed = Date.parse(timestamp);
|
|
48
48
|
return Number.isNaN(parsed) ? null : parsed;
|
|
49
49
|
};
|
|
50
|
-
const readContentBlocks = (message) => {
|
|
51
|
-
const content = message.content;
|
|
52
|
-
if (!Array.isArray(content)) {
|
|
53
|
-
return [];
|
|
54
|
-
}
|
|
55
|
-
return content.filter(isRecord);
|
|
56
|
-
};
|
|
57
50
|
class FileSystemSessionOutputActivityRepository {
|
|
58
51
|
constructor() {
|
|
59
52
|
this.listSessionOutputActivities = async (transcriptPathBySessionName) => {
|
|
60
53
|
const activities = [];
|
|
61
54
|
for (const [sessionName, transcriptPath] of transcriptPathBySessionName) {
|
|
62
|
-
const
|
|
55
|
+
const lastAssistantOutputEpochSeconds = this.readLastAssistantOutputEpochSeconds(transcriptPath);
|
|
63
56
|
if (lastAssistantOutputEpochSeconds !== null) {
|
|
64
57
|
activities.push({
|
|
65
58
|
sessionName,
|
|
66
59
|
lastOutputEpochSeconds: lastAssistantOutputEpochSeconds,
|
|
67
|
-
hasInProgressToolCall,
|
|
68
60
|
});
|
|
69
61
|
}
|
|
70
62
|
}
|
|
71
63
|
return activities;
|
|
72
64
|
};
|
|
73
|
-
this.
|
|
65
|
+
this.readLastAssistantOutputEpochSeconds = (transcriptPath) => {
|
|
74
66
|
let content;
|
|
75
67
|
try {
|
|
76
68
|
content = fs.readFileSync(transcriptPath, 'utf8');
|
|
77
69
|
}
|
|
78
70
|
catch {
|
|
79
|
-
return
|
|
80
|
-
lastAssistantOutputEpochSeconds: null,
|
|
81
|
-
hasInProgressToolCall: false,
|
|
82
|
-
};
|
|
71
|
+
return null;
|
|
83
72
|
}
|
|
84
73
|
let lastAssistantOutputEpochMs = null;
|
|
85
|
-
const pendingToolUseIds = new Set();
|
|
86
74
|
for (const line of content.split('\n')) {
|
|
87
75
|
const trimmed = line.trim();
|
|
88
76
|
if (trimmed.length === 0) {
|
|
@@ -98,38 +86,16 @@ class FileSystemSessionOutputActivityRepository {
|
|
|
98
86
|
if (!isRecord(parsed)) {
|
|
99
87
|
continue;
|
|
100
88
|
}
|
|
101
|
-
const message = parsed.message;
|
|
102
89
|
if (readString(parsed, 'type') === 'assistant') {
|
|
103
90
|
const epochMs = parseEpochMilliseconds(readString(parsed, 'timestamp'));
|
|
104
91
|
if (epochMs !== null) {
|
|
105
92
|
lastAssistantOutputEpochMs = epochMs;
|
|
106
93
|
}
|
|
107
94
|
}
|
|
108
|
-
if (!isRecord(message)) {
|
|
109
|
-
continue;
|
|
110
|
-
}
|
|
111
|
-
for (const block of readContentBlocks(message)) {
|
|
112
|
-
const blockType = readString(block, 'type');
|
|
113
|
-
if (blockType === 'tool_use') {
|
|
114
|
-
const toolUseId = readString(block, 'id');
|
|
115
|
-
if (toolUseId !== null) {
|
|
116
|
-
pendingToolUseIds.add(toolUseId);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else if (blockType === 'tool_result') {
|
|
120
|
-
const toolUseId = readString(block, 'tool_use_id');
|
|
121
|
-
if (toolUseId !== null) {
|
|
122
|
-
pendingToolUseIds.delete(toolUseId);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
95
|
}
|
|
127
|
-
return
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
: Math.floor(lastAssistantOutputEpochMs / 1000),
|
|
131
|
-
hasInProgressToolCall: pendingToolUseIds.size > 0,
|
|
132
|
-
};
|
|
96
|
+
return lastAssistantOutputEpochMs === null
|
|
97
|
+
? null
|
|
98
|
+
: Math.floor(lastAssistantOutputEpochMs / 1000);
|
|
133
99
|
};
|
|
134
100
|
}
|
|
135
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystemSessionOutputActivityRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/FileSystemSessionOutputActivityRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AAIzB,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AAE9C,MAAM,UAAU,GAAG,CACjB,KAA8B,EAC9B,GAAW,EACI,EAAE;IACjB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,SAAwB,EAAiB,EAAE;IACzE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9C,CAAC,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"FileSystemSessionOutputActivityRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/FileSystemSessionOutputActivityRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NotifySilentLiveSessionsUseCase = exports.isGitHubIssueOrPullRequestSessionName = exports.parseHubTaskIssueUrlFromSessionName = exports.
|
|
3
|
+
exports.NotifySilentLiveSessionsUseCase = exports.isGitHubIssueOrPullRequestSessionName = exports.parseHubTaskIssueUrlFromSessionName = exports.DEFAULT_HUB_TASK_STATUS_CACHE_TTL_SECONDS = exports.DEFAULT_CANDIDATE_DEBOUNCE_RECENCY_WINDOW_SECONDS = exports.DEFAULT_NOTIFICATION_STAGGER_SECONDS = exports.DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS = exports.DEFAULT_SUBAGENT_SILENT_THRESHOLD_SECONDS = exports.DEFAULT_UNANSWERED_OWNER_CALL_GRACE_SECONDS = exports.DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS = void 0;
|
|
4
4
|
const ResolveInteractiveLiveSessionsUseCase_1 = require("./ResolveInteractiveLiveSessionsUseCase");
|
|
5
5
|
exports.DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS = 10 * 60;
|
|
6
6
|
// Retained only for backward compatibility of the configuration surface
|
|
@@ -13,15 +13,6 @@ exports.DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS = 15 * 60;
|
|
|
13
13
|
exports.DEFAULT_NOTIFICATION_STAGGER_SECONDS = 25;
|
|
14
14
|
exports.DEFAULT_CANDIDATE_DEBOUNCE_RECENCY_WINDOW_SECONDS = 15 * 60;
|
|
15
15
|
exports.DEFAULT_HUB_TASK_STATUS_CACHE_TTL_SECONDS = 5 * 60;
|
|
16
|
-
// Upper bound on how long an in-progress tool call suppresses the main-stall
|
|
17
|
-
// reminder. Set to 2 hours: comfortably above the ~1-hour maximum duration of
|
|
18
|
-
// the longest legitimate single tool call (the Monitor tool's own timeout
|
|
19
|
-
// ceiling), so every legitimate long-running tool call is still suppressed,
|
|
20
|
-
// while a session whose transcript tail has been an unanswered tool_use for
|
|
21
|
-
// longer than this — for example because the tool call itself hung and never
|
|
22
|
-
// returned — still receives the stall reminder instead of being suppressed
|
|
23
|
-
// forever.
|
|
24
|
-
exports.IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS = 2 * 60 * 60;
|
|
25
16
|
const GITHUB_ISSUE_OR_PULL_URL_PATTERN = /^https:\/\/github\.com\/([^/]+)\/([^/]+)\/(?:issues|pull)\/(\d+)$/;
|
|
26
17
|
const GITHUB_TMUX_SESSION_NAME_PATTERN = /^https_\/\/github_com\/([^/]+)\/([^/]+)\/(?:issues|pull)\/(\d+)$/;
|
|
27
18
|
const parseHubTaskIssueUrlFromSessionName = (sessionName) => {
|
|
@@ -124,18 +115,6 @@ class NotifySilentLiveSessionsUseCase {
|
|
|
124
115
|
console.log(`Skipping ${candidate.sessionName}: the current silent-episode reminder was already delivered; not re-injecting until the condition resolves and re-arises.`);
|
|
125
116
|
continue;
|
|
126
117
|
}
|
|
127
|
-
// Input-state gating: a session whose main REPL is mid-turn — currently
|
|
128
|
-
// running an in-progress tool call, which includes waiting on a
|
|
129
|
-
// long-running sub-agent — cannot accept an injected prompt cleanly, so
|
|
130
|
-
// the reminder is deferred rather than piled into a busy input box. The
|
|
131
|
-
// session stays a candidate, so it is reminded once it becomes
|
|
132
|
-
// input-ready. A tool call pending past
|
|
133
|
-
// IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS is treated as hung and no
|
|
134
|
-
// longer counts as busy (see composeCandidate).
|
|
135
|
-
if (candidate.mainInputBusy) {
|
|
136
|
-
console.log(`Skipping ${candidate.sessionName}: main REPL is not in an input-accepting state (in-progress tool call); deferring reminder until it is idle.`);
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
118
|
if (!(await this.isHubTaskActive(candidate.sessionName, params.activeHubTaskStatus, params.hubTaskStatusCacheTtlSeconds, params.now))) {
|
|
140
119
|
continue;
|
|
141
120
|
}
|
|
@@ -239,10 +218,8 @@ class NotifySilentLiveSessionsUseCase {
|
|
|
239
218
|
const sessionNames = interactiveSessions.map((session) => session.sessionName);
|
|
240
219
|
const activities = await this.sessionOutputActivityRepository.listSessionOutputActivities(transcriptPathBySessionName);
|
|
241
220
|
const lastOutputBySessionName = new Map();
|
|
242
|
-
const inProgressToolCallBySessionName = new Map();
|
|
243
221
|
for (const activity of activities) {
|
|
244
222
|
lastOutputBySessionName.set(activity.sessionName, activity.lastOutputEpochSeconds);
|
|
245
|
-
inProgressToolCallBySessionName.set(activity.sessionName, activity.hasInProgressToolCall);
|
|
246
223
|
}
|
|
247
224
|
const subAgentsBySessionName = await this.subAgentActivityRepository.listSubAgentActivitiesBySessionName(sessionNames, transcriptPathBySessionName);
|
|
248
225
|
const unansweredOwnerCallEpochSecondsBySessionName = await this.ownerCallStatusProvider.listUnansweredOwnerCallEpochSecondsBySessionName(transcriptPathBySessionName);
|
|
@@ -256,7 +233,6 @@ class NotifySilentLiveSessionsUseCase {
|
|
|
256
233
|
return {
|
|
257
234
|
sessionName,
|
|
258
235
|
mainSilentSeconds,
|
|
259
|
-
mainHasInProgressToolCall: inProgressToolCallBySessionName.get(sessionName) ?? false,
|
|
260
236
|
subAgents: subAgentsBySessionName.get(sessionName) ?? [],
|
|
261
237
|
unansweredOwnerCallAgeSeconds: unansweredOwnerCallEpochSeconds === undefined
|
|
262
238
|
? null
|
|
@@ -278,28 +254,16 @@ class NotifySilentLiveSessionsUseCase {
|
|
|
278
254
|
// is retained in the parameters only for backward compatibility of the
|
|
279
255
|
// call signature and is intentionally ignored (treated as infinite).
|
|
280
256
|
const suppressedByUnansweredOwnerCall = unansweredOwnerCallAgeSeconds !== null;
|
|
281
|
-
//
|
|
282
|
-
//
|
|
283
|
-
//
|
|
284
|
-
//
|
|
285
|
-
//
|
|
286
|
-
// the
|
|
287
|
-
//
|
|
288
|
-
// no pending tool call and is still flagged.
|
|
289
|
-
// The suppression is bounded by the pending tool call's own age
|
|
290
|
-
// (mainSilentSeconds, which for an in-progress tool call equals the age of
|
|
291
|
-
// the pending tool_use line) so it cannot last forever: a session stuck
|
|
292
|
-
// inside a tool call that never returns is reminded once that age exceeds
|
|
293
|
-
// IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS, restoring the ~10-minute
|
|
294
|
-
// stall reminder for a truly hung session instead of suppressing it
|
|
295
|
-
// indefinitely.
|
|
296
|
-
const suppressedByInProgressToolCall = snapshot.mainHasInProgressToolCall &&
|
|
297
|
-
mainSilentSeconds !== null &&
|
|
298
|
-
mainSilentSeconds < exports.IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS;
|
|
257
|
+
// The main-stall reminder is driven purely by silence: a session that has
|
|
258
|
+
// produced no assistant output for longer than the threshold is reminded
|
|
259
|
+
// regardless of whether its transcript tail is an in-progress tool_use. A
|
|
260
|
+
// session that merely looks busy (mid-tool-call) can in fact be stuck, so
|
|
261
|
+
// its apparent busyness MUST NOT suppress the reminder; the reminder queues
|
|
262
|
+
// cleanly into the session even when it is mid-turn. The only main-stall
|
|
263
|
+
// suppression is an unanswered owner call, which is a real wait on the owner.
|
|
299
264
|
const mainTriggered = mainSilentSeconds !== null &&
|
|
300
265
|
mainSilentSeconds >= thresholds.mainSilentThresholdSeconds &&
|
|
301
|
-
!suppressedByUnansweredOwnerCall
|
|
302
|
-
!suppressedByInProgressToolCall;
|
|
266
|
+
!suppressedByUnansweredOwnerCall;
|
|
303
267
|
if (mainTriggered) {
|
|
304
268
|
sections.push(this.messageComposer.composeMainStalledSection(mainSilentSeconds));
|
|
305
269
|
sectionLabels.push('main-stalled');
|
|
@@ -335,7 +299,6 @@ class NotifySilentLiveSessionsUseCase {
|
|
|
335
299
|
sessionName: snapshot.sessionName,
|
|
336
300
|
message: sections.join('\n\n'),
|
|
337
301
|
sectionLabels,
|
|
338
|
-
mainInputBusy: suppressedByInProgressToolCall,
|
|
339
302
|
};
|
|
340
303
|
};
|
|
341
304
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifySilentLiveSessionsUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifySilentLiveSessionsUseCase.ts"],"names":[],"mappings":";;;AAeA,mGAAgG;AAEnF,QAAA,qCAAqC,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7D,wEAAwE;AACxE,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AAC3D,QAAA,2CAA2C,GAAG,EAAE,GAAG,EAAE,CAAC;AACtD,QAAA,yCAAyC,GAAG,CAAC,GAAG,EAAE,CAAC;AACnD,QAAA,0CAA0C,GAAG,EAAE,GAAG,EAAE,CAAC;AACrD,QAAA,oCAAoC,GAAG,EAAE,CAAC;AAC1C,QAAA,iDAAiD,GAAG,EAAE,GAAG,EAAE,CAAC;AAC5D,QAAA,yCAAyC,GAAG,CAAC,GAAG,EAAE,CAAC;AAChE,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,WAAW;AACE,QAAA,0CAA0C,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAEtE,MAAM,gCAAgC,GACpC,mEAAmE,CAAC;AAEtE,MAAM,gCAAgC,GACpC,kEAAkE,CAAC;AAE9D,MAAM,mCAAmC,GAAG,CACjD,WAAmB,EACJ,EAAE;IACjB,IAAI,gCAAgC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,SAAS,GAAG,gCAAgC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClE,OAAO,sBAAsB,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AACnE,CAAC,CAAC;AAbW,QAAA,mCAAmC,uCAa9C;AAEF,MAAM,iDAAiD,GACrD,0EAA0E,CAAC;AAEtE,MAAM,qCAAqC,GAAG,CACnD,WAAmB,EACV,EAAE,CACX,iDAAiD,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAHzD,QAAA,qCAAqC,yCAGoB;AAWtE,MAAa,+BAA+B;IAI1C,YACmB,kCAAsE,EACtE,wCAAkF,EAClF,+BAAgE,EAChE,0BAA6D,EAC7D,uBAAgD,EAChD,sBAA2D,EAC3D,wBAA+D,EAC/D,uBAA6D,EAC7D,eAA6C,EAC7C,OAAgB,EAChB,wBAAsD,IAAI,EAC1D,+BAAiF,IAAI,EACrF,4BAA8D,IAAI;QAZlE,uCAAkC,GAAlC,kCAAkC,CAAoC;QACtE,6CAAwC,GAAxC,wCAAwC,CAA0C;QAClF,oCAA+B,GAA/B,+BAA+B,CAAiC;QAChE,+BAA0B,GAA1B,0BAA0B,CAAmC;QAC7D,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,2BAAsB,GAAtB,sBAAsB,CAAqC;QAC3D,6BAAwB,GAAxB,wBAAwB,CAAuC;QAC/D,4BAAuB,GAAvB,uBAAuB,CAAsC;QAC7D,oBAAe,GAAf,eAAe,CAA8B;QAC7C,YAAO,GAAP,OAAO,CAAS;QAChB,0BAAqB,GAArB,qBAAqB,CAAqC;QAC1D,iCAA4B,GAA5B,4BAA4B,CAAyD;QACrF,8BAAyB,GAAzB,yBAAyB,CAAyC;QAhBpE,mCAA8B,GAC7C,IAAI,6EAAqC,EAAE,CAAC;QAkB9C,QAAG,GAAG,KAAK,EAAE,MAUZ,EAAiB,EAAE;YAClB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,kCAAkC,CAAC,WAAW,EAAE,CAAC;YAC9D,MAAM,sBAAsB,GAC1B,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACpE,IAAA,6CAAqC,EAAC,OAAO,CAAC,WAAW,CAAC,CAC3D,CAAC;YACF,MAAM,4BAA4B,GAChC,sBAAsB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC7D,IAAI,4BAA4B,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CACT,8CAA8C,4BAA4B,2HAA2H,CACtM,CAAC;YACJ,CAAC;YACD,MAAM,2BAA2B,GAC/B,IAAI,CAAC,wCAAwC,CAAC,sBAAsB,CAClE,mBAAmB,CACpB,CAAC;YAEJ,mEAAmE;YACnE,kEAAkE;YAClE,oEAAoE;YACpE,sEAAsE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,6BAA6B;YAC7B,MAAM,yBAAyB,GAC7B,IAAI,CAAC,yBAAyB,KAAK,IAAI;gBACrC,CAAC,CAAC,IAAI,GAAG,EAAU;gBACnB,CAAC,CAAC,MAAM,IAAI,CAAC,yBAAyB,CAAC,6BAA6B,CAChE,2BAA2B,CAC5B,CAAC;YACR,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC/D,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBACxD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,YAAY,OAAO,CAAC,WAAW,oGAAoG,CACpI,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC3C,iBAAiB,EACjB,2BAA2B,EAC3B,MAAM,CAAC,GAAG,CACX,CAAC;YAEF,MAAM,UAAU,GAAsB,EAAE,CAAC;YACzC,KAAK,MAAM,eAAe,IAAI,SAAS,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBACjE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACvB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;gBAClC,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;oBACpC,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CACR,CAAC;YAEF,MAAM,6BAA6B,GACjC,MAAM,IAAI,CAAC,wBAAwB,CAAC,+BAA+B,CAAC;gBAClE,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,oBAAoB,EAAE,MAAM,CAAC,qCAAqC;aACnE,CAAC,CAAC;YACL,MAAM,IAAI,CAAC,wBAAwB,CAAC,yBAAyB,CAAC;gBAC5D,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC;gBAClE,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAC1D,6BAA6B,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CACzD,CAAC;YACF,MAAM,yBAAyB,GAC7B,UAAU,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAEjD,OAAO,CAAC,GAAG,CACT,qCAAqC,mBAAmB,CAAC,MAAM,8BAA8B,UAAU,CAAC,MAAM,gCAAgC,mBAAmB,CAAC,MAAM,4BAA4B,yBAAyB,4EAA4E,CAC1S,CAAC;YAEF,qEAAqE;YACrE,yEAAyE;YACzE,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,gEAAgE;YAChE,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAC1C,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CACrD,CAAC;YACF,MAAM,8BAA8B,GAClC,MAAM,IAAI,CAAC,uBAAuB,CAAC,8BAA8B,CAAC;gBAChE,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,oBAAoB,EAAE,MAAM,CAAC,qCAAqC;aACnE,CAAC,CAAC;YAEL,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,MAAM,6BAA6B,GAAa,EAAE,CAAC;YACnD,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;gBAC5C,IAAI,8BAA8B,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,OAAO,CAAC,GAAG,CACT,YAAY,SAAS,CAAC,WAAW,2HAA2H,CAC7J,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,wEAAwE;gBACxE,gEAAgE;gBAChE,wEAAwE;gBACxE,wEAAwE;gBACxE,+DAA+D;gBAC/D,wCAAwC;gBACxC,uEAAuE;gBACvE,gDAAgD;gBAChD,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CACT,YAAY,SAAS,CAAC,WAAW,8GAA8G,CAChJ,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,IACE,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAC1B,SAAS,CAAC,WAAW,EACrB,MAAM,CAAC,mBAAmB,EAC1B,MAAM,CAAC,4BAA4B,EACnC,MAAM,CAAC,GAAG,CACX,CAAC,EACF,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CACzD,SAAS,CAAC,WAAW,EACrB,SAAS,CAAC,OAAO,CAClB,CAAC;gBACF,SAAS,IAAI,CAAC,CAAC;gBACf,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC1D,gEAAgE;gBAChE,oEAAoE;gBACpE,gEAAgE;gBAChE,OAAO,CAAC,GAAG,CACT,YAAY,SAAS,CAAC,WAAW,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CACnH,CAAC;YACJ,CAAC;YAED,2EAA2E;YAC3E,sEAAsE;YACtE,0EAA0E;YAC1E,4EAA4E;YAC5E,mDAAmD;YACnD,MAAM,4BAA4B,GAAG;gBACnC,GAAG,8BAA8B;aAClC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,4BAA4B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;YACzE,MAAM,6BAA6B,GAAG,KAAK,CAAC,IAAI,CAC9C,IAAI,GAAG,CAAC;gBACN,GAAG,4BAA4B;gBAC/B,GAAG,6BAA6B;aACjC,CAAC,CACH,CAAC;YACF,MAAM,IAAI,CAAC,uBAAuB,CAAC,wBAAwB,CAAC;gBAC1D,YAAY,EAAE,6BAA6B;gBAC3C,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,oBAAe,GAAG,KAAK,EAC7B,WAAmB,EACnB,mBAAkC,EAClC,4BAAoC,EACpC,GAAS,EACS,EAAE;YACpB,IAAI,mBAAmB,KAAK,IAAI,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;gBACxE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,eAAe,GAAG,IAAA,2CAAmC,EAAC,WAAW,CAAC,CAAC;YACzE,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,WAAW,GACf,IAAI,CAAC,4BAA4B,KAAK,IAAI;gBACxC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,IAAI,CAAC,4BAA4B,CAAC,iBAAiB,CAAC;oBACxD,GAAG,EAAE,eAAe;iBACrB,CAAC,CAAC;YACT,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACzD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,MAAM,eAAe,GACnB,eAAe,GAAG,WAAW,CAAC,oBAAoB,CAAC;gBACrD,IAAI,eAAe,IAAI,4BAA4B,EAAE,CAAC;oBACpD,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACxC,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,MAAM,EAClB,mBAAmB,CACpB,CAAC;oBACF,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,OAAO,CAAC,GAAG,CACT,YAAY,WAAW,cAAc,eAAe,kDAAkD,WAAW,CAAC,KAAK,cAAc,WAAW,CAAC,MAAM,IAAI,MAAM,qBAAqB,mBAAmB,KAAK,CAC/M,CAAC;oBACJ,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACrD,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,GAAG,CACJ,CAAC;YACF,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,OAAO,UAAU,CAAC,MAAM,CAAC;YAC3B,CAAC;YAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACxC,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,MAAM,EAClB,mBAAmB,CACpB,CAAC;gBACF,OAAO,CAAC,IAAI,CACV,YAAY,eAAe,gBAAgB,WAAW,2BAA2B,UAAU,CAAC,MAAM,oDAAoD,WAAW,CAAC,KAAK,cAAc,WAAW,CAAC,MAAM,IAAI,MAAM,8BAA8B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,CACjR,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,OAAO,CAAC,IAAI,CACV,YAAY,eAAe,gBAAgB,WAAW,gDAAgD,UAAU,CAAC,MAAM,sCAAsC,CAC9J,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEM,8BAAyB,GAAG,KAAK,EACvC,eAAuB,EACvB,mBAA2B,EAC3B,WAAmB,EACnB,GAAS,EAGT,EAAE;YACF,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;gBACxC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;YACnE,CAAC;YACD,IAAI,KAAkE,CAAC;YACvE,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC/D,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;YAC1E,CAAC;YACD,IAAI,IAAI,CAAC,4BAA4B,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,4BAA4B,CAAC,iBAAiB,CAAC;oBACxD,GAAG,EAAE,eAAe;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACxC,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,EACZ,mBAAmB,CACpB,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CACT,YAAY,WAAW,cAAc,eAAe,gCAAgC,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,MAAM,IAAI,MAAM,qBAAqB,mBAAmB,KAAK,CACjL,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC;QAEM,2BAAsB,GAAG,CAC/B,KAAmC,EACnC,MAAqB,EACrB,mBAA2B,EAClB,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,KAAK,mBAAmB,CAAC;QAEzD,qBAAgB,GAAG,KAAK,EAC9B,mBAA6C,EAC7C,2BAAgD,EAChD,GAAS,EAC+B,EAAE;YAC1C,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAC1C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CACjC,CAAC;YAEF,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,+BAA+B,CAAC,2BAA2B,CACpE,2BAA2B,CAC5B,CAAC;YACJ,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC1D,MAAM,+BAA+B,GAAG,IAAI,GAAG,EAAmB,CAAC;YACnE,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAClC,uBAAuB,CAAC,GAAG,CACzB,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,sBAAsB,CAChC,CAAC;gBACF,+BAA+B,CAAC,GAAG,CACjC,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,qBAAqB,CAC/B,CAAC;YACJ,CAAC;YAED,MAAM,sBAAsB,GAC1B,MAAM,IAAI,CAAC,0BAA0B,CAAC,mCAAmC,CACvE,YAAY,EACZ,2BAA2B,CAC5B,CAAC;YAEJ,MAAM,4CAA4C,GAChD,MAAM,IAAI,CAAC,uBAAuB,CAAC,gDAAgD,CACjF,2BAA2B,CAC5B,CAAC;YAEJ,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACzD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;gBACtC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxE,MAAM,iBAAiB,GACrB,sBAAsB,KAAK,SAAS;oBAClC,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,eAAe,GAAG,sBAAsB,CAAC;gBAC/C,MAAM,+BAA+B,GACnC,4CAA4C,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAChE,OAAO;oBACL,WAAW;oBACX,iBAAiB;oBACjB,yBAAyB,EACvB,+BAA+B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK;oBAC3D,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;oBACxD,6BAA6B,EAC3B,+BAA+B,KAAK,SAAS;wBAC3C,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,eAAe,GAAG,+BAA+B;iBACxD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,qBAAgB,GAAG,CACzB,QAAqC,EACrC,UAMC,EACuB,EAAE;YAC1B,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAa,EAAE,CAAC;YAEnC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACrD,MAAM,6BAA6B,GACjC,QAAQ,CAAC,6BAA6B,CAAC;YACzC,uEAAuE;YACvE,mEAAmE;YACnE,oEAAoE;YACpE,sEAAsE;YACtE,iEAAiE;YACjE,uEAAuE;YACvE,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,+BAA+B,GACnC,6BAA6B,KAAK,IAAI,CAAC;YACzC,4EAA4E;YAC5E,2EAA2E;YAC3E,4EAA4E;YAC5E,0EAA0E;YAC1E,0EAA0E;YAC1E,0EAA0E;YAC1E,4EAA4E;YAC5E,6CAA6C;YAC7C,gEAAgE;YAChE,2EAA2E;YAC3E,wEAAwE;YACxE,0EAA0E;YAC1E,uEAAuE;YACvE,oEAAoE;YACpE,gBAAgB;YAChB,MAAM,8BAA8B,GAClC,QAAQ,CAAC,yBAAyB;gBAClC,iBAAiB,KAAK,IAAI;gBAC1B,iBAAiB,GAAG,kDAA0C,CAAC;YACjE,MAAM,aAAa,GACjB,iBAAiB,KAAK,IAAI;gBAC1B,iBAAiB,IAAI,UAAU,CAAC,0BAA0B;gBAC1D,CAAC,+BAA+B;gBAChC,CAAC,8BAA8B,CAAC;YAClC,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAClE,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAC7C,CAAC,QAAQ,EAAE,EAAE,CACX,CAAC,QAAQ,CAAC,wBAAwB;gBAClC,QAAQ,CAAC,aAAa,IAAI,UAAU,CAAC,8BAA8B,CACtE,CAAC;YACF,sEAAsE;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,yEAAyE;YACzE,wEAAwE;YACxE,sEAAsE;YACtE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CACpD,CAAC,QAAQ,EAAE,EAAE,CACX,CAAC,QAAQ,CAAC,wBAAwB;gBAClC,QAAQ,CAAC,cAAc,IAAI,UAAU,CAAC,+BAA+B;gBACrE,QAAQ,CAAC,aAAa,IAAI,UAAU,CAAC,8BAA8B,CACtE,CAAC;YACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC;oBAC1C,aAAa;oBACb,oBAAoB;iBACrB,CAAC,CACH,CAAC;gBACF,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;oBACrC,aAAa,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzD,CAAC;gBACD,KAAK,MAAM,QAAQ,IAAI,oBAAoB,EAAE,CAAC;oBAC5C,aAAa,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC9B,aAAa;gBACb,aAAa,EAAE,8BAA8B;aAC9C,CAAC;QACJ,CAAC,CAAC;IAzcC,CAAC;CA0cL;AA5dD,0EA4dC"}
|
|
1
|
+
{"version":3,"file":"NotifySilentLiveSessionsUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifySilentLiveSessionsUseCase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -124,7 +124,6 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
124
124
|
lastOutputEpochSeconds: Math.floor(
|
|
125
125
|
Date.parse('2026-06-27T01:00:00.000Z') / 1000,
|
|
126
126
|
),
|
|
127
|
-
hasInProgressToolCall: false,
|
|
128
127
|
},
|
|
129
128
|
]);
|
|
130
129
|
});
|
|
@@ -146,7 +145,6 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
146
145
|
lastOutputEpochSeconds: Math.floor(
|
|
147
146
|
Date.parse('2026-06-27T09:55:00.000Z') / 1000,
|
|
148
147
|
),
|
|
149
|
-
hasInProgressToolCall: false,
|
|
150
148
|
},
|
|
151
149
|
]);
|
|
152
150
|
});
|
|
@@ -168,7 +166,6 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
168
166
|
lastOutputEpochSeconds: Math.floor(
|
|
169
167
|
Date.parse('2026-06-27T10:00:00.000Z') / 1000,
|
|
170
168
|
),
|
|
171
|
-
hasInProgressToolCall: false,
|
|
172
169
|
},
|
|
173
170
|
]);
|
|
174
171
|
});
|
|
@@ -190,7 +187,6 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
190
187
|
lastOutputEpochSeconds: Math.floor(
|
|
191
188
|
Date.parse('2026-06-27T10:00:00.000Z') / 1000,
|
|
192
189
|
),
|
|
193
|
-
hasInProgressToolCall: false,
|
|
194
190
|
},
|
|
195
191
|
]);
|
|
196
192
|
});
|
|
@@ -214,7 +210,6 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
214
210
|
lastOutputEpochSeconds: Math.floor(
|
|
215
211
|
Date.parse('2026-06-27T10:05:00.000Z') / 1000,
|
|
216
212
|
),
|
|
217
|
-
hasInProgressToolCall: false,
|
|
218
213
|
},
|
|
219
214
|
]);
|
|
220
215
|
});
|
|
@@ -236,7 +231,6 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
236
231
|
lastOutputEpochSeconds: Math.floor(
|
|
237
232
|
Date.parse('2026-06-27T10:00:00.000Z') / 1000,
|
|
238
233
|
),
|
|
239
|
-
hasInProgressToolCall: false,
|
|
240
234
|
},
|
|
241
235
|
]);
|
|
242
236
|
});
|
|
@@ -260,7 +254,6 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
260
254
|
lastOutputEpochSeconds: Math.floor(
|
|
261
255
|
Date.parse('2026-06-27T10:00:00.000Z') / 1000,
|
|
262
256
|
),
|
|
263
|
-
hasInProgressToolCall: false,
|
|
264
257
|
},
|
|
265
258
|
]);
|
|
266
259
|
});
|
|
@@ -293,7 +286,7 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
293
286
|
expect(result).toEqual([]);
|
|
294
287
|
});
|
|
295
288
|
|
|
296
|
-
it('
|
|
289
|
+
it('reports the assistant tool_use timestamp as the last output even when no tool_result has arrived, without any in-progress flagging', async () => {
|
|
297
290
|
const transcriptPath = writeTranscript('busy.jsonl', [
|
|
298
291
|
assistantEntry('2026-06-27T09:00:00.000Z'),
|
|
299
292
|
assistantEntryWithToolUse('2026-06-27T09:01:00.000Z', 'toolu_running'),
|
|
@@ -310,12 +303,11 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
310
303
|
lastOutputEpochSeconds: Math.floor(
|
|
311
304
|
Date.parse('2026-06-27T09:01:00.000Z') / 1000,
|
|
312
305
|
),
|
|
313
|
-
hasInProgressToolCall: true,
|
|
314
306
|
},
|
|
315
307
|
]);
|
|
316
308
|
});
|
|
317
309
|
|
|
318
|
-
it('
|
|
310
|
+
it('reports the assistant tool_use timestamp as the last output when a later tool_result user entry follows it', async () => {
|
|
319
311
|
const transcriptPath = writeTranscript('completed.jsonl', [
|
|
320
312
|
assistantEntryWithToolUse('2026-06-27T09:01:00.000Z', 'toolu_done'),
|
|
321
313
|
toolResultUserEntry('2026-06-27T09:05:00.000Z', 'toolu_done'),
|
|
@@ -332,7 +324,28 @@ describe('FileSystemSessionOutputActivityRepository', () => {
|
|
|
332
324
|
lastOutputEpochSeconds: Math.floor(
|
|
333
325
|
Date.parse('2026-06-27T09:01:00.000Z') / 1000,
|
|
334
326
|
),
|
|
335
|
-
|
|
327
|
+
},
|
|
328
|
+
]);
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
it('reports the later assistant text timestamp when an orphaned tool_use is followed by a resumed assistant turn, carrying no in-progress state', async () => {
|
|
332
|
+
const transcriptPath = writeTranscript('orphaned.jsonl', [
|
|
333
|
+
assistantEntryWithToolUse('2026-06-27T09:00:00.000Z', 'toolu_orphaned'),
|
|
334
|
+
assistantEntry('2026-06-27T09:46:53.000Z'),
|
|
335
|
+
userEntry('2026-06-27T09:47:00.000Z'),
|
|
336
|
+
]);
|
|
337
|
+
const repository = new FileSystemSessionOutputActivityRepository();
|
|
338
|
+
|
|
339
|
+
const result = await repository.listSessionOutputActivities(
|
|
340
|
+
new Map([['orphaned', transcriptPath]]),
|
|
341
|
+
);
|
|
342
|
+
|
|
343
|
+
expect(result).toEqual([
|
|
344
|
+
{
|
|
345
|
+
sessionName: 'orphaned',
|
|
346
|
+
lastOutputEpochSeconds: Math.floor(
|
|
347
|
+
Date.parse('2026-06-27T09:46:53.000Z') / 1000,
|
|
348
|
+
),
|
|
336
349
|
},
|
|
337
350
|
]);
|
|
338
351
|
});
|
|
@@ -21,54 +21,34 @@ const parseEpochMilliseconds = (timestamp: string | null): number | null => {
|
|
|
21
21
|
return Number.isNaN(parsed) ? null : parsed;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
const readContentBlocks = (
|
|
25
|
-
message: Record<string, unknown>,
|
|
26
|
-
): Record<string, unknown>[] => {
|
|
27
|
-
const content = message.content;
|
|
28
|
-
if (!Array.isArray(content)) {
|
|
29
|
-
return [];
|
|
30
|
-
}
|
|
31
|
-
return content.filter(isRecord);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
type TranscriptActivity = {
|
|
35
|
-
lastAssistantOutputEpochSeconds: number | null;
|
|
36
|
-
hasInProgressToolCall: boolean;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
24
|
export class FileSystemSessionOutputActivityRepository implements SessionOutputActivityRepository {
|
|
40
25
|
listSessionOutputActivities = async (
|
|
41
26
|
transcriptPathBySessionName: Map<string, string>,
|
|
42
27
|
): Promise<LiveSessionOutputActivity[]> => {
|
|
43
28
|
const activities: LiveSessionOutputActivity[] = [];
|
|
44
29
|
for (const [sessionName, transcriptPath] of transcriptPathBySessionName) {
|
|
45
|
-
const
|
|
46
|
-
this.
|
|
30
|
+
const lastAssistantOutputEpochSeconds =
|
|
31
|
+
this.readLastAssistantOutputEpochSeconds(transcriptPath);
|
|
47
32
|
if (lastAssistantOutputEpochSeconds !== null) {
|
|
48
33
|
activities.push({
|
|
49
34
|
sessionName,
|
|
50
35
|
lastOutputEpochSeconds: lastAssistantOutputEpochSeconds,
|
|
51
|
-
hasInProgressToolCall,
|
|
52
36
|
});
|
|
53
37
|
}
|
|
54
38
|
}
|
|
55
39
|
return activities;
|
|
56
40
|
};
|
|
57
41
|
|
|
58
|
-
private
|
|
42
|
+
private readLastAssistantOutputEpochSeconds = (
|
|
59
43
|
transcriptPath: string,
|
|
60
|
-
):
|
|
44
|
+
): number | null => {
|
|
61
45
|
let content: string;
|
|
62
46
|
try {
|
|
63
47
|
content = fs.readFileSync(transcriptPath, 'utf8');
|
|
64
48
|
} catch {
|
|
65
|
-
return
|
|
66
|
-
lastAssistantOutputEpochSeconds: null,
|
|
67
|
-
hasInProgressToolCall: false,
|
|
68
|
-
};
|
|
49
|
+
return null;
|
|
69
50
|
}
|
|
70
51
|
let lastAssistantOutputEpochMs: number | null = null;
|
|
71
|
-
const pendingToolUseIds = new Set<string>();
|
|
72
52
|
for (const line of content.split('\n')) {
|
|
73
53
|
const trimmed = line.trim();
|
|
74
54
|
if (trimmed.length === 0) {
|
|
@@ -83,37 +63,15 @@ export class FileSystemSessionOutputActivityRepository implements SessionOutputA
|
|
|
83
63
|
if (!isRecord(parsed)) {
|
|
84
64
|
continue;
|
|
85
65
|
}
|
|
86
|
-
const message = parsed.message;
|
|
87
66
|
if (readString(parsed, 'type') === 'assistant') {
|
|
88
67
|
const epochMs = parseEpochMilliseconds(readString(parsed, 'timestamp'));
|
|
89
68
|
if (epochMs !== null) {
|
|
90
69
|
lastAssistantOutputEpochMs = epochMs;
|
|
91
70
|
}
|
|
92
71
|
}
|
|
93
|
-
if (!isRecord(message)) {
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
for (const block of readContentBlocks(message)) {
|
|
97
|
-
const blockType = readString(block, 'type');
|
|
98
|
-
if (blockType === 'tool_use') {
|
|
99
|
-
const toolUseId = readString(block, 'id');
|
|
100
|
-
if (toolUseId !== null) {
|
|
101
|
-
pendingToolUseIds.add(toolUseId);
|
|
102
|
-
}
|
|
103
|
-
} else if (blockType === 'tool_result') {
|
|
104
|
-
const toolUseId = readString(block, 'tool_use_id');
|
|
105
|
-
if (toolUseId !== null) {
|
|
106
|
-
pendingToolUseIds.delete(toolUseId);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
72
|
}
|
|
111
|
-
return
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
? null
|
|
115
|
-
: Math.floor(lastAssistantOutputEpochMs / 1000),
|
|
116
|
-
hasInProgressToolCall: pendingToolUseIds.size > 0,
|
|
117
|
-
};
|
|
73
|
+
return lastAssistantOutputEpochMs === null
|
|
74
|
+
? null
|
|
75
|
+
: Math.floor(lastAssistantOutputEpochMs / 1000);
|
|
118
76
|
};
|
|
119
77
|
}
|
|
@@ -8,7 +8,6 @@ export type SubAgentActivity = {
|
|
|
8
8
|
export type LiveSessionActivitySnapshot = {
|
|
9
9
|
sessionName: string;
|
|
10
10
|
mainSilentSeconds: number | null;
|
|
11
|
-
mainHasInProgressToolCall: boolean;
|
|
12
11
|
subAgents: SubAgentActivity[];
|
|
13
12
|
unansweredOwnerCallAgeSeconds: number | null;
|
|
14
13
|
};
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
DEFAULT_NOTIFICATION_STAGGER_SECONDS,
|
|
11
11
|
DEFAULT_CANDIDATE_DEBOUNCE_RECENCY_WINDOW_SECONDS,
|
|
12
12
|
DEFAULT_HUB_TASK_STATUS_CACHE_TTL_SECONDS,
|
|
13
|
-
IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS,
|
|
14
13
|
} from './NotifySilentLiveSessionsUseCase';
|
|
15
14
|
import { Issue } from '../entities/Issue';
|
|
16
15
|
import { LiveSessionProcessSnapshotProvider } from './adapter-interfaces/LiveSessionProcessSnapshotProvider';
|
|
@@ -268,7 +267,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
268
267
|
sessionName,
|
|
269
268
|
lastOutputEpochSeconds:
|
|
270
269
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
271
|
-
hasInProgressToolCall: false,
|
|
272
270
|
},
|
|
273
271
|
],
|
|
274
272
|
);
|
|
@@ -299,7 +297,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
299
297
|
sessionName: GITHUB_SESSION,
|
|
300
298
|
lastOutputEpochSeconds:
|
|
301
299
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
302
|
-
hasInProgressToolCall: false,
|
|
303
300
|
},
|
|
304
301
|
],
|
|
305
302
|
);
|
|
@@ -323,7 +320,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
323
320
|
sessionName: pullRequestSession,
|
|
324
321
|
lastOutputEpochSeconds:
|
|
325
322
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
326
|
-
hasInProgressToolCall: false,
|
|
327
323
|
},
|
|
328
324
|
],
|
|
329
325
|
);
|
|
@@ -345,7 +341,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
345
341
|
sessionName: 'workbench',
|
|
346
342
|
lastOutputEpochSeconds:
|
|
347
343
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
348
|
-
hasInProgressToolCall: false,
|
|
349
344
|
},
|
|
350
345
|
],
|
|
351
346
|
);
|
|
@@ -379,13 +374,11 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
379
374
|
sessionName: GITHUB_SESSION,
|
|
380
375
|
lastOutputEpochSeconds:
|
|
381
376
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
382
|
-
hasInProgressToolCall: false,
|
|
383
377
|
},
|
|
384
378
|
{
|
|
385
379
|
sessionName: 'orchestrator',
|
|
386
380
|
lastOutputEpochSeconds:
|
|
387
381
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
388
|
-
hasInProgressToolCall: false,
|
|
389
382
|
},
|
|
390
383
|
],
|
|
391
384
|
);
|
|
@@ -501,7 +494,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
501
494
|
sessionName: GITHUB_SESSION,
|
|
502
495
|
lastOutputEpochSeconds:
|
|
503
496
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS + 1,
|
|
504
|
-
hasInProgressToolCall: false,
|
|
505
497
|
},
|
|
506
498
|
],
|
|
507
499
|
);
|
|
@@ -529,7 +521,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
529
521
|
sessionName: GITHUB_SESSION,
|
|
530
522
|
lastOutputEpochSeconds:
|
|
531
523
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
532
|
-
hasInProgressToolCall: false,
|
|
533
524
|
},
|
|
534
525
|
],
|
|
535
526
|
);
|
|
@@ -550,7 +541,7 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
550
541
|
).toHaveBeenCalledWith(GITHUB_SESSION, MAIN_STALLED_SECTION);
|
|
551
542
|
});
|
|
552
543
|
|
|
553
|
-
it('
|
|
544
|
+
it('sends the main stalled section for a session silent past the threshold regardless of any in-progress tool call, because apparent busyness never suppresses the reminder', async () => {
|
|
554
545
|
setupLiveInteractiveSession(GITHUB_SESSION);
|
|
555
546
|
mockSessionOutputActivityRepository.listSessionOutputActivities.mockResolvedValue(
|
|
556
547
|
[
|
|
@@ -558,34 +549,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
558
549
|
sessionName: GITHUB_SESSION,
|
|
559
550
|
lastOutputEpochSeconds:
|
|
560
551
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
561
|
-
hasInProgressToolCall: true,
|
|
562
|
-
},
|
|
563
|
-
],
|
|
564
|
-
);
|
|
565
|
-
mockOwnerCallStatusProvider.listUnansweredOwnerCallEpochSecondsBySessionName.mockResolvedValue(
|
|
566
|
-
new Map<string, number>(),
|
|
567
|
-
);
|
|
568
|
-
|
|
569
|
-
await useCase.run(runParams());
|
|
570
|
-
|
|
571
|
-
expect(
|
|
572
|
-
mockMessageComposer.composeMainStalledSection,
|
|
573
|
-
).not.toHaveBeenCalled();
|
|
574
|
-
expect(
|
|
575
|
-
mockNotificationRepository.sendSelfCheckNotification,
|
|
576
|
-
).not.toHaveBeenCalled();
|
|
577
|
-
});
|
|
578
|
-
|
|
579
|
-
it('sends the main stalled section when the in-progress tool call has been pending longer than the suppression bound', async () => {
|
|
580
|
-
setupLiveInteractiveSession(GITHUB_SESSION);
|
|
581
|
-
const pendingToolCallAgeSeconds =
|
|
582
|
-
IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS + 60 * 60;
|
|
583
|
-
mockSessionOutputActivityRepository.listSessionOutputActivities.mockResolvedValue(
|
|
584
|
-
[
|
|
585
|
-
{
|
|
586
|
-
sessionName: GITHUB_SESSION,
|
|
587
|
-
lastOutputEpochSeconds: nowEpochSeconds - pendingToolCallAgeSeconds,
|
|
588
|
-
hasInProgressToolCall: true,
|
|
589
552
|
},
|
|
590
553
|
],
|
|
591
554
|
);
|
|
@@ -596,7 +559,7 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
596
559
|
await useCase.run(runParams());
|
|
597
560
|
|
|
598
561
|
expect(mockMessageComposer.composeMainStalledSection).toHaveBeenCalledWith(
|
|
599
|
-
|
|
562
|
+
DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
600
563
|
);
|
|
601
564
|
expect(
|
|
602
565
|
mockNotificationRepository.sendSelfCheckNotification,
|
|
@@ -611,7 +574,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
611
574
|
sessionName: GITHUB_SESSION,
|
|
612
575
|
lastOutputEpochSeconds:
|
|
613
576
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS + 1,
|
|
614
|
-
hasInProgressToolCall: false,
|
|
615
577
|
},
|
|
616
578
|
],
|
|
617
579
|
);
|
|
@@ -738,7 +700,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
738
700
|
sessionName: GITHUB_SESSION,
|
|
739
701
|
lastOutputEpochSeconds:
|
|
740
702
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
741
|
-
hasInProgressToolCall: false,
|
|
742
703
|
},
|
|
743
704
|
],
|
|
744
705
|
);
|
|
@@ -763,14 +724,12 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
763
724
|
sessionName: GITHUB_SESSION,
|
|
764
725
|
lastOutputEpochSeconds:
|
|
765
726
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
766
|
-
hasInProgressToolCall: false,
|
|
767
727
|
},
|
|
768
728
|
];
|
|
769
729
|
const active = [
|
|
770
730
|
{
|
|
771
731
|
sessionName: GITHUB_SESSION,
|
|
772
732
|
lastOutputEpochSeconds: nowEpochSeconds,
|
|
773
|
-
hasInProgressToolCall: false,
|
|
774
733
|
},
|
|
775
734
|
];
|
|
776
735
|
|
|
@@ -808,7 +767,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
808
767
|
sessionName: GITHUB_SESSION,
|
|
809
768
|
lastOutputEpochSeconds:
|
|
810
769
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
811
|
-
hasInProgressToolCall: false,
|
|
812
770
|
},
|
|
813
771
|
],
|
|
814
772
|
);
|
|
@@ -898,7 +856,7 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
898
856
|
});
|
|
899
857
|
});
|
|
900
858
|
|
|
901
|
-
describe('fire-once latch
|
|
859
|
+
describe('fire-once latch', () => {
|
|
902
860
|
const setupSilentGithubSession = (): void => {
|
|
903
861
|
setupLiveInteractiveSession(GITHUB_SESSION);
|
|
904
862
|
mockSessionOutputActivityRepository.listSessionOutputActivities.mockResolvedValue(
|
|
@@ -907,19 +865,11 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
907
865
|
sessionName: GITHUB_SESSION,
|
|
908
866
|
lastOutputEpochSeconds:
|
|
909
867
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
910
|
-
hasInProgressToolCall: false,
|
|
911
868
|
},
|
|
912
869
|
],
|
|
913
870
|
);
|
|
914
871
|
};
|
|
915
872
|
|
|
916
|
-
const idleSubAgent = (label: string): SubAgentActivity => ({
|
|
917
|
-
label,
|
|
918
|
-
silentSeconds: DEFAULT_SUBAGENT_SILENT_THRESHOLD_SECONDS,
|
|
919
|
-
runningSeconds: 60,
|
|
920
|
-
waitingOnExternalProcess: false,
|
|
921
|
-
});
|
|
922
|
-
|
|
923
873
|
it('loads the fire-once latch using the configured recency window', async () => {
|
|
924
874
|
setupSilentGithubSession();
|
|
925
875
|
|
|
@@ -973,69 +923,17 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
973
923
|
).toHaveBeenCalledWith({ sessionNames: [], now });
|
|
974
924
|
});
|
|
975
925
|
|
|
976
|
-
it('
|
|
977
|
-
|
|
978
|
-
mockSessionOutputActivityRepository.listSessionOutputActivities.mockResolvedValue(
|
|
979
|
-
[
|
|
980
|
-
{
|
|
981
|
-
sessionName: GITHUB_SESSION,
|
|
982
|
-
lastOutputEpochSeconds: nowEpochSeconds,
|
|
983
|
-
hasInProgressToolCall: true,
|
|
984
|
-
},
|
|
985
|
-
],
|
|
986
|
-
);
|
|
987
|
-
mockSubAgentActivityRepository.listSubAgentActivitiesBySessionName.mockResolvedValue(
|
|
988
|
-
new Map([[GITHUB_SESSION, [idleSubAgent('sub-process-1')]]]),
|
|
989
|
-
);
|
|
926
|
+
it('sends the reminder for a silent session even when its main REPL is mid-turn, because apparent busyness no longer defers delivery', async () => {
|
|
927
|
+
setupSilentGithubSession();
|
|
990
928
|
|
|
991
929
|
await useCase.run(runParams());
|
|
992
930
|
|
|
993
|
-
expect(mockMessageComposer.composeSubAgentSection).toHaveBeenCalled();
|
|
994
931
|
expect(
|
|
995
932
|
mockNotificationRepository.sendSelfCheckNotification,
|
|
996
|
-
).
|
|
933
|
+
).toHaveBeenCalledWith(GITHUB_SESSION, MAIN_STALLED_SECTION);
|
|
997
934
|
expect(
|
|
998
935
|
mockNotifiedStateRepository.saveNotifiedSessionNames,
|
|
999
|
-
).toHaveBeenCalledWith({ sessionNames: [], now });
|
|
1000
|
-
});
|
|
1001
|
-
|
|
1002
|
-
it('delivers the deferred reminder once the main REPL becomes input-ready', async () => {
|
|
1003
|
-
wireStatefulNotifiedLatch();
|
|
1004
|
-
setupLiveInteractiveSession(GITHUB_SESSION);
|
|
1005
|
-
mockSubAgentActivityRepository.listSubAgentActivitiesBySessionName.mockResolvedValue(
|
|
1006
|
-
new Map([[GITHUB_SESSION, [idleSubAgent('sub-process-1')]]]),
|
|
1007
|
-
);
|
|
1008
|
-
|
|
1009
|
-
mockSessionOutputActivityRepository.listSessionOutputActivities.mockResolvedValue(
|
|
1010
|
-
[
|
|
1011
|
-
{
|
|
1012
|
-
sessionName: GITHUB_SESSION,
|
|
1013
|
-
lastOutputEpochSeconds: nowEpochSeconds,
|
|
1014
|
-
hasInProgressToolCall: true,
|
|
1015
|
-
},
|
|
1016
|
-
],
|
|
1017
|
-
);
|
|
1018
|
-
await useCase.run(runParams());
|
|
1019
|
-
expect(
|
|
1020
|
-
mockNotificationRepository.sendSelfCheckNotification,
|
|
1021
|
-
).not.toHaveBeenCalled();
|
|
1022
|
-
|
|
1023
|
-
mockSessionOutputActivityRepository.listSessionOutputActivities.mockResolvedValue(
|
|
1024
|
-
[
|
|
1025
|
-
{
|
|
1026
|
-
sessionName: GITHUB_SESSION,
|
|
1027
|
-
lastOutputEpochSeconds: nowEpochSeconds,
|
|
1028
|
-
hasInProgressToolCall: false,
|
|
1029
|
-
},
|
|
1030
|
-
],
|
|
1031
|
-
);
|
|
1032
|
-
await useCase.run(runParams());
|
|
1033
|
-
expect(
|
|
1034
|
-
mockNotificationRepository.sendSelfCheckNotification,
|
|
1035
|
-
).toHaveBeenCalledTimes(1);
|
|
1036
|
-
expect(
|
|
1037
|
-
mockNotificationRepository.sendSelfCheckNotification,
|
|
1038
|
-
).toHaveBeenCalledWith(GITHUB_SESSION, SUBAGENT_SECTION);
|
|
936
|
+
).toHaveBeenCalledWith({ sessionNames: [GITHUB_SESSION], now });
|
|
1039
937
|
});
|
|
1040
938
|
});
|
|
1041
939
|
|
|
@@ -1218,13 +1116,11 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
1218
1116
|
sessionName: GITHUB_SESSION_ALPHA,
|
|
1219
1117
|
lastOutputEpochSeconds:
|
|
1220
1118
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
1221
|
-
hasInProgressToolCall: false,
|
|
1222
1119
|
},
|
|
1223
1120
|
{
|
|
1224
1121
|
sessionName: GITHUB_SESSION_BRAVO,
|
|
1225
1122
|
lastOutputEpochSeconds:
|
|
1226
1123
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
1227
|
-
hasInProgressToolCall: false,
|
|
1228
1124
|
},
|
|
1229
1125
|
],
|
|
1230
1126
|
);
|
|
@@ -1260,7 +1156,6 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
1260
1156
|
sessionName: GITHUB_SESSION,
|
|
1261
1157
|
lastOutputEpochSeconds:
|
|
1262
1158
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
1263
|
-
hasInProgressToolCall: false,
|
|
1264
1159
|
},
|
|
1265
1160
|
],
|
|
1266
1161
|
);
|
|
@@ -1802,13 +1697,11 @@ describe('NotifySilentLiveSessionsUseCase', () => {
|
|
|
1802
1697
|
sessionName: GITHUB_SESSION_ALPHA,
|
|
1803
1698
|
lastOutputEpochSeconds:
|
|
1804
1699
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
1805
|
-
hasInProgressToolCall: false,
|
|
1806
1700
|
},
|
|
1807
1701
|
{
|
|
1808
1702
|
sessionName: GITHUB_SESSION_BRAVO,
|
|
1809
1703
|
lastOutputEpochSeconds:
|
|
1810
1704
|
nowEpochSeconds - DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
1811
|
-
hasInProgressToolCall: false,
|
|
1812
1705
|
},
|
|
1813
1706
|
],
|
|
1814
1707
|
);
|
|
@@ -26,15 +26,6 @@ export const DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS = 15 * 60;
|
|
|
26
26
|
export const DEFAULT_NOTIFICATION_STAGGER_SECONDS = 25;
|
|
27
27
|
export const DEFAULT_CANDIDATE_DEBOUNCE_RECENCY_WINDOW_SECONDS = 15 * 60;
|
|
28
28
|
export const DEFAULT_HUB_TASK_STATUS_CACHE_TTL_SECONDS = 5 * 60;
|
|
29
|
-
// Upper bound on how long an in-progress tool call suppresses the main-stall
|
|
30
|
-
// reminder. Set to 2 hours: comfortably above the ~1-hour maximum duration of
|
|
31
|
-
// the longest legitimate single tool call (the Monitor tool's own timeout
|
|
32
|
-
// ceiling), so every legitimate long-running tool call is still suppressed,
|
|
33
|
-
// while a session whose transcript tail has been an unanswered tool_use for
|
|
34
|
-
// longer than this — for example because the tool call itself hung and never
|
|
35
|
-
// returned — still receives the stall reminder instead of being suppressed
|
|
36
|
-
// forever.
|
|
37
|
-
export const IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS = 2 * 60 * 60;
|
|
38
29
|
|
|
39
30
|
const GITHUB_ISSUE_OR_PULL_URL_PATTERN =
|
|
40
31
|
/^https:\/\/github\.com\/([^/]+)\/([^/]+)\/(?:issues|pull)\/(\d+)$/;
|
|
@@ -71,7 +62,6 @@ type NotifyCandidate = {
|
|
|
71
62
|
sessionName: string;
|
|
72
63
|
message: string;
|
|
73
64
|
sectionLabels: string[];
|
|
74
|
-
mainInputBusy: boolean;
|
|
75
65
|
};
|
|
76
66
|
|
|
77
67
|
export class NotifySilentLiveSessionsUseCase {
|
|
@@ -212,20 +202,6 @@ export class NotifySilentLiveSessionsUseCase {
|
|
|
212
202
|
);
|
|
213
203
|
continue;
|
|
214
204
|
}
|
|
215
|
-
// Input-state gating: a session whose main REPL is mid-turn — currently
|
|
216
|
-
// running an in-progress tool call, which includes waiting on a
|
|
217
|
-
// long-running sub-agent — cannot accept an injected prompt cleanly, so
|
|
218
|
-
// the reminder is deferred rather than piled into a busy input box. The
|
|
219
|
-
// session stays a candidate, so it is reminded once it becomes
|
|
220
|
-
// input-ready. A tool call pending past
|
|
221
|
-
// IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS is treated as hung and no
|
|
222
|
-
// longer counts as busy (see composeCandidate).
|
|
223
|
-
if (candidate.mainInputBusy) {
|
|
224
|
-
console.log(
|
|
225
|
-
`Skipping ${candidate.sessionName}: main REPL is not in an input-accepting state (in-progress tool call); deferring reminder until it is idle.`,
|
|
226
|
-
);
|
|
227
|
-
continue;
|
|
228
|
-
}
|
|
229
205
|
if (
|
|
230
206
|
!(await this.isHubTaskActive(
|
|
231
207
|
candidate.sessionName,
|
|
@@ -404,16 +380,11 @@ export class NotifySilentLiveSessionsUseCase {
|
|
|
404
380
|
transcriptPathBySessionName,
|
|
405
381
|
);
|
|
406
382
|
const lastOutputBySessionName = new Map<string, number>();
|
|
407
|
-
const inProgressToolCallBySessionName = new Map<string, boolean>();
|
|
408
383
|
for (const activity of activities) {
|
|
409
384
|
lastOutputBySessionName.set(
|
|
410
385
|
activity.sessionName,
|
|
411
386
|
activity.lastOutputEpochSeconds,
|
|
412
387
|
);
|
|
413
|
-
inProgressToolCallBySessionName.set(
|
|
414
|
-
activity.sessionName,
|
|
415
|
-
activity.hasInProgressToolCall,
|
|
416
|
-
);
|
|
417
388
|
}
|
|
418
389
|
|
|
419
390
|
const subAgentsBySessionName =
|
|
@@ -439,8 +410,6 @@ export class NotifySilentLiveSessionsUseCase {
|
|
|
439
410
|
return {
|
|
440
411
|
sessionName,
|
|
441
412
|
mainSilentSeconds,
|
|
442
|
-
mainHasInProgressToolCall:
|
|
443
|
-
inProgressToolCallBySessionName.get(sessionName) ?? false,
|
|
444
413
|
subAgents: subAgentsBySessionName.get(sessionName) ?? [],
|
|
445
414
|
unansweredOwnerCallAgeSeconds:
|
|
446
415
|
unansweredOwnerCallEpochSeconds === undefined
|
|
@@ -476,30 +445,17 @@ export class NotifySilentLiveSessionsUseCase {
|
|
|
476
445
|
// call signature and is intentionally ignored (treated as infinite).
|
|
477
446
|
const suppressedByUnansweredOwnerCall =
|
|
478
447
|
unansweredOwnerCallAgeSeconds !== null;
|
|
479
|
-
//
|
|
480
|
-
//
|
|
481
|
-
//
|
|
482
|
-
//
|
|
483
|
-
//
|
|
484
|
-
// the
|
|
485
|
-
//
|
|
486
|
-
// no pending tool call and is still flagged.
|
|
487
|
-
// The suppression is bounded by the pending tool call's own age
|
|
488
|
-
// (mainSilentSeconds, which for an in-progress tool call equals the age of
|
|
489
|
-
// the pending tool_use line) so it cannot last forever: a session stuck
|
|
490
|
-
// inside a tool call that never returns is reminded once that age exceeds
|
|
491
|
-
// IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS, restoring the ~10-minute
|
|
492
|
-
// stall reminder for a truly hung session instead of suppressing it
|
|
493
|
-
// indefinitely.
|
|
494
|
-
const suppressedByInProgressToolCall =
|
|
495
|
-
snapshot.mainHasInProgressToolCall &&
|
|
496
|
-
mainSilentSeconds !== null &&
|
|
497
|
-
mainSilentSeconds < IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS;
|
|
448
|
+
// The main-stall reminder is driven purely by silence: a session that has
|
|
449
|
+
// produced no assistant output for longer than the threshold is reminded
|
|
450
|
+
// regardless of whether its transcript tail is an in-progress tool_use. A
|
|
451
|
+
// session that merely looks busy (mid-tool-call) can in fact be stuck, so
|
|
452
|
+
// its apparent busyness MUST NOT suppress the reminder; the reminder queues
|
|
453
|
+
// cleanly into the session even when it is mid-turn. The only main-stall
|
|
454
|
+
// suppression is an unanswered owner call, which is a real wait on the owner.
|
|
498
455
|
const mainTriggered =
|
|
499
456
|
mainSilentSeconds !== null &&
|
|
500
457
|
mainSilentSeconds >= thresholds.mainSilentThresholdSeconds &&
|
|
501
|
-
!suppressedByUnansweredOwnerCall
|
|
502
|
-
!suppressedByInProgressToolCall;
|
|
458
|
+
!suppressedByUnansweredOwnerCall;
|
|
503
459
|
if (mainTriggered) {
|
|
504
460
|
sections.push(
|
|
505
461
|
this.messageComposer.composeMainStalledSection(mainSilentSeconds),
|
|
@@ -547,7 +503,6 @@ export class NotifySilentLiveSessionsUseCase {
|
|
|
547
503
|
sessionName: snapshot.sessionName,
|
|
548
504
|
message: sections.join('\n\n'),
|
|
549
505
|
sectionLabels,
|
|
550
|
-
mainInputBusy: suppressedByInProgressToolCall,
|
|
551
506
|
};
|
|
552
507
|
};
|
|
553
508
|
}
|
|
@@ -2,6 +2,6 @@ import { LiveSessionOutputActivity } from '../../domain/entities/LiveSessionOutp
|
|
|
2
2
|
import { SessionOutputActivityRepository } from '../../domain/usecases/adapter-interfaces/SessionOutputActivityRepository';
|
|
3
3
|
export declare class FileSystemSessionOutputActivityRepository implements SessionOutputActivityRepository {
|
|
4
4
|
listSessionOutputActivities: (transcriptPathBySessionName: Map<string, string>) => Promise<LiveSessionOutputActivity[]>;
|
|
5
|
-
private
|
|
5
|
+
private readLastAssistantOutputEpochSeconds;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=FileSystemSessionOutputActivityRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystemSessionOutputActivityRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/FileSystemSessionOutputActivityRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,0EAA0E,CAAC;
|
|
1
|
+
{"version":3,"file":"FileSystemSessionOutputActivityRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/FileSystemSessionOutputActivityRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,0EAA0E,CAAC;AAqB3H,qBAAa,yCAA0C,YAAW,+BAA+B;IAC/F,2BAA2B,GACzB,6BAA6B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAC/C,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAarC;IAEF,OAAO,CAAC,mCAAmC,CAkCzC;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveSessionActivitySnapshot.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/LiveSessionActivitySnapshot.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,
|
|
1
|
+
{"version":3,"file":"LiveSessionActivitySnapshot.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/LiveSessionActivitySnapshot.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,6BAA6B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveSessionOutputActivity.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/LiveSessionOutputActivity.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"LiveSessionOutputActivity.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/LiveSessionOutputActivity.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC"}
|
|
@@ -18,7 +18,6 @@ export declare const DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS: number;
|
|
|
18
18
|
export declare const DEFAULT_NOTIFICATION_STAGGER_SECONDS = 25;
|
|
19
19
|
export declare const DEFAULT_CANDIDATE_DEBOUNCE_RECENCY_WINDOW_SECONDS: number;
|
|
20
20
|
export declare const DEFAULT_HUB_TASK_STATUS_CACHE_TTL_SECONDS: number;
|
|
21
|
-
export declare const IN_PROGRESS_TOOL_CALL_MAX_SUPPRESS_SECONDS: number;
|
|
22
21
|
export declare const parseHubTaskIssueUrlFromSessionName: (sessionName: string) => string | null;
|
|
23
22
|
export declare const isGitHubIssueOrPullRequestSessionName: (sessionName: string) => boolean;
|
|
24
23
|
export type HubTaskStatusResolver = Pick<IssueRepository, 'getIssueByUrl'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifySilentLiveSessionsUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifySilentLiveSessionsUseCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kCAAkC,EAAE,MAAM,yDAAyD,CAAC;AAC7G,OAAO,EAAE,wCAAwC,EAAE,MAAM,+DAA+D,CAAC;AACzH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,+BAA+B,EAAE,MAAM,sDAAsD,CAAC;AACvG,OAAO,EAAE,iCAAiC,EAAE,MAAM,wDAAwD,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,mCAAmC,EAAE,MAAM,0DAA0D,CAAC;AAC/G,OAAO,EAAE,qCAAqC,EAAE,MAAM,4DAA4D,CAAC;AACnH,OAAO,EAAE,oCAAoC,EAAE,MAAM,2DAA2D,CAAC;AACjH,OAAO,EAAE,yCAAyC,EAAE,MAAM,gEAAgE,CAAC;AAC3H,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAGvE,eAAO,MAAM,qCAAqC,QAAU,CAAC;AAK7D,eAAO,MAAM,2CAA2C,QAAU,CAAC;AACnE,eAAO,MAAM,yCAAyC,QAAS,CAAC;AAChE,eAAO,MAAM,0CAA0C,QAAU,CAAC;AAClE,eAAO,MAAM,oCAAoC,KAAK,CAAC;AACvD,eAAO,MAAM,iDAAiD,QAAU,CAAC;AACzE,eAAO,MAAM,yCAAyC,QAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"NotifySilentLiveSessionsUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifySilentLiveSessionsUseCase.ts"],"names":[],"mappings":"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"}
|