agkan 3.6.0 → 3.10.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/dist/board/BulkRunService.d.ts +2 -0
- package/dist/board/BulkRunService.d.ts.map +1 -1
- package/dist/board/BulkRunService.js +23 -5
- package/dist/board/BulkRunService.js.map +1 -1
- package/dist/board/boardRenderer.d.ts.map +1 -1
- package/dist/board/boardRenderer.js +6 -1
- package/dist/board/boardRenderer.js.map +1 -1
- package/dist/board/boardRoutes.d.ts.map +1 -1
- package/dist/board/boardRoutes.js +48 -4
- 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 +27 -5
- package/dist/board/boardStyles.js.map +1 -1
- package/dist/board/client/main.js +383 -50
- package/dist/board/server.js +1 -1
- 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 -2
- package/dist/cli/commands/agent-guide.js.map +1 -1
- package/dist/cli/commands/task/add-helpers.d.ts.map +1 -1
- package/dist/cli/commands/task/add-helpers.js +1 -0
- package/dist/cli/commands/task/add-helpers.js.map +1 -1
- package/dist/cli/commands/task/add.d.ts.map +1 -1
- package/dist/cli/commands/task/add.js +2 -0
- package/dist/cli/commands/task/add.js.map +1 -1
- package/dist/cli/commands/task/copy.d.ts.map +1 -1
- package/dist/cli/commands/task/copy.js +2 -0
- package/dist/cli/commands/task/copy.js.map +1 -1
- package/dist/cli/commands/task/get.d.ts.map +1 -1
- package/dist/cli/commands/task/get.js +4 -0
- package/dist/cli/commands/task/get.js.map +1 -1
- package/dist/cli/commands/task/update-helpers.d.ts +1 -0
- package/dist/cli/commands/task/update-helpers.d.ts.map +1 -1
- package/dist/cli/commands/task/update-helpers.js +13 -4
- package/dist/cli/commands/task/update-helpers.js.map +1 -1
- package/dist/cli/commands/task/update.d.ts.map +1 -1
- package/dist/cli/commands/task/update.js +5 -1
- package/dist/cli/commands/task/update.js.map +1 -1
- package/dist/db/adapters/sqlite-storage-backend.d.ts.map +1 -1
- package/dist/db/adapters/sqlite-storage-backend.js +4 -3
- package/dist/db/adapters/sqlite-storage-backend.js.map +1 -1
- package/dist/db/migrations/20260516000000_add_branch_to_tasks.d.ts +3 -0
- package/dist/db/migrations/20260516000000_add_branch_to_tasks.d.ts.map +1 -0
- package/dist/db/migrations/20260516000000_add_branch_to_tasks.js +10 -0
- package/dist/db/migrations/20260516000000_add_branch_to_tasks.js.map +1 -0
- package/dist/db/migrations/index.d.ts.map +1 -1
- package/dist/db/migrations/index.js +6 -0
- package/dist/db/migrations/index.js.map +1 -1
- package/dist/hooks/hook-session-start.mjs +23 -0
- package/dist/hooks/hook-stop.mjs +18 -4
- package/dist/models/Task.d.ts +7 -0
- package/dist/models/Task.d.ts.map +1 -1
- package/dist/models/Task.js +5 -0
- package/dist/models/Task.js.map +1 -1
- package/dist/terminal/PtySessionService.d.ts +2 -1
- package/dist/terminal/PtySessionService.d.ts.map +1 -1
- package/dist/terminal/PtySessionService.js +37 -6
- package/dist/terminal/PtySessionService.js.map +1 -1
- package/package.json +1 -1
|
@@ -9924,6 +9924,57 @@ Move task to "${label}"?`);
|
|
|
9924
9924
|
renderPills();
|
|
9925
9925
|
}
|
|
9926
9926
|
|
|
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
|
+
|
|
9927
9978
|
// src/board/client/boardPolling.ts
|
|
9928
9979
|
var activeFilters = { tagIds: [], priorities: [], assignee: "", searchText: "" };
|
|
9929
9980
|
function buildFilterParams() {
|
|
@@ -10078,17 +10129,112 @@ Move task to "${label}"?`);
|
|
|
10078
10129
|
}
|
|
10079
10130
|
}
|
|
10080
10131
|
function initBoardPolling() {
|
|
10081
|
-
|
|
10082
|
-
|
|
10083
|
-
|
|
10084
|
-
|
|
10085
|
-
|
|
10132
|
+
let backoffMs = 1e3;
|
|
10133
|
+
let reconnectTimer = null;
|
|
10134
|
+
let es2;
|
|
10135
|
+
let stopped = false;
|
|
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);
|
|
10086
10169
|
}
|
|
10087
10170
|
|
|
10088
10171
|
// src/board/client/addTaskModal.ts
|
|
10172
|
+
var BRANCH_AUTO_GENERATE = "<auto-generate>";
|
|
10173
|
+
var BRANCH_AUTO_GENERATE_DISPLAY = "\u2728 Auto-generate on run";
|
|
10089
10174
|
var selectedTags = [];
|
|
10090
10175
|
var tagInputValue = "";
|
|
10091
10176
|
var tagFocusedIndex = -1;
|
|
10177
|
+
var branchSuggestions = [];
|
|
10178
|
+
var branchSuggestionsLoaded = false;
|
|
10179
|
+
var branchInternalValue = BRANCH_AUTO_GENERATE;
|
|
10180
|
+
async function loadBranchSuggestions() {
|
|
10181
|
+
if (branchSuggestionsLoaded) return;
|
|
10182
|
+
try {
|
|
10183
|
+
const res = await fetch("/api/git/branches");
|
|
10184
|
+
if (!res.ok) throw new Error("Server error");
|
|
10185
|
+
const data = await res.json();
|
|
10186
|
+
branchSuggestions = data.branches;
|
|
10187
|
+
} catch {
|
|
10188
|
+
branchSuggestions = [];
|
|
10189
|
+
}
|
|
10190
|
+
branchSuggestionsLoaded = true;
|
|
10191
|
+
}
|
|
10192
|
+
function setBranchAutoMode(input) {
|
|
10193
|
+
branchInternalValue = BRANCH_AUTO_GENERATE;
|
|
10194
|
+
input.value = BRANCH_AUTO_GENERATE_DISPLAY;
|
|
10195
|
+
input.readOnly = true;
|
|
10196
|
+
input.classList.add("branch-auto-mode");
|
|
10197
|
+
}
|
|
10198
|
+
function setBranchManualMode(input, branch) {
|
|
10199
|
+
branchInternalValue = branch;
|
|
10200
|
+
input.value = branch;
|
|
10201
|
+
input.readOnly = false;
|
|
10202
|
+
input.classList.remove("branch-auto-mode");
|
|
10203
|
+
}
|
|
10204
|
+
function renderBranchDropdown(dropdown, inputValue) {
|
|
10205
|
+
const input = document.getElementById("add-branch");
|
|
10206
|
+
const isAutoMode = branchInternalValue === BRANCH_AUTO_GENERATE;
|
|
10207
|
+
const q2 = isAutoMode ? "" : inputValue.trim().toLowerCase();
|
|
10208
|
+
const filtered = q2 ? branchSuggestions.filter((b2) => b2.toLowerCase().includes(q2)).slice(0, 10) : branchSuggestions.slice(0, 10);
|
|
10209
|
+
dropdown.innerHTML = "";
|
|
10210
|
+
const autoOpt = document.createElement("div");
|
|
10211
|
+
autoOpt.className = "branch-select-option branch-select-option-auto";
|
|
10212
|
+
autoOpt.textContent = BRANCH_AUTO_GENERATE_DISPLAY;
|
|
10213
|
+
if (branchInternalValue === BRANCH_AUTO_GENERATE) {
|
|
10214
|
+
autoOpt.classList.add("selected");
|
|
10215
|
+
}
|
|
10216
|
+
autoOpt.addEventListener("mousedown", (e) => {
|
|
10217
|
+
e.preventDefault();
|
|
10218
|
+
if (input) setBranchAutoMode(input);
|
|
10219
|
+
dropdown.style.display = "none";
|
|
10220
|
+
});
|
|
10221
|
+
dropdown.appendChild(autoOpt);
|
|
10222
|
+
const separator = document.createElement("div");
|
|
10223
|
+
separator.className = "branch-select-separator";
|
|
10224
|
+
dropdown.appendChild(separator);
|
|
10225
|
+
filtered.forEach((branch) => {
|
|
10226
|
+
const opt = document.createElement("div");
|
|
10227
|
+
opt.className = "branch-select-option";
|
|
10228
|
+
opt.textContent = branch;
|
|
10229
|
+
opt.addEventListener("mousedown", (e) => {
|
|
10230
|
+
e.preventDefault();
|
|
10231
|
+
if (input) setBranchManualMode(input, branch);
|
|
10232
|
+
dropdown.style.display = "none";
|
|
10233
|
+
});
|
|
10234
|
+
dropdown.appendChild(opt);
|
|
10235
|
+
});
|
|
10236
|
+
dropdown.style.display = "block";
|
|
10237
|
+
}
|
|
10092
10238
|
function getFilteredAddTags() {
|
|
10093
10239
|
const selectedIds = new Set(selectedTags.map((t) => t.id));
|
|
10094
10240
|
const available = allAvailableTags.filter((t) => !selectedIds.has(t.id));
|
|
@@ -10289,6 +10435,10 @@ Move task to "${label}"?`);
|
|
|
10289
10435
|
if (control && input) {
|
|
10290
10436
|
renderAddTagPills(control, input);
|
|
10291
10437
|
}
|
|
10438
|
+
const branchInput = document.getElementById("add-branch");
|
|
10439
|
+
if (branchInput) setBranchAutoMode(branchInput);
|
|
10440
|
+
const branchDropdown = document.getElementById("add-branch-dropdown");
|
|
10441
|
+
if (branchDropdown) branchDropdown.style.display = "none";
|
|
10292
10442
|
elements.addMetadataRows.innerHTML = "";
|
|
10293
10443
|
}
|
|
10294
10444
|
function openAddModal(elements, status) {
|
|
@@ -10317,7 +10467,8 @@ Move task to "${label}"?`);
|
|
|
10317
10467
|
status,
|
|
10318
10468
|
priority: elements.addPriority.value || null,
|
|
10319
10469
|
tags: tags.length > 0 ? tags : void 0,
|
|
10320
|
-
metadata: metadata.length > 0 ? metadata : void 0
|
|
10470
|
+
metadata: metadata.length > 0 ? metadata : void 0,
|
|
10471
|
+
branch: branchInternalValue || void 0
|
|
10321
10472
|
})
|
|
10322
10473
|
});
|
|
10323
10474
|
if (!res.ok) throw new Error("Server error");
|
|
@@ -10338,6 +10489,27 @@ Move task to "${label}"?`);
|
|
|
10338
10489
|
addMetadataRows: document.getElementById("add-metadata-rows")
|
|
10339
10490
|
};
|
|
10340
10491
|
initAddTagSelector();
|
|
10492
|
+
const branchInput = document.getElementById("add-branch");
|
|
10493
|
+
const branchDropdown = document.getElementById("add-branch-dropdown");
|
|
10494
|
+
if (branchInput && branchDropdown) {
|
|
10495
|
+
branchInput.addEventListener("focus", async () => {
|
|
10496
|
+
await loadBranchSuggestions();
|
|
10497
|
+
renderBranchDropdown(branchDropdown, branchInput.value);
|
|
10498
|
+
});
|
|
10499
|
+
branchInput.addEventListener("input", () => {
|
|
10500
|
+
if (branchInternalValue === BRANCH_AUTO_GENERATE) {
|
|
10501
|
+
branchInput.readOnly = false;
|
|
10502
|
+
branchInput.classList.remove("branch-auto-mode");
|
|
10503
|
+
}
|
|
10504
|
+
branchInternalValue = branchInput.value;
|
|
10505
|
+
renderBranchDropdown(branchDropdown, branchInput.value);
|
|
10506
|
+
});
|
|
10507
|
+
branchInput.addEventListener("blur", () => {
|
|
10508
|
+
setTimeout(() => {
|
|
10509
|
+
branchDropdown.style.display = "none";
|
|
10510
|
+
}, 150);
|
|
10511
|
+
});
|
|
10512
|
+
}
|
|
10341
10513
|
document.querySelectorAll(".add-btn").forEach((btn) => {
|
|
10342
10514
|
btn.addEventListener("click", (e) => {
|
|
10343
10515
|
e.stopPropagation();
|
|
@@ -10477,6 +10649,9 @@ Move task to "${label}"?`);
|
|
|
10477
10649
|
}
|
|
10478
10650
|
function subscribeRunLogs(taskId, onUpdate, onError) {
|
|
10479
10651
|
const es2 = new EventSource("/api/claude/tasks/" + taskId + "/run-logs/stream");
|
|
10652
|
+
es2.addEventListener("open", () => {
|
|
10653
|
+
setStreamState("run-logs", "connected");
|
|
10654
|
+
});
|
|
10480
10655
|
es2.addEventListener("update", (event) => {
|
|
10481
10656
|
const msgEvent = event;
|
|
10482
10657
|
try {
|
|
@@ -10485,11 +10660,16 @@ Move task to "${label}"?`);
|
|
|
10485
10660
|
} catch {
|
|
10486
10661
|
}
|
|
10487
10662
|
});
|
|
10488
|
-
es2.onerror = () =>
|
|
10663
|
+
es2.onerror = () => {
|
|
10664
|
+
setStreamState("run-logs", "disconnected");
|
|
10665
|
+
onError();
|
|
10666
|
+
};
|
|
10489
10667
|
return es2;
|
|
10490
10668
|
}
|
|
10491
10669
|
|
|
10492
10670
|
// src/board/client/detailPanelHtml.ts
|
|
10671
|
+
var BRANCH_AUTO_GENERATE2 = "<auto-generate>";
|
|
10672
|
+
var BRANCH_AUTO_GENERATE_DISPLAY2 = "\u2728 Auto-generate on run";
|
|
10493
10673
|
function renderCommentItemHtml(comment, taskId) {
|
|
10494
10674
|
const authorText = comment.author ? escapeHtmlClient(comment.author) : "Anonymous";
|
|
10495
10675
|
const dateRel = relativeTime(comment.created_at);
|
|
@@ -10545,6 +10725,19 @@ Move task to "${label}"?`);
|
|
|
10545
10725
|
html += "</select></div>";
|
|
10546
10726
|
return html;
|
|
10547
10727
|
}
|
|
10728
|
+
function renderBranchField(currentBranch) {
|
|
10729
|
+
const isAuto = currentBranch === null || currentBranch === void 0 || currentBranch === BRANCH_AUTO_GENERATE2;
|
|
10730
|
+
const displayValue = isAuto ? BRANCH_AUTO_GENERATE_DISPLAY2 : escapeHtmlClient(currentBranch);
|
|
10731
|
+
const readOnlyAttr = isAuto ? " readonly" : "";
|
|
10732
|
+
const autoClass = isAuto ? " branch-auto-mode" : "";
|
|
10733
|
+
let html = '<div class="detail-field">';
|
|
10734
|
+
html += '<div class="detail-field-label">Branch</div>';
|
|
10735
|
+
html += '<div class="branch-select-wrapper" id="detail-branch-wrapper">';
|
|
10736
|
+
html += '<input id="detail-edit-branch" class="detail-edit-input' + autoClass + '" type="text" value="' + displayValue + '" autocomplete="off"' + readOnlyAttr + ">";
|
|
10737
|
+
html += '<div id="detail-branch-dropdown" class="branch-select-dropdown" style="display:none;"></div>';
|
|
10738
|
+
html += "</div></div>";
|
|
10739
|
+
return html;
|
|
10740
|
+
}
|
|
10548
10741
|
function renderRelationsHtml(parent, blockedBy, blocking) {
|
|
10549
10742
|
let html = '<div class="detail-relations">';
|
|
10550
10743
|
if (parent) {
|
|
@@ -10611,6 +10804,7 @@ Move task to "${label}"?`);
|
|
|
10611
10804
|
let html = "";
|
|
10612
10805
|
html += renderStatusField(task.status, allStatuses, statusLabels);
|
|
10613
10806
|
html += renderPriorityField(task.priority, allPriorities);
|
|
10807
|
+
html += renderBranchField(task.branch);
|
|
10614
10808
|
html += '<div class="detail-field"><div class="detail-field-label">Tags</div>';
|
|
10615
10809
|
html += '<div id="detail-tags-container"></div></div>';
|
|
10616
10810
|
const hasRelations = parent || blockedBy.length > 0 || blocking.length > 0;
|
|
@@ -10661,16 +10855,34 @@ Move task to "${label}"?`);
|
|
|
10661
10855
|
}
|
|
10662
10856
|
|
|
10663
10857
|
// src/board/client/detailPanel.ts
|
|
10858
|
+
var BRANCH_AUTO_GENERATE3 = "<auto-generate>";
|
|
10859
|
+
var BRANCH_AUTO_GENERATE_DISPLAY3 = "\u2728 Auto-generate on run";
|
|
10664
10860
|
var detailTaskId = null;
|
|
10665
10861
|
var lastTab = "details";
|
|
10666
10862
|
var runLogEventSource = null;
|
|
10667
10863
|
var currentFetchController = null;
|
|
10668
10864
|
var runLogLoadSeq = 0;
|
|
10669
10865
|
var runLogsLoadedTaskId = null;
|
|
10866
|
+
var branchSuggestions2 = [];
|
|
10867
|
+
var branchSuggestionsLoaded2 = false;
|
|
10868
|
+
var branchInternalValue2 = BRANCH_AUTO_GENERATE3;
|
|
10869
|
+
function setDetailBranchAutoMode(input) {
|
|
10870
|
+
branchInternalValue2 = BRANCH_AUTO_GENERATE3;
|
|
10871
|
+
input.value = BRANCH_AUTO_GENERATE_DISPLAY3;
|
|
10872
|
+
input.readOnly = true;
|
|
10873
|
+
input.classList.add("branch-auto-mode");
|
|
10874
|
+
}
|
|
10875
|
+
function setDetailBranchManualMode(input, branch) {
|
|
10876
|
+
branchInternalValue2 = branch;
|
|
10877
|
+
input.value = branch;
|
|
10878
|
+
input.readOnly = false;
|
|
10879
|
+
input.classList.remove("branch-auto-mode");
|
|
10880
|
+
}
|
|
10670
10881
|
function closeRunLogStream() {
|
|
10671
10882
|
if (runLogEventSource !== null) {
|
|
10672
10883
|
runLogEventSource.close();
|
|
10673
10884
|
runLogEventSource = null;
|
|
10885
|
+
setRunLogsActive(false);
|
|
10674
10886
|
}
|
|
10675
10887
|
}
|
|
10676
10888
|
function getDetailTaskId() {
|
|
@@ -10720,6 +10932,12 @@ Move task to "${label}"?`);
|
|
|
10720
10932
|
}
|
|
10721
10933
|
const footer = document.getElementById("detail-panel-footer");
|
|
10722
10934
|
if (footer) footer.style.display = tabName === "details" ? "" : "none";
|
|
10935
|
+
if (tabName === "details") {
|
|
10936
|
+
const textarea = document.getElementById("detail-edit-body");
|
|
10937
|
+
if (textarea) {
|
|
10938
|
+
requestAnimationFrame(() => autoResizeTextarea(textarea));
|
|
10939
|
+
}
|
|
10940
|
+
}
|
|
10723
10941
|
if (tabName === "run-logs" && detailTaskId !== null && (!isSameTab || runLogsLoadedTaskId !== detailTaskId)) {
|
|
10724
10942
|
loadRunLogs(detailTaskId);
|
|
10725
10943
|
}
|
|
@@ -10954,6 +11172,7 @@ Move task to "${label}"?`);
|
|
|
10954
11172
|
}
|
|
10955
11173
|
pane.removeEventListener("click", handleRunLogToggle);
|
|
10956
11174
|
pane.addEventListener("click", handleRunLogToggle);
|
|
11175
|
+
setRunLogsActive(true);
|
|
10957
11176
|
runLogEventSource = subscribeRunLogs(
|
|
10958
11177
|
taskId,
|
|
10959
11178
|
(logs) => {
|
|
@@ -10977,6 +11196,76 @@ Move task to "${label}"?`);
|
|
|
10977
11196
|
const item = target.closest(".run-log-item");
|
|
10978
11197
|
if (item) item.classList.toggle("open");
|
|
10979
11198
|
}
|
|
11199
|
+
async function loadDetailBranchSuggestions() {
|
|
11200
|
+
if (branchSuggestionsLoaded2) return;
|
|
11201
|
+
try {
|
|
11202
|
+
const res = await fetch("/api/git/branches");
|
|
11203
|
+
if (!res.ok) throw new Error("Server error");
|
|
11204
|
+
const data = await res.json();
|
|
11205
|
+
branchSuggestions2 = data.branches;
|
|
11206
|
+
} catch {
|
|
11207
|
+
branchSuggestions2 = [];
|
|
11208
|
+
}
|
|
11209
|
+
branchSuggestionsLoaded2 = true;
|
|
11210
|
+
}
|
|
11211
|
+
function renderDetailBranchDropdown(dropdown, inputValue) {
|
|
11212
|
+
const input = document.getElementById("detail-edit-branch");
|
|
11213
|
+
const isAutoMode = branchInternalValue2 === BRANCH_AUTO_GENERATE3;
|
|
11214
|
+
const q2 = isAutoMode ? "" : inputValue.trim().toLowerCase();
|
|
11215
|
+
const filtered = q2 ? branchSuggestions2.filter((b2) => b2.toLowerCase().includes(q2)).slice(0, 10) : branchSuggestions2.slice(0, 10);
|
|
11216
|
+
dropdown.innerHTML = "";
|
|
11217
|
+
const autoOpt = document.createElement("div");
|
|
11218
|
+
autoOpt.className = "branch-select-option branch-select-option-auto";
|
|
11219
|
+
autoOpt.textContent = BRANCH_AUTO_GENERATE_DISPLAY3;
|
|
11220
|
+
if (branchInternalValue2 === BRANCH_AUTO_GENERATE3) {
|
|
11221
|
+
autoOpt.classList.add("selected");
|
|
11222
|
+
}
|
|
11223
|
+
autoOpt.addEventListener("mousedown", (e) => {
|
|
11224
|
+
e.preventDefault();
|
|
11225
|
+
if (input) setDetailBranchAutoMode(input);
|
|
11226
|
+
dropdown.style.display = "none";
|
|
11227
|
+
});
|
|
11228
|
+
dropdown.appendChild(autoOpt);
|
|
11229
|
+
const separator = document.createElement("div");
|
|
11230
|
+
separator.className = "branch-select-separator";
|
|
11231
|
+
dropdown.appendChild(separator);
|
|
11232
|
+
filtered.forEach((branch) => {
|
|
11233
|
+
const opt = document.createElement("div");
|
|
11234
|
+
opt.className = "branch-select-option";
|
|
11235
|
+
opt.textContent = branch;
|
|
11236
|
+
opt.addEventListener("mousedown", (e) => {
|
|
11237
|
+
e.preventDefault();
|
|
11238
|
+
if (input) setDetailBranchManualMode(input, branch);
|
|
11239
|
+
dropdown.style.display = "none";
|
|
11240
|
+
});
|
|
11241
|
+
dropdown.appendChild(opt);
|
|
11242
|
+
});
|
|
11243
|
+
dropdown.style.display = "block";
|
|
11244
|
+
}
|
|
11245
|
+
function wireBranchField(currentBranch) {
|
|
11246
|
+
const branchInput = document.getElementById("detail-edit-branch");
|
|
11247
|
+
const branchDropdown = document.getElementById("detail-branch-dropdown");
|
|
11248
|
+
const isAuto = currentBranch === null || currentBranch === void 0 || currentBranch === BRANCH_AUTO_GENERATE3;
|
|
11249
|
+
branchInternalValue2 = isAuto ? BRANCH_AUTO_GENERATE3 : currentBranch;
|
|
11250
|
+
if (!branchInput || !branchDropdown) return;
|
|
11251
|
+
branchInput.addEventListener("focus", async () => {
|
|
11252
|
+
await loadDetailBranchSuggestions();
|
|
11253
|
+
renderDetailBranchDropdown(branchDropdown, branchInput.value);
|
|
11254
|
+
});
|
|
11255
|
+
branchInput.addEventListener("input", () => {
|
|
11256
|
+
if (branchInternalValue2 === BRANCH_AUTO_GENERATE3) {
|
|
11257
|
+
branchInput.readOnly = false;
|
|
11258
|
+
branchInput.classList.remove("branch-auto-mode");
|
|
11259
|
+
}
|
|
11260
|
+
branchInternalValue2 = branchInput.value;
|
|
11261
|
+
renderDetailBranchDropdown(branchDropdown, branchInput.value);
|
|
11262
|
+
});
|
|
11263
|
+
branchInput.addEventListener("blur", () => {
|
|
11264
|
+
setTimeout(() => {
|
|
11265
|
+
branchDropdown.style.display = "none";
|
|
11266
|
+
}, 150);
|
|
11267
|
+
});
|
|
11268
|
+
}
|
|
10980
11269
|
function renderDetailPanel(data) {
|
|
10981
11270
|
document.getElementById("detail-panel-update-warning")?.remove();
|
|
10982
11271
|
const detailPanelTitle = document.getElementById("detail-panel-title");
|
|
@@ -10996,6 +11285,7 @@ Move task to "${label}"?`);
|
|
|
10996
11285
|
});
|
|
10997
11286
|
});
|
|
10998
11287
|
}
|
|
11288
|
+
wireBranchField(data.task.branch);
|
|
10999
11289
|
const footer = document.getElementById("detail-panel-footer");
|
|
11000
11290
|
if (footer) {
|
|
11001
11291
|
footer.innerHTML = '<span class="detail-footer-timestamp">created ' + relativeTime(task.created_at) + " · updated " + relativeTime(task.updated_at) + '</span><button id="detail-save-btn">Save</button>';
|
|
@@ -11003,36 +11293,16 @@ Move task to "${label}"?`);
|
|
|
11003
11293
|
}
|
|
11004
11294
|
const textarea = document.getElementById("detail-edit-body");
|
|
11005
11295
|
if (textarea) {
|
|
11006
|
-
const
|
|
11007
|
-
|
|
11008
|
-
|
|
11009
|
-
|
|
11010
|
-
|
|
11011
|
-
|
|
11012
|
-
let done = false;
|
|
11013
|
-
const finish = () => {
|
|
11014
|
-
if (done) return;
|
|
11015
|
-
done = true;
|
|
11016
|
-
detailPanel.removeEventListener("transitionend", onTransitionEnd);
|
|
11017
|
-
requestAnimationFrame(() => {
|
|
11018
|
-
requestAnimationFrame(() => {
|
|
11019
|
-
autoResizeTextarea(textarea);
|
|
11020
|
-
});
|
|
11021
|
-
});
|
|
11022
|
-
};
|
|
11023
|
-
const onTransitionEnd = (e) => {
|
|
11024
|
-
if (e.propertyName === "width") finish();
|
|
11025
|
-
};
|
|
11026
|
-
detailPanel.addEventListener("transitionend", onTransitionEnd);
|
|
11027
|
-
setTimeout(finish, 260);
|
|
11028
|
-
}
|
|
11029
|
-
} else {
|
|
11296
|
+
const ro2 = new ResizeObserver(() => {
|
|
11297
|
+
autoResizeTextarea(textarea);
|
|
11298
|
+
});
|
|
11299
|
+
ro2.observe(textarea);
|
|
11300
|
+
setTimeout(() => ro2.disconnect(), 400);
|
|
11301
|
+
requestAnimationFrame(() => {
|
|
11030
11302
|
requestAnimationFrame(() => {
|
|
11031
|
-
|
|
11032
|
-
autoResizeTextarea(textarea);
|
|
11033
|
-
});
|
|
11303
|
+
autoResizeTextarea(textarea);
|
|
11034
11304
|
});
|
|
11035
|
-
}
|
|
11305
|
+
});
|
|
11036
11306
|
textarea.addEventListener("input", () => {
|
|
11037
11307
|
autoResizeTextarea(textarea);
|
|
11038
11308
|
});
|
|
@@ -11115,7 +11385,8 @@ Move task to "${label}"?`);
|
|
|
11115
11385
|
title,
|
|
11116
11386
|
body: bodyEl ? bodyEl.value.trim() || null : null,
|
|
11117
11387
|
status: statusEl ? statusEl.value : void 0,
|
|
11118
|
-
priority: priorityEl ? priorityEl.value || null : null
|
|
11388
|
+
priority: priorityEl ? priorityEl.value || null : null,
|
|
11389
|
+
branch: branchInternalValue2 || null
|
|
11119
11390
|
};
|
|
11120
11391
|
}
|
|
11121
11392
|
async function saveDetailTask() {
|
|
@@ -11652,6 +11923,30 @@ Move task to "${label}"?`);
|
|
|
11652
11923
|
}
|
|
11653
11924
|
});
|
|
11654
11925
|
}
|
|
11926
|
+
var STATE_ICONS = {
|
|
11927
|
+
connected: "\u{1F7E2}",
|
|
11928
|
+
connecting: "\u{1F7E1}",
|
|
11929
|
+
disconnected: "\u{1F534}"
|
|
11930
|
+
};
|
|
11931
|
+
var STATE_TITLES = {
|
|
11932
|
+
connected: "Connected",
|
|
11933
|
+
connecting: "Connecting...",
|
|
11934
|
+
disconnected: "Disconnected \u2014 Click to reconnect"
|
|
11935
|
+
};
|
|
11936
|
+
function initConnectionStatusBtn() {
|
|
11937
|
+
const btn = document.getElementById("connection-status-btn");
|
|
11938
|
+
if (!btn) return;
|
|
11939
|
+
onConnectionStateChange((state) => {
|
|
11940
|
+
btn.className = `connection-status-btn ${state}`;
|
|
11941
|
+
btn.textContent = STATE_ICONS[state] ?? "\u26AA";
|
|
11942
|
+
btn.title = STATE_TITLES[state] ?? "";
|
|
11943
|
+
});
|
|
11944
|
+
btn.addEventListener("click", () => {
|
|
11945
|
+
if (btn.classList.contains("disconnected")) {
|
|
11946
|
+
triggerReconnectAll();
|
|
11947
|
+
}
|
|
11948
|
+
});
|
|
11949
|
+
}
|
|
11655
11950
|
function initBurgerMenu() {
|
|
11656
11951
|
const burgerBtn = document.getElementById("burger-menu-btn");
|
|
11657
11952
|
const burgerDropdown = document.getElementById("burger-menu-dropdown");
|
|
@@ -11662,6 +11957,7 @@ Move task to "${label}"?`);
|
|
|
11662
11957
|
initImportModal(burgerDropdown);
|
|
11663
11958
|
initVersionModal(burgerDropdown);
|
|
11664
11959
|
initDarkMode();
|
|
11960
|
+
initConnectionStatusBtn();
|
|
11665
11961
|
}
|
|
11666
11962
|
|
|
11667
11963
|
// src/board/client/dependencyVisualization.ts
|
|
@@ -11915,21 +12211,58 @@ Move task to "${label}"?`);
|
|
|
11915
12211
|
}
|
|
11916
12212
|
}
|
|
11917
12213
|
function startAttentionStream() {
|
|
11918
|
-
|
|
11919
|
-
|
|
11920
|
-
|
|
11921
|
-
|
|
11922
|
-
|
|
11923
|
-
|
|
11924
|
-
|
|
11925
|
-
|
|
11926
|
-
|
|
11927
|
-
|
|
11928
|
-
}
|
|
11929
|
-
|
|
11930
|
-
|
|
12214
|
+
let backoffMs = 1e3;
|
|
12215
|
+
let reconnectTimer = null;
|
|
12216
|
+
let es2;
|
|
12217
|
+
let stopped = false;
|
|
12218
|
+
function connect() {
|
|
12219
|
+
es2 = new EventSource("/api/attention/stream");
|
|
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;
|
|
12253
|
+
}
|
|
12254
|
+
es2.close();
|
|
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();
|
|
11931
12265
|
};
|
|
11932
|
-
return () => es2.close();
|
|
11933
12266
|
}
|
|
11934
12267
|
|
|
11935
12268
|
// src/board/client/bulkRunButton.ts
|
package/dist/board/server.js
CHANGED
|
@@ -50,7 +50,7 @@ function startBoardServer(port, boardTitle) {
|
|
|
50
50
|
const app = new hono_1.Hono();
|
|
51
51
|
const resolvedConfigDir = path_1.default.join(process.cwd(), (0, config_1.getDefaultDirName)());
|
|
52
52
|
const ptyService = new PtySessionService_1.PtySessionService(resolvedDb, {
|
|
53
|
-
boardApiUrl:
|
|
53
|
+
boardApiUrl: null,
|
|
54
54
|
attentionStateService,
|
|
55
55
|
hookSettingsDataDir,
|
|
56
56
|
});
|
package/dist/board/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/board/server.ts"],"names":[],"mappings":";;;;;AA0BA,wCA6BC;AAED,4CA8CC;AAvGD,+BAA4B;AAC5B,mDAA0C;AAE1C,gDAAwB;AACxB,2BAA6B;AAC7B,+BAA4B;AAC5B,yDAAsD;AACtD,+DAA4D;AAC5D,uDAAoD;AACpD,iEAA8D;AAC9D,+DAA4D;AAC5D,mEAAgE;AAChE,qEAAkE;AAClE,6EAA0E;AAC1E,mEAAsE;AACtE,iDAAqD;AAErD,yCAAiD;AACjD,+CAMuB;AAEvB,SAAgB,cAAc,CAC5B,WAAyB,EACzB,cAA+B,EAC/B,eAAiC,EACjC,EAAmB,EACnB,UAAmB,EACnB,UAAuB,EACvB,SAAkB,EAClB,cAA+B,EAC/B,gBAAmC,EACnC,iBAAqC;IAErC,MAAM,GAAG,GAAG,IAAI,WAAI,EAAE,CAAC;IACvB,MAAM,iBAAiB,GAAG,SAAS,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAA,0BAAiB,GAAE,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,EAAE,IAAI,IAAA,8BAAiB,GAAE,CAAC;IAC7C,MAAM,QAAQ,GAAkB;QAC9B,EAAE,EAAE,WAAW,IAAI,IAAI,yBAAW,CAAC,UAAU,CAAC;QAC9C,GAAG,EAAE,cAAc,IAAI,IAAI,+BAAc,CAAC,UAAU,CAAC;QACrD,IAAI,EAAE,UAAU,IAAI,IAAI,uBAAU,CAAC,UAAU,CAAC;QAC9C,EAAE,EAAE,eAAe,IAAI,IAAI,iCAAe,CAAC,UAAU,CAAC;QACtD,EAAE,EAAE,cAAc,IAAI,IAAI,+BAAc,CAAC,UAAU,CAAC;QACpD,GAAG,EAAE,gBAAgB,IAAI,IAAI,mCAAgB,CAAC,UAAU,CAAC;QACzD,QAAQ,EAAE,UAAU;QACpB,UAAU;QACV,SAAS,EAAE,iBAAiB;QAC5B,iBAAiB;KAClB,CAAC;IACF,IAAA,iCAAmB,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY,EAAE,UAAmB;IAChE,MAAM,UAAU,GAAG,IAAA,8BAAiB,GAAE,CAAC;IAEvC,MAAM,qBAAqB,GAAG,IAAI,6CAAqB,EAAE,CAAC;IAC1D,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc;QACpD,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC;QACjD,CAAC,CAAC,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAE7C,MAAM,GAAG,GAAG,IAAI,WAAI,EAAE,CAAC;IACvB,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAA,0BAAiB,GAAE,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,IAAI,qCAAiB,CAAC,UAAU,EAAE;QACnD,WAAW,EAAE,
|
|
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;AAyTpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
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;AAyTpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAY7D"}
|
|
@@ -318,8 +318,14 @@ function setupAgentGuideCommand(program) {
|
|
|
318
318
|
program
|
|
319
319
|
.command('agent-guide')
|
|
320
320
|
.description('Show agent guide for using agkan')
|
|
321
|
-
.
|
|
322
|
-
|
|
321
|
+
.option('--hook', 'Output as JSON for use in SessionStart hooks')
|
|
322
|
+
.action((options) => {
|
|
323
|
+
if (options.hook) {
|
|
324
|
+
console.log(JSON.stringify({ additionalContext: AGENT_GUIDE_CONTENT }));
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
console.log(AGENT_GUIDE_CONTENT);
|
|
328
|
+
}
|
|
323
329
|
});
|
|
324
330
|
}
|
|
325
331
|
//# sourceMappingURL=agent-guide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-guide.js","sourceRoot":"","sources":["../../../src/cli/commands/agent-guide.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA2TH,
|
|
1
|
+
{"version":3,"file":"agent-guide.js","sourceRoot":"","sources":["../../../src/cli/commands/agent-guide.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA2TH,wDAYC;AAnUD,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqT3B,CAAC;AAEF,SAAgB,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,8CAA8C,CAAC;SAChE,MAAM,CAAC,CAAC,OAA2B,EAAE,EAAE;QACtC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,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-helpers.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/add-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAOhF;AAED,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB,IAAI,CAuBN;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB;IAAE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAAC,YAAY,EAAE,IAAI,EAAE,CAAA;CAAE,CAKzE;
|
|
1
|
+
{"version":3,"file":"add-helpers.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/add-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAOhF;AAED,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB,IAAI,CAuBN;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB;IAAE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAAC,YAAY,EAAE,IAAI,EAAE,CAAA;CAAE,CAKzE;AAkBD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,IAAI,GAAG,IAAI,EACvB,YAAY,EAAE,IAAI,EAAE,EACpB,YAAY,EAAE,IAAI,EAAE,GACnB,MAAM,CAQR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,IAAI,GAAG,IAAI,EACvB,YAAY,EAAE,IAAI,EAAE,EACpB,YAAY,EAAE,IAAI,EAAE,GACnB,IAAI,CAwCN"}
|