github-issue-tower-defence-management 1.165.0 → 1.166.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/bin/adapter/entry-points/console/consoleOperationApi.js +44 -1
- package/bin/adapter/entry-points/console/consoleOperationApi.js.map +1 -1
- package/bin/adapter/entry-points/console/consoleTabNames.js +1 -0
- package/bin/adapter/entry-points/console/consoleTabNames.js.map +1 -1
- package/bin/adapter/entry-points/console/ui-dist/assets/index-CrSqMAVR.js +86 -0
- package/bin/adapter/entry-points/console/ui-dist/index.html +1 -1
- package/bin/adapter/entry-points/console/webServer.js +2 -0
- package/bin/adapter/entry-points/console/webServer.js.map +1 -1
- package/bin/adapter/repositories/GraphqlProjectRepository.js +3 -3
- package/bin/adapter/repositories/GraphqlProjectRepository.js.map +1 -1
- package/bin/domain/entities/RequiredProjectField.js +0 -5
- package/bin/domain/entities/RequiredProjectField.js.map +1 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js +12 -4
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/ProjectRequiredFieldCreateUseCase.js +13 -1
- package/bin/domain/usecases/ProjectRequiredFieldCreateUseCase.js.map +1 -1
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js +23 -0
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/console/consoleOperationApi.test.ts +211 -0
- package/src/adapter/entry-points/console/consoleOperationApi.ts +63 -0
- package/src/adapter/entry-points/console/consoleTabNames.ts +1 -0
- package/src/adapter/entry-points/console/ui/e2e/consoleScenario.spec.ts +61 -0
- package/src/adapter/entry-points/console/ui/e2e/consoleTestHarness.ts +63 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTabList.stories.tsx +4 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTabList.test.tsx +1 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.stories.tsx +77 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.test.tsx +196 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.tsx +163 -0
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleNavigation.test.ts +1 -0
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleTabData.ts +15 -0
- package/src/adapter/entry-points/console/ui/src/features/console/lib/consoleApi.ts +29 -0
- package/src/adapter/entry-points/console/ui/src/features/console/logic/tabAdvance.test.ts +1 -0
- package/src/adapter/entry-points/console/ui/src/features/console/logic/types.ts +10 -1
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.tsx +43 -8
- package/src/adapter/entry-points/console/ui-dist/assets/index-CrSqMAVR.js +86 -0
- package/src/adapter/entry-points/console/ui-dist/index.html +1 -1
- package/src/adapter/entry-points/console/webServer.ts +3 -0
- package/src/adapter/repositories/GraphqlProjectRepository.ts +3 -3
- package/src/domain/entities/RequiredProjectField.ts +0 -5
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +14 -4
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +15 -5
- package/src/domain/usecases/ProjectRequiredFieldCreateUseCase.test.ts +16 -5
- package/src/domain/usecases/ProjectRequiredFieldCreateUseCase.ts +13 -1
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.test.ts +86 -1
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.ts +49 -1
- package/types/adapter/entry-points/console/consoleOperationApi.d.ts +1 -0
- package/types/adapter/entry-points/console/consoleOperationApi.d.ts.map +1 -1
- package/types/adapter/entry-points/console/consoleTabNames.d.ts.map +1 -1
- package/types/adapter/entry-points/console/webServer.d.ts.map +1 -1
- package/types/domain/entities/RequiredProjectField.d.ts.map +1 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts +1 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/ProjectRequiredFieldCreateUseCase.d.ts.map +1 -1
- package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts +18 -1
- package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts.map +1 -1
- package/bin/adapter/entry-points/console/ui-dist/assets/index-CHUtr_4X.js +0 -86
- package/src/adapter/entry-points/console/ui-dist/assets/index-CHUtr_4X.js +0 -86
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>TDPM Console</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-CrSqMAVR.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-U8I8ESZj.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
ConsoleProjectResolver,
|
|
27
27
|
handleAttachmentUpload,
|
|
28
28
|
handleComment,
|
|
29
|
+
handleCreateIssue,
|
|
29
30
|
handleIntmux,
|
|
30
31
|
handleReview,
|
|
31
32
|
handleReviewComment,
|
|
@@ -507,6 +508,8 @@ const dispatchOperation = (
|
|
|
507
508
|
return handleReviewComment(context, body);
|
|
508
509
|
case '/api/upload':
|
|
509
510
|
return handleAttachmentUpload(context, body);
|
|
511
|
+
case '/api/createissue':
|
|
512
|
+
return handleCreateIssue(context, body);
|
|
510
513
|
default:
|
|
511
514
|
return null;
|
|
512
515
|
}
|
|
@@ -536,12 +536,12 @@ export class GraphqlProjectRepository
|
|
|
536
536
|
: null,
|
|
537
537
|
},
|
|
538
538
|
});
|
|
539
|
-
if (!response.data) {
|
|
539
|
+
if (!response.data?.createProjectV2Field?.projectV2Field) {
|
|
540
540
|
const errorMessages = response.errors
|
|
541
541
|
? response.errors.map((e) => e.message).join('; ')
|
|
542
|
-
: 'no
|
|
542
|
+
: 'no projectV2Field in response';
|
|
543
543
|
throw new Error(
|
|
544
|
-
`GitHub GraphQL API
|
|
544
|
+
`GitHub GraphQL API failed to create field ${field.name}: ${errorMessages}`,
|
|
545
545
|
);
|
|
546
546
|
}
|
|
547
547
|
};
|
|
@@ -3,6 +3,7 @@ import { Issue } from '../entities/Issue';
|
|
|
3
3
|
import { Project } from '../entities/Project';
|
|
4
4
|
import { Comment } from '../entities/Comment';
|
|
5
5
|
import { StoryObjectMap } from '../entities/StoryObjectMap';
|
|
6
|
+
import { AGENT_FIELD_NAME } from '../entities/RequiredProjectField';
|
|
6
7
|
|
|
7
8
|
const createMockProject = (overrides: Partial<Project> = {}): Project => ({
|
|
8
9
|
id: 'project-1',
|
|
@@ -90,6 +91,7 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
90
91
|
let mockProjectRepository: {
|
|
91
92
|
getByUrl: jest.Mock;
|
|
92
93
|
updateAgentList: jest.Mock;
|
|
94
|
+
createField: jest.Mock;
|
|
93
95
|
};
|
|
94
96
|
let mockIssueRepository: {
|
|
95
97
|
get: jest.Mock;
|
|
@@ -128,6 +130,7 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
128
130
|
mockProjectRepository = {
|
|
129
131
|
getByUrl: jest.fn(),
|
|
130
132
|
updateAgentList: jest.fn().mockResolvedValue([]),
|
|
133
|
+
createField: jest.fn().mockResolvedValue(undefined),
|
|
131
134
|
};
|
|
132
135
|
|
|
133
136
|
mockIssueRepository = {
|
|
@@ -3719,11 +3722,10 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
3719
3722
|
expect(mockProjectRepository.updateAgentList).not.toHaveBeenCalled();
|
|
3720
3723
|
});
|
|
3721
3724
|
|
|
3722
|
-
it('does not call setIssueAgentField when project has no agent field', async () => {
|
|
3725
|
+
it('creates agent field via createField and does not call setIssueAgentField when project has no agent field and re-fetch also returns no agent', async () => {
|
|
3723
3726
|
const issue = createMockIssue({ status: 'Preparation' });
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
);
|
|
3727
|
+
const projectWithoutAgent = createMockProject({ agent: null });
|
|
3728
|
+
mockProjectRepository.getByUrl.mockResolvedValue(projectWithoutAgent);
|
|
3727
3729
|
mockIssueRepository.get.mockResolvedValue(issue);
|
|
3728
3730
|
mockIssueCommentRepository.getCommentsFromIssue.mockResolvedValue([
|
|
3729
3731
|
createMockComment({
|
|
@@ -3741,6 +3743,14 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
3741
3743
|
allowedIssueAuthors: null,
|
|
3742
3744
|
});
|
|
3743
3745
|
|
|
3746
|
+
expect(mockProjectRepository.createField).toHaveBeenCalledWith(
|
|
3747
|
+
projectWithoutAgent,
|
|
3748
|
+
{
|
|
3749
|
+
name: AGENT_FIELD_NAME,
|
|
3750
|
+
dataType: 'SINGLE_SELECT',
|
|
3751
|
+
options: [{ name: 'impl', color: 'GRAY', description: '' }],
|
|
3752
|
+
},
|
|
3753
|
+
);
|
|
3744
3754
|
expect(mockIssueRepository.setIssueAgentField).not.toHaveBeenCalled();
|
|
3745
3755
|
});
|
|
3746
3756
|
});
|
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
import { Issue } from '../entities/Issue';
|
|
28
28
|
import { FieldOption, Project } from '../entities/Project';
|
|
29
29
|
import { normalizeProjectFieldName } from '../entities/ProjectFieldName';
|
|
30
|
+
import { AGENT_FIELD_NAME } from '../entities/RequiredProjectField';
|
|
30
31
|
|
|
31
32
|
export class IssueNotFoundError extends Error {
|
|
32
33
|
constructor(issueUrl: string) {
|
|
@@ -56,7 +57,7 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
56
57
|
constructor(
|
|
57
58
|
private readonly projectRepository: Pick<
|
|
58
59
|
ProjectRepository,
|
|
59
|
-
'getByUrl' | 'updateAgentList'
|
|
60
|
+
'getByUrl' | 'updateAgentList' | 'createField'
|
|
60
61
|
>,
|
|
61
62
|
private readonly issueRepository: Pick<
|
|
62
63
|
IssueRepository,
|
|
@@ -570,10 +571,19 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
570
571
|
project: Project,
|
|
571
572
|
agentName: string,
|
|
572
573
|
): Promise<string | null> => {
|
|
574
|
+
const normalizedTarget = normalizeProjectFieldName(agentName);
|
|
573
575
|
if (!project.agent) {
|
|
574
|
-
|
|
576
|
+
await this.projectRepository.createField(project, {
|
|
577
|
+
name: AGENT_FIELD_NAME,
|
|
578
|
+
dataType: 'SINGLE_SELECT',
|
|
579
|
+
options: [{ name: agentName, color: 'GRAY' as const, description: '' }],
|
|
580
|
+
});
|
|
581
|
+
const refreshed = await this.projectRepository.getByUrl(project.url);
|
|
582
|
+
const created = refreshed.agent?.options.find(
|
|
583
|
+
(o) => normalizeProjectFieldName(o.name) === normalizedTarget,
|
|
584
|
+
);
|
|
585
|
+
return created?.id ?? null;
|
|
575
586
|
}
|
|
576
|
-
const normalizedTarget = normalizeProjectFieldName(agentName);
|
|
577
587
|
const existing = project.agent.options.find(
|
|
578
588
|
(o) => normalizeProjectFieldName(o.name) === normalizedTarget,
|
|
579
589
|
);
|
|
@@ -590,10 +600,10 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
590
600
|
project,
|
|
591
601
|
mergedOptions,
|
|
592
602
|
);
|
|
593
|
-
const
|
|
603
|
+
const added = updatedOptions.find(
|
|
594
604
|
(o) => normalizeProjectFieldName(o.name) === normalizedTarget,
|
|
595
605
|
);
|
|
596
|
-
return
|
|
606
|
+
return added?.id ?? null;
|
|
597
607
|
};
|
|
598
608
|
|
|
599
609
|
private patchConsoleTab = async (issue: Issue): Promise<void> => {
|
|
@@ -86,7 +86,6 @@ describe('ProjectRequiredFieldCreateUseCase', () => {
|
|
|
86
86
|
NEXT_ACTION_DATE_FIELD_NAME,
|
|
87
87
|
NEXT_ACTION_HOUR_FIELD_NAME,
|
|
88
88
|
DEPENDED_ISSUE_URL_FIELD_NAME,
|
|
89
|
-
AGENT_FIELD_NAME,
|
|
90
89
|
]);
|
|
91
90
|
});
|
|
92
91
|
|
|
@@ -99,7 +98,6 @@ describe('ProjectRequiredFieldCreateUseCase', () => {
|
|
|
99
98
|
'nextactiondate',
|
|
100
99
|
'nextactionhour',
|
|
101
100
|
'Depended Issue URL separated by comma',
|
|
102
|
-
'Agent',
|
|
103
101
|
],
|
|
104
102
|
projectWithoutStory,
|
|
105
103
|
);
|
|
@@ -123,7 +121,6 @@ describe('ProjectRequiredFieldCreateUseCase', () => {
|
|
|
123
121
|
expect(createdFieldNames).toEqual([
|
|
124
122
|
NEXT_ACTION_HOUR_FIELD_NAME,
|
|
125
123
|
DEPENDED_ISSUE_URL_FIELD_NAME,
|
|
126
|
-
AGENT_FIELD_NAME,
|
|
127
124
|
]);
|
|
128
125
|
});
|
|
129
126
|
|
|
@@ -655,15 +652,29 @@ describe('ProjectRequiredFieldCreateUseCase', () => {
|
|
|
655
652
|
expect(projectRepository.updateAgentList).not.toHaveBeenCalled();
|
|
656
653
|
});
|
|
657
654
|
|
|
658
|
-
it('
|
|
655
|
+
it('calls createField with AGENT_FIELD_NAME and initial agents when project has no agent field', async () => {
|
|
659
656
|
const { projectRepository, useCase } = createUseCase(
|
|
660
657
|
[],
|
|
661
658
|
projectWithoutStory,
|
|
662
659
|
);
|
|
663
660
|
|
|
664
|
-
await useCase.reconcileAgentOptions(projectWithoutStory, [
|
|
661
|
+
await useCase.reconcileAgentOptions(projectWithoutStory, [
|
|
662
|
+
'impl',
|
|
663
|
+
'chore',
|
|
664
|
+
]);
|
|
665
665
|
|
|
666
666
|
expect(projectRepository.updateAgentList).not.toHaveBeenCalled();
|
|
667
|
+
expect(projectRepository.createField).toHaveBeenCalledWith(
|
|
668
|
+
projectWithoutStory,
|
|
669
|
+
{
|
|
670
|
+
name: AGENT_FIELD_NAME,
|
|
671
|
+
dataType: 'SINGLE_SELECT',
|
|
672
|
+
options: [
|
|
673
|
+
{ name: 'impl', color: 'GRAY', description: '' },
|
|
674
|
+
{ name: 'chore', color: 'GRAY', description: '' },
|
|
675
|
+
],
|
|
676
|
+
},
|
|
677
|
+
);
|
|
667
678
|
});
|
|
668
679
|
});
|
|
669
680
|
});
|
|
@@ -91,7 +91,19 @@ export class ProjectRequiredFieldCreateUseCase {
|
|
|
91
91
|
project: Project,
|
|
92
92
|
agentNames: string[] | null,
|
|
93
93
|
): Promise<void> => {
|
|
94
|
-
if (!
|
|
94
|
+
if (!agentNames || agentNames.length === 0) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (!project.agent) {
|
|
98
|
+
await this.projectRepository.createField(project, {
|
|
99
|
+
name: AGENT_FIELD_NAME,
|
|
100
|
+
dataType: 'SINGLE_SELECT',
|
|
101
|
+
options: agentNames.map((name) => ({
|
|
102
|
+
name,
|
|
103
|
+
color: 'GRAY' as const,
|
|
104
|
+
description: '',
|
|
105
|
+
})),
|
|
106
|
+
});
|
|
95
107
|
return;
|
|
96
108
|
}
|
|
97
109
|
const existingOptions = project.agent.options;
|
|
@@ -11,7 +11,7 @@ const storyOption = (
|
|
|
11
11
|
): FieldOption => ({ id, name, color, description: '' });
|
|
12
12
|
|
|
13
13
|
const STORY_OPTIONS: FieldOption[] = [
|
|
14
|
-
storyOption('s1', 'regular / NO STORY; SET STORY FIELD', '
|
|
14
|
+
storyOption('s1', 'regular / NO STORY; SET STORY FIELD', 'GRAY'),
|
|
15
15
|
storyOption('s2', 'Story Alpha', 'BLUE'),
|
|
16
16
|
storyOption('s3', 'Story Beta', 'GREEN'),
|
|
17
17
|
];
|
|
@@ -800,4 +800,89 @@ describe('GenerateConsoleListsUseCase', () => {
|
|
|
800
800
|
expect(result.triage.items).toHaveLength(1);
|
|
801
801
|
});
|
|
802
802
|
});
|
|
803
|
+
|
|
804
|
+
describe('stories tab', () => {
|
|
805
|
+
it('includes one entry per non-GRAY story option', () => {
|
|
806
|
+
const result = run([]);
|
|
807
|
+
expect(result.stories.stories).toHaveLength(2);
|
|
808
|
+
expect(result.stories.stories.map((s) => s.storyName)).toEqual([
|
|
809
|
+
'Story Alpha',
|
|
810
|
+
'Story Beta',
|
|
811
|
+
]);
|
|
812
|
+
});
|
|
813
|
+
|
|
814
|
+
it('excludes story options whose color is GRAY', () => {
|
|
815
|
+
const result = run([]);
|
|
816
|
+
const names = result.stories.stories.map((s) => s.storyName);
|
|
817
|
+
expect(names).not.toContain('regular / NO STORY; SET STORY FIELD');
|
|
818
|
+
});
|
|
819
|
+
|
|
820
|
+
it('counts open items per story from all open issues on the board', () => {
|
|
821
|
+
const result = run([
|
|
822
|
+
makeIssue({ story: 'Story Alpha', isClosed: false }),
|
|
823
|
+
makeIssue({ story: 'Story Alpha', isClosed: false }),
|
|
824
|
+
makeIssue({ story: 'Story Beta', isClosed: false }),
|
|
825
|
+
makeIssue({ story: 'Story Alpha', isClosed: true }),
|
|
826
|
+
]);
|
|
827
|
+
const alpha = result.stories.stories.find(
|
|
828
|
+
(s) => s.storyName === 'Story Alpha',
|
|
829
|
+
);
|
|
830
|
+
const beta = result.stories.stories.find(
|
|
831
|
+
(s) => s.storyName === 'Story Beta',
|
|
832
|
+
);
|
|
833
|
+
expect(alpha?.openItemCount).toBe(2);
|
|
834
|
+
expect(beta?.openItemCount).toBe(1);
|
|
835
|
+
});
|
|
836
|
+
|
|
837
|
+
it('counts open items regardless of assignee or actionability', () => {
|
|
838
|
+
const result = run([
|
|
839
|
+
makeIssue({
|
|
840
|
+
story: 'Story Alpha',
|
|
841
|
+
assignees: ['other-person'],
|
|
842
|
+
isClosed: false,
|
|
843
|
+
}),
|
|
844
|
+
makeIssue({
|
|
845
|
+
story: 'Story Alpha',
|
|
846
|
+
nextActionDate: new Date('2026-07-01T00:00:00.000Z'),
|
|
847
|
+
isClosed: false,
|
|
848
|
+
}),
|
|
849
|
+
]);
|
|
850
|
+
const alpha = result.stories.stories.find(
|
|
851
|
+
(s) => s.storyName === 'Story Alpha',
|
|
852
|
+
);
|
|
853
|
+
expect(alpha?.openItemCount).toBe(2);
|
|
854
|
+
});
|
|
855
|
+
|
|
856
|
+
it('exposes the storyOptionId from the project field option', () => {
|
|
857
|
+
const result = run([]);
|
|
858
|
+
const alpha = result.stories.stories.find(
|
|
859
|
+
(s) => s.storyName === 'Story Alpha',
|
|
860
|
+
);
|
|
861
|
+
expect(alpha?.storyOptionId).toBe('s2');
|
|
862
|
+
});
|
|
863
|
+
|
|
864
|
+
it('provides the nameWithOwner of the first issue as defaultNameWithOwner', () => {
|
|
865
|
+
const result = run([makeIssue({ nameWithOwner: 'demo/repo' })]);
|
|
866
|
+
expect(result.stories.defaultNameWithOwner).toBe('demo/repo');
|
|
867
|
+
});
|
|
868
|
+
|
|
869
|
+
it('sets defaultNameWithOwner to null when no issues are present', () => {
|
|
870
|
+
const result = run([]);
|
|
871
|
+
expect(result.stories.defaultNameWithOwner).toBeNull();
|
|
872
|
+
});
|
|
873
|
+
|
|
874
|
+
it('preserves the storyOrder in the stories tab', () => {
|
|
875
|
+
const result = run([]);
|
|
876
|
+
expect(result.stories.storyOrder).toEqual([
|
|
877
|
+
'regular / NO STORY; SET STORY FIELD',
|
|
878
|
+
'Story Alpha',
|
|
879
|
+
'Story Beta',
|
|
880
|
+
]);
|
|
881
|
+
});
|
|
882
|
+
|
|
883
|
+
it('produces an empty stories list when the project has no story field', () => {
|
|
884
|
+
const result = run([], baseProject(null));
|
|
885
|
+
expect(result.stories.stories).toEqual([]);
|
|
886
|
+
});
|
|
887
|
+
});
|
|
803
888
|
});
|
|
@@ -59,7 +59,24 @@ export type ConsoleTabName =
|
|
|
59
59
|
| 'unread'
|
|
60
60
|
| 'failed-preparation'
|
|
61
61
|
| 'todo-by-human'
|
|
62
|
-
| 'todo-by-agent'
|
|
62
|
+
| 'todo-by-agent'
|
|
63
|
+
| 'stories';
|
|
64
|
+
|
|
65
|
+
export type ConsoleStoryEntry = {
|
|
66
|
+
storyName: string;
|
|
67
|
+
storyOptionId: string;
|
|
68
|
+
color: ConsoleColor;
|
|
69
|
+
openItemCount: number;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export type ConsoleStoriesTab = {
|
|
73
|
+
pjcode: string;
|
|
74
|
+
generatedAt: string;
|
|
75
|
+
stories: ConsoleStoryEntry[];
|
|
76
|
+
storyOrder: string[];
|
|
77
|
+
storyColors: Record<string, { color: ConsoleColor }>;
|
|
78
|
+
defaultNameWithOwner: string | null;
|
|
79
|
+
};
|
|
63
80
|
|
|
64
81
|
export type ConsoleLists = {
|
|
65
82
|
'workflow-blocker': ConsoleStatusTab;
|
|
@@ -69,6 +86,7 @@ export type ConsoleLists = {
|
|
|
69
86
|
'failed-preparation': ConsoleStatusTab;
|
|
70
87
|
'todo-by-human': ConsoleStatusTab;
|
|
71
88
|
'todo-by-agent': ConsoleStatusTab;
|
|
89
|
+
stories: ConsoleStoriesTab;
|
|
72
90
|
};
|
|
73
91
|
|
|
74
92
|
export type GenerateConsoleListsInput = {
|
|
@@ -139,6 +157,28 @@ export class GenerateConsoleListsUseCase {
|
|
|
139
157
|
): ConsoleStatusTab =>
|
|
140
158
|
buildStatusTabFromSource(actionableIssues, selector, excludedStatusNames);
|
|
141
159
|
|
|
160
|
+
const openItemCountByStory = new Map<string, number>();
|
|
161
|
+
for (const issue of issues) {
|
|
162
|
+
if (!issue.isClosed && issue.story !== null) {
|
|
163
|
+
openItemCountByStory.set(
|
|
164
|
+
issue.story,
|
|
165
|
+
(openItemCountByStory.get(issue.story) ?? 0) + 1,
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const defaultNameWithOwner =
|
|
171
|
+
issues.find((issue) => issue.nameWithOwner !== '')?.nameWithOwner ?? null;
|
|
172
|
+
|
|
173
|
+
const storyEntries: ConsoleStoryEntry[] = storyOptions
|
|
174
|
+
.filter((option) => option.color !== 'GRAY')
|
|
175
|
+
.map((option) => ({
|
|
176
|
+
storyName: option.name,
|
|
177
|
+
storyOptionId: option.id,
|
|
178
|
+
color: option.color,
|
|
179
|
+
openItemCount: openItemCountByStory.get(option.name) ?? 0,
|
|
180
|
+
}));
|
|
181
|
+
|
|
142
182
|
return {
|
|
143
183
|
'workflow-blocker': buildStatusTabFromSource(
|
|
144
184
|
issues.filter((issue) => issue.isClosed === false),
|
|
@@ -197,6 +237,14 @@ export class GenerateConsoleListsUseCase {
|
|
|
197
237
|
storyOrder,
|
|
198
238
|
),
|
|
199
239
|
},
|
|
240
|
+
stories: {
|
|
241
|
+
pjcode,
|
|
242
|
+
generatedAt,
|
|
243
|
+
stories: storyEntries,
|
|
244
|
+
storyOrder,
|
|
245
|
+
storyColors: this.buildStoryColorsObject(storyOptions),
|
|
246
|
+
defaultNameWithOwner,
|
|
247
|
+
},
|
|
200
248
|
};
|
|
201
249
|
};
|
|
202
250
|
|
|
@@ -26,6 +26,7 @@ export declare const handleReview: (context: ConsoleOperationContext, body: Reco
|
|
|
26
26
|
export declare const handleTriage: (context: ConsoleOperationContext, body: Record<string, unknown>) => Promise<ConsoleOperationResponse>;
|
|
27
27
|
export declare const handleComment: (context: ConsoleOperationContext, body: Record<string, unknown>) => Promise<ConsoleOperationResponse>;
|
|
28
28
|
export declare const handleAttachmentUpload: (context: ConsoleOperationContext, body: Record<string, unknown>) => Promise<ConsoleOperationResponse>;
|
|
29
|
+
export declare const handleCreateIssue: (context: ConsoleOperationContext, body: Record<string, unknown>) => Promise<ConsoleOperationResponse>;
|
|
29
30
|
export declare const handleReviewComment: (context: ConsoleOperationContext, body: Record<string, unknown>) => Promise<ConsoleOperationResponse>;
|
|
30
31
|
export declare const handleIntmux: (context: ConsoleOperationContext, body: Record<string, unknown>) => Promise<ConsoleOperationResponse>;
|
|
31
32
|
//# sourceMappingURL=consoleOperationApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleOperationApi.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleOperationApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uEAAuE,CAAC;AAClH,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAU3D,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AACnE,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAC/D,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CACnC,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;AAE3C,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;AAEjE,MAAM,MAAM,8BAA8B,GAAG,CAC3C,qBAAqB,EAAE,MAAM,KAC1B,eAAe,CAAC;AAErB,MAAM,MAAM,uBAAuB,GAAG;IACpC,sBAAsB,EAAE,8BAA8B,CAAC;IACvD,cAAc,EAAE,sBAAsB,CAAC;IACvC,kBAAkB,EAAE,sBAAsB,CAAC;IAC3C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,yBAAyB,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AA8MF,eAAO,MAAM,YAAY,GACvB,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CAmJlC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CA6FlC,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CA8BlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CA2ClC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CA6BlC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CAiClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"consoleOperationApi.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleOperationApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uEAAuE,CAAC;AAClH,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAU3D,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AACnE,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAC/D,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CACnC,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;AAE3C,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;AAEjE,MAAM,MAAM,8BAA8B,GAAG,CAC3C,qBAAqB,EAAE,MAAM,KAC1B,eAAe,CAAC;AAErB,MAAM,MAAM,uBAAuB,GAAG;IACpC,sBAAsB,EAAE,8BAA8B,CAAC;IACvD,cAAc,EAAE,sBAAsB,CAAC;IACvC,kBAAkB,EAAE,sBAAsB,CAAC;IAC3C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,yBAAyB,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AA8MF,eAAO,MAAM,YAAY,GACvB,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CAmJlC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CA6FlC,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CA8BlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CA2ClC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CA0DlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CA6BlC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,uBAAuB,EAChC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,wBAAwB,CAiClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleTabNames.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleTabNames.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAEnG,eAAO,MAAM,sBAAsB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"consoleTabNames.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleTabNames.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAEnG,eAAO,MAAM,sBAAsB,EAAE,cAAc,EASlD,CAAC;AAOF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,OAAO,EAAE,EAChB,YAAY,MAAM,EAAE,KACnB,OAAO,EAgBT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webServer.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/webServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uEAAuE,CAAC;AAClH,OAAO,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAC;AAM9F,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EAQvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,8BAA8B,EAE9B,sBAAsB,EACtB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"webServer.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/webServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequiredProjectField.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/RequiredProjectField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,4BAA4B,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC;AAE7E,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,4BAA4B,CAAC;IACvC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;CACpC,CAAC;AA6BF,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAC9D,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAC9D,eAAO,MAAM,6BAA6B,0CACD,CAAC;AAC1C,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,eAAO,MAAM,uBAAuB,EAAE,8BAA8B,
|
|
1
|
+
{"version":3,"file":"RequiredProjectField.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/RequiredProjectField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,4BAA4B,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC;AAE7E,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,4BAA4B,CAAC;IACvC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;CACpC,CAAC;AA6BF,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAC9D,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAC9D,eAAO,MAAM,6BAA6B,0CACD,CAAC;AAC1C,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,eAAO,MAAM,uBAAuB,EAAE,8BAA8B,EAqBnE,CAAC"}
|
|
@@ -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'>, 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'>, 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;
|
|
@@ -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":"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;AA2BnF,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;IAgBhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAIvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAhCzC,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,CACvB,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;KAC1B,KAAG,OAAO,CAAC,IAAI,CAAC,CAsRf;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,CAqC/B;IAEF,OAAO,CAAC,eAAe,CAmCrB;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectRequiredFieldCreateUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ProjectRequiredFieldCreateUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAM3E,qBAAa,iCAAiC;IAE1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACf,UAAU,GACV,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,iBAAiB,CACpB;IAGH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KAC1B,KAAG,OAAO,CAAC,IAAI,CAAC,CAQf;IAEF,OAAO,CAAC,mBAAmB,CAYzB;IAEF,OAAO,CAAC,qBAAqB,CAmC3B;IAEF,qBAAqB,GACnB,SAAS,OAAO,EAChB,YAAY,MAAM,EAAE,GAAG,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"ProjectRequiredFieldCreateUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ProjectRequiredFieldCreateUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAM3E,qBAAa,iCAAiC;IAE1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACf,UAAU,GACV,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,iBAAiB,CACpB;IAGH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KAC1B,KAAG,OAAO,CAAC,IAAI,CAAC,CAQf;IAEF,OAAO,CAAC,mBAAmB,CAYzB;IAEF,OAAO,CAAC,qBAAqB,CAmC3B;IAEF,qBAAqB,GACnB,SAAS,OAAO,EAChB,YAAY,MAAM,EAAE,GAAG,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,CAoCd;IAEF,OAAO,CAAC,mBAAmB,CAMvB;IAEJ,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAAoB;CACrD"}
|
|
@@ -42,7 +42,23 @@ export type ConsoleTriageTab = {
|
|
|
42
42
|
storyColors: Record<string, ConsoleColor>;
|
|
43
43
|
items: ConsoleListItem[];
|
|
44
44
|
};
|
|
45
|
-
export type ConsoleTabName = 'workflow-blocker' | 'prs' | 'triage' | 'unread' | 'failed-preparation' | 'todo-by-human' | 'todo-by-agent';
|
|
45
|
+
export type ConsoleTabName = 'workflow-blocker' | 'prs' | 'triage' | 'unread' | 'failed-preparation' | 'todo-by-human' | 'todo-by-agent' | 'stories';
|
|
46
|
+
export type ConsoleStoryEntry = {
|
|
47
|
+
storyName: string;
|
|
48
|
+
storyOptionId: string;
|
|
49
|
+
color: ConsoleColor;
|
|
50
|
+
openItemCount: number;
|
|
51
|
+
};
|
|
52
|
+
export type ConsoleStoriesTab = {
|
|
53
|
+
pjcode: string;
|
|
54
|
+
generatedAt: string;
|
|
55
|
+
stories: ConsoleStoryEntry[];
|
|
56
|
+
storyOrder: string[];
|
|
57
|
+
storyColors: Record<string, {
|
|
58
|
+
color: ConsoleColor;
|
|
59
|
+
}>;
|
|
60
|
+
defaultNameWithOwner: string | null;
|
|
61
|
+
};
|
|
46
62
|
export type ConsoleLists = {
|
|
47
63
|
'workflow-blocker': ConsoleStatusTab;
|
|
48
64
|
prs: ConsoleStatusTab;
|
|
@@ -51,6 +67,7 @@ export type ConsoleLists = {
|
|
|
51
67
|
'failed-preparation': ConsoleStatusTab;
|
|
52
68
|
'todo-by-human': ConsoleStatusTab;
|
|
53
69
|
'todo-by-agent': ConsoleStatusTab;
|
|
70
|
+
stories: ConsoleStoriesTab;
|
|
54
71
|
};
|
|
55
72
|
export type GenerateConsoleListsInput = {
|
|
56
73
|
project: Project;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateConsoleListsUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/console/GenerateConsoleListsUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACrD,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,oBAAoB,GACpB,eAAe,GACf,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"GenerateConsoleListsUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/console/GenerateConsoleListsUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACrD,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,oBAAoB,GACpB,eAAe,GACf,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACrD,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,kBAAkB,EAAE,gBAAgB,CAAC;IACrC,GAAG,EAAE,gBAAgB,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,eAAe,EAAE,gBAAgB,CAAC;IAClC,eAAe,EAAE,gBAAgB,CAAC;IAClC,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC,CAAC;AAIF,qBAAa,2BAA2B;IACtC,GAAG,GAAI,OAAO,yBAAyB,KAAG,YAAY,CAiJpD;IAEF,OAAO,CAAC,UAAU,CAIyD;IAE3E,OAAO,CAAC,YAAY,CAKY;IAEhC,OAAO,CAAC,uBAAuB,CAS7B;IAEF,OAAO,CAAC,yCAAyC,CAoB/C;IAEF,OAAO,CAAC,WAAW,CAqBhB;IAEH,OAAO,CAAC,iBAAiB,CAYjB;IAER,OAAO,CAAC,sBAAsB,CAQ5B;IAEF,OAAO,CAAC,sBAAsB,CAQ5B;IAEF,OAAO,CAAC,gBAAgB,CAetB;CACH"}
|