nolo-cli 0.16.0-alpha.9 → 0.17.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.
- package/{_executeModel-ABTND4KZ.js → _executeModel-WPNX5DH4.js} +46 -41
- package/{action-F5JACQBG.js → action-LT7BRFLK.js} +10 -9
- package/{addContentAction-AQXEYRBE.js → addContentAction-PL3KKBDH.js} +9 -8
- package/{addDialogAgentAction-EJHHJZWW.js → addDialogAgentAction-FCMSKYAF.js} +8 -7
- package/{agentDeleteCommand-ARMAV46L.js → agentDeleteCommand-L3357EFL.js} +28 -26
- package/{agentEmailCommands-BKPZP4UP.js → agentEmailCommands-N65AVLEI.js} +58 -53
- package/{agentListCommands-5J7RRXUO.js → agentListCommands-CH27FTI2.js} +27 -25
- package/{agentMachineCommands-VXWJXXPF.js → agentMachineCommands-PPK5HJZB.js} +26 -24
- package/{agentPullCommand-6HWUT3SW.js → agentPullCommand-ZZGU5KOY.js} +4 -4
- package/{agentRecordCommands-INDJINPN.js → agentRecordCommands-HTVXD4TT.js} +53 -48
- package/{agentRunCommand-KBN6HBY4.js → agentRunCommand-MGLVJUA5.js} +59 -51
- package/{agentRunControl-6ADXVYMR.js → agentRunControl-P75VPTGS.js} +24 -1
- package/{agentRuntimeLocal-AH2RYWGP.js → agentRuntimeLocal-QUTBSY3I.js} +22 -20
- package/{agentSlice-R4PELU57.js → agentSlice-DOGRCMWK.js} +9 -8
- package/{appDeleteCommands-FRWMPQNS.js → appDeleteCommands-FEEVXUBG.js} +25 -23
- package/{appDeployCommands-IRF3T35Z.js → appDeployCommands-C4HCGC4B.js} +25 -23
- package/{appDeployStatusCommands-ADFERYPU.js → appDeployStatusCommands-IR5ZUZBQ.js} +25 -23
- package/{appGetCommands-FTEOXWMS.js → appGetCommands-6RJGZ66Z.js} +25 -23
- package/{appListCommands-WBY7UWYD.js → appListCommands-VMTF5YZF.js} +25 -23
- package/{authCommand-QU5BXRBH.js → authCommand-WJZPOLSS.js} +13 -12
- package/{authCommands-YXGOXNBZ.js → authCommands-XTBV7OFZ.js} +6 -5
- package/{chunk-XPC5C7BK.js → chunk-3ND52WIL.js} +2 -2
- package/{chunk-SOTZ6RDN.js → chunk-3Q7WHGCB.js} +1 -1
- package/{chunk-WVDAUR2S.js → chunk-45BY7RLP.js} +2 -8
- package/{chunk-KKY4B2Q2.js → chunk-4PWB7JRR.js} +4 -1
- package/{chunk-6N4KODMN.js → chunk-4T5F7YZQ.js} +1 -1
- package/chunk-7BUYEZ6U.js +671 -0
- package/{chunk-AS3ZQ3O2.js → chunk-7OBMZCRD.js} +1 -1
- package/{chunk-4N7QA72L.js → chunk-AAODAAUQ.js} +1 -1
- package/{chunk-QLUFR47U.js → chunk-AL2V7U3E.js} +1 -1
- package/{chunk-MTU75CZ2.js → chunk-B5TOXZAK.js} +1 -1
- package/{chunk-VK2HVKAO.js → chunk-BT6K76S7.js} +192 -249
- package/{chunk-G63IH3ZK.js → chunk-CEFXYF66.js} +1 -1
- package/{chunk-RLCXU7A5.js → chunk-D3HVJJIA.js} +1 -1
- package/{chunk-B4KT7RN2.js → chunk-DKZFOK24.js} +18 -89
- package/chunk-DL6EPNIK.js +50 -0
- package/{chunk-OELQ67TN.js → chunk-EGPCU42M.js} +57 -7
- package/{chunk-IWLUTMYX.js → chunk-ELT65PZW.js} +2 -2
- package/chunk-FKXFCYVO.js +221 -0
- package/{chunk-5Y5KEB7V.js → chunk-FPKLD4KB.js} +4 -4
- package/{chunk-FMYTM25W.js → chunk-FVIPEIVX.js} +10 -3
- package/{chunk-66X4VSRC.js → chunk-HQPG2PIV.js} +41 -1
- package/{chunk-ZPPTWRPT.js → chunk-HV2A3B4W.js} +1 -1
- package/{chunk-ASZ2C44S.js → chunk-IOOMJJ4Z.js} +1 -1
- package/{setDialogExtraReferencesAction-LR6MSIXO.js → chunk-JLA4FXYC.js} +2 -17
- package/{chunk-IFPY2BIE.js → chunk-JP7REMYP.js} +18 -0
- package/{chunk-R6ALN5F5.js → chunk-L2MLZQXU.js} +3 -3
- package/{chunk-HSLJ7QER.js → chunk-L6NVTGI7.js} +1 -1
- package/{chunk-BHVBFI6B.js → chunk-MD3V54DA.js} +6 -6
- package/{chunk-ZVDRAEZL.js → chunk-MUCU6ATG.js} +1 -1
- package/{chunk-KFHN5NGJ.js → chunk-MVQ4TBSD.js} +1 -1
- package/{chunk-7HECYFOI.js → chunk-NEKFSXOP.js} +316 -212
- package/{chunk-LSHKV3S7.js → chunk-NVB267BZ.js} +397 -324
- package/{chunk-SGRDLYRZ.js → chunk-NYUXSXLY.js} +33 -14
- package/{chunk-PEDT43JF.js → chunk-PZCBZO4J.js} +2 -2
- package/{chunk-LZYEWFPK.js → chunk-QCJITMYO.js} +16 -10
- package/{chunk-OOSFSFMA.js → chunk-R5V5G73M.js} +2 -0
- package/{chunk-QLWU2KOT.js → chunk-RG2U2MTJ.js} +1 -1
- package/{chunk-2XA3QGOH.js → chunk-RRGVDPH3.js} +3 -3
- package/{chunk-EABWT43X.js → chunk-RVOUXDFU.js} +5 -5
- package/{chunk-JTINRTBT.js → chunk-SKDNBYZK.js} +2 -2
- package/{chunk-BG7AP3Q7.js → chunk-SNZV4QCE.js} +34 -18
- package/{chunk-KMQPSTMJ.js → chunk-TRT4I4UD.js} +2 -2
- package/{chunk-MYMMNKYL.js → chunk-TSIYZBTH.js} +156 -6
- package/{chunk-J3VQSU5W.js → chunk-UB4RYYNQ.js} +1 -1
- package/{chunk-YJKXGHJ6.js → chunk-UGUW3FHG.js} +4 -4
- package/{chunk-XECKIDGJ.js → chunk-UZY4BEBR.js} +938 -91
- package/chunk-V5R4NZP2.js +78 -0
- package/{chunk-GWESD7AS.js → chunk-VDNQF5VI.js} +6 -6
- package/{chunk-ZVC2PCZN.js → chunk-VGMJ6PDJ.js} +5 -5
- package/{chunk-W4NVOSFF.js → chunk-WFHXMLHZ.js} +1 -1
- package/{chunk-H33743XH.js → chunk-WJRJDX2W.js} +1 -1
- package/chunk-X4Q4UZEY.js +26 -0
- package/{chunk-RPDGJO4D.js → chunk-XHG22OEX.js} +4 -4
- package/{chunk-DVRHHFEA.js → chunk-XMLRJUU5.js} +1 -1
- package/{chunk-3S2VOMIF.js → chunk-XRZJGPFI.js} +7 -7
- package/{chunk-AFNJWHKL.js → chunk-YLRTBX4Y.js} +26 -14
- package/{chunk-4EME3YTO.js → chunk-YXTRNO5W.js} +3 -3
- package/{chunk-VAT72PDP.js → chunk-ZJZCMKOR.js} +103 -174
- package/{chunk-F6JSVFHX.js → chunk-ZVOZH2HW.js} +1 -1
- package/chunk-ZZ2MH7LE.js +84 -0
- package/{cliExecutor-K3F7DMRO.js → cliExecutor-DNE7TCC4.js} +2 -2
- package/codingSkills-36KN5NQT.js +48 -0
- package/{createAgentAutomationAction-3KKRAYGE.js → createAgentAutomationAction-PMOLEPGJ.js} +18 -17
- package/{createDialogAction-S7NMQ4TZ.js → createDialogAction-DPRTYNAK.js} +20 -19
- package/{createPageAction-2EFBT4LQ.js → createPageAction-JGZK3WAM.js} +24 -23
- package/{dbSlice-7KQH6GOU.js → dbSlice-CGSRFJN3.js} +8 -7
- package/{deleteFile-WPWVZE4B.js → deleteFile-WDZ3VM7B.js} +3 -3
- package/{dialogCommands-J7XFIQRD.js → dialogCommands-XED6DKLV.js} +26 -24
- package/{dialogSlice-LNRRBUIC.js → dialogSlice-KO4NRNKC.js} +18 -17
- package/{docCreateCommands-MKO5WB34.js → docCreateCommands-P6DYWHH3.js} +24 -22
- package/{docDeleteCommands-RCBHRKUE.js → docDeleteCommands-KUWXAMSN.js} +25 -23
- package/{docReadCommands-66527P4G.js → docReadCommands-ECW55TKB.js} +24 -22
- package/{docStore-67MYPX7P.js → docStore-6KMERNUY.js} +19 -18
- package/{docUpdateCommands-UT5HSLOJ.js → docUpdateCommands-5J4BTJQN.js} +24 -22
- package/{fetchMessages-KTNM7QAR.js → fetchMessages-BMGVZVSE.js} +4 -3
- package/{getPricing-P4XRJRZB.js → getPricing-RYY6OBA4.js} +2 -2
- package/{handleSendMessageAction-VZ7226PB.js → handleSendMessageAction-R3ZHTVU4.js} +19 -18
- package/index.js +68 -68
- package/{localDialogRead-2VRI24F4.js → localDialogRead-HQZPVIE3.js} +1 -1
- package/{localRuntimeDb-LGDF6FQP.js → localRuntimeDb-THJZGAOJ.js} +1 -1
- package/{machineCommands-ATA7OSBJ.js → machineCommands-JF2YL34J.js} +59 -54
- package/{machineWsRunDispatch-ZDCZ645H.js → machineWsRunDispatch-ON4AEOJL.js} +51 -46
- package/package.json +1 -1
- package/queryRunOverlay-O4LOMMPO.js +161 -0
- package/{read-CN3TNXIP.js → read-3FMPZPER.js} +3 -3
- package/{readDocTool-WF3675ED.js → readDocTool-VSYHKK3V.js} +1 -1
- package/{readlineWorkspace-UUNABTLB.js → readlineWorkspace-SUCINTL7.js} +302 -134
- package/{removeDialogAgentAction-YDHBFEGI.js → removeDialogAgentAction-OAGA2G3U.js} +10 -9
- package/{runAgentClientLoop-2A577WBM.js → runAgentClientLoop-OBD2AVEL.js} +41 -36
- package/runOverlayPresentation-ZO4VCWEU.js +11 -0
- package/{runtimeDoctorCommands-THIHX2SY.js → runtimeDoctorCommands-E2OUORHK.js} +6 -6
- package/setDialogExtraReferencesAction-JZEXA5SL.js +27 -0
- package/{setPrimaryDialogAgentAction-IIVDCY5C.js → setPrimaryDialogAgentAction-4ZUQQKDG.js} +26 -17
- package/{settingSlice-O23YDK2O.js → settingSlice-7MNKHZ6R.js} +9 -8
- package/{skillDiscovery-6M2BZUFN.js → skillDiscovery-KJWT7JBU.js} +3 -3
- package/{spaceCommands-UNZVR2OS.js → spaceCommands-32NTNLHS.js} +27 -25
- package/{spaceSlice-MC7FYPMZ.js → spaceSlice-P7VOXLY6.js} +18 -17
- package/{streamAgentChatTurn-IEKPNM33.js → streamAgentChatTurn-UHEMNI3X.js} +91 -48
- package/{tableCommands-3P7MJ3PF.js → tableCommands-BEQAGE4I.js} +1 -1
- package/{tools-E6FHKTCF.js → tools-BMXIXHMB.js} +31 -26
- package/{tuiSummaryLlmCaller-QHPDD4WP.js → tuiSummaryLlmCaller-VUNVBRX3.js} +3 -3
- package/types-ZSTJ7MPR.js +7 -0
- package/{updateDialogTitleAction-SQJEEW2K.js → updateDialogTitleAction-LJBDYZLH.js} +21 -20
- package/{chunk-O4BU24WZ.js → chunk-6Y7A3OQQ.js} +3 -3
- package/{chunk-CMKUBIGW.js → chunk-X7W4TNB4.js} +3 -3
- package/{localRuntimeAuthority-TEGCOWX4.js → localRuntimeAuthority-4IXJCHZ7.js} +3 -3
|
@@ -3,7 +3,20 @@ import {
|
|
|
3
3
|
normalizeDialogRecord,
|
|
4
4
|
readDialogSnapshot,
|
|
5
5
|
sortDialogs
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-L2MLZQXU.js";
|
|
7
|
+
import {
|
|
8
|
+
listFavoriteAgentIdsAcrossServers,
|
|
9
|
+
listLocalCachedAgents,
|
|
10
|
+
listRemoteAgents,
|
|
11
|
+
listRemoteAgentsAcrossServers
|
|
12
|
+
} from "./chunk-RRGVDPH3.js";
|
|
13
|
+
import "./chunk-ID4G2MAR.js";
|
|
14
|
+
import {
|
|
15
|
+
listUserRecordsFromServers
|
|
16
|
+
} from "./chunk-ZVOZH2HW.js";
|
|
17
|
+
import {
|
|
18
|
+
buildOverlayPresentation
|
|
19
|
+
} from "./chunk-V5R4NZP2.js";
|
|
7
20
|
import {
|
|
8
21
|
ANSI_ESCAPE_REGEX,
|
|
9
22
|
CLI_AUTO_TIER_AGENT_KEYS,
|
|
@@ -19,6 +32,7 @@ import {
|
|
|
19
32
|
clearCollapsedPasteStore,
|
|
20
33
|
countPhysicalLines,
|
|
21
34
|
createCollapsedPasteStore,
|
|
35
|
+
detectSystemBrightnessFromEnv,
|
|
22
36
|
dimCliText,
|
|
23
37
|
displayWidth,
|
|
24
38
|
expandRangeToCollapsedPasteChips,
|
|
@@ -30,7 +44,6 @@ import {
|
|
|
30
44
|
getActiveDensity,
|
|
31
45
|
getActiveThemeName,
|
|
32
46
|
isBalanceExhaustedError,
|
|
33
|
-
isQuotaExhaustedError,
|
|
34
47
|
normalizeToolDisplayMode,
|
|
35
48
|
padOrTruncateToWidth,
|
|
36
49
|
releaseCollapsedPaste,
|
|
@@ -57,120 +70,124 @@ import {
|
|
|
57
70
|
visibleWidth,
|
|
58
71
|
wrapTextToLines,
|
|
59
72
|
wrapTranscriptLine
|
|
60
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-BT6K76S7.js";
|
|
61
74
|
import "./chunk-DZ3XJVET.js";
|
|
62
|
-
import "./chunk-6HYVJV7B.js";
|
|
63
75
|
import {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
listRemoteAgents,
|
|
67
|
-
listRemoteAgentsAcrossServers
|
|
68
|
-
} from "./chunk-2XA3QGOH.js";
|
|
69
|
-
import "./chunk-ID4G2MAR.js";
|
|
76
|
+
getReadableCliDb
|
|
77
|
+
} from "./chunk-WFHXMLHZ.js";
|
|
70
78
|
import {
|
|
71
|
-
|
|
72
|
-
|
|
79
|
+
deleteDbRecord,
|
|
80
|
+
queryUserRecords,
|
|
81
|
+
readDbRecord
|
|
82
|
+
} from "./chunk-FVIPEIVX.js";
|
|
73
83
|
import {
|
|
74
84
|
createCliLocalRuntimeAdapter,
|
|
75
85
|
initCliLocale,
|
|
86
|
+
isQuotaExhaustedError,
|
|
76
87
|
parseCliLocale,
|
|
77
88
|
setCliLocale,
|
|
78
89
|
t
|
|
79
|
-
} from "./chunk-
|
|
80
|
-
import "./chunk-
|
|
81
|
-
import
|
|
82
|
-
getReadableCliDb
|
|
83
|
-
} from "./chunk-W4NVOSFF.js";
|
|
84
|
-
import {
|
|
85
|
-
deleteDbRecord,
|
|
86
|
-
queryUserRecords,
|
|
87
|
-
readDbRecord
|
|
88
|
-
} from "./chunk-FMYTM25W.js";
|
|
89
|
-
import "./chunk-WVDAUR2S.js";
|
|
90
|
+
} from "./chunk-UZY4BEBR.js";
|
|
91
|
+
import "./chunk-UB4RYYNQ.js";
|
|
92
|
+
import "./chunk-45BY7RLP.js";
|
|
90
93
|
import {
|
|
91
94
|
resolveCliAgentKeyInput
|
|
92
95
|
} from "./chunk-VHBWHNVT.js";
|
|
93
96
|
import "./chunk-LTRXGFMS.js";
|
|
94
|
-
import "./chunk-
|
|
97
|
+
import "./chunk-MVQ4TBSD.js";
|
|
98
|
+
import "./chunk-6HYVJV7B.js";
|
|
95
99
|
import "./chunk-JEXVIMYZ.js";
|
|
96
100
|
import {
|
|
97
101
|
prepareTools
|
|
98
|
-
} from "./chunk-
|
|
99
|
-
import "./chunk-
|
|
102
|
+
} from "./chunk-PZCBZO4J.js";
|
|
103
|
+
import "./chunk-L6NVTGI7.js";
|
|
100
104
|
import {
|
|
101
105
|
expandEnabledPacks
|
|
102
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-NEKFSXOP.js";
|
|
103
107
|
import "./chunk-RQSOAMPJ.js";
|
|
104
|
-
import "./chunk-
|
|
108
|
+
import "./chunk-JP7REMYP.js";
|
|
105
109
|
import "./chunk-KQHGZWSV.js";
|
|
106
|
-
import "./chunk-
|
|
107
|
-
import "./chunk-6N4KODMN.js";
|
|
110
|
+
import "./chunk-4T5F7YZQ.js";
|
|
108
111
|
import "./chunk-3LY4F7SV.js";
|
|
109
|
-
import "./chunk-VP4WJWKW.js";
|
|
110
|
-
import "./chunk-63W5N6P3.js";
|
|
111
112
|
import "./chunk-VF4K2QE6.js";
|
|
112
|
-
import "./chunk-
|
|
113
|
-
import
|
|
113
|
+
import "./chunk-VDNQF5VI.js";
|
|
114
|
+
import {
|
|
115
|
+
initialRunOverlayState,
|
|
116
|
+
reduceRunOverlay
|
|
117
|
+
} from "./chunk-DL6EPNIK.js";
|
|
114
118
|
import "./chunk-OWOHNGCN.js";
|
|
119
|
+
import "./chunk-JLA4FXYC.js";
|
|
120
|
+
import "./chunk-VP4WJWKW.js";
|
|
121
|
+
import "./chunk-63W5N6P3.js";
|
|
122
|
+
import "./chunk-WJRJDX2W.js";
|
|
123
|
+
import "./chunk-LM6IYQ3F.js";
|
|
124
|
+
import "./chunk-NYUXSXLY.js";
|
|
115
125
|
import {
|
|
116
126
|
extractReferenceKeysFromMessage
|
|
117
|
-
} from "./chunk-
|
|
127
|
+
} from "./chunk-NVB267BZ.js";
|
|
118
128
|
import {
|
|
119
129
|
buildBuiltinSummaryContent
|
|
120
130
|
} from "./chunk-XOIF2TNF.js";
|
|
131
|
+
import "./chunk-B5TOXZAK.js";
|
|
121
132
|
import "./chunk-MRC4Q34M.js";
|
|
122
|
-
import "./chunk-
|
|
133
|
+
import "./chunk-MD3V54DA.js";
|
|
123
134
|
import "./chunk-CWMSB67P.js";
|
|
124
|
-
import "./chunk-
|
|
125
|
-
import "./chunk-RPDGJO4D.js";
|
|
126
|
-
import "./chunk-SOTZ6RDN.js";
|
|
135
|
+
import "./chunk-XHG22OEX.js";
|
|
127
136
|
import "./chunk-Z4NR32XR.js";
|
|
128
137
|
import "./chunk-M76ECQRD.js";
|
|
138
|
+
import "./chunk-3Q7WHGCB.js";
|
|
129
139
|
import {
|
|
130
140
|
buildSkillDiscoveryContextBlock
|
|
131
|
-
} from "./chunk-
|
|
141
|
+
} from "./chunk-7OBMZCRD.js";
|
|
142
|
+
import "./chunk-7BUYEZ6U.js";
|
|
143
|
+
import "./chunk-VC6OZXO5.js";
|
|
132
144
|
import "./chunk-WZSRQNQG.js";
|
|
133
145
|
import {
|
|
134
146
|
buildLocalWorkspaceOpenAiTools,
|
|
135
147
|
buildLocalWorkspaceToolset,
|
|
136
148
|
getProcessRegistry
|
|
137
|
-
} from "./chunk-
|
|
138
|
-
import "./chunk-4N7QA72L.js";
|
|
149
|
+
} from "./chunk-YLRTBX4Y.js";
|
|
139
150
|
import "./chunk-ZNFJWEN4.js";
|
|
151
|
+
import "./chunk-AAODAAUQ.js";
|
|
140
152
|
import "./chunk-OIQPORYI.js";
|
|
141
153
|
import {
|
|
142
154
|
readCommandActionGatePayload,
|
|
143
155
|
resolveAgentImageInputSupport
|
|
144
|
-
} from "./chunk-
|
|
156
|
+
} from "./chunk-QCJITMYO.js";
|
|
145
157
|
import "./chunk-LSFAWXKC.js";
|
|
146
158
|
import {
|
|
147
159
|
buildCurrentTimeBlock,
|
|
148
160
|
buildIdentityBlock,
|
|
149
161
|
buildRuntimeGuidanceBlocks
|
|
150
|
-
} from "./chunk-
|
|
162
|
+
} from "./chunk-IOOMJJ4Z.js";
|
|
151
163
|
import "./chunk-KFEVY3ST.js";
|
|
152
164
|
import {
|
|
153
165
|
resolvePlatformAuthToken
|
|
154
|
-
} from "./chunk-
|
|
155
|
-
import
|
|
156
|
-
canonicalizeToolNames
|
|
157
|
-
} from "./chunk-B4KT7RN2.js";
|
|
166
|
+
} from "./chunk-MUCU6ATG.js";
|
|
167
|
+
import "./chunk-DKZFOK24.js";
|
|
158
168
|
import {
|
|
159
169
|
DEFAULT_CONTEXT_WINDOW,
|
|
160
170
|
estimateTokenCount,
|
|
161
171
|
getModelContextWindow,
|
|
162
172
|
planCompression,
|
|
163
173
|
serializeMessageContent
|
|
164
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-EGPCU42M.js";
|
|
165
175
|
import {
|
|
166
176
|
clipCompactText
|
|
167
177
|
} from "./chunk-5MMAK75Q.js";
|
|
168
|
-
import "./chunk-66X4VSRC.js";
|
|
169
178
|
import "./chunk-5CS33IBL.js";
|
|
170
179
|
import "./chunk-JZPBVBIY.js";
|
|
180
|
+
import "./chunk-HQPG2PIV.js";
|
|
171
181
|
import "./chunk-ZHXJ6M7T.js";
|
|
172
|
-
import
|
|
173
|
-
|
|
182
|
+
import {
|
|
183
|
+
toErrorMessage
|
|
184
|
+
} from "./chunk-HNMXYYJR.js";
|
|
185
|
+
import "./chunk-ELT65PZW.js";
|
|
186
|
+
import "./chunk-AL2V7U3E.js";
|
|
187
|
+
import "./chunk-4PWB7JRR.js";
|
|
188
|
+
import {
|
|
189
|
+
canonicalizeToolNames
|
|
190
|
+
} from "./chunk-ZZ2MH7LE.js";
|
|
174
191
|
import "./chunk-5MIDPSSK.js";
|
|
175
192
|
import {
|
|
176
193
|
extractCustomId
|
|
@@ -179,15 +196,19 @@ import "./chunk-3ASDTTEI.js";
|
|
|
179
196
|
import {
|
|
180
197
|
compactWhitespace
|
|
181
198
|
} from "./chunk-DWLEOOGR.js";
|
|
182
|
-
import "./chunk-MYMMNKYL.js";
|
|
183
|
-
import "./chunk-CMKUBIGW.js";
|
|
184
|
-
import "./chunk-JBTJAPUF.js";
|
|
185
|
-
import "./chunk-ATNTHIZI.js";
|
|
186
199
|
import {
|
|
187
|
-
|
|
188
|
-
} from "./chunk-
|
|
189
|
-
import
|
|
190
|
-
|
|
200
|
+
queryRunRecords
|
|
201
|
+
} from "./chunk-TSIYZBTH.js";
|
|
202
|
+
import {
|
|
203
|
+
formatRunAge,
|
|
204
|
+
getAgentRunStatusIcon,
|
|
205
|
+
isAgentRunTerminalStatus,
|
|
206
|
+
runShowsLogTail,
|
|
207
|
+
shortRunId
|
|
208
|
+
} from "./chunk-FKXFCYVO.js";
|
|
209
|
+
import "./chunk-X7W4TNB4.js";
|
|
210
|
+
import "./chunk-ATNTHIZI.js";
|
|
211
|
+
import "./chunk-JBTJAPUF.js";
|
|
191
212
|
import {
|
|
192
213
|
runSelfUpdate
|
|
193
214
|
} from "./chunk-K6EUAOW3.js";
|
|
@@ -210,22 +231,22 @@ import {
|
|
|
210
231
|
} from "./chunk-OLZBQWZU.js";
|
|
211
232
|
import "./chunk-RK5NYQEL.js";
|
|
212
233
|
import "./chunk-O6W2O2DA.js";
|
|
213
|
-
import "./chunk-
|
|
214
|
-
import "./chunk-
|
|
234
|
+
import "./chunk-UGUW3FHG.js";
|
|
235
|
+
import "./chunk-RVOUXDFU.js";
|
|
215
236
|
import "./chunk-Y5GCAMGP.js";
|
|
216
237
|
import "./chunk-KX6YBIHG.js";
|
|
217
|
-
import "./chunk-
|
|
218
|
-
import "./chunk-
|
|
219
|
-
import "./chunk-O4BU24WZ.js";
|
|
220
|
-
import "./chunk-I42VC5KR.js";
|
|
238
|
+
import "./chunk-XRZJGPFI.js";
|
|
239
|
+
import "./chunk-6Y7A3OQQ.js";
|
|
221
240
|
import "./chunk-WWC7I6TA.js";
|
|
222
|
-
import "./chunk-
|
|
241
|
+
import "./chunk-SKDNBYZK.js";
|
|
242
|
+
import "./chunk-I42VC5KR.js";
|
|
223
243
|
import {
|
|
224
244
|
asTrimmedLowercaseString
|
|
225
245
|
} from "./chunk-QSJ3HFEF.js";
|
|
226
|
-
import "./chunk-
|
|
227
|
-
import "./chunk-
|
|
228
|
-
import "./chunk-
|
|
246
|
+
import "./chunk-X4Q4UZEY.js";
|
|
247
|
+
import "./chunk-3ND52WIL.js";
|
|
248
|
+
import "./chunk-XMLRJUU5.js";
|
|
249
|
+
import "./chunk-R5V5G73M.js";
|
|
229
250
|
import "./chunk-GBRG75BQ.js";
|
|
230
251
|
import "./chunk-3EUW3WEO.js";
|
|
231
252
|
import "./chunk-U6VC4MU4.js";
|
|
@@ -249,7 +270,7 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
249
270
|
import { join } from "node:path";
|
|
250
271
|
var DEFAULT_CLI_PACKS = ["code", "agent-orchestration", "skills"];
|
|
251
272
|
var DEFAULT_CLI_PLATFORM_TOOLS = [
|
|
252
|
-
"
|
|
273
|
+
"ask_user",
|
|
253
274
|
"exa_search",
|
|
254
275
|
"fetchWebpage"
|
|
255
276
|
];
|
|
@@ -757,7 +778,7 @@ function createRawKeyReader(input) {
|
|
|
757
778
|
let buffer = "";
|
|
758
779
|
const tryParseSequence = () => {
|
|
759
780
|
if (!buffer) return null;
|
|
760
|
-
if (isSubmit(buffer)
|
|
781
|
+
if (isSubmit(buffer)) {
|
|
761
782
|
const sequence2 = buffer;
|
|
762
783
|
buffer = "";
|
|
763
784
|
return sequence2;
|
|
@@ -780,6 +801,7 @@ function createRawKeyReader(input) {
|
|
|
780
801
|
return candidate;
|
|
781
802
|
}
|
|
782
803
|
}
|
|
804
|
+
if (buffer === "\x1B") return void 0;
|
|
783
805
|
if (buffer.length >= 8) {
|
|
784
806
|
buffer = "";
|
|
785
807
|
return null;
|
|
@@ -791,16 +813,38 @@ function createRawKeyReader(input) {
|
|
|
791
813
|
return sequence;
|
|
792
814
|
};
|
|
793
815
|
let waiter = null;
|
|
816
|
+
let escTimer = null;
|
|
794
817
|
const tryDeliver = () => {
|
|
795
818
|
if (!waiter || !buffer) return;
|
|
796
819
|
const parsed = tryParseSequence();
|
|
797
|
-
if (parsed === void 0)
|
|
820
|
+
if (parsed === void 0) {
|
|
821
|
+
if (buffer === "\x1B" && !escTimer) {
|
|
822
|
+
escTimer = setTimeout(() => {
|
|
823
|
+
escTimer = null;
|
|
824
|
+
if (waiter && buffer === "\x1B") {
|
|
825
|
+
const resolve3 = waiter;
|
|
826
|
+
waiter = null;
|
|
827
|
+
buffer = "";
|
|
828
|
+
resolve3("\x1B");
|
|
829
|
+
}
|
|
830
|
+
}, 30);
|
|
831
|
+
}
|
|
832
|
+
return;
|
|
833
|
+
}
|
|
834
|
+
if (escTimer) {
|
|
835
|
+
clearTimeout(escTimer);
|
|
836
|
+
escTimer = null;
|
|
837
|
+
}
|
|
798
838
|
const resolve2 = waiter;
|
|
799
839
|
waiter = null;
|
|
800
840
|
resolve2(parsed);
|
|
801
841
|
};
|
|
802
842
|
const onData = (chunk) => {
|
|
803
843
|
buffer += typeof chunk === "string" ? chunk : Buffer.from(chunk).toString("utf8");
|
|
844
|
+
if (escTimer) {
|
|
845
|
+
clearTimeout(escTimer);
|
|
846
|
+
escTimer = null;
|
|
847
|
+
}
|
|
804
848
|
tryDeliver();
|
|
805
849
|
};
|
|
806
850
|
input.on("data", onData);
|
|
@@ -810,6 +854,10 @@ function createRawKeyReader(input) {
|
|
|
810
854
|
tryDeliver();
|
|
811
855
|
});
|
|
812
856
|
reader.dispose = () => {
|
|
857
|
+
if (escTimer) {
|
|
858
|
+
clearTimeout(escTimer);
|
|
859
|
+
escTimer = null;
|
|
860
|
+
}
|
|
813
861
|
waiter = null;
|
|
814
862
|
input.off("data", onData);
|
|
815
863
|
};
|
|
@@ -832,7 +880,6 @@ async function runSelectDialog(args) {
|
|
|
832
880
|
const output = args.output ?? process.stdout;
|
|
833
881
|
const input = args.input ?? process.stdin;
|
|
834
882
|
const readKey = args.readKey ?? createRawKeyReader(input);
|
|
835
|
-
output.write("\x1B[?1006h\x1B[?1000h");
|
|
836
883
|
const wasRaw = Boolean(input.isTTY && input.isRaw);
|
|
837
884
|
let renderedLineCount = 0;
|
|
838
885
|
const bottomAnchored = Boolean(args.bottomAnchored && args.bottomRow);
|
|
@@ -883,14 +930,15 @@ async function runSelectDialog(args) {
|
|
|
883
930
|
};
|
|
884
931
|
const resizeTarget = output;
|
|
885
932
|
const onOutputResize = () => paint();
|
|
886
|
-
if (input.isTTY && !wasRaw) {
|
|
887
|
-
input.setRawMode?.(true);
|
|
888
|
-
}
|
|
889
|
-
if (bottomAnchored && outputIsTty(output)) {
|
|
890
|
-
resizeTarget.on?.("resize", onOutputResize);
|
|
891
|
-
}
|
|
892
|
-
paint();
|
|
893
933
|
try {
|
|
934
|
+
output.write("\x1B[?1006h\x1B[?1000h");
|
|
935
|
+
if (input.isTTY && !wasRaw) {
|
|
936
|
+
input.setRawMode?.(true);
|
|
937
|
+
}
|
|
938
|
+
if (bottomAnchored && outputIsTty(output)) {
|
|
939
|
+
resizeTarget.on?.("resize", onOutputResize);
|
|
940
|
+
}
|
|
941
|
+
paint();
|
|
894
942
|
while (true) {
|
|
895
943
|
const sequence = await readKey();
|
|
896
944
|
if (sequence == null) {
|
|
@@ -898,6 +946,9 @@ async function runSelectDialog(args) {
|
|
|
898
946
|
}
|
|
899
947
|
const scrollAction = parseScrollAction(sequence);
|
|
900
948
|
if (scrollAction === "wheel-up" || scrollAction === "wheel-down") {
|
|
949
|
+
if (args.wheelPolicy === "ignore") {
|
|
950
|
+
continue;
|
|
951
|
+
}
|
|
901
952
|
selectedIndex = Math.min(
|
|
902
953
|
Math.max(
|
|
903
954
|
selectedIndex + (scrollAction === "wheel-up" ? -1 : 1),
|
|
@@ -1013,6 +1064,11 @@ async function runConfirmDialog(args) {
|
|
|
1013
1064
|
titleLines,
|
|
1014
1065
|
input,
|
|
1015
1066
|
output,
|
|
1067
|
+
// confirm is a non-list modal: a wheel scroll must do nothing at all — no
|
|
1068
|
+
// highlight move, no repaint, no cancel (spec). Without this it would
|
|
1069
|
+
// inherit runSelectDialog's default "move" and let the wheel flip
|
|
1070
|
+
// Allow/Deny, which is the opposite of the intended silent-swallow.
|
|
1071
|
+
wheelPolicy: "ignore",
|
|
1016
1072
|
...args.readKey ? { readKey: args.readKey } : {},
|
|
1017
1073
|
...args.bottomAnchored ? { bottomAnchored: args.bottomAnchored } : {},
|
|
1018
1074
|
...args.bottomRow ? { bottomRow: args.bottomRow } : {}
|
|
@@ -1366,7 +1422,6 @@ async function runAskChoiceDialog(args) {
|
|
|
1366
1422
|
const output = args.output ?? process.stdout;
|
|
1367
1423
|
const input = args.input ?? process.stdin;
|
|
1368
1424
|
const readKey = args.readKey ?? createRawKeyReader(input);
|
|
1369
|
-
output.write("\x1B[?1006h\x1B[?1000h");
|
|
1370
1425
|
const wasRaw = Boolean(input.isTTY && input.isRaw);
|
|
1371
1426
|
let renderedLineCount = 0;
|
|
1372
1427
|
const bottomAnchored = Boolean(args.bottomAnchored && args.bottomRow);
|
|
@@ -1443,14 +1498,15 @@ async function runAskChoiceDialog(args) {
|
|
|
1443
1498
|
};
|
|
1444
1499
|
const resizeTarget = output;
|
|
1445
1500
|
const onOutputResize = () => paint();
|
|
1446
|
-
if (input.isTTY && !wasRaw) {
|
|
1447
|
-
input.setRawMode?.(true);
|
|
1448
|
-
}
|
|
1449
|
-
if (bottomAnchored && outputIsTty(output)) {
|
|
1450
|
-
resizeTarget.on?.("resize", onOutputResize);
|
|
1451
|
-
}
|
|
1452
|
-
paint();
|
|
1453
1501
|
try {
|
|
1502
|
+
output.write("\x1B[?1006h\x1B[?1000h");
|
|
1503
|
+
if (input.isTTY && !wasRaw) {
|
|
1504
|
+
input.setRawMode?.(true);
|
|
1505
|
+
}
|
|
1506
|
+
if (bottomAnchored && outputIsTty(output)) {
|
|
1507
|
+
resizeTarget.on?.("resize", onOutputResize);
|
|
1508
|
+
}
|
|
1509
|
+
paint();
|
|
1454
1510
|
while (state.phase === "active") {
|
|
1455
1511
|
const sequence = await readKey();
|
|
1456
1512
|
if (sequence == null) {
|
|
@@ -1466,6 +1522,9 @@ async function runAskChoiceDialog(args) {
|
|
|
1466
1522
|
paint();
|
|
1467
1523
|
continue;
|
|
1468
1524
|
}
|
|
1525
|
+
if (SGR_MOUSE_REGEX.test(sequence)) {
|
|
1526
|
+
continue;
|
|
1527
|
+
}
|
|
1469
1528
|
let action = null;
|
|
1470
1529
|
const qs = state.questionStates[state.activeIndex];
|
|
1471
1530
|
const q = state.questions[state.activeIndex];
|
|
@@ -1718,7 +1777,7 @@ function createActivityIndicator(deps) {
|
|
|
1718
1777
|
}
|
|
1719
1778
|
}
|
|
1720
1779
|
if (agentRunSnapshot) {
|
|
1721
|
-
lines.push(...formatAgentRunPanelLines(agentRunSnapshot, colorEnabled));
|
|
1780
|
+
lines.push(...formatAgentRunPanelLines(agentRunSnapshot, colorEnabled, now()));
|
|
1722
1781
|
}
|
|
1723
1782
|
return lines.length > 0 ? lines : null;
|
|
1724
1783
|
};
|
|
@@ -1747,52 +1806,56 @@ function createActivityIndicator(deps) {
|
|
|
1747
1806
|
stop
|
|
1748
1807
|
};
|
|
1749
1808
|
}
|
|
1750
|
-
function
|
|
1809
|
+
function formatPanelProgress(snapshot) {
|
|
1810
|
+
const parts = [];
|
|
1811
|
+
if (typeof snapshot.toolCallCount === "number" && Number.isFinite(snapshot.toolCallCount)) {
|
|
1812
|
+
parts.push(`${snapshot.toolCallCount} tools`);
|
|
1813
|
+
}
|
|
1814
|
+
if (snapshot.lastToolNames && snapshot.lastToolNames.length > 0) {
|
|
1815
|
+
parts.push(snapshot.lastToolNames.join(", "));
|
|
1816
|
+
}
|
|
1817
|
+
return parts.length > 0 ? ` \xB7 ${parts.join(" \xB7 ")}` : "";
|
|
1818
|
+
}
|
|
1819
|
+
function formatPanelDetail(snapshot) {
|
|
1820
|
+
const note = snapshot.lastAssistantText?.trim();
|
|
1821
|
+
if (note) return note;
|
|
1822
|
+
if (!runShowsLogTail(snapshot.status)) return "";
|
|
1823
|
+
const lines = snapshot.logLines;
|
|
1824
|
+
if (!lines || lines.length === 0) return "";
|
|
1825
|
+
return lines[lines.length - 1]?.trim() ?? "";
|
|
1826
|
+
}
|
|
1827
|
+
function formatAgentRunPanelLines(snapshot, colorEnabled, now = Date.now()) {
|
|
1751
1828
|
const lines = [];
|
|
1752
1829
|
const name = snapshot.agentName || "sub-agent";
|
|
1753
|
-
const
|
|
1830
|
+
const short = shortRunId(snapshot.runId);
|
|
1831
|
+
const runId = short ? ` (${short})` : "";
|
|
1754
1832
|
const status = snapshot.status || "running";
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
if (status === "completed" || status === "finished" || status === "success") {
|
|
1758
|
-
statusSymbol = "\u2713";
|
|
1759
|
-
statusColor = "success";
|
|
1760
|
-
} else if (status === "killed" || status === "cancelled" || status === "failed" || status === "stopped") {
|
|
1761
|
-
statusSymbol = "\u{1F534}";
|
|
1762
|
-
statusColor = "danger";
|
|
1763
|
-
}
|
|
1764
|
-
const pollPart = snapshot.polls !== void 0 ? ` (polls: ${snapshot.polls})` : "";
|
|
1833
|
+
const statusSymbol = getAgentRunStatusIcon(status);
|
|
1834
|
+
const statusColor = !isAgentRunTerminalStatus(status) ? "warning" : status === "done" ? "success" : "danger";
|
|
1765
1835
|
const errPart = snapshot.errorMessage ? ` \xB7 ${snapshot.errorMessage}` : "";
|
|
1836
|
+
const progressPart = formatPanelProgress(snapshot);
|
|
1837
|
+
const age = formatRunAge(snapshot, now);
|
|
1838
|
+
const agePart = age ? ` \xB7 ${age}` : "";
|
|
1766
1839
|
if (!colorEnabled) {
|
|
1767
|
-
lines.push(
|
|
1840
|
+
lines.push(
|
|
1841
|
+
`\u{1F916} Sub-Agent: ${name}${runId} \xB7 ${statusSymbol} ${status}${agePart}${progressPart}${errPart}`
|
|
1842
|
+
);
|
|
1768
1843
|
} else {
|
|
1769
1844
|
const botIcon = themeText("\u{1F916}", "accent", true);
|
|
1770
1845
|
const labelText = themeText(" Sub-Agent: ", "muted", true);
|
|
1771
1846
|
const nameText = themeText(`${name}${runId}`, "chrome", true);
|
|
1772
1847
|
const statusText = themeText(` \xB7 ${statusSymbol} ${status}`, statusColor, true);
|
|
1773
|
-
const
|
|
1848
|
+
const ageText = agePart ? themeText(agePart, "chrome") : "";
|
|
1849
|
+
const progressText = progressPart ? themeText(progressPart, "chrome") : "";
|
|
1774
1850
|
const errorText = errPart ? themeText(errPart, "danger") : "";
|
|
1775
|
-
lines.push(`${botIcon}${labelText}${nameText}${statusText}${
|
|
1776
|
-
}
|
|
1777
|
-
let logLine;
|
|
1778
|
-
if (snapshot.logTail) {
|
|
1779
|
-
const trimmed = snapshot.logTail.trim();
|
|
1780
|
-
if (trimmed) {
|
|
1781
|
-
const parts = trimmed.split(/\r?\n/);
|
|
1782
|
-
logLine = parts[parts.length - 1];
|
|
1783
|
-
}
|
|
1784
|
-
} else if (snapshot.logLines && snapshot.logLines.length > 0) {
|
|
1785
|
-
logLine = snapshot.logLines[snapshot.logLines.length - 1];
|
|
1851
|
+
lines.push(`${botIcon}${labelText}${nameText}${statusText}${ageText}${progressText}${errorText}`);
|
|
1786
1852
|
}
|
|
1787
|
-
|
|
1788
|
-
|
|
1853
|
+
const detail = formatPanelDetail(snapshot);
|
|
1854
|
+
if (detail) {
|
|
1789
1855
|
if (!colorEnabled) {
|
|
1790
|
-
lines.push(` \u2514
|
|
1856
|
+
lines.push(` \u2514 ${detail}`);
|
|
1791
1857
|
} else {
|
|
1792
|
-
|
|
1793
|
-
const logTag = themeText("Log: ", "muted");
|
|
1794
|
-
const logContent = themeText(cleanLog, "chrome");
|
|
1795
|
-
lines.push(`${branchChar}${logTag}${logContent}`);
|
|
1858
|
+
lines.push(`${themeText(" \u2514 ", "muted")}${themeText(detail, "chrome")}`);
|
|
1796
1859
|
}
|
|
1797
1860
|
}
|
|
1798
1861
|
return lines;
|
|
@@ -3601,6 +3664,7 @@ function handleTuiInput(input, state) {
|
|
|
3601
3664
|
}
|
|
3602
3665
|
|
|
3603
3666
|
// packages/cli/tui/detectBackground.ts
|
|
3667
|
+
import { execFileSync } from "node:child_process";
|
|
3604
3668
|
import { ReadStream } from "node:tty";
|
|
3605
3669
|
var OSC11_QUERY = "\x1B]11;?\x07";
|
|
3606
3670
|
var OSC11_REPLY_RE = /\x1b\]11;rgb:([0-9a-f]+)\/([0-9a-f]+)\/([0-9a-f]+)/i;
|
|
@@ -3629,7 +3693,7 @@ function parseOsc11Background(reply) {
|
|
|
3629
3693
|
function isTerminalDevice(stream) {
|
|
3630
3694
|
return stream instanceof ReadStream;
|
|
3631
3695
|
}
|
|
3632
|
-
async function
|
|
3696
|
+
async function probeTerminalBackground(args = {}) {
|
|
3633
3697
|
const stdin = args.stdin ?? process.stdin;
|
|
3634
3698
|
const stdout = args.stdout ?? process.stdout;
|
|
3635
3699
|
const timeoutMs = args.timeoutMs ?? 100;
|
|
@@ -3672,6 +3736,48 @@ async function detectTerminalBackground(args = {}) {
|
|
|
3672
3736
|
timer = setTimeout(() => finish(null), timeoutMs);
|
|
3673
3737
|
});
|
|
3674
3738
|
}
|
|
3739
|
+
async function detectTerminalBackground(args = {}) {
|
|
3740
|
+
const r = await probeTerminalBackground(args);
|
|
3741
|
+
if (r || !args.allowSystemFallback) return r;
|
|
3742
|
+
const brightness = detectSystemBrightness(process.env, { allowSubprocess: true });
|
|
3743
|
+
return brightness ? { brightness, hex: "" } : null;
|
|
3744
|
+
}
|
|
3745
|
+
function detectSystemBrightness(env = process.env, options = {}) {
|
|
3746
|
+
const envResult = detectSystemBrightnessFromEnv(env);
|
|
3747
|
+
if (envResult) return envResult;
|
|
3748
|
+
const allowSubprocess = options.allowSubprocess ?? false;
|
|
3749
|
+
if (!allowSubprocess) {
|
|
3750
|
+
return null;
|
|
3751
|
+
}
|
|
3752
|
+
if (process.platform === "darwin") {
|
|
3753
|
+
try {
|
|
3754
|
+
const out = execFileSync("defaults", ["read", "-g", "AppleInterfaceStyle"], {
|
|
3755
|
+
encoding: "utf8",
|
|
3756
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
3757
|
+
timeout: 200
|
|
3758
|
+
}).trim();
|
|
3759
|
+
if (out.toLowerCase() === "dark") return "dark";
|
|
3760
|
+
} catch {
|
|
3761
|
+
}
|
|
3762
|
+
} else if (process.platform === "linux") {
|
|
3763
|
+
try {
|
|
3764
|
+
const out = execFileSync(
|
|
3765
|
+
"gsettings",
|
|
3766
|
+
["get", "org.gnome.desktop.interface", "color-scheme"],
|
|
3767
|
+
{
|
|
3768
|
+
encoding: "utf8",
|
|
3769
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
3770
|
+
timeout: 200
|
|
3771
|
+
}
|
|
3772
|
+
).trim();
|
|
3773
|
+
const val = out.toLowerCase();
|
|
3774
|
+
if (/(?:^|[\s\-_:])dark(?:$|[\s\-_:])/i.test(val)) return "dark";
|
|
3775
|
+
if (/(?:^|[\s\-_:])light(?:$|[\s\-_:])/i.test(val)) return "light";
|
|
3776
|
+
} catch {
|
|
3777
|
+
}
|
|
3778
|
+
}
|
|
3779
|
+
return null;
|
|
3780
|
+
}
|
|
3675
3781
|
|
|
3676
3782
|
// packages/core/chat/chatQueueMachine.ts
|
|
3677
3783
|
var initialChatQueueState = {
|
|
@@ -4767,6 +4873,47 @@ ${content}`;
|
|
|
4767
4873
|
return null;
|
|
4768
4874
|
}
|
|
4769
4875
|
var autoRouteByDialog = /* @__PURE__ */ new Map();
|
|
4876
|
+
function toOverlayStatus(status) {
|
|
4877
|
+
switch (status) {
|
|
4878
|
+
case "running":
|
|
4879
|
+
return "running";
|
|
4880
|
+
case "done":
|
|
4881
|
+
return "done";
|
|
4882
|
+
case "failed":
|
|
4883
|
+
case "timeout":
|
|
4884
|
+
case "killed":
|
|
4885
|
+
return "failed";
|
|
4886
|
+
case "orphaned":
|
|
4887
|
+
return "orphaned";
|
|
4888
|
+
default:
|
|
4889
|
+
return "running";
|
|
4890
|
+
}
|
|
4891
|
+
}
|
|
4892
|
+
function buildTuiRunOverlay(parentDialogId) {
|
|
4893
|
+
if (!parentDialogId) return null;
|
|
4894
|
+
let runs;
|
|
4895
|
+
try {
|
|
4896
|
+
runs = queryRunRecords({ parentDialogId }, { env: process.env }).runs;
|
|
4897
|
+
} catch {
|
|
4898
|
+
return null;
|
|
4899
|
+
}
|
|
4900
|
+
if (runs.length === 0) return null;
|
|
4901
|
+
let overlay = initialRunOverlayState;
|
|
4902
|
+
for (const run of runs) {
|
|
4903
|
+
overlay = reduceRunOverlay(overlay, {
|
|
4904
|
+
type: "run-state-chg",
|
|
4905
|
+
runId: run.runId,
|
|
4906
|
+
info: {
|
|
4907
|
+
name: run.agentName ?? run.agentKey ?? run.runId,
|
|
4908
|
+
status: toOverlayStatus(run.status),
|
|
4909
|
+
batchId: run.batchId,
|
|
4910
|
+
parentDialogId: run.parentDialogId,
|
|
4911
|
+
...run.status === "failed" && run.note ? { errorMessage: run.note } : {}
|
|
4912
|
+
}
|
|
4913
|
+
});
|
|
4914
|
+
}
|
|
4915
|
+
return buildOverlayPresentation(overlay);
|
|
4916
|
+
}
|
|
4770
4917
|
async function runAgentChat(scriptDir, state, message, env, output, agentRunner = runAgentTurn, options = {}) {
|
|
4771
4918
|
let effectiveAgentKey = state.agentKey;
|
|
4772
4919
|
let effectiveAgentName = state.agentName;
|
|
@@ -4890,6 +5037,7 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
|
|
|
4890
5037
|
serverUrl: state.serverUrl,
|
|
4891
5038
|
message: effectiveMessage,
|
|
4892
5039
|
continueDialogId: state.dialogId,
|
|
5040
|
+
...state.agentKey === DEFAULT_TUI_AGENT_KEY && env.NOLO_AUTO_ROUTE !== "0" ? { dialogAgentMode: "auto" } : { dialogAgentMode: "fixed" },
|
|
4893
5041
|
runtimeMode: state.runtimeMode,
|
|
4894
5042
|
localRuntimeCwd: process.cwd(),
|
|
4895
5043
|
scriptDir,
|
|
@@ -4903,14 +5051,21 @@ async function runAgentChat(scriptDir, state, message, env, output, agentRunner
|
|
|
4903
5051
|
...options.confirmDestructiveAction ? { confirmDestructiveAction: options.confirmDestructiveAction } : {},
|
|
4904
5052
|
...options.requestUserChoice ? { requestUserChoice: options.requestUserChoice } : {},
|
|
4905
5053
|
...options.abortSignal ? { abortSignal: options.abortSignal } : {},
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
4912
|
-
|
|
4913
|
-
|
|
5054
|
+
// Always inject a local adapter factory so background run delegations from
|
|
5055
|
+
// inside a TUI turn are stamped with the current conversation. Previously
|
|
5056
|
+
// this factory only existed when pasted text was present, which meant a
|
|
5057
|
+
// plain (no-paste) turn had no injection point for parentDialogId and the
|
|
5058
|
+
// run-overlay could never see runs spawned this turn.
|
|
5059
|
+
...options.pastedTextStore?.items.size ? { pastedTextStore: options.pastedTextStore } : {},
|
|
5060
|
+
localRuntimeAdapterFactory: (factoryEnv, factoryOptions) => createCliLocalRuntimeAdapter({
|
|
5061
|
+
env: factoryEnv,
|
|
5062
|
+
cwd: factoryOptions?.cwd ?? state.cwd,
|
|
5063
|
+
...options.pastedTextStore ? { pastedTextStore: options.pastedTextStore } : {},
|
|
5064
|
+
// Stamp spawned background runs with the current TUI dialog so the
|
|
5065
|
+
// run-overlay can filter runs belonging to this conversation.
|
|
5066
|
+
...state.dialogId ? { parentDialogId: state.dialogId } : {},
|
|
5067
|
+
...options.activityReporter ? { activityReporter: options.activityReporter } : {}
|
|
5068
|
+
}),
|
|
4914
5069
|
...options.activityReporter ? { activityReporter: options.activityReporter } : {},
|
|
4915
5070
|
...skillAllowedTools !== void 0 ? { allowedToolNames: skillAllowedTools } : {},
|
|
4916
5071
|
...contextBlockScopes.length > 0 ? { contextBlockScopes } : {}
|
|
@@ -5152,7 +5307,8 @@ async function startTuiWorkspace(options) {
|
|
|
5152
5307
|
}
|
|
5153
5308
|
const detected = await detectTerminalBackground({
|
|
5154
5309
|
stdin: input,
|
|
5155
|
-
stdout: output
|
|
5310
|
+
stdout: output,
|
|
5311
|
+
allowSystemFallback: true
|
|
5156
5312
|
});
|
|
5157
5313
|
if (detected) {
|
|
5158
5314
|
setActiveBrightness(detected.brightness);
|
|
@@ -5318,7 +5474,8 @@ async function startTuiWorkspace(options) {
|
|
|
5318
5474
|
if (!isInteractiveInput(input)) return;
|
|
5319
5475
|
const detected2 = await detectTerminalBackground({
|
|
5320
5476
|
stdin: input,
|
|
5321
|
-
stdout: output
|
|
5477
|
+
stdout: output,
|
|
5478
|
+
allowSystemFallback: true
|
|
5322
5479
|
});
|
|
5323
5480
|
if (sessionEnded) return;
|
|
5324
5481
|
if (!detected2) {
|
|
@@ -5349,6 +5506,7 @@ async function startTuiWorkspace(options) {
|
|
|
5349
5506
|
forcedStop = false;
|
|
5350
5507
|
turnEpoch += 1;
|
|
5351
5508
|
const myEpoch = turnEpoch;
|
|
5509
|
+
const turnParentDialogId = state.dialogId;
|
|
5352
5510
|
history.followBottom = true;
|
|
5353
5511
|
startTurn(history, "user");
|
|
5354
5512
|
appendToCurrentTurn(history, message);
|
|
@@ -5464,6 +5622,14 @@ async function startTuiWorkspace(options) {
|
|
|
5464
5622
|
emitCommandOutput(t("dialogNotSavedHint"));
|
|
5465
5623
|
}
|
|
5466
5624
|
}
|
|
5625
|
+
if (!wasAborted) {
|
|
5626
|
+
const overlayText = buildTuiRunOverlay(turnParentDialogId);
|
|
5627
|
+
if (overlayText) {
|
|
5628
|
+
emitCommandOutput(`
|
|
5629
|
+
\u4F60\u7684 run \u8FDB\u5C55\uFF1A
|
|
5630
|
+
${overlayText}`);
|
|
5631
|
+
}
|
|
5632
|
+
}
|
|
5467
5633
|
return { ok: !wasAborted, aborted: wasAborted };
|
|
5468
5634
|
} finally {
|
|
5469
5635
|
activityIndicator.stop();
|
|
@@ -5614,7 +5780,8 @@ async function startTuiWorkspace(options) {
|
|
|
5614
5780
|
if (result.action?.type === "theme-refresh") {
|
|
5615
5781
|
const detected2 = await detectTerminalBackground({
|
|
5616
5782
|
stdin: input,
|
|
5617
|
-
stdout: output
|
|
5783
|
+
stdout: output,
|
|
5784
|
+
allowSystemFallback: true
|
|
5618
5785
|
});
|
|
5619
5786
|
if (detected2 && applyDetectedBackground(detected2)) {
|
|
5620
5787
|
emitCommandOutput(t("themeRefreshed", detected2.brightness));
|
|
@@ -6330,6 +6497,7 @@ export {
|
|
|
6330
6497
|
applyOutputChunkToCurrentTurn,
|
|
6331
6498
|
applyScrollAction,
|
|
6332
6499
|
applyTerminalOutputToText,
|
|
6500
|
+
buildTuiRunOverlay,
|
|
6333
6501
|
countPhysicalLines,
|
|
6334
6502
|
createFixedInput,
|
|
6335
6503
|
createHistoryOutputStream,
|