nolo-cli 0.32.0 → 0.33.0-alpha.11

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 (179) hide show
  1. package/README.md +6 -12
  2. package/{_executeModel-LTMSIBS4.js → _executeModel-YXWAXPWQ.js} +77 -67
  3. package/{action-HI3VRQLP.js → action-OQWPNKAH.js} +17 -15
  4. package/{addContentAction-NCURJ6PK.js → addContentAction-YVINZQTF.js} +14 -13
  5. package/{addDialogAgentAction-RCY4ECF4.js → addDialogAgentAction-6IOCIEPI.js} +14 -13
  6. package/{agentDeleteCommand-D3MYZK6E.js → agentDeleteCommand-VGHWJN5T.js} +44 -60
  7. package/{agentEmailCommands-6BXS574I.js → agentEmailCommands-ZLRF35I3.js} +91 -81
  8. package/{agentGrantCommands-E7ZZFRHK.js → agentGrantCommands-2LEZDADN.js} +2 -2
  9. package/{agentListCommands-SF3HEUTT.js → agentListCommands-OHZJ7AFP.js} +75 -79
  10. package/{agentMachineCommands-YARVXRR6.js → agentMachineCommands-62PHPGTK.js} +43 -59
  11. package/{agentPullCommand-ARSIDNVC.js → agentPullCommand-TSWAJPS2.js} +5 -5
  12. package/agentRecordCommands-CW2JWERD.js +113 -0
  13. package/agentRunCommand-O4HV7YWA.js +131 -0
  14. package/{agentRuntimeLocal-ATGJY6WC.js → agentRuntimeLocal-4PSBNUOE.js} +37 -51
  15. package/{agentSlice-4XWW344Y.js → agentSlice-OUTQ5O72.js} +16 -14
  16. package/{appDeleteCommands-63JO7RXS.js → appDeleteCommands-VTDBVHYR.js} +40 -56
  17. package/{appDeployCommands-Y7EWYUGM.js → appDeployCommands-WOUP7MDA.js} +40 -56
  18. package/{appDeployStatusCommands-ZBEY3DWB.js → appDeployStatusCommands-N2NWZKEN.js} +40 -56
  19. package/{appGetCommands-QSSOSEYL.js → appGetCommands-GYKLWWCA.js} +40 -56
  20. package/{appListCommands-PH3XWNDX.js → appListCommands-RUWBSEJK.js} +40 -56
  21. package/{authCommand-BBDHMSO6.js → authCommand-YVXVH25I.js} +21 -20
  22. package/{authCommands-4UDEKRE6.js → authCommands-WTW6MEYS.js} +10 -10
  23. package/chatQueueReduxAdapter-2QJAD4KQ.js +181 -0
  24. package/{chunk-EEF23OOK.js → chunk-266VUBLK.js} +7 -7
  25. package/{chunk-TEYN42N3.js → chunk-2IVEXF7P.js} +11 -4
  26. package/{chunk-2HXKAPH7.js → chunk-2QLAVHVK.js} +6 -6
  27. package/{chunk-WTGCTVJG.js → chunk-2QTEYCR7.js} +3 -6
  28. package/{chunk-DOISARTV.js → chunk-2UECQ7RE.js} +1 -1
  29. package/{chunk-E3APEOIM.js → chunk-3GZXL6FM.js} +4 -19
  30. package/{chunk-KGEVMUMI.js → chunk-3RUW3ONU.js} +11 -11
  31. package/{chunk-RXVX5LFR.js → chunk-3UG2IIZ3.js} +1 -1
  32. package/{chunk-O5OMJPPF.js → chunk-3WXRAHCG.js} +6 -5
  33. package/{chunk-V54H24CQ.js → chunk-4F5M2MW5.js} +3 -3
  34. package/{chunk-2ZRP5RUG.js → chunk-4OV7DXFJ.js} +12 -11
  35. package/{chunk-W367V5CH.js → chunk-54BAYVCY.js} +404 -117
  36. package/{chunk-GAF5X6B7.js → chunk-5QW3O3ET.js} +284 -310
  37. package/{chunk-DLWCWUNW.js → chunk-64OVNZXE.js} +1197 -757
  38. package/{chunk-ODS2MVMU.js → chunk-66CWPJK2.js} +19 -303
  39. package/{chunk-PTHDLIRB.js → chunk-6KOS7ZBZ.js} +1 -1
  40. package/{chunk-MXFQHRSS.js → chunk-6XIE5ZGI.js} +1 -1
  41. package/{chunk-ATK5WJOA.js → chunk-6YXDOOSH.js} +4 -4
  42. package/{chunk-SWYMCHM7.js → chunk-75U775RZ.js} +69 -1
  43. package/{chunk-UDA3ZYLW.js → chunk-7YYHKBJP.js} +31 -72
  44. package/chunk-ADLYMQB6.js +642 -0
  45. package/{chunk-ZWJOGMKH.js → chunk-AETZ7AD6.js} +1 -1
  46. package/{chunk-43EPBPZ2.js → chunk-ASDXPOJH.js} +2 -2
  47. package/{chunk-44HACRCK.js → chunk-BANYWEYY.js} +4 -4
  48. package/chunk-BFPSVRCQ.js +1799 -0
  49. package/{chunk-TOW4E763.js → chunk-BJIRLHJR.js} +2 -0
  50. package/{chunk-ZJ2WITOO.js → chunk-BQXOGBFN.js} +2 -2
  51. package/{chunk-4PNU7W7K.js → chunk-C7H5GMXT.js} +107 -125
  52. package/chunk-CPYYM4RJ.js +98 -0
  53. package/{chunk-3GZT3L6F.js → chunk-DDVIBKIB.js} +326 -481
  54. package/{chunk-2K4NDPT5.js → chunk-DFUPZE6V.js} +20 -12
  55. package/{chunk-BGTUGS3T.js → chunk-DKMOY3QI.js} +4 -30
  56. package/chunk-EGRJC4ZN.js +91 -0
  57. package/{chunk-K6QEHQZ3.js → chunk-EKLRRZIN.js} +1 -1
  58. package/{chunk-6HYVJV7B.js → chunk-ESHYE7WU.js} +2 -1
  59. package/{chunk-XFG3BAKN.js → chunk-FMEVI5TG.js} +65 -0
  60. package/{chunk-U4TRT5V4.js → chunk-GEPHJJW4.js} +1 -1
  61. package/chunk-GJXRIOLS.js +241 -0
  62. package/{chunk-VP4WJWKW.js → chunk-GM6PU7B6.js} +431 -345
  63. package/chunk-HS7MLR74.js +38 -0
  64. package/{chunk-3AUWC6EM.js → chunk-HUCT7HID.js} +5 -84
  65. package/chunk-IDAU4UFS.js +437 -0
  66. package/{chunk-Q76I4SXI.js → chunk-IHEC7VBF.js} +1 -1
  67. package/{chunk-OWHNFZNW.js → chunk-IKWTTKWG.js} +4 -4
  68. package/{chunk-3LY4F7SV.js → chunk-INZZJSQF.js} +348 -331
  69. package/{chunk-ZJH3LKEW.js → chunk-IR6W62Q6.js} +102 -15
  70. package/{chunk-RH53LMEJ.js → chunk-J44TVX2O.js} +2 -4
  71. package/{chunk-CF2WZF4N.js → chunk-J6WH4PYZ.js} +0 -8
  72. package/chunk-KHCLMKZZ.js +3062 -0
  73. package/{chunk-WHLVPK32.js → chunk-KMSZPTM6.js} +27 -3
  74. package/{chunk-L3GCUVOH.js → chunk-KSRFVP36.js} +1 -1
  75. package/{chunk-XDHHF73Q.js → chunk-LUIHOUZC.js} +95 -95
  76. package/{chunk-UOJRKY5J.js → chunk-M2YMQOLC.js} +44 -53
  77. package/chunk-M3JEW6N6.js +193 -0
  78. package/{chunk-MITD7CON.js → chunk-MDIAECHA.js} +1461 -301
  79. package/{chunk-IXZX5CJK.js → chunk-MQRZ5QUH.js} +1 -1
  80. package/{chunk-3ASDTTEI.js → chunk-MRWGHF56.js} +2 -0
  81. package/{chunk-Q3CSL43H.js → chunk-N4XRDM26.js} +1 -1
  82. package/{chunk-D34RI6NI.js → chunk-NNWHHCVP.js} +75 -1
  83. package/{chunk-CAENRKNJ.js → chunk-OR2HNLVO.js} +126 -88
  84. package/chunk-OW765XBU.js +10 -0
  85. package/{chunk-VMWR7VNI.js → chunk-PRMMCFIN.js} +13 -9
  86. package/{chunk-JZPBVBIY.js → chunk-QTZD6HBK.js} +18 -8
  87. package/chunk-RCFIB45Q.js +28 -0
  88. package/{chunk-7S54ZGF6.js → chunk-RJKIB55Y.js} +256 -12
  89. package/chunk-RPRRIFXV.js +231 -0
  90. package/chunk-RQFO3CAF.js +300 -0
  91. package/chunk-RY57GLGW.js +188 -0
  92. package/{chunk-YHGHADBQ.js → chunk-SCUETSRP.js} +4 -4
  93. package/{chunk-TA6EA2A3.js → chunk-TFK3HUNQ.js} +182 -20
  94. package/{chunk-LAXMH7JY.js → chunk-UM4H3URE.js} +18 -15
  95. package/{chunk-6YABCOFU.js → chunk-UNHKVD2N.js} +1 -1
  96. package/{chunk-G5GVZAXF.js → chunk-UNOTBWZZ.js} +15 -19
  97. package/{chunk-GE6IWA5N.js → chunk-UNZDCI3O.js} +126 -1
  98. package/chunk-URMS4XY2.js +10 -0
  99. package/{chunk-SFWZUTCI.js → chunk-VBUQYOX7.js} +2 -2
  100. package/{chunk-FXFGNOT2.js → chunk-VFVCYIRQ.js} +1 -1
  101. package/chunk-VIDPVFP3.js +20 -0
  102. package/{chunk-5RDLGLAP.js → chunk-WJSW43QZ.js} +4 -7
  103. package/{chunk-CF7S2RYZ.js → chunk-WLH5BAKX.js} +6 -6
  104. package/{chunk-VVEH6XUE.js → chunk-X2DAEZ3X.js} +1 -1
  105. package/{chunk-2IJAKBK2.js → chunk-X664KVEV.js} +426 -246
  106. package/{chunk-3FCNXC2J.js → chunk-XRO5VGQ6.js} +3735 -1394
  107. package/chunk-Y5GCAMGP.js +9 -0
  108. package/{chunk-O3JR45Q2.js → chunk-YBMI5JAH.js} +44 -44
  109. package/{chunk-V42OE5HT.js → chunk-YDTYDA5W.js} +3 -3
  110. package/chunk-YYLHWIW6.js +48 -0
  111. package/{chunk-AOS5IN2I.js → chunk-ZHYK3N56.js} +1 -1
  112. package/{chunk-PJ2DDQQM.js → chunk-ZURFOV5J.js} +2 -2
  113. package/{chunk-3UGKATZQ.js → chunk-ZWS6DUHX.js} +26 -435
  114. package/chunk-ZZ2MH7LE.js +84 -0
  115. package/{cliExecutor-BBUVQU4L.js → cliExecutor-DW3PHGEL.js} +2 -2
  116. package/{clipboardy-BVE3LVEH.js → clipboardy-MMBYVRLF.js} +166 -372
  117. package/{codingSkills-V35TRR4Y.js → codingSkills-DY5MINPG.js} +5 -4
  118. package/{createAgentAutomationAction-WLRNE7C4.js → createAgentAutomationAction-H6ZRPXBR.js} +41 -31
  119. package/createDialogAction-UJ6LFJYM.js +61 -0
  120. package/{createPageAction-7YROVZ3W.js → createPageAction-KVPT3IRK.js} +57 -47
  121. package/{db-6DPSJ6WT.js → db-3H3JECGY.js} +45 -5
  122. package/{dbSlice-BBL3PEVW.js → dbSlice-UI2VCBLG.js} +13 -12
  123. package/{deleteFile-RJTEPOT4.js → deleteFile-XQXPBFFB.js} +7 -6
  124. package/dialogCommands-6ASXJP3H.js +82 -0
  125. package/{dialogSlice-N4HPG6HM.js → dialogSlice-B7KCGHMY.js} +37 -29
  126. package/{docCreateCommands-GRA5BHSA.js → docCreateCommands-S4E4MKVC.js} +42 -56
  127. package/{docDeleteCommands-ONIJM5MD.js → docDeleteCommands-M7XLKWRM.js} +44 -58
  128. package/{docReadCommands-H55VQ2US.js → docReadCommands-LSCMW2FR.js} +42 -56
  129. package/{docStore-B5AHDNW5.js → docStore-ZYWZWIRB.js} +40 -30
  130. package/{docUpdateCommands-ZQIQVGC2.js → docUpdateCommands-OMRBAFOB.js} +45 -59
  131. package/{fetchMessages-VPPQDDZ4.js → fetchMessages-7QRCCRYK.js} +3 -3
  132. package/{getPricing-QO5TYNCK.js → getPricing-L2ENXWHV.js} +7 -6
  133. package/{handleSendMessageAction-IN5XX5U7.js → handleSendMessageAction-Y2XKODRT.js} +39 -31
  134. package/index.js +74 -74
  135. package/{lib-FYYBQIXS.js → lib-2ZTNRXR4.js} +432 -183
  136. package/{localDialogRead-3DBXVYXS.js → localDialogRead-SLMPV5SK.js} +2 -2
  137. package/{localRuntimeAuthority-NDUA2D7Y.js → localRuntimeAuthority-S77B5QVB.js} +10 -4
  138. package/{localRuntimeDb-GKYRBWLQ.js → localRuntimeDb-N3H3HQ7G.js} +1 -1
  139. package/{machineCommands-H3UMKE76.js → machineCommands-62RUZVSW.js} +95 -85
  140. package/{machineInfo-M6KB6HZN.js → machineInfo-66ZFUMLE.js} +1 -1
  141. package/machineWsRunDispatch-L3HD3FSF.js +129 -0
  142. package/{models-WDUTTYFS.js → models-OX2S5C6Q.js} +2 -2
  143. package/{offlineMarxistsAgentCommand-E6LUG63A.js → offlineMarxistsAgentCommand-GEH6SNNA.js} +1 -1
  144. package/package.json +1 -4
  145. package/{read-64OQDO3I.js → read-2VHEHCAN.js} +8 -7
  146. package/{readDocTool-MXM3T6PE.js → readDocTool-CSWD6NPC.js} +1 -2
  147. package/{readlineWorkspace-XVJZDCSC.js → readlineWorkspace-3MOJWFM7.js} +3358 -3409
  148. package/{removeDialogAgentAction-NEKVAMSH.js → removeDialogAgentAction-2T7BPM3T.js} +19 -17
  149. package/{runAgentClientLoop-H7U53QB6.js → runAgentClientLoop-Y5UW544I.js} +73 -64
  150. package/{runtimeDoctorCommands-WI2YZUSJ.js → runtimeDoctorCommands-KHGQKT3B.js} +6 -6
  151. package/{setDialogExtraReferencesAction-WTOHQDIV.js → setDialogExtraReferencesAction-GPT37HTW.js} +15 -14
  152. package/{setPrimaryDialogAgentAction-LDJOYC4F.js → setPrimaryDialogAgentAction-3746P7IW.js} +19 -17
  153. package/{settingSlice-4M37TN7V.js → settingSlice-FIFOQ6OR.js} +16 -14
  154. package/{skillDiscovery-5U6RYAHN.js → skillDiscovery-KLLKXPUO.js} +4 -4
  155. package/{slateUtils-2M7MUTWX.js → slateUtils-VO2FU36K.js} +1 -1
  156. package/{spaceCommands-7VVKJBDV.js → spaceCommands-NKSBD5G3.js} +45 -241
  157. package/{spaceSlice-T6YK6D34.js → spaceSlice-L44CI2QR.js} +39 -61
  158. package/{streamAgentChatTurn-RQ63QFQ7.js → streamAgentChatTurn-7DU4Z2VJ.js} +1262 -150
  159. package/{switchDialogAgentAction-XVWGKR2Z.js → switchDialogAgentAction-MQTUTQHL.js} +14 -13
  160. package/syncMapping-RK2MANUX.js +43 -0
  161. package/{tableCommands-RJZ3V4TF.js → tableCommands-64FZBAI3.js} +9 -8
  162. package/{toolApiClient-ARGFDJAG.js → toolApiClient-B2MFXMEG.js} +3 -3
  163. package/tools-2JI52WJP.js +99 -0
  164. package/{tuiSummaryLlmCaller-SRZ4QQUP.js → tuiSummaryLlmCaller-EAWQ3IZX.js} +25 -21
  165. package/{updateCommands-AK2RDOFR.js → updateCommands-MNDUIKN7.js} +2 -2
  166. package/{updateDialogTitleAction-BBDSWHNG.js → updateDialogTitleAction-HW33OIJI.js} +49 -38
  167. package/agentRecordCommands-JFZRQJQ4.js +0 -103
  168. package/agentRunCommand-NOX5FLKO.js +0 -121
  169. package/chunk-AYMOSAHE.js +0 -3158
  170. package/chunk-D2BPX6DQ.js +0 -1707
  171. package/chunk-DCDL3GC4.js +0 -171
  172. package/chunk-F3MP7CP6.js +0 -73
  173. package/chunk-WZSRQNQG.js +0 -2587
  174. package/createDialogAction-Y6YV64QB.js +0 -52
  175. package/dialogCommands-XLO5CAHZ.js +0 -95
  176. package/machineWsRunDispatch-HONRUK3R.js +0 -119
  177. package/tools-KYZX3BGO.js +0 -90
  178. package/{chunk-Z5MXSEOJ.js → chunk-RQSOAMPJ.js} +2 -2
  179. package/{chunk-JDSUTNYY.js → chunk-SAQQLJZ5.js} +3 -3
