nolo-cli 0.13.0 → 0.14.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 (89) hide show
  1. package/{_executeModel-4F7VZR5U.js → _executeModel-KMUDFYY2.js} +27 -28
  2. package/{action-OTOWUMPW.js → action-N3KXFO5V.js} +7 -7
  3. package/{addContentAction-JGBUVR7K.js → addContentAction-4Z762DMR.js} +6 -6
  4. package/{addDialogAgentAction-V6CL2UCF.js → addDialogAgentAction-FALLEKPR.js} +5 -5
  5. package/{agentDeleteCommand-MMRSG6AB.js → agentDeleteCommand-AZDVM4HQ.js} +18 -18
  6. package/{agentEmailCommands-VQENDYL5.js → agentEmailCommands-AP6MX4XN.js} +34 -35
  7. package/{agentListCommands-2PZHIQ3I.js → agentListCommands-OJLOXSKL.js} +19 -19
  8. package/{agentMachineCommands-Q3I3VDWS.js → agentMachineCommands-G4T4GU42.js} +18 -18
  9. package/{agentRecordCommands-RY7CSPPL.js → agentRecordCommands-RNENEXQI.js} +32 -33
  10. package/{agentRunCommand-U76NZ2G6.js → agentRunCommand-2VTOTQWA.js} +33 -35
  11. package/{agentRuntimeLocal-QDJCBXM2.js → agentRuntimeLocal-4CM3VHR3.js} +16 -16
  12. package/{agentSlice-6JAJOU3X.js → agentSlice-BLHSFM3Q.js} +7 -7
  13. package/{authCommand-DMW336GT.js → authCommand-O7SL3WW5.js} +4 -4
  14. package/{chunk-MZHSAPZP.js → chunk-2Q5FTOQA.js} +52 -37
  15. package/{chunk-MG6BVV3T.js → chunk-33K5FKRL.js} +170 -98
  16. package/{chunk-JFANOO7I.js → chunk-3B2LFO6R.js} +6 -3
  17. package/{chunk-WVTBAALN.js → chunk-3FCSMQAC.js} +2 -2
  18. package/{chunk-4LG74DRG.js → chunk-4IJYA27C.js} +1 -1
  19. package/{chunk-O4FOPRCP.js → chunk-4UUJFFMK.js} +1 -1
  20. package/{chunk-CGDQDXKZ.js → chunk-5R73BS7Y.js} +1 -1
  21. package/{chunk-VKG4HXYV.js → chunk-A5V7UEZJ.js} +9 -9
  22. package/{chunk-DPFWKRHG.js → chunk-BHK5ZAW7.js} +2 -2
  23. package/{chunk-UWNSWEEC.js → chunk-BMZRD37B.js} +137 -55
  24. package/{chunk-IVAOVLM7.js → chunk-BOJVWKNA.js} +1 -1
  25. package/{chunk-Y5P3ZRGC.js → chunk-CPGQAMHA.js} +6 -6
  26. package/{chunk-YUMYYXPI.js → chunk-DQUUZXUZ.js} +16 -16
  27. package/{chunk-BTYBYAMP.js → chunk-GGQW6DXG.js} +2 -2
  28. package/{chunk-5V524MHX.js → chunk-HJAMZQFI.js} +14 -13
  29. package/{chunk-WPHL6ALY.js → chunk-JTINRTBT.js} +1 -1
  30. package/{chunk-FSUZIGIG.js → chunk-LVJFD5HS.js} +76 -62
  31. package/{chunk-XHQWJUW4.js → chunk-NJVPXLRY.js} +1 -1
  32. package/{chunk-H5Y2H2N6.js → chunk-OIMX7MM4.js} +1 -1
  33. package/{chunk-QAJWQTLB.js → chunk-ONJIZ7UF.js} +42 -30
  34. package/{chunk-5S4SWV5G.js → chunk-PB2DHBEQ.js} +1 -1
  35. package/{chunk-C3BFP57W.js → chunk-RTHJF57Z.js} +1 -1
  36. package/{chunk-QUHUVG6Y.js → chunk-RZALKBP4.js} +2 -2
  37. package/{chunk-JU7J7EAV.js → chunk-S5UACFUP.js} +56 -4
  38. package/{chunk-ARSC56DC.js → chunk-S6V2Y72C.js} +1 -1
  39. package/{chunk-KGI44L4E.js → chunk-SE4YDESE.js} +7 -7
  40. package/{chunk-QJSTNKJY.js → chunk-T3X232L6.js} +1 -1
  41. package/{chunk-OPM2DE2J.js → chunk-TLNEQI2R.js} +4 -4
  42. package/{chunk-VBSWHE5W.js → chunk-TQCONXQ3.js} +1 -1
  43. package/{chunk-LUKQQJFL.js → chunk-UW3WOIWJ.js} +1 -1
  44. package/{chunk-RWO5DGXI.js → chunk-V6VXDXGY.js} +3 -3
  45. package/{chunk-2BVGERJ2.js → chunk-VFGBWVXO.js} +106 -11
  46. package/{chunk-TA7VKOHU.js → chunk-VQFY3VXW.js} +6 -3
  47. package/{chunk-TQYYGE6G.js → chunk-XBZL4SGS.js} +3 -3
  48. package/{chunk-3MI5LDDU.js → chunk-XIDYAII4.js} +2 -2
  49. package/{createAgentAutomationAction-4NY4JLOK.js → createAgentAutomationAction-RIOI4YZI.js} +13 -13
  50. package/{createDialogAction-I5WUWFJ6.js → createDialogAction-QBHFBWM4.js} +14 -15
  51. package/{createPageAction-HFTIQ7TW.js → createPageAction-GHVLL7YQ.js} +13 -13
  52. package/{dbSlice-J4PUZ6Y5.js → dbSlice-7Q23HSWH.js} +5 -5
  53. package/{deleteFile-M7UNIUOO.js → deleteFile-WPWVZE4B.js} +3 -3
  54. package/{dialogCommands-SVXRJFZS.js → dialogCommands-BQDGLVMO.js} +19 -19
  55. package/{dialogSlice-35LA3ZRG.js → dialogSlice-VNKDTTHR.js} +13 -13
  56. package/{docCreateCommands-Z7RIAYKQ.js → docCreateCommands-K2MPMXYF.js} +18 -18
  57. package/{docDeleteCommands-NEYHUVZF.js → docDeleteCommands-NBAARB77.js} +19 -19
  58. package/{docReadCommands-I4US2SDE.js → docReadCommands-S3MO5RPS.js} +18 -18
  59. package/{docStore-3CP2IO6M.js → docStore-W4KEEPCW.js} +14 -14
  60. package/{docUpdateCommands-UU5HQBRP.js → docUpdateCommands-EHEI7FCE.js} +18 -18
  61. package/fetchMessages-KTNM7QAR.js +1 -1
  62. package/getPricing-UGDJHI7M.js +1 -1
  63. package/{handleSendMessageAction-FWTLQGOZ.js → handleSendMessageAction-6BFLKGWQ.js} +13 -13
  64. package/index.js +42 -42
  65. package/{machineCommands-NGE4ZARV.js → machineCommands-R27VIC5L.js} +33 -34
  66. package/{machineWsRunDispatch-FISQUBI2.js → machineWsRunDispatch-5JH6QGHK.js} +31 -32
  67. package/package.json +1 -1
  68. package/{read-2MIMRBZ2.js → read-SIWMJRHC.js} +3 -3
  69. package/{readDocTool-QHVGQHUJ.js → readDocTool-TCYJY4PP.js} +1 -1
  70. package/{readlineWorkspace-JK6P56TT.js → readlineWorkspace-RJ3TDGEK.js} +169 -57
  71. package/{removeDialogAgentAction-XUZYQBV4.js → removeDialogAgentAction-WKHZT6VJ.js} +7 -7
  72. package/{runAgentClientLoop-FP2K33ZO.js → runAgentClientLoop-6D7FP7CK.js} +24 -25
  73. package/{setDialogExtraReferencesAction-PTAIFKGM.js → setDialogExtraReferencesAction-GCI5QU6E.js} +5 -5
  74. package/{setPrimaryDialogAgentAction-HRFTDB44.js → setPrimaryDialogAgentAction-NRO57AS6.js} +7 -7
  75. package/{settingSlice-VGRJUSE5.js → settingSlice-FTWZ5ZHT.js} +8 -6
  76. package/{spaceCommands-GN73BCOB.js → spaceCommands-4R63UST3.js} +18 -18
  77. package/{spaceSlice-WTFNKOVA.js → spaceSlice-6PZEMRZM.js} +13 -13
  78. package/{streamAgentChatTurn-HBAQQVNK.js → streamAgentChatTurn-VW7433O6.js} +51 -42
  79. package/{tools-TPQYTLQZ.js → tools-MWNK4RKM.js} +18 -19
  80. package/{tuiSummaryLlmCaller-XDC7WG4K.js → tuiSummaryLlmCaller-2D65LKWM.js} +3 -3
  81. package/{updateDialogTitleAction-AWXNPUQJ.js → updateDialogTitleAction-3SKUPJIN.js} +13 -13
  82. package/chunk-HNW7IJSK.js +0 -71
  83. package/chunk-XENYHRUE.js +0 -104
  84. package/understanding-3CUQQ6SV.js +0 -271
  85. package/{chunk-PDL2AV3E.js → chunk-5CS33IBL.js} +3 -3
  86. package/{chunk-TSUJOM6N.js → chunk-DVRHHFEA.js} +3 -3
  87. package/{chunk-TOILAPLH.js → chunk-EHLHSX7R.js} +3 -3
  88. package/{chunk-TYPHUVK5.js → chunk-KTFJUPDW.js} +3 -3
  89. package/{chunk-NCGFB7NN.js → chunk-OIQPORYI.js} +3 -3
