syntaur 0.25.0 → 0.26.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/dashboard/dist/assets/{_basePickBy-CN0iXrRl.js → _basePickBy-jPItyrQO.js} +1 -1
- package/dashboard/dist/assets/{_baseUniq-f5KgmPS-.js → _baseUniq-pEwUwurC.js} +1 -1
- package/dashboard/dist/assets/{arc-Is_GQHDi.js → arc-ZZtp507S.js} +1 -1
- package/dashboard/dist/assets/{architectureDiagram-2XIMDMQ5-GnMoIbkq.js → architectureDiagram-2XIMDMQ5-BNUerPqd.js} +1 -1
- package/dashboard/dist/assets/{blockDiagram-WCTKOSBZ-C6FJCqER.js → blockDiagram-WCTKOSBZ-CQyovXFv.js} +1 -1
- package/dashboard/dist/assets/{c4Diagram-IC4MRINW-CbzB6xiI.js → c4Diagram-IC4MRINW-wNQ6EHeF.js} +1 -1
- package/dashboard/dist/assets/channel-BYnzdl2x.js +1 -0
- package/dashboard/dist/assets/{chunk-4BX2VUAB-DfVhtiVZ.js → chunk-4BX2VUAB-ZaueC30R.js} +1 -1
- package/dashboard/dist/assets/{chunk-55IACEB6-yDuI8WJG.js → chunk-55IACEB6-BjsRB0t8.js} +1 -1
- package/dashboard/dist/assets/{chunk-FMBD7UC4-ClMCd4y0.js → chunk-FMBD7UC4-BHuSr-Tl.js} +1 -1
- package/dashboard/dist/assets/{chunk-JSJVCQXG-x0Ds2VxI.js → chunk-JSJVCQXG-SHNJA0es.js} +1 -1
- package/dashboard/dist/assets/{chunk-KX2RTZJC-BtLBfEbM.js → chunk-KX2RTZJC-JXFPjeo4.js} +1 -1
- package/dashboard/dist/assets/{chunk-NQ4KR5QH-BR_YJ2O0.js → chunk-NQ4KR5QH-BiJqWT0B.js} +1 -1
- package/dashboard/dist/assets/{chunk-QZHKN3VN-CpJrMBfa.js → chunk-QZHKN3VN-DoXWBqP2.js} +1 -1
- package/dashboard/dist/assets/{chunk-WL4C6EOR-COlZCEcU.js → chunk-WL4C6EOR-Dqtf_5it.js} +1 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-BnPZbM4g.js +1 -0
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-BnPZbM4g.js +1 -0
- package/dashboard/dist/assets/clone-DYNFxLr3.js +1 -0
- package/dashboard/dist/assets/{cose-bilkent-S5V4N54A-Be49cOHu.js → cose-bilkent-S5V4N54A-Cr6bkSKq.js} +1 -1
- package/dashboard/dist/assets/{dagre-KLK3FWXG-kMJYOzRh.js → dagre-KLK3FWXG-oXpXFuJQ.js} +1 -1
- package/dashboard/dist/assets/{diagram-E7M64L7V-16A5Ru0f.js → diagram-E7M64L7V-Bq_xdDbg.js} +1 -1
- package/dashboard/dist/assets/{diagram-IFDJBPK2-BcnW30go.js → diagram-IFDJBPK2-N7Er4Dui.js} +1 -1
- package/dashboard/dist/assets/{diagram-P4PSJMXO-H00u_5yZ.js → diagram-P4PSJMXO-BU0Zm2Fn.js} +1 -1
- package/dashboard/dist/assets/{erDiagram-INFDFZHY-DLJRqyow.js → erDiagram-INFDFZHY-BSgZb5me.js} +1 -1
- package/dashboard/dist/assets/{flowDiagram-PKNHOUZH-CMNpPp6k.js → flowDiagram-PKNHOUZH-Bn7pEu0U.js} +1 -1
- package/dashboard/dist/assets/{ganttDiagram-A5KZAMGK-CM1TPA1M.js → ganttDiagram-A5KZAMGK-B8Xq9tyM.js} +1 -1
- package/dashboard/dist/assets/{gitGraphDiagram-K3NZZRJ6-CaZU57JT.js → gitGraphDiagram-K3NZZRJ6-BoLUjYDa.js} +1 -1
- package/dashboard/dist/assets/{graph-E2a2RZr0.js → graph-Pde_ni_y.js} +1 -1
- package/dashboard/dist/assets/index-7rNWNKq7.css +1 -0
- package/dashboard/dist/assets/{index-87em5uVQ.js → index-Nc9kfSW-.js} +122 -122
- package/dashboard/dist/assets/{infoDiagram-LFFYTUFH-DNNTGL3j.js → infoDiagram-LFFYTUFH-Brv2khjP.js} +1 -1
- package/dashboard/dist/assets/{ishikawaDiagram-PHBUUO56-CDOwhxyG.js → ishikawaDiagram-PHBUUO56-D5hxQ0Ke.js} +1 -1
- package/dashboard/dist/assets/{journeyDiagram-4ABVD52K-DfktCUGL.js → journeyDiagram-4ABVD52K-CUevv5jA.js} +1 -1
- package/dashboard/dist/assets/{kanban-definition-K7BYSVSG-Cef-JH0v.js → kanban-definition-K7BYSVSG-Cf6XyrAC.js} +1 -1
- package/dashboard/dist/assets/{layout-DX6aMfnc.js → layout-Bc8RP2w3.js} +1 -1
- package/dashboard/dist/assets/{linear-VHsqclP8.js → linear-Cd_XUbl7.js} +1 -1
- package/dashboard/dist/assets/{mermaid.core-SHnQ4DTm.js → mermaid.core-Bx8MuMEM.js} +4 -4
- package/dashboard/dist/assets/{mindmap-definition-YRQLILUH-B6rPgI2_.js → mindmap-definition-YRQLILUH-D_4Pl3Mu.js} +1 -1
- package/dashboard/dist/assets/{pieDiagram-SKSYHLDU-FeFYwJd1.js → pieDiagram-SKSYHLDU-DRVbjwxO.js} +1 -1
- package/dashboard/dist/assets/{quadrantDiagram-337W2JSQ-C8ToaX6X.js → quadrantDiagram-337W2JSQ-BciLlBMH.js} +1 -1
- package/dashboard/dist/assets/{requirementDiagram-Z7DCOOCP-DcQFgBUh.js → requirementDiagram-Z7DCOOCP-Bprwe8Z2.js} +1 -1
- package/dashboard/dist/assets/{sankeyDiagram-WA2Y5GQK-tg-fe8h0.js → sankeyDiagram-WA2Y5GQK-DI0t8Uiu.js} +1 -1
- package/dashboard/dist/assets/{sequenceDiagram-2WXFIKYE-DvK0Qr3p.js → sequenceDiagram-2WXFIKYE-CpCLCs5J.js} +1 -1
- package/dashboard/dist/assets/{stateDiagram-RAJIS63D-CA0uNmJC.js → stateDiagram-RAJIS63D-V-1VCApT.js} +1 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-B6S2ctrX.js +1 -0
- package/dashboard/dist/assets/{timeline-definition-YZTLITO2-BvSG2mgT.js → timeline-definition-YZTLITO2-DCAo6tA7.js} +1 -1
- package/dashboard/dist/assets/{treemap-KZPCXAKY-DKSXIxeb.js → treemap-KZPCXAKY-CKlbZ6Y_.js} +1 -1
- package/dashboard/dist/assets/{vennDiagram-LZ73GAT5-DbftUvFP.js → vennDiagram-LZ73GAT5-CJSijre_.js} +1 -1
- package/dashboard/dist/assets/{xychartDiagram-JWTSCODW-DewVggKf.js → xychartDiagram-JWTSCODW-DXd1BBmK.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dist/dashboard/server.js +190 -22
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.js +215 -23
- package/dist/index.js.map +1 -1
- package/dist/launch/index.d.ts +6 -0
- package/dist/launch/index.js +89 -3
- package/dist/launch/index.js.map +1 -1
- package/package.json +1 -1
- package/scripts/install-macos-url-handler.mjs +14 -1
- package/dashboard/dist/assets/channel-I1qzkKSE.js +0 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-Br3zoueH.js +0 -1
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-Br3zoueH.js +0 -1
- package/dashboard/dist/assets/clone-BNiIx-eM.js +0 -1
- package/dashboard/dist/assets/index-3X9xvPGn.css +0 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-CiCui2CK.js +0 -1
package/dist/dashboard/server.js
CHANGED
|
@@ -1766,6 +1766,31 @@ var init_terminal_schema = __esm({
|
|
|
1766
1766
|
}
|
|
1767
1767
|
});
|
|
1768
1768
|
|
|
1769
|
+
// src/utils/workspace-visibility-schema.ts
|
|
1770
|
+
function normalizeHiddenList(input) {
|
|
1771
|
+
if (!Array.isArray(input)) return [];
|
|
1772
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1773
|
+
const out = [];
|
|
1774
|
+
for (const raw of input) {
|
|
1775
|
+
if (typeof raw !== "string") continue;
|
|
1776
|
+
const name = raw.trim();
|
|
1777
|
+
if (name.length === 0) continue;
|
|
1778
|
+
if (name.length > MAX_WORKSPACE_NAME_LENGTH) continue;
|
|
1779
|
+
if (/[\r\n]/.test(name)) continue;
|
|
1780
|
+
if (seen.has(name)) continue;
|
|
1781
|
+
seen.add(name);
|
|
1782
|
+
out.push(name);
|
|
1783
|
+
}
|
|
1784
|
+
return out;
|
|
1785
|
+
}
|
|
1786
|
+
var MAX_WORKSPACE_NAME_LENGTH;
|
|
1787
|
+
var init_workspace_visibility_schema = __esm({
|
|
1788
|
+
"src/utils/workspace-visibility-schema.ts"() {
|
|
1789
|
+
"use strict";
|
|
1790
|
+
MAX_WORKSPACE_NAME_LENGTH = 256;
|
|
1791
|
+
}
|
|
1792
|
+
});
|
|
1793
|
+
|
|
1769
1794
|
// src/utils/config.ts
|
|
1770
1795
|
var config_exports = {};
|
|
1771
1796
|
__export(config_exports, {
|
|
@@ -1781,6 +1806,7 @@ __export(config_exports, {
|
|
|
1781
1806
|
deleteStatusConfig: () => deleteStatusConfig,
|
|
1782
1807
|
deleteTerminalConfig: () => deleteTerminalConfig,
|
|
1783
1808
|
deleteThemeConfig: () => deleteThemeConfig,
|
|
1809
|
+
deleteWorkspaceVisibilityConfig: () => deleteWorkspaceVisibilityConfig,
|
|
1784
1810
|
getAgents: () => getAgents,
|
|
1785
1811
|
getAssignmentTypes: () => getAssignmentTypes,
|
|
1786
1812
|
getTerminal: () => getTerminal,
|
|
@@ -1797,7 +1823,8 @@ __export(config_exports, {
|
|
|
1797
1823
|
writeHotkeyBindingsConfig: () => writeHotkeyBindingsConfig,
|
|
1798
1824
|
writeStatusConfig: () => writeStatusConfig,
|
|
1799
1825
|
writeTerminalConfig: () => writeTerminalConfig,
|
|
1800
|
-
writeThemeConfig: () => writeThemeConfig
|
|
1826
|
+
writeThemeConfig: () => writeThemeConfig,
|
|
1827
|
+
writeWorkspaceVisibilityConfig: () => writeWorkspaceVisibilityConfig
|
|
1801
1828
|
});
|
|
1802
1829
|
import { readFile as readFile5 } from "fs/promises";
|
|
1803
1830
|
import { spawnSync } from "child_process";
|
|
@@ -1898,7 +1925,10 @@ function cloneDefaultConfig() {
|
|
|
1898
1925
|
},
|
|
1899
1926
|
theme: DEFAULT_CONFIG.theme ? { ...DEFAULT_CONFIG.theme } : null,
|
|
1900
1927
|
hotkeys: DEFAULT_CONFIG.hotkeys ? { bindings: { ...DEFAULT_CONFIG.hotkeys.bindings } } : null,
|
|
1901
|
-
terminal: DEFAULT_CONFIG.terminal
|
|
1928
|
+
terminal: DEFAULT_CONFIG.terminal,
|
|
1929
|
+
workspaceVisibility: {
|
|
1930
|
+
hidden: [...DEFAULT_CONFIG.workspaceVisibility.hidden]
|
|
1931
|
+
}
|
|
1902
1932
|
};
|
|
1903
1933
|
}
|
|
1904
1934
|
function parseFrontmatter(content) {
|
|
@@ -2230,6 +2260,93 @@ ${cleanedFm}
|
|
|
2230
2260
|
---${afterFrontmatter}`;
|
|
2231
2261
|
await writeFileForce(configPath, newContent);
|
|
2232
2262
|
}
|
|
2263
|
+
function serializeWorkspaceVisibilityConfig(cfg) {
|
|
2264
|
+
const hidden = normalizeHiddenList(cfg.hidden);
|
|
2265
|
+
if (hidden.length === 0) return null;
|
|
2266
|
+
const lines = ["workspaceVisibility:", " hidden:"];
|
|
2267
|
+
for (const name of hidden) {
|
|
2268
|
+
lines.push(` - ${JSON.stringify(name)}`);
|
|
2269
|
+
}
|
|
2270
|
+
return lines.join("\n");
|
|
2271
|
+
}
|
|
2272
|
+
function parseWorkspaceVisibilityConfig(fmBlock) {
|
|
2273
|
+
const blockStart = fmBlock.match(/^workspaceVisibility:\s*$/m);
|
|
2274
|
+
if (!blockStart) {
|
|
2275
|
+
return { hidden: [] };
|
|
2276
|
+
}
|
|
2277
|
+
const startIdx = fmBlock.indexOf(blockStart[0]) + blockStart[0].length;
|
|
2278
|
+
const remaining = fmBlock.slice(startIdx).split("\n");
|
|
2279
|
+
const hidden = [];
|
|
2280
|
+
let currentSection = null;
|
|
2281
|
+
for (const line of remaining) {
|
|
2282
|
+
const trimmed = line.trimStart();
|
|
2283
|
+
const indent = line.length - trimmed.length;
|
|
2284
|
+
if (indent === 0 && trimmed.length > 0) break;
|
|
2285
|
+
if (trimmed === "") continue;
|
|
2286
|
+
if (indent === 2 && trimmed.startsWith("hidden:")) {
|
|
2287
|
+
currentSection = "hidden";
|
|
2288
|
+
continue;
|
|
2289
|
+
}
|
|
2290
|
+
if (currentSection === "hidden" && indent >= 4 && trimmed.startsWith("- ")) {
|
|
2291
|
+
const rest = trimmed.slice(2).trim();
|
|
2292
|
+
if (rest.length === 0) continue;
|
|
2293
|
+
let name;
|
|
2294
|
+
if (rest.startsWith('"')) {
|
|
2295
|
+
try {
|
|
2296
|
+
name = JSON.parse(rest);
|
|
2297
|
+
} catch {
|
|
2298
|
+
name = rest.replace(/^["']|["']$/g, "");
|
|
2299
|
+
}
|
|
2300
|
+
} else {
|
|
2301
|
+
name = rest;
|
|
2302
|
+
}
|
|
2303
|
+
hidden.push(name);
|
|
2304
|
+
continue;
|
|
2305
|
+
}
|
|
2306
|
+
}
|
|
2307
|
+
return { hidden: normalizeHiddenList(hidden) };
|
|
2308
|
+
}
|
|
2309
|
+
async function writeWorkspaceVisibilityConfig(cfg) {
|
|
2310
|
+
const configPath = resolve6(syntaurRoot(), "config.md");
|
|
2311
|
+
const block = serializeWorkspaceVisibilityConfig(cfg);
|
|
2312
|
+
const existing = await fileExists(configPath) ? await readFile5(configPath, "utf-8") : renderConfig({ defaultProjectDir: defaultProjectDir() });
|
|
2313
|
+
const fmMatch = existing.match(/^(---\n)([\s\S]*?)\n(---)/);
|
|
2314
|
+
if (!fmMatch) {
|
|
2315
|
+
const bodyBlock = block ? `${block}
|
|
2316
|
+
` : "";
|
|
2317
|
+
const content = `---
|
|
2318
|
+
version: "2.0"
|
|
2319
|
+
defaultProjectDir: ${defaultProjectDir()}
|
|
2320
|
+
${bodyBlock}---
|
|
2321
|
+
${existing}`;
|
|
2322
|
+
await writeFileForce(configPath, content);
|
|
2323
|
+
return;
|
|
2324
|
+
}
|
|
2325
|
+
const fmBlock = fmMatch[2];
|
|
2326
|
+
const afterFrontmatter = existing.slice(fmMatch[0].length);
|
|
2327
|
+
const cleanedFm = stripTopLevelBlock(fmBlock, "workspaceVisibility");
|
|
2328
|
+
const newFm = block ? `${cleanedFm}
|
|
2329
|
+
${block}`.replace(/^\n+/, "") : cleanedFm;
|
|
2330
|
+
const normalizedFm = newFm.replace(/\n+$/, "");
|
|
2331
|
+
const newContent = `---
|
|
2332
|
+
${normalizedFm}
|
|
2333
|
+
---${afterFrontmatter}`;
|
|
2334
|
+
await writeFileForce(configPath, newContent);
|
|
2335
|
+
}
|
|
2336
|
+
async function deleteWorkspaceVisibilityConfig() {
|
|
2337
|
+
const configPath = resolve6(syntaurRoot(), "config.md");
|
|
2338
|
+
if (!await fileExists(configPath)) return;
|
|
2339
|
+
const existing = await readFile5(configPath, "utf-8");
|
|
2340
|
+
const fmMatch = existing.match(/^(---\n)([\s\S]*?)\n(---)/);
|
|
2341
|
+
if (!fmMatch) return;
|
|
2342
|
+
const fmBlock = fmMatch[2];
|
|
2343
|
+
const afterFrontmatter = existing.slice(fmMatch[0].length);
|
|
2344
|
+
const cleanedFm = stripTopLevelBlock(fmBlock, "workspaceVisibility");
|
|
2345
|
+
const newContent = `---
|
|
2346
|
+
${cleanedFm}
|
|
2347
|
+
---${afterFrontmatter}`;
|
|
2348
|
+
await writeFileForce(configPath, newContent);
|
|
2349
|
+
}
|
|
2233
2350
|
function stripTopLevelScalar(fmBlock, key) {
|
|
2234
2351
|
const lines = fmBlock.split("\n");
|
|
2235
2352
|
const keyRegex = new RegExp(`^${key}:\\s*\\S`);
|
|
@@ -2946,7 +3063,8 @@ async function readConfig() {
|
|
|
2946
3063
|
console.warn(`Warning: ${msg} \u2014 falling back to default`);
|
|
2947
3064
|
return null;
|
|
2948
3065
|
}
|
|
2949
|
-
})()
|
|
3066
|
+
})(),
|
|
3067
|
+
workspaceVisibility: parseWorkspaceVisibilityConfig(fmBlock)
|
|
2950
3068
|
};
|
|
2951
3069
|
}
|
|
2952
3070
|
function getAssignmentTypes(config) {
|
|
@@ -3020,6 +3138,7 @@ var init_config2 = __esm({
|
|
|
3020
3138
|
init_hotkeysCatalog();
|
|
3021
3139
|
init_agents_schema();
|
|
3022
3140
|
init_terminal_schema();
|
|
3141
|
+
init_workspace_visibility_schema();
|
|
3023
3142
|
DEFAULT_ASSIGNMENT_TYPES = {
|
|
3024
3143
|
definitions: [
|
|
3025
3144
|
{ id: "feature", label: "Feature" },
|
|
@@ -3055,7 +3174,10 @@ var init_config2 = __esm({
|
|
|
3055
3174
|
},
|
|
3056
3175
|
theme: null,
|
|
3057
3176
|
hotkeys: null,
|
|
3058
|
-
terminal: null
|
|
3177
|
+
terminal: null,
|
|
3178
|
+
workspaceVisibility: {
|
|
3179
|
+
hidden: []
|
|
3180
|
+
}
|
|
3059
3181
|
};
|
|
3060
3182
|
AUTO_CREATE_WORKTREE_VALUES = ["skip", "ask", "always"];
|
|
3061
3183
|
AgentConfigError = class extends Error {
|
|
@@ -11722,10 +11844,55 @@ function createTerminalConfigRouter() {
|
|
|
11722
11844
|
return router;
|
|
11723
11845
|
}
|
|
11724
11846
|
|
|
11847
|
+
// src/dashboard/api-workspace-visibility-config.ts
|
|
11848
|
+
init_config2();
|
|
11849
|
+
init_workspace_visibility_schema();
|
|
11850
|
+
import { Router as Router8 } from "express";
|
|
11851
|
+
function createWorkspaceVisibilityConfigRouter() {
|
|
11852
|
+
const router = Router8();
|
|
11853
|
+
router.get("/", async (_req, res) => {
|
|
11854
|
+
try {
|
|
11855
|
+
const config = await readConfig();
|
|
11856
|
+
const hidden = config.workspaceVisibility.hidden;
|
|
11857
|
+
res.json({ hidden, custom: hidden.length > 0 });
|
|
11858
|
+
} catch (error) {
|
|
11859
|
+
console.error("Error getting workspace-visibility config:", error);
|
|
11860
|
+
res.status(500).json({ error: "Failed to get workspace-visibility config" });
|
|
11861
|
+
}
|
|
11862
|
+
});
|
|
11863
|
+
router.post("/", async (req, res) => {
|
|
11864
|
+
try {
|
|
11865
|
+
const { hidden } = req.body ?? {};
|
|
11866
|
+
if (!Array.isArray(hidden) || hidden.some((h) => typeof h !== "string")) {
|
|
11867
|
+
res.status(400).json({
|
|
11868
|
+
error: "hidden must be an array of strings"
|
|
11869
|
+
});
|
|
11870
|
+
return;
|
|
11871
|
+
}
|
|
11872
|
+
const normalized = normalizeHiddenList(hidden);
|
|
11873
|
+
await writeWorkspaceVisibilityConfig({ hidden: normalized });
|
|
11874
|
+
res.json({ hidden: normalized, custom: normalized.length > 0 });
|
|
11875
|
+
} catch (error) {
|
|
11876
|
+
console.error("Error saving workspace-visibility config:", error);
|
|
11877
|
+
res.status(500).json({ error: "Failed to save workspace-visibility config" });
|
|
11878
|
+
}
|
|
11879
|
+
});
|
|
11880
|
+
router.delete("/", async (_req, res) => {
|
|
11881
|
+
try {
|
|
11882
|
+
await deleteWorkspaceVisibilityConfig();
|
|
11883
|
+
res.json({ hidden: [], custom: false });
|
|
11884
|
+
} catch (error) {
|
|
11885
|
+
console.error("Error resetting workspace-visibility config:", error);
|
|
11886
|
+
res.status(500).json({ error: "Failed to reset workspace-visibility config" });
|
|
11887
|
+
}
|
|
11888
|
+
});
|
|
11889
|
+
return router;
|
|
11890
|
+
}
|
|
11891
|
+
|
|
11725
11892
|
// src/dashboard/api-status-config.ts
|
|
11726
11893
|
init_config2();
|
|
11727
11894
|
init_api();
|
|
11728
|
-
import { Router as
|
|
11895
|
+
import { Router as Router9 } from "express";
|
|
11729
11896
|
|
|
11730
11897
|
// src/utils/status-config-resolution.ts
|
|
11731
11898
|
init_frontmatter();
|
|
@@ -12087,7 +12254,7 @@ function mapResolutionErrorToHttp(err, applied) {
|
|
|
12087
12254
|
}
|
|
12088
12255
|
}
|
|
12089
12256
|
function createStatusConfigRouter(projectsDir, assignmentsDir2) {
|
|
12090
|
-
const router =
|
|
12257
|
+
const router = Router9();
|
|
12091
12258
|
installRecordsInvalidation(router);
|
|
12092
12259
|
router.get("/", async (_req, res) => {
|
|
12093
12260
|
try {
|
|
@@ -12268,7 +12435,7 @@ function createStatusConfigRouter(projectsDir, assignmentsDir2) {
|
|
|
12268
12435
|
}
|
|
12269
12436
|
|
|
12270
12437
|
// src/dashboard/api-leases.ts
|
|
12271
|
-
import { Router as
|
|
12438
|
+
import { Router as Router10 } from "express";
|
|
12272
12439
|
|
|
12273
12440
|
// src/db/leases-db.ts
|
|
12274
12441
|
init_paths();
|
|
@@ -12450,7 +12617,7 @@ function forceReleaseLease(lease_id) {
|
|
|
12450
12617
|
|
|
12451
12618
|
// src/dashboard/api-leases.ts
|
|
12452
12619
|
function createLeasesRouter(broadcast) {
|
|
12453
|
-
const router =
|
|
12620
|
+
const router = Router10();
|
|
12454
12621
|
router.get("/", (_req, res) => {
|
|
12455
12622
|
try {
|
|
12456
12623
|
initLeasesDb();
|
|
@@ -12505,7 +12672,7 @@ function createLeasesRouter(broadcast) {
|
|
|
12505
12672
|
}
|
|
12506
12673
|
|
|
12507
12674
|
// src/dashboard/api-usage.ts
|
|
12508
|
-
import { Router as
|
|
12675
|
+
import { Router as Router11 } from "express";
|
|
12509
12676
|
|
|
12510
12677
|
// src/db/usage-db.ts
|
|
12511
12678
|
init_paths();
|
|
@@ -12662,7 +12829,7 @@ function listDaily(filter = {}) {
|
|
|
12662
12829
|
|
|
12663
12830
|
// src/dashboard/api-usage.ts
|
|
12664
12831
|
function createUsageRouter() {
|
|
12665
|
-
const router =
|
|
12832
|
+
const router = Router11();
|
|
12666
12833
|
router.get("/", (req, res) => {
|
|
12667
12834
|
try {
|
|
12668
12835
|
initUsageDb();
|
|
@@ -12825,7 +12992,7 @@ init_parser();
|
|
|
12825
12992
|
init_slug();
|
|
12826
12993
|
init_timestamp();
|
|
12827
12994
|
init_fs();
|
|
12828
|
-
import { Router as
|
|
12995
|
+
import { Router as Router12 } from "express";
|
|
12829
12996
|
import { resolve as resolve23 } from "path";
|
|
12830
12997
|
import { readFile as readFile17 } from "fs/promises";
|
|
12831
12998
|
init_playbooks();
|
|
@@ -12842,7 +13009,7 @@ function statusForPlaybookError(code) {
|
|
|
12842
13009
|
}
|
|
12843
13010
|
}
|
|
12844
13011
|
function createPlaybooksRouter(playbooksDir2) {
|
|
12845
|
-
const router =
|
|
13012
|
+
const router = Router12();
|
|
12846
13013
|
router.get("/", async (_req, res) => {
|
|
12847
13014
|
try {
|
|
12848
13015
|
const playbooks = await listPlaybooks(playbooksDir2);
|
|
@@ -13006,7 +13173,7 @@ init_fs_migration();
|
|
|
13006
13173
|
init_parser2();
|
|
13007
13174
|
init_fs();
|
|
13008
13175
|
init_paths();
|
|
13009
|
-
import { Router as
|
|
13176
|
+
import { Router as Router13 } from "express";
|
|
13010
13177
|
import { readdir as readdir10 } from "fs/promises";
|
|
13011
13178
|
import { resolve as resolvePath, dirname as dirname5 } from "path";
|
|
13012
13179
|
import { rename as rename5, mkdir as mkdir2 } from "fs/promises";
|
|
@@ -13361,7 +13528,7 @@ function touchItem3(item) {
|
|
|
13361
13528
|
item.updatedAt = now;
|
|
13362
13529
|
}
|
|
13363
13530
|
function createTodosRouter(todosDir2, broadcast, projectsDir) {
|
|
13364
|
-
const router =
|
|
13531
|
+
const router = Router13();
|
|
13365
13532
|
installRecordsInvalidation(router);
|
|
13366
13533
|
function broadcastUpdate() {
|
|
13367
13534
|
broadcast({ type: "todos-updated", timestamp: (/* @__PURE__ */ new Date()).toISOString() });
|
|
@@ -14106,7 +14273,7 @@ init_parser2();
|
|
|
14106
14273
|
init_fs();
|
|
14107
14274
|
init_paths();
|
|
14108
14275
|
init_slug();
|
|
14109
|
-
import { Router as
|
|
14276
|
+
import { Router as Router14 } from "express";
|
|
14110
14277
|
import { mkdir as mkdir3, readFile as readFile18, rename as rename6 } from "fs/promises";
|
|
14111
14278
|
import { resolve as resolve25, dirname as dirname6 } from "path";
|
|
14112
14279
|
init_api();
|
|
@@ -14157,7 +14324,7 @@ function notFound(res, slug) {
|
|
|
14157
14324
|
res.status(404).json({ error: `Project "${slug}" not found` });
|
|
14158
14325
|
}
|
|
14159
14326
|
function createProjectTodosRouter(projectsDir, broadcast, workspaceTodosDir) {
|
|
14160
|
-
const router =
|
|
14327
|
+
const router = Router14({ mergeParams: true });
|
|
14161
14328
|
installRecordsInvalidation(router);
|
|
14162
14329
|
function broadcastUpdate(projectSlug) {
|
|
14163
14330
|
broadcast({ type: "todos-updated", projectSlug, timestamp: (/* @__PURE__ */ new Date()).toISOString() });
|
|
@@ -14983,7 +15150,7 @@ workspace: ${slug}
|
|
|
14983
15150
|
}
|
|
14984
15151
|
|
|
14985
15152
|
// src/dashboard/api-bundles.ts
|
|
14986
|
-
import { Router as
|
|
15153
|
+
import { Router as Router15 } from "express";
|
|
14987
15154
|
import { readdir as readdir11 } from "fs/promises";
|
|
14988
15155
|
|
|
14989
15156
|
// src/todos/bundle-parser.ts
|
|
@@ -15094,7 +15261,7 @@ function annotate(bundle, items) {
|
|
|
15094
15261
|
}
|
|
15095
15262
|
function createBundlesRouter(todosDir2, broadcast) {
|
|
15096
15263
|
void broadcast;
|
|
15097
|
-
const router =
|
|
15264
|
+
const router = Router15();
|
|
15098
15265
|
function validateWorkspace(req, res, next) {
|
|
15099
15266
|
const workspace = getWorkspaceParam2(req.params.workspace);
|
|
15100
15267
|
if (workspace && !WORKSPACE_REGEX3.test(workspace)) {
|
|
@@ -15160,7 +15327,7 @@ function createBundlesRouter(todosDir2, broadcast) {
|
|
|
15160
15327
|
init_fs();
|
|
15161
15328
|
init_paths();
|
|
15162
15329
|
init_slug();
|
|
15163
|
-
import { Router as
|
|
15330
|
+
import { Router as Router16 } from "express";
|
|
15164
15331
|
import { resolve as resolve26 } from "path";
|
|
15165
15332
|
init_parser2();
|
|
15166
15333
|
function deriveStatus2(bundle, items) {
|
|
@@ -15190,7 +15357,7 @@ function notFound2(res, slug) {
|
|
|
15190
15357
|
}
|
|
15191
15358
|
function createProjectBundlesRouter(projectsDir, broadcast) {
|
|
15192
15359
|
void broadcast;
|
|
15193
|
-
const router =
|
|
15360
|
+
const router = Router16({ mergeParams: true });
|
|
15194
15361
|
function validateProjectId(req, res, next) {
|
|
15195
15362
|
const slug = getProjectIdParam2(req.params.projectId);
|
|
15196
15363
|
if (!slug || !isValidSlug(slug)) {
|
|
@@ -15224,7 +15391,7 @@ function createProjectBundlesRouter(projectsDir, broadcast) {
|
|
|
15224
15391
|
init_config2();
|
|
15225
15392
|
init_api();
|
|
15226
15393
|
init_scanner();
|
|
15227
|
-
import { Router as
|
|
15394
|
+
import { Router as Router17 } from "express";
|
|
15228
15395
|
|
|
15229
15396
|
// src/utils/github-backup.ts
|
|
15230
15397
|
init_paths();
|
|
@@ -15547,7 +15714,7 @@ async function getBackupStatus() {
|
|
|
15547
15714
|
|
|
15548
15715
|
// src/dashboard/api-backup.ts
|
|
15549
15716
|
function createBackupRouter() {
|
|
15550
|
-
const router =
|
|
15717
|
+
const router = Router17();
|
|
15551
15718
|
router.get("/", async (_req, res) => {
|
|
15552
15719
|
try {
|
|
15553
15720
|
const status = await getBackupStatus();
|
|
@@ -15970,6 +16137,7 @@ function createDashboardServer(options) {
|
|
|
15970
16137
|
}
|
|
15971
16138
|
});
|
|
15972
16139
|
app.use("/api/config/terminal", createTerminalConfigRouter());
|
|
16140
|
+
app.use("/api/config/workspace-visibility", createWorkspaceVisibilityConfigRouter());
|
|
15973
16141
|
app.get("/api/config/hotkeys", async (_req, res) => {
|
|
15974
16142
|
try {
|
|
15975
16143
|
const config = await readConfig();
|