nolo-cli 0.54.0-alpha.1 → 0.54.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 (111) hide show
  1. package/{_executeModel-IVEOJ7L6.js → _executeModel-ANY4SIAS.js} +35 -36
  2. package/{action-IU6ON7ZB.js → action-Q4W5JPI5.js} +7 -7
  3. package/{addContentAction-5V5CCI3I.js → addContentAction-O25HFR37.js} +6 -6
  4. package/{addDialogAgentAction-KF3KZZNZ.js → addDialogAgentAction-GH7AUPPB.js} +5 -5
  5. package/{agentDeleteCommand-D7AFLKQN.js → agentDeleteCommand-JWIKNWWI.js} +17 -17
  6. package/{agentEmailCommands-MXFZGF54.js → agentEmailCommands-PL22BEU5.js} +40 -41
  7. package/{agentListCommands-MP732Q23.js → agentListCommands-6NR7AQEK.js} +19 -19
  8. package/{agentMachineCommands-352JFJX4.js → agentMachineCommands-TASPU6OA.js} +18 -18
  9. package/{agentRecordCommands-G6EFHU3G.js → agentRecordCommands-Z64TA63M.js} +39 -40
  10. package/{agentRunCommand-UUWJMH7J.js → agentRunCommand-4QJQLPRW.js} +40 -41
  11. package/{agentRuntimeLocal-KWBPJ53H.js → agentRuntimeLocal-PCJJ56J2.js} +17 -17
  12. package/{agentSlice-V742SNKC.js → agentSlice-KYLDUSNN.js} +6 -6
  13. package/{appDeleteCommands-GV4TF52A.js → appDeleteCommands-WLHMJAVT.js} +19 -19
  14. package/{appDeployCommands-EZMUPNSW.js → appDeployCommands-CKON7N2E.js} +19 -19
  15. package/{appDeployStatusCommands-AAGELKAN.js → appDeployStatusCommands-PXRLDASH.js} +19 -19
  16. package/{appGetCommands-W37KDAON.js → appGetCommands-RAB5RM4M.js} +19 -19
  17. package/{appListCommands-IFDWBBNV.js → appListCommands-GU57FB62.js} +19 -19
  18. package/{authCommand-5HM57KPL.js → authCommand-QOPOEYEK.js} +7 -7
  19. package/{chatQueueReduxAdapter-ZXXP6E4O.js → chatQueueReduxAdapter-5O2WLITN.js} +17 -17
  20. package/chunk-2BWU4ORW.js +2574 -0
  21. package/{chunk-SG65C33A.js → chunk-32I5RVMY.js} +4 -4
  22. package/{chunk-X7S7OFUX.js → chunk-3QJTD6DO.js} +4 -4
  23. package/{chunk-ALMVQQPG.js → chunk-3Z3DXZBD.js} +12 -12
  24. package/{chunk-RO2IUWZE.js → chunk-4NN3EK7H.js} +1 -1
  25. package/{chunk-WJV3G7BM.js → chunk-56W233KG.js} +1 -1
  26. package/{chunk-GBXR3CSM.js → chunk-5WADL4O7.js} +1 -1
  27. package/{chunk-J4Z6UI4C.js → chunk-6BGAQ3KR.js} +20 -15
  28. package/{chunk-R63FNYSI.js → chunk-6FQ2552G.js} +66 -28
  29. package/{chunk-6XIE5ZGI.js → chunk-6HIGYUBQ.js} +1 -1
  30. package/{chunk-MC66ASS6.js → chunk-6SZ52ORL.js} +8 -8
  31. package/{chunk-CULR4XB4.js → chunk-757BGY6Y.js} +1 -1
  32. package/{chunk-SQTVMYMU.js → chunk-7APQB6R6.js} +3 -3
  33. package/{chunk-RBJD33HM.js → chunk-7K5VMB4Q.js} +3 -3
  34. package/{chunk-V2IPBG5U.js → chunk-AA564GBL.js} +2 -2
  35. package/{chunk-76UA7376.js → chunk-AV6KQCM5.js} +6 -6
  36. package/{chunk-BKPUPZ6W.js → chunk-BJLYCOZK.js} +25 -25
  37. package/{chunk-2T6XO4PK.js → chunk-CVT7L2WZ.js} +1 -1
  38. package/{chunk-XXZULHJ7.js → chunk-D3JQPONH.js} +1 -1
  39. package/{chunk-M2CGG6VJ.js → chunk-EVBFYPDC.js} +1 -1
  40. package/{chunk-KHCLMKZZ.js → chunk-EY7V7REW.js} +280 -6
  41. package/{chunk-4RXXP6WD.js → chunk-FGEYVPPR.js} +2 -2
  42. package/{chunk-ZMV5PCRS.js → chunk-GBADO3SM.js} +1 -1
  43. package/chunk-GLGD2JGY.js +1766 -0
  44. package/{chunk-W6N3GLUU.js → chunk-GV35EHNA.js} +81 -69
  45. package/{chunk-HR5XDXYM.js → chunk-H4RYESI6.js} +3 -3
  46. package/{chunk-FZMM2KZC.js → chunk-IKTHA3JH.js} +2 -2
  47. package/{chunk-WUMYQ2FE.js → chunk-INXBNYCG.js} +3 -3
  48. package/{chunk-PTHLNXGY.js → chunk-KUUTWU4I.js} +3 -3
  49. package/{chunk-RVHPY5PC.js → chunk-LA4IDAK7.js} +12 -12
  50. package/{chunk-OU7NGN5Y.js → chunk-LN3OQJGG.js} +1 -1
  51. package/{chunk-YZ2WE6CW.js → chunk-MFI4FGHX.js} +2 -2
  52. package/{chunk-LGUQHYAL.js → chunk-O5FLGN2L.js} +3 -2
  53. package/{chunk-HCBQVVFZ.js → chunk-PAHILFNT.js} +1 -1
  54. package/{chunk-HHBXCRJS.js → chunk-PYKV6FSC.js} +1 -1
  55. package/{chunk-7UFH6THF.js → chunk-QDHZCAH3.js} +1 -1
  56. package/{chunk-L3JWI7WX.js → chunk-QOKAKDPE.js} +15 -11
  57. package/{chunk-B54WOZ77.js → chunk-RTLJUGQH.js} +1 -1
  58. package/{chunk-YFHUQLJF.js → chunk-RU5D3B22.js} +1 -1
  59. package/{chunk-5Y5G76BJ.js → chunk-SP3DPVBH.js} +2 -2
  60. package/{chunk-5SXS7T5Q.js → chunk-TI5BCZCH.js} +18 -18
  61. package/{chunk-K7CNV7GI.js → chunk-U2A47SVI.js} +5 -5
  62. package/{chunk-45E65JER.js → chunk-U5Z7LFZF.js} +1 -1
  63. package/{chunk-DIQCV4FR.js → chunk-UITMHBVK.js} +1 -1
  64. package/{chunk-VM7K5EJL.js → chunk-UW4INMD2.js} +2 -2
  65. package/{chunk-SUFDWBLV.js → chunk-V4KZGLOI.js} +30 -30
  66. package/{chunk-ET7BXWAW.js → chunk-VRJUIUIY.js} +2 -2
  67. package/{chunk-5XCW6RQG.js → chunk-VRZIH5JO.js} +1 -1
  68. package/{chunk-2JYSSXLY.js → chunk-VULELK4T.js} +2 -2
  69. package/{chunk-J7KVJAUQ.js → chunk-WL3UOGYO.js} +0 -1
  70. package/{chunk-PEMGYJNS.js → chunk-Y7LNKP32.js} +3 -3
  71. package/{chunk-DMCFF4KE.js → chunk-YBV6QJKM.js} +14 -8
  72. package/{codingSkills-BYQI6EPT.js → codingSkills-BCQXRZOI.js} +3 -4
  73. package/{createAgentAutomationAction-LE3ZYDT6.js → createAgentAutomationAction-UJLNFFFC.js} +18 -18
  74. package/{createDialogAction-2C6SR62D.js → createDialogAction-TJCX6GUE.js} +21 -22
  75. package/{createPageAction-X4C7K3OD.js → createPageAction-N3IYABHV.js} +19 -20
  76. package/{dbSlice-FWF5F4L7.js → dbSlice-D5CNGWPD.js} +5 -5
  77. package/{deleteFile-NPZ64DFN.js → deleteFile-44TUM34Y.js} +3 -3
  78. package/{dialogCommands-CP2U44A7.js → dialogCommands-35M6RBAC.js} +18 -18
  79. package/{dialogSlice-2SH5636X.js → dialogSlice-KO7ADD7H.js} +17 -17
  80. package/{docCreateCommands-A2KIJSF7.js → docCreateCommands-VXHZWQ3P.js} +20 -21
  81. package/{docDeleteCommands-NZ7XO4Z4.js → docDeleteCommands-4WFAJR6A.js} +20 -21
  82. package/{docReadCommands-VWVK4ZAR.js → docReadCommands-OYREEFAR.js} +20 -21
  83. package/{docStore-J6GQYKHS.js → docStore-5BU76DFK.js} +19 -19
  84. package/{docUpdateCommands-YTUEC6PN.js → docUpdateCommands-A7QERSME.js} +20 -21
  85. package/{getPricing-I53UFOPH.js → getPricing-HAU62AFM.js} +3 -3
  86. package/{handleSendMessageAction-MD325XZS.js → handleSendMessageAction-OSGQJQ45.js} +17 -17
  87. package/index.js +58 -58
  88. package/{machineCommands-TCNZV2DC.js → machineCommands-J43U3TX5.js} +39 -40
  89. package/{machineWsRunDispatch-QSX5IWPH.js → machineWsRunDispatch-Z2Z6STXZ.js} +39 -40
  90. package/{models-E2CYP4IB.js → models-4QF4BJVY.js} +2 -2
  91. package/package.json +2 -3
  92. package/{read-J7RVVCHH.js → read-RGNPI5H2.js} +3 -3
  93. package/{readDocTool-G2WBM4IH.js → readDocTool-6ESWKTXD.js} +1 -1
  94. package/{readlineWorkspace-N3RGX7EK.js → readlineWorkspace-YRPV6JPN.js} +462 -235
  95. package/{removeDialogAgentAction-RMPISD42.js → removeDialogAgentAction-JYT73FU2.js} +7 -7
  96. package/{runAgentClientLoop-R3NTOERA.js → runAgentClientLoop-5YM5WMAY.js} +33 -34
  97. package/{setDialogExtraReferencesAction-7BUTHDAL.js → setDialogExtraReferencesAction-D564LMYQ.js} +6 -6
  98. package/{setPrimaryDialogAgentAction-WCYIBGZ4.js → setPrimaryDialogAgentAction-ACY3BLYA.js} +7 -7
  99. package/{settingSlice-7NN2MI6Y.js → settingSlice-MKI3MNZJ.js} +6 -6
  100. package/{skillDiscovery-COX56OBO.js → skillDiscovery-GPUDHDTZ.js} +1 -2
  101. package/{spaceCommands-RC7XMYQ7.js → spaceCommands-MY26V52L.js} +17 -17
  102. package/{spaceSlice-KBVKKO3M.js → spaceSlice-JUIXC365.js} +18 -18
  103. package/{streamAgentChatTurn-WLWEBWSF.js → streamAgentChatTurn-XV5X5TNQ.js} +37 -38
  104. package/{switchDialogAgentAction-WGMMQHDI.js → switchDialogAgentAction-CJ5H6SAR.js} +5 -5
  105. package/{tableCommands-P2TXJ3CF.js → tableCommands-R6WFRDYF.js} +1 -1
  106. package/{tools-LSLDSUWU.js → tools-MIMELA2Y.js} +28 -29
  107. package/{tuiSummaryLlmCaller-TPBL4BV2.js → tuiSummaryLlmCaller-XJ5BKNNS.js} +13 -13
  108. package/{updateDialogTitleAction-4HJEARM7.js → updateDialogTitleAction-EIZUSWHR.js} +18 -18
  109. package/chunk-AETZ7AD6.js +0 -274
  110. package/chunk-EUG45QJR.js +0 -6104
  111. package/chunk-OFZPJ3NT.js +0 -114
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  selectCurrentServer
3
- } from "./chunk-X7S7OFUX.js";
3
+ } from "./chunk-3QJTD6DO.js";
4
4
  import {
5
5
  patch
6
- } from "./chunk-76UA7376.js";
6
+ } from "./chunk-AV6KQCM5.js";
7
7
  import {
8
8
  selectIdentityToken
9
- } from "./chunk-HHBXCRJS.js";
9
+ } from "./chunk-PYKV6FSC.js";
10
10
  import {
11
11
  getIsDesktopApp
12
- } from "./chunk-L3JWI7WX.js";
12
+ } from "./chunk-QOKAKDPE.js";
13
13
 
