agkan 3.4.0 → 3.6.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 (57) hide show
  1. package/README.ja.md +64 -0
  2. package/README.md +64 -0
  3. package/dist/board/BulkRunService.d.ts +33 -0
  4. package/dist/board/BulkRunService.d.ts.map +1 -0
  5. package/dist/board/BulkRunService.js +134 -0
  6. package/dist/board/BulkRunService.js.map +1 -0
  7. package/dist/board/boardRenderer.d.ts.map +1 -1
  8. package/dist/board/boardRenderer.js +13 -22
  9. package/dist/board/boardRenderer.js.map +1 -1
  10. package/dist/board/boardRoutes.d.ts +15 -2
  11. package/dist/board/boardRoutes.d.ts.map +1 -1
  12. package/dist/board/boardRoutes.js +260 -38
  13. package/dist/board/boardRoutes.js.map +1 -1
  14. package/dist/board/boardStyles.d.ts +1 -1
  15. package/dist/board/boardStyles.d.ts.map +1 -1
  16. package/dist/board/boardStyles.js +25 -0
  17. package/dist/board/boardStyles.js.map +1 -1
  18. package/dist/board/client/board.js +35 -36
  19. package/dist/board/client/main.css +252 -0
  20. package/dist/board/client/main.js +12063 -0
  21. package/dist/board/server.d.ts +2 -2
  22. package/dist/board/server.d.ts.map +1 -1
  23. package/dist/board/server.js +44 -8
  24. package/dist/board/server.js.map +1 -1
  25. package/dist/cli/commands/init.d.ts.map +1 -1
  26. package/dist/cli/commands/init.js +13 -0
  27. package/dist/cli/commands/init.js.map +1 -1
  28. package/dist/db/config.d.ts +10 -0
  29. package/dist/db/config.d.ts.map +1 -1
  30. package/dist/db/config.js.map +1 -1
  31. package/dist/hooks/claudeHookSettings.d.ts +2 -0
  32. package/dist/hooks/claudeHookSettings.d.ts.map +1 -0
  33. package/dist/hooks/claudeHookSettings.js +54 -0
  34. package/dist/hooks/claudeHookSettings.js.map +1 -0
  35. package/dist/hooks/hook-attention.mjs +54 -0
  36. package/dist/hooks/hook-stop.mjs +111 -0
  37. package/dist/services/AttentionStateService.d.ts +16 -0
  38. package/dist/services/AttentionStateService.d.ts.map +1 -0
  39. package/dist/services/AttentionStateService.js +42 -0
  40. package/dist/services/AttentionStateService.js.map +1 -0
  41. package/dist/services/ClaudeProcessService.d.ts +8 -1
  42. package/dist/services/ClaudeProcessService.d.ts.map +1 -1
  43. package/dist/services/ClaudeProcessService.js +25 -8
  44. package/dist/services/ClaudeProcessService.js.map +1 -1
  45. package/dist/terminal/PtySessionService.d.ts +50 -0
  46. package/dist/terminal/PtySessionService.d.ts.map +1 -0
  47. package/dist/terminal/PtySessionService.js +310 -0
  48. package/dist/terminal/PtySessionService.js.map +1 -0
  49. package/dist/terminal/wsTerminalServer.d.ts +7 -0
  50. package/dist/terminal/wsTerminalServer.d.ts.map +1 -0
  51. package/dist/terminal/wsTerminalServer.js +81 -0
  52. package/dist/terminal/wsTerminalServer.js.map +1 -0
  53. package/dist/utils/hookToken.d.ts +3 -0
  54. package/dist/utils/hookToken.d.ts.map +1 -0
  55. package/dist/utils/hookToken.js +24 -0
  56. package/dist/utils/hookToken.js.map +1 -0
  57. package/package.json +11 -5
package/README.ja.md CHANGED
@@ -953,6 +953,70 @@ board:
953
953
  title: "マイプロジェクトボード"
954
954
  ```
955
955
 
956
+ ### モデル設定
957
+
958
+ `.agkan.yml` の `models` セクションでは、ボード経由でplanningおよびrunコマンドを実行する際に使用するClaudeモデルとeffortレベルを指定できます。
959
+
960
+ #### 利用可能なフィールド
961
+
962
+ | フィールド | 型 | デフォルト値 | 説明 |
963
+ |----------|-----|------------|------|
964
+ | `models.planning.model` | string | (Claude CLIのデフォルト) | planningコマンド実行時に使用するモデル |
965
+ | `models.planning.effort` | string | (Claude CLIのデフォルト) | planningコマンドのeffortレベル(`low`, `medium`, `high`, `xhigh`, `max`) |
966
+ | `models.run.model` | string | (Claude CLIのデフォルト) | run/prコマンド実行時に使用するモデル |
967
+ | `models.run.effort` | string | (Claude CLIのデフォルト) | run/prコマンドのeffortレベル(`low`, `medium`, `high`, `xhigh`, `max`) |
968
+
969
+ フルモデル名とClaude CLIのエイリアスの両方が使用できます。`model` と `effort` はいずれも省略可能です。
970
+
971
+ #### 設定例
972
+
973
+ ```yaml
974
+ # データベースファイルのパス
975
+ path: ./.agkan/data.db
976
+
977
+ # モデル設定
978
+ models:
979
+ planning:
980
+ model: claude-opus-4-7
981
+ effort: high
982
+ run:
983
+ model: claude-sonnet-4-6
984
+ effort: low
985
+ ```
986
+
987
+ #### エイリアスの使用
988
+
989
+ フルモデル名の代わりに短いエイリアスを使用できます:
990
+
991
+ ```yaml
992
+ models:
993
+ planning:
994
+ model: opus
995
+ effort: high
996
+ run:
997
+ model: sonnet
998
+ ```
999
+
1000
+ 使用可能なエイリアス: `opus`、`sonnet`、`haiku`(Claude CLIが解決します)
1001
+
1002
+ #### フィールドの詳細
1003
+
1004
+ - **`models.planning`**: ボードがplanningタスクを実行する際に使用するClaudeモデルとeffortレベルを指定します。`opus` や `claude-opus-4-7` など高性能なモデルと高いeffortレベルの使用を推奨します。
1005
+ ```yaml
1006
+ models:
1007
+ planning:
1008
+ model: opus
1009
+ effort: high
1010
+ ```
1011
+
1012
+ - **`models.run`**: ボードがrunまたはprコマンドを実行する際に使用するClaudeモデルとeffortレベルを指定します。`pr` コマンドもこの値を使用します。
1013
+ ```yaml
1014
+ models:
1015
+ run:
1016
+ model: sonnet
1017
+ effort: low
1018
+ ```
1019
+
956
1020
  ## 実装予定機能
957
1021
 
958
1022
  ### タスクの添付ファイル
package/README.md CHANGED
@@ -967,6 +967,70 @@ board:
967
967
  title: "My Project Board"
968
968
  ```
969
969
 
970
+ ### Models Settings
971
+
972
+ The `models` section in `.agkan.yml` allows you to specify the Claude model and effort level used when executing planning and run commands via the board.
973
+
974
+ #### Available Fields
975
+
976
+ | Field | Type | Default | Description |
977
+ |-------|------|---------|-------------|
978
+ | `models.planning.model` | string | (Claude CLI default) | Model used for planning command execution |
979
+ | `models.planning.effort` | string | (Claude CLI default) | Effort level for planning command (`low`, `medium`, `high`, `xhigh`, `max`) |
980
+ | `models.run.model` | string | (Claude CLI default) | Model used for run/pr command execution |
981
+ | `models.run.effort` | string | (Claude CLI default) | Effort level for run/pr command (`low`, `medium`, `high`, `xhigh`, `max`) |
982
+
983
+ Both full model names and Claude CLI aliases are supported. Both `model` and `effort` are optional within each entry.
984
+
985
+ #### Configuration Example
986
+
987
+ ```yaml
988
+ # Database path
989
+ path: ./.agkan/data.db
990
+
991
+ # Model settings
992
+ models:
993
+ planning:
994
+ model: claude-opus-4-7
995
+ effort: high
996
+ run:
997
+ model: claude-sonnet-4-6
998
+ effort: low
999
+ ```
1000
+
1001
+ #### Using Aliases
1002
+
1003
+ You can use short aliases instead of full model names:
1004
+
1005
+ ```yaml
1006
+ models:
1007
+ planning:
1008
+ model: opus
1009
+ effort: high
1010
+ run:
1011
+ model: sonnet
1012
+ ```
1013
+
1014
+ Supported aliases: `opus`, `sonnet`, `haiku` (resolved by the Claude CLI)
1015
+
1016
+ #### Field Details
1017
+
1018
+ - **`models.planning`**: Specifies the Claude model and effort level used when the board executes planning tasks. Recommended to use a high-capability model and effort level such as `opus` with `high`.
1019
+ ```yaml
1020
+ models:
1021
+ planning:
1022
+ model: opus
1023
+ effort: high
1024
+ ```
1025
+
1026
+ - **`models.run`**: Specifies the Claude model and effort level used when the board executes run or pr commands. The `pr` command also uses this value.
1027
+ ```yaml
1028
+ models:
1029
+ run:
1030
+ model: sonnet
1031
+ effort: low
1032
+ ```
1033
+
970
1034
  ## Planned Features
971
1035
 
972
1036
  ### Task Attachments
@@ -0,0 +1,33 @@
1
+ import { TaskService } from '../services/TaskService';
2
+ import { TaskBlockService } from '../services/TaskBlockService';
3
+ import { PtySessionService } from '../terminal/PtySessionService';
4
+ export type BulkRunCommand = 'direct' | 'pr';
5
+ type BulkRunState = 'idle' | 'running';
6
+ export interface BulkRunStatus {
7
+ mode: BulkRunState;
8
+ command: BulkRunCommand | null;
9
+ }
10
+ type StateChangeCallback = (status: BulkRunStatus) => void;
11
+ export declare class BulkRunService {
12
+ private ts;
13
+ private tbs;
14
+ private claudeProcess;
15
+ private mode;
16
+ private command;
17
+ private stopRequested;
18
+ private stateChangeSubscribers;
19
+ private runningChangeUnsub;
20
+ constructor(ts: TaskService, tbs: TaskBlockService, claudeProcess: PtySessionService);
21
+ getStatus(): BulkRunStatus;
22
+ subscribeStateChange(callback: StateChangeCallback): () => void;
23
+ private notifyStateChange;
24
+ start(command: BulkRunCommand): Promise<{
25
+ error?: string;
26
+ }>;
27
+ stop(): void;
28
+ private selectNextTask;
29
+ private finishLoop;
30
+ private runNext;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=BulkRunService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkRunService.d.ts","sourceRoot":"","sources":["../../src/board/BulkRunService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIlE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC7C,KAAK,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;CAChC;AAED,KAAK,mBAAmB,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;AAE3D,qBAAa,cAAc;IAQvB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,aAAa;IATvB,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,sBAAsB,CAAuC;IACrE,OAAO,CAAC,kBAAkB,CAA6B;gBAG7C,EAAE,EAAE,WAAW,EACf,GAAG,EAAE,gBAAgB,EACrB,aAAa,EAAE,iBAAiB;IAG1C,SAAS,IAAI,aAAa;IAI1B,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAK/D,OAAO,CAAC,iBAAiB;IAKnB,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAYjE,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,UAAU;YAQJ,OAAO;CAoDtB"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BulkRunService = void 0;
4
+ const config_1 = require("../db/config");
5
+ const models_1 = require("../models");
6
+ class BulkRunService {
7
+ ts;
8
+ tbs;
9
+ claudeProcess;
10
+ mode = 'idle';
11
+ command = null;
12
+ stopRequested = false;
13
+ stateChangeSubscribers = new Set();
14
+ runningChangeUnsub = null;
15
+ constructor(ts, tbs, claudeProcess) {
16
+ this.ts = ts;
17
+ this.tbs = tbs;
18
+ this.claudeProcess = claudeProcess;
19
+ }
20
+ getStatus() {
21
+ return { mode: this.mode, command: this.command };
22
+ }
23
+ subscribeStateChange(callback) {
24
+ this.stateChangeSubscribers.add(callback);
25
+ return () => this.stateChangeSubscribers.delete(callback);
26
+ }
27
+ notifyStateChange() {
28
+ const status = this.getStatus();
29
+ this.stateChangeSubscribers.forEach((cb) => cb(status));
30
+ }
31
+ async start(command) {
32
+ if (this.mode === 'running') {
33
+ return { error: 'Bulk run already in progress' };
34
+ }
35
+ this.mode = 'running';
36
+ this.command = command;
37
+ this.stopRequested = false;
38
+ this.notifyStateChange();
39
+ void this.runNext();
40
+ return {};
41
+ }
42
+ stop() {
43
+ this.stopRequested = true;
44
+ this.runningChangeUnsub?.();
45
+ this.runningChangeUnsub = null;
46
+ if (this.mode === 'running') {
47
+ this.mode = 'idle';
48
+ this.command = null;
49
+ this.notifyStateChange();
50
+ }
51
+ }
52
+ selectNextTask() {
53
+ const tasks = this.ts.listTasks({ status: 'ready' }, 'id', 'asc');
54
+ const allBlocks = this.tbs.getAllBlocks();
55
+ // Build map of blocked_task_id -> blocker_task_ids
56
+ const blockedByMap = new Map();
57
+ for (const block of allBlocks) {
58
+ if (!blockedByMap.has(block.blocked_task_id)) {
59
+ blockedByMap.set(block.blocked_task_id, []);
60
+ }
61
+ blockedByMap.get(block.blocked_task_id).push(block.blocker_task_id);
62
+ }
63
+ const available = tasks.filter((task) => {
64
+ const blockerIds = blockedByMap.get(task.id) ?? [];
65
+ return blockerIds.every((bid) => {
66
+ const blocker = this.ts.getTask(bid);
67
+ return !blocker || blocker.status === 'done' || blocker.status === 'closed';
68
+ });
69
+ });
70
+ available.sort((a, b) => {
71
+ const oa = a.priority ? (models_1.PRIORITY_ORDER[a.priority] ?? 4) : 4;
72
+ const ob = b.priority ? (models_1.PRIORITY_ORDER[b.priority] ?? 4) : 4;
73
+ if (oa !== ob)
74
+ return oa - ob;
75
+ return a.id - b.id;
76
+ });
77
+ return available.length > 0 ? available[0].id : null;
78
+ }
79
+ finishLoop() {
80
+ this.runningChangeUnsub?.();
81
+ this.runningChangeUnsub = null;
82
+ this.mode = 'idle';
83
+ this.command = null;
84
+ this.notifyStateChange();
85
+ }
86
+ async runNext() {
87
+ if (this.stopRequested) {
88
+ this.finishLoop();
89
+ return;
90
+ }
91
+ // If another process is already running, wait for it to finish
92
+ const running = this.claudeProcess.listRunningTasks();
93
+ if (running.length > 0) {
94
+ this.runningChangeUnsub?.();
95
+ this.runningChangeUnsub = this.claudeProcess.subscribeRunningTasksChange(() => {
96
+ if (this.claudeProcess.listRunningTasks().length === 0) {
97
+ this.runningChangeUnsub?.();
98
+ this.runningChangeUnsub = null;
99
+ void this.runNext();
100
+ }
101
+ });
102
+ return;
103
+ }
104
+ const taskId = this.selectNextTask();
105
+ if (taskId === null) {
106
+ this.finishLoop();
107
+ return;
108
+ }
109
+ const command = this.command;
110
+ const ptyCommand = command === 'pr' ? 'pr' : 'run';
111
+ const prompt = command === 'pr' ? `Task ID: ${taskId}\n/agkan-subtask` : `Task ID: ${taskId}\n/agkan-subtask-direct`;
112
+ const config = (0, config_1.loadConfig)();
113
+ const rawConfig = config.models?.run;
114
+ const model = rawConfig?.model?.trim() || undefined;
115
+ const effort = rawConfig?.effort?.trim() || undefined;
116
+ try {
117
+ await this.claudeProcess.startProcess(taskId, prompt, ptyCommand, model, effort);
118
+ }
119
+ catch {
120
+ // Start failed - try next task
121
+ void this.runNext();
122
+ return;
123
+ }
124
+ // When this task's process exits, run next
125
+ const unsubscribe = this.claudeProcess.subscribeOutput(taskId, (evt) => {
126
+ if (evt.kind === 'done' || evt.kind === 'error') {
127
+ unsubscribe();
128
+ void this.runNext();
129
+ }
130
+ });
131
+ }
132
+ }
133
+ exports.BulkRunService = BulkRunService;
134
+ //# sourceMappingURL=BulkRunService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkRunService.js","sourceRoot":"","sources":["../../src/board/BulkRunService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"boardRenderer.d.ts","sourceRoot":"","sources":["../../src/board/boardRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAA8B,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,KAAK,WAAW,GAAG,UAAU,CAAC;AAC9B,eAAO,MAAM,QAAQ,EAAE,WAAW,EAA8E,CAAC;AAEjH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAQrD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAQrD,CAAC;AAWF,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,GAAE,MAAM,EAAO,EAAE,WAAW,GAAE,MAAM,EAAO,GAAG,MAAM,CA2BnH;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC1B,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAa,GAC7E,MAAM,CAuBR;AA8HD,wBAAgB,WAAW,CACzB,aAAa,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,EACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC1B,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAa,GAC7E,MAAM,CA+CR;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAMpD;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,EACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC1B,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAa,GAC7E;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAWxD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAYzE;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,KAAK,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,GAClE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAc1D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAEzE"}
1
+ {"version":3,"file":"boardRenderer.d.ts","sourceRoot":"","sources":["../../src/board/boardRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAA8B,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,KAAK,WAAW,GAAG,UAAU,CAAC;AAC9B,eAAO,MAAM,QAAQ,EAAE,WAAW,EAA8E,CAAC;AAEjH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAQrD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAQrD,CAAC;AAWF,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,GAAE,MAAM,EAAO,EAAE,WAAW,GAAE,MAAM,EAAO,GAAG,MAAM,CA4BnH;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC1B,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAa,GAC7E,MAAM,CA4BR;AAgHD,wBAAgB,WAAW,CACzB,aAAa,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,EACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC1B,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAa,GAC7E,MAAM,CA+CR;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAMpD;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,EACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC1B,QAAQ,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAa,GAC7E;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAWxD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAYzE;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,KAAK,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,GAClE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAc1D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAEzE"}
@@ -60,6 +60,7 @@ function renderCard(task, tags, blockedByIds = [], blockingIds = []) {
60
60
  <div class="card-header">
61
61
  <span class="card-id">#${task.id}</span>
62
62
  ${priorityBadge}
63
+ <span class="attention-indicator" aria-live="polite"></span>
63
64
  ${cardActions}
64
65
  </div>
65
66
  <div class="card-title">${escapeHtml(task.title)}</div>
@@ -75,12 +76,15 @@ function renderColumn(status, tasks, tagMap, blockMap = new Map()) {
75
76
  return renderCard(t, tagMap.get(t.id) || [], blockRels.blockedBy, blockRels.blocking);
76
77
  })
77
78
  .join('');
79
+ const bulkRunBtn = status === 'ready'
80
+ ? `<div class="bulk-run-split" id="bulk-run-split"><button class="bulk-run-btn" id="bulk-run-main-btn">&#9654; Run all</button><button class="bulk-run-toggle" id="bulk-run-toggle" title="More options">&#9660;</button><div class="bulk-run-menu" id="bulk-run-menu"><button class="bulk-run-menu-item" data-command="direct">&#9654; Run all (current branch)</button><button class="bulk-run-menu-item" data-command="pr">&#9654; Run all (create PR)</button></div></div>`
81
+ : '';
78
82
  return `
79
83
  <div class="column" data-status="${status}">
80
84
  <div class="column-header" style="border-top-color:${color}">
81
85
  <span class="column-title" style="color:${color}">${label}</span>
82
86
  <span class="column-header-right">
83
- <span class="column-count">${tasks.length}</span>
87
+ ${bulkRunBtn}<span class="column-count">${tasks.length}</span>
84
88
  <button class="add-btn" data-status="${status}" title="Add task">+</button>
85
89
  </span>
86
90
  </div>
@@ -94,11 +98,14 @@ function getAddTaskModal() {
94
98
  return `
95
99
  <div class="modal-overlay" id="add-modal">
96
100
  <div class="modal">
97
- <h2>Add Task</h2>
101
+ <h2 class="modal-title-with-icon">
102
+ <svg class="modal-title-icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/></svg>
103
+ Add Task
104
+ </h2>
98
105
  <label for="add-title">Title</label>
99
106
  <input type="text" id="add-title" placeholder="Task title">
100
107
  <label for="add-body">Description</label>
101
- <textarea id="add-body" placeholder="Optional"></textarea>
108
+ <textarea id="add-body" placeholder="Describe the task..."></textarea>
102
109
  <label for="add-priority">Priority</label>
103
110
  <select id="add-priority">
104
111
  <option value="">None</option>
@@ -127,23 +134,6 @@ function getContextMenuAndToast() {
127
134
  </div>
128
135
  <div class="toast" id="toast">Failed to update task</div>`;
129
136
  }
130
- function getClaudeStreamModal() {
131
- return `
132
- <div class="modal-overlay" id="claude-stream-modal">
133
- <div class="modal" style="width:680px;">
134
- <div class="claude-stream-modal-header">
135
- <h2 id="claude-stream-modal-title">Claude Output</h2>
136
- <button id="claude-stream-modal-close">&#x2715;</button>
137
- </div>
138
- <div id="claude-stream-log" class="claude-stream-log"></div>
139
- <div class="claude-stream-modal-footer">
140
- <span id="claude-stream-status" class="claude-stream-status">Connecting...</span>
141
- <button id="claude-stream-stop-btn" class="claude-stream-stop-btn">Stop</button>
142
- <button id="claude-stream-close-btn">Close</button>
143
- </div>
144
- </div>
145
- </div>`;
146
- }
147
137
  function getPurgeAndVersionModals() {
148
138
  return `
149
139
  <div class="modal-overlay" id="purge-confirm-modal">
@@ -199,10 +189,11 @@ function getBoardBodyStatic() {
199
189
  var allStatuses = ${JSON.stringify(exports.STATUSES)};
200
190
  var statusLabels = ${JSON.stringify(exports.STATUS_LABELS)};
201
191
  var allPriorities = ${JSON.stringify(models_1.PRIORITIES)};`;
202
- return `${getAddTaskModal()}${getContextMenuAndToast()}${getPurgeAndVersionModals()}${getClaudeStreamModal()}
192
+ return `${getAddTaskModal()}${getContextMenuAndToast()}${getPurgeAndVersionModals()}
203
193
  <script>${configScript}
204
194
  </script>
205
- <script src="/static/board.js"></script>`;
195
+ <link rel="stylesheet" href="/static/main.css">
196
+ <script src="/static/main.js"></script>`;
206
197
  }
207
198
  function renderBoard(tasksByStatus, tagMap, boardTitle, theme, blockMap = new Map()) {
208
199
  const columns = exports.STATUSES.map((status) => renderColumn(status, tasksByStatus.get(status) || [], tagMap, blockMap)).join('');
@@ -1 +1 @@
1
- {"version":3,"file":"boardRenderer.js","sourceRoot":"","sources":["../../src/board/boardRenderer.ts"],"names":[],"mappings":";;;AAsCA,gCA2BC;AAED,oCA4BC;AA8HD,kCAqDC;AAED,wCAMC;AAED,wDAeC;AAED,gDAYC;AAED,sCAgBC;AAED,8CAEC;AA/UD,sCAAyE;AAGzE,+CAA6C;AAC7C,iDAAsD;AAGzC,QAAA,QAAQ,GAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEpG,QAAA,aAAa,GAAgC;IACxD,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEW,QAAA,aAAa,GAAgC;IACxD,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,SAAS;IACtB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,UAAU,CAAC,IAAU,EAAE,IAAW,EAAE,eAAyB,EAAE,EAAE,cAAwB,EAAE;IACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,aAAa,GAAG,QAAQ;QAC5B,CAAC,CAAC,kCAAkC,UAAU,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,SAAS;QAC1F,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACpG,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/F,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,WAAW,GAAG,yEAAyE,IAAI,CAAC,EAAE,kDAAkD,IAAI,CAAC,EAAE,yEAAyE,IAAI,CAAC,EAAE,0HAA0H,IAAI,CAAC,EAAE,mHAAmH,IAAI,CAAC,EAAE,wEAAwE,CAAC;IAC7iB,CAAC;SAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,WAAW,GAAG,2EAA2E,IAAI,CAAC,EAAE,qCAAqC,CAAC;IACxI,CAAC;IAED,OAAO;kDACyC,IAAI,CAAC,EAAE,kBAAkB,IAAI,CAAC,MAAM,sBAAsB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,aAAa,GAAG,YAAY;;iCAEnJ,IAAI,CAAC,EAAE;UAC9B,aAAa;UACb,WAAW;;gCAEW,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9C,SAAS,CAAC,CAAC,CAAC,0BAA0B,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE;WACzD,CAAC;AACZ,CAAC;AAED,SAAgB,YAAY,CAC1B,MAAmB,EACnB,KAAa,EACb,MAA0B,EAC1B,WAAqE,IAAI,GAAG,EAAE;IAE9E,MAAM,KAAK,GAAG,qBAAa,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,qBAAa,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACxE,OAAO,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxF,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO;yCACgC,MAAM;6DACc,KAAK;oDACd,KAAK,KAAK,KAAK;;yCAE1B,KAAK,CAAC,MAAM;mDACF,MAAM;;;2CAGd,MAAM;YACrC,KAAK;;aAEJ,CAAC;AACd,CAAC;AAED,MAAM,sBAAsB,GAAG,mBAAU,CAAC,GAAG,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CACrH,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAErB,SAAS,eAAe;IACtB,OAAO;;;;;;;;;;;UAWC,sBAAsB;;;;;;;;;;;;;;;;SAgBvB,CAAC;AACV,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO;;;;4DAImD,CAAC;AAC7D,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;;;;;;;;;;;;;SAcA,CAAC;AACV,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA+CA,CAAC;AACV,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,YAAY,GAAG,sBAAsB,IAAI,CAAC,SAAS,CAAC,qBAAa,CAAC;wBAClD,IAAI,CAAC,SAAS,CAAC,gBAAQ,CAAC;yBACvB,IAAI,CAAC,SAAS,CAAC,qBAAa,CAAC;0BAC5B,IAAI,CAAC,SAAS,CAAC,mBAAU,CAAC,GAAG,CAAC;IAEtD,OAAO,GAAG,eAAe,EAAE,GAAG,sBAAsB,EAAE,GAAG,wBAAwB,EAAE,GAAG,oBAAoB,EAAE;YAClG,YAAY;;2CAEmB,CAAC;AAC5C,CAAC;AAED,SAAgB,WAAW,CACzB,aAAsC,EACtC,MAA0B,EAC1B,UAAmB,EACnB,KAAc,EACd,WAAqE,IAAI,GAAG,EAAE;IAE9E,MAAM,OAAO,GAAG,gBAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACtC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CACxE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,6BAA6B,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5F,OAAO;iBACQ,aAAa;;;;;4CAKc,mCAAoB;WACrD,0BAAY;;;;8FAIuE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;yBAwB9E,OAAO,SAAS,eAAe;;;QAGhD,CAAC;AACT,CAAC;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,sBAAsB,CACpC,aAAsC,EACtC,MAA0B,EAC1B,WAAqE,IAAI,GAAG,EAAE;IAE9E,OAAO,gBAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YACxE,OAAO,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxF,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;IACpD,KAAK,MAAM,MAAM,IAAI,gBAAQ,EAAE,CAAC;QAC9B,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,aAAa,EAAE,CAAC;QAClD,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAgB,aAAa,CAC3B,MAAmE;IAEnE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuD,CAAC;IAChF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAE1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAwB;IACxD,OAAO,QAAQ,CAAC,0BAA0B,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"boardRenderer.js","sourceRoot":"","sources":["../../src/board/boardRenderer.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,9 @@ import { TagService } from '../services/TagService';
5
5
  import { MetadataService } from '../services/MetadataService';
6
6
  import { CommentService } from '../services/CommentService';
7
7
  import { TaskBlockService } from '../services/TaskBlockService';
8
- import { ClaudeProcessService } from '../services/ClaudeProcessService';
8
+ import { PtySessionService } from '../terminal/PtySessionService';
9
9
  import { StorageBackend } from '../db/types/repository';
10
+ import { AttentionStateService } from '../services/AttentionStateService';
10
11
  export type BoardServices = {
11
12
  ts: TaskService;
12
13
  tts: TaskTagService;
@@ -17,9 +18,21 @@ export type BoardServices = {
17
18
  database: StorageBackend;
18
19
  boardTitle?: string;
19
20
  configDir: string;
20
- claudeProcessService?: ClaudeProcessService;
21
+ ptySessionService?: PtySessionService;
21
22
  };
22
23
  export declare function registerTaskApiRoutes(app: Hono, services: BoardServices): void;
23
24
  export declare function registerConfigApiRoutes(app: Hono, configDir: string): void;
25
+ export interface HookRouteDeps {
26
+ attentionStateService: AttentionStateService;
27
+ ptySessionService: {
28
+ stopProcess: (taskId: number) => boolean;
29
+ };
30
+ }
31
+ export interface AttentionStreamDeps {
32
+ attentionStateService: AttentionStateService;
33
+ }
34
+ export declare function registerHookRoutes(app: Hono, deps: HookRouteDeps): void;
35
+ export declare function registerTestHookTokenRoute(app: Hono): void;
36
+ export declare function registerAttentionStreamRoute(app: Hono, deps: AttentionStreamDeps): void;
24
37
  export declare function registerBoardRoutes(app: Hono, services: BoardServices): void;
25
38
  //# sourceMappingURL=boardRoutes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"boardRoutes.d.ts","sourceRoot":"","sources":["../../src/board/boardRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAYxD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,WAAW,CAAC;IAChB,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,eAAe,CAAC;IACpB,EAAE,EAAE,cAAc,CAAC;IACnB,GAAG,EAAE,gBAAgB,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,CAAC;AAkUF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAO9E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA+B1E;AAyMD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAmG5E"}
1
+ {"version":3,"file":"boardRoutes.d.ts","sourceRoot":"","sources":["../../src/board/boardRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAcxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,WAAW,CAAC;IAChB,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,eAAe,CAAC;IACpB,EAAE,EAAE,cAAc,CAAC;IACnB,GAAG,EAAE,gBAAgB,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAkUF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAO9E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA+B1E;AAgQD,MAAM,WAAW,aAAa;IAC5B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,iBAAiB,EAAE;QAAE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,WAAW,mBAAmB;IAClC,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CA8BvE;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAK1D;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAiDvF;AAqED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAqH5E"}