nolo-cli 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/{_executeModel-AVCA2NAV.js → _executeModel-X5PCIZN6.js} +50 -44
  2. package/{action-F5JACQBG.js → action-LT7BRFLK.js} +10 -9
  3. package/{addContentAction-AQXEYRBE.js → addContentAction-PL3KKBDH.js} +9 -8
  4. package/{addDialogAgentAction-EJHHJZWW.js → addDialogAgentAction-FCMSKYAF.js} +8 -7
  5. package/{agentDeleteCommand-QW5PUMDQ.js → agentDeleteCommand-2BZDQV36.js} +32 -29
  6. package/{agentEmailCommands-4ORVLGVQ.js → agentEmailCommands-2QJDGRMB.js} +62 -56
  7. package/{agentListCommands-YWBYRTYC.js → agentListCommands-6VEPTKBI.js} +31 -28
  8. package/{agentMachineCommands-JSQW4FOA.js → agentMachineCommands-NVVHNWYI.js} +30 -27
  9. package/{agentPullCommand-6HWUT3SW.js → agentPullCommand-ZZGU5KOY.js} +4 -4
  10. package/{agentRecordCommands-AASIWOBT.js → agentRecordCommands-4GGRDMD4.js} +57 -51
  11. package/{agentRunCommand-TB5BHXUH.js → agentRunCommand-XOLQNKBZ.js} +63 -54
  12. package/{agentRunControl-6ADXVYMR.js → agentRunControl-Y5AFH5PQ.js} +24 -1
  13. package/{agentRuntimeLocal-QNPNJRVH.js → agentRuntimeLocal-7WYWCGL4.js} +25 -22
  14. package/{agentSlice-RUNXC62Y.js → agentSlice-EAXPGEYV.js} +9 -8
  15. package/appDeleteCommands-77KR2RJ4.js +127 -0
  16. package/appDeployCommands-K7CAHGBI.js +166 -0
  17. package/appDeployStatusCommands-4OEKLTBT.js +147 -0
  18. package/appGetCommands-VM2WDLAZ.js +122 -0
  19. package/appListCommands-GX6BBA6U.js +125 -0
  20. package/{authCommand-YFTR3347.js → authCommand-DY6UUL6O.js} +16 -9
  21. package/{authCommands-YXGOXNBZ.js → authCommands-XTBV7OFZ.js} +6 -5
  22. package/{chunk-DPAB4FQ7.js → chunk-23FZYPLC.js} +1608 -212
  23. package/{chunk-LPEUV5RE.js → chunk-34WPV75U.js} +23 -2
  24. package/{chunk-XPC5C7BK.js → chunk-3ND52WIL.js} +2 -2
  25. package/{chunk-SOTZ6RDN.js → chunk-3Q7WHGCB.js} +1 -1
  26. package/{chunk-3OIRVWXA.js → chunk-3ZX7PERL.js} +10 -1
  27. package/{chunk-KKY4B2Q2.js → chunk-4PWB7JRR.js} +4 -1
  28. package/{chunk-6N4KODMN.js → chunk-4T5F7YZQ.js} +1 -1
  29. package/chunk-7BUYEZ6U.js +671 -0
  30. package/{chunk-AS3ZQ3O2.js → chunk-7OBMZCRD.js} +1 -1
  31. package/{chunk-IGXREZW2.js → chunk-AHCY2S2I.js} +1 -1
  32. package/{chunk-QLUFR47U.js → chunk-AL2V7U3E.js} +1 -1
  33. package/{chunk-MTU75CZ2.js → chunk-B5TOXZAK.js} +1 -1
  34. package/{chunk-AUURUT6L.js → chunk-BV4VEE3W.js} +264 -424
  35. package/{chunk-FRV6A633.js → chunk-CZ6NYQTV.js} +13 -4
  36. package/{chunk-PCTUYVUM.js → chunk-DFCFMCY6.js} +10 -3
  37. package/{chunk-JTMNCCWF.js → chunk-DKZFOK24.js} +16 -87
  38. package/chunk-DL6EPNIK.js +50 -0
  39. package/{chunk-ZQBL7LIC.js → chunk-EDV7EBOI.js} +317 -216
  40. package/{chunk-IWLUTMYX.js → chunk-ELT65PZW.js} +2 -2
  41. package/chunk-FQZZLA3C.js +223 -0
  42. package/{chunk-55NSNCFM.js → chunk-FXUSIQC2.js} +1 -1
  43. package/{chunk-MR6ISAGB.js → chunk-G5U6LDLG.js} +6 -6
  44. package/chunk-GFUIQ4RY.js +136 -0
  45. package/{chunk-NVEWUJVX.js → chunk-HEGV7BH3.js} +1 -1
  46. package/{chunk-BEBNFWDU.js → chunk-HWW2M4SN.js} +3 -3
  47. package/{chunk-4L2OJPCU.js → chunk-I2ZJKTG5.js} +58 -8
  48. package/{chunk-Z5JQNBNY.js → chunk-IYEXFJPC.js} +34 -15
  49. package/{setDialogExtraReferencesAction-LR6MSIXO.js → chunk-JLA4FXYC.js} +2 -17
  50. package/chunk-KFEVY3ST.js +255 -0
  51. package/{chunk-4FX6NVDW.js → chunk-L4F3I4SR.js} +3 -136
  52. package/{chunk-XBS2WYJ2.js → chunk-LLWKHDG4.js} +1 -1
  53. package/{chunk-3WGLLTK4.js → chunk-LSFAWXKC.js} +100 -3
  54. package/{chunk-6EVITP2G.js → chunk-MHSGJW4Z.js} +2 -251
  55. package/{chunk-O6W2O2DA.js → chunk-MKA6QE5E.js} +6 -2
  56. package/{chunk-DGEYDWEZ.js → chunk-MPVYDS7I.js} +3 -3
  57. package/{chunk-KFHN5NGJ.js → chunk-MVQ4TBSD.js} +1 -1
  58. package/{chunk-AVVZUXXC.js → chunk-N54HIJVJ.js} +34 -13
  59. package/{chunk-EHLHSX7R.js → chunk-OK6YSWLH.js} +9 -2
  60. package/{chunk-33BJUVK4.js → chunk-PIZYJVHQ.js} +5 -5
  61. package/{chunk-RLCXU7A5.js → chunk-PJSV3IZ5.js} +1 -1
  62. package/{chunk-7UKFVQ5W.js → chunk-R35XMF6F.js} +126 -41
  63. package/{chunk-OOSFSFMA.js → chunk-R5V5G73M.js} +2 -0
  64. package/{chunk-S2LXHNHG.js → chunk-REA4JLBH.js} +6 -6
  65. package/chunk-RQN4SEKL.js +107 -0
  66. package/{chunk-EABWT43X.js → chunk-RVOUXDFU.js} +5 -5
  67. package/{chunk-NSCHQQPU.js → chunk-SCTYAHYK.js} +470 -325
  68. package/{chunk-JTINRTBT.js → chunk-SKDNBYZK.js} +2 -2
  69. package/{chunk-M43KDE25.js → chunk-SWDPIPOY.js} +2 -8
  70. package/{chunk-KMQPSTMJ.js → chunk-TRT4I4UD.js} +2 -2
  71. package/{chunk-66X4VSRC.js → chunk-UAIVG4J6.js} +42 -2
  72. package/{chunk-3663CXZN.js → chunk-UBHAWFQ6.js} +143 -31
  73. package/{chunk-YJKXGHJ6.js → chunk-UGUW3FHG.js} +4 -4
  74. package/{chunk-P3RIAYGG.js → chunk-V3ED5AWK.js} +3 -3
  75. package/chunk-V5R4NZP2.js +78 -0
  76. package/{chunk-4IJYA27C.js → chunk-VDXCXCXH.js} +1 -1
  77. package/{chunk-MYMMNKYL.js → chunk-VNAEBGDK.js} +156 -6
  78. package/{chunk-FY233ZFU.js → chunk-VYHDJEQD.js} +110 -192
  79. package/{chunk-W4NVOSFF.js → chunk-WFHXMLHZ.js} +1 -1
  80. package/{chunk-H33743XH.js → chunk-WJRJDX2W.js} +1 -1
  81. package/chunk-X4Q4UZEY.js +26 -0
  82. package/{chunk-RPDGJO4D.js → chunk-XHG22OEX.js} +4 -4
  83. package/{chunk-DVRHHFEA.js → chunk-XMLRJUU5.js} +1 -1
  84. package/{chunk-3S2VOMIF.js → chunk-XRZJGPFI.js} +7 -7
  85. package/{chunk-GSINCD4P.js → chunk-YGW4G5W5.js} +25 -12
  86. package/chunk-ZZ2MH7LE.js +84 -0
  87. package/{cliExecutor-K3F7DMRO.js → cliExecutor-DNE7TCC4.js} +2 -2
  88. package/codingSkills-36KN5NQT.js +48 -0
  89. package/{createAgentAutomationAction-FNHPSKKO.js → createAgentAutomationAction-GNFF524X.js} +20 -19
  90. package/{createDialogAction-TZCVQ3NU.js → createDialogAction-RB55KCLO.js} +22 -21
  91. package/{createPageAction-EIGZ3BKT.js → createPageAction-Y7343GLU.js} +26 -25
  92. package/{db-HCJ5PRB5.js → db-W3O47YGF.js} +38 -12
  93. package/{dbSlice-7KQH6GOU.js → dbSlice-CGSRFJN3.js} +8 -7
  94. package/{deleteFile-WPWVZE4B.js → deleteFile-WDZ3VM7B.js} +3 -3
  95. package/{dialogCommands-FO77J5DQ.js → dialogCommands-IAZK6YHQ.js} +30 -27
  96. package/{dialogSlice-MM5U4KE2.js → dialogSlice-UQAXF23P.js} +20 -19
  97. package/{docCreateCommands-I3BS3AZI.js → docCreateCommands-I2EWZGCI.js} +33 -28
  98. package/{docDeleteCommands-Q2OPV52P.js → docDeleteCommands-IZ45UZKG.js} +32 -27
  99. package/{docReadCommands-YOOFACYZ.js → docReadCommands-R6Z4QJYU.js} +31 -26
  100. package/{docStore-NGYQ2JTR.js → docStore-5HOJ4D7D.js} +21 -20
  101. package/{docUpdateCommands-2B32ITHN.js → docUpdateCommands-2LRBKQPY.js} +32 -27
  102. package/{fetchMessages-KTNM7QAR.js → fetchMessages-BMGVZVSE.js} +4 -3
  103. package/{getPricing-P4XRJRZB.js → getPricing-G7DLAST6.js} +3 -3
  104. package/{handleSendMessageAction-JRZWWBKP.js → handleSendMessageAction-Q4HY35WX.js} +21 -20
  105. package/index.js +95 -64
  106. package/{localDialogRead-2VRI24F4.js → localDialogRead-4H3QJFLW.js} +2 -2
  107. package/{localRuntimeDb-LGDF6FQP.js → localRuntimeDb-THJZGAOJ.js} +1 -1
  108. package/{machineCommands-WRWF2ICZ.js → machineCommands-PKBPQKTY.js} +63 -57
  109. package/{machineWsRunDispatch-ZX7Q3TWZ.js → machineWsRunDispatch-UZAW4OXJ.js} +55 -49
  110. package/{models-WQ5N4OJM.js → models-DJFSJ7SW.js} +2 -2
  111. package/package.json +1 -1
  112. package/queryRunOverlay-O4LOMMPO.js +161 -0
  113. package/{read-CN3TNXIP.js → read-3FMPZPER.js} +3 -3
  114. package/{readDocTool-WF3675ED.js → readDocTool-VSYHKK3V.js} +1 -1
  115. package/{readlineWorkspace-ZTGRGW46.js → readlineWorkspace-Y2RDOFZG.js} +762 -218
  116. package/{removeDialogAgentAction-YDHBFEGI.js → removeDialogAgentAction-OAGA2G3U.js} +10 -9
  117. package/{runAgentClientLoop-JZCOP7LG.js → runAgentClientLoop-NBPIKJ6J.js} +44 -38
  118. package/runOverlayPresentation-ZO4VCWEU.js +11 -0
  119. package/{runtimeDoctorCommands-THIHX2SY.js → runtimeDoctorCommands-E2OUORHK.js} +6 -6
  120. package/setDialogExtraReferencesAction-JZEXA5SL.js +27 -0
  121. package/{setPrimaryDialogAgentAction-IIVDCY5C.js → setPrimaryDialogAgentAction-4ZUQQKDG.js} +26 -17
  122. package/{settingSlice-O23YDK2O.js → settingSlice-7MNKHZ6R.js} +9 -8
  123. package/{skillDiscovery-6M2BZUFN.js → skillDiscovery-KJWT7JBU.js} +3 -3
  124. package/{spaceCommands-VV4GTPQK.js → spaceCommands-DHCZ7J5I.js} +31 -28
  125. package/{spaceSlice-DRWWZJP7.js → spaceSlice-ZXLLG3CR.js} +20 -19
  126. package/{streamAgentChatTurn-Y6WGATQR.js → streamAgentChatTurn-L3YW6LSB.js} +98 -57
  127. package/{tableCommands-3P7MJ3PF.js → tableCommands-BEQAGE4I.js} +1 -1
  128. package/{tools-PUNBY3AH.js → tools-ECGXR5QF.js} +33 -28
  129. package/{tuiSummaryLlmCaller-F64WLSAF.js → tuiSummaryLlmCaller-OMSCNHXA.js} +6 -5
  130. package/types-ZSTJ7MPR.js +7 -0
  131. package/{updateDialogTitleAction-YSR4TCMB.js → updateDialogTitleAction-HQ2EUDFT.js} +23 -22
  132. package/{chunk-O4BU24WZ.js → chunk-6Y7A3OQQ.js} +3 -3
  133. package/{chunk-CMKUBIGW.js → chunk-X7W4TNB4.js} +3 -3
  134. package/{localRuntimeAuthority-TEGCOWX4.js → localRuntimeAuthority-4IXJCHZ7.js} +3 -3
