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.
Files changed (183) hide show
  1. package/_executeModel-UD44KGZ4.js +203 -0
  2. package/action-ZJWE3Y5S.js +28 -0
  3. package/addContentAction-TVDBNJM5.js +26 -0
  4. package/addDialogAgentAction-EKH774VT.js +68 -0
  5. package/agentDeleteCommand-TCPEFJTF.js +327 -0
  6. package/agentEmailCommands-CZ3UILZ4.js +626 -0
  7. package/agentListCommands-SJKO2FFB.js +223 -0
  8. package/agentMachineCommands-PSNABISZ.js +425 -0
  9. package/agentPullCommand-O2MTUAFR.js +122 -0
  10. package/agentRecordCommands-MH2JKFHS.js +94 -0
  11. package/agentRunCommand-4KH6MIZR.js +110 -0
  12. package/agentRunControl-K4VKNEHF.js +57 -0
  13. package/agentRuntimeLocal-SKHJUWSS.js +104 -0
  14. package/agentSlice-3WXXN4VK.js +42 -0
  15. package/authCommand-PXFX6JDT.js +581 -0
  16. package/authCommands-356AYWEK.js +35 -0
  17. package/chunk-2EISRLRC.js +238 -0
  18. package/chunk-2FTTDCD4.js +675 -0
  19. package/chunk-2K2ECKSG.js +222 -0
  20. package/chunk-2PUGVR6E.js +19 -0
  21. package/chunk-3ASDTTEI.js +1774 -0
  22. package/chunk-3EUW3WEO.js +8 -0
  23. package/chunk-3LY4F7SV.js +9293 -0
  24. package/chunk-3TZDXYSF.js +71 -0
  25. package/chunk-3WYQEUBI.js +34 -0
  26. package/chunk-4CQLVGRV.js +50 -0
  27. package/chunk-4IJYA27C.js +342 -0
  28. package/chunk-4K2KKCSD.js +577 -0
  29. package/chunk-4SN6J65J.js +38 -0
  30. package/chunk-4VNS5WPM.js +42 -0
  31. package/chunk-4ZDM73SD.js +34 -0
  32. package/chunk-5CS33IBL.js +301 -0
  33. package/chunk-5KLGBAAR.js +386 -0
  34. package/chunk-5MIDPSSK.js +206 -0
  35. package/chunk-5MMAK75Q.js +15 -0
  36. package/chunk-5PJ3VWCS.js +360 -0
  37. package/chunk-63SLEOLK.js +175 -0
  38. package/chunk-63W5N6P3.js +150 -0
  39. package/chunk-6GANEXVO.js +231 -0
  40. package/chunk-6HYVJV7B.js +102 -0
  41. package/chunk-6WD3OOJS.js +20 -0
  42. package/chunk-7OOXPE3N.js +628 -0
  43. package/chunk-7QRKCBOP.js +1078 -0
  44. package/chunk-ATNTHIZI.js +13 -0
  45. package/chunk-AUQ747NZ.js +902 -0
  46. package/chunk-AVMKZHBC.js +85 -0
  47. package/chunk-AZPCASRE.js +36 -0
  48. package/chunk-BBYVOSU2.js +792 -0
  49. package/chunk-C3RUNRHT.js +51 -0
  50. package/chunk-CF2WZF4N.js +134 -0
  51. package/chunk-CF7PE763.js +10 -0
  52. package/chunk-CKOJQDKR.js +198 -0
  53. package/chunk-COMXDWNM.js +807 -0
  54. package/chunk-CPB2YM4D.js +171 -0
  55. package/chunk-CWMSB67P.js +34 -0
  56. package/chunk-DCOA4QSN.js +105 -0
  57. package/chunk-DFFIZ25G.js +30 -0
  58. package/chunk-DWLEOOGR.js +8 -0
  59. package/chunk-DZ3XJVET.js +231 -0
  60. package/chunk-EHLHSX7R.js +1433 -0
  61. package/chunk-ELRRLDWI.js +478 -0
  62. package/chunk-EXTIQUCI.js +482 -0
  63. package/chunk-EYEEHCU4.js +3066 -0
  64. package/chunk-G3SUCT4W.js +8 -0
  65. package/chunk-G43KEVSC.js +1447 -0
  66. package/chunk-GAKEBQD6.js +30 -0
  67. package/chunk-GBRG75BQ.js +86 -0
  68. package/chunk-GG4AJPSR.js +191 -0
  69. package/chunk-H33743XH.js +25 -0
  70. package/chunk-HNMXYYJR.js +12 -0
  71. package/chunk-I42VC5KR.js +15 -0
  72. package/chunk-IDZTNRP2.js +85 -0
  73. package/chunk-ISNCLGUZ.js +146 -0
  74. package/chunk-IWX4UW2E.js +548 -0
  75. package/chunk-JBTJAPUF.js +35 -0
  76. package/chunk-JEXVIMYZ.js +55 -0
  77. package/chunk-JRKKFRAV.js +537 -0
  78. package/chunk-JZPBVBIY.js +94 -0
  79. package/chunk-KKY4B2Q2.js +21 -0
  80. package/chunk-KOCA5FCS.js +4750 -0
  81. package/chunk-KQHGZWSV.js +63 -0
  82. package/chunk-KTVVPRJS.js +138 -0
  83. package/chunk-KUG52IAP.js +8 -0
  84. package/chunk-KX6YBIHG.js +8 -0
  85. package/chunk-LARL2V6G.js +9017 -0
  86. package/chunk-LCBAMY2M.js +60 -0
  87. package/chunk-LM6IYQ3F.js +16 -0
  88. package/chunk-M76ECQRD.js +13658 -0
  89. package/chunk-MGOJ5R6J.js +113 -0
  90. package/chunk-MKMWT7SA.js +27196 -0
  91. package/chunk-MRC4Q34M.js +188 -0
  92. package/chunk-OLZBQWZU.js +6 -0
  93. package/chunk-OPZYGHUC.js +89 -0
  94. package/chunk-OWOHNGCN.js +50 -0
  95. package/chunk-PAKN26FP.js +239 -0
  96. package/chunk-PCWC3JTN.js +91 -0
  97. package/chunk-PG5PNA7Y.js +939 -0
  98. package/chunk-Q2YZULBH.js +104 -0
  99. package/chunk-QSJ3HFEF.js +8 -0
  100. package/chunk-QYXLLLGL.js +4519 -0
  101. package/chunk-ROWQEJRP.js +139 -0
  102. package/chunk-S7Z2HMCN.js +25 -0
  103. package/chunk-SBR32ZZS.js +1901 -0
  104. package/chunk-SH2CFQOH.js +3391 -0
  105. package/chunk-SL35K7AH.js +226 -0
  106. package/chunk-TILFE6LV.js +381 -0
  107. package/chunk-TSS3XJY4.js +2052 -0
  108. package/chunk-U4TRT5V4.js +246 -0
  109. package/chunk-U6VC4MU4.js +8 -0
  110. package/chunk-UAD2WT54.js +64 -0
  111. package/chunk-UUJDGGAK.js +421 -0
  112. package/chunk-VF4K2QE6.js +21 -0
  113. package/chunk-VHBWHNVT.js +59 -0
  114. package/chunk-VIDPVFP3.js +20 -0
  115. package/chunk-VP4WJWKW.js +8882 -0
  116. package/chunk-W4NVOSFF.js +37 -0
  117. package/chunk-WKM6FH35.js +190 -0
  118. package/chunk-WWC7I6TA.js +8 -0
  119. package/chunk-X7W4TNB4.js +1550 -0
  120. package/chunk-XE635NI4.js +1948 -0
  121. package/chunk-XKIMRZO2.js +221 -0
  122. package/chunk-XS466O7S.js +933 -0
  123. package/chunk-Y5GCAMGP.js +9 -0
  124. package/chunk-YBWOP46I.js +3272 -0
  125. package/chunk-YPRZSPF3.js +148 -0
  126. package/chunk-YYUCRDOK.js +69 -0
  127. package/chunk-Z4NR32XR.js +50 -0
  128. package/chunk-ZIG5LJ7X.js +24765 -0
  129. package/chunk-ZNFJWEN4.js +56 -0
  130. package/chunk-ZQ2UM4KG.js +2878 -0
  131. package/cliExecutor-DNE7TCC4.js +36 -0
  132. package/clipboardy-BVE3LVEH.js +12001 -0
  133. package/createAgentAutomationAction-63OIP6X5.js +866 -0
  134. package/createDialogAction-ZLYZDYBB.js +54 -0
  135. package/createPageAction-AL5FSDCK.js +171 -0
  136. package/db-HCJ5PRB5.js +271 -0
  137. package/dbSlice-PR44QPXY.js +60 -0
  138. package/deleteFile-4SKGPHOZ.js +41 -0
  139. package/dialogCommands-F6YI5742.js +63 -0
  140. package/dialogSlice-JSBNZRLR.js +148 -0
  141. package/docCreateCommands-4CTO7ERT.js +219 -0
  142. package/docDeleteCommands-VBWERDRG.js +180 -0
  143. package/docReadCommands-KNP4MFYB.js +133 -0
  144. package/docStore-ADP5VYY4.js +98 -0
  145. package/docUpdateCommands-4BCBJQHA.js +317 -0
  146. package/fetchMessages-U6ZHN56A.js +17 -0
  147. package/getPricing-3E6UNPKL.js +30 -0
  148. package/handleSendMessageAction-IJDQ6ARA.js +185 -0
  149. package/index.js +188 -112943
  150. package/lib-FYYBQIXS.js +19839 -0
  151. package/localDialogRead-Z5UTAJPU.js +26 -0
  152. package/localFirstLog-DHNOY2NA.js +19 -0
  153. package/localRuntimeAuthority-TEGCOWX4.js +471 -0
  154. package/localRuntimeDb-LGDF6FQP.js +12 -0
  155. package/machineCommands-EA3M4XTN.js +779 -0
  156. package/machineInfo-M6KB6HZN.js +10 -0
  157. package/machineWsRunDispatch-NAPKE5ZA.js +110 -0
  158. package/memoryCommands-O4MIPIWQ.js +476 -0
  159. package/models-4OPOOLFS.js +9 -0
  160. package/offlineMarxistsAgentCommand-BCPJITJL.js +242 -0
  161. package/package.json +3 -25
  162. package/read-RIJCIVKX.js +17 -0
  163. package/readDocTool-GZD2N3LO.js +16 -0
  164. package/readlineWorkspace-KMWT4T4S.js +5509 -0
  165. package/removeDialogAgentAction-GJQJNDW6.js +73 -0
  166. package/runAgentClientLoop-U5Q6NDTJ.js +291 -0
  167. package/runtimeDoctorCommands-LRHLPDRC.js +289 -0
  168. package/setDialogExtraReferencesAction-M7OQG54N.js +60 -0
  169. package/setPrimaryDialogAgentAction-46UNFJDL.js +80 -0
  170. package/settingSlice-FVUUH4JA.js +199 -0
  171. package/skillSummaryMarker-42HKSXYY.js +9 -0
  172. package/slateToRenderMarkdown-Y5IYN73U.js +7 -0
  173. package/slateUtils-2M7MUTWX.js +19 -0
  174. package/spaceCommands-E2CFRPZJ.js +454 -0
  175. package/spaceSlice-L3R6IMXE.js +147 -0
  176. package/streamAgentChatTurn-UBDAOQWE.js +4528 -0
  177. package/tableCommands-GOFP7QKA.js +1286 -0
  178. package/toolApiClient-QI3YBNWB.js +26 -0
  179. package/tools-TMJXZTCA.js +85 -0
  180. package/tuiSummaryLlmCaller-RV3THLZF.js +78 -0
  181. package/understanding-GQKNDDWM.js +271 -0
  182. package/updateCommands-VOSPKXFF.js +31 -0
  183. package/updateDialogTitleAction-ZTWRDXI2.js +188 -0
