github-issue-tower-defence-management 1.148.20 → 1.148.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/bin/domain/usecases/RevertOrphanedPreparationUseCase.js +13 -8
- package/bin/domain/usecases/RevertOrphanedPreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/autoStatusCheckComments.js +15 -0
- package/bin/domain/usecases/autoStatusCheckComments.js.map +1 -0
- package/package.json +1 -1
- package/src/domain/usecases/RevertOrphanedPreparationUseCase.test.ts +93 -0
- package/src/domain/usecases/RevertOrphanedPreparationUseCase.ts +25 -8
- package/src/domain/usecases/autoStatusCheckComments.ts +18 -0
- package/types/domain/usecases/RevertOrphanedPreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/autoStatusCheckComments.d.ts +6 -0
- package/types/domain/usecases/autoStatusCheckComments.d.ts.map +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [1.148.21](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.148.20...v1.148.21) (2026-08-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **preparation:** read the agent report beneath the tool's own status comments ([#1508](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1508)) ([d2308af](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/d2308afca1dc6cc496bc930e81934d88c8dbbf47))
|
|
7
|
+
|
|
1
8
|
## [1.148.20](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.148.19...v1.148.20) (2026-08-13)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -4,6 +4,7 @@ exports.RevertOrphanedPreparationUseCase = void 0;
|
|
|
4
4
|
const WorkflowStatus_1 = require("../entities/WorkflowStatus");
|
|
5
5
|
const resolveLabelsNotRequiringPullRequest_1 = require("./resolveLabelsNotRequiringPullRequest");
|
|
6
6
|
const isPullRequestDeclaredUnnecessary_1 = require("./isPullRequestDeclaredUnnecessary");
|
|
7
|
+
const autoStatusCheckComments_1 = require("./autoStatusCheckComments");
|
|
7
8
|
const isAuthorAuthorizedForAutoStatusCheck_1 = require("./isAuthorAuthorizedForAutoStatusCheck");
|
|
8
9
|
const returnedToAwaitingWorkspaceMessage_1 = require("./returnedToAwaitingWorkspaceMessage");
|
|
9
10
|
const ORPHANED_PREPARATION_REJECTION_DETAIL = 'ORPHANED_PREPARATION';
|
|
@@ -73,15 +74,12 @@ class RevertOrphanedPreparationUseCase {
|
|
|
73
74
|
return { outcome: 'advanceToQualityCheck', comments: [] };
|
|
74
75
|
}
|
|
75
76
|
const comments = await this.issueCommentRepository.getCommentsFromIssue(issue);
|
|
76
|
-
const lastComment = comments[comments.length - 1];
|
|
77
|
-
if (!lastComment || !lastComment.content.startsWith('From: :robot:')) {
|
|
78
|
-
return { outcome: 'reject', comments };
|
|
79
|
-
}
|
|
80
|
-
if (this.reportBodyHasNextStep(lastComment.content)) {
|
|
81
|
-
return { outcome: 'reject', comments };
|
|
82
|
-
}
|
|
83
77
|
const isTrustedAuthor = (author) => (0, isAuthorAuthorizedForAutoStatusCheck_1.isAuthorAuthorizedForAutoStatusCheck)(author, allowedIssueAuthors);
|
|
84
|
-
|
|
78
|
+
const commentsBeforeOwnStatusComments = (0, autoStatusCheckComments_1.dropTrailingAutoStatusCheckComments)(comments, isTrustedAuthor);
|
|
79
|
+
const lastReport = commentsBeforeOwnStatusComments[commentsBeforeOwnStatusComments.length - 1] ?? null;
|
|
80
|
+
if (lastReport !== null &&
|
|
81
|
+
(0, isPullRequestDeclaredUnnecessary_1.isPullRequestDeclaredUnnecessary)(commentsBeforeOwnStatusComments, isTrustedAuthor) &&
|
|
82
|
+
!this.reportBodyHasNextStep(lastReport.content)) {
|
|
85
83
|
const alreadyReturnedToWorkspace = comments.some((comment) => isTrustedAuthor(comment.author) &&
|
|
86
84
|
comment.content.startsWith(returnedToAwaitingWorkspaceMessage_1.RETURNED_TO_AWAITING_WORKSPACE_MESSAGE_HEAD));
|
|
87
85
|
return {
|
|
@@ -91,6 +89,13 @@ class RevertOrphanedPreparationUseCase {
|
|
|
91
89
|
comments,
|
|
92
90
|
};
|
|
93
91
|
}
|
|
92
|
+
const lastComment = comments[comments.length - 1];
|
|
93
|
+
if (!lastComment || !lastComment.content.startsWith('From: :robot:')) {
|
|
94
|
+
return { outcome: 'reject', comments };
|
|
95
|
+
}
|
|
96
|
+
if (this.reportBodyHasNextStep(lastComment.content)) {
|
|
97
|
+
return { outcome: 'reject', comments };
|
|
98
|
+
}
|
|
94
99
|
const categoryLabels = issue.labels.filter((label) => label.startsWith('category:'));
|
|
95
100
|
const hasLlmAgentLabel = issue.labels.some((l) => l === 'llm-agent' || l.startsWith('llm-agent:'));
|
|
96
101
|
const hasLabelNotRequiringPullRequest = issue.labels.some((label) => labelsNotRequiringPullRequest.includes(label));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RevertOrphanedPreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/RevertOrphanedPreparationUseCase.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RevertOrphanedPreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/RevertOrphanedPreparationUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dropTrailingAutoStatusCheckComments = exports.AUTO_STATUS_CHECK_MESSAGE_HEAD = void 0;
|
|
4
|
+
exports.AUTO_STATUS_CHECK_MESSAGE_HEAD = 'Auto Status Check:';
|
|
5
|
+
const dropTrailingAutoStatusCheckComments = (comments, isTrustedAuthor) => {
|
|
6
|
+
let endIndex = comments.length;
|
|
7
|
+
while (endIndex > 0 &&
|
|
8
|
+
isTrustedAuthor(comments[endIndex - 1].author) &&
|
|
9
|
+
comments[endIndex - 1].content.startsWith(exports.AUTO_STATUS_CHECK_MESSAGE_HEAD)) {
|
|
10
|
+
endIndex -= 1;
|
|
11
|
+
}
|
|
12
|
+
return comments.slice(0, endIndex);
|
|
13
|
+
};
|
|
14
|
+
exports.dropTrailingAutoStatusCheckComments = dropTrailingAutoStatusCheckComments;
|
|
15
|
+
//# sourceMappingURL=autoStatusCheckComments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoStatusCheckComments.js","sourceRoot":"","sources":["../../../src/domain/usecases/autoStatusCheckComments.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,oBAAoB,CAAC;AAE5D,MAAM,mCAAmC,GAAG,CAGjD,QAAa,EACb,eAA4C,EACvC,EAAE;IACP,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,OACE,QAAQ,GAAG,CAAC;QACZ,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,sCAA8B,CAAC,EACzE,CAAC;QACD,QAAQ,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AAfW,QAAA,mCAAmC,uCAe9C"}
|
package/package.json
CHANGED
|
@@ -420,6 +420,99 @@ describe('RevertOrphanedPreparationUseCase', () => {
|
|
|
420
420
|
expect(mockIssueCommentRepository.createComment.mock.calls).toHaveLength(1);
|
|
421
421
|
});
|
|
422
422
|
|
|
423
|
+
it('should advance an orphaned issue to Awaiting Quality Check when its own status comments were written after the report declaring no pull request is required', async () => {
|
|
424
|
+
const stuckIssue = createMockIssue({
|
|
425
|
+
url: 'https://github.com/user/repo/issues/10',
|
|
426
|
+
status: 'Preparation',
|
|
427
|
+
});
|
|
428
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
429
|
+
project: mockProject,
|
|
430
|
+
issues: [stuckIssue],
|
|
431
|
+
cacheUsed: false,
|
|
432
|
+
});
|
|
433
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
434
|
+
stdout: '',
|
|
435
|
+
stderr: '',
|
|
436
|
+
exitCode: 1,
|
|
437
|
+
});
|
|
438
|
+
mockIssueCommentRepository.getCommentsFromIssue.mockResolvedValue([
|
|
439
|
+
{
|
|
440
|
+
author: 'agent-bot',
|
|
441
|
+
content:
|
|
442
|
+
'From: :robot: agent report\n\n```json\n{ "pullRequestRequired": false, "nextStep": null }\n```\n',
|
|
443
|
+
createdAt: new Date(),
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
author: 'agent-bot',
|
|
447
|
+
content:
|
|
448
|
+
'Auto Status Check: RETURNED_TO_AWAITING_WORKSPACE\nThe last report declared that this task needs no pull request.',
|
|
449
|
+
createdAt: new Date(),
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
author: 'agent-bot',
|
|
453
|
+
content: 'Auto Status Check: REJECTED\n- ORPHANED_PREPARATION',
|
|
454
|
+
createdAt: new Date(),
|
|
455
|
+
},
|
|
456
|
+
]);
|
|
457
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
|
|
458
|
+
|
|
459
|
+
await useCase.run({
|
|
460
|
+
projectUrl: 'https://github.com/user/repo',
|
|
461
|
+
preparationProcessCheckCommand: 'pgrep -fa "claude-agent.*{URL}"',
|
|
462
|
+
thresholdForAutoReject: 3,
|
|
463
|
+
allowedIssueAuthors: ['agent-bot'],
|
|
464
|
+
});
|
|
465
|
+
|
|
466
|
+
expect(mockIssueRepository.findRelatedOpenPRs.mock.calls).toHaveLength(0);
|
|
467
|
+
expect(mockIssueRepository.updateStatus.mock.calls).toHaveLength(1);
|
|
468
|
+
expect(mockIssueRepository.updateStatus.mock.calls[0][2]).toBe('4');
|
|
469
|
+
expect(mockIssueCommentRepository.createComment.mock.calls).toHaveLength(0);
|
|
470
|
+
});
|
|
471
|
+
|
|
472
|
+
it('should keep rejecting an orphaned issue whose own status comments follow a report that declares nothing', async () => {
|
|
473
|
+
const stuckIssue = createMockIssue({
|
|
474
|
+
url: 'https://github.com/user/repo/issues/10',
|
|
475
|
+
status: 'Preparation',
|
|
476
|
+
});
|
|
477
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
478
|
+
project: mockProject,
|
|
479
|
+
issues: [stuckIssue],
|
|
480
|
+
cacheUsed: false,
|
|
481
|
+
});
|
|
482
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
483
|
+
stdout: '',
|
|
484
|
+
stderr: '',
|
|
485
|
+
exitCode: 1,
|
|
486
|
+
});
|
|
487
|
+
mockIssueCommentRepository.getCommentsFromIssue.mockResolvedValue([
|
|
488
|
+
{
|
|
489
|
+
author: 'agent-bot',
|
|
490
|
+
content: 'From: :robot: agent report of an earlier session',
|
|
491
|
+
createdAt: new Date(),
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
author: 'agent-bot',
|
|
495
|
+
content: 'Auto Status Check: REJECTED\n- ORPHANED_PREPARATION',
|
|
496
|
+
createdAt: new Date(),
|
|
497
|
+
},
|
|
498
|
+
]);
|
|
499
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([]);
|
|
500
|
+
|
|
501
|
+
await useCase.run({
|
|
502
|
+
projectUrl: 'https://github.com/user/repo',
|
|
503
|
+
preparationProcessCheckCommand: 'pgrep -fa "claude-agent.*{URL}"',
|
|
504
|
+
thresholdForAutoReject: 3,
|
|
505
|
+
allowedIssueAuthors: ['agent-bot'],
|
|
506
|
+
});
|
|
507
|
+
|
|
508
|
+
expect(mockIssueRepository.updateStatus.mock.calls).toHaveLength(1);
|
|
509
|
+
expect(mockIssueRepository.updateStatus.mock.calls[0][2]).toBe('1');
|
|
510
|
+
expect(mockIssueCommentRepository.createComment.mock.calls).toHaveLength(1);
|
|
511
|
+
expect(mockIssueCommentRepository.createComment.mock.calls[0][1]).toContain(
|
|
512
|
+
'Auto Status Check: REJECTED',
|
|
513
|
+
);
|
|
514
|
+
});
|
|
515
|
+
|
|
423
516
|
it('should advance orphaned issue with llm-agent label to Awaiting Quality Check without PR check', async () => {
|
|
424
517
|
const stuckIssue = createMockIssue({
|
|
425
518
|
url: 'https://github.com/user/repo/issues/10',
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
} from '../entities/WorkflowStatus';
|
|
16
16
|
import { resolveLabelsNotRequiringPullRequest } from './resolveLabelsNotRequiringPullRequest';
|
|
17
17
|
import { isPullRequestDeclaredUnnecessary } from './isPullRequestDeclaredUnnecessary';
|
|
18
|
+
import { dropTrailingAutoStatusCheckComments } from './autoStatusCheckComments';
|
|
18
19
|
import { isAuthorAuthorizedForAutoStatusCheck } from './isAuthorAuthorizedForAutoStatusCheck';
|
|
19
20
|
import {
|
|
20
21
|
RETURNED_TO_AWAITING_WORKSPACE_MESSAGE,
|
|
@@ -186,16 +187,24 @@ export class RevertOrphanedPreparationUseCase {
|
|
|
186
187
|
}
|
|
187
188
|
const comments =
|
|
188
189
|
await this.issueCommentRepository.getCommentsFromIssue(issue);
|
|
189
|
-
const lastComment = comments[comments.length - 1];
|
|
190
|
-
if (!lastComment || !lastComment.content.startsWith('From: :robot:')) {
|
|
191
|
-
return { outcome: 'reject', comments };
|
|
192
|
-
}
|
|
193
|
-
if (this.reportBodyHasNextStep(lastComment.content)) {
|
|
194
|
-
return { outcome: 'reject', comments };
|
|
195
|
-
}
|
|
196
190
|
const isTrustedAuthor = (author: string): boolean =>
|
|
197
191
|
isAuthorAuthorizedForAutoStatusCheck(author, allowedIssueAuthors);
|
|
198
|
-
|
|
192
|
+
const commentsBeforeOwnStatusComments = dropTrailingAutoStatusCheckComments(
|
|
193
|
+
comments,
|
|
194
|
+
isTrustedAuthor,
|
|
195
|
+
);
|
|
196
|
+
const lastReport =
|
|
197
|
+
commentsBeforeOwnStatusComments[
|
|
198
|
+
commentsBeforeOwnStatusComments.length - 1
|
|
199
|
+
] ?? null;
|
|
200
|
+
if (
|
|
201
|
+
lastReport !== null &&
|
|
202
|
+
isPullRequestDeclaredUnnecessary(
|
|
203
|
+
commentsBeforeOwnStatusComments,
|
|
204
|
+
isTrustedAuthor,
|
|
205
|
+
) &&
|
|
206
|
+
!this.reportBodyHasNextStep(lastReport.content)
|
|
207
|
+
) {
|
|
199
208
|
const alreadyReturnedToWorkspace = comments.some(
|
|
200
209
|
(comment) =>
|
|
201
210
|
isTrustedAuthor(comment.author) &&
|
|
@@ -211,6 +220,14 @@ export class RevertOrphanedPreparationUseCase {
|
|
|
211
220
|
};
|
|
212
221
|
}
|
|
213
222
|
|
|
223
|
+
const lastComment = comments[comments.length - 1];
|
|
224
|
+
if (!lastComment || !lastComment.content.startsWith('From: :robot:')) {
|
|
225
|
+
return { outcome: 'reject', comments };
|
|
226
|
+
}
|
|
227
|
+
if (this.reportBodyHasNextStep(lastComment.content)) {
|
|
228
|
+
return { outcome: 'reject', comments };
|
|
229
|
+
}
|
|
230
|
+
|
|
214
231
|
const categoryLabels = issue.labels.filter((label) =>
|
|
215
232
|
label.startsWith('category:'),
|
|
216
233
|
);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const AUTO_STATUS_CHECK_MESSAGE_HEAD = 'Auto Status Check:';
|
|
2
|
+
|
|
3
|
+
export const dropTrailingAutoStatusCheckComments = <
|
|
4
|
+
T extends { author: string; content: string },
|
|
5
|
+
>(
|
|
6
|
+
comments: T[],
|
|
7
|
+
isTrustedAuthor: (author: string) => boolean,
|
|
8
|
+
): T[] => {
|
|
9
|
+
let endIndex = comments.length;
|
|
10
|
+
while (
|
|
11
|
+
endIndex > 0 &&
|
|
12
|
+
isTrustedAuthor(comments[endIndex - 1].author) &&
|
|
13
|
+
comments[endIndex - 1].content.startsWith(AUTO_STATUS_CHECK_MESSAGE_HEAD)
|
|
14
|
+
) {
|
|
15
|
+
endIndex -= 1;
|
|
16
|
+
}
|
|
17
|
+
return comments.slice(0, endIndex);
|
|
18
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RevertOrphanedPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertOrphanedPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"RevertOrphanedPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertOrphanedPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAuB7E,qBAAa,gCAAgC;IAEzC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAC9B,iBAAiB,EACjB,oBAAoB,GAAG,YAAY,CACpC;IACD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,CACvB;IACD,QAAQ,CAAC,sBAAsB,EAAE,IAAI,CACnC,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC;IACD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB;gBAftC,iBAAiB,EAAE,IAAI,CAC9B,iBAAiB,EACjB,oBAAoB,GAAG,YAAY,CACpC,EACQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,CACvB,EACQ,sBAAsB,EAAE,IAAI,CACnC,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC,EACQ,kBAAkB,EAAE,kBAAkB;IAGjD,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B,EAAE,MAAM,CAAC;QACvC,sBAAsB,EAAE,MAAM,CAAC;QAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,0BAA0B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3C,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,6BAA6B,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACvC,KAAG,OAAO,CAAC,IAAI,CAAC,CAmHf;IAEF,OAAO,CAAC,eAAe,CAwFrB;IAEF,OAAO,CAAC,uBAAuB,CAQ7B;IAEF,OAAO,CAAC,qBAAqB,CAuB3B;IAEF,OAAO,CAAC,eAAe,CA6BrB;IAEF,OAAO,CAAC,YAAY,CA+BlB;CACH"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const AUTO_STATUS_CHECK_MESSAGE_HEAD = "Auto Status Check:";
|
|
2
|
+
export declare const dropTrailingAutoStatusCheckComments: <T extends {
|
|
3
|
+
author: string;
|
|
4
|
+
content: string;
|
|
5
|
+
}>(comments: T[], isTrustedAuthor: (author: string) => boolean) => T[];
|
|
6
|
+
//# sourceMappingURL=autoStatusCheckComments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoStatusCheckComments.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/autoStatusCheckComments.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE,eAAO,MAAM,mCAAmC,GAC9C,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAE7C,UAAU,CAAC,EAAE,EACb,iBAAiB,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,KAC3C,CAAC,EAUH,CAAC"}
|