@einja/dev-cli 0.1.36 → 0.1.38

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 (28) hide show
  1. package/dist/commands/task-loop/index.d.ts.map +1 -1
  2. package/dist/commands/task-loop/index.js +13 -25
  3. package/dist/commands/task-loop/index.js.map +1 -1
  4. package/dist/commands/task-loop/lib/dependency-resolver.js +1 -1
  5. package/dist/commands/task-loop/lib/dependency-resolver.js.map +1 -1
  6. package/dist/commands/task-loop/lib/dependency-resolver.test.js +6 -6
  7. package/dist/commands/task-loop/lib/dependency-resolver.test.js.map +1 -1
  8. package/dist/commands/task-loop/lib/github-client.d.ts +2 -1
  9. package/dist/commands/task-loop/lib/github-client.d.ts.map +1 -1
  10. package/dist/commands/task-loop/lib/github-client.js +7 -6
  11. package/dist/commands/task-loop/lib/github-client.js.map +1 -1
  12. package/dist/commands/task-loop/lib/github-client.test.js +38 -22
  13. package/dist/commands/task-loop/lib/github-client.test.js.map +1 -1
  14. package/dist/commands/task-loop/lib/retry-utils.d.ts +34 -0
  15. package/dist/commands/task-loop/lib/retry-utils.d.ts.map +1 -0
  16. package/dist/commands/task-loop/lib/retry-utils.js +85 -0
  17. package/dist/commands/task-loop/lib/retry-utils.js.map +1 -0
  18. package/dist/commands/task-loop/lib/retry-utils.test.d.ts +2 -0
  19. package/dist/commands/task-loop/lib/retry-utils.test.d.ts.map +1 -0
  20. package/dist/commands/task-loop/lib/retry-utils.test.js +163 -0
  21. package/dist/commands/task-loop/lib/retry-utils.test.js.map +1 -0
  22. package/dist/commands/task-loop/lib/vibe-kanban-client.d.ts +16 -6
  23. package/dist/commands/task-loop/lib/vibe-kanban-client.d.ts.map +1 -1
  24. package/dist/commands/task-loop/lib/vibe-kanban-client.js +76 -50
  25. package/dist/commands/task-loop/lib/vibe-kanban-client.js.map +1 -1
  26. package/dist/commands/task-loop/lib/vibe-kanban-client.test.js +30 -95
  27. package/dist/commands/task-loop/lib/vibe-kanban-client.test.js.map +1 -1
  28. package/package.json +1 -1
@@ -2,7 +2,10 @@ import os from "node:os";
2
2
  import path from "node:path";
3
3
  import { beforeEach, describe, expect, it, vi } from "vitest";
4
4
  // child_process モジュールをモック
5
- vi.mock("node:child_process");
5
+ vi.mock("node:child_process", () => ({
6
+ exec: vi.fn(),
7
+ execSync: vi.fn(),
8
+ }));
6
9
  // fs モジュールをモック
