nolo-cli 0.70.0-alpha.2 → 0.71.0-alpha.1
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-GOV2OHC7.js → _executeModel-2U22Y4CK.js} +10 -10
- package/{agentEmailCommands-YZQ2VVHY.js → agentEmailCommands-XY4P4ZT7.js} +9 -9
- package/{agentMachineCommands-UCYM5RRQ.js → agentMachineCommands-S2YSXV6Y.js} +1 -1
- package/{agentRecordCommands-TPBYOPMA.js → agentRecordCommands-JYKV3ZMU.js} +9 -9
- package/{agentRunCommand-XUMZAHKJ.js → agentRunCommand-2F7CHVL7.js} +9 -9
- package/{agentSlice-ZPODGT3P.js → agentSlice-QSZMNIII.js} +1 -1
- package/{chatQueueReduxAdapter-Z67OC4WO.js → chatQueueReduxAdapter-7MZUEBWA.js} +2 -2
- package/{chunk-FCCT2LU2.js → chunk-2PS2AR7L.js} +37 -18
- package/{chunk-F657NADX.js → chunk-AGM65FOG.js} +3 -3
- package/{chunk-AAWBX67U.js → chunk-CCWIBXO2.js} +5 -5
- package/{chunk-ZIUMSKK4.js → chunk-CME2Y2B5.js} +8 -8
- package/{chunk-BLCUMZNV.js → chunk-DT7P2EFC.js} +1 -1
- package/{chunk-BVHTMYTM.js → chunk-JYKNLVLH.js} +4 -4
- package/{chunk-SPQ7GSUX.js → chunk-ODYQBAKC.js} +26 -14
- package/{chunk-TVDZABBT.js → chunk-OEZGYEEU.js} +3 -3
- package/{chunk-3NVAU4WZ.js → chunk-RIPTVWQV.js} +1 -1
- package/{chunk-VLX45P4L.js → chunk-ROMO632F.js} +2 -2
- package/{chunk-DQAEUZSQ.js → chunk-SASHA6KO.js} +2 -2
- package/{chunk-YYLLD6H6.js → chunk-SIV74MEG.js} +2 -2
- package/{chunk-PWGW5JTK.js → chunk-VNBOAZHE.js} +1 -1
- package/{chunk-NUTDASGX.js → chunk-XZJLVAC5.js} +2 -2
- package/{contentThunks-VGXYTSKU.js → contentThunks-XG6FQXLX.js} +3 -3
- package/{createAgentAutomationAction-6YBZFLET.js → createAgentAutomationAction-K42OMFRL.js} +3 -3
- package/{createDialogAction-N7CTNKB5.js → createDialogAction-KPQENDVZ.js} +4 -4
- package/{createPageAction-RXOOVKVO.js → createPageAction-PBQEM53T.js} +3 -3
- package/{dialogSlice-NLSKRXBN.js → dialogSlice-X37YSBCE.js} +2 -2
- package/{docStore-CIAYE5WP.js → docStore-YCMK3TDZ.js} +1 -1
- package/{handleSendMessageAction-ENUNMW3Z.js → handleSendMessageAction-IYXYBDXA.js} +2 -2
- package/index.js +15 -15
- package/{machineCommands-APIJY7UA.js → machineCommands-TCHFLQQX.js} +9 -9
- package/{machineWsRunDispatch-42WKRDE7.js → machineWsRunDispatch-VJHFS6FY.js} +9 -9
- package/package.json +1 -1
- package/{readlineWorkspace-5HKD2RQP.js → readlineWorkspace-VBDFNMFW.js} +155 -40
- package/{runAgentClientLoop-A4OXYOCL.js → runAgentClientLoop-JZPQLKD3.js} +8 -8
- package/{streamAgentChatTurn-YHKNJEFR.js → streamAgentChatTurn-BMLM6G2H.js} +9 -9
- package/{tools-S5RSWF3R.js → tools-QD3SBHA3.js} +6 -6
- package/{updateDialogTitleAction-BU2VPE5B.js → updateDialogTitleAction-PVZ2NUKN.js} +3 -3
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
wrapTextToLines,
|
|
73
73
|
wrapTranscriptLine,
|
|
74
74
|
wrapTranscriptLineWithLayout
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-JYKNLVLH.js";
|
|
76
76
|
import "./chunk-S7Z2HMCN.js";
|
|
77
77
|
import {
|
|
78
78
|
listFavoriteAgentIdsAcrossServers,
|
|
@@ -96,7 +96,7 @@ import {
|
|
|
96
96
|
readTimestamp,
|
|
97
97
|
setCliLocale,
|
|
98
98
|
t
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-ODYQBAKC.js";
|
|
100
100
|
import "./chunk-GBPZKFYK.js";
|
|
101
101
|
import "./chunk-EADNWBAZ.js";
|
|
102
102
|
import {
|
|
@@ -134,12 +134,12 @@ import "./chunk-ATNTHIZI.js";
|
|
|
134
134
|
import "./chunk-JEXVIMYZ.js";
|
|
135
135
|
import {
|
|
136
136
|
prepareTools
|
|
137
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-XZJLVAC5.js";
|
|
138
138
|
import {
|
|
139
139
|
buildResponseGuidelines
|
|
140
140
|
} from "./chunk-EDKF7RX4.js";
|
|
141
141
|
import "./chunk-HS7MLR74.js";
|
|
142
|
-
import "./chunk-
|
|
142
|
+
import "./chunk-2PS2AR7L.js";
|
|
143
143
|
import "./chunk-5XTOKQLW.js";
|
|
144
144
|
import "./chunk-NF64D32W.js";
|
|
145
145
|
import "./chunk-3L2WKC3W.js";
|
|
@@ -165,18 +165,18 @@ import "./chunk-FZGV4FGK.js";
|
|
|
165
165
|
import "./chunk-MEYIRKDN.js";
|
|
166
166
|
import "./chunk-63W5N6P3.js";
|
|
167
167
|
import "./chunk-VF4K2QE6.js";
|
|
168
|
-
import "./chunk-
|
|
169
|
-
import "./chunk-
|
|
170
|
-
import "./chunk-
|
|
168
|
+
import "./chunk-SASHA6KO.js";
|
|
169
|
+
import "./chunk-ROMO632F.js";
|
|
170
|
+
import "./chunk-DT7P2EFC.js";
|
|
171
171
|
import "./chunk-ZJ7UHBJS.js";
|
|
172
172
|
import {
|
|
173
173
|
extractReferenceKeysFromMessage
|
|
174
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-CME2Y2B5.js";
|
|
175
175
|
import "./chunk-EVBFYPDC.js";
|
|
176
176
|
import "./chunk-HQUORJTM.js";
|
|
177
177
|
import "./chunk-YYLHWIW6.js";
|
|
178
178
|
import "./chunk-AGGIDPCZ.js";
|
|
179
|
-
import "./chunk-
|
|
179
|
+
import "./chunk-AGM65FOG.js";
|
|
180
180
|
import "./chunk-BJCWNHVU.js";
|
|
181
181
|
import "./chunk-5RGU3J7P.js";
|
|
182
182
|
import "./chunk-6YTOJY35.js";
|
|
@@ -6763,6 +6763,7 @@ function appendTurnBillingAudit(input) {
|
|
|
6763
6763
|
}
|
|
6764
6764
|
|
|
6765
6765
|
// packages/ai/tools/askChoiceState.ts
|
|
6766
|
+
var SKIPPED_ANSWER_MESSAGE = "\uFF08\u8DF3\u8FC7\uFF09";
|
|
6766
6767
|
function normalizeAskChoiceArgs(args) {
|
|
6767
6768
|
const blocking = args.blocking !== false;
|
|
6768
6769
|
if (Array.isArray(args.questions) && args.questions.length > 0) {
|
|
@@ -6849,7 +6850,8 @@ function createInitialAskChoiceState(questions, savedAnswers) {
|
|
|
6849
6850
|
};
|
|
6850
6851
|
}),
|
|
6851
6852
|
phase: savedAnswers?.phase ?? (hasSaved ? "submitted" : "active"),
|
|
6852
|
-
validationAttempted: false
|
|
6853
|
+
validationAttempted: false,
|
|
6854
|
+
answerSignal: null
|
|
6853
6855
|
};
|
|
6854
6856
|
}
|
|
6855
6857
|
function askChoiceReducer(state, action) {
|
|
@@ -6877,7 +6879,7 @@ function askChoiceReducer(state, action) {
|
|
|
6877
6879
|
if (state.phase !== "active") return state;
|
|
6878
6880
|
switch (action.type) {
|
|
6879
6881
|
case "CANCEL":
|
|
6880
|
-
return { ...state, phase: "cancelled" };
|
|
6882
|
+
return { ...state, phase: "cancelled", answerSignal: null };
|
|
6881
6883
|
case "SUBMIT": {
|
|
6882
6884
|
const firstUnanswered = findFirstUnansweredIndex(state);
|
|
6883
6885
|
if (firstUnanswered !== -1) {
|
|
@@ -6887,7 +6889,12 @@ function askChoiceReducer(state, action) {
|
|
|
6887
6889
|
validationAttempted: true
|
|
6888
6890
|
};
|
|
6889
6891
|
}
|
|
6890
|
-
return {
|
|
6892
|
+
return {
|
|
6893
|
+
...state,
|
|
6894
|
+
phase: "submitted",
|
|
6895
|
+
validationAttempted: false,
|
|
6896
|
+
answerSignal: null
|
|
6897
|
+
};
|
|
6891
6898
|
}
|
|
6892
6899
|
case "SWITCH_TAB": {
|
|
6893
6900
|
const idx = clamp(action.index, 0, state.questions.length - 1);
|
|
@@ -6932,8 +6939,9 @@ function askChoiceReducer(state, action) {
|
|
|
6932
6939
|
}
|
|
6933
6940
|
// The one explicit "choose this option" action, addressed by choice id so
|
|
6934
6941
|
// that click / tap handlers on every platform share the same behaviour as
|
|
6935
|
-
// cursor-driven keys. Multi-select toggles
|
|
6936
|
-
//
|
|
6942
|
+
// cursor-driven keys. Multi-select toggles; a single-select pick lands
|
|
6943
|
+
// immediately (advance to the next unanswered question, or emit the
|
|
6944
|
+
// `complete` signal so the renderer persists and sends).
|
|
6937
6945
|
case "SELECT_CHOICE": {
|
|
6938
6946
|
const qs = state.questionStates[state.activeIndex];
|
|
6939
6947
|
const q = state.questions[state.activeIndex];
|
|
@@ -6950,16 +6958,19 @@ function askChoiceReducer(state, action) {
|
|
|
6950
6958
|
otherText: "",
|
|
6951
6959
|
otherFocused: false
|
|
6952
6960
|
};
|
|
6953
|
-
|
|
6954
|
-
newQs[state.activeIndex] = {
|
|
6955
|
-
...qs,
|
|
6956
|
-
cursorIndex: choiceIndex,
|
|
6957
|
-
pickedId: action.choiceId,
|
|
6958
|
-
otherText: "",
|
|
6959
|
-
otherFocused: false
|
|
6960
|
-
};
|
|
6961
|
+
return { ...state, questionStates: newQs, validationAttempted: false };
|
|
6961
6962
|
}
|
|
6962
|
-
|
|
6963
|
+
newQs[state.activeIndex] = {
|
|
6964
|
+
...qs,
|
|
6965
|
+
cursorIndex: choiceIndex,
|
|
6966
|
+
pickedId: action.choiceId,
|
|
6967
|
+
otherText: "",
|
|
6968
|
+
otherFocused: false
|
|
6969
|
+
};
|
|
6970
|
+
return landSingleSelectAnswer(
|
|
6971
|
+
{ ...state, questionStates: newQs, validationAttempted: false },
|
|
6972
|
+
state.activeIndex
|
|
6973
|
+
);
|
|
6963
6974
|
}
|
|
6964
6975
|
case "SELECT_AT_CURSOR": {
|
|
6965
6976
|
const qs = state.questionStates[state.activeIndex];
|
|
@@ -6974,6 +6985,47 @@ function askChoiceReducer(state, action) {
|
|
|
6974
6985
|
if (!choiceId) return state;
|
|
6975
6986
|
return askChoiceReducer(state, { type: "SELECT_CHOICE", choiceId });
|
|
6976
6987
|
}
|
|
6988
|
+
// Enter in the Other input: identical landing semantics to a single-select
|
|
6989
|
+
// pick, but only when the row carries an actual answer. Multi-select
|
|
6990
|
+
// questions keep the explicit submit — Enter there is a no-op (renderers
|
|
6991
|
+
// blur the input themselves) so toggling stays a purely local edit.
|
|
6992
|
+
case "COMMIT_OTHER": {
|
|
6993
|
+
const qs = state.questionStates[state.activeIndex];
|
|
6994
|
+
const q = state.questions[state.activeIndex];
|
|
6995
|
+
if (q.multiSelect || qs.otherText.trim().length === 0) return state;
|
|
6996
|
+
const newQs = [...state.questionStates];
|
|
6997
|
+
newQs[state.activeIndex] = { ...qs, otherFocused: false };
|
|
6998
|
+
return landSingleSelectAnswer(
|
|
6999
|
+
{ ...state, questionStates: newQs, validationAttempted: false },
|
|
7000
|
+
state.activeIndex
|
|
7001
|
+
);
|
|
7002
|
+
}
|
|
7003
|
+
// Explicit skip of the current optional, still-unanswered question.
|
|
7004
|
+
// Renderers only expose it there; the reducer also refuses required or
|
|
7005
|
+
// already-answered questions so a skip can never bypass a required answer.
|
|
7006
|
+
case "SKIP_CURRENT": {
|
|
7007
|
+
const q = state.questions[state.activeIndex];
|
|
7008
|
+
const qs = state.questionStates[state.activeIndex];
|
|
7009
|
+
if (!q || !qs || q.required || questionHasAnswer(q, qs)) return state;
|
|
7010
|
+
const nextIndex = findNextUnansweredIndex(state, state.activeIndex);
|
|
7011
|
+
if (nextIndex !== -1) {
|
|
7012
|
+
return {
|
|
7013
|
+
...state,
|
|
7014
|
+
activeIndex: nextIndex,
|
|
7015
|
+
validationAttempted: false,
|
|
7016
|
+
answerSignal: {
|
|
7017
|
+
kind: "advance",
|
|
7018
|
+
fromIndex: state.activeIndex,
|
|
7019
|
+
toIndex: nextIndex
|
|
7020
|
+
}
|
|
7021
|
+
};
|
|
7022
|
+
}
|
|
7023
|
+
return {
|
|
7024
|
+
...state,
|
|
7025
|
+
validationAttempted: false,
|
|
7026
|
+
answerSignal: { kind: "complete", fromIndex: state.activeIndex }
|
|
7027
|
+
};
|
|
7028
|
+
}
|
|
6977
7029
|
case "FOCUS_OTHER": {
|
|
6978
7030
|
const qs = state.questionStates[state.activeIndex];
|
|
6979
7031
|
const newQs = [...state.questionStates];
|
|
@@ -7002,17 +7054,48 @@ function askChoiceReducer(state, action) {
|
|
|
7002
7054
|
return state;
|
|
7003
7055
|
}
|
|
7004
7056
|
}
|
|
7057
|
+
function landSingleSelectAnswer(state, fromIndex) {
|
|
7058
|
+
const nextIndex = findNextUnansweredIndex(state, fromIndex);
|
|
7059
|
+
if (nextIndex !== -1) {
|
|
7060
|
+
return {
|
|
7061
|
+
...state,
|
|
7062
|
+
activeIndex: nextIndex,
|
|
7063
|
+
answerSignal: { kind: "advance", fromIndex, toIndex: nextIndex }
|
|
7064
|
+
};
|
|
7065
|
+
}
|
|
7066
|
+
if (formRequiresExplicitSubmit(state.questions)) {
|
|
7067
|
+
return { ...state, answerSignal: null };
|
|
7068
|
+
}
|
|
7069
|
+
return { ...state, answerSignal: { kind: "complete", fromIndex } };
|
|
7070
|
+
}
|
|
7071
|
+
function findNextUnansweredIndex(state, fromIndex) {
|
|
7072
|
+
const total = state.questions.length;
|
|
7073
|
+
for (let step = 1; step < total; step += 1) {
|
|
7074
|
+
const index = (fromIndex + step) % total;
|
|
7075
|
+
const questionState = state.questionStates[index];
|
|
7076
|
+
if (!questionState || !isQuestionAnswered(state.questions[index], questionState)) {
|
|
7077
|
+
return index;
|
|
7078
|
+
}
|
|
7079
|
+
}
|
|
7080
|
+
return -1;
|
|
7081
|
+
}
|
|
7082
|
+
function formRequiresExplicitSubmit(questions) {
|
|
7083
|
+
return questions.some((q) => q.multiSelect);
|
|
7084
|
+
}
|
|
7005
7085
|
function findFirstUnansweredIndex(state) {
|
|
7006
7086
|
return state.questions.findIndex(
|
|
7007
7087
|
(q, i) => !isQuestionAnswered(q, state.questionStates[i])
|
|
7008
7088
|
);
|
|
7009
7089
|
}
|
|
7010
|
-
function
|
|
7011
|
-
if (!q.required) return true;
|
|
7090
|
+
function questionHasAnswer(q, qs) {
|
|
7012
7091
|
const hasOther = q.allowOther && qs.otherText.trim().length > 0;
|
|
7013
7092
|
const hasSelection = q.multiSelect ? qs.selectedIds.length > 0 : qs.pickedId !== null;
|
|
7014
7093
|
return hasOther || hasSelection;
|
|
7015
7094
|
}
|
|
7095
|
+
function isQuestionAnswered(q, qs) {
|
|
7096
|
+
if (!q.required) return true;
|
|
7097
|
+
return questionHasAnswer(q, qs);
|
|
7098
|
+
}
|
|
7016
7099
|
function buildAskChoiceResult(state) {
|
|
7017
7100
|
if (state.phase === "cancelled") return { kind: "cancelled" };
|
|
7018
7101
|
if (state.phase !== "submitted") return { kind: "cancelled" };
|
|
@@ -7031,11 +7114,13 @@ function buildAskChoiceResult(state) {
|
|
|
7031
7114
|
}
|
|
7032
7115
|
}
|
|
7033
7116
|
}
|
|
7117
|
+
const userMessage = parts.join("\n");
|
|
7118
|
+
const skipped = userMessage.length === 0 && !q.required;
|
|
7034
7119
|
return {
|
|
7035
7120
|
questionId: q.id,
|
|
7036
7121
|
selectedIds,
|
|
7037
7122
|
otherText,
|
|
7038
|
-
userMessage:
|
|
7123
|
+
userMessage: skipped ? SKIPPED_ANSWER_MESSAGE : userMessage
|
|
7039
7124
|
};
|
|
7040
7125
|
});
|
|
7041
7126
|
return { kind: "submitted", answers };
|
|
@@ -7078,11 +7163,25 @@ function renderTabBar(state, colorEnabled) {
|
|
|
7078
7163
|
}
|
|
7079
7164
|
return colorEnabled ? themeText(` ${label} `, "muted", colorEnabled) : ` ${label} `;
|
|
7080
7165
|
});
|
|
7081
|
-
const
|
|
7166
|
+
const actionRow = resolveAskChoiceActionRow(state);
|
|
7167
|
+
const submitLabel = actionRow ? `${actionRow.label} \u2193` : null;
|
|
7168
|
+
if (!submitLabel) return tabs.join(" ");
|
|
7082
7169
|
return tabs.join(" ") + " " + (colorEnabled ? themeText(submitLabel, "chrome", colorEnabled) : submitLabel);
|
|
7083
7170
|
}
|
|
7084
|
-
function
|
|
7085
|
-
const
|
|
7171
|
+
function resolveAskChoiceActionRow(state) {
|
|
7172
|
+
const q = state.questions[state.activeIndex];
|
|
7173
|
+
const qs = state.questionStates[state.activeIndex];
|
|
7174
|
+
if (!q || !qs) return null;
|
|
7175
|
+
if (!q.required && !questionHasAnswer(q, qs)) {
|
|
7176
|
+
return { kind: "skip", label: t("askChoiceSkipRow") };
|
|
7177
|
+
}
|
|
7178
|
+
if (formRequiresExplicitSubmit(state.questions)) {
|
|
7179
|
+
return { kind: "submit", label: t("askChoiceSubmitRow") };
|
|
7180
|
+
}
|
|
7181
|
+
return null;
|
|
7182
|
+
}
|
|
7183
|
+
function renderFooter(actionRow, colorEnabled) {
|
|
7184
|
+
const hints = actionRow?.kind === "skip" ? t("askChoiceFooterSkip") : actionRow?.kind === "submit" ? t("askChoiceFooterMulti") : t("askChoiceFooterSingle");
|
|
7086
7185
|
return colorEnabled ? themeText(` ${hints}`, "chrome", colorEnabled) : ` ${hints}`;
|
|
7087
7186
|
}
|
|
7088
7187
|
function otherRowPrefix(index) {
|
|
@@ -7093,6 +7192,7 @@ function renderAskChoiceFrame(state, options) {
|
|
|
7093
7192
|
const submitFocused = options?.submitFocused === true;
|
|
7094
7193
|
const q = state.questions[state.activeIndex];
|
|
7095
7194
|
const qs = state.questionStates[state.activeIndex];
|
|
7195
|
+
const actionRow = resolveAskChoiceActionRow(state);
|
|
7096
7196
|
const lines = [];
|
|
7097
7197
|
let otherCursor = null;
|
|
7098
7198
|
lines.push(renderDialogTitle(t("askChoiceTitle")));
|
|
@@ -7119,6 +7219,10 @@ function renderAskChoiceFrame(state, options) {
|
|
|
7119
7219
|
lines.push(
|
|
7120
7220
|
colorEnabled ? themeText(` ${t("askChoiceHintMulti")}`, "muted", colorEnabled) : ` ${t("askChoiceHintMulti")}`
|
|
7121
7221
|
);
|
|
7222
|
+
} else if (actionRow?.kind === "skip") {
|
|
7223
|
+
lines.push(
|
|
7224
|
+
colorEnabled ? themeText(` ${t("askChoiceHintOptional")}`, "muted", colorEnabled) : ` ${t("askChoiceHintOptional")}`
|
|
7225
|
+
);
|
|
7122
7226
|
} else {
|
|
7123
7227
|
lines.push(
|
|
7124
7228
|
colorEnabled ? themeText(` ${t("askChoiceHintSingle")}`, "muted", colorEnabled) : ` ${t("askChoiceHintSingle")}`
|
|
@@ -7169,14 +7273,16 @@ function renderAskChoiceFrame(state, options) {
|
|
|
7169
7273
|
if (window.end < totalRows) {
|
|
7170
7274
|
lines.push(renderOverflowBelow(totalRows - window.end));
|
|
7171
7275
|
}
|
|
7172
|
-
|
|
7173
|
-
|
|
7174
|
-
|
|
7175
|
-
|
|
7176
|
-
|
|
7177
|
-
|
|
7276
|
+
if (actionRow) {
|
|
7277
|
+
lines.push(
|
|
7278
|
+
renderDialogRow({
|
|
7279
|
+
label: actionRow.label,
|
|
7280
|
+
focused: submitFocused
|
|
7281
|
+
})
|
|
7282
|
+
);
|
|
7283
|
+
}
|
|
7178
7284
|
lines.push("");
|
|
7179
|
-
lines.push(renderFooter(
|
|
7285
|
+
lines.push(renderFooter(actionRow, colorEnabled));
|
|
7180
7286
|
return { text: lines.join("\n"), otherCursor };
|
|
7181
7287
|
}
|
|
7182
7288
|
async function runAskChoiceDialog(args) {
|
|
@@ -7263,6 +7369,8 @@ async function runAskChoiceDialog(args) {
|
|
|
7263
7369
|
const qs = state.questionStates[state.activeIndex];
|
|
7264
7370
|
const q = state.questions[state.activeIndex];
|
|
7265
7371
|
const isOtherRow = qs.cursorIndex >= q.choices.length;
|
|
7372
|
+
const actionRow = resolveAskChoiceActionRow(state);
|
|
7373
|
+
if (!actionRow) submitFocused = false;
|
|
7266
7374
|
if (sequence === KEY_SHIFT_TAB) {
|
|
7267
7375
|
action = { type: "PREV_TAB" };
|
|
7268
7376
|
} else if (sequence === KEY_TAB) {
|
|
@@ -7282,6 +7390,7 @@ async function runAskChoiceDialog(args) {
|
|
|
7282
7390
|
continue;
|
|
7283
7391
|
}
|
|
7284
7392
|
if (qs.cursorIndex >= maxRowIndex) {
|
|
7393
|
+
if (!actionRow) continue;
|
|
7285
7394
|
submitFocused = true;
|
|
7286
7395
|
state = askChoiceReducer(state, { type: "MOVE_CURSOR", delta: 1 });
|
|
7287
7396
|
paint();
|
|
@@ -7289,7 +7398,8 @@ async function runAskChoiceDialog(args) {
|
|
|
7289
7398
|
}
|
|
7290
7399
|
action = { type: "MOVE_CURSOR", delta: 1 };
|
|
7291
7400
|
} else if (sequence === KEY_CTRL_S) {
|
|
7292
|
-
|
|
7401
|
+
if (!actionRow) continue;
|
|
7402
|
+
action = actionRow.kind === "skip" ? { type: "SKIP_CURRENT" } : { type: "SUBMIT" };
|
|
7293
7403
|
} else if (sequence === KEY_SPACE) {
|
|
7294
7404
|
if (submitFocused) {
|
|
7295
7405
|
continue;
|
|
@@ -7306,9 +7416,9 @@ async function runAskChoiceDialog(args) {
|
|
|
7306
7416
|
}
|
|
7307
7417
|
} else if (isSubmit(sequence)) {
|
|
7308
7418
|
if (submitFocused) {
|
|
7309
|
-
action = { type: "SUBMIT" };
|
|
7419
|
+
action = actionRow?.kind === "skip" ? { type: "SKIP_CURRENT" } : { type: "SUBMIT" };
|
|
7310
7420
|
} else if (qs.otherFocused) {
|
|
7311
|
-
action = { type: "BLUR_OTHER" };
|
|
7421
|
+
action = !q.multiSelect && qs.otherText.trim() ? { type: "COMMIT_OTHER" } : { type: "BLUR_OTHER" };
|
|
7312
7422
|
} else if (isOtherRow) {
|
|
7313
7423
|
action = { type: "FOCUS_OTHER" };
|
|
7314
7424
|
} else {
|
|
@@ -7349,6 +7459,9 @@ async function runAskChoiceDialog(args) {
|
|
|
7349
7459
|
}
|
|
7350
7460
|
if (action) {
|
|
7351
7461
|
state = askChoiceReducer(state, action);
|
|
7462
|
+
if (state.phase === "active" && state.answerSignal?.kind === "complete") {
|
|
7463
|
+
state = askChoiceReducer(state, { type: "SUBMIT" });
|
|
7464
|
+
}
|
|
7352
7465
|
if (state.phase !== "active") break;
|
|
7353
7466
|
submitFocused = false;
|
|
7354
7467
|
paint();
|
|
@@ -7376,7 +7489,9 @@ async function runAskChoiceDialog(args) {
|
|
|
7376
7489
|
return {
|
|
7377
7490
|
kind: "selected",
|
|
7378
7491
|
userMessage: a.userMessage,
|
|
7379
|
-
|
|
7492
|
+
// Fallback covers the skip-only shape: no label/other text, but the
|
|
7493
|
+
// outbound message carries the SKIPPED marker.
|
|
7494
|
+
label: labels.join(", ") || a.otherText || a.userMessage || ""
|
|
7380
7495
|
};
|
|
7381
7496
|
}
|
|
7382
7497
|
return {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fetchAgentContexts
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RIPTVWQV.js";
|
|
4
4
|
import {
|
|
5
5
|
generateRequestBody,
|
|
6
6
|
mergeReferences,
|
|
7
7
|
performFetchRequest,
|
|
8
8
|
sanitizeOutboundBody
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OEZGYEEU.js";
|
|
10
10
|
import "./chunk-EDKF7RX4.js";
|
|
11
11
|
import "./chunk-HS7MLR74.js";
|
|
12
12
|
import {
|
|
13
13
|
findToolExecutor,
|
|
14
14
|
getToolResultErrorData
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2PS2AR7L.js";
|
|
16
16
|
import "./chunk-5XTOKQLW.js";
|
|
17
17
|
import "./chunk-NF64D32W.js";
|
|
18
18
|
import "./chunk-3L2WKC3W.js";
|
|
@@ -28,18 +28,18 @@ import "./chunk-FZGV4FGK.js";
|
|
|
28
28
|
import "./chunk-MEYIRKDN.js";
|
|
29
29
|
import "./chunk-63W5N6P3.js";
|
|
30
30
|
import "./chunk-VF4K2QE6.js";
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-SASHA6KO.js";
|
|
32
|
+
import "./chunk-ROMO632F.js";
|
|
33
|
+
import "./chunk-DT7P2EFC.js";
|
|
34
34
|
import "./chunk-ZJ7UHBJS.js";
|
|
35
35
|
import {
|
|
36
36
|
updateTokensAction
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-CME2Y2B5.js";
|
|
38
38
|
import "./chunk-EVBFYPDC.js";
|
|
39
39
|
import "./chunk-HQUORJTM.js";
|
|
40
40
|
import "./chunk-YYLHWIW6.js";
|
|
41
41
|
import "./chunk-AGGIDPCZ.js";
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-AGM65FOG.js";
|
|
43
43
|
import "./chunk-BJCWNHVU.js";
|
|
44
44
|
import "./chunk-5RGU3J7P.js";
|
|
45
45
|
import "./chunk-6YTOJY35.js";
|
|
@@ -16,11 +16,11 @@ import {
|
|
|
16
16
|
readStreamChunk,
|
|
17
17
|
sendOpenAICompletionsRequest,
|
|
18
18
|
updateTotalUsage
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-CCWIBXO2.js";
|
|
20
20
|
import "./chunk-JEXVIMYZ.js";
|
|
21
21
|
import {
|
|
22
22
|
prepareTools
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-XZJLVAC5.js";
|
|
24
24
|
import {
|
|
25
25
|
INVALID_TOOL_ARGS_REPLACEMENT,
|
|
26
26
|
buildInvalidToolCallSelfHealResult,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
sanitizeOutboundResponsesInput,
|
|
39
39
|
selectResponsesConversationState,
|
|
40
40
|
updateResponsesConversationState
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-OEZGYEEU.js";
|
|
42
42
|
import "./chunk-EDKF7RX4.js";
|
|
43
43
|
import "./chunk-HS7MLR74.js";
|
|
44
44
|
import {
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
getAllToolRuns,
|
|
47
47
|
resolveAgentRecommendedSkillNames,
|
|
48
48
|
resolveAgentRequiredPackIds
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-2PS2AR7L.js";
|
|
50
50
|
import "./chunk-5XTOKQLW.js";
|
|
51
51
|
import "./chunk-NF64D32W.js";
|
|
52
52
|
import "./chunk-3L2WKC3W.js";
|
|
@@ -80,11 +80,11 @@ import "./chunk-63W5N6P3.js";
|
|
|
80
80
|
import "./chunk-VF4K2QE6.js";
|
|
81
81
|
import {
|
|
82
82
|
getDocState
|
|
83
|
-
} from "./chunk-
|
|
84
|
-
import "./chunk-
|
|
83
|
+
} from "./chunk-SASHA6KO.js";
|
|
84
|
+
import "./chunk-ROMO632F.js";
|
|
85
85
|
import {
|
|
86
86
|
getTableState
|
|
87
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-DT7P2EFC.js";
|
|
88
88
|
import {
|
|
89
89
|
getCurrentSpaceId,
|
|
90
90
|
getCurrentSpaceIdRaw,
|
|
@@ -109,12 +109,12 @@ import {
|
|
|
109
109
|
shouldBlockForGptPro,
|
|
110
110
|
updateTokens,
|
|
111
111
|
updateToolMessage
|
|
112
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-CME2Y2B5.js";
|
|
113
113
|
import "./chunk-EVBFYPDC.js";
|
|
114
114
|
import "./chunk-HQUORJTM.js";
|
|
115
115
|
import "./chunk-YYLHWIW6.js";
|
|
116
116
|
import "./chunk-AGGIDPCZ.js";
|
|
117
|
-
import "./chunk-
|
|
117
|
+
import "./chunk-AGM65FOG.js";
|
|
118
118
|
import {
|
|
119
119
|
createCliChatTurnStream,
|
|
120
120
|
getCliChatSession,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
toolQueryFunc,
|
|
9
9
|
toolQueryFunctionSchema,
|
|
10
10
|
toolRegistry
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2PS2AR7L.js";
|
|
12
12
|
import "./chunk-5XTOKQLW.js";
|
|
13
13
|
import "./chunk-NF64D32W.js";
|
|
14
14
|
import "./chunk-3L2WKC3W.js";
|
|
@@ -24,16 +24,16 @@ import "./chunk-FZGV4FGK.js";
|
|
|
24
24
|
import "./chunk-MEYIRKDN.js";
|
|
25
25
|
import "./chunk-63W5N6P3.js";
|
|
26
26
|
import "./chunk-VF4K2QE6.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-SASHA6KO.js";
|
|
28
|
+
import "./chunk-ROMO632F.js";
|
|
29
|
+
import "./chunk-DT7P2EFC.js";
|
|
30
30
|
import "./chunk-ZJ7UHBJS.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-CME2Y2B5.js";
|
|
32
32
|
import "./chunk-EVBFYPDC.js";
|
|
33
33
|
import "./chunk-HQUORJTM.js";
|
|
34
34
|
import "./chunk-YYLHWIW6.js";
|
|
35
35
|
import "./chunk-AGGIDPCZ.js";
|
|
36
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-AGM65FOG.js";
|
|
37
37
|
import "./chunk-BJCWNHVU.js";
|
|
38
38
|
import "./chunk-5RGU3J7P.js";
|
|
39
39
|
import "./chunk-6YTOJY35.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
updateContentTitle
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DT7P2EFC.js";
|
|
4
4
|
import "./chunk-ZJ7UHBJS.js";
|
|
5
5
|
import {
|
|
6
6
|
isAssistantToolStub,
|
|
7
7
|
selectAllMsgs
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-CME2Y2B5.js";
|
|
9
9
|
import {
|
|
10
10
|
BUILTIN_TITLE_LLM_CONFIG
|
|
11
11
|
} from "./chunk-EVBFYPDC.js";
|
|
@@ -14,7 +14,7 @@ import "./chunk-YYLHWIW6.js";
|
|
|
14
14
|
import "./chunk-AGGIDPCZ.js";
|
|
15
15
|
import {
|
|
16
16
|
runLlm
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-AGM65FOG.js";
|
|
18
18
|
import "./chunk-BJCWNHVU.js";
|
|
19
19
|
import "./chunk-5RGU3J7P.js";
|
|
20
20
|
import "./chunk-6YTOJY35.js";
|