github-issue-tower-defence-management 1.65.0 → 1.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +7 -7
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +1 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js +5 -0
- package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js.map +1 -1
- package/bin/domain/entities/WorkflowStatus.js +2 -6
- package/bin/domain/entities/WorkflowStatus.js.map +1 -1
- package/bin/domain/usecases/SetupTowerDefenceProjectUseCase.js +14 -1
- package/bin/domain/usecases/SetupTowerDefenceProjectUseCase.js.map +1 -1
- package/bin/domain/usecases/StartPreparationUseCase.js +59 -121
- package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +1 -0
- package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.test.ts +14 -0
- package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts +5 -0
- package/src/domain/entities/ClaudeTokenUsage.ts +1 -0
- package/src/domain/entities/WorkflowStatus.ts +2 -5
- package/src/domain/usecases/SetupTowerDefenceProjectUseCase.test.ts +432 -36
- package/src/domain/usecases/SetupTowerDefenceProjectUseCase.ts +31 -0
- package/src/domain/usecases/StartPreparationUseCase.test.ts +87 -306
- package/src/domain/usecases/StartPreparationUseCase.ts +80 -175
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/adapter/repositories/ProxyClaudeTokenUsageRepository.d.ts.map +1 -1
- package/types/domain/entities/ClaudeTokenUsage.d.ts +1 -0
- package/types/domain/entities/ClaudeTokenUsage.d.ts.map +1 -1
- package/types/domain/entities/WorkflowStatus.d.ts +1 -1
- package/types/domain/entities/WorkflowStatus.d.ts.map +1 -1
- package/types/domain/usecases/SetupTowerDefenceProjectUseCase.d.ts +3 -1
- package/types/domain/usecases/SetupTowerDefenceProjectUseCase.d.ts.map +1 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts +2 -6
- package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -172,6 +172,7 @@ export class HandleScheduledEventUseCaseHandler {
|
|
|
172
172
|
);
|
|
173
173
|
const setupTowerDefenceProjectUseCase = new SetupTowerDefenceProjectUseCase(
|
|
174
174
|
projectRepository,
|
|
175
|
+
issueRepository,
|
|
175
176
|
);
|
|
176
177
|
const actionAnnouncement = new ActionAnnouncementUseCase(issueRepository);
|
|
177
178
|
const setWorkflowManagementIssueToStoryUseCase =
|
|
@@ -99,6 +99,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
99
99
|
name: 'alice',
|
|
100
100
|
token: 'token-a',
|
|
101
101
|
fiveHourUtilization: 42,
|
|
102
|
+
sevenDayUtilization: 0,
|
|
102
103
|
blocked: false,
|
|
103
104
|
rejected: false,
|
|
104
105
|
modelWeeklyLimits: {},
|
|
@@ -107,6 +108,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
107
108
|
name: 'bob',
|
|
108
109
|
token: 'token-b',
|
|
109
110
|
fiveHourUtilization: 0,
|
|
111
|
+
sevenDayUtilization: 0,
|
|
110
112
|
blocked: false,
|
|
111
113
|
rejected: false,
|
|
112
114
|
modelWeeklyLimits: {},
|
|
@@ -139,6 +141,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
139
141
|
name: 'alice',
|
|
140
142
|
token: 'token-a',
|
|
141
143
|
fiveHourUtilization: 5,
|
|
144
|
+
sevenDayUtilization: 0,
|
|
142
145
|
blocked: true,
|
|
143
146
|
rejected: false,
|
|
144
147
|
modelWeeklyLimits: {},
|
|
@@ -171,6 +174,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
171
174
|
name: 'alice',
|
|
172
175
|
token: 'token-a',
|
|
173
176
|
fiveHourUtilization: 100,
|
|
177
|
+
sevenDayUtilization: 0,
|
|
174
178
|
blocked: false,
|
|
175
179
|
rejected: true,
|
|
176
180
|
modelWeeklyLimits: {},
|
|
@@ -203,6 +207,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
203
207
|
name: 'alice',
|
|
204
208
|
token: 'token-a',
|
|
205
209
|
fiveHourUtilization: 0,
|
|
210
|
+
sevenDayUtilization: 30,
|
|
206
211
|
blocked: false,
|
|
207
212
|
rejected: false,
|
|
208
213
|
modelWeeklyLimits: {},
|
|
@@ -235,6 +240,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
235
240
|
name: 'alice',
|
|
236
241
|
token: 'token-a',
|
|
237
242
|
fiveHourUtilization: 95,
|
|
243
|
+
sevenDayUtilization: 0,
|
|
238
244
|
blocked: false,
|
|
239
245
|
rejected: false,
|
|
240
246
|
modelWeeklyLimits: {},
|
|
@@ -267,6 +273,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
267
273
|
name: 'alice',
|
|
268
274
|
token: 'token-a',
|
|
269
275
|
fiveHourUtilization: 0,
|
|
276
|
+
sevenDayUtilization: 0,
|
|
270
277
|
blocked: false,
|
|
271
278
|
rejected: false,
|
|
272
279
|
modelWeeklyLimits: {},
|
|
@@ -299,6 +306,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
299
306
|
name: 'alice',
|
|
300
307
|
token: 'token-a',
|
|
301
308
|
fiveHourUtilization: 10,
|
|
309
|
+
sevenDayUtilization: 0,
|
|
302
310
|
blocked: false,
|
|
303
311
|
rejected: false,
|
|
304
312
|
modelWeeklyLimits: {},
|
|
@@ -331,6 +339,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
331
339
|
name: 'alice',
|
|
332
340
|
token: 'token-a',
|
|
333
341
|
fiveHourUtilization: 100,
|
|
342
|
+
sevenDayUtilization: 0,
|
|
334
343
|
blocked: false,
|
|
335
344
|
rejected: true,
|
|
336
345
|
modelWeeklyLimits: {},
|
|
@@ -363,6 +372,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
363
372
|
name: 'alice',
|
|
364
373
|
token: 'token-a',
|
|
365
374
|
fiveHourUtilization: 0,
|
|
375
|
+
sevenDayUtilization: 100,
|
|
366
376
|
blocked: false,
|
|
367
377
|
rejected: true,
|
|
368
378
|
modelWeeklyLimits: {},
|
|
@@ -395,6 +405,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
395
405
|
name: 'alice',
|
|
396
406
|
token: 'token-a',
|
|
397
407
|
fiveHourUtilization: 0,
|
|
408
|
+
sevenDayUtilization: 0,
|
|
398
409
|
blocked: false,
|
|
399
410
|
rejected: false,
|
|
400
411
|
modelWeeklyLimits: {},
|
|
@@ -416,6 +427,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
416
427
|
name: 'alice',
|
|
417
428
|
token: 'token-a',
|
|
418
429
|
fiveHourUtilization: 0,
|
|
430
|
+
sevenDayUtilization: 0,
|
|
419
431
|
blocked: false,
|
|
420
432
|
rejected: false,
|
|
421
433
|
modelWeeklyLimits: {},
|
|
@@ -450,6 +462,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
450
462
|
name: 'alice',
|
|
451
463
|
token: 'token-a',
|
|
452
464
|
fiveHourUtilization: 5,
|
|
465
|
+
sevenDayUtilization: 10,
|
|
453
466
|
blocked: false,
|
|
454
467
|
rejected: false,
|
|
455
468
|
modelWeeklyLimits: {
|
|
@@ -486,6 +499,7 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
486
499
|
name: 'alice',
|
|
487
500
|
token: 'token-a',
|
|
488
501
|
fiveHourUtilization: 5,
|
|
502
|
+
sevenDayUtilization: 10,
|
|
489
503
|
blocked: false,
|
|
490
504
|
rejected: false,
|
|
491
505
|
modelWeeklyLimits: {
|
|
@@ -30,6 +30,7 @@ export class ProxyClaudeTokenUsageRepository implements ClaudeTokenUsageReposito
|
|
|
30
30
|
name,
|
|
31
31
|
token,
|
|
32
32
|
fiveHourUtilization: 0,
|
|
33
|
+
sevenDayUtilization: 0,
|
|
33
34
|
blocked: false,
|
|
34
35
|
rejected: false,
|
|
35
36
|
modelWeeklyLimits: {},
|
|
@@ -40,6 +41,9 @@ export class ProxyClaudeTokenUsageRepository implements ClaudeTokenUsageReposito
|
|
|
40
41
|
const fiveHourUtilization = fiveHourExpired
|
|
41
42
|
? 0
|
|
42
43
|
: snapshot.fiveHourUtilization;
|
|
44
|
+
const sevenDayUtilization = sevenDayExpired
|
|
45
|
+
? 0
|
|
46
|
+
: snapshot.sevenDayUtilization;
|
|
43
47
|
const fiveHourRejectionActive =
|
|
44
48
|
snapshot.fiveHourRejected && !fiveHourExpired;
|
|
45
49
|
const sevenDayRejectionActive =
|
|
@@ -67,6 +71,7 @@ export class ProxyClaudeTokenUsageRepository implements ClaudeTokenUsageReposito
|
|
|
67
71
|
name,
|
|
68
72
|
token,
|
|
69
73
|
fiveHourUtilization,
|
|
74
|
+
sevenDayUtilization,
|
|
70
75
|
blocked: snapshot.blocked,
|
|
71
76
|
rejected,
|
|
72
77
|
modelWeeklyLimits,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { FieldOption } from './Project';
|
|
2
2
|
|
|
3
3
|
export const DEFAULT_STATUS_NAME = 'Unread';
|
|
4
|
-
export const AWAITING_TASK_BREAKDOWN_STATUS_NAME = 'Awaiting Task Breakdown';
|
|
5
4
|
export const AWAITING_WORKSPACE_STATUS_NAME = 'Awaiting Workspace';
|
|
6
5
|
export const PREPARATION_STATUS_NAME = 'Preparation';
|
|
7
6
|
export const FAILED_PREPARATION_STATUS_NAME = 'Failed Preparation';
|
|
@@ -14,6 +13,8 @@ export const ICEBOX_STATUS_NAME = 'Icebox';
|
|
|
14
13
|
|
|
15
14
|
export const LEGACY_TODO_STATUS_NAME = 'Todo';
|
|
16
15
|
export const LEGACY_IN_TMUX_STATUS_NAME = 'In Tmux';
|
|
16
|
+
export const LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME =
|
|
17
|
+
'Awaiting Task Breakdown';
|
|
17
18
|
|
|
18
19
|
export type WorkflowStatusDefinition = {
|
|
19
20
|
name: string;
|
|
@@ -25,10 +26,6 @@ export const REQUIRED_WORKFLOW_STATUSES: WorkflowStatusDefinition[] = [
|
|
|
25
26
|
name: DEFAULT_STATUS_NAME,
|
|
26
27
|
color: 'ORANGE',
|
|
27
28
|
},
|
|
28
|
-
{
|
|
29
|
-
name: AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
30
|
-
color: 'ORANGE',
|
|
31
|
-
},
|
|
32
29
|
{
|
|
33
30
|
name: AWAITING_WORKSPACE_STATUS_NAME,
|
|
34
31
|
color: 'BLUE',
|