nolo-cli 0.16.0-alpha.21 → 0.16.0-alpha.22

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 (39) hide show
  1. package/{_executeModel-GRCQXT5R.js → _executeModel-KZWX5QIN.js} +9 -9
  2. package/{agentEmailCommands-MPEUMRAS.js → agentEmailCommands-XSXSLPCX.js} +8 -8
  3. package/{agentMachineCommands-WYM6YRYJ.js → agentMachineCommands-PT36QT26.js} +1 -1
  4. package/{agentRecordCommands-BVWSHMIY.js → agentRecordCommands-OVA55AXA.js} +8 -8
  5. package/{agentRunCommand-E3ZI6RSF.js → agentRunCommand-NMFBM2GG.js} +8 -8
  6. package/{agentSlice-D33GU3JL.js → agentSlice-XG7L7VOZ.js} +1 -1
  7. package/{chunk-N2HYIBLH.js → chunk-ADBZ6EHB.js} +2 -2
  8. package/{chunk-RUTSBLDM.js → chunk-B7B7VU3F.js} +4 -4
  9. package/{chunk-ENP2ELIL.js → chunk-D7LV3CZW.js} +1 -1
  10. package/{chunk-E5KQTMMJ.js → chunk-H4I7UQN4.js} +18 -4
  11. package/{chunk-GMZZ5EKJ.js → chunk-ICE32NXZ.js} +2 -2
  12. package/{chunk-5PGGCJGV.js → chunk-KTVQYCNL.js} +3 -3
  13. package/{chunk-RIDWN7AP.js → chunk-S3I45ULW.js} +1 -1
  14. package/{chunk-HQNPCMWL.js → chunk-T25IBGAU.js} +1 -1
  15. package/{chunk-J67FKTTY.js → chunk-TJ2QT3CA.js} +8 -8
  16. package/{chunk-JFE7XW4D.js → chunk-TMVLHNQE.js} +1 -1
  17. package/{chunk-L2RRMXNJ.js → chunk-TXSSZAT3.js} +1 -1
  18. package/{chunk-EXAEHRLI.js → chunk-U4FIJOFW.js} +3 -3
  19. package/{chunk-UIOYWBU7.js → chunk-VSKCDWDT.js} +78 -8
  20. package/{chunk-MUIT5AAM.js → chunk-ZJAJKQJT.js} +5 -5
  21. package/{createAgentAutomationAction-ONKZ46XE.js → createAgentAutomationAction-FNQGBMEW.js} +2 -2
  22. package/{createDialogAction-7QWJEBKU.js → createDialogAction-VZWTWUOB.js} +3 -3
  23. package/{createPageAction-PB3KXZIA.js → createPageAction-IV7XMARF.js} +2 -2
  24. package/{db-HCJ5PRB5.js → db-W3O47YGF.js} +38 -12
  25. package/{dialogCommands-YZFU4Q26.js → dialogCommands-NX3OPPVH.js} +1 -1
  26. package/{dialogSlice-53B5ISGQ.js → dialogSlice-LLWBTA75.js} +2 -2
  27. package/{docStore-LJXXRB5W.js → docStore-KBF5KT2W.js} +3 -3
  28. package/{handleSendMessageAction-ICGX4QCM.js → handleSendMessageAction-TORIOP76.js} +2 -2
  29. package/index.js +20 -20
  30. package/{localDialogRead-HQZPVIE3.js → localDialogRead-4H3QJFLW.js} +1 -1
  31. package/{machineCommands-YLDZXK4D.js → machineCommands-YNHOEIST.js} +8 -8
  32. package/{machineWsRunDispatch-LTQL3DRE.js → machineWsRunDispatch-YTUQAHDL.js} +8 -8
  33. package/package.json +1 -1
  34. package/{readlineWorkspace-OSPVWNAT.js → readlineWorkspace-BEQTOIU7.js} +31 -14
  35. package/{runAgentClientLoop-76SUKKPX.js → runAgentClientLoop-V4TNS6WA.js} +7 -7
  36. package/{spaceSlice-M4PVN5PO.js → spaceSlice-LKORHAMY.js} +2 -2
  37. package/{streamAgentChatTurn-GCKTFSHQ.js → streamAgentChatTurn-C26LGVZ7.js} +8 -8
  38. package/{tools-RJVFXOLR.js → tools-RM4ZJGGN.js} +5 -5
  39. package/{updateDialogTitleAction-PSR67DLV.js → updateDialogTitleAction-NXN45FGL.js} +2 -2