@@ -2,17 +2,17 @@ import {
2
2
  fileKey,
3
3
  getFileIdFromKey,
4
4
  ulid
5
- } from "./chunk-O4BU24WZ.js";
5
+ } from "./chunk-6Y7A3OQQ.js";
6
6
  import {
7
7
  loadFileFromIndexedDb,
8
8
  removeAction,
9
9
  saveFileToIndexedDb
10
- } from "./chunk-JTINRTBT.js";
10
+ } from "./chunk-SKDNBYZK.js";
11
11
  import {
12
12
  readAction,
13
13
  readRequestManager,
14
14
  resolveAgentReadServers
15
- } from "./chunk-XPC5C7BK.js";
15
+ } from "./chunk-3ND52WIL.js";
16
16
  import {
17
17
  asyncThunkCreator,
18
18
  buildCreateSlice,
@@ -32,13 +32,13 @@ import {
32
32
  shouldReplaceLocalWithRemoteRecord,
33
33
  shouldReplicateLocalRecord,
34
34
  uploadToCurrentServer
35
- } from "./chunk-DVRHHFEA.js";
35
+ } from "./chunk-XMLRJUU5.js";
36
36
  import {
37
37
  fetchFromClientDb,
38
38
  fetchFromServer,
39
39
  logger,
40
40
  normalizeTimeFields
41
- } from "./chunk-OOSFSFMA.js";
41
+ } from "./chunk-R5V5G73M.js";
42
42
  import {
43
43
  isTombstoneRecord
44
44
  } from "./chunk-GBRG75BQ.js";
