claude-task-worker 0.1.0 → 0.1.1
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/package.json +1 -1
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.js +0 -84
- package/dist/commands/init.js.map +0 -1
- package/dist/gh.d.ts +0 -47
- package/dist/gh.js +0 -113
- package/dist/gh.js.map +0 -1
- package/dist/git.d.ts +0 -1
- package/dist/git.js +0 -14
- package/dist/git.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js.map +0 -1
- package/dist/process-manager.d.ts +0 -8
- package/dist/process-manager.js +0 -218
- package/dist/process-manager.js.map +0 -1
- package/dist/random-name.d.ts +0 -1
- package/dist/random-name.js +0 -59
- package/dist/random-name.js.map +0 -1
- package/dist/slack.d.ts +0 -5
- package/dist/slack.js +0 -125
- package/dist/slack.js.map +0 -1
- package/dist/usage.d.ts +0 -2
- package/dist/usage.js +0 -52
- package/dist/usage.js.map +0 -1
- package/dist/workers/create-issue.d.ts +0 -1
- package/dist/workers/create-issue.js +0 -55
- package/dist/workers/create-issue.js.map +0 -1
- package/dist/workers/exec-issue.d.ts +0 -1
- package/dist/workers/exec-issue.js +0 -50
- package/dist/workers/exec-issue.js.map +0 -1
- package/dist/workers/fix-review-point.d.ts +0 -1
- package/dist/workers/fix-review-point.js +0 -62
- package/dist/workers/fix-review-point.js.map +0 -1
- package/dist/workers/triage-issues.d.ts +0 -3
- package/dist/workers/triage-issues.js +0 -54
- package/dist/workers/triage-issues.js.map +0 -1
- package/dist/workers/triage-prs.d.ts +0 -3
- package/dist/workers/triage-prs.js +0 -56
- package/dist/workers/triage-prs.js.map +0 -1
- package/dist/workers/update-issue.d.ts +0 -1
- package/dist/workers/update-issue.js +0 -61
- package/dist/workers/update-issue.js.map +0 -1
- package/dist/worktree.d.ts +0 -2
- package/dist/worktree.js +0 -34
- package/dist/worktree.js.map +0 -1
package/package.json
CHANGED
package/dist/commands/init.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function init(): Promise<void>;
|
package/dist/commands/init.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { mkdir, writeFile, access } from "node:fs/promises";
|
|
2
|
-
import { createLabel } from "../gh.js";
|
|
3
|
-
const LABELS = [
|
|
4
|
-
{ name: "cc-create-issue", color: "0075ca" },
|
|
5
|
-
{ name: "cc-update-issue", color: "e4e669" },
|
|
6
|
-
{ name: "cc-exec-issue", color: "7057ff" },
|
|
7
|
-
{ name: "cc-fix-onetime", color: "d93f0b" },
|
|
8
|
-
{ name: "cc-fix-repeat", color: "b60205" },
|
|
9
|
-
{ name: "cc-in-progress", color: "0e8a16" },
|
|
10
|
-
{ name: "cc-issue-created", color: "f9a825" },
|
|
11
|
-
{ name: "cc-pr-created", color: "006b75" },
|
|
12
|
-
{ name: "cc-triage-scope", color: "c5def5" },
|
|
13
|
-
];
|
|
14
|
-
const ISSUE_TEMPLATE = `name: "[claude-task-worker] Issue作成依頼"
|
|
15
|
-
description: claude-task-workerでGitHub Issueを作成する
|
|
16
|
-
title: "[claude-task-worker] Issue作成依頼"
|
|
17
|
-
labels:
|
|
18
|
-
- cc-create-issue
|
|
19
|
-
body:
|
|
20
|
-
- type: textarea
|
|
21
|
-
id: request
|
|
22
|
-
attributes:
|
|
23
|
-
label: 依頼内容
|
|
24
|
-
description: 作成してほしいIssueの内容を記述してください
|
|
25
|
-
validations:
|
|
26
|
-
required: true
|
|
27
|
-
`;
|
|
28
|
-
const ASSIGN_CREATOR_WORKFLOW = `name: Assign creator on cc-create-issue
|
|
29
|
-
|
|
30
|
-
on:
|
|
31
|
-
issues:
|
|
32
|
-
types: [opened]
|
|
33
|
-
|
|
34
|
-
jobs:
|
|
35
|
-
assign:
|
|
36
|
-
if: contains(github.event.issue.labels.*.name, 'cc-create-issue')
|
|
37
|
-
runs-on: ubuntu-latest
|
|
38
|
-
permissions:
|
|
39
|
-
issues: write
|
|
40
|
-
steps:
|
|
41
|
-
- uses: actions/github-script@v7
|
|
42
|
-
with:
|
|
43
|
-
script: |
|
|
44
|
-
await github.rest.issues.addAssignees({
|
|
45
|
-
owner: context.repo.owner,
|
|
46
|
-
repo: context.repo.repo,
|
|
47
|
-
issue_number: context.issue.number,
|
|
48
|
-
assignees: [context.payload.issue.user.login]
|
|
49
|
-
});
|
|
50
|
-
`;
|
|
51
|
-
async function createFileIfNotExists(path, content) {
|
|
52
|
-
try {
|
|
53
|
-
await access(path);
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
await writeFile(path, content, "utf-8");
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export async function init() {
|
|
62
|
-
console.log("[init] Creating labels...");
|
|
63
|
-
for (const label of LABELS) {
|
|
64
|
-
const ok = await createLabel(label.name, label.color, true);
|
|
65
|
-
if (ok) {
|
|
66
|
-
console.log(`[init] Ensured label: ${label.name}`);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
console.log(`[init] Failed to create label: ${label.name}`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
console.log("[init] Creating issue template...");
|
|
73
|
-
await mkdir(".github/ISSUE_TEMPLATE", { recursive: true });
|
|
74
|
-
const templatePath = ".github/ISSUE_TEMPLATE/cc-create-issue.yml";
|
|
75
|
-
const templateCreated = await createFileIfNotExists(templatePath, ISSUE_TEMPLATE);
|
|
76
|
-
console.log(templateCreated ? `[init] Created: ${templatePath}` : `[init] Already exists: ${templatePath}`);
|
|
77
|
-
console.log("[init] Creating GitHub Actions workflow...");
|
|
78
|
-
await mkdir(".github/workflows", { recursive: true });
|
|
79
|
-
const workflowPath = ".github/workflows/assign-creator-on-cc-create-issue.yml";
|
|
80
|
-
const workflowCreated = await createFileIfNotExists(workflowPath, ASSIGN_CREATOR_WORKFLOW);
|
|
81
|
-
console.log(workflowCreated ? `[init] Created: ${workflowPath}` : `[init] Already exists: ${workflowPath}`);
|
|
82
|
-
console.log("[init] Done.");
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/gh.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
interface Issue {
|
|
2
|
-
number: number;
|
|
3
|
-
title: string;
|
|
4
|
-
labels: {
|
|
5
|
-
name: string;
|
|
6
|
-
}[];
|
|
7
|
-
body: string;
|
|
8
|
-
state: string;
|
|
9
|
-
}
|
|
10
|
-
interface PullRequest {
|
|
11
|
-
number: number;
|
|
12
|
-
headRefName: string;
|
|
13
|
-
labels: {
|
|
14
|
-
name: string;
|
|
15
|
-
}[];
|
|
16
|
-
title: string;
|
|
17
|
-
}
|
|
18
|
-
interface RepoInfo {
|
|
19
|
-
owner: string;
|
|
20
|
-
name: string;
|
|
21
|
-
defaultBranch: string;
|
|
22
|
-
}
|
|
23
|
-
export declare function getCurrentUser(): Promise<string>;
|
|
24
|
-
export declare function getRepoInfo(): Promise<RepoInfo>;
|
|
25
|
-
export declare function listIssues(assignee: string, label: string): Promise<Issue[]>;
|
|
26
|
-
export declare function listAllIssues(assignee: string): Promise<Issue[]>;
|
|
27
|
-
interface StatusCheck {
|
|
28
|
-
__typename: string;
|
|
29
|
-
status?: string;
|
|
30
|
-
state?: string;
|
|
31
|
-
}
|
|
32
|
-
interface PullRequestWithChecks extends PullRequest {
|
|
33
|
-
statusCheckRollup: StatusCheck[];
|
|
34
|
-
}
|
|
35
|
-
export declare function isCICompleted(checks: StatusCheck[]): boolean;
|
|
36
|
-
export declare function listPullRequestsWithChecks(assignee?: string, options?: {
|
|
37
|
-
triageScope?: boolean;
|
|
38
|
-
}): Promise<PullRequestWithChecks[]>;
|
|
39
|
-
export declare function addLabel(type: "issue" | "pr", number: number, label: string): Promise<void>;
|
|
40
|
-
export declare function removeLabel(type: "issue" | "pr", number: number, label: string): Promise<void>;
|
|
41
|
-
export declare function getLastIssueComment(issueNumber: number): Promise<{
|
|
42
|
-
author: string;
|
|
43
|
-
body: string;
|
|
44
|
-
} | null>;
|
|
45
|
-
export declare function commentOnIssue(issueNumber: number, body: string): Promise<void>;
|
|
46
|
-
export declare function createLabel(name: string, color?: string, force?: boolean): Promise<boolean>;
|
|
47
|
-
export {};
|
package/dist/gh.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { execFile } from "node:child_process";
|
|
2
|
-
function execGh(args) {
|
|
3
|
-
return new Promise((resolve, reject) => {
|
|
4
|
-
execFile("gh", args, (error, stdout, stderr) => {
|
|
5
|
-
if (error) {
|
|
6
|
-
reject(new Error(`gh ${args.join(" ")} failed: ${stderr || error.message}`));
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
resolve(stdout.trim());
|
|
10
|
-
});
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
export async function getCurrentUser() {
|
|
14
|
-
return execGh(["api", "user", "--jq", ".login"]);
|
|
15
|
-
}
|
|
16
|
-
export async function getRepoInfo() {
|
|
17
|
-
const output = await execGh(["repo", "view", "--json", "owner,name,defaultBranchRef"]);
|
|
18
|
-
const parsed = JSON.parse(output);
|
|
19
|
-
return { owner: parsed.owner.login, name: parsed.name, defaultBranch: parsed.defaultBranchRef.name };
|
|
20
|
-
}
|
|
21
|
-
export async function listIssues(assignee, label) {
|
|
22
|
-
const output = await execGh([
|
|
23
|
-
"issue", "list",
|
|
24
|
-
"--assignee", assignee,
|
|
25
|
-
"--label", label,
|
|
26
|
-
"--json", "number,title,labels",
|
|
27
|
-
"--limit", "100",
|
|
28
|
-
]);
|
|
29
|
-
return JSON.parse(output);
|
|
30
|
-
}
|
|
31
|
-
export async function listAllIssues(assignee) {
|
|
32
|
-
const output = await execGh([
|
|
33
|
-
"issue", "list",
|
|
34
|
-
"--assignee", assignee,
|
|
35
|
-
"--label", "cc-triage-scope",
|
|
36
|
-
"--search", "sort:created-asc",
|
|
37
|
-
"--json", "number,title,labels",
|
|
38
|
-
"--limit", "5",
|
|
39
|
-
]);
|
|
40
|
-
return JSON.parse(output);
|
|
41
|
-
}
|
|
42
|
-
export function isCICompleted(checks) {
|
|
43
|
-
if (checks.length === 0)
|
|
44
|
-
return true;
|
|
45
|
-
return checks.every(check => {
|
|
46
|
-
if (check.__typename === "CheckRun") {
|
|
47
|
-
return check.status === "COMPLETED";
|
|
48
|
-
}
|
|
49
|
-
return check.state !== "PENDING";
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
export async function listPullRequestsWithChecks(assignee, options) {
|
|
53
|
-
const args = [
|
|
54
|
-
"pr", "list",
|
|
55
|
-
"--json", "number,headRefName,labels,title,statusCheckRollup",
|
|
56
|
-
"--limit", "100",
|
|
57
|
-
];
|
|
58
|
-
if (options?.triageScope) {
|
|
59
|
-
args.push("--label", "cc-triage-scope");
|
|
60
|
-
}
|
|
61
|
-
if (assignee) {
|
|
62
|
-
args.push("--assignee", assignee);
|
|
63
|
-
}
|
|
64
|
-
const output = await execGh(args);
|
|
65
|
-
return JSON.parse(output);
|
|
66
|
-
}
|
|
67
|
-
async function withRetry(fn, maxRetries = 3, delayMs = 1000) {
|
|
68
|
-
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
69
|
-
try {
|
|
70
|
-
return await fn();
|
|
71
|
-
}
|
|
72
|
-
catch (err) {
|
|
73
|
-
if (attempt === maxRetries)
|
|
74
|
-
throw err;
|
|
75
|
-
console.error(`[gh] Attempt ${attempt}/${maxRetries} failed, retrying in ${delayMs}ms...`);
|
|
76
|
-
await new Promise(resolve => setTimeout(resolve, delayMs));
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
throw new Error("unreachable");
|
|
80
|
-
}
|
|
81
|
-
export async function addLabel(type, number, label) {
|
|
82
|
-
await withRetry(() => execGh([type, "edit", String(number), "--add-label", label]));
|
|
83
|
-
}
|
|
84
|
-
export async function removeLabel(type, number, label) {
|
|
85
|
-
await withRetry(() => execGh([type, "edit", String(number), "--remove-label", label]));
|
|
86
|
-
}
|
|
87
|
-
export async function getLastIssueComment(issueNumber) {
|
|
88
|
-
const output = await execGh(["issue", "view", String(issueNumber), "--json", "comments"]);
|
|
89
|
-
const parsed = JSON.parse(output);
|
|
90
|
-
const comments = parsed.comments ?? [];
|
|
91
|
-
if (comments.length === 0)
|
|
92
|
-
return null;
|
|
93
|
-
const last = comments[comments.length - 1];
|
|
94
|
-
return { author: last.author.login, body: last.body };
|
|
95
|
-
}
|
|
96
|
-
export async function commentOnIssue(issueNumber, body) {
|
|
97
|
-
await execGh(["issue", "comment", String(issueNumber), "--body", body]);
|
|
98
|
-
}
|
|
99
|
-
export async function createLabel(name, color, force) {
|
|
100
|
-
try {
|
|
101
|
-
const args = ["label", "create", name];
|
|
102
|
-
if (color)
|
|
103
|
-
args.push("--color", color);
|
|
104
|
-
if (force)
|
|
105
|
-
args.push("--force");
|
|
106
|
-
await execGh(args);
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
catch {
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=gh.js.map
|
package/dist/gh.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gh.js","sourceRoot":"","sources":["../src/gh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAuB9C,SAAS,MAAM,CAAC,IAAc;IAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC7C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,6BAA6B,CAAC,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACvG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,KAAa;IAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,QAAQ;QACtB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,qBAAqB;QAC/B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,QAAQ;QACtB,SAAS,EAAE,iBAAiB;QAC5B,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,qBAAqB;QAC/B,SAAS,EAAE,GAAG;KACf,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAYD,MAAM,UAAU,aAAa,CAAC,MAAqB;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC1B,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;QACtC,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,QAAiB,EAAE,OAAmC;IACrG,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,mDAAmD;QAC7D,SAAS,EAAE,KAAK;KACjB,CAAC;IACF,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,SAAS,CAAI,EAAoB,EAAE,UAAU,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI;IAC9E,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,KAAK,UAAU;gBAAE,MAAM,GAAG,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,UAAU,wBAAwB,OAAO,OAAO,CAAC,CAAC;YAC3F,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAoB,EAAE,MAAc,EAAE,KAAa;IAChF,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAoB,EAAE,MAAc,EAAE,KAAa;IACnF,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC3D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,IAAY;IACpE,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,KAAc,EAAE,KAAe;IAC7E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
package/dist/git.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function syncDefaultBranch(branch: string): void;
|
package/dist/git.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
let running = false;
|
|
3
|
-
export function syncDefaultBranch(branch) {
|
|
4
|
-
if (running)
|
|
5
|
-
return;
|
|
6
|
-
running = true;
|
|
7
|
-
try {
|
|
8
|
-
execSync(`git worktree prune && git checkout ${branch} && git add -A && git reset --hard && git pull origin ${branch}`, { stdio: "pipe" });
|
|
9
|
-
}
|
|
10
|
-
finally {
|
|
11
|
-
running = false;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=git.js.map
|
package/dist/git.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,IAAI,OAAO;QAAE,OAAO;IACpB,OAAO,GAAG,IAAI,CAAC;IACf,IAAI,CAAC;QACH,QAAQ,CAAC,sCAAsC,MAAM,yDAAyD,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7I,CAAC;YAAS,CAAC;QACT,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
DELETED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare function setShuttingDown(): void;
|
|
2
|
-
export declare function isShuttingDown(): boolean;
|
|
3
|
-
export declare function isRunning(id: number): boolean;
|
|
4
|
-
export declare function isWorkerRunning(workerName: string): boolean;
|
|
5
|
-
export declare function isWorkerAtCapacity(workerName: string): boolean;
|
|
6
|
-
export declare function run(command: string, args: string[], id: number, title: string, workerName: string, path?: string, onComplete?: (status: "completed" | "failed", output: string) => void): void;
|
|
7
|
-
export declare function waitForAllProcesses(): Promise<void>;
|
|
8
|
-
export declare function shutdown(): void;
|
package/dist/process-manager.js
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { spawn, ChildProcess } from "node:child_process";
|
|
2
|
-
const childProcesses = new Map();
|
|
3
|
-
function getDisplayWidth(str) {
|
|
4
|
-
let width = 0;
|
|
5
|
-
for (const char of str) {
|
|
6
|
-
const code = char.codePointAt(0);
|
|
7
|
-
if ((code >= 0x1100 && code <= 0x115f) ||
|
|
8
|
-
(code >= 0x2e80 && code <= 0x303e) ||
|
|
9
|
-
(code >= 0x3040 && code <= 0x33bf) ||
|
|
10
|
-
(code >= 0x3400 && code <= 0x4dbf) ||
|
|
11
|
-
(code >= 0x4e00 && code <= 0xa4cf) ||
|
|
12
|
-
(code >= 0xac00 && code <= 0xd7af) ||
|
|
13
|
-
(code >= 0xf900 && code <= 0xfaff) ||
|
|
14
|
-
(code >= 0xfe30 && code <= 0xfe6f) ||
|
|
15
|
-
(code >= 0xff01 && code <= 0xff60) ||
|
|
16
|
-
(code >= 0xffe0 && code <= 0xffe6) ||
|
|
17
|
-
(code >= 0x20000 && code <= 0x2fffd) ||
|
|
18
|
-
(code >= 0x30000 && code <= 0x3fffd)) {
|
|
19
|
-
width += 2;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
width += 1;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return width;
|
|
26
|
-
}
|
|
27
|
-
function truncateToWidth(str, maxWidth) {
|
|
28
|
-
let width = 0;
|
|
29
|
-
let i = 0;
|
|
30
|
-
const chars = [...str];
|
|
31
|
-
while (i < chars.length) {
|
|
32
|
-
const charWidth = getDisplayWidth(chars[i]);
|
|
33
|
-
if (width + charWidth > maxWidth - 3) {
|
|
34
|
-
return chars.slice(0, i).join("") + "...";
|
|
35
|
-
}
|
|
36
|
-
width += charWidth;
|
|
37
|
-
i++;
|
|
38
|
-
}
|
|
39
|
-
return str;
|
|
40
|
-
}
|
|
41
|
-
function padToWidth(str, targetWidth) {
|
|
42
|
-
const currentWidth = getDisplayWidth(str);
|
|
43
|
-
const padding = targetWidth - currentWidth;
|
|
44
|
-
return padding > 0 ? str + " ".repeat(padding) : str;
|
|
45
|
-
}
|
|
46
|
-
const tasks = new Map();
|
|
47
|
-
let shuttingDown = false;
|
|
48
|
-
export function setShuttingDown() {
|
|
49
|
-
shuttingDown = true;
|
|
50
|
-
}
|
|
51
|
-
export function isShuttingDown() {
|
|
52
|
-
return shuttingDown;
|
|
53
|
-
}
|
|
54
|
-
export function isRunning(id) {
|
|
55
|
-
const task = tasks.get(id);
|
|
56
|
-
return task?.status === "running";
|
|
57
|
-
}
|
|
58
|
-
const MAX_CONCURRENT_TASKS_PER_WORKER = 4;
|
|
59
|
-
export function isWorkerRunning(workerName) {
|
|
60
|
-
for (const task of tasks.values()) {
|
|
61
|
-
if (task.workerName === workerName && task.status === "running") {
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
export function isWorkerAtCapacity(workerName) {
|
|
68
|
-
let count = 0;
|
|
69
|
-
for (const task of tasks.values()) {
|
|
70
|
-
if (task.workerName === workerName && task.status === "running") {
|
|
71
|
-
count++;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return count >= MAX_CONCURRENT_TASKS_PER_WORKER;
|
|
75
|
-
}
|
|
76
|
-
function formatDuration(start, end = new Date()) {
|
|
77
|
-
const diffMs = end.getTime() - start.getTime();
|
|
78
|
-
const totalSeconds = Math.floor(diffMs / 1000);
|
|
79
|
-
const minutes = Math.floor(totalSeconds / 60);
|
|
80
|
-
const seconds = totalSeconds % 60;
|
|
81
|
-
return `${minutes}m ${String(seconds).padStart(2, "0")}s`;
|
|
82
|
-
}
|
|
83
|
-
function formatTime(date) {
|
|
84
|
-
const h = String(date.getHours()).padStart(2, "0");
|
|
85
|
-
const m = String(date.getMinutes()).padStart(2, "0");
|
|
86
|
-
const s = String(date.getSeconds()).padStart(2, "0");
|
|
87
|
-
return `${h}:${m}:${s}`;
|
|
88
|
-
}
|
|
89
|
-
function renderTable() {
|
|
90
|
-
const entries = [...tasks.values()];
|
|
91
|
-
if (entries.length === 0)
|
|
92
|
-
return;
|
|
93
|
-
const runningTasks = entries.filter((t) => t.status === "running");
|
|
94
|
-
const finishedTasks = entries.filter((t) => t.status !== "running");
|
|
95
|
-
const maxTitleWidth = 40;
|
|
96
|
-
const maxPathWidth = 40;
|
|
97
|
-
const allRows = [
|
|
98
|
-
...runningTasks.map((t) => ({
|
|
99
|
-
id: `#${t.id}`,
|
|
100
|
-
title: getDisplayWidth(t.title) > maxTitleWidth ? truncateToWidth(t.title, maxTitleWidth) : t.title,
|
|
101
|
-
worker: t.workerName,
|
|
102
|
-
path: t.path ? (t.path.length > maxPathWidth ? truncateToWidth(t.path, maxPathWidth) : t.path) : "",
|
|
103
|
-
status: t.status,
|
|
104
|
-
time: formatTime(t.startedAt),
|
|
105
|
-
duration: formatDuration(t.startedAt),
|
|
106
|
-
})),
|
|
107
|
-
...finishedTasks.map((t) => ({
|
|
108
|
-
id: `#${t.id}`,
|
|
109
|
-
title: getDisplayWidth(t.title) > maxTitleWidth ? truncateToWidth(t.title, maxTitleWidth) : t.title,
|
|
110
|
-
worker: t.workerName,
|
|
111
|
-
path: t.path ? (t.path.length > maxPathWidth ? truncateToWidth(t.path, maxPathWidth) : t.path) : "",
|
|
112
|
-
status: t.status,
|
|
113
|
-
time: formatTime(t.finishedAt ?? t.startedAt),
|
|
114
|
-
duration: formatDuration(t.startedAt, t.finishedAt),
|
|
115
|
-
})),
|
|
116
|
-
];
|
|
117
|
-
const hasPath = allRows.some((r) => r.path !== "");
|
|
118
|
-
const colWidths = {
|
|
119
|
-
id: Math.max(3, ...allRows.map((r) => r.id.length)),
|
|
120
|
-
title: Math.max(5, ...allRows.map((r) => getDisplayWidth(r.title))),
|
|
121
|
-
worker: Math.max(6, ...allRows.map((r) => r.worker.length)),
|
|
122
|
-
...(hasPath ? { path: Math.max(8, ...allRows.map((r) => r.path.length)) } : {}),
|
|
123
|
-
status: Math.max(6, ...allRows.map((r) => r.status.length)),
|
|
124
|
-
time: Math.max(4, ...allRows.map((r) => r.time.length)),
|
|
125
|
-
duration: Math.max(8, ...allRows.map((r) => r.duration.length)),
|
|
126
|
-
};
|
|
127
|
-
const pad = (s, w, useDisplayWidth = false) => useDisplayWidth ? padToWidth(s, w) : s + " ".repeat(w - s.length);
|
|
128
|
-
const cols = hasPath
|
|
129
|
-
? [colWidths.id, colWidths.title, colWidths.worker, colWidths.path, colWidths.status, colWidths.time, colWidths.duration]
|
|
130
|
-
: [colWidths.id, colWidths.title, colWidths.worker, colWidths.status, colWidths.time, colWidths.duration];
|
|
131
|
-
const line = (l, m, r, f) => `${l}${cols.map((w) => f.repeat(w + 2)).join(m)}${r}`;
|
|
132
|
-
const row = (id, title, worker, path, status, time, duration) => hasPath
|
|
133
|
-
? `│ ${pad(id, colWidths.id)} │ ${pad(title, colWidths.title, true)} │ ${pad(worker, colWidths.worker)} │ ${pad(path, colWidths.path)} │ ${pad(status, colWidths.status)} │ ${pad(time, colWidths.time)} │ ${pad(duration, colWidths.duration)} │`
|
|
134
|
-
: `│ ${pad(id, colWidths.id)} │ ${pad(title, colWidths.title, true)} │ ${pad(worker, colWidths.worker)} │ ${pad(status, colWidths.status)} │ ${pad(time, colWidths.time)} │ ${pad(duration, colWidths.duration)} │`;
|
|
135
|
-
const lines = [];
|
|
136
|
-
lines.push(line("┌", "┬", "┐", "─"));
|
|
137
|
-
lines.push(row("#", "Title", "Worker", "Worktree", "Status", "Time", "Duration"));
|
|
138
|
-
lines.push(line("├", "┼", "┤", "─"));
|
|
139
|
-
for (const r of allRows.filter((r) => r.status === "running")) {
|
|
140
|
-
lines.push(row(r.id, r.title, r.worker, r.path, r.status, r.time, r.duration));
|
|
141
|
-
}
|
|
142
|
-
if (runningTasks.length > 0 && finishedTasks.length > 0) {
|
|
143
|
-
lines.push(line("├", "┼", "┤", "─"));
|
|
144
|
-
}
|
|
145
|
-
for (const r of allRows.filter((r) => r.status !== "running")) {
|
|
146
|
-
lines.push(row(r.id, r.title, r.worker, r.path, r.status, r.time, r.duration));
|
|
147
|
-
}
|
|
148
|
-
lines.push(line("└", "┴", "┘", "─"));
|
|
149
|
-
console.clear();
|
|
150
|
-
console.log(lines.join("\n"));
|
|
151
|
-
}
|
|
152
|
-
let renderInterval;
|
|
153
|
-
function ensureRenderInterval() {
|
|
154
|
-
if (renderInterval)
|
|
155
|
-
return;
|
|
156
|
-
renderInterval = setInterval(renderTable, 1000);
|
|
157
|
-
renderInterval.unref();
|
|
158
|
-
}
|
|
159
|
-
export function run(command, args, id, title, workerName, path, onComplete) {
|
|
160
|
-
tasks.set(id, {
|
|
161
|
-
id,
|
|
162
|
-
title,
|
|
163
|
-
status: "running",
|
|
164
|
-
workerName,
|
|
165
|
-
path,
|
|
166
|
-
startedAt: new Date(),
|
|
167
|
-
});
|
|
168
|
-
ensureRenderInterval();
|
|
169
|
-
renderTable();
|
|
170
|
-
const child = spawn(command, args, { stdio: ["ignore", "pipe", "inherit"], detached: true });
|
|
171
|
-
childProcesses.set(id, child);
|
|
172
|
-
const outputChunks = [];
|
|
173
|
-
child.stdout?.on("data", (chunk) => {
|
|
174
|
-
outputChunks.push(chunk);
|
|
175
|
-
});
|
|
176
|
-
child.on("close", (code) => {
|
|
177
|
-
childProcesses.delete(id);
|
|
178
|
-
const task = tasks.get(id);
|
|
179
|
-
if (task) {
|
|
180
|
-
task.status = code === 0 ? "completed" : "failed";
|
|
181
|
-
task.finishedAt = new Date();
|
|
182
|
-
}
|
|
183
|
-
renderTable();
|
|
184
|
-
const output = Buffer.concat(outputChunks).toString("utf-8");
|
|
185
|
-
onComplete?.(code === 0 ? "completed" : "failed", output);
|
|
186
|
-
});
|
|
187
|
-
child.on("error", (err) => {
|
|
188
|
-
childProcesses.delete(id);
|
|
189
|
-
const task = tasks.get(id);
|
|
190
|
-
if (task) {
|
|
191
|
-
task.status = "failed";
|
|
192
|
-
task.finishedAt = new Date();
|
|
193
|
-
}
|
|
194
|
-
console.error(`[worker] failed to spawn process for #${id}: ${err.message}`);
|
|
195
|
-
renderTable();
|
|
196
|
-
onComplete?.("failed", err.message);
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
export function waitForAllProcesses() {
|
|
200
|
-
return new Promise((resolve) => {
|
|
201
|
-
const check = () => {
|
|
202
|
-
if (childProcesses.size === 0) {
|
|
203
|
-
resolve();
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
setTimeout(check, 500);
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
check();
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
export function shutdown() {
|
|
213
|
-
for (const [id, child] of childProcesses) {
|
|
214
|
-
child.kill("SIGTERM");
|
|
215
|
-
childProcesses.delete(id);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
//# sourceMappingURL=process-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/random-name.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function generateWorktreeName(): string;
|
package/dist/random-name.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { randomInt } from "node:crypto";
|
|
2
|
-
const ADJECTIVES = [
|
|
3
|
-
"brave", "calm", "dark", "eager", "fair",
|
|
4
|
-
"gentle", "happy", "keen", "lively", "noble",
|
|
5
|
-
"proud", "quiet", "rapid", "sharp", "swift",
|
|
6
|
-
"tender", "vivid", "warm", "bold", "bright",
|
|
7
|
-
"clever", "daring", "fierce", "grand", "humble",
|
|
8
|
-
"jovial", "kind", "lucky", "mighty", "neat",
|
|
9
|
-
"agile", "amber", "breezy", "crisp", "deep",
|
|
10
|
-
"dusty", "elfin", "frosty", "golden", "hardy",
|
|
11
|
-
"icy", "joyful", "lean", "misty", "nimble",
|
|
12
|
-
"open", "peppy", "radiant", "serene", "tidy",
|
|
13
|
-
"upbeat", "valiant", "wiry", "zesty", "ancient",
|
|
14
|
-
"brisk", "crispy", "deft", "earnest", "fleet",
|
|
15
|
-
"airy", "ardent", "astute", "azure", "balmy",
|
|
16
|
-
"blithe", "buoyant", "candid", "cheery", "coastal",
|
|
17
|
-
"dashing", "dazzling", "devoted", "dynamic", "edgy",
|
|
18
|
-
"elegant", "enduring", "exotic", "fabled", "faithful",
|
|
19
|
-
"famous", "fearless", "flawless", "fluent", "focused",
|
|
20
|
-
"forceful", "forged", "frank", "fresh", "frugal",
|
|
21
|
-
"gallant", "gifted", "glowing", "graceful", "grounded",
|
|
22
|
-
"honest", "hopeful", "ideal", "immense", "intact",
|
|
23
|
-
"intrepid", "ironclad", "ivory", "keen", "knowing",
|
|
24
|
-
"lavish", "level", "lithe", "lofty", "loyal",
|
|
25
|
-
"luminous", "majestic", "mellow", "mindful", "modern",
|
|
26
|
-
];
|
|
27
|
-
const NOUNS = [
|
|
28
|
-
"falcon", "river", "cedar", "flame", "stone",
|
|
29
|
-
"breeze", "coral", "delta", "frost", "grove",
|
|
30
|
-
"harbor", "iris", "jade", "lark", "maple",
|
|
31
|
-
"orbit", "pearl", "ridge", "spark", "tide",
|
|
32
|
-
"vale", "wolf", "apex", "bloom", "crest",
|
|
33
|
-
"dawn", "ember", "flint", "hawk", "sage",
|
|
34
|
-
"arrow", "basin", "cliff", "dune", "echo",
|
|
35
|
-
"fern", "gale", "helm", "isle", "jungle",
|
|
36
|
-
"kite", "lance", "marsh", "nova", "oak",
|
|
37
|
-
"pine", "quill", "reef", "shore", "thorn",
|
|
38
|
-
"umber", "veil", "wave", "xenon", "yew",
|
|
39
|
-
"zenith", "acorn", "birch", "comet", "dew",
|
|
40
|
-
"abyss", "anchor", "anvil", "arc", "ash",
|
|
41
|
-
"atlas", "aurora", "axe", "bay", "beacon",
|
|
42
|
-
"blade", "bolt", "brook", "bud", "burl",
|
|
43
|
-
"cairn", "canopy", "cape", "cavern", "chain",
|
|
44
|
-
"chalk", "chasm", "chord", "chrome", "citrus",
|
|
45
|
-
"claw", "cloud", "cobalt", "creek", "crown",
|
|
46
|
-
"crystal", "current", "cypress", "depot", "depth",
|
|
47
|
-
"drift", "dusk", "dust", "eddy", "elm",
|
|
48
|
-
"epoch", "ether", "field", "fin", "fjord",
|
|
49
|
-
"foam", "forge", "fossil", "geyser", "glacier",
|
|
50
|
-
"glow", "granite", "heath", "heron", "hollow",
|
|
51
|
-
];
|
|
52
|
-
function pick(list) {
|
|
53
|
-
return list[randomInt(list.length)];
|
|
54
|
-
}
|
|
55
|
-
export function generateWorktreeName() {
|
|
56
|
-
const suffix = String(randomInt(10000)).padStart(4, "0");
|
|
57
|
-
return `${pick(ADJECTIVES)}-${pick(NOUNS)}-${suffix}`;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=random-name.js.map
|
package/dist/random-name.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"random-name.js","sourceRoot":"","sources":["../src/random-name.ts"],"names":[],"mappings":"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"}
|
package/dist/slack.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function send(payload: Record<string, unknown>): Promise<void>;
|
|
2
|
-
export declare function buildTokenLimitText(): Promise<string>;
|
|
3
|
-
export declare function notifyTaskCompleted(workerName: string, repoName: string, id: number, title: string, url: string): Promise<void>;
|
|
4
|
-
export declare function notifyTaskFailed(workerName: string, repoName: string, id: number, title: string, url: string, output?: string): Promise<void>;
|
|
5
|
-
export declare function notifyError(workerName: string, repoName: string, error: unknown): Promise<void>;
|