14
14
  // packages/ai/agent/cliChatClient.ts
15
15
  function getCliChatRequestConfig(thunkApi) {
@@ -13,7 +13,7 @@ import {
13
13
  toTimestampMs,
14
14
  upsert,
15
15
  write
16
- } from "./chunk-76UA7376.js";
16
+ } from "./chunk-AV6KQCM5.js";
17
17
  import {
18
18
  createUserKey,
19
19
  createUserPreferenceKey,
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-QSJ3HFEF.js";
25
25
  import {
26
26
  BUILTIN_NOLO_AGENT_KEY
27
- } from "./chunk-2JYSSXLY.js";
27
+ } from "./chunk-VULELK4T.js";
28
28
  import {
29
29
  asyncThunkCreator,
30
30
  buildCreateSlice,
@@ -32,12 +32,12 @@ import {
32
32
  createAsyncThunk,
33
33
  createSelector,
34
34
  selectIdentityUserId
35
- } from "./chunk-HHBXCRJS.js";
35
+ } from "./chunk-PYKV6FSC.js";
36
36
  import {
37
37
  getAllServers,
38
38
  getIsDesktopApp,
39
39
  isProduction
40
- } from "./chunk-L3JWI7WX.js";
40
+ } from "./chunk-QOKAKDPE.js";
41
41
  import {
42
42
  SERVERS
43
43
  } from "./chunk-LCBAMY2M.js";
