github-issue-tower-defence-management 2.19.1 → 2.19.2

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 (780) hide show
  1. package/bin/adapter/entry-points/cli/index.js +0 -0
  2. package/package.json +5 -1
  3. package/.env.example +0 -7
  4. package/.gitattributes +0 -2
  5. package/.github/CODEOWNERS +0 -6
  6. package/.github/copilot-instructions.md +0 -6
  7. package/.github/dependabot.yml +0 -19
  8. package/.github/instructions/code-review.instructions.md +0 -50
  9. package/.github/workflows/api-created_issue_pr.yml +0 -97
  10. package/.github/workflows/ci-failure-issue-creator.yml +0 -48
  11. package/.github/workflows/close-manual-prs.yml +0 -80
  12. package/.github/workflows/codeql.yml +0 -107
  13. package/.github/workflows/commit-lint.yml +0 -85
  14. package/.github/workflows/configs/commitlint.config.cjs +0 -32
  15. package/.github/workflows/configs/commitlint.config.js +0 -32
  16. package/.github/workflows/console-ui.yml +0 -68
  17. package/.github/workflows/create-pr.yml +0 -116
  18. package/.github/workflows/empty-format-test-job.yml +0 -34
  19. package/.github/workflows/format.yml +0 -28
  20. package/.github/workflows/publish.yml +0 -111
  21. package/.github/workflows/secret-scan.yml +0 -51
  22. package/.github/workflows/test.yml +0 -58
  23. package/.github/workflows/umino-project.yml +0 -207
  24. package/.gitleaks.toml +0 -22
  25. package/.prettierignore +0 -31
  26. package/.prettierrc +0 -5
  27. package/CHANGELOG.md +0 -4162
  28. package/CONTRIBUTING.md +0 -60
  29. package/bin/adapter/entry-points/handlers/resolveUnansweredOwnerCalls.js +0 -12
  30. package/bin/adapter/entry-points/handlers/resolveUnansweredOwnerCalls.js.map +0 -1
  31. package/bin/adapter/repositories/FileSystemSilentSessionNotifiedStateRepository.js +0 -125
  32. package/bin/adapter/repositories/FileSystemSilentSessionNotifiedStateRepository.js.map +0 -1
  33. package/bin/adapter/repositories/issue/issueTimelineUtils.js +0 -38
  34. package/bin/adapter/repositories/issue/issueTimelineUtils.js.map +0 -1
  35. package/bin/domain/entities/UnansweredOwnerCall.js +0 -3
  36. package/bin/domain/entities/UnansweredOwnerCall.js.map +0 -1
  37. package/bin/domain/entities/WorkingTime.js +0 -3
  38. package/bin/domain/entities/WorkingTime.js.map +0 -1
  39. package/bin/domain/usecases/ChangeStatusLongInReviewIssueUseCase.js +0 -37
  40. package/bin/domain/usecases/ChangeStatusLongInReviewIssueUseCase.js.map +0 -1
  41. package/bin/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.js +0 -118
  42. package/bin/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.js.map +0 -1
  43. package/bin/domain/usecases/GenerateWorkingTimeReportUseCase.js +0 -180
  44. package/bin/domain/usecases/GenerateWorkingTimeReportUseCase.js.map +0 -1
  45. package/bin/domain/usecases/TriagerApprovalDispatchUseCase.js +0 -160
  46. package/bin/domain/usecases/TriagerApprovalDispatchUseCase.js.map +0 -1
  47. package/bin/domain/usecases/adapter-interfaces/SilentSessionNotifiedStateRepository.js +0 -3
  48. package/bin/domain/usecases/adapter-interfaces/SilentSessionNotifiedStateRepository.js.map +0 -1
  49. package/bin/domain/usecases/awaitingOwnerApprovalMessage.js +0 -7
  50. package/bin/domain/usecases/awaitingOwnerApprovalMessage.js.map +0 -1
  51. package/bin/domain/usecases/findLastAgentDeclaringReport.js +0 -12
  52. package/bin/domain/usecases/findLastAgentDeclaringReport.js.map +0 -1
  53. package/bin/domain/usecases/isPullRequestDeclaredUnnecessary.js +0 -25
  54. package/bin/domain/usecases/isPullRequestDeclaredUnnecessary.js.map +0 -1
  55. package/bin/domain/usecases/isWaitingForOwnerApproval.js +0 -16
  56. package/bin/domain/usecases/isWaitingForOwnerApproval.js.map +0 -1
  57. package/bin/domain/usecases/returnedToAwaitingWorkspaceMessage.js +0 -7
  58. package/bin/domain/usecases/returnedToAwaitingWorkspaceMessage.js.map +0 -1
  59. package/commitlint.config.js +0 -6
  60. package/eslint.config.mjs +0 -76
  61. package/jest.config.js +0 -84
  62. package/jest.setup.js +0 -1
  63. package/lib/buffer-equal-constant-time-compat/index.js +0 -17
  64. package/lib/buffer-equal-constant-time-compat/index.test.js +0 -54
  65. package/lib/buffer-equal-constant-time-compat/package.json +0 -5
  66. package/lib/typescript-compat/bin/tsc +0 -2
  67. package/lib/typescript-compat/bin/tsserver +0 -2
  68. package/lib/typescript-compat/lib/typescript.js +0 -1
  69. package/lib/typescript-compat/package.json +0 -13
  70. package/renovate.json +0 -46
  71. package/scripts/copyConsoleUiDist.mjs +0 -35
  72. package/scripts/defaultBranchTipVerify.sh +0 -23
  73. package/scripts/testWorkflowRunVerify.sh +0 -47
  74. package/scripts/verifyConsoleUiDist.mjs +0 -96
  75. package/src/adapter/ci/consoleUiWorkflowTimeout.test.ts +0 -61
  76. package/src/adapter/ci/publishTestWorkflowGate.test.ts +0 -653
  77. package/src/adapter/ci/workflowRunCancellation.test.ts +0 -72
  78. package/src/adapter/entry-points/cli/fleetConfig.test.ts +0 -553
  79. package/src/adapter/entry-points/cli/fleetConfig.ts +0 -266
  80. package/src/adapter/entry-points/cli/index.test.ts +0 -2837
  81. package/src/adapter/entry-points/cli/index.ts +0 -1488
  82. package/src/adapter/entry-points/cli/projectConfig.test.ts +0 -342
  83. package/src/adapter/entry-points/cli/projectConfig.ts +0 -500
  84. package/src/adapter/entry-points/console/consoleAirplaneSnapshotApi.test.ts +0 -658
  85. package/src/adapter/entry-points/console/consoleAirplaneSnapshotApi.ts +0 -482
  86. package/src/adapter/entry-points/console/consoleDataDelivery.test.ts +0 -222
  87. package/src/adapter/entry-points/console/consoleDataDelivery.ts +0 -134
  88. package/src/adapter/entry-points/console/consoleDoneStore.test.ts +0 -169
  89. package/src/adapter/entry-points/console/consoleDoneStore.ts +0 -139
  90. package/src/adapter/entry-points/console/consoleGithubTokenResolver.test.ts +0 -275
  91. package/src/adapter/entry-points/console/consoleGithubTokenResolver.ts +0 -113
  92. package/src/adapter/entry-points/console/consoleImageProxy.test.ts +0 -140
  93. package/src/adapter/entry-points/console/consoleImageProxy.ts +0 -111
  94. package/src/adapter/entry-points/console/consoleItemUrlLookup.test.ts +0 -63
  95. package/src/adapter/entry-points/console/consoleItemUrlLookup.ts +0 -66
  96. package/src/adapter/entry-points/console/consoleOperationApi.test.ts +0 -2523
  97. package/src/adapter/entry-points/console/consoleOperationApi.ts +0 -936
  98. package/src/adapter/entry-points/console/consoleProjectResolver.test.ts +0 -246
  99. package/src/adapter/entry-points/console/consoleProjectResolver.ts +0 -111
  100. package/src/adapter/entry-points/console/consoleReadApi.test.ts +0 -714
  101. package/src/adapter/entry-points/console/consoleReadApi.ts +0 -361
  102. package/src/adapter/entry-points/console/consoleTabNames.test.ts +0 -52
  103. package/src/adapter/entry-points/console/consoleTabNames.ts +0 -37
  104. package/src/adapter/entry-points/console/consoleUiDistSync.test.ts +0 -66
  105. package/src/adapter/entry-points/console/dashboardComposeService.test.ts +0 -595
  106. package/src/adapter/entry-points/console/dashboardComposeService.ts +0 -256
  107. package/src/adapter/entry-points/console/dashboardEmitterComposerKey.test.ts +0 -180
  108. package/src/adapter/entry-points/console/ensureConsoleRunning.test.ts +0 -115
  109. package/src/adapter/entry-points/console/ensureConsoleRunning.ts +0 -64
  110. package/src/adapter/entry-points/console/ui/.storybook/main.ts +0 -12
  111. package/src/adapter/entry-points/console/ui/.storybook/preview.ts +0 -15
  112. package/src/adapter/entry-points/console/ui/biome.json +0 -53
  113. package/src/adapter/entry-points/console/ui/components.json +0 -20
  114. package/src/adapter/entry-points/console/ui/e2e/consoleScenario.spec.ts +0 -725
  115. package/src/adapter/entry-points/console/ui/e2e/consoleTestHarness.ts +0 -831
  116. package/src/adapter/entry-points/console/ui/e2e/playwright.config.ts +0 -30
  117. package/src/adapter/entry-points/console/ui/e2e/tsconfig.json +0 -18
  118. package/src/adapter/entry-points/console/ui/index.html +0 -12
  119. package/src/adapter/entry-points/console/ui/jest-globals.cjs +0 -26
  120. package/src/adapter/entry-points/console/ui/jest.setup.ts +0 -1
  121. package/src/adapter/entry-points/console/ui/jest.styleMock.js +0 -1
  122. package/src/adapter/entry-points/console/ui/public/sw.js +0 -60
  123. package/src/adapter/entry-points/console/ui/src/components/ui/badge.stories.tsx +0 -35
  124. package/src/adapter/entry-points/console/ui/src/components/ui/badge.tsx +0 -28
  125. package/src/adapter/entry-points/console/ui/src/components/ui/button.stories.tsx +0 -34
  126. package/src/adapter/entry-points/console/ui/src/components/ui/button.tsx +0 -50
  127. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleCopyCodeButton.stories.tsx +0 -28
  128. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleCopyCodeButton.test.tsx +0 -65
  129. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleCopyCodeButton.tsx +0 -19
  130. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleMarkdownContent.stories.tsx +0 -61
  131. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleMarkdownContent.test.tsx +0 -199
  132. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleMarkdownContent.tsx +0 -166
  133. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleMermaidDiagram.stories.tsx +0 -22
  134. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleMermaidDiagram.test.tsx +0 -74
  135. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleMermaidDiagram.tsx +0 -84
  136. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleMermaidDiagramModalScreen.stories.tsx +0 -27
  137. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleMermaidDiagramModalScreen.test.tsx +0 -85
  138. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleMermaidDiagramModalScreen.tsx +0 -97
  139. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleReferenceLink.stories.tsx +0 -76
  140. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleReferenceLink.test.tsx +0 -56
  141. package/src/adapter/entry-points/console/ui/src/features/console/components/content/ConsoleReferenceLink.tsx +0 -39
  142. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleChangedFileList.stories.tsx +0 -32
  143. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleChangedFileList.test.tsx +0 -105
  144. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleChangedFileList.tsx +0 -157
  145. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCommentComposer.stories.tsx +0 -68
  146. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCommentComposer.test.tsx +0 -612
  147. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCommentComposer.tsx +0 -276
  148. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCommentList.stories.tsx +0 -33
  149. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCommentList.test.tsx +0 -57
  150. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCommentList.tsx +0 -76
  151. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCommitList.stories.tsx +0 -25
  152. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCommitList.test.tsx +0 -55
  153. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCommitList.tsx +0 -49
  154. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCopyUrlButton.stories.tsx +0 -24
  155. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCopyUrlButton.test.tsx +0 -63
  156. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleCopyUrlButton.tsx +0 -19
  157. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleFetchFailureAlert.stories.tsx +0 -33
  158. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleFetchFailureAlert.test.tsx +0 -62
  159. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleFetchFailureAlert.tsx +0 -59
  160. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleFileDiff.stories.tsx +0 -38
  161. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleFileDiff.test.tsx +0 -151
  162. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleFileDiff.tsx +0 -245
  163. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleItemDetail.stories.tsx +0 -514
  164. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleItemDetail.test.tsx +0 -727
  165. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleItemDetail.tsx +0 -387
  166. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleItemIcon.stories.tsx +0 -82
  167. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleItemIcon.test.tsx +0 -52
  168. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleItemIcon.tsx +0 -32
  169. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsolePullRequestDetail.stories.tsx +0 -48
  170. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsolePullRequestDetail.test.tsx +0 -235
  171. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsolePullRequestDetail.tsx +0 -145
  172. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsolePullRequestMergeableChip.stories.tsx +0 -29
  173. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsolePullRequestMergeableChip.test.tsx +0 -30
  174. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsolePullRequestMergeableChip.tsx +0 -50
  175. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsolePullRequestStatusBadges.stories.tsx +0 -38
  176. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsolePullRequestStatusBadges.test.tsx +0 -54
  177. package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsolePullRequestStatusBadges.tsx +0 -60
  178. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleAirplaneModeButton.stories.tsx +0 -56
  179. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleAirplaneModeButton.test.tsx +0 -111
  180. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleAirplaneModeButton.tsx +0 -92
  181. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsolePanel.stories.tsx +0 -51
  182. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsolePanel.test.tsx +0 -59
  183. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsolePanel.tsx +0 -39
  184. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTabList.stories.tsx +0 -207
  185. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTabList.test.tsx +0 -332
  186. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTabList.tsx +0 -211
  187. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTimerSettingsModalDialog.stories.tsx +0 -49
  188. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTimerSettingsModalDialog.test.tsx +0 -157
  189. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTimerSettingsModalDialog.tsx +0 -118
  190. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleCopyStoryNameButton.stories.tsx +0 -23
  191. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleCopyStoryNameButton.test.tsx +0 -40
  192. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleCopyStoryNameButton.tsx +0 -17
  193. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleItemList.stories.tsx +0 -101
  194. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleItemList.test.tsx +0 -102
  195. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleItemList.tsx +0 -75
  196. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleItemSummary.stories.tsx +0 -40
  197. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleItemSummary.test.tsx +0 -213
  198. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleItemSummary.tsx +0 -115
  199. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleQueuedItemRow.stories.tsx +0 -50
  200. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleQueuedItemRow.test.tsx +0 -98
  201. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleQueuedItemRow.tsx +0 -66
  202. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleQueuedList.stories.tsx +0 -69
  203. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleQueuedList.test.tsx +0 -101
  204. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleQueuedList.tsx +0 -75
  205. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.stories.tsx +0 -137
  206. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.test.tsx +0 -554
  207. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.tsx +0 -400
  208. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryReorderPanel.stories.tsx +0 -30
  209. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryReorderPanel.test.tsx +0 -111
  210. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryReorderPanel.tsx +0 -91
  211. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStorySummary.stories.tsx +0 -27
  212. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStorySummary.test.tsx +0 -24
  213. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStorySummary.tsx +0 -28
  214. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleCloseActions.stories.tsx +0 -14
  215. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleCloseActions.test.tsx +0 -21
  216. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleCloseActions.tsx +0 -26
  217. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleDangerousActions.stories.tsx +0 -14
  218. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleDangerousActions.test.tsx +0 -40
  219. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleDangerousActions.tsx +0 -37
  220. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleErrorToast.stories.tsx +0 -33
  221. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleNextActionDateActions.stories.tsx +0 -20
  222. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleNextActionDateActions.test.tsx +0 -48
  223. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleNextActionDateActions.tsx +0 -42
  224. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleOfflinePendingActionsPanel.stories.tsx +0 -115
  225. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleOfflinePendingActionsPanel.test.tsx +0 -262
  226. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleOfflinePendingActionsPanel.tsx +0 -123
  227. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleOperationMenu.stories.tsx +0 -65
  228. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleOperationMenu.test.tsx +0 -159
  229. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleOperationMenu.tsx +0 -55
  230. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsolePullRequestReviewActions.stories.tsx +0 -20
  231. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsolePullRequestReviewActions.test.tsx +0 -93
  232. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsolePullRequestReviewActions.tsx +0 -45
  233. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleStatusActions.stories.tsx +0 -17
  234. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleStatusActions.test.tsx +0 -49
  235. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleStatusActions.tsx +0 -66
  236. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleUndoToast.stories.tsx +0 -47
  237. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleUndoToast.test.tsx +0 -95
  238. package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleUndoToast.tsx +0 -62
  239. package/src/adapter/entry-points/console/ui/src/features/console/components/shared/ConsoleClipboardCopyButton.stories.tsx +0 -32
  240. package/src/adapter/entry-points/console/ui/src/features/console/components/shared/ConsoleClipboardCopyButton.test.tsx +0 -101
  241. package/src/adapter/entry-points/console/ui/src/features/console/components/shared/ConsoleClipboardCopyButton.tsx +0 -80
  242. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useAirplaneMode.test.ts +0 -304
  243. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useAirplaneMode.ts +0 -167
  244. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleActionQueue.test.ts +0 -498
  245. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleActionQueue.ts +0 -277
  246. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleCaches.test.ts +0 -99
  247. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleCaches.ts +0 -90
  248. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleDetailPrefetch.test.ts +0 -110
  249. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleDetailPrefetch.ts +0 -83
  250. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleFeaturesConfig.test.ts +0 -51
  251. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleFeaturesConfig.ts +0 -39
  252. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleItemDetailData.test.ts +0 -229
  253. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleItemDetailData.ts +0 -194
  254. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleNavigation.test.ts +0 -151
  255. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleNavigation.ts +0 -128
  256. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOperations.test.ts +0 -629
  257. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOperations.ts +0 -417
  258. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOverlay.test.ts +0 -40
  259. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOverlay.ts +0 -71
  260. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsolePjcode.test.ts +0 -24
  261. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsolePjcode.ts +0 -17
  262. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleProjectList.test.ts +0 -97
  263. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleProjectList.ts +0 -44
  264. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleProjectTimer.test.ts +0 -59
  265. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleProjectTimer.ts +0 -26
  266. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleReferenceLink.test.ts +0 -48
  267. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleReferenceLink.ts +0 -39
  268. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleResource.test.ts +0 -41
  269. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleResource.ts +0 -57
  270. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleSwipeNavigation.test.ts +0 -115
  271. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleSwipeNavigation.ts +0 -115
  272. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleTabData.test.ts +0 -546
  273. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleTabData.ts +0 -278
  274. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleTimerSettings.test.ts +0 -110
  275. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleTimerSettings.ts +0 -70
  276. package/src/adapter/entry-points/console/ui/src/features/console/lib/airplaneSnapshot.test.ts +0 -387
  277. package/src/adapter/entry-points/console/ui/src/features/console/lib/airplaneSnapshot.ts +0 -407
  278. package/src/adapter/entry-points/console/ui/src/features/console/lib/consoleApi.test.ts +0 -446
  279. package/src/adapter/entry-points/console/ui/src/features/console/lib/consoleApi.ts +0 -533
  280. package/src/adapter/entry-points/console/ui/src/features/console/lib/imageProxy.test.ts +0 -78
  281. package/src/adapter/entry-points/console/ui/src/features/console/lib/imageProxy.ts +0 -34
  282. package/src/adapter/entry-points/console/ui/src/features/console/lib/markdown.test.ts +0 -252
  283. package/src/adapter/entry-points/console/ui/src/features/console/lib/markdown.ts +0 -207
  284. package/src/adapter/entry-points/console/ui/src/features/console/lib/mermaidLoader.test.ts +0 -27
  285. package/src/adapter/entry-points/console/ui/src/features/console/lib/mermaidLoader.ts +0 -71
  286. package/src/adapter/entry-points/console/ui/src/features/console/lib/mermaidZoom.test.ts +0 -88
  287. package/src/adapter/entry-points/console/ui/src/features/console/lib/mermaidZoom.ts +0 -34
  288. package/src/adapter/entry-points/console/ui/src/features/console/lib/navigation.ts +0 -7
  289. package/src/adapter/entry-points/console/ui/src/features/console/lib/resourceCache.test.ts +0 -104
  290. package/src/adapter/entry-points/console/ui/src/features/console/lib/resourceCache.ts +0 -79
  291. package/src/adapter/entry-points/console/ui/src/features/console/logic/actionToast.test.ts +0 -200
  292. package/src/adapter/entry-points/console/ui/src/features/console/logic/actionToast.ts +0 -122
  293. package/src/adapter/entry-points/console/ui/src/features/console/logic/clipboard.test.ts +0 -90
  294. package/src/adapter/entry-points/console/ui/src/features/console/logic/clipboard.ts +0 -37
  295. package/src/adapter/entry-points/console/ui/src/features/console/logic/colors.test.ts +0 -34
  296. package/src/adapter/entry-points/console/ui/src/features/console/logic/colors.ts +0 -85
  297. package/src/adapter/entry-points/console/ui/src/features/console/logic/diff.test.ts +0 -81
  298. package/src/adapter/entry-points/console/ui/src/features/console/logic/diff.ts +0 -61
  299. package/src/adapter/entry-points/console/ui/src/features/console/logic/fileStatus.test.ts +0 -35
  300. package/src/adapter/entry-points/console/ui/src/features/console/logic/fileStatus.ts +0 -21
  301. package/src/adapter/entry-points/console/ui/src/features/console/logic/fileTree.test.ts +0 -96
  302. package/src/adapter/entry-points/console/ui/src/features/console/logic/fileTree.ts +0 -93
  303. package/src/adapter/entry-points/console/ui/src/features/console/logic/grouping.test.ts +0 -229
  304. package/src/adapter/entry-points/console/ui/src/features/console/logic/grouping.ts +0 -106
  305. package/src/adapter/entry-points/console/ui/src/features/console/logic/imageFile.test.ts +0 -18
  306. package/src/adapter/entry-points/console/ui/src/features/console/logic/imageFile.ts +0 -16
  307. package/src/adapter/entry-points/console/ui/src/features/console/logic/itemIcons.test.ts +0 -97
  308. package/src/adapter/entry-points/console/ui/src/features/console/logic/itemIcons.ts +0 -95
  309. package/src/adapter/entry-points/console/ui/src/features/console/logic/navigation.test.ts +0 -53
  310. package/src/adapter/entry-points/console/ui/src/features/console/logic/navigation.ts +0 -33
  311. package/src/adapter/entry-points/console/ui/src/features/console/logic/operations.test.ts +0 -72
  312. package/src/adapter/entry-points/console/ui/src/features/console/logic/operations.ts +0 -61
  313. package/src/adapter/entry-points/console/ui/src/features/console/logic/overlay.test.ts +0 -325
  314. package/src/adapter/entry-points/console/ui/src/features/console/logic/overlay.ts +0 -94
  315. package/src/adapter/entry-points/console/ui/src/features/console/logic/postedComments.test.ts +0 -44
  316. package/src/adapter/entry-points/console/ui/src/features/console/logic/postedComments.ts +0 -17
  317. package/src/adapter/entry-points/console/ui/src/features/console/logic/references.test.ts +0 -103
  318. package/src/adapter/entry-points/console/ui/src/features/console/logic/references.ts +0 -64
  319. package/src/adapter/entry-points/console/ui/src/features/console/logic/relativeTime.test.ts +0 -74
  320. package/src/adapter/entry-points/console/ui/src/features/console/logic/relativeTime.ts +0 -53
  321. package/src/adapter/entry-points/console/ui/src/features/console/logic/swipe.test.ts +0 -34
  322. package/src/adapter/entry-points/console/ui/src/features/console/logic/swipe.ts +0 -28
  323. package/src/adapter/entry-points/console/ui/src/features/console/logic/tabAdvance.test.ts +0 -89
  324. package/src/adapter/entry-points/console/ui/src/features/console/logic/tabAdvance.ts +0 -30
  325. package/src/adapter/entry-points/console/ui/src/features/console/logic/timerSettings.test.ts +0 -61
  326. package/src/adapter/entry-points/console/ui/src/features/console/logic/timerSettings.ts +0 -77
  327. package/src/adapter/entry-points/console/ui/src/features/console/logic/types.ts +0 -173
  328. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsoleItemDetailContainer.test.tsx +0 -629
  329. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsoleItemDetailContainer.tsx +0 -351
  330. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.test.tsx +0 -1469
  331. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.tsx +0 -736
  332. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsoleReferenceLinkContainer.tsx +0 -25
  333. package/src/adapter/entry-points/console/ui/src/features/console/testing/fixtures.ts +0 -418
  334. package/src/adapter/entry-points/console/ui/src/index.css +0 -1592
  335. package/src/adapter/entry-points/console/ui/src/lib/utils.ts +0 -4
  336. package/src/adapter/entry-points/console/ui/src/main.tsx +0 -21
  337. package/src/adapter/entry-points/console/ui/src/vite-env.d.ts +0 -1
  338. package/src/adapter/entry-points/console/ui/tsconfig.json +0 -26
  339. package/src/adapter/entry-points/console/ui/vite.config.ts +0 -24
  340. package/src/adapter/entry-points/console/ui-dist/assets/index-BYDbK1Fj.js +0 -88
  341. package/src/adapter/entry-points/console/ui-dist/assets/index-KyQISRuQ.css +0 -2
  342. package/src/adapter/entry-points/console/ui-dist/index.html +0 -13
  343. package/src/adapter/entry-points/console/ui-dist/sw.js +0 -60
  344. package/src/adapter/entry-points/console/webServer.test.ts +0 -2945
  345. package/src/adapter/entry-points/console/webServer.ts +0 -940
  346. package/src/adapter/entry-points/function/getStoryObjectMap.ts +0 -3
  347. package/src/adapter/entry-points/handlers/FileSystemConsoleTabsRepository.test.ts +0 -218
  348. package/src/adapter/entry-points/handlers/FileSystemConsoleTabsRepository.ts +0 -113
  349. package/src/adapter/entry-points/handlers/GetStoryObjectMapUseCaseHandler.test.ts +0 -110
  350. package/src/adapter/entry-points/handlers/GetStoryObjectMapUseCaseHandler.ts +0 -116
  351. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.test.ts +0 -859
  352. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +0 -984
  353. package/src/adapter/entry-points/handlers/InTmuxByHumanSessionTokenCountHandler.test.ts +0 -126
  354. package/src/adapter/entry-points/handlers/InTmuxByHumanSessionTokenCountHandler.ts +0 -80
  355. package/src/adapter/entry-points/handlers/LiveSessionOauthTokenSelectHandler.test.ts +0 -491
  356. package/src/adapter/entry-points/handlers/LiveSessionOauthTokenSelectHandler.ts +0 -137
  357. package/src/adapter/entry-points/handlers/OauthTokenSelectHandler.test.ts +0 -508
  358. package/src/adapter/entry-points/handlers/OauthTokenSelectHandler.ts +0 -156
  359. package/src/adapter/entry-points/handlers/consoleListsWriter.test.ts +0 -332
  360. package/src/adapter/entry-points/handlers/consoleListsWriter.ts +0 -60
  361. package/src/adapter/entry-points/handlers/dashboardRowWriter.test.ts +0 -112
  362. package/src/adapter/entry-points/handlers/dashboardRowWriter.ts +0 -51
  363. package/src/adapter/entry-points/handlers/inTmuxByHumanDataWriter.test.ts +0 -285
  364. package/src/adapter/entry-points/handlers/inTmuxByHumanDataWriter.ts +0 -109
  365. package/src/adapter/entry-points/handlers/inTmuxByHumanSessionReconciler.test.ts +0 -170
  366. package/src/adapter/entry-points/handlers/inTmuxByHumanSessionReconciler.ts +0 -40
  367. package/src/adapter/entry-points/handlers/machineStatusWriter.test.ts +0 -191
  368. package/src/adapter/entry-points/handlers/machineStatusWriter.ts +0 -110
  369. package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.test.ts +0 -548
  370. package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.ts +0 -192
  371. package/src/adapter/entry-points/handlers/ownerCallFileCleaner.test.ts +0 -111
  372. package/src/adapter/entry-points/handlers/ownerCallFileCleaner.ts +0 -25
  373. package/src/adapter/entry-points/handlers/ownerCallFileStore.test.ts +0 -286
  374. package/src/adapter/entry-points/handlers/ownerCallFileStore.ts +0 -145
  375. package/src/adapter/entry-points/handlers/ownerReplyMarkerDirectoryResolve.test.ts +0 -55
  376. package/src/adapter/entry-points/handlers/ownerReplyMarkerDirectoryResolve.ts +0 -36
  377. package/src/adapter/entry-points/handlers/resetDegeneratedTmuxSessions.test.ts +0 -72
  378. package/src/adapter/entry-points/handlers/resetDegeneratedTmuxSessions.ts +0 -74
  379. package/src/adapter/entry-points/handlers/rotationOrderFileWriter.test.ts +0 -181
  380. package/src/adapter/entry-points/handlers/rotationOrderFileWriter.ts +0 -18
  381. package/src/adapter/entry-points/handlers/situationFileWriter.test.ts +0 -489
  382. package/src/adapter/entry-points/handlers/situationFileWriter.ts +0 -176
  383. package/src/adapter/entry-points/handlers/staleTmuxSessionCleaner.test.ts +0 -169
  384. package/src/adapter/entry-points/handlers/staleTmuxSessionCleaner.ts +0 -32
  385. package/src/adapter/entry-points/handlers/subscriptionDisabledTokenHandler.ts +0 -41
  386. package/src/adapter/entry-points/handlers/tokenExhaustionHandover.ts +0 -81
  387. package/src/adapter/entry-points/handlers/tokenStatusWriter.test.ts +0 -266
  388. package/src/adapter/entry-points/handlers/tokenStatusWriter.ts +0 -262
  389. package/src/adapter/proxy/ClaudeMessageResponseParser.test.ts +0 -211
  390. package/src/adapter/proxy/ClaudeMessageResponseParser.ts +0 -181
  391. package/src/adapter/proxy/RateLimitCache.test.ts +0 -1077
  392. package/src/adapter/proxy/RateLimitCache.ts +0 -385
  393. package/src/adapter/proxy/TokenListLoader.test.ts +0 -183
  394. package/src/adapter/proxy/TokenListLoader.ts +0 -75
  395. package/src/adapter/proxy/ensureProxyRunning.test.ts +0 -85
  396. package/src/adapter/proxy/ensureProxyRunning.ts +0 -41
  397. package/src/adapter/proxy/proxyEntry.test.ts +0 -552
  398. package/src/adapter/proxy/proxyEntry.ts +0 -214
  399. package/src/adapter/repositories/BaseGitHubRepository.test.ts +0 -26
  400. package/src/adapter/repositories/BaseGitHubRepository.ts +0 -26
  401. package/src/adapter/repositories/BrowserGitHubProjectRepository.test.ts +0 -108
  402. package/src/adapter/repositories/BrowserGitHubProjectRepository.ts +0 -118
  403. package/src/adapter/repositories/CliGitHubGraphqlRateLimitRepository.test.ts +0 -71
  404. package/src/adapter/repositories/CliGitHubGraphqlRateLimitRepository.ts +0 -21
  405. package/src/adapter/repositories/ConfigurableSilentSessionMessageComposer.test.ts +0 -324
  406. package/src/adapter/repositories/ConfigurableSilentSessionMessageComposer.ts +0 -148
  407. package/src/adapter/repositories/FetchWebhookRepository.ts +0 -8
  408. package/src/adapter/repositories/FileHandoverStateRepository.test.ts +0 -114
  409. package/src/adapter/repositories/FileHandoverStateRepository.ts +0 -73
  410. package/src/adapter/repositories/FileSystemInteractiveLiveSessionTranscriptResolver.test.ts +0 -514
  411. package/src/adapter/repositories/FileSystemInteractiveLiveSessionTranscriptResolver.ts +0 -109
  412. package/src/adapter/repositories/FileSystemKevReportWatermarkRepository.test.ts +0 -284
  413. package/src/adapter/repositories/FileSystemKevReportWatermarkRepository.ts +0 -128
  414. package/src/adapter/repositories/FileSystemSessionAssistantTurnsRepository.test.ts +0 -138
  415. package/src/adapter/repositories/FileSystemSessionAssistantTurnsRepository.ts +0 -113
  416. package/src/adapter/repositories/FileSystemSessionDegenerationCooldownStateRepository.test.ts +0 -121
  417. package/src/adapter/repositories/FileSystemSessionDegenerationCooldownStateRepository.ts +0 -103
  418. package/src/adapter/repositories/FileSystemSessionOutputActivityRepository.test.ts +0 -360
  419. package/src/adapter/repositories/FileSystemSessionOutputActivityRepository.ts +0 -77
  420. package/src/adapter/repositories/FileSystemSessionRecordReader.test.ts +0 -59
  421. package/src/adapter/repositories/FileSystemSessionRecordReader.ts +0 -31
  422. package/src/adapter/repositories/FileSystemSilentSessionCandidateStateRepository.test.ts +0 -287
  423. package/src/adapter/repositories/FileSystemSilentSessionCandidateStateRepository.ts +0 -125
  424. package/src/adapter/repositories/FileSystemSilentSessionHubTaskStatusCacheRepository.test.ts +0 -285
  425. package/src/adapter/repositories/FileSystemSilentSessionHubTaskStatusCacheRepository.ts +0 -119
  426. package/src/adapter/repositories/FileSystemSubAgentLivenessResolver.test.ts +0 -237
  427. package/src/adapter/repositories/FileSystemSubAgentLivenessResolver.ts +0 -57
  428. package/src/adapter/repositories/FileSystemSubAgentSilentSecondsResolver.test.ts +0 -56
  429. package/src/adapter/repositories/FileSystemSubAgentSilentSecondsResolver.ts +0 -32
  430. package/src/adapter/repositories/FileSystemSubAgentTranscriptDirectoryResolver.test.ts +0 -68
  431. package/src/adapter/repositories/FileSystemSubAgentTranscriptDirectoryResolver.ts +0 -23
  432. package/src/adapter/repositories/GitHubIssueCheckpointRepository.test.ts +0 -51
  433. package/src/adapter/repositories/GitHubIssueCheckpointRepository.ts +0 -47
  434. package/src/adapter/repositories/GitHubIssueCommentRepository.test.ts +0 -278
  435. package/src/adapter/repositories/GitHubIssueCommentRepository.ts +0 -109
  436. package/src/adapter/repositories/GoogleSpreadsheetRepository.integration.test.ts +0 -265
  437. package/src/adapter/repositories/GoogleSpreadsheetRepository.test.ts +0 -431
  438. package/src/adapter/repositories/GoogleSpreadsheetRepository.ts +0 -268
  439. package/src/adapter/repositories/GraphqlProjectRepository.diskCache.test.ts +0 -272
  440. package/src/adapter/repositories/GraphqlProjectRepository.errorHandling.test.ts +0 -111
  441. package/src/adapter/repositories/GraphqlProjectRepository.fetchProjectId.test.ts +0 -254
  442. package/src/adapter/repositories/GraphqlProjectRepository.test.ts +0 -209
  443. package/src/adapter/repositories/GraphqlProjectRepository.ts +0 -707
  444. package/src/adapter/repositories/GraphqlProjectRepositoryProjectLocation.test.ts +0 -297
  445. package/src/adapter/repositories/KyHttpRepository.ts +0 -8
  446. package/src/adapter/repositories/KySlackRepository.test.ts +0 -172
  447. package/src/adapter/repositories/KySlackRepository.ts +0 -298
  448. package/src/adapter/repositories/LocalCommandIssueAttachmentRepository.test.ts +0 -193
  449. package/src/adapter/repositories/LocalCommandIssueAttachmentRepository.ts +0 -106
  450. package/src/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.test.ts +0 -190
  451. package/src/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.ts +0 -102
  452. package/src/adapter/repositories/LocalStorageCacheRepository.test.ts +0 -265
  453. package/src/adapter/repositories/LocalStorageCacheRepository.ts +0 -79
  454. package/src/adapter/repositories/LocalStorageRepository.integration.test.ts +0 -142
  455. package/src/adapter/repositories/LocalStorageRepository.test.ts +0 -173
  456. package/src/adapter/repositories/LocalStorageRepository.ts +0 -30
  457. package/src/adapter/repositories/NoUnansweredOwnerCallStatusProvider.test.ts +0 -15
  458. package/src/adapter/repositories/NoUnansweredOwnerCallStatusProvider.ts +0 -9
  459. package/src/adapter/repositories/NodeLocalCommandRunner.largeOutput.test.ts +0 -16
  460. package/src/adapter/repositories/NodeLocalCommandRunner.test.ts +0 -118
  461. package/src/adapter/repositories/NodeLocalCommandRunner.ts +0 -66
  462. package/src/adapter/repositories/NodeProcessSignalRepository.test.ts +0 -82
  463. package/src/adapter/repositories/NodeProcessSignalRepository.ts +0 -47
  464. package/src/adapter/repositories/NodeSubAgentProcessLister.test.ts +0 -44
  465. package/src/adapter/repositories/NodeSubAgentProcessLister.ts +0 -40
  466. package/src/adapter/repositories/NodeTmuxSessionRepository.test.ts +0 -546
  467. package/src/adapter/repositories/NodeTmuxSessionRepository.ts +0 -245
  468. package/src/adapter/repositories/OauthAPIClaudeRepository.ts +0 -279
  469. package/src/adapter/repositories/OauthAPIProxyClaudeRepository.test.ts +0 -166
  470. package/src/adapter/repositories/OauthAPIProxyClaudeRepository.ts +0 -32
  471. package/src/adapter/repositories/OauthProxyClaudeRepository.test.ts +0 -428
  472. package/src/adapter/repositories/OauthProxyClaudeRepository.ts +0 -124
  473. package/src/adapter/repositories/ProcClaudeHandoverSessionRepository.test.ts +0 -242
  474. package/src/adapter/repositories/ProcClaudeHandoverSessionRepository.ts +0 -261
  475. package/src/adapter/repositories/ProcClaudeInteractiveSessionRepository.test.ts +0 -184
  476. package/src/adapter/repositories/ProcClaudeInteractiveSessionRepository.ts +0 -138
  477. package/src/adapter/repositories/ProcClaudeLiveSessionRepository.test.ts +0 -208
  478. package/src/adapter/repositories/ProcClaudeLiveSessionRepository.ts +0 -130
  479. package/src/adapter/repositories/ProcFsProcessEnvironReader.test.ts +0 -60
  480. package/src/adapter/repositories/ProcFsProcessEnvironReader.ts +0 -38
  481. package/src/adapter/repositories/ProcHostMetricsRepository.test.ts +0 -207
  482. package/src/adapter/repositories/ProcHostMetricsRepository.ts +0 -181
  483. package/src/adapter/repositories/ProcTakeOwnershipSpawnRepository.test.ts +0 -231
  484. package/src/adapter/repositories/ProcTakeOwnershipSpawnRepository.ts +0 -134
  485. package/src/adapter/repositories/ProcessListSessionSubAgentActivityRepository.test.ts +0 -121
  486. package/src/adapter/repositories/ProcessListSessionSubAgentActivityRepository.ts +0 -58
  487. package/src/adapter/repositories/ProjectIssuesCacheRepository.test.ts +0 -218
  488. package/src/adapter/repositories/ProjectIssuesCacheRepository.ts +0 -141
  489. package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.test.ts +0 -1195
  490. package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts +0 -185
  491. package/src/adapter/repositories/ProxyRateLimitCacheRepository.test.ts +0 -116
  492. package/src/adapter/repositories/ProxyRateLimitCacheRepository.ts +0 -67
  493. package/src/adapter/repositories/RateLimitSnapshotRepository.ts +0 -50
  494. package/src/adapter/repositories/RealSleeper.test.ts +0 -19
  495. package/src/adapter/repositories/RealSleeper.ts +0 -12
  496. package/src/adapter/repositories/RestProjectRepository.test.ts +0 -277
  497. package/src/adapter/repositories/RestProjectRepository.ts +0 -129
  498. package/src/adapter/repositories/SqliteClaudeMessageResponseRepository.test.ts +0 -313
  499. package/src/adapter/repositories/SqliteClaudeMessageResponseRepository.ts +0 -164
  500. package/src/adapter/repositories/SystemDateRepository.test.ts +0 -60
  501. package/src/adapter/repositories/SystemDateRepository.ts +0 -34
  502. package/src/adapter/repositories/TmuxSilentSessionNotificationRepository.test.ts +0 -253
  503. package/src/adapter/repositories/TmuxSilentSessionNotificationRepository.ts +0 -158
  504. package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.queuedReply.test.ts +0 -171
  505. package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.singleScan.test.ts +0 -86
  506. package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.test.ts +0 -996
  507. package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.ts +0 -396
  508. package/src/adapter/repositories/TranscriptRefusalTailStatusProvider.test.ts +0 -208
  509. package/src/adapter/repositories/TranscriptRefusalTailStatusProvider.ts +0 -80
  510. package/src/adapter/repositories/TranscriptSessionSubAgentActivityRepository.test.ts +0 -1674
  511. package/src/adapter/repositories/TranscriptSessionSubAgentActivityRepository.ts +0 -459
  512. package/src/adapter/repositories/clSessionScopeUnitName.test.ts +0 -76
  513. package/src/adapter/repositories/clSessionScopeUnitName.ts +0 -5
  514. package/src/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.test.ts +0 -34
  515. package/src/adapter/repositories/clSessionScopeUnitNameFromCgroupContent.ts +0 -8
  516. package/src/adapter/repositories/githubGraphqlClient.test.ts +0 -479
  517. package/src/adapter/repositories/githubGraphqlClient.ts +0 -243
  518. package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.test.ts +0 -5182
  519. package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts +0 -3303
  520. package/src/adapter/repositories/issue/ApiV3IssueRepository.test.ts +0 -46
  521. package/src/adapter/repositories/issue/ApiV3IssueRepository.ts +0 -88
  522. package/src/adapter/repositories/issue/GraphqlProjectItemRepository.test.ts +0 -1776
  523. package/src/adapter/repositories/issue/GraphqlProjectItemRepository.ts +0 -1552
  524. package/src/adapter/repositories/issue/RestIssueRepository.test.ts +0 -393
  525. package/src/adapter/repositories/issue/RestIssueRepository.ts +0 -252
  526. package/src/adapter/repositories/issue/gitHubRawUrl.test.ts +0 -29
  527. package/src/adapter/repositories/issue/gitHubRawUrl.ts +0 -30
  528. package/src/adapter/repositories/issue/githubRateLimitRetry.test.ts +0 -167
  529. package/src/adapter/repositories/issue/githubRateLimitRetry.ts +0 -109
  530. package/src/adapter/repositories/localStorageCacheDirectory.test.ts +0 -81
  531. package/src/adapter/repositories/localStorageCacheDirectory.ts +0 -13
  532. package/src/adapter/repositories/projectFieldDefinition.test.ts +0 -191
  533. package/src/adapter/repositories/projectFieldDefinition.ts +0 -144
  534. package/src/adapter/repositories/utils.test.ts +0 -55
  535. package/src/adapter/repositories/utils.ts +0 -45
  536. package/src/domain/entities/ClaudeHandoverSession.ts +0 -12
  537. package/src/domain/entities/ClaudeMessageResponse.ts +0 -31
  538. package/src/domain/entities/ClaudeTokenUsage.ts +0 -17
  539. package/src/domain/entities/ClaudeWindowUsage.ts +0 -5
  540. package/src/domain/entities/Comment.ts +0 -5
  541. package/src/domain/entities/InteractiveLiveSession.ts +0 -6
  542. package/src/domain/entities/Issue.ts +0 -31
  543. package/src/domain/entities/KevReportWatermark.ts +0 -4
  544. package/src/domain/entities/LiveSessionActivitySnapshot.ts +0 -14
  545. package/src/domain/entities/LiveSessionOutputActivity.ts +0 -4
  546. package/src/domain/entities/LiveSessionProcessSnapshot.ts +0 -18
  547. package/src/domain/entities/LiveTmuxSession.ts +0 -4
  548. package/src/domain/entities/Member.ts +0 -3
  549. package/src/domain/entities/OutputDegeneration.ts +0 -10
  550. package/src/domain/entities/Project.ts +0 -88
  551. package/src/domain/entities/ProjectField.ts +0 -3
  552. package/src/domain/entities/ProjectFieldName.ts +0 -2
  553. package/src/domain/entities/ProjectFieldSingleSelect.ts +0 -8
  554. package/src/domain/entities/ProjectFieldSingleSelectOption.ts +0 -8
  555. package/src/domain/entities/RequiredProjectField.ts +0 -68
  556. package/src/domain/entities/SearchedIssue.ts +0 -11
  557. package/src/domain/entities/StoryObjectMap.ts +0 -12
  558. package/src/domain/entities/TokenExhaustionHandoverState.ts +0 -8
  559. package/src/domain/entities/WorkflowStatus.ts +0 -66
  560. package/src/domain/usecases/ActionAnnouncementUseCase.test.ts +0 -91
  561. package/src/domain/usecases/ActionAnnouncementUseCase.ts +0 -78
  562. package/src/domain/usecases/AgentDesignationLabelAdoptUseCase.test.ts +0 -222
  563. package/src/domain/usecases/AgentDesignationLabelAdoptUseCase.ts +0 -76
  564. package/src/domain/usecases/AnalyzeProblemByIssueUseCase.test.ts +0 -118
  565. package/src/domain/usecases/AnalyzeProblemByIssueUseCase.ts +0 -112
  566. package/src/domain/usecases/AnalyzeStoriesUseCase.test.ts +0 -82
  567. package/src/domain/usecases/AnalyzeStoriesUseCase.ts +0 -296
  568. package/src/domain/usecases/AssignNoAssigneeIssueToManagerUseCase.test.ts +0 -578
  569. package/src/domain/usecases/AssignNoAssigneeIssueToManagerUseCase.ts +0 -137
  570. package/src/domain/usecases/CONTRIBUTING_FOR_TEST.md +0 -259
  571. package/src/domain/usecases/ChangeStatusByStoryColorUseCase.test.ts +0 -437
  572. package/src/domain/usecases/ChangeStatusByStoryColorUseCase.ts +0 -80
  573. package/src/domain/usecases/ChangeTargetPullRequestApprover.test.ts +0 -248
  574. package/src/domain/usecases/ChangeTargetPullRequestApprover.ts +0 -69
  575. package/src/domain/usecases/CheckIssueReviewReadinessUseCase.test.ts +0 -411
  576. package/src/domain/usecases/CheckIssueReviewReadinessUseCase.ts +0 -142
  577. package/src/domain/usecases/ClearDependedIssueURLUseCase.test.ts +0 -1120
  578. package/src/domain/usecases/ClearDependedIssueURLUseCase.ts +0 -161
  579. package/src/domain/usecases/ClearPastNextActionDateHourUseCase.test.ts +0 -345
  580. package/src/domain/usecases/ClearPastNextActionDateHourUseCase.ts +0 -81
  581. package/src/domain/usecases/CliErrorReportUseCase.test.ts +0 -162
  582. package/src/domain/usecases/CliErrorReportUseCase.ts +0 -72
  583. package/src/domain/usecases/ConflictedIssueRevertUseCase.test.ts +0 -886
  584. package/src/domain/usecases/ConflictedIssueRevertUseCase.ts +0 -146
  585. package/src/domain/usecases/CreateEstimationIssueUseCase.test.ts +0 -227
  586. package/src/domain/usecases/CreateEstimationIssueUseCase.ts +0 -205
  587. package/src/domain/usecases/CreateNewStoryByLabelUseCase.test.ts +0 -1084
  588. package/src/domain/usecases/CreateNewStoryByLabelUseCase.ts +0 -146
  589. package/src/domain/usecases/DailySecurityScanUseCase.test.ts +0 -1709
  590. package/src/domain/usecases/DailySecurityScanUseCase.ts +0 -476
  591. package/src/domain/usecases/DefaultSilentSessionMessageComposer.test.ts +0 -533
  592. package/src/domain/usecases/DefaultSilentSessionMessageComposer.ts +0 -122
  593. package/src/domain/usecases/GetStoryObjectMapUseCase.test.ts +0 -330
  594. package/src/domain/usecases/GetStoryObjectMapUseCase.ts +0 -79
  595. package/src/domain/usecases/HandleScheduledEventUseCase.test.ts +0 -1913
  596. package/src/domain/usecases/HandleScheduledEventUseCase.ts +0 -846
  597. package/src/domain/usecases/InTmuxByHumanSessionTokenCountUseCase.test.ts +0 -175
  598. package/src/domain/usecases/InTmuxByHumanSessionTokenCountUseCase.ts +0 -63
  599. package/src/domain/usecases/IssueNoStatusUpdateUseCase.test.ts +0 -165
  600. package/src/domain/usecases/IssueNoStatusUpdateUseCase.ts +0 -44
  601. package/src/domain/usecases/IssueRejectionEvaluator.test.ts +0 -1137
  602. package/src/domain/usecases/IssueRejectionEvaluator.ts +0 -340
  603. package/src/domain/usecases/LiveSessionOauthTokenSelectUseCase.test.ts +0 -679
  604. package/src/domain/usecases/LiveSessionOauthTokenSelectUseCase.ts +0 -178
  605. package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +0 -5441
  606. package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +0 -891
  607. package/src/domain/usecases/NotifySilentLiveSessionsUseCase.test.ts +0 -2069
  608. package/src/domain/usecases/NotifySilentLiveSessionsUseCase.ts +0 -489
  609. package/src/domain/usecases/OauthTokenSelectUseCase.test.ts +0 -662
  610. package/src/domain/usecases/OauthTokenSelectUseCase.ts +0 -274
  611. package/src/domain/usecases/OutputDegenerationDetector.test.ts +0 -167
  612. package/src/domain/usecases/OutputDegenerationDetector.ts +0 -169
  613. package/src/domain/usecases/ProjectRequiredFieldCreateUseCase.test.ts +0 -711
  614. package/src/domain/usecases/ProjectRequiredFieldCreateUseCase.ts +0 -146
  615. package/src/domain/usecases/QualityCheckAdvanceUseCase.test.ts +0 -421
  616. package/src/domain/usecases/QualityCheckAdvanceUseCase.ts +0 -76
  617. package/src/domain/usecases/ReopenedDoneIssueRevertUseCase.test.ts +0 -188
  618. package/src/domain/usecases/ReopenedDoneIssueRevertUseCase.ts +0 -57
  619. package/src/domain/usecases/ResolveInteractiveLiveSessionsUseCase.test.ts +0 -303
  620. package/src/domain/usecases/ResolveInteractiveLiveSessionsUseCase.ts +0 -155
  621. package/src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.test.ts +0 -1838
  622. package/src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.ts +0 -221
  623. package/src/domain/usecases/RevertOrphanedPreparationUseCase.test.ts +0 -2392
  624. package/src/domain/usecases/RevertOrphanedPreparationUseCase.ts +0 -499
  625. package/src/domain/usecases/SessionOutputDegenerationRecoveryUseCase.test.ts +0 -224
  626. package/src/domain/usecases/SessionOutputDegenerationRecoveryUseCase.ts +0 -142
  627. package/src/domain/usecases/SetDependedIssueUrlForOpenTaskPRsUseCase.test.ts +0 -360
  628. package/src/domain/usecases/SetDependedIssueUrlForOpenTaskPRsUseCase.ts +0 -70
  629. package/src/domain/usecases/SetNoStoryIssueToStoryUseCase.test.ts +0 -400
  630. package/src/domain/usecases/SetNoStoryIssueToStoryUseCase.ts +0 -48
  631. package/src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.test.ts +0 -696
  632. package/src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.ts +0 -201
  633. package/src/domain/usecases/SetupTowerDefenceProjectUseCase.test.ts +0 -1363
  634. package/src/domain/usecases/SetupTowerDefenceProjectUseCase.ts +0 -215
  635. package/src/domain/usecases/StaleTaskPullRequestCloseUseCase.test.ts +0 -170
  636. package/src/domain/usecases/StaleTaskPullRequestCloseUseCase.ts +0 -38
  637. package/src/domain/usecases/StaleTmuxSessionKillUseCase.test.ts +0 -283
  638. package/src/domain/usecases/StaleTmuxSessionKillUseCase.ts +0 -98
  639. package/src/domain/usecases/StartPreparationUseCase.test.ts +0 -7822
  640. package/src/domain/usecases/StartPreparationUseCase.ts +0 -876
  641. package/src/domain/usecases/SubscriptionDisabledIssueUseCase.test.ts +0 -200
  642. package/src/domain/usecases/SubscriptionDisabledIssueUseCase.ts +0 -74
  643. package/src/domain/usecases/TokenExhaustionHandoverUseCase.test.ts +0 -838
  644. package/src/domain/usecases/TokenExhaustionHandoverUseCase.ts +0 -439
  645. package/src/domain/usecases/UpdateIssueStatusByLabelUseCase.test.ts +0 -306
  646. package/src/domain/usecases/UpdateIssueStatusByLabelUseCase.ts +0 -64
  647. package/src/domain/usecases/UpdateRateLimitCacheUseCase.test.ts +0 -178
  648. package/src/domain/usecases/UpdateRateLimitCacheUseCase.ts +0 -22
  649. package/src/domain/usecases/adapter-interfaces/ClaudeHandoverSessionRepository.ts +0 -5
  650. package/src/domain/usecases/adapter-interfaces/ClaudeInteractiveSessionRepository.ts +0 -9
  651. package/src/domain/usecases/adapter-interfaces/ClaudeLiveSessionRepository.ts +0 -8
  652. package/src/domain/usecases/adapter-interfaces/ClaudeMessageResponseRepository.ts +0 -5
  653. package/src/domain/usecases/adapter-interfaces/ClaudeRepository.ts +0 -6
  654. package/src/domain/usecases/adapter-interfaces/ClaudeTokenUsageRepository.ts +0 -8
  655. package/src/domain/usecases/adapter-interfaces/ConsoleTabsRepository.ts +0 -12
  656. package/src/domain/usecases/adapter-interfaces/CopilotRepository.ts +0 -3
  657. package/src/domain/usecases/adapter-interfaces/DateRepository.ts +0 -7
  658. package/src/domain/usecases/adapter-interfaces/GitHubGraphqlRateLimitRepository.ts +0 -3
  659. package/src/domain/usecases/adapter-interfaces/HttpRepository.ts +0 -3
  660. package/src/domain/usecases/adapter-interfaces/InteractiveLiveSessionTranscriptResolver.ts +0 -7
  661. package/src/domain/usecases/adapter-interfaces/IssueAttachmentRepository.ts +0 -9
  662. package/src/domain/usecases/adapter-interfaces/IssueCheckpointRepository.ts +0 -3
  663. package/src/domain/usecases/adapter-interfaces/IssueCommentRepository.ts +0 -7
  664. package/src/domain/usecases/adapter-interfaces/IssueRepository.ts +0 -229
  665. package/src/domain/usecases/adapter-interfaces/KevReportWatermarkRepository.ts +0 -11
  666. package/src/domain/usecases/adapter-interfaces/LiveSessionProcessSnapshotProvider.ts +0 -5
  667. package/src/domain/usecases/adapter-interfaces/LocalCommandRunner.ts +0 -16
  668. package/src/domain/usecases/adapter-interfaces/OwnerCallStatusProvider.ts +0 -5
  669. package/src/domain/usecases/adapter-interfaces/ProcessEnvironReader.ts +0 -3
  670. package/src/domain/usecases/adapter-interfaces/ProcessSignalRepository.ts +0 -5
  671. package/src/domain/usecases/adapter-interfaces/ProjectRepository.ts +0 -29
  672. package/src/domain/usecases/adapter-interfaces/RateLimitCacheRepository.ts +0 -10
  673. package/src/domain/usecases/adapter-interfaces/RefusalTailStatusProvider.ts +0 -5
  674. package/src/domain/usecases/adapter-interfaces/SessionAssistantTurnsRepository.ts +0 -6
  675. package/src/domain/usecases/adapter-interfaces/SessionDegenerationCooldownStateRepository.ts +0 -4
  676. package/src/domain/usecases/adapter-interfaces/SessionOutputActivityRepository.ts +0 -7
  677. package/src/domain/usecases/adapter-interfaces/SessionRecordReader.ts +0 -3
  678. package/src/domain/usecases/adapter-interfaces/SessionSubAgentActivityRepository.ts +0 -8
  679. package/src/domain/usecases/adapter-interfaces/SilentSessionCandidateStateRepository.ts +0 -10
  680. package/src/domain/usecases/adapter-interfaces/SilentSessionHubTaskStatusCacheRepository.ts +0 -20
  681. package/src/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.ts +0 -18
  682. package/src/domain/usecases/adapter-interfaces/SilentSessionNotificationRepository.ts +0 -6
  683. package/src/domain/usecases/adapter-interfaces/SlackRepository.ts +0 -20
  684. package/src/domain/usecases/adapter-interfaces/Sleeper.ts +0 -3
  685. package/src/domain/usecases/adapter-interfaces/SpreadsheetRepository.ts +0 -18
  686. package/src/domain/usecases/adapter-interfaces/StatusDefaultRepository.ts +0 -5
  687. package/src/domain/usecases/adapter-interfaces/SubAgentLivenessResolver.ts +0 -6
  688. package/src/domain/usecases/adapter-interfaces/SubAgentProcessLister.ts +0 -8
  689. package/src/domain/usecases/adapter-interfaces/SubAgentSilentSecondsResolver.ts +0 -3
  690. package/src/domain/usecases/adapter-interfaces/SubAgentTranscriptDirectoryResolver.ts +0 -6
  691. package/src/domain/usecases/adapter-interfaces/TakeOwnershipSpawnRepository.ts +0 -9
  692. package/src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts +0 -20
  693. package/src/domain/usecases/adapter-interfaces/TokenExhaustionHandoverStateRepository.ts +0 -6
  694. package/src/domain/usecases/adapter-interfaces/TokenRateLimitSnapshotRepository.ts +0 -22
  695. package/src/domain/usecases/adapter-interfaces/WebhookRepository.ts +0 -3
  696. package/src/domain/usecases/agentReportPrefix.ts +0 -1
  697. package/src/domain/usecases/autoStatusCheckComments.ts +0 -1
  698. package/src/domain/usecases/console/.gitkeep +0 -0
  699. package/src/domain/usecases/console/GenerateConsoleListsUseCase.test.ts +0 -887
  700. package/src/domain/usecases/console/GenerateConsoleListsUseCase.ts +0 -368
  701. package/src/domain/usecases/dashboard/ComposeDashboardUseCase.test.ts +0 -654
  702. package/src/domain/usecases/dashboard/ComposeDashboardUseCase.ts +0 -318
  703. package/src/domain/usecases/dashboard/DashboardProjectCode.test.ts +0 -34
  704. package/src/domain/usecases/dashboard/DashboardProjectCode.ts +0 -27
  705. package/src/domain/usecases/dashboard/GenerateDashboardRowUseCase.test.ts +0 -160
  706. package/src/domain/usecases/dashboard/GenerateDashboardRowUseCase.ts +0 -69
  707. package/src/domain/usecases/dashboard/GenerateTokenStatusUseCase.test.ts +0 -362
  708. package/src/domain/usecases/dashboard/GenerateTokenStatusUseCase.ts +0 -234
  709. package/src/domain/usecases/ensureAgentOptionAndGetId.ts +0 -47
  710. package/src/domain/usecases/extractFencedJsonBlocks.test.ts +0 -40
  711. package/src/domain/usecases/extractFencedJsonBlocks.ts +0 -21
  712. package/src/domain/usecases/extractNextStepAgent.test.ts +0 -58
  713. package/src/domain/usecases/extractNextStepAgent.ts +0 -18
  714. package/src/domain/usecases/extractNextStepAgentFromComments.ts +0 -13
  715. package/src/domain/usecases/findLastAgentReport.test.ts +0 -121
  716. package/src/domain/usecases/findLastAgentReport.ts +0 -14
  717. package/src/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.test.ts +0 -339
  718. package/src/domain/usecases/intmux/GenerateInTmuxByHumanDataUseCase.ts +0 -188
  719. package/src/domain/usecases/intmux/InTmuxByHumanSessionReconcileUseCase.test.ts +0 -389
  720. package/src/domain/usecases/intmux/InTmuxByHumanSessionReconcileUseCase.ts +0 -103
  721. package/src/domain/usecases/intmux/OwnerCallFile.test.ts +0 -184
  722. package/src/domain/usecases/intmux/OwnerCallFile.ts +0 -80
  723. package/src/domain/usecases/isAgentReportBody.test.ts +0 -108
  724. package/src/domain/usecases/isAgentReportBody.ts +0 -52
  725. package/src/domain/usecases/isAuthorAuthorizedForAutoStatusCheck.ts +0 -12
  726. package/src/domain/usecases/isHumanComment.test.ts +0 -77
  727. package/src/domain/usecases/isHumanComment.ts +0 -23
  728. package/src/domain/usecases/isRecord.ts +0 -2
  729. package/src/domain/usecases/issueReactivationTriggerIsPending.test.ts +0 -541
  730. package/src/domain/usecases/issueReactivationTriggerIsPending.ts +0 -25
  731. package/src/domain/usecases/nextStepAgentDispatchRepeatedMessage.ts +0 -2
  732. package/src/domain/usecases/normalizeReportBody.test.ts +0 -24
  733. package/src/domain/usecases/normalizeReportBody.ts +0 -2
  734. package/src/domain/usecases/resolveAllowedIssueAuthors.test.ts +0 -51
  735. package/src/domain/usecases/resolveAllowedIssueAuthors.ts +0 -6
  736. package/src/domain/usecases/resolveLabelsAsLlmAgentName.test.ts +0 -42
  737. package/src/domain/usecases/resolveLabelsAsLlmAgentName.ts +0 -6
  738. package/src/domain/usecases/resolveLabelsNotRequiringPullRequest.test.ts +0 -33
  739. package/src/domain/usecases/resolveLabelsNotRequiringPullRequest.ts +0 -7
  740. package/src/domain/usecases/resolveNextStepAgentDispatchRepetition.test.ts +0 -337
  741. package/src/domain/usecases/resolveNextStepAgentDispatchRepetition.ts +0 -133
  742. package/src/domain/usecases/silentSessionReminderSentinel.ts +0 -9
  743. package/src/domain/usecases/triagerAgentName.ts +0 -4
  744. package/src/domain/usecases/utils.test.ts +0 -35
  745. package/src/domain/usecases/utils.ts +0 -6
  746. package/src/index.test.ts +0 -8
  747. package/src/index.ts +0 -10
  748. package/src/releaseConfig.test.ts +0 -40
  749. package/tsconfig.build.json +0 -18
  750. package/tsconfig.json +0 -25
  751. package/types/adapter/entry-points/handlers/resolveUnansweredOwnerCalls.d.ts +0 -13
  752. package/types/adapter/entry-points/handlers/resolveUnansweredOwnerCalls.d.ts.map +0 -1
  753. package/types/adapter/repositories/FileSystemSilentSessionNotifiedStateRepository.d.ts +0 -16
  754. package/types/adapter/repositories/FileSystemSilentSessionNotifiedStateRepository.d.ts.map +0 -1
  755. package/types/adapter/repositories/issue/issueTimelineUtils.d.ts +0 -12
  756. package/types/adapter/repositories/issue/issueTimelineUtils.d.ts.map +0 -1
  757. package/types/domain/entities/UnansweredOwnerCall.d.ts +0 -5
  758. package/types/domain/entities/UnansweredOwnerCall.d.ts.map +0 -1
  759. package/types/domain/entities/WorkingTime.d.ts +0 -8
  760. package/types/domain/entities/WorkingTime.d.ts.map +0 -1
  761. package/types/domain/usecases/ChangeStatusLongInReviewIssueUseCase.d.ts +0 -17
  762. package/types/domain/usecases/ChangeStatusLongInReviewIssueUseCase.d.ts.map +0 -1
  763. package/types/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.d.ts +0 -23
  764. package/types/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.d.ts.map +0 -1
  765. package/types/domain/usecases/GenerateWorkingTimeReportUseCase.d.ts +0 -50
  766. package/types/domain/usecases/GenerateWorkingTimeReportUseCase.d.ts.map +0 -1
  767. package/types/domain/usecases/TriagerApprovalDispatchUseCase.d.ts +0 -15
  768. package/types/domain/usecases/TriagerApprovalDispatchUseCase.d.ts.map +0 -1
  769. package/types/domain/usecases/adapter-interfaces/SilentSessionNotifiedStateRepository.d.ts +0 -11
  770. package/types/domain/usecases/adapter-interfaces/SilentSessionNotifiedStateRepository.d.ts.map +0 -1
  771. package/types/domain/usecases/awaitingOwnerApprovalMessage.d.ts +0 -3
  772. package/types/domain/usecases/awaitingOwnerApprovalMessage.d.ts.map +0 -1
  773. package/types/domain/usecases/findLastAgentDeclaringReport.d.ts +0 -5
  774. package/types/domain/usecases/findLastAgentDeclaringReport.d.ts.map +0 -1
  775. package/types/domain/usecases/isPullRequestDeclaredUnnecessary.d.ts +0 -5
  776. package/types/domain/usecases/isPullRequestDeclaredUnnecessary.d.ts.map +0 -1
  777. package/types/domain/usecases/isWaitingForOwnerApproval.d.ts +0 -2
  778. package/types/domain/usecases/isWaitingForOwnerApproval.d.ts.map +0 -1
  779. package/types/domain/usecases/returnedToAwaitingWorkspaceMessage.d.ts +0 -3
  780. package/types/domain/usecases/returnedToAwaitingWorkspaceMessage.d.ts.map +0 -1