@@ -0,0 +1,238 @@
1
+ import {
2
+ getRuntimeServerContext,
3
+ scheduleDeleteReplication
4
+ } from "./chunk-EYEEHCU4.js";
5
+ import {
6
+ fetchFromClientDb
7
+ } from "./chunk-QYXLLLGL.js";
8
+ import {
9
+ buildTombstoneRecord
10
+ } from "./chunk-GBRG75BQ.js";
11
+
12
+ // packages/database/fileStorage.ts
13
+ var DB_NAME = "nolo-file-storage";
14
+ var STORE_NAME = "files";
15
+ var DB_VERSION = 1;
16
+ var dbPromise = null;
17
+ var openFileDb = () => {
18
+ if (dbPromise) return dbPromise;
19
+ if (typeof indexedDB === "undefined") {
20
+ console.warn(
21
+ "[fileStorage] indexedDB is not available in this environment. File caching is disabled."
22
+ );
23
+ dbPromise = Promise.reject(
24
+ new Error("indexedDB is not available in this environment")
25
+ );
26
+ return dbPromise;
27
+ }
28
+ dbPromise = new Promise((resolve, reject) => {
29
+ const request = indexedDB.open(DB_NAME, DB_VERSION);
30
+ request.onerror = () => {
31
+ console.error("[fileStorage] Failed to open IndexedDB:", request.error);
32
+ reject(request.error);
33
+ };
34
+ request.onupgradeneeded = () => {
35
+ const db = request.result;
36
+ if (!db.objectStoreNames.contains(STORE_NAME)) {
37
+ const store = db.createObjectStore(STORE_NAME, {
38
+ keyPath: "id"
39
+ });
40
+ store.createIndex("createdAt", "createdAt", { unique: false });
41
+ }
42
+ };
43
+ request.onsuccess = () => {
44
+ const db = request.result;
45
+ db.onversionchange = () => {
46
+ db.close();
47
+ console.warn(
48
+ "[fileStorage] IndexedDB version change detected, closing old connection."
49
+ );
50
+ };
51
+ resolve(db);
52
+ };
53
+ });
54
+ return dbPromise;
55
+ };
56
+ var saveFileToIndexedDb = async (fileId, file) => {
57
+ try {
58
+ const db = await openFileDb();
59
+ const tx = db.transaction(STORE_NAME, "readwrite");
60
+ const store = tx.objectStore(STORE_NAME);
61
+ const blob = file instanceof Blob ? file : new Blob([file]);
62
+ const record = {
63
+ id: fileId,
64
+ blob,
65
+ size: blob.size,
66
+ type: blob.type || "application/octet-stream",
67
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
68
+ };
69
+ const request = store.put(record);
70
+ await new Promise((resolve, reject) => {
71
+ request.onsuccess = () => {
72
+ console.debug(
73
+ "[fileStorage] Saved file to IndexedDB:",
74
+ fileId,
75
+ "size=",
76
+ record.size,
77
+ "type=",
78
+ record.type
79
+ );
80
+ resolve();
81
+ };
82
+ request.onerror = () => {
83
+ console.error(
84
+ "[fileStorage] Failed to save file to IndexedDB:",
85
+ fileId,
86
+ request.error
87
+ );
88
+ reject(request.error);
89
+ };
90
+ });
91
+ await new Promise((resolve, reject) => {
92
+ tx.oncomplete = () => resolve();
93
+ tx.onerror = () => reject(tx.error);
94
+ tx.onabort = () => reject(tx.error);
95
+ });
96
+ } catch (err) {
97
+ console.warn(
98
+ "[fileStorage] saveFileToIndexedDb error (non-fatal, caching disabled for this file):",
99
+ err
100
+ );
101
+ }
102
+ };
103
+ var loadFileFromIndexedDb = async (fileId) => {
104
+ try {
105
+ const db = await openFileDb();
106
+ const tx = db.transaction(STORE_NAME, "readonly");
107
+ const store = tx.objectStore(STORE_NAME);
108
+ const request = store.get(fileId);
109
+ const record = await new Promise(
110
+ (resolve, reject) => {
111
+ request.onsuccess = () => {
112
+ const result = request.result;
113
+ if (result) {
114
+ console.debug(
115
+ "[fileStorage] Loaded file from IndexedDB:",
116
+ fileId,
117
+ "size=",
118
+ result.size,
119
+ "type=",
120
+ result.type
121
+ );
122
+ } else {
123
+ console.debug(
124
+ "[fileStorage] No local file found in IndexedDB for id:",
125
+ fileId
126
+ );
127
+ }
128
+ resolve(result ?? null);
129
+ };
130
+ request.onerror = () => {
131
+ console.error(
132
+ "[fileStorage] Failed to load file from IndexedDB:",
133
+ fileId,
134
+ request.error
135
+ );
136
+ reject(request.error);
137
+ };
138
+ }
139
+ );
140
+ return record ?? null;
141
+ } catch (err) {
142
+ console.warn(
143
+ "[fileStorage] loadFileFromIndexedDb error, treat as cache miss:",
144
+ err
145
+ );
146
+ return null;
147
+ }
148
+ };
149
+ var deleteFileFromIndexedDb = async (fileId) => {
150
+ try {
151
+ const db = await openFileDb();
152
+ const tx = db.transaction(STORE_NAME, "readwrite");
153
+ const store = tx.objectStore(STORE_NAME);
154
+ const request = store.delete(fileId);
155
+ await new Promise((resolve, reject) => {
156
+ request.onsuccess = () => {
157
+ console.debug("[fileStorage] Deleted file from IndexedDB:", fileId);
158
+ resolve();
159
+ };
160
+ request.onerror = () => {
161
+ console.error(
162
+ "[fileStorage] Failed to delete file from IndexedDB:",
163
+ fileId,
164
+ request.error
165
+ );
166
+ reject(request.error);
167
+ };
168
+ });
169
+ await new Promise((resolve, reject) => {
170
+ tx.oncomplete = () => resolve();
171
+ tx.onerror = () => reject(tx.error);
172
+ tx.onabort = () => reject(tx.error);
173
+ });
174
+ } catch (err) {
175
+ console.warn("[fileStorage] deleteFileFromIndexedDb error:", err);
176
+ }
177
+ };
178
+
179
+ // packages/database/actions/remove.ts
180
+ var removeAction = async (payload, thunkApi) => {
181
+ const { db: clientDb } = thunkApi.extra;
182
+ const dbKey = typeof payload === "string" ? payload : payload.dbKey;
183
+ const preferredServerOrigin = typeof payload === "string" ? void 0 : payload.preferredServerOrigin;
184
+ if (!clientDb) {
185
+ throw new Error("Client database is undefined in removeAction");
186
+ }
187
+ const state = thunkApi.getState();
188
+ const { currentServer, syncServers } = getRuntimeServerContext(state);
189
+ console.log("[removeAction] START", {
190
+ dbKey,
191
+ preferredServerOrigin,
192
+ currentServer,
193
+ syncServers,
194
+ hasToken: Boolean(state?.auth?.currentToken)
195
+ });
196
+ const localData = await fetchFromClientDb(clientDb, dbKey);
197
+ const hadLocalData = Boolean(localData);
198
+ console.log("[removeAction] replication inputs", {
199
+ currentServer,
200
+ syncServers,
201
+ preferredServerOrigin,
202
+ hadLocalData
203
+ });
204
+ const nowIso = (/* @__PURE__ */ new Date()).toISOString();
205
+ if (localData) {
206
+ if (localData.id && typeof localData.id === "string") {
207
+ void deleteFileFromIndexedDb(localData.id).catch((err) => {
208
+ console.warn("[removeAction] Failed to delete associated file:", localData.id, err);
209
+ });
210
+ }
211
+ await clientDb.put(dbKey, buildTombstoneRecord(localData, nowIso));
212
+ } else {
213
+ await clientDb.put(dbKey, buildTombstoneRecord({ dbKey }, nowIso));
214
+ }
215
+ scheduleDeleteReplication({
216
+ currentServer,
217
+ syncServers,
218
+ preferredServerOrigin,
219
+ dbKey,
220
+ state,
221
+ onResult: (result) => {
222
+ if (result.failed.length > 0) {
223
+ console.warn("[removeAction] Server delete failures after local tombstone:", result.failed);
224
+ }
225
+ },
226
+ onError: (err) => {
227
+ console.warn("[removeAction] Background server delete error:", err);
228
+ }
229
+ });
230
+ return { dbKey };
231
+ };
232
+
233
+ export {
234
+ saveFileToIndexedDb,
235
+ loadFileFromIndexedDb,
236
+ deleteFileFromIndexedDb,
237
+ removeAction
238
+ };