github-issue-tower-defence-management 2.44.0 → 2.45.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.
Files changed (96) hide show
  1. package/README.md +3 -25
  2. package/bin/adapter/entry-points/console/ui-dist/assets/index-B2jKAS4W.js +88 -0
  3. package/bin/adapter/entry-points/console/ui-dist/index.html +1 -1
  4. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +0 -52
  5. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
  6. package/bin/adapter/entry-points/handlers/notifySilentTmuxSessions.js +4 -49
  7. package/bin/adapter/entry-points/handlers/notifySilentTmuxSessions.js.map +1 -1
  8. package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js +1 -231
  9. package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js.map +1 -1
  10. package/package.json +1 -1
  11. package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
  12. package/types/adapter/entry-points/handlers/notifySilentTmuxSessions.d.ts +1 -29
  13. package/types/adapter/entry-points/handlers/notifySilentTmuxSessions.d.ts.map +1 -1
  14. package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts +0 -45
  15. package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts.map +1 -1
  16. package/bin/adapter/entry-points/console/ui-dist/assets/index-4vTDgjDI.js +0 -88
  17. package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js +0 -71
  18. package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js.map +0 -1
  19. package/bin/adapter/repositories/FileSystemSilentSessionCandidateStateRepository.js +0 -137
  20. package/bin/adapter/repositories/FileSystemSilentSessionCandidateStateRepository.js.map +0 -1
  21. package/bin/adapter/repositories/FileSystemSilentSessionHubTaskStatusCacheRepository.js +0 -126
  22. package/bin/adapter/repositories/FileSystemSilentSessionHubTaskStatusCacheRepository.js.map +0 -1
  23. package/bin/adapter/repositories/FileSystemSubAgentLivenessResolver.js +0 -81
  24. package/bin/adapter/repositories/FileSystemSubAgentLivenessResolver.js.map +0 -1
  25. package/bin/adapter/repositories/FileSystemSubAgentSilentSecondsResolver.js +0 -67
  26. package/bin/adapter/repositories/FileSystemSubAgentSilentSecondsResolver.js.map +0 -1
  27. package/bin/adapter/repositories/FileSystemSubAgentTranscriptDirectoryResolver.js +0 -57
  28. package/bin/adapter/repositories/FileSystemSubAgentTranscriptDirectoryResolver.js.map +0 -1
  29. package/bin/adapter/repositories/NodeSubAgentProcessLister.js +0 -37
  30. package/bin/adapter/repositories/NodeSubAgentProcessLister.js.map +0 -1
  31. package/bin/adapter/repositories/ProcessListSessionSubAgentActivityRepository.js +0 -50
  32. package/bin/adapter/repositories/ProcessListSessionSubAgentActivityRepository.js.map +0 -1
  33. package/bin/adapter/repositories/TranscriptSessionSubAgentActivityRepository.js +0 -382
  34. package/bin/adapter/repositories/TranscriptSessionSubAgentActivityRepository.js.map +0 -1
  35. package/bin/domain/entities/LiveSessionActivitySnapshot.js +0 -3
  36. package/bin/domain/entities/LiveSessionActivitySnapshot.js.map +0 -1
  37. package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js +0 -49
  38. package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js.map +0 -1
  39. package/bin/domain/usecases/adapter-interfaces/SessionSubAgentActivityRepository.js +0 -3
  40. package/bin/domain/usecases/adapter-interfaces/SessionSubAgentActivityRepository.js.map +0 -1
  41. package/bin/domain/usecases/adapter-interfaces/SilentSessionCandidateStateRepository.js +0 -3
  42. package/bin/domain/usecases/adapter-interfaces/SilentSessionCandidateStateRepository.js.map +0 -1
  43. package/bin/domain/usecases/adapter-interfaces/SilentSessionHubTaskStatusCacheRepository.js +0 -3
  44. package/bin/domain/usecases/adapter-interfaces/SilentSessionHubTaskStatusCacheRepository.js.map +0 -1
  45. package/bin/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.js +0 -3
  46. package/bin/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.js.map +0 -1
  47. package/bin/domain/usecases/adapter-interfaces/SubAgentLivenessResolver.js +0 -3
  48. package/bin/domain/usecases/adapter-interfaces/SubAgentLivenessResolver.js.map +0 -1
  49. package/bin/domain/usecases/adapter-interfaces/SubAgentProcessLister.js +0 -3
  50. package/bin/domain/usecases/adapter-interfaces/SubAgentProcessLister.js.map +0 -1
  51. package/bin/domain/usecases/adapter-interfaces/SubAgentSilentSecondsResolver.js +0 -3
  52. package/bin/domain/usecases/adapter-interfaces/SubAgentSilentSecondsResolver.js.map +0 -1
  53. package/bin/domain/usecases/adapter-interfaces/SubAgentTranscriptDirectoryResolver.js +0 -3
  54. package/bin/domain/usecases/adapter-interfaces/SubAgentTranscriptDirectoryResolver.js.map +0 -1
  55. package/bin/domain/usecases/silentSessionReminderSentinel.js +0 -12
  56. package/bin/domain/usecases/silentSessionReminderSentinel.js.map +0 -1
  57. package/types/adapter/repositories/ConfigurableSilentSessionMessageComposer.d.ts +0 -18
  58. package/types/adapter/repositories/ConfigurableSilentSessionMessageComposer.d.ts.map +0 -1
  59. package/types/adapter/repositories/FileSystemSilentSessionCandidateStateRepository.d.ts +0 -20
  60. package/types/adapter/repositories/FileSystemSilentSessionCandidateStateRepository.d.ts.map +0 -1
  61. package/types/adapter/repositories/FileSystemSilentSessionHubTaskStatusCacheRepository.d.ts +0 -21
  62. package/types/adapter/repositories/FileSystemSilentSessionHubTaskStatusCacheRepository.d.ts.map +0 -1
  63. package/types/adapter/repositories/FileSystemSubAgentLivenessResolver.d.ts +0 -11
  64. package/types/adapter/repositories/FileSystemSubAgentLivenessResolver.d.ts.map +0 -1
  65. package/types/adapter/repositories/FileSystemSubAgentSilentSecondsResolver.d.ts +0 -9
  66. package/types/adapter/repositories/FileSystemSubAgentSilentSecondsResolver.d.ts.map +0 -1
  67. package/types/adapter/repositories/FileSystemSubAgentTranscriptDirectoryResolver.d.ts +0 -7
  68. package/types/adapter/repositories/FileSystemSubAgentTranscriptDirectoryResolver.d.ts.map +0 -1
  69. package/types/adapter/repositories/NodeSubAgentProcessLister.d.ts +0 -8
  70. package/types/adapter/repositories/NodeSubAgentProcessLister.d.ts.map +0 -1
  71. package/types/adapter/repositories/ProcessListSessionSubAgentActivityRepository.d.ts +0 -12
  72. package/types/adapter/repositories/ProcessListSessionSubAgentActivityRepository.d.ts.map +0 -1
  73. package/types/adapter/repositories/TranscriptSessionSubAgentActivityRepository.d.ts +0 -21
  74. package/types/adapter/repositories/TranscriptSessionSubAgentActivityRepository.d.ts.map +0 -1
  75. package/types/domain/entities/LiveSessionActivitySnapshot.d.ts +0 -12
  76. package/types/domain/entities/LiveSessionActivitySnapshot.d.ts.map +0 -1
  77. package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts +0 -7
  78. package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts.map +0 -1
  79. package/types/domain/usecases/adapter-interfaces/SessionSubAgentActivityRepository.d.ts +0 -5
  80. package/types/domain/usecases/adapter-interfaces/SessionSubAgentActivityRepository.d.ts.map +0 -1
  81. package/types/domain/usecases/adapter-interfaces/SilentSessionCandidateStateRepository.d.ts +0 -11
  82. package/types/domain/usecases/adapter-interfaces/SilentSessionCandidateStateRepository.d.ts.map +0 -1
  83. package/types/domain/usecases/adapter-interfaces/SilentSessionHubTaskStatusCacheRepository.d.ts +0 -19
  84. package/types/domain/usecases/adapter-interfaces/SilentSessionHubTaskStatusCacheRepository.d.ts.map +0 -1
  85. package/types/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.d.ts +0 -10
  86. package/types/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.d.ts.map +0 -1
  87. package/types/domain/usecases/adapter-interfaces/SubAgentLivenessResolver.d.ts +0 -7
  88. package/types/domain/usecases/adapter-interfaces/SubAgentLivenessResolver.d.ts.map +0 -1
  89. package/types/domain/usecases/adapter-interfaces/SubAgentProcessLister.d.ts +0 -8
  90. package/types/domain/usecases/adapter-interfaces/SubAgentProcessLister.d.ts.map +0 -1
  91. package/types/domain/usecases/adapter-interfaces/SubAgentSilentSecondsResolver.d.ts +0 -4
  92. package/types/domain/usecases/adapter-interfaces/SubAgentSilentSecondsResolver.d.ts.map +0 -1
  93. package/types/domain/usecases/adapter-interfaces/SubAgentTranscriptDirectoryResolver.d.ts +0 -4
  94. package/types/domain/usecases/adapter-interfaces/SubAgentTranscriptDirectoryResolver.d.ts.map +0 -1
  95. package/types/domain/usecases/silentSessionReminderSentinel.d.ts +0 -2
  96. package/types/domain/usecases/silentSessionReminderSentinel.d.ts.map +0 -1
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProcessListSessionSubAgentActivityRepository = void 0;
4
- class ProcessListSessionSubAgentActivityRepository {
5
- constructor(matchPattern, processLister, silentSecondsResolver) {
6
- this.processLister = processLister;
7
- this.silentSecondsResolver = silentSecondsResolver;
8
- this.listSubAgentActivitiesBySessionName = async (sessionNames) => {
9
- const result = new Map();
10
- if (this.matchRegExp === null) {
11
- return result;
12
- }
13
- const monitoredSessionNames = new Set(sessionNames);
14
- const processes = await this.processLister.listProcesses();
15
- for (const process of processes) {
16
- const match = this.matchRegExp.exec(process.commandLine);
17
- if (match === null || match.groups === undefined) {
18
- continue;
19
- }
20
- const sessionName = match.groups.session;
21
- if (sessionName === undefined ||
22
- !monitoredSessionNames.has(sessionName)) {
23
- continue;
24
- }
25
- const label = match.groups.label ?? sessionName;
26
- const activity = {
27
- label,
28
- silentSeconds: this.silentSecondsResolver.resolveSilentSeconds(label),
29
- runningSeconds: process.elapsedSeconds,
30
- waitingOnExternalProcess: false,
31
- finishedResultUnconsumed: false,
32
- };
33
- const existing = result.get(sessionName);
34
- if (existing === undefined) {
35
- result.set(sessionName, [activity]);
36
- }
37
- else {
38
- existing.push(activity);
39
- }
40
- }
41
- return result;
42
- };
43
- this.matchRegExp =
44
- matchPattern === null || matchPattern.length === 0
45
- ? null
46
- : new RegExp(matchPattern);
47
- }
48
- }
49
- exports.ProcessListSessionSubAgentActivityRepository = ProcessListSessionSubAgentActivityRepository;
50
- //# sourceMappingURL=ProcessListSessionSubAgentActivityRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProcessListSessionSubAgentActivityRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcessListSessionSubAgentActivityRepository.ts"],"names":[],"mappings":";;;AAKA,MAAa,4CAA4C;IAGvD,YACE,YAA2B,EACV,aAAoC,EACpC,qBAAoD;QADpD,kBAAa,GAAb,aAAa,CAAuB;QACpC,0BAAqB,GAArB,qBAAqB,CAA+B;QAQvE,wCAAmC,GAAG,KAAK,EACzC,YAAsB,EACoB,EAAE;YAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;YACrD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC9B,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;YAC3D,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACzD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACjD,SAAS;gBACX,CAAC;gBACD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzC,IACE,WAAW,KAAK,SAAS;oBACzB,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,EACvC,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,WAAW,CAAC;gBAChD,MAAM,QAAQ,GAAqB;oBACjC,KAAK;oBACL,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC;oBACrE,cAAc,EAAE,OAAO,CAAC,cAAc;oBACtC,wBAAwB,EAAE,KAAK;oBAC/B,wBAAwB,EAAE,KAAK;iBAChC,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QA3CA,IAAI,CAAC,WAAW;YACd,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAChD,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;CAwCF;AApDD,oGAoDC"}
@@ -1,382 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.TranscriptSessionSubAgentActivityRepository = exports.normalizeCommandFragment = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const alwaysIndeterminateLivenessResolver = {
40
- resolveLiveSubAgentIds: async () => null,
41
- };
42
- const isRecord = (value) => typeof value === 'object' && value !== null;
43
- const readString = (value, key) => {
44
- const candidate = value[key];
45
- return typeof candidate === 'string' ? candidate : null;
46
- };
47
- const parseEpochSeconds = (timestamp) => {
48
- if (timestamp === null) {
49
- return null;
50
- }
51
- const parsed = Date.parse(timestamp);
52
- return Number.isNaN(parsed) ? null : Math.floor(parsed / 1000);
53
- };
54
- const PENDING_TOOL_COMMAND_FRAGMENT_LENGTH = 60;
55
- const normalizeCommandFragment = (command) => command
56
- .replace(/\s+/g, ' ')
57
- .trim()
58
- .slice(0, PENDING_TOOL_COMMAND_FRAGMENT_LENGTH);
59
- exports.normalizeCommandFragment = normalizeCommandFragment;
60
- const readContentBlocks = (message) => {
61
- const content = message.content;
62
- if (!Array.isArray(content)) {
63
- return [];
64
- }
65
- return content.filter(isRecord);
66
- };
67
- // Tool whose result marks the sub-agent's final structured answer: once its
68
- // tool_result is recorded, the sub-agent has delivered its output and is
69
- // genuinely complete even though the transcript tail is a user entry.
70
- const COMPLETION_TOOL_NAMES = new Set(['StructuredOutput']);
71
- // Tools that delegate work to a nested child sub-agent. A parent whose
72
- // transcript tail is a pending tool_use of one of these tools is waiting for
73
- // the child to run (possibly queued), produces no transcript writes of its
74
- // own, and therefore looks "silent" by mtime alone. Such a parent is treated
75
- // as waiting on an external process so it is excluded from both the
76
- // sub-agent-idle and sub-agent-long-running selections.
77
- const DELEGATION_TOOL_NAMES = new Set(['Agent', 'Task']);
78
- const entryToolUseNames = (message) => readContentBlocks(message)
79
- .filter((block) => readString(block, 'type') === 'tool_use')
80
- .map((block) => readString(block, 'name'))
81
- .filter((name) => name !== null);
82
- const entryIndicatesCompletion = (entry, precedingAssistantToolUseNames) => {
83
- const type = readString(entry, 'type');
84
- const message = entry.message;
85
- if (!isRecord(message)) {
86
- return false;
87
- }
88
- if (type === 'assistant') {
89
- const stopReason = readString(message, 'stop_reason');
90
- if (stopReason === 'end_turn' || stopReason === 'stop_sequence') {
91
- return true;
92
- }
93
- const blocks = readContentBlocks(message);
94
- const lastBlock = blocks[blocks.length - 1];
95
- return lastBlock !== undefined && readString(lastBlock, 'type') === 'text';
96
- }
97
- if (type === 'user') {
98
- const blocks = readContentBlocks(message);
99
- if (blocks.length === 0) {
100
- return true;
101
- }
102
- const lastBlock = blocks[blocks.length - 1];
103
- const lastBlockType = readString(lastBlock, 'type');
104
- if (lastBlockType === 'text') {
105
- // A trailing user text entry is an interruption (e.g. "[Request
106
- // interrupted by user]"): the sub-agent will not produce further
107
- // output, so the transcript is terminal.
108
- return true;
109
- }
110
- if (lastBlockType === 'tool_result') {
111
- // A trailing tool_result is an IN-FLIGHT state, not completion: the
112
- // sub-agent has just received a tool result and the next assistant
113
- // turn is being generated. Treating it as completion made an active
114
- // agent flap in and out of the activity snapshot between samples
115
- // (tail alternates between pending tool_use and tool_result). Only
116
- // the result of an explicit completion tool (see
117
- // COMPLETION_TOOL_NAMES) is a genuine terminal state, so completed
118
- // agents still drop out of the snapshot.
119
- return precedingAssistantToolUseNames.some((name) => COMPLETION_TOOL_NAMES.has(name));
120
- }
121
- return false;
122
- }
123
- return false;
124
- };
125
- const entryPendingToolCommands = (entry) => {
126
- const type = readString(entry, 'type');
127
- const message = entry.message;
128
- if (type !== 'assistant' || !isRecord(message)) {
129
- return [];
130
- }
131
- const commands = [];
132
- for (const block of readContentBlocks(message)) {
133
- if (readString(block, 'type') !== 'tool_use') {
134
- continue;
135
- }
136
- const input = block.input;
137
- if (!isRecord(input)) {
138
- continue;
139
- }
140
- const command = readString(input, 'command');
141
- if (command !== null && command.trim().length > 0) {
142
- commands.push(command);
143
- }
144
- }
145
- return commands;
146
- };
147
- const parseTranscript = (content) => {
148
- let firstEntryEpochSeconds = null;
149
- let lastEntryIndicatesCompletion = false;
150
- let pendingToolCommands = [];
151
- let pendingDelegationToolUse = false;
152
- let precedingAssistantToolUseNames = [];
153
- for (const line of content.split('\n')) {
154
- const trimmed = line.trim();
155
- if (trimmed.length === 0) {
156
- continue;
157
- }
158
- let parsed;
159
- try {
160
- parsed = JSON.parse(trimmed);
161
- }
162
- catch {
163
- continue;
164
- }
165
- if (!isRecord(parsed)) {
166
- continue;
167
- }
168
- const epochSeconds = parseEpochSeconds(readString(parsed, 'timestamp'));
169
- if (firstEntryEpochSeconds === null && epochSeconds !== null) {
170
- firstEntryEpochSeconds = epochSeconds;
171
- }
172
- if (isRecord(parsed.message)) {
173
- lastEntryIndicatesCompletion = entryIndicatesCompletion(parsed, precedingAssistantToolUseNames);
174
- pendingToolCommands = entryPendingToolCommands(parsed);
175
- if (readString(parsed, 'type') === 'assistant') {
176
- precedingAssistantToolUseNames = entryToolUseNames(parsed.message);
177
- pendingDelegationToolUse = precedingAssistantToolUseNames.some((name) => DELEGATION_TOOL_NAMES.has(name));
178
- }
179
- else {
180
- pendingDelegationToolUse = false;
181
- }
182
- }
183
- }
184
- return {
185
- firstEntryEpochSeconds,
186
- lastEntryIndicatesCompletion,
187
- pendingToolCommands,
188
- pendingDelegationToolUse,
189
- };
190
- };
191
- const clampToZero = (value) => (value > 0 ? value : 0);
192
- const TERMINAL_TASK_NOTIFICATION_STATUSES = new Set([
193
- 'completed',
194
- 'killed',
195
- 'failed',
196
- 'stopped',
197
- ]);
198
- const parseTerminalAgentIds = (content) => {
199
- const result = new Set();
200
- for (const line of content.split('\n')) {
201
- const trimmed = line.trim();
202
- if (trimmed.length === 0) {
203
- continue;
204
- }
205
- let parsed;
206
- try {
207
- parsed = JSON.parse(trimmed);
208
- }
209
- catch {
210
- continue;
211
- }
212
- if (!isRecord(parsed)) {
213
- continue;
214
- }
215
- if (readString(parsed, 'type') !== 'queue-operation') {
216
- continue;
217
- }
218
- if (readString(parsed, 'operation') !== 'enqueue') {
219
- continue;
220
- }
221
- const notifContent = readString(parsed, 'content');
222
- if (notifContent === null) {
223
- continue;
224
- }
225
- const statusMatch = notifContent.match(/<status>([^<]+)<\/status>/);
226
- if (statusMatch === null) {
227
- continue;
228
- }
229
- if (!TERMINAL_TASK_NOTIFICATION_STATUSES.has(statusMatch[1])) {
230
- continue;
231
- }
232
- for (const taskIdMatch of notifContent.matchAll(/<task-id>(a[0-9a-f]+)<\/task-id>/g)) {
233
- result.add(taskIdMatch[1]);
234
- }
235
- }
236
- return result;
237
- };
238
- class TranscriptSessionSubAgentActivityRepository {
239
- constructor(directoryResolver, processLister, now, livenessResolver = alwaysIndeterminateLivenessResolver, runtimeRootDirectory = null) {
240
- this.directoryResolver = directoryResolver;
241
- this.processLister = processLister;
242
- this.now = now;
243
- this.livenessResolver = livenessResolver;
244
- this.runtimeRootDirectory = runtimeRootDirectory;
245
- this.listSubAgentActivitiesBySessionName = async (sessionNames, transcriptPathBySessionName) => {
246
- const result = new Map();
247
- const nowEpochSeconds = Math.floor(this.now.getTime() / 1000);
248
- let normalizedProcessCommandLines = null;
249
- const loadNormalizedProcessCommandLines = async () => {
250
- if (normalizedProcessCommandLines === null) {
251
- const processes = await this.processLister.listProcesses();
252
- normalizedProcessCommandLines = processes.map((process) => process.commandLine.replace(/\s+/g, ' ').trim());
253
- }
254
- return normalizedProcessCommandLines;
255
- };
256
- for (const sessionName of sessionNames) {
257
- const mainTranscriptPath = transcriptPathBySessionName.get(sessionName) ?? null;
258
- const directory = this.directoryResolver.resolveSubAgentsDirectory(sessionName, mainTranscriptPath);
259
- if (directory === null) {
260
- continue;
261
- }
262
- const terminalAgentIds = this.loadTerminalAgentIds(mainTranscriptPath);
263
- const liveSubAgentIds = await this.livenessResolver.resolveLiveSubAgentIds({
264
- sessionName,
265
- mainTranscriptPath,
266
- });
267
- const activities = await this.collectActivities(directory, nowEpochSeconds, terminalAgentIds, liveSubAgentIds, loadNormalizedProcessCommandLines, mainTranscriptPath);
268
- if (activities.length > 0) {
269
- result.set(sessionName, activities);
270
- }
271
- }
272
- return result;
273
- };
274
- this.loadTerminalAgentIds = (mainTranscriptPath) => {
275
- if (mainTranscriptPath === null) {
276
- return new Set();
277
- }
278
- let content;
279
- try {
280
- content = fs.readFileSync(mainTranscriptPath, 'utf8');
281
- }
282
- catch {
283
- return new Set();
284
- }
285
- return parseTerminalAgentIds(content);
286
- };
287
- this.resolveOutputFilePath = (mainTranscriptPath, agentId) => {
288
- if (this.runtimeRootDirectory === null || mainTranscriptPath === null) {
289
- return null;
290
- }
291
- const slug = path.basename(path.dirname(mainTranscriptPath));
292
- const sid = path.basename(mainTranscriptPath, '.jsonl');
293
- if (slug.length === 0 || slug === '.' || sid.length === 0) {
294
- return null;
295
- }
296
- return path.join(this.runtimeRootDirectory, slug, sid, 'tasks', `${agentId}.output`);
297
- };
298
- this.collectActivities = async (directory, nowEpochSeconds, terminalAgentIds, liveSubAgentIds, loadNormalizedProcessCommandLines, mainTranscriptPath) => {
299
- let entries;
300
- try {
301
- entries = fs.readdirSync(directory, { withFileTypes: true });
302
- }
303
- catch {
304
- return [];
305
- }
306
- const activities = [];
307
- for (const entry of entries) {
308
- const fileName = entry.name;
309
- if (!fileName.startsWith('agent-') || !fileName.endsWith('.jsonl')) {
310
- continue;
311
- }
312
- const agentId = fileName.slice('agent-'.length, -'.jsonl'.length);
313
- if (terminalAgentIds.has(agentId)) {
314
- continue;
315
- }
316
- if (liveSubAgentIds !== null && !liveSubAgentIds.has(agentId)) {
317
- continue;
318
- }
319
- if (liveSubAgentIds === null && this.runtimeRootDirectory !== null) {
320
- const outputFilePath = this.resolveOutputFilePath(mainTranscriptPath, agentId);
321
- const outputFileExists = outputFilePath !== null && fs.existsSync(outputFilePath);
322
- if (!outputFileExists) {
323
- const processCommandLines = await loadNormalizedProcessCommandLines();
324
- const appearsInProcess = processCommandLines.some((line) => line.includes(agentId));
325
- if (!appearsInProcess) {
326
- continue;
327
- }
328
- }
329
- }
330
- const filePath = path.join(directory, fileName);
331
- const activity = await this.toActivity(filePath, fileName, nowEpochSeconds, liveSubAgentIds !== null, loadNormalizedProcessCommandLines);
332
- if (activity !== null) {
333
- activities.push(activity);
334
- }
335
- }
336
- return activities;
337
- };
338
- this.toActivity = async (filePath, fileName, nowEpochSeconds, listedInRunningSubAgentsRecord, loadNormalizedProcessCommandLines) => {
339
- let content;
340
- let stats;
341
- try {
342
- content = fs.readFileSync(filePath, 'utf8');
343
- stats = fs.statSync(filePath);
344
- }
345
- catch {
346
- return null;
347
- }
348
- const transcript = parseTranscript(content);
349
- if (transcript.lastEntryIndicatesCompletion &&
350
- !listedInRunningSubAgentsRecord) {
351
- return null;
352
- }
353
- const silentSeconds = clampToZero(nowEpochSeconds - Math.floor(stats.mtimeMs / 1000));
354
- const runningSeconds = transcript.firstEntryEpochSeconds === null
355
- ? 0
356
- : clampToZero(nowEpochSeconds - transcript.firstEntryEpochSeconds);
357
- return {
358
- label: fileName.replace(/\.jsonl$/, ''),
359
- silentSeconds,
360
- runningSeconds,
361
- waitingOnExternalProcess: transcript.pendingDelegationToolUse ||
362
- (await this.hasLiveMatchingProcess(transcript.pendingToolCommands, loadNormalizedProcessCommandLines)),
363
- finishedResultUnconsumed: transcript.lastEntryIndicatesCompletion,
364
- };
365
- };
366
- this.hasLiveMatchingProcess = async (pendingToolCommands, loadNormalizedProcessCommandLines) => {
367
- if (pendingToolCommands.length === 0) {
368
- return false;
369
- }
370
- const fragments = pendingToolCommands
371
- .map(exports.normalizeCommandFragment)
372
- .filter((fragment) => fragment.length > 0);
373
- if (fragments.length === 0) {
374
- return false;
375
- }
376
- const processCommandLines = await loadNormalizedProcessCommandLines();
377
- return fragments.some((fragment) => processCommandLines.some((commandLine) => commandLine.includes(fragment)));
378
- };
379
- }
380
- }
381
- exports.TranscriptSessionSubAgentActivityRepository = TranscriptSessionSubAgentActivityRepository;
382
- //# sourceMappingURL=TranscriptSessionSubAgentActivityRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TranscriptSessionSubAgentActivityRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/TranscriptSessionSubAgentActivityRepository.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=LiveSessionActivitySnapshot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveSessionActivitySnapshot.js","sourceRoot":"","sources":["../../../src/domain/entities/LiveSessionActivitySnapshot.ts"],"names":[],"mappings":""}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultSilentSessionMessageComposer = void 0;
4
- const silentSessionReminderSentinel_1 = require("./silentSessionReminderSentinel");
5
- const formatMinutes = (seconds) => {
6
- const minutes = Math.floor(seconds / 60);
7
- return `${minutes}m`;
8
- };
9
- const composeIdleSubAgentSection = (idleSubAgents) => {
10
- const lines = idleSubAgents.map((subAgent) => `- ${subAgent.label}: no output for ${formatMinutes(subAgent.silentSeconds)}`);
11
- return [
12
- `${silentSessionReminderSentinel_1.SILENT_SESSION_REMINDER_SENTINEL} This is an automated status check. The following sub-process(es) have produced no output for about the minutes shown, measured from their last tool activity:`,
13
- ...lines,
14
- 'For each one: if it is waiting on an external dependency (a continuous-integration run, an external API, or another process), no action is needed — please log one line noting the wait. If it appears stuck, please restart it, hand it off, or replace it.',
15
- ].join('\n');
16
- };
17
- const composeLongRunningSubAgentSection = (longRunningSubAgents) => {
18
- const lines = longRunningSubAgents.map((subAgent) => `- ${subAgent.label}: running for ${formatMinutes(subAgent.runningSeconds)}`);
19
- return [
20
- `${silentSessionReminderSentinel_1.SILENT_SESSION_REMINDER_SENTINEL} This is an automated status check. The following sub-process(es) have been running longer than a task usually takes:`,
21
- ...lines,
22
- 'If one is not making progress toward completion, consider breaking the task down, restarting it, handing it off, or replacing it. If it is progressing normally, no action is needed.',
23
- ].join('\n');
24
- };
25
- const composeUnconsumedResultSubAgentSection = (unconsumedResultSubAgents) => {
26
- const lines = unconsumedResultSubAgents.map((subAgent) => `- ${subAgent.label}: result unconsumed for ${formatMinutes(subAgent.silentSeconds)}`);
27
- return [
28
- `${silentSessionReminderSentinel_1.SILENT_SESSION_REMINDER_SENTINEL} This is an automated status check. The following sub-process(es) have finished and their results have been waiting unread for about the minutes shown:`,
29
- ...lines,
30
- 'For each one: please read its result, act on it, and then mark the sub-process as finished so it is no longer tracked as running. If you have already acted on the result, marking it finished is all that remains.',
31
- ].join('\n');
32
- };
33
- class DefaultSilentSessionMessageComposer {
34
- constructor() {
35
- this.composeSubAgentSection = (stallSections) => {
36
- const sections = [];
37
- if (stallSections.idleSubAgents.length > 0) {
38
- sections.push(composeIdleSubAgentSection(stallSections.idleSubAgents));
39
- }
40
- if (stallSections.longRunningSubAgents.length > 0) {
41
- sections.push(composeLongRunningSubAgentSection(stallSections.longRunningSubAgents));
42
- }
43
- return sections.join('\n\n');
44
- };
45
- this.composeSubAgentUnconsumedResultSection = (unconsumedResultSubAgents) => composeUnconsumedResultSubAgentSection(unconsumedResultSubAgents);
46
- }
47
- }
48
- exports.DefaultSilentSessionMessageComposer = DefaultSilentSessionMessageComposer;
49
- //# sourceMappingURL=DefaultSilentSessionMessageComposer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultSilentSessionMessageComposer.js","sourceRoot":"","sources":["../../../src/domain/usecases/DefaultSilentSessionMessageComposer.ts"],"names":[],"mappings":";;;AAKA,mFAAmF;AAEnF,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,aAAiC,EACzB,EAAE;IACV,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAC7B,CAAC,QAAQ,EAAE,EAAE,CACX,KAAK,QAAQ,CAAC,KAAK,mBAAmB,aAAa,CACjD,QAAQ,CAAC,aAAa,CACvB,EAAE,CACN,CAAC;IACF,OAAO;QACL,GAAG,gEAAgC,gKAAgK;QACnM,GAAG,KAAK;QACR,8PAA8P;KAC/P,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,iCAAiC,GAAG,CACxC,oBAAwC,EAChC,EAAE;IACV,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CACpC,CAAC,QAAQ,EAAE,EAAE,CACX,KAAK,QAAQ,CAAC,KAAK,iBAAiB,aAAa,CAC/C,QAAQ,CAAC,cAAc,CACxB,EAAE,CACN,CAAC;IACF,OAAO;QACL,GAAG,gEAAgC,uHAAuH;QAC1J,GAAG,KAAK;QACR,uLAAuL;KACxL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,sCAAsC,GAAG,CAC7C,yBAA6C,EACrC,EAAE;IACV,MAAM,KAAK,GAAG,yBAAyB,CAAC,GAAG,CACzC,CAAC,QAAQ,EAAE,EAAE,CACX,KAAK,QAAQ,CAAC,KAAK,2BAA2B,aAAa,CACzD,QAAQ,CAAC,aAAa,CACvB,EAAE,CACN,CAAC;IACF,OAAO;QACL,GAAG,gEAAgC,yJAAyJ;QAC5L,GAAG,KAAK;QACR,qNAAqN;KACtN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAa,mCAAmC;IAAhD;QACE,2BAAsB,GAAG,CAAC,aAAoC,EAAU,EAAE;YACxE,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,aAAa,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,QAAQ,CAAC,IAAI,CACX,iCAAiC,CAAC,aAAa,CAAC,oBAAoB,CAAC,CACtE,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,2CAAsC,GAAG,CACvC,yBAA6C,EACrC,EAAE,CACV,sCAAsC,CAAC,yBAAyB,CAAC,CAAC;IACtE,CAAC;CAAA;AAlBD,kFAkBC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SessionSubAgentActivityRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionSubAgentActivityRepository.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SessionSubAgentActivityRepository.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SilentSessionCandidateStateRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SilentSessionCandidateStateRepository.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SilentSessionCandidateStateRepository.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SilentSessionHubTaskStatusCacheRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SilentSessionHubTaskStatusCacheRepository.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SilentSessionHubTaskStatusCacheRepository.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SilentSessionMessageComposer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SilentSessionMessageComposer.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SubAgentLivenessResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubAgentLivenessResolver.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SubAgentLivenessResolver.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SubAgentProcessLister.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubAgentProcessLister.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SubAgentProcessLister.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SubAgentSilentSecondsResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubAgentSilentSecondsResolver.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SubAgentSilentSecondsResolver.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SubAgentTranscriptDirectoryResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubAgentTranscriptDirectoryResolver.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/SubAgentTranscriptDirectoryResolver.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SILENT_SESSION_REMINDER_SENTINEL = void 0;
4
- // Stable, recognizable marker embedded in every monitor-injected silent-session
5
- // self-check reminder. It lets owner-reply detection distinguish a reminder that
6
- // the monitor injected into a session's transcript (which arrives as a user text
7
- // entry via `tmux send-keys`) from a genuine owner reply, so an injected reminder
8
- // is never miscounted as the owner answering an outstanding call-to-user. The tag
9
- // is bracketed and namespaced to make an accidental collision with genuine human
10
- // owner text effectively impossible.
11
- exports.SILENT_SESSION_REMINDER_SENTINEL = '[TDPM_SILENT_SESSION_SELF_CHECK_REMINDER]';
12
- //# sourceMappingURL=silentSessionReminderSentinel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"silentSessionReminderSentinel.js","sourceRoot":"","sources":["../../../src/domain/usecases/silentSessionReminderSentinel.ts"],"names":[],"mappings":";;;AAAA,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,kFAAkF;AAClF,kFAAkF;AAClF,iFAAiF;AACjF,qCAAqC;AACxB,QAAA,gCAAgC,GAC3C,2CAA2C,CAAC"}
@@ -1,18 +0,0 @@
1
- import { SubAgentActivity } from '../../domain/entities/LiveSessionActivitySnapshot';
2
- import { SilentSessionMessageComposer, SubAgentStallSections } from '../../domain/usecases/adapter-interfaces/SilentSessionMessageComposer';
3
- export type SilentSessionMessageTemplates = {
4
- subAgentIdleMessageHeader: string | null;
5
- subAgentIdleMessageFooter: string | null;
6
- subAgentLongRunningMessageHeader: string | null;
7
- subAgentLongRunningMessageFooter: string | null;
8
- };
9
- export declare class ConfigurableSilentSessionMessageComposer implements SilentSessionMessageComposer {
10
- private readonly templates;
11
- private readonly fallback;
12
- constructor(templates: SilentSessionMessageTemplates, fallback: SilentSessionMessageComposer);
13
- composeSubAgentSection: (stallSections: SubAgentStallSections) => string;
14
- composeSubAgentUnconsumedResultSection: (unconsumedResultSubAgents: SubAgentActivity[]) => string;
15
- private composeIdleSection;
16
- private composeLongRunningSection;
17
- }
18
- //# sourceMappingURL=ConfigurableSilentSessionMessageComposer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigurableSilentSessionMessageComposer.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ConfigurableSilentSessionMessageComposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,uEAAuE,CAAC;AAQ/E,MAAM,MAAM,6BAA6B,GAAG;IAC1C,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD,CAAC;AAOF,qBAAa,wCAAyC,YAAW,4BAA4B;IAEzF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,SAAS,EAAE,6BAA6B,EACxC,QAAQ,EAAE,4BAA4B;IAGzD,sBAAsB,GAAI,eAAe,qBAAqB,KAAG,MAAM,CA4CrE;IAEF,sCAAsC,GACpC,2BAA2B,gBAAgB,EAAE,KAC5C,MAAM,CAGL;IAEJ,OAAO,CAAC,kBAAkB,CAkBxB;IAEF,OAAO,CAAC,yBAAyB,CAkB/B;CACH"}