github-issue-tower-defence-management 1.168.3 → 1.169.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 +19 -0
- package/README.md +2 -0
- package/bin/adapter/entry-points/cli/index.js +4 -0
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +3 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/domain/usecases/AgentDesignationLabelAdoptUseCase.js +42 -0
- package/bin/domain/usecases/AgentDesignationLabelAdoptUseCase.js.map +1 -0
- package/bin/domain/usecases/HandleScheduledEventUseCase.js +7 -1
- package/bin/domain/usecases/HandleScheduledEventUseCase.js.map +1 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js +41 -0
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/StartPreparationUseCase.js +2 -19
- package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
- package/package.json +2 -2
- package/src/adapter/entry-points/cli/index.test.ts +4 -0
- package/src/adapter/entry-points/cli/index.ts +12 -0
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +4 -0
- package/src/domain/usecases/AgentDesignationLabelAdoptUseCase.test.ts +221 -0
- package/src/domain/usecases/AgentDesignationLabelAdoptUseCase.ts +76 -0
- package/src/domain/usecases/HandleScheduledEventUseCase.test.ts +4 -0
- package/src/domain/usecases/HandleScheduledEventUseCase.ts +7 -0
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +162 -0
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +81 -0
- package/src/domain/usecases/StartPreparationUseCase.ts +5 -40
- package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/domain/usecases/AgentDesignationLabelAdoptUseCase.d.ts +16 -0
- package/types/domain/usecases/AgentDesignationLabelAdoptUseCase.d.ts.map +1 -0
- package/types/domain/usecases/HandleScheduledEventUseCase.d.ts +3 -1
- package/types/domain/usecases/HandleScheduledEventUseCase.d.ts.map +1 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts +4 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts +0 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
|
@@ -107,6 +107,8 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
107
107
|
requestChangesWithInlineComment: jest.Mock;
|
|
108
108
|
setDependedIssueUrl: jest.Mock;
|
|
109
109
|
setIssueAgentField: jest.Mock;
|
|
110
|
+
searchIssue: jest.Mock;
|
|
111
|
+
createNewIssue: jest.Mock;
|
|
110
112
|
};
|
|
111
113
|
let mockIssueCommentRepository: {
|
|
112
114
|
getCommentsFromIssue: jest.Mock;
|
|
@@ -147,6 +149,8 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
147
149
|
requestChangesWithInlineComment: jest.fn().mockResolvedValue(undefined),
|
|
148
150
|
setDependedIssueUrl: jest.fn(),
|
|
149
151
|
setIssueAgentField: jest.fn().mockResolvedValue(undefined),
|
|
152
|
+
searchIssue: jest.fn().mockResolvedValue([]),
|
|
153
|
+
createNewIssue: jest.fn().mockResolvedValue(42),
|
|
150
154
|
};
|
|
151
155
|
|
|
152
156
|
mockIssueCommentRepository = {
|
|
@@ -3893,4 +3897,162 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
3893
3897
|
).not.toHaveBeenCalled();
|
|
3894
3898
|
});
|
|
3895
3899
|
});
|
|
3900
|
+
|
|
3901
|
+
describe('when missingAgentName is provided', () => {
|
|
3902
|
+
const issueUrl = 'https://github.com/user/repo/issues/1';
|
|
3903
|
+
const taskIssueTitle = 'Register missing agent definition: impl';
|
|
3904
|
+
const taskIssueUrl = 'https://github.com/user/repo/issues/42';
|
|
3905
|
+
|
|
3906
|
+
it('creates a task issue and sets depended issue URL when no existing open task issue exists', async () => {
|
|
3907
|
+
const issue = createMockIssue({ url: issueUrl, status: 'Preparation' });
|
|
3908
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
3909
|
+
mockIssueRepository.get.mockResolvedValue(issue);
|
|
3910
|
+
mockIssueRepository.searchIssue.mockResolvedValue([]);
|
|
3911
|
+
mockIssueRepository.createNewIssue.mockResolvedValue(42);
|
|
3912
|
+
|
|
3913
|
+
await useCase.run({
|
|
3914
|
+
projectUrl: 'https://github.com/users/user/projects/1',
|
|
3915
|
+
issueUrl,
|
|
3916
|
+
thresholdForAutoReject: 3,
|
|
3917
|
+
workflowBlockerResolvedWebhookUrl: null,
|
|
3918
|
+
allowedIssueAuthors: null,
|
|
3919
|
+
missingAgentName: 'impl',
|
|
3920
|
+
sessionErrorLine:
|
|
3921
|
+
"Error: Agent 'impl' not found at /path/agents/impl.md",
|
|
3922
|
+
});
|
|
3923
|
+
|
|
3924
|
+
expect(mockIssueRepository.searchIssue).toHaveBeenCalledWith({
|
|
3925
|
+
owner: 'user',
|
|
3926
|
+
repositoryName: 'repo',
|
|
3927
|
+
type: 'issue',
|
|
3928
|
+
state: 'open',
|
|
3929
|
+
title: taskIssueTitle,
|
|
3930
|
+
});
|
|
3931
|
+
expect(mockIssueRepository.createNewIssue).toHaveBeenCalledWith(
|
|
3932
|
+
'user',
|
|
3933
|
+
'repo',
|
|
3934
|
+
taskIssueTitle,
|
|
3935
|
+
expect.stringContaining(issueUrl),
|
|
3936
|
+
[],
|
|
3937
|
+
[],
|
|
3938
|
+
);
|
|
3939
|
+
expect(mockIssueRepository.createNewIssue).toHaveBeenCalledWith(
|
|
3940
|
+
'user',
|
|
3941
|
+
'repo',
|
|
3942
|
+
taskIssueTitle,
|
|
3943
|
+
expect.stringContaining('impl'),
|
|
3944
|
+
[],
|
|
3945
|
+
[],
|
|
3946
|
+
);
|
|
3947
|
+
expect(mockIssueRepository.createNewIssue).toHaveBeenCalledWith(
|
|
3948
|
+
'user',
|
|
3949
|
+
'repo',
|
|
3950
|
+
taskIssueTitle,
|
|
3951
|
+
expect.stringContaining(
|
|
3952
|
+
"Error: Agent 'impl' not found at /path/agents/impl.md",
|
|
3953
|
+
),
|
|
3954
|
+
[],
|
|
3955
|
+
[],
|
|
3956
|
+
);
|
|
3957
|
+
expect(mockIssueRepository.setDependedIssueUrl).toHaveBeenCalledWith(
|
|
3958
|
+
issueUrl,
|
|
3959
|
+
mockProject,
|
|
3960
|
+
taskIssueUrl,
|
|
3961
|
+
);
|
|
3962
|
+
expect(mockIssueRepository.updateStatus).toHaveBeenCalledWith(
|
|
3963
|
+
mockProject,
|
|
3964
|
+
expect.objectContaining({ status: 'Awaiting Workspace' }),
|
|
3965
|
+
'awaiting-workspace-id',
|
|
3966
|
+
);
|
|
3967
|
+
expect(mockIssueCommentRepository.createComment).toHaveBeenCalledWith(
|
|
3968
|
+
expect.objectContaining({ url: issueUrl }),
|
|
3969
|
+
expect.stringContaining('impl'),
|
|
3970
|
+
);
|
|
3971
|
+
});
|
|
3972
|
+
|
|
3973
|
+
it('reuses an existing open task issue and does not create a new one', async () => {
|
|
3974
|
+
const issue = createMockIssue({ url: issueUrl, status: 'Preparation' });
|
|
3975
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
3976
|
+
mockIssueRepository.get.mockResolvedValue(issue);
|
|
3977
|
+
mockIssueRepository.searchIssue.mockResolvedValue([
|
|
3978
|
+
{
|
|
3979
|
+
url: taskIssueUrl,
|
|
3980
|
+
title: taskIssueTitle,
|
|
3981
|
+
number: '42',
|
|
3982
|
+
},
|
|
3983
|
+
]);
|
|
3984
|
+
|
|
3985
|
+
await useCase.run({
|
|
3986
|
+
projectUrl: 'https://github.com/users/user/projects/1',
|
|
3987
|
+
issueUrl,
|
|
3988
|
+
thresholdForAutoReject: 3,
|
|
3989
|
+
workflowBlockerResolvedWebhookUrl: null,
|
|
3990
|
+
allowedIssueAuthors: null,
|
|
3991
|
+
missingAgentName: 'impl',
|
|
3992
|
+
});
|
|
3993
|
+
|
|
3994
|
+
expect(mockIssueRepository.createNewIssue).not.toHaveBeenCalled();
|
|
3995
|
+
expect(mockIssueRepository.setDependedIssueUrl).toHaveBeenCalledWith(
|
|
3996
|
+
issueUrl,
|
|
3997
|
+
mockProject,
|
|
3998
|
+
taskIssueUrl,
|
|
3999
|
+
);
|
|
4000
|
+
});
|
|
4001
|
+
|
|
4002
|
+
it('skips setDependedIssueUrl when project has no dependedIssueUrlSeparatedByComma field but still creates the task issue and returns to Awaiting Workspace', async () => {
|
|
4003
|
+
const projectWithoutDependedField = createMockProject({
|
|
4004
|
+
dependedIssueUrlSeparatedByComma: null,
|
|
4005
|
+
});
|
|
4006
|
+
const issue = createMockIssue({ url: issueUrl, status: 'Preparation' });
|
|
4007
|
+
mockProjectRepository.getByUrl.mockResolvedValue(
|
|
4008
|
+
projectWithoutDependedField,
|
|
4009
|
+
);
|
|
4010
|
+
mockIssueRepository.get.mockResolvedValue(issue);
|
|
4011
|
+
mockIssueRepository.searchIssue.mockResolvedValue([]);
|
|
4012
|
+
mockIssueRepository.createNewIssue.mockResolvedValue(42);
|
|
4013
|
+
|
|
4014
|
+
await useCase.run({
|
|
4015
|
+
projectUrl: 'https://github.com/users/user/projects/1',
|
|
4016
|
+
issueUrl,
|
|
4017
|
+
thresholdForAutoReject: 3,
|
|
4018
|
+
workflowBlockerResolvedWebhookUrl: null,
|
|
4019
|
+
allowedIssueAuthors: null,
|
|
4020
|
+
missingAgentName: 'impl',
|
|
4021
|
+
});
|
|
4022
|
+
|
|
4023
|
+
expect(mockIssueRepository.createNewIssue).toHaveBeenCalledTimes(1);
|
|
4024
|
+
expect(mockIssueRepository.setDependedIssueUrl).not.toHaveBeenCalled();
|
|
4025
|
+
expect(mockIssueRepository.updateStatus).toHaveBeenCalledWith(
|
|
4026
|
+
projectWithoutDependedField,
|
|
4027
|
+
expect.objectContaining({ status: 'Awaiting Workspace' }),
|
|
4028
|
+
'awaiting-workspace-id',
|
|
4029
|
+
);
|
|
4030
|
+
});
|
|
4031
|
+
|
|
4032
|
+
it('uses (not captured) as error line when sessionErrorLine is not provided', async () => {
|
|
4033
|
+
const issue = createMockIssue({ url: issueUrl, status: 'Preparation' });
|
|
4034
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
4035
|
+
mockIssueRepository.get.mockResolvedValue(issue);
|
|
4036
|
+
mockIssueRepository.searchIssue.mockResolvedValue([]);
|
|
4037
|
+
mockIssueRepository.createNewIssue.mockResolvedValue(42);
|
|
4038
|
+
|
|
4039
|
+
await useCase.run({
|
|
4040
|
+
projectUrl: 'https://github.com/users/user/projects/1',
|
|
4041
|
+
issueUrl,
|
|
4042
|
+
thresholdForAutoReject: 3,
|
|
4043
|
+
workflowBlockerResolvedWebhookUrl: null,
|
|
4044
|
+
allowedIssueAuthors: null,
|
|
4045
|
+
missingAgentName: 'impl',
|
|
4046
|
+
});
|
|
4047
|
+
|
|
4048
|
+
expect(mockIssueRepository.createNewIssue).toHaveBeenCalledWith(
|
|
4049
|
+
'user',
|
|
4050
|
+
'repo',
|
|
4051
|
+
taskIssueTitle,
|
|
4052
|
+
expect.stringContaining('(not captured)'),
|
|
4053
|
+
[],
|
|
4054
|
+
[],
|
|
4055
|
+
);
|
|
4056
|
+
});
|
|
4057
|
+
});
|
|
3896
4058
|
});
|
|
@@ -73,6 +73,8 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
73
73
|
| 'requestChangesWithInlineComment'
|
|
74
74
|
| 'setDependedIssueUrl'
|
|
75
75
|
| 'setIssueAgentField'
|
|
76
|
+
| 'searchIssue'
|
|
77
|
+
| 'createNewIssue'
|
|
76
78
|
>,
|
|
77
79
|
private readonly issueCommentRepository: Pick<
|
|
78
80
|
IssueCommentRepository,
|
|
@@ -100,6 +102,8 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
100
102
|
labelsNotRequiringPullRequest?: string[] | null;
|
|
101
103
|
changeTargetPathAliases?: Record<string, string> | null;
|
|
102
104
|
agents?: string[] | null;
|
|
105
|
+
missingAgentName?: string | null;
|
|
106
|
+
sessionErrorLine?: string | null;
|
|
103
107
|
}): Promise<void> => {
|
|
104
108
|
const project = await this.projectRepository.getByUrl(params.projectUrl);
|
|
105
109
|
|
|
@@ -143,6 +147,17 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
143
147
|
);
|
|
144
148
|
}
|
|
145
149
|
|
|
150
|
+
if (params.missingAgentName) {
|
|
151
|
+
await this.handleMissingAgentDefinition(
|
|
152
|
+
issue,
|
|
153
|
+
project,
|
|
154
|
+
awaitingWorkspaceStatusOption,
|
|
155
|
+
params.missingAgentName,
|
|
156
|
+
params.sessionErrorLine ?? null,
|
|
157
|
+
);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
|
|
146
161
|
if (issue.dependedIssueUrls.length === 0) {
|
|
147
162
|
try {
|
|
148
163
|
const storyObjectMap =
|
|
@@ -363,6 +378,72 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
363
378
|
);
|
|
364
379
|
};
|
|
365
380
|
|
|
381
|
+
private handleMissingAgentDefinition = async (
|
|
382
|
+
issue: Issue,
|
|
383
|
+
project: Project,
|
|
384
|
+
awaitingWorkspaceStatusOption: { id: string },
|
|
385
|
+
missingAgentName: string,
|
|
386
|
+
sessionErrorLine: string | null,
|
|
387
|
+
): Promise<void> => {
|
|
388
|
+
const taskIssueTitle = `Register missing agent definition: ${missingAgentName}`;
|
|
389
|
+
|
|
390
|
+
const searchResults = await this.issueRepository.searchIssue({
|
|
391
|
+
owner: issue.org,
|
|
392
|
+
repositoryName: issue.repo,
|
|
393
|
+
type: 'issue',
|
|
394
|
+
state: 'open',
|
|
395
|
+
title: taskIssueTitle,
|
|
396
|
+
});
|
|
397
|
+
const exactMatch = searchResults.find((i) => i.title === taskIssueTitle);
|
|
398
|
+
|
|
399
|
+
let taskIssueUrl: string;
|
|
400
|
+
if (exactMatch) {
|
|
401
|
+
taskIssueUrl = exactMatch.url;
|
|
402
|
+
} else {
|
|
403
|
+
const body = [
|
|
404
|
+
`The preparation worker for ${issue.url} failed because the agent definition \`${missingAgentName}\` was not found.`,
|
|
405
|
+
'',
|
|
406
|
+
`- Missing agent name: \`${missingAgentName}\``,
|
|
407
|
+
`- Failing item: ${issue.url}`,
|
|
408
|
+
`- Error: ${sessionErrorLine ?? '(not captured)'}`,
|
|
409
|
+
].join('\n');
|
|
410
|
+
const issueNumber = await this.issueRepository.createNewIssue(
|
|
411
|
+
issue.org,
|
|
412
|
+
issue.repo,
|
|
413
|
+
taskIssueTitle,
|
|
414
|
+
body,
|
|
415
|
+
[],
|
|
416
|
+
[],
|
|
417
|
+
);
|
|
418
|
+
taskIssueUrl = `https://github.com/${issue.org}/${issue.repo}/issues/${issueNumber}`;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
if (project.dependedIssueUrlSeparatedByComma) {
|
|
422
|
+
await this.issueRepository.setDependedIssueUrl(
|
|
423
|
+
issue.url,
|
|
424
|
+
project,
|
|
425
|
+
taskIssueUrl,
|
|
426
|
+
);
|
|
427
|
+
} else {
|
|
428
|
+
console.warn(
|
|
429
|
+
`dependedIssueUrlSeparatedByComma not configured; cannot block ${issue.url} via ${taskIssueUrl}`,
|
|
430
|
+
);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
issue.status = AWAITING_WORKSPACE_STATUS_NAME;
|
|
434
|
+
await this.issueRepository.update(issue, project);
|
|
435
|
+
await this.issueRepository.updateStatus(
|
|
436
|
+
project,
|
|
437
|
+
issue,
|
|
438
|
+
awaitingWorkspaceStatusOption.id,
|
|
439
|
+
);
|
|
440
|
+
await this.patchConsoleTab(issue);
|
|
441
|
+
await this.issueCommentRepository.createComment(
|
|
442
|
+
issue,
|
|
443
|
+
`Session ended: agent definition \`${missingAgentName}\` was not found.\nItem blocked until the following task issue is resolved:\n${taskIssueUrl}`,
|
|
444
|
+
);
|
|
445
|
+
};
|
|
446
|
+
|
|
366
447
|
private isAuthorTrusted = (
|
|
367
448
|
author: string,
|
|
368
449
|
allowedIssueAuthors: string[] | null,
|
|
@@ -9,9 +9,7 @@ import {
|
|
|
9
9
|
AWAITING_WORKSPACE_STATUS_NAME,
|
|
10
10
|
PREPARATION_STATUS_NAME,
|
|
11
11
|
} from '../entities/WorkflowStatus';
|
|
12
|
-
import {
|
|
13
|
-
import { Issue } from '../entities/Issue';
|
|
14
|
-
import { Project } from '../entities/Project';
|
|
12
|
+
import { adoptIssueAgentDesignationLabel } from './AgentDesignationLabelAdoptUseCase';
|
|
15
13
|
|
|
16
14
|
const NORMAL_CONCURRENT_LIMIT = 6;
|
|
17
15
|
const SEVEN_DAY_THROTTLE_START_THRESHOLD = 0.8;
|
|
@@ -310,41 +308,6 @@ export class StartPreparationUseCase {
|
|
|
310
308
|
return [...selectedEntries, ...excluded];
|
|
311
309
|
};
|
|
312
310
|
|
|
313
|
-
private migrateAgentDesignationLabelToProjectField = async (
|
|
314
|
-
issue: Issue,
|
|
315
|
-
project: Project,
|
|
316
|
-
configuredAgentNames: string[] | null,
|
|
317
|
-
): Promise<void> => {
|
|
318
|
-
const agentLabel =
|
|
319
|
-
configuredAgentNames === null
|
|
320
|
-
? undefined
|
|
321
|
-
: issue.labels.find((label: string) =>
|
|
322
|
-
configuredAgentNames.includes(label),
|
|
323
|
-
);
|
|
324
|
-
if (agentLabel === undefined) {
|
|
325
|
-
return;
|
|
326
|
-
}
|
|
327
|
-
issue.agent = agentLabel;
|
|
328
|
-
const agentOptionId = await ensureAgentOptionAndGetId(
|
|
329
|
-
this.projectRepository,
|
|
330
|
-
project,
|
|
331
|
-
agentLabel,
|
|
332
|
-
);
|
|
333
|
-
if (agentOptionId === null) {
|
|
334
|
-
console.warn(
|
|
335
|
-
`Agent field option '${agentLabel}' could not be resolved for ${issue.url}. Keeping the label as the agent designation.`,
|
|
336
|
-
);
|
|
337
|
-
return;
|
|
338
|
-
}
|
|
339
|
-
await this.issueRepository.setIssueAgentField(
|
|
340
|
-
issue.url,
|
|
341
|
-
project,
|
|
342
|
-
agentOptionId,
|
|
343
|
-
);
|
|
344
|
-
await this.issueRepository.removeLabel(issue, agentLabel);
|
|
345
|
-
issue.labels = issue.labels.filter((label) => label !== agentLabel);
|
|
346
|
-
};
|
|
347
|
-
|
|
348
311
|
run = async (params: {
|
|
349
312
|
projectUrl: string;
|
|
350
313
|
defaultAgentName: string;
|
|
@@ -520,10 +483,12 @@ export class StartPreparationUseCase {
|
|
|
520
483
|
exclusionCounts.notAssignedToManager++;
|
|
521
484
|
continue;
|
|
522
485
|
}
|
|
523
|
-
await
|
|
486
|
+
await adoptIssueAgentDesignationLabel(
|
|
524
487
|
issue,
|
|
525
488
|
project,
|
|
526
|
-
params.agents ??
|
|
489
|
+
params.agents ?? [],
|
|
490
|
+
this.projectRepository,
|
|
491
|
+
this.issueRepository,
|
|
527
492
|
);
|
|
528
493
|
const mappedAgentFromLabel =
|
|
529
494
|
params.labelsAsLlmAgentName !== null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAgMzB,eAAO,MAAM,OAAO,SAAgB,CAAC;AAwhCrC,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":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAiDA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAiDA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAsD3D,qBAAa,kCAAkC;IAC7C,MAAM,GACJ,gBAAgB,MAAM,EACtB,UAAU,OAAO,EACjB,6BAA4B,MAAM,EAAE,GAAG,IAAW,KACjD,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,eAAe,EAAE,IAAI,EAAE,CAAC;KACzB,GAAG,IAAI,CAAC,CA8xBP;CACH"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IssueRepository } from './adapter-interfaces/IssueRepository';
|
|
2
|
+
import { ProjectRepository } from './adapter-interfaces/ProjectRepository';
|
|
3
|
+
import { Issue } from '../entities/Issue';
|
|
4
|
+
import { Project } from '../entities/Project';
|
|
5
|
+
export declare const adoptIssueAgentDesignationLabel: (issue: Issue, project: Project, configuredAgentNames: string[], projectRepository: Pick<ProjectRepository, "getByUrl" | "createField" | "updateAgentList">, issueRepository: Pick<IssueRepository, "setIssueAgentField" | "removeLabel">) => Promise<void>;
|
|
6
|
+
export declare class AgentDesignationLabelAdoptUseCase {
|
|
7
|
+
private readonly projectRepository;
|
|
8
|
+
private readonly issueRepository;
|
|
9
|
+
constructor(projectRepository: Pick<ProjectRepository, 'getByUrl' | 'createField' | 'updateAgentList'>, issueRepository: Pick<IssueRepository, 'setIssueAgentField' | 'removeLabel'>);
|
|
10
|
+
run: (params: {
|
|
11
|
+
project: Project;
|
|
12
|
+
issues: Issue[];
|
|
13
|
+
agents: string[] | null;
|
|
14
|
+
}) => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=AgentDesignationLabelAdoptUseCase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentDesignationLabelAdoptUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/AgentDesignationLabelAdoptUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,eAAO,MAAM,+BAA+B,GAC1C,OAAO,KAAK,EACZ,SAAS,OAAO,EAChB,sBAAsB,MAAM,EAAE,EAC9B,mBAAmB,IAAI,CACrB,iBAAiB,EACjB,UAAU,GAAG,aAAa,GAAG,iBAAiB,CAC/C,EACD,iBAAiB,IAAI,CAAC,eAAe,EAAE,oBAAoB,GAAG,aAAa,CAAC,KAC3E,OAAO,CAAC,IAAI,CAyBd,CAAC;AAEF,qBAAa,iCAAiC;IAE1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAJf,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,UAAU,GAAG,aAAa,GAAG,iBAAiB,CAC/C,EACgB,eAAe,EAAE,IAAI,CACpC,eAAe,EACf,oBAAoB,GAAG,aAAa,CACrC;IAGH,GAAG,GAAU,QAAQ;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACzB,KAAG,OAAO,CAAC,IAAI,CAAC,CAgBf;CACH"}
|
|
@@ -22,6 +22,7 @@ import { CreateNewStoryByLabelUseCase } from './CreateNewStoryByLabelUseCase';
|
|
|
22
22
|
import { AssignNoAssigneeIssueToManagerUseCase } from './AssignNoAssigneeIssueToManagerUseCase';
|
|
23
23
|
import { UpdateIssueStatusByLabelUseCase } from './UpdateIssueStatusByLabelUseCase';
|
|
24
24
|
import { RotationOrderEntry, StartPreparationUseCase } from './StartPreparationUseCase';
|
|
25
|
+
import { AgentDesignationLabelAdoptUseCase } from './AgentDesignationLabelAdoptUseCase';
|
|
25
26
|
import { RevertOrphanedPreparationUseCase } from './RevertOrphanedPreparationUseCase';
|
|
26
27
|
import { RevertNotReadyReviewQueueIssueUseCase } from './RevertNotReadyReviewQueueIssueUseCase';
|
|
27
28
|
import { ProjectRequiredFieldCreateUseCase } from './ProjectRequiredFieldCreateUseCase';
|
|
@@ -52,13 +53,14 @@ export declare class HandleScheduledEventUseCase {
|
|
|
52
53
|
readonly startPreparationUseCase: StartPreparationUseCase;
|
|
53
54
|
readonly revertOrphanedPreparationUseCase: RevertOrphanedPreparationUseCase;
|
|
54
55
|
readonly revertNotReadyReviewQueueIssueUseCase: RevertNotReadyReviewQueueIssueUseCase;
|
|
56
|
+
readonly agentDesignationLabelAdoptUseCase: AgentDesignationLabelAdoptUseCase;
|
|
55
57
|
readonly updateRateLimitCacheUseCase: UpdateRateLimitCacheUseCase | null;
|
|
56
58
|
readonly dailySecurityScanUseCase: DailySecurityScanUseCase | null;
|
|
57
59
|
readonly dateRepository: DateRepository;
|
|
58
60
|
readonly spreadsheetRepository: SpreadsheetRepository;
|
|
59
61
|
readonly projectRepository: ProjectRepository;
|
|
60
62
|
readonly issueRepository: IssueRepository;
|
|
61
|
-
constructor(projectRequiredFieldCreateUseCase: ProjectRequiredFieldCreateUseCase, setupTowerDefenceProjectUseCase: SetupTowerDefenceProjectUseCase, actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearPastNextActionUseCase: ClearPastNextActionDateHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, setDependedIssueUrlForOpenTaskPRsUseCase: SetDependedIssueUrlForOpenTaskPRsUseCase, staleTaskPullRequestCloseUseCase: StaleTaskPullRequestCloseUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, startPreparationUseCase: StartPreparationUseCase, revertOrphanedPreparationUseCase: RevertOrphanedPreparationUseCase, revertNotReadyReviewQueueIssueUseCase: RevertNotReadyReviewQueueIssueUseCase, updateRateLimitCacheUseCase: UpdateRateLimitCacheUseCase | null, dailySecurityScanUseCase: DailySecurityScanUseCase | null, dateRepository: DateRepository, spreadsheetRepository: SpreadsheetRepository, projectRepository: ProjectRepository, issueRepository: IssueRepository);
|
|
63
|
+
constructor(projectRequiredFieldCreateUseCase: ProjectRequiredFieldCreateUseCase, setupTowerDefenceProjectUseCase: SetupTowerDefenceProjectUseCase, actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearPastNextActionUseCase: ClearPastNextActionDateHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, setDependedIssueUrlForOpenTaskPRsUseCase: SetDependedIssueUrlForOpenTaskPRsUseCase, staleTaskPullRequestCloseUseCase: StaleTaskPullRequestCloseUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, startPreparationUseCase: StartPreparationUseCase, revertOrphanedPreparationUseCase: RevertOrphanedPreparationUseCase, revertNotReadyReviewQueueIssueUseCase: RevertNotReadyReviewQueueIssueUseCase, agentDesignationLabelAdoptUseCase: AgentDesignationLabelAdoptUseCase, updateRateLimitCacheUseCase: UpdateRateLimitCacheUseCase | null, dailySecurityScanUseCase: DailySecurityScanUseCase | null, dateRepository: DateRepository, spreadsheetRepository: SpreadsheetRepository, projectRepository: ProjectRepository, issueRepository: IssueRepository);
|
|
62
64
|
run: (input: {
|
|
63
65
|
projectName: string;
|
|
64
66
|
org: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandleScheduledEventUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/HandleScheduledEventUseCase.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HandleScheduledEventUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/HandleScheduledEventUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export declare class NotifyFinishedIssuePreparationUseCase {
|
|
|
17
17
|
private readonly consoleTabsRepository?;
|
|
18
18
|
private readonly issueRejectionEvaluator;
|
|
19
19
|
private readonly changeTargetPullRequestApprover;
|
|
20
|
-
constructor(projectRepository: Pick<ProjectRepository, 'getByUrl' | 'updateAgentList' | 'createField'>, issueRepository: Pick<IssueRepository, 'get' | 'update' | 'updateStatus' | 'updateLabels' | 'getOrCreateLabel' | 'findRelatedOpenPRs' | 'getStoryObjectMap' | 'getOpenPullRequest' | 'getPullRequestChangedFilePaths' | 'approvePullRequest' | 'requestChangesWithInlineComment' | 'setDependedIssueUrl' | 'setIssueAgentField'>, issueCommentRepository: Pick<IssueCommentRepository, 'getCommentsFromIssue' | 'createComment'>, webhookRepository: Pick<WebhookRepository, 'sendGetRequest'>, consoleTabsRepository?: (ConsoleTabsRepository | null) | undefined);
|
|
20
|
+
constructor(projectRepository: Pick<ProjectRepository, 'getByUrl' | 'updateAgentList' | 'createField'>, issueRepository: Pick<IssueRepository, 'get' | 'update' | 'updateStatus' | 'updateLabels' | 'getOrCreateLabel' | 'findRelatedOpenPRs' | 'getStoryObjectMap' | 'getOpenPullRequest' | 'getPullRequestChangedFilePaths' | 'approvePullRequest' | 'requestChangesWithInlineComment' | 'setDependedIssueUrl' | 'setIssueAgentField' | 'searchIssue' | 'createNewIssue'>, issueCommentRepository: Pick<IssueCommentRepository, 'getCommentsFromIssue' | 'createComment'>, webhookRepository: Pick<WebhookRepository, 'sendGetRequest'>, consoleTabsRepository?: (ConsoleTabsRepository | null) | undefined);
|
|
21
21
|
run: (params: {
|
|
22
22
|
projectUrl: string;
|
|
23
23
|
issueUrl: string;
|
|
@@ -28,7 +28,10 @@ export declare class NotifyFinishedIssuePreparationUseCase {
|
|
|
28
28
|
labelsNotRequiringPullRequest?: string[] | null;
|
|
29
29
|
changeTargetPathAliases?: Record<string, string> | null;
|
|
30
30
|
agents?: string[] | null;
|
|
31
|
+
missingAgentName?: string | null;
|
|
32
|
+
sessionErrorLine?: string | null;
|
|
31
33
|
}) => Promise<void>;
|
|
34
|
+
private handleMissingAgentDefinition;
|
|
32
35
|
private isAuthorTrusted;
|
|
33
36
|
private collectRejections;
|
|
34
37
|
private reportBodyHasNextStep;
|
|
@@ -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;AA0BnF,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAI7B;AACD,qBAAa,uBAAwB,SAAQ,KAAK;gBAE9C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,cAAc,EAAE,MAAM,GAAG,IAAI;CAOhC;AAID,qBAAa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;
|
|
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;AA0BnF,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAI7B;AACD,qBAAa,uBAAwB,SAAQ,KAAK;gBAE9C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,cAAc,EAAE,MAAM,GAAG,IAAI;CAOhC;AAID,qBAAa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAkBhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAIvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAlCzC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAkC;gBAG/D,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,UAAU,GAAG,iBAAiB,GAAG,aAAa,CAC/C,EACgB,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,KAAK,GACL,QAAQ,GACR,cAAc,GACd,cAAc,GACd,kBAAkB,GAClB,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,gCAAgC,GAChC,oBAAoB,GACpB,iCAAiC,GACjC,qBAAqB,GACrB,oBAAoB,GACpB,aAAa,GACb,gBAAgB,CACnB,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC,EACgB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,gBAAgB,CACjB,EACgB,qBAAqB,CAAC,GAAE,qBAAqB,GAAG,IAAI,aAAA;IAQvE,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,iCAAiC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjD,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACtC,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,6BAA6B,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QACxD,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC,KAAG,OAAO,CAAC,IAAI,CAAC,CAgRf;IAEF,OAAO,CAAC,4BAA4B,CAgElC;IAEF,OAAO,CAAC,eAAe,CAIgD;IAEvE,OAAO,CAAC,iBAAiB,CAkDvB;IAEF,OAAO,CAAC,qBAAqB,CAuB3B;IAEF,OAAO,CAAC,gCAAgC,CAoBtC;IAEF,OAAO,CAAC,uBAAuB,CAQ7B;IAEF,OAAO,CAAC,+BAA+B,CAgCrC;IAEF,OAAO,CAAC,uBAAuB,CAO7B;IAEF,OAAO,CAAC,oBAAoB,CA0B1B;IAEF,OAAO,CAAC,yBAAyB,CAIuC;IAExE,OAAO,CAAC,eAAe,CAmCrB;CACH"}
|
|
@@ -31,7 +31,6 @@ export declare class StartPreparationUseCase {
|
|
|
31
31
|
getTokenConcurrentLimit: (fiveHourUtilization: number, sevenDayUtilization: number, selectionWeight?: number) => number;
|
|
32
32
|
private selectRotationTokens;
|
|
33
33
|
buildRotationOrder: (tokenUsages: ClaudeTokenUsage[], utilizationPercentageThreshold: number, modelName: string | null) => RotationOrderEntry[];
|
|
34
|
-
private migrateAgentDesignationLabelToProjectField;
|
|
35
34
|
run: (params: {
|
|
36
35
|
projectUrl: string;
|
|
37
36
|
defaultAgentName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"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"}
|