nolo-cli 0.8.0-alpha.23 → 0.8.0-alpha.24

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 (66) hide show
  1. package/{_executeModel-YXTTYRXS.js → _executeModel-2ZAPHFOX.js} +19 -17
  2. package/{agentDeleteCommand-4NO7Y6UI.js → agentDeleteCommand-5TFSII4Z.js} +11 -11
  3. package/{agentEmailCommands-NPP5TGZV.js → agentEmailCommands-XMXWGUMZ.js} +22 -20
  4. package/{agentListCommands-IP5BNB5W.js → agentListCommands-OWEFQEY4.js} +99 -15
  5. package/{agentMachineCommands-24NFTIKY.js → agentMachineCommands-DGHYBBFC.js} +11 -11
  6. package/{agentRecordCommands-7AWSR46F.js → agentRecordCommands-I433EE5F.js} +22 -20
  7. package/{agentRunCommand-P46WCJ6P.js → agentRunCommand-UQSX3IGW.js} +22 -20
  8. package/{agentRuntimeLocal-V5UV7S4R.js → agentRuntimeLocal-73SVOC5U.js} +8 -8
  9. package/{agentSlice-3CVAZZOP.js → agentSlice-JQCS4LR3.js} +1 -1
  10. package/{chunk-AWY2AFHN.js → chunk-3HPUUWOR.js} +50 -4
  11. package/{chunk-6UUD2WES.js → chunk-3KGTFX3T.js} +2 -13
  12. package/{chunk-RBCNBU2A.js → chunk-524BDL33.js} +1 -0
  13. package/chunk-6QFNUK2G.js +144 -0
  14. package/{chunk-RBB43B5W.js → chunk-AISLHYDB.js} +3 -3
  15. package/{chunk-BB2PII22.js → chunk-BKGNXJAM.js} +1 -1
  16. package/{chunk-P7GAHW32.js → chunk-BQECZ3Q4.js} +9 -9
  17. package/{chunk-A4MYG3TR.js → chunk-BT57QC5K.js} +2 -2
  18. package/{chunk-LBUTKV7S.js → chunk-C4DZRHFJ.js} +7 -7
  19. package/{chunk-Q2WC4KGQ.js → chunk-DS3VC4EA.js} +2 -2
  20. package/{chunk-ZJS64PZJ.js → chunk-FVVST32H.js} +1 -1
  21. package/{chunk-6OHYC4BY.js → chunk-FZ2G3I4B.js} +2 -1
  22. package/{chunk-6KRA6AWI.js → chunk-G7KM6BBZ.js} +1 -1
  23. package/{chunk-ZAUDEKML.js → chunk-GROGNZOA.js} +21 -12
  24. package/{chunk-RBCENBG7.js → chunk-IOQIOZNI.js} +8 -2
  25. package/{chunk-PTT6KSYQ.js → chunk-IPA2WQGY.js} +83 -30
  26. package/{chunk-DSNLHTP3.js → chunk-IYMGQ3TN.js} +9 -2
  27. package/{chunk-WESWWEVA.js → chunk-L76QNLGU.js} +1 -1
  28. package/{chunk-LJCH34R2.js → chunk-LE6JAIXE.js} +2 -2
  29. package/{chunk-5NYGMN4O.js → chunk-LRKEOCWY.js} +3 -3
  30. package/{chunk-KLOCUWKZ.js → chunk-OCDEWRE2.js} +1 -1
  31. package/{chunk-RYMUT5JO.js → chunk-P2SPC3FT.js} +12 -8
  32. package/{chunk-4VA3UQRF.js → chunk-Q7S2ORXX.js} +3 -3
  33. package/{chunk-D55DXHXL.js → chunk-QWM7YWVT.js} +1 -1
  34. package/{chunk-AOKWJZ5N.js → chunk-S3UTETIC.js} +3 -2
  35. package/{chunk-EUN3SYY7.js → chunk-SBVUZC2E.js} +1 -1
  36. package/{chunk-O7VS7JLJ.js → chunk-VUEXKW6U.js} +1 -1
  37. package/{chunk-MIQOUMSN.js → chunk-WKQGZJVI.js} +1 -1
  38. package/{chunk-LFFATN2M.js → chunk-WM7P5OWZ.js} +18 -12
  39. package/{chunk-LW6FJFCT.js → chunk-WTBWWBSF.js} +122 -28
  40. package/{chunk-HAC6GPRE.js → chunk-WVS3GX3B.js} +2 -2
  41. package/chunk-Z3NEXVYE.js +33 -0
  42. package/{createAgentAutomationAction-DYQOGAVE.js → createAgentAutomationAction-GXZNLJZK.js} +6 -5
  43. package/{createDialogAction-ETB3KQQE.js → createDialogAction-KLW42ZGF.js} +7 -6
  44. package/{createPageAction-UF2RHA63.js → createPageAction-IBJHE6MH.js} +6 -5
  45. package/{dialogCommands-LYYC7XHF.js → dialogCommands-7O5PUZRU.js} +12 -12
  46. package/{dialogSlice-IFBZ4IT2.js → dialogSlice-GGV7PF53.js} +6 -5
  47. package/{docCreateCommands-I66OI374.js → docCreateCommands-7ZO2NQQF.js} +11 -11
  48. package/{docDeleteCommands-OVRBCHMF.js → docDeleteCommands-YKIXZYBR.js} +12 -12
  49. package/{docReadCommands-YLWUMEH7.js → docReadCommands-5UDONBUL.js} +11 -11
  50. package/{docStore-65WO7U36.js → docStore-VDWTATFH.js} +7 -6
  51. package/{docUpdateCommands-NSICS4IN.js → docUpdateCommands-EPZIIQMY.js} +11 -11
  52. package/{getPricing-7PUT44ZS.js → getPricing-6TOZXPAU.js} +3 -3
  53. package/{handleSendMessageAction-T76HEDOP.js → handleSendMessageAction-MMATC5V5.js} +6 -5
  54. package/index.js +36 -36
  55. package/{machineCommands-4HQY6UVZ.js → machineCommands-PTHPKSIZ.js} +21 -19
  56. package/{machineWsRunDispatch-7YW2M4FS.js → machineWsRunDispatch-M5L2NVWJ.js} +21 -19
  57. package/{models-MFXNI3TF.js → models-H524GH3U.js} +3 -2
  58. package/package.json +1 -1
  59. package/{readlineWorkspace-FLQWOAUR.js → readlineWorkspace-4NXMEOHP.js} +106 -48
  60. package/{runAgentClientLoop-IUV2TR3X.js → runAgentClientLoop-FGUYNGSA.js} +16 -14
  61. package/{spaceCommands-BDDAT4VU.js → spaceCommands-S3EB6TOS.js} +11 -11
  62. package/{spaceSlice-HH633ZA4.js → spaceSlice-RG2GSV7K.js} +6 -5
  63. package/{streamAgentChatTurn-UBZOVFKV.js → streamAgentChatTurn-X576C23M.js} +131 -31
  64. package/{tools-OQZ34KCU.js → tools-HURZ2N4O.js} +11 -9
  65. package/{tuiSummaryLlmCaller-42AEL3LL.js → tuiSummaryLlmCaller-DG2LBTBX.js} +4 -4
  66. package/{updateDialogTitleAction-A3OOMSDO.js → updateDialogTitleAction-62LVIAUZ.js} +6 -5