@@ -1,1137 +0,0 @@
1
- import { IssueRejectionEvaluator } from './IssueRejectionEvaluator';
2
- import { RelatedPullRequest } from './adapter-interfaces/IssueRepository';
3
-
4
- const createReadyPr = (
5
- url = 'https://github.com/user/repo/pull/1',
6
- overrides: Partial<RelatedPullRequest> = {},
7
- ): RelatedPullRequest => ({
8
- url,
9
- branchName: 'feature-branch',
10
- createdAt: new Date('2000-01-01T00:00:00Z'),
11
- isDraft: false,
12
- isConflicted: false,
13
- mergeable: null,
14
- isPassedAllCiJob: true,
15
- isCiStateSuccess: true,
16
- isResolvedAllReviewComments: true,
17
- isBranchOutOfDate: false,
18
- missingRequiredCheckNames: [],
19
- ...overrides,
20
- });
21
-
22
- describe('IssueRejectionEvaluator', () => {
23
- let mockIssueRepository: {
24
- findRelatedOpenPRs: jest.Mock;
25
- getOpenPullRequest: jest.Mock;
26
- getPullRequestChangedFilePaths: jest.Mock;
27
- requestChangesWithInlineComment: jest.Mock;
28
- };
29
- let evaluator: IssueRejectionEvaluator;
30
-
31
- beforeEach(() => {
32
- jest.resetAllMocks();
33
-
34
- mockIssueRepository = {
35
- findRelatedOpenPRs: jest.fn(),
36
- getOpenPullRequest: jest.fn(),
37
- getPullRequestChangedFilePaths: jest.fn().mockResolvedValue([]),
38
- requestChangesWithInlineComment: jest.fn().mockResolvedValue(undefined),
39
- };
40
-
41
- evaluator = new IssueRejectionEvaluator(mockIssueRepository);
42
- });
43
-
44
- describe('evaluate', () => {
45
- it('should return no rejections when PR is ready and not draft', async () => {
46
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
47
- createReadyPr(),
48
- ]);
49
-
50
- const result = await evaluator.evaluate({
51
- url: 'https://github.com/user/repo/issues/1',
52
- labels: [],
53
- isPr: false,
54
- });
55
-
56
- expect(result.rejections).toHaveLength(0);
57
- expect(result.approvedPrUrl).toBe('https://github.com/user/repo/pull/1');
58
- });
59
-
60
- it('should reject with PULL_REQUEST_IS_DRAFT when PR is in draft state', async () => {
61
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
62
- createReadyPr('https://github.com/user/repo/pull/1', { isDraft: true }),
63
- ]);
64
-
65
- const result = await evaluator.evaluate({
66
- url: 'https://github.com/user/repo/issues/1',
67
- labels: [],
68
- isPr: false,
69
- });
70
-
71
- expect(result.rejections).toHaveLength(1);
72
- expect(result.rejections[0].type).toBe('PULL_REQUEST_IS_DRAFT');
73
- expect(result.rejections[0].detail).toContain('PULL_REQUEST_IS_DRAFT');
74
- expect(result.rejections[0].detail).toContain(
75
- 'https://github.com/user/repo/pull/1',
76
- );
77
- expect(result.approvedPrUrl).toBeNull();
78
- });
79
-
80
- it('should not approve a draft PR even when all other checks pass', async () => {
81
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
82
- createReadyPr('https://github.com/user/repo/pull/1', { isDraft: true }),
83
- ]);
84
-
85
- const result = await evaluator.evaluate({
86
- url: 'https://github.com/user/repo/issues/1',
87
- labels: [],
88
- isPr: false,
89
- });
90
-
91
- expect(result.approvedPrUrl).toBeNull();
92
- });
93
-
94
- it('should accumulate PULL_REQUEST_IS_DRAFT alongside PULL_REQUEST_CONFLICTED when draft PR is also conflicted', async () => {
95
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
96
- createReadyPr('https://github.com/user/repo/pull/1', {
97
- isDraft: true,
98
- isConflicted: true,
99
- }),
100
- ]);
101
-
102
- const result = await evaluator.evaluate({
103
- url: 'https://github.com/user/repo/issues/1',
104
- labels: [],
105
- isPr: false,
106
- });
107
-
108
- const rejectionTypes = result.rejections.map((r) => r.type);
109
- expect(rejectionTypes).toContain('PULL_REQUEST_IS_DRAFT');
110
- expect(rejectionTypes).toContain('PULL_REQUEST_CONFLICTED');
111
- expect(result.approvedPrUrl).toBeNull();
112
- });
113
-
114
- it('should reject with PULL_REQUEST_IS_DRAFT when PR item (isPr=true) is in draft state', async () => {
115
- mockIssueRepository.getOpenPullRequest.mockResolvedValue(
116
- createReadyPr('https://github.com/user/repo/pull/10', {
117
- isDraft: true,
118
- }),
119
- );
120
-
121
- const result = await evaluator.evaluate({
122
- url: 'https://github.com/user/repo/pull/10',
123
- labels: [],
124
- isPr: true,
125
- });
126
-
127
- expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledWith(
128
- 'https://github.com/user/repo/pull/10',
129
- );
130
- expect(result.rejections).toHaveLength(1);
131
- expect(result.rejections[0].type).toBe('PULL_REQUEST_IS_DRAFT');
132
- expect(result.approvedPrUrl).toBeNull();
133
- });
134
-
135
- it('should not require PR evaluation when issue has a non-developer agent field value', async () => {
136
- const result = await evaluator.evaluate({
137
- url: 'https://github.com/user/repo/issues/1',
138
- labels: [],
139
- isPr: false,
140
- agent: 'chore',
141
- });
142
-
143
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
144
- expect(result.rejections).toHaveLength(0);
145
- expect(result.approvedPrUrl).toBeNull();
146
- });
147
-
148
- it('should require PR evaluation when issue has agent field set to developer', async () => {
149
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
150
-
151
- const result = await evaluator.evaluate({
152
- url: 'https://github.com/user/repo/issues/1',
153
- labels: [],
154
- isPr: false,
155
- agent: 'developer',
156
- });
157
-
158
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
159
- expect(result.rejections).toHaveLength(1);
160
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
161
- });
162
-
163
- it('should require PR evaluation when issue has null agent field (default developer)', async () => {
164
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
165
-
166
- const result = await evaluator.evaluate({
167
- url: 'https://github.com/user/repo/issues/1',
168
- labels: [],
169
- isPr: false,
170
- agent: null,
171
- });
172
-
173
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
174
- expect(result.rejections).toHaveLength(1);
175
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
176
- });
177
-
178
- it('should require PR evaluation when issue has agent field set to developer even with llm-agent:developer label', async () => {
179
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
180
-
181
- const result = await evaluator.evaluate({
182
- url: 'https://github.com/user/repo/issues/1',
183
- labels: ['llm-agent:developer'],
184
- isPr: false,
185
- agent: 'developer',
186
- });
187
-
188
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
189
- expect(result.rejections).toHaveLength(1);
190
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
191
- });
192
-
193
- it('should not require PR evaluation when issue has accounting agent field value', async () => {
194
- const result = await evaluator.evaluate({
195
- url: 'https://github.com/user/repo/issues/1',
196
- labels: [],
197
- isPr: false,
198
- agent: 'accounting',
199
- });
200
-
201
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
202
- expect(result.rejections).toHaveLength(0);
203
- expect(result.approvedPrUrl).toBeNull();
204
- });
205
-
206
- it('should require PR evaluation for custom developer agent name when it matches issue agent', async () => {
207
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
208
-
209
- const result = await evaluator.evaluate(
210
- {
211
- url: 'https://github.com/user/repo/issues/1',
212
- labels: [],
213
- isPr: false,
214
- agent: 'my-developer',
215
- },
216
- [],
217
- { developerAgentNames: ['my-developer'] },
218
- );
219
-
220
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
221
- expect(result.rejections).toHaveLength(1);
222
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
223
- });
224
-
225
- it('should not require PR evaluation when issue agent does not match custom developer agent names', async () => {
226
- const result = await evaluator.evaluate(
227
- {
228
- url: 'https://github.com/user/repo/issues/1',
229
- labels: [],
230
- isPr: false,
231
- agent: 'other-agent',
232
- },
233
- [],
234
- { developerAgentNames: ['my-developer'] },
235
- );
236
-
237
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
238
- expect(result.rejections).toHaveLength(0);
239
- expect(result.approvedPrUrl).toBeNull();
240
- });
241
-
242
- it('should default to developer when developerAgentNames is null', async () => {
243
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
244
-
245
- const result = await evaluator.evaluate(
246
- {
247
- url: 'https://github.com/user/repo/issues/1',
248
- labels: [],
249
- isPr: false,
250
- agent: 'developer',
251
- },
252
- [],
253
- { developerAgentNames: null },
254
- );
255
-
256
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
257
- expect(result.rejections).toHaveLength(1);
258
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
259
- });
260
-
261
- it('should require PR evaluation when issue agent matches any of multiple developer agent names', async () => {
262
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
263
-
264
- const result = await evaluator.evaluate(
265
- {
266
- url: 'https://github.com/user/repo/issues/1',
267
- labels: [],
268
- isPr: false,
269
- agent: 'second-developer',
270
- },
271
- [],
272
- { developerAgentNames: ['first-developer', 'second-developer'] },
273
- );
274
-
275
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
276
- expect(result.rejections).toHaveLength(1);
277
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
278
- });
279
-
280
- it('should not require PR evaluation when issue agent does not match any of multiple developer agent names', async () => {
281
- const result = await evaluator.evaluate(
282
- {
283
- url: 'https://github.com/user/repo/issues/1',
284
- labels: [],
285
- isPr: false,
286
- agent: 'chore',
287
- },
288
- [],
289
- { developerAgentNames: ['first-developer', 'second-developer'] },
290
- );
291
-
292
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
293
- expect(result.rejections).toHaveLength(0);
294
- expect(result.approvedPrUrl).toBeNull();
295
- });
296
-
297
- it('should require PR evaluation and reject CI failure when issue agent is pr-reviewer', async () => {
298
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
299
- createReadyPr('https://github.com/user/repo/pull/10', {
300
- isPassedAllCiJob: false,
301
- isCiStateSuccess: false,
302
- }),
303
- ]);
304
-
305
- const result = await evaluator.evaluate({
306
- url: 'https://github.com/user/repo/issues/1',
307
- labels: [],
308
- isPr: false,
309
- agent: 'pr-reviewer',
310
- });
311
-
312
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
313
- expect(result.rejections.map((r) => r.type)).toContain(
314
- 'ANY_CI_JOB_FAILED_OR_IN_PROGRESS',
315
- );
316
- });
317
-
318
- it('should require PR evaluation and reject conflict when issue agent is pr-reviewer', async () => {
319
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
320
- createReadyPr('https://github.com/user/repo/pull/10', {
321
- isConflicted: true,
322
- }),
323
- ]);
324
-
325
- const result = await evaluator.evaluate({
326
- url: 'https://github.com/user/repo/issues/1',
327
- labels: [],
328
- isPr: false,
329
- agent: 'pr-reviewer',
330
- });
331
-
332
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
333
- expect(result.rejections.map((r) => r.type)).toContain(
334
- 'PULL_REQUEST_CONFLICTED',
335
- );
336
- });
337
-
338
- it('should require PR evaluation and approve when issue agent is pr-reviewer with passing CI and no conflict', async () => {
339
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
340
- createReadyPr('https://github.com/user/repo/pull/10'),
341
- ]);
342
-
343
- const result = await evaluator.evaluate({
344
- url: 'https://github.com/user/repo/issues/1',
345
- labels: [],
346
- isPr: false,
347
- agent: 'pr-reviewer',
348
- });
349
-
350
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
351
- expect(result.rejections).toHaveLength(0);
352
- expect(result.approvedPrUrl).toBe('https://github.com/user/repo/pull/10');
353
- });
354
-
355
- it('should still require PR evaluation for pr-reviewer when custom developerAgentNames is set', async () => {
356
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
357
- createReadyPr('https://github.com/user/repo/pull/10', {
358
- isPassedAllCiJob: false,
359
- isCiStateSuccess: false,
360
- }),
361
- ]);
362
-
363
- const result = await evaluator.evaluate(
364
- {
365
- url: 'https://github.com/user/repo/issues/1',
366
- labels: [],
367
- isPr: false,
368
- agent: 'pr-reviewer',
369
- },
370
- [],
371
- { developerAgentNames: ['my-developer'] },
372
- );
373
-
374
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalled();
375
- expect(result.rejections.map((r) => r.type)).toContain(
376
- 'ANY_CI_JOB_FAILED_OR_IN_PROGRESS',
377
- );
378
- });
379
-
380
- it('should not reject for draft state when issue has non-e2e category label', async () => {
381
- const result = await evaluator.evaluate({
382
- url: 'https://github.com/user/repo/issues/1',
383
- labels: ['category:frontend'],
384
- isPr: false,
385
- });
386
-
387
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
388
- expect(result.rejections).toHaveLength(0);
389
- });
390
-
391
- it('should reject with PULL_REQUEST_NOT_FOUND when a normal issue has no related PR', async () => {
392
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
393
-
394
- const result = await evaluator.evaluate({
395
- url: 'https://github.com/user/repo/issues/1',
396
- labels: [],
397
- isPr: false,
398
- });
399
-
400
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalledWith(
401
- 'https://github.com/user/repo/issues/1',
402
- );
403
- expect(result.rejections).toHaveLength(1);
404
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
405
- expect(result.approvedPrUrl).toBeNull();
406
- });
407
-
408
- it('should not reject with PULL_REQUEST_NOT_FOUND when issue has a label listed in labelsAsLlmAgentName', async () => {
409
- const result = await evaluator.evaluate(
410
- {
411
- url: 'https://github.com/user/repo/issues/1',
412
- labels: ['story'],
413
- isPr: false,
414
- },
415
- ['story'],
416
- );
417
-
418
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
419
- expect(result.rejections).toHaveLength(0);
420
- expect(result.approvedPrUrl).toBeNull();
421
- });
422
-
423
- it('should still reject with PULL_REQUEST_NOT_FOUND when issue label is not in labelsAsLlmAgentName', async () => {
424
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
425
-
426
- const result = await evaluator.evaluate(
427
- {
428
- url: 'https://github.com/user/repo/issues/1',
429
- labels: ['story'],
430
- isPr: false,
431
- },
432
- ['bug'],
433
- );
434
-
435
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalledWith(
436
- 'https://github.com/user/repo/issues/1',
437
- );
438
- expect(result.rejections).toHaveLength(1);
439
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
440
- });
441
-
442
- describe('prebuilt relatedOpenPrUrls (in-memory derivation path)', () => {
443
- it('should resolve PR status via getOpenPullRequest and not call findRelatedOpenPRs when relatedOpenPrUrls is provided', async () => {
444
- mockIssueRepository.getOpenPullRequest.mockResolvedValue(
445
- createReadyPr('https://github.com/user/repo/pull/7'),
446
- );
447
-
448
- const result = await evaluator.evaluate(
449
- {
450
- url: 'https://github.com/user/repo/issues/1',
451
- labels: [],
452
- isPr: false,
453
- },
454
- [],
455
- { relatedOpenPrUrls: ['https://github.com/user/repo/pull/7'] },
456
- );
457
-
458
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
459
- expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledWith(
460
- 'https://github.com/user/repo/pull/7',
461
- );
462
- expect(result.rejections).toHaveLength(0);
463
- expect(result.approvedPrUrl).toBe(
464
- 'https://github.com/user/repo/pull/7',
465
- );
466
- });
467
-
468
- it('should reject with PULL_REQUEST_NOT_FOUND when relatedOpenPrUrls is empty', async () => {
469
- const result = await evaluator.evaluate(
470
- {
471
- url: 'https://github.com/user/repo/issues/1',
472
- labels: [],
473
- isPr: false,
474
- },
475
- [],
476
- { relatedOpenPrUrls: [] },
477
- );
478
-
479
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
480
- expect(mockIssueRepository.getOpenPullRequest).not.toHaveBeenCalled();
481
- expect(result.rejections).toHaveLength(1);
482
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
483
- expect(result.approvedPrUrl).toBeNull();
484
- });
485
-
486
- it('should drop a related URL whose PR is no longer open (getOpenPullRequest returns null), yielding PULL_REQUEST_NOT_FOUND', async () => {
487
- mockIssueRepository.getOpenPullRequest.mockResolvedValue(null);
488
-
489
- const result = await evaluator.evaluate(
490
- {
491
- url: 'https://github.com/user/repo/issues/1',
492
- labels: [],
493
- isPr: false,
494
- },
495
- [],
496
- { relatedOpenPrUrls: ['https://github.com/user/repo/pull/9'] },
497
- );
498
-
499
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
500
- expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledWith(
501
- 'https://github.com/user/repo/pull/9',
502
- );
503
- expect(result.rejections).toHaveLength(1);
504
- expect(result.rejections[0].type).toBe('PULL_REQUEST_NOT_FOUND');
505
- });
506
-
507
- it('should reject with MULTIPLE_PULL_REQUESTS_FOUND when more than one related open PR resolves', async () => {
508
- mockIssueRepository.getOpenPullRequest.mockImplementation(
509
- (prUrl: string) => Promise.resolve(createReadyPr(prUrl)),
510
- );
511
-
512
- const result = await evaluator.evaluate(
513
- {
514
- url: 'https://github.com/user/repo/issues/1',
515
- labels: [],
516
- isPr: false,
517
- },
518
- [],
519
- {
520
- relatedOpenPrUrls: [
521
- 'https://github.com/user/repo/pull/1',
522
- 'https://github.com/user/repo/pull/2',
523
- ],
524
- },
525
- );
526
-
527
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
528
- expect(result.rejections).toHaveLength(1);
529
- expect(result.rejections[0].type).toBe('MULTIPLE_PULL_REQUESTS_FOUND');
530
- });
531
-
532
- it('should de-duplicate repeated related URLs before resolving, mirroring findRelatedOpenPRs', async () => {
533
- mockIssueRepository.getOpenPullRequest.mockResolvedValue(
534
- createReadyPr('https://github.com/user/repo/pull/5'),
535
- );
536
-
537
- const result = await evaluator.evaluate(
538
- {
539
- url: 'https://github.com/user/repo/issues/1',
540
- labels: [],
541
- isPr: false,
542
- },
543
- [],
544
- {
545
- relatedOpenPrUrls: [
546
- 'https://github.com/user/repo/pull/5',
547
- 'https://github.com/user/repo/pull/5',
548
- ],
549
- },
550
- );
551
-
552
- expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledTimes(1);
553
- expect(result.rejections).toHaveLength(0);
554
- expect(result.approvedPrUrl).toBe(
555
- 'https://github.com/user/repo/pull/5',
556
- );
557
- });
558
-
559
- it('should produce the same draft rejection through the prebuilt path as through findRelatedOpenPRs', async () => {
560
- mockIssueRepository.getOpenPullRequest.mockResolvedValue(
561
- createReadyPr('https://github.com/user/repo/pull/3', {
562
- isDraft: true,
563
- }),
564
- );
565
-
566
- const result = await evaluator.evaluate(
567
- {
568
- url: 'https://github.com/user/repo/issues/1',
569
- labels: [],
570
- isPr: false,
571
- },
572
- [],
573
- { relatedOpenPrUrls: ['https://github.com/user/repo/pull/3'] },
574
- );
575
-
576
- expect(result.rejections).toHaveLength(1);
577
- expect(result.rejections[0].type).toBe('PULL_REQUEST_IS_DRAFT');
578
- expect(result.approvedPrUrl).toBeNull();
579
- });
580
-
581
- it('should still use findRelatedOpenPRs when relatedOpenPrUrls is undefined (single-issue path unchanged)', async () => {
582
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
583
- createReadyPr(),
584
- ]);
585
-
586
- const result = await evaluator.evaluate({
587
- url: 'https://github.com/user/repo/issues/1',
588
- labels: [],
589
- isPr: false,
590
- });
591
-
592
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalledWith(
593
- 'https://github.com/user/repo/issues/1',
594
- );
595
- expect(result.rejections).toHaveLength(0);
596
- });
597
-
598
- it('should ignore relatedOpenPrUrls for a PR item (isPr=true) and use getOpenPullRequest on the PR URL itself', async () => {
599
- mockIssueRepository.getOpenPullRequest.mockResolvedValue(
600
- createReadyPr('https://github.com/user/repo/pull/10'),
601
- );
602
-
603
- const result = await evaluator.evaluate(
604
- {
605
- url: 'https://github.com/user/repo/pull/10',
606
- labels: [],
607
- isPr: true,
608
- },
609
- [],
610
- { relatedOpenPrUrls: ['https://github.com/user/repo/pull/999'] },
611
- );
612
-
613
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
614
- expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledWith(
615
- 'https://github.com/user/repo/pull/10',
616
- );
617
- expect(mockIssueRepository.getOpenPullRequest).not.toHaveBeenCalledWith(
618
- 'https://github.com/user/repo/pull/999',
619
- );
620
- expect(result.rejections).toHaveLength(0);
621
- });
622
- });
623
-
624
- describe('transient getOpenPullRequest failure containment', () => {
625
- let warnSpy: jest.SpyInstance;
626
-
627
- beforeEach(() => {
628
- warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {});
629
- });
630
-
631
- afterEach(() => {
632
- warnSpy.mockRestore();
633
- });
634
-
635
- it('should not throw and should return no rejections when getOpenPullRequest rejects for a PR item (isPr=true)', async () => {
636
- mockIssueRepository.getOpenPullRequest.mockRejectedValue(
637
- new Error(
638
- 'GraphQL errors: [{"message":"Something went wrong while executing your query"}]',
639
- ),
640
- );
641
-
642
- const result = await evaluator.evaluate({
643
- url: 'https://github.com/user/repo/pull/10',
644
- labels: [],
645
- isPr: true,
646
- });
647
-
648
- expect(result.rejections).toHaveLength(0);
649
- expect(result.approvedPrUrl).toBeNull();
650
- });
651
-
652
- it('should log one warning line containing the PR URL and error message when getOpenPullRequest rejects for a PR item', async () => {
653
- mockIssueRepository.getOpenPullRequest.mockRejectedValue(
654
- new Error('Something went wrong while executing your query'),
655
- );
656
-
657
- await evaluator.evaluate({
658
- url: 'https://github.com/user/repo/pull/10',
659
- labels: [],
660
- isPr: true,
661
- });
662
-
663
- expect(warnSpy).toHaveBeenCalledTimes(1);
664
- expect(warnSpy).toHaveBeenCalledWith(
665
- expect.stringContaining('https://github.com/user/repo/pull/10'),
666
- );
667
- expect(warnSpy).toHaveBeenCalledWith(
668
- expect.stringContaining(
669
- 'Something went wrong while executing your query',
670
- ),
671
- );
672
- });
673
-
674
- it('should skip the failing URL, log a warning, and still evaluate the healthy PR in the same batch (prebuilt path)', async () => {
675
- mockIssueRepository.getOpenPullRequest.mockImplementation(
676
- (prUrl: string) =>
677
- prUrl === 'https://github.com/user/repo/pull/8'
678
- ? Promise.reject(
679
- new Error('Something went wrong while executing your query'),
680
- )
681
- : Promise.resolve(createReadyPr(prUrl)),
682
- );
683
-
684
- const result = await evaluator.evaluate(
685
- {
686
- url: 'https://github.com/user/repo/issues/1',
687
- labels: [],
688
- isPr: false,
689
- },
690
- [],
691
- {
692
- relatedOpenPrUrls: [
693
- 'https://github.com/user/repo/pull/8',
694
- 'https://github.com/user/repo/pull/9',
695
- ],
696
- },
697
- );
698
-
699
- expect(warnSpy).toHaveBeenCalledTimes(1);
700
- expect(warnSpy).toHaveBeenCalledWith(
701
- expect.stringContaining('https://github.com/user/repo/pull/8'),
702
- );
703
- expect(result.rejections).toHaveLength(0);
704
- expect(result.approvedPrUrl).toBe(
705
- 'https://github.com/user/repo/pull/9',
706
- );
707
- });
708
-
709
- it('should not reject with PULL_REQUEST_NOT_FOUND when the only related URL fails transiently (state unknown, skipped)', async () => {
710
- mockIssueRepository.getOpenPullRequest.mockRejectedValue(
711
- new Error('Something went wrong while executing your query'),
712
- );
713
-
714
- const result = await evaluator.evaluate(
715
- {
716
- url: 'https://github.com/user/repo/issues/1',
717
- labels: [],
718
- isPr: false,
719
- },
720
- [],
721
- { relatedOpenPrUrls: ['https://github.com/user/repo/pull/8'] },
722
- );
723
-
724
- expect(warnSpy).toHaveBeenCalledTimes(1);
725
- expect(result.rejections).toHaveLength(0);
726
- expect(result.approvedPrUrl).toBeNull();
727
- });
728
-
729
- it('should still evaluate the healthy remaining PR normally when it has a rejection reason (draft) after another URL fails', async () => {
730
- mockIssueRepository.getOpenPullRequest.mockImplementation(
731
- (prUrl: string) =>
732
- prUrl === 'https://github.com/user/repo/pull/8'
733
- ? Promise.reject(
734
- new Error('Something went wrong while executing your query'),
735
- )
736
- : Promise.resolve(createReadyPr(prUrl, { isDraft: true })),
737
- );
738
-
739
- const result = await evaluator.evaluate(
740
- {
741
- url: 'https://github.com/user/repo/issues/1',
742
- labels: [],
743
- isPr: false,
744
- },
745
- [],
746
- {
747
- relatedOpenPrUrls: [
748
- 'https://github.com/user/repo/pull/8',
749
- 'https://github.com/user/repo/pull/9',
750
- ],
751
- },
752
- );
753
-
754
- expect(result.rejections).toHaveLength(1);
755
- expect(result.rejections[0].type).toBe('PULL_REQUEST_IS_DRAFT');
756
- expect(result.approvedPrUrl).toBeNull();
757
- });
758
-
759
- it('should handle a non-Error rejection value without throwing', async () => {
760
- mockIssueRepository.getOpenPullRequest.mockRejectedValue(
761
- 'string failure',
762
- );
763
-
764
- const result = await evaluator.evaluate({
765
- url: 'https://github.com/user/repo/pull/10',
766
- labels: [],
767
- isPr: true,
768
- });
769
-
770
- expect(warnSpy).toHaveBeenCalledTimes(1);
771
- expect(warnSpy).toHaveBeenCalledWith(
772
- expect.stringContaining('string failure'),
773
- );
774
- expect(result.rejections).toHaveLength(0);
775
- });
776
- });
777
-
778
- describe('detectConflictEvenIfEvaluationSkipped option', () => {
779
- it('should call findRelatedOpenPRs and return PULL_REQUEST_CONFLICTED when relatedOpenPrUrls is null and PR is conflicted', async () => {
780
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
781
- createReadyPr('https://github.com/user/repo/pull/1', {
782
- isConflicted: true,
783
- }),
784
- ]);
785
-
786
- const result = await evaluator.evaluate(
787
- {
788
- url: 'https://github.com/user/repo/issues/1',
789
- labels: [],
790
- isPr: false,
791
- agent: 'chore',
792
- },
793
- [],
794
- {
795
- detectConflictEvenIfEvaluationSkipped: true,
796
- relatedOpenPrUrls: null,
797
- },
798
- );
799
-
800
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalledWith(
801
- 'https://github.com/user/repo/issues/1',
802
- );
803
- expect(result.rejections).toHaveLength(1);
804
- expect(result.rejections[0].type).toBe('PULL_REQUEST_CONFLICTED');
805
- expect(result.approvedPrUrl).toBeNull();
806
- });
807
-
808
- it('should call findRelatedOpenPRs and return no rejections when relatedOpenPrUrls is null and no PR is conflicted', async () => {
809
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
810
- createReadyPr('https://github.com/user/repo/pull/1'),
811
- ]);
812
-
813
- const result = await evaluator.evaluate(
814
- {
815
- url: 'https://github.com/user/repo/issues/1',
816
- labels: [],
817
- isPr: false,
818
- agent: 'chore',
819
- },
820
- [],
821
- {
822
- detectConflictEvenIfEvaluationSkipped: true,
823
- relatedOpenPrUrls: null,
824
- },
825
- );
826
-
827
- expect(mockIssueRepository.findRelatedOpenPRs).toHaveBeenCalledWith(
828
- 'https://github.com/user/repo/issues/1',
829
- );
830
- expect(result.rejections).toHaveLength(0);
831
- expect(result.approvedPrUrl).toBeNull();
832
- });
833
-
834
- it('should use resolveOpenPrsFromUrls path and not call findRelatedOpenPRs when relatedOpenPrUrls is provided', async () => {
835
- mockIssueRepository.getOpenPullRequest.mockResolvedValue(
836
- createReadyPr('https://github.com/user/repo/pull/5', {
837
- isConflicted: true,
838
- }),
839
- );
840
-
841
- const result = await evaluator.evaluate(
842
- {
843
- url: 'https://github.com/user/repo/issues/1',
844
- labels: [],
845
- isPr: false,
846
- agent: 'chore',
847
- },
848
- [],
849
- {
850
- detectConflictEvenIfEvaluationSkipped: true,
851
- relatedOpenPrUrls: ['https://github.com/user/repo/pull/5'],
852
- },
853
- );
854
-
855
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
856
- expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledWith(
857
- 'https://github.com/user/repo/pull/5',
858
- );
859
- expect(result.rejections).toHaveLength(1);
860
- expect(result.rejections[0].type).toBe('PULL_REQUEST_CONFLICTED');
861
- });
862
-
863
- it('should emit only PULL_REQUEST_CONFLICTED and not PULL_REQUEST_IS_DRAFT or other types when evaluation is skipped', async () => {
864
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
865
- createReadyPr('https://github.com/user/repo/pull/1', {
866
- isConflicted: true,
867
- isDraft: true,
868
- isPassedAllCiJob: false,
869
- isCiStateSuccess: false,
870
- }),
871
- ]);
872
-
873
- const result = await evaluator.evaluate(
874
- {
875
- url: 'https://github.com/user/repo/issues/1',
876
- labels: [],
877
- isPr: false,
878
- agent: 'chore',
879
- },
880
- [],
881
- {
882
- detectConflictEvenIfEvaluationSkipped: true,
883
- relatedOpenPrUrls: null,
884
- },
885
- );
886
-
887
- expect(result.rejections).toHaveLength(1);
888
- expect(result.rejections[0].type).toBe('PULL_REQUEST_CONFLICTED');
889
- expect(result.rejections.map((r) => r.type)).not.toContain(
890
- 'PULL_REQUEST_IS_DRAFT',
891
- );
892
- expect(result.rejections.map((r) => r.type)).not.toContain(
893
- 'ANY_CI_JOB_FAILED_OR_IN_PROGRESS',
894
- );
895
- });
896
-
897
- it('should resolve the pull request item itself and not call findRelatedOpenPRs when the item is a pull request', async () => {
898
- mockIssueRepository.findRelatedOpenPRs.mockRejectedValue(
899
- new Error(
900
- 'findRelatedOpenPRs only supports issue URLs, not pull request URLs',
901
- ),
902
- );
903
- mockIssueRepository.getOpenPullRequest.mockResolvedValue(
904
- createReadyPr('https://github.com/user/repo/pull/7', {
905
- isConflicted: true,
906
- }),
907
- );
908
-
909
- const result = await evaluator.evaluate(
910
- {
911
- url: 'https://github.com/user/repo/pull/7',
912
- labels: [],
913
- isPr: true,
914
- agent: 'chore',
915
- },
916
- [],
917
- {
918
- detectConflictEvenIfEvaluationSkipped: true,
919
- relatedOpenPrUrls: null,
920
- },
921
- );
922
-
923
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
924
- expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledWith(
925
- 'https://github.com/user/repo/pull/7',
926
- );
927
- expect(result.rejections).toHaveLength(1);
928
- expect(result.rejections[0].type).toBe('PULL_REQUEST_CONFLICTED');
929
- });
930
-
931
- it('should return no rejections when the pull request item itself is not conflicted', async () => {
932
- mockIssueRepository.findRelatedOpenPRs.mockRejectedValue(
933
- new Error(
934
- 'findRelatedOpenPRs only supports issue URLs, not pull request URLs',
935
- ),
936
- );
937
- mockIssueRepository.getOpenPullRequest.mockResolvedValue(
938
- createReadyPr('https://github.com/user/repo/pull/7'),
939
- );
940
-
941
- const result = await evaluator.evaluate(
942
- {
943
- url: 'https://github.com/user/repo/pull/7',
944
- labels: [],
945
- isPr: true,
946
- agent: 'chore',
947
- },
948
- [],
949
- {
950
- detectConflictEvenIfEvaluationSkipped: true,
951
- relatedOpenPrUrls: null,
952
- },
953
- );
954
-
955
- expect(mockIssueRepository.findRelatedOpenPRs).not.toHaveBeenCalled();
956
- expect(result.rejections).toHaveLength(0);
957
- });
958
-
959
- it('should return no rejections when resolving the pull request item fails transiently', async () => {
960
- mockIssueRepository.getOpenPullRequest.mockRejectedValue(
961
- new Error('Something went wrong while executing your query.'),
962
- );
963
-
964
- const result = await evaluator.evaluate(
965
- {
966
- url: 'https://github.com/user/repo/pull/7',
967
- labels: [],
968
- isPr: true,
969
- agent: 'chore',
970
- },
971
- [],
972
- {
973
- detectConflictEvenIfEvaluationSkipped: true,
974
- relatedOpenPrUrls: null,
975
- },
976
- );
977
-
978
- expect(result.rejections).toHaveLength(0);
979
- });
980
- });
981
-
982
- describe('change-target-must: label behavior', () => {
983
- const prUrl = 'https://github.com/user/repo/pull/1';
984
-
985
- it('should not reject when required path contains at least one changed file', async () => {
986
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
987
- createReadyPr(prUrl),
988
- ]);
989
- mockIssueRepository.getPullRequestChangedFilePaths.mockResolvedValue([
990
- 'src/domain/entities/Foo.ts',
991
- 'src/adapter/Bar.ts',
992
- ]);
993
-
994
- const result = await evaluator.evaluate({
995
- url: 'https://github.com/user/repo/issues/1',
996
- labels: ['change-target-must:src/domain'],
997
- isPr: false,
998
- });
999
-
1000
- expect(result.rejections).toHaveLength(0);
1001
- expect(result.approvedPrUrl).toBe(prUrl);
1002
- expect(
1003
- mockIssueRepository.requestChangesWithInlineComment,
1004
- ).not.toHaveBeenCalled();
1005
- });
1006
-
1007
- it('should reject with CHANGE_TARGET_MUST_PATH_NOT_CHANGED and post inline comment when required path has no changed file', async () => {
1008
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
1009
- createReadyPr(prUrl),
1010
- ]);
1011
- mockIssueRepository.getPullRequestChangedFilePaths.mockResolvedValue([
1012
- 'src/adapter/Bar.ts',
1013
- ]);
1014
-
1015
- const result = await evaluator.evaluate({
1016
- url: 'https://github.com/user/repo/issues/1',
1017
- labels: ['change-target-must:src/domain'],
1018
- isPr: false,
1019
- });
1020
-
1021
- expect(result.rejections).toHaveLength(1);
1022
- expect(result.rejections[0].type).toBe(
1023
- 'CHANGE_TARGET_MUST_PATH_NOT_CHANGED',
1024
- );
1025
- expect(result.rejections[0].detail).toContain('src/domain');
1026
- expect(result.approvedPrUrl).toBeNull();
1027
- expect(
1028
- mockIssueRepository.requestChangesWithInlineComment,
1029
- ).toHaveBeenCalledWith(
1030
- prUrl,
1031
- 'src/adapter/Bar.ts',
1032
- expect.stringContaining('src/domain'),
1033
- );
1034
- });
1035
-
1036
- it('should post PR-level comment as fallback when PR has no changed files', async () => {
1037
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
1038
- createReadyPr(prUrl),
1039
- ]);
1040
- mockIssueRepository.getPullRequestChangedFilePaths.mockResolvedValue(
1041
- [],
1042
- );
1043
-
1044
- const result = await evaluator.evaluate({
1045
- url: 'https://github.com/user/repo/issues/1',
1046
- labels: ['change-target-must:src/domain'],
1047
- isPr: false,
1048
- });
1049
-
1050
- expect(result.rejections).toHaveLength(1);
1051
- expect(result.rejections[0].type).toBe(
1052
- 'CHANGE_TARGET_MUST_PATH_NOT_CHANGED',
1053
- );
1054
- expect(
1055
- mockIssueRepository.requestChangesWithInlineComment,
1056
- ).toHaveBeenCalledWith(prUrl, null, expect.any(String));
1057
- });
1058
-
1059
- it('should match boundary-safely so that change-target-must:foo matches foo/bar.ts but not foobar/baz.ts', async () => {
1060
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
1061
- createReadyPr(prUrl),
1062
- ]);
1063
- mockIssueRepository.getPullRequestChangedFilePaths.mockResolvedValue([
1064
- 'foobar/baz.ts',
1065
- ]);
1066
-
1067
- const result = await evaluator.evaluate({
1068
- url: 'https://github.com/user/repo/issues/1',
1069
- labels: ['change-target-must:foo'],
1070
- isPr: false,
1071
- });
1072
-
1073
- expect(result.rejections).toHaveLength(1);
1074
- expect(result.rejections[0].type).toBe(
1075
- 'CHANGE_TARGET_MUST_PATH_NOT_CHANGED',
1076
- );
1077
- expect(
1078
- mockIssueRepository.requestChangesWithInlineComment,
1079
- ).toHaveBeenCalledWith(prUrl, 'foobar/baz.ts', expect.any(String));
1080
- });
1081
-
1082
- it('should not reject when changed file is exactly the required path (boundary-safe exact match)', async () => {
1083
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
1084
- createReadyPr(prUrl),
1085
- ]);
1086
- mockIssueRepository.getPullRequestChangedFilePaths.mockResolvedValue([
1087
- 'foo',
1088
- ]);
1089
-
1090
- const result = await evaluator.evaluate({
1091
- url: 'https://github.com/user/repo/issues/1',
1092
- labels: ['change-target-must:foo'],
1093
- isPr: false,
1094
- });
1095
-
1096
- expect(result.rejections).toHaveLength(0);
1097
- expect(result.approvedPrUrl).toBe(prUrl);
1098
- });
1099
-
1100
- it('should not reject when changed file is under the change-target-must path', async () => {
1101
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
1102
- createReadyPr(prUrl),
1103
- ]);
1104
- mockIssueRepository.getPullRequestChangedFilePaths.mockResolvedValue([
1105
- 'src/domain/entities/Foo.ts',
1106
- ]);
1107
-
1108
- const result = await evaluator.evaluate({
1109
- url: 'https://github.com/user/repo/issues/1',
1110
- labels: ['change-target-must:src/domain'],
1111
- isPr: false,
1112
- });
1113
-
1114
- expect(result.rejections).toHaveLength(0);
1115
- expect(result.approvedPrUrl).toBe(prUrl);
1116
- });
1117
-
1118
- it('should normalize leading slash in change-target-must label path', async () => {
1119
- mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
1120
- createReadyPr(prUrl),
1121
- ]);
1122
- mockIssueRepository.getPullRequestChangedFilePaths.mockResolvedValue([
1123
- 'src/domain/entities/Foo.ts',
1124
- ]);
1125
-
1126
- const result = await evaluator.evaluate({
1127
- url: 'https://github.com/user/repo/issues/1',
1128
- labels: ['change-target-must:/src/domain'],
1129
- isPr: false,
1130
- });
1131
-
1132
- expect(result.rejections).toHaveLength(0);
1133
- expect(result.approvedPrUrl).toBe(prUrl);
1134
- });
1135
- });
1136
- });
1137
- });