github-issue-tower-defence-management 1.110.0 → 1.111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +8 -7
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +9 -21
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/adapter/entry-points/handlers/notifySilentTmuxSessions.js +10 -15
- package/bin/adapter/entry-points/handlers/notifySilentTmuxSessions.js.map +1 -1
- package/bin/adapter/proxy/RateLimitCache.js +8 -0
- package/bin/adapter/proxy/RateLimitCache.js.map +1 -1
- package/bin/adapter/repositories/FileSystemInteractiveLiveSessionTranscriptResolver.js +104 -0
- package/bin/adapter/repositories/FileSystemInteractiveLiveSessionTranscriptResolver.js.map +1 -0
- package/bin/adapter/repositories/FileSystemSessionOutputActivityRepository.js +55 -19
- package/bin/adapter/repositories/FileSystemSessionOutputActivityRepository.js.map +1 -1
- package/bin/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.js +75 -0
- package/bin/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.js.map +1 -0
- package/bin/adapter/repositories/NoUnansweredOwnerCallStatusProvider.js +1 -1
- package/bin/adapter/repositories/NoUnansweredOwnerCallStatusProvider.js.map +1 -1
- package/bin/adapter/repositories/ProcFsProcessEnvironReader.js +73 -0
- package/bin/adapter/repositories/ProcFsProcessEnvironReader.js.map +1 -0
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js +8 -16
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js.map +1 -1
- package/bin/domain/entities/InteractiveLiveSession.js +3 -0
- package/bin/domain/entities/InteractiveLiveSession.js.map +1 -0
- package/bin/domain/entities/LiveSessionProcessSnapshot.js +3 -0
- package/bin/domain/entities/LiveSessionProcessSnapshot.js.map +1 -0
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js +20 -33
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js.map +1 -1
- package/bin/domain/usecases/ResolveInteractiveLiveSessionsUseCase.js +89 -0
- package/bin/domain/usecases/ResolveInteractiveLiveSessionsUseCase.js.map +1 -0
- package/bin/domain/usecases/adapter-interfaces/InteractiveLiveSessionTranscriptResolver.js +3 -0
- package/bin/domain/usecases/adapter-interfaces/InteractiveLiveSessionTranscriptResolver.js.map +1 -0
- package/bin/domain/usecases/adapter-interfaces/LiveSessionProcessSnapshotProvider.js +3 -0
- package/bin/domain/usecases/adapter-interfaces/LiveSessionProcessSnapshotProvider.js.map +1 -0
- package/bin/domain/usecases/adapter-interfaces/ProcessEnvironReader.js +3 -0
- package/bin/domain/usecases/adapter-interfaces/ProcessEnvironReader.js.map +1 -0
- package/package.json +1 -1
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +5 -15
- package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.test.ts +96 -204
- package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.ts +19 -40
- package/src/adapter/proxy/RateLimitCache.test.ts +63 -0
- package/src/adapter/proxy/RateLimitCache.ts +11 -0
- package/src/adapter/repositories/FileSystemInteractiveLiveSessionTranscriptResolver.test.ts +147 -0
- package/src/adapter/repositories/FileSystemInteractiveLiveSessionTranscriptResolver.ts +75 -0
- package/src/adapter/repositories/FileSystemSessionOutputActivityRepository.test.ts +82 -44
- package/src/adapter/repositories/FileSystemSessionOutputActivityRepository.ts +62 -24
- package/src/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.test.ts +138 -0
- package/src/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.ts +93 -0
- package/src/adapter/repositories/NoUnansweredOwnerCallStatusProvider.test.ts +6 -4
- package/src/adapter/repositories/NoUnansweredOwnerCallStatusProvider.ts +1 -1
- package/src/adapter/repositories/ProcFsProcessEnvironReader.test.ts +60 -0
- package/src/adapter/repositories/ProcFsProcessEnvironReader.ts +38 -0
- package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.test.ts +61 -81
- package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.ts +8 -25
- package/src/domain/entities/InteractiveLiveSession.ts +5 -0
- package/src/domain/entities/LiveSessionProcessSnapshot.ts +17 -0
- package/src/domain/usecases/NotifySilentLiveSessionsUseCase.test.ts +125 -349
- package/src/domain/usecases/NotifySilentLiveSessionsUseCase.ts +33 -55
- package/src/domain/usecases/ResolveInteractiveLiveSessionsUseCase.test.ts +220 -0
- package/src/domain/usecases/ResolveInteractiveLiveSessionsUseCase.ts +105 -0
- package/src/domain/usecases/adapter-interfaces/InteractiveLiveSessionTranscriptResolver.ts +7 -0
- package/src/domain/usecases/adapter-interfaces/LiveSessionProcessSnapshotProvider.ts +5 -0
- package/src/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.ts +1 -1
- package/src/domain/usecases/adapter-interfaces/ProcessEnvironReader.ts +3 -0
- package/src/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.ts +1 -1
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/notifySilentTmuxSessions.d.ts +3 -7
- package/types/adapter/entry-points/handlers/notifySilentTmuxSessions.d.ts.map +1 -1
- package/types/adapter/proxy/RateLimitCache.d.ts.map +1 -1
- package/types/adapter/repositories/FileSystemInteractiveLiveSessionTranscriptResolver.d.ts +18 -0
- package/types/adapter/repositories/FileSystemInteractiveLiveSessionTranscriptResolver.d.ts.map +1 -0
- package/types/adapter/repositories/FileSystemSessionOutputActivityRepository.d.ts +9 -5
- package/types/adapter/repositories/FileSystemSessionOutputActivityRepository.d.ts.map +1 -1
- package/types/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.d.ts +21 -0
- package/types/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.d.ts.map +1 -0
- package/types/adapter/repositories/NoUnansweredOwnerCallStatusProvider.d.ts +1 -1
- package/types/adapter/repositories/NoUnansweredOwnerCallStatusProvider.d.ts.map +1 -1
- package/types/adapter/repositories/ProcFsProcessEnvironReader.d.ts +12 -0
- package/types/adapter/repositories/ProcFsProcessEnvironReader.d.ts.map +1 -0
- package/types/adapter/repositories/TranscriptOwnerCallStatusProvider.d.ts +2 -4
- package/types/adapter/repositories/TranscriptOwnerCallStatusProvider.d.ts.map +1 -1
- package/types/domain/entities/InteractiveLiveSession.d.ts +6 -0
- package/types/domain/entities/InteractiveLiveSession.d.ts.map +1 -0
- package/types/domain/entities/LiveSessionProcessSnapshot.d.ts +16 -0
- package/types/domain/entities/LiveSessionProcessSnapshot.d.ts.map +1 -0
- package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts +6 -11
- package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts.map +1 -1
- package/types/domain/usecases/ResolveInteractiveLiveSessionsUseCase.d.ts +23 -0
- package/types/domain/usecases/ResolveInteractiveLiveSessionsUseCase.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/InteractiveLiveSessionTranscriptResolver.d.ts +5 -0
- package/types/domain/usecases/adapter-interfaces/InteractiveLiveSessionTranscriptResolver.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/LiveSessionProcessSnapshotProvider.d.ts +5 -0
- package/types/domain/usecases/adapter-interfaces/LiveSessionProcessSnapshotProvider.d.ts.map +1 -0
- 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/ProcessEnvironReader.d.ts +4 -0
- package/types/domain/usecases/adapter-interfaces/ProcessEnvironReader.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.d.ts +1 -1
- package/types/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoUnansweredOwnerCallStatusProvider.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NoUnansweredOwnerCallStatusProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kEAAkE,CAAC;AAE3G,qBAAa,mCAAoC,YAAW,uBAAuB;IACjF,uCAAuC,GACrC,
|
|
1
|
+
{"version":3,"file":"NoUnansweredOwnerCallStatusProvider.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NoUnansweredOwnerCallStatusProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kEAAkE,CAAC;AAE3G,qBAAa,mCAAoC,YAAW,uBAAuB;IACjF,uCAAuC,GACrC,8BAA8B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAChD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAErB;CACH"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ProcessEnvironReader } from '../../domain/usecases/adapter-interfaces/ProcessEnvironReader';
|
|
2
|
+
/**
|
|
3
|
+
* Reads a process environment from the Linux procfs (`/proc/<pid>/environ`),
|
|
4
|
+
* where entries are NUL-separated `KEY=value` pairs. Returns null when the
|
|
5
|
+
* environment cannot be read (the process has exited or is not accessible).
|
|
6
|
+
*/
|
|
7
|
+
export declare class ProcFsProcessEnvironReader implements ProcessEnvironReader {
|
|
8
|
+
private readonly procDirectory;
|
|
9
|
+
constructor(procDirectory?: string);
|
|
10
|
+
readEnviron: (pid: number) => Record<string, string> | null;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ProcFsProcessEnvironReader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcFsProcessEnvironReader.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcFsProcessEnvironReader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+DAA+D,CAAC;AAErG;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,oBAAoB;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,GAAE,MAAgB;IAE5D,WAAW,GAAI,KAAK,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAwBxD;CACH"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { OwnerCallStatusProvider } from '../../domain/usecases/adapter-interfaces/OwnerCallStatusProvider';
|
|
2
2
|
export declare class TranscriptOwnerCallStatusProvider implements OwnerCallStatusProvider {
|
|
3
|
-
private readonly rootDirectory;
|
|
4
3
|
private readonly ownerCallMarker;
|
|
5
|
-
constructor(
|
|
6
|
-
listSessionNamesWithUnansweredOwnerCall: (
|
|
4
|
+
constructor(ownerCallMarker: string | null);
|
|
5
|
+
listSessionNamesWithUnansweredOwnerCall: (transcriptPathBySessionName: Map<string, string>) => Promise<Set<string>>;
|
|
7
6
|
private isWaitingForOwnerReply;
|
|
8
|
-
private toTranscriptFileName;
|
|
9
7
|
}
|
|
10
8
|
//# sourceMappingURL=TranscriptOwnerCallStatusProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranscriptOwnerCallStatusProvider.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/TranscriptOwnerCallStatusProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TranscriptOwnerCallStatusProvider.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/TranscriptOwnerCallStatusProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kEAAkE,CAAC;AAkD3G,qBAAa,iCAAkC,YAAW,uBAAuB;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,MAAM,GAAG,IAAI;IAE3D,uCAAuC,GACrC,6BAA6B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAYrB;IAEF,OAAO,CAAC,sBAAsB,CAkD5B;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractiveLiveSession.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/InteractiveLiveSession.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type LiveSessionPaneProcess = {
|
|
2
|
+
sessionName: string;
|
|
3
|
+
panePids: number[];
|
|
4
|
+
};
|
|
5
|
+
export type LiveSessionProcessInfo = {
|
|
6
|
+
pid: number;
|
|
7
|
+
ppid: number;
|
|
8
|
+
commandLine: string;
|
|
9
|
+
sessionId: string | null;
|
|
10
|
+
configDir: string | null;
|
|
11
|
+
};
|
|
12
|
+
export type LiveSessionProcessSnapshot = {
|
|
13
|
+
sessions: LiveSessionPaneProcess[];
|
|
14
|
+
processes: LiveSessionProcessInfo[];
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=LiveSessionProcessSnapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveSessionProcessSnapshot.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/LiveSessionProcessSnapshot.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,SAAS,EAAE,sBAAsB,EAAE,CAAC;CACrC,CAAC"}
|
|
@@ -1,32 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { LiveSessionProcessSnapshotProvider } from './adapter-interfaces/LiveSessionProcessSnapshotProvider';
|
|
2
|
+
import { InteractiveLiveSessionTranscriptResolver } from './adapter-interfaces/InteractiveLiveSessionTranscriptResolver';
|
|
3
3
|
import { OwnerCallStatusProvider } from './adapter-interfaces/OwnerCallStatusProvider';
|
|
4
4
|
import { SessionOutputActivityRepository } from './adapter-interfaces/SessionOutputActivityRepository';
|
|
5
5
|
import { SessionSubAgentActivityRepository } from './adapter-interfaces/SessionSubAgentActivityRepository';
|
|
6
6
|
import { SilentSessionMessageComposer } from './adapter-interfaces/SilentSessionMessageComposer';
|
|
7
7
|
import { SilentSessionNotificationRepository } from './adapter-interfaces/SilentSessionNotificationRepository';
|
|
8
8
|
import { Sleeper } from './adapter-interfaces/Sleeper';
|
|
9
|
-
import { TmuxSessionRepository } from './adapter-interfaces/TmuxSessionRepository';
|
|
10
|
-
export declare const DEFAULT_MONITORED_STATUS = "In Tmux by human";
|
|
11
9
|
export declare const DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS: number;
|
|
12
10
|
export declare const DEFAULT_SUBAGENT_SILENT_THRESHOLD_SECONDS: number;
|
|
13
11
|
export declare const DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS: number;
|
|
14
12
|
export declare const DEFAULT_NOTIFICATION_COOLDOWN_SECONDS: number;
|
|
15
13
|
export declare const DEFAULT_NOTIFICATION_STAGGER_SECONDS = 25;
|
|
16
14
|
export declare class NotifySilentLiveSessionsUseCase {
|
|
17
|
-
private readonly
|
|
18
|
-
private readonly
|
|
15
|
+
private readonly liveSessionProcessSnapshotProvider;
|
|
16
|
+
private readonly interactiveLiveSessionTranscriptResolver;
|
|
19
17
|
private readonly sessionOutputActivityRepository;
|
|
20
18
|
private readonly subAgentActivityRepository;
|
|
21
19
|
private readonly ownerCallStatusProvider;
|
|
22
20
|
private readonly notificationRepository;
|
|
23
21
|
private readonly messageComposer;
|
|
24
22
|
private readonly sleeper;
|
|
25
|
-
|
|
23
|
+
private readonly resolveInteractiveLiveSessions;
|
|
24
|
+
constructor(liveSessionProcessSnapshotProvider: LiveSessionProcessSnapshotProvider, interactiveLiveSessionTranscriptResolver: InteractiveLiveSessionTranscriptResolver, sessionOutputActivityRepository: SessionOutputActivityRepository, subAgentActivityRepository: SessionSubAgentActivityRepository, ownerCallStatusProvider: OwnerCallStatusProvider, notificationRepository: SilentSessionNotificationRepository, messageComposer: SilentSessionMessageComposer, sleeper: Sleeper);
|
|
26
25
|
run: (params: {
|
|
27
|
-
project: Project;
|
|
28
|
-
allowCacheMinutes: number;
|
|
29
|
-
monitoredStatus: string;
|
|
30
26
|
mainSilentThresholdSeconds: number;
|
|
31
27
|
subAgentSilentThresholdSeconds: number;
|
|
32
28
|
subAgentRunningThresholdSeconds: number;
|
|
@@ -36,6 +32,5 @@ export declare class NotifySilentLiveSessionsUseCase {
|
|
|
36
32
|
}) => Promise<void>;
|
|
37
33
|
private collectSnapshots;
|
|
38
34
|
private composeMessage;
|
|
39
|
-
private selectMonitoredSessionNames;
|
|
40
35
|
}
|
|
41
36
|
//# sourceMappingURL=NotifySilentLiveSessionsUseCase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifySilentLiveSessionsUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifySilentLiveSessionsUseCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
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,+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,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGvD,eAAO,MAAM,qCAAqC,QAAU,CAAC;AAC7D,eAAO,MAAM,yCAAyC,QAAS,CAAC;AAChE,eAAO,MAAM,0CAA0C,QAAU,CAAC;AAClE,eAAO,MAAM,qCAAqC,QAAU,CAAC;AAC7D,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAOvD,qBAAa,+BAA+B;IAKxC,OAAO,CAAC,QAAQ,CAAC,kCAAkC;IACnD,OAAO,CAAC,QAAQ,CAAC,wCAAwC;IACzD,OAAO,CAAC,QAAQ,CAAC,+BAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CACD;gBAG3B,kCAAkC,EAAE,kCAAkC,EACtE,wCAAwC,EAAE,wCAAwC,EAClF,+BAA+B,EAAE,+BAA+B,EAChE,0BAA0B,EAAE,iCAAiC,EAC7D,uBAAuB,EAAE,uBAAuB,EAChD,sBAAsB,EAAE,mCAAmC,EAC3D,eAAe,EAAE,4BAA4B,EAC7C,OAAO,EAAE,OAAO;IAGnC,GAAG,GAAU,QAAQ;QACnB,0BAA0B,EAAE,MAAM,CAAC;QACnC,8BAA8B,EAAE,MAAM,CAAC;QACvC,+BAA+B,EAAE,MAAM,CAAC;QACxC,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,GAAG,EAAE,IAAI,CAAC;KACX,KAAG,OAAO,CAAC,IAAI,CAAC,CAmEf;IAEF,OAAO,CAAC,gBAAgB,CA8CtB;IAEF,OAAO,CAAC,cAAc,CAqCpB;CACH"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { InteractiveLiveSession } from '../entities/InteractiveLiveSession';
|
|
2
|
+
import { LiveSessionProcessSnapshot } from '../entities/LiveSessionProcessSnapshot';
|
|
3
|
+
export declare const OWNER_HANDOVER_COMMAND_MARKER = "Take ownership of";
|
|
4
|
+
/**
|
|
5
|
+
* Selects the interactive Claude Code sessions that are eligible for the silent
|
|
6
|
+
* self-check notification, independently of session naming or any GitHub issue
|
|
7
|
+
* linkage.
|
|
8
|
+
*
|
|
9
|
+
* Selection works purely from a process snapshot: for each live tmux session,
|
|
10
|
+
* the descendants of its pane processes are walked, and the first descendant
|
|
11
|
+
* that looks like an interactive Claude Code process (command line contains
|
|
12
|
+
* `claude`, does not contain the owner-handover marker, and exposes both a
|
|
13
|
+
* session id and a config directory in its environment) is taken as the
|
|
14
|
+
* session's interactive process. Because the walk is anchored on tmux panes,
|
|
15
|
+
* background owner-handover spawns, the preparation daemon, and monitor
|
|
16
|
+
* processes — none of which run inside an interactive tmux pane — are naturally
|
|
17
|
+
* excluded; the explicit owner-handover marker check is an additional guard.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ResolveInteractiveLiveSessionsUseCase {
|
|
20
|
+
resolve: (snapshot: LiveSessionProcessSnapshot) => InteractiveLiveSession[];
|
|
21
|
+
private findInteractiveProcess;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ResolveInteractiveLiveSessionsUseCase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResolveInteractiveLiveSessionsUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ResolveInteractiveLiveSessionsUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAEL,0BAA0B,EAC3B,MAAM,wCAAwC,CAAC;AAOhD,eAAO,MAAM,6BAA6B,sBAAsB,CAAC;AAejE;;;;;;;;;;;;;;GAcG;AACH,qBAAa,qCAAqC;IAChD,OAAO,GACL,UAAU,0BAA0B,KACnC,sBAAsB,EAAE,CA+BzB;IAEF,OAAO,CAAC,sBAAsB,CA0B5B;CACH"}
|
package/types/domain/usecases/adapter-interfaces/InteractiveLiveSessionTranscriptResolver.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { InteractiveLiveSession } from '../../entities/InteractiveLiveSession';
|
|
2
|
+
export interface InteractiveLiveSessionTranscriptResolver {
|
|
3
|
+
resolveTranscriptPaths: (sessions: InteractiveLiveSession[]) => Map<string, string>;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=InteractiveLiveSessionTranscriptResolver.d.ts.map
|
package/types/domain/usecases/adapter-interfaces/InteractiveLiveSessionTranscriptResolver.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractiveLiveSessionTranscriptResolver.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/InteractiveLiveSessionTranscriptResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,WAAW,wCAAwC;IACvD,sBAAsB,EAAE,CACtB,QAAQ,EAAE,sBAAsB,EAAE,KAC/B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { LiveSessionProcessSnapshot } from '../../entities/LiveSessionProcessSnapshot';
|
|
2
|
+
export interface LiveSessionProcessSnapshotProvider {
|
|
3
|
+
getSnapshot: () => Promise<LiveSessionProcessSnapshot>;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=LiveSessionProcessSnapshotProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveSessionProcessSnapshotProvider.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/LiveSessionProcessSnapshotProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAEvF,MAAM,WAAW,kCAAkC;IACjD,WAAW,EAAE,MAAM,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export interface OwnerCallStatusProvider {
|
|
2
|
-
listSessionNamesWithUnansweredOwnerCall: (
|
|
2
|
+
listSessionNamesWithUnansweredOwnerCall: (transcriptPathBySessionName: Map<string, string>) => Promise<Set<string>>;
|
|
3
3
|
}
|
|
4
4
|
//# sourceMappingURL=OwnerCallStatusProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwnerCallStatusProvider.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,uCAAuC,EAAE,CACvC,
|
|
1
|
+
{"version":3,"file":"OwnerCallStatusProvider.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,uCAAuC,EAAE,CACvC,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAC7C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessEnvironReader.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/ProcessEnvironReader.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC7D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LiveSessionOutputActivity } from '../../entities/LiveSessionOutputActivity';
|
|
2
2
|
export interface SessionOutputActivityRepository {
|
|
3
|
-
listSessionOutputActivities: (
|
|
3
|
+
listSessionOutputActivities: (transcriptPathBySessionName: Map<string, string>) => Promise<LiveSessionOutputActivity[]>;
|
|
4
4
|
}
|
|
5
5
|
//# sourceMappingURL=SessionOutputActivityRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionOutputActivityRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAErF,MAAM,WAAW,+BAA+B;IAC9C,2BAA2B,EAAE,CAC3B,
|
|
1
|
+
{"version":3,"file":"SessionOutputActivityRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAErF,MAAM,WAAW,+BAA+B;IAC9C,2BAA2B,EAAE,CAC3B,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAC7C,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAC;CAC3C"}
|