nolo-cli 0.191.0-alpha.1 → 0.191.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/{agentDeleteCommand-ADZNLZSO.js → agentDeleteCommand-TTCVC74A.js} +2 -2
  2. package/{agentEmailCommands-NGE5AV5C.js → agentEmailCommands-PTG35KER.js} +3 -3
  3. package/{agentListCommands-WYKQI4GX.js → agentListCommands-MAG736RU.js} +1 -1
  4. package/{agentMachineCommands-CQGT2YP2.js → agentMachineCommands-ATOZK3R5.js} +2 -2
  5. package/{agentRecordCommands-M4IFKR35.js → agentRecordCommands-KGRPIJN5.js} +3 -3
  6. package/{agentRunCommand-FQTQFUF7.js → agentRunCommand-75VVJTNU.js} +3 -3
  7. package/{agentRuntimeLocal-3H7ZXM5X.js → agentRuntimeLocal-NAAYNHCW.js} +1 -1
  8. package/{appDeleteCommands-AUDFCIFP.js → appDeleteCommands-VDHCDVBF.js} +1 -1
  9. package/{appDeployCommands-ZMVIKSPY.js → appDeployCommands-V6UTKVXR.js} +1 -1
  10. package/{appDeployStatusCommands-LQNUHHGW.js → appDeployStatusCommands-4UIFSEPC.js} +1 -1
  11. package/{appGetCommands-WVCAHY4P.js → appGetCommands-XKDXLC3C.js} +1 -1
  12. package/{appListCommands-4HHNJQUI.js → appListCommands-BELRVX2Y.js} +1 -1
  13. package/{chunk-HAGQR66F.js → chunk-2XUOREKD.js} +1 -1
  14. package/{chunk-W622GBH3.js → chunk-ADTJJVDJ.js} +208 -41
  15. package/{chunk-EEXYC45V.js → chunk-UZHYRBUB.js} +3 -3
  16. package/{chunk-YCQ5WURS.js → chunk-VE3FEZIT.js} +2 -2
  17. package/{chunk-SKFMP4PX.js → chunk-XPL63OIC.js} +1 -1
  18. package/{commandRegistry-O2RBWYPW.js → commandRegistry-4JHVRMW7.js} +40 -40
  19. package/{dialogCommands-VCQO2OFM.js → dialogCommands-4BGV6DPD.js} +1 -1
  20. package/{docCreateCommands-7FAETK4S.js → docCreateCommands-3CW75UF2.js} +1 -1
  21. package/{docDeleteCommands-IVA4T2VS.js → docDeleteCommands-NL4ZYMN5.js} +1 -1
  22. package/{docReadCommands-F63GIAYX.js → docReadCommands-HXCNVDPQ.js} +1 -1
  23. package/{docUpdateCommands-QEC4Y2HQ.js → docUpdateCommands-RMVBAMDE.js} +1 -1
  24. package/index.js +3 -3
  25. package/{localRuntimeAdapter-4ROHWWBE.js → localRuntimeAdapter-HRAB7P5E.js} +2 -2
  26. package/{machineCommands-YRYIFT7E.js → machineCommands-OTXFRTDA.js} +3 -3
  27. package/{machineWsRunDispatch-2P52PRIL.js → machineWsRunDispatch-KWVWOHHG.js} +3 -3
  28. package/package.json +1 -1
  29. package/{readlineWorkspace-LNFLMKKG.js → readlineWorkspace-CEX5TXGM.js} +3 -3
  30. package/{spaceCommands-6IH5EH6B.js → spaceCommands-ZUI4CTSO.js} +1 -1
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-GYVLAHA4.js";
11
11
  import {
12
12
  clearCliLocalRuntimePreparedAgentCache
13
- } from "./chunk-SKFMP4PX.js";
13
+ } from "./chunk-XPL63OIC.js";
14
14
  import "./chunk-DYQXB46J.js";
15
15
  import "./chunk-VP3BINY7.js";
16
16
  import "./chunk-R4BMKAR5.js";
@@ -102,7 +102,7 @@ import "./chunk-EUGTFFO6.js";
102
102
  import "./chunk-AETZ7AD6.js";
103
103
  import "./chunk-Y6ORVLSS.js";
104
104
  import "./chunk-KHCLMKZZ.js";
105
- import "./chunk-W622GBH3.js";
105
+ import "./chunk-ADTJJVDJ.js";
106
106
  import "./chunk-ZNFJWEN4.js";
107
107
  import "./chunk-IIX6VWLW.js";
108
108
  import "./chunk-NVOYW6H4.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-4CEAZRZ4.js";
5
5
  import {
6
6
  runAgentCreateCommand
7
- } from "./chunk-HAGQR66F.js";
7
+ } from "./chunk-2XUOREKD.js";
8
8
  import "./chunk-YGILMZ7N.js";
9
9
  import {
10
10
  positionalArgs,
@@ -17,7 +17,7 @@ import {
17
17
  fetchWithTransportFallback,
18
18
  resolveAgentRecordFromHybridStore
19
19
  } from "./chunk-GYVLAHA4.js";
20
- import "./chunk-SKFMP4PX.js";
20
+ import "./chunk-XPL63OIC.js";
21
21
  import "./chunk-DYQXB46J.js";
22
22
  import "./chunk-VP3BINY7.js";
23
23
  import "./chunk-R4BMKAR5.js";
@@ -97,7 +97,7 @@ import "./chunk-EUGTFFO6.js";
97
97
  import "./chunk-AETZ7AD6.js";
98
98
  import "./chunk-Y6ORVLSS.js";
99
99
  import "./chunk-KHCLMKZZ.js";
100
- import "./chunk-W622GBH3.js";
100
+ import "./chunk-ADTJJVDJ.js";
101
101
  import "./chunk-ZNFJWEN4.js";
102
102
  import "./chunk-IIX6VWLW.js";
103
103
  import "./chunk-NVOYW6H4.js";
@@ -50,7 +50,7 @@ import {
50
50
  } from "./chunk-GLKOYSRU.js";
51
51
  import "./chunk-UEILX4EV.js";
52
52
  import "./chunk-D2MDMY2M.js";
53
- import "./chunk-W622GBH3.js";
53
+ import "./chunk-ADTJJVDJ.js";
54
54
  import "./chunk-ZNFJWEN4.js";
55
55
  import "./chunk-IIX6VWLW.js";
56
56
  import "./chunk-NVOYW6H4.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-NBTY7YJF.js";
17
17
  import "./chunk-NF64D32W.js";
18
18
  import "./chunk-3L2WKC3W.js";
19
- import "./chunk-W622GBH3.js";
19
+ import "./chunk-ADTJJVDJ.js";
20
20
  import "./chunk-ZNFJWEN4.js";
21
21
  import "./chunk-IIX6VWLW.js";
22
22
  import "./chunk-NVOYW6H4.js";
@@ -98,7 +98,7 @@ async function defaultExecuteCli(provider, prompt, options) {
98
98
  return executeCli(provider, prompt, options);
99
99
  }
100
100
  async function forwardConnectorRunMessage(machine, message, pushMessage, executeCli, env, fetchImpl) {
101
- const { handleConnectorRunMessage } = await import("./machineWsRunDispatch-2P52PRIL.js");
101
+ const { handleConnectorRunMessage } = await import("./machineWsRunDispatch-KWVWOHHG.js");
102
102
  return handleConnectorRunMessage(message, pushMessage, executeCli, env, fetchImpl);
103
103
  }
104
104
  async function detectLaunchableMachineInfo() {
@@ -2,11 +2,11 @@ import {
2
2
  runAgentCreateCommand,
3
3
  runAgentReadCommand,
4
4
  runAgentUpdateCommand
5
- } from "./chunk-HAGQR66F.js";
5
+ } from "./chunk-2XUOREKD.js";
6
6
  import "./chunk-YGILMZ7N.js";
7
7
  import "./chunk-7DQSP7JU.js";
8
8
  import "./chunk-GYVLAHA4.js";
9
- import "./chunk-SKFMP4PX.js";
9
+ import "./chunk-XPL63OIC.js";
10
10
  import "./chunk-DYQXB46J.js";
11
11
  import "./chunk-VP3BINY7.js";
12
12
  import "./chunk-R4BMKAR5.js";
@@ -84,7 +84,7 @@ import "./chunk-EUGTFFO6.js";
84
84
  import "./chunk-AETZ7AD6.js";
85
85
  import "./chunk-Y6ORVLSS.js";
86
86
  import "./chunk-KHCLMKZZ.js";
87
- import "./chunk-W622GBH3.js";
87
+ import "./chunk-ADTJJVDJ.js";
88
88
  import "./chunk-ZNFJWEN4.js";
89
89
  import "./chunk-IIX6VWLW.js";
90
90
  import "./chunk-NVOYW6H4.js";
@@ -9,7 +9,7 @@ import {
9
9
  resolveRunSettlementNote,
10
10
  resolveWorkflowReference,
11
11
  runAgentRunCommand
12
- } from "./chunk-EEXYC45V.js";
12
+ } from "./chunk-UZHYRBUB.js";
13
13
  import "./chunk-6QDYSCPW.js";