@@ -11,35 +11,36 @@ import {
11
11
  runtimeWorkspacePermissionPolicy,
12
12
  scopePermissionPolicyToRuntimeWorkspace,
13
13
  summarizeAgentConfigForLogs
14
- } from "./chunk-5NYGMN4O.js";
15
- import "./chunk-P7GAHW32.js";
14
+ } from "./chunk-LRKEOCWY.js";
15
+ import "./chunk-BQECZ3Q4.js";
16
16
  import "./chunk-5MMZUWSG.js";
17
17
  import "./chunk-CMKUBIGW.js";
18
18
  import "./chunk-JBTJAPUF.js";
19
- import "./chunk-ZJS64PZJ.js";
19
+ import "./chunk-FVVST32H.js";
20
20
  import "./chunk-VHBWHNVT.js";
21
21
  import "./chunk-KTHLAJEY.js";
22
22
  import "./chunk-ATNTHIZI.js";
23
- import "./chunk-HAC6GPRE.js";
24
- import "./chunk-D55DXHXL.js";
25
- import "./chunk-PTT6KSYQ.js";
23
+ import "./chunk-WVS3GX3B.js";
24
+ import "./chunk-QWM7YWVT.js";
25
+ import "./chunk-IPA2WQGY.js";
26
26
  import "./chunk-GAKEBQD6.js";
27
+ import "./chunk-6QFNUK2G.js";
27
28
  import "./chunk-KQHGZWSV.js";
28
29
  import "./chunk-2CVZSC5L.js";
29
30
  import "./chunk-3LY4F7SV.js";
30
31
  import "./chunk-VP4WJWKW.js";
31
32
  import "./chunk-63W5N6P3.js";
32
33
  import "./chunk-VF4K2QE6.js";
33
- import "./chunk-LJCH34R2.js";
34
- import "./chunk-A4MYG3TR.js";
34
+ import "./chunk-LE6JAIXE.js";
35
+ import "./chunk-BT57QC5K.js";
35
36
  import "./chunk-VC6OZXO5.js";
36
37
  import "./chunk-OWOHNGCN.js";
37
- import "./chunk-ZAUDEKML.js";
38
+ import "./chunk-GROGNZOA.js";
38
39
  import "./chunk-V2J635L5.js";
39
40
  import "./chunk-MRC4Q34M.js";
40
41
  import "./chunk-MTU75CZ2.js";
41
42
  import "./chunk-CWMSB67P.js";
42
- import "./chunk-4VA3UQRF.js";
43
+ import "./chunk-Q7S2ORXX.js";
43
44
  import "./chunk-LTH6AVG7.js";
44
45
  import "./chunk-Z4NR32XR.js";
45
46
  import "./chunk-M76ECQRD.js";
@@ -51,27 +52,28 @@ import "./chunk-BFDWXLFF.js";
51
52
  import "./chunk-UAD2WT54.js";
52
53
  import "./chunk-L3KWEH3V.js";
53
54
  import "./chunk-AZPCASRE.js";
54
- import "./chunk-RBCENBG7.js";
55
+ import "./chunk-IOQIOZNI.js";
56
+ import "./chunk-Z3NEXVYE.js";
55
57
  import "./chunk-XENYHRUE.js";