@@ -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-CN3TNXIP.js");
707
+ const { readAction: readAction2 } = await import("./read-3FMPZPER.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-F5JACQBG.js");
781
+ const { shareResourceAction } = await import("./action-LT7BRFLK.js");
782
782
  return shareResourceAction(config, thunkApi);
783
783
  }
784
784
  ),
@@ -1,31 +1,32 @@
1
1
  import {
2
+ MENU_USAGE_INSTRUCTIONS,
2
3
  buildCurrentTimeBlock,
3
4
  buildIdentityBlock,
4
5
  buildRuntimeGuidanceBlocks
5
- } from "./chunk-LPEUV5RE.js";
6
- import {
7
- canonicalizeToolNames
8
- } from "./chunk-JTMNCCWF.js";
6
+ } from "./chunk-34WPV75U.js";
9
7
  import {
10
8
  estimateTokenCount,
11
9
  getModelContextWindow,
12
10
  planCompression,
13
11
  planContextUsage,
14
12
  serializeMessageContent
15
- } from "./chunk-4L2OJPCU.js";
13
+ } from "./chunk-I2ZJKTG5.js";
16
14
  import {
17
15
  clipCompactText
18
16
  } from "./chunk-5MMAK75Q.js";
19
17
  import {
20
18
  findModelConfig,
21
19
  getProviderByModelName
22
- } from "./chunk-66X4VSRC.js";
23
- import {
24
- buildDialogSummaryLayer
25
- } from "./chunk-QLUFR47U.js";
20
+ } from "./chunk-UAIVG4J6.js";
26
21
  import {
27
22
  toErrorMessage
28
23
  } from "./chunk-HNMXYYJR.js";