14
14
  import {
15
15
  parseAgentRunArgs
@@ -17,7 +17,7 @@ import {
17
17
  import "./chunk-Y5GCAMGP.js";
18
18
  import "./chunk-7DQSP7JU.js";
19
19
  import "./chunk-GYVLAHA4.js";
20
- import "./chunk-SKFMP4PX.js";
20
+ import "./chunk-XPL63OIC.js";
21
21
  import "./chunk-DYQXB46J.js";
22
22
  import "./chunk-VP3BINY7.js";
23
23
  import "./chunk-R4BMKAR5.js";
@@ -101,7 +101,7 @@ import "./chunk-EUGTFFO6.js";
101
101
  import "./chunk-AETZ7AD6.js";
102
102
  import "./chunk-Y6ORVLSS.js";
103
103
  import "./chunk-KHCLMKZZ.js";
104
- import "./chunk-W622GBH3.js";
104
+ import "./chunk-ADTJJVDJ.js";
105
105
  import "./chunk-ZNFJWEN4.js";
106
106
  import "./chunk-IIX6VWLW.js";
107
107
  import "./chunk-NVOYW6H4.js";
@@ -22,7 +22,7 @@ import {
22
22
  runExecShellGates,
23
23
  runLocalAgentTurn,
24
24
  shouldCacheHybridRemoteRecord
25
- } from "./chunk-W622GBH3.js";
25
+ } from "./chunk-ADTJJVDJ.js";
26
26
  import "./chunk-ZNFJWEN4.js";
27
27
  import "./chunk-IIX6VWLW.js";
28
28
  import {
@@ -15,7 +15,7 @@ import "./chunk-RJ3EYB5G.js";
15
15
  import "./chunk-NBTY7YJF.js";
16
16
  import "./chunk-VF4K2QE6.js";
17
17
  import "./chunk-UAD2WT54.js";
18
- import "./chunk-W622GBH3.js";
18
+ import "./chunk-ADTJJVDJ.js";
19
19
  import "./chunk-ZNFJWEN4.js";
20
20
  import "./chunk-IIX6VWLW.js";
21
21
  import "./chunk-NVOYW6H4.js";
@@ -16,7 +16,7 @@ import "./chunk-RJ3EYB5G.js";
16
16
  import "./chunk-NBTY7YJF.js";
17
17
  import "./chunk-VF4K2QE6.js";
18
18
  import "./chunk-UAD2WT54.js";
19
- import "./chunk-W622GBH3.js";
19
+ import "./chunk-ADTJJVDJ.js";
20
20
  import "./chunk-ZNFJWEN4.js";
21
21
  import "./chunk-IIX6VWLW.js";
22
22
  import "./chunk-NVOYW6H4.js";
@@ -15,7 +15,7 @@ import "./chunk-RJ3EYB5G.js";
15
15
  import "./chunk-NBTY7YJF.js";
16
16
  import "./chunk-VF4K2QE6.js";
17
17
  import "./chunk-UAD2WT54.js";
18
- import "./chunk-W622GBH3.js";
18
+ import "./chunk-ADTJJVDJ.js";
19
19
  import "./chunk-ZNFJWEN4.js";
20
20
  import "./chunk-IIX6VWLW.js";
21
21
  import "./chunk-NVOYW6H4.js";
@@ -16,7 +16,7 @@ import "./chunk-RJ3EYB5G.js";
16
16
  import "./chunk-NBTY7YJF.js";
17
17
  import "./chunk-VF4K2QE6.js";
18
18
  import "./chunk-UAD2WT54.js";
19
- import "./chunk-W622GBH3.js";
19
+ import "./chunk-ADTJJVDJ.js";
20
20
  import "./chunk-ZNFJWEN4.js";
21
21
  import "./chunk-IIX6VWLW.js";
22
22
  import "./chunk-NVOYW6H4.js";
@@ -16,7 +16,7 @@ import "./chunk-RJ3EYB5G.js";
16
16
  import "./chunk-NBTY7YJF.js";
17
17
  import "./chunk-VF4K2QE6.js";
18
18
  import "./chunk-UAD2WT54.js";
19
- import "./chunk-W622GBH3.js";
19
+ import "./chunk-ADTJJVDJ.js";
20
20
  import "./chunk-ZNFJWEN4.js";
21
21
  import "./chunk-IIX6VWLW.js";
22
22
  import "./chunk-NVOYW6H4.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-GYVLAHA4.js";
17
17
  import {
18
18
  clearCliLocalRuntimePreparedAgentCache
19
- } from "./chunk-SKFMP4PX.js";
19
+ } from "./chunk-XPL63OIC.js";
20
20
  import {
21
21
  readCredentialAvailability
22
22
  } from "./chunk-R4BMKAR5.js";
@@ -12720,8 +12720,8 @@ function sanitizeToolCallPairing(messages) {
12720
12720
  }
12721
12721
 
12722
12722
  // packages/agent-runtime/toolSpillStore.ts
12723
- import { createHash } from "node:crypto";
12724
- import { existsSync, mkdirSync, readdirSync, renameSync, statSync, unlinkSync, utimesSync, writeFileSync } from "node:fs";
12723
+ import { createHash, randomUUID } from "node:crypto";
12724
+ import { constants, copyFileSync, createReadStream, existsSync, mkdirSync, readdirSync, renameSync, statSync, unlinkSync, utimesSync, writeFileSync } from "node:fs";
12725
12725
  import { isAbsolute, join as join2, relative } from "node:path";
12726
12726
  var DEFAULT_MAX_SPILL_DIR_BYTES = 50 * 1024 * 1024;
12727
12727
  var DEFAULT_SPILL_TTL_MS = 24 * 60 * 60 * 1e3;
@@ -12747,6 +12747,127 @@ function countLines(text2) {
12747
12747
  }
12748
12748
  return lines;
12749
12749
  }