@@ -5,10 +5,10 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-L2RRMXNJ.js";
8
+ } from "./chunk-TXSSZAT3.js";
9
9
  import {
10
10
  performFetchRequest
11
- } from "./chunk-EXAEHRLI.js";
11
+ } from "./chunk-U4FIJOFW.js";
12
12
  import {
13
13
  createSSEParser,
14
14
  createToolRunId,
@@ -19,7 +19,7 @@ import {
19
19
  toolRunSetPending,
20
20
  toolRunStarted,
21
21
  toolRunSucceeded
22
- } from "./chunk-J67FKTTY.js";
22
+ } from "./chunk-TJ2QT3CA.js";
23
23
  import {
24
24
  getPublicImageAgentMode
25
25
  } from "./chunk-VIDPVFP3.js";
@@ -29,10 +29,10 @@ import {
29
29
  messageStreaming,
30
30
  selectCurrentSpaceId,
31
31
  updateToolMessage
32
- } from "./chunk-UIOYWBU7.js";
32
+ } from "./chunk-VSKCDWDT.js";
33
33
  import {
34
34
  streamAgentChatTurn
35
- } from "./chunk-5PGGCJGV.js";
35
+ } from "./chunk-KTVQYCNL.js";
36
36
  import {
37
37
  EMPTY_ASSISTANT_REPAIR_PROMPT
38
38
  } from "./chunk-VVKQFITN.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-UIOYWBU7.js";
3
+ } from "./chunk-VSKCDWDT.js";
4
4
  import "./chunk-XOIF2TNF.js";
5
5
  import "./chunk-B5TOXZAK.js";
6
6
  import "./chunk-MRC4Q34M.js";
7
- import "./chunk-5PGGCJGV.js";
7
+ import "./chunk-KTVQYCNL.js";
8
8
  import "./chunk-CWMSB67P.js";
9
9
  import "./chunk-XHG22OEX.js";
10
10
  import "./chunk-Z4NR32XR.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  createDialogAction,
3
3
  isLocalOwnerDialogAgents
4
- } from "./chunk-RIDWN7AP.js";
5
- import "./chunk-UIOYWBU7.js";
4
+ } from "./chunk-S3I45ULW.js";
5
+ import "./chunk-VSKCDWDT.js";
6
6
  import "./chunk-XOIF2TNF.js";
7
7
  import "./chunk-B5TOXZAK.js";
8
8
  import "./chunk-MRC4Q34M.js";
9
- import "./chunk-5PGGCJGV.js";
9
+ import "./chunk-KTVQYCNL.js";
10
10
  import "./chunk-CWMSB67P.js";
11
11
  import "./chunk-XHG22OEX.js";
12
12
  import "./chunk-Z4NR32XR.js";
@@ -15,11 +15,11 @@ import {
15
15
  addContentToSpace,
16
16
  client_default,
17
17
  selectCurrentSpaceId
18
- } from "./chunk-UIOYWBU7.js";
18
+ } from "./chunk-VSKCDWDT.js";
19
19
  import "./chunk-XOIF2TNF.js";
20
20
  import "./chunk-B5TOXZAK.js";
21
21
  import "./chunk-MRC4Q34M.js";
22
- import "./chunk-5PGGCJGV.js";
22
+ import "./chunk-KTVQYCNL.js";
23
23
  import "./chunk-CWMSB67P.js";
24
24
  import "./chunk-XHG22OEX.js";
25
25
  import "./chunk-Z4NR32XR.js";
@@ -230,21 +230,47 @@ var db_default = serverDb;
230
230
  function getServerAuthorityStore() {
231
231
  return authorityStore;
232
232
  }
233
- async function ensureServerDbOpen() {
233
+ var DEFAULT_SERVER_DB_OPEN_LOCK_TIMEOUT_MS = 9e4;
234
+ var DEFAULT_SERVER_DB_OPEN_LOCK_INTERVAL_MS = 1e3;
235
+ function resolveServerDbOpenLockTimeoutMs(env = process.env) {
236
+ const raw = env.NOLO_SERVER_DB_OPEN_LOCK_TIMEOUT_MS;
237
+ if (!raw) return DEFAULT_SERVER_DB_OPEN_LOCK_TIMEOUT_MS;
238
+ const parsed = Number(raw);
239
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_SERVER_DB_OPEN_LOCK_TIMEOUT_MS;
240
+ }
241
+ function defaultSleep(ms) {
242
+ return new Promise((resolve) => setTimeout(resolve, ms));
243
+ }
244
+ async function ensureServerDbOpen(options) {
234
245
  const status = authorityStore.status;
235
246
  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);
247
+ const timeoutMs = options?.timeoutMs ?? resolveServerDbOpenLockTimeoutMs();
248
+ const intervalMs = options?.intervalMs ?? DEFAULT_SERVER_DB_OPEN_LOCK_INTERVAL_MS;
249
+ const sleep = options?.sleep ?? defaultSleep;
250
+ const now = options?.now ?? Date.now;
251
+ const deadline = now() + timeoutMs;
252
+ for (let attempt = 1; ; attempt += 1) {
253
+ try {
254
+ await ensureDbOpen(authorityStore);
255
+ if (status !== "opening") {
256
+ console.log("\u2705 LevelDB \u5DF2\u6253\u5F00");
257
+ }
258
+ return;
259
+ } catch (err) {
260
+ if (!isServerDbLockError(err)) {
261
+ console.error("\u274C \u6253\u5F00 LevelDB \u5931\u8D25:", err);
262
+ throw err;
263
+ }
264
+ const remainingMs = deadline - now();
265
+ if (remainingMs <= 0) {
266
+ console.error("\u274C \u6253\u5F00 LevelDB \u5931\u8D25: \u6570\u636E\u5E93\u5DF2\u88AB\u5176\u4ED6\u8FDB\u7A0B\u5360\u7528");
267
+ throw err;
268
+ }
269
+ console.warn(
270
+ `\u26A0\uFE0F LevelDB \u88AB\u5176\u4ED6\u8FDB\u7A0B\u5360\u7528\uFF08\u7B2C ${attempt} \u6B21\u5C1D\u8BD5\uFF0C\u8DDD\u8D85\u65F6\u7EA6 ${Math.max(1, Math.ceil(remainingMs / 1e3))}s\uFF09\uFF0C${intervalMs}ms \u540E\u91CD\u8BD5`
271
+ );
272
+ await sleep(intervalMs);
246
273
  }
247
- throw err;
248
274
  }
249
275
  }