@@ -5,14 +5,14 @@ import {
5
5
  inlineImageUrlsForCustomProvider,
6
6
  prepareTools,
7
7
  shouldInlineImageUrlsForAgent
8
- } from "./chunk-VM7K5EJL.js";
8
+ } from "./chunk-UW4INMD2.js";
9
9
  import {
10
10
  INVALID_TOOL_ARGS_REPLACEMENT,
11
11
  buildInvalidToolCallSelfHealResult,
12
12
  parseToolCallArguments,
13
13
  performFetchRequest,
14
14
  sanitizeOutboundMessages
15
- } from "./chunk-5SXS7T5Q.js";
15
+ } from "./chunk-TI5BCZCH.js";
16
16
  import {
17
17
  createSSEParser,
18
18
  createToolRunId,
@@ -23,22 +23,22 @@ import {
23
23
  toolRunSetPending,
24
24
  toolRunStarted,
25
25
  toolRunSucceeded
26
- } from "./chunk-SUFDWBLV.js";
26
+ } from "./chunk-V4KZGLOI.js";
27
27
  import {
28
28
  getPublicImageAgentMode
29
29
  } from "./chunk-VIDPVFP3.js";
30
30
  import {
31
31
  getCurrentSpaceId
32
- } from "./chunk-RVHPY5PC.js";
32
+ } from "./chunk-LA4IDAK7.js";
33
33
  import {
34
34
  addToolMessage,
35
35
  messageStreamEnd,
36
36
  messageStreaming,
37
37
  updateToolMessage
38
- } from "./chunk-BKPUPZ6W.js";
38
+ } from "./chunk-BJLYCOZK.js";
39
39
  import {
40
40
  streamAgentChatTurn
41
- } from "./chunk-K7CNV7GI.js";
41
+ } from "./chunk-U2A47SVI.js";
42
42
  import {
43
43
  addActiveController,
44
44
  removeActiveController,
@@ -56,19 +56,19 @@ import {
56
56
  import {
57
57
  EMPTY_ASSISTANT_REPAIR_PROMPT,
58
58
  getModelInfo
59
- } from "./chunk-PTHLNXGY.js";
59
+ } from "./chunk-KUUTWU4I.js";
60
60
  import {
61
61
  getApiEndpoint
62
- } from "./chunk-7UFH6THF.js";
62
+ } from "./chunk-QDHZCAH3.js";
63
63
  import {
64
64
  toErrorMessage
65
65
  } from "./chunk-HNMXYYJR.js";