@@ -25,6 +25,7 @@ var extractCustomId = (key) => {
25
25
  };
26
26
  var PUBLIC_AGENT_KEY_PREFIX = "agent-pub-";
27
27
  var publicAgentKey = (id) => `${PUBLIC_AGENT_KEY_PREFIX}${id}`;
28
+ var parsePublicAgentId = (key) => key.startsWith(PUBLIC_AGENT_KEY_PREFIX) ? key.slice(PUBLIC_AGENT_KEY_PREFIX.length) : null;
28
29
  var ownedAgentKeyPrefix = (userId) => `agent-${userId}-`;
29
30
  var ownedAgentKey = (userId, id) => id.startsWith(ownedAgentKeyPrefix(userId)) ? id : `${ownedAgentKeyPrefix(userId)}${id}`;
30
31
  var isOwnedAgentKey = (key, userId) => typeof key === "string" && key.startsWith(ownedAgentKeyPrefix(userId));
@@ -35,6 +36,7 @@ export {
35
36
  extractCustomId,
36
37
  PUBLIC_AGENT_KEY_PREFIX,
37
38
  publicAgentKey,
39
+ parsePublicAgentId,
38
40
  ownedAgentKey,
39
41
  isOwnedAgentKey,
40
42
  parseOwnedAgentId
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getRuntimeServerContext,
3
3
  scheduleDeleteReplication
4
- } from "./chunk-2IJAKBK2.js";
4
+ } from "./chunk-X664KVEV.js";
5
5
  import {
6
6
  fetchFromClientDb
7
- } from "./chunk-5RDLGLAP.js";
7
+ } from "./chunk-WJSW43QZ.js";
8
8
  import {
9
9
  buildTombstoneRecord
10
10
  } from "./chunk-GBRG75BQ.js";
