@locusai/cli 0.1.0 → 0.1.2
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/bin/locus.js +1 -2
- package/bin/mcp.js +21 -44
- package/bin/server.js +37 -69
- package/package.json +1 -1
- package/public/dashboard/404.html +1 -1
- package/public/dashboard/_next/static/chunks/{140.29d6e9ea1df01666.js → 140.d5e67b269d70c096.js} +1 -1
- package/public/dashboard/_next/static/chunks/{142.e0cbd3087fd025fc.js → 142.82cd6bec804102b9.js} +1 -1
- package/public/dashboard/_next/static/chunks/{188.1512869303a9ef11.js → 188.27288b5094867f29.js} +1 -1
- package/public/dashboard/_next/static/chunks/855-a193e1d785e334cf.js +2 -0
- package/public/dashboard/_next/static/chunks/892-70ddfae0f8c9ee9f.js +1 -0
- package/public/dashboard/_next/static/chunks/app/{page-e1e7887da301e162.js → backlog/page-ade60a21a3597509.js} +1 -1
- package/public/dashboard/_next/static/chunks/app/docs/{page-e90e86777b3c946f.js → page-5f69fffac832d77c.js} +1 -1
- package/public/dashboard/_next/static/chunks/app/{layout-152c7fef4bd8f727.js → layout-a0acefd9b75ec3b8.js} +1 -1
- package/public/dashboard/_next/static/chunks/app/{backlog/page-f30275eedcf12ad8.js → page-cb3aec9c8077eab1.js} +1 -1
- package/public/dashboard/_next/static/chunks/app/settings/{page-67b58b5201cc6766.js → page-82693b6134aafc85.js} +1 -1
- package/public/dashboard/_next/static/chunks/main-39090d49dd3cd8c7.js +1 -0
- package/public/dashboard/_next/static/chunks/{main-app-18102516cfd3e949.js → main-app-bb0a6e7769aa4668.js} +1 -1
- package/public/dashboard/_next/static/chunks/{webpack-a4df5dd62e0babef.js → webpack-a21f388d2a000173.js} +1 -1
- package/public/dashboard/backlog.html +1 -1
- package/public/dashboard/backlog.txt +5 -5
- package/public/dashboard/docs.html +1 -1
- package/public/dashboard/docs.txt +5 -5
- package/public/dashboard/index.html +1 -1
- package/public/dashboard/index.txt +5 -5
- package/public/dashboard/settings.html +1 -1
- package/public/dashboard/settings.txt +5 -5
- package/public/dashboard/_next/static/WfUedKoDM4nZdcatRoQdk/_buildManifest.js +0 -1
- package/public/dashboard/_next/static/WfUedKoDM4nZdcatRoQdk/_ssgManifest.js +0 -1
- package/public/dashboard/_next/static/XW3_p_di5drusE-VlxzXK/_buildManifest.js +0 -1
- package/public/dashboard/_next/static/XW3_p_di5drusE-VlxzXK/_ssgManifest.js +0 -1
- package/public/dashboard/_next/static/bf2GOBXb9EaNnZkv7RVlG/_buildManifest.js +0 -1
- package/public/dashboard/_next/static/bf2GOBXb9EaNnZkv7RVlG/_ssgManifest.js +0 -1
- package/public/dashboard/_next/static/chunks/84-575620eb3bbfced4.js +0 -1
- package/public/dashboard/_next/static/chunks/855-df0aee06463ea596.js +0 -2
- package/public/dashboard/_next/static/chunks/886-5056f491a3d531b3.js +0 -1
- package/public/dashboard/_next/static/chunks/app/docs/page-377e5ca3267a2eb5.js +0 -1
- package/public/dashboard/_next/static/chunks/app/docs/page-89769946bd53dc5b.js +0 -1
- package/public/dashboard/_next/static/chunks/main-8ea28c2ff0c09b83.js +0 -1
- package/public/dashboard/_next/static/chunks/webpack-3acb64ba00ce78c9.js +0 -1
- package/public/dashboard/_next/static/chunks/webpack-ce3693c6fe6b715d.js +0 -1
- package/public/dashboard/_next/static/omFaTNN93MZypoe_iVckS/_buildManifest.js +0 -1
- package/public/dashboard/_next/static/omFaTNN93MZypoe_iVckS/_ssgManifest.js +0 -1
- /package/public/dashboard/_next/static/chunks/{273-a1771233d25f2119.js → 273-95c2836f1a6dfb23.js} +0 -0
- /package/public/dashboard/_next/static/{FKNiy9gxnBJm8JQK-p25K → mgA6xTBePiCXP1IVRWWME}/_buildManifest.js +0 -0
- /package/public/dashboard/_next/static/{FKNiy9gxnBJm8JQK-p25K → mgA6xTBePiCXP1IVRWWME}/_ssgManifest.js +0 -0
package/bin/locus.js
CHANGED
|
@@ -1102,8 +1102,7 @@ async function dev(args) {
|
|
|
1102
1102
|
if (process.platform === "darwin") {
|
|
1103
1103
|
Bun.spawn(["open", "http://localhost:3080"], { stdout: "ignore" });
|
|
1104
1104
|
}
|
|
1105
|
-
} catch {
|
|
1106
|
-
}
|
|
1105
|
+
} catch {}
|
|
1107
1106
|
}, 2000);
|
|
1108
1107
|
process.on("SIGINT", () => {
|
|
1109
1108
|
console.log(`
|
package/bin/mcp.js
CHANGED
|
@@ -2029,10 +2029,8 @@ var require_json_schema_traverse = __commonJS((exports, module) => {
|
|
|
2029
2029
|
opts = {};
|
|
2030
2030
|
}
|
|
2031
2031
|
cb = opts.cb || cb;
|
|
2032
|
-
var pre = typeof cb == "function" ? cb : cb.pre || function() {
|
|
2033
|
-
};
|
|
2034
|
-
var post = cb.post || function() {
|
|
2035
|
-
};
|
|
2032
|
+
var pre = typeof cb == "function" ? cb : cb.pre || function() {};
|
|
2033
|
+
var post = cb.post || function() {};
|
|
2036
2034
|
_traverse(opts, pre, post, schema, "", schema);
|
|
2037
2035
|
};
|
|
2038
2036
|
traverse.keywords = {
|
|
@@ -4233,10 +4231,7 @@ var require_core = __commonJS((exports) => {
|
|
|
4233
4231
|
delete metaOpts[opt];
|
|
4234
4232
|
return metaOpts;
|
|
4235
4233
|
}
|
|
4236
|
-
var noLogs = { log() {
|
|
4237
|
-
}, warn() {
|
|
4238
|
-
}, error() {
|
|
4239
|
-
} };
|
|
4234
|
+
var noLogs = { log() {}, warn() {}, error() {} };
|
|
4240
4235
|
function getLogger(logger) {
|
|
4241
4236
|
if (logger === false)
|
|
4242
4237
|
return noLogs;
|
|
@@ -6610,10 +6605,8 @@ __export(exports_external, {
|
|
|
6610
6605
|
// node_modules/zod/v3/helpers/util.js
|
|
6611
6606
|
var util;
|
|
6612
6607
|
(function(util2) {
|
|
6613
|
-
util2.assertEqual = (_) => {
|
|
6614
|
-
}
|
|
6615
|
-
function assertIs(_arg) {
|
|
6616
|
-
}
|
|
6608
|
+
util2.assertEqual = (_) => {};
|
|
6609
|
+
function assertIs(_arg) {}
|
|
6617
6610
|
util2.assertIs = assertIs;
|
|
6618
6611
|
function assertNever(_x) {
|
|
6619
6612
|
throw new Error;
|
|
@@ -8933,8 +8926,7 @@ class ZodObject extends ZodType {
|
|
|
8933
8926
|
});
|
|
8934
8927
|
status.dirty();
|
|
8935
8928
|
}
|
|
8936
|
-
} else if (unknownKeys === "strip") {
|
|
8937
|
-
} else {
|
|
8929
|
+
} else if (unknownKeys === "strip") {} else {
|
|
8938
8930
|
throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);
|
|
8939
8931
|
}
|
|
8940
8932
|
} else {
|
|
@@ -10590,13 +10582,11 @@ function assertEqual(val) {
|
|
|
10590
10582
|
function assertNotEqual(val) {
|
|
10591
10583
|
return val;
|
|
10592
10584
|
}
|
|
10593
|
-
function assertIs(_arg) {
|
|
10594
|
-
}
|
|
10585
|
+
function assertIs(_arg) {}
|
|
10595
10586
|
function assertNever(_x) {
|
|
10596
10587
|
throw new Error;
|
|
10597
10588
|
}
|
|
10598
|
-
function assert(_) {
|
|
10599
|
-
}
|
|
10589
|
+
function assert(_) {}
|
|
10600
10590
|
function getEnumValues(entries) {
|
|
10601
10591
|
const numericValues = Object.values(entries).filter((v) => typeof v === "number");
|
|
10602
10592
|
const values = Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v);
|
|
@@ -10693,8 +10683,7 @@ function randomString(length = 10) {
|
|
|
10693
10683
|
function esc(str) {
|
|
10694
10684
|
return JSON.stringify(str);
|
|
10695
10685
|
}
|
|
10696
|
-
var captureStackTrace = Error.captureStackTrace ? Error.captureStackTrace : (..._args) => {
|
|
10697
|
-
};
|
|
10686
|
+
var captureStackTrace = Error.captureStackTrace ? Error.captureStackTrace : (..._args) => {};
|
|
10698
10687
|
function isObject(data) {
|
|
10699
10688
|
return typeof data === "object" && data !== null && !Array.isArray(data);
|
|
10700
10689
|
}
|
|
@@ -11045,8 +11034,7 @@ function cleanEnum(obj) {
|
|
|
11045
11034
|
}
|
|
11046
11035
|
|
|
11047
11036
|
class Class {
|
|
11048
|
-
constructor(..._args) {
|
|
11049
|
-
}
|
|
11037
|
+
constructor(..._args) {}
|
|
11050
11038
|
}
|
|
11051
11039
|
|
|
11052
11040
|
// node_modules/zod/v4/core/errors.js
|
|
@@ -11512,8 +11500,7 @@ var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat"
|
|
|
11512
11500
|
});
|
|
11513
11501
|
});
|
|
11514
11502
|
else
|
|
11515
|
-
(_b = inst._zod).check ?? (_b.check = () => {
|
|
11516
|
-
});
|
|
11503
|
+
(_b = inst._zod).check ?? (_b.check = () => {});
|
|
11517
11504
|
});
|
|
11518
11505
|
var $ZodCheckRegex = /* @__PURE__ */ $constructor("$ZodCheckRegex", (inst, def) => {
|
|
11519
11506
|
$ZodCheckStringFormat.init(inst, def);
|
|
@@ -11754,8 +11741,7 @@ var $ZodString = /* @__PURE__ */ $constructor("$ZodString", (inst, def) => {
|
|
|
11754
11741
|
if (def.coerce)
|
|
11755
11742
|
try {
|
|
11756
11743
|
payload.value = String(payload.value);
|
|
11757
|
-
} catch (_2) {
|
|
11758
|
-
}
|
|
11744
|
+
} catch (_2) {}
|
|
11759
11745
|
if (typeof payload.value === "string")
|
|
11760
11746
|
return payload;
|
|
11761
11747
|
payload.issues.push({
|
|
@@ -12053,8 +12039,7 @@ var $ZodNumber = /* @__PURE__ */ $constructor("$ZodNumber", (inst, def) => {
|
|
|
12053
12039
|
if (def.coerce)
|
|
12054
12040
|
try {
|
|
12055
12041
|
payload.value = Number(payload.value);
|
|
12056
|
-
} catch (_) {
|
|
12057
|
-
}
|
|
12042
|
+
} catch (_) {}
|
|
12058
12043
|
const input = payload.value;
|
|
12059
12044
|
if (typeof input === "number" && !Number.isNaN(input) && Number.isFinite(input)) {
|
|
12060
12045
|
return payload;
|
|
@@ -12081,8 +12066,7 @@ var $ZodBoolean = /* @__PURE__ */ $constructor("$ZodBoolean", (inst, def) => {
|
|
|
12081
12066
|
if (def.coerce)
|
|
12082
12067
|
try {
|
|
12083
12068
|
payload.value = Boolean(payload.value);
|
|
12084
|
-
} catch (_) {
|
|
12085
|
-
}
|
|
12069
|
+
} catch (_) {}
|
|
12086
12070
|
const input = payload.value;
|
|
12087
12071
|
if (typeof input === "boolean")
|
|
12088
12072
|
return payload;
|
|
@@ -13505,8 +13489,7 @@ class JSONSchemaGenerator {
|
|
|
13505
13489
|
this.metadataRegistry = params?.metadata ?? globalRegistry;
|
|
13506
13490
|
this.target = params?.target ?? "draft-2020-12";
|
|
13507
13491
|
this.unrepresentable = params?.unrepresentable ?? "throw";
|
|
13508
|
-
this.override = params?.override ?? (() => {
|
|
13509
|
-
});
|
|
13492
|
+
this.override = params?.override ?? (() => {});
|
|
13510
13493
|
this.io = params?.io ?? "output";
|
|
13511
13494
|
this.seen = new Map;
|
|
13512
13495
|
}
|
|
@@ -13805,8 +13788,7 @@ class JSONSchemaGenerator {
|
|
|
13805
13788
|
if (val === undefined) {
|
|
13806
13789
|
if (this.unrepresentable === "throw") {
|
|
13807
13790
|
throw new Error("Literal `undefined` cannot be represented in JSON Schema");
|
|
13808
|
-
} else {
|
|
13809
|
-
}
|
|
13791
|
+
} else {}
|
|
13810
13792
|
} else if (typeof val === "bigint") {
|
|
13811
13793
|
if (this.unrepresentable === "throw") {
|
|
13812
13794
|
throw new Error("BigInt literals cannot be represented in JSON Schema");
|
|
@@ -13817,8 +13799,7 @@ class JSONSchemaGenerator {
|
|
|
13817
13799
|
vals.push(val);
|
|
13818
13800
|
}
|
|
13819
13801
|
}
|
|
13820
|
-
if (vals.length === 0) {
|
|
13821
|
-
} else if (vals.length === 1) {
|
|
13802
|
+
if (vals.length === 0) {} else if (vals.length === 1) {
|
|
13822
13803
|
const val = vals[0];
|
|
13823
13804
|
json.type = val === null ? "null" : typeof val;
|
|
13824
13805
|
json.const = val;
|
|
@@ -13957,8 +13938,7 @@ class JSONSchemaGenerator {
|
|
|
13957
13938
|
}
|
|
13958
13939
|
break;
|
|
13959
13940
|
}
|
|
13960
|
-
default: {
|
|
13961
|
-
}
|
|
13941
|
+
default: {}
|
|
13962
13942
|
}
|
|
13963
13943
|
}
|
|
13964
13944
|
}
|
|
@@ -14108,8 +14088,7 @@ class JSONSchemaGenerator {
|
|
|
14108
14088
|
defs[seen.defId] = seen.def;
|
|
14109
14089
|
}
|
|
14110
14090
|
}
|
|
14111
|
-
if (params.external) {
|
|
14112
|
-
} else {
|
|
14091
|
+
if (params.external) {} else {
|
|
14113
14092
|
if (Object.keys(defs).length > 0) {
|
|
14114
14093
|
if (this.target === "draft-2020-12") {
|
|
14115
14094
|
result.$defs = defs;
|
|
@@ -16424,8 +16403,7 @@ function parseStringDef(def, refs) {
|
|
|
16424
16403
|
case "trim":
|
|
16425
16404
|
break;
|
|
16426
16405
|
default:
|
|
16427
|
-
((_) => {
|
|
16428
|
-
})(check2);
|
|
16406
|
+
((_) => {})(check2);
|
|
16429
16407
|
}
|
|
16430
16408
|
}
|
|
16431
16409
|
}
|
|
@@ -17974,8 +17952,7 @@ class Protocol {
|
|
|
17974
17952
|
if (task?.pollInterval) {
|
|
17975
17953
|
interval = task.pollInterval;
|
|
17976
17954
|
}
|
|
17977
|
-
} catch {
|
|
17978
|
-
}
|
|
17955
|
+
} catch {}
|
|
17979
17956
|
return new Promise((resolve, reject) => {
|
|
17980
17957
|
if (signal.aborted) {
|
|
17981
17958
|
reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
|
package/bin/server.js
CHANGED
|
@@ -1061,8 +1061,7 @@ var require_inherits_browser = __commonJS((exports, module) => {
|
|
|
1061
1061
|
module.exports = function inherits(ctor, superCtor) {
|
|
1062
1062
|
if (superCtor) {
|
|
1063
1063
|
ctor.super_ = superCtor;
|
|
1064
|
-
var TempCtor = function() {
|
|
1065
|
-
};
|
|
1064
|
+
var TempCtor = function() {};
|
|
1066
1065
|
TempCtor.prototype = superCtor.prototype;
|
|
1067
1066
|
ctor.prototype = new TempCtor;
|
|
1068
1067
|
ctor.prototype.constructor = ctor;
|
|
@@ -1528,15 +1527,13 @@ var require_browser = __commonJS((exports, module) => {
|
|
|
1528
1527
|
} else {
|
|
1529
1528
|
exports.storage.debug = namespaces;
|
|
1530
1529
|
}
|
|
1531
|
-
} catch (e) {
|
|
1532
|
-
}
|
|
1530
|
+
} catch (e) {}
|
|
1533
1531
|
}
|
|
1534
1532
|
function load() {
|
|
1535
1533
|
var r;
|
|
1536
1534
|
try {
|
|
1537
1535
|
r = exports.storage.debug;
|
|
1538
|
-
} catch (e) {
|
|
1539
|
-
}
|
|
1536
|
+
} catch (e) {}
|
|
1540
1537
|
if (!r && typeof process !== "undefined" && "env" in process) {
|
|
1541
1538
|
r = process.env.DEBUG;
|
|
1542
1539
|
}
|
|
@@ -1546,8 +1543,7 @@ var require_browser = __commonJS((exports, module) => {
|
|
|
1546
1543
|
function localstorage() {
|
|
1547
1544
|
try {
|
|
1548
1545
|
return window.localStorage;
|
|
1549
|
-
} catch (e) {
|
|
1550
|
-
}
|
|
1546
|
+
} catch (e) {}
|
|
1551
1547
|
}
|
|
1552
1548
|
});
|
|
1553
1549
|
|
|
@@ -1583,8 +1579,7 @@ var require_node = __commonJS((exports, module) => {
|
|
|
1583
1579
|
}, {});
|
|
1584
1580
|
var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
|
|
1585
1581
|
if (fd !== 1 && fd !== 2) {
|
|
1586
|
-
util.deprecate(function() {
|
|
1587
|
-
}, "except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();
|
|
1582
|
+
util.deprecate(function() {}, "except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();
|
|
1588
1583
|
}
|
|
1589
1584
|
var stream = fd === 1 ? process.stdout : fd === 2 ? process.stderr : createWritableStdioStream(fd);
|
|
1590
1585
|
function useColors() {
|
|
@@ -1764,8 +1759,7 @@ var require_destroy = __commonJS((exports, module) => {
|
|
|
1764
1759
|
function isZlibStream(stream) {
|
|
1765
1760
|
return stream instanceof Zlib.Gzip || stream instanceof Zlib.Gunzip || stream instanceof Zlib.Deflate || stream instanceof Zlib.DeflateRaw || stream instanceof Zlib.Inflate || stream instanceof Zlib.InflateRaw || stream instanceof Zlib.Unzip;
|
|
1766
1761
|
}
|
|
1767
|
-
function noop() {
|
|
1768
|
-
}
|
|
1762
|
+
function noop() {}
|
|
1769
1763
|
function onDrainClearBinding() {
|
|
1770
1764
|
this._binding.clear();
|
|
1771
1765
|
}
|
|
@@ -1831,8 +1825,7 @@ var require_safer = __commonJS((exports, module) => {
|
|
|
1831
1825
|
if (!safer.kStringMaxLength) {
|
|
1832
1826
|
try {
|
|
1833
1827
|
safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
|
|
1834
|
-
} catch (e) {
|
|
1835
|
-
}
|
|
1828
|
+
} catch (e) {}
|
|
1836
1829
|
}
|
|
1837
1830
|
if (!safer.constants) {
|
|
1838
1831
|
safer.constants = {
|
|
@@ -1918,8 +1911,7 @@ var require_internal = __commonJS((exports, module) => {
|
|
|
1918
1911
|
InternalCodec.prototype.decoder = InternalDecoder;
|
|
1919
1912
|
var StringDecoder = __require("string_decoder").StringDecoder;
|
|
1920
1913
|
if (!StringDecoder.prototype.end)
|
|
1921
|
-
StringDecoder.prototype.end = function() {
|
|
1922
|
-
};
|
|
1914
|
+
StringDecoder.prototype.end = function() {};
|
|
1923
1915
|
function InternalDecoder(options, codec) {
|
|
1924
1916
|
StringDecoder.call(this, codec.enc);
|
|
1925
1917
|
}
|
|
@@ -1930,8 +1922,7 @@ var require_internal = __commonJS((exports, module) => {
|
|
|
1930
1922
|
InternalEncoder.prototype.write = function(str) {
|
|
1931
1923
|
return Buffer2.from(str, this.enc);
|
|
1932
1924
|
};
|
|
1933
|
-
InternalEncoder.prototype.end = function() {
|
|
1934
|
-
};
|
|
1925
|
+
InternalEncoder.prototype.end = function() {};
|
|
1935
1926
|
function InternalEncoderBase64(options, codec) {
|
|
1936
1927
|
this.prevStr = "";
|
|
1937
1928
|
}
|
|
@@ -1945,8 +1936,7 @@ var require_internal = __commonJS((exports, module) => {
|
|
|
1945
1936
|
InternalEncoderBase64.prototype.end = function() {
|
|
1946
1937
|
return Buffer2.from(this.prevStr, "base64");
|
|
1947
1938
|
};
|
|
1948
|
-
function InternalEncoderCesu8(options, codec) {
|
|
1949
|
-
}
|
|
1939
|
+
function InternalEncoderCesu8(options, codec) {}
|
|
1950
1940
|
InternalEncoderCesu8.prototype.write = function(str) {
|
|
1951
1941
|
var buf = Buffer2.alloc(str.length * 3), bufIdx = 0;
|
|
1952
1942
|
for (var i = 0;i < str.length; i++) {
|
|
@@ -1964,8 +1954,7 @@ var require_internal = __commonJS((exports, module) => {
|
|
|
1964
1954
|
}
|
|
1965
1955
|
return buf.slice(0, bufIdx);
|
|
1966
1956
|
};
|
|
1967
|
-
InternalEncoderCesu8.prototype.end = function() {
|
|
1968
|
-
};
|
|
1957
|
+
InternalEncoderCesu8.prototype.end = function() {};
|
|
1969
1958
|
function InternalDecoderCesu8(options, codec) {
|
|
1970
1959
|
this.acc = 0;
|
|
1971
1960
|
this.contBytes = 0;
|
|
@@ -2029,13 +2018,11 @@ var require_internal = __commonJS((exports, module) => {
|
|
|
2029
2018
|
var require_utf16 = __commonJS((exports) => {
|
|
2030
2019
|
var Buffer2 = require_safer().Buffer;
|
|
2031
2020
|
exports.utf16be = Utf16BECodec;
|
|
2032
|
-
function Utf16BECodec() {
|
|
2033
|
-
}
|
|
2021
|
+
function Utf16BECodec() {}
|
|
2034
2022
|
Utf16BECodec.prototype.encoder = Utf16BEEncoder;
|
|
2035
2023
|
Utf16BECodec.prototype.decoder = Utf16BEDecoder;
|
|
2036
2024
|
Utf16BECodec.prototype.bomAware = true;
|
|
2037
|
-
function Utf16BEEncoder() {
|
|
2038
|
-
}
|
|
2025
|
+
function Utf16BEEncoder() {}
|
|
2039
2026
|
Utf16BEEncoder.prototype.write = function(str) {
|
|
2040
2027
|
var buf = Buffer2.from(str, "ucs2");
|
|
2041
2028
|
for (var i = 0;i < buf.length; i += 2) {
|
|
@@ -2045,8 +2032,7 @@ var require_utf16 = __commonJS((exports) => {
|
|
|
2045
2032
|
}
|
|
2046
2033
|
return buf;
|
|
2047
2034
|
};
|
|
2048
|
-
Utf16BEEncoder.prototype.end = function() {
|
|
2049
|
-
};
|
|
2035
|
+
Utf16BEEncoder.prototype.end = function() {};
|
|
2050
2036
|
function Utf16BEDecoder() {
|
|
2051
2037
|
this.overflowByte = -1;
|
|
2052
2038
|
}
|
|
@@ -2067,8 +2053,7 @@ var require_utf16 = __commonJS((exports) => {
|
|
|
2067
2053
|
this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1;
|
|
2068
2054
|
return buf2.slice(0, j).toString("ucs2");
|
|
2069
2055
|
};
|
|
2070
|
-
Utf16BEDecoder.prototype.end = function() {
|
|
2071
|
-
};
|
|
2056
|
+
Utf16BEDecoder.prototype.end = function() {};
|
|
2072
2057
|
exports.utf16 = Utf16Codec;
|
|
2073
2058
|
function Utf16Codec(codecOptions, iconv) {
|
|
2074
2059
|
this.iconv = iconv;
|
|
@@ -2160,8 +2145,7 @@ var require_utf7 = __commonJS((exports) => {
|
|
|
2160
2145
|
return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-";
|
|
2161
2146
|
}.bind(this)));
|
|
2162
2147
|
};
|
|
2163
|
-
Utf7Encoder.prototype.end = function() {
|
|
2164
|
-
};
|
|
2148
|
+
Utf7Encoder.prototype.end = function() {};
|
|
2165
2149
|
function Utf7Decoder(options, codec) {
|
|
2166
2150
|
this.iconv = codec.iconv;
|
|
2167
2151
|
this.inBase64 = false;
|
|
@@ -2370,8 +2354,7 @@ var require_sbcs_codec = __commonJS((exports) => {
|
|
|
2370
2354
|
buf[i] = this.encodeBuf[str.charCodeAt(i)];
|
|
2371
2355
|
return buf;
|
|
2372
2356
|
};
|
|
2373
|
-
SBCSEncoder.prototype.end = function() {
|
|
2374
|
-
};
|
|
2357
|
+
SBCSEncoder.prototype.end = function() {};
|
|
2375
2358
|
function SBCSDecoder(options, codec) {
|
|
2376
2359
|
this.decodeBuf = codec.decodeBuf;
|
|
2377
2360
|
}
|
|
@@ -2387,8 +2370,7 @@ var require_sbcs_codec = __commonJS((exports) => {
|
|
|
2387
2370
|
}
|
|
2388
2371
|
return newBuf.toString("ucs2");
|
|
2389
2372
|
};
|
|
2390
|
-
SBCSDecoder.prototype.end = function() {
|
|
2391
|
-
};
|
|
2373
|
+
SBCSDecoder.prototype.end = function() {};
|
|
2392
2374
|
});
|
|
2393
2375
|
|
|
2394
2376
|
// node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-data.js
|
|
@@ -3225,8 +3207,7 @@ var require_dbcs_codec = __commonJS((exports) => {
|
|
|
3225
3207
|
if (resCode !== undefined) {
|
|
3226
3208
|
dbcsCode = resCode;
|
|
3227
3209
|
nextChar = uCode;
|
|
3228
|
-
} else {
|
|
3229
|
-
}
|
|
3210
|
+
} else {}
|
|
3230
3211
|
}
|
|
3231
3212
|
seqObj = undefined;
|
|
3232
3213
|
} else if (uCode >= 0) {
|
|
@@ -3282,8 +3263,7 @@ var require_dbcs_codec = __commonJS((exports) => {
|
|
|
3282
3263
|
newBuf[j++] = dbcsCode >> 8;
|
|
3283
3264
|
newBuf[j++] = dbcsCode & 255;
|
|
3284
3265
|
}
|
|
3285
|
-
} else {
|
|
3286
|
-
}
|
|
3266
|
+
} else {}
|
|
3287
3267
|
this.seqObj = undefined;
|
|
3288
3268
|
}
|
|
3289
3269
|
if (this.leadSurrogate !== -1) {
|
|
@@ -3308,8 +3288,7 @@ var require_dbcs_codec = __commonJS((exports) => {
|
|
|
3308
3288
|
for (var i2 = 0, j = 0;i2 < buf.length; i2++) {
|
|
3309
3289
|
var curByte = i2 >= 0 ? buf[i2] : prevBuf[i2 + prevBufOffset];
|
|
3310
3290
|
var uCode = this.decodeTables[nodeIdx][curByte];
|
|
3311
|
-
if (uCode >= 0) {
|
|
3312
|
-
} else if (uCode === UNASSIGNED) {
|
|
3291
|
+
if (uCode >= 0) {} else if (uCode === UNASSIGNED) {
|
|
3313
3292
|
i2 = seqStart;
|
|
3314
3293
|
uCode = this.defaultCharUnicode.charCodeAt(0);
|
|
3315
3294
|
} else if (uCode === GB18030_CODE) {
|
|
@@ -5094,8 +5073,7 @@ var require_lib2 = __commonJS((exports, module) => {
|
|
|
5094
5073
|
require_extend_node()(iconv);
|
|
5095
5074
|
}
|
|
5096
5075
|
var nodeVerArr;
|
|
5097
|
-
if (false) {
|
|
5098
|
-
}
|
|
5076
|
+
if (false) {}
|
|
5099
5077
|
});
|
|
5100
5078
|
|
|
5101
5079
|
// node_modules/unpipe/index.js
|
|
@@ -15065,8 +15043,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
15065
15043
|
try {
|
|
15066
15044
|
symToString.call(obj);
|
|
15067
15045
|
return true;
|
|
15068
|
-
} catch (e) {
|
|
15069
|
-
}
|
|
15046
|
+
} catch (e) {}
|
|
15070
15047
|
return false;
|
|
15071
15048
|
}
|
|
15072
15049
|
function isBigInt(obj) {
|
|
@@ -15076,8 +15053,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
15076
15053
|
try {
|
|
15077
15054
|
bigIntValueOf.call(obj);
|
|
15078
15055
|
return true;
|
|
15079
|
-
} catch (e) {
|
|
15080
|
-
}
|
|
15056
|
+
} catch (e) {}
|
|
15081
15057
|
return false;
|
|
15082
15058
|
}
|
|
15083
15059
|
var hasOwn = Object.prototype.hasOwnProperty || function(key) {
|
|
@@ -15122,8 +15098,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
15122
15098
|
return true;
|
|
15123
15099
|
}
|
|
15124
15100
|
return x instanceof Map;
|
|
15125
|
-
} catch (e) {
|
|
15126
|
-
}
|
|
15101
|
+
} catch (e) {}
|
|
15127
15102
|
return false;
|
|
15128
15103
|
}
|
|
15129
15104
|
function isWeakMap(x) {
|
|
@@ -15138,8 +15113,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
15138
15113
|
return true;
|
|
15139
15114
|
}
|
|
15140
15115
|
return x instanceof WeakMap;
|
|
15141
|
-
} catch (e) {
|
|
15142
|
-
}
|
|
15116
|
+
} catch (e) {}
|
|
15143
15117
|
return false;
|
|
15144
15118
|
}
|
|
15145
15119
|
function isWeakRef(x) {
|
|
@@ -15149,8 +15123,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
15149
15123
|
try {
|
|
15150
15124
|
weakRefDeref.call(x);
|
|
15151
15125
|
return true;
|
|
15152
|
-
} catch (e) {
|
|
15153
|
-
}
|
|
15126
|
+
} catch (e) {}
|
|
15154
15127
|
return false;
|
|
15155
15128
|
}
|
|
15156
15129
|
function isSet(x) {
|
|
@@ -15165,8 +15138,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
15165
15138
|
return true;
|
|
15166
15139
|
}
|
|
15167
15140
|
return x instanceof Set;
|
|
15168
|
-
} catch (e) {
|
|
15169
|
-
}
|
|
15141
|
+
} catch (e) {}
|
|
15170
15142
|
return false;
|
|
15171
15143
|
}
|
|
15172
15144
|
function isWeakSet(x) {
|
|
@@ -15181,8 +15153,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
15181
15153
|
return true;
|
|
15182
15154
|
}
|
|
15183
15155
|
return x instanceof WeakSet;
|
|
15184
|
-
} catch (e) {
|
|
15185
|
-
}
|
|
15156
|
+
} catch (e) {}
|
|
15186
15157
|
return false;
|
|
15187
15158
|
}
|
|
15188
15159
|
function isElement(x) {
|
|
@@ -15639,8 +15610,7 @@ var require_implementation = __commonJS((exports, module) => {
|
|
|
15639
15610
|
}
|
|
15640
15611
|
bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
|
|
15641
15612
|
if (target.prototype) {
|
|
15642
|
-
var Empty = function Empty() {
|
|
15643
|
-
};
|
|
15613
|
+
var Empty = function Empty() {};
|
|
15644
15614
|
Empty.prototype = target.prototype;
|
|
15645
15615
|
bound.prototype = new Empty;
|
|
15646
15616
|
Empty.prototype = null;
|
|
@@ -15760,8 +15730,7 @@ var require_get_intrinsic = __commonJS((exports, module) => {
|
|
|
15760
15730
|
var getEvalledConstructor = function(expressionSyntax) {
|
|
15761
15731
|
try {
|
|
15762
15732
|
return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
|
|
15763
|
-
} catch (e) {
|
|
15764
|
-
}
|
|
15733
|
+
} catch (e) {}
|
|
15765
15734
|
};
|
|
15766
15735
|
var $gOPD = require_gopd();
|
|
15767
15736
|
var $defineProperty = require_es_define_property();
|
|
@@ -31345,12 +31314,13 @@ class CiController {
|
|
|
31345
31314
|
// apps/server/src/controllers/doc.controller.ts
|
|
31346
31315
|
import {
|
|
31347
31316
|
existsSync as existsSync2,
|
|
31317
|
+
mkdirSync,
|
|
31348
31318
|
readdirSync,
|
|
31349
31319
|
readFileSync,
|
|
31350
31320
|
statSync,
|
|
31351
31321
|
writeFileSync
|
|
31352
31322
|
} from "fs";
|
|
31353
|
-
import { join as join2 } from "path";
|
|
31323
|
+
import { dirname, join as join2 } from "path";
|
|
31354
31324
|
|
|
31355
31325
|
class DocController {
|
|
31356
31326
|
config;
|
|
@@ -31407,6 +31377,7 @@ class DocController {
|
|
|
31407
31377
|
if (!fullPath.startsWith(this.config.docsPath)) {
|
|
31408
31378
|
return res.status(403).json({ error: { message: "Invalid path" } });
|
|
31409
31379
|
}
|
|
31380
|
+
mkdirSync(dirname(fullPath), { recursive: true });
|
|
31410
31381
|
writeFileSync(fullPath, content, "utf-8");
|
|
31411
31382
|
res.json({ ok: true });
|
|
31412
31383
|
} catch (err) {
|
|
@@ -31610,10 +31581,8 @@ __export(exports_external, {
|
|
|
31610
31581
|
// node_modules/zod/v3/helpers/util.js
|
|
31611
31582
|
var util;
|
|
31612
31583
|
(function(util2) {
|
|
31613
|
-
util2.assertEqual = (_) => {
|
|
31614
|
-
}
|
|
31615
|
-
function assertIs(_arg) {
|
|
31616
|
-
}
|
|
31584
|
+
util2.assertEqual = (_) => {};
|
|
31585
|
+
function assertIs(_arg) {}
|
|
31617
31586
|
util2.assertIs = assertIs;
|
|
31618
31587
|
function assertNever(_x) {
|
|
31619
31588
|
throw new Error;
|
|
@@ -33933,8 +33902,7 @@ class ZodObject extends ZodType {
|
|
|
33933
33902
|
});
|
|
33934
33903
|
status.dirty();
|
|
33935
33904
|
}
|
|
33936
|
-
} else if (unknownKeys === "strip") {
|
|
33937
|
-
} else {
|
|
33905
|
+
} else if (unknownKeys === "strip") {} else {
|
|
33938
33906
|
throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);
|
|
33939
33907
|
}
|
|
33940
33908
|
} else {
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ce3693c6fe6b715d.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-df0aee06463ea596.js" async=""></script><script src="/_next/static/chunks/main-app-18102516cfd3e949.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-a1771233d25f2119.js" async=""></script><script src="/_next/static/chunks/app/layout-152c7fef4bd8f727.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-ce3693c6fe6b715d.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-a1771233d25f2119.js\",\"177\",\"static/chunks/app/layout-152c7fef4bd8f727.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-a1771233d25f2119.js\",\"177\",\"static/chunks/app/layout-152c7fef4bd8f727.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-a1771233d25f2119.js\",\"177\",\"static/chunks/app/layout-152c7fef4bd8f727.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[1432,[],\"OutletBoundary\"]\n9:I[1432,[],\"MetadataBoundary\"]\nb:I[1432,[],\"ViewportBoundary\"]\nd:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"FKNiy9gxnBJm8JQK-p25K\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$1\",\"vAuyA6dqYIBcsL_AIDFUf\",{\"children\":[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/47cbc4e2adbc5db9-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/8aea088cdc4338f0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2c06e0e7e056d3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a21f388d2a000173.js"/><script src="/_next/static/chunks/87c73c54-18883d7ce69be0ce.js" async=""></script><script src="/_next/static/chunks/855-a193e1d785e334cf.js" async=""></script><script src="/_next/static/chunks/main-app-bb0a6e7769aa4668.js" async=""></script><script src="/_next/static/chunks/954-73b5906ca7819e42.js" async=""></script><script src="/_next/static/chunks/273-95c2836f1a6dfb23.js" async=""></script><script src="/_next/static/chunks/app/layout-a0acefd9b75ec3b8.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Locus | Engineering Workspace</title><meta name="description" content="Modernized task management and documentation for engineering teams."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_6a21cc antialiased"><div class="flex h-screen overflow-hidden bg-background"><aside class="w-[260px] flex flex-col border-r border-border/50 bg-card/50 backdrop-blur-sm h-full"><div class="flex items-center gap-3 p-5 border-b border-border/50"><div class="bg-linear-to-br from-primary to-primary/70 text-primary-foreground p-2 rounded-xl shadow-lg shadow-primary/20"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"></path></svg></div><div><h2 class="text-lg font-bold tracking-tight text-foreground">Locus</h2><p class="text-[10px] text-muted-foreground font-medium">Engineering Workspace</p></div></div><div class="flex-1 p-4"><div class="text-[10px] uppercase font-bold tracking-widest text-muted-foreground/70 mb-3 px-3">Navigation</div><nav class="space-y-1"><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard group-hover:scale-110 transition-transform"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><div class="flex-1"><span class="block">Board</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/backlog"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list group-hover:scale-110 transition-transform"><path d="M3 12h.01"></path><path d="M3 18h.01"></path><path d="M3 6h.01"></path><path d="M8 12h13"></path><path d="M8 18h13"></path><path d="M8 6h13"></path></svg><div class="flex-1"><span class="block">Backlog</span></div></a><a class="group flex items-center gap-3 px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary hover:text-foreground" href="/docs"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text group-hover:scale-110 transition-transform"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><div class="flex-1"><span class="block">Library</span></div></a></nav></div><div class="p-4 border-t border-border/50"><a class="flex items-center gap-3 w-full px-3 py-2.5 text-sm font-medium rounded-xl transition-all text-muted-foreground hover:bg-secondary/60 hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></div></aside><main class="flex-1 overflow-auto bg-background p-8"><div class="max-w-[1440px] mx-auto"><header class="flex items-center mb-6 py-3"><div class="relative flex-1 max-w-md group"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search absolute left-3.5 top-1/2 -translate-y-1/2 text-muted-foreground group-focus-within:text-primary transition-colors"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Search tasks, docs... (⌘K)" class="w-full bg-secondary/40 border border-border/50 rounded-lg pl-10 pr-4 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/70 outline-none transition-all focus:border-primary/50 focus:ring-2 focus:ring-primary/20 focus:bg-background hover:bg-secondary/60"/></div></header><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-a21f388d2a000173.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3619,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Providers\"]\n3:I[4211,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Sidebar\"]\n4:I[8714,[\"954\",\"static/chunks/954-73b5906ca7819e42.js\",\"273\",\"static/chunks/273-95c2836f1a6dfb23.js\",\"177\",\"static/chunks/app/layout-a0acefd9b75ec3b8.js\"],\"Header\"]\n5:I[9507,[],\"\"]\n6:I[2639,[],\"\"]\n7:I[1432,[],\"OutletBoundary\"]\n9:I[1432,[],\"MetadataBoundary\"]\nb:I[1432,[],\"ViewportBoundary\"]\nd:I[9398,[],\"\"]\n:HL[\"/_next/static/media/47cbc4e2adbc5db9-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/8aea088cdc4338f0.css\",\"style\"]\n:HL[\"/_next/static/css/c2c06e0e7e056d3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"mgA6xTBePiCXP1IVRWWME\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8aea088cdc4338f0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2c06e0e7e056d3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_6a21cc antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-screen overflow-hidden bg-background\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-auto bg-background p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1440px] mx-auto\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:props:children:1:props:children:props:children:1:props:notFound:1:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$1\",\"8V3ZDiNmdnEshdpnhFeDT\",{\"children\":[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Locus | Engineering Workspace\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Modernized task management and documentation for engineering teams.\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\n"])</script></body></html>
|