66
66
  import {
67
67
  selectCurrentServer
68
- } from "./chunk-X7S7OFUX.js";
68
+ } from "./chunk-3QJTD6DO.js";
69
69
  import {
70
70
  write
71
- } from "./chunk-76UA7376.js";
71
+ } from "./chunk-AV6KQCM5.js";
72
72
  import {
73
73
  createDialogMessageKeyAndId,
74
74
  dialogMessageKey,
@@ -80,10 +80,10 @@ import {
80
80
  import {
81
81
  createAsyncThunk,
82
82
  selectIdentityToken
83
- } from "./chunk-HHBXCRJS.js";
83
+ } from "./chunk-PYKV6FSC.js";
84
84
  import {
85
85
  isAbortError
86
- } from "./chunk-L3JWI7WX.js";
86
+ } from "./chunk-QOKAKDPE.js";
87
87
  import {
88
88
  isRecord
89
89
  } from "./chunk-KUG52IAP.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_AGENT_BASE_POLICY,
3
3
  DEFAULT_USER_PREFERENCE_PROFILE
4
- } from "./chunk-X7S7OFUX.js";
4
+ } from "./chunk-3QJTD6DO.js";
5
5
 
6
6
  // packages/ai/policy/runtimePolicy.ts
7
7
  var clampLevel = (value, fallback) => {
@@ -4,7 +4,7 @@ import {
4
4
  openrouterModels,
5
5
  platformHostedModels,
6
6
  zaiModels
7
- } from "./chunk-J7KVJAUQ.js";
7
+ } from "./chunk-WL3UOGYO.js";
8
8
 
9
9
  // packages/ai/llm/modelAbility.ts
10
10
  var MODEL_ABILITY_TABLE = {
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-DQLYEGP7.js";
8
8
  import {
9
9
  toSafeAgentSummary
10
- } from "./chunk-YFHUQLJF.js";
10
+ } from "./chunk-RU5D3B22.js";
11
11
  import {
12
12
  PUBLIC_AGENT_KEY_PREFIX,
13
13
  isOwnedAgentKey,
@@ -7,7 +7,7 @@ import {
7
7
  providerHttpFailure,
8
8
  readSseFrames,
9
9
  throwIfChatCompletionStreamFailed
10
- } from "./chunk-WUMYQ2FE.js";
10
+ } from "./chunk-INXBNYCG.js";
11
11
  import {
12
12
  FRESH_TOOL_OUTPUT_MAX_CHARS,
13
13
  MAX_HISTORICAL_TOOL_CONTENT_CHARS,
@@ -17,7 +17,7 @@ import {
17
17
  resolveHistoricalToolContentCap,
18
18
  resolveToolOutputProfile,
19
19
  stripImagePartsFromMessages
20
- } from "./chunk-2T6XO4PK.js";
20
+ } from "./chunk-CVT7L2WZ.js";
21
21
  import {
22
22
  sanitizeForOutbound
23
23
  } from "./chunk-T27IEBNQ.js";
@@ -36,7 +36,7 @@ import {
36
36
  requiresBareImageUrl,
37
37
  resolveToolGuidedSections,
38
38
  toBareImageUrlMessages
39
- } from "./chunk-DMCFF4KE.js";
39
+ } from "./chunk-YBV6QJKM.js";
40
40
  import {
41
41
  convertMessagesToResponsesInput,
42
42
  extractReasoningFromResponseOutput,
@@ -50,7 +50,7 @@ import {
50
50
  import {
51
51
  buildProviderAuthHeaders,
52
52
  buildProviderExecutionPlan
53
- } from "./chunk-5Y5G76BJ.js";
53
+ } from "./chunk-SP3DPVBH.js";
54
54
  import {
55
55
  NOLO_WORKSPACE_TOOL_NAMES,
56
56
  buildNoloWorkspaceCommandArgs,
@@ -69,7 +69,7 @@ import {
69
69
  resolveEmptyAssistantFallbackMessage,
70
70
  resolveEmptyAssistantOutcome,
71
71
  resolveTruncatedReasoningTailLog
72
- } from "./chunk-PTHLNXGY.js";
72
+ } from "./chunk-KUUTWU4I.js";
73
73
  import {
74
74
  COMPACTION_SUMMARY_SCHEMA_VERSION,
75
75
  COMPACTION_SUMMARY_SYSTEM_PROMPT,
@@ -83,7 +83,7 @@ import {
83
83
  formatMessagesForSummaryWithTruncation,
84
84
  planCompression,
85
85
  planContextUsage
86
- } from "./chunk-HR5XDXYM.js";
86
+ } from "./chunk-H4RYESI6.js";
87
87
  import {
88
88
  resolveNoloStateDir
89
89
  } from "./chunk-FD36SCCD.js";
@@ -1921,7 +1921,7 @@ ${reasoningTailLog}
1921
1921
  );