@@ -6,10 +6,15 @@ import {
6
6
  resolveRawAgentInput,
7
7
  resolveServerUrl,
8
8
  writeUsage
9
- } from "./chunk-AOS5IN2I.js";
9
+ } from "./chunk-ZHYK3N56.js";
10
10
  import {
11
- resolveMachineId
12
- } from "./chunk-6HYVJV7B.js";
11
+ getReadableCliDb
12
+ } from "./chunk-UNHKVD2N.js";
13
+ import {
14
+ normalizeAgentHandle,
15
+ readDbRecord,
16
+ resolveAgentRecordFromHybridStore
17
+ } from "./chunk-YDTYDA5W.js";
13
18
  import {
14
19
  agentRunCardLabels,
15
20
  createCliLocalRuntimeAdapter,
@@ -19,37 +24,38 @@ import {
19
24
  parseAgentRunEvent,
20
25
  t,
21
26
  toolLabel
22
- } from "./chunk-GAF5X6B7.js";
27
+ } from "./chunk-5QW3O3ET.js";
23
28
  import {
24
- createRunActivityTracker,
25
- finalizeRunRecord,
26
- spawnLocalBackgroundRun
27
- } from "./chunk-7KNERA53.js";
29
+ NOLO_PROJECT_MANAGER_AGENT_KEY,
30
+ isLocalCliAgentKey
31
+ } from "./chunk-EKLRRZIN.js";
28
32
  import {
29
- CliProviderQuotaError
30
- } from "./chunk-JDSUTNYY.js";
33
+ applyModelLayerOverride,
34
+ buildModelLayerOverride
35
+ } from "./chunk-LTRXGFMS.js";
31
36
  import {
32
- getDefaultCliLocalRuntimeDb
33
- } from "./chunk-Q3CSL43H.js";
37
+ resolveMachineId
38
+ } from "./chunk-ESHYE7WU.js";
34
39
  import {
35
- getReadableCliDb
36
- } from "./chunk-6YABCOFU.js";
40
+ formatAgentListCard
41
+ } from "./chunk-MDIAECHA.js";
37
42
  import {
38
- normalizeAgentHandle,
39
- readDbRecord,
40
- resolveAgentRecordFromHybridStore
41
- } from "./chunk-V42OE5HT.js";
43
+ isGatewayHttpStatus
44
+ } from "./chunk-RQSOAMPJ.js";
42
45
  import {
43
- NOLO_PROJECT_MANAGER_AGENT_KEY,
44
- isLocalCliAgentKey
45
- } from "./chunk-K6QEHQZ3.js";
46
+ getDefaultCliLocalRuntimeDb
47
+ } from "./chunk-N4XRDM26.js";
46
48
  import {
47
- buildSkillDiscoveryContextLayer
48
- } from "./chunk-PJ2DDQQM.js";
49
+ buildMemorySubjectsForAgent,
50
+ chooseMemoryOwners,
51
+ loadMemoryCandidatesFromDb,
52
+ resolveAgentMemoryPolicy
53
+ } from "./chunk-TFK3HUNQ.js";
49
54
  import {
50
- applyModelLayerOverride,
51
- buildModelLayerOverride
52
- } from "./chunk-LTRXGFMS.js";
55
+ API_REPORTED_COST_MULTIPLIER,
56
+ normalizeUsage,
57
+ parseUiAskChoiceContent
58
+ } from "./chunk-DDVIBKIB.js";
53
59
  import {
54
60
  resolveAgentRuntimeConfigFromRecord
55
61
  } from "./chunk-OIQPORYI.js";
