claude-task-worker 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +6 -2
  2. package/dist/index.js +26 -2
  3. package/package.json +1 -1
  4. package/dist/commands/init.d.ts +0 -1
  5. package/dist/commands/init.js +0 -84
  6. package/dist/commands/init.js.map +0 -1
  7. package/dist/gh.d.ts +0 -47
  8. package/dist/gh.js +0 -113
  9. package/dist/gh.js.map +0 -1
  10. package/dist/git.d.ts +0 -1
  11. package/dist/git.js +0 -14
  12. package/dist/git.js.map +0 -1
  13. package/dist/index.d.ts +0 -2
  14. package/dist/index.js.map +0 -1
  15. package/dist/process-manager.d.ts +0 -8
  16. package/dist/process-manager.js +0 -218
  17. package/dist/process-manager.js.map +0 -1
  18. package/dist/random-name.d.ts +0 -1
  19. package/dist/random-name.js +0 -59
  20. package/dist/random-name.js.map +0 -1
  21. package/dist/slack.d.ts +0 -5
  22. package/dist/slack.js +0 -125
  23. package/dist/slack.js.map +0 -1
  24. package/dist/usage.d.ts +0 -2
  25. package/dist/usage.js +0 -52
  26. package/dist/usage.js.map +0 -1
  27. package/dist/workers/create-issue.d.ts +0 -1
  28. package/dist/workers/create-issue.js +0 -55
  29. package/dist/workers/create-issue.js.map +0 -1
  30. package/dist/workers/exec-issue.d.ts +0 -1
  31. package/dist/workers/exec-issue.js +0 -50
  32. package/dist/workers/exec-issue.js.map +0 -1
  33. package/dist/workers/fix-review-point.d.ts +0 -1
  34. package/dist/workers/fix-review-point.js +0 -62
  35. package/dist/workers/fix-review-point.js.map +0 -1
  36. package/dist/workers/triage-issues.d.ts +0 -3
  37. package/dist/workers/triage-issues.js +0 -54
  38. package/dist/workers/triage-issues.js.map +0 -1
  39. package/dist/workers/triage-prs.d.ts +0 -3
  40. package/dist/workers/triage-prs.js +0 -56
  41. package/dist/workers/triage-prs.js.map +0 -1
  42. package/dist/workers/update-issue.d.ts +0 -1
  43. package/dist/workers/update-issue.js +0 -61
  44. package/dist/workers/update-issue.js.map +0 -1
  45. package/dist/worktree.d.ts +0 -2
  46. package/dist/worktree.js +0 -34
  47. package/dist/worktree.js.map +0 -1
@@ -1,61 +0,0 @@
1
- import { getCurrentUser, getRepoInfo, listIssues, removeLabel, addLabel, getLastIssueComment } from "../gh.js";
2
- import { syncDefaultBranch } from "../git.js";
3
- import { isRunning, isWorkerAtCapacity, isShuttingDown, run } from "../process-manager.js";
4
- import { generateWorktreeName } from "../random-name.js";
5
- import { notifyTaskCompleted, notifyTaskFailed, notifyError } from "../slack.js";
6
- import { removeWorktree } from "../worktree.js";
7
- const POLLING_INTERVAL_MS = 30 * 1000;
8
- export async function updateIssueWorker() {
9
- const { owner, name, defaultBranch } = await getRepoInfo();
10
- const user = await getCurrentUser();
11
- console.log(`[update-issue] Polling issues every 30 seconds for ${owner}/${name} (assignee: ${user})`);
12
- const tick = async () => {
13
- if (isShuttingDown())
14
- return;
15
- try {
16
- const issues = await listIssues(user, "cc-update-issue");
17
- for (const issue of issues) {
18
- if (issue.labels.some(l => l.name === "cc-in-progress"))
19
- continue;
20
- if (isRunning(issue.number))
21
- continue;
22
- if (isWorkerAtCapacity("update-issue"))
23
- break;
24
- await addLabel("issue", issue.number, "cc-in-progress");
25
- const lastComment = await getLastIssueComment(issue.number);
26
- if (!lastComment) {
27
- await removeLabel("issue", issue.number, "cc-update-issue");
28
- await removeLabel("issue", issue.number, "cc-in-progress");
29
- continue;
30
- }
31
- const prompt = `/base-tools:update-issue\nIssue番号: ${issue.number}\n依頼内容: \n${lastComment.body}`;
32
- const issueUrl = `https://github.com/${owner}/${name}/issues/${issue.number}`;
33
- const worktreeId = generateWorktreeName();
34
- syncDefaultBranch(defaultBranch);
35
- run("claude", ["--dangerously-skip-permissions", "-p", prompt, "--worktree", worktreeId], issue.number, issue.title, "update-issue", worktreeId, async (status, output) => {
36
- await removeWorktree(worktreeId);
37
- try {
38
- await removeLabel("issue", issue.number, "cc-update-issue");
39
- await removeLabel("issue", issue.number, "cc-in-progress");
40
- }
41
- catch (err) {
42
- console.error(`[update-issue] Failed to finalize issue #${issue.number}: ${err}`);
43
- }
44
- if (status === "completed") {
45
- await notifyTaskCompleted("update-issue", name, issue.number, issue.title, issueUrl);
46
- }
47
- else {
48
- await notifyTaskFailed("update-issue", name, issue.number, issue.title, issueUrl, output);
49
- }
50
- });
51
- }
52
- }
53
- catch (err) {
54
- console.error(`[update-issue] tick error: ${err}`);
55
- await notifyError("update-issue", name, err);
56
- }
57
- };
58
- await tick();
59
- setInterval(tick, POLLING_INTERVAL_MS);
60
- }
61
- //# sourceMappingURL=update-issue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-issue.js","sourceRoot":"","sources":["../../src/workers/update-issue.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function removeWorktree(worktreeId: string): Promise<void>;
2
- export declare function removeAllAgentWorktrees(): Promise<void>;
package/dist/worktree.js DELETED
@@ -1,34 +0,0 @@
1
- import { execFile } from "node:child_process";
2
- import { promisify } from "node:util";
3
- import { readdir } from "node:fs/promises";
4
- const execFileAsync = promisify(execFile);
5
- export async function removeWorktree(worktreeId) {
6
- const worktreePath = `.claude/worktrees/${worktreeId}`;
7
- try {
8
- await execFileAsync("git", ["worktree", "remove", "--force", worktreePath]);
9
- }
10
- catch (error) {
11
- console.error(`[worktree] Failed to remove worktree ${worktreeId}:`, error);
12
- }
13
- }
14
- export async function removeAllAgentWorktrees() {
15
- const worktreesDir = ".claude/worktrees";
16
- let entries;
17
- try {
18
- entries = await readdir(worktreesDir);
19
- }
20
- catch {
21
- return;
22
- }
23
- const agentDirs = entries.filter(e => e.startsWith("agent-"));
24
- for (const dir of agentDirs) {
25
- try {
26
- await execFileAsync("git", ["worktree", "remove", "--force", `${worktreesDir}/${dir}`]);
27
- console.log(`[worktree] Removed agent worktree: ${dir}`);
28
- }
29
- catch (error) {
30
- console.error(`[worktree] Failed to remove agent worktree ${dir}:`, error);
31
- }
32
- }
33
- }
34
- //# sourceMappingURL=worktree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB;IACrD,MAAM,YAAY,GAAG,qBAAqB,UAAU,EAAE,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,YAAY,GAAG,mBAAmB,CAAC;IACzC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8CAA8C,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;AACH,CAAC"}