1922
1922
  try {
1923
1923
  const writeTool = toolName === "writeFile" || toolName === "editFile";
1924
- if (writeTool && input.onActionGate) {
1924
+ if (writeTool && input.onActionGate && input.fileWriteGateEnabled !== false) {
1925
1925
  const writeSession = getFileWriteSessionApproval(input);
1926
1926
  const policy = evaluateFileWritePolicy({
1927
1927
  tool: toolName,
@@ -1942,12 +1942,16 @@ ${reasoningTailLog}
1942
1942
  `${toolName} confirmation`
1943
1943
  );
1944
1944
  const gateResult = replacement?.metadata?.actionGateResult;
1945
- if (replacement === void 0 || isCompletedActionGateResult(gateResult)) {
1945
+ if (replacement !== void 0 && isCompletedActionGateResult(gateResult)) {
1946
1946
  writeSession.approved = true;
1947
- } else if (gateResult && typeof gateResult === "object" && (gateResult.status === "cancelled" || gateResult.status === "failed")) {
1948
- toolResult = replacement;
1949
1947
  } else {
1950
- writeSession.approved = true;
1948
+ toolResult = replacement ?? {
1949
+ content: `${toolName} cancelled: user declined file write confirmation.`,
1950
+ metadata: {
1951
+ cancelled: true,
1952
+ actionGateResult: { gateId: gate.id, status: "cancelled" }
1953
+ }
1954
+ };
1951
1955
  }
1952
1956
  }
1953
1957
  }
@@ -1987,7 +1991,7 @@ ${reasoningTailLog}
1987
1991
  toolCallId: toolCall.id,
1988
1992
  toolName,
1989
1993
  atMs: finishedAt,
1990
- ok: true,
1994
+ ok: toolResult.metadata?.cancelled !== true && toolResult.metadata?.actionGateResult?.status !== "cancelled" && toolResult.metadata?.actionGateResult?.status !== "failed",
1991
1995
  elapsedMs: Math.max(0, finishedAt - startedAt),
1992
1996
  ...summary ? { summary } : {},
1993
1997
  ...safeMetadata ? { metadata: safeMetadata } : {}
@@ -6982,10 +6986,10 @@ function buildLoadSkillExecutor(args) {
6982
6986
  metadata: { loadSkill: true, resolved: false }
6983
6987
  };
6984
6988
  }
6985
- const { resolveSkillByName } = await import("./skillDiscovery-COX56OBO.js");
6989
+ const { resolveSkillByName } = await import("./skillDiscovery-GPUDHDTZ.js");
6986
6990
  const resolved = resolveSkillByName(args.cwd, name);
6987
6991
  if (!resolved) {
6988
- const { resolveCodingBuiltinSlug, buildCodingSkillContentBySlug } = await import("./codingSkills-BYQI6EPT.js");
6992
+ const { resolveCodingBuiltinSlug, buildCodingSkillContentBySlug } = await import("./codingSkills-BCQXRZOI.js");
6989
6993
  const builtinSlug = resolveCodingBuiltinSlug(name);
6990
6994
  if (builtinSlug) {
6991
6995
  const body = buildCodingSkillContentBySlug(builtinSlug);
@@ -7020,7 +7024,7 @@ ${body}`,
7020
7024
  };
7021
7025
  }
7022
7026
  async function formatUnknownSkillMessage(cwd, requestedName) {
7023
- const { discoverSkills } = await import("./skillDiscovery-COX56OBO.js");
7027
+ const { discoverSkills } = await import("./skillDiscovery-GPUDHDTZ.js");
7024
7028
  let available = [];
7025
7029
  try {
7026
7030
  available = discoverSkills(cwd).map((s) => s.name);
@@ -7038,6 +7042,7 @@ Available skills: ${available.join(", ")}`;
7038
7042
  export {
7039
7043
  readCommandActionGatePayload,
7040
7044
  readActionGate,
7045
+ evaluateFileWritePolicy,
7041
7046
  summarizeToolArguments,
7042
7047
  LOCAL_AGENT_CONFIG_MISSING_CODE,
7043
7048
  LOCAL_TURN_ABORTED_CODE,
@@ -19,7 +19,7 @@ import {
19
19
  parseAgentRunEvent,
20
20
  t,
21
21
  toolLabel
22
- } from "./chunk-W6N3GLUU.js";
22
+ } from "./chunk-GV35EHNA.js";
23
23
  import {
24
24
  getReadableCliDb
25
25
  } from "./chunk-43CXXVJD.js";
@@ -52,7 +52,7 @@ import {
52
52
  } from "./chunk-LTRXGFMS.js";
53
53
  import {
54
54
  formatAgentListCard
55
- } from "./chunk-SUFDWBLV.js";
55
+ } from "./chunk-V4KZGLOI.js";
56
56
  import {
57
57
  isTransientFetchError
58
58
  } from "./chunk-5XTOKQLW.js";
@@ -74,31 +74,31 @@ import {
74
74
  chooseMemoryOwners,
75
75
  loadMemoryCandidatesFromDb,
76
76
  resolveAgentMemoryPolicy
77
- } from "./chunk-MC66ASS6.js";
77
+ } from "./chunk-6SZ52ORL.js";
78
78
  import {
79
79
  API_REPORTED_COST_MULTIPLIER,
80
80
  normalizeUsage,
81
81
  parseUiAskChoiceContent
82
- } from "./chunk-BKPUPZ6W.js";
82
+ } from "./chunk-BJLYCOZK.js";
83
83
  import {
84
84
  getDefaultCliLocalRuntimeDb
85
85
  } from "./chunk-IA3A5373.js";
86
86
  import {
87
87
  buildSkillDiscoveryContextLayer
88
- } from "./chunk-OFZPJ3NT.js";
88
+ } from "./chunk-2BWU4ORW.js";
89
89
  import {
90
90
  parseExternalSkillMarkdown,
91
91
  parseSkillDocProtocol
92
- } from "./chunk-AETZ7AD6.js";
92
+ } from "./chunk-EY7V7REW.js";
93
93
  import {
94
94
  LOCAL_AGENT_CONFIG_MISSING_CODE,
95
95
  LOCAL_TURN_ABORTED_CODE,
96
96
  readActionGate,
97
97
  readCommandActionGatePayload
98
- } from "./chunk-J4Z6UI4C.js";
98
+ } from "./chunk-6BGAQ3KR.js";
99
99
  import {
100
100
  resolveAgentRuntimeConfigFromRecord
101
- } from "./chunk-2T6XO4PK.js";
101
+ } from "./chunk-CVT7L2WZ.js";
102
102
  import {
103
103
  createThinkParserState,
104
104
  flushThinkParser,
@@ -107,20 +107,20 @@ import {
107
107
  import {
108
108
  resolveClientVersion,
109
109
  resolvePlatformAuthToken
110
- } from "./chunk-5Y5G76BJ.js";
110
+ } from "./chunk-SP3DPVBH.js";
111
111
  import {
112
112
  isQuotaExhaustedError
113
113
  } from "./chunk-IWUMSAQF.js";
114
114
  import {
115
115
  DEFAULT_CONTEXT_WINDOW,
116
116
  getModelContextWindow
117
- } from "./chunk-PTHLNXGY.js";
117
+ } from "./chunk-KUUTWU4I.js";
118
118
  import {
119
119
  clipCompactText
120
- } from "./chunk-HR5XDXYM.js";
120
+ } from "./chunk-H4RYESI6.js";
121
121
  import {
122
122
  findModelConfig
123
- } from "./chunk-7UFH6THF.js";
123
+ } from "./chunk-QDHZCAH3.js";
124
124
  import {
125
125
  compactWhitespace
126
126
  } from "./chunk-DWLEOOGR.js";