56
58
  import "./chunk-JTINRTBT.js";
57
59
  import "./chunk-IDZTNRP2.js";
58
60
  import "./chunk-WZSRQNQG.js";
59
- import "./chunk-LBUTKV7S.js";
60
- import "./chunk-6UUD2WES.js";
61
+ import "./chunk-C4DZRHFJ.js";
62
+ import "./chunk-3KGTFX3T.js";
61
63
  import "./chunk-ZNFJWEN4.js";
62
64
  import "./chunk-YOCHZD7D.js";
63
- import "./chunk-RBB43B5W.js";
65
+ import "./chunk-AISLHYDB.js";
64
66
  import "./chunk-OPZYGHUC.js";
65
- import "./chunk-6KRA6AWI.js";
66
- import "./chunk-AWY2AFHN.js";
67
- import "./chunk-6OHYC4BY.js";
67
+ import "./chunk-G7KM6BBZ.js";
68
+ import "./chunk-3HPUUWOR.js";
69
+ import "./chunk-FZ2G3I4B.js";
68
70
  import "./chunk-5MMAK75Q.js";
69
- import "./chunk-AOKWJZ5N.js";
71
+ import "./chunk-S3UTETIC.js";
70
72
  import "./chunk-5CS33IBL.js";
71
73
  import "./chunk-JZPBVBIY.js";
72
74
  import "./chunk-BYXBJQAS.js";
73
75
  import "./chunk-KX6YBIHG.js";
74
- import "./chunk-RBCNBU2A.js";
76
+ import "./chunk-524BDL33.js";
75
77
  import "./chunk-O4BU24WZ.js";
76
78
  import "./chunk-I42VC5KR.js";
77
79
  import "./chunk-WWC7I6TA.js";
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  ALL_MODELS
3
- } from "./chunk-RBCENBG7.js";
4
- import "./chunk-RBCNBU2A.js";
3
+ } from "./chunk-IOQIOZNI.js";
4
+ import "./chunk-Z3NEXVYE.js";
5
+ import "./chunk-524BDL33.js";
5
6
  import "./chunk-QSJ3HFEF.js";
6
7
  import "./chunk-4VNS5WPM.js";
7
8
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nolo-cli",
3
- "version": "0.8.0-alpha.23",
3
+ "version": "0.8.0-alpha.24",
4
4
  "type": "module",
5
5
  "description": "Agent-first terminal workspace for Nolo",
6
6
  "bin": {
@@ -3,9 +3,10 @@ import {
3
3
  normalizeDialogRecord,
4
4
  readDialogSnapshot,
5
5
  sortDialogs
6
- } from "./chunk-O7VS7JLJ.js";
6
+ } from "./chunk-VUEXKW6U.js";
7
7
  import {
8
8
  ANSI_ESCAPE_REGEX,
9
+ CLI_AUTO_TIER_AGENT_KEYS,
9
10
  CLI_AUTO_TIER_AGENT_KEY_TABLE,
10
11
  CLI_IMAGE_AGENT_KEY,
11
12
  COLLAPSED_PASTE_PLACEHOLDER_RE,
@@ -39,6 +40,7 @@ import {
39
40
  renderTokenStatus,
40
41
  replaceCollapsedPastesWithReferences,
41
42
  resolveAgentContextWindow,
43
+ resolveCliAutoFallbackTier,
42
44
  resolveCliColorEnabled,
43
45
  resolveSkillReference,
44
46
  resolveTuiBrightness,
@@ -59,22 +61,22 @@ import {
59
61
  visibleWidth,
60
62
  wrapTextToLines,
61
63
  wrapTranscriptLine
62
- } from "./chunk-LFFATN2M.js";
64
+ } from "./chunk-WM7P5OWZ.js";
63
65
  import "./chunk-6HYVJV7B.js";
64
66
  import {
65
67
  listFavoriteAgentIdsAcrossServers,
66
68
  listLocalCachedAgents,
67
69
  listRemoteAgents,
68
70
  listRemoteAgentsAcrossServers
69
- } from "./chunk-DSNLHTP3.js";
71
+ } from "./chunk-IYMGQ3TN.js";
70
72
  import "./chunk-ID4G2MAR.js";
71
73
  import {
72
74
  listUserRecordsFromServers
73
- } from "./chunk-BB2PII22.js";
75
+ } from "./chunk-BKGNXJAM.js";
74
76
  import "./chunk-3QAF2LTL.js";
75
77
  import {
76
78
  createCliLocalRuntimeAdapter
77
- } from "./chunk-P7GAHW32.js";
79
+ } from "./chunk-BQECZ3Q4.js";
78
80
  import "./chunk-5MMZUWSG.js";
79
81
  import "./chunk-CMKUBIGW.js";
80
82
  import "./chunk-JBTJAPUF.js";
@@ -84,8 +86,8 @@ import {
84
86
  import {
85
87
  queryUserRecords,
86
88
  readDbRecord
87
- } from "./chunk-EUN3SYY7.js";
88
- import "./chunk-ZJS64PZJ.js";
89
+ } from "./chunk-SBVUZC2E.js";
90
+ import "./chunk-FVVST32H.js";
89
91
  import {
90
92
  resolveCliAgentKeyInput
91
93
  } from "./chunk-VHBWHNVT.js";