@@ -58,28 +64,47 @@ import {
58
64
  LOCAL_TURN_ABORTED_CODE,
59
65
  readActionGate,
60
66
  readCommandActionGatePayload
61
- } from "./chunk-AYMOSAHE.js";
67
+ } from "./chunk-BFPSVRCQ.js";
62
68
  import {
63
69
  createThinkParserState,
64
70
  flushThinkParser,
65
71
  processThinkChunk
66
72
  } from "./chunk-N7J63Q6C.js";
73
+ import {
74
+ resolvePlatformAuthToken
75
+ } from "./chunk-7YYHKBJP.js";
76
+ import {
77
+ DEFAULT_CONTEXT_WINDOW,
78
+ getModelContextWindow
79
+ } from "./chunk-GJXRIOLS.js";
80
+ import {
81
+ clipCompactText
82
+ } from "./chunk-DKMOY3QI.js";
83
+ import {
84
+ findModelConfig
85
+ } from "./chunk-DFUPZE6V.js";
86
+ import {
87
+ buildSkillDiscoveryContextLayer
88
+ } from "./chunk-ZURFOV5J.js";
67
89
  import {
68
90
  buildAgentsMdLayer,
69
91
  buildMemoryOverlayLayer,
70
92
  buildMemoryUseGuidanceLayer,
71
93
  partitionScopedBlocks,
72
94
  renderTurnContextBlocksWithScope
73
- } from "./chunk-DOISARTV.js";
95
+ } from "./chunk-2UECQ7RE.js";
74
96
  import {
75
- resolvePlatformAuthToken
76
- } from "./chunk-UDA3ZYLW.js";
97
+ parseExternalSkillMarkdown,
98
+ parseSkillDocProtocol
99
+ } from "./chunk-AETZ7AD6.js";
77
100
  import {
78
- formatAgentListCard
79
- } from "./chunk-MITD7CON.js";
101
+ compactWhitespace
102
+ } from "./chunk-DWLEOOGR.js";
80
103
  import {
81
- isGatewayHttpStatus
82
- } from "./chunk-Z5MXSEOJ.js";
104
+ createRunActivityTracker,
105
+ finalizeRunRecord,
106
+ spawnLocalBackgroundRun
107
+ } from "./chunk-7KNERA53.js";
83
108
  import {
84
109
  formatFinishedRunCard,
85
110
  formatListRunsCard,
@@ -91,30 +116,11 @@ import {
91
116
  runShowsLogTail
92
117
  } from "./chunk-KXKQO4Q6.js";
93
118
  import {
94
- buildMemorySubjectsForAgent,
95
- chooseMemoryOwners,
96
- loadMemoryCandidatesFromDb,
97
- resolveAgentMemoryPolicy
98
- } from "./chunk-TA6EA2A3.js";
99
- import {
100
- API_REPORTED_COST_MULTIPLIER,
101
- DEFAULT_CONTEXT_WINDOW,
102
- getModelContextWindow,
103
- normalizeUsage,
104
- parseUiAskChoiceContent
105
- } from "./chunk-3GZT3L6F.js";
106
- import {
107
- clipCompactText
108
- } from "./chunk-BGTUGS3T.js";
119
+ CliProviderQuotaError
120
+ } from "./chunk-SAQQLJZ5.js";
109
121
  import {
110
122
  toErrorMessage
111
123
  } from "./chunk-HNMXYYJR.js";