@@ -145,7 +145,7 @@ import {
145
145
  CLIENT_VERSION_TOO_OLD_CODE,
146
146
  NOLO_CLIENT_VERSION_HEADER,
147
147
  buildClientVersionUpgradeMessage
148
- } from "./chunk-J7KVJAUQ.js";
148
+ } from "./chunk-WL3UOGYO.js";
149
149
  import {
150
150
  parsePositiveFiniteNumberOrFallback
151
151
  } from "./chunk-Y5GCAMGP.js";
@@ -159,7 +159,7 @@ import {
159
159
  BUILTIN_NOLO_AGENT_KEY,
160
160
  BUILTIN_NOLO_AGENT_NAME,
161
161
  builtinAgentCatalogEntryById
162
- } from "./chunk-2JYSSXLY.js";
162
+ } from "./chunk-VULELK4T.js";
163
163
  import {
164
164
  parsePublicAgentId
165
165
  } from "./chunk-BJIRLHJR.js";
@@ -1240,13 +1240,6 @@ function setActiveThemeMode(mode) {
1240
1240
  function setActiveBrightness(brightness) {
1241
1241
  setActiveThemeMode(brightness ?? "terminal");
1242
1242
  }
1243
- var activeDensity = "spacious";
1244
- function getActiveDensity() {
1245
- return activeDensity;
1246
- }
1247
- function setActiveDensity(density) {
1248
- activeDensity = density;
1249
- }
1250
1243
  var TRUECOLOR_TERM_PROGRAMS = /* @__PURE__ */ new Set([
1251
1244
  "iterm.app",
1252
1245
  "wezterm",
@@ -4923,7 +4916,7 @@ ${this.text}
4923
4916
  0,
4924
4917
  Math.floor((Date.now() - this.startTime) / 1e3)
4925
4918
  );
4926
- const thinkingPart = this.thinkingHint ? `: ${truncateThinkingHint(this.thinkingHint, 60)}` : "";
4919
+ const thinkingPart = this.thinkingHint ? dimCliText(`: ${truncateThinkingHint(this.thinkingHint, 60)}`) : "";
4927
4920
  return `${themeColorSequence("accent")}${frame}\x1B[39m ${this.text}${thinkingPart} (${formatElapsed(elapsedSeconds)})`;
4928
4921
  }
4929
4922
  };