@@ -95,20 +97,21 @@ import "./chunk-ATNTHIZI.js";
95
97
  import "./chunk-JEXVIMYZ.js";
96
98
  import {
97
99
  prepareTools
98
- } from "./chunk-HAC6GPRE.js";
99
- import "./chunk-D55DXHXL.js";
100
+ } from "./chunk-WVS3GX3B.js";
101
+ import "./chunk-QWM7YWVT.js";
100
102
  import {
101
103
  expandEnabledPacks
102
- } from "./chunk-PTT6KSYQ.js";
104
+ } from "./chunk-IPA2WQGY.js";
103
105
  import "./chunk-GAKEBQD6.js";
106
+ import "./chunk-6QFNUK2G.js";
104
107
  import "./chunk-KQHGZWSV.js";
105
108
  import "./chunk-2CVZSC5L.js";
106
109
  import "./chunk-3LY4F7SV.js";
107
110
  import "./chunk-VP4WJWKW.js";
108
111
  import "./chunk-63W5N6P3.js";
109
112
  import "./chunk-VF4K2QE6.js";
110
- import "./chunk-LJCH34R2.js";
111
- import "./chunk-A4MYG3TR.js";
113
+ import "./chunk-LE6JAIXE.js";
114
+ import "./chunk-BT57QC5K.js";
112
115
  import "./chunk-VC6OZXO5.js";
113
116
  import "./chunk-OWOHNGCN.js";
114
117
  import {
@@ -118,14 +121,14 @@ import {
118
121
  getModelContextWindow,
119
122
  planCompression,
120
123
  serializeMessageContent
121
- } from "./chunk-ZAUDEKML.js";
124
+ } from "./chunk-GROGNZOA.js";
122
125
  import {
123
126
  buildBuiltinSummaryContent
124
127
  } from "./chunk-V2J635L5.js";
125
128
  import "./chunk-MRC4Q34M.js";
126
129
  import "./chunk-MTU75CZ2.js";
127
130
  import "./chunk-CWMSB67P.js";
128
- import "./chunk-4VA3UQRF.js";
131
+ import "./chunk-Q7S2ORXX.js";
129
132
  import "./chunk-LTH6AVG7.js";
130
133
  import "./chunk-Z4NR32XR.js";
131
134
  import "./chunk-M76ECQRD.js";
@@ -137,7 +140,8 @@ import "./chunk-BFDWXLFF.js";
137
140
  import "./chunk-UAD2WT54.js";
138
141
  import "./chunk-L3KWEH3V.js";
139
142
  import "./chunk-AZPCASRE.js";
140
- import "./chunk-RBCENBG7.js";
143
+ import "./chunk-IOQIOZNI.js";
144
+ import "./chunk-Z3NEXVYE.js";
141
145
  import "./chunk-HNW7IJSK.js";
142
146
  import "./chunk-XENYHRUE.js";
143
147
  import "./chunk-JTINRTBT.js";
@@ -162,33 +166,33 @@ import {
162
166
  buildLocalWorkspaceOpenAiTools,
163
167
  buildLocalWorkspaceToolset,
164
168
  getProcessRegistry
165
- } from "./chunk-LBUTKV7S.js";
166
- import "./chunk-6UUD2WES.js";
169
+ } from "./chunk-C4DZRHFJ.js";
170
+ import "./chunk-3KGTFX3T.js";
167
171
  import "./chunk-ZNFJWEN4.js";
168
172
  import "./chunk-YOCHZD7D.js";
169
173
  import {
170
174
  readCommandActionGatePayload,
171
175
  resolveAgentImageInputSupport
172
- } from "./chunk-RBB43B5W.js";
176
+ } from "./chunk-AISLHYDB.js";
173
177
  import "./chunk-OPZYGHUC.js";
174
178
  import {
175
179
  buildCurrentTimeBlock,
176
180
  buildIdentityBlock,
177
181
  buildRuntimeGuidanceBlocks
178
- } from "./chunk-6KRA6AWI.js";
179
- import "./chunk-AWY2AFHN.js";
182
+ } from "./chunk-G7KM6BBZ.js";
183
+ import "./chunk-3HPUUWOR.js";
180
184
  import {
181
185
  canonicalizeToolNames
182
- } from "./chunk-6OHYC4BY.js";
186
+ } from "./chunk-FZ2G3I4B.js";
183
187
  import {
184
188
  clipCompactText
185
189
  } from "./chunk-5MMAK75Q.js";
186
- import "./chunk-AOKWJZ5N.js";
190
+ import "./chunk-S3UTETIC.js";
187
191
  import "./chunk-5CS33IBL.js";
188
192
  import "./chunk-JZPBVBIY.js";
189
193
  import "./chunk-BYXBJQAS.js";
190
194
  import "./chunk-KX6YBIHG.js";
191
- import "./chunk-RBCNBU2A.js";
195
+ import "./chunk-524BDL33.js";
192
196
  import "./chunk-O4BU24WZ.js";
193
197
  import "./chunk-I42VC5KR.js";
194
198
  import "./chunk-WWC7I6TA.js";