@@ -6,13 +6,13 @@ import {
6
6
  } from "./chunk-IKXL2HZ3.js";
7
7
  import {
8
8
  addContentAction
9
- } from "./chunk-WVTBAALN.js";
9
+ } from "./chunk-3FCSMQAC.js";
10
10
  import {
11
11
  upload
12
- } from "./chunk-VKG4HXYV.js";
12
+ } from "./chunk-A5V7UEZJ.js";
13
13
  import {
14
14
  getRuntimeServerContext
15
- } from "./chunk-TSUJOM6N.js";
15
+ } from "./chunk-DVRHHFEA.js";
16
16
  import {
17
17
  API_ENDPOINTS
18
18
  } from "./chunk-LCBAMY2M.js";
@@ -1832,6 +1832,9 @@ function fuzzyContextWindow(normalizedName) {
1832
1832
  if (normalizedName.includes("glm-5.2") || normalizedName.includes("glm5.2")) return GLM_5_2_CONTEXT_WINDOW;
1833
1833
  if (normalizedName.includes("deepseek")) return 1e6;
1834
1834
  if (normalizedName.includes("gpt-5") || normalizedName.includes("gpt-4.1")) return 1047576;
1835
+ if (normalizedName.startsWith("cursor-grok-4.5")) return 1e6;
1836
+ if (normalizedName.includes("claude-4.6")) return 1e6;
1837
+ if (normalizedName.includes("gemini-3.1")) return 1e6;
1835
1838
  if (normalizedName.includes("qwen3.6") || normalizedName.includes("qwen3p6")) return QWEN_3_6_CONTEXT_WINDOW;
1836
1839
  if (normalizedName.includes("qwen3.7") || normalizedName.includes("qwen3p7")) return 262144;
1837
1840
  if (normalizedName.includes("minimax-m2") || normalizedName.includes("minimax_m2")) return 262144;
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  patch,
3
3
  read
4
- } from "./chunk-VKG4HXYV.js";
4
+ } from "./chunk-A5V7UEZJ.js";
5
5
  import {
6
6
  DEVICE_LOCAL_OWNER_ID,
7
7
  isDeviceLocalSpaceBody,
8
8
  selectIdentityUserId
9
- } from "./chunk-TSUJOM6N.js";
9
+ } from "./chunk-DVRHHFEA.js";
10
10
 
