github-issue-tower-defence-management 1.122.4 → 1.122.6
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 +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 +18 -5
- 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 +47 -8
- package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.ts +5 -0
- package/src/adapter/repositories/ConfigurableSilentSessionMessageComposer.test.ts +44 -2
- 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 +117 -9
- package/src/domain/usecases/DefaultSilentSessionMessageComposer.ts +31 -5
- 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,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NotifySilentLiveSessionsUseCase = exports.isGitHubIssueOrPullRequestSessionName = exports.parseHubTaskIssueUrlFromSessionName = exports.DEFAULT_HUB_TASK_STATUS_CACHE_TTL_SECONDS = exports.DEFAULT_CANDIDATE_DEBOUNCE_RECENCY_WINDOW_SECONDS = exports.DEFAULT_NOTIFICATION_STAGGER_SECONDS = exports.DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS = exports.DEFAULT_SUBAGENT_SILENT_THRESHOLD_SECONDS = exports.DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS = void 0;
|
|
3
|
+
exports.NotifySilentLiveSessionsUseCase = exports.isGitHubIssueOrPullRequestSessionName = exports.parseHubTaskIssueUrlFromSessionName = exports.DEFAULT_HUB_TASK_STATUS_CACHE_TTL_SECONDS = exports.DEFAULT_CANDIDATE_DEBOUNCE_RECENCY_WINDOW_SECONDS = exports.DEFAULT_NOTIFICATION_STAGGER_SECONDS = exports.DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS = exports.DEFAULT_SUBAGENT_SILENT_THRESHOLD_SECONDS = exports.DEFAULT_UNANSWERED_OWNER_CALL_GRACE_SECONDS = exports.DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS = void 0;
|
|
4
4
|
const ResolveInteractiveLiveSessionsUseCase_1 = require("./ResolveInteractiveLiveSessionsUseCase");
|
|
5
5
|
exports.DEFAULT_MAIN_SILENT_THRESHOLD_SECONDS = 10 * 60;
|
|
6
|
+
exports.DEFAULT_UNANSWERED_OWNER_CALL_GRACE_SECONDS = 60 * 60;
|
|
6
7
|
exports.DEFAULT_SUBAGENT_SILENT_THRESHOLD_SECONDS = 5 * 60;
|
|
7
8
|
exports.DEFAULT_SUBAGENT_RUNNING_THRESHOLD_SECONDS = 15 * 60;
|
|
8
9
|
exports.DEFAULT_NOTIFICATION_STAGGER_SECONDS = 25;
|
|
@@ -172,29 +173,38 @@ class NotifySilentLiveSessionsUseCase {
|
|
|
172
173
|
lastOutputBySessionName.set(activity.sessionName, activity.lastOutputEpochSeconds);
|
|
173
174
|
}
|
|
174
175
|
const subAgentsBySessionName = await this.subAgentActivityRepository.listSubAgentActivitiesBySessionName(sessionNames, transcriptPathBySessionName);
|
|
175
|
-
const
|
|
176
|
+
const unansweredOwnerCallEpochSecondsBySessionName = await this.ownerCallStatusProvider.listUnansweredOwnerCallEpochSecondsBySessionName(transcriptPathBySessionName);
|
|
176
177
|
const nowEpochSeconds = Math.floor(now.getTime() / 1000);
|
|
177
178
|
return sessionNames.map((sessionName) => {
|
|
178
179
|
const lastOutputEpochSeconds = lastOutputBySessionName.get(sessionName);
|
|
179
180
|
const mainSilentSeconds = lastOutputEpochSeconds === undefined
|
|
180
181
|
? null
|
|
181
182
|
: nowEpochSeconds - lastOutputEpochSeconds;
|
|
183
|
+
const unansweredOwnerCallEpochSeconds = unansweredOwnerCallEpochSecondsBySessionName.get(sessionName);
|
|
182
184
|
return {
|
|
183
185
|
sessionName,
|
|
184
186
|
mainSilentSeconds,
|
|
185
187
|
subAgents: subAgentsBySessionName.get(sessionName) ?? [],
|
|
186
|
-
|
|
188
|
+
unansweredOwnerCallAgeSeconds: unansweredOwnerCallEpochSeconds === undefined
|
|
189
|
+
? null
|
|
190
|
+
: nowEpochSeconds - unansweredOwnerCallEpochSeconds,
|
|
187
191
|
};
|
|
188
192
|
});
|
|
189
193
|
};
|
|
190
194
|
this.composeCandidate = async (snapshot, thresholds) => {
|
|
191
195
|
const sections = [];
|
|
192
196
|
const mainSilentSeconds = snapshot.mainSilentSeconds;
|
|
197
|
+
const unansweredOwnerCallAgeSeconds = snapshot.unansweredOwnerCallAgeSeconds;
|
|
198
|
+
const suppressedByRecentOwnerCall = unansweredOwnerCallAgeSeconds !== null &&
|
|
199
|
+
unansweredOwnerCallAgeSeconds <
|
|
200
|
+
thresholds.unansweredOwnerCallGraceSeconds;
|
|
193
201
|
const mainTriggered = mainSilentSeconds !== null &&
|
|
194
202
|
mainSilentSeconds >= thresholds.mainSilentThresholdSeconds &&
|
|
195
|
-
!
|
|
203
|
+
!suppressedByRecentOwnerCall;
|
|
196
204
|
if (mainTriggered) {
|
|
197
|
-
sections.push(
|
|
205
|
+
sections.push(unansweredOwnerCallAgeSeconds !== null
|
|
206
|
+
? this.messageComposer.composeMainStalledWithStaleOwnerCallSection(mainSilentSeconds, unansweredOwnerCallAgeSeconds)
|
|
207
|
+
: this.messageComposer.composeMainStalledSection(mainSilentSeconds));
|
|
198
208
|
}
|
|
199
209
|
const idleSubAgents = snapshot.subAgents.filter((subAgent) => !subAgent.waitingOnExternalProcess &&
|
|
200
210
|
subAgent.silentSeconds >= thresholds.subAgentSilentThresholdSeconds);
|
|
@@ -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":";;;AAaA,mGAAgG;AAEnF,QAAA,qCAAqC,GAAG,EAAE,GAAG,EAAE,CAAC;AAChD,QAAA,2CAA2C,GAAG,EAAE,GAAG,EAAE,CAAC;AACtD,QAAA,yCAAyC,GAAG,CAAC,GAAG,EAAE,CAAC;AACnD,QAAA,0CAA0C,GAAG,EAAE,GAAG,EAAE,CAAC;AACrD,QAAA,oCAAoC,GAAG,EAAE,CAAC;AAC1C,QAAA,iDAAiD,GAAG,EAAE,GAAG,EAAE,CAAC;AAC5D,QAAA,yCAAyC,GAAG,CAAC,GAAG,EAAE,CAAC;AAEhE,MAAM,gCAAgC,GACpC,mEAAmE,CAAC;AAEtE,MAAM,gCAAgC,GACpC,kEAAkE,CAAC;AAE9D,MAAM,mCAAmC,GAAG,CACjD,WAAmB,EACJ,EAAE;IACjB,IAAI,gCAAgC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,SAAS,GAAG,gCAAgC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClE,OAAO,sBAAsB,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AACnE,CAAC,CAAC;AAbW,QAAA,mCAAmC,uCAa9C;AAEF,MAAM,iDAAiD,GACrD,0EAA0E,CAAC;AAEtE,MAAM,qCAAqC,GAAG,CACnD,WAAmB,EACV,EAAE,CACX,iDAAiD,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAHzD,QAAA,qCAAqC,yCAGoB;AAWtE,MAAa,+BAA+B;IAI1C,YACmB,kCAAsE,EACtE,wCAAkF,EAClF,+BAAgE,EAChE,0BAA6D,EAC7D,uBAAgD,EAChD,sBAA2D,EAC3D,wBAA+D,EAC/D,eAA6C,EAC7C,OAAgB,EAChB,wBAAsD,IAAI,EAC1D,+BAAiF,IAAI;QAVrF,uCAAkC,GAAlC,kCAAkC,CAAoC;QACtE,6CAAwC,GAAxC,wCAAwC,CAA0C;QAClF,oCAA+B,GAA/B,+BAA+B,CAAiC;QAChE,+BAA0B,GAA1B,0BAA0B,CAAmC;QAC7D,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,2BAAsB,GAAtB,sBAAsB,CAAqC;QAC3D,6BAAwB,GAAxB,wBAAwB,CAAuC;QAC/D,oBAAe,GAAf,eAAe,CAA8B;QAC7C,YAAO,GAAP,OAAO,CAAS;QAChB,0BAAqB,GAArB,qBAAqB,CAAqC;QAC1D,iCAA4B,GAA5B,4BAA4B,CAAyD;QAdvF,mCAA8B,GAC7C,IAAI,6EAAqC,EAAE,CAAC;QAgB9C,QAAG,GAAG,KAAK,EAAE,MAUZ,EAAiB,EAAE;YAClB,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,kCAAkC,CAAC,WAAW,EAAE,CAAC;YAC9D,MAAM,sBAAsB,GAC1B,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACpE,IAAA,6CAAqC,EAAC,OAAO,CAAC,WAAW,CAAC,CAC3D,CAAC;YACF,MAAM,4BAA4B,GAChC,sBAAsB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC7D,IAAI,4BAA4B,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CACT,8CAA8C,4BAA4B,2HAA2H,CACtM,CAAC;YACJ,CAAC;YACD,MAAM,2BAA2B,GAC/B,IAAI,CAAC,wCAAwC,CAAC,sBAAsB,CAClE,mBAAmB,CACpB,CAAC;YAEJ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC3C,mBAAmB,EACnB,2BAA2B,EAC3B,MAAM,CAAC,GAAG,CACX,CAAC;YAEF,MAAM,UAAU,GAAsB,EAAE,CAAC;YACzC,KAAK,MAAM,eAAe,IAAI,SAAS,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBACvE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACvB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;gBAClC,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;oBACpC,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CACR,CAAC;YAEF,MAAM,6BAA6B,GACjC,MAAM,IAAI,CAAC,wBAAwB,CAAC,+BAA+B,CAAC;gBAClE,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,oBAAoB,EAAE,MAAM,CAAC,qCAAqC;aACnE,CAAC,CAAC;YACL,MAAM,IAAI,CAAC,wBAAwB,CAAC,yBAAyB,CAAC;gBAC5D,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC;gBAClE,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAC1D,6BAA6B,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CACzD,CAAC;YACF,MAAM,yBAAyB,GAC7B,UAAU,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAEjD,OAAO,CAAC,GAAG,CACT,qCAAqC,mBAAmB,CAAC,MAAM,8BAA8B,UAAU,CAAC,MAAM,gCAAgC,mBAAmB,CAAC,MAAM,4BAA4B,yBAAyB,4EAA4E,CAC1S,CAAC;YAEF,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;gBAC5C,IACE,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAC1B,SAAS,CAAC,WAAW,EACrB,MAAM,CAAC,mBAAmB,EAC1B,MAAM,CAAC,4BAA4B,EACnC,MAAM,CAAC,GAAG,CACX,CAAC,EACF,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CACzD,SAAS,CAAC,WAAW,EACrB,SAAS,CAAC,OAAO,CAClB,CAAC;gBACF,SAAS,IAAI,CAAC,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC;gBAClD,IAAI,SAAS,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrD,MAAM,IAAI,CAAC,wBAAwB,CAAC,kCAAkC,CAAC;wBACrE,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,MAAM,EAAE;4BACN,GAAG,SAAS,CAAC,8BAA8B;4BAC3C,GAAG,SAAS,CAAC,2BAA2B;yBACzC;wBACD,GAAG,EAAE,MAAM,CAAC,GAAG;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,KAAK,EAC7B,WAAmB,EACnB,mBAAkC,EAClC,4BAAoC,EACpC,GAAS,EACS,EAAE;YACpB,IAAI,mBAAmB,KAAK,IAAI,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;gBACxE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,eAAe,GAAG,IAAA,2CAAmC,EAAC,WAAW,CAAC,CAAC;YACzE,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,WAAW,GACf,IAAI,CAAC,4BAA4B,KAAK,IAAI;gBACxC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,IAAI,CAAC,4BAA4B,CAAC,iBAAiB,CAAC;oBACxD,GAAG,EAAE,eAAe;iBACrB,CAAC,CAAC;YACT,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACzD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,MAAM,eAAe,GACnB,eAAe,GAAG,WAAW,CAAC,oBAAoB,CAAC;gBACrD,IAAI,eAAe,IAAI,4BAA4B,EAAE,CAAC;oBACpD,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACxC,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,MAAM,EAClB,mBAAmB,CACpB,CAAC;oBACF,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,OAAO,CAAC,GAAG,CACT,YAAY,WAAW,cAAc,eAAe,kDAAkD,WAAW,CAAC,KAAK,cAAc,WAAW,CAAC,MAAM,IAAI,MAAM,qBAAqB,mBAAmB,KAAK,CAC/M,CAAC;oBACJ,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACrD,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,GAAG,CACJ,CAAC;YACF,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,OAAO,UAAU,CAAC,MAAM,CAAC;YAC3B,CAAC;YAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACxC,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,MAAM,EAClB,mBAAmB,CACpB,CAAC;gBACF,OAAO,CAAC,IAAI,CACV,YAAY,eAAe,gBAAgB,WAAW,2BAA2B,UAAU,CAAC,MAAM,oDAAoD,WAAW,CAAC,KAAK,cAAc,WAAW,CAAC,MAAM,IAAI,MAAM,8BAA8B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,CACjR,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,OAAO,CAAC,IAAI,CACV,YAAY,eAAe,gBAAgB,WAAW,gDAAgD,UAAU,CAAC,MAAM,sCAAsC,CAC9J,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEM,8BAAyB,GAAG,KAAK,EACvC,eAAuB,EACvB,mBAA2B,EAC3B,WAAmB,EACnB,GAAS,EAGT,EAAE;YACF,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;gBACxC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;YACnE,CAAC;YACD,IAAI,KAAkE,CAAC;YACvE,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC/D,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;YAC1E,CAAC;YACD,IAAI,IAAI,CAAC,4BAA4B,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,4BAA4B,CAAC,iBAAiB,CAAC;oBACxD,GAAG,EAAE,eAAe;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACxC,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,EACZ,mBAAmB,CACpB,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CACT,YAAY,WAAW,cAAc,eAAe,gCAAgC,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,MAAM,IAAI,MAAM,qBAAqB,mBAAmB,KAAK,CACjL,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC;QAEM,2BAAsB,GAAG,CAC/B,KAAmC,EACnC,MAAqB,EACrB,mBAA2B,EAClB,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,KAAK,mBAAmB,CAAC;QAEzD,qBAAgB,GAAG,KAAK,EAC9B,mBAA6C,EAC7C,2BAAgD,EAChD,GAAS,EAC+B,EAAE;YAC1C,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAC1C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CACjC,CAAC;YAEF,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,+BAA+B,CAAC,2BAA2B,CACpE,2BAA2B,CAC5B,CAAC;YACJ,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC1D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAClC,uBAAuB,CAAC,GAAG,CACzB,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,sBAAsB,CAChC,CAAC;YACJ,CAAC;YAED,MAAM,sBAAsB,GAC1B,MAAM,IAAI,CAAC,0BAA0B,CAAC,mCAAmC,CACvE,YAAY,EACZ,2BAA2B,CAC5B,CAAC;YAEJ,MAAM,4CAA4C,GAChD,MAAM,IAAI,CAAC,uBAAuB,CAAC,gDAAgD,CACjF,2BAA2B,CAC5B,CAAC;YAEJ,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACzD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;gBACtC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxE,MAAM,iBAAiB,GACrB,sBAAsB,KAAK,SAAS;oBAClC,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,eAAe,GAAG,sBAAsB,CAAC;gBAC/C,MAAM,+BAA+B,GACnC,4CAA4C,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAChE,OAAO;oBACL,WAAW;oBACX,iBAAiB;oBACjB,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;oBACxD,6BAA6B,EAC3B,+BAA+B,KAAK,SAAS;wBAC3C,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,eAAe,GAAG,+BAA+B;iBACxD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,qBAAgB,GAAG,KAAK,EAC9B,QAAqC,EACrC,UAMC,EACgC,EAAE;YACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;YAE9B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACrD,MAAM,6BAA6B,GACjC,QAAQ,CAAC,6BAA6B,CAAC;YACzC,MAAM,2BAA2B,GAC/B,6BAA6B,KAAK,IAAI;gBACtC,6BAA6B;oBAC3B,UAAU,CAAC,+BAA+B,CAAC;YAC/C,MAAM,aAAa,GACjB,iBAAiB,KAAK,IAAI;gBAC1B,iBAAiB,IAAI,UAAU,CAAC,0BAA0B;gBAC1D,CAAC,2BAA2B,CAAC;YAC/B,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CACX,6BAA6B,KAAK,IAAI;oBACpC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,2CAA2C,CAC9D,iBAAiB,EACjB,6BAA6B,CAC9B;oBACH,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CACtE,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAC7C,CAAC,QAAQ,EAAE,EAAE,CACX,CAAC,QAAQ,CAAC,wBAAwB;gBAClC,QAAQ,CAAC,aAAa,IAAI,UAAU,CAAC,8BAA8B,CACtE,CAAC;YACF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CACpD,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,cAAc,IAAI,UAAU,CAAC,+BAA+B,CACxE,CAAC;YACF,MAAM,8BAA8B,GAClC,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACvE,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,MAAM,CAC3D,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,8BAA8B,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CACvE,CAAC;YACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,yBAAyB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrE,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC;oBAC1C,aAAa;oBACb,oBAAoB,EAAE,yBAAyB;iBAChD,CAAC,CACH,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC9B,2BAA2B,EAAE,yBAAyB,CAAC,GAAG,CACxD,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAC7B;gBACD,8BAA8B;aAC/B,CAAC;QACJ,CAAC,CAAC;QAEM,oCAA+B,GAAG,KAAK,EAC7C,QAAqC,EACrC,GAAS,EACU,EAAE;YACrB,MAAM,eAAe,GACnB,MAAM,IAAI,CAAC,wBAAwB,CAAC,kCAAkC,CAAC;gBACrE,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC,CAAC;YACL,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CACrD,CAAC;YACF,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CACzB,CAAC;YACF,IAAI,cAAc,CAAC,MAAM,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;gBACnD,MAAM,IAAI,CAAC,wBAAwB,CAAC,kCAAkC,CAAC;oBACrE,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,MAAM,EAAE,cAAc;oBACtB,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC;IAjXC,CAAC;CAkXL;AAlYD,0EAkYC"}
|
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
|
|
|
@@ -236,12 +234,12 @@ describe('notifySilentTmuxSessions', () => {
|
|
|
236
234
|
`${SILENT_SESSION_REMINDER_SENTINEL} CUSTOM_MAIN_TEMPLATE`,
|
|
237
235
|
);
|
|
238
236
|
expect(sendCall?.[1][4]).toContain(
|
|
239
|
-
'
|
|
237
|
+
'Please avoid telling the owner to scroll up, go back, or read previous or above messages',
|
|
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,
|
|
@@ -60,13 +64,51 @@ describe('ConfigurableSilentSessionMessageComposer', () => {
|
|
|
60
64
|
);
|
|
61
65
|
expect(section).toContain('🔴');
|
|
62
66
|
expect(section).toContain(
|
|
63
|
-
'Make the owner-call message fully self-contained: the owner
|
|
67
|
+
'Make the owner-call message fully self-contained: the owner should be able to understand the whole situation — what happened, what you are asking, and any decision needed — from this single latest owner-call message alone, without reading or scrolling back to earlier messages.',
|
|
64
68
|
);
|
|
65
69
|
expect(section).toContain(
|
|
66
|
-
'
|
|
70
|
+
'Please avoid telling the owner to scroll up, go back, or read previous or above messages; if context is needed, restate it inside the owner-call message itself.',
|
|
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
|
}
|