250
276
  async function openServerDb() {
@@ -8,7 +8,7 @@ import {
8
8
  runDialogReadCommand,
9
9
  runDialogStatusCommand,
10
10
  sortDialogs
11
- } from "./chunk-HQNPCMWL.js";
11
+ } from "./chunk-T25IBGAU.js";
12
12
  import "./chunk-ID4G2MAR.js";
13
13
  import "./chunk-VST53WEL.js";
14
14
  import "./chunk-IQZ6TGVW.js";
@@ -19,11 +19,11 @@ import {
19
19
  setPrimaryDialogAgent,
20
20
  updateDialogTitle,
21
21
  updateTokens
22
- } from "./chunk-UIOYWBU7.js";
22
+ } from "./chunk-VSKCDWDT.js";
23
23
  import "./chunk-XOIF2TNF.js";
24
24
  import "./chunk-B5TOXZAK.js";
25
25
  import "./chunk-MRC4Q34M.js";
26
- import "./chunk-5PGGCJGV.js";
26
+ import "./chunk-KTVQYCNL.js";
27
27
  import "./chunk-CWMSB67P.js";
28
28
  import "./chunk-XHG22OEX.js";
29
29
  import "./chunk-Z4NR32XR.js";
@@ -24,12 +24,12 @@ import {
24
24
  updateTitleDoc,
25
25
  useDocField,
26
26
  useDocState
27
- } from "./chunk-N2HYIBLH.js";
28
- import "./chunk-UIOYWBU7.js";
27
+ } from "./chunk-ADBZ6EHB.js";
28
+ import "./chunk-VSKCDWDT.js";
29
29
  import "./chunk-XOIF2TNF.js";
30
30
  import "./chunk-B5TOXZAK.js";
31
31
  import "./chunk-MRC4Q34M.js";
32
- import "./chunk-5PGGCJGV.js";
32
+ import "./chunk-KTVQYCNL.js";
33
33
  import "./chunk-CWMSB67P.js";
34
34
  import "./chunk-XHG22OEX.js";
35
35
  import "./chunk-Z4NR32XR.js";
@@ -2,13 +2,13 @@ import {
2
2
  messageStreamEnd,
3
3
  prepareAndPersistUserMessage,
4
4
  resolveHandleSendMessageContext
5
- } from "./chunk-UIOYWBU7.js";
5
+ } from "./chunk-VSKCDWDT.js";
6
6
  import "./chunk-XOIF2TNF.js";
7
7
  import "./chunk-B5TOXZAK.js";
8
8
  import "./chunk-MRC4Q34M.js";
9
9
  import {
10
10
  streamAgentChatTurn
11
- } from "./chunk-5PGGCJGV.js";
11
+ } from "./chunk-KTVQYCNL.js";
12
12
  import "./chunk-CWMSB67P.js";
13
13
  import "./chunk-XHG22OEX.js";
14
14
  import "./chunk-Z4NR32XR.js";