11
11
  // packages/create/space/spaceKeys.ts
12
12
  var SEPARATOR = "-";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-TOILAPLH.js";
4
+ } from "./chunk-EHLHSX7R.js";
5
5
  import {
6
6
  toErrorMessage
7
7
  } from "./chunk-HNMXYYJR.js";
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-CGDQDXKZ.js";
5
+ } from "./chunk-5R73BS7Y.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-KQHGZWSV.js";
@@ -2,7 +2,7 @@ import {
2
2
  buildLocalAgentLookupKeys,
3
3
  normalizeAgentHandle,
4
4
  shouldReadAgentKeyRemotely
5
- } from "./chunk-VBSWHE5W.js";
5
+ } from "./chunk-TQCONXQ3.js";
6
6
  import {
7
7
  resolveCliAgentKeyInput
8
8
  } from "./chunk-VHBWHNVT.js";
@@ -1,18 +1,18 @@
1
- import {
2
- loadFileFromIndexedDb,
3
- removeAction,
4
- saveFileToIndexedDb
5
- } from "./chunk-WPHL6ALY.js";
6
1
  import {
7
2
  fileKey,
8
3
  getFileIdFromKey,
9
4
  ulid
10
5
  } from "./chunk-O4BU24WZ.js";
6
+ import {
7
+ loadFileFromIndexedDb,
8
+ removeAction,
9
+ saveFileToIndexedDb
10
+ } from "./chunk-JTINRTBT.js";
11
11
  import {
12
12
  readAction,
13
13
  readRequestManager,
14
14
  resolveAgentReadServers
15
- } from "./chunk-XHQWJUW4.js";
15
+ } from "./chunk-NJVPXLRY.js";
16
16
  import {
17
17
  asyncThunkCreator,
18
18
  buildCreateSlice,
@@ -32,7 +32,7 @@ import {
32
32
  shouldReplaceLocalWithRemoteRecord,
33
33
  shouldReplicateLocalRecord,
34
34
  uploadToCurrentServer
35
- } from "./chunk-TSUJOM6N.js";
35
+ } from "./chunk-DVRHHFEA.js";
36
36
  import {
37
37
  fetchFromClientDb,
38
38
  fetchFromServer,
@@ -704,7 +704,7 @@ var dbSlice = createSliceWithThunks({
704
704
  // 动态 import 在调用期解析,避开 TDZ/求值顺序问题(同下方 share)。
705
705
  read: create.asyncThunk(
706
706
  async (payload, thunkApi) => {
707
- const { readAction: readAction2 } = await import("./read-2MIMRBZ2.js");
707
+ const { readAction: readAction2 } = await import("./read-SIWMJRHC.js");
708
708
  return readAction2(payload, thunkApi);
709
709
  },
710
710
  {
@@ -778,7 +778,7 @@ var dbSlice = createSliceWithThunks({
778
778
  // 这里改成动态 import,运行期才解析,彻底断开这条边。
779
779
  share: create.asyncThunk(
780
780
  async (config, thunkApi) => {
781
- const { shareResourceAction } = await import("./action-OTOWUMPW.js");
781
+ const { shareResourceAction } = await import("./action-N3KXFO5V.js");
782
782
  return shareResourceAction(config, thunkApi);
783
783
  }
784
784
  ),
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  selectCurrentServer,
3
3
  selectRemoteServers
4
- } from "./chunk-JU7J7EAV.js";
4
+ } from "./chunk-S5UACFUP.js";
5
5
  import {
6
6
  createUserKey,
7
7
  extractAgentInfo,
@@ -16,7 +16,7 @@ import {
16
16
  noloWriteRequest,
17
17
  selectIdentityUser,
18
18
  selectIdentityUserId
19
- } from "./chunk-TSUJOM6N.js";
19
+ } from "./chunk-DVRHHFEA.js";
20
20
  import {
21
21
  normalizeTimeFields
22
22
  } from "./chunk-OOSFSFMA.js";
@@ -3,7 +3,7 @@ import {
3
3
  refreshAntigravityOAuthToken,
4
4
  refreshOpenAiCodexToken,
5
5
  refreshXaiOAuthToken
6
- } from "./chunk-TOILAPLH.js";
6
+ } from "./chunk-EHLHSX7R.js";
7
7
  import {
8
8
  CliProviderQuotaError,
9
9
  executeCli
@@ -12,7 +12,7 @@ import {
12
12
  buildLocalAgentLookupKeys,
13
13
  normalizeAgentHandle,
14
14
  shouldReadAgentKeyRemotely
15
- } from "./chunk-VBSWHE5W.js";
15
+ } from "./chunk-TQCONXQ3.js";
16
16
  import {
17
17
  LOCAL_CODEX_AGENT_ID,
18
18
  LOCAL_CODEX_AGENT_KEY,
@@ -21,25 +21,26 @@ import {
21
21
  } from "./chunk-VHBWHNVT.js";
22
22
  import {
23
23
  inferCaptureIntent
24
- } from "./chunk-QJSTNKJY.js";
24
+ } from "./chunk-T3X232L6.js";
25
25
  import {
26
26
  buildCliPrompt
27
27
  } from "./chunk-ATNTHIZI.js";
28
28
  import {
29
29
  inlineImageUrlsForCustomProvider,
30
30
  prepareTools
31
- } from "./chunk-C3BFP57W.js";
31
+ } from "./chunk-RTHJF57Z.js";
32
32
  import {
33
33
  getAntigravityUserAgent,
34
34
  isAntigravityOAuthAgent,
35
35
  readAntigravityProjectId,
36
36
  resolveAntigravityCloudCodeBaseUrl
37
- } from "./chunk-H5Y2H2N6.js";
37
+ } from "./chunk-OIMX7MM4.js";
38
38
  import {
39
39
  FORCED_TOOLS,
40
40
  addDefaultLightWebToolsForConfiguredAgents,
41
41
  appendEnabledPackPromptPatches,
42
42
  applyDisabledTools,
43
+ applySystemBuiltinSkillFilter,
43
44
  expandEnabledPacks,
44
45
  formatListRunsCard,
45
46
  formatNotFoundRunCard,
@@ -49,8 +50,9 @@ import {
49
50
  readXPostFunc,
50
51
  readXPostFunctionSchema,
51
52
  readXhsProfileFunc,
52
- readXhsProfileFunctionSchema
53
- } from "./chunk-MZHSAPZP.js";
53
+ readXhsProfileFunctionSchema,
54
+ rememberMemoryFunctionSchema
55
+ } from "./chunk-2Q5FTOQA.js";
54
56
  import {
55
57
  createDrainExhaustedResponse,
56
58
  isCoreDrainingBody,
@@ -62,13 +64,13 @@ import {
62
64
  } from "./chunk-OWOHNGCN.js";
63
65
  import {
64
66
  prepareTokenUsageData
65
- } from "./chunk-FSUZIGIG.js";
67
+ } from "./chunk-LVJFD5HS.js";
66
68
  import {
67
69
  BUILTIN_TITLE_LLM_CONFIG
68
70
  } from "./chunk-V2J635L5.js";
69
71
  import {
70
72
  fetchServerSyncedCredential
71
- } from "./chunk-Y5P3ZRGC.js";
73
+ } from "./chunk-CPGQAMHA.js";
72
74
  import {
73
75
  buildAgentRuntimeDialogWritePlan,
74
76
  buildLocalWorkspaceOpenAiTools,
@@ -81,7 +83,7 @@ import {
81
83
  parseSseDataLineJson,
82
84
  readOpenAiCompatibleSseCompletion,
83
85
  resolveOpenAiCompatibleProviderConfig
84
- } from "./chunk-MG6BVV3T.js";
86
+ } from "./chunk-33K5FKRL.js";
85
87
  import {
86
88
  buildPlatformChatCompletionRequest,
87
89
  canUsePlatformChatProvider,
@@ -91,14 +93,14 @@ import {
91
93
  resolveLegacyDeepSeekProxyChatFallback,
92
94
  resolvePlatformChatProviderConfig,
93
95
  shouldUsePlatformChatProvider
94
- } from "./chunk-5S4SWV5G.js";
96
+ } from "./chunk-PB2DHBEQ.js";
95
97
  import {
96
98
  resolveAgentRuntimeConfigFromRecord
97
- } from "./chunk-NCGFB7NN.js";
99
+ } from "./chunk-OIQPORYI.js";
98
100
  import {
99
101
  parseToolArgumentsJson,
100
102
  summarizeToolArguments
101
- } from "./chunk-TA7VKOHU.js";
103
+ } from "./chunk-VQFY3VXW.js";
102
104
  import {
103
105
  buildLoadSkillExecutor,
104
106
  buildNoloWorkspaceCliToolExecutors,
@@ -115,13 +117,16 @@ import {
115
117
  resolveCurrentRunRuntimeToolPolicy,
116
118
  resolveLocalWorkspaceExecutorOptionsFromPolicy,
117
119
  resolveRequestedRuntimeToolNames
118
- } from "./chunk-PDL2AV3E.js";
120
+ } from "./chunk-5CS33IBL.js";
119
121
  import {
120
122
  createOAuthTokenStore,
121
123
  isTokenExpired,
122
124
  readOAuthCredential,
123
125
  resolveFreshAccessToken
124
126
  } from "./chunk-JZPBVBIY.js";
