github-issue-tower-defence-management 1.30.2 → 1.32.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.
Files changed (37) hide show
  1. package/.github/workflows/umino-project.yml +1 -0
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +12 -0
  4. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +65 -31
  5. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
  6. package/bin/adapter/repositories/NodeLocalCommandRunner.js +34 -0
  7. package/bin/adapter/repositories/NodeLocalCommandRunner.js.map +1 -0
  8. package/bin/adapter/repositories/StubClaudeRepository.js +13 -0
  9. package/bin/adapter/repositories/StubClaudeRepository.js.map +1 -0
  10. package/bin/domain/usecases/AnalyzeProblemByIssueUseCase.js +0 -38
  11. package/bin/domain/usecases/AnalyzeProblemByIssueUseCase.js.map +1 -1
  12. package/bin/domain/usecases/HandleScheduledEventUseCase.js +13 -8
  13. package/bin/domain/usecases/HandleScheduledEventUseCase.js.map +1 -1
  14. package/bin/domain/usecases/utils.js +1 -14
  15. package/bin/domain/usecases/utils.js.map +1 -1
  16. package/package.json +1 -1
  17. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.test.ts +9 -0
  18. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +12 -0
  19. package/src/adapter/repositories/NodeLocalCommandRunner.test.ts +80 -0
  20. package/src/adapter/repositories/NodeLocalCommandRunner.ts +37 -0
  21. package/src/adapter/repositories/StubClaudeRepository.test.ts +19 -0
  22. package/src/adapter/repositories/StubClaudeRepository.ts +12 -0
  23. package/src/domain/usecases/AnalyzeProblemByIssueUseCase.ts +1 -68
  24. package/src/domain/usecases/HandleScheduledEventUseCase.test.ts +3 -24
  25. package/src/domain/usecases/HandleScheduledEventUseCase.ts +21 -7
  26. package/src/domain/usecases/utils.ts +0 -22
  27. package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
  28. package/types/adapter/repositories/NodeLocalCommandRunner.d.ts +9 -0
  29. package/types/adapter/repositories/NodeLocalCommandRunner.d.ts.map +1 -0
  30. package/types/adapter/repositories/StubClaudeRepository.d.ts +7 -0
  31. package/types/adapter/repositories/StubClaudeRepository.d.ts.map +1 -0
  32. package/types/domain/usecases/AnalyzeProblemByIssueUseCase.d.ts +2 -14
  33. package/types/domain/usecases/AnalyzeProblemByIssueUseCase.d.ts.map +1 -1
  34. package/types/domain/usecases/HandleScheduledEventUseCase.d.ts +10 -1
  35. package/types/domain/usecases/HandleScheduledEventUseCase.d.ts.map +1 -1
  36. package/types/domain/usecases/utils.d.ts +0 -3
  37. package/types/domain/usecases/utils.d.ts.map +1 -1
@@ -183,6 +183,7 @@ jobs:
183
183
  steps:
184
184
  - uses: nearform-actions/github-action-check-linked-issues@v1
185
185
  id: check-linked-issues
186
+ if: github.event.pull_request.user.login != 'dependabot[bot]'
186
187
  with:
187
188
  exclude-branches: 'release/**, dependabot/**, project-common/**, renovate/**'
188
189
  github-token: ${{ secrets.GH_TOKEN }}
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ # [1.32.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.31.0...v1.32.0) (2026-03-21)
2
+
3
+
4
+ ### Features
5
+
6
+ * **core:** integrate StartPreparationUseCase into HandleScheduledEventUseCase chain ([d346cfc](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/d346cfc65480bd1f8b86b8d915404bc975abe97a))
7
+
8
+ # [1.31.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.30.2...v1.31.0) (2026-03-16)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **core:** keep isInProgress field in Issue entity ([b5c756b](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/b5c756b662311c2b4a6f3e8bc5b3abcbc94e002d))
14
+
15
+
16
+ ### Features
17
+
18
+ * **core:** remove checkInProgress from AnalyzeProblemByIssueUseCase ([91daf23](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/91daf232d7c6c998a48da2865ba66a4e72abae8b))
19
+
1
20
  ## [1.30.2](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.30.1...v1.30.2) (2026-03-15)
2
21
 
3
22
 
package/README.md CHANGED
@@ -54,6 +54,12 @@ workingReport:
54
54
  reportIssueLabels: # Array of issue labels
55
55
  - string
56
56
  - string
57
+ startPreparation?: # Optional: Enable automatic issue preparation workflow
58
+ awaitingWorkspaceStatus: string # Project status name for issues awaiting workspace
59
+ preparationStatus: string # Project status name for issues in preparation
60
+ defaultAgentName: string # Default agent name to assign for preparation
61
+ logFilePath?: string # Optional: Path to log file for preparation output
62
+ maximumPreparingIssuesCount: number | null # Max concurrent preparing issues (null = unlimited)
57
63
  ```
58
64
 
59
65
  Example:
@@ -84,6 +90,12 @@ workingReport:
84
90
  - 'working-time'
85
91
  slack:
86
92
  userToken: 'xoxp-xxx'
93
+ startPreparation:
94
+ awaitingWorkspaceStatus: 'Awaiting Workspace'
95
+ preparationStatus: 'Preparation'
96
+ defaultAgentName: 'umino-bot'
97
+ logFilePath: '/tmp/preparation.log'
98
+ maximumPreparingIssuesCount: 3
87
99
  ```
88
100
 
89
101
  ### Slack User Token