@@ -1896,14 +1900,24 @@ function findAgentCatalogEntry(entries, rawTarget) {
1896
1900
  if (!target) return null;
1897
1901
  if (/^\d+$/.test(target)) {
1898
1902
  const entry = entries[Number(target) - 1];
1899
- return entry ? { name: entry.name, key: entry.key, model: entry.model } : null;
1903
+ return entry ? {
1904
+ name: entry.name,
1905
+ key: entry.key,
1906
+ model: entry.model,
1907
+ ...entry.apiSource ? { apiSource: entry.apiSource } : entry.kind === "platform" ? { apiSource: "platform" } : {}
1908
+ } : null;
1900
1909
  }
1901
1910
  const lower = target.toLowerCase();
1902
1911
  const byName = entries.find(
1903
1912
  (entry) => entry.name.toLowerCase() === lower || entry.key.toLowerCase() === lower || entry.key.toLowerCase().endsWith(`-${lower}`)
1904
1913
  );
1905
1914
  if (byName) {
1906
- return { name: byName.name, key: byName.key, model: byName.model };
1915
+ return {
1916
+ name: byName.name,
1917
+ key: byName.key,
1918
+ model: byName.model,
1919
+ ...byName.apiSource ? { apiSource: byName.apiSource } : byName.kind === "platform" ? { apiSource: "platform" } : {}
1920
+ };
1907
1921
  }
1908
1922
  if (target.startsWith("agent-") || target.startsWith("agent-pub-")) {
1909
1923
  return { name: target, key: target };
@@ -1964,6 +1978,7 @@ async function runAgentPicker(args) {
1964
1978
  name: selected.name,
1965
1979
  key: selected.key,
1966
1980
  model: selected.model,
1981
+ apiSource: selected.apiSource ?? (selected.kind === "platform" ? "platform" : void 0),
1967
1982
  entries
1968
1983
  };
1969
1984
  }
@@ -1974,7 +1989,10 @@ function resolveAgentSwitchTarget(rawTarget, catalogEntries = []) {
1974
1989
  return {
1975
1990
  name: aliasEntry?.name ?? asTrimmedLowercaseString(rawTarget),
1976
1991
  key: resolvedKey,
1977
- ...aliasEntry?.model ? { model: aliasEntry.model } : {}
1992
+ ...aliasEntry?.model ? { model: aliasEntry.model } : {},
1993
+ ...aliasEntry ? {
1994
+ ...aliasEntry.apiSource ? { apiSource: aliasEntry.apiSource } : aliasEntry.kind === "platform" ? { apiSource: "platform" } : {}
1995
+ } : {}
1978
1996
  };
1979
1997
  }
1980
1998
  return findAgentCatalogEntry(catalogEntries, rawTarget);
@@ -2408,12 +2426,14 @@ function renderStatusLine(state) {
2408
2426
  const untrackedText = untracked > 0 ? ` ${themeText(`?${untracked}`, "muted", colorEnabled)}` : "";
2409
2427
  parts.push(`${branchText}${modifiedText}${untrackedText}`);
2410
2428
  }
2429
+ const credits = state.apiSource === "platform" ? state.turnTokens?.credits : void 0;
2430
+ const creditsSuffix = credits !== void 0 && credits > 0 ? ` \xB7 \u26A1 ${credits.toFixed(2)} \u79EF\u5206` : "";
2411
2431
  const tokenSegment = themeText(
2412
2432
  renderComposerTokenChip(
2413
2433
  state.turnTokens,
2414
2434
  state.contextWindow,
2415
2435
  state.estimatedContextTokens
2416
- ),
2436
+ ) + creditsSuffix,
2417
2437
  "muted",
2418
2438
  colorEnabled
2419
2439
  );
@@ -2926,7 +2946,8 @@ function createInitialTuiState(env = process.env) {
2926
2946
  agentKey,
2927
2947
  agentName: autoRouteDefault ? "DeepSeek V4 Flash" : agentName,
2928
2948
  model: autoRouteDefault ? "deepseek-v4-flash" : void 0
2929
- })
2949
+ }),
2950
+ apiSource: PLATFORM_AGENTS.some((entry) => entry.key === agentKey) ? "platform" : void 0
2930
2951
  };
2931
2952
  }
2932
2953
  function applyAgentSwitch(state, target, opts) {
@@ -2948,7 +2969,8 @@ function applyAgentSwitch(state, target, opts) {
2948
2969
  agentKey: target.key,
2949
2970
  agentName: target.name,
2950
2971
  model: target.model
2951
- })
2972
+ }),
2973
+ apiSource: target.apiSource
2952
2974
  },
2953
2975
  output: `Switched to ${target.name}. ${state.dialogId ? `Dialog kept: ${state.dialogId}` : "Dialog kept: new"}`
2954
2976
  };
@@ -4485,10 +4507,14 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
4485
4507
  effectiveAgentName = cachedRoute.agentName;