7
10
  vi.mock("node:fs", () => ({
8
11
  default: {
@@ -10,7 +13,7 @@ vi.mock("node:fs", () => ({
10
13
  unlinkSync: vi.fn(),
11
14
  },
12
15
  }));
13
- import { execSync } from "node:child_process";
16
+ import { exec, execSync } from "node:child_process";
14
17
  import fs from "node:fs";
15
18
  import { getIssue, getRepoInfo, isIssueClosed, markTaskGroupAsCompleted, updateIssueBody, } from "./github-client.js";
16
19
  describe("github-client", () => {
@@ -151,47 +154,60 @@ describe("github-client", () => {
151
154
  });
152
155
  });
153
156
  describe("isIssueClosed", () => {
154
- it("CLOSEDステータスのIssueの場合、trueを返す", () => {
157
+ it("CLOSEDステータスのIssueの場合、trueを返す", async () => {
155
158
  // Given: CLOSEDステータスのIssue
156
159
  const issueNumber = 123;
157
- vi.mocked(execSync).mockReturnValueOnce(Buffer.from(JSON.stringify({
158
- state: "CLOSED",
159
- })));
160
+ vi.mocked(exec).mockImplementation(((_cmd, callback) => {
161
+ // コールバックを非同期で呼び出す
162
+ process.nextTick(() => {
163
+ callback(null, { stdout: JSON.stringify({ state: "CLOSED" }), stderr: "" });
164
+ });
165
+ return {};
166
+ }));
160
167
  // When: isIssueClosedを呼び出す
161
- const result = isIssueClosed(issueNumber);
168
+ const result = await isIssueClosed(issueNumber);
162
169
  // Then: trueが返る
163
170
  expect(result).toBe(true);
164
171
  });
165
- it("OPENステータスのIssueの場合、falseを返す", () => {
172
+ it("OPENステータスのIssueの場合、falseを返す", async () => {
166
173
  // Given: OPENステータスのIssue
167
174
  const issueNumber = 456;
168
- vi.mocked(execSync).mockReturnValueOnce(Buffer.from(JSON.stringify({
169
- state: "OPEN",
170
- })));
175
+ vi.mocked(exec).mockImplementation(((_cmd, callback) => {
176
+ process.nextTick(() => {
177
+ callback(null, { stdout: JSON.stringify({ state: "OPEN" }), stderr: "" });
178
+ });
179
+ return {};
180
+ }));
171
181
  // When: isIssueClosedを呼び出す
172
- const result = isIssueClosed(issueNumber);
182
+ const result = await isIssueClosed(issueNumber);
173
183
  // Then: falseが返る
174
184
  expect(result).toBe(false);
175
185
  });
176
- it("Issueが見つからない場合、falseを返す", () => {
186
+ it("Issueが見つからない場合、falseを返す", async () => {
177
187
  // Given: 存在しないIssue
178
188
  const issueNumber = 999;
179
- vi.mocked(execSync).mockImplementationOnce(() => {
180
- throw new Error("issue not found");
181
- });
189
+ vi.mocked(exec).mockImplementation(((_cmd, callback) => {
190
+ process.nextTick(() => {
191
+ callback(new Error("issue not found"), { stdout: "", stderr: "" });
192
+ });
193
+ return {};
194
+ }));
182
195
  // When: isIssueClosedを呼び出す
183
- const result = isIssueClosed(issueNumber);
196
+ const result = await isIssueClosed(issueNumber);
184
197
  // Then: falseが返る(閉じられていないとみなす)
185
198
  expect(result).toBe(false);
186
199
  });
187
- it("ghコマンドが失敗した場合、falseを返す", () => {
200
+ it("ghコマンドが失敗した場合、falseを返す", async () => {
188
201
  // Given: ghコマンドが失敗する状況
189
202
  const issueNumber = 123;
190
- vi.mocked(execSync).mockImplementationOnce(() => {
191
- throw new Error("gh command failed");
192
- });
203
+ vi.mocked(exec).mockImplementation(((_cmd, callback) => {
204
+ process.nextTick(() => {
205
+ callback(new Error("gh command failed"), { stdout: "", stderr: "" });
206
+ });
207
+ return {};
208
+ }));
193
209
  // When: isIssueClosedを呼び出す
194
- const result = isIssueClosed(issueNumber);
210
+ const result = await isIssueClosed(issueNumber);
195
211
  // Then: falseが返る
196
212
  expect(result).toBe(false);
197
213
  });
@@ -1 +1 @@
1
- {"version":3,"file":"github-client.test.js","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/github-client.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-client.test.js","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/github-client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * リトライユーティリティ
3
+ *
4
+ * 指数バックオフ付きのリトライ機能を提供
5
+ */
6
+ export interface RetryOptions {
7
+ /** 最大リトライ回数 */
8
+ maxRetries: number;
9
+ /** 初期遅延(ミリ秒) */
10
+ initialDelayMs: number;
11
+ /** 最大遅延(ミリ秒) */
12
+ maxDelayMs: number;
13
+ /** バックオフ倍率 */
14
+ backoffMultiplier: number;
15
+ /** リトライすべきエラーかを判定する関数 */
16
+ shouldRetry?: (error: Error) => boolean;
17
+ /** リトライ時のコールバック */
18
+ onRetry?: (attempt: number, error: Error, nextDelayMs: number) => void;
19
+ }
20
+ /**
21
+ * 指数バックオフ付きリトライ
22
+ */
23
+ export declare function withRetry<T>(fn: () => Promise<T>, options?: Partial<RetryOptions>): Promise<T>;
24
+ /**
25
+ * MCP タイムアウトエラーかどうかを判定
26
+ */
27
+ export declare function isMcpTimeoutError(error: Error): boolean;
28
+ /**
29
+ * リトライ可能なエラーかどうかを判定
30
+ */
31
+ export declare function isRetryableError(error: Error): boolean;
32
+ /** MCP 操作のデフォルトリトライ設定 */
33
+ export declare const MCP_RETRY_OPTIONS: Partial<RetryOptions>;
34
+ //# sourceMappingURL=retry-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/retry-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,eAAe;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IACxC,mBAAmB;IACnB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxE;AAgBD;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,OAAO,CAAC,CAAC,CAAC,CAmCZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAgBtD;AAED,yBAAyB;AACzB,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAUnD,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * リトライユーティリティ
3
+ *
4
+ * 指数バックオフ付きのリトライ機能を提供
5
+ */
6
+ const DEFAULT_OPTIONS = {
7
+ maxRetries: 3,
8
+ initialDelayMs: 1000,
9
+ maxDelayMs: 30000,
10
+ backoffMultiplier: 2,
11
+ };
12
+ /**
13
+ * 指定ミリ秒待機
14
+ */
15
+ function sleep(ms) {
16
+ return new Promise((resolve) => setTimeout(resolve, ms));
17
+ }
18
+ /**
19
+ * 指数バックオフ付きリトライ
20
+ */
21
+ export async function withRetry(fn, options = {}) {
22
+ const opts = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);
23
+ let lastError = null;
24
+ let delayMs = opts.initialDelayMs;
25
+ for (let attempt = 1; attempt <= opts.maxRetries + 1; attempt++) {
26
+ try {
27
+ return await fn();
28
+ }
29
+ catch (error) {
30
+ lastError = error instanceof Error ? error : new Error(String(error));
31
+ // 最後の試行の場合はエラーを投げる
32
+ if (attempt > opts.maxRetries) {
33
+ break;
34
+ }
35
+ // リトライすべきでないエラーの場合は即座に投げる
36
+ if (opts.shouldRetry && !opts.shouldRetry(lastError)) {
37
+ throw lastError;
38
+ }
39
+ // リトライコールバック
40
+ if (opts.onRetry) {
41
+ opts.onRetry(attempt, lastError, delayMs);
42
+ }
43
+ // 待機
44
+ await sleep(delayMs);
45
+ // 次の遅延を計算(指数バックオフ)
46
+ delayMs = Math.min(delayMs * opts.backoffMultiplier, opts.maxDelayMs);
47
+ }
48
+ }
49
+ throw lastError;
50
+ }
51
+ /**
52
+ * MCP タイムアウトエラーかどうかを判定
53
+ */
54
+ export function isMcpTimeoutError(error) {
55
+ return error.message.includes("タイムアウト") || error.message.includes("timeout");
56
+ }
57
+ /**
58
+ * リトライ可能なエラーかどうかを判定
59
+ */
60
+ export function isRetryableError(error) {
61
+ // タイムアウトエラー
62
+ if (isMcpTimeoutError(error)) {
63
+ return true;
64
+ }
65
+ // 一時的なネットワークエラー
66
+ if (error.message.includes("ECONNRESET") ||
67
+ error.message.includes("ETIMEDOUT") ||
68
+ error.message.includes("ECONNREFUSED")) {
69
+ return true;
70
+ }
71
+ return false;
72
+ }
73
+ /** MCP 操作のデフォルトリトライ設定 */
74
+ export const MCP_RETRY_OPTIONS = {
75
+ maxRetries: 3,
76
+ initialDelayMs: 2000,
77
+ maxDelayMs: 30000,
78
+ backoffMultiplier: 2,
79
+ shouldRetry: isRetryableError,
80
+ onRetry: (attempt, error, nextDelayMs) => {
81
+ console.log(` ⚠️ MCP 操作失敗 (試行 ${attempt}): ${error.message}`);
82
+ console.log(` 🔄 ${nextDelayMs / 1000}秒後にリトライします...`);
83
+ },
84
+ };
85
+ //# sourceMappingURL=retry-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-utils.js","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/retry-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=retry-utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-utils.test.d.ts","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/retry-utils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,163 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { isMcpTimeoutError, isRetryableError, withRetry } from "./retry-utils.js";
3
+ describe("retry-utils", () => {
4
+ describe("withRetry", () => {
5
+ it("成功した場合、結果を返す", async () => {
6
+ // Given: 成功する関数
7
+ const fn = vi.fn().mockResolvedValue("success");
8
+ // When: withRetryを呼び出す
9
+ const result = await withRetry(fn);
10
+ // Then: 結果が返る
11
+ expect(result).toBe("success");
12
+ expect(fn).toHaveBeenCalledTimes(1);
13
+ });
14
+ it("失敗後にリトライして成功した場合、結果を返す", async () => {
15
+ // Given: 2回失敗して3回目に成功する関数
16
+ const fn = vi
17
+ .fn()
18
+ .mockRejectedValueOnce(new Error("fail 1"))
19
+ .mockRejectedValueOnce(new Error("fail 2"))
20
+ .mockResolvedValue("success");
21
+ // When: withRetryを呼び出す(リトライ3回、初期遅延10ms)
22
+ const result = await withRetry(fn, {
23
+ maxRetries: 3,
24
+ initialDelayMs: 10,
25
+ });
26
+ // Then: 3回目で成功し、結果が返る
27
+ expect(result).toBe("success");
28
+ expect(fn).toHaveBeenCalledTimes(3);
29
+ });
30
+ it("最大リトライ回数を超えた場合、エラーを投げる", async () => {
31
+ // Given: 常に失敗する関数
32
+ const fn = vi.fn().mockRejectedValue(new Error("always fail"));
33
+ // When/Then: 最大リトライ回数を超えるとエラーが投げられる
34
+ await expect(withRetry(fn, { maxRetries: 2, initialDelayMs: 10 })).rejects.toThrow("always fail");
35
+ // Then: 3回試行される(初回 + リトライ2回)
36
+ expect(fn).toHaveBeenCalledTimes(3);
37
+ });
38
+ it("shouldRetry が false を返す場合、即座にエラーを投げる", async () => {
39
+ // Given: 失敗する関数とリトライしない設定
40
+ const fn = vi.fn().mockRejectedValue(new Error("no retry"));
41
+ // When/Then: リトライせずにエラーが投げられる
42
+ await expect(withRetry(fn, {
43
+ maxRetries: 3,
44
+ initialDelayMs: 10,
45
+ shouldRetry: () => false,
46
+ })).rejects.toThrow("no retry");
47
+ // Then: 1回のみ試行される
48
+ expect(fn).toHaveBeenCalledTimes(1);
49
+ });
50
+ it("onRetry コールバックが呼ばれる", async () => {
51
+ // Given: リトライ時のコールバック
52
+ const fn = vi.fn().mockRejectedValueOnce(new Error("fail")).mockResolvedValue("success");
53
+ const onRetry = vi.fn();
54
+ // When: withRetryを呼び出す
55
+ await withRetry(fn, {
56
+ maxRetries: 2,
57
+ initialDelayMs: 10,
58
+ onRetry,
59
+ });
60
+ // Then: onRetryが呼ばれる
61
+ expect(onRetry).toHaveBeenCalledTimes(1);
62
+ expect(onRetry).toHaveBeenCalledWith(1, expect.any(Error), 10);
63
+ });
64
+ it("指数バックオフが機能する", async () => {
65
+ // Given: 複数回失敗する関数
66
+ const fn = vi
67
+ .fn()
68
+ .mockRejectedValueOnce(new Error("fail 1"))
69
+ .mockRejectedValueOnce(new Error("fail 2"))
70
+ .mockResolvedValue("success");
71
+ const onRetry = vi.fn();
72
+ // When: withRetryを呼び出す(バックオフ倍率2)
73
+ await withRetry(fn, {
74
+ maxRetries: 3,
75
+ initialDelayMs: 100,
76
+ backoffMultiplier: 2,
77
+ onRetry,
78
+ });
79
+ // Then: 遅延が指数的に増加する
80
+ expect(onRetry).toHaveBeenCalledTimes(2);
81
+ expect(onRetry).toHaveBeenNthCalledWith(1, 1, expect.any(Error), 100);
82
+ expect(onRetry).toHaveBeenNthCalledWith(2, 2, expect.any(Error), 200);
83
+ });
84
+ it("最大遅延を超えない", async () => {
85
+ // Given: 複数回失敗する関数
86
+ const fn = vi
87
+ .fn()
88
+ .mockRejectedValueOnce(new Error("fail 1"))
89
+ .mockRejectedValueOnce(new Error("fail 2"))
90
+ .mockRejectedValueOnce(new Error("fail 3"))
91
+ .mockResolvedValue("success");
92
+ const onRetry = vi.fn();
93
+ // When: withRetryを呼び出す(最大遅延150ms)
94
+ await withRetry(fn, {
95
+ maxRetries: 4,
96
+ initialDelayMs: 100,
97
+ maxDelayMs: 150,
98
+ backoffMultiplier: 2,
99
+ onRetry,
100
+ });
101
+ // Then: 遅延が最大値を超えない
102
+ expect(onRetry).toHaveBeenCalledTimes(3);
103
+ expect(onRetry).toHaveBeenNthCalledWith(1, 1, expect.any(Error), 100);
104
+ expect(onRetry).toHaveBeenNthCalledWith(2, 2, expect.any(Error), 150); // 200 → 150に制限
105
+ expect(onRetry).toHaveBeenNthCalledWith(3, 3, expect.any(Error), 150);
106
+ });
107
+ });
108
+ describe("isMcpTimeoutError", () => {
109
+ it("タイムアウトエラーを検出する", () => {
110
+ // Given: タイムアウトエラー
111
+ const error1 = new Error("MCP 呼び出しがタイムアウトしました");
112
+ const error2 = new Error("Connection timeout");
113
+ // When/Then: タイムアウトエラーとして検出される
114
+ expect(isMcpTimeoutError(error1)).toBe(true);
115
+ expect(isMcpTimeoutError(error2)).toBe(true);
116
+ });
117
+ it("タイムアウトエラーでない場合、falseを返す", () => {
118
+ // Given: 通常のエラー
119
+ const error = new Error("Other error");
120
+ // When/Then: タイムアウトエラーとして検出されない
121
+ expect(isMcpTimeoutError(error)).toBe(false);
122
+ });
123
+ });
124
+ describe("isRetryableError", () => {
125
+ it("タイムアウトエラーをリトライ可能と判定する", () => {
126
+ // Given: タイムアウトエラー
127
+ const error = new Error("タイムアウトしました");
128
+ // When/Then: リトライ可能と判定される
129
+ expect(isRetryableError(error)).toBe(true);
130
+ });
131
+ it("ECONNRESET エラーをリトライ可能と判定する", () => {
132
+ // Given: ECONNRESET エラー
133
+ const error = new Error("ECONNRESET: Connection reset by peer");
134
+ // When/Then: リトライ可能と判定される
135
+ expect(isRetryableError(error)).toBe(true);
136
+ });
137
+ it("ETIMEDOUT エラーをリトライ可能と判定する", () => {
138
+ // Given: ETIMEDOUT エラー
139
+ const error = new Error("ETIMEDOUT: Connection timed out");
140
+ // When/Then: リトライ可能と判定される
141
+ expect(isRetryableError(error)).toBe(true);
142
+ });
143
+ it("ECONNREFUSED エラーをリトライ可能と判定する", () => {
144
+ // Given: ECONNREFUSED エラー
145
+ const error = new Error("ECONNREFUSED: Connection refused");
146
+ // When/Then: リトライ可能と判定される
147
+ expect(isRetryableError(error)).toBe(true);
148
+ });
149
+ it("バリデーションエラーをリトライ不可能と判定する", () => {
150
+ // Given: バリデーションエラー
151
+ const error = new Error("Validation error: Invalid input");
152
+ // When/Then: リトライ不可能と判定される
153
+ expect(isRetryableError(error)).toBe(false);
154
+ });
155
+ it("通常のエラーをリトライ不可能と判定する", () => {
156
+ // Given: 通常のエラー
157
+ const error = new Error("Something went wrong");
158
+ // When/Then: リトライ不可能と判定される
159
+ expect(isRetryableError(error)).toBe(false);
160
+ });
161
+ });
162
+ });
163
+ //# sourceMappingURL=retry-utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-utils.test.js","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/retry-utils.test.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare class VibeKanbanClient {
11
11
  private client;
12
12
  private transport;
13
13
  private connected;
14
+ private cleanupHandlerAttached;
14
15
  constructor();
15
16
  /**
16
17
  * MCP サーバーに接続
@@ -62,9 +63,13 @@ export declare class VibeKanbanClient {
62
63
  /**
63
64
  * タスクを作成
64
65
  * 内部で create_issue ツールを呼び出す(旧API: create_task → 新API: create_issue)
66
+ * @param projectId プロジェクトID
67
+ * @param title タイトル
68
+ * @param description 説明
69
+ * @param parentIssueId 親IssueのID(サブ課題を作成する場合)
65
70
  * @returns タスクID
66
71
  */
67
- createTask(projectId: string, title: string, description: string): Promise<string>;
72
+ createTask(projectId: string, title: string, description: string, parentIssueId?: string): Promise<string>;
68
73
  /**
69
74
  * タスクを更新
70
75
  * 内部で update_issue ツールを呼び出す(旧API: update_task → 新API: update_issue)
@@ -79,18 +84,15 @@ export declare class VibeKanbanClient {
79
84
  createParentIssue(projectId: string, title: string, description: string): Promise<string>;
80
85
  /**
81
86
  * サブIssueを作成(タスクグループ対応)
82
- * B案: MCP create_issue + REST PATCH parent_issue_id
87
+ * MCP create_issue parent_issue_id を直接指定
83
88
  *
84
89
  * @param projectId プロジェクトID
85
90
  * @param parentIssueId 親IssueのID
86
91
  * @param title タイトル
87
92
  * @param description 説明
88
- * @param restClient REST APIクライアント(PATCH用)
89
93
  * @returns サブIssue ID
90
94
  */
91
- createSubIssue(projectId: string, parentIssueId: string, title: string, description: string, restClient: {
92
- setParentIssue: (issueId: string, parentIssueId: string) => Promise<void>;
93
- }): Promise<string>;
95
+ createSubIssue(projectId: string, parentIssueId: string, title: string, description: string): Promise<string>;
94
96
  /**
95
97
  * Issueを削除
96
98
  * サブIssue作成失敗時のクリーンアップ用
@@ -112,6 +114,14 @@ export declare class VibeKanbanClient {
112
114
  * ステータス値を内部形式に変換(現在は変換不要、将来の拡張用に保持)
113
115
  */
114
116
  private normalizeStatusForReceive;
117
+ /**
118
+ * SIGINT/SIGTERMハンドラーを登録
119
+ */
120
+ private attachCleanupHandlers;
121
+ /**
122
+ * transportを強制的にクローズ
123
+ */
124
+ private forceCloseTransport;
115
125
  /**
116
126
  * 接続状態を確認
117
127
  */
@@ -1 +1 @@
1
- {"version":3,"file":"vibe-kanban-client.d.ts","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/vibe-kanban-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,SAAS,CAAS;;IAS1B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B9B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAc5D;;;OAGG;IACG,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAcxE;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiB7D;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAY5C;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAiB7D;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBxF;;;;OAIG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,GAChE,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;OAIG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/F;;;;;;;;;;OAUG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE;QAAE,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GACxF,OAAO,CAAC,MAAM,CAAC;IAsClB;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C;;;OAGG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,EACtD,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC;IAoB7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAIjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiDvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAgB5B"}
1
+ {"version":3,"file":"vibe-kanban-client.d.ts","sourceRoot":"","sources":["../../../../src/commands/task-loop/lib/vibe-kanban-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,sBAAsB,CAAS;;IASvC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC9B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAc5D;;;OAGG;IACG,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAcxE;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiB7D;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAY5C;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAiB7D;;;;;;;;OAQG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;IAoBlB;;;;OAIG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,GAChE,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;OAIG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/F;;;;;;;;;OASG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;IAMlB;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C;;;OAGG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,EACtD,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC;IAoB7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAIjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;YACW,mBAAmB;IAWjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiDvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAgB5B"}