@@ -56,6 +56,9 @@ const CreateNewStoryByLabelUseCase_1 = require("../../../domain/usecases/CreateN
56
56
  const CheerioProjectRepository_1 = require("../../repositories/CheerioProjectRepository");
57
57
  const AssignNoAssigneeIssueToManagerUseCase_1 = require("../../../domain/usecases/AssignNoAssigneeIssueToManagerUseCase");
58
58
  const UpdateIssueStatusByLabelUseCase_1 = require("../../../domain/usecases/UpdateIssueStatusByLabelUseCase");
59
+ const StartPreparationUseCase_1 = require("../../../domain/usecases/StartPreparationUseCase");
60
+ const NodeLocalCommandRunner_1 = require("../../repositories/NodeLocalCommandRunner");
61
+ const StubClaudeRepository_1 = require("../../repositories/StubClaudeRepository");
59
62
  class HandleScheduledEventUseCaseHandler {
60
63
  constructor() {
61
64
  this.handle = async (configFilePath, verbose) => {
@@ -70,8 +73,8 @@ class HandleScheduledEventUseCaseHandler {
70
73
  });
71
74
  const configFileContent = fs_1.default.readFileSync(configFilePath, 'utf8');
72
75
  const input = yaml_1.default.parse(configFileContent);
73
- if (!(() => { const _io0 = input => "string" === typeof input.projectName && "string" === typeof input.org && "string" === typeof input.projectUrl && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && _io1(input.workingReport)) && "string" === typeof input.urlOfStoryView && "string" === typeof input.disabledStatus && (null === input.defaultStatus || "string" === typeof input.defaultStatus) && "boolean" === typeof input.disabled && "number" === typeof input.allowIssueCacheMinutes && ("object" === typeof input.credentials && null !== input.credentials && _io2(input.credentials)); const _io1 = input => "string" === typeof input.repo && (Array.isArray(input.members) && input.members.every(elem => "string" === typeof elem)) && "string" === typeof input.spreadsheetUrl; const _io2 = input => "object" === typeof input.manager && null !== input.manager && _io3(input.manager) && ("object" === typeof input.bot && null !== input.bot && _io7(input.bot)); const _io3 = input => "object" === typeof input.github && null !== input.github && _io4(input.github) && ("object" === typeof input.slack && null !== input.slack && _io5(input.slack)) && ("object" === typeof input.googleServiceAccount && null !== input.googleServiceAccount && _io6(input.googleServiceAccount)); const _io4 = input => "string" === typeof input.token; const _io5 = input => "string" === typeof input.userToken; const _io6 = input => "string" === typeof input.serviceAccountKey; const _io7 = input => "object" === typeof input.github && null !== input.github && _io8(input.github); const _io8 = input => "string" === typeof input.token && (undefined === input.name || "string" === typeof input.name) && (undefined === input.password || "string" === typeof input.password) && (undefined === input.authenticatorKey || "string" === typeof input.authenticatorKey); return input => "object" === typeof input && null !== input && _io0(input); })()(input)) {
74
- throw new Error(`Invalid input: ${JSON.stringify(input)}\n\n${JSON.stringify((() => { const _io0 = input => "string" === typeof input.projectName && "string" === typeof input.org && "string" === typeof input.projectUrl && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && _io1(input.workingReport)) && "string" === typeof input.urlOfStoryView && "string" === typeof input.disabledStatus && (null === input.defaultStatus || "string" === typeof input.defaultStatus) && "boolean" === typeof input.disabled && "number" === typeof input.allowIssueCacheMinutes && ("object" === typeof input.credentials && null !== input.credentials && _io2(input.credentials)); const _io1 = input => "string" === typeof input.repo && (Array.isArray(input.members) && input.members.every(elem => "string" === typeof elem)) && "string" === typeof input.spreadsheetUrl; const _io2 = input => "object" === typeof input.manager && null !== input.manager && _io3(input.manager) && ("object" === typeof input.bot && null !== input.bot && _io7(input.bot)); const _io3 = input => "object" === typeof input.github && null !== input.github && _io4(input.github) && ("object" === typeof input.slack && null !== input.slack && _io5(input.slack)) && ("object" === typeof input.googleServiceAccount && null !== input.googleServiceAccount && _io6(input.googleServiceAccount)); const _io4 = input => "string" === typeof input.token; const _io5 = input => "string" === typeof input.userToken; const _io6 = input => "string" === typeof input.serviceAccountKey; const _io7 = input => "object" === typeof input.github && null !== input.github && _io8(input.github); const _io8 = input => "string" === typeof input.token && (undefined === input.name || "string" === typeof input.name) && (undefined === input.password || "string" === typeof input.password) && (undefined === input.authenticatorKey || "string" === typeof input.authenticatorKey); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.projectName || _report(_exceptionable, {
76
+ if (!(() => { const _io0 = input => "string" === typeof input.projectName && "string" === typeof input.org && "string" === typeof input.projectUrl && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && _io1(input.workingReport)) && "string" === typeof input.urlOfStoryView && "string" === typeof input.disabledStatus && (null === input.defaultStatus || "string" === typeof input.defaultStatus) && "boolean" === typeof input.disabled && "number" === typeof input.allowIssueCacheMinutes && (null === input.startPreparation || undefined === input.startPreparation || "object" === typeof input.startPreparation && null !== input.startPreparation && _io2(input.startPreparation)) && ("object" === typeof input.credentials && null !== input.credentials && _io3(input.credentials)); const _io1 = input => "string" === typeof input.repo && (Array.isArray(input.members) && input.members.every(elem => "string" === typeof elem)) && "string" === typeof input.spreadsheetUrl; const _io2 = input => "string" === typeof input.awaitingWorkspaceStatus && "string" === typeof input.preparationStatus && "string" === typeof input.defaultAgentName && (undefined === input.logFilePath || "string" === typeof input.logFilePath) && (null === input.maximumPreparingIssuesCount || "number" === typeof input.maximumPreparingIssuesCount); const _io3 = input => "object" === typeof input.manager && null !== input.manager && _io4(input.manager) && ("object" === typeof input.bot && null !== input.bot && _io8(input.bot)); const _io4 = input => "object" === typeof input.github && null !== input.github && _io5(input.github) && ("object" === typeof input.slack && null !== input.slack && _io6(input.slack)) && ("object" === typeof input.googleServiceAccount && null !== input.googleServiceAccount && _io7(input.googleServiceAccount)); const _io5 = input => "string" === typeof input.token; const _io6 = input => "string" === typeof input.userToken; const _io7 = input => "string" === typeof input.serviceAccountKey; const _io8 = input => "object" === typeof input.github && null !== input.github && _io9(input.github); const _io9 = input => "string" === typeof input.token && (undefined === input.name || "string" === typeof input.name) && (undefined === input.password || "string" === typeof input.password) && (undefined === input.authenticatorKey || "string" === typeof input.authenticatorKey); return input => "object" === typeof input && null !== input && _io0(input); })()(input)) {
77
+ throw new Error(`Invalid input: ${JSON.stringify(input)}\n\n${JSON.stringify((() => { const _io0 = input => "string" === typeof input.projectName && "string" === typeof input.org && "string" === typeof input.projectUrl && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && _io1(input.workingReport)) && "string" === typeof input.urlOfStoryView && "string" === typeof input.disabledStatus && (null === input.defaultStatus || "string" === typeof input.defaultStatus) && "boolean" === typeof input.disabled && "number" === typeof input.allowIssueCacheMinutes && (null === input.startPreparation || undefined === input.startPreparation || "object" === typeof input.startPreparation && null !== input.startPreparation && _io2(input.startPreparation)) && ("object" === typeof input.credentials && null !== input.credentials && _io3(input.credentials)); const _io1 = input => "string" === typeof input.repo && (Array.isArray(input.members) && input.members.every(elem => "string" === typeof elem)) && "string" === typeof input.spreadsheetUrl; const _io2 = input => "string" === typeof input.awaitingWorkspaceStatus && "string" === typeof input.preparationStatus && "string" === typeof input.defaultAgentName && (undefined === input.logFilePath || "string" === typeof input.logFilePath) && (null === input.maximumPreparingIssuesCount || "number" === typeof input.maximumPreparingIssuesCount); const _io3 = input => "object" === typeof input.manager && null !== input.manager && _io4(input.manager) && ("object" === typeof input.bot && null !== input.bot && _io8(input.bot)); const _io4 = input => "object" === typeof input.github && null !== input.github && _io5(input.github) && ("object" === typeof input.slack && null !== input.slack && _io6(input.slack)) && ("object" === typeof input.googleServiceAccount && null !== input.googleServiceAccount && _io7(input.googleServiceAccount)); const _io5 = input => "string" === typeof input.token; const _io6 = input => "string" === typeof input.userToken; const _io7 = input => "string" === typeof input.serviceAccountKey; const _io8 = input => "object" === typeof input.github && null !== input.github && _io9(input.github); const _io9 = input => "string" === typeof input.token && (undefined === input.name || "string" === typeof input.name) && (undefined === input.password || "string" === typeof input.password) && (undefined === input.authenticatorKey || "string" === typeof input.authenticatorKey); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.projectName || _report(_exceptionable, {
75
78
  path: _path + ".projectName",
76
79
  expected: "string",
77
80
  value: input.projectName
@@ -115,13 +118,21 @@ class HandleScheduledEventUseCaseHandler {
115
118
  path: _path + ".allowIssueCacheMinutes",
116
119
  expected: "number",
117
120
  value: input.allowIssueCacheMinutes
121
+ }), null === input.startPreparation || undefined === input.startPreparation || ("object" === typeof input.startPreparation && null !== input.startPreparation || _report(_exceptionable, {
122
+ path: _path + ".startPreparation",
123
+ expected: "(__type.o1 | null | undefined)",
124
+ value: input.startPreparation
125
+ })) && _vo2(input.startPreparation, _path + ".startPreparation", true && _exceptionable) || _report(_exceptionable, {
126
+ path: _path + ".startPreparation",
127
+ expected: "(__type.o1 | null | undefined)",
128
+ value: input.startPreparation
118
129
  }), ("object" === typeof input.credentials && null !== input.credentials || _report(_exceptionable, {
119
130
  path: _path + ".credentials",
120
- expected: "__type.o1",
131
+ expected: "__type.o2",
121
132
  value: input.credentials
122
- })) && _vo2(input.credentials, _path + ".credentials", true && _exceptionable) || _report(_exceptionable, {
133
+ })) && _vo3(input.credentials, _path + ".credentials", true && _exceptionable) || _report(_exceptionable, {
123
134
  path: _path + ".credentials",
124
- expected: "__type.o1",
135
+ expected: "__type.o2",
125
136
  value: input.credentials
126
137
  })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.repo || _report(_exceptionable, {
127
138
  path: _path + ".repo",
@@ -143,67 +154,87 @@ class HandleScheduledEventUseCaseHandler {
143
154
  path: _path + ".spreadsheetUrl",
144
155
  expected: "string",
145
156
  value: input.spreadsheetUrl
146
- })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => [("object" === typeof input.manager && null !== input.manager || _report(_exceptionable, {
157
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.awaitingWorkspaceStatus || _report(_exceptionable, {
158
+ path: _path + ".awaitingWorkspaceStatus",
159
+ expected: "string",
160
+ value: input.awaitingWorkspaceStatus
161
+ }), "string" === typeof input.preparationStatus || _report(_exceptionable, {
162
+ path: _path + ".preparationStatus",
163
+ expected: "string",
164
+ value: input.preparationStatus
165
+ }), "string" === typeof input.defaultAgentName || _report(_exceptionable, {
166
+ path: _path + ".defaultAgentName",
167
+ expected: "string",
168
+ value: input.defaultAgentName
169
+ }), undefined === input.logFilePath || "string" === typeof input.logFilePath || _report(_exceptionable, {
170
+ path: _path + ".logFilePath",
171
+ expected: "(string | undefined)",
172
+ value: input.logFilePath
173
+ }), null === input.maximumPreparingIssuesCount || "number" === typeof input.maximumPreparingIssuesCount || _report(_exceptionable, {
174
+ path: _path + ".maximumPreparingIssuesCount",
175
+ expected: "(null | number)",
176
+ value: input.maximumPreparingIssuesCount
177
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => [("object" === typeof input.manager && null !== input.manager || _report(_exceptionable, {
147
178
  path: _path + ".manager",
148
- expected: "__type.o2",
179
+ expected: "__type.o3",
149
180
  value: input.manager
150
- })) && _vo3(input.manager, _path + ".manager", true && _exceptionable) || _report(_exceptionable, {
181
+ })) && _vo4(input.manager, _path + ".manager", true && _exceptionable) || _report(_exceptionable, {
151
182
  path: _path + ".manager",
152
- expected: "__type.o2",
183
+ expected: "__type.o3",
153
184
  value: input.manager
154
185
  }), ("object" === typeof input.bot && null !== input.bot || _report(_exceptionable, {
155
186
  path: _path + ".bot",
156
- expected: "__type.o6",
187
+ expected: "__type.o7",
157
188
  value: input.bot
158
- })) && _vo7(input.bot, _path + ".bot", true && _exceptionable) || _report(_exceptionable, {
189
+ })) && _vo8(input.bot, _path + ".bot", true && _exceptionable) || _report(_exceptionable, {
159
190
  path: _path + ".bot",
160
- expected: "__type.o6",
191
+ expected: "__type.o7",
161
192
  value: input.bot
162
- })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => [("object" === typeof input.github && null !== input.github || _report(_exceptionable, {
193
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [("object" === typeof input.github && null !== input.github || _report(_exceptionable, {
163
194
  path: _path + ".github",
164
- expected: "__type.o3",
195
+ expected: "__type.o4",
165
196
  value: input.github
166
- })) && _vo4(input.github, _path + ".github", true && _exceptionable) || _report(_exceptionable, {
197
+ })) && _vo5(input.github, _path + ".github", true && _exceptionable) || _report(_exceptionable, {
167
198
  path: _path + ".github",
168
- expected: "__type.o3",
199
+ expected: "__type.o4",
169
200
  value: input.github
170
201
  }), ("object" === typeof input.slack && null !== input.slack || _report(_exceptionable, {
171
202
  path: _path + ".slack",
172
- expected: "__type.o4",
203
+ expected: "__type.o5",
173
204
  value: input.slack
174
- })) && _vo5(input.slack, _path + ".slack", true && _exceptionable) || _report(_exceptionable, {
205
+ })) && _vo6(input.slack, _path + ".slack", true && _exceptionable) || _report(_exceptionable, {
175
206
  path: _path + ".slack",
176
- expected: "__type.o4",
207
+ expected: "__type.o5",
177
208
  value: input.slack
178
209
  }), ("object" === typeof input.googleServiceAccount && null !== input.googleServiceAccount || _report(_exceptionable, {
179
210
  path: _path + ".googleServiceAccount",
180
- expected: "__type.o5",
211
+ expected: "__type.o6",
181
212
  value: input.googleServiceAccount
182
- })) && _vo6(input.googleServiceAccount, _path + ".googleServiceAccount", true && _exceptionable) || _report(_exceptionable, {
213
+ })) && _vo7(input.googleServiceAccount, _path + ".googleServiceAccount", true && _exceptionable) || _report(_exceptionable, {
183
214
  path: _path + ".googleServiceAccount",
184
- expected: "__type.o5",
215
+ expected: "__type.o6",
185
216
  value: input.googleServiceAccount
186
- })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.token || _report(_exceptionable, {
217
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.token || _report(_exceptionable, {
187
218
  path: _path + ".token",
188
219
  expected: "string",
189
220
  value: input.token
190
- })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.userToken || _report(_exceptionable, {
221
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.userToken || _report(_exceptionable, {
191
222
  path: _path + ".userToken",
192
223
  expected: "string",
193
224
  value: input.userToken
194
- })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.serviceAccountKey || _report(_exceptionable, {
225
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.serviceAccountKey || _report(_exceptionable, {
195
226
  path: _path + ".serviceAccountKey",
196
227
  expected: "string",
197
228
  value: input.serviceAccountKey
198
- })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [("object" === typeof input.github && null !== input.github || _report(_exceptionable, {
229
+ })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [("object" === typeof input.github && null !== input.github || _report(_exceptionable, {
199
230
  path: _path + ".github",
200
- expected: "__type.o7",
231
+ expected: "__type.o8",
201
232
  value: input.github
202
- })) && _vo8(input.github, _path + ".github", true && _exceptionable) || _report(_exceptionable, {
233
+ })) && _vo9(input.github, _path + ".github", true && _exceptionable) || _report(_exceptionable, {
203
234
  path: _path + ".github",
204
- expected: "__type.o7",
235
+ expected: "__type.o8",
205
236
  value: input.github
206
- })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => ["string" === typeof input.token || _report(_exceptionable, {
237
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => ["string" === typeof input.token || _report(_exceptionable, {
207
238
  path: _path + ".token",
208
239
  expected: "string",
209
240
  value: input.token
@@ -288,7 +319,10 @@ class HandleScheduledEventUseCaseHandler {
288
319
  const createNewStoryByLabel = new CreateNewStoryByLabelUseCase_1.CreateNewStoryByLabelUseCase(projectRepository, issueRepository);
289
320
  const assignNoAssigneeIssueToManagerUseCase = new AssignNoAssigneeIssueToManagerUseCase_1.AssignNoAssigneeIssueToManagerUseCase(issueRepository);
290
321
  const updateIssueStatusByLabelUseCase = new UpdateIssueStatusByLabelUseCase_1.UpdateIssueStatusByLabelUseCase(issueRepository);
291
- const handleScheduledEventUseCase = new HandleScheduledEventUseCase_1.HandleScheduledEventUseCase(actionAnnouncement, setWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase, analyzeProblemByIssueUseCase, analyzeStoriesUseCase, clearDependedIssueURLUseCase, createEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase, createNewStoryByLabel, assignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase, systemDateRepository, googleSpreadsheetRepository, projectRepository, issueRepository);
322
+ const nodeLocalCommandRunner = new NodeLocalCommandRunner_1.NodeLocalCommandRunner();
323
+ const stubClaudeRepository = new StubClaudeRepository_1.StubClaudeRepository();
324
+ const startPreparationUseCase = new StartPreparationUseCase_1.StartPreparationUseCase(projectRepository, issueRepository, stubClaudeRepository, nodeLocalCommandRunner);
325
+ const handleScheduledEventUseCase = new HandleScheduledEventUseCase_1.HandleScheduledEventUseCase(actionAnnouncement, setWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase, analyzeProblemByIssueUseCase, analyzeStoriesUseCase, clearDependedIssueURLUseCase, createEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase, createNewStoryByLabel, assignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase, startPreparationUseCase, systemDateRepository, googleSpreadsheetRepository, projectRepository, issueRepository);
292
326
  return await handleScheduledEventUseCase.run(input);
293
327
  };
294
328
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,kDAA0B;AAC1B,4CAAoB;AACpB,kFAA+E;AAC/E,sFAAmF;AACnF,gGAA6F;AAC7F,0FAAuF;AACvF,wFAAqF;AACrF,sFAAmF;AACnF,wGAAqG;AACrG,8GAA2G;AAC3G,sGAAmG;AACnG,gGAA6F;AAC7F,kGAA+F;AAC/F,gIAA6H;AAC7H,oGAAiG;AACjG,wGAAqG;AAIrG,0FAAuF;AACvF,wGAAqG;AACrG,wGAAqG;AACrG,kDAA0C;AAC1C,kIAA+H;AAC/H,8GAA2G;AAC3G,0GAAuG;AACvG,wGAAqG;AACrG,0FAAuF;AAEvF,0HAAuH;AACvH,8GAA2G;AAE3G,MAAa,kCAAkC;IAA/C;QACE,WAAM,GAAG,KAAK,EACZ,cAAsB,EACtB,OAAgB,EAMR,EAAE;YACV,eAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC7B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAAiB,EAAE,EAAE;gBACpB,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzD,CAAC;gBACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YACnC,CAAC,CACF,CAAC;YAEF,MAAM,iBAAiB,GAAG,YAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,KAAK,GAAY,cAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAyBrD,IAAI,k7DAAqB,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAA2B,KAAK,EAAE,EAAE,CACjG,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,EAAE,CAAC;YACxD,MAAM,sBAAsB,GAAG,IAAI,+CAAsB,EAAE,CAAC;YAC5D,MAAM,2BAA2B,GAAG,IAAI,yDAA2B,CACjE,sBAAsB,EACtB,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CACjE,CAAC;YACF,MAAM,SAAS,GAAG,eAAe,KAAK,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,2BAA2B,GAAG,IAAI,yDAA2B,CACjE,sBAAsB,EACtB,SAAS,CACV,CAAC;YACF,MAAM,sBAAsB,GAExB;gBACF,sBAAsB;gBACtB,GAAG,SAAS,0BAA0B;gBACtC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK;gBAClC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;gBACjC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;gBACrC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB;aAC9C,CAAC;YACF,MAAM,iBAAiB,GAAsB;gBAC3C,GAAG,IAAI,mDAAwB,CAAC,GAAG,sBAAsB,CAAC;gBAC1D,GAAG,IAAI,mDAAwB,CAAC,GAAG,sBAAsB,CAAC;gBAC1D,aAAa,EAAE,KAAK,EAClB,KAAa,EACb,QAAiB,EACC,EAAE;oBACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACtD,CAAC;aACF,CAAC;YACF,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,CACnD,GAAG,sBAAsB,CAC1B,CAAC;YACF,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,CACjD,GAAG,sBAAsB,CAC1B,CAAC;YACF,MAAM,4BAA4B,GAAG,IAAI,2DAA4B,CACnE,GAAG,sBAAsB,CAC1B,CAAC;YACF,MAAM,eAAe,GAAG,IAAI,iEAA+B,CACzD,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,EAC5B,2BAA2B,EAC3B,GAAG,sBAAsB,CAC1B,CAAC;YACF,MAAM,kBAAkB,GAAG,IAAI,qDAAyB,CAAC,eAAe,CAAC,CAAC;YAC1E,MAAM,wCAAwC,GAC5C,IAAI,mFAAwC,CAAC,eAAe,CAAC,CAAC;YAChE,MAAM,0BAA0B,GAAG,IAAI,uDAA0B,CAC/D,eAAe,CAChB,CAAC;YACF,MAAM,4BAA4B,GAAG,IAAI,2DAA4B,CACnE,eAAe,EACf,oBAAoB,CACrB,CAAC;YACF,MAAM,qBAAqB,GAAG,IAAI,6CAAqB,CACrD,eAAe,EACf,oBAAoB,CACrB,CAAC;YACF,MAAM,4BAA4B,GAAG,IAAI,2DAA4B,CACnE,eAAe,CAChB,CAAC;YACF,MAAM,4BAA4B,GAAG,IAAI,2DAA4B,CACnE,eAAe,EACf,oBAAoB,CACrB,CAAC;YACF,MAAM,yCAAyC,GAC7C,IAAI,qFAAyC,CAAC,eAAe,CAAC,CAAC;YACjE,MAAM,+BAA+B,GAAG,IAAI,iEAA+B,CACzE,oBAAoB,EACpB,eAAe,CAChB,CAAC;YAEF,MAAM,6BAA6B,GAAG,IAAI,6DAA6B,CACrE,eAAe,CAChB,CAAC;YACF,MAAM,qBAAqB,GAAG,IAAI,2DAA4B,CAC5D,iBAAiB,EACjB,eAAe,CAChB,CAAC;YACF,MAAM,qCAAqC,GACzC,IAAI,6EAAqC,CAAC,eAAe,CAAC,CAAC;YAC7D,MAAM,+BAA+B,GAAG,IAAI,iEAA+B,CACzE,eAAe,CAChB,CAAC;YAEF,MAAM,2BAA2B,GAAG,IAAI,yDAA2B,CACjE,kBAAkB,EAClB,wCAAwC,EACxC,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,yCAAyC,EACzC,+BAA+B,EAC/B,6BAA6B,EAC7B,qBAAqB,EACrB,qCAAqC,EACrC,+BAA+B,EAC/B,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,CAChB,CAAC;YAEF,OAAO,MAAM,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC;IACJ,CAAC;CAAA;AAvKD,gFAuKC"}
1
+ {"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeLocalCommandRunner = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const util_1 = require("util");
6
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
7
+ class NodeLocalCommandRunner {
8
+ async runCommand(command) {
9
+ try {
10
+ const { stdout, stderr } = await execAsync(command);
11
+ return {
12
+ stdout,
13
+ stderr,
14
+ exitCode: 0,
15
+ };
16
+ }
17
+ catch (error) {
18
+ if (error &&
19
+ typeof error === 'object' &&
20
+ 'stdout' in error &&
21
+ 'stderr' in error &&
22
+ 'code' in error) {
23
+ return {
24
+ stdout: String(error.stdout),
25
+ stderr: String(error.stderr),
26
+ exitCode: typeof error.code === 'number' ? error.code : 1,
27
+ };
28
+ }
29
+ throw error;
30
+ }
31
+ }
32
+ }
33
+ exports.NodeLocalCommandRunner = NodeLocalCommandRunner;
34
+ //# sourceMappingURL=NodeLocalCommandRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeLocalCommandRunner.js","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeLocalCommandRunner.ts"],"names":[],"mappings":";;;AACA,iDAAqC;AACrC,+BAAiC;AAEjC,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAElC,MAAa,sBAAsB;IACjC,KAAK,CAAC,UAAU,CAAC,OAAe;QAK9B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YACpD,OAAO;gBACL,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK;gBACL,OAAO,KAAK,KAAK,QAAQ;gBACzB,QAAQ,IAAI,KAAK;gBACjB,QAAQ,IAAI,KAAK;gBACjB,MAAM,IAAI,KAAK,EACf,CAAC;gBACD,OAAO;oBACL,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC5B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC5B,QAAQ,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC1D,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AA9BD,wDA8BC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StubClaudeRepository = void 0;
4
+ class StubClaudeRepository {
5
+ async getUsage() {
6
+ return [];
7
+ }
8
+ async isClaudeAvailable(_threshold) {
9
+ return true;
10
+ }
11
+ }
12
+ exports.StubClaudeRepository = StubClaudeRepository;
13
+ //# sourceMappingURL=StubClaudeRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StubClaudeRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/StubClaudeRepository.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAC/B,KAAK,CAAC,QAAQ;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AARD,oDAQC"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnalyzeProblemByIssueUseCase = void 0;
4
- const utils_1 = require("./utils");
5
4
  class AnalyzeProblemByIssueUseCase {
6
5
  constructor(issueRepository, dateRepository) {
7
6
  this.issueRepository = issueRepository;
@@ -16,7 +15,6 @@ class AnalyzeProblemByIssueUseCase {
16
15
  if (!targetDate) {
17
16
  return;
18
17
  }
19
- await this.checkInProgress({ ...input, targetDate });
20
18
  for (const storyObject of input.storyObjectMap.values()) {
21
19
  const storyIssue = storyObject.storyIssue;
22
20
  if (!storyIssue) {
@@ -26,42 +24,6 @@ class AnalyzeProblemByIssueUseCase {
26
24
  await new Promise((resolve) => setTimeout(resolve, 5000));
27
25
  }
28
26
  };
29
- this.checkInProgress = async (input) => {
30
- const assigneeToNotify = [];
31
- for (const member of input.members) {
32
- let topIssue = null;
33
- for (const story of input.storyObjectMap.values()) {
34
- const storyIssueObject = input.storyObjectMap.get(story.story.name);
35
- if (!storyIssueObject) {
36
- continue;
37
- }
38
- else if (assigneeToNotify.includes(member)) {
39
- break;
40
- }
41
- for (const issue of storyIssueObject.issues) {
42
- if (!(0, utils_1.isVisibleIssue)(issue, member, input.targetDate, input.disabledStatus) ||
43
- issue.status?.toLowerCase().includes('review') ||
44
- issue.title.toLowerCase().includes('review') ||
45
- issue.isPr) {
46
- continue;
47
- }
48
- if (topIssue === null) {
49
- topIssue = issue;
50
- break;
51
- }
52
- if (!issue.isInProgress) {
53
- continue;
54
- }
55
- assigneeToNotify.push(member);
56
- break;
57
- }
58
- }
59
- }
60
- if (assigneeToNotify.length === 0) {
61
- return;
62
- }
63
- await this.issueRepository.createNewIssue(input.org, input.repo, 'Check in progress', `${assigneeToNotify.join('\n')}`, [input.manager], ['story:workflow-management']);
64
- };
65
27
  this.createSummaryCommentBody = (storyObject) => {
66
28
  const getFlowchartIdFromUrl = (url) => {
67
29
  return url.split('/').slice(-3).join('/');
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyzeProblemByIssueUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/AnalyzeProblemByIssueUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnalyzeProblemByIssueUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/AnalyzeProblemByIssueUseCase.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ class ProjectNotFoundError extends Error {
9
9
  }
10
10
  exports.ProjectNotFoundError = ProjectNotFoundError;
11
11
  class HandleScheduledEventUseCase {
12
- constructor(actionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase, analyzeProblemByIssueUseCase, analyzeStoriesUseCase, clearDependedIssueURLUseCase, createEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase, dateRepository, spreadsheetRepository, projectRepository, issueRepository) {
12
+ constructor(actionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase, analyzeProblemByIssueUseCase, analyzeStoriesUseCase, clearDependedIssueURLUseCase, createEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase, startPreparationUseCase, dateRepository, spreadsheetRepository, projectRepository, issueRepository) {
13
13
  this.actionAnnouncementUseCase = actionAnnouncementUseCase;
14
14
  this.setWorkflowManagementIssueToStoryUseCase = setWorkflowManagementIssueToStoryUseCase;
15
15
  this.clearNextActionHourUseCase = clearNextActionHourUseCase;
@@ -23,6 +23,7 @@ class HandleScheduledEventUseCase {
23
23
  this.createNewStoryByLabelUseCase = createNewStoryByLabelUseCase;
24
24
  this.assignNoAssigneeIssueToManagerUseCase = assignNoAssigneeIssueToManagerUseCase;
25
25
  this.updateIssueStatusByLabelUseCase = updateIssueStatusByLabelUseCase;
26
+ this.startPreparationUseCase = startPreparationUseCase;
26
27
  this.dateRepository = dateRepository;
27
28
  this.spreadsheetRepository = spreadsheetRepository;
28
29
  this.projectRepository = projectRepository;
@@ -115,14 +116,7 @@ ${JSON.stringify(e)}
115
116
  await this.analyzeProblemByIssueUseCase.run({
116
117
  targetDates: targetDateTimes,
117
118
  project,
118
- issues,
119
- cacheUsed,
120
- manager: input.manager,
121
- members: input.workingReport.members,
122
- org: input.org,
123
- repo: input.workingReport.repo,
124
119
  storyObjectMap: storyObjectMap,
125
- disabledStatus: input.disabledStatus,
126
120
  });
127
121
  await this.actionAnnouncementUseCase.run({
128
122
  targetDates: targetDateTimes,
@@ -207,6 +201,17 @@ ${JSON.stringify(e)}
207
201
  issues,
208
202
  defaultStatus: input.defaultStatus,
209
203
  });
204
+ if (input.startPreparation) {
205
+ await this.startPreparationUseCase.run({
206
+ projectUrl: input.projectUrl,
207
+ awaitingWorkspaceStatus: input.startPreparation.awaitingWorkspaceStatus,
208
+ preparationStatus: input.startPreparation.preparationStatus,
209
+ defaultAgentName: input.startPreparation.defaultAgentName,
210
+ logFilePath: input.startPreparation.logFilePath,
211
+ maximumPreparingIssuesCount: input.startPreparation.maximumPreparingIssuesCount,
212
+ allowIssueCacheMinutes: input.allowIssueCacheMinutes,
213
+ });
214
+ }
210
215
  };
211
216
  this.findTargetDateAndUpdateLastExecutionDateTime = async (spreadsheetUrl, now) => {
212
217
  const sheetValues = await this.spreadsheetRepository.getSheet(spreadsheetUrl, 'HandleScheduledEvent');
@@ -1 +1 @@
1
- {"version":3,"file":"HandleScheduledEventUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/HandleScheduledEventUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandleScheduledEventUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/HandleScheduledEventUseCase.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeForURI = exports.isVisibleIssue = void 0;
4
- const isVisibleIssue = (issue, member, targetDate, disabledStatus) => {
5
- if ((issue.nextActionDate !== null &&
6
- issue.nextActionDate.getTime() > targetDate.getTime()) ||
7
- (issue.nextActionHour !== null &&
8
- issue.nextActionHour > targetDate.getHours()) ||
9
- issue.state !== 'OPEN' ||
10
- !issue.assignees.includes(member) ||
11
- issue.status === disabledStatus) {
12
- return false;
13
- }
14
- return true;
15
- };
16
- exports.isVisibleIssue = isVisibleIssue;
3
+ exports.encodeForURI = void 0;
17
4
  const encodeForURI = (url) => {
18
5
  if (!url) {
19
6
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/domain/usecases/utils.ts"],"names":[],"mappings":";;;AAGO,MAAM,cAAc,GAAG,CAC5B,KAAY,EACZ,MAAsB,EACtB,UAAgB,EAChB,cAAsB,EACb,EAAE;IACX,IACE,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI;QAC5B,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;QACxD,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI;YAC5B,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC/C,KAAK,CAAC,KAAK,KAAK,MAAM;QACtB,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjC,KAAK,CAAC,MAAM,KAAK,cAAc,EAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAlBW,QAAA,cAAc,kBAkBzB;AACK,MAAM,YAAY,GAAG,CAAC,GAAmB,EAAU,EAAE;IAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/domain/usecases/utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAC,GAAmB,EAAU,EAAE;IAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "1.30.2",
3
+ "version": "1.32.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -81,6 +81,15 @@ jest.mock(
81
81
  jest.mock('../../../domain/usecases/UpdateIssueStatusByLabelUseCase', () => ({
82
82
  UpdateIssueStatusByLabelUseCase: jest.fn().mockImplementation(() => ({})),
83
83
  }));
84
+ jest.mock('../../../domain/usecases/StartPreparationUseCase', () => ({
85
+ StartPreparationUseCase: jest.fn().mockImplementation(() => ({})),
86
+ }));
87
+ jest.mock('../../repositories/NodeLocalCommandRunner', () => ({
88
+ NodeLocalCommandRunner: jest.fn().mockImplementation(() => ({})),
89
+ }));
90
+ jest.mock('../../repositories/StubClaudeRepository', () => ({
91
+ StubClaudeRepository: jest.fn().mockImplementation(() => ({})),
92
+ }));
84
93
 
85
94
  import { HandleScheduledEventUseCaseHandler } from './HandleScheduledEventUseCaseHandler';
86
95
  import { GraphqlProjectRepository } from '../../repositories/GraphqlProjectRepository';
@@ -30,6 +30,9 @@ import { CheerioProjectRepository } from '../../repositories/CheerioProjectRepos
30
30
  import { ProjectRepository } from '../../../domain/usecases/adapter-interfaces/ProjectRepository';
31
31
  import { AssignNoAssigneeIssueToManagerUseCase } from '../../../domain/usecases/AssignNoAssigneeIssueToManagerUseCase';
32
32
  import { UpdateIssueStatusByLabelUseCase } from '../../../domain/usecases/UpdateIssueStatusByLabelUseCase';
33
+ import { StartPreparationUseCase } from '../../../domain/usecases/StartPreparationUseCase';
34
+ import { NodeLocalCommandRunner } from '../../repositories/NodeLocalCommandRunner';
35
+ import { StubClaudeRepository } from '../../repositories/StubClaudeRepository';
33
36
 
34
37
  export class HandleScheduledEventUseCaseHandler {
35
38
  handle = async (
@@ -175,6 +178,14 @@ export class HandleScheduledEventUseCaseHandler {
175
178
  const updateIssueStatusByLabelUseCase = new UpdateIssueStatusByLabelUseCase(
176
179
  issueRepository,
177
180
  );
181
+ const nodeLocalCommandRunner = new NodeLocalCommandRunner();
182
+ const stubClaudeRepository = new StubClaudeRepository();
183
+ const startPreparationUseCase = new StartPreparationUseCase(
184
+ projectRepository,
185
+ issueRepository,
186
+ stubClaudeRepository,
187
+ nodeLocalCommandRunner,
188
+ );
178
189
 
179
190
  const handleScheduledEventUseCase = new HandleScheduledEventUseCase(
180
191
  actionAnnouncement,
@@ -190,6 +201,7 @@ export class HandleScheduledEventUseCaseHandler {
190
201
  createNewStoryByLabel,
191
202
  assignNoAssigneeIssueToManagerUseCase,
192
203
  updateIssueStatusByLabelUseCase,
204
+ startPreparationUseCase,
193
205
  systemDateRepository,
194
206
  googleSpreadsheetRepository,
195
207
  projectRepository,
@@ -0,0 +1,80 @@
1
+ const mockExecAsync = jest.fn();
2
+
3
+ jest.mock('child_process', () => ({
4
+ exec: jest.fn(),
5
+ }));
6
+
7
+ jest.mock('util', () => ({
8
+ promisify: jest.fn(() => mockExecAsync),
9
+ }));
10
+
11
+ import { NodeLocalCommandRunner } from './NodeLocalCommandRunner';
12
+
13
+ describe('NodeLocalCommandRunner', () => {
14
+ let runner: NodeLocalCommandRunner;
15
+
16
+ beforeEach(() => {
17
+ jest.clearAllMocks();
18
+ runner = new NodeLocalCommandRunner();
19
+ });
20
+
21
+ describe('runCommand', () => {
22
+ it('should execute command successfully', async () => {
23
+ mockExecAsync.mockResolvedValue({
24
+ stdout: 'command output',
25
+ stderr: '',
26
+ });
27
+
28
+ const result = await runner.runCommand('echo "test"');
29
+
30
+ expect(result).toEqual({
31
+ stdout: 'command output',
32
+ stderr: '',
33
+ exitCode: 0,
34
+ });
35
+ expect(mockExecAsync).toHaveBeenCalledWith('echo "test"');
36
+ });
37
+
38
+ it('should handle command errors with exit code', async () => {
39
+ const error = Object.assign(new Error('Command failed'), {
40
+ code: 2,
41
+ stdout: 'partial output',
42
+ stderr: 'error message',
43
+ });
44
+ mockExecAsync.mockRejectedValue(error);
45
+
46
+ const result = await runner.runCommand('invalid-command');
47
+
48
+ expect(result).toEqual({
49
+ stdout: 'partial output',
50
+ stderr: 'error message',
51
+ exitCode: 2,
52
+ });
53
+ });
54
+
55
+ it('should default to exit code 1 when code is not a number', async () => {
56
+ const error = Object.assign(new Error('Command failed'), {
57
+ code: 'ENOENT',
58
+ stdout: '',
59
+ stderr: 'command not found',
60
+ });
61
+ mockExecAsync.mockRejectedValue(error);
62
+
63
+ const result = await runner.runCommand('nonexistent');
64
+
65
+ expect(result).toEqual({
66
+ stdout: '',
67
+ stderr: 'command not found',
68
+ exitCode: 1,
69
+ });
70
+ });
71
+
72
+ it('should throw error if error format is unexpected', async () => {
73
+ mockExecAsync.mockRejectedValue(new Error('Unexpected error'));
74
+
75
+ await expect(runner.runCommand('command')).rejects.toThrow(
76
+ 'Unexpected error',
77
+ );
78
+ });
79
+ });
80
+ });
@@ -0,0 +1,37 @@
1
+ import { LocalCommandRunner } from '../../domain/usecases/adapter-interfaces/LocalCommandRunner';
2
+ import { exec } from 'child_process';
3
+ import { promisify } from 'util';
4
+
5
+ const execAsync = promisify(exec);
6
+
7
+ export class NodeLocalCommandRunner implements LocalCommandRunner {
8
+ async runCommand(command: string): Promise<{
9
+ stdout: string;
10
+ stderr: string;
11
+ exitCode: number;
12
+ }> {
13
+ try {
14
+ const { stdout, stderr } = await execAsync(command);
15
+ return {
16
+ stdout,
17
+ stderr,
18
+ exitCode: 0,
19
+ };
20
+ } catch (error) {
21
+ if (
22
+ error &&
23
+ typeof error === 'object' &&
24
+ 'stdout' in error &&
25
+ 'stderr' in error &&
26
+ 'code' in error
27
+ ) {
28
+ return {
29
+ stdout: String(error.stdout),
30
+ stderr: String(error.stderr),
31
+ exitCode: typeof error.code === 'number' ? error.code : 1,
32
+ };
33
+ }
34
+ throw error;
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,19 @@
1
+ import { StubClaudeRepository } from './StubClaudeRepository';
2
+
3
+ describe('StubClaudeRepository', () => {
4
+ let repository: StubClaudeRepository;
5
+
6
+ beforeEach(() => {
7
+ repository = new StubClaudeRepository();
8
+ });
9
+
10
+ it('should return empty usage array', async () => {
11
+ const result = await repository.getUsage();
12
+ expect(result).toEqual([]);
13
+ });
14
+
15
+ it('should return true for isClaudeAvailable', async () => {
16
+ const result = await repository.isClaudeAvailable(90);
17
+ expect(result).toBe(true);
18
+ });
19
+ });
@@ -0,0 +1,12 @@
1
+ import { ClaudeRepository } from '../../domain/usecases/adapter-interfaces/ClaudeRepository';
2
+ import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
3
+
4
+ export class StubClaudeRepository implements ClaudeRepository {
5
+ async getUsage(): Promise<ClaudeWindowUsage[]> {
6
+ return [];
7
+ }
8
+
9
+ async isClaudeAvailable(_threshold: number): Promise<boolean> {
10
+ return true;
11
+ }
12
+ }
@@ -1,17 +1,11 @@
1
- import { Issue } from '../entities/Issue';
2
1
  import { IssueRepository } from './adapter-interfaces/IssueRepository';
3
2
  import { Project } from '../entities/Project';
4
- import { Member } from '../entities/Member';
5
3
  import { DateRepository } from './adapter-interfaces/DateRepository';
6
4
  import { StoryObject, StoryObjectMap } from '../entities/StoryObjectMap';
7
- import { isVisibleIssue } from './utils';
8
5
 
9
6
  export class AnalyzeProblemByIssueUseCase {
10
7
  constructor(
11
- readonly issueRepository: Pick<
12
- IssueRepository,
13
- 'createNewIssue' | 'createComment'
14
- >,
8
+ readonly issueRepository: Pick<IssueRepository, 'createComment'>,
15
9
  readonly dateRepository: Pick<
16
10
  DateRepository,
17
11
  'formatDurationToHHMM' | 'formatDateWithDayOfWeek'
@@ -21,14 +15,7 @@ export class AnalyzeProblemByIssueUseCase {
21
15
  run = async (input: {
22
16
  targetDates: Date[];
23
17
  project: Project;
24
- issues: Issue[];
25
- cacheUsed: boolean;
26
- manager: Member['name'];
27
- members: Member['name'][];
28
- org: string;
29
- repo: string;
30
18
  storyObjectMap: StoryObjectMap;
31
- disabledStatus: string;
32
19
  }): Promise<void> => {
33
20
  const story = input.project.story;
34
21
  if (
@@ -44,7 +31,6 @@ export class AnalyzeProblemByIssueUseCase {
44
31
  if (!targetDate) {
45
32
  return;
46
33
  }
47
- await this.checkInProgress({ ...input, targetDate });
48
34
  for (const storyObject of input.storyObjectMap.values()) {
49
35
  const storyIssue = storyObject.storyIssue;
50
36
  if (!storyIssue) {
@@ -57,59 +43,6 @@ export class AnalyzeProblemByIssueUseCase {
57
43
  await new Promise((resolve) => setTimeout(resolve, 5000));
58
44
  }
59
45
  };
60
- checkInProgress = async (
61
- input: Parameters<AnalyzeProblemByIssueUseCase['run']>[0] & {
62
- targetDate: Date;
63
- },
64
- ) => {
65
- const assigneeToNotify: Member['name'][] = [];
66
- for (const member of input.members) {
67
- let topIssue: Issue | null = null;
68
- for (const story of input.storyObjectMap.values()) {
69
- const storyIssueObject = input.storyObjectMap.get(story.story.name);
70
- if (!storyIssueObject) {
71
- continue;
72
- } else if (assigneeToNotify.includes(member)) {
73
- break;
74
- }
75
- for (const issue of storyIssueObject.issues) {
76
- if (
77
- !isVisibleIssue(
78
- issue,
79
- member,
80
- input.targetDate,
81
- input.disabledStatus,
82
- ) ||
83
- issue.status?.toLowerCase().includes('review') ||
84
- issue.title.toLowerCase().includes('review') ||
85
- issue.isPr
86
- ) {
87
- continue;
88
- }
89
- if (topIssue === null) {
90
- topIssue = issue;
91
- break;
92
- }
93
- if (!issue.isInProgress) {
94
- continue;
95
- }
96
- assigneeToNotify.push(member);
97
- break;
98
- }
99
- }
100
- }
101
- if (assigneeToNotify.length === 0) {
102
- return;
103
- }
104
- await this.issueRepository.createNewIssue(
105
- input.org,
106
- input.repo,
107
- 'Check in progress',
108
- `${assigneeToNotify.join('\n')}`,
109
- [input.manager],
110
- ['story:workflow-management'],
111
- );
112
- };
113
46
  createSummaryCommentBody = (
114
47
  storyObject: StoryObject & {
115
48
  storyIssue: NonNullable<StoryObject['storyIssue']>;
@@ -18,6 +18,7 @@ import { SetNoStoryIssueToStoryUseCase } from './SetNoStoryIssueToStoryUseCase';
18
18
  import { CreateNewStoryByLabelUseCase } from './CreateNewStoryByLabelUseCase';
19
19
  import { AssignNoAssigneeIssueToManagerUseCase } from './AssignNoAssigneeIssueToManagerUseCase';
20
20
  import { UpdateIssueStatusByLabelUseCase } from './UpdateIssueStatusByLabelUseCase';
21
+ import { StartPreparationUseCase } from './StartPreparationUseCase';
21
22
 
22
23
  describe('HandleScheduledEventUseCase', () => {
23
24
  describe('createTargetDateTimes', () => {
@@ -99,6 +100,7 @@ describe('HandleScheduledEventUseCase', () => {
99
100
  mock<AssignNoAssigneeIssueToManagerUseCase>();
100
101
  const mockUpdateIssueStatusByLabelUseCase =
101
102
  mock<UpdateIssueStatusByLabelUseCase>();
103
+ const mockStartPreparationUseCase = mock<StartPreparationUseCase>();
102
104
  const mockDateRepository = mock<DateRepository>();
103
105
  const mockSpreadsheetRepository = mock<SpreadsheetRepository>();
104
106
  const mockProjectRepository = mock<ProjectRepository>();
@@ -118,6 +120,7 @@ describe('HandleScheduledEventUseCase', () => {
118
120
  mockCreateNewStoryByLabelUseCase,
119
121
  mockAssignNoAssigneeIssueToManagerUseCase,
120
122
  mockUpdateIssueStatusByLabelUseCase,
123
+ mockStartPreparationUseCase,
121
124
  mockDateRepository,
122
125
  mockSpreadsheetRepository,
123
126
  mockProjectRepository,
@@ -141,30 +144,6 @@ describe('HandleScheduledEventUseCase', () => {
141
144
  ]);
142
145
  });
143
146
 
144
- it('should call AnalyzeProblemByIssueUseCase with correct parameters', async () => {
145
- const input = {
146
- projectName: 'test-project',
147
- org: 'test-org',
148
- projectUrl: 'https://github.com/test-org/test-project',
149
- manager: 'test-manager',
150
- workingReport: {
151
- repo: 'test-repo',
152
- members: ['member1'],
153
- spreadsheetUrl: 'https://docs.google.com/spreadsheets/test',
154
- },
155
- urlOfStoryView: 'https://github.com/test-org/test-project/issues',
156
- disabledStatus: 'disabled',
157
- defaultStatus: null,
158
- disabled: false,
159
- allowIssueCacheMinutes: 60,
160
- };
161
-
162
- const mockProject = mock<Project>();
163
- mockProjectRepository.getProject.mockResolvedValue(mockProject);
164
- await useCase.run(input);
165
- expect(mockAnalyzeProblemByIssueUseCase.run).toHaveBeenCalled();
166
- });
167
-
168
147
  it('should call UpdateIssueStatusByLabelUseCase with correct parameters', async () => {
169
148
  const input = {
170
149
  projectName: 'test-project',
@@ -19,6 +19,7 @@ import { SetNoStoryIssueToStoryUseCase } from './SetNoStoryIssueToStoryUseCase';
19
19
  import { CreateNewStoryByLabelUseCase } from './CreateNewStoryByLabelUseCase';
20
20
  import { AssignNoAssigneeIssueToManagerUseCase } from './AssignNoAssigneeIssueToManagerUseCase';
21
21
  import { UpdateIssueStatusByLabelUseCase } from './UpdateIssueStatusByLabelUseCase';
22
+ import { StartPreparationUseCase } from './StartPreparationUseCase';
22
23
 
23
24
  export class ProjectNotFoundError extends Error {
24
25
  constructor(message: string) {
@@ -42,6 +43,7 @@ export class HandleScheduledEventUseCase {
42
43
  readonly createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase,
43
44
  readonly assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase,
44
45
  readonly updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase,
46
+ readonly startPreparationUseCase: StartPreparationUseCase,
45
47
  readonly dateRepository: DateRepository,
46
48
  readonly spreadsheetRepository: SpreadsheetRepository,
47
49
  readonly projectRepository: ProjectRepository,
@@ -63,6 +65,13 @@ export class HandleScheduledEventUseCase {
63
65
  defaultStatus: string | null;
64
66
  disabled: boolean;
65
67
  allowIssueCacheMinutes: number;
68
+ startPreparation?: {
69
+ awaitingWorkspaceStatus: string;
70
+ preparationStatus: string;
71
+ defaultAgentName: string;
72
+ logFilePath?: string;
73
+ maximumPreparingIssuesCount: number | null;
74
+ } | null;
66
75
  }): Promise<{
67
76
  project: Project;
68
77
  issues: Issue[];
@@ -207,14 +216,7 @@ ${JSON.stringify(e)}
207
216
  await this.analyzeProblemByIssueUseCase.run({
208
217
  targetDates: targetDateTimes,
209
218
  project,
210
- issues,
211
- cacheUsed,
212
- manager: input.manager,
213
- members: input.workingReport.members,
214
- org: input.org,
215
- repo: input.workingReport.repo,
216
219
  storyObjectMap: storyObjectMap,
217
- disabledStatus: input.disabledStatus,
218
220
  });
219
221
  await this.actionAnnouncementUseCase.run({
220
222
  targetDates: targetDateTimes,
@@ -299,6 +301,18 @@ ${JSON.stringify(e)}
299
301
  issues,
300
302
  defaultStatus: input.defaultStatus,
301
303
  });
304
+ if (input.startPreparation) {
305
+ await this.startPreparationUseCase.run({
306
+ projectUrl: input.projectUrl,
307
+ awaitingWorkspaceStatus: input.startPreparation.awaitingWorkspaceStatus,
308
+ preparationStatus: input.startPreparation.preparationStatus,
309
+ defaultAgentName: input.startPreparation.defaultAgentName,
310
+ logFilePath: input.startPreparation.logFilePath,
311
+ maximumPreparingIssuesCount:
312
+ input.startPreparation.maximumPreparingIssuesCount,
313
+ allowIssueCacheMinutes: input.allowIssueCacheMinutes,
314
+ });
315
+ }
302
316
  };
303
317
  static createTargetDateTimes = (from: Date, to: Date): Date[] => {
304
318
  const targetDateTimes: Date[] = [];
@@ -1,25 +1,3 @@
1
- import { Issue } from '../entities/Issue';
2
- import { Member } from '../entities/Member';
3
-
4
- export const isVisibleIssue = (
5
- issue: Issue,
6
- member: Member['name'],
7
- targetDate: Date,
8
- disabledStatus: string,
9
- ): boolean => {
10
- if (
11
- (issue.nextActionDate !== null &&
12
- issue.nextActionDate.getTime() > targetDate.getTime()) ||
13
- (issue.nextActionHour !== null &&
14
- issue.nextActionHour > targetDate.getHours()) ||
15
- issue.state !== 'OPEN' ||
16
- !issue.assignees.includes(member) ||
17
- issue.status === disabledStatus
18
- ) {
19
- return false;
20
- }
21
- return true;
22
- };
23
1
  export const encodeForURI = (url?: string | null): string => {
24
2
  if (!url) {
25
3
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAe3D,qBAAa,kCAAkC;IAC7C,MAAM,mBACY,MAAM,WACb,OAAO,KACf,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,CA6JP;CACH"}
1
+ {"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAkB3D,qBAAa,kCAAkC;IAC7C,MAAM,mBACY,MAAM,WACb,OAAO,KACf,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,CAsKP;CACH"}
@@ -0,0 +1,9 @@
1
+ import { LocalCommandRunner } from '../../domain/usecases/adapter-interfaces/LocalCommandRunner';
2
+ export declare class NodeLocalCommandRunner implements LocalCommandRunner {
3
+ runCommand(command: string): Promise<{
4
+ stdout: string;
5
+ stderr: string;
6
+ exitCode: number;
7
+ }>;
8
+ }
9
+ //# sourceMappingURL=NodeLocalCommandRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeLocalCommandRunner.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeLocalCommandRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AAMjG,qBAAa,sBAAuB,YAAW,kBAAkB;IACzD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CAyBH"}
@@ -0,0 +1,7 @@
1
+ import { ClaudeRepository } from '../../domain/usecases/adapter-interfaces/ClaudeRepository';
2
+ import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
3
+ export declare class StubClaudeRepository implements ClaudeRepository {
4
+ getUsage(): Promise<ClaudeWindowUsage[]>;
5
+ isClaudeAvailable(_threshold: number): Promise<boolean>;
6
+ }
7
+ //# sourceMappingURL=StubClaudeRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StubClaudeRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/StubClaudeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,qBAAa,oBAAqB,YAAW,gBAAgB;IACrD,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIxC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAG9D"}
@@ -1,27 +1,15 @@
1
- import { Issue } from '../entities/Issue';
2
1
  import { IssueRepository } from './adapter-interfaces/IssueRepository';
3
2
  import { Project } from '../entities/Project';
4
- import { Member } from '../entities/Member';
5
3
  import { DateRepository } from './adapter-interfaces/DateRepository';
6
4
  import { StoryObject, StoryObjectMap } from '../entities/StoryObjectMap';
7
5
  export declare class AnalyzeProblemByIssueUseCase {
8
- readonly issueRepository: Pick<IssueRepository, 'createNewIssue' | 'createComment'>;
6
+ readonly issueRepository: Pick<IssueRepository, 'createComment'>;
9
7
  readonly dateRepository: Pick<DateRepository, 'formatDurationToHHMM' | 'formatDateWithDayOfWeek'>;
10
- constructor(issueRepository: Pick<IssueRepository, 'createNewIssue' | 'createComment'>, dateRepository: Pick<DateRepository, 'formatDurationToHHMM' | 'formatDateWithDayOfWeek'>);
8
+ constructor(issueRepository: Pick<IssueRepository, 'createComment'>, dateRepository: Pick<DateRepository, 'formatDurationToHHMM' | 'formatDateWithDayOfWeek'>);
11
9
  run: (input: {
12
10
  targetDates: Date[];
13
11
  project: Project;
14
- issues: Issue[];
15
- cacheUsed: boolean;
16
- manager: Member["name"];
17
- members: Member["name"][];
18
- org: string;
19
- repo: string;
20
12
  storyObjectMap: StoryObjectMap;
21
- disabledStatus: string;
22
- }) => Promise<void>;
23
- checkInProgress: (input: Parameters<AnalyzeProblemByIssueUseCase["run"]>[0] & {
24
- targetDate: Date;
25
13
  }) => Promise<void>;
26
14
  createSummaryCommentBody: (storyObject: StoryObject & {
27
15
  storyIssue: NonNullable<StoryObject["storyIssue"]>;
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyzeProblemByIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/AnalyzeProblemByIssueUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGzE,qBAAa,4BAA4B;IAErC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,eAAe,CACnC;IACD,QAAQ,CAAC,cAAc,EAAE,IAAI,CAC3B,cAAc,EACd,sBAAsB,GAAG,yBAAyB,CACnD;gBAPQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,gBAAgB,GAAG,eAAe,CACnC,EACQ,cAAc,EAAE,IAAI,CAC3B,cAAc,EACd,sBAAsB,GAAG,yBAAyB,CACnD;IAGH,GAAG,UAAiB;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,cAAc,CAAC;QAC/B,cAAc,EAAE,MAAM,CAAC;KACxB,KAAG,OAAO,CAAC,IAAI,CAAC,CA2Bf;IACF,eAAe,UACN,UAAU,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAC1D,UAAU,EAAE,IAAI,CAAC;KAClB,mBAiDD;IACF,wBAAwB,gBACT,WAAW,GAAG;QACzB,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;KACpD,KACA,MAAM,CAyDP;CACH"}
1
+ {"version":3,"file":"AnalyzeProblemByIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/AnalyzeProblemByIssueUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEzE,qBAAa,4BAA4B;IAErC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC;IAChE,QAAQ,CAAC,cAAc,EAAE,IAAI,CAC3B,cAAc,EACd,sBAAsB,GAAG,yBAAyB,CACnD;gBAJQ,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,EACvD,cAAc,EAAE,IAAI,CAC3B,cAAc,EACd,sBAAsB,GAAG,yBAAyB,CACnD;IAGH,GAAG,UAAiB;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,cAAc,CAAC;KAChC,KAAG,OAAO,CAAC,IAAI,CAAC,CA0Bf;IACF,wBAAwB,gBACT,WAAW,GAAG;QACzB,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;KACpD,KACA,MAAM,CAyDP;CACH"}
@@ -19,6 +19,7 @@ import { SetNoStoryIssueToStoryUseCase } from './SetNoStoryIssueToStoryUseCase';
19
19
  import { CreateNewStoryByLabelUseCase } from './CreateNewStoryByLabelUseCase';
20
20
  import { AssignNoAssigneeIssueToManagerUseCase } from './AssignNoAssigneeIssueToManagerUseCase';
21
21
  import { UpdateIssueStatusByLabelUseCase } from './UpdateIssueStatusByLabelUseCase';
22
+ import { StartPreparationUseCase } from './StartPreparationUseCase';
22
23
  export declare class ProjectNotFoundError extends Error {
23
24
  constructor(message: string);
24
25
  }
@@ -36,11 +37,12 @@ export declare class HandleScheduledEventUseCase {
36
37
  readonly createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase;
37
38
  readonly assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase;
38
39
  readonly updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase;
40
+ readonly startPreparationUseCase: StartPreparationUseCase;
39
41
  readonly dateRepository: DateRepository;
40
42
  readonly spreadsheetRepository: SpreadsheetRepository;
41
43
  readonly projectRepository: ProjectRepository;
42
44
  readonly issueRepository: IssueRepository;
43
- constructor(actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase: ClearNextActionHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, dateRepository: DateRepository, spreadsheetRepository: SpreadsheetRepository, projectRepository: ProjectRepository, issueRepository: IssueRepository);
45
+ constructor(actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase: ClearNextActionHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, startPreparationUseCase: StartPreparationUseCase, dateRepository: DateRepository, spreadsheetRepository: SpreadsheetRepository, projectRepository: ProjectRepository, issueRepository: IssueRepository);
44
46
  run: (input: {
45
47
  projectName: string;
46
48
  org: string;
@@ -56,6 +58,13 @@ export declare class HandleScheduledEventUseCase {
56
58
  defaultStatus: string | null;
57
59
  disabled: boolean;
58
60
  allowIssueCacheMinutes: number;
61
+ startPreparation?: {
62
+ awaitingWorkspaceStatus: string;
63
+ preparationStatus: string;
64
+ defaultAgentName: string;
65
+ logFilePath?: string;
66
+ maximumPreparingIssuesCount: number | null;
67
+ } | null;
59
68
  }) => Promise<{
60
69
  project: Project;
61
70
  issues: Issue[];
@@ -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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"}
@@ -1,5 +1,2 @@
1
- import { Issue } from '../entities/Issue';
2
- import { Member } from '../entities/Member';
3
- export declare const isVisibleIssue: (issue: Issue, member: Member["name"], targetDate: Date, disabledStatus: string) => boolean;
4
1
  export declare const encodeForURI: (url?: string | null) => string;
5
2
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,eAAO,MAAM,cAAc,UAClB,KAAK,UACJ,MAAM,CAAC,MAAM,CAAC,cACV,IAAI,kBACA,MAAM,KACrB,OAaF,CAAC;AACF,eAAO,MAAM,YAAY,SAAU,MAAM,GAAG,IAAI,KAAG,MAKlD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,SAAU,MAAM,GAAG,IAAI,KAAG,MAKlD,CAAC"}