dreamcontext 0.16.0 → 0.17.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/dashboard/assets/{BrainCanvas3D-Dq2AZVLs.js → BrainCanvas3D-y35c1rJf.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-Rjr0gzcI.js → _baseUniq-g57aeE1L.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-B6xPVLtZ.js → ar-SA-G6X2FPQ2-B7ybIFFt.js} +1 -1
- package/dist/dashboard/assets/{arc-MywWiHZZ.js → arc-C5Y4eje1.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-DYku7HV_.js → architectureDiagram-Q4EWVU46-DnxEKMQ-.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-DS6KjFyN.js → az-AZ-76LH7QW2-DF75BEoV.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-5dVZIYN7.js → bg-BG-XCXSNQG7-D_xX3Evl.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-CLHIA42j.js → blockDiagram-DXYQGD6D-DsFvaLns.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-DPdctd0M.js → bn-BD-2XOGV67Q-DSRsGjwD.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-KCxsjhZ-.js → c4Diagram-AHTNJAMY-DXmGhsoH.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-BwsiffyD.js → ca-ES-6MX7JW3Y-DXLsz3CU.js} +1 -1
- package/dist/dashboard/assets/channel-8FAi-z4K.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-CXYJqRL7.js → chunk-4BX2VUAB-B1u0KwPb.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-64IoWLUH.js → chunk-4TB4RGXK-DCMNOaAV.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-oeTs6Ons.js → chunk-55IACEB6-ByleWNvl.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-DnBDiozF.js → chunk-EDXVE4YY-D1uIvY6z.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-1vZj5k6I.js → chunk-FMBD7UC4-gnrb7hoq.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-ChzA2Qb2.js → chunk-OYMX7WX6-DW6-cdV3.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-DFD_tEP6.js → chunk-QZHKN3VN-CGHdGGkQ.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-BHU_oH_c.js → chunk-YZCP3GAM-DDJQ7-hq.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-Docm0aN-.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-Docm0aN-.js +1 -0
- package/dist/dashboard/assets/clone-CxkSBJ3W.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-Bg8VEGjl.js → cose-bilkent-S5V4N54A-CTQIwiIq.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-CwAnE7Z6.js → cs-CZ-2BRQDIVT-BKvVPsJS.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-DsAINO0_.js → da-DK-5WZEPLOC-D-GZqbdX.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-CdNovau5.js → dagre-KV5264BT-Jz3whjk4.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-DQ5OpjQD.js → de-DE-XR44H4JA-dN8Dh2tp.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-DIm6J283.js → diagram-5BDNPKRD-DtDbd2d1.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-CK08ITsx.js → diagram-G4DWMVQ6-DFVSpltG.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-DhJYPP7z.js → diagram-MMDJMWI5-eBAtVrcR.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-C_e80UTu.js → diagram-TYMM5635-BHjVr_FM.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-DclRqvkS.js → el-GR-BZB4AONW-RPZfx5-x.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-MyfjSgFp.js → erDiagram-SMLLAGMA-CXAkwxcx.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-CHBzsVCs.js → es-ES-U4NZUMDT-DQv-XgP6.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-CVStEZVJ.js → eu-ES-A7QVB2H4-CuWBCBqu.js} +1 -1
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-84UjGZiC.js → fa-IR-HGAKTJCU-4FMGsomC.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-B-_lgOAU.js → fi-FI-Z5N7JZ37-C_7XKQ39.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-nR9IojlX.js → flowDiagram-DWJPFMVM-BFdWnw5h.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-lXmb84Qf.js → fr-FR-RHASNOE6-pmcEtk8N.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-CDXS_k5x.js → ganttDiagram-T4ZO3ILL-DFf9_pss.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-DlSCg_be.js → gitGraphDiagram-UUTBAWPF-DURiCXR8.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-DsAiVwM4.js → gl-ES-HMX3MZ6V-DB4ImOy_.js} +1 -1
- package/dist/dashboard/assets/{graph-C23F2q3y.js → graph-DYtPayNd.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-CNHUnglJ.js → he-IL-6SHJWFNN-CHIkZOP6.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-gkocGD33.js → hi-IN-IWLTKZ5I-pVpeINen.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-lq_pPFj9.js → hu-HU-A5ZG7DT2-CAUlCsMQ.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-DUKThVft.js → id-ID-SAP4L64H-BZJDBU66.js} +1 -1
- package/dist/dashboard/assets/{index-xYYnjbSx.js → index-B8f3KGr5.js} +155 -155
- package/dist/dashboard/assets/{index-CVcgkdal.css → index-BdZ3tppu.css} +2 -2
- package/dist/dashboard/assets/{index-DFFGxCUu.js → index-DxIybLvS.js} +1 -1
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-BIZDd3qg.js → infoDiagram-42DDH7IO-BPiW3Ij4.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-Bj5MHhfc.js → ishikawaDiagram-UXIWVN3A-Blkx8f3S.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-DIDeuYqe.js → it-IT-JPQ66NNP-My2T4UwV.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-BqPEBA22.js → ja-JP-DBVTYXUO-BPD5Unyr.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-B41HNLhc.js → journeyDiagram-VCZTEJTY-BDsJYpXT.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-CCgtE0-l.js → kaa-6HZHGXH3-ByIbhvgR.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-A4y6sskJ.js → kab-KAB-ZGHBKWFO-eKUh9BOS.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-DR-Zc9Wa.js → kanban-definition-6JOO6SKY-C3viwNtJ.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-CaXfkWxC.js → kk-KZ-P5N5QNE5-CyZ_MOrV.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-DGfryG3j.js → km-KH-HSX4SM5Z-D3FZvcLx.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-CuNG6PfQ.js → ko-KR-MTYHY66A-D8irDigM.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-DZNsnhP9.js → ku-TR-6OUDTVRD-B7P1RwAB.js} +1 -1
- package/dist/dashboard/assets/{layout-CThyY_Dn.js → layout-Bm4ekZW0.js} +1 -1
- package/dist/dashboard/assets/{linear-DBRj6V2K.js → linear-CuMgtZOc.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-B97DldtT.js → lt-LT-XHIRWOB4-Ci1UvfZQ.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-yrPeKaL3.js → lv-LV-5QDEKY6T-Bo3huXeU.js} +1 -1
- package/dist/dashboard/assets/{min-DHVsc_O1.js → min-DbOs1vEh.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-ta1H_Vv6.js → mindmap-definition-QFDTVHPH-Bqzy1-O0.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-b3dApjRs.js → mr-IN-CRQNXWMA-CqisPVEd.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-BHIBHPam.js → my-MM-5M5IBNSE-BeBN5i_N.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-MhmUUkRf.js → nb-NO-T6EIAALU-D5dV1--A.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-lff3Vuu6.js → nl-NL-IS3SIHDZ-D-0yJ8XR.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-DXvDarQa.js → nn-NO-6E72VCQL-Vo96ITcp.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-Ckw3bKbR.js → oc-FR-POXYY2M6-nsG4ZsrH.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-B2_S0arL.js → pa-IN-N4M65BXN-DxCDdJGd.js} +1 -1
- package/dist/dashboard/assets/{percentages-BXMCSKIN-B3ROetXt.js → percentages-BXMCSKIN-BjW3QiBD.js} +7 -7
- package/dist/dashboard/assets/{pica-g7PUwtlw.js → pica-BbAsDbLn.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-CjThCCvb.js → pieDiagram-DEJITSTG-CCVGHDYA.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-DzkRcoZK.js → pl-PL-T2D74RX3-BxKUkBW3.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-D41OxsmY.js → pt-BR-5N22H2LF-B2rKoKHu.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-BuClZ87f.js → pt-PT-UZXXM6DQ-D2aDN9F3.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-RD4818Y7.js → quadrantDiagram-34T5L4WZ-DPRv7LNW.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-CXJidhho.js → requirementDiagram-MS252O5E-6bTSQFfr.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-DqTdk1yt.js → ro-RO-JPDTUUEW-C1oY-qLb.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-V4DgtGOD.js → ru-RU-B4JR7IUQ-aHhtIKSv.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-C1sycfmk.js → sankeyDiagram-XADWPNL6-BWSI8qsY.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-BsRhf00C.js → sequenceDiagram-FGHM5R23-DANhN4OD.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-BkjJVIKw.js → si-LK-N5RQ5JYF-D2d4DTQQ.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-CGyzVMuS.js → sk-SK-C5VTKIMK-Di1t95sR.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC-B_v3LIOj.js → sl-SI-NN7IZMDC-CQXx5B1D.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-AHgyeSSd.js → stateDiagram-FHFEXIEX-CpuW4o5E.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-hI3OGuUV.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-Ci_oaXw-.js → subset-shared.chunk-CZJii2rp.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-CVvKFWGY.js → subset-worker.chunk-CtJccz91.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-D5t6-bQC.js → sv-SE-XGPEYMSR-BtJ_mbLr.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-DEKtK_gX.js → ta-IN-2NMHFXQM-Dq22XWgM.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-DRcU9LZ2.js → th-TH-HPSO5L25-ChfIMa5w.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-PBxzQfC2.js → timeline-definition-GMOUNBTQ-nUPbvtjj.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU-CBguuduX.js → tr-TR-DEFEU3FU-Lon-b9uf.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-i0PRyM7M.js → uk-UA-QMV73CPH-BmpXA4GS.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-YAtaCt6v.js → vennDiagram-DHZGUBPP-Cfq6Ys0H.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-NwV9F7AH.js → vi-VN-M7AON7JQ-gUFADT8k.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-fgxrOw2v.js → wardley-RL74JXVD-DbjyRI1F.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-Dpq96Mxt.js → wardleyDiagram-NUSXRM2D-D7kJ-35q.js} +1 -1
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-DiPx1Q_d.js → xychartDiagram-5P7HB3ND-Bt41FbXl.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-DkOI6Dmv.js → zh-CN-LNUGB5OW-GEnnC6n4.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-lIsB7f8U.js → zh-HK-E62DVLB3-bQyXnsrh.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-DbxNlWLc.js → zh-TW-RAJ6MFWO-Buauia8Y.js} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/index.js +232 -85
- package/package.json +3 -3
- package/dist/dashboard/assets/channel-C8dyNz3Z.js +0 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-BAOXjBRe.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-BAOXjBRe.js +0 -1
- package/dist/dashboard/assets/clone-Cpvwh6xu.js +0 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-XVTOYBBV.js +0 -1
package/dist/index.js
CHANGED
|
@@ -38750,6 +38750,27 @@ function readGlobalGitHubLogin(home) {
|
|
|
38750
38750
|
const v = readGlobalSecretsFile(home).github?.login;
|
|
38751
38751
|
return v && v.trim() ? v.trim() : null;
|
|
38752
38752
|
}
|
|
38753
|
+
function readGlobalGitHubNeedsReconnect(home) {
|
|
38754
|
+
const gh = readGlobalSecretsFile(home).github;
|
|
38755
|
+
return !!(gh?.token && gh.token.trim() && gh.needsReconnect === true);
|
|
38756
|
+
}
|
|
38757
|
+
function setGlobalGitHubAuthValid(valid, home) {
|
|
38758
|
+
const secrets = readGlobalSecretsFile(home);
|
|
38759
|
+
const gh = secrets.github;
|
|
38760
|
+
if (!gh?.token || !gh.token.trim()) return;
|
|
38761
|
+
const current = gh.needsReconnect === true;
|
|
38762
|
+
const next = !valid;
|
|
38763
|
+
if (current === next) return;
|
|
38764
|
+
if (next) gh.needsReconnect = true;
|
|
38765
|
+
else delete gh.needsReconnect;
|
|
38766
|
+
const path2 = globalSecretsPath(home);
|
|
38767
|
+
mkdirSync27(dirname23(path2), { recursive: true });
|
|
38768
|
+
writeFileSync32(path2, JSON.stringify(secrets, null, 2) + "\n", { encoding: "utf-8", mode: 384 });
|
|
38769
|
+
try {
|
|
38770
|
+
chmodSync3(path2, 384);
|
|
38771
|
+
} catch {
|
|
38772
|
+
}
|
|
38773
|
+
}
|
|
38753
38774
|
function clearGlobalGitHubToken(home) {
|
|
38754
38775
|
const path2 = globalSecretsPath(home);
|
|
38755
38776
|
if (!existsSync45(path2)) return;
|
|
@@ -38757,6 +38778,7 @@ function clearGlobalGitHubToken(home) {
|
|
|
38757
38778
|
if (secrets.github) {
|
|
38758
38779
|
delete secrets.github.token;
|
|
38759
38780
|
delete secrets.github.login;
|
|
38781
|
+
delete secrets.github.needsReconnect;
|
|
38760
38782
|
}
|
|
38761
38783
|
writeFileSync32(path2, JSON.stringify(secrets, null, 2) + "\n", { encoding: "utf-8", mode: 384 });
|
|
38762
38784
|
try {
|
|
@@ -46682,6 +46704,10 @@ function attachProjectOrigin(opts) {
|
|
|
46682
46704
|
setProjectOrigin(opts.projectRoot, remote, opts.gitModule);
|
|
46683
46705
|
return { remote, fullName: `${slug.owner}/${slug.repo}` };
|
|
46684
46706
|
}
|
|
46707
|
+
function detachProjectOrigin(projectRoot, gitModule = git_exports) {
|
|
46708
|
+
if (!gitModule.isGitRepo(projectRoot)) return;
|
|
46709
|
+
if (gitModule.getRemoteUrl(projectRoot, "origin")) gitModule.removeRemote(projectRoot, "origin");
|
|
46710
|
+
}
|
|
46685
46711
|
var REPO_NAME_RE;
|
|
46686
46712
|
var init_origin_setup = __esm({
|
|
46687
46713
|
"src/lib/git-sync/origin-setup.ts"() {
|
|
@@ -50914,6 +50940,109 @@ var init_static = __esm({
|
|
|
50914
50940
|
}
|
|
50915
50941
|
});
|
|
50916
50942
|
|
|
50943
|
+
// src/server/lifecycle.ts
|
|
50944
|
+
function trackChild(child) {
|
|
50945
|
+
const kill = typeof child === "function" ? child : () => {
|
|
50946
|
+
try {
|
|
50947
|
+
child.kill();
|
|
50948
|
+
} catch {
|
|
50949
|
+
}
|
|
50950
|
+
};
|
|
50951
|
+
liveChildren.add(kill);
|
|
50952
|
+
return () => liveChildren.delete(kill);
|
|
50953
|
+
}
|
|
50954
|
+
function killTrackedChildren() {
|
|
50955
|
+
for (const kill of liveChildren) {
|
|
50956
|
+
try {
|
|
50957
|
+
kill();
|
|
50958
|
+
} catch {
|
|
50959
|
+
}
|
|
50960
|
+
}
|
|
50961
|
+
liveChildren.clear();
|
|
50962
|
+
}
|
|
50963
|
+
function startVersionDriftWatch(startupVersion, readDiskVersion, onDrift, pollMs = 3e4) {
|
|
50964
|
+
if (process.env.DREAMCONTEXT_DESKTOP === "1") return void 0;
|
|
50965
|
+
if (!startupVersion || startupVersion === "0.0.0") return void 0;
|
|
50966
|
+
let fired = false;
|
|
50967
|
+
const timer = setInterval(() => {
|
|
50968
|
+
let disk = "0.0.0";
|
|
50969
|
+
try {
|
|
50970
|
+
disk = readDiskVersion();
|
|
50971
|
+
} catch {
|
|
50972
|
+
return;
|
|
50973
|
+
}
|
|
50974
|
+
if (disk !== "0.0.0" && disk !== startupVersion && !fired) {
|
|
50975
|
+
fired = true;
|
|
50976
|
+
clearInterval(timer);
|
|
50977
|
+
onDrift(disk);
|
|
50978
|
+
}
|
|
50979
|
+
}, pollMs);
|
|
50980
|
+
timer.unref?.();
|
|
50981
|
+
return () => clearInterval(timer);
|
|
50982
|
+
}
|
|
50983
|
+
function getUpgradeReadyVersion() {
|
|
50984
|
+
return upgradeReadyVersion;
|
|
50985
|
+
}
|
|
50986
|
+
function startUpgradeReadyWatch(startupVersion, readDiskVersion, pollMs = 3e4) {
|
|
50987
|
+
if (process.env.DREAMCONTEXT_DESKTOP !== "1") return void 0;
|
|
50988
|
+
if (!startupVersion || startupVersion === "0.0.0") return void 0;
|
|
50989
|
+
upgradeReadyVersion = null;
|
|
50990
|
+
const timer = setInterval(() => {
|
|
50991
|
+
let disk = "0.0.0";
|
|
50992
|
+
try {
|
|
50993
|
+
disk = readDiskVersion();
|
|
50994
|
+
} catch {
|
|
50995
|
+
return;
|
|
50996
|
+
}
|
|
50997
|
+
if (disk !== "0.0.0" && compareVersions(disk, startupVersion) > 0) {
|
|
50998
|
+
upgradeReadyVersion = disk;
|
|
50999
|
+
clearInterval(timer);
|
|
51000
|
+
}
|
|
51001
|
+
}, pollMs);
|
|
51002
|
+
timer.unref?.();
|
|
51003
|
+
return () => clearInterval(timer);
|
|
51004
|
+
}
|
|
51005
|
+
function registerShutdownHandler(fn) {
|
|
51006
|
+
shutdownHandler = fn;
|
|
51007
|
+
}
|
|
51008
|
+
function requestShutdown() {
|
|
51009
|
+
if (!shutdownHandler) return false;
|
|
51010
|
+
shutdownHandler();
|
|
51011
|
+
return true;
|
|
51012
|
+
}
|
|
51013
|
+
function startParentDeathWatch(onParentGone) {
|
|
51014
|
+
if (process.env.DREAMCONTEXT_DESKTOP !== "1") return void 0;
|
|
51015
|
+
const envPid = Number(process.env.DREAMCONTEXT_PARENT_PID);
|
|
51016
|
+
const parentPid = Number.isInteger(envPid) && envPid > 1 ? envPid : process.ppid;
|
|
51017
|
+
if (!Number.isInteger(parentPid) || parentPid <= 1) return void 0;
|
|
51018
|
+
let fired = false;
|
|
51019
|
+
const timer = setInterval(() => {
|
|
51020
|
+
let gone = false;
|
|
51021
|
+
try {
|
|
51022
|
+
process.kill(parentPid, 0);
|
|
51023
|
+
} catch (err) {
|
|
51024
|
+
gone = err.code === "ESRCH";
|
|
51025
|
+
}
|
|
51026
|
+
if (gone && !fired) {
|
|
51027
|
+
fired = true;
|
|
51028
|
+
clearInterval(timer);
|
|
51029
|
+
onParentGone();
|
|
51030
|
+
}
|
|
51031
|
+
}, 2e3);
|
|
51032
|
+
timer.unref?.();
|
|
51033
|
+
return () => clearInterval(timer);
|
|
51034
|
+
}
|
|
51035
|
+
var liveChildren, upgradeReadyVersion, shutdownHandler;
|
|
51036
|
+
var init_lifecycle = __esm({
|
|
51037
|
+
"src/server/lifecycle.ts"() {
|
|
51038
|
+
"use strict";
|
|
51039
|
+
init_version_check();
|
|
51040
|
+
liveChildren = /* @__PURE__ */ new Set();
|
|
51041
|
+
upgradeReadyVersion = null;
|
|
51042
|
+
shutdownHandler = null;
|
|
51043
|
+
}
|
|
51044
|
+
});
|
|
51045
|
+
|
|
50917
51046
|
// src/server/routes/health.ts
|
|
50918
51047
|
async function handleHealthGet(_req, res, _params, contextRoot) {
|
|
50919
51048
|
sendJson(res, 200, {
|
|
@@ -50922,7 +51051,11 @@ async function handleHealthGet(_req, res, _params, contextRoot) {
|
|
|
50922
51051
|
capabilities: CAPABILITIES,
|
|
50923
51052
|
// The version this PROCESS is running (not what's on disk) — the bundle
|
|
50924
51053
|
// and ensure-dashboard compare it against their own to detect skew.
|
|
50925
|
-
version: dreamcontextVersion()
|
|
51054
|
+
version: dreamcontextVersion(),
|
|
51055
|
+
// Desktop self-heal: the newer on-disk version when an upgrade landed under
|
|
51056
|
+
// this running server (else null). The bundle uses it to auto-relaunch the
|
|
51057
|
+
// app onto the new version without any manual quit/reopen.
|
|
51058
|
+
upgradeReady: getUpgradeReadyVersion()
|
|
50926
51059
|
});
|
|
50927
51060
|
}
|
|
50928
51061
|
var CAPABILITIES;
|
|
@@ -50931,6 +51064,7 @@ var init_health = __esm({
|
|
|
50931
51064
|
"use strict";
|
|
50932
51065
|
init_middleware();
|
|
50933
51066
|
init_manifest();
|
|
51067
|
+
init_lifecycle();
|
|
50934
51068
|
CAPABILITIES = [
|
|
50935
51069
|
"tasks.members",
|
|
50936
51070
|
"tasks.delete",
|
|
@@ -60664,11 +60798,17 @@ async function handleLauncherRelaunch(_req, res, _params, _contextRoot) {
|
|
|
60664
60798
|
sendJson(res, 200, { ok: false, reason: "app_not_installed" });
|
|
60665
60799
|
return;
|
|
60666
60800
|
}
|
|
60801
|
+
const now = Date.now();
|
|
60802
|
+
if (now - lastRelaunchArmedAt < RELAUNCH_ARM_TTL_MS) {
|
|
60803
|
+
sendJson(res, 200, { ok: true, alreadyArmed: true });
|
|
60804
|
+
return;
|
|
60805
|
+
}
|
|
60667
60806
|
try {
|
|
60668
60807
|
const child = spawn4("/bin/sh", ["-c", 'sleep 2; open "$0"', appPath], {
|
|
60669
60808
|
detached: true,
|
|
60670
60809
|
stdio: "ignore"
|
|
60671
60810
|
});
|
|
60811
|
+
lastRelaunchArmedAt = now;
|
|
60672
60812
|
child.on("error", () => {
|
|
60673
60813
|
});
|
|
60674
60814
|
child.unref();
|
|
@@ -60858,7 +60998,7 @@ async function handleLauncherShareable(req, res, _params, _contextRoot) {
|
|
|
60858
60998
|
sendError(res, 500, "shareable_failed", "Failed to update sharing.");
|
|
60859
60999
|
}
|
|
60860
61000
|
}
|
|
60861
|
-
var execFileAsync2, captureRuns, CAPTURE_RUN_TTL_MS, CAPTURE_RUNS_MAX, sleepJobsInFlight, ScaffoldError, defaultCliRunner, SAFE_NAME_RE, AGENT_UI_DEFAULTS, SLEEPY_MODES, upgradeRun, UPGRADE_MAX_MS, addOut, addIn, dropOut, dropIn;
|
|
61001
|
+
var execFileAsync2, captureRuns, CAPTURE_RUN_TTL_MS, CAPTURE_RUNS_MAX, sleepJobsInFlight, ScaffoldError, defaultCliRunner, SAFE_NAME_RE, AGENT_UI_DEFAULTS, SLEEPY_MODES, upgradeRun, UPGRADE_MAX_MS, lastRelaunchArmedAt, RELAUNCH_ARM_TTL_MS, addOut, addIn, dropOut, dropIn;
|
|
60862
61002
|
var init_launcher = __esm({
|
|
60863
61003
|
"src/server/routes/launcher.ts"() {
|
|
60864
61004
|
"use strict";
|
|
@@ -60913,6 +61053,8 @@ var init_launcher = __esm({
|
|
|
60913
61053
|
SLEEPY_MODES = /* @__PURE__ */ new Set(["idle", "sleepy", "sleeps"]);
|
|
60914
61054
|
upgradeRun = null;
|
|
60915
61055
|
UPGRADE_MAX_MS = 12 * 60 * 1e3;
|
|
61056
|
+
lastRelaunchArmedAt = 0;
|
|
61057
|
+
RELAUNCH_ARM_TTL_MS = 1e4;
|
|
60916
61058
|
addOut = (d) => d === "in" || d === "both" ? "both" : "out";
|
|
60917
61059
|
addIn = (d) => d === "out" || d === "both" ? "both" : "in";
|
|
60918
61060
|
dropOut = (d) => d === "both" ? "in" : d === "in" ? "in" : null;
|
|
@@ -61900,85 +62042,6 @@ var init_desktop = __esm({
|
|
|
61900
62042
|
}
|
|
61901
62043
|
});
|
|
61902
62044
|
|
|
61903
|
-
// src/server/lifecycle.ts
|
|
61904
|
-
function trackChild(child) {
|
|
61905
|
-
const kill = typeof child === "function" ? child : () => {
|
|
61906
|
-
try {
|
|
61907
|
-
child.kill();
|
|
61908
|
-
} catch {
|
|
61909
|
-
}
|
|
61910
|
-
};
|
|
61911
|
-
liveChildren.add(kill);
|
|
61912
|
-
return () => liveChildren.delete(kill);
|
|
61913
|
-
}
|
|
61914
|
-
function killTrackedChildren() {
|
|
61915
|
-
for (const kill of liveChildren) {
|
|
61916
|
-
try {
|
|
61917
|
-
kill();
|
|
61918
|
-
} catch {
|
|
61919
|
-
}
|
|
61920
|
-
}
|
|
61921
|
-
liveChildren.clear();
|
|
61922
|
-
}
|
|
61923
|
-
function startVersionDriftWatch(startupVersion, readDiskVersion, onDrift, pollMs = 3e4) {
|
|
61924
|
-
if (process.env.DREAMCONTEXT_DESKTOP === "1") return void 0;
|
|
61925
|
-
if (!startupVersion || startupVersion === "0.0.0") return void 0;
|
|
61926
|
-
let fired = false;
|
|
61927
|
-
const timer = setInterval(() => {
|
|
61928
|
-
let disk = "0.0.0";
|
|
61929
|
-
try {
|
|
61930
|
-
disk = readDiskVersion();
|
|
61931
|
-
} catch {
|
|
61932
|
-
return;
|
|
61933
|
-
}
|
|
61934
|
-
if (disk !== "0.0.0" && disk !== startupVersion && !fired) {
|
|
61935
|
-
fired = true;
|
|
61936
|
-
clearInterval(timer);
|
|
61937
|
-
onDrift(disk);
|
|
61938
|
-
}
|
|
61939
|
-
}, pollMs);
|
|
61940
|
-
timer.unref?.();
|
|
61941
|
-
return () => clearInterval(timer);
|
|
61942
|
-
}
|
|
61943
|
-
function registerShutdownHandler(fn) {
|
|
61944
|
-
shutdownHandler = fn;
|
|
61945
|
-
}
|
|
61946
|
-
function requestShutdown() {
|
|
61947
|
-
if (!shutdownHandler) return false;
|
|
61948
|
-
shutdownHandler();
|
|
61949
|
-
return true;
|
|
61950
|
-
}
|
|
61951
|
-
function startParentDeathWatch(onParentGone) {
|
|
61952
|
-
if (process.env.DREAMCONTEXT_DESKTOP !== "1") return void 0;
|
|
61953
|
-
const envPid = Number(process.env.DREAMCONTEXT_PARENT_PID);
|
|
61954
|
-
const parentPid = Number.isInteger(envPid) && envPid > 1 ? envPid : process.ppid;
|
|
61955
|
-
if (!Number.isInteger(parentPid) || parentPid <= 1) return void 0;
|
|
61956
|
-
let fired = false;
|
|
61957
|
-
const timer = setInterval(() => {
|
|
61958
|
-
let gone = false;
|
|
61959
|
-
try {
|
|
61960
|
-
process.kill(parentPid, 0);
|
|
61961
|
-
} catch (err) {
|
|
61962
|
-
gone = err.code === "ESRCH";
|
|
61963
|
-
}
|
|
61964
|
-
if (gone && !fired) {
|
|
61965
|
-
fired = true;
|
|
61966
|
-
clearInterval(timer);
|
|
61967
|
-
onParentGone();
|
|
61968
|
-
}
|
|
61969
|
-
}, 2e3);
|
|
61970
|
-
timer.unref?.();
|
|
61971
|
-
return () => clearInterval(timer);
|
|
61972
|
-
}
|
|
61973
|
-
var liveChildren, shutdownHandler;
|
|
61974
|
-
var init_lifecycle = __esm({
|
|
61975
|
-
"src/server/lifecycle.ts"() {
|
|
61976
|
-
"use strict";
|
|
61977
|
-
liveChildren = /* @__PURE__ */ new Set();
|
|
61978
|
-
shutdownHandler = null;
|
|
61979
|
-
}
|
|
61980
|
-
});
|
|
61981
|
-
|
|
61982
62045
|
// node_modules/ws/lib/constants.js
|
|
61983
62046
|
var require_constants5 = __commonJS({
|
|
61984
62047
|
"node_modules/ws/lib/constants.js"(exports2, module2) {
|
|
@@ -67026,7 +67089,8 @@ async function handleVersionCheckGet(_req, res, _params, contextRoot) {
|
|
|
67026
67089
|
const projectRoot = dirname61(contextRoot);
|
|
67027
67090
|
const cache = readVersionCache(projectRoot);
|
|
67028
67091
|
const fresh = isCacheFresh(cache);
|
|
67029
|
-
const
|
|
67092
|
+
const freshCli = readDreamcontextVersionFromDisk();
|
|
67093
|
+
const installedCli = freshCli === "0.0.0" ? dreamcontextVersion() : freshCli;
|
|
67030
67094
|
const catalogPackNames = cache?.availablePacks ?? [];
|
|
67031
67095
|
const installedPacks = catalogPackNames.filter((name) => isSkillInstalled(projectRoot, name));
|
|
67032
67096
|
const newPacks = fresh ? catalogPackNames.filter((name) => !installedPacks.includes(name)) : [];
|
|
@@ -67344,6 +67408,7 @@ async function handleBrainAuthDevicePoll(req, res) {
|
|
|
67344
67408
|
login = null;
|
|
67345
67409
|
}
|
|
67346
67410
|
if (login) setGlobalGitHubLogin(login, authHome);
|
|
67411
|
+
setGlobalGitHubAuthValid(true, authHome);
|
|
67347
67412
|
deviceSessions.delete(sessionId);
|
|
67348
67413
|
sendJson(res, 200, { status: "authorized", login });
|
|
67349
67414
|
return;
|
|
@@ -67380,6 +67445,9 @@ async function handleBrainAuthStatus(req, res) {
|
|
|
67380
67445
|
connected: true,
|
|
67381
67446
|
login: readGlobalGitHubLogin(authHome) ?? void 0,
|
|
67382
67447
|
source: "global",
|
|
67448
|
+
// Read straight off the shared truth the sync path writes — so this chip
|
|
67449
|
+
// and the sidebar sync surface can never disagree about the session.
|
|
67450
|
+
needsReconnect: readGlobalGitHubNeedsReconnect(authHome),
|
|
67383
67451
|
oauthConfigured
|
|
67384
67452
|
});
|
|
67385
67453
|
return;
|
|
@@ -67414,7 +67482,8 @@ async function handleBrainAuthToken(req, res) {
|
|
|
67414
67482
|
}
|
|
67415
67483
|
writeGlobalGitHubToken(token, authHome);
|
|
67416
67484
|
setGlobalGitHubLogin(login, authHome);
|
|
67417
|
-
|
|
67485
|
+
setGlobalGitHubAuthValid(true, authHome);
|
|
67486
|
+
sendJson(res, 200, { connected: true, login, source: "global", needsReconnect: false });
|
|
67418
67487
|
}
|
|
67419
67488
|
async function handleBrainAuthLogout(req, res) {
|
|
67420
67489
|
if (!gate(res)) return;
|
|
@@ -67516,7 +67585,15 @@ function classifySyncError(rawMessage, repoHint) {
|
|
|
67516
67585
|
message: `Your GitHub token can't write to${named || " this repo"}. Give it Contents (read & write) access${repo ? ` on ${repo}` : ""}, then retry.`
|
|
67517
67586
|
};
|
|
67518
67587
|
}
|
|
67519
|
-
if (/
|
|
67588
|
+
if (/no github token found|no token found for the brain/i.test(m)) {
|
|
67589
|
+
return {
|
|
67590
|
+
kind: "no-token",
|
|
67591
|
+
recovery: "reconnect-github",
|
|
67592
|
+
repo,
|
|
67593
|
+
message: "Cloud sync needs a GitHub account. Connect GitHub to start syncing."
|
|
67594
|
+
};
|
|
67595
|
+
}
|
|
67596
|
+
if (/authentication failed|could not read Username|bad credentials|invalid credentials|401\b|terminal prompts disabled|Support for password authentication/i.test(m)) {
|
|
67520
67597
|
return {
|
|
67521
67598
|
kind: "auth",
|
|
67522
67599
|
recovery: "reconnect-github",
|
|
@@ -67634,6 +67711,7 @@ async function handleBrainSync(req, res, _params, contextRoot) {
|
|
|
67634
67711
|
async function runSyncPayload(projectRoot, contextRoot, opts) {
|
|
67635
67712
|
try {
|
|
67636
67713
|
const result = await runBrainSync({ cwd: contextRoot, mode: opts.mode, foreground: opts.foreground, noCheckpoint: opts.noCheckpoint });
|
|
67714
|
+
if (AUTH_OK_ACTIONS.has(result.action)) setGlobalGitHubAuthValid(true);
|
|
67637
67715
|
let failure;
|
|
67638
67716
|
if (result.action === "no-remote" && /token/i.test(result.note ?? "")) {
|
|
67639
67717
|
failure = classifySyncError(result.note ?? "no github token found", syncRepoHint(projectRoot));
|
|
@@ -67650,6 +67728,8 @@ async function runSyncPayload(projectRoot, contextRoot, opts) {
|
|
|
67650
67728
|
};
|
|
67651
67729
|
} catch (err) {
|
|
67652
67730
|
const failure = classifySyncError(err.message, syncRepoHint(projectRoot));
|
|
67731
|
+
if (failure.kind === "auth") setGlobalGitHubAuthValid(false);
|
|
67732
|
+
else if (failure.kind === "permission") setGlobalGitHubAuthValid(true);
|
|
67653
67733
|
return {
|
|
67654
67734
|
action: "error",
|
|
67655
67735
|
pulledUpdates: 0,
|
|
@@ -67729,6 +67809,12 @@ function enableFullRepo(projectRoot) {
|
|
|
67729
67809
|
});
|
|
67730
67810
|
ensureFullRepoGitignore(projectRoot, config?.taskBackend);
|
|
67731
67811
|
}
|
|
67812
|
+
function disableFullRepo(projectRoot) {
|
|
67813
|
+
const config = readSetupConfig(projectRoot);
|
|
67814
|
+
updateSetupConfig(projectRoot, {
|
|
67815
|
+
brainRepo: { ...config?.brainRepo ?? {}, mode: "in-tree", enabled: false }
|
|
67816
|
+
});
|
|
67817
|
+
}
|
|
67732
67818
|
function currentOrigin(projectRoot) {
|
|
67733
67819
|
try {
|
|
67734
67820
|
return isGitRepo(projectRoot) ? getRemoteUrl(projectRoot, "origin") : null;
|
|
@@ -67803,6 +67889,62 @@ async function handleBrainOriginAttach(req, res, _params, contextRoot) {
|
|
|
67803
67889
|
sendError(res, 400, "attach_failed", err.message);
|
|
67804
67890
|
}
|
|
67805
67891
|
}
|
|
67892
|
+
async function handleBrainOriginUpdate(req, res, _params, contextRoot) {
|
|
67893
|
+
if (!gate2(res)) return;
|
|
67894
|
+
const projectRoot = dirname62(contextRoot);
|
|
67895
|
+
const body = await parseJsonBody(req);
|
|
67896
|
+
const url = typeof body?.url === "string" ? body.url.trim() : "";
|
|
67897
|
+
if (!url) {
|
|
67898
|
+
sendError(res, 400, "invalid_body", "url is required.");
|
|
67899
|
+
return;
|
|
67900
|
+
}
|
|
67901
|
+
if (!resolveBrainSyncToken(projectRoot)) {
|
|
67902
|
+
sendError(res, 401, "no_token", "Sign in with GitHub before changing the repo.");
|
|
67903
|
+
return;
|
|
67904
|
+
}
|
|
67905
|
+
if (!currentOrigin(projectRoot)) {
|
|
67906
|
+
sendError(res, 409, "no_origin", "This project has no git origin yet \u2014 use Connect to set one.");
|
|
67907
|
+
return;
|
|
67908
|
+
}
|
|
67909
|
+
const preview = await previewOrigin({ projectRoot, url });
|
|
67910
|
+
if (!preview.reachable) {
|
|
67911
|
+
sendError(res, 400, "unreachable", preview.reason ?? "That repo could not be reached with your GitHub account.");
|
|
67912
|
+
return;
|
|
67913
|
+
}
|
|
67914
|
+
const canonical = canonicalRemote(url);
|
|
67915
|
+
if (!canonical) {
|
|
67916
|
+
sendError(res, 400, "invalid_body", "That does not look like a GitHub repo URL.");
|
|
67917
|
+
return;
|
|
67918
|
+
}
|
|
67919
|
+
try {
|
|
67920
|
+
setProjectOrigin(projectRoot, canonical);
|
|
67921
|
+
disableFullRepo(projectRoot);
|
|
67922
|
+
sendJson(res, 200, { ok: true, remote: canonical, fullName: preview.fullName, private: preview.private, syncDisabled: true });
|
|
67923
|
+
} catch (err) {
|
|
67924
|
+
sendError(res, 400, "update_failed", err.message);
|
|
67925
|
+
}
|
|
67926
|
+
}
|
|
67927
|
+
async function handleBrainOriginDetach(_req, res, _params, contextRoot) {
|
|
67928
|
+
if (!gate2(res)) return;
|
|
67929
|
+
const projectRoot = dirname62(contextRoot);
|
|
67930
|
+
let mergeInProgress = false;
|
|
67931
|
+
try {
|
|
67932
|
+
mergeInProgress = isGitRepo(projectRoot) && hasMergeHead(projectRoot);
|
|
67933
|
+
} catch {
|
|
67934
|
+
mergeInProgress = false;
|
|
67935
|
+
}
|
|
67936
|
+
if (mergeInProgress) {
|
|
67937
|
+
sendError(res, 409, "merge_in_progress", "Finish or resolve the in-progress merge before disconnecting the origin.");
|
|
67938
|
+
return;
|
|
67939
|
+
}
|
|
67940
|
+
try {
|
|
67941
|
+
detachProjectOrigin(projectRoot);
|
|
67942
|
+
disableFullRepo(projectRoot);
|
|
67943
|
+
sendJson(res, 200, { ok: true, remote: null });
|
|
67944
|
+
} catch (err) {
|
|
67945
|
+
sendError(res, 400, "detach_failed", err.message);
|
|
67946
|
+
}
|
|
67947
|
+
}
|
|
67806
67948
|
function isSafeToGitignore(relPath) {
|
|
67807
67949
|
const p = relPath.replace(/\\/g, "/").trim();
|
|
67808
67950
|
if (!p) return false;
|
|
@@ -67865,7 +68007,7 @@ async function handleBrainTeamFetch(req, res) {
|
|
|
67865
68007
|
sendError(res, 502, "team_fetch_failed", err.message);
|
|
67866
68008
|
}
|
|
67867
68009
|
}
|
|
67868
|
-
var SAFE_TO_GITIGNORE;
|
|
68010
|
+
var AUTH_OK_ACTIONS, SAFE_TO_GITIGNORE;
|
|
67869
68011
|
var init_brain2 = __esm({
|
|
67870
68012
|
"src/server/routes/brain.ts"() {
|
|
67871
68013
|
"use strict";
|
|
@@ -67879,8 +68021,10 @@ var init_brain2 = __esm({
|
|
|
67879
68021
|
init_team_fetch();
|
|
67880
68022
|
init_conflict_report();
|
|
67881
68023
|
init_failure();
|
|
68024
|
+
init_auth_store();
|
|
67882
68025
|
init_gitignore();
|
|
67883
68026
|
init_vaults();
|
|
68027
|
+
AUTH_OK_ACTIONS = /* @__PURE__ */ new Set(["pulled", "pushed", "noop", "merged", "blocked-scrub", "awaiting-agent", "code-conflict"]);
|
|
67884
68028
|
SAFE_TO_GITIGNORE = /(^|\/)([^/]*\.env(\.[^/]+)?|[^/]*\.local\.[^/]+|[^/]*secrets?[^/]*\.(json|ya?ml|toml|env)|credentials?[^/]*\.(json|ya?ml|toml|env)|[^/]*\.(pem|key|p12|pfx|keystore|jks)|id_rsa[^/]*|id_ed25519[^/]*)$/i;
|
|
67885
68029
|
}
|
|
67886
68030
|
});
|
|
@@ -68048,6 +68192,8 @@ function buildRouter() {
|
|
|
68048
68192
|
router.post("/api/brain/origin/create", handleBrainOriginCreate);
|
|
68049
68193
|
router.post("/api/brain/origin/preview", handleBrainOriginPreview);
|
|
68050
68194
|
router.post("/api/brain/origin/attach", handleBrainOriginAttach);
|
|
68195
|
+
router.post("/api/brain/origin/update", handleBrainOriginUpdate);
|
|
68196
|
+
router.post("/api/brain/origin/detach", handleBrainOriginDetach);
|
|
68051
68197
|
router.post("/api/brain/scrub/ignore", handleBrainScrubIgnore);
|
|
68052
68198
|
router.get("/api/linked-repos", handleLinkedReposList);
|
|
68053
68199
|
router.post("/api/linked-repos/link", handleLinkedReposLink);
|
|
@@ -68247,6 +68393,7 @@ function startDashboardServer(options2) {
|
|
|
68247
68393
|
dreamcontext was updated to v${diskVersion} \u2014 restarting the dashboard server is required. Exiting; the next session (or \`dreamcontext dashboard\`) starts the new version.`);
|
|
68248
68394
|
shutdown();
|
|
68249
68395
|
});
|
|
68396
|
+
startUpgradeReadyWatch(dreamcontextVersion(), readDreamcontextVersionFromDisk);
|
|
68250
68397
|
});
|
|
68251
68398
|
});
|
|
68252
68399
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dreamcontext",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "dreamcontext — the persistent brain for your AI agents. Remembers what you built, knows how your project works.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"vitest": "^3.0.6"
|
|
67
67
|
},
|
|
68
68
|
"optionalDependencies": {
|
|
69
|
-
"
|
|
70
|
-
"
|
|
69
|
+
"@huggingface/transformers": "^4.2.0",
|
|
70
|
+
"node-pty": "^1.1.0"
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aq as o,ar as n}from"./index-xYYnjbSx.js";const t=(r,a)=>o.lang.round(n.parse(r)[a]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-64IoWLUH.js";import{_ as i}from"./index-xYYnjbSx.js";import"./chunk-FMBD7UC4-1vZj5k6I.js";import"./chunk-YZCP3GAM-BHU_oH_c.js";import"./chunk-55IACEB6-oeTs6Ons.js";import"./chunk-EDXVE4YY-DnBDiozF.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-64IoWLUH.js";import{_ as i}from"./index-xYYnjbSx.js";import"./chunk-FMBD7UC4-1vZj5k6I.js";import"./chunk-YZCP3GAM-BHU_oH_c.js";import"./chunk-55IACEB6-oeTs6Ons.js";import"./chunk-EDXVE4YY-DnBDiozF.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./graph-C23F2q3y.js";var e=4;function a(o){return r(o,e)}export{a as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as t,b as r,a,S as s}from"./chunk-OYMX7WX6-ChzA2Qb2.js";import{_ as i}from"./index-xYYnjbSx.js";import"./chunk-55IACEB6-oeTs6Ons.js";import"./chunk-EDXVE4YY-DnBDiozF.js";var l={parser:a,get db(){return new s(2)},renderer:r,styles:t,init:i(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{l as diagram};
|