nolo-cli 0.8.0 → 0.9.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/_executeModel-UD44KGZ4.js +203 -0
- package/action-ZJWE3Y5S.js +28 -0
- package/addContentAction-TVDBNJM5.js +26 -0
- package/addDialogAgentAction-EKH774VT.js +68 -0
- package/agentDeleteCommand-TCPEFJTF.js +327 -0
- package/agentEmailCommands-CZ3UILZ4.js +626 -0
- package/agentListCommands-SJKO2FFB.js +223 -0
- package/agentMachineCommands-PSNABISZ.js +425 -0
- package/agentPullCommand-O2MTUAFR.js +122 -0
- package/agentRecordCommands-MH2JKFHS.js +94 -0
- package/agentRunCommand-4KH6MIZR.js +110 -0
- package/agentRunControl-K4VKNEHF.js +57 -0
- package/agentRuntimeLocal-SKHJUWSS.js +104 -0
- package/agentSlice-3WXXN4VK.js +42 -0
- package/authCommand-PXFX6JDT.js +581 -0
- package/authCommands-356AYWEK.js +35 -0
- package/chunk-2EISRLRC.js +238 -0
- package/chunk-2FTTDCD4.js +675 -0
- package/chunk-2K2ECKSG.js +222 -0
- package/chunk-2PUGVR6E.js +19 -0
- package/chunk-3ASDTTEI.js +1774 -0
- package/chunk-3EUW3WEO.js +8 -0
- package/chunk-3LY4F7SV.js +9293 -0
- package/chunk-3TZDXYSF.js +71 -0
- package/chunk-3WYQEUBI.js +34 -0
- package/chunk-4CQLVGRV.js +50 -0
- package/chunk-4IJYA27C.js +342 -0
- package/chunk-4K2KKCSD.js +577 -0
- package/chunk-4SN6J65J.js +38 -0
- package/chunk-4VNS5WPM.js +42 -0
- package/chunk-4ZDM73SD.js +34 -0
- package/chunk-5CS33IBL.js +301 -0
- package/chunk-5KLGBAAR.js +386 -0
- package/chunk-5MIDPSSK.js +206 -0
- package/chunk-5MMAK75Q.js +15 -0
- package/chunk-5PJ3VWCS.js +360 -0
- package/chunk-63SLEOLK.js +175 -0
- package/chunk-63W5N6P3.js +150 -0
- package/chunk-6GANEXVO.js +231 -0
- package/chunk-6HYVJV7B.js +102 -0
- package/chunk-6WD3OOJS.js +20 -0
- package/chunk-7OOXPE3N.js +628 -0
- package/chunk-7QRKCBOP.js +1078 -0
- package/chunk-ATNTHIZI.js +13 -0
- package/chunk-AUQ747NZ.js +902 -0
- package/chunk-AVMKZHBC.js +85 -0
- package/chunk-AZPCASRE.js +36 -0
- package/chunk-BBYVOSU2.js +792 -0
- package/chunk-C3RUNRHT.js +51 -0
- package/chunk-CF2WZF4N.js +134 -0
- package/chunk-CF7PE763.js +10 -0
- package/chunk-CKOJQDKR.js +198 -0
- package/chunk-COMXDWNM.js +807 -0
- package/chunk-CPB2YM4D.js +171 -0
- package/chunk-CWMSB67P.js +34 -0
- package/chunk-DCOA4QSN.js +105 -0
- package/chunk-DFFIZ25G.js +30 -0
- package/chunk-DWLEOOGR.js +8 -0
- package/chunk-DZ3XJVET.js +231 -0
- package/chunk-EHLHSX7R.js +1433 -0
- package/chunk-ELRRLDWI.js +478 -0
- package/chunk-EXTIQUCI.js +482 -0
- package/chunk-EYEEHCU4.js +3066 -0
- package/chunk-G3SUCT4W.js +8 -0
- package/chunk-G43KEVSC.js +1447 -0
- package/chunk-GAKEBQD6.js +30 -0
- package/chunk-GBRG75BQ.js +86 -0
- package/chunk-GG4AJPSR.js +191 -0
- package/chunk-H33743XH.js +25 -0
- package/chunk-HNMXYYJR.js +12 -0
- package/chunk-I42VC5KR.js +15 -0
- package/chunk-IDZTNRP2.js +85 -0
- package/chunk-ISNCLGUZ.js +146 -0
- package/chunk-IWX4UW2E.js +548 -0
- package/chunk-JBTJAPUF.js +35 -0
- package/chunk-JEXVIMYZ.js +55 -0
- package/chunk-JRKKFRAV.js +537 -0
- package/chunk-JZPBVBIY.js +94 -0
- package/chunk-KKY4B2Q2.js +21 -0
- package/chunk-KOCA5FCS.js +4750 -0
- package/chunk-KQHGZWSV.js +63 -0
- package/chunk-KTVVPRJS.js +138 -0
- package/chunk-KUG52IAP.js +8 -0
- package/chunk-KX6YBIHG.js +8 -0
- package/chunk-LARL2V6G.js +9017 -0
- package/chunk-LCBAMY2M.js +60 -0
- package/chunk-LM6IYQ3F.js +16 -0
- package/chunk-M76ECQRD.js +13658 -0
- package/chunk-MGOJ5R6J.js +113 -0
- package/chunk-MKMWT7SA.js +27196 -0
- package/chunk-MRC4Q34M.js +188 -0
- package/chunk-OLZBQWZU.js +6 -0
- package/chunk-OPZYGHUC.js +89 -0
- package/chunk-OWOHNGCN.js +50 -0
- package/chunk-PAKN26FP.js +239 -0
- package/chunk-PCWC3JTN.js +91 -0
- package/chunk-PG5PNA7Y.js +939 -0
- package/chunk-Q2YZULBH.js +104 -0
- package/chunk-QSJ3HFEF.js +8 -0
- package/chunk-QYXLLLGL.js +4519 -0
- package/chunk-ROWQEJRP.js +139 -0
- package/chunk-S7Z2HMCN.js +25 -0
- package/chunk-SBR32ZZS.js +1901 -0
- package/chunk-SH2CFQOH.js +3391 -0
- package/chunk-SL35K7AH.js +226 -0
- package/chunk-TILFE6LV.js +381 -0
- package/chunk-TSS3XJY4.js +2052 -0
- package/chunk-U4TRT5V4.js +246 -0
- package/chunk-U6VC4MU4.js +8 -0
- package/chunk-UAD2WT54.js +64 -0
- package/chunk-UUJDGGAK.js +421 -0
- package/chunk-VF4K2QE6.js +21 -0
- package/chunk-VHBWHNVT.js +59 -0
- package/chunk-VIDPVFP3.js +20 -0
- package/chunk-VP4WJWKW.js +8882 -0
- package/chunk-W4NVOSFF.js +37 -0
- package/chunk-WKM6FH35.js +190 -0
- package/chunk-WWC7I6TA.js +8 -0
- package/chunk-X7W4TNB4.js +1550 -0
- package/chunk-XE635NI4.js +1948 -0
- package/chunk-XKIMRZO2.js +221 -0
- package/chunk-XS466O7S.js +933 -0
- package/chunk-Y5GCAMGP.js +9 -0
- package/chunk-YBWOP46I.js +3272 -0
- package/chunk-YPRZSPF3.js +148 -0
- package/chunk-YYUCRDOK.js +69 -0
- package/chunk-Z4NR32XR.js +50 -0
- package/chunk-ZIG5LJ7X.js +24765 -0
- package/chunk-ZNFJWEN4.js +56 -0
- package/chunk-ZQ2UM4KG.js +2878 -0
- package/cliExecutor-DNE7TCC4.js +36 -0
- package/clipboardy-BVE3LVEH.js +12001 -0
- package/createAgentAutomationAction-63OIP6X5.js +866 -0
- package/createDialogAction-ZLYZDYBB.js +54 -0
- package/createPageAction-AL5FSDCK.js +171 -0
- package/db-HCJ5PRB5.js +271 -0
- package/dbSlice-PR44QPXY.js +60 -0
- package/deleteFile-4SKGPHOZ.js +41 -0
- package/dialogCommands-F6YI5742.js +63 -0
- package/dialogSlice-JSBNZRLR.js +148 -0
- package/docCreateCommands-4CTO7ERT.js +219 -0
- package/docDeleteCommands-VBWERDRG.js +180 -0
- package/docReadCommands-KNP4MFYB.js +133 -0
- package/docStore-ADP5VYY4.js +98 -0
- package/docUpdateCommands-4BCBJQHA.js +317 -0
- package/fetchMessages-U6ZHN56A.js +17 -0
- package/getPricing-3E6UNPKL.js +30 -0
- package/handleSendMessageAction-IJDQ6ARA.js +185 -0
- package/index.js +188 -112943
- package/lib-FYYBQIXS.js +19839 -0
- package/localDialogRead-Z5UTAJPU.js +26 -0
- package/localFirstLog-DHNOY2NA.js +19 -0
- package/localRuntimeAuthority-TEGCOWX4.js +471 -0
- package/localRuntimeDb-LGDF6FQP.js +12 -0
- package/machineCommands-EA3M4XTN.js +779 -0
- package/machineInfo-M6KB6HZN.js +10 -0
- package/machineWsRunDispatch-NAPKE5ZA.js +110 -0
- package/memoryCommands-O4MIPIWQ.js +476 -0
- package/models-4OPOOLFS.js +9 -0
- package/offlineMarxistsAgentCommand-BCPJITJL.js +242 -0
- package/package.json +3 -25
- package/read-RIJCIVKX.js +17 -0
- package/readDocTool-GZD2N3LO.js +16 -0
- package/readlineWorkspace-KMWT4T4S.js +5509 -0
- package/removeDialogAgentAction-GJQJNDW6.js +73 -0
- package/runAgentClientLoop-U5Q6NDTJ.js +291 -0
- package/runtimeDoctorCommands-LRHLPDRC.js +289 -0
- package/setDialogExtraReferencesAction-M7OQG54N.js +60 -0
- package/setPrimaryDialogAgentAction-46UNFJDL.js +80 -0
- package/settingSlice-FVUUH4JA.js +199 -0
- package/skillSummaryMarker-42HKSXYY.js +9 -0
- package/slateToRenderMarkdown-Y5IYN73U.js +7 -0
- package/slateUtils-2M7MUTWX.js +19 -0
- package/spaceCommands-E2CFRPZJ.js +454 -0
- package/spaceSlice-L3R6IMXE.js +147 -0
- package/streamAgentChatTurn-UBDAOQWE.js +4528 -0
- package/tableCommands-GOFP7QKA.js +1286 -0
- package/toolApiClient-QI3YBNWB.js +26 -0
- package/tools-TMJXZTCA.js +85 -0
- package/tuiSummaryLlmCaller-RV3THLZF.js +78 -0
- package/understanding-GQKNDDWM.js +271 -0
- package/updateCommands-VOSPKXFF.js +31 -0
- package/updateDialogTitleAction-ZTWRDXI2.js +188 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createDialogAction,
|
|
3
|
+
isLocalOwnerDialogAgents
|
|
4
|
+
} from "./chunk-PG5PNA7Y.js";
|
|
5
|
+
import "./chunk-ZQ2UM4KG.js";
|
|
6
|
+
import "./chunk-Q2YZULBH.js";
|
|
7
|
+
import "./chunk-ZIG5LJ7X.js";
|
|
8
|
+
import "./chunk-4ZDM73SD.js";
|
|
9
|
+
import "./chunk-MRC4Q34M.js";
|
|
10
|
+
import "./chunk-PCWC3JTN.js";
|
|
11
|
+
import "./chunk-CWMSB67P.js";
|
|
12
|
+
import "./chunk-4K2KKCSD.js";
|
|
13
|
+
import "./chunk-KTVVPRJS.js";
|
|
14
|
+
import "./chunk-Z4NR32XR.js";
|
|
15
|
+
import "./chunk-M76ECQRD.js";
|
|
16
|
+
import "./chunk-YYUCRDOK.js";
|
|
17
|
+
import "./chunk-MGOJ5R6J.js";
|
|
18
|
+
import "./chunk-UAD2WT54.js";
|
|
19
|
+
import "./chunk-DCOA4QSN.js";
|
|
20
|
+
import "./chunk-5MMAK75Q.js";
|
|
21
|
+
import "./chunk-BBYVOSU2.js";
|
|
22
|
+
import "./chunk-5CS33IBL.js";
|
|
23
|
+
import "./chunk-JZPBVBIY.js";
|
|
24
|
+
import "./chunk-IWX4UW2E.js";
|
|
25
|
+
import "./chunk-DFFIZ25G.js";
|
|
26
|
+
import "./chunk-3ASDTTEI.js";
|
|
27
|
+
import "./chunk-DWLEOOGR.js";
|
|
28
|
+
import "./chunk-HNMXYYJR.js";
|
|
29
|
+
import "./chunk-TSS3XJY4.js";
|
|
30
|
+
import "./chunk-Y5GCAMGP.js";
|
|
31
|
+
import "./chunk-COMXDWNM.js";
|
|
32
|
+
import "./chunk-AZPCASRE.js";
|
|
33
|
+
import "./chunk-2EISRLRC.js";
|
|
34
|
+
import "./chunk-KX6YBIHG.js";
|
|
35
|
+
import "./chunk-SH2CFQOH.js";
|
|
36
|
+
import "./chunk-I42VC5KR.js";
|
|
37
|
+
import "./chunk-WWC7I6TA.js";
|
|
38
|
+
import "./chunk-QSJ3HFEF.js";
|
|
39
|
+
import "./chunk-ELRRLDWI.js";
|
|
40
|
+
import "./chunk-EYEEHCU4.js";
|
|
41
|
+
import "./chunk-QYXLLLGL.js";
|
|
42
|
+
import "./chunk-GBRG75BQ.js";
|
|
43
|
+
import "./chunk-4SN6J65J.js";
|
|
44
|
+
import "./chunk-LCBAMY2M.js";
|
|
45
|
+
import "./chunk-3EUW3WEO.js";
|
|
46
|
+
import "./chunk-U6VC4MU4.js";
|
|
47
|
+
import "./chunk-CF7PE763.js";
|
|
48
|
+
import "./chunk-G3SUCT4W.js";
|
|
49
|
+
import "./chunk-KUG52IAP.js";
|
|
50
|
+
import "./chunk-4VNS5WPM.js";
|
|
51
|
+
export {
|
|
52
|
+
createDialogAction,
|
|
53
|
+
isLocalOwnerDialogAgents
|
|
54
|
+
};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildSkillSummaryMarker
|
|
3
|
+
} from "./chunk-VF4K2QE6.js";
|
|
4
|
+
import {
|
|
5
|
+
markdownToSlate
|
|
6
|
+
} from "./chunk-3LY4F7SV.js";
|
|
7
|
+
import {
|
|
8
|
+
createEmptyParagraph,
|
|
9
|
+
splitSlateTitleAndBody
|
|
10
|
+
} from "./chunk-VP4WJWKW.js";
|
|
11
|
+
import {
|
|
12
|
+
slateToRenderMarkdown
|
|
13
|
+
} from "./chunk-63W5N6P3.js";
|
|
14
|
+
import {
|
|
15
|
+
parseSkillDocProtocol
|
|
16
|
+
} from "./chunk-ZQ2UM4KG.js";
|
|
17
|
+
import {
|
|
18
|
+
addContentToSpace,
|
|
19
|
+
client_default,
|
|
20
|
+
selectCurrentSpaceId
|
|
21
|
+
} from "./chunk-ZIG5LJ7X.js";
|
|
22
|
+
import "./chunk-4ZDM73SD.js";
|
|
23
|
+
import "./chunk-MRC4Q34M.js";
|
|
24
|
+
import "./chunk-PCWC3JTN.js";
|
|
25
|
+
import "./chunk-CWMSB67P.js";
|
|
26
|
+
import "./chunk-4K2KKCSD.js";
|
|
27
|
+
import "./chunk-KTVVPRJS.js";
|
|
28
|
+
import "./chunk-Z4NR32XR.js";
|
|
29
|
+
import "./chunk-M76ECQRD.js";
|
|
30
|
+
import "./chunk-YYUCRDOK.js";
|
|
31
|
+
import "./chunk-MGOJ5R6J.js";
|
|
32
|
+
import "./chunk-UAD2WT54.js";
|
|
33
|
+
import "./chunk-DCOA4QSN.js";
|
|
34
|
+
import "./chunk-5MMAK75Q.js";
|
|
35
|
+
import "./chunk-BBYVOSU2.js";
|
|
36
|
+
import "./chunk-5CS33IBL.js";
|
|
37
|
+
import "./chunk-JZPBVBIY.js";
|
|
38
|
+
import "./chunk-IWX4UW2E.js";
|
|
39
|
+
import "./chunk-DFFIZ25G.js";
|
|
40
|
+
import "./chunk-3ASDTTEI.js";
|
|
41
|
+
import "./chunk-DWLEOOGR.js";
|
|
42
|
+
import "./chunk-HNMXYYJR.js";
|
|
43
|
+
import "./chunk-TSS3XJY4.js";
|
|
44
|
+
import "./chunk-Y5GCAMGP.js";
|
|
45
|
+
import {
|
|
46
|
+
write
|
|
47
|
+
} from "./chunk-COMXDWNM.js";
|
|
48
|
+
import "./chunk-AZPCASRE.js";
|
|
49
|
+
import "./chunk-2EISRLRC.js";
|
|
50
|
+
import "./chunk-KX6YBIHG.js";
|
|
51
|
+
import {
|
|
52
|
+
createPageKey
|
|
53
|
+
} from "./chunk-SH2CFQOH.js";
|
|
54
|
+
import "./chunk-I42VC5KR.js";
|
|
55
|
+
import "./chunk-WWC7I6TA.js";
|
|
56
|
+
import "./chunk-QSJ3HFEF.js";
|
|
57
|
+
import "./chunk-ELRRLDWI.js";
|
|
58
|
+
import {
|
|
59
|
+
selectIdentityUserId
|
|
60
|
+
} from "./chunk-EYEEHCU4.js";
|
|
61
|
+
import "./chunk-QYXLLLGL.js";
|
|
62
|
+
import "./chunk-GBRG75BQ.js";
|
|
63
|
+
import "./chunk-4SN6J65J.js";
|
|
64
|
+
import "./chunk-LCBAMY2M.js";
|
|
65
|
+
import "./chunk-3EUW3WEO.js";
|
|
66
|
+
import "./chunk-U6VC4MU4.js";
|
|
67
|
+
import "./chunk-CF7PE763.js";
|
|
68
|
+
import {
|
|
69
|
+
asOptionalTrimmedString
|
|
70
|
+
} from "./chunk-G3SUCT4W.js";
|
|
71
|
+
import "./chunk-KUG52IAP.js";
|
|
72
|
+
import "./chunk-4VNS5WPM.js";
|
|
73
|
+
|
|
74
|
+
// packages/render/page/createPageAction.ts
|
|
75
|
+
var normalizeCategoryId = (raw) => {
|
|
76
|
+
const trimmed = raw?.trim();
|
|
77
|
+
if (!trimmed) return void 0;
|
|
78
|
+
const asciiNoSpace = /^[\x20-\x7E]+$/;
|
|
79
|
+
if (!asciiNoSpace.test(trimmed)) return void 0;
|
|
80
|
+
if (trimmed.length < 8) return void 0;
|
|
81
|
+
return trimmed;
|
|
82
|
+
};
|
|
83
|
+
var createPageAction = async ({
|
|
84
|
+
categoryId,
|
|
85
|
+
spaceId: customSpaceId,
|
|
86
|
+
title: initialTitle,
|
|
87
|
+
addMomentTag,
|
|
88
|
+
content,
|
|
89
|
+
slateData
|
|
90
|
+
} = {}, { dispatch, getState }) => {
|
|
91
|
+
const state = getState();
|
|
92
|
+
const userId = selectIdentityUserId(state);
|
|
93
|
+
if (!userId) throw new Error("User ID not found.");
|
|
94
|
+
const spaceId = customSpaceId ?? selectCurrentSpaceId(state);
|
|
95
|
+
const { dbKey, id } = createPageKey.create(userId);
|
|
96
|
+
const now = /* @__PURE__ */ new Date();
|
|
97
|
+
const defaultTitle = client_default.t("page:untitled", {
|
|
98
|
+
defaultValue: "\u672A\u547D\u540D\u9875\u9762"
|
|
99
|
+
});
|
|
100
|
+
let title = asOptionalTrimmedString(initialTitle) ?? defaultTitle;
|
|
101
|
+
const tags = addMomentTag ? ["moment"] : void 0;
|
|
102
|
+
let pageMeta;
|
|
103
|
+
let initialSlateData;
|
|
104
|
+
if (slateData) {
|
|
105
|
+
initialSlateData = slateData;
|
|
106
|
+
} else if (content) {
|
|
107
|
+
const parsedProtocol = parseSkillDocProtocol(content);
|
|
108
|
+
const normalizedContent = parsedProtocol.content;
|
|
109
|
+
pageMeta = parsedProtocol.meta;
|
|
110
|
+
console.log("content", content);
|
|
111
|
+
try {
|
|
112
|
+
const parsed = markdownToSlate(normalizedContent);
|
|
113
|
+
console.log("parsed", parsed);
|
|
114
|
+
if (Array.isArray(parsed) && parsed.length > 0) {
|
|
115
|
+
const split = splitSlateTitleAndBody(parsed, initialTitle);
|
|
116
|
+
title = asOptionalTrimmedString(initialTitle) ?? (split.title || defaultTitle);
|
|
117
|
+
initialSlateData = split.body;
|
|
118
|
+
} else {
|
|
119
|
+
initialSlateData = [
|
|
120
|
+
{ type: "paragraph", children: [{ text: normalizedContent }] }
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
} catch (e) {
|
|
124
|
+
console.error(
|
|
125
|
+
"[createPageAction] markdownToSlate failed, fallback to plain text:",
|
|
126
|
+
e
|
|
127
|
+
);
|
|
128
|
+
initialSlateData = [
|
|
129
|
+
{ type: "paragraph", children: [{ text: normalizedContent }] }
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
} else {
|
|
133
|
+
initialSlateData = [createEmptyParagraph()];
|
|
134
|
+
}
|
|
135
|
+
const safeCategoryId = normalizeCategoryId(categoryId);
|
|
136
|
+
const pageData = {
|
|
137
|
+
dbKey,
|
|
138
|
+
id,
|
|
139
|
+
type: "page" /* DOC */,
|
|
140
|
+
title,
|
|
141
|
+
spaceId,
|
|
142
|
+
slateData: initialSlateData,
|
|
143
|
+
// `content` 只作为只读展示缓存 / legacy bridge,真源仍是 `slateData`。
|
|
144
|
+
content: typeof content === "string" ? parseSkillDocProtocol(content, pageMeta).content || slateToRenderMarkdown(initialSlateData) : slateToRenderMarkdown(initialSlateData),
|
|
145
|
+
tags,
|
|
146
|
+
created: now.toISOString(),
|
|
147
|
+
...pageMeta ? { meta: pageMeta } : {}
|
|
148
|
+
};
|
|
149
|
+
const skillSummary = buildSkillSummaryMarker(pageMeta);
|
|
150
|
+
await dispatch(write({ data: pageData, customKey: dbKey })).unwrap();
|
|
151
|
+
if (spaceId) {
|
|
152
|
+
dispatch(
|
|
153
|
+
addContentToSpace({
|
|
154
|
+
contentKey: dbKey,
|
|
155
|
+
type: "page" /* DOC */,
|
|
156
|
+
spaceId,
|
|
157
|
+
title,
|
|
158
|
+
// 只使用经过 normalize 的 safeCategoryId
|
|
159
|
+
categoryId: safeCategoryId,
|
|
160
|
+
...skillSummary ? { skillSummary } : {}
|
|
161
|
+
})
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
if (typeof window !== "undefined") {
|
|
165
|
+
window.dispatchEvent(new Event("nolo-user-data-updated"));
|
|
166
|
+
}
|
|
167
|
+
return dbKey;
|
|
168
|
+
};
|
|
169
|
+
export {
|
|
170
|
+
createPageAction
|
|
171
|
+
};
|
package/db-HCJ5PRB5.js
ADDED
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createLegacyServerDb,
|
|
3
|
+
createLevelAuthorityStore,
|
|
4
|
+
isLevelLockError
|
|
5
|
+
} from "./chunk-CF2WZF4N.js";
|
|
6
|
+
import {
|
|
7
|
+
Level
|
|
8
|
+
} from "./chunk-6WD3OOJS.js";
|
|
9
|
+
import {
|
|
10
|
+
resolveServerDbPath
|
|
11
|
+
} from "./chunk-LM6IYQ3F.js";
|
|
12
|
+
import {
|
|
13
|
+
asTrimmedLowercaseString
|
|
14
|
+
} from "./chunk-QSJ3HFEF.js";
|
|
15
|
+
import "./chunk-4VNS5WPM.js";
|
|
16
|
+
|
|
17
|
+
// packages/database-engine/ensureDbOpen.ts
|
|
18
|
+
async function ensureDbOpen(db) {
|
|
19
|
+
if (db.status === "open") {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (typeof db.open === "function") {
|
|
23
|
+
await db.open();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// packages/database-engine/serverStoreFactory.ts
|
|
28
|
+
import fs from "fs";
|
|
29
|
+
import path from "path";
|
|
30
|
+
|
|
31
|
+
// packages/database-engine/memoryAuthorityStore.ts
|
|
32
|
+
var createNotFoundError = () => {
|
|
33
|
+
const error = new Error("NotFound");
|
|
34
|
+
error.notFound = true;
|
|
35
|
+
return error;
|
|
36
|
+
};
|
|
37
|
+
var MemoryAuthorityBacking = class {
|
|
38
|
+
location;
|
|
39
|
+
status = "closed";
|
|
40
|
+
data = /* @__PURE__ */ new Map();
|
|
41
|
+
constructor(location) {
|
|
42
|
+
this.location = location;
|
|
43
|
+
}
|
|
44
|
+
async open() {
|
|
45
|
+
this.status = "open";
|
|
46
|
+
}
|
|
47
|
+
async close() {
|
|
48
|
+
this.status = "closed";
|
|
49
|
+
}
|
|
50
|
+
async get(key) {
|
|
51
|
+
if (!this.data.has(key)) {
|
|
52
|
+
throw createNotFoundError();
|
|
53
|
+
}
|
|
54
|
+
return this.data.get(key);
|
|
55
|
+
}
|
|
56
|
+
async put(key, value) {
|
|
57
|
+
this.data.set(key, value);
|
|
58
|
+
}
|
|
59
|
+
async del(key) {
|
|
60
|
+
this.data.delete(key);
|
|
61
|
+
}
|
|
62
|
+
async batchWrite(ops) {
|
|
63
|
+
for (const op of ops) {
|
|
64
|
+
if (op.type === "put") {
|
|
65
|
+
this.data.set(op.key, op.value);
|
|
66
|
+
} else {
|
|
67
|
+
this.data.delete(op.key);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
createBatch() {
|
|
72
|
+
const buffered = [];
|
|
73
|
+
return {
|
|
74
|
+
put(key, value) {
|
|
75
|
+
buffered.push({ type: "put", key, value });
|
|
76
|
+
},
|
|
77
|
+
del(key) {
|
|
78
|
+
buffered.push({ type: "del", key });
|
|
79
|
+
},
|
|
80
|
+
write: async () => {
|
|
81
|
+
await this.batchWrite(buffered);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
async *iterator(options = {}) {
|
|
86
|
+
const entries = Array.from(this.data.entries()).sort(([left], [right]) => left.localeCompare(right)).map(([key, value]) => ({ key, value }));
|
|
87
|
+
if (options.reverse) {
|
|
88
|
+
entries.reverse();
|
|
89
|
+
}
|
|
90
|
+
for (const entry of entries) {
|
|
91
|
+
if (options.gte && entry.key < options.gte) continue;
|
|
92
|
+
if (options.lte && entry.key > options.lte) continue;
|
|
93
|
+
if (options.lt && entry.key >= options.lt) continue;
|
|
94
|
+
yield [entry.key, entry.value];
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
function createMemoryAuthorityStore(location = ":memory:") {
|
|
99
|
+
const backing = new MemoryAuthorityBacking(location);
|
|
100
|
+
return {
|
|
101
|
+
get location() {
|
|
102
|
+
return backing.location;
|
|
103
|
+
},
|
|
104
|
+
get status() {
|
|
105
|
+
return backing.status;
|
|
106
|
+
},
|
|
107
|
+
async open() {
|
|
108
|
+
await backing.open();
|
|
109
|
+
},
|
|
110
|
+
async close() {
|
|
111
|
+
await backing.close();
|
|
112
|
+
},
|
|
113
|
+
async get(key) {
|
|
114
|
+
return backing.get(key);
|
|
115
|
+
},
|
|
116
|
+
async put(key, value) {
|
|
117
|
+
await backing.put(key, value);
|
|
118
|
+
},
|
|
119
|
+
async del(key) {
|
|
120
|
+
await backing.del(key);
|
|
121
|
+
},
|
|
122
|
+
async batchWrite(ops) {
|
|
123
|
+
await backing.batchWrite(ops);
|
|
124
|
+
},
|
|
125
|
+
createBatch() {
|
|
126
|
+
return backing.createBatch();
|
|
127
|
+
},
|
|
128
|
+
iterator(options = {}) {
|
|
129
|
+
return backing.iterator(options);
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// packages/database-engine/serverStoreFactory.ts
|
|
135
|
+
var safeJsonEncoding = {
|
|
136
|
+
name: "safe-json",
|
|
137
|
+
format: "utf8",
|
|
138
|
+
encode: (data) => JSON.stringify(data),
|
|
139
|
+
decode: (data) => {
|
|
140
|
+
try {
|
|
141
|
+
return JSON.parse(data);
|
|
142
|
+
} catch {
|
|
143
|
+
console.warn("[LevelDB] Corrupted value:", data?.substring?.(0, 60));
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
function ensureServerDbDirectory(dbPath) {
|
|
149
|
+
const dir = path.dirname(dbPath);
|
|
150
|
+
if (!fs.existsSync(dir)) {
|
|
151
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function createLevelBackedAuthorityStore(dbPath) {
|
|
155
|
+
const levelDb = new Level(dbPath, {
|
|
156
|
+
valueEncoding: safeJsonEncoding
|
|
157
|
+
});
|
|
158
|
+
return createLevelAuthorityStore(levelDb);
|
|
159
|
+
}
|
|
160
|
+
function resolveServerStoreDriver(env = process.env) {
|
|
161
|
+
const rawDriver = asTrimmedLowercaseString(env.NOLO_SERVER_AUTHORITY_DRIVER);
|
|
162
|
+
if (!rawDriver) return "level";
|
|
163
|
+
if (rawDriver === "level") return "level";
|
|
164
|
+
if (rawDriver === "memory") return "memory";
|
|
165
|
+
throw new Error(`Unsupported server authority store driver: ${rawDriver}`);
|
|
166
|
+
}
|
|
167
|
+
function createAuthorityStoreForDriver(driver, dbPath) {
|
|
168
|
+
switch (driver) {
|
|
169
|
+
case "level":
|
|
170
|
+
return createLevelBackedAuthorityStore(dbPath);
|
|
171
|
+
case "memory":
|
|
172
|
+
return createMemoryAuthorityStore(dbPath);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function getOrCreateServerStoreRuntime(dbPath, options = {}) {
|
|
176
|
+
const globalScope = options.globalScope ?? globalThis;
|
|
177
|
+
const driver = options.driver ?? resolveServerStoreDriver(options.env);
|
|
178
|
+
const cachedDriver = globalScope.__serverAuthorityStoreDriver;
|
|
179
|
+
ensureServerDbDirectory(dbPath);
|
|
180
|
+
if (globalScope.__serverAuthorityStore && typeof cachedDriver === "string" && cachedDriver !== driver) {
|
|
181
|
+
throw new Error(
|
|
182
|
+
`Server authority store already initialized with driver ${cachedDriver}, cannot reuse it for ${driver}`
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
if (!globalScope.__serverAuthorityStore) {
|
|
186
|
+
globalScope.__serverAuthorityStore = createAuthorityStoreForDriver(
|
|
187
|
+
driver,
|
|
188
|
+
dbPath
|
|
189
|
+
);
|
|
190
|
+
globalScope.__serverAuthorityStoreDriver = driver;
|
|
191
|
+
} else if (!cachedDriver) {
|
|
192
|
+
globalScope.__serverAuthorityStoreDriver = driver;
|
|
193
|
+
}
|
|
194
|
+
const authorityStore2 = globalScope.__serverAuthorityStore;
|
|
195
|
+
if (!globalScope.__serverDb) {
|
|
196
|
+
globalScope.__serverDb = createLegacyServerDb(authorityStore2);
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
authorityStore: authorityStore2,
|
|
200
|
+
serverDb: globalScope.__serverDb
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// packages/database-engine/db.ts
|
|
205
|
+
var DB_PATH = resolveServerDbPath();
|
|
206
|
+
console.log("\u6570\u636E\u5E93\u914D\u7F6E:");
|
|
207
|
+
console.log("- \u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55:", process.cwd());
|
|
208
|
+
console.log("- \u6570\u636E\u5E93\u8DEF\u5F84:", DB_PATH);
|
|
209
|
+
function isServerDbLockError(error) {
|
|
210
|
+
const queue = [error];
|
|
211
|
+
const seen = /* @__PURE__ */ new Set();
|
|
212
|
+
while (queue.length > 0) {
|
|
213
|
+
const current = queue.shift();
|
|
214
|
+
if (!current || seen.has(current)) continue;
|
|
215
|
+
seen.add(current);
|
|
216
|
+
if (isLevelLockError(current)) return true;
|
|
217
|
+
if (current?.cause) queue.push(current.cause);
|
|
218
|
+
if (Array.isArray(current?.errors)) {
|
|
219
|
+
queue.push(...current.errors);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
var {
|
|
225
|
+
authorityStore,
|
|
226
|
+
serverDb
|
|
227
|
+
} = getOrCreateServerStoreRuntime(DB_PATH);
|
|
228
|
+
console.log("- LevelDB\u5B9E\u9645\u8DEF\u5F84:", serverDb.location);
|
|
229
|
+
var db_default = serverDb;
|
|
230
|
+
function getServerAuthorityStore() {
|
|
231
|
+
return authorityStore;
|
|
232
|
+
}
|
|
233
|
+
async function ensureServerDbOpen() {
|
|
234
|
+
const status = authorityStore.status;
|
|
235
|
+
if (status === "open") return;
|
|
236
|
+
try {
|
|
237
|
+
await ensureDbOpen(authorityStore);
|
|
238
|
+
if (status !== "opening") {
|
|
239
|
+
console.log("\u2705 LevelDB \u5DF2\u6253\u5F00");
|
|
240
|
+
}
|
|
241
|
+
} catch (err) {
|
|
242
|
+
if (isServerDbLockError(err)) {
|
|
243
|
+
console.error("\u274C \u6253\u5F00 LevelDB \u5931\u8D25: \u6570\u636E\u5E93\u5DF2\u88AB\u5176\u4ED6\u8FDB\u7A0B\u5360\u7528");
|
|
244
|
+
} else {
|
|
245
|
+
console.error("\u274C \u6253\u5F00 LevelDB \u5931\u8D25:", err);
|
|
246
|
+
}
|
|
247
|
+
throw err;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
async function openServerDb() {
|
|
251
|
+
return ensureServerDbOpen();
|
|
252
|
+
}
|
|
253
|
+
async function closeServerDb() {
|
|
254
|
+
const status = authorityStore.status;
|
|
255
|
+
if (status !== "open") return;
|
|
256
|
+
try {
|
|
257
|
+
await authorityStore.close();
|
|
258
|
+
console.log("\u2705 LevelDB \u5DF2\u5173\u95ED");
|
|
259
|
+
} catch (err) {
|
|
260
|
+
console.error("\u274C \u5173\u95ED LevelDB \u5931\u8D25:", err);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
export {
|
|
264
|
+
closeServerDb,
|
|
265
|
+
db_default as default,
|
|
266
|
+
ensureServerDbOpen,
|
|
267
|
+
getServerAuthorityStore,
|
|
268
|
+
isServerDbLockError,
|
|
269
|
+
openServerDb,
|
|
270
|
+
serverDb
|
|
271
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import {
|
|
2
|
+
dbAdapter,
|
|
3
|
+
dbSlice_default,
|
|
4
|
+
patch,
|
|
5
|
+
purge,
|
|
6
|
+
read,
|
|
7
|
+
readAndWait,
|
|
8
|
+
readFileContent,
|
|
9
|
+
remove,
|
|
10
|
+
removeCachedEntity,
|
|
11
|
+
selectAll,
|
|
12
|
+
selectById,
|
|
13
|
+
selectEntities,
|
|
14
|
+
selectIds,
|
|
15
|
+
selectTotal,
|
|
16
|
+
share,
|
|
17
|
+
upload,
|
|
18
|
+
upsert,
|
|
19
|
+
upsertSSREntity,
|
|
20
|
+
write
|
|
21
|
+
} from "./chunk-COMXDWNM.js";
|
|
22
|
+
import "./chunk-AZPCASRE.js";
|
|
23
|
+
import "./chunk-2EISRLRC.js";
|
|
24
|
+
import "./chunk-SH2CFQOH.js";
|
|
25
|
+
import "./chunk-I42VC5KR.js";
|
|
26
|
+
import "./chunk-WWC7I6TA.js";
|
|
27
|
+
import "./chunk-QSJ3HFEF.js";
|
|
28
|
+
import "./chunk-ELRRLDWI.js";
|
|
29
|
+
import "./chunk-EYEEHCU4.js";
|
|
30
|
+
import "./chunk-QYXLLLGL.js";
|
|
31
|
+
import "./chunk-GBRG75BQ.js";
|
|
32
|
+
import "./chunk-4SN6J65J.js";
|
|
33
|
+
import "./chunk-LCBAMY2M.js";
|
|
34
|
+
import "./chunk-3EUW3WEO.js";
|
|
35
|
+
import "./chunk-U6VC4MU4.js";
|
|
36
|
+
import "./chunk-CF7PE763.js";
|
|
37
|
+
import "./chunk-G3SUCT4W.js";
|
|
38
|
+
import "./chunk-KUG52IAP.js";
|
|
39
|
+
import "./chunk-4VNS5WPM.js";
|
|
40
|
+
export {
|
|
41
|
+
dbAdapter,
|
|
42
|
+
dbSlice_default as default,
|
|
43
|
+
patch,
|
|
44
|
+
purge,
|
|
45
|
+
read,
|
|
46
|
+
readAndWait,
|
|
47
|
+
readFileContent,
|
|
48
|
+
remove,
|
|
49
|
+
removeCachedEntity,
|
|
50
|
+
selectAll,
|
|
51
|
+
selectById,
|
|
52
|
+
selectEntities,
|
|
53
|
+
selectIds,
|
|
54
|
+
selectTotal,
|
|
55
|
+
share,
|
|
56
|
+
upload,
|
|
57
|
+
upsert,
|
|
58
|
+
upsertSSREntity,
|
|
59
|
+
write
|
|
60
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import {
|
|
2
|
+
deleteFileFromIndexedDb,
|
|
3
|
+
removeAction
|
|
4
|
+
} from "./chunk-2EISRLRC.js";
|
|
5
|
+
import "./chunk-EYEEHCU4.js";
|
|
6
|
+
import {
|
|
7
|
+
fetchFromClientDb,
|
|
8
|
+
logger
|
|
9
|
+
} from "./chunk-QYXLLLGL.js";
|
|
10
|
+
import "./chunk-GBRG75BQ.js";
|
|
11
|
+
import "./chunk-4SN6J65J.js";
|
|
12
|
+
import "./chunk-LCBAMY2M.js";
|
|
13
|
+
import "./chunk-3EUW3WEO.js";
|
|
14
|
+
import "./chunk-U6VC4MU4.js";
|
|
15
|
+
import "./chunk-CF7PE763.js";
|
|
16
|
+
import "./chunk-G3SUCT4W.js";
|
|
17
|
+
import "./chunk-KUG52IAP.js";
|
|
18
|
+
import "./chunk-4VNS5WPM.js";
|
|
19
|
+
|
|
20
|
+
// packages/database/actions/deleteFile.ts
|
|
21
|
+
var deleteFileAction = async (dbKey, thunkApi) => {
|
|
22
|
+
const { db: clientDb } = thunkApi.extra;
|
|
23
|
+
try {
|
|
24
|
+
const metadata = await fetchFromClientDb(clientDb, dbKey);
|
|
25
|
+
if (metadata && metadata.id) {
|
|
26
|
+
try {
|
|
27
|
+
await deleteFileFromIndexedDb(metadata.id);
|
|
28
|
+
logger.debug({ fileId: metadata.id }, "Deleted file blob from IndexedDB");
|
|
29
|
+
} catch (err) {
|
|
30
|
+
logger.warn({ err, fileId: metadata.id }, "Failed to delete file blob from IndexedDB, proceeding to delete metadata");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
await removeAction(dbKey, thunkApi);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
logger.error({ error, dbKey }, "Failed to delete file completely");
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
deleteFileAction
|
|
41
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isScheduledDialog,
|
|
3
|
+
normalizeDialogRecord,
|
|
4
|
+
readDialogSnapshot,
|
|
5
|
+
runDialogDeleteCommand,
|
|
6
|
+
runDialogListCommand,
|
|
7
|
+
runDialogQueryCommand,
|
|
8
|
+
runDialogReadCommand,
|
|
9
|
+
runDialogStatusCommand,
|
|
10
|
+
sortDialogs
|
|
11
|
+
} from "./chunk-G43KEVSC.js";
|
|
12
|
+
import "./chunk-4CQLVGRV.js";
|
|
13
|
+
import "./chunk-WKM6FH35.js";
|
|
14
|
+
import "./chunk-7OOXPE3N.js";
|
|
15
|
+
import "./chunk-2PUGVR6E.js";
|
|
16
|
+
import "./chunk-VHBWHNVT.js";
|
|
17
|
+
import "./chunk-KQHGZWSV.js";
|
|
18
|
+
import "./chunk-PCWC3JTN.js";
|
|
19
|
+
import "./chunk-IDZTNRP2.js";
|
|
20
|
+
import "./chunk-ISNCLGUZ.js";
|
|
21
|
+
import "./chunk-OLZBQWZU.js";
|
|
22
|
+
import "./chunk-YBWOP46I.js";
|
|
23
|
+
import "./chunk-5KLGBAAR.js";
|
|
24
|
+
import "./chunk-ZNFJWEN4.js";
|
|
25
|
+
import "./chunk-TILFE6LV.js";
|
|
26
|
+
import "./chunk-XS466O7S.js";
|
|
27
|
+
import "./chunk-OPZYGHUC.js";
|
|
28
|
+
import "./chunk-PAKN26FP.js";
|
|
29
|
+
import "./chunk-JRKKFRAV.js";
|
|
30
|
+
import "./chunk-AUQ747NZ.js";
|
|
31
|
+
import "./chunk-5MMAK75Q.js";
|
|
32
|
+
import "./chunk-BBYVOSU2.js";
|
|
33
|
+
import "./chunk-5CS33IBL.js";
|
|
34
|
+
import "./chunk-JZPBVBIY.js";
|
|
35
|
+
import "./chunk-IWX4UW2E.js";
|
|
36
|
+
import "./chunk-DWLEOOGR.js";
|
|
37
|
+
import "./chunk-HNMXYYJR.js";
|
|
38
|
+
import "./chunk-Y5GCAMGP.js";
|
|
39
|
+
import "./chunk-KX6YBIHG.js";
|
|
40
|
+
import "./chunk-SH2CFQOH.js";
|
|
41
|
+
import "./chunk-I42VC5KR.js";
|
|
42
|
+
import "./chunk-WWC7I6TA.js";
|
|
43
|
+
import "./chunk-QSJ3HFEF.js";
|
|
44
|
+
import "./chunk-GBRG75BQ.js";
|
|
45
|
+
import "./chunk-4SN6J65J.js";
|
|
46
|
+
import "./chunk-LCBAMY2M.js";
|
|
47
|
+
import "./chunk-3EUW3WEO.js";
|
|
48
|
+
import "./chunk-U6VC4MU4.js";
|
|
49
|
+
import "./chunk-CF7PE763.js";
|
|
50
|
+
import "./chunk-G3SUCT4W.js";
|
|
51
|
+
import "./chunk-KUG52IAP.js";
|
|
52
|
+
import "./chunk-4VNS5WPM.js";
|
|
53
|
+
export {
|
|
54
|
+
isScheduledDialog,
|
|
55
|
+
normalizeDialogRecord,
|
|
56
|
+
readDialogSnapshot,
|
|
57
|
+
runDialogDeleteCommand,
|
|
58
|
+
runDialogListCommand,
|
|
59
|
+
runDialogQueryCommand,
|
|
60
|
+
runDialogReadCommand,
|
|
61
|
+
runDialogStatusCommand,
|
|
62
|
+
sortDialogs
|
|
63
|
+
};
|