@@ -4991,6 +4984,20 @@ function createCliTurnOutput(params) {
4991
4984
  let everStreamedAnyText = false;
4992
4985
  let printedAssistantLabel = false;
4993
4986
  let thinkState = createThinkParserState();
4987
+ let thinkingFirstAt = null;
4988
+ let thinkingLastAt = 0;
4989
+ const markThinkingActivity = () => {
4990
+ const now = Date.now();
4991
+ if (thinkingFirstAt === null) thinkingFirstAt = now;
4992
+ thinkingLastAt = now;
4993
+ };
4994
+ const writeThinkingTrace = () => {
4995
+ if (thinkingFirstAt === null) return;
4996
+ const seconds = Math.max(0, Math.round((thinkingLastAt - thinkingFirstAt) / 1e3));
4997
+ thinkingFirstAt = null;
4998
+ options.output.write(`${dimCliText(t("thinkingTraceLine", formatElapsed(seconds)))}
4999
+ `);
5000
+ };
4994
5001
  let compactionEvent = null;
4995
5002
  const assistantLabelManaged = options.output.assistantLabelManaged === true;
4996
5003
  const writeToolOutput = (chunk) => {
@@ -5010,9 +5017,11 @@ function createCliTurnOutput(params) {
5010
5017
  thinkState = parsed.state;
5011
5018
  if (!parsed.content && !parsed.reasoning) return;
5012
5019
  if (showThinking && parsed.reasoning) {
5020
+ markThinkingActivity();
5013
5021
  spinner.setThinkingHint(parsed.reasoning);
5014
5022
  }
5015
5023
  if (!parsed.content) return;
5024
+ writeThinkingTrace();
5016
5025
  spinner.stop();
5017
5026
  options.activityReporter?.(null);
5018
5027
  if (!printedAssistantLabel) {
@@ -5072,7 +5081,10 @@ ${options.agentName}${IDENTITY_LABEL_SEPARATOR}`);
5072
5081
  writeVisibleAssistantChunk(chunk);
5073
5082
  },
5074
5083
  pushThinking(chunk) {
5075
- if (showThinking) spinner.setThinkingHint(chunk);
5084
+ if (showThinking) {
5085
+ markThinkingActivity();
5086
+ spinner.setThinkingHint(chunk);
5087
+ }
5076
5088
  },
5077
5089
  handleToolEvent,
5078
5090
  /** 记录一条 compaction 观测事件(TUI 在 turn 结束时渲染一行 dim 摘要)。 */
@@ -5087,6 +5099,7 @@ ${options.agentName}${IDENTITY_LABEL_SEPARATOR}`);
5087
5099
  finish(fallbackContent) {
5088
5100
  spinner.stop();
5089
5101
  options.activityReporter?.(null);
5102
+ writeThinkingTrace();
5090
5103
  const flushedThink = flushThinkParser(thinkState);
5091
5104
  thinkState = flushedThink.state;
5092
5105
  if (flushedThink.content) {
@@ -5307,6 +5320,10 @@ ${describeClientVersionTooOldFailure(message, error)}`);
5307
5320
  function resolveAuthToken2(env) {
5308
5321
  return resolvePlatformAuthToken(env);
5309
5322
  }
5323
+ function resolveFileWriteGateEnabled(env) {
5324
+ const raw = (env.NOLO_CLI_WRITE_GATE ?? "").trim().toLowerCase();
5325
+ return raw !== "off" && raw !== "0" && raw !== "false";
5326
+ }
5310
5327
  function isMachineBoundLocalhostCustomProvider(agentConfig) {
5311
5328
  const machineId = agentConfig?.runtimeBinding && typeof agentConfig.runtimeBinding === "object" ? String(agentConfig.runtimeBinding.machineId ?? "").trim() : "";
5312
5329
  const providerUrl = asTrimmedString(agentConfig?.customProviderUrl);
@@ -5398,7 +5415,16 @@ function isKnownServerPlatformAgent(options) {
5398
5415
  // packages/core/collapsedPaste.ts
5399
5416
  var COLLAPSE_PASTE_MIN_LINES = 8;
5400
5417
  var COLLAPSE_PASTE_MIN_CHARS = 400;
5401
- var COLLAPSED_PASTE_PLACEHOLDER_RE = /\[paste #(\d+) · (\d+) lines\]/g;
5418
+ var COLLAPSED_PASTE_PLACEHOLDER_RE = (
5419
+ // 兼容两种格式:旧 `[paste #N · L lines]` 与新 `[paste #N · L lines · preview]`。
5420
+ // preview 段用负向先行断言排除模型引用(`…; full content available via
5421
+ // readPastedText(pasteId=N)`):legacy 无 scope 的模型引用与新 chip 形状重叠,
5422
+ // 若被当作 chip 匹配,跨会话残留的引用会被错误展开/替换(破坏 durable
5423
+ // fallback 语义)。preview 与模型引用尾段在生成时都不会包含该标记原文之外
5424
+ // 的歧义,此处按"完整模型引用尾段"精确排除。
5425
+ /\[paste #(\d+) · (\d+) lines(?: · (?![^\]]*; full content available via readPastedText\(pasteId=\d+\))([^\]]*))?\]/g
5426
+ );
5427
+ var COLLAPSED_PASTE_PREVIEW_MAX_CHARS = 24;
5402
5428
  var COLLAPSED_PASTE_MODEL_REFERENCE_RE = /\[paste #(\d+)(?: scope:([a-zA-Z0-9_-]+))? · [^\]]+; full content available via readPastedText\(pasteId=(\d+)\)\]/g;
5403
5429
  function countTextLines(text) {
5404
5430
  if (text.length === 0) return 0;
@@ -5438,9 +5464,22 @@ function estimatePasteBytes(text) {
5438
5464
  }
5439
5465
  return bytes;
5440
5466
  }
5467
+ function buildCollapsedPastePreview(text) {
5468
+ const firstNonEmptyLine = text.split(/\r\n|\r|\n/).find((line) => line.trim().length > 0) ?? "";
5469
+ let preview = compactWhitespace(firstNonEmptyLine);
5470
+ preview = preview.replace(new RegExp("\\]|\\p{C}", "gu"), "").trim();
5471
+ if (preview.length === 0) return "";
5472
+ const chars = Array.from(preview);
5473
+ if (chars.length > COLLAPSED_PASTE_PREVIEW_MAX_CHARS) {
5474
+ return chars.slice(0, COLLAPSED_PASTE_PREVIEW_MAX_CHARS).join("") + "\u2026";
5475
+ }
5476
+ return preview;
5477
+ }
5441
5478
  function formatCollapsedPastePlaceholder(id, text) {
5442
5479
  const lines = countTextLines(text);
5443
- return `[paste #${id} \xB7 ${lines} lines]`;
5480
+ const preview = buildCollapsedPastePreview(text);
5481
+ if (!preview) return `[paste #${id} \xB7 ${lines} lines]`;
5482
+ return `[paste #${id} \xB7 ${lines} lines \xB7 ${preview}]`;
5444
5483
  }
5445
5484
  function generatePasteScope() {
5446
5485
  if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
@@ -5553,7 +5592,7 @@ function findCollapsedPasteSpanAt(buffer, pos, opts = {}) {
5553
5592
  // packages/cli/client/agentRun.ts
5554
5593
  import { ulid } from "ulid";
5555
5594
  async function loadRunLocalAgentTurn() {
5556
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-KWBPJ53H.js");
5595
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-PCJJ56J2.js");
5557
5596
  return runLocalAgentTurn;
5558
5597
  }
5559
5598
  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();
@@ -6179,6 +6218,7 @@ async function runLocalAgentTurnForCli(options, settings) {
6179
6218
  } : {},
6180
6219
  continueDialogId: currentDialogId,
6181
6220
  fileWriteSessionId: currentDialogId,
6221
+ fileWriteGateEnabled: resolveFileWriteGateEnabled(options.env),
6182
6222
  spaceId: options.spaceId,
6183
6223
  category: options.category,
6184
6224
  inheritedFromDialogKey: options.inheritedFromDialogKey,
@@ -7588,8 +7628,6 @@ export {
7588
7628
  getActiveThemeMode,
7589
7629
  setActiveThemeMode,
7590
7630
  setActiveBrightness,
7591
- getActiveDensity,
7592
- setActiveDensity,
7593
7631
  detectSystemBrightnessFromEnv,
7594
7632
  resolveTuiBrightness,
7595
7633
  resolveTuiThemeMode,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildSkillDocMarkdown
3
- } from "./chunk-AETZ7AD6.js";
3
+ } from "./chunk-EY7V7REW.js";
4
4
 
5
5
  // packages/cli/docPageHelpers.ts
6
6
  import { readFileSync } from "node:fs";
@@ -1,31 +1,31 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-RVHPY5PC.js";
3
+ } from "./chunk-LA4IDAK7.js";
4
4
  import {
5
5
  prepareAndPersistMessage,
6
6
  uiAskChoiceFunc,
7
7
  uiAskChoiceFunctionSchema
8
- } from "./chunk-BKPUPZ6W.js";
8
+ } from "./chunk-BJLYCOZK.js";
9
9
  import {
10
10
  require_date_fns
11
11
  } from "./chunk-M76ECQRD.js";
12
12
  import {
13
13
  TOOL_PACKS
14
- } from "./chunk-LGUQHYAL.js";
14
+ } from "./chunk-O5FLGN2L.js";
15
15
  import {
16
16
  buildSkillDocMarkdown
17
- } from "./chunk-AETZ7AD6.js";
17
+ } from "./chunk-EY7V7REW.js";
18
18
  import {
19
19
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
20
20
  PLATFORM_HOSTED_KIMI_PROVIDER
21
- } from "./chunk-J7KVJAUQ.js";
21
+ } from "./chunk-WL3UOGYO.js";
22
22
  import {
23
23
  read,
24
24
  readAndWait,
25
25
  removeCachedEntity,
26
26
  upsertSSREntity,
27
27
  write
28
- } from "./chunk-76UA7376.js";
28
+ } from "./chunk-AV6KQCM5.js";
29
29
  import {
30
30
  createAgentKey,
31
31
  createDialogKey,
@@ -40,10 +40,10 @@ import {
40
40
  } from "./chunk-BJIRLHJR.js";
41
41
  import {
42
42
  selectIdentityUserId
43
- } from "./chunk-HHBXCRJS.js";
43
+ } from "./chunk-PYKV6FSC.js";
44
44
  import {
45
45
  isDevelopment
46
- } from "./chunk-L3JWI7WX.js";
46
+ } from "./chunk-QOKAKDPE.js";
47
47
  import {
48
48
  isRecord
49
49
  } from "./chunk-KUG52IAP.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  trimTrailingSlash
3
- } from "./chunk-5Y5G76BJ.js";
3
+ } from "./chunk-SP3DPVBH.js";
4
4
  import {
5
5
  toErrorMessage
6
6
  } from "./chunk-HNMXYYJR.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  selectCurrentServer,