4486
4508
  } else if (!continueId && env.NOLO_AUTO_ROUTE !== "0" && state.agentKey === DEFAULT_TUI_AGENT_KEY) {
4487
4509
  const authToken = env.AUTH_TOKEN ?? env.AUTH ?? env.BENCHMARK_AUTH_TOKEN ?? "";
4488
- const route = await classifyCliAutoRoute(message, {
4510
+ const route = authToken ? await classifyCliAutoRoute(message, {
4489
4511
  serverUrl: state.serverUrl,
4490
4512
  authToken
4491
- });
4513
+ }) : {
4514
+ agentKey: CLI_AUTO_TIER_AGENT_KEYS[resolveCliAutoFallbackTier(message)],
4515
+ tier: resolveCliAutoFallbackTier(message),
4516
+ classified: false
4517
+ };
4492
4518
  effectiveAgentKey = route.agentKey;
4493
4519
  effectiveAgentName = `auto\u2192${route.tier}`;
4494
4520
  if (effectiveAgentKey !== state.agentKey) {
@@ -4745,7 +4771,12 @@ function waitForRawActionGate(input, output, gate, spawnRunner, hooks) {
4745
4771
  output.write("[nolo] Press Enter to run it now. Follow any prompts below, or Ctrl+C to cancel.\n");
4746
4772
  return new Promise((resolve2) => {
4747
4773
  const rawInput = input;
4774
+ let settled = false;
4775
+ let commandRunning = false;
4748
4776
  const finish = (result) => {
4777
+ if (settled) return;
4778
+ settled = true;
4779
+ hooks?.registerToken?.(null);
4749
4780
  input.off("data", onData);
4750
4781
  resolve2(result);
4751
4782
  };
@@ -4763,13 +4794,9 @@ function waitForRawActionGate(input, output, gate, spawnRunner, hooks) {
4763
4794
  actionGateResult: { gateId: gate.id, status: "failed", output: message }
4764
4795
  }
4765
4796
  });
4766
- const onData = async (chunk) => {
4767
- const text = String(chunk);
4768
- if (text.includes("")) {
4769
- cancel("interrupted");
4770
- return;
4771
- }
4772
- if (!text.includes("\r") && !text.includes("\n")) return;
4797
+ const runCommand = async () => {
4798
+ if (settled || commandRunning) return;
4799
+ commandRunning = true;
4773
4800
  if (!commandPayload) {
4774
4801
  fail("unsupported gate payload");
4775
4802
  return;
@@ -4807,7 +4834,25 @@ function waitForRawActionGate(input, output, gate, spawnRunner, hooks) {
4807
4834
  }
4808
4835
  });
4809
4836
  };
4810
- input.on("data", onData);
4837
+ const handleToken = (text) => {
4838
+ if (settled || commandRunning) return;
4839
+ if (text.includes("")) {
4840
+ cancel("interrupted");
4841
+ return;
4842
+ }
4843
+ if (text.includes("\r") || text.includes("\n")) {
4844
+ void runCommand();
4845
+ }
4846
+ };
4847
+ const onData = (chunk) => {
4848
+ const text = String(chunk);
4849
+ handleToken(text);
4850
+ };
4851
+ if (hooks?.registerToken) {
4852
+ hooks.registerToken(handleToken);
4853
+ } else {
4854
+ input.on("data", onData);
4855
+ }
4811
4856
  });
4812
4857
  }
4813
4858
  async function startTuiWorkspace(options) {
@@ -4952,6 +4997,7 @@ ${t("copyViewHint")}
4952
4997
  return true;
4953
4998
  };
4954
4999
  let modalOwnsKeyboard = false;
5000
+ let rawActionGateTokenHandler = null;
4955
5001
  const runOneAgentTurn = async (message, imageUrls, actionGateHandler, confirmDestructiveAction) => {
4956
5002
  forcedStop = false;
4957
5003
  turnEpoch += 1;
@@ -5195,7 +5241,8 @@ ${t("copyViewHint")}
5195
5241
  agentKey: pickResult.key,
5196
5242
  agentName: pickResult.name,
5197
5243
  model: pickResult.model
5198
- })
5244
+ }),
5245
+ ...pickResult.apiSource ? { apiSource: pickResult.apiSource } : {}
5199
5246
  };
5200
5247
  if (state.dialogId) autoRouteByDialog.delete(state.dialogId);
5201
5248
  explicitAgentSwitch = true;
@@ -5497,7 +5544,10 @@ ${err.message}` : ""}`
5497
5544
  }
5498
5545
  return;
5499
5546
  }
5500
- if (modalOwnsKeyboard) return;
5547
+ if (modalOwnsKeyboard) {
5548
+ rawActionGateTokenHandler?.(sequence);
5549
+ return;
5550
+ }
5501
5551
  const busyLock = busy;
5502
5552
  const scrollAction = parseScrollAction(sequence);
5503
5553
  if (scrollAction) {
@@ -5533,10 +5583,7 @@ ${err.message}` : ""}`
5533
5583
  pasteStore
5534
5584
  });