127
+ import {
128
+ compactWhitespace
129
+ } from "./chunk-DWLEOOGR.js";
125
130
  import {
126
131
  checkStaleRun,
127
132
  finalizeRunRecord,
@@ -135,14 +140,12 @@ import {
135
140
  import {
136
141
  getDefaultCliLocalRuntimeDb
137
142
  } from "./chunk-H33743XH.js";
138
- import {
139
- compactWhitespace
140
- } from "./chunk-DWLEOOGR.js";
141
143
  import {
142
144
  asRecordOrEmpty
143
145
  } from "./chunk-KX6YBIHG.js";
144
146
  import {
145
147
  createTokenKey,
148
+ createUserKey,
146
149
  dialogMessageRange
147
150
  } from "./chunk-O4BU24WZ.js";
148
151
  import {
@@ -158,13 +161,13 @@ import {
158
161
  PUBLIC_GLM_52_AGENT_KEY,
159
162
  PUBLIC_KIMI_K26_IMAGE_AGENT_KEY,
160
163
  PUBLIC_KIMI_K27_CODING_AGENT_KEY
161
- } from "./chunk-XHQWJUW4.js";
162
- import {
163
- isRecord
164
- } from "./chunk-KUG52IAP.js";
164
+ } from "./chunk-NJVPXLRY.js";
165
165
  import {
166
166
  asTrimmedString
167
167
  } from "./chunk-3EUW3WEO.js";
168
+ import {
169
+ isRecord
170
+ } from "./chunk-KUG52IAP.js";
168
171
  import {
169
172
  isCompiledBinary,
170
173
  parseUserIdFromAuthToken
@@ -247,6 +250,26 @@ var STRINGS = {
247
250
  en: "Started a fresh dialog.",
248
251
  zh: "\u5DF2\u5F00\u59CB\u65B0\u5BF9\u8BDD\u3002"
249
252
  },
253
+ clearingDialog: {
254
+ en: "Clearing current dialog messages...",
255
+ zh: "\u6B63\u5728\u6E05\u9664\u5F53\u524D\u5BF9\u8BDD\u6D88\u606F\u2026"
256
+ },
257
+ clearedDialog: {
258
+ en: "Cleared current dialog messages.",
259
+ zh: "\u5DF2\u6E05\u9664\u5F53\u524D\u5BF9\u8BDD\u6D88\u606F\u3002"
260
+ },
261
+ clearNoDialog: {
262
+ en: "No current dialog messages to clear.",
263
+ zh: "\u5F53\u524D\u6CA1\u6709\u53EF\u6E05\u9664\u7684\u5BF9\u8BDD\u6D88\u606F\u3002"
264
+ },
265
+ clearUsage: {
266
+ en: "Usage: /clear",
267
+ zh: "\u7528\u6CD5\uFF1A/clear"
268
+ },
269
+ contextNextClear: {
270
+ en: "clear current dialog messages",
271
+ zh: "\u6E05\u9664\u5F53\u524D\u5BF9\u8BDD\u6D88\u606F"
272
+ },
250
273
  bye: {
251
274
  en: "Bye.",
252
275
  zh: "\u518D\u89C1\u3002"
@@ -352,12 +375,12 @@ var STRINGS = {
352
375
  zh: "\u7528\u6CD5\uFF1A/copy \u6216 /copy view"
353
376
  },
354
377
  copyViewTitle: {
355
- en: "Copy view \u2014 latest AI reply",
356
- zh: "\u590D\u5236\u89C6\u56FE \u2014 \u6700\u65B0 AI \u56DE\u590D"
378
+ en: "Copy view \u2014 conversation history",
379
+ zh: "\u590D\u5236\u89C6\u56FE \u2014 \u5BF9\u8BDD\u5386\u53F2"
357
380
  },
358
381
  copyViewHint: {
359
- en: "Drag to select; edge scrolling uses native terminal scrollback. Press Esc or Enter to return.",
360
- zh: "\u76F4\u63A5\u62D6\u9009\uFF0C\u62D6\u5230\u8FB9\u7F18\u53EF\u7528\u7EC8\u7AEF\u539F\u751F\u56DE\u6EDA\u8DE8\u5C4F\u9009\u62E9\u3002\u6309 Esc \u6216 Enter \u8FD4\u56DE\u3002"
382
+ en: "Drag to select. Use PageUp/PageDown, Home/End, or the mouse wheel to scroll. Press Esc or Enter to return.",
383
+ zh: "\u76F4\u63A5\u62D6\u9009\u3002\u53EF\u7528 PageUp/PageDown\u3001Home/End \u6216\u9F20\u6807\u6EDA\u8F6E\u6EDA\u52A8\u3002\u6309 Esc \u6216 Enter \u8FD4\u56DE\u3002"
361
384
  },
362
385
  historyNoToken: {
363
386
  en: "History requires an auth token. Run `nolo login` or set AUTH_TOKEN.",
@@ -1810,6 +1833,10 @@ var LOCAL_SERVER_WEB_TOOL_NAMES = ["fetchWebpage", "exa_search"];
1810
1833
  var LOCAL_SERVER_WEB_TOOL_NAME_SET = new Set(
1811
1834
  LOCAL_SERVER_WEB_TOOL_NAMES
1812
1835
  );
1836
+ var LOCAL_SERVER_MEMORY_TOOL_NAMES = ["rememberMemory"];
1837
+ var LOCAL_SERVER_MEMORY_TOOL_NAME_SET = new Set(
1838
+ LOCAL_SERVER_MEMORY_TOOL_NAMES
1839
+ );
1813
1840
 
1814
1841
  // packages/core/fetchWebpageShaping.ts
1815
1842
  var FETCH_WEBPAGE_PREVIEW_LENGTH = 1200;
@@ -1917,7 +1944,7 @@ async function fetchWebpageLocally(args) {
1917
1944
 
1918
1945
  // packages/cli/client/cliServerPlatformToolExecutors.ts
1919
1946
  function buildServerPlatformToolExecutors(args) {
1920
- const postServer = async (path, body) => {
1947
+ const postServer = async (path, body, opts) => {
1921
1948
  const serverUrl = resolveRuntimeServerUrl(args.env);
1922
1949
  const authToken = resolveRuntimeAuthToken(args.env);
1923
1950
  if (!serverUrl)
@@ -1928,14 +1955,16 @@ function buildServerPlatformToolExecutors(args) {
1928
1955
  throw new Error(
1929
1956
  "server platform tools require AUTH_TOKEN or NOLO_MACHINE_API_KEY."
1930
1957
  );
1931
- const response = await args.fetchImpl(`${serverUrl}${path}`, {
1958
+ const url = `${serverUrl}${path}`;
1959
+ const init = {
1932
1960
  method: "POST",
1933
1961
  headers: {
1934
1962
  "Content-Type": "application/json",
1935
1963
  Authorization: `Bearer ${authToken}`
1936
1964
  },
1937
1965
  body: JSON.stringify(body)
1938
- });
1966
+ };
1967
+ const response = opts?.retryTransient ? await fetchWithTransientRetry(args.fetchImpl, url, init) : await args.fetchImpl(url, init);
1939
1968
  const text = await response.text().catch(() => "");
1940
1969
  if (!response.ok) {
1941
1970
  throw new Error(
@@ -2036,7 +2065,33 @@ function buildServerPlatformToolExecutors(args) {
2036
2065
  }
2037
2066
  ])
2038
2067
  );
2039
- return { ...tableExecutors, ...webExecutors };
2068
+ const rememberMemory = async (call) => {
2069
+ const parsed = parseNoloWorkspaceToolArguments(call.arguments);
2070
+ const content = typeof parsed.content === "string" ? parsed.content.trim() : "";
2071
+ if (!content) {
2072
+ return {
2073
+ content: JSON.stringify({
2074
+ error: "rememberMemory \u9700\u8981\u975E\u7A7A content\u3002"
2075
+ }),
2076
+ metadata: { serverPlatformTool: true, memoryWrite: false }
2077
+ };
2078
+ }
2079
+ const body = {
2080
+ content,
2081
+ scope: parsed.scope ?? "auto",
2082
+ kind: parsed.kind ?? "episodic",
2083
+ source: "agent-inferred"
2084
+ };
2085
+ if (args.agentKey) body.agentKey = args.agentKey;
2086
+ const raw = await postServer("/api/memory/remember", body, {
2087
+ retryTransient: true
2088
+ });
2089
+ return {
2090
+ content: raw,
2091
+ metadata: { serverPlatformTool: true, memoryWrite: true }
2092
+ };
2093
+ };
2094
+ return { ...tableExecutors, ...webExecutors, rememberMemory };
2040
2095
  }
2041
2096
 
2042
2097
  // packages/cli/client/cliAgentRunToolExecutors.ts
@@ -2260,7 +2315,8 @@ function buildLocalToolExecutors(args) {
2260
2315
  }),
2261
2316
  ...buildServerPlatformToolExecutors({
2262
2317
  env: args.env,
2263
- fetchImpl: args.fetchImpl
2318
+ fetchImpl: args.fetchImpl,
2319
+ agentKey: args.agentKey
2264
2320
  }),
2265
2321
  ...buildCliWorkspaceToolExecutors({
2266
2322
  env: args.env,
@@ -9149,7 +9205,10 @@ function normalizeRuntimeCacheCwd(cwd) {
9149
9205
  return (cwd?.trim() || process.cwd()).replace(/\/+$/, "") || ".";
9150
9206
  }
9151
9207
  function buildPreparedAgentCacheKey(args) {
9152
- return `${args.userId}\0${args.agentRef}\0${args.cwd}`;
9208
+ const systemBuiltinSkillsKey = args.systemBuiltinSkills ? JSON.stringify(
9209
+ Object.keys(args.systemBuiltinSkills).sort().map((key) => [key, args.systemBuiltinSkills?.[key]])
9210
+ ) : "default";
9211
+ return `${args.userId}\0${args.agentRef}\0${args.cwd}\0${systemBuiltinSkillsKey}`;
9153
9212
  }
9154
9213
  function clearCliLocalRuntimePreparedAgentCache() {
9155
9214
  preparedAgentRuntimeCache.clear();
@@ -9272,28 +9331,30 @@ function withRuntimeEnabledPacksAndPrompt(config) {
9272
9331
  ...prompt ? { prompt } : {}
9273
9332
  };
9274
9333
  }
9275
- function resolveCliRequestedToolNames(agentConfig, env) {
9334
+ function resolveCliRequestedToolNames(agentConfig, env, systemBuiltinSkills) {
9276
9335
  const declaredOnly = shouldUseDeclaredOnlyLocalWorkspaceTools(env);
9277
- return applyDisabledTools(
9278
- addDefaultLightWebToolsForConfiguredAgents(
9279
- addDefaultCliCoreTools(
9280
- canonicalizeToolNames(
9281
- expandEnabledPacks(
9282
- // CLI 端默认开 code 能力包:enabledPacks 为空时补 ["code"],保持
9283
- // 「CLI agent 默认能改代码」的体感,但走显式能力包而非隐式兜底
9284
- // (DEFAULT_LOCAL_CODING_TOOL_NAMES 已删除)。
9285
- // declared-only 模式下不补——用户显式要 ablation。
9286
- resolveCliEffectiveEnabledPacks({
9287
- enabledPacks: agentConfig?.enabledPacks,
9288
- declaredOnly
9289
- }),
9290
- resolveRequestedRuntimeToolNames({ agentConfig })
9291
- )
9292
- ),
9293
- env
9336
+ const expanded = addDefaultLightWebToolsForConfiguredAgents(
9337
+ addDefaultCliCoreTools(
9338
+ canonicalizeToolNames(
9339
+ expandEnabledPacks(
9340
+ // CLI 端默认开 code 能力包:enabledPacks 为空时补 ["code"],保持
9341
+ // 「CLI agent 默认能改代码」的体感,但走显式能力包而非隐式兜底
9342
+ // (DEFAULT_LOCAL_CODING_TOOL_NAMES 已删除)。
9343
+ // declared-only 模式下不补——用户显式要 ablation。
9344
+ resolveCliEffectiveEnabledPacks({
9345
+ enabledPacks: agentConfig?.enabledPacks,
9346
+ declaredOnly
9347
+ }),
9348
+ resolveRequestedRuntimeToolNames({ agentConfig })
9349
+ )
9294
9350
  ),
9295
- agentConfig
9351
+ env
9296
9352
  ),
9353
+ agentConfig
9354
+ );
9355
+ const filtered = applySystemBuiltinSkillFilter(expanded, systemBuiltinSkills);
9356
+ return applyDisabledTools(
9357
+ filtered,
9297
9358
  agentConfig?.disabledTools
9298
9359
  );
9299
9360
  }
@@ -9348,6 +9409,12 @@ function buildServerPlatformOpenAiTools(args) {
9348
9409
  )
9349
9410
  );
9350
9411
  return [
9412
+ ...toolNameSet.has("rememberMemory") ? [
9413
+ {
9414
+ type: "function",
9415
+ function: rememberMemoryFunctionSchema
9416
+ }
9417
+ ] : [],
9351
9418
  ...toolNameSet.has("read_xhs_profile") ? [
9352
9419
  {
9353
9420
  type: "function",
@@ -9762,10 +9829,23 @@ function createCliLocalRuntimeAdapter(deps) {
9762
9829
  "local-tools"
9763
9830
  ],
9764
9831
  loadAgentConfig: async (agentRef) => {
9832
+ let systemBuiltinSkills = null;
9833
+ const sharedStore = await getOrCreateSharedStore(deps);
9834
+ if (userId) {
9835
+ try {
9836
+ const settingsRecord = await sharedStore.read(
9837
+ createUserKey.settings(userId),
9838
+ { remote: false }
9839
+ );
9840
+ systemBuiltinSkills = settingsRecord && typeof settingsRecord === "object" ? settingsRecord.systemBuiltinSkills ?? null : null;
9841
+ } catch {
9842
+ }
9843
+ }
9765
9844
  const cacheKey = buildPreparedAgentCacheKey({
9766
9845
  userId,
9767
9846
  agentRef,
9768
- cwd: normalizeRuntimeCacheCwd(workspaceRoot)
9847
+ cwd: normalizeRuntimeCacheCwd(workspaceRoot),
9848
+ systemBuiltinSkills
9769
9849
  });
9770
9850
  const cached = deps.pastedTextStore ? void 0 : preparedAgentRuntimeCache.get(cacheKey);
9771
9851
  if (cached) {
@@ -9785,7 +9865,7 @@ function createCliLocalRuntimeAdapter(deps) {
9785
9865
  deps.env
9786
9866
  );
9787
9867
  const agentConfig = baseAgentConfig ? withRuntimeEnabledPacksAndPrompt(baseAgentConfig) : baseAgentConfig;
9788
- const requestedToolNames = agentConfig ? resolveCliRequestedToolNames(agentConfig, deps.env) : [];
9868
+ const requestedToolNames = agentConfig ? resolveCliRequestedToolNames(agentConfig, deps.env, systemBuiltinSkills) : [];
9789
9869
  activeAgentToolNames = buildLocalPolicyToolNames({
9790
9870
  agentKey: agentConfig?.key,
9791
9871
  toolNames: [...requestedToolNames, ...additionalToolNames],
@@ -9805,17 +9885,19 @@ function createCliLocalRuntimeAdapter(deps) {
9805
9885
  ...deps.confirmDestructiveAction ? { confirmDestructiveAction: deps.confirmDestructiveAction } : {},
9806
9886
  ...deps.requestUserChoice ? { requestUserChoice: deps.requestUserChoice } : {},
9807
9887
  ...deps.pastedTextStore ? { pastedTextStore: deps.pastedTextStore } : {},
9888
+ agentKey: agentConfig?.key,
9808
9889
  ...runtimeToolExecutionLimits
9809
9890
  });
9810
- if (agentConfig && !deps.pastedTextStore) {
9891
+ const exposedAgentConfig = agentConfig ? { ...agentConfig, exposedToolNames: activeAgentToolNames } : agentConfig;
9892
+ if (exposedAgentConfig && !deps.pastedTextStore) {
9811
9893
  preparedAgentRuntimeCache.set(cacheKey, {
9812
- agentConfig,
9894
+ agentConfig: exposedAgentConfig,
9813
9895
  activeAgentToolNames,
9814
9896
  runtimeToolExecutionLimits,
9815
9897
  localToolExecutors
9816
9898
  });
9817
9899
  }
9818
- return agentConfig;
9900
+ return exposedAgentConfig;
9819
9901
  },
9820
9902
  loadDialogHistory: async (dialogId) => readDialogMessages({
9821
9903
  dialogId,
@@ -199,7 +199,7 @@ async function readDocFunc(args, thunkApi) {
199
199
  throw new Error(`\u65E0\u6548\u7684\u9875\u9762 ID: ${id}\u3002\u9875\u9762 ID \u901A\u5E38\u4EE5 "page-" \u5F00\u5934\u3002`);
200
200
  }
201
201
  try {
202
- const { readAction } = await import("./read-2MIMRBZ2.js");
202
+ const { readAction } = await import("./read-SIWMJRHC.js");
203
203
  const pageData = await readAction({ dbKey: id }, thunkApi);
204
204
  if (!pageData) {
205
205
  throw new Error(`\u672A\u627E\u5230 ID \u4E3A ${id} \u7684\u9875\u9762\u3002`);
@@ -3,7 +3,7 @@ import {
3
3
  createFileCredentialBroker,
4
4
  migrateAgentSecrets,
5
5
  normalizeAgentRuntimeToolPolicy
6
- } from "./chunk-PDL2AV3E.js";
6
+ } from "./chunk-5CS33IBL.js";
7
7
  import {
8
8
  asRecordOrEmpty
9
9
  } from "./chunk-KX6YBIHG.js";
@@ -11,7 +11,7 @@ import {
11
11
  patch,
12
12
  remove,
13
13
  write
14
- } from "./chunk-VKG4HXYV.js";
14
+ } from "./chunk-A5V7UEZJ.js";
15
15
  import {
16
16
  createAgentKey,
17
17
  toTrimmedString
@@ -20,7 +20,7 @@ import {
20
20
  asyncThunkCreator,
21
21
  buildCreateSlice,
22
22
  getRuntimeServerContext
23
- } from "./chunk-TSUJOM6N.js";
23
+ } from "./chunk-DVRHHFEA.js";
24
24
  import {
25
25
  asTrimmedString
26
26
  } from "./chunk-3EUW3WEO.js";
@@ -300,7 +300,7 @@ var slice = createSliceWithThunks({
300
300
  const overrides = {};
301
301
  if (args.systemPromptOverride !== void 0) overrides.prompt = args.systemPromptOverride;
302
302
  if (args.toolsOverride !== void 0) overrides.tools = args.toolsOverride;
303
- const { _executeModel } = await import("./_executeModel-4F7VZR5U.js");
303
+ const { _executeModel } = await import("./_executeModel-KMUDFYY2.js");
304
304
  return _executeModel(
305
305
  {
306
306
  isStreaming: args.isStreaming ?? false,
@@ -321,7 +321,7 @@ var slice = createSliceWithThunks({
321
321
  * - 循环直到无工具调用或触发其他运行时停止条件
322
322
  */
323
323
  runAgent: create.asyncThunk(async (args, thunkApi) => {
324
- const { runAgentClientLoop } = await import("./runAgentClientLoop-FP2K33ZO.js");
324
+ const { runAgentClientLoop } = await import("./runAgentClientLoop-6D7FP7CK.js");
325
325
  const { content: loopContent, toolCallCount } = await runAgentClientLoop(
326
326
  {
327
327
  agentKey: args.agentKey,
@@ -337,7 +337,7 @@ var slice = createSliceWithThunks({
337
337
  * 聊天轮次流式 Agent 调用
338
338
  */
339
339
  streamAgentChatTurn: create.asyncThunk(async (args, thunkApi) => {
340
- const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-HBAQQVNK.js");
340
+ const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-VW7433O6.js");
341
341
  return streamAgentChatTurnHandler(args, thunkApi);
342
342
  }),
343
343
  /**