112
- import {
113
- compactWhitespace
114
- } from "./chunk-DWLEOOGR.js";
115
- import {
116
- findModelConfig
117
- } from "./chunk-2K4NDPT5.js";
118
124
  import {
119
125
  readPipeText,
120
126
  spawnProcess
@@ -124,77 +130,54 @@ import {
124
130
  } from "./chunk-A7GB5UGH.js";
125
131
  import {
126
132
  parsePositiveFiniteNumberOrFallback
127
- } from "./chunk-G5GVZAXF.js";
133
+ } from "./chunk-Y5GCAMGP.js";
134
+ import {
135
+ createMemoryKey
136
+ } from "./chunk-KMSZPTM6.js";
128
137
  import {
129
138
  asTrimmedLowercaseString
130
139
  } from "./chunk-QSJ3HFEF.js";
131
140
  import {
132
141
  BUILTIN_NOLO_AGENT_KEY,
133
- PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY
134
- } from "./chunk-ZJH3LKEW.js";
135
- import {
136
- isLoopbackUrl
137
- } from "./chunk-4SN6J65J.js";
138
- import {
139
- createMemoryKey
140
- } from "./chunk-WHLVPK32.js";
142
+ BUILTIN_NOLO_AGENT_NAME,
143
+ builtinAgentCatalogEntryById
144
+ } from "./chunk-IR6W62Q6.js";
141
145
  import {
142
146
  asTrimmedString
143
147
  } from "./chunk-3EUW3WEO.js";