5535
5585
  if (result.copyView) {
5536
- if (busyLock) return;
5537
- busy = true;
5538
5586
  const opened = await openCopyView();
5539
- busy = false;
5540
5587
  if (!opened) {
5541
5588
  history.followBottom = true;
5542
5589
  startTurn(history, "assistant");
@@ -5556,6 +5603,8 @@ ${err.message}` : ""}`
5556
5603
  result.submit,
5557
5604
  pasteStore
5558
5605
  );
5606
+ const submittedTrimmed = submittedText.trim();
5607
+ const startsChatTurn = submittedTrimmed.length > 0 && !submittedTrimmed.startsWith("/") && !submittedTrimmed.startsWith("!");
5559
5608
  if (busyLock) {
5560
5609
  const trimmedText = submittedText.trim();
5561
5610
  const busySlashCommand = trimmedText.split(/\s+/)[0]?.toLowerCase();
@@ -5592,7 +5641,10 @@ ${hint}` : hint;
5592
5641
  try {
5593
5642
  return await waitForRawActionGate(input, output, gate, spawnRunner, {
5594
5643
  beforeSubprocess: () => fixedInput.pause(),
5595
- afterSubprocess: () => fixedInput.resumeFromSubprocess()
5644
+ afterSubprocess: () => fixedInput.resumeFromSubprocess(),
5645
+ registerToken: (handler) => {
5646
+ rawActionGateTokenHandler = handler;
5647
+ }
5596
5648
  });
5597
5649
  } finally {
5598
5650
  modalOwnsKeyboard = false;
@@ -5639,7 +5691,10 @@ ${hint}` : hint;
5639
5691
  try {
5640
5692
  return await waitForRawActionGate(input, output, gate, spawnRunner, {
5641
5693
  beforeSubprocess: () => fixedInput.pause(),
5642
- afterSubprocess: () => fixedInput.resumeFromSubprocess()
5694
+ afterSubprocess: () => fixedInput.resumeFromSubprocess(),
5695
+ registerToken: (handler) => {
5696
+ rawActionGateTokenHandler = handler;
5697
+ }
5643
5698
  });
5644
5699
  } finally {
5645
5700
  modalOwnsKeyboard = false;
@@ -5693,7 +5748,7 @@ ${err.message}` : ""}`
5693
5748
  return;
5694
5749
  }
5695
5750
  }
5696
- busy = true;
5751
+ busy = startsChatTurn;
5697
5752
  buffer = "";
5698
5753
  cursorPos2 = 0;
5699
5754
  fixedInput.enterOutputMode(submittedText);
@@ -5706,7 +5761,10 @@ ${err.message}` : ""}`
5706
5761
  try {
5707
5762
  return await waitForRawActionGate(input, output, gate, spawnRunner, {
5708
5763
  beforeSubprocess: () => fixedInput.pause(),
5709
- afterSubprocess: () => fixedInput.resumeFromSubprocess()
5764
+ afterSubprocess: () => fixedInput.resumeFromSubprocess(),
5765
+ registerToken: (handler) => {
5766
+ rawActionGateTokenHandler = handler;
5767
+ }
5710
5768
  });
5711
5769
  } finally {
5712
5770
  modalOwnsKeyboard = false;
@@ -1,34 +1,35 @@
1
1
  import {
2
2
  fetchAgentContexts
3
- } from "./chunk-WESWWEVA.js";
3
+ } from "./chunk-L76QNLGU.js";
4
4
  import {
5
5
  generateRequestBody,
6
6
  mergeReferences,
7
7
  performFetchRequest
8
- } from "./chunk-LW6FJFCT.js";
9
- import "./chunk-D55DXHXL.js";
8
+ } from "./chunk-WTBWWBSF.js";
9
+ import "./chunk-QWM7YWVT.js";
10
10
  import {
11
11
  findToolExecutor,
12
12
  getToolResultErrorData
13
- } from "./chunk-PTT6KSYQ.js";
13
+ } from "./chunk-IPA2WQGY.js";
14
14
  import "./chunk-GAKEBQD6.js";
15
+ import "./chunk-6QFNUK2G.js";
15
16
  import "./chunk-KQHGZWSV.js";
16
17
  import "./chunk-2CVZSC5L.js";
17
18
  import "./chunk-3LY4F7SV.js";
18
19
  import "./chunk-VP4WJWKW.js";
19
20
  import "./chunk-63W5N6P3.js";
20
21
  import "./chunk-VF4K2QE6.js";
21
- import "./chunk-LJCH34R2.js";
22
- import "./chunk-A4MYG3TR.js";
22
+ import "./chunk-LE6JAIXE.js";
23
+ import "./chunk-BT57QC5K.js";
23
24
  import "./chunk-VC6OZXO5.js";
24
25
  import {
25
26
  updateTokensAction
26
- } from "./chunk-ZAUDEKML.js";
27
+ } from "./chunk-GROGNZOA.js";
27
28
  import "./chunk-V2J635L5.js";
28
29
  import "./chunk-MRC4Q34M.js";
29
30
  import "./chunk-MTU75CZ2.js";
30
31
  import "./chunk-CWMSB67P.js";
31
- import "./chunk-4VA3UQRF.js";
32
+ import "./chunk-Q7S2ORXX.js";
32
33
  import "./chunk-LTH6AVG7.js";
33
34
  import "./chunk-Z4NR32XR.js";
34
35
  import "./chunk-M76ECQRD.js";
@@ -44,25 +45,26 @@ import {
44
45
  read
45
46
  } from "./chunk-L3KWEH3V.js";
46
47
  import "./chunk-AZPCASRE.js";
47
- import "./chunk-RBCENBG7.js";
48
+ import "./chunk-IOQIOZNI.js";
49
+ import "./chunk-Z3NEXVYE.js";
48
50
  import "./chunk-XENYHRUE.js";
49
51
  import "./chunk-JTINRTBT.js";
50
52
  import "./chunk-KKY4B2Q2.js";
51
53
  import "./chunk-WZSRQNQG.js";