package/index.js CHANGED
@@ -126,7 +126,7 @@ function createDaemonShortcutCommand(path, description, command2) {
126
126
  // packages/cli/agentInternalCommandEntries.ts
127
127
  function getAgentInternalCommandEntries() {
128
128
  const createAgentRunCommand = (path, description) => createContextCommand(path, description, async (args2, ctx) => {
129
- const { runAgentRunCommand } = await import("./agentRunCommand-E3ZI6RSF.js");
129
+ const { runAgentRunCommand } = await import("./agentRunCommand-NMFBM2GG.js");
130
130
  return runAgentRunCommand(args2, {
131
131
  env: ctx.env,
132
132
  scriptDir: ctx.scriptDir,
@@ -142,7 +142,7 @@ function getAgentInternalCommandEntries() {
142
142
  return runAgentListCommand(args2, deps);
143
143
  }),
144
144
  createEnvCommand(["agent", "create"], "Create a new agent", async (args2, deps) => {
145
- const { runAgentCreateCommand } = await import("./agentRecordCommands-BVWSHMIY.js");
145
+ const { runAgentCreateCommand } = await import("./agentRecordCommands-OVA55AXA.js");
146
146
  return runAgentCreateCommand(args2, deps);
147
147
  }),
148
148
  createEnvCommand(["agent", "pull"], "Cache an agent for local runs", async (args2, deps) => {
@@ -150,7 +150,7 @@ function getAgentInternalCommandEntries() {
150
150
  return runAgentPullCommand(args2, deps);
151
151
  }),
152
152
  createEnvCommand(["agent", "read"], "Read a single agent", async (args2, deps) => {
153
- const { runAgentReadCommand } = await import("./agentRecordCommands-BVWSHMIY.js");
153
+ const { runAgentReadCommand } = await import("./agentRecordCommands-OVA55AXA.js");
154
154
  return runAgentReadCommand(args2, deps);
155
155
  }),
156
156
  createAgentRunCommand(["agent", "run"], "Run an agent"),
@@ -179,26 +179,26 @@ function getAgentInternalCommandEntries() {
179
179
  return runSetupOfflineMarxistsAgentCommand(args2, deps);
180
180
  }),
181
181
  createEnvCommand(["agent", "update"], "Update agent fields", async (args2, deps) => {
182
- const { runAgentUpdateCommand } = await import("./agentRecordCommands-BVWSHMIY.js");
182
+ const { runAgentUpdateCommand } = await import("./agentRecordCommands-OVA55AXA.js");
183
183
  return runAgentUpdateCommand(args2, deps);
184
184
  }),
185
185
  createEnvCommand(["agent", "email", "provision"], "Provision a controlled inbox for an agent", async (args2, deps) => {
186
- const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-MPEUMRAS.js");
186
+ const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-XSXSLPCX.js");
187
187
  return runAgentEmailProvisionCommand(args2, deps);
188
188
  }),
189
189
  createEnvCommand(["agent", "email", "bind"], "Bind an existing email address to an agent", async (args2, deps) => {
190
- const { runAgentEmailBindCommand } = await import("./agentEmailCommands-MPEUMRAS.js");
190
+ const { runAgentEmailBindCommand } = await import("./agentEmailCommands-XSXSLPCX.js");
191
191
  return runAgentEmailBindCommand(args2, deps);
192
192
  }),
193
193
  createEnvCommand(["agent", "email", "transfer"], "Transfer an email identity from one agent to another (cross-account)", async (args2, deps) => {
194
- const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-MPEUMRAS.js");
194
+ const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-XSXSLPCX.js");
195
195
  return runAgentEmailTransferCommand(args2, deps);
196
196
  }),
197
197
  createEnvCommand(
198
198
  ["agent", "email", "create-and-provision"],
199
199
  "Create an agent and provision its controlled inbox",
200
200
  async (args2, deps) => {
201
- const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-MPEUMRAS.js");
201
+ const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-XSXSLPCX.js");
202
202
  return runAgentEmailCreateAndProvisionCommand(args2, deps);
203
203
  }
204
204
  ),
@@ -219,15 +219,15 @@ function getAgentInternalCommandEntries() {
219
219
  return runAgentRevokeGrantCommand(args2, deps);
220
220
  }),
221
221
  createEnvCommand(["agent", "bind-current"], "Bind an agent to this machine", async (args2, deps) => {
222
- const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-WYM6YRYJ.js");
222
+ const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-PT36QT26.js");
223
223
  return runAgentBindCurrentCommand(args2, deps);
224
224
  }),
225
225
  createEnvCommand(["agent", "smoke-current"], "Smoke test a bound agent through this machine", async (args2, deps) => {
226
- const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-WYM6YRYJ.js");
226
+ const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-PT36QT26.js");
227
227
  return runAgentSmokeCurrentCommand(args2, deps);
228
228
  }),
229
229
  createEnvCommand(["agent", "runtime-doctor"], "Diagnose current machine runtime compatibility", async (args2, deps) => {
230
- const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-WYM6YRYJ.js");
230
+ const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-PT36QT26.js");
231
231
  return runAgentRuntimeDoctorCommand(args2, deps);
232
232
  }),
233
233
  createAgentRunCommand(["agent", "chat"], "Chat with an agent")
@@ -264,23 +264,23 @@ function getAppInternalCommandEntries() {
264
264
  function getDialogInternalCommandEntries() {
265
265
  return [
266
266
  createEnvCommand(["dialog", "list"], "List dialogs (default --limit 50; --all/--limit 0 full; --jsonl streams)", async (args2, deps) => {
267
- const { runDialogListCommand } = await import("./dialogCommands-YZFU4Q26.js");
267
+ const { runDialogListCommand } = await import("./dialogCommands-NX3OPPVH.js");
268
268
  return runDialogListCommand(args2, deps);
269
269
  }),
270
270
  createEnvCommand(["dialog", "delete"], "Delete one or more dialogs", async (args2, deps) => {
271
- const { runDialogDeleteCommand } = await import("./dialogCommands-YZFU4Q26.js");
271
+ const { runDialogDeleteCommand } = await import("./dialogCommands-NX3OPPVH.js");
272
272
  return runDialogDeleteCommand(args2, deps);
273
273
  }),
274
274
  createEnvCommand(["dialog", "query"], "Query dialogs by subject refs (default --limit 50; --all full; --jsonl streams)", async (args2, deps) => {
275
- const { runDialogQueryCommand } = await import("./dialogCommands-YZFU4Q26.js");
275
+ const { runDialogQueryCommand } = await import("./dialogCommands-NX3OPPVH.js");
276
276
  return runDialogQueryCommand(args2, deps);
277
277
  }),
278
278
  createEnvCommand(["dialog", "read"], "Read a dialog", async (args2, deps) => {
279
- const { runDialogReadCommand } = await import("./dialogCommands-YZFU4Q26.js");
279
+ const { runDialogReadCommand } = await import("./dialogCommands-NX3OPPVH.js");
280
280
  return runDialogReadCommand(args2, deps);
281
281
  }),
282
282
  createEnvCommand(["dialog", "status"], "Read compact dialog status", async (args2, deps) => {
283
- const { runDialogStatusCommand } = await import("./dialogCommands-YZFU4Q26.js");
283
+ const { runDialogStatusCommand } = await import("./dialogCommands-NX3OPPVH.js");
284
284
  return runDialogStatusCommand(args2, deps);
285
285
  })
286
286
  ];
@@ -408,15 +408,15 @@ function getSystemInternalCommandEntries(renderHelpText2) {
408
408
  return runWhoamiCommand({ args: args2, env: ctx.env });
409
409
  }),
410
410
  createEntrypointEnvCommand(["connect"], "Send machine heartbeats or hold a connector websocket", async (args2, deps) => {
411
- const { runMachineConnectCommand } = await import("./machineCommands-YLDZXK4D.js");
411
+ const { runMachineConnectCommand } = await import("./machineCommands-YNHOEIST.js");
412
412
  return runMachineConnectCommand(args2, deps);
413
413
  }),
414
414
  createDaemonShortcutCommand(["daemon"], "Run the connector daemon shortcut", async (args2, deps) => {
415
- const { runMachineConnectCommand } = await import("./machineCommands-YLDZXK4D.js");
415
+ const { runMachineConnectCommand } = await import("./machineCommands-YNHOEIST.js");
416
416
  return runMachineConnectCommand(args2, deps);
417
417
  }),
418
418
  createEnvCommand(["machine", "status"], "List machines registered to the current profile", async (args2, deps) => {
419
- const { runMachineStatusCommand } = await import("./machineCommands-YLDZXK4D.js");
419
+ const { runMachineStatusCommand } = await import("./machineCommands-YNHOEIST.js");
420
420
  return runMachineStatusCommand(args2, deps);
421
421
  }),
422
422
  createEnvCommand(["doctor", "runtime"], "Diagnose local-first agent runtime selection", async (args2, deps) => {
@@ -796,7 +796,7 @@ async function runScript(script, forwardedArgs, env) {
796
796
  return proc.exited;
797
797
  }
798
798
  async function launchTuiWorkspace(args2) {
799
- const { startTuiWorkspace } = await import("./readlineWorkspace-OSPVWNAT.js");
799
+ const { startTuiWorkspace } = await import("./readlineWorkspace-BEQTOIU7.js");
800
800
  const { createTuiSummaryLlmCaller } = await import("./tuiSummaryLlmCaller-VUNVBRX3.js");
801
801
  return startTuiWorkspace({
802
802
  ...args2,
@@ -9,7 +9,7 @@ async function readDialogFromLocalDb(args) {
9
9
  if (args.db) {
10
10
  serverDb = args.db;
11
11
  } else {
12
- const dbModule = await import("./db-HCJ5PRB5.js");
12
+ const dbModule = await import("./db-W3O47YGF.js");
13
13
  serverDb = dbModule.default;
14
14
  await dbModule.ensureServerDbOpen();
15
15
  }
@@ -7,8 +7,8 @@ import {
7
7
  buildMachinePermissionPromptBlock,
8
8
  handleConnectorRunMessage,
9
9
  resolveMachineRunPermissionPolicy
10
- } from "./chunk-GMZZ5EKJ.js";
11
- import "./chunk-RUTSBLDM.js";
10
+ } from "./chunk-ICE32NXZ.js";
11
+ import "./chunk-B7B7VU3F.js";
12
12
  import "./chunk-UB4RYYNQ.js";
13
13
  import "./chunk-BE2GNT5E.js";
14
14
  import "./chunk-VHBWHNVT.js";
@@ -16,9 +16,9 @@ import "./chunk-MVQ4TBSD.js";
16
16
  import {
17
17
  detectMachineInfo
18
18
  } from "./chunk-6HYVJV7B.js";
19
- import "./chunk-L2RRMXNJ.js";
19
+ import "./chunk-TXSSZAT3.js";
20
20
  import "./chunk-L6NVTGI7.js";
21
- import "./chunk-J67FKTTY.js";
21
+ import "./chunk-TJ2QT3CA.js";
22
22
  import {
23
23
  CORE_DRAIN_REASON
24
24
  } from "./chunk-RQSOAMPJ.js";
@@ -27,19 +27,19 @@ import "./chunk-KQHGZWSV.js";
27
27
  import "./chunk-4T5F7YZQ.js";
28
28
  import "./chunk-3LY4F7SV.js";
29
29
  import "./chunk-VF4K2QE6.js";
30
- import "./chunk-N2HYIBLH.js";
30
+ import "./chunk-ADBZ6EHB.js";
31
31
  import "./chunk-OWOHNGCN.js";
32
32
  import "./chunk-JLA4FXYC.js";
33
33
  import "./chunk-VP4WJWKW.js";
34
34
  import "./chunk-63W5N6P3.js";
35
35
  import "./chunk-WJRJDX2W.js";
36
36
  import "./chunk-LM6IYQ3F.js";
37
- import "./chunk-RIDWN7AP.js";
38
- import "./chunk-UIOYWBU7.js";
37
+ import "./chunk-S3I45ULW.js";
38
+ import "./chunk-VSKCDWDT.js";
39
39
  import "./chunk-XOIF2TNF.js";
40
40
  import "./chunk-B5TOXZAK.js";
41
41
  import "./chunk-MRC4Q34M.js";
42
- import "./chunk-5PGGCJGV.js";
42
+ import "./chunk-KTVQYCNL.js";
43
43
  import "./chunk-CWMSB67P.js";
44
44
  import "./chunk-XHG22OEX.js";
45
45
  import "./chunk-Z4NR32XR.js";
@@ -11,34 +11,34 @@ import {
11
11
  runtimeWorkspacePermissionPolicy,
12
12
  scopePermissionPolicyToRuntimeWorkspace,
13
13
  summarizeAgentConfigForLogs
14
- } from "./chunk-GMZZ5EKJ.js";
15
- import "./chunk-RUTSBLDM.js";
14
+ } from "./chunk-ICE32NXZ.js";
15
+ import "./chunk-B7B7VU3F.js";
16
16
  import "./chunk-UB4RYYNQ.js";
17
17
  import "./chunk-BE2GNT5E.js";
18
18
  import "./chunk-VHBWHNVT.js";
19
19
  import "./chunk-MVQ4TBSD.js";
20
- import "./chunk-L2RRMXNJ.js";
20
+ import "./chunk-TXSSZAT3.js";
21
21
  import "./chunk-L6NVTGI7.js";
22
- import "./chunk-J67FKTTY.js";
22
+ import "./chunk-TJ2QT3CA.js";
23
23
  import "./chunk-RQSOAMPJ.js";
24
24
  import "./chunk-JP7REMYP.js";
25
25
  import "./chunk-KQHGZWSV.js";
26
26
  import "./chunk-4T5F7YZQ.js";
27
27
  import "./chunk-3LY4F7SV.js";
28
28
  import "./chunk-VF4K2QE6.js";
29
- import "./chunk-N2HYIBLH.js";
29
+ import "./chunk-ADBZ6EHB.js";
30
30
  import "./chunk-OWOHNGCN.js";
31
31
  import "./chunk-JLA4FXYC.js";
32
32
  import "./chunk-VP4WJWKW.js";
33
33
  import "./chunk-63W5N6P3.js";
34
34
  import "./chunk-WJRJDX2W.js";
35
35
  import "./chunk-LM6IYQ3F.js";
36
- import "./chunk-RIDWN7AP.js";
37
- import "./chunk-UIOYWBU7.js";
36
+ import "./chunk-S3I45ULW.js";
37
+ import "./chunk-VSKCDWDT.js";
38
38
  import "./chunk-XOIF2TNF.js";
39
39
  import "./chunk-B5TOXZAK.js";
40
40
  import "./chunk-MRC4Q34M.js";
41
- import "./chunk-5PGGCJGV.js";
41
+ import "./chunk-KTVQYCNL.js";
42
42
  import "./chunk-CWMSB67P.js";
43
43
  import "./chunk-XHG22OEX.js";
44
44
  import "./chunk-Z4NR32XR.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nolo-cli",
3
- "version": "0.16.0-alpha.21",
3
+ "version": "0.16.0-alpha.22",
4
4
  "type": "module",
5
5
  "description": "Agent-first terminal workspace for Nolo",
6
6
  "bin": {
@@ -3,7 +3,7 @@ import {
3
3
  normalizeDialogRecord,
4
4
  readDialogSnapshot,
5
5
  sortDialogs
6
- } from "./chunk-HQNPCMWL.js";
6
+ } from "./chunk-T25IBGAU.js";
7
7
  import {
8
8
  listFavoriteAgentIdsAcrossServers,
9
9
  listLocalCachedAgents,
@@ -28,6 +28,7 @@ import {
28
28
  applyDetectedBackground,
29
29
  applyTerminalOutputToText,
30
30
  buildSkillContextBlocks,
31
+ buildWindowTitle,
31
32
  classifyCliAutoRoute,
32
33
  clearCollapsedPasteStore,
33
34
  countPhysicalLines,
@@ -70,7 +71,7 @@ import {
70
71
  visibleWidth,
71
72
  wrapTextToLines,
72
73
  wrapTranscriptLine
73
- } from "./chunk-E5KQTMMJ.js";
74
+ } from "./chunk-H4I7UQN4.js";
74
75
  import "./chunk-DZ3XJVET.js";
75
76
  import {
76
77
  getReadableCliDb
@@ -88,7 +89,7 @@ import {
88
89
  readTimestamp,
89
90
  setCliLocale,
90
91
  t
91
- } from "./chunk-RUTSBLDM.js";
92
+ } from "./chunk-B7B7VU3F.js";
92
93
  import "./chunk-UB4RYYNQ.js";
93
94
  import "./chunk-BE2GNT5E.js";
94
95
  import {
@@ -100,18 +101,18 @@ import "./chunk-6HYVJV7B.js";
100
101
  import "./chunk-JEXVIMYZ.js";
101
102
  import {
102
103
  prepareTools
103
- } from "./chunk-L2RRMXNJ.js";
104
+ } from "./chunk-TXSSZAT3.js";
104
105
  import "./chunk-L6NVTGI7.js";
105
106
  import {
106
107
  expandEnabledPacks
107
- } from "./chunk-J67FKTTY.js";
108
+ } from "./chunk-TJ2QT3CA.js";
108
109
  import "./chunk-RQSOAMPJ.js";
109
110
  import "./chunk-JP7REMYP.js";
110
111
  import "./chunk-KQHGZWSV.js";
111
112
  import "./chunk-4T5F7YZQ.js";
112
113
  import "./chunk-3LY4F7SV.js";
113
114
  import "./chunk-VF4K2QE6.js";
114
- import "./chunk-N2HYIBLH.js";
115
+ import "./chunk-ADBZ6EHB.js";
115
116
  import {
116
117
  initialRunOverlayState,
117
118
  reduceRunOverlay
@@ -122,16 +123,16 @@ import "./chunk-VP4WJWKW.js";
122
123
  import "./chunk-63W5N6P3.js";
123
124
  import "./chunk-WJRJDX2W.js";
124
125
  import "./chunk-LM6IYQ3F.js";
125
- import "./chunk-RIDWN7AP.js";
126
+ import "./chunk-S3I45ULW.js";
126
127
  import {
127
128
  extractReferenceKeysFromMessage
128
- } from "./chunk-UIOYWBU7.js";
129
+ } from "./chunk-VSKCDWDT.js";
129
130
  import {
130
131
  buildBuiltinSummaryContent
131
132
  } from "./chunk-XOIF2TNF.js";
132
133
  import "./chunk-B5TOXZAK.js";
133
134
  import "./chunk-MRC4Q34M.js";
134
- import "./chunk-5PGGCJGV.js";
135
+ import "./chunk-KTVQYCNL.js";
135
136
  import "./chunk-CWMSB67P.js";
136
137
  import "./chunk-XHG22OEX.js";
137
138
  import "./chunk-Z4NR32XR.js";
@@ -5658,6 +5659,18 @@ async function startTuiWorkspace(options) {
5658
5659
  }
5659
5660
  const bannerColumns = output.columns;
5660
5661
  output.write(renderWelcome(state, 0, 0, bannerColumns));
5662
+ let lastSentTitle = null;
5663
+ const syncWindowTitle = () => {
5664
+ if (!output.isTTY) return;
5665
+ const env = options.env ?? process.env;
5666
+ const rawSetting = (env.NOLO_TUI_TITLE ?? "").trim().toLowerCase();
5667
+ if (rawSetting === "0" || rawSetting === "false") return;
5668
+ const currentTitle = state.dialogLabel?.trim() ?? "";
5669
+ if (currentTitle === lastSentTitle) return;
5670
+ lastSentTitle = currentTitle;
5671
+ output.write(buildWindowTitle(currentTitle));
5672
+ };
5673
+ syncWindowTitle();
5661
5674
  let fixedInput = createNoopFixedInput();
5662
5675
  let buffer = "";
5663
5676
  let cursorPos = 0;
@@ -6396,11 +6409,7 @@ ${err.message}` : ""}`
6396
6409
  let busy = false;
6397
6410
  let done = false;
6398
6411
  let resolveDone = null;
6399
- fixedInput = createFixedInput(output, {
6400
- getTitleLine: () => {
6401
- const title = state.dialogLabel?.trim();
6402
- return title ? themeText(`\u{1F4AC} ${title}`, "accent", resolveCliColorEnabled()) : null;
6403
- },
6412
+ const baseFixedInput = createFixedInput(output, {
6404
6413
  getStatusLine: () => {
6405
6414
  let base = renderStatusLine(state);
6406
6415
  if (chatQueueBinding && chatQueueBinding.queueLength() > 0) {
@@ -6430,6 +6439,13 @@ ${err.message}` : ""}`
6430
6439
  renderHistoryToOutput();
6431
6440
  }
6432
6441
  });
6442
+ fixedInput = {
6443
+ ...baseFixedInput,
6444
+ repaint(draft, cursorPos2) {
6445
+ syncWindowTitle();
6446
+ return baseFixedInput.repaint(draft, cursorPos2);
6447
+ }
6448
+ };
6433
6449
  fixedInput.init();
6434
6450
  const paintFrame = (draft) => {
6435
6451
  renderHistoryToOutput();
@@ -6856,6 +6872,7 @@ export {
6856
6872
  applyScrollAction,
6857
6873
  applyTerminalOutputToText,
6858
6874
  buildTuiRunOverlay,
6875
+ buildWindowTitle,
6859
6876
  countPhysicalLines,
6860
6877
  createFixedInput,
6861
6878
  createHistoryOutputStream,
@@ -1,34 +1,34 @@
1
1
  import {
2
2
  fetchAgentContexts
3
- } from "./chunk-JFE7XW4D.js";
3
+ } from "./chunk-TMVLHNQE.js";
4
4
  import {
5
5
  generateRequestBody,
6
6
  mergeReferences,
7
7
  performFetchRequest
8
- } from "./chunk-EXAEHRLI.js";
8
+ } from "./chunk-U4FIJOFW.js";
9
9
  import "./chunk-L6NVTGI7.js";
10
10
  import {
11
11
  findToolExecutor,
12
12
  getToolResultErrorData
13
- } from "./chunk-J67FKTTY.js";
13
+ } from "./chunk-TJ2QT3CA.js";
14
14
  import "./chunk-RQSOAMPJ.js";
15
15
  import "./chunk-JP7REMYP.js";
16
16
  import "./chunk-KQHGZWSV.js";
17
17
  import "./chunk-4T5F7YZQ.js";
18
18
  import "./chunk-3LY4F7SV.js";
19
19
  import "./chunk-VF4K2QE6.js";
20
- import "./chunk-N2HYIBLH.js";
20
+ import "./chunk-ADBZ6EHB.js";
21
21
  import "./chunk-JLA4FXYC.js";
22
22
  import "./chunk-VP4WJWKW.js";
23
23
  import "./chunk-63W5N6P3.js";
24
- import "./chunk-RIDWN7AP.js";
24
+ import "./chunk-S3I45ULW.js";
25
25
  import {
26
26
  updateTokensAction
27
- } from "./chunk-UIOYWBU7.js";
27
+ } from "./chunk-VSKCDWDT.js";
28
28
  import "./chunk-XOIF2TNF.js";
29
29
  import "./chunk-B5TOXZAK.js";
30
30
  import "./chunk-MRC4Q34M.js";
31
- import "./chunk-5PGGCJGV.js";
31
+ import "./chunk-KTVQYCNL.js";
32
32
  import "./chunk-CWMSB67P.js";
33
33
  import "./chunk-XHG22OEX.js";
34
34
  import "./chunk-Z4NR32XR.js";
@@ -52,11 +52,11 @@ import {
52
52
  updateContentTitle,
53
53
  updateSpace,
54
54
  uploadAndAddFileToSpace
55
- } from "./chunk-UIOYWBU7.js";
55
+ } from "./chunk-VSKCDWDT.js";
56
56
  import "./chunk-XOIF2TNF.js";
57
57
  import "./chunk-B5TOXZAK.js";
58
58
  import "./chunk-MRC4Q34M.js";
59
- import "./chunk-5PGGCJGV.js";
59
+ import "./chunk-KTVQYCNL.js";
60
60
  import "./chunk-CWMSB67P.js";
61
61
  import "./chunk-XHG22OEX.js";
62
62
  import "./chunk-Z4NR32XR.js";