github-issue-tower-defence-management 1.122.4 → 1.122.5
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/README.md +5 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +14 -2
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/adapter/entry-points/handlers/notifySilentTmuxSessions.js +3 -1
- package/bin/adapter/entry-points/handlers/notifySilentTmuxSessions.js.map +1 -1
- package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js +6 -0
- package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js.map +1 -1
- package/bin/adapter/repositories/NoUnansweredOwnerCallStatusProvider.js +2 -2
- package/bin/adapter/repositories/NoUnansweredOwnerCallStatusProvider.js.map +1 -1
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js +14 -11
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js.map +1 -1
- package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js +13 -0
- package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js.map +1 -1
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js +15 -5
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +11 -0
- package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.test.ts +46 -7
- package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.ts +5 -0
- package/src/adapter/repositories/ConfigurableSilentSessionMessageComposer.test.ts +42 -0
- package/src/adapter/repositories/ConfigurableSilentSessionMessageComposer.ts +16 -0
- package/src/adapter/repositories/FileSystemInteractiveLiveSessionTranscriptResolver.test.ts +1 -1
- package/src/adapter/repositories/NoUnansweredOwnerCallStatusProvider.test.ts +7 -6
- package/src/adapter/repositories/NoUnansweredOwnerCallStatusProvider.ts +3 -3
- package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.test.ts +99 -49
- package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.ts +24 -14
- package/src/domain/entities/LiveSessionActivitySnapshot.ts +1 -1
- package/src/domain/usecases/DefaultSilentSessionMessageComposer.test.ts +75 -0
- package/src/domain/usecases/DefaultSilentSessionMessageComposer.ts +26 -0
- package/src/domain/usecases/NotifySilentLiveSessionsUseCase.test.ts +106 -10
- package/src/domain/usecases/NotifySilentLiveSessionsUseCase.ts +24 -6
- package/src/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.ts +2 -2
- package/src/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.ts +4 -0
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/notifySilentTmuxSessions.d.ts +2 -0
- package/types/adapter/entry-points/handlers/notifySilentTmuxSessions.d.ts.map +1 -1
- package/types/adapter/repositories/ConfigurableSilentSessionMessageComposer.d.ts +2 -0
- package/types/adapter/repositories/ConfigurableSilentSessionMessageComposer.d.ts.map +1 -1
- package/types/adapter/repositories/NoUnansweredOwnerCallStatusProvider.d.ts +1 -1
- package/types/adapter/repositories/NoUnansweredOwnerCallStatusProvider.d.ts.map +1 -1
- package/types/adapter/repositories/TranscriptOwnerCallStatusProvider.d.ts +2 -2
- package/types/adapter/repositories/TranscriptOwnerCallStatusProvider.d.ts.map +1 -1
- package/types/domain/entities/LiveSessionActivitySnapshot.d.ts +1 -1
- package/types/domain/entities/LiveSessionActivitySnapshot.d.ts.map +1 -1
- package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts +1 -0
- package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts.map +1 -1
- package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts +2 -0
- package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.d.ts +1 -1
- package/types/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.d.ts +1 -0
- package/types/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifySilentLiveSessionsUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifySilentLiveSessionsUseCase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NotifySilentLiveSessionsUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifySilentLiveSessionsUseCase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -115,6 +115,7 @@ export class HandleScheduledEventUseCaseHandler {
|
|
|
115
115
|
subAgentProcessMatchPattern?: string;
|
|
116
116
|
subAgentTranscriptRootDirectory?: string;
|
|
117
117
|
mainSilentThresholdSeconds?: number;
|
|
118
|
+
unansweredOwnerCallGraceSeconds?: number;
|
|
118
119
|
subAgentSilentThresholdSeconds?: number;
|
|
119
120
|
subAgentRunningThresholdSeconds?: number;
|
|
120
121
|
silentNotificationStaggerSeconds?: number;
|
|
@@ -124,6 +125,7 @@ export class HandleScheduledEventUseCaseHandler {
|
|
|
124
125
|
hubTaskStatusCacheStateFilePath?: string;
|
|
125
126
|
hubTaskStatusCacheTtlSeconds?: number;
|
|
126
127
|
silentMainStalledMessage?: string;
|
|
128
|
+
silentMainStalledStaleOwnerCallMessage?: string;
|
|
127
129
|
silentSubAgentIdleMessageHeader?: string;
|
|
128
130
|
silentSubAgentIdleMessageFooter?: string;
|
|
129
131
|
silentSubAgentLongRunningMessageHeader?: string;
|
|
@@ -599,6 +601,11 @@ export class HandleScheduledEventUseCaseHandler {
|
|
|
599
601
|
process.env.TDPM_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
600
602
|
DEFAULT_NOTIFY_SILENT_TMUX_SESSIONS_PARAMS.mainSilentThresholdSeconds,
|
|
601
603
|
),
|
|
604
|
+
unansweredOwnerCallGraceSeconds: readSilentSeconds(
|
|
605
|
+
mergedInput.unansweredOwnerCallGraceSeconds,
|
|
606
|
+
process.env.TDPM_SILENT_UNANSWERED_OWNER_CALL_GRACE_SECONDS,
|
|
607
|
+
DEFAULT_NOTIFY_SILENT_TMUX_SESSIONS_PARAMS.unansweredOwnerCallGraceSeconds,
|
|
608
|
+
),
|
|
602
609
|
subAgentSilentThresholdSeconds: readSilentSeconds(
|
|
603
610
|
mergedInput.subAgentSilentThresholdSeconds,
|
|
604
611
|
process.env.TDPM_SUBAGENT_SILENT_THRESHOLD_SECONDS,
|
|
@@ -642,6 +649,10 @@ export class HandleScheduledEventUseCaseHandler {
|
|
|
642
649
|
mergedInput.silentMainStalledMessage ??
|
|
643
650
|
process.env.TDPM_SILENT_MAIN_STALLED_MESSAGE ??
|
|
644
651
|
null,
|
|
652
|
+
mainStalledStaleOwnerCallMessage:
|
|
653
|
+
mergedInput.silentMainStalledStaleOwnerCallMessage ??
|
|
654
|
+
process.env.TDPM_SILENT_MAIN_STALLED_STALE_OWNER_CALL_MESSAGE ??
|
|
655
|
+
null,
|
|
645
656
|
subAgentIdleMessageHeader:
|
|
646
657
|
mergedInput.silentSubAgentIdleMessageHeader ??
|
|
647
658
|
process.env.TDPM_SILENT_SUBAGENT_IDLE_MESSAGE_HEADER ??
|
|
@@ -20,6 +20,7 @@ const CLAUDE_PID = 201;
|
|
|
20
20
|
|
|
21
21
|
const EMPTY_TEMPLATES: SilentSessionMessageTemplates = {
|
|
22
22
|
mainStalledMessage: null,
|
|
23
|
+
mainStalledStaleOwnerCallMessage: null,
|
|
23
24
|
subAgentIdleMessageHeader: null,
|
|
24
25
|
subAgentIdleMessageFooter: null,
|
|
25
26
|
subAgentLongRunningMessageHeader: null,
|
|
@@ -221,11 +222,8 @@ describe('notifySilentTmuxSessions', () => {
|
|
|
221
222
|
await notifySilentTmuxSessions({
|
|
222
223
|
...baseParams(runner),
|
|
223
224
|
messageTemplates: {
|
|
225
|
+
...EMPTY_TEMPLATES,
|
|
224
226
|
mainStalledMessage: 'CUSTOM_MAIN_TEMPLATE',
|
|
225
|
-
subAgentIdleMessageHeader: null,
|
|
226
|
-
subAgentIdleMessageFooter: null,
|
|
227
|
-
subAgentLongRunningMessageHeader: null,
|
|
228
|
-
subAgentLongRunningMessageFooter: null,
|
|
229
227
|
},
|
|
230
228
|
});
|
|
231
229
|
|
|
@@ -240,8 +238,8 @@ describe('notifySilentTmuxSessions', () => {
|
|
|
240
238
|
);
|
|
241
239
|
});
|
|
242
240
|
|
|
243
|
-
it('suppresses the notification
|
|
244
|
-
const
|
|
241
|
+
it('suppresses the notification while the unanswered owner call is younger than the grace period', async () => {
|
|
242
|
+
const recentPendingOwnerCall = new Date(
|
|
245
243
|
(NOW_EPOCH_SECONDS - 11 * 60) * 1000,
|
|
246
244
|
).toISOString();
|
|
247
245
|
writeTranscript([
|
|
@@ -252,7 +250,7 @@ describe('notifySilentTmuxSessions', () => {
|
|
|
252
250
|
},
|
|
253
251
|
{
|
|
254
252
|
type: 'assistant',
|
|
255
|
-
timestamp:
|
|
253
|
+
timestamp: recentPendingOwnerCall,
|
|
256
254
|
message: {
|
|
257
255
|
role: 'assistant',
|
|
258
256
|
stop_reason: 'end_turn',
|
|
@@ -262,6 +260,7 @@ describe('notifySilentTmuxSessions', () => {
|
|
|
262
260
|
},
|
|
263
261
|
},
|
|
264
262
|
]);
|
|
263
|
+
seedPreviousCandidates([SESSION_NAME]);
|
|
265
264
|
const runner = liveSessionRunner();
|
|
266
265
|
|
|
267
266
|
await notifySilentTmuxSessions({
|
|
@@ -275,6 +274,46 @@ describe('notifySilentTmuxSessions', () => {
|
|
|
275
274
|
expect(sendCall).toBeUndefined();
|
|
276
275
|
});
|
|
277
276
|
|
|
277
|
+
it('sends the stale-owner-call reminder once the unanswered owner call is older than the grace period', async () => {
|
|
278
|
+
const stalePendingOwnerCall = new Date(
|
|
279
|
+
(NOW_EPOCH_SECONDS - 2 * 60 * 60) * 1000,
|
|
280
|
+
).toISOString();
|
|
281
|
+
writeTranscript([
|
|
282
|
+
{
|
|
283
|
+
type: 'user',
|
|
284
|
+
timestamp: '2026-06-25T20:00:00.000Z',
|
|
285
|
+
message: { role: 'user', content: 'go ahead' },
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
type: 'assistant',
|
|
289
|
+
timestamp: stalePendingOwnerCall,
|
|
290
|
+
message: {
|
|
291
|
+
role: 'assistant',
|
|
292
|
+
stop_reason: 'end_turn',
|
|
293
|
+
content: [
|
|
294
|
+
{ type: 'text', text: 'waiting <<OWNER_CALL>> please decide' },
|
|
295
|
+
],
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
]);
|
|
299
|
+
seedPreviousCandidates([SESSION_NAME]);
|
|
300
|
+
const runner = liveSessionRunner();
|
|
301
|
+
|
|
302
|
+
await notifySilentTmuxSessions({
|
|
303
|
+
...baseParams(runner),
|
|
304
|
+
ownerCallMarker: '<<OWNER_CALL>>',
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
const sendCall = runner.runCommand.mock.calls.find(
|
|
308
|
+
(call) => call[0] === 'tmux' && call[1][0] === 'send-keys',
|
|
309
|
+
);
|
|
310
|
+
expect(sendCall?.[1][2]).toBe(SESSION_NAME);
|
|
311
|
+
expect(sendCall?.[1][4]).toContain('is still unanswered');
|
|
312
|
+
expect(sendCall?.[1][4]).toContain(
|
|
313
|
+
're-raise your pending ask NOW as a fresh owner call',
|
|
314
|
+
);
|
|
315
|
+
});
|
|
316
|
+
|
|
278
317
|
it('defers the first cycle then notifies on the next cycle once the persisted candidate state confirms a second consecutive cycle', async () => {
|
|
279
318
|
silentAssistantTranscript();
|
|
280
319
|
const firstRunner = liveSessionRunner();
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
NotifySilentLiveSessionsUseCase,
|
|
7
7
|
HubTaskStatusResolver,
|
|
8
8
|
DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
9
|
+
DEFAULT_UNANSWERED_OWNER_CALL_GRACE_SECONDS,
|
|
9
10
|
DEFAULT_SUBAGENT_SILENT_THRESHOLD_SECONDS,
|
|
10
11
|
DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS,
|
|
11
12
|
DEFAULT_NOTIFICATION_STAGGER_SECONDS,
|
|
@@ -42,6 +43,7 @@ export type NotifySilentTmuxSessionsParams = {
|
|
|
42
43
|
subAgentProcessMatchPattern: string | null;
|
|
43
44
|
subAgentTranscriptRootDirectory: string | null;
|
|
44
45
|
mainSilentThresholdSeconds: number;
|
|
46
|
+
unansweredOwnerCallGraceSeconds: number;
|
|
45
47
|
subAgentSilentThresholdSeconds: number;
|
|
46
48
|
subAgentRunningThresholdSeconds: number;
|
|
47
49
|
staggerSeconds: number;
|
|
@@ -102,6 +104,7 @@ export const notifySilentTmuxSessions = async (
|
|
|
102
104
|
subAgentProcessMatchPattern,
|
|
103
105
|
subAgentTranscriptRootDirectory,
|
|
104
106
|
mainSilentThresholdSeconds,
|
|
107
|
+
unansweredOwnerCallGraceSeconds,
|
|
105
108
|
subAgentSilentThresholdSeconds,
|
|
106
109
|
subAgentRunningThresholdSeconds,
|
|
107
110
|
staggerSeconds,
|
|
@@ -157,6 +160,7 @@ export const notifySilentTmuxSessions = async (
|
|
|
157
160
|
);
|
|
158
161
|
await useCase.run({
|
|
159
162
|
mainSilentThresholdSeconds,
|
|
163
|
+
unansweredOwnerCallGraceSeconds,
|
|
160
164
|
subAgentSilentThresholdSeconds,
|
|
161
165
|
subAgentRunningThresholdSeconds,
|
|
162
166
|
staggerSeconds,
|
|
@@ -169,6 +173,7 @@ export const notifySilentTmuxSessions = async (
|
|
|
169
173
|
|
|
170
174
|
export const DEFAULT_NOTIFY_SILENT_TMUX_SESSIONS_PARAMS = {
|
|
171
175
|
mainSilentThresholdSeconds: DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS,
|
|
176
|
+
unansweredOwnerCallGraceSeconds: DEFAULT_UNANSWERED_OWNER_CALL_GRACE_SECONDS,
|
|
172
177
|
subAgentSilentThresholdSeconds: DEFAULT_SUBAGENT_SILENT_THRESHOLD_SECONDS,
|
|
173
178
|
subAgentRunningThresholdSeconds: DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS,
|
|
174
179
|
staggerSeconds: DEFAULT_NOTIFICATION_STAGGER_SECONDS,
|
|
@@ -6,11 +6,15 @@ type Mocked<T> = jest.Mocked<T> & jest.MockedObject<T>;
|
|
|
6
6
|
|
|
7
7
|
const createFallback = (): Mocked<SilentSessionMessageComposer> => ({
|
|
8
8
|
composeMainStalledSection: jest.fn().mockReturnValue('FALLBACK_MAIN'),
|
|
9
|
+
composeMainStalledWithStaleOwnerCallSection: jest
|
|
10
|
+
.fn()
|
|
11
|
+
.mockReturnValue('FALLBACK_STALE_OWNER_CALL'),
|
|
9
12
|
composeSubAgentSection: jest.fn().mockReturnValue('FALLBACK_SUB'),
|
|
10
13
|
});
|
|
11
14
|
|
|
12
15
|
const noTemplates = {
|
|
13
16
|
mainStalledMessage: null,
|
|
17
|
+
mainStalledStaleOwnerCallMessage: null,
|
|
14
18
|
subAgentIdleMessageHeader: null,
|
|
15
19
|
subAgentIdleMessageFooter: null,
|
|
16
20
|
subAgentLongRunningMessageHeader: null,
|
|
@@ -67,6 +71,44 @@ describe('ConfigurableSilentSessionMessageComposer', () => {
|
|
|
67
71
|
);
|
|
68
72
|
});
|
|
69
73
|
|
|
74
|
+
it('uses the fallback stale-owner-call section when no stale-owner-call template is configured', () => {
|
|
75
|
+
const fallback = createFallback();
|
|
76
|
+
const composer = new ConfigurableSilentSessionMessageComposer(
|
|
77
|
+
noTemplates,
|
|
78
|
+
fallback,
|
|
79
|
+
);
|
|
80
|
+
expect(
|
|
81
|
+
composer.composeMainStalledWithStaleOwnerCallSection(600, 3600),
|
|
82
|
+
).toBe('FALLBACK_STALE_OWNER_CALL');
|
|
83
|
+
expect(
|
|
84
|
+
fallback.composeMainStalledWithStaleOwnerCallSection,
|
|
85
|
+
).toHaveBeenCalledWith(600, 3600);
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('uses the configured stale-owner-call template when provided', () => {
|
|
89
|
+
const fallback = createFallback();
|
|
90
|
+
const composer = new ConfigurableSilentSessionMessageComposer(
|
|
91
|
+
{
|
|
92
|
+
...noTemplates,
|
|
93
|
+
mainStalledStaleOwnerCallMessage: 'CUSTOM_STALE_OWNER_CALL',
|
|
94
|
+
},
|
|
95
|
+
fallback,
|
|
96
|
+
'<<OWNER_CALL>>',
|
|
97
|
+
);
|
|
98
|
+
const section = composer.composeMainStalledWithStaleOwnerCallSection(
|
|
99
|
+
600,
|
|
100
|
+
3600,
|
|
101
|
+
);
|
|
102
|
+
expect(section).toContain('CUSTOM_STALE_OWNER_CALL');
|
|
103
|
+
expect(section).toContain(SILENT_SESSION_REMINDER_SENTINEL);
|
|
104
|
+
expect(section).toContain(
|
|
105
|
+
'the configured owner-call marker tag "<<OWNER_CALL>>" as a complete matching pair',
|
|
106
|
+
);
|
|
107
|
+
expect(
|
|
108
|
+
fallback.composeMainStalledWithStaleOwnerCallSection,
|
|
109
|
+
).not.toHaveBeenCalled();
|
|
110
|
+
});
|
|
111
|
+
|
|
70
112
|
it('uses the fallback sub-agent section when no sub-agent template is configured', () => {
|
|
71
113
|
const fallback = createFallback();
|
|
72
114
|
const composer = new ConfigurableSilentSessionMessageComposer(
|
|
@@ -13,6 +13,7 @@ const withReminderSentinel = (message: string): string =>
|
|
|
13
13
|
|
|
14
14
|
export type SilentSessionMessageTemplates = {
|
|
15
15
|
mainStalledMessage: string | null;
|
|
16
|
+
mainStalledStaleOwnerCallMessage: string | null;
|
|
16
17
|
subAgentIdleMessageHeader: string | null;
|
|
17
18
|
subAgentIdleMessageFooter: string | null;
|
|
18
19
|
subAgentLongRunningMessageHeader: string | null;
|
|
@@ -40,6 +41,21 @@ export class ConfigurableSilentSessionMessageComposer implements SilentSessionMe
|
|
|
40
41
|
);
|
|
41
42
|
};
|
|
42
43
|
|
|
44
|
+
composeMainStalledWithStaleOwnerCallSection = (
|
|
45
|
+
mainSilentSeconds: number,
|
|
46
|
+
unansweredOwnerCallAgeSeconds: number,
|
|
47
|
+
): string => {
|
|
48
|
+
if (this.templates.mainStalledStaleOwnerCallMessage === null) {
|
|
49
|
+
return this.fallback.composeMainStalledWithStaleOwnerCallSection(
|
|
50
|
+
mainSilentSeconds,
|
|
51
|
+
unansweredOwnerCallAgeSeconds,
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
return withReminderSentinel(
|
|
55
|
+
`${this.templates.mainStalledStaleOwnerCallMessage} ${composeOwnerCallFormatGuidance(this.ownerCallMarker)}`,
|
|
56
|
+
);
|
|
57
|
+
};
|
|
58
|
+
|
|
43
59
|
composeSubAgentSection = (stallSections: SubAgentStallSections): string => {
|
|
44
60
|
const hasIdleTemplate =
|
|
45
61
|
this.templates.subAgentIdleMessageHeader !== null ||
|
|
@@ -506,7 +506,7 @@ describe('parent transcript resolution feeding owner-call detection', () => {
|
|
|
506
506
|
]);
|
|
507
507
|
|
|
508
508
|
return ownerCallStatusProvider
|
|
509
|
-
.
|
|
509
|
+
.listUnansweredOwnerCallEpochSecondsBySessionName(transcriptPaths)
|
|
510
510
|
.then((waiting) => {
|
|
511
511
|
expect(waiting.has('waiting')).toBe(true);
|
|
512
512
|
});
|
|
@@ -3,12 +3,13 @@ import { NoUnansweredOwnerCallStatusProvider } from './NoUnansweredOwnerCallStat
|
|
|
3
3
|
describe('NoUnansweredOwnerCallStatusProvider', () => {
|
|
4
4
|
it('always reports no session as having an unanswered owner call', async () => {
|
|
5
5
|
const provider = new NoUnansweredOwnerCallStatusProvider();
|
|
6
|
-
const result =
|
|
7
|
-
|
|
8
|
-
[
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
const result =
|
|
7
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
8
|
+
new Map([
|
|
9
|
+
['session-a', '/transcripts/a.jsonl'],
|
|
10
|
+
['session-b', '/transcripts/b.jsonl'],
|
|
11
|
+
]),
|
|
12
|
+
);
|
|
12
13
|
expect(result.size).toBe(0);
|
|
13
14
|
});
|
|
14
15
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { OwnerCallStatusProvider } from '../../domain/usecases/adapter-interfaces/OwnerCallStatusProvider';
|
|
2
2
|
|
|
3
3
|
export class NoUnansweredOwnerCallStatusProvider implements OwnerCallStatusProvider {
|
|
4
|
-
|
|
4
|
+
listUnansweredOwnerCallEpochSecondsBySessionName = (
|
|
5
5
|
_transcriptPathBySessionName: Map<string, string>,
|
|
6
|
-
): Promise<
|
|
7
|
-
return Promise.resolve(new
|
|
6
|
+
): Promise<Map<string, number>> => {
|
|
7
|
+
return Promise.resolve(new Map<string, number>());
|
|
8
8
|
};
|
|
9
9
|
}
|
|
@@ -129,13 +129,48 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
129
129
|
]);
|
|
130
130
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
131
131
|
|
|
132
|
-
const result =
|
|
133
|
-
|
|
134
|
-
|
|
132
|
+
const result =
|
|
133
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
134
|
+
new Map([[sessionName, transcriptPath]]),
|
|
135
|
+
);
|
|
135
136
|
|
|
136
137
|
expect(result.has(sessionName)).toBe(true);
|
|
137
138
|
});
|
|
138
139
|
|
|
140
|
+
it('exposes the epoch seconds of the unanswered owner call so its age can be computed', async () => {
|
|
141
|
+
const transcriptPath = writeTranscript('workbench.jsonl', [
|
|
142
|
+
ownerReply('2026-06-27T10:00:00.000Z'),
|
|
143
|
+
assistantWithMarker('2026-06-27T10:05:00.000Z'),
|
|
144
|
+
]);
|
|
145
|
+
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
146
|
+
|
|
147
|
+
const result =
|
|
148
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
149
|
+
new Map([[sessionName, transcriptPath]]),
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
expect(result.get(sessionName)).toBe(
|
|
153
|
+
Math.floor(Date.parse('2026-06-27T10:05:00.000Z') / 1000),
|
|
154
|
+
);
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
it('exposes the epoch seconds of the latest owner call when several calls are unanswered', async () => {
|
|
158
|
+
const transcriptPath = writeTranscript('workbench.jsonl', [
|
|
159
|
+
assistantWithMarker('2026-06-27T09:00:00.000Z'),
|
|
160
|
+
assistantWithMarker('2026-06-27T10:05:00.000Z'),
|
|
161
|
+
]);
|
|
162
|
+
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
163
|
+
|
|
164
|
+
const result =
|
|
165
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
166
|
+
new Map([[sessionName, transcriptPath]]),
|
|
167
|
+
);
|
|
168
|
+
|
|
169
|
+
expect(result.get(sessionName)).toBe(
|
|
170
|
+
Math.floor(Date.parse('2026-06-27T10:05:00.000Z') / 1000),
|
|
171
|
+
);
|
|
172
|
+
});
|
|
173
|
+
|
|
139
174
|
it('does not report a session as waiting when a later owner reply followed the call', async () => {
|
|
140
175
|
const transcriptPath = writeTranscript('workbench.jsonl', [
|
|
141
176
|
assistantWithMarker('2026-06-27T10:00:00.000Z'),
|
|
@@ -143,9 +178,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
143
178
|
]);
|
|
144
179
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
145
180
|
|
|
146
|
-
const result =
|
|
147
|
-
|
|
148
|
-
|
|
181
|
+
const result =
|
|
182
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
183
|
+
new Map([[sessionName, transcriptPath]]),
|
|
184
|
+
);
|
|
149
185
|
|
|
150
186
|
expect(result.has(sessionName)).toBe(false);
|
|
151
187
|
});
|
|
@@ -157,9 +193,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
157
193
|
]);
|
|
158
194
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
159
195
|
|
|
160
|
-
const result =
|
|
161
|
-
|
|
162
|
-
|
|
196
|
+
const result =
|
|
197
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
198
|
+
new Map([[sessionName, transcriptPath]]),
|
|
199
|
+
);
|
|
163
200
|
|
|
164
201
|
expect(result.has(sessionName)).toBe(false);
|
|
165
202
|
});
|
|
@@ -171,9 +208,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
171
208
|
]);
|
|
172
209
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
173
210
|
|
|
174
|
-
const result =
|
|
175
|
-
|
|
176
|
-
|
|
211
|
+
const result =
|
|
212
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
213
|
+
new Map([[sessionName, transcriptPath]]),
|
|
214
|
+
);
|
|
177
215
|
|
|
178
216
|
expect(result.has(sessionName)).toBe(true);
|
|
179
217
|
});
|
|
@@ -185,9 +223,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
185
223
|
]);
|
|
186
224
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
187
225
|
|
|
188
|
-
const result =
|
|
189
|
-
|
|
190
|
-
|
|
226
|
+
const result =
|
|
227
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
228
|
+
new Map([[sessionName, transcriptPath]]),
|
|
229
|
+
);
|
|
191
230
|
|
|
192
231
|
expect(result.has(sessionName)).toBe(true);
|
|
193
232
|
});
|
|
@@ -199,9 +238,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
199
238
|
]);
|
|
200
239
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
201
240
|
|
|
202
|
-
const result =
|
|
203
|
-
|
|
204
|
-
|
|
241
|
+
const result =
|
|
242
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
243
|
+
new Map([[sessionName, transcriptPath]]),
|
|
244
|
+
);
|
|
205
245
|
|
|
206
246
|
expect(result.has(sessionName)).toBe(true);
|
|
207
247
|
});
|
|
@@ -214,9 +254,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
214
254
|
]);
|
|
215
255
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
216
256
|
|
|
217
|
-
const result =
|
|
218
|
-
|
|
219
|
-
|
|
257
|
+
const result =
|
|
258
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
259
|
+
new Map([[sessionName, transcriptPath]]),
|
|
260
|
+
);
|
|
220
261
|
|
|
221
262
|
expect(result.has(sessionName)).toBe(false);
|
|
222
263
|
});
|
|
@@ -228,9 +269,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
228
269
|
]);
|
|
229
270
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
230
271
|
|
|
231
|
-
const result =
|
|
232
|
-
|
|
233
|
-
|
|
272
|
+
const result =
|
|
273
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
274
|
+
new Map([[sessionName, transcriptPath]]),
|
|
275
|
+
);
|
|
234
276
|
|
|
235
277
|
expect(result.has(sessionName)).toBe(true);
|
|
236
278
|
});
|
|
@@ -242,9 +284,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
242
284
|
]);
|
|
243
285
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
244
286
|
|
|
245
|
-
const result =
|
|
246
|
-
|
|
247
|
-
|
|
287
|
+
const result =
|
|
288
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
289
|
+
new Map([[sessionName, transcriptPath]]),
|
|
290
|
+
);
|
|
248
291
|
|
|
249
292
|
expect(result.has(sessionName)).toBe(true);
|
|
250
293
|
});
|
|
@@ -256,9 +299,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
256
299
|
]);
|
|
257
300
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
258
301
|
|
|
259
|
-
const result =
|
|
260
|
-
|
|
261
|
-
|
|
302
|
+
const result =
|
|
303
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
304
|
+
new Map([[sessionName, transcriptPath]]),
|
|
305
|
+
);
|
|
262
306
|
|
|
263
307
|
expect(result.has(sessionName)).toBe(false);
|
|
264
308
|
});
|
|
@@ -271,9 +315,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
271
315
|
]);
|
|
272
316
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
273
317
|
|
|
274
|
-
const result =
|
|
275
|
-
|
|
276
|
-
|
|
318
|
+
const result =
|
|
319
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
320
|
+
new Map([[sessionName, transcriptPath]]),
|
|
321
|
+
);
|
|
277
322
|
|
|
278
323
|
expect(result.has(sessionName)).toBe(false);
|
|
279
324
|
});
|
|
@@ -285,23 +330,25 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
285
330
|
]);
|
|
286
331
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
287
332
|
|
|
288
|
-
const result =
|
|
289
|
-
|
|
290
|
-
|
|
333
|
+
const result =
|
|
334
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
335
|
+
new Map([[sessionName, transcriptPath]]),
|
|
336
|
+
);
|
|
291
337
|
|
|
292
338
|
expect(result.has(sessionName)).toBe(false);
|
|
293
339
|
});
|
|
294
340
|
|
|
295
|
-
it('returns an empty
|
|
341
|
+
it('returns an empty map when the marker is null', async () => {
|
|
296
342
|
const transcriptPath = writeTranscript('workbench.jsonl', [
|
|
297
343
|
ownerReply('2026-06-27T10:00:00.000Z'),
|
|
298
344
|
assistantWithMarker('2026-06-27T10:05:00.000Z'),
|
|
299
345
|
]);
|
|
300
346
|
const provider = new TranscriptOwnerCallStatusProvider(null);
|
|
301
347
|
|
|
302
|
-
const result =
|
|
303
|
-
|
|
304
|
-
|
|
348
|
+
const result =
|
|
349
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
350
|
+
new Map([[sessionName, transcriptPath]]),
|
|
351
|
+
);
|
|
305
352
|
|
|
306
353
|
expect(result.size).toBe(0);
|
|
307
354
|
});
|
|
@@ -309,9 +356,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
309
356
|
it('ignores a session whose transcript file is missing', async () => {
|
|
310
357
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
311
358
|
|
|
312
|
-
const result =
|
|
313
|
-
|
|
314
|
-
|
|
359
|
+
const result =
|
|
360
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
361
|
+
new Map([[sessionName, path.join(rootDirectory, 'missing.jsonl')]]),
|
|
362
|
+
);
|
|
315
363
|
|
|
316
364
|
expect(result.size).toBe(0);
|
|
317
365
|
});
|
|
@@ -328,9 +376,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
328
376
|
);
|
|
329
377
|
const provider = new TranscriptOwnerCallStatusProvider('<<OWNER_CALL>>');
|
|
330
378
|
|
|
331
|
-
const result =
|
|
332
|
-
|
|
333
|
-
|
|
379
|
+
const result =
|
|
380
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
381
|
+
new Map([[sessionName, filePath]]),
|
|
382
|
+
);
|
|
334
383
|
|
|
335
384
|
expect(result.has(sessionName)).toBe(true);
|
|
336
385
|
});
|
|
@@ -348,9 +397,10 @@ describe('TranscriptOwnerCallStatusProvider', () => {
|
|
|
348
397
|
]);
|
|
349
398
|
const provider = new TranscriptOwnerCallStatusProvider('<call-to-user>');
|
|
350
399
|
|
|
351
|
-
const result =
|
|
352
|
-
|
|
353
|
-
|
|
400
|
+
const result =
|
|
401
|
+
await provider.listUnansweredOwnerCallEpochSecondsBySessionName(
|
|
402
|
+
new Map([[sessionName, transcriptPath]]),
|
|
403
|
+
);
|
|
354
404
|
|
|
355
405
|
expect(result.has(sessionName)).toBe(true);
|
|
356
406
|
});
|