52
- import "./chunk-6KRA6AWI.js";
53
- import "./chunk-AWY2AFHN.js";
54
+ import "./chunk-G7KM6BBZ.js";
55
+ import "./chunk-3HPUUWOR.js";
54
56
  import {
55
57
  canonicalizeToolName
56
- } from "./chunk-6OHYC4BY.js";
58
+ } from "./chunk-FZ2G3I4B.js";
57
59
  import "./chunk-5MMAK75Q.js";
58
60
  import {
59
61
  getApiEndpoint
60
- } from "./chunk-AOKWJZ5N.js";
62
+ } from "./chunk-S3UTETIC.js";
61
63
  import "./chunk-5CS33IBL.js";
62
64
  import "./chunk-JZPBVBIY.js";
63
65
  import "./chunk-BYXBJQAS.js";
64
66
  import "./chunk-KX6YBIHG.js";
65
- import "./chunk-RBCNBU2A.js";
67
+ import "./chunk-524BDL33.js";
66
68
  import "./chunk-O4BU24WZ.js";
67
69
  import "./chunk-I42VC5KR.js";
68
70
  import "./chunk-WWC7I6TA.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  readLiveDbRecordAfterTombstoneMerge
3
- } from "./chunk-BB2PII22.js";
3
+ } from "./chunk-BKGNXJAM.js";
4
4
  import {
5
5
  readDbRecord,
6
6
  writeAgentRecord
7
- } from "./chunk-EUN3SYY7.js";
8
- import "./chunk-ZJS64PZJ.js";
7
+ } from "./chunk-SBVUZC2E.js";
8
+ import "./chunk-FVVST32H.js";
9
9
  import "./chunk-VHBWHNVT.js";
10
10
  import "./chunk-KQHGZWSV.js";
11
11
  import {
@@ -19,22 +19,22 @@ import {
19
19
  resolveFileCategory
20
20
  } from "./chunk-AZPCASRE.js";
21
21
  import "./chunk-IDZTNRP2.js";
22
- import "./chunk-LBUTKV7S.js";
23
- import "./chunk-6UUD2WES.js";
22
+ import "./chunk-C4DZRHFJ.js";
23
+ import "./chunk-3KGTFX3T.js";
24
24
  import "./chunk-ZNFJWEN4.js";
25
25
  import "./chunk-YOCHZD7D.js";
26
- import "./chunk-RBB43B5W.js";
26
+ import "./chunk-AISLHYDB.js";
27
27
  import "./chunk-OPZYGHUC.js";
28
- import "./chunk-6KRA6AWI.js";
29
- import "./chunk-AWY2AFHN.js";
30
- import "./chunk-6OHYC4BY.js";
28
+ import "./chunk-G7KM6BBZ.js";
29
+ import "./chunk-3HPUUWOR.js";
30
+ import "./chunk-FZ2G3I4B.js";
31
31
  import "./chunk-5MMAK75Q.js";
32
- import "./chunk-AOKWJZ5N.js";
32
+ import "./chunk-S3UTETIC.js";
33
33
  import "./chunk-5CS33IBL.js";
34
34
  import "./chunk-JZPBVBIY.js";
35
35
  import "./chunk-BYXBJQAS.js";
36
36
  import "./chunk-KX6YBIHG.js";
37
- import "./chunk-RBCNBU2A.js";
37
+ import "./chunk-524BDL33.js";
38
38
  import "./chunk-O4BU24WZ.js";
39
39
  import "./chunk-I42VC5KR.js";
40
40
  import "./chunk-WWC7I6TA.js";
@@ -50,12 +50,12 @@ import {
50
50
  updateContentTitle,
51
51
  updateSpace,
52
52
  uploadAndAddFileToSpace
53
- } from "./chunk-ZAUDEKML.js";
53
+ } from "./chunk-GROGNZOA.js";
54
54
  import "./chunk-V2J635L5.js";
55
55
  import "./chunk-MRC4Q34M.js";
56
56
  import "./chunk-MTU75CZ2.js";
57
57
  import "./chunk-CWMSB67P.js";
58
- import "./chunk-4VA3UQRF.js";
58
+ import "./chunk-Q7S2ORXX.js";
59
59
  import "./chunk-LTH6AVG7.js";
60
60
  import "./chunk-Z4NR32XR.js";
61
61
  import "./chunk-M76ECQRD.js";
@@ -66,15 +66,16 @@ import "./chunk-BFDWXLFF.js";
66
66
  import "./chunk-UAD2WT54.js";
67
67
  import "./chunk-L3KWEH3V.js";
68
68
  import "./chunk-AZPCASRE.js";
69
- import "./chunk-RBCENBG7.js";
69
+ import "./chunk-IOQIOZNI.js";
70
+ import "./chunk-Z3NEXVYE.js";
70
71
  import "./chunk-JTINRTBT.js";
71
72
  import "./chunk-5MMAK75Q.js";
72
- import "./chunk-AOKWJZ5N.js";
73
+ import "./chunk-S3UTETIC.js";
73
74
  import "./chunk-5CS33IBL.js";
74
75
  import "./chunk-JZPBVBIY.js";
75
76
  import "./chunk-BYXBJQAS.js";
76
77
  import "./chunk-KX6YBIHG.js";
77
- import "./chunk-RBCNBU2A.js";
78
+ import "./chunk-524BDL33.js";
78
79
  import "./chunk-O4BU24WZ.js";
79
80
  import "./chunk-I42VC5KR.js";
80
81
  import "./chunk-WWC7I6TA.js";