github-issue-tower-defence-management 1.193.0 → 1.194.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +4 -0
- package/bin/adapter/entry-points/cli/index.js +19 -0
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/entry-points/console/ui-dist/assets/{index-RaFqjB7u.js → index-CYwLv9pf.js} +2 -2
- package/bin/adapter/entry-points/console/ui-dist/index.html +1 -1
- package/bin/adapter/entry-points/handlers/tokenStatusWriter.js +1 -0
- package/bin/adapter/entry-points/handlers/tokenStatusWriter.js.map +1 -1
- package/bin/adapter/repositories/NodeLocalCommandRunner.js +5 -0
- package/bin/adapter/repositories/NodeLocalCommandRunner.js.map +1 -1
- package/bin/adapter/repositories/NodeTmuxSessionRepository.js +29 -0
- package/bin/adapter/repositories/NodeTmuxSessionRepository.js.map +1 -1
- package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js +4 -2
- package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js.map +1 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js +8 -3
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/RevertOrphanedPreparationUseCase.js +4 -2
- package/bin/domain/usecases/RevertOrphanedPreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/StartPreparationUseCase.js +12 -2
- package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/awaitingOwnerApprovalMessage.js +1 -1
- package/bin/domain/usecases/awaitingOwnerApprovalMessage.js.map +1 -1
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js +1 -3
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js.map +1 -1
- package/bin/domain/usecases/dashboard/GenerateTokenStatusUseCase.js +12 -4
- package/bin/domain/usecases/dashboard/GenerateTokenStatusUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/cli/index.test.ts +102 -0
- package/src/adapter/entry-points/cli/index.ts +43 -0
- package/src/adapter/entry-points/console/ui/e2e/consoleScenario.spec.ts +45 -0
- package/src/adapter/entry-points/console/ui/e2e/consoleTestHarness.ts +7 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.stories.tsx +31 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.test.tsx +96 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.tsx +20 -2
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.test.tsx +159 -0
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.tsx +17 -1
- package/src/adapter/entry-points/console/ui-dist/assets/{index-RaFqjB7u.js → index-CYwLv9pf.js} +2 -2
- package/src/adapter/entry-points/console/ui-dist/index.html +1 -1
- package/src/adapter/entry-points/handlers/inTmuxByHumanSessionReconciler.test.ts +1 -0
- package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.test.ts +1 -0
- package/src/adapter/entry-points/handlers/resetDegeneratedTmuxSessions.test.ts +4 -1
- package/src/adapter/entry-points/handlers/situationFileWriter.test.ts +2 -0
- package/src/adapter/entry-points/handlers/staleTmuxSessionCleaner.test.ts +1 -0
- package/src/adapter/entry-points/handlers/tokenStatusWriter.ts +1 -0
- package/src/adapter/repositories/LocalCommandIssueAttachmentRepository.test.ts +4 -0
- package/src/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.test.ts +1 -0
- package/src/adapter/repositories/NodeLocalCommandRunner.test.ts +16 -0
- package/src/adapter/repositories/NodeLocalCommandRunner.ts +5 -1
- package/src/adapter/repositories/NodeSubAgentProcessLister.test.ts +1 -0
- package/src/adapter/repositories/NodeTmuxSessionRepository.test.ts +132 -0
- package/src/adapter/repositories/NodeTmuxSessionRepository.ts +37 -0
- package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.test.ts +38 -0
- package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts +6 -2
- package/src/adapter/repositories/TmuxSilentSessionNotificationRepository.test.ts +2 -0
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +78 -4
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +15 -3
- package/src/domain/usecases/RevertOrphanedPreparationUseCase.test.ts +9 -2
- package/src/domain/usecases/RevertOrphanedPreparationUseCase.ts +10 -2
- package/src/domain/usecases/StartPreparationUseCase.test.ts +110 -2
- package/src/domain/usecases/StartPreparationUseCase.ts +34 -17
- package/src/domain/usecases/adapter-interfaces/LocalCommandRunner.ts +1 -0
- package/src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts +4 -0
- package/src/domain/usecases/awaitingOwnerApprovalMessage.ts +1 -1
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.test.ts +5 -4
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.ts +9 -11
- package/src/domain/usecases/dashboard/GenerateTokenStatusUseCase.test.ts +63 -0
- package/src/domain/usecases/dashboard/GenerateTokenStatusUseCase.ts +13 -4
- package/src/domain/usecases/intmux/InTmuxByHumanSessionReconcileUseCase.test.ts +1 -0
- package/src/domain/usecases/issueReactivationTriggerIsPending.test.ts +1 -0
- package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/tokenStatusWriter.d.ts.map +1 -1
- package/types/adapter/repositories/NodeLocalCommandRunner.d.ts +1 -0
- package/types/adapter/repositories/NodeLocalCommandRunner.d.ts.map +1 -1
- package/types/adapter/repositories/NodeTmuxSessionRepository.d.ts +1 -0
- package/types/adapter/repositories/NodeTmuxSessionRepository.d.ts.map +1 -1
- package/types/adapter/repositories/ProxyClaudeTokenUsageRepository.d.ts.map +1 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/RevertOrphanedPreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/LocalCommandRunner.d.ts +1 -0
- package/types/domain/usecases/adapter-interfaces/LocalCommandRunner.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/TmuxSessionRepository.d.ts +1 -0
- package/types/domain/usecases/adapter-interfaces/TmuxSessionRepository.d.ts.map +1 -1
- package/types/domain/usecases/awaitingOwnerApprovalMessage.d.ts +1 -1
- package/types/domain/usecases/awaitingOwnerApprovalMessage.d.ts.map +1 -1
- package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts.map +1 -1
- package/types/domain/usecases/dashboard/GenerateTokenStatusUseCase.d.ts +1 -0
- package/types/domain/usecases/dashboard/GenerateTokenStatusUseCase.d.ts.map +1 -1
|
@@ -62,6 +62,12 @@ const createMockProject = (): Project => ({
|
|
|
62
62
|
color: 'RED',
|
|
63
63
|
description: '',
|
|
64
64
|
},
|
|
65
|
+
{
|
|
66
|
+
id: '6',
|
|
67
|
+
name: 'Todo by human',
|
|
68
|
+
color: 'GREEN',
|
|
69
|
+
description: '',
|
|
70
|
+
},
|
|
65
71
|
],
|
|
66
72
|
},
|
|
67
73
|
nextActionDate: null,
|
|
@@ -164,6 +170,7 @@ describe('RevertOrphanedPreparationUseCase', () => {
|
|
|
164
170
|
};
|
|
165
171
|
mockLocalCommandRunner = {
|
|
166
172
|
runCommand: jest.fn(),
|
|
173
|
+
spawnInteractive: jest.fn(),
|
|
167
174
|
};
|
|
168
175
|
useCase = new RevertOrphanedPreparationUseCase(
|
|
169
176
|
mockProjectRepository,
|
|
@@ -2159,7 +2166,7 @@ describe('RevertOrphanedPreparationUseCase', () => {
|
|
|
2159
2166
|
);
|
|
2160
2167
|
});
|
|
2161
2168
|
|
|
2162
|
-
it('should
|
|
2169
|
+
it('should move an orphaned issue to Todo by human with AWAITING_OWNER_APPROVAL when last report declares waitingForOwnerApproval', async () => {
|
|
2163
2170
|
const stuckIssue = createMockIssue({
|
|
2164
2171
|
url: 'https://github.com/user/repo/issues/10',
|
|
2165
2172
|
status: 'Preparation',
|
|
@@ -2192,7 +2199,7 @@ describe('RevertOrphanedPreparationUseCase', () => {
|
|
|
2192
2199
|
});
|
|
2193
2200
|
|
|
2194
2201
|
expect(mockIssueRepository.updateStatus.mock.calls).toHaveLength(1);
|
|
2195
|
-
expect(mockIssueRepository.updateStatus.mock.calls[0][2]).toBe('
|
|
2202
|
+
expect(mockIssueRepository.updateStatus.mock.calls[0][2]).toBe('6');
|
|
2196
2203
|
expect(mockIssueCommentRepository.createComment.mock.calls).toHaveLength(1);
|
|
2197
2204
|
expect(mockIssueCommentRepository.createComment.mock.calls[0][1]).toContain(
|
|
2198
2205
|
'Auto Status Check: AWAITING_OWNER_APPROVAL',
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
AWAITING_WORKSPACE_STATUS_NAME,
|
|
14
14
|
FAILED_PREPARATION_STATUS_NAME,
|
|
15
15
|
PREPARATION_STATUS_NAME,
|
|
16
|
+
TODO_STATUS_NAME,
|
|
16
17
|
} from '../entities/WorkflowStatus';
|
|
17
18
|
import { resolveLabelsNotRequiringPullRequest } from './resolveLabelsNotRequiringPullRequest';
|
|
18
19
|
import { isPullRequestDeclaredUnnecessary } from './isPullRequestDeclaredUnnecessary';
|
|
@@ -119,6 +120,10 @@ export class RevertOrphanedPreparationUseCase {
|
|
|
119
120
|
(s) => s.name === FAILED_PREPARATION_STATUS_NAME,
|
|
120
121
|
);
|
|
121
122
|
|
|
123
|
+
const todoStatusOption = project.status.statuses.find(
|
|
124
|
+
(s) => s.name === TODO_STATUS_NAME,
|
|
125
|
+
);
|
|
126
|
+
|
|
122
127
|
for (const issue of preparationIssues) {
|
|
123
128
|
const isOrphaned = await this.isOrphanedIssue(issue, params);
|
|
124
129
|
if (!isOrphaned) {
|
|
@@ -211,11 +216,14 @@ export class RevertOrphanedPreparationUseCase {
|
|
|
211
216
|
) &&
|
|
212
217
|
comment.content.startsWith(AWAITING_OWNER_APPROVAL_MESSAGE_HEAD),
|
|
213
218
|
).length;
|
|
214
|
-
if (
|
|
219
|
+
if (
|
|
220
|
+
awaitingOwnerApprovalCount < ownerApprovalTimeoutCycles &&
|
|
221
|
+
todoStatusOption
|
|
222
|
+
) {
|
|
215
223
|
await this.issueRepository.updateStatus(
|
|
216
224
|
project,
|
|
217
225
|
issue,
|
|
218
|
-
|
|
226
|
+
todoStatusOption.id,
|
|
219
227
|
);
|
|
220
228
|
await this.issueCommentRepository.createComment(
|
|
221
229
|
issue,
|
|
@@ -132,6 +132,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
132
132
|
};
|
|
133
133
|
mockLocalCommandRunner = {
|
|
134
134
|
runCommand: jest.fn(),
|
|
135
|
+
spawnInteractive: jest.fn(),
|
|
135
136
|
};
|
|
136
137
|
mockClaudeTokenUsageRepository = {
|
|
137
138
|
ensureObservable: jest.fn().mockResolvedValue(undefined),
|
|
@@ -6891,6 +6892,112 @@ describe('StartPreparationUseCase', () => {
|
|
|
6891
6892
|
expect(storyUnsetWarningCalls).toHaveLength(0);
|
|
6892
6893
|
consoleWarnSpy.mockRestore();
|
|
6893
6894
|
});
|
|
6895
|
+
|
|
6896
|
+
describe('token in-flight count refresh', () => {
|
|
6897
|
+
it('refreshes the token in-flight counts once before abandoning a run so a freed slot is used', async () => {
|
|
6898
|
+
const awaitingIssue = createMockIssue({
|
|
6899
|
+
url: 'url1',
|
|
6900
|
+
title: 'Issue 1',
|
|
6901
|
+
labels: ['category:impl'],
|
|
6902
|
+
status: 'Awaiting Workspace',
|
|
6903
|
+
number: 1,
|
|
6904
|
+
itemId: 'item-1',
|
|
6905
|
+
});
|
|
6906
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
6907
|
+
mockIssueRepository.getStoryObjectMap.mockResolvedValue(
|
|
6908
|
+
createMockStoryObjectMap([awaitingIssue]),
|
|
6909
|
+
);
|
|
6910
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
6911
|
+
stdout: '',
|
|
6912
|
+
stderr: '',
|
|
6913
|
+
exitCode: 0,
|
|
6914
|
+
});
|
|
6915
|
+
mockClaudeTokenUsageRepository.getAvailableTokenUsages.mockResolvedValue([
|
|
6916
|
+
{
|
|
6917
|
+
name: 'token-a',
|
|
6918
|
+
token: 'token-a',
|
|
6919
|
+
fiveHourUtilization: 0.1,
|
|
6920
|
+
sevenDayUtilization: 0.1,
|
|
6921
|
+
blocked: false,
|
|
6922
|
+
rejected: false,
|
|
6923
|
+
fiveHourRejected: false,
|
|
6924
|
+
blockedUntilEpoch: 0,
|
|
6925
|
+
modelWeeklyLimits: {},
|
|
6926
|
+
},
|
|
6927
|
+
]);
|
|
6928
|
+
mockClaudeTokenUsageRepository.getTokenInFlightCounts
|
|
6929
|
+
.mockResolvedValueOnce({ 'token-a': 6 })
|
|
6930
|
+
.mockResolvedValueOnce({ 'token-a': 0 });
|
|
6931
|
+
|
|
6932
|
+
await useCase.run({
|
|
6933
|
+
projectUrl: 'https://github.com/user/repo',
|
|
6934
|
+
defaultAgentName: 'agent1',
|
|
6935
|
+
defaultLlmModelName: 'claude-opus',
|
|
6936
|
+
fallbackLlmModelName: null,
|
|
6937
|
+
defaultLlmAgentName: null,
|
|
6938
|
+
configFilePath: '/path/to/config.yml',
|
|
6939
|
+
maximumPreparingIssuesCount: null,
|
|
6940
|
+
utilizationPercentageThreshold: 90,
|
|
6941
|
+
allowedIssueAuthors: ['testuser'],
|
|
6942
|
+
manager: 'manager-user',
|
|
6943
|
+
codexHomeCandidates: null,
|
|
6944
|
+
labelsAsLlmAgentName: null,
|
|
6945
|
+
});
|
|
6946
|
+
|
|
6947
|
+
expect(
|
|
6948
|
+
mockClaudeTokenUsageRepository.getTokenInFlightCounts.mock.calls,
|
|
6949
|
+
).toHaveLength(2);
|
|
6950
|
+
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(1);
|
|
6951
|
+
});
|
|
6952
|
+
|
|
6953
|
+
it('abandons the run when the refreshed in-flight counts still leave no token slot', async () => {
|
|
6954
|
+
const awaitingIssue = createMockIssue({
|
|
6955
|
+
url: 'url1',
|
|
6956
|
+
title: 'Issue 1',
|
|
6957
|
+
labels: ['category:impl'],
|
|
6958
|
+
status: 'Awaiting Workspace',
|
|
6959
|
+
number: 1,
|
|
6960
|
+
itemId: 'item-1',
|
|
6961
|
+
});
|
|
6962
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
6963
|
+
mockIssueRepository.getStoryObjectMap.mockResolvedValue(
|
|
6964
|
+
createMockStoryObjectMap([awaitingIssue]),
|
|
6965
|
+
);
|
|
6966
|
+
mockClaudeTokenUsageRepository.getAvailableTokenUsages.mockResolvedValue([
|
|
6967
|
+
{
|
|
6968
|
+
name: 'token-a',
|
|
6969
|
+
token: 'token-a',
|
|
6970
|
+
fiveHourUtilization: 0.1,
|
|
6971
|
+
sevenDayUtilization: 0.1,
|
|
6972
|
+
blocked: false,
|
|
6973
|
+
rejected: false,
|
|
6974
|
+
fiveHourRejected: false,
|
|
6975
|
+
blockedUntilEpoch: 0,
|
|
6976
|
+
modelWeeklyLimits: {},
|
|
6977
|
+
},
|
|
6978
|
+
]);
|
|
6979
|
+
mockClaudeTokenUsageRepository.getTokenInFlightCounts.mockResolvedValue({
|
|
6980
|
+
'token-a': 6,
|
|
6981
|
+
});
|
|
6982
|
+
|
|
6983
|
+
await useCase.run({
|
|
6984
|
+
projectUrl: 'https://github.com/user/repo',
|
|
6985
|
+
defaultAgentName: 'agent1',
|
|
6986
|
+
defaultLlmModelName: 'claude-opus',
|
|
6987
|
+
fallbackLlmModelName: null,
|
|
6988
|
+
defaultLlmAgentName: null,
|
|
6989
|
+
configFilePath: '/path/to/config.yml',
|
|
6990
|
+
maximumPreparingIssuesCount: null,
|
|
6991
|
+
utilizationPercentageThreshold: 90,
|
|
6992
|
+
allowedIssueAuthors: ['testuser'],
|
|
6993
|
+
manager: 'manager-user',
|
|
6994
|
+
codexHomeCandidates: null,
|
|
6995
|
+
labelsAsLlmAgentName: null,
|
|
6996
|
+
});
|
|
6997
|
+
|
|
6998
|
+
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(0);
|
|
6999
|
+
});
|
|
7000
|
+
});
|
|
6894
7001
|
});
|
|
6895
7002
|
|
|
6896
7003
|
describe('StartPreparationUseCase.buildRotationOrder', () => {
|
|
@@ -6929,6 +7036,7 @@ describe('StartPreparationUseCase.buildRotationOrder', () => {
|
|
|
6929
7036
|
};
|
|
6930
7037
|
const mockLocalCommandRunnerForRotation: Mocked<LocalCommandRunner> = {
|
|
6931
7038
|
runCommand: jest.fn(),
|
|
7039
|
+
spawnInteractive: jest.fn(),
|
|
6932
7040
|
};
|
|
6933
7041
|
const mockClaudeTokenUsageRepositoryForRotation: Mocked<ClaudeTokenUsageRepository> =
|
|
6934
7042
|
{
|
|
@@ -7235,7 +7343,7 @@ describe('StartPreparationUseCase.getTokenConcurrentLimit', () => {
|
|
|
7235
7343
|
setIssueAgentField: jest.fn(),
|
|
7236
7344
|
removeLabel: jest.fn(),
|
|
7237
7345
|
},
|
|
7238
|
-
{ runCommand: jest.fn() },
|
|
7346
|
+
{ runCommand: jest.fn(), spawnInteractive: jest.fn() },
|
|
7239
7347
|
{
|
|
7240
7348
|
ensureObservable: jest.fn(),
|
|
7241
7349
|
getAvailableTokenUsages: jest.fn(),
|
|
@@ -7326,7 +7434,7 @@ describe('StartPreparationUseCase.fetchSpawnCandidateBranchSources', () => {
|
|
|
7326
7434
|
removeLabel: jest.fn(),
|
|
7327
7435
|
...issueRepositoryOverrides,
|
|
7328
7436
|
},
|
|
7329
|
-
{ runCommand: jest.fn() },
|
|
7437
|
+
{ runCommand: jest.fn(), spawnInteractive: jest.fn() },
|
|
7330
7438
|
{
|
|
7331
7439
|
ensureObservable: jest.fn(),
|
|
7332
7440
|
getAvailableTokenUsages: jest.fn(),
|
|
@@ -517,6 +517,7 @@ export class StartPreparationUseCase {
|
|
|
517
517
|
let updatedCurrentPreparationIssueCount = currentPreparationIssueCount;
|
|
518
518
|
let startedInThisRunCount = 0;
|
|
519
519
|
const spawnedInThisRunByToken: Record<string, number> = {};
|
|
520
|
+
let tokenInFlightCountsRefreshed = false;
|
|
520
521
|
const exclusionCounts = {
|
|
521
522
|
dependedIssueUrls: 0,
|
|
522
523
|
futureNextActionDate: 0,
|
|
@@ -730,23 +731,39 @@ export class StartPreparationUseCase {
|
|
|
730
731
|
let routedModelName: string | null = null;
|
|
731
732
|
let selectedTokenName: string | null = null;
|
|
732
733
|
if (rotationTokens !== null && proxyBaseUrl !== null) {
|
|
733
|
-
const
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
t.
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
734
|
+
const tokenWithSoonestResetAmongAvailableOf = ():
|
|
735
|
+
{ token: string; model: string } | undefined =>
|
|
736
|
+
selectedTokensWithLimits
|
|
737
|
+
.map((t) => ({
|
|
738
|
+
token: t.token,
|
|
739
|
+
model: t.model,
|
|
740
|
+
remaining:
|
|
741
|
+
t.limit -
|
|
742
|
+
(tokenInFlightCounts[t.token] ?? 0) -
|
|
743
|
+
(spawnedInThisRunByToken[t.token] ?? 0),
|
|
744
|
+
secondsUntilSevenDayReset: t.secondsUntilSevenDayReset,
|
|
745
|
+
}))
|
|
746
|
+
.filter((t) => t.remaining > 0)
|
|
747
|
+
.sort((a, b) => {
|
|
748
|
+
if (a.secondsUntilSevenDayReset !== b.secondsUntilSevenDayReset) {
|
|
749
|
+
return (
|
|
750
|
+
a.secondsUntilSevenDayReset - b.secondsUntilSevenDayReset
|
|
751
|
+
);
|
|
752
|
+
}
|
|
753
|
+
return b.remaining - a.remaining;
|
|
754
|
+
})[0];
|
|
755
|
+
let tokenWithSoonestResetAmongAvailable =
|
|
756
|
+
tokenWithSoonestResetAmongAvailableOf();
|
|
757
|
+
if (
|
|
758
|
+
tokenWithSoonestResetAmongAvailable === undefined &&
|
|
759
|
+
!tokenInFlightCountsRefreshed
|
|
760
|
+
) {
|
|
761
|
+
tokenInFlightCountsRefreshed = true;
|
|
762
|
+
tokenInFlightCounts =
|
|
763
|
+
await this.claudeTokenUsageRepository.getTokenInFlightCounts();
|
|
764
|
+
tokenWithSoonestResetAmongAvailable =
|
|
765
|
+
tokenWithSoonestResetAmongAvailableOf();
|
|
766
|
+
}
|
|
750
767
|
if (tokenWithSoonestResetAmongAvailable === undefined) {
|
|
751
768
|
await revertToAwaitingWorkspace(
|
|
752
769
|
'every Claude OAuth token reached its concurrent worker limit',
|
|
@@ -13,4 +13,8 @@ export interface TmuxSessionRepository {
|
|
|
13
13
|
killOwnSession: () => Promise<void>;
|
|
14
14
|
sendKeys: (sessionName: string, literalText: string) => Promise<void>;
|
|
15
15
|
launchBareNameLeaderSession: (name: string) => Promise<void>;
|
|
16
|
+
attachOrCreateInteractiveSession: (
|
|
17
|
+
issueUrl: string,
|
|
18
|
+
scopeLibPath: string | null,
|
|
19
|
+
) => Promise<void>;
|
|
16
20
|
}
|
|
@@ -2,4 +2,4 @@ export const AWAITING_OWNER_APPROVAL_MESSAGE_HEAD =
|
|
|
2
2
|
'Auto Status Check: AWAITING_OWNER_APPROVAL';
|
|
3
3
|
|
|
4
4
|
export const AWAITING_OWNER_APPROVAL_MESSAGE = `${AWAITING_OWNER_APPROVAL_MESSAGE_HEAD}
|
|
5
|
-
The last report declared that this task is waiting for owner approval.
|
|
5
|
+
The last report declared that this task is waiting for owner approval. Moving it to Todo by human so that it waits in the owner's queue instead of being dispatched again.`;
|
|
@@ -800,19 +800,20 @@ describe('GenerateConsoleListsUseCase', () => {
|
|
|
800
800
|
});
|
|
801
801
|
|
|
802
802
|
describe('stories tab', () => {
|
|
803
|
-
it('includes one entry per
|
|
803
|
+
it('includes one entry per story option including GRAY', () => {
|
|
804
804
|
const result = run([]);
|
|
805
|
-
expect(result.stories.stories).toHaveLength(
|
|
805
|
+
expect(result.stories.stories).toHaveLength(3);
|
|
806
806
|
expect(result.stories.stories.map((s) => s.storyName)).toEqual([
|
|
807
|
+
'regular / NO STORY; SET STORY FIELD',
|
|
807
808
|
'Story Alpha',
|
|
808
809
|
'Story Beta',
|
|
809
810
|
]);
|
|
810
811
|
});
|
|
811
812
|
|
|
812
|
-
it('
|
|
813
|
+
it('includes story options whose color is GRAY', () => {
|
|
813
814
|
const result = run([]);
|
|
814
815
|
const names = result.stories.stories.map((s) => s.storyName);
|
|
815
|
-
expect(names).
|
|
816
|
+
expect(names).toContain('regular / NO STORY; SET STORY FIELD');
|
|
816
817
|
});
|
|
817
818
|
|
|
818
819
|
it('counts open items per story from all open issues on the board', () => {
|
|
@@ -173,17 +173,15 @@ export class GenerateConsoleListsUseCase {
|
|
|
173
173
|
const defaultNameWithOwner =
|
|
174
174
|
issues.find((issue) => issue.nameWithOwner !== '')?.nameWithOwner ?? null;
|
|
175
175
|
|
|
176
|
-
const storyEntries: ConsoleStoryEntry[] = storyOptions
|
|
177
|
-
|
|
178
|
-
.
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
: null,
|
|
186
|
-
}));
|
|
176
|
+
const storyEntries: ConsoleStoryEntry[] = storyOptions.map((option) => ({
|
|
177
|
+
storyName: option.name,
|
|
178
|
+
storyOptionId: option.id,
|
|
179
|
+
color: option.color,
|
|
180
|
+
openItemCount: openItemCountByStory.get(option.name) ?? 0,
|
|
181
|
+
storyViewUrl: urlOfStoryView
|
|
182
|
+
? `${urlOfStoryView}?sliceBy%5Bvalue%5D=${encodeForURI(option.name)}`
|
|
183
|
+
: null,
|
|
184
|
+
}));
|
|
187
185
|
|
|
188
186
|
return {
|
|
189
187
|
'workflow-blocker': buildStatusTabFromSource(
|
|
@@ -111,6 +111,7 @@ const snapshot = (
|
|
|
111
111
|
sevenDaySonnetRejected: false,
|
|
112
112
|
sevenDayOpusRejected: false,
|
|
113
113
|
hasWindowData: true,
|
|
114
|
+
lastUpdatedEpoch: 1_000_000,
|
|
114
115
|
...overrides,
|
|
115
116
|
});
|
|
116
117
|
|
|
@@ -280,3 +281,65 @@ describe('computeSevenDayWindowAggregate', () => {
|
|
|
280
281
|
expect(computeSevenDayWindowAggregate([])).toBeNull();
|
|
281
282
|
});
|
|
282
283
|
});
|
|
284
|
+
|
|
285
|
+
describe('GenerateTokenStatusUseCase window rollover inference', () => {
|
|
286
|
+
const usecase = new GenerateTokenStatusUseCase();
|
|
287
|
+
const now = 2_000_000;
|
|
288
|
+
|
|
289
|
+
const runFor = (
|
|
290
|
+
snapshotOverrides: Partial<TokenRateLimitSnapshot>,
|
|
291
|
+
): TokenStatus =>
|
|
292
|
+
usecase.run({
|
|
293
|
+
tokens: [
|
|
294
|
+
{
|
|
295
|
+
name: 'alice',
|
|
296
|
+
token: 'token-a',
|
|
297
|
+
snapshot: snapshot(snapshotOverrides),
|
|
298
|
+
},
|
|
299
|
+
],
|
|
300
|
+
prepCountByToken: new Map(),
|
|
301
|
+
humCountByToken: new Map(),
|
|
302
|
+
nowEpochSeconds: now,
|
|
303
|
+
})[0];
|
|
304
|
+
|
|
305
|
+
it('keeps the last observed utilization when the snapshot predates the reset it reports', () => {
|
|
306
|
+
const result = runFor({
|
|
307
|
+
sevenDayUtilization: 0.98,
|
|
308
|
+
sevenDayReset: now - 3600,
|
|
309
|
+
lastUpdatedEpoch: now - 72000,
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
expect(result.sevenDayUtilizationPercent).toBe(98);
|
|
313
|
+
});
|
|
314
|
+
|
|
315
|
+
it('keeps a seven day rejection visible when the snapshot predates the reset it reports', () => {
|
|
316
|
+
const result = runFor({
|
|
317
|
+
sevenDayUtilization: 0.98,
|
|
318
|
+
sevenDayReset: now - 3600,
|
|
319
|
+
sevenDayRejected: true,
|
|
320
|
+
lastUpdatedEpoch: now - 72000,
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
expect(result.color).toBe('K');
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
it('reports a rolled over window as unused when the snapshot was captured after that reset', () => {
|
|
327
|
+
const result = runFor({
|
|
328
|
+
sevenDayUtilization: 0.98,
|
|
329
|
+
sevenDayReset: now - 3600,
|
|
330
|
+
lastUpdatedEpoch: now - 1800,
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
expect(result.sevenDayUtilizationPercent).toBe(0);
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
it('keeps the last observed five hour utilization when the snapshot predates the five hour reset', () => {
|
|
337
|
+
const result = runFor({
|
|
338
|
+
fiveHourUtilization: 0.91,
|
|
339
|
+
fiveHourReset: now - 600,
|
|
340
|
+
lastUpdatedEpoch: now - 72000,
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
expect(result.fiveHourUtilizationPercent).toBe(91);
|
|
344
|
+
});
|
|
345
|
+
});
|
|
@@ -12,6 +12,7 @@ export type TokenRateLimitSnapshot = {
|
|
|
12
12
|
sevenDaySonnetRejected: boolean;
|
|
13
13
|
sevenDayOpusRejected: boolean;
|
|
14
14
|
hasWindowData: boolean;
|
|
15
|
+
lastUpdatedEpoch: number;
|
|
15
16
|
};
|
|
16
17
|
|
|
17
18
|
export type TokenRateLimitDecision = {
|
|
@@ -154,9 +155,13 @@ export class GenerateTokenStatusUseCase {
|
|
|
154
155
|
const sevenDayReset =
|
|
155
156
|
snapshot.sevenDayReset > 0 ? snapshot.sevenDayReset : null;
|
|
156
157
|
const fiveHourExpired =
|
|
157
|
-
fiveHourReset !== null &&
|
|
158
|
+
fiveHourReset !== null &&
|
|
159
|
+
fiveHourReset < nowEpochSeconds &&
|
|
160
|
+
snapshot.lastUpdatedEpoch >= fiveHourReset;
|
|
158
161
|
const sevenDayExpired =
|
|
159
|
-
sevenDayReset !== null &&
|
|
162
|
+
sevenDayReset !== null &&
|
|
163
|
+
sevenDayReset < nowEpochSeconds &&
|
|
164
|
+
snapshot.lastUpdatedEpoch >= sevenDayReset;
|
|
160
165
|
return {
|
|
161
166
|
fiveHourUtilizationPercent: fiveHourExpired
|
|
162
167
|
? 0
|
|
@@ -196,9 +201,13 @@ export class GenerateTokenStatusUseCase {
|
|
|
196
201
|
};
|
|
197
202
|
}
|
|
198
203
|
const fiveHourExpired =
|
|
199
|
-
snapshot.fiveHourReset > 0 &&
|
|
204
|
+
snapshot.fiveHourReset > 0 &&
|
|
205
|
+
snapshot.fiveHourReset < nowEpochSeconds &&
|
|
206
|
+
snapshot.lastUpdatedEpoch >= snapshot.fiveHourReset;
|
|
200
207
|
const sevenDayExpired =
|
|
201
|
-
snapshot.sevenDayReset > 0 &&
|
|
208
|
+
snapshot.sevenDayReset > 0 &&
|
|
209
|
+
snapshot.sevenDayReset < nowEpochSeconds &&
|
|
210
|
+
snapshot.lastUpdatedEpoch >= snapshot.sevenDayReset;
|
|
202
211
|
return {
|
|
203
212
|
fiveHourUtilization: fiveHourExpired ? 0 : snapshot.fiveHourUtilization,
|
|
204
213
|
sevenDayUtilization: sevenDayExpired ? 0 : snapshot.sevenDayUtilization,
|
|
@@ -394,6 +394,7 @@ describe('spawn and finish sides agree on the reactivation trigger predicate', (
|
|
|
394
394
|
runCommand: jest
|
|
395
395
|
.fn()
|
|
396
396
|
.mockResolvedValue({ stdout: '', stderr: '', exitCode: 0 }),
|
|
397
|
+
spawnInteractive: jest.fn(),
|
|
397
398
|
};
|
|
398
399
|
spawnMockClaudeTokenUsageRepository = {
|
|
399
400
|
ensureObservable: jest.fn().mockResolvedValue(undefined),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AA8OzB,eAAO,MAAM,OAAO,SAAgB,CAAC;AA2kCrC,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,IAGxD,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EAAE,EACd,kBAAkB,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,KACzC,OAAO,CAAC,IAAI,CAMd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenStatusWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/tokenStatusWriter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EAGZ,MAAM,+DAA+D,CAAC;AAGvE,OAAO,EAAE,kCAAkC,EAAE,MAAM,gFAAgF,CAAC;AACpI,OAAO,EAAE,4BAA4B,EAAE,MAAM,0EAA0E,CAAC;AACxH,OAAO,EAAE,iBAAiB,EAAiB,MAAM,4BAA4B,CAAC;AAU9E,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IAC3D,4BAA4B,CAAC,EAAE,kCAAkC,CAAC;IAClE,eAAe,CAAC,EAAE,4BAA4B,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA0EF,eAAO,MAAM,wBAAwB,GACnC,UAAU,iBAAiB,GAAG,IAAI,KACjC,sBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"tokenStatusWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/tokenStatusWriter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EAGZ,MAAM,+DAA+D,CAAC;AAGvE,OAAO,EAAE,kCAAkC,EAAE,MAAM,gFAAgF,CAAC;AACpI,OAAO,EAAE,4BAA4B,EAAE,MAAM,0EAA0E,CAAC;AACxH,OAAO,EAAE,iBAAiB,EAAiB,MAAM,4BAA4B,CAAC;AAU9E,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IAC3D,4BAA4B,CAAC,EAAE,kCAAkC,CAAC;IAClE,eAAe,CAAC,EAAE,4BAA4B,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA0EF,eAAO,MAAM,wBAAwB,GACnC,UAAU,iBAAiB,GAAG,IAAI,KACjC,sBAAsB,GAAG,IA2B3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,uBAAuB,KAAG,IAkHlE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeLocalCommandRunner.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeLocalCommandRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,6DAA6D,CAAC;AAQrE,qBAAa,sBAAuB,YAAW,kBAAkB;IACzD,UAAU,CACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeLocalCommandRunner.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeLocalCommandRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,6DAA6D,CAAC;AAQrE,qBAAa,sBAAuB,YAAW,kBAAkB;IACzD,UAAU,CACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IA0CF,gBAAgB,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,EAAE,KAAG,IAAI,CAExD;CACH"}
|
|
@@ -14,6 +14,7 @@ export declare class NodeTmuxSessionRepository implements TmuxSessionRepository
|
|
|
14
14
|
killOwnSession: () => Promise<void>;
|
|
15
15
|
private stopScopeUnit;
|
|
16
16
|
sendKeys: (sessionName: string, literalText: string) => Promise<void>;
|
|
17
|
+
attachOrCreateInteractiveSession: (issueUrl: string, scopeLibPath: string | null) => Promise<void>;
|
|
17
18
|
launchBareNameLeaderSession: (name: string) => Promise<void>;
|
|
18
19
|
private sendEnter;
|
|
19
20
|
private delaySubmit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAWxE,qBAAa,yBAA0B,YAAW,qBAAqB;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAFvB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,GAAE,MAAgB,EAC/B,uBAAuB,GAAE,MAA0C;IAGtF,oBAAoB,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAYhD;IAEF,4BAA4B,QAAa,OAAO,CAAC,eAAe,EAAE,CAAC,CAkBjE;IAEF,kCAAkC,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAY9D;IAEF,qBAAqB,GACnB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAcd;IAEF,WAAW,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CActD;IAEF,cAAc,QAAa,OAAO,CAAC,IAAI,CAAC,CAatC;IAEF,OAAO,CAAC,aAAa,CAsBnB;IAEF,QAAQ,GACN,aAAa,MAAM,EACnB,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAiBd;IAEF,2BAA2B,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAc/D;IAEF,OAAO,CAAC,SAAS,CAcf;IAEF,OAAO,CAAC,WAAW,CAOjB;CACH"}
|
|
1
|
+
{"version":3,"file":"NodeTmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAWxE,qBAAa,yBAA0B,YAAW,qBAAqB;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAFvB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,GAAE,MAAgB,EAC/B,uBAAuB,GAAE,MAA0C;IAGtF,oBAAoB,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAYhD;IAEF,4BAA4B,QAAa,OAAO,CAAC,eAAe,EAAE,CAAC,CAkBjE;IAEF,kCAAkC,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAY9D;IAEF,qBAAqB,GACnB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAcd;IAEF,WAAW,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CActD;IAEF,cAAc,QAAa,OAAO,CAAC,IAAI,CAAC,CAatC;IAEF,OAAO,CAAC,aAAa,CAsBnB;IAEF,QAAQ,GACN,aAAa,MAAM,EACnB,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAiBd;IAEF,gCAAgC,GAC9B,UAAU,MAAM,EAChB,cAAc,MAAM,GAAG,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,CAgCd;IAEF,2BAA2B,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAc/D;IAEF,OAAO,CAAC,SAAS,CAcf;IAEF,OAAO,CAAC,WAAW,CAOjB;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyClaudeTokenUsageRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AAOjH,qBAAa,+BAAgC,YAAW,0BAA0B;IAE9E,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,IAAI,GAAE,MAAmB;IAG5C,gBAAgB,QAAa,OAAO,CAAC,IAAI,CAAC,CAExC;IAEF,uBAAuB,QAAa,OAAO,CAAC,gBAAgB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"ProxyClaudeTokenUsageRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AAOjH,qBAAa,+BAAgC,YAAW,0BAA0B;IAE9E,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,IAAI,GAAE,MAAmB;IAG5C,gBAAgB,QAAa,OAAO,CAAC,IAAI,CAAC,CAExC;IAEF,uBAAuB,QAAa,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2F7D;IAEF,sBAAsB,QAAa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkChE;IAEF,OAAO,CAAC,0BAA0B,CAShC;IAEF,OAAO,CAAC,aAAa,CAYnB;IAEF,YAAY,QAAO,MAAM,CAAoC;CAC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RevertOrphanedPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertOrphanedPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"RevertOrphanedPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertOrphanedPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AA0C7E,qBAAa,gCAAgC;IAEzC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAC9B,iBAAiB,EACf,oBAAoB,GACpB,YAAY,GACZ,aAAa,GACb,UAAU,GACV,iBAAiB,CACpB;IACD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,GACpB,KAAK,GACL,oBAAoB,CACvB;IACD,QAAQ,CAAC,sBAAsB,EAAE,IAAI,CACnC,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC;IACD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB;gBArBtC,iBAAiB,EAAE,IAAI,CAC9B,iBAAiB,EACf,oBAAoB,GACpB,YAAY,GACZ,aAAa,GACb,UAAU,GACV,iBAAiB,CACpB,EACQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,GACpB,KAAK,GACL,oBAAoB,CACvB,EACQ,sBAAsB,EAAE,IAAI,CACnC,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC,EACQ,kBAAkB,EAAE,kBAAkB;IAGjD,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B,EAAE,MAAM,CAAC;QACvC,sBAAsB,EAAE,MAAM,CAAC;QAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,0BAA0B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3C,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,6BAA6B,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACtC,0BAA0B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5C,KAAG,OAAO,CAAC,IAAI,CAAC,CAmOf;IAEF,OAAO,CAAC,oBAAoB,CAqB1B;IAEF,OAAO,CAAC,eAAe,CAwGrB;IAEF,OAAO,CAAC,uBAAuB,CAQ7B;IAEF,OAAO,CAAC,qBAAqB,CAyB3B;IAEF,OAAO,CAAC,eAAe,CA6BrB;IAEF,OAAO,CAAC,YAAY,CA+BlB;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalCommandRunner.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/LocalCommandRunner.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CACR,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalCommandRunner.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/LocalCommandRunner.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CACR,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACzD"}
|
|
@@ -8,5 +8,6 @@ export interface TmuxSessionRepository {
|
|
|
8
8
|
killOwnSession: () => Promise<void>;
|
|
9
9
|
sendKeys: (sessionName: string, literalText: string) => Promise<void>;
|
|
10
10
|
launchBareNameLeaderSession: (name: string) => Promise<void>;
|
|
11
|
+
attachOrCreateInteractiveSession: (issueUrl: string, scopeLibPath: string | null) => Promise<void>;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=TmuxSessionRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,4BAA4B,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/D,kCAAkC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,qBAAqB,EAAE,CACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,2BAA2B,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"TmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,4BAA4B,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/D,kCAAkC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,qBAAqB,EAAE,CACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,2BAA2B,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,gCAAgC,EAAE,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,IAAI,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare const AWAITING_OWNER_APPROVAL_MESSAGE_HEAD = "Auto Status Check: AWAITING_OWNER_APPROVAL";
|
|
2
|
-
export declare const AWAITING_OWNER_APPROVAL_MESSAGE = "Auto Status Check: AWAITING_OWNER_APPROVAL\nThe last report declared that this task is waiting for owner approval.
|
|
2
|
+
export declare const AWAITING_OWNER_APPROVAL_MESSAGE = "Auto Status Check: AWAITING_OWNER_APPROVAL\nThe last report declared that this task is waiting for owner approval. Moving it to Todo by human so that it waits in the owner's queue instead of being dispatched again.";
|
|
3
3
|
//# sourceMappingURL=awaitingOwnerApprovalMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awaitingOwnerApprovalMessage.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/awaitingOwnerApprovalMessage.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oCAAoC,+CACH,CAAC;AAE/C,eAAO,MAAM,+BAA+B,
|
|
1
|
+
{"version":3,"file":"awaitingOwnerApprovalMessage.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/awaitingOwnerApprovalMessage.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oCAAoC,+CACH,CAAC;AAE/C,eAAO,MAAM,+BAA+B,2NAC+H,CAAC"}
|