144
148
  import {
145
- parseExternalSkillMarkdown,
146
- parseSkillDocProtocol
147
- } from "./chunk-ZWJOGMKH.js";
149
+ parsePublicAgentId
150
+ } from "./chunk-BJIRLHJR.js";
151
+ import {
152
+ isLoopbackUrl
153
+ } from "./chunk-4SN6J65J.js";
148
154
  import {
149
155
  asOptionalTrimmedString
150
156
  } from "./chunk-G3SUCT4W.js";
151
157
 
152
- // packages/cli/client/autoModelRouter.ts
153
- var CLI_AUTO_TIER_AGENT_KEYS = {
154
- flash: PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY,
155
- balanced: PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY,
156
- quality: PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY
157
- };
158
- var CLI_AUTO_TIER_MODELS = {
159
- flash: "deepseek-v4-flash",
160
- balanced: "deepseek-v4-flash",
161
- quality: "deepseek-v4-flash"
162
- };
163
- function resolveCliAutoAgentModel(agentKey) {
164
- if (agentKey === CLI_AUTO_TIER_AGENT_KEYS.flash) return CLI_AUTO_TIER_MODELS.flash;
165
- if (agentKey === CLI_AUTO_TIER_AGENT_KEYS.balanced) {
166
- return CLI_AUTO_TIER_MODELS.balanced;
167
- }
168
- if (agentKey === CLI_AUTO_TIER_AGENT_KEYS.quality) {
169
- return CLI_AUTO_TIER_MODELS.quality;
170
- }
171
- return void 0;
172
- }
173
- function classifyCliAutoRoute(_text, options) {
174
- return {
175
- agentKey: CLI_AUTO_TIER_AGENT_KEYS.flash,
176
- tier: "flash",
177
- classified: true
178
- };
179
- }
180
-
181
158
  // packages/cli/client/tokenUsage.ts
182
159
  var isUsableModelId = (model) => {
183
160
  const raw = model?.trim();
184
161
  return Boolean(raw) && raw !== "-" && raw !== "auto";
185
162
  };