24
+ import {
25
+ buildDialogSummaryLayer
26
+ } from "./chunk-AL2V7U3E.js";
27
+ import {
28
+ canonicalizeToolNames
29
+ } from "./chunk-ZZ2MH7LE.js";
29
30
  import {
30
31
  asRecordOrEmpty
31
32
  } from "./chunk-KX6YBIHG.js";
@@ -1034,7 +1035,11 @@ function buildMessages(args) {
1034
1035
  ${dynamicContent}` : stableContent;
1035
1036
  return {
1036
1037
  messages: [
1037
- ...systemContent2 ? [{ role: "system", content: systemContent2 }] : [],
1038
+ ...systemContent2 ? [{
1039
+ role: "system",
1040
+ content: systemContent2,
1041
+ ...stableContent ? { stable_prefix_chars: stableContent.length } : {}
1042
+ }] : [],
1038
1043
  ...prepareHistoryForNextTurn(args.history, args.contextReferenceResolver),
1039
1044
  { role: "user", content: args.input }
1040
1045
  ],
@@ -1147,7 +1152,9 @@ function applyPersistedTurnInput(messages, persistedInput, persistedInputReferen
1147
1152
  async function runLocalAgentTurn(input) {
1148
1153
  const agentConfig = await input.adapter.loadAgentConfig(input.agentRef);
1149
1154
  if (!agentConfig) {
1150
- const error = new Error(`Local agent config not found: ${input.agentRef}`);
1155
+ const error = new Error(
1156
+ `agentRef "${input.agentRef}" \u672A\u5339\u914D\u5230\u672C\u5730 agent\u3002\u8FD9\u4E0D\u662F\u914D\u7F6E\u7F3A\u5931\uFF0C\u8BF7\u7528 listAgents \u67E5\u770B\u53EF\u7528 agent\uFF0C\u518D\u7528 readAgent \u89E3\u6790 agentKey\uFF0C\u52FF\u624B\u5DE5\u62FC key\u3002`
1157
+ );
1151
1158
  error.code = LOCAL_AGENT_CONFIG_MISSING_CODE;
1152
1159
  error.agentRef = input.agentRef;
1153
1160
  throw error;
@@ -1176,11 +1183,13 @@ async function runLocalAgentTurn(input) {
1176
1183
  agentConfig.exposedToolNames ?? agentConfig.toolNames ?? []
1177
1184
  );
1178
1185
  const guidanceBlocks = buildRuntimeGuidanceBlocks(agentTools);
1186
+ const menuUsageBlock = agentTools.includes("ask_user") ? MENU_USAGE_INSTRUCTIONS : "";
1179
1187
  const guidanceScopes = [
1180
1188
  guidanceBlocks.startupProtocol,
1181
1189
  guidanceBlocks.contextLayerContract,
1182
1190
  guidanceBlocks.emailRegistrationWorkflow,
1183
- guidanceBlocks.webResearchToolPolicy
1191
+ guidanceBlocks.webResearchToolPolicy,
1192
+ menuUsageBlock
1184
1193
  ].map((content) => content.trim()).filter((content) => content.length > 0).map((content) => ({ content, cacheScope: "session" }));
1185
1194
  const currentTimeScope = [
1186
1195
  { content: buildCurrentTimeBlock(/* @__PURE__ */ new Date(), void 0), cacheScope: "turn" }
@@ -1370,7 +1379,11 @@ async function runLocalAgentTurn(input) {
1370
1379
  name: toolName,
1371
1380
  arguments: toolCall.function.arguments,
1372
1381
  ...userInputText ? { userInput: userInputText } : {},
1382
+ ...input.runtimeContext ? { runtimeContext: input.runtimeContext } : {},
1373
1383
  ...input.abortSignal ? { abortSignal: input.abortSignal } : {}
1384
+ }, {
1385
+ ...input.abortSignal ? { abortSignal: input.abortSignal } : {},
1386
+ ...input.runtimeContext ? { runtimeContext: input.runtimeContext } : {}
1374
1387
  });
1375
1388
  toolResult = await raceWithAbort(input, executePromise, toolName);
1376
1389
  const actionGate = buildActionGate({
@@ -0,0 +1,84 @@
1
+ // packages/agent-runtime/toolNameAliases.ts
2
+ var LEGACY_TOOL_NAME_ALIASES = {
3
+ createPage: "createDoc",
4
+ updatePage: "updateDoc",
5
+ update_page: "updateDoc",
6
+ create_page: "createDoc",
7
+ fetchwebpage: "fetchWebpage",
8
+ fetch_webpage: "fetchWebpage",
9
+ "fetch-page": "fetchWebpage",
10
+ exasearch: "exa_search",
11
+ "exa-search": "exa_search",
12
+ exa_search: "exa_search",
13
+ firecrawlscrape: "firecrawl_scrape",
14
+ "firecrawl-scrape": "firecrawl_scrape",
15
+ firecrawl_scrape: "firecrawl_scrape",
16
+ firecrawlsearch: "firecrawl_search",
17
+ "firecrawl-search": "firecrawl_search",
18
+ firecrawl_search: "firecrawl_search",
19
+ readDoc: "readDoc",
20
+ readpage: "readDoc",
21
+ read_page: "readDoc",
22
+ read_doc: "readDoc",
23
+ createdoc: "createDoc",
24
+ updateDocTool: "updateDoc",
25
+ terminalCommand: "execShell",
26
+ terminal_command: "execShell",
27
+ runCommand: "execShell",
28
+ run_command: "execShell",
29
+ runInBash: "execShell",
30
+ run_in_bash: "execShell",
31
+ executeCommand: "execShell",
32
+ execute_command: "execShell",
33
+ // Codex CLI 风格工具名 → nolo 原生工具名
34
+ bash: "execShell",
35
+ shell: "execShell",
36
+ read: "readFile",
37
+ edit: "editFile",
38
+ write: "writeFile",
39
+ glob: "globFiles",
40
+ grep: "searchFiles",
41
+ // 联网搜索别名
42
+ web_search: "exa_search",
43
+ websearch: "exa_search",
44
+ search_web: "exa_search",
45
+ searchweb: "exa_search",
46
+ webfetch: "fetchWebpage",
47
+ web_fetch: "fetchWebpage",
48
+ fetchweb: "fetchWebpage",
49
+ fetch_web: "fetchWebpage",
50
+ // 模型偶尔会把 loadSkill 幻觉成 readSkill(参数风格 name= 一致),
51
+ // 规范化到 loadSkill,避免 localToolPolicy 把这种调用直接拦死。
52
+ readSkill: "loadSkill"
53
+ };
54
+ var normalizeToolName = (name) => name.replace(/[-_]/g, "").toLowerCase();
55
+ var canonicalizeToolName = (rawName) => {
56
+ const trimmedName = rawName.trim();
57
+ if (!trimmedName) return rawName;
58
+ if (LEGACY_TOOL_NAME_ALIASES[trimmedName]) {
59
+ return LEGACY_TOOL_NAME_ALIASES[trimmedName];
60
+ }
61
+ const normalizedRawName = normalizeToolName(trimmedName);
62
+ const matchedAlias = Object.entries(LEGACY_TOOL_NAME_ALIASES).find(
63
+ ([alias]) => normalizeToolName(alias) === normalizedRawName
64
+ );
65
+ return matchedAlias?.[1] ?? trimmedName;
66
+ };
67
+ var canonicalizeToolNames = (toolNames) => Array.from(
68
+ new Set(
69
+ toolNames.filter((toolName) => typeof toolName === "string").map(canonicalizeToolName)
70
+ )
71
+ );
72
+ var prioritizeToolNames = (toolNames, preferredToolNames) => {
73
+ const canonicalTools = canonicalizeToolNames(toolNames);
74
+ const preferred = new Set(canonicalizeToolNames(preferredToolNames));
75
+ const prioritized = canonicalTools.filter((toolName) => preferred.has(toolName));
76
+ const remaining = canonicalTools.filter((toolName) => !preferred.has(toolName));
77
+ return [...prioritized, ...remaining];
78
+ };
79
+
80
+ export {
81
+ canonicalizeToolName,
82
+ canonicalizeToolNames,
83
+ prioritizeToolNames
84
+ };
@@ -12,11 +12,11 @@ import {
12
12
  isBufferedCliStreamingProvider,
13
13
  materializeCliImageInputs,
14
14
  startCliSession
15
- } from "./chunk-CMKUBIGW.js";
16
- import "./chunk-JBTJAPUF.js";
15
+ } from "./chunk-X7W4TNB4.js";
17
16
  import {
18
17
  buildCliPrompt
19
18
  } from "./chunk-ATNTHIZI.js";
19
+ import "./chunk-JBTJAPUF.js";
20
20
  import "./chunk-4VNS5WPM.js";
21
21
  export {
22
22
  CLI_PROBE_BINARIES,
@@ -0,0 +1,48 @@
1
+ import {
2
+ CODING_COMPILED_EFFECTIVE_TOOLS,
3
+ CODING_ROOT_SKILL_ID,
4
+ CODING_ROOT_SKILL_REFERENCE,
5
+ CODING_ROOT_SKILL_SLUG,
6
+ CODING_SKILL_SEEDS,
7
+ CODING_SKILL_SLUGS,
8
+ buildCodingRootSkillReference,
9
+ buildCodingSkillConfig,
10
+ buildCodingSkillContentByKey,
11
+ buildCodingSkillContentBySlug,
12
+ buildCodingSkillId,
13
+ buildCodingSkillPageKey,
14
+ buildCodingSkillPageRecords,
15
+ collectCodingReachableSkillSlugs,
16
+ compileCodingEffectivePromptPatches,
17
+ compileCodingEffectiveTools,
18
+ ensureCodingSkills,
19
+ resolveCodingBuiltinSlug,
20
+ resolveCodingEffectiveTools
21
+ } from "./chunk-7BUYEZ6U.js";
22
+ import "./chunk-VC6OZXO5.js";
23
+ import "./chunk-WZSRQNQG.js";
24
+ import "./chunk-ZZ2MH7LE.js";
25
+ import "./chunk-I42VC5KR.js";
26
+ import "./chunk-G3SUCT4W.js";
27
+ import "./chunk-4VNS5WPM.js";
28
+ export {
29
+ CODING_COMPILED_EFFECTIVE_TOOLS,
30
+ CODING_ROOT_SKILL_ID,
31
+ CODING_ROOT_SKILL_REFERENCE,
32
+ CODING_ROOT_SKILL_SLUG,
33
+ CODING_SKILL_SEEDS,
34
+ CODING_SKILL_SLUGS,
35
+ buildCodingRootSkillReference,
36
+ buildCodingSkillConfig,
37
+ buildCodingSkillContentByKey,
38
+ buildCodingSkillContentBySlug,
39
+ buildCodingSkillId,
40
+ buildCodingSkillPageKey,
41
+ buildCodingSkillPageRecords,
42
+ collectCodingReachableSkillSlugs,
43
+ compileCodingEffectivePromptPatches,
44
+ compileCodingEffectiveTools,
45
+ ensureCodingSkills,
46
+ resolveCodingBuiltinSlug,
47
+ resolveCodingEffectiveTools
48
+ };
@@ -1,48 +1,49 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-NSCHQQPU.js";
3
+ } from "./chunk-SCTYAHYK.js";
4
4
  import "./chunk-XOIF2TNF.js";
5
+ import "./chunk-B5TOXZAK.js";
5
6
  import "./chunk-MRC4Q34M.js";
6
- import "./chunk-MTU75CZ2.js";
7
+ import "./chunk-REA4JLBH.js";
7
8
  import "./chunk-CWMSB67P.js";
8
- import "./chunk-S2LXHNHG.js";
9
- import "./chunk-RPDGJO4D.js";
10
- import "./chunk-SOTZ6RDN.js";
9
+ import "./chunk-XHG22OEX.js";
11
10
  import "./chunk-Z4NR32XR.js";
12
11
  import "./chunk-M76ECQRD.js";
13
- import "./chunk-4L2OJPCU.js";
12
+ import "./chunk-3Q7WHGCB.js";
13
+ import "./chunk-I2ZJKTG5.js";
14
14
  import "./chunk-5MMAK75Q.js";
15
- import "./chunk-66X4VSRC.js";
16
15
  import "./chunk-5CS33IBL.js";
17
16
  import "./chunk-JZPBVBIY.js";
17
+ import "./chunk-UAIVG4J6.js";
18
18
  import "./chunk-ZHXJ6M7T.js";
19
+ import "./chunk-HNMXYYJR.js";
20
+ import "./chunk-ELT65PZW.js";
19
21
  import "./chunk-DFFIZ25G.js";
20
22
  import "./chunk-3ASDTTEI.js";
21
23
  import "./chunk-DWLEOOGR.js";
22
- import "./chunk-HNMXYYJR.js";
23
- import "./chunk-XBS2WYJ2.js";
24
- import "./chunk-O6W2O2DA.js";
25
- import "./chunk-EABWT43X.js";
24
+ import "./chunk-LLWKHDG4.js";
25
+ import "./chunk-MKA6QE5E.js";
26
+ import "./chunk-RVOUXDFU.js";
26
27
  import "./chunk-Y5GCAMGP.js";
27
28
  import "./chunk-KX6YBIHG.js";
28
- import "./chunk-IWLUTMYX.js";
29
29
  import {
30
30
  write
31
- } from "./chunk-3S2VOMIF.js";
31
+ } from "./chunk-XRZJGPFI.js";
32
32
  import {
33
33
  buildAgentAutomationOwnerIndexValue,
34
34
  createAgentAutomationKey,
35
35
  createAgentAutomationOwnerIndexKey
36
- } from "./chunk-O4BU24WZ.js";
37
- import "./chunk-I42VC5KR.js";
36
+ } from "./chunk-6Y7A3OQQ.js";
38
37
  import "./chunk-WWC7I6TA.js";
39
- import "./chunk-JTINRTBT.js";
38
+ import "./chunk-SKDNBYZK.js";
39
+ import "./chunk-I42VC5KR.js";
40
40
  import "./chunk-QSJ3HFEF.js";
41
- import "./chunk-XPC5C7BK.js";
41
+ import "./chunk-X4Q4UZEY.js";
42
+ import "./chunk-3ND52WIL.js";
42
43
  import {
43
44
  selectIdentityUserId
44
- } from "./chunk-DVRHHFEA.js";
45
- import "./chunk-OOSFSFMA.js";
45
+ } from "./chunk-XMLRJUU5.js";
46
+ import "./chunk-R5V5G73M.js";
46
47
  import "./chunk-GBRG75BQ.js";
47
48
  import {
48
49
  asTrimmedString
@@ -1,44 +1,45 @@
1
1
  import {
2
2
  createDialogAction,
3
3
  isLocalOwnerDialogAgents
4
- } from "./chunk-Z5JQNBNY.js";
5
- import "./chunk-VC6OZXO5.js";
6
- import "./chunk-NSCHQQPU.js";
4
+ } from "./chunk-IYEXFJPC.js";
5
+ import "./chunk-SCTYAHYK.js";
7
6
  import "./chunk-XOIF2TNF.js";
7
+ import "./chunk-B5TOXZAK.js";
8
8
  import "./chunk-MRC4Q34M.js";
9
- import "./chunk-MTU75CZ2.js";
9
+ import "./chunk-REA4JLBH.js";
10
10
  import "./chunk-CWMSB67P.js";
11
- import "./chunk-S2LXHNHG.js";
12
- import "./chunk-RPDGJO4D.js";
13
- import "./chunk-SOTZ6RDN.js";
11
+ import "./chunk-XHG22OEX.js";
14
12
  import "./chunk-Z4NR32XR.js";
15
13
  import "./chunk-M76ECQRD.js";
14
+ import "./chunk-3Q7WHGCB.js";
15
+ import "./chunk-VC6OZXO5.js";
16
16
  import "./chunk-WZSRQNQG.js";
17
- import "./chunk-4L2OJPCU.js";
17
+ import "./chunk-I2ZJKTG5.js";
18
18
  import "./chunk-5MMAK75Q.js";
19
- import "./chunk-66X4VSRC.js";
20
19
  import "./chunk-5CS33IBL.js";
21
20
  import "./chunk-JZPBVBIY.js";
21
+ import "./chunk-UAIVG4J6.js";
22
22
  import "./chunk-ZHXJ6M7T.js";
23
+ import "./chunk-HNMXYYJR.js";
24
+ import "./chunk-ELT65PZW.js";
23
25
  import "./chunk-DFFIZ25G.js";
24
26
  import "./chunk-3ASDTTEI.js";
25
27
  import "./chunk-DWLEOOGR.js";
26
- import "./chunk-HNMXYYJR.js";
27
- import "./chunk-XBS2WYJ2.js";
28
- import "./chunk-O6W2O2DA.js";
29
- import "./chunk-EABWT43X.js";
28
+ import "./chunk-LLWKHDG4.js";
29
+ import "./chunk-MKA6QE5E.js";
30
+ import "./chunk-RVOUXDFU.js";
30
31
  import "./chunk-Y5GCAMGP.js";
31
32
  import "./chunk-KX6YBIHG.js";
32
- import "./chunk-IWLUTMYX.js";
33
- import "./chunk-3S2VOMIF.js";
34
- import "./chunk-O4BU24WZ.js";
35
- import "./chunk-I42VC5KR.js";
33
+ import "./chunk-XRZJGPFI.js";
34
+ import "./chunk-6Y7A3OQQ.js";
36
35
  import "./chunk-WWC7I6TA.js";
37
- import "./chunk-JTINRTBT.js";
36
+ import "./chunk-SKDNBYZK.js";
37
+ import "./chunk-I42VC5KR.js";
38
38
  import "./chunk-QSJ3HFEF.js";
39
- import "./chunk-XPC5C7BK.js";
40
- import "./chunk-DVRHHFEA.js";
41
- import "./chunk-OOSFSFMA.js";
39
+ import "./chunk-X4Q4UZEY.js";
40
+ import "./chunk-3ND52WIL.js";
41
+ import "./chunk-XMLRJUU5.js";
42
+ import "./chunk-R5V5G73M.js";
42
43
  import "./chunk-GBRG75BQ.js";
43
44
  import "./chunk-3EUW3WEO.js";
44
45
  import "./chunk-U6VC4MU4.js";
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  markdownToSlate
3
3
  } from "./chunk-3LY4F7SV.js";
4
+ import {
5
+ buildSkillSummaryMarker
6
+ } from "./chunk-VF4K2QE6.js";
4
7
  import {
5
8
  createEmptyParagraph,
6
9
  splitSlateTitleAndBody
@@ -8,58 +11,56 @@ import {
8
11
  import {
9
12
  slateToRenderMarkdown
10
13
  } from "./chunk-63W5N6P3.js";
11
- import {
12
- buildSkillSummaryMarker
13
- } from "./chunk-VF4K2QE6.js";
14
- import {
15
- parseSkillDocProtocol
16
- } from "./chunk-VC6OZXO5.js";
17
14
  import {
18
15
  addContentToSpace,
19
16
  client_default,
20
17
  selectCurrentSpaceId
21
- } from "./chunk-NSCHQQPU.js";
18
+ } from "./chunk-SCTYAHYK.js";
22
19
  import "./chunk-XOIF2TNF.js";
20
+ import "./chunk-B5TOXZAK.js";
23
21
  import "./chunk-MRC4Q34M.js";
24
- import "./chunk-MTU75CZ2.js";
22
+ import "./chunk-REA4JLBH.js";
25
23
  import "./chunk-CWMSB67P.js";
26
- import "./chunk-S2LXHNHG.js";
27
- import "./chunk-RPDGJO4D.js";
28
- import "./chunk-SOTZ6RDN.js";
24
+ import "./chunk-XHG22OEX.js";
29
25
  import "./chunk-Z4NR32XR.js";
30
26
  import "./chunk-M76ECQRD.js";
27
+ import "./chunk-3Q7WHGCB.js";
28
+ import {
29
+ parseSkillDocProtocol
30
+ } from "./chunk-VC6OZXO5.js";
31
31
  import "./chunk-WZSRQNQG.js";
32
- import "./chunk-4L2OJPCU.js";
32
+ import "./chunk-I2ZJKTG5.js";
33
33
  import "./chunk-5MMAK75Q.js";
34
- import "./chunk-66X4VSRC.js";
35
34
  import "./chunk-5CS33IBL.js";
36
35
  import "./chunk-JZPBVBIY.js";
36
+ import "./chunk-UAIVG4J6.js";
37
37
  import "./chunk-ZHXJ6M7T.js";
38
+ import "./chunk-HNMXYYJR.js";
39
+ import "./chunk-ELT65PZW.js";
38
40
  import "./chunk-DFFIZ25G.js";
39
41
  import "./chunk-3ASDTTEI.js";
40
42
  import "./chunk-DWLEOOGR.js";
41
- import "./chunk-HNMXYYJR.js";
42
- import "./chunk-XBS2WYJ2.js";
43
- import "./chunk-O6W2O2DA.js";
44
- import "./chunk-EABWT43X.js";
43
+ import "./chunk-LLWKHDG4.js";
44
+ import "./chunk-MKA6QE5E.js";
45
+ import "./chunk-RVOUXDFU.js";
45
46
  import "./chunk-Y5GCAMGP.js";
46
47
  import "./chunk-KX6YBIHG.js";
47
- import "./chunk-IWLUTMYX.js";
48
48
  import {
49
49
  write
50
- } from "./chunk-3S2VOMIF.js";
50
+ } from "./chunk-XRZJGPFI.js";
51
51
  import {
52
52
  createPageKey
53
- } from "./chunk-O4BU24WZ.js";
54
- import "./chunk-I42VC5KR.js";
53
+ } from "./chunk-6Y7A3OQQ.js";
55
54
  import "./chunk-WWC7I6TA.js";
56
- import "./chunk-JTINRTBT.js";
55
+ import "./chunk-SKDNBYZK.js";
56
+ import "./chunk-I42VC5KR.js";
57
57
  import "./chunk-QSJ3HFEF.js";
58
- import "./chunk-XPC5C7BK.js";
58
+ import "./chunk-X4Q4UZEY.js";
59
+ import "./chunk-3ND52WIL.js";
59
60
  import {
60
61
  selectIdentityUserId
61
- } from "./chunk-DVRHHFEA.js";
62
- import "./chunk-OOSFSFMA.js";
62
+ } from "./chunk-XMLRJUU5.js";
63
+ import "./chunk-R5V5G73M.js";
63
64
  import "./chunk-GBRG75BQ.js";
64
65
  import "./chunk-3EUW3WEO.js";
65
66
  import "./chunk-U6VC4MU4.js";
@@ -230,21 +230,47 @@ var db_default = serverDb;
230
230
  function getServerAuthorityStore() {
231
231
  return authorityStore;
232
232
  }
233
- async function ensureServerDbOpen() {
233
+ var DEFAULT_SERVER_DB_OPEN_LOCK_TIMEOUT_MS = 9e4;
234
+ var DEFAULT_SERVER_DB_OPEN_LOCK_INTERVAL_MS = 1e3;
235
+ function resolveServerDbOpenLockTimeoutMs(env = process.env) {
236
+ const raw = env.NOLO_SERVER_DB_OPEN_LOCK_TIMEOUT_MS;
237
+ if (!raw) return DEFAULT_SERVER_DB_OPEN_LOCK_TIMEOUT_MS;
238
+ const parsed = Number(raw);
239
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_SERVER_DB_OPEN_LOCK_TIMEOUT_MS;
240
+ }
241
+ function defaultSleep(ms) {
242
+ return new Promise((resolve) => setTimeout(resolve, ms));
243
+ }
244
+ async function ensureServerDbOpen(options) {
234
245
  const status = authorityStore.status;
235
246
  if (status === "open") return;
236
- try {
237
- await ensureDbOpen(authorityStore);
238
- if (status !== "opening") {
239
- console.log("\u2705 LevelDB \u5DF2\u6253\u5F00");
240
- }
241
- } catch (err) {
242
- if (isServerDbLockError(err)) {
243
- console.error("\u274C \u6253\u5F00 LevelDB \u5931\u8D25: \u6570\u636E\u5E93\u5DF2\u88AB\u5176\u4ED6\u8FDB\u7A0B\u5360\u7528");
244
- } else {
245
- console.error("\u274C \u6253\u5F00 LevelDB \u5931\u8D25:", err);
247
+ const timeoutMs = options?.timeoutMs ?? resolveServerDbOpenLockTimeoutMs();
248
+ const intervalMs = options?.intervalMs ?? DEFAULT_SERVER_DB_OPEN_LOCK_INTERVAL_MS;
249
+ const sleep = options?.sleep ?? defaultSleep;
250
+ const now = options?.now ?? Date.now;
251
+ const deadline = now() + timeoutMs;
252
+ for (let attempt = 1; ; attempt += 1) {
253
+ try {
254
+ await ensureDbOpen(authorityStore);
255
+ if (status !== "opening") {
256
+ console.log("\u2705 LevelDB \u5DF2\u6253\u5F00");
257
+ }
258
+ return;
259
+ } catch (err) {
260
+ if (!isServerDbLockError(err)) {
261
+ console.error("\u274C \u6253\u5F00 LevelDB \u5931\u8D25:", err);
262
+ throw err;
263
+ }
264
+ const remainingMs = deadline - now();
265
+ if (remainingMs <= 0) {
266
+ console.error("\u274C \u6253\u5F00 LevelDB \u5931\u8D25: \u6570\u636E\u5E93\u5DF2\u88AB\u5176\u4ED6\u8FDB\u7A0B\u5360\u7528");
267
+ throw err;
268
+ }
269
+ console.warn(
270
+ `\u26A0\uFE0F LevelDB \u88AB\u5176\u4ED6\u8FDB\u7A0B\u5360\u7528\uFF08\u7B2C ${attempt} \u6B21\u5C1D\u8BD5\uFF0C\u8DDD\u8D85\u65F6\u7EA6 ${Math.max(1, Math.ceil(remainingMs / 1e3))}s\uFF09\uFF0C${intervalMs}ms \u540E\u91CD\u8BD5`
271
+ );
272
+ await sleep(intervalMs);
246
273
  }
247
- throw err;
248
274
  }
249
275
  }
250
276
  async function openServerDb() {
@@ -18,15 +18,16 @@ import {
18
18
  upsert,
19
19
  upsertSSREntity,
20
20
  write
21
- } from "./chunk-3S2VOMIF.js";
22
- import "./chunk-O4BU24WZ.js";
23
- import "./chunk-I42VC5KR.js";
21
+ } from "./chunk-XRZJGPFI.js";
22
+ import "./chunk-6Y7A3OQQ.js";
24
23
  import "./chunk-WWC7I6TA.js";
25
- import "./chunk-JTINRTBT.js";
24
+ import "./chunk-SKDNBYZK.js";
25
+ import "./chunk-I42VC5KR.js";
26
26
  import "./chunk-QSJ3HFEF.js";
27
- import "./chunk-XPC5C7BK.js";
28
- import "./chunk-DVRHHFEA.js";
29
- import "./chunk-OOSFSFMA.js";
27
+ import "./chunk-X4Q4UZEY.js";
28
+ import "./chunk-3ND52WIL.js";
29
+ import "./chunk-XMLRJUU5.js";
30
+ import "./chunk-R5V5G73M.js";
30
31
  import "./chunk-GBRG75BQ.js";
31
32
  import "./chunk-3EUW3WEO.js";
32
33
  import "./chunk-U6VC4MU4.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  deleteFileFromIndexedDb,
3
3
  removeAction
4
- } from "./chunk-JTINRTBT.js";
5
- import "./chunk-DVRHHFEA.js";
4
+ } from "./chunk-SKDNBYZK.js";
5
+ import "./chunk-XMLRJUU5.js";
6
6
  import {
7
7
  fetchFromClientDb,
8
8
  logger
9
- } from "./chunk-OOSFSFMA.js";
9
+ } from "./chunk-R5V5G73M.js";
10
10
  import "./chunk-GBRG75BQ.js";
11
11
  import "./chunk-3EUW3WEO.js";
12
12
  import "./chunk-U6VC4MU4.js";