3
3
  selectRemoteServers
4
- } from "./chunk-X7S7OFUX.js";
4
+ } from "./chunk-3QJTD6DO.js";
5
5
  import {
6
6
  createUserKey,
7
7
  extractAgentInfo,
@@ -16,10 +16,10 @@ import {
16
16
  noloWriteRequest,
17
17
  selectIdentityUser,
18
18
  selectIdentityUserId
19
- } from "./chunk-HHBXCRJS.js";
19
+ } from "./chunk-PYKV6FSC.js";
20
20
  import {
21
21
  normalizeTimeFields
22
- } from "./chunk-L3JWI7WX.js";
22
+ } from "./chunk-QOKAKDPE.js";
23
23
 
24
24
  // packages/share/action.ts
25
25
  var generateToken = () => {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-W6N3GLUU.js";
4
+ } from "./chunk-GV35EHNA.js";
5
5
  import {
6
6
  clipMultilineText
7
- } from "./chunk-SUFDWBLV.js";
7
+ } from "./chunk-V4KZGLOI.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
- } from "./chunk-J4Z6UI4C.js";
10
+ } from "./chunk-6BGAQ3KR.js";
11
11
  import {
12
12
  resolveLocalRuntimeEnvFromPolicy
13
13
  } from "./chunk-NQ4N4IGO.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  TOOL_PACKS,
3
3
  buildCodeWorkDiscipline
4
- } from "./chunk-LGUQHYAL.js";
4
+ } from "./chunk-O5FLGN2L.js";
5
5
  import {
6
6
  buildSkillDocMarkdown,
7
7
  resolvePageSkillMetadata
8
- } from "./chunk-AETZ7AD6.js";
8
+ } from "./chunk-EY7V7REW.js";
9
9
  import {
10
10
  canonicalizeToolNames
11
11
  } from "./chunk-O6OSWFZQ.js";