186
- function resolveAgentContextWindow(opts) {
187
- if (isUsableModelId(opts.model)) {
188
- return getModelContextWindow(opts.model);
189
- }
163
+ function resolveEffectiveModel(opts) {
164
+ if (isUsableModelId(opts.model)) return opts.model;
190
165
  const agentKey = opts.agentKey?.trim();
191
- if (agentKey) {
192
- const tierModel = resolveCliAutoAgentModel(agentKey);
193
- if (tierModel) return getModelContextWindow(tierModel);
194
- if (opts.autoRouteDefault !== false && agentKey === BUILTIN_NOLO_AGENT_KEY) {
195
- return getModelContextWindow(CLI_AUTO_TIER_MODELS.flash);
196
- }
197
- }
166
+ if (!agentKey) return void 0;
167
+ return builtinAgentCatalogEntryById(parsePublicAgentId(agentKey))?.model;
168
+ }
169
+ function resolveAgentModelIdentity(opts) {
170
+ const model = resolveEffectiveModel(opts);
171
+ const useCatalogName = !isUsableModelId(opts.model) && opts.agentKey?.trim() === BUILTIN_NOLO_AGENT_KEY;
172
+ const agentName = useCatalogName ? BUILTIN_NOLO_AGENT_NAME : opts.agentName?.trim();
173
+ return {
174
+ ...agentName ? { agentName } : {},
175
+ ...model ? { model } : {}
176
+ };
177
+ }
178
+ function resolveAgentContextWindow(opts) {
179
+ const model = resolveEffectiveModel(opts);
180
+ if (model) return getModelContextWindow(model);
198
181
  if (opts.agentName?.trim()) {
199
182
  return getModelContextWindow(opts.agentName);
200
183
  }
@@ -3321,7 +3304,7 @@ async function detectCurrentMachineId(env) {
3321
3304
  const fromEnv = (env.NOLO_CURRENT_MACHINE_ID || env.NOLO_MACHINE_ID || "").trim();
3322
3305
  if (fromEnv) return fromEnv;
3323
3306
  try {
3324
- const { detectMachineInfo } = await import("./machineInfo-M6KB6HZN.js");
3307
+ const { detectMachineInfo } = await import("./machineInfo-66ZFUMLE.js");
3325
3308
  const machine = await detectMachineInfo({ probeLaunchable: true });
3326
3309
  return asOptionalTrimmedString(machine?.machineId);
3327
3310
  } catch {
@@ -3538,7 +3521,7 @@ function findCollapsedPasteSpanAt(buffer, pos, opts = {}) {
3538
3521
  // packages/cli/client/agentRun.ts
3539
3522
  import { ulid } from "ulid";
3540
3523
  async function loadRunLocalAgentTurn() {
3541
- const { runLocalAgentTurn } = await import("./agentRuntimeLocal-ATGJY6WC.js");
3524
+ const { runLocalAgentTurn } = await import("./agentRuntimeLocal-4PSBNUOE.js");
3542
3525
  return runLocalAgentTurn;
3543
3526
  }
3544
3527
  async function resolveCurrentMachineId(options) {
@@ -4036,6 +4019,7 @@ async function runLocalAgentTurnForCli(options, settings) {
4036
4019
  const result = await runLocalAgentTurn({
4037
4020
  adapter,
4038
4021
  agentRef: options.agentKey,
4022
+ userLanguage: options.userLanguage ?? options.env.NOLO_LANG ?? null,
4039
4023
  input: buildUserInputContent(options.message, options.imageUrls),
4040
4024
  ...expandedMessage !== options.message ? {
4041
4025
  persistedInput: buildUserInputContent(
@@ -4095,6 +4079,7 @@ async function runLocalAgentTurnForCli(options, settings) {
4095
4079
  exitCode: 0,
4096
4080
  dialogId: result.dialogId,
4097
4081
  title: result.title,
4082
+ ...result.titlePatchPromise ? { titlePatchPromise: result.titlePatchPromise } : {},
4098
4083
  turnTokens: buildTurnTokenUsage(result.usage, result.model)
4099
4084
  };
4100
4085
  } catch (error) {
@@ -4139,6 +4124,7 @@ async function runAgentTurn(options) {
4139
4124
  exitCode: localResult.exitCode,
4140
4125
  ...localResult.dialogId ? { dialogId: localResult.dialogId } : {},
4141
4126
  title: localResult.title,
4127
+ ...localResult.titlePatchPromise ? { titlePatchPromise: localResult.titlePatchPromise } : {},
4142
4128
  ...localResult.turnTokens ? { turnTokens: localResult.turnTokens } : {},
4143
4129
  ...localResult.streamInterrupted ? { streamInterrupted: localResult.streamInterrupted } : {},
4144
4130
  ...localResult.pendingToolName ? { pendingToolName: localResult.pendingToolName } : {}
@@ -4160,6 +4146,7 @@ async function runAgentTurn(options) {
4160
4146
  exitCode: retriedLocalResult.exitCode,
4161
4147
  ...retriedLocalResult.dialogId ? { dialogId: retriedLocalResult.dialogId } : {},
4162
4148
  title: retriedLocalResult.title,
4149
+ ...retriedLocalResult.titlePatchPromise ? { titlePatchPromise: retriedLocalResult.titlePatchPromise } : {},
4163
4150
  ...retriedLocalResult.turnTokens ? { turnTokens: retriedLocalResult.turnTokens } : {}
4164
4151
  };
4165
4152
  }
@@ -4191,6 +4178,9 @@ async function runAgentTurn(options) {
4191
4178
  import { existsSync as existsSync2, readFileSync as readFileSync2 } from "node:fs";
4192
4179
  import { join as join2 } from "node:path";
4193
4180
 
4181
+ // packages/cli/client/autoModelRouter.ts
4182
+ var CLI_AUTO_ROUTE_AGENT_KEY = BUILTIN_NOLO_AGENT_KEY;
4183
+
4194
4184
  // packages/cli/agentRunPrompts.ts
4195
4185
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
4196
4186
  import { dirname, extname, isAbsolute, join, relative as relativePath, resolve, sep } from "node:path";
@@ -5048,21 +5038,13 @@ async function runAgentRunCommand(args, deps) {
5048
5038
  let modelOverride = null;
5049
5039
  const autoRouteRequested = deps.commandPath?.join(" ") === "chat" && !parsed.continueDialogId && (args.includes("--auto-route") || env.NOLO_AUTO_ROUTE === "1") && env.NOLO_AUTO_ROUTE !== "0";
5050
5040
  if (autoRouteRequested) {
5051
- const authToken = resolveAuthToken(args, env);
5052
- const serverUrl = resolveServerUrl(env);
5053
5041
  const hasExplicitAgent = Boolean(readFlagValue(args, "--agent"));
5054
- const route = await classifyCliAutoRoute(effectiveMessage, {
5055
- serverUrl,
5056
- authToken,
5057
- // 有图 → kimi vision 档;无图 → flash 档。漏传会永远走 flash。
5058
- hasImages: parsed.imageUrls.length > 0
5059
- });
5060
5042
  if (hasExplicitAgent) {
5061
5043
  modelOverride = buildModelLayerOverride(
5062
5044
  await readDbRecord({
5063
5045
  dbKey: agentKey,
5064
- authToken,
5065
- serverUrl,
5046
+ authToken: resolveAuthToken(args, env),
5047
+ serverUrl: resolveServerUrl(env),
5066
5048
  fetchImpl: fetch
5067
5049
  }).catch(() => null)
5068
5050
  );
@@ -5072,11 +5054,11 @@ async function runAgentRunCommand(args, deps) {
5072
5054
  "[nolo] auto-route: \u8986\u76D6\u6E90 agent \u8BFB\u53D6\u5931\u8D25\uFF0C\u6309\u539F\u6837\u76F4\u8DD1\u6240\u9009 agent\u3002\n"
5073
5055
  );
5074
5056
  } else {
5075
- effectiveAgentKey = route.agentKey;
5076
- output.write(
5077
- `[nolo] auto \u2192 ${route.tier}${modelOverride ? ` (model: ${agentKey})` : ""}
5078
- `
5079
- );
5057
+ effectiveAgentKey = CLI_AUTO_ROUTE_AGENT_KEY;
5058
+ if (modelOverride) {
5059
+ output.write(`[nolo] auto-route: model \u5C42\u8986\u76D6\u4E3A ${agentKey}
5060
+ `);
5061
+ }
5080
5062
  }
5081
5063
  }
5082
5064
  let workflowReference;
@@ -5374,7 +5356,7 @@ function isBalanceExhaustedError(error) {
5374
5356
  }
5375
5357
 
5376
5358
  export {
5377
- classifyCliAutoRoute,
5359
+ resolveAgentModelIdentity,
5378
5360
  resolveAgentContextWindow,
5379
5361
  formatTokenCount,
5380
5362
  renderTokenStatus,
@@ -0,0 +1,98 @@
1
+ import {
2
+ getModelConfig
3
+ } from "./chunk-DFUPZE6V.js";
4
+ import {
5
+ PLATFORM_HOSTED_KIMI_K3_MODEL,
6
+ isPlatformHostedClaudeModel,
7
+ isPlatformHostedDeepseekModel,
8
+ isPlatformHostedGeminiModel,
9
+ isPlatformHostedGlmModel,
10
+ isPlatformHostedGrokModel,
11
+ isPlatformHostedKimiK26Model,
12
+ isPlatformHostedQwen37FlashModel
13
+ } from "./chunk-OR2HNLVO.js";
14
+ import {
15
+ asTrimmedLowercaseString
16
+ } from "./chunk-QSJ3HFEF.js";
17
+
18
+ // packages/agent-runtime/platformProviderEndpoints.ts
19
+ var OPENAI_RESPONSES_ENDPOINT = "https://api.openai.com/v1/responses";
20
+ var DEEPSEEK_RESPONSES_ENDPOINT = "https://api.deepseek.com/responses";
21
+ var XAI_CHAT_COMPLETIONS_ENDPOINT = "https://api.x.ai/v1/chat/completions";
22
+ var PLATFORM_CHAT_COMPLETIONS_ENDPOINTS = {
23
+ deepinfra: "https://api.deepinfra.com/v1/openai/chat/completions",
24
+ fireworks: "https://api.fireworks.ai/inference/v1/chat/completions",
25
+ google: "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",
26
+ openai: "https://api.openai.com/v1/chat/completions",
27
+ openrouter: "https://openrouter.ai/api/v1/chat/completions",
28
+ // 千问 AI 平台 OpenAI 兼容模式
29
+ qwen: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
30
+ // Moonshot AI(月之暗面)开放平台 OpenAI 兼容模式(按量计费)
31
+ moonshot: "https://api.moonshot.cn/v1/chat/completions",
32
+ // 平台托管 Kimi K3 的实际上游
33
+ crof: "https://crof.ai/v1/chat/completions"
34
+ // 无 nolo 默认上游:平台托管模型全部显式分流,未识别模型返回 undefined
35
+ };
36
+ function isOpenAiResponsesModel(args) {
37
+ const provider = asTrimmedLowercaseString(args.provider);
38
+ if (provider === "openai") {
39
+ if (args.endpointKey === "responses") return true;
40
+ if (!args.model) return false;
41
+ try {
42
+ return getModelConfig("openai", args.model).endpointKey === "responses";
43
+ } catch {
44
+ return false;
45
+ }
46
+ }
47
+ if (provider === "deepseek" || provider === "nolo" || provider === "ollama-cloud") {
48
+ if (isPlatformHostedDeepseekModel(args.model)) return true;
49
+ }
50
+ return false;
51
+ }
52
+ function resolvePlatformResponsesEndpoint(provider, model) {
53
+ const normalized = asTrimmedLowercaseString(provider);
54
+ if (normalized === "openai") return OPENAI_RESPONSES_ENDPOINT;
55
+ if (normalized === "deepseek" || normalized === "nolo" || normalized === "ollama-cloud") {
56
+ if (!model || isPlatformHostedDeepseekModel(model)) {
57
+ return DEEPSEEK_RESPONSES_ENDPOINT;
58
+ }
59
+ }
60
+ return void 0;
61
+ }
62
+ var PLATFORM_PROVIDER_ENDPOINT_ALIASES = {
63
+ "ollama-cloud": "nolo",
64
+ deepseek: "nolo"
65
+ };
66
+ function resolvePlatformChatCompletionsEndpoint(provider, model) {
67
+ const key = asTrimmedLowercaseString(provider);
68
+ if (!key) return void 0;
69
+ const aliased = PLATFORM_PROVIDER_ENDPOINT_ALIASES[key] ?? key;
70
+ if (aliased === "nolo" && isPlatformHostedClaudeModel(model)) {
71
+ return PLATFORM_CHAT_COMPLETIONS_ENDPOINTS.deepinfra;
72
+ }
73
+ if (aliased === "nolo" && isPlatformHostedGrokModel(model)) {
74
+ return XAI_CHAT_COMPLETIONS_ENDPOINT;
75
+ }
76
+ if (aliased === "nolo" && (isPlatformHostedKimiK26Model(model) || isPlatformHostedGlmModel(model))) {
77
+ return PLATFORM_CHAT_COMPLETIONS_ENDPOINTS.openrouter;
78
+ }
79
+ if (aliased === "nolo" && asTrimmedLowercaseString(model) === PLATFORM_HOSTED_KIMI_K3_MODEL) {
80
+ return PLATFORM_CHAT_COMPLETIONS_ENDPOINTS.crof;
81
+ }
82
+ if (aliased === "nolo" && (isPlatformHostedGeminiModel(model) || isPlatformHostedQwen37FlashModel(model))) {
83
+ return PLATFORM_CHAT_COMPLETIONS_ENDPOINTS.google;
84
+ }
85
+ if (aliased === "nolo" && isPlatformHostedDeepseekModel(model)) {
86
+ return void 0;
87
+ }
88
+ if (aliased === "nolo") {
89
+ return void 0;
90
+ }
91
+ return PLATFORM_CHAT_COMPLETIONS_ENDPOINTS[aliased];
92
+ }
93
+
94
+ export {
95
+ isOpenAiResponsesModel,
96
+ resolvePlatformResponsesEndpoint,
97
+ resolvePlatformChatCompletionsEndpoint
98
+ };