12750
+ var SPILL_PUBLICATION_GRACE_MS = 6e4;
12751
+ async function hashFileStreaming(path) {
12752
+ const hash2 = createHash("sha256");
12753
+ await new Promise((resolve7, reject) => {
12754
+ const stream = createReadStream(path);
12755
+ stream.on("data", (chunk) => hash2.update(chunk));
12756
+ stream.on("error", reject);
12757
+ stream.on("end", () => resolve7());
12758
+ });
12759
+ return hash2.digest("hex");
12760
+ }
12761
+ async function promoteToolSpillFile(sourcePath, options) {
12762
+ const injected = options?.ops ?? {};
12763
+ const ops = {
12764
+ now: injected.now ?? (() => Date.now()),
12765
+ statSize: injected.statSize ?? ((path) => statSync(path).size),
12766
+ rename: injected.rename ?? ((from, to) => renameSync(from, to)),
12767
+ copyExclusive: injected.copyExclusive ?? ((from, to) => {
12768
+ copyFileSync(from, to, constants.COPYFILE_EXCL);
12769
+ }),
12770
+ unlink: injected.unlink ?? ((path) => unlinkSync(path)),
12771
+ exists: injected.exists ?? ((path) => existsSync(path)),
12772
+ mkdirp: injected.mkdirp ?? ((dir) => mkdirSync(dir, { recursive: true })),
12773
+ touch: injected.touch ?? ((path, atMs) => {
12774
+ const at = new Date(atMs);
12775
+ utimesSync(path, at, at);
12776
+ }),
12777
+ hashFile: injected.hashFile ?? hashFileStreaming,
12778
+ cleanup: injected.cleanup ?? ((dir) => cleanupExpiredSpills(dir, { throttleMs: 0 })),
12779
+ randomId: injected.randomId ?? (() => randomUUID())
12780
+ };
12781
+ const preservedIfPresent = () => {
12782
+ try {
12783
+ return ops.exists(sourcePath) ? sourcePath : void 0;
12784
+ } catch {
12785
+ return sourcePath;
12786
+ }
12787
+ };
12788
+ let size3 = 0;
12789
+ try {
12790
+ size3 = ops.statSize(sourcePath);
12791
+ } catch {
12792
+ const preservedPath = preservedIfPresent();
12793
+ return preservedPath ? { ok: false, reason: "unverified", preservedPath } : { ok: false, reason: "missing" };
12794
+ }
12795
+ if (size3 <= 0) return { ok: false, reason: "empty" };
12796
+ let expectedHash = "";
12797
+ try {
12798
+ expectedHash = await ops.hashFile(sourcePath);
12799
+ } catch {
12800
+ const preservedPath = preservedIfPresent();
12801
+ return preservedPath ? { ok: false, reason: "unverified", preservedPath } : { ok: false, reason: "missing" };
12802
+ }
12803
+ const workspaceRoot = options?.workspaceRoot;
12804
+ const candidateDirs = Array.from(
12805
+ new Set(
12806
+ [
12807
+ resolveSpillDirectory({ workspaceRoot }),
12808
+ resolveNoloStateDir("spills")
12809
+ ].filter(Boolean)
12810
+ )
12811
+ );
12812
+ for (const dir of candidateDirs) {
12813
+ const id = ops.randomId();
12814
+ const final = join2(dir, `spill-execshell-${id}.log`);
12815
+ const stage = join2(dir, `.spill-execshell-${id}.${ops.randomId()}.copying`);
12816
+ let stageOwnedByMove = false;
12817
+ let stageOwnedByCopy = false;
12818
+ try {
12819
+ ops.mkdirp(dir);
12820
+ try {
12821
+ ops.rename(sourcePath, stage);
12822
+ stageOwnedByMove = true;
12823
+ } catch (error) {
12824
+ if (error?.code !== "EXDEV") throw error;
12825
+ ops.copyExclusive(sourcePath, stage);
12826
+ stageOwnedByCopy = true;
12827
+ }
12828
+ const actualHash = await ops.hashFile(stage);
12829
+ if (actualHash !== expectedHash) throw new Error("spill verification failed");
12830
+ ops.touch(stage, ops.now());
12831
+ ops.rename(stage, final);
12832
+ if (ops.exists(sourcePath)) {
12833
+ try {
12834
+ ops.unlink(sourcePath);
12835
+ } catch {
12836
+ }
12837
+ }
12838
+ try {
12839
+ ops.cleanup(dir);
12840
+ } catch {
12841
+ }
12842
+ const displayPath = workspaceRoot && isAbsolute(workspaceRoot) && dir === candidateDirs[0] ? (() => {
12843
+ const rel = relative(workspaceRoot, final);
12844
+ return !rel.startsWith("..") && !isAbsolute(rel) ? rel : final;
12845
+ })() : final;
12846
+ return { ok: true, spillPath: final, displayPath };
12847
+ } catch {
12848
+ if (stageOwnedByCopy) {
12849
+ try {
12850
+ ops.unlink(stage);
12851
+ } catch {
12852
+ }
12853
+ continue;
12854
+ }
12855
+ if (stageOwnedByMove) {
12856
+ try {
12857
+ ops.rename(stage, sourcePath);
12858
+ continue;
12859
+ } catch {
12860
+ return { ok: false, reason: "publish-failed", preservedPath: stage };
12861
+ }
12862
+ }
12863
+ }
12864
+ }
12865
+ return {
12866
+ ok: false,
12867
+ reason: "publish-failed",
12868
+ preservedPath: preservedIfPresent()
12869
+ };
12870
+ }
12750
12871
  function cleanupExpiredSpills(spillDir, options) {
12751
12872
  if (!existsSync(spillDir)) return;
12752
12873
  const throttleMs = options?.throttleMs ?? 0;
@@ -12773,14 +12894,16 @@ function cleanupExpiredSpills(spillDir, options) {
12773
12894
  const fullPath = join2(spillDir, entry.name);
12774
12895
  try {
12775
12896
  const stats = statSync(fullPath);
12776
- if (now - stats.mtimeMs > maxAge || isOrphanTmp) {
12897
+ const protectedByPublication = isSpillLog && entry.name.startsWith("spill-execshell-") && now - stats.mtimeMs < SPILL_PUBLICATION_GRACE_MS;
12898
+ if (!protectedByPublication && (now - stats.mtimeMs > maxAge || isOrphanTmp)) {
12777
12899
  unlinkSync(fullPath);
12778
12900
  } else {
12779
12901
  spillFiles.push({
12780
12902
  name: entry.name,
12781
12903
  fullPath,
12782
12904
  mtimeMs: stats.mtimeMs,
12783
- size: stats.size
12905
+ size: stats.size,
12906
+ protectedByPublication
12784
12907
  });
12785
12908
  }
12786
12909
  } catch {
@@ -12791,6 +12914,7 @@ function cleanupExpiredSpills(spillDir, options) {
12791
12914
  spillFiles.sort((a, b) => a.mtimeMs - b.mtimeMs);
12792
12915
  for (const file of spillFiles) {
12793
12916
  if (totalSize <= maxBytes) break;
12917
+ if (file.protectedByPublication) continue;
12794
12918
  try {
12795
12919
  unlinkSync(file.fullPath);
12796
12920
  totalSize -= file.size;
@@ -14311,10 +14435,10 @@ function detectExecShellSynchronousWarnings(command, shell) {
14311
14435
  }
14312
14436
 
14313
14437
  // packages/agent-runtime/workspaceShell.ts
14314
- import { createWriteStream, mkdirSync as mkdirSync2 } from "node:fs";
14438
+ import { createWriteStream, mkdirSync as mkdirSync2, rmSync } from "node:fs";
14315
14439
  import { dirname, join as join4, resolve } from "node:path";
14316
14440
  import { spawn as spawnChildProcess } from "node:child_process";
14317
- import { randomUUID } from "node:crypto";
14441
+ import { randomUUID as randomUUID2 } from "node:crypto";
14318
14442
  import { tmpdir } from "node:os";
14319
14443
 
14320
14444
  // packages/agent-runtime/runtimeCompat.ts
@@ -15251,11 +15375,18 @@ function truncateToolOutput(value, limit = 2e4, options) {
15251
15375
  ${tail}`;
15252
15376
  }
15253
15377
  var DEFAULT_MAX_STREAM_BUFFER_BYTES = 5 * 1024 * 1024;
15378
+ function removeSpillFile(path) {
15379
+ try {
15380
+ rmSync(path, { force: true });
15381
+ } catch {
15382
+ }
15383
+ }
15254
15384
  function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BYTES) {
15255
15385
  if (!stream) return Promise.resolve("");
15256
15386
  const options = typeof maxBytesOrOptions === "number" ? { maxBytes: maxBytesOrOptions } : maxBytesOrOptions ?? {};
15257
15387
  const maxBytes = typeof options.maxBytes === "number" && Number.isFinite(options.maxBytes) && options.maxBytes >= 0 ? options.maxBytes : DEFAULT_MAX_STREAM_BUFFER_BYTES;
15258
15388
  const spillPath = asOptionalTrimmedString(options.spillPath);
15389
+ const spillRetention = options.spillRetention ?? "keep";
15259
15390
  const createSink = options.spillSinkFactory ?? ((path) => createWriteStream(path));
15260
15391
  return new Promise((resolveStream, rejectStream) => {
15261
15392
  const chunks2 = [];
@@ -15264,6 +15395,8 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
15264
15395
  let truncated = false;
15265
15396
  let spillState = spillPath ? "idle" : "disabled";
15266
15397
  let spillError = null;
15398
+ let spillRetainedPath = null;
15399
+ let sourceEnded = false;
15267
15400
  let spillSink = null;
15268
15401
  let sourcePausedForSpill = false;
15269
15402
  let sinkFinished = false;
@@ -15344,20 +15477,42 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
15344
15477
  for (const head3 of headChunks) writeToSink(head3);
15345
15478
  writeToSink(crossingChunk);
15346
15479
  };
15480
+ const settleSpillRetention = async () => {
15481
+ if (!spillPath || spillRetention === "keep") {
15482
+ if (spillPath && spillRetention === "keep" && spillState === "ok") {
15483
+ spillRetainedPath = spillPath;
15484
+ }
15485
+ return;
15486
+ }
15487
+ if (spillRetention === "promote" && spillState === "ok" && sourceEnded) {
15488
+ const promoted = await promoteToolSpillFile(spillPath, {
15489
+ workspaceRoot: options.spillWorkspaceRoot
15490
+ });
15491
+ if (promoted.ok) {
15492
+ spillRetainedPath = promoted.displayPath;
15493
+ return;
15494
+ }
15495
+ if (promoted.preservedPath) {
15496
+ return;
15497
+ }
15498
+ }
15499
+ removeSpillFile(spillPath);
15500
+ };
15347
15501
  const finalize2 = (wasTruncated) => {
15348
15502
  if (settled) return;
15349
15503
  settled = true;
15350
15504
  const truncatedNow = wasTruncated || truncated;
15351
15505
  const baseText = Buffer.concat(chunks2).toString("utf8");
15352
- const done4 = () => {
15506
+ const done4 = async () => {
15507
+ await settleSpillRetention();
15353
15508
  let text2 = baseText;
15354
15509
  if (truncatedNow) {
15355
15510
  const notes = [`output exceeded ${formatLimit} buffer limit`];
15356
- if (spillState === "ok") {
15357
- notes.push(`full output: ${spillPath}`);
15511
+ if (spillRetainedPath && sourceEnded) {
15512
+ notes.push(`full output: ${spillRetainedPath}`);
15358
15513
  } else if (spillPath) {
15359
15514
  notes.push(
15360
- `spill failed${spillError ? ` (${spillError})` : ""}; output incomplete`
15515
+ spillState === "failed" ? `spill failed${spillError ? ` (${spillError})` : ""}; output incomplete` : `spill output not retained; output incomplete`
15361
15516
  );
15362
15517
  }
15363
15518
  text2 += `
@@ -15368,7 +15523,7 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
15368
15523
  };
15369
15524
  const sink = spillSink;
15370
15525
  if (!sink || spillState !== "open") {
15371
- done4();
15526
+ void done4();
15372
15527
  return;
15373
15528
  }
15374
15529
  let closed = false;
@@ -15380,7 +15535,7 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
15380
15535
  } else if (spillState === "open") {
15381
15536
  spillState = "ok";
15382
15537
  }
15383
- done4();
15538
+ void done4();
15384
15539
  };
15385
15540
  if (sink.destroyed === true) {
15386
15541
  settleSink(true, new Error("spill writable closed before finish"));
@@ -15434,9 +15589,13 @@ function readNodeStream(stream, maxBytesOrOptions = DEFAULT_MAX_STREAM_BUFFER_BY
15434
15589
  }
15435
15590
  }
15436
15591
  resumeSourceIfPaused();
15592
+ void settleSpillRetention();
15437
15593
  rejectStream(error);
15438
15594
  });
15439
- stream.on("end", () => finalize2(false));
15595
+ stream.on("end", () => {
15596
+ sourceEnded = true;
15597
+ finalize2(false);
15598
+ });
15440
15599
  stream.on("close", () => finalize2(false));
15441
15600
  });
15442
15601
  }
@@ -15547,10 +15706,18 @@ async function runWorkspaceCommand(args2) {
15547
15706
  };
15548
15707
  exitPromise.then(detachSignalCleanup, detachSignalCleanup);
15549
15708
  const stdoutCapture = stdoutPromiseResult(
15550
- readNodeStream(proc.stdout, { spillPath: join4(tmpdir(), `nolo-stream-${randomUUID()}.log`) })
15709
+ readNodeStream(proc.stdout, {
15710
+ spillPath: join4(tmpdir(), `nolo-stream-${randomUUID2()}.log`),
15711
+ spillRetention: "promote",
15712
+ spillWorkspaceRoot: args2.workspaceRoot
15713
+ })
15551
15714
  );
15552
15715
  const stderrCapture = stdoutPromiseResult(
15553
- readNodeStream(proc.stderr, { spillPath: join4(tmpdir(), `nolo-stream-${randomUUID()}-stderr.log`) })
15716
+ readNodeStream(proc.stderr, {
15717
+ spillPath: join4(tmpdir(), `nolo-stream-${randomUUID2()}-stderr.log`),
15718
+ spillRetention: "promote",
15719
+ spillWorkspaceRoot: args2.workspaceRoot
15720
+ })
15554
15721
  );
15555
15722
  const killChild = (signal) => {
15556
15723
  if (detached && typeof proc.pid === "number") {
@@ -15967,18 +16134,18 @@ import { createHash as createHash4 } from "node:crypto";
15967
16134
  import { createRequire } from "node:module";
15968
16135
  import { existsSync as existsSync4 } from "node:fs";
15969
16136
  import { realpath, stat, readFile } from "node:fs/promises";
15970
- import { isAbsolute as isAbsolute2, relative as relative2, win32 } from "node:path";
16137
+ import { isAbsolute as isAbsolute3, relative as relative3, win32 } from "node:path";
15971
16138
  import { fileURLToPath, pathToFileURL } from "node:url";
15972
16139
  import { lookup as lookup2 } from "node:dns/promises";
15973
16140
  import { isIP } from "node:net";
15974
16141
  function isVisualPathOutside(rel) {
15975
- return rel === ".." || /^\.\.[\\/]/.test(rel) || isAbsolute2(rel) || win32.isAbsolute(rel);
16142
+ return rel === ".." || /^\.\.[\\/]/.test(rel) || isAbsolute3(rel) || win32.isAbsolute(rel);
15976
16143
  }
15977
16144
  async function validateVisualUrl(input, workspaceRoot) {
15978
16145
  const url = new URL(input);
15979
16146
  if (url.protocol === "file:") {
15980
16147
  const [root, path] = await Promise.all([realpath(workspaceRoot), realpath(fileURLToPath(url))]);
15981
- const rel = relative2(root, path);
16148
+ const rel = relative3(root, path);
15982
16149
  if (isVisualPathOutside(rel)) throw new Error("Renderer file URL is outside workspaceRoot.");
15983
16150
  if (!(await stat(path)).isFile()) throw new Error("Renderer file URL must point to a file, not a directory.");
15984
16151
  return pathToFileURL(path);
@@ -16052,10 +16219,10 @@ async function renderVisualPage(args2) {
16052
16219
  if (typeof args2.persistScreenshot !== "function") {
16053
16220
  throw new Error("renderVisualPage: persistScreenshot is required (expected a function that stores the PNG bytes)");
16054
16221
  }
16055
- if (!isAbsolute2(args2.workspaceRoot)) {
16222
+ if (!isAbsolute3(args2.workspaceRoot)) {
16056
16223
  throw new Error("renderVisualPage: workspaceRoot must be an absolute path");
16057
16224
  }
16058
- if (!isAbsolute2(args2.screenshotPath) || !relative2(args2.workspaceRoot, args2.screenshotPath) || isVisualPathOutside(relative2(args2.workspaceRoot, args2.screenshotPath))) {
16225
+ if (!isAbsolute3(args2.screenshotPath) || !relative3(args2.workspaceRoot, args2.screenshotPath) || isVisualPathOutside(relative3(args2.workspaceRoot, args2.screenshotPath))) {
16059
16226
  throw new Error("renderVisualPage: screenshotPath must be a file path inside workspaceRoot");
16060
16227
  }
16061
16228
  if (args2.timeoutMs !== void 0 && (typeof args2.timeoutMs !== "number" || !Number.isFinite(args2.timeoutMs) || args2.timeoutMs <= 0)) {
@@ -16312,7 +16479,7 @@ var captureHostWindow = createHostWindowCapture();
16312
16479
  // packages/agent-runtime/localWorkspaceTools.ts
16313
16480
  import { lstat as lstat2, readdir as readdir2, readFile as readFile4, realpath as realpath3, stat as stat4 } from "node:fs/promises";
16314
16481
  import { homedir } from "node:os";
16315
- import { dirname as dirname3, relative as relative5, resolve as resolve5, sep as sep2 } from "node:path";
16482
+ import { dirname as dirname3, relative as relative6, resolve as resolve5, sep as sep2 } from "node:path";
16316
16483
  import { spawn as spawnChildProcess3 } from "node:child_process";
16317
16484
 
16318
16485
  // packages/core/readRangeLedger.ts
@@ -16349,7 +16516,7 @@ function isLineRangeCovered(request3, covered) {
16349
16516
 
16350
16517
  // packages/agent-runtime/fileTextSearch.ts
16351
16518
  import { readdir, readFile as readFile3, stat as stat3 } from "node:fs/promises";
16352
- import { basename, relative as relative3, resolve as resolve3 } from "node:path";
16519
+ import { basename, relative as relative4, resolve as resolve3 } from "node:path";
16353
16520
  import { spawn as spawnChildProcess2 } from "node:child_process";
16354
16521
 
16355
16522
  // packages/agent-runtime/gitignore.ts
@@ -16376,7 +16543,7 @@ async function hasRootGitignore(workspaceRoot) {
16376
16543
 
16377
16544
  // packages/agent-runtime/fileTextSearch.ts
16378
16545
  var normalizePath = (value) => value.replaceAll("\\", "/");
16379
- var pathFor = (root, file, absolute = false) => absolute ? normalizePath(file) : normalizePath(relative3(root, file) || basename(file));
16546
+ var pathFor = (root, file, absolute = false) => absolute ? normalizePath(file) : normalizePath(relative4(root, file) || basename(file));
16380
16547
  var COMMAND_LIMIT_HEADROOM = 1;
16381
16548
  async function runCommand(binary, args2, cwd, maxResults) {
16382
16549
  const recordLimit = maxResults === void 0 ? 0 : Math.max(0, maxResults) + COMMAND_LIMIT_HEADROOM;
@@ -17191,10 +17358,10 @@ function filterDeclaredWorkspaceToolNames(args2) {
17191
17358
  // packages/agent-runtime/workspacePathGuard.ts
17192
17359
  import { constants as fsConstants } from "node:fs";
17193
17360
  import { lstat, mkdir, open, readlink, realpath as realpath2 } from "node:fs/promises";
17194
- import { basename as basename2, dirname as dirname2, isAbsolute as isAbsolute3, join as join5, relative as relative4, resolve as resolve4, sep } from "node:path";
17361
+ import { basename as basename2, dirname as dirname2, isAbsolute as isAbsolute4, join as join5, relative as relative5, resolve as resolve4, sep } from "node:path";
17195
17362
  function isPathInsideRoot(root, targetPath) {
17196
- const rel = relative4(resolve4(root), resolve4(targetPath));
17197
- return rel === "" || rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute3(rel);
17363
+ const rel = relative5(resolve4(root), resolve4(targetPath));
17364
+ return rel === "" || rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute4(rel);
17198
17365
  }
17199
17366
  function isNotFoundError(error) {
17200
17367
  const code = error?.code;
@@ -17281,7 +17448,7 @@ async function resolveOpenedFilePath(handle) {
17281
17448
  for (const root of FD_LINK_ROOTS) {
17282
17449
  try {
17283
17450
  const linked = await readlink(`${root}/${handle.fd}`);
17284
- if (isAbsolute3(linked)) return linked.replace(/ \(deleted\)$/, "");
17451
+ if (isAbsolute4(linked)) return linked.replace(/ \(deleted\)$/, "");
17285
17452
  } catch {
17286
17453
  }
17287
17454
  }
@@ -17590,11 +17757,11 @@ function parseWorkspaceToolArguments(raw) {
17590
17757
  }
17591
17758
  }
17592
17759
  function normalizeWorkspaceRelativePath(args2) {
17593
- const relativePath = relative5(args2.workspaceRoot, args2.targetPath);
17760
+ const relativePath = relative6(args2.workspaceRoot, args2.targetPath);
17594
17761
  return relativePath || ".";
17595
17762
  }
17596
17763
  function isPathInsideWorkspace(args2) {
17597
- const relativePath = relative5(args2.workspaceRoot, args2.targetPath);
17764
+ const relativePath = relative6(args2.workspaceRoot, args2.targetPath);
17598
17765
  return relativePath === "" || !relativePath.startsWith("..") && !relativePath.includes(`..${sep2}`);
17599
17766
  }
17600
17767
  var PATH_FIELD_ALIASES = ["path", "file_path", "filePath", "filename", "file", "target_file", "targetFile", "file_to_read", "fileToRead", "target_path", "read_path", "path_to_read", "pathToRead"];
@@ -18258,7 +18425,7 @@ async function listWorkspaceEntries(args2) {
18258
18425
  if (truncated) break;
18259
18426
  const absolutePath = resolve5(dirPath, name);
18260
18427
  const info = await stat4(absolutePath);
18261
- const relativePath = relative5(args2.dirPath, absolutePath) || ".";
18428
+ const relativePath = relative6(args2.dirPath, absolutePath) || ".";
18262
18429
  const isDirectory = info.isDirectory();
18263
18430
  entries.push(isDirectory ? `${relativePath}/` : relativePath);
18264
18431
  if (args2.maxResults && entries.length >= args2.maxResults) {
@@ -19873,7 +20040,7 @@ var normalizeContextBlockScopes = (legacyBlocks = void 0, scopes = void 0) => {
19873
20040
  };
19874
20041
 
19875
20042
  // packages/agent-runtime/localAutoCompaction.ts
19876
- import { randomUUID as randomUUID2 } from "node:crypto";
20043
+ import { randomUUID as randomUUID3 } from "node:crypto";
19877
20044
  function toPlanCompressionMessages(history) {
19878
20045
  return history.map((message, index) => ({
19879
20046
  id: typeof message.id === "string" && message.id.length > 0 ? message.id : `local-${index}`,
@@ -20108,7 +20275,7 @@ async function maybeAutoCompactLocalHistory(args2) {
20108
20275
  };
20109
20276
  }
20110
20277
  emitPhase({ kind: "compaction-start" });
20111
- const compactionAttemptId = randomUUID2();
20278
+ const compactionAttemptId = randomUUID3();
20112
20279
  let compactionT0 = Date.now();
20113
20280
  let compactionInputTokens;
20114
20281
  let compactionPrevSummaryTokens;
@@ -23063,7 +23230,7 @@ function resolveSessionKey(args2) {
23063
23230
  }
23064
23231
 
23065
23232
  // packages/agent-runtime/devin/devinProvider.ts
23066
- import { randomBytes, randomUUID as randomUUID3 } from "node:crypto";
23233
+ import { randomBytes, randomUUID as randomUUID4 } from "node:crypto";
23067
23234
  var CLIENT_NAME = "chisel";
23068
23235
  var CLIENT_VERSION = "3000.11.3";
23069
23236
  function writeVarint(fieldNum, value) {
@@ -23123,7 +23290,7 @@ function encodeDevinClientMetadata(token) {
23123
23290
  ]);
23124
23291
  }
23125
23292
  function devinId(id, purpose) {
23126
- return id?.sessionKey && isStableSessionIdentityEnabled() ? deriveStableUuid(id.sessionKey, purpose) : randomUUID3();
23293
+ return id?.sessionKey && isStableSessionIdentityEnabled() ? deriveStableUuid(id.sessionKey, purpose) : randomUUID4();
23127
23294
  }
23128
23295
  function encodeDevinChatMessage(msg, identity2, index = 0) {
23129
23296
  const source = msg.role === "assistant" ? 2 : msg.role === "tool" ? 4 : 1;
@@ -23217,7 +23384,7 @@ ${item.text}`;
23217
23384
  const chatMessageBuffers = coalesced.map((m, i) => encodeDevinChatMessage(m, identity2, i));
23218
23385
  const completionConfig = buildCompletionConfig({ temperature });
23219
23386
  const modelConfig = Buffer.concat([
23220
- writeStringField(1, randomUUID3()),
23387
+ writeStringField(1, randomUUID4()),
23221
23388
  writeVarint(2, 1),
23222
23389
  writeVarint(3, 4)
23223
23390
  ]);
@@ -23229,7 +23396,7 @@ ${item.text}`;
23229
23396
  writeMessageField(8, completionConfig),
23230
23397
  ...tools.map((tool) => writeMessageField(10, encodeDevinToolDefinition(tool))),
23231
23398
  writeMessageField(15, modelConfig),
23232
- writeStringField(16, randomUUID3()),
23399
+ writeStringField(16, randomUUID4()),
23233
23400
  writeVarint(20, 1),
23234
23401
  writeStringField(21, model)
23235
23402
  ]);
@@ -23600,17 +23767,17 @@ function createDevinProvider(options) {
23600
23767
  }
23601
23768
 
23602
23769
  // packages/agent-runtime/executionLeaseValidation.ts
23603
- import { isAbsolute as isAbsolute5, relative as relative6, resolve as resolve6 } from "node:path";
23770
+ import { isAbsolute as isAbsolute6, relative as relative7, resolve as resolve6 } from "node:path";
23604
23771
  function withinRoot(root, child) {
23605
- if (!isAbsolute5(root) || !isAbsolute5(child)) return false;
23772
+ if (!isAbsolute6(root) || !isAbsolute6(child)) return false;
23606
23773
  const canonicalRoot = resolve6(root);
23607
23774
  const canonicalChild = resolve6(child);
23608
- const suffix = relative6(canonicalRoot, canonicalChild);
23609
- return suffix === "" || suffix !== ".." && !suffix.startsWith("../") && !suffix.startsWith("..\\") && !isAbsolute5(suffix);
23775
+ const suffix = relative7(canonicalRoot, canonicalChild);
23776
+ return suffix === "" || suffix !== ".." && !suffix.startsWith("../") && !suffix.startsWith("..\\") && !isAbsolute6(suffix);
23610
23777
  }
23611
23778
  function subsetOf(allowed, actual) {
23612
23779
  return actual.every(
23613
- (root) => isAbsolute5(root) && allowed.some((parent) => withinRoot(parent, root))
23780
+ (root) => isAbsolute6(root) && allowed.some((parent) => withinRoot(parent, root))
23614
23781
  );
23615
23782
  }
23616
23783
  function validateConfiguredRootExecutionLease(ticket, lease) {
@@ -38,7 +38,7 @@ import {
38
38
  resolveFileWriteGateEnabled,
39
39
  resolveLocalUserId,
40
40
  validateInstaboxWorkspaceSelection
41
- } from "./chunk-SKFMP4PX.js";
41
+ } from "./chunk-XPL63OIC.js";
42
42
  import {
43
43
  clearCredentialAvailability,
44
44
  readEffectiveCredentialEntry,
@@ -116,7 +116,7 @@ import {
116
116
  LOCAL_AGENT_CONFIG_MISSING_CODE,
117
117
  LOCAL_TURN_ABORTED_CODE,
118
118
  readActionGate
119
- } from "./chunk-W622GBH3.js";
119
+ } from "./chunk-ADTJJVDJ.js";
120
120
  import {
121
121
  resolveAgentRuntimeConfigFromRecord
122
122
  } from "./chunk-N7E3LQ4A.js";
@@ -11378,7 +11378,7 @@ function isBalanceExhaustedError(error) {
11378
11378
 
11379
11379
  // packages/cli/client/agentRun.ts
11380
11380
  async function loadRunLocalAgentTurn() {
11381
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-3H7ZXM5X.js");
11381
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-NAAYNHCW.js");
11382
11382
  return runLocalAgentTurn;
11383
11383
  }
11384
11384
  var stripDebugNoise = (s) => s.replace(/\s*raw="[\s\S]*"/g, "").replace(/\s*raw=\S+/g, "").replace(/\s*headers=\[[^\]]*\]/g, "").replace(/\s*headers=\S+/g, "").trim();
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-SKFMP4PX.js";
4
+ } from "./chunk-XPL63OIC.js";
5
5
  import {
6
6
  clipMultilineText
7
7
  } from "./chunk-3NPXGNSK.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
- } from "./chunk-W622GBH3.js";
10
+ } from "./chunk-ADTJJVDJ.js";
11
11
  import {
12
12
  applyToolSurfaceConstraints
13
13
  } from "./chunk-UBLITLAZ.js";
@@ -169,7 +169,7 @@ import {
169
169
  runExecShellGates,
170
170
  validateConfiguredRootExecutionLease,
171
171
  verifyOwnerRouteAck
172
- } from "./chunk-W622GBH3.js";
172
+ } from "./chunk-ADTJJVDJ.js";
173
173
  import {
174
174
  accumulateGeminiChunks,
175
175
  buildGeminiGenerateContentRequest,
@@ -111,7 +111,7 @@ function createDaemonShortcutCommand(path, description, command) {
111
111
  // packages/cli/agentInternalCommandEntries.ts
112
112
  function getAgentInternalCommandEntries() {
113
113
  const createAgentRunCommand = (path, description) => createContextCommand(path, description, async (args, ctx) => {
114
- const { runAgentRunCommand } = await import("./agentRunCommand-FQTQFUF7.js");
114
+ const { runAgentRunCommand } = await import("./agentRunCommand-75VVJTNU.js");
115
115
  return runAgentRunCommand(args, {
116
116
  env: ctx.env,
117
117
  scriptDir: ctx.scriptDir,
@@ -123,11 +123,11 @@ function getAgentInternalCommandEntries() {
123
123
  createAgentRunCommand(["run"], "Run a no-login local agent in this workspace"),
124
124
  createAgentRunCommand(["chat"], "Chat with an agent"),
125
125
  createEnvCommand(["agent", "list"], "List owned agents", async (args, deps) => {
126
- const { runAgentListCommand } = await import("./agentListCommands-WYKQI4GX.js");
126
+ const { runAgentListCommand } = await import("./agentListCommands-MAG736RU.js");
127
127
  return runAgentListCommand(args, deps);
128
128
  }),
129
129
  createEnvCommand(["agent", "create"], "Create a new agent", async (args, deps) => {
130
- const { runAgentCreateCommand } = await import("./agentRecordCommands-M4IFKR35.js");
130
+ const { runAgentCreateCommand } = await import("./agentRecordCommands-KGRPIJN5.js");
131
131
  return runAgentCreateCommand(args, deps);
132
132
  }),
133
133
  createEnvCommand(["agent", "models"], "List models: --preset <id> (server discovery, exit 1 on static fallback) or --url <base> --api-key <key> (OpenAI-compatible /models)", async (args, deps) => {
@@ -143,7 +143,7 @@ function getAgentInternalCommandEntries() {
143
143
  return runAgentPullCommand(args, deps);
144
144
  }),
145
145
  createEnvCommand(["agent", "read"], "Read a single agent", async (args, deps) => {
146
- const { runAgentReadCommand } = await import("./agentRecordCommands-M4IFKR35.js");
146
+ const { runAgentReadCommand } = await import("./agentRecordCommands-KGRPIJN5.js");
147
147
  return runAgentReadCommand(args, deps);
148
148
  }),
149
149
  createAgentRunCommand(["agent", "run"], "Run an agent"),
@@ -172,31 +172,31 @@ function getAgentInternalCommandEntries() {
172
172
  return runSetupOfflineMarxistsAgentCommand(args, deps);
173
173
  }),
174
174
  createEnvCommand(["agent", "update"], "Update agent fields", async (args, deps) => {
175
- const { runAgentUpdateCommand } = await import("./agentRecordCommands-M4IFKR35.js");
175
+ const { runAgentUpdateCommand } = await import("./agentRecordCommands-KGRPIJN5.js");
176
176
  return runAgentUpdateCommand(args, deps);
177
177
  }),
178
178
  createEnvCommand(["agent", "email", "provision"], "Provision a controlled inbox for an agent", async (args, deps) => {
179
- const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-NGE5AV5C.js");
179
+ const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-PTG35KER.js");
180
180
  return runAgentEmailProvisionCommand(args, deps);
181
181
  }),
182
182
  createEnvCommand(["agent", "email", "bind"], "Bind an existing email address to an agent", async (args, deps) => {
183
- const { runAgentEmailBindCommand } = await import("./agentEmailCommands-NGE5AV5C.js");
183
+ const { runAgentEmailBindCommand } = await import("./agentEmailCommands-PTG35KER.js");
184
184
  return runAgentEmailBindCommand(args, deps);
185
185
  }),
186
186
  createEnvCommand(["agent", "email", "transfer"], "Transfer an email identity from one agent to another (cross-account)", async (args, deps) => {
187
- const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-NGE5AV5C.js");
187
+ const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-PTG35KER.js");
188
188
  return runAgentEmailTransferCommand(args, deps);
189
189
  }),
190
190
  createEnvCommand(
191
191
  ["agent", "email", "create-and-provision"],
192
192
  "Create an agent and provision its controlled inbox",
193
193
  async (args, deps) => {
194
- const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-NGE5AV5C.js");
194
+ const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-PTG35KER.js");
195
195
  return runAgentEmailCreateAndProvisionCommand(args, deps);
196
196
  }
197
197
  ),
198
198
  createEnvCommand(["agent", "delete"], "Hard-delete an agent's private and public records", async (args, deps) => {
199
- const { runAgentDeleteCommand } = await import("./agentDeleteCommand-ADZNLZSO.js");
199
+ const { runAgentDeleteCommand } = await import("./agentDeleteCommand-TTCVC74A.js");
200
200
  return runAgentDeleteCommand(args, deps);
201
201
  }),
202
202
  createEnvCommand(["agent", "grant"], "Grant another user access to this agent's owner credentials", async (args, deps) => {
@@ -216,15 +216,15 @@ function getAgentInternalCommandEntries() {
216
216
  return runAgentRevokeGrantCommand(args, deps);
217
217
  }),
218
218
  createEnvCommand(["agent", "bind-current"], "Bind an agent to this machine", async (args, deps) => {
219
- const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-CQGT2YP2.js");
219
+ const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-ATOZK3R5.js");
220
220
  return runAgentBindCurrentCommand(args, deps);
221
221
  }),
222
222
  createEnvCommand(["agent", "smoke-current"], "Smoke test a bound agent through this machine", async (args, deps) => {
223
- const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-CQGT2YP2.js");
223
+ const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-ATOZK3R5.js");
224
224
  return runAgentSmokeCurrentCommand(args, deps);
225
225
  }),
226
226
  createEnvCommand(["agent", "runtime-doctor"], "Diagnose current machine runtime compatibility", async (args, deps) => {
227
- const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-CQGT2YP2.js");
227
+ const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-ATOZK3R5.js");
228
228
  return runAgentRuntimeDoctorCommand(args, deps);
229
229
  }),
230
230
  createAgentRunCommand(["agent", "chat"], "Chat with an agent")
@@ -235,23 +235,23 @@ function getAgentInternalCommandEntries() {
235
235
  function getAppInternalCommandEntries() {
236
236
  return [
237
237
  createEnvCommand(["app", "list"], "List your apps", async (args, deps) => {
238
- const { runAppListCommand } = await import("./appListCommands-4HHNJQUI.js");
238
+ const { runAppListCommand } = await import("./appListCommands-BELRVX2Y.js");
239
239
  return runAppListCommand(args, deps);
240
240
  }),
241
241
  createEnvCommand(["app", "get"], "Get app details", async (args, deps) => {
242
- const { runAppGetCommand } = await import("./appGetCommands-WVCAHY4P.js");
242
+ const { runAppGetCommand } = await import("./appGetCommands-XKDXLC3C.js");
243
243
  return runAppGetCommand(args, deps);
244
244
  }),
245
245
  createEnvCommand(["app", "deploy"], "Deploy an app", async (args, deps) => {
246
- const { runAppDeployCommand } = await import("./appDeployCommands-ZMVIKSPY.js");
246
+ const { runAppDeployCommand } = await import("./appDeployCommands-V6UTKVXR.js");
247
247
  return runAppDeployCommand(args, deps);
248
248
  }),
249
249
  createEnvCommand(["app", "deploy", "status"], "Check app deploy status", async (args, deps) => {
250
- const { runAppDeployStatusCommand } = await import("./appDeployStatusCommands-LQNUHHGW.js");
250
+ const { runAppDeployStatusCommand } = await import("./appDeployStatusCommands-4UIFSEPC.js");
251
251
  return runAppDeployStatusCommand(args, deps);
252
252
  }),
253
253
  createEnvCommand(["app", "delete"], "Delete an app", async (args, deps) => {
254
- const { runAppDeleteCommand } = await import("./appDeleteCommands-AUDFCIFP.js");
254
+ const { runAppDeleteCommand } = await import("./appDeleteCommands-VDHCDVBF.js");
255
255
  return runAppDeleteCommand(args, deps);
256
256
  })
257
257
  ];
@@ -387,27 +387,27 @@ function getCiInternalCommandEntries() {
387
387
  function getDialogInternalCommandEntries() {
388
388
  return [
389
389
  createEnvCommand(["dialog", "search"], "Search dialog messages across dialogs", async (args, deps) => {
390
- const { runDialogSearchCommand } = await import("./dialogCommands-VCQO2OFM.js");
390
+ const { runDialogSearchCommand } = await import("./dialogCommands-4BGV6DPD.js");
391
391
  return runDialogSearchCommand(args, deps);
392
392
  }),
393
393
  createEnvCommand(["dialog", "list"], "List dialogs (default --limit 50; --all/--limit 0 full; --jsonl streams)", async (args, deps) => {
394
- const { runDialogListCommand } = await import("./dialogCommands-VCQO2OFM.js");
394
+ const { runDialogListCommand } = await import("./dialogCommands-4BGV6DPD.js");
395
395
  return runDialogListCommand(args, deps);
396
396
  }),
397
397
  createEnvCommand(["dialog", "delete"], "Delete one or more dialogs", async (args, deps) => {
398
- const { runDialogDeleteCommand } = await import("./dialogCommands-VCQO2OFM.js");
398
+ const { runDialogDeleteCommand } = await import("./dialogCommands-4BGV6DPD.js");
399
399
  return runDialogDeleteCommand(args, deps);
400
400
  }),
401
401
  createEnvCommand(["dialog", "query"], "Query dialogs by subject refs (default --limit 50; --all full; --jsonl streams)", async (args, deps) => {
402
- const { runDialogQueryCommand } = await import("./dialogCommands-VCQO2OFM.js");
402
+ const { runDialogQueryCommand } = await import("./dialogCommands-4BGV6DPD.js");
403
403
  return runDialogQueryCommand(args, deps);
404
404
  }),
405
405
  createEnvCommand(["dialog", "read"], "Read a dialog", async (args, deps) => {
406
- const { runDialogReadCommand } = await import("./dialogCommands-VCQO2OFM.js");
406
+ const { runDialogReadCommand } = await import("./dialogCommands-4BGV6DPD.js");
407
407
  return runDialogReadCommand(args, deps);
408
408
  }),
409
409
  createEnvCommand(["dialog", "status"], "Read compact dialog status", async (args, deps) => {
410
- const { runDialogStatusCommand } = await import("./dialogCommands-VCQO2OFM.js");
410
+ const { runDialogStatusCommand } = await import("./dialogCommands-4BGV6DPD.js");
411
411
  return runDialogStatusCommand(args, deps);
412
412
  })
413
413
  ];
@@ -417,39 +417,39 @@ function getDialogInternalCommandEntries() {
417
417
  function getDocInternalCommandEntries() {
418
418
  return [
419
419
  createEnvCommand(["doc", "create"], "Create a normal doc", async (args, deps) => {
420
- const { runDocCreateCommand } = await import("./docCreateCommands-7FAETK4S.js");
420
+ const { runDocCreateCommand } = await import("./docCreateCommands-3CW75UF2.js");
421
421
  return runDocCreateCommand(args, deps);
422
422
  }),
423
423
  createEnvCommand(["doc", "read"], "Read a normal doc", async (args, deps) => {
424
- const { runDocReadCommand } = await import("./docReadCommands-F63GIAYX.js");
424
+ const { runDocReadCommand } = await import("./docReadCommands-HXCNVDPQ.js");
425
425
  return runDocReadCommand(args, deps);
426
426
  }),
427
427
  createEnvCommand(["doc", "update"], "Update a normal doc", async (args, deps) => {
428
- const { runDocUpdateCommand } = await import("./docUpdateCommands-QEC4Y2HQ.js");
428
+ const { runDocUpdateCommand } = await import("./docUpdateCommands-RMVBAMDE.js");
429
429
  return runDocUpdateCommand(args, deps);
430
430
  }),
431
431
  createEnvCommand(["doc", "delete"], "Delete a normal doc", async (args, deps) => {
432
- const { runDocDeleteCommand } = await import("./docDeleteCommands-IVA4T2VS.js");
432
+ const { runDocDeleteCommand } = await import("./docDeleteCommands-NL4ZYMN5.js");
433
433
  return runDocDeleteCommand(args, deps);
434
434
  }),
435
435
  createEnvCommand(["skill-doc", "create"], "Create a skill-backed doc", async (args, deps) => {
436
- const { runSkillDocCreateCommand } = await import("./docCreateCommands-7FAETK4S.js");
436
+ const { runSkillDocCreateCommand } = await import("./docCreateCommands-3CW75UF2.js");
437
437
  return runSkillDocCreateCommand(args, deps);
438
438
  }),
439
439
  createEnvCommand(["skill", "create-doc"], "Create a skill-backed doc", async (args, deps) => {
440
- const { runSkillDocCreateCommand } = await import("./docCreateCommands-7FAETK4S.js");
440
+ const { runSkillDocCreateCommand } = await import("./docCreateCommands-3CW75UF2.js");
441
441
  return runSkillDocCreateCommand(args, deps);
442
442
  }),
443
443
  createEnvCommand(["skill-doc", "read"], "Read a skill doc", async (args, deps) => {
444
- const { runSkillDocReadCommand } = await import("./docReadCommands-F63GIAYX.js");
444
+ const { runSkillDocReadCommand } = await import("./docReadCommands-HXCNVDPQ.js");
445
445
  return runSkillDocReadCommand(args, deps);
446
446
  }),
447
447
  createEnvCommand(["skill-doc", "update"], "Update a skill doc", async (args, deps) => {
448
- const { runSkillDocUpdateCommand } = await import("./docUpdateCommands-QEC4Y2HQ.js");
448
+ const { runSkillDocUpdateCommand } = await import("./docUpdateCommands-RMVBAMDE.js");
449
449
  return runSkillDocUpdateCommand(args, deps);
450
450
  }),
451
451
  createEnvCommand(["skill-doc", "delete"], "Delete a skill doc", async (args, deps) => {
452
- const { runSkillDocDeleteCommand } = await import("./docDeleteCommands-IVA4T2VS.js");
452
+ const { runSkillDocDeleteCommand } = await import("./docDeleteCommands-NL4ZYMN5.js");
453
453
  return runSkillDocDeleteCommand(args, deps);
454
454
  })
455
455
  ];
@@ -477,19 +477,19 @@ function getMemoryInternalCommandEntries() {
477
477
  function getSpaceInternalCommandEntries() {
478
478
  return [
479
479
  createEnvCommand(["space", "create"], "Create a space", async (args, deps) => {
480
- const { runSpaceCreateCommand } = await import("./spaceCommands-6IH5EH6B.js");
480
+ const { runSpaceCreateCommand } = await import("./spaceCommands-ZUI4CTSO.js");
481
481
  return runSpaceCreateCommand(args, deps);
482
482
  }),
483
483
  createEnvCommand(["space", "invite"], "Invite an existing user to a space", async (args, deps) => {
484
- const { runSpaceInviteCommand } = await import("./spaceCommands-6IH5EH6B.js");
484
+ const { runSpaceInviteCommand } = await import("./spaceCommands-ZUI4CTSO.js");
485
485
  return runSpaceInviteCommand(args, deps);
486
486
  }),
487
487
  createEnvCommand(["space", "accept-invite"], "Accept a space invite", async (args, deps) => {
488
- const { runSpaceAcceptInviteCommand } = await import("./spaceCommands-6IH5EH6B.js");
488
+ const { runSpaceAcceptInviteCommand } = await import("./spaceCommands-ZUI4CTSO.js");
489
489
  return runSpaceAcceptInviteCommand(args, deps);
490
490
  }),
491
491
  createEnvCommand(["space", "upload"], "Upload a file to a space", async (args, deps) => {
492
- const { runSpaceUploadCommand } = await import("./spaceCommands-6IH5EH6B.js");
492
+ const { runSpaceUploadCommand } = await import("./spaceCommands-ZUI4CTSO.js");
493
493
  return runSpaceUploadCommand(args, deps);
494
494
  })
495
495
  ];
@@ -547,15 +547,15 @@ function getSystemInternalCommandEntries(renderHelpText2) {
547
547
  return runWhoamiCommand({ args, env: ctx.env });
548
548
  }),
549
549
  createEntrypointEnvCommand(["connect"], "Send machine heartbeats or hold a connector websocket", async (args, deps) => {
550
- const { runMachineConnectCommand } = await import("./machineCommands-YRYIFT7E.js");
550
+ const { runMachineConnectCommand } = await import("./machineCommands-OTXFRTDA.js");
551
551
  return runMachineConnectCommand(args, deps);
552
552
  }),
553
553
  createDaemonShortcutCommand(["daemon"], "Run the connector daemon shortcut", async (args, deps) => {
554
- const { runMachineConnectCommand } = await import("./machineCommands-YRYIFT7E.js");
554
+ const { runMachineConnectCommand } = await import("./machineCommands-OTXFRTDA.js");
555
555
  return runMachineConnectCommand(args, deps);
556
556
  }),
557
557
  createEnvCommand(["machine", "status"], "List machines registered to the current profile", async (args, deps) => {
558
- const { runMachineStatusCommand } = await import("./machineCommands-YRYIFT7E.js");
558
+ const { runMachineStatusCommand } = await import("./machineCommands-OTXFRTDA.js");
559
559
  return runMachineStatusCommand(args, deps);
560
560
  }),
561
561
  createEnvCommand(["doctor", "runtime"], "Diagnose local-first agent runtime selection", async (args, deps) => {
@@ -36,7 +36,7 @@ import "./chunk-GLKOYSRU.js";
36
36
  import "./chunk-QQ56R7KS.js";
37
37
  import "./chunk-OW765XBU.js";
38
38
  import "./chunk-D2MDMY2M.js";
39
- import "./chunk-W622GBH3.js";
39
+ import "./chunk-ADTJJVDJ.js";
40
40
  import "./chunk-ZNFJWEN4.js";
41
41
  import "./chunk-IIX6VWLW.js";
42
42
  import "./chunk-NVOYW6H4.js";
@@ -29,7 +29,7 @@ import "./chunk-VF4K2QE6.js";
29
29
  import "./chunk-UAD2WT54.js";
30
30
  import "./chunk-AETZ7AD6.js";
31
31
  import "./chunk-KHCLMKZZ.js";
32
- import "./chunk-W622GBH3.js";
32
+ import "./chunk-ADTJJVDJ.js";
33
33
  import "./chunk-ZNFJWEN4.js";
34
34
  import "./chunk-IIX6VWLW.js";
35
35
  import "./chunk-NVOYW6H4.js";
@@ -23,7 +23,7 @@ import "./chunk-UAD2WT54.js";
23
23
  import "./chunk-D2MDMY2M.js";
24
24
  import "./chunk-AETZ7AD6.js";
25
25
  import "./chunk-KHCLMKZZ.js";
26
- import "./chunk-W622GBH3.js";
26
+ import "./chunk-ADTJJVDJ.js";
27
27
  import "./chunk-ZNFJWEN4.js";
28
28
  import "./chunk-IIX6VWLW.js";
29
29
  import "./chunk-NVOYW6H4.js";
@@ -17,7 +17,7 @@ import "./chunk-VF4K2QE6.js";
17
17
  import "./chunk-UAD2WT54.js";
18
18
  import "./chunk-AETZ7AD6.js";
19
19
  import "./chunk-KHCLMKZZ.js";
20
- import "./chunk-W622GBH3.js";
20
+ import "./chunk-ADTJJVDJ.js";
21
21
  import "./chunk-ZNFJWEN4.js";
22
22
  import "./chunk-IIX6VWLW.js";
23
23
  import "./chunk-NVOYW6H4.js";
@@ -31,7 +31,7 @@ import {
31
31
  resolvePageSkillMetadata
32
32
  } from "./chunk-AETZ7AD6.js";
33
33
  import "./chunk-KHCLMKZZ.js";
34
- import "./chunk-W622GBH3.js";
34
+ import "./chunk-ADTJJVDJ.js";
35
35
  import "./chunk-ZNFJWEN4.js";
36
36
  import "./chunk-IIX6VWLW.js";
37
37
  import "./chunk-NVOYW6H4.js";
package/index.js CHANGED
@@ -106,9 +106,9 @@ async function runScript(script, forwardedArgs, env) {
106
106
  return proc.exited;
107
107
  }
108
108
  async function launchTuiWorkspace(args2) {
109
- const { startTuiWorkspace } = await import("./readlineWorkspace-LNFLMKKG.js");
109
+ const { startTuiWorkspace } = await import("./readlineWorkspace-CEX5TXGM.js");
110
110
  const { createTuiSummaryLlmCaller } = await import("./tuiSummaryLlmCaller-FSOADMXK.js");
111
- const { setCliAutoCompactionSummaryFallback } = await import("./localRuntimeAdapter-4ROHWWBE.js");
111
+ const { setCliAutoCompactionSummaryFallback } = await import("./localRuntimeAdapter-HRAB7P5E.js");
112
112
  setCliAutoCompactionSummaryFallback(
113
113
  createTuiSummaryLlmCaller(args2.env, { timeoutMs: 3e4 })
114
114
  );
@@ -120,7 +120,7 @@ async function launchTuiWorkspace(args2) {
120
120
  });
121
121
  }
122
122
  async function main() {
123
- const { createCliRuntimeContext, looksLikeDaemonShortcut, renderHelpText, resolveCommand, runResolvedCommand } = await import("./commandRegistry-O2RBWYPW.js");
123
+ const { createCliRuntimeContext, looksLikeDaemonShortcut, renderHelpText, resolveCommand, runResolvedCommand } = await import("./commandRegistry-4JHVRMW7.js");
124
124
  const { buildCliRuntimeEnv, loadProfileConfig } = await import("./profileConfig-KN3N2BLF.js");
125
125
  const { resolveTuiLaunchMode } = await import("./runtimeModeArgs-2Y7BALTO.js");
126
126
  const runtimeEnv = {
@@ -46,7 +46,7 @@ import {
46
46
  withRuntimeEnabledPacksAndPrompt,
47
47
  writeDialog,
48
48
  writeLocalTokenRecord
49
- } from "./chunk-SKFMP4PX.js";
49
+ } from "./chunk-XPL63OIC.js";
50
50
  import "./chunk-DYQXB46J.js";
51
51
  import {
52
52
  defaultLoopbackRequest,
@@ -129,7 +129,7 @@ import "./chunk-EUGTFFO6.js";
129
129
  import "./chunk-AETZ7AD6.js";
130
130
  import "./chunk-Y6ORVLSS.js";
131
131
  import "./chunk-KHCLMKZZ.js";
132
- import "./chunk-W622GBH3.js";
132
+ import "./chunk-ADTJJVDJ.js";
133
133
  import "./chunk-ZNFJWEN4.js";
134
134
  import "./chunk-IIX6VWLW.js";
135
135
  import "./chunk-NVOYW6H4.js";
@@ -2,7 +2,7 @@ import {
2
2
  buildMachinePermissionPromptBlock,
3
3
  handleConnectorRunMessage,
4
4
  resolveMachineRunPermissionPolicy
5
- } from "./chunk-YCQ5WURS.js";
5
+ } from "./chunk-VE3FEZIT.js";
6
6
  import {
7
7
  MAX_CONNECTOR_TIMER_DELAY_MS,
8
8
  clampConnectorTimerDelayMs,
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  parsePositiveFiniteNumberOrFallback
16
16
  } from "./chunk-Y5GCAMGP.js";
17
- import "./chunk-SKFMP4PX.js";
17
+ import "./chunk-XPL63OIC.js";
18
18
  import "./chunk-DYQXB46J.js";
19
19
  import "./chunk-VP3BINY7.js";
20
20
  import "./chunk-R4BMKAR5.js";
@@ -103,7 +103,7 @@ import {
103
103
  PATH_FIELD_ALIASES,
104
104
  createLocalWorkspaceToolExecutors,
105
105
  resolveRequestedWorkspacePath
106
- } from "./chunk-W622GBH3.js";
106
+ } from "./chunk-ADTJJVDJ.js";
107
107
  import "./chunk-ZNFJWEN4.js";
108
108
  import "./chunk-IIX6VWLW.js";
109
109
  import "./chunk-NVOYW6H4.js";
@@ -11,8 +11,8 @@ import {
11
11
  runtimeWorkspacePermissionPolicy,
12
12
  scopePermissionPolicyToRuntimeWorkspace,
13
13
  summarizeAgentConfigForLogs
14
- } from "./chunk-YCQ5WURS.js";
15
- import "./chunk-SKFMP4PX.js";
14
+ } from "./chunk-VE3FEZIT.js";
15
+ import "./chunk-XPL63OIC.js";
16
16
  import "./chunk-DYQXB46J.js";
17
17
  import "./chunk-VP3BINY7.js";
18
18
  import "./chunk-R4BMKAR5.js";
@@ -90,7 +90,7 @@ import "./chunk-EUGTFFO6.js";
90
90
  import "./chunk-AETZ7AD6.js";
91
91
  import "./chunk-Y6ORVLSS.js";
92
92
  import "./chunk-KHCLMKZZ.js";
93
- import "./chunk-W622GBH3.js";
93
+ import "./chunk-ADTJJVDJ.js";
94
94
  import "./chunk-ZNFJWEN4.js";
95
95
  import "./chunk-IIX6VWLW.js";
96
96
  import "./chunk-NVOYW6H4.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nolo-cli",
3
- "version": "0.191.0-alpha.1",
3
+ "version": "0.191.0-alpha.2",
4
4
  "type": "module",
5
5
  "description": "Agent-first terminal workspace for Nolo",
6
6
  "bin": {
@@ -102,7 +102,7 @@ import {
102
102
  wrapTextToLines,
103
103
  wrapTranscriptLine,
104
104
  wrapTranscriptLineWithLayout
105
- } from "./chunk-EEXYC45V.js";
105
+ } from "./chunk-UZHYRBUB.js";
106
106
  import "./chunk-6QDYSCPW.js";
107
107
  import "./chunk-U5ZHUOLT.js";
108
108
  import "./chunk-Y5GCAMGP.js";
@@ -123,7 +123,7 @@ import {
123
123
  formatApprovalRemaining,
124
124
  readTimestamp,
125
125
  registerHostApprovalRenderer
126
- } from "./chunk-SKFMP4PX.js";
126
+ } from "./chunk-XPL63OIC.js";
127
127
  import "./chunk-DYQXB46J.js";
128
128
  import "./chunk-VP3BINY7.js";
129
129
  import "./chunk-R4BMKAR5.js";
@@ -233,7 +233,7 @@ import {
233
233
  formatToolOverflowMarker,
234
234
  getProcessRegistry,
235
235
  readCommandActionGatePayload
236
- } from "./chunk-W622GBH3.js";
236
+ } from "./chunk-ADTJJVDJ.js";
237
237
  import "./chunk-ZNFJWEN4.js";
238
238
  import "./chunk-IIX6VWLW.js";
239
239
  import "./chunk-NVOYW6H4.js";
@@ -20,7 +20,7 @@ import {
20
20
  resolveFileCategory
21
21
  } from "./chunk-3PVYUPXK.js";
22
22
  import "./chunk-D2MDMY2M.js";
23
- import "./chunk-W622GBH3.js";
23
+ import "./chunk-ADTJJVDJ.js";
24
24
  import "./chunk-ZNFJWEN4.js";
25
25
  import "./chunk-IIX6VWLW.js";
26
26
  import "./chunk-NVOYW6H4.js";