agkan 3.13.0 → 3.15.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.
- package/README.ja.md +47 -0
- package/README.md +47 -0
- package/dist/board/BulkRunService.d.ts.map +1 -1
- package/dist/board/BulkRunService.js +21 -5
- package/dist/board/BulkRunService.js.map +1 -1
- package/dist/board/boardRoutes.d.ts +4 -4
- package/dist/board/boardRoutes.d.ts.map +1 -1
- package/dist/board/boardRoutes.js +71 -122
- package/dist/board/boardRoutes.js.map +1 -1
- package/dist/board/boardStyles.d.ts +1 -1
- package/dist/board/boardStyles.d.ts.map +1 -1
- package/dist/board/boardStyles.js +5 -1
- package/dist/board/boardStyles.js.map +1 -1
- package/dist/board/client/main.js +228 -154
- package/dist/board/server.d.ts.map +1 -1
- package/dist/board/server.js +5 -2
- package/dist/board/server.js.map +1 -1
- package/dist/cli/commands/agent-guide.d.ts.map +1 -1
- package/dist/cli/commands/agent-guide.js +8 -1
- package/dist/cli/commands/agent-guide.js.map +1 -1
- package/dist/cli/commands/block/add.d.ts.map +1 -1
- package/dist/cli/commands/block/add.js +2 -0
- package/dist/cli/commands/block/add.js.map +1 -1
- package/dist/cli/commands/block/remove.d.ts.map +1 -1
- package/dist/cli/commands/block/remove.js +2 -0
- package/dist/cli/commands/block/remove.js.map +1 -1
- package/dist/cli/commands/config/get.d.ts +5 -0
- package/dist/cli/commands/config/get.d.ts.map +1 -0
- package/dist/cli/commands/config/get.js +97 -0
- package/dist/cli/commands/config/get.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +9 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/meta/delete.d.ts.map +1 -1
- package/dist/cli/commands/meta/delete.js +6 -0
- package/dist/cli/commands/meta/delete.js.map +1 -1
- package/dist/cli/commands/meta/set.d.ts.map +1 -1
- package/dist/cli/commands/meta/set.js +7 -0
- package/dist/cli/commands/meta/set.js.map +1 -1
- package/dist/cli/commands/tag/attach.d.ts.map +1 -1
- package/dist/cli/commands/tag/attach.js +10 -19
- package/dist/cli/commands/tag/attach.js.map +1 -1
- package/dist/cli/commands/tag/delete.d.ts.map +1 -1
- package/dist/cli/commands/tag/delete.js +8 -20
- package/dist/cli/commands/tag/delete.js.map +1 -1
- package/dist/cli/commands/tag/detach.d.ts.map +1 -1
- package/dist/cli/commands/tag/detach.js +10 -19
- package/dist/cli/commands/tag/detach.js.map +1 -1
- package/dist/cli/commands/tag/rename.d.ts.map +1 -1
- package/dist/cli/commands/tag/rename.js +8 -20
- package/dist/cli/commands/tag/rename.js.map +1 -1
- package/dist/cli/commands/task/list.d.ts.map +1 -1
- package/dist/cli/commands/task/list.js +9 -13
- package/dist/cli/commands/task/list.js.map +1 -1
- package/dist/cli/commands/task/update.d.ts.map +1 -1
- package/dist/cli/commands/task/update.js +2 -0
- package/dist/cli/commands/task/update.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/boardNotify.d.ts +2 -0
- package/dist/cli/utils/boardNotify.d.ts.map +1 -0
- package/dist/cli/utils/boardNotify.js +16 -0
- package/dist/cli/utils/boardNotify.js.map +1 -0
- package/dist/cli/utils/constants.d.ts +2 -0
- package/dist/cli/utils/constants.d.ts.map +1 -0
- package/dist/cli/utils/constants.js +5 -0
- package/dist/cli/utils/constants.js.map +1 -0
- package/dist/cli/utils/service-container.d.ts.map +1 -1
- package/dist/cli/utils/service-container.js +8 -1
- package/dist/cli/utils/service-container.js.map +1 -1
- package/dist/cli/utils/tag-resolver.d.ts +21 -0
- package/dist/cli/utils/tag-resolver.d.ts.map +1 -0
- package/dist/cli/utils/tag-resolver.js +22 -0
- package/dist/cli/utils/tag-resolver.js.map +1 -0
- package/dist/db/config.d.ts +8 -0
- package/dist/db/config.d.ts.map +1 -1
- package/dist/db/config.js +14 -0
- package/dist/db/config.js.map +1 -1
- package/dist/hooks/hook-stop.mjs +77 -32
- package/dist/services/BoardEventService.d.ts +9 -0
- package/dist/services/BoardEventService.d.ts.map +1 -0
- package/dist/services/BoardEventService.js +22 -0
- package/dist/services/BoardEventService.js.map +1 -0
- package/dist/services/ClaudeProcessService.d.ts.map +1 -1
- package/dist/services/ClaudeProcessService.js +3 -1
- package/dist/services/ClaudeProcessService.js.map +1 -1
- package/dist/services/TaskService.d.ts +3 -1
- package/dist/services/TaskService.d.ts.map +1 -1
- package/dist/services/TaskService.js +27 -15
- package/dist/services/TaskService.js.map +1 -1
- package/dist/terminal/PtySessionService.d.ts.map +1 -1
- package/dist/terminal/PtySessionService.js +13 -3
- package/dist/terminal/PtySessionService.js.map +1 -1
- package/package.json +1 -1
|
@@ -9252,6 +9252,13 @@ ${h2.join(`
|
|
|
9252
9252
|
sendResize();
|
|
9253
9253
|
};
|
|
9254
9254
|
}
|
|
9255
|
+
function reattachTerminalForNewSession(taskId) {
|
|
9256
|
+
if (_currentTaskId !== taskId || !_terminal) return;
|
|
9257
|
+
const container = _terminal.element?.parentElement;
|
|
9258
|
+
if (!(container instanceof HTMLElement)) return;
|
|
9259
|
+
detachTerminal();
|
|
9260
|
+
attachTerminalToTab(taskId, container);
|
|
9261
|
+
}
|
|
9255
9262
|
function fitTerminal() {
|
|
9256
9263
|
_fitAddon?.fit();
|
|
9257
9264
|
}
|
|
@@ -9264,6 +9271,125 @@ ${h2.join(`
|
|
|
9264
9271
|
}
|
|
9265
9272
|
}
|
|
9266
9273
|
|
|
9274
|
+
// src/board/client/connectionStatus.ts
|
|
9275
|
+
var streamStates = {
|
|
9276
|
+
board: "connecting",
|
|
9277
|
+
"run-logs": "connected"
|
|
9278
|
+
// Not always active; treated as connected when not in use
|
|
9279
|
+
};
|
|
9280
|
+
var activeRunLogs = false;
|
|
9281
|
+
var listeners = [];
|
|
9282
|
+
function computeOverallState() {
|
|
9283
|
+
const monitored = activeRunLogs ? ["board", "run-logs"] : ["board"];
|
|
9284
|
+
if (monitored.some((k) => streamStates[k] === "disconnected")) return "disconnected";
|
|
9285
|
+
if (monitored.some((k) => streamStates[k] === "connecting")) return "connecting";
|
|
9286
|
+
return "connected";
|
|
9287
|
+
}
|
|
9288
|
+
var lastEmitted = null;
|
|
9289
|
+
function notify() {
|
|
9290
|
+
const state = computeOverallState();
|
|
9291
|
+
if (state === lastEmitted) return;
|
|
9292
|
+
lastEmitted = state;
|
|
9293
|
+
listeners.forEach((fn2) => fn2(state));
|
|
9294
|
+
}
|
|
9295
|
+
function setStreamState(key, state) {
|
|
9296
|
+
streamStates[key] = state;
|
|
9297
|
+
notify();
|
|
9298
|
+
}
|
|
9299
|
+
function setRunLogsActive(active) {
|
|
9300
|
+
activeRunLogs = active;
|
|
9301
|
+
if (!active) streamStates["run-logs"] = "connected";
|
|
9302
|
+
notify();
|
|
9303
|
+
}
|
|
9304
|
+
function onConnectionStateChange(fn2) {
|
|
9305
|
+
listeners.push(fn2);
|
|
9306
|
+
fn2(computeOverallState());
|
|
9307
|
+
return () => {
|
|
9308
|
+
const idx = listeners.indexOf(fn2);
|
|
9309
|
+
if (idx !== -1) listeners.splice(idx, 1);
|
|
9310
|
+
};
|
|
9311
|
+
}
|
|
9312
|
+
var reconnectCallbacks = [];
|
|
9313
|
+
function registerReconnect(fn2) {
|
|
9314
|
+
reconnectCallbacks.push(fn2);
|
|
9315
|
+
return () => {
|
|
9316
|
+
const idx = reconnectCallbacks.indexOf(fn2);
|
|
9317
|
+
if (idx !== -1) reconnectCallbacks.splice(idx, 1);
|
|
9318
|
+
};
|
|
9319
|
+
}
|
|
9320
|
+
function triggerReconnectAll() {
|
|
9321
|
+
reconnectCallbacks.forEach((fn2) => fn2());
|
|
9322
|
+
}
|
|
9323
|
+
|
|
9324
|
+
// src/board/client/boardStream.ts
|
|
9325
|
+
var listeners2 = /* @__PURE__ */ new Map();
|
|
9326
|
+
var es2 = null;
|
|
9327
|
+
var stopped = false;
|
|
9328
|
+
var backoffMs = 1e3;
|
|
9329
|
+
var reconnectTimer = null;
|
|
9330
|
+
function getListeners(type) {
|
|
9331
|
+
if (!listeners2.has(type)) listeners2.set(type, []);
|
|
9332
|
+
return listeners2.get(type);
|
|
9333
|
+
}
|
|
9334
|
+
function dispatch(type, data) {
|
|
9335
|
+
getListeners(type).forEach((fn2) => fn2(data));
|
|
9336
|
+
}
|
|
9337
|
+
function connect() {
|
|
9338
|
+
es2 = new EventSource("/api/board/stream");
|
|
9339
|
+
setStreamState("board", "connecting");
|
|
9340
|
+
es2.addEventListener("open", () => {
|
|
9341
|
+
setStreamState("board", "connected");
|
|
9342
|
+
backoffMs = 1e3;
|
|
9343
|
+
});
|
|
9344
|
+
const boardEvents = ["board-update", "attention", "running-tasks", "confirm-complete"];
|
|
9345
|
+
boardEvents.forEach((type) => {
|
|
9346
|
+
es2.addEventListener(type, (event) => {
|
|
9347
|
+
try {
|
|
9348
|
+
dispatch(type, JSON.parse(event.data));
|
|
9349
|
+
} catch {
|
|
9350
|
+
}
|
|
9351
|
+
});
|
|
9352
|
+
});
|
|
9353
|
+
es2.onerror = () => {
|
|
9354
|
+
if (stopped) return;
|
|
9355
|
+
setStreamState("board", "disconnected");
|
|
9356
|
+
es2?.close();
|
|
9357
|
+
reconnectTimer = setTimeout(() => {
|
|
9358
|
+
backoffMs = Math.min(backoffMs * 2, 3e4);
|
|
9359
|
+
connect();
|
|
9360
|
+
}, backoffMs);
|
|
9361
|
+
};
|
|
9362
|
+
}
|
|
9363
|
+
function reconnectNow() {
|
|
9364
|
+
if (stopped) return;
|
|
9365
|
+
if (reconnectTimer !== null) {
|
|
9366
|
+
clearTimeout(reconnectTimer);
|
|
9367
|
+
reconnectTimer = null;
|
|
9368
|
+
}
|
|
9369
|
+
es2?.close();
|
|
9370
|
+
backoffMs = 1e3;
|
|
9371
|
+
connect();
|
|
9372
|
+
}
|
|
9373
|
+
function initBoardStream() {
|
|
9374
|
+
stopped = false;
|
|
9375
|
+
connect();
|
|
9376
|
+
const unregister = registerReconnect(reconnectNow);
|
|
9377
|
+
return () => {
|
|
9378
|
+
stopped = true;
|
|
9379
|
+
if (reconnectTimer !== null) clearTimeout(reconnectTimer);
|
|
9380
|
+
unregister();
|
|
9381
|
+
es2?.close();
|
|
9382
|
+
};
|
|
9383
|
+
}
|
|
9384
|
+
function addBoardStreamListener(type, fn2) {
|
|
9385
|
+
getListeners(type).push(fn2);
|
|
9386
|
+
return () => {
|
|
9387
|
+
const arr = getListeners(type);
|
|
9388
|
+
const idx = arr.indexOf(fn2);
|
|
9389
|
+
if (idx !== -1) arr.splice(idx, 1);
|
|
9390
|
+
};
|
|
9391
|
+
}
|
|
9392
|
+
|
|
9267
9393
|
// src/board/client/claudeButton.ts
|
|
9268
9394
|
var _runningTaskIds = /* @__PURE__ */ new Set();
|
|
9269
9395
|
var _planningTaskIds = /* @__PURE__ */ new Set();
|
|
@@ -9287,11 +9413,17 @@ ${h2.join(`
|
|
|
9287
9413
|
const indicator = document.getElementById("header-running-indicator");
|
|
9288
9414
|
if (indicator) {
|
|
9289
9415
|
indicator.style.display = runningTaskIds.size > 0 ? "" : "none";
|
|
9416
|
+
if (runningTaskIds.size === 0) {
|
|
9417
|
+
closeRunningIndicatorDropdown();
|
|
9418
|
+
}
|
|
9290
9419
|
}
|
|
9291
9420
|
const terminalTaskId = getCurrentTerminalTaskId();
|
|
9292
9421
|
if (terminalTaskId !== null && previousRunning.has(terminalTaskId) && !runningTaskIds.has(terminalTaskId)) {
|
|
9293
9422
|
detachTerminal();
|
|
9294
9423
|
}
|
|
9424
|
+
if (terminalTaskId !== null && !previousRunning.has(terminalTaskId) && runningTaskIds.has(terminalTaskId)) {
|
|
9425
|
+
reattachTerminalForNewSession(terminalTaskId);
|
|
9426
|
+
}
|
|
9295
9427
|
document.querySelectorAll(".claude-run-split").forEach((split) => {
|
|
9296
9428
|
const taskId = Number(split.dataset.taskId);
|
|
9297
9429
|
if (runningTaskIds.has(taskId)) {
|
|
@@ -9527,18 +9659,19 @@ ${h2.join(`
|
|
|
9527
9659
|
document.querySelectorAll(".column-body").forEach((body) => {
|
|
9528
9660
|
attachClaudeButtonListeners(body);
|
|
9529
9661
|
});
|
|
9662
|
+
initRunningIndicatorDropdown();
|
|
9530
9663
|
document.addEventListener("click", () => {
|
|
9531
9664
|
document.querySelectorAll(".claude-run-split.open").forEach((el2) => {
|
|
9532
9665
|
el2.classList.remove("open");
|
|
9533
9666
|
});
|
|
9667
|
+
closeRunningIndicatorDropdown();
|
|
9534
9668
|
});
|
|
9535
|
-
|
|
9536
|
-
|
|
9537
|
-
const data = JSON.parse(event.data);
|
|
9669
|
+
addBoardStreamListener("running-tasks", (raw) => {
|
|
9670
|
+
const data = raw;
|
|
9538
9671
|
handleRunningTasksUpdate(data.tasks);
|
|
9539
9672
|
});
|
|
9540
|
-
|
|
9541
|
-
const data =
|
|
9673
|
+
addBoardStreamListener("confirm-complete", (raw) => {
|
|
9674
|
+
const data = raw;
|
|
9542
9675
|
const label = data.targetStatus === "done" ? "Done" : data.targetStatus === "review" ? "Review" : data.targetStatus;
|
|
9543
9676
|
const confirmed = window.confirm(`Task #${data.taskId} completed successfully.
|
|
9544
9677
|
Move task to "${label}"?`);
|
|
@@ -9551,6 +9684,49 @@ Move task to "${label}"?`);
|
|
|
9551
9684
|
}
|
|
9552
9685
|
});
|
|
9553
9686
|
}
|
|
9687
|
+
function getTaskTitleById(taskId) {
|
|
9688
|
+
const card = document.querySelector(`.card[data-task-id="${taskId}"]`);
|
|
9689
|
+
if (card) {
|
|
9690
|
+
const titleEl = card.querySelector(".card-title");
|
|
9691
|
+
if (titleEl?.textContent) return titleEl.textContent.trim();
|
|
9692
|
+
}
|
|
9693
|
+
return `Task #${taskId}`;
|
|
9694
|
+
}
|
|
9695
|
+
function closeRunningIndicatorDropdown() {
|
|
9696
|
+
const dropdown = document.getElementById("running-indicator-dropdown");
|
|
9697
|
+
if (dropdown) dropdown.remove();
|
|
9698
|
+
}
|
|
9699
|
+
function initRunningIndicatorDropdown() {
|
|
9700
|
+
const indicator = document.getElementById("header-running-indicator");
|
|
9701
|
+
if (!indicator) return;
|
|
9702
|
+
indicator.style.cursor = "pointer";
|
|
9703
|
+
indicator.addEventListener("click", (e) => {
|
|
9704
|
+
e.stopPropagation();
|
|
9705
|
+
const existing = document.getElementById("running-indicator-dropdown");
|
|
9706
|
+
if (existing) {
|
|
9707
|
+
existing.remove();
|
|
9708
|
+
return;
|
|
9709
|
+
}
|
|
9710
|
+
const dropdown = document.createElement("div");
|
|
9711
|
+
dropdown.id = "running-indicator-dropdown";
|
|
9712
|
+
dropdown.className = "running-indicator-dropdown";
|
|
9713
|
+
for (const taskId of _runningTaskIds) {
|
|
9714
|
+
const item = document.createElement("div");
|
|
9715
|
+
item.className = "running-indicator-item";
|
|
9716
|
+
item.textContent = getTaskTitleById(taskId);
|
|
9717
|
+
item.addEventListener("click", async (ev) => {
|
|
9718
|
+
ev.stopPropagation();
|
|
9719
|
+
closeRunningIndicatorDropdown();
|
|
9720
|
+
await openTerminalTab(taskId);
|
|
9721
|
+
});
|
|
9722
|
+
dropdown.appendChild(item);
|
|
9723
|
+
}
|
|
9724
|
+
const wrapper = indicator.parentElement;
|
|
9725
|
+
if (wrapper) {
|
|
9726
|
+
wrapper.appendChild(dropdown);
|
|
9727
|
+
}
|
|
9728
|
+
});
|
|
9729
|
+
}
|
|
9554
9730
|
|
|
9555
9731
|
// src/board/client/dragDrop.ts
|
|
9556
9732
|
var _redrawDependencies = null;
|
|
@@ -9924,57 +10100,6 @@ Move task to "${label}"?`);
|
|
|
9924
10100
|
renderPills();
|
|
9925
10101
|
}
|
|
9926
10102
|
|
|
9927
|
-
// src/board/client/connectionStatus.ts
|
|
9928
|
-
var streamStates = {
|
|
9929
|
-
board: "connecting",
|
|
9930
|
-
attention: "connecting",
|
|
9931
|
-
"run-logs": "connected"
|
|
9932
|
-
// Not always active; treated as connected when not in use
|
|
9933
|
-
};
|
|
9934
|
-
var activeRunLogs = false;
|
|
9935
|
-
var listeners = [];
|
|
9936
|
-
function computeOverallState() {
|
|
9937
|
-
const monitored = activeRunLogs ? ["board", "attention", "run-logs"] : ["board", "attention"];
|
|
9938
|
-
if (monitored.some((k) => streamStates[k] === "disconnected")) return "disconnected";
|
|
9939
|
-
if (monitored.some((k) => streamStates[k] === "connecting")) return "connecting";
|
|
9940
|
-
return "connected";
|
|
9941
|
-
}
|
|
9942
|
-
var lastEmitted = null;
|
|
9943
|
-
function notify() {
|
|
9944
|
-
const state = computeOverallState();
|
|
9945
|
-
if (state === lastEmitted) return;
|
|
9946
|
-
lastEmitted = state;
|
|
9947
|
-
listeners.forEach((fn2) => fn2(state));
|
|
9948
|
-
}
|
|
9949
|
-
function setStreamState(key, state) {
|
|
9950
|
-
streamStates[key] = state;
|
|
9951
|
-
notify();
|
|
9952
|
-
}
|
|
9953
|
-
function setRunLogsActive(active) {
|
|
9954
|
-
activeRunLogs = active;
|
|
9955
|
-
if (!active) streamStates["run-logs"] = "connected";
|
|
9956
|
-
notify();
|
|
9957
|
-
}
|
|
9958
|
-
function onConnectionStateChange(fn2) {
|
|
9959
|
-
listeners.push(fn2);
|
|
9960
|
-
fn2(computeOverallState());
|
|
9961
|
-
return () => {
|
|
9962
|
-
const idx = listeners.indexOf(fn2);
|
|
9963
|
-
if (idx !== -1) listeners.splice(idx, 1);
|
|
9964
|
-
};
|
|
9965
|
-
}
|
|
9966
|
-
var reconnectCallbacks = [];
|
|
9967
|
-
function registerReconnect(fn2) {
|
|
9968
|
-
reconnectCallbacks.push(fn2);
|
|
9969
|
-
return () => {
|
|
9970
|
-
const idx = reconnectCallbacks.indexOf(fn2);
|
|
9971
|
-
if (idx !== -1) reconnectCallbacks.splice(idx, 1);
|
|
9972
|
-
};
|
|
9973
|
-
}
|
|
9974
|
-
function triggerReconnectAll() {
|
|
9975
|
-
reconnectCallbacks.forEach((fn2) => fn2());
|
|
9976
|
-
}
|
|
9977
|
-
|
|
9978
10103
|
// src/board/client/boardPolling.ts
|
|
9979
10104
|
var activeFilters = { tagIds: [], priorities: [], assignee: "", searchText: "" };
|
|
9980
10105
|
function buildFilterParams() {
|
|
@@ -10129,43 +10254,10 @@ Move task to "${label}"?`);
|
|
|
10129
10254
|
}
|
|
10130
10255
|
}
|
|
10131
10256
|
function initBoardPolling() {
|
|
10132
|
-
|
|
10133
|
-
|
|
10134
|
-
|
|
10135
|
-
|
|
10136
|
-
function connect() {
|
|
10137
|
-
es2 = new EventSource("/api/board/stream");
|
|
10138
|
-
setStreamState("board", "connecting");
|
|
10139
|
-
es2.addEventListener("open", () => {
|
|
10140
|
-
setStreamState("board", "connected");
|
|
10141
|
-
backoffMs = 1e3;
|
|
10142
|
-
});
|
|
10143
|
-
es2.addEventListener("update", () => {
|
|
10144
|
-
if (draggedCard !== null || isPendingStatusUpdate) return;
|
|
10145
|
-
refreshBoardCards();
|
|
10146
|
-
});
|
|
10147
|
-
es2.onerror = () => {
|
|
10148
|
-
if (stopped) return;
|
|
10149
|
-
setStreamState("board", "disconnected");
|
|
10150
|
-
es2.close();
|
|
10151
|
-
reconnectTimer = setTimeout(() => {
|
|
10152
|
-
backoffMs = Math.min(backoffMs * 2, 3e4);
|
|
10153
|
-
connect();
|
|
10154
|
-
}, backoffMs);
|
|
10155
|
-
};
|
|
10156
|
-
}
|
|
10157
|
-
function reconnectNow() {
|
|
10158
|
-
if (stopped) return;
|
|
10159
|
-
if (reconnectTimer !== null) {
|
|
10160
|
-
clearTimeout(reconnectTimer);
|
|
10161
|
-
reconnectTimer = null;
|
|
10162
|
-
}
|
|
10163
|
-
es2.close();
|
|
10164
|
-
backoffMs = 1e3;
|
|
10165
|
-
connect();
|
|
10166
|
-
}
|
|
10167
|
-
connect();
|
|
10168
|
-
registerReconnect(reconnectNow);
|
|
10257
|
+
addBoardStreamListener("board-update", () => {
|
|
10258
|
+
if (draggedCard !== null || isPendingStatusUpdate) return;
|
|
10259
|
+
refreshBoardCards();
|
|
10260
|
+
});
|
|
10169
10261
|
}
|
|
10170
10262
|
|
|
10171
10263
|
// src/board/client/addTaskModal.ts
|
|
@@ -10496,6 +10588,16 @@ Move task to "${label}"?`);
|
|
|
10496
10588
|
await loadBranchSuggestions();
|
|
10497
10589
|
renderBranchDropdown(branchDropdown, branchInput.value);
|
|
10498
10590
|
});
|
|
10591
|
+
branchInput.addEventListener("keydown", (e) => {
|
|
10592
|
+
if (branchInput.readOnly && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
10593
|
+
e.preventDefault();
|
|
10594
|
+
branchInput.readOnly = false;
|
|
10595
|
+
branchInput.classList.remove("branch-auto-mode");
|
|
10596
|
+
branchInternalValue = e.key;
|
|
10597
|
+
branchInput.value = e.key;
|
|
10598
|
+
renderBranchDropdown(branchDropdown, e.key);
|
|
10599
|
+
}
|
|
10600
|
+
});
|
|
10499
10601
|
branchInput.addEventListener("input", () => {
|
|
10500
10602
|
if (branchInternalValue === BRANCH_AUTO_GENERATE) {
|
|
10501
10603
|
branchInput.readOnly = false;
|
|
@@ -10648,11 +10750,11 @@ Move task to "${label}"?`);
|
|
|
10648
10750
|
});
|
|
10649
10751
|
}
|
|
10650
10752
|
function subscribeRunLogs(taskId, onUpdate, onError) {
|
|
10651
|
-
const
|
|
10652
|
-
|
|
10753
|
+
const es3 = new EventSource("/api/claude/tasks/" + taskId + "/run-logs/stream");
|
|
10754
|
+
es3.addEventListener("open", () => {
|
|
10653
10755
|
setStreamState("run-logs", "connected");
|
|
10654
10756
|
});
|
|
10655
|
-
|
|
10757
|
+
es3.addEventListener("update", (event) => {
|
|
10656
10758
|
const msgEvent = event;
|
|
10657
10759
|
try {
|
|
10658
10760
|
const data = JSON.parse(msgEvent.data);
|
|
@@ -10660,11 +10762,11 @@ Move task to "${label}"?`);
|
|
|
10660
10762
|
} catch {
|
|
10661
10763
|
}
|
|
10662
10764
|
});
|
|
10663
|
-
|
|
10765
|
+
es3.onerror = () => {
|
|
10664
10766
|
setStreamState("run-logs", "disconnected");
|
|
10665
10767
|
onError();
|
|
10666
10768
|
};
|
|
10667
|
-
return
|
|
10769
|
+
return es3;
|
|
10668
10770
|
}
|
|
10669
10771
|
|
|
10670
10772
|
// src/board/client/detailPanelHtml.ts
|
|
@@ -11252,6 +11354,16 @@ Move task to "${label}"?`);
|
|
|
11252
11354
|
await loadDetailBranchSuggestions();
|
|
11253
11355
|
renderDetailBranchDropdown(branchDropdown, branchInput.value);
|
|
11254
11356
|
});
|
|
11357
|
+
branchInput.addEventListener("keydown", (e) => {
|
|
11358
|
+
if (branchInput.readOnly && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
11359
|
+
e.preventDefault();
|
|
11360
|
+
branchInput.readOnly = false;
|
|
11361
|
+
branchInput.classList.remove("branch-auto-mode");
|
|
11362
|
+
branchInternalValue2 = e.key;
|
|
11363
|
+
branchInput.value = e.key;
|
|
11364
|
+
renderDetailBranchDropdown(branchDropdown, e.key);
|
|
11365
|
+
}
|
|
11366
|
+
});
|
|
11255
11367
|
branchInput.addEventListener("input", () => {
|
|
11256
11368
|
if (branchInternalValue2 === BRANCH_AUTO_GENERATE3) {
|
|
11257
11369
|
branchInput.readOnly = false;
|
|
@@ -11457,7 +11569,12 @@ Move task to "${label}"?`);
|
|
|
11457
11569
|
});
|
|
11458
11570
|
document.addEventListener("keydown", (e) => {
|
|
11459
11571
|
if (e.key === "Escape" && detailPanel.classList.contains("open")) {
|
|
11460
|
-
|
|
11572
|
+
const addModal = document.getElementById("add-modal");
|
|
11573
|
+
if (addModal?.classList.contains("show")) {
|
|
11574
|
+
document.getElementById("add-cancel")?.click();
|
|
11575
|
+
} else {
|
|
11576
|
+
closeDetailPanel();
|
|
11577
|
+
}
|
|
11461
11578
|
}
|
|
11462
11579
|
});
|
|
11463
11580
|
document.getElementById("detail-tabs")?.addEventListener("click", (e) => {
|
|
@@ -12210,59 +12327,15 @@ Move task to "${label}"?`);
|
|
|
12210
12327
|
slot.classList.remove("is-active");
|
|
12211
12328
|
}
|
|
12212
12329
|
}
|
|
12213
|
-
function
|
|
12214
|
-
|
|
12215
|
-
|
|
12216
|
-
|
|
12217
|
-
|
|
12218
|
-
|
|
12219
|
-
|
|
12220
|
-
setStreamState("attention", "connecting");
|
|
12221
|
-
es2.addEventListener("open", () => {
|
|
12222
|
-
setStreamState("attention", "connected");
|
|
12223
|
-
backoffMs = 1e3;
|
|
12224
|
-
});
|
|
12225
|
-
es2.onmessage = (e) => {
|
|
12226
|
-
let msg;
|
|
12227
|
-
try {
|
|
12228
|
-
msg = JSON.parse(e.data);
|
|
12229
|
-
} catch {
|
|
12230
|
-
return;
|
|
12231
|
-
}
|
|
12232
|
-
if (msg.type === "snapshot") {
|
|
12233
|
-
msg.taskIds.forEach((id) => applyAttention(id, true));
|
|
12234
|
-
} else if (msg.type === "update") {
|
|
12235
|
-
applyAttention(msg.taskId, msg.needsAttention);
|
|
12236
|
-
}
|
|
12237
|
-
};
|
|
12238
|
-
es2.onerror = () => {
|
|
12239
|
-
if (stopped) return;
|
|
12240
|
-
setStreamState("attention", "disconnected");
|
|
12241
|
-
es2.close();
|
|
12242
|
-
reconnectTimer = setTimeout(() => {
|
|
12243
|
-
backoffMs = Math.min(backoffMs * 2, 3e4);
|
|
12244
|
-
connect();
|
|
12245
|
-
}, backoffMs);
|
|
12246
|
-
};
|
|
12247
|
-
}
|
|
12248
|
-
function reconnectNow() {
|
|
12249
|
-
if (stopped) return;
|
|
12250
|
-
if (reconnectTimer !== null) {
|
|
12251
|
-
clearTimeout(reconnectTimer);
|
|
12252
|
-
reconnectTimer = null;
|
|
12330
|
+
function initAttentionStream() {
|
|
12331
|
+
addBoardStreamListener("attention", (raw) => {
|
|
12332
|
+
const msg = raw;
|
|
12333
|
+
if (msg.type === "snapshot") {
|
|
12334
|
+
msg.taskIds.forEach((id) => applyAttention(id, true));
|
|
12335
|
+
} else if (msg.type === "update") {
|
|
12336
|
+
applyAttention(msg.taskId, msg.needsAttention);
|
|
12253
12337
|
}
|
|
12254
|
-
|
|
12255
|
-
backoffMs = 1e3;
|
|
12256
|
-
connect();
|
|
12257
|
-
}
|
|
12258
|
-
connect();
|
|
12259
|
-
const unregister = registerReconnect(reconnectNow);
|
|
12260
|
-
return () => {
|
|
12261
|
-
stopped = true;
|
|
12262
|
-
if (reconnectTimer !== null) clearTimeout(reconnectTimer);
|
|
12263
|
-
unregister();
|
|
12264
|
-
es2.close();
|
|
12265
|
-
};
|
|
12338
|
+
});
|
|
12266
12339
|
}
|
|
12267
12340
|
|
|
12268
12341
|
// src/board/client/bulkRunButton.ts
|
|
@@ -12351,14 +12424,15 @@ Move task to "${label}"?`);
|
|
|
12351
12424
|
document.addEventListener("click", () => {
|
|
12352
12425
|
split.classList.remove("open");
|
|
12353
12426
|
});
|
|
12354
|
-
const
|
|
12355
|
-
|
|
12427
|
+
const es3 = new EventSource("/api/claude/bulk-run/stream");
|
|
12428
|
+
es3.addEventListener("update", (event) => {
|
|
12356
12429
|
const data = JSON.parse(event.data);
|
|
12357
12430
|
setRunningState(data.mode === "running");
|
|
12358
12431
|
});
|
|
12359
12432
|
}
|
|
12360
12433
|
|
|
12361
12434
|
// src/board/client/main.ts
|
|
12435
|
+
initBoardStream();
|
|
12362
12436
|
initDragDrop();
|
|
12363
12437
|
initAutoScroll();
|
|
12364
12438
|
initAddTaskModal();
|
|
@@ -12375,7 +12449,7 @@ Move task to "${label}"?`);
|
|
|
12375
12449
|
});
|
|
12376
12450
|
initClaudeButton();
|
|
12377
12451
|
initBulkRunButton();
|
|
12378
|
-
|
|
12452
|
+
initAttentionStream();
|
|
12379
12453
|
})();
|
|
12380
12454
|
/*! Bundled license information:
|
|
12381
12455
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/board/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,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;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/board/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,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;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAKlE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,wBAAgB,cAAc,CAC5B,WAAW,CAAC,EAAE,WAAW,EACzB,cAAc,CAAC,EAAE,cAAc,EAC/B,eAAe,CAAC,EAAE,eAAe,EACjC,EAAE,CAAC,EAAE,cAAc,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,UAAU,EACvB,SAAS,CAAC,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,cAAc,EAC/B,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,IAAI,CAkBN;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAgDxE"}
|
package/dist/board/server.js
CHANGED
|
@@ -18,6 +18,7 @@ const CommentService_1 = require("../services/CommentService");
|
|
|
18
18
|
const TaskBlockService_1 = require("../services/TaskBlockService");
|
|
19
19
|
const PtySessionService_1 = require("../terminal/PtySessionService");
|
|
20
20
|
const AttentionStateService_1 = require("../services/AttentionStateService");
|
|
21
|
+
const BoardEventService_1 = require("../services/BoardEventService");
|
|
21
22
|
const wsTerminalServer_1 = require("../terminal/wsTerminalServer");
|
|
22
23
|
const connection_1 = require("../db/connection");
|
|
23
24
|
const config_1 = require("../db/config");
|
|
@@ -44,6 +45,7 @@ function createBoardApp(taskService, taskTagService, metadataService, db, boardT
|
|
|
44
45
|
function startBoardServer(port, boardTitle) {
|
|
45
46
|
const resolvedDb = (0, connection_1.getStorageBackend)();
|
|
46
47
|
const attentionStateService = new AttentionStateService_1.AttentionStateService();
|
|
48
|
+
const boardEventService = new BoardEventService_1.BoardEventService();
|
|
47
49
|
const hookSettingsDataDir = process.env.AGKAN_DATA_DIR
|
|
48
50
|
? (0, path_2.join)(process.env.AGKAN_DATA_DIR, 'board-hooks')
|
|
49
51
|
: (0, path_2.join)((0, os_1.homedir)(), '.agkan', 'board-hooks');
|
|
@@ -55,7 +57,7 @@ function startBoardServer(port, boardTitle) {
|
|
|
55
57
|
hookSettingsDataDir,
|
|
56
58
|
});
|
|
57
59
|
const services = {
|
|
58
|
-
ts: new TaskService_1.TaskService(resolvedDb),
|
|
60
|
+
ts: new TaskService_1.TaskService(resolvedDb, boardEventService),
|
|
59
61
|
tts: new TaskTagService_1.TaskTagService(resolvedDb),
|
|
60
62
|
tags: new TagService_1.TagService(resolvedDb),
|
|
61
63
|
ms: new MetadataService_1.MetadataService(resolvedDb),
|
|
@@ -65,9 +67,10 @@ function startBoardServer(port, boardTitle) {
|
|
|
65
67
|
boardTitle,
|
|
66
68
|
configDir: resolvedConfigDir,
|
|
67
69
|
ptySessionService: ptyService,
|
|
70
|
+
boardEventService,
|
|
71
|
+
attentionStateService,
|
|
68
72
|
};
|
|
69
73
|
(0, boardRoutes_1.registerBoardRoutes)(app, services);
|
|
70
|
-
(0, boardRoutes_1.registerAttentionStreamRoute)(app, { attentionStateService });
|
|
71
74
|
(0, boardRoutes_1.registerHookRoutes)(app, { attentionStateService, ptySessionService: ptyService });
|
|
72
75
|
(0, boardRoutes_1.registerTestHookTokenRoute)(app);
|
|
73
76
|
const server = (0, node_server_1.serve)({ fetch: app.fetch, port }, (info) => {
|
package/dist/board/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/board/server.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/board/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-guide.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent-guide.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-guide.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent-guide.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkUpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe7D"}
|
|
@@ -308,10 +308,17 @@ agkan task list --tree
|
|
|
308
308
|
|
|
309
309
|
## Configuration
|
|
310
310
|
|
|
311
|
-
Place \`.agkan.yml\` in the project root to customize
|
|
311
|
+
Place \`.agkan.yml\` in the project root to customize agkan behavior:
|
|
312
312
|
|
|
313
313
|
\`\`\`yaml
|
|
314
|
+
# Database path
|
|
314
315
|
path: ./.agkan/data.db
|
|
316
|
+
|
|
317
|
+
# Permission mode for Claude CLI (default: auto)
|
|
318
|
+
# Valid values: auto | acceptEdits | bypassPermissions | default | dontAsk | plan | skipPermissions
|
|
319
|
+
# Note: skipPermissions maps to --dangerously-skip-permissions (legacy behavior).
|
|
320
|
+
# All other values use --permission-mode <value>.
|
|
321
|
+
permissionMode: auto
|
|
315
322
|
\`\`\`
|
|
316
323
|
|
|
317
324
|
Or use the environment variable: \`AGENT_KANBAN_DB_PATH=/custom/path/data.db\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-guide.js","sourceRoot":"","sources":["../../../src/cli/commands/agent-guide.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"agent-guide.js","sourceRoot":"","sources":["../../../src/cli/commands/agent-guide.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAoUH,wDAeC;AA/UD,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8T3B,CAAC;AAEF,SAAgB,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gGAAgG,CAAC;SAClH,MAAM,CAAC,CAAC,OAA2B,EAAE,EAAE;QACtC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,0IAA0I,CAC3I,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/block/add.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/block/add.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiMpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe3D"}
|
|
@@ -11,6 +11,7 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
11
11
|
const service_container_1 = require("../../utils/service-container");
|
|
12
12
|
const error_handler_1 = require("../../utils/error-handler");
|
|
13
13
|
const output_formatter_1 = require("../../utils/output-formatter");
|
|
14
|
+
const boardNotify_1 = require("../../utils/boardNotify");
|
|
14
15
|
/**
|
|
15
16
|
* Validate blocker and blocked task IDs
|
|
16
17
|
*/
|
|
@@ -155,6 +156,7 @@ async function handleBlockAdd(blockerId, blockedId, options) {
|
|
|
155
156
|
// Add blocking relationship
|
|
156
157
|
addBlockRelationship(taskBlockService, blockerTaskId, blockedTaskId, formatter);
|
|
157
158
|
outputBlockSuccess(formatter, blockerTask, blockedTask);
|
|
159
|
+
await (0, boardNotify_1.notifyBoard)();
|
|
158
160
|
}
|
|
159
161
|
catch (error) {
|
|
160
162
|
const msg = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/cli/commands/block/add.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/cli/commands/block/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/block/remove.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/block/remove.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8G9D"}
|