@quantiya/codevibe-core 2.0.82 → 2.0.83

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.
@@ -33981,8 +33981,12 @@ function InputBar(props) {
33981
33981
  let completed = pick2.name + " ";
33982
33982
  return commit(completed, completed.length), setDism(!0), setHl(0), !0;
33983
33983
  }, [liveSuggestions, commit, setDism, setHl]), doSubmit = React18.useCallback(() => {
33984
- if (gatePromptMode?.kind === "submitting") return;
33985
33984
  let text2 = valueRef.current;
33985
+ if (gatePromptMode?.kind === "submitting") {
33986
+ let exit = text2.trim() === "/exit";
33987
+ commit("", 0), setErrorHint(exit ? null : "Decision pending \u2014 only /exit is available"), exit && props.onSubmit("/exit");
33988
+ return;
33989
+ }
33986
33990
  if (gatePromptMode?.kind === "awaiting-number") {
33987
33991
  let trimmed = text2.trim();
33988
33992
  if (trimmed.startsWith("/")) {
@@ -34058,7 +34062,7 @@ function InputBar(props) {
34058
34062
  [gatePromptMode, commit, setHl, setDism]
34059
34063
  ), handleKey = React18.useCallback(
34060
34064
  (input, key) => {
34061
- if (key.ctrl) return;
34065
+ if (key.ctrl || gatePromptMode?.kind === "submitting" && key.escape) return;
34062
34066
  let live = liveSuggestions();
34063
34067
  if (live.length > 0) {
34064
34068
  let n = live.length;
@@ -34104,13 +34108,11 @@ function InputBar(props) {
34104
34108
  }
34105
34109
  input && input.length > 0 && applyPaste(input);
34106
34110
  },
34107
- [liveSuggestions, completeToHighlighted, doSubmit, commit, applyPaste, setHl, setDism]
34108
- ), latestRef = React18.useRef({ handleKey, applyPaste, gatePromptMode });
34109
- latestRef.current = { handleKey, applyPaste, gatePromptMode };
34111
+ [liveSuggestions, completeToHighlighted, doSubmit, commit, applyPaste, setHl, setDism, gatePromptMode]
34112
+ ), latestRef = React18.useRef({ handleKey, applyPaste });
34113
+ latestRef.current = { handleKey, applyPaste };
34110
34114
  let onRawChunk = React18.useCallback((chunk) => {
34111
- let { handleKey: hk, applyPaste: fp, gatePromptMode: mode } = latestRef.current;
34112
- if (mode?.kind === "submitting") return;
34113
- let buf = endTailRef.current + chunk;
34115
+ let { handleKey: hk, applyPaste: fp } = latestRef.current, buf = endTailRef.current + chunk;
34114
34116
  endTailRef.current = "";
34115
34117
  let i = 0;
34116
34118
  for (; i < buf.length; )
@@ -34146,7 +34148,7 @@ function InputBar(props) {
34146
34148
  pasteActiveRef.current = !0, pasteBufRef.current = "", i = s + PASTE_START.length;
34147
34149
  }
34148
34150
  }, []);
34149
- if (React18.useEffect(() => {
34151
+ React18.useEffect(() => {
34150
34152
  let emitter = internal_eventEmitter;
34151
34153
  if (emitter)
34152
34154
  return emitter.on("input", onRawChunk), () => {
@@ -34157,24 +34159,9 @@ function InputBar(props) {
34157
34159
  origin2 && setRowOrigin(
34158
34160
  (prev) => prev && prev.left === origin2.left && prev.top === origin2.top ? prev : origin2
34159
34161
  );
34160
- }), gatePromptMode?.kind === "submitting")
34161
- return setCursorPosition(void 0), React18.createElement(
34162
- Box,
34163
- {
34164
- flexDirection: "row",
34165
- borderStyle: "round",
34166
- borderColor: getAccent(),
34167
- paddingX: 1
34168
- },
34169
- React18.createElement(Text, { color: getAccent() }, "\u276F "),
34170
- React18.createElement(
34171
- Text,
34172
- { dimColor: !0, italic: !0 },
34173
- "submitting\u2026"
34174
- )
34175
- );
34162
+ });
34176
34163
  let placeholder = props.placeholder ?? "";
34177
- gatePromptMode?.kind === "awaiting-number" ? placeholder = gatePromptMode.taskLabel ? `Type a number 1..${gatePromptMode.maxOption} \xB7 ${gatePromptMode.taskLabel}` : `Type a number 1..${gatePromptMode.maxOption}` : gatePromptMode?.kind === "awaiting-notes" && (placeholder = "Type your notes + Enter");
34164
+ gatePromptMode?.kind === "awaiting-number" ? placeholder = gatePromptMode.taskLabel ? `Type a number 1..${gatePromptMode.maxOption} \xB7 ${gatePromptMode.taskLabel}` : `Type a number 1..${gatePromptMode.maxOption}` : gatePromptMode?.kind === "awaiting-notes" ? placeholder = "Type your notes + Enter" : gatePromptMode?.kind === "submitting" && (placeholder = "submitting\u2026 \xB7 /exit to leave");
34178
34165
  let shown = displayValue(value), cur = clampCursor2(cursor, shown.length), valueWidth = Math.max(1, columns - 6), win = computeInputWindow(shown, cur, valueWidth, scrollRef.current);
34179
34166
  scrollRef.current = win.scroll;
34180
34167
  let origin = rowOrigin ?? { left: 0, top: 0 };
@@ -83102,7 +83089,14 @@ async function runOrchestrationShellSession(args) {
83102
83089
  {
83103
83090
  receiveDesktopEvents: !0,
83104
83091
  onSupervisionEvent: (event) => {
83105
- classifyDurableGateResolution(event, args.session.sessionId) && subscribedEventDispatcher(event);
83092
+ if (event.sessionId === args.session.sessionId) {
83093
+ if (event.type === "INTERACTIVE_PROMPT") {
83094
+ if (event.source !== "DESKTOP" || event.emittedBy !== "SYSTEM" || event.writerAuthenticated !== !1) return;
83095
+ subscribedEventDispatcher(event);
83096
+ return;
83097
+ }
83098
+ classifyDurableGateResolution(event, args.session.sessionId) && subscribedEventDispatcher(event);
83099
+ }
83106
83100
  },
83107
83101
  onSubscribed: (isReconnect) => {
83108
83102
  initialCatchUpStarted = !0, catchUpDurableGateTimeline(isReconnect).then(() => settleInitialSubscription()).catch((error) => {
@@ -108,7 +108,7 @@ export interface InputBarProps {
108
108
  /** Initial value (used for history recall). */
109
109
  initialValue?: string;
110
110
  /**
111
- * CP-8 min Wave 1B. When non-null, restricts/disables input per the
111
+ * CP-8 min Wave 1B. When non-null, restricts submission per the
112
112
  * gate-prompt mode; when null, normal text-input behavior. See module
113
113
  * docstring for the four states.
114
114
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quantiya/codevibe-core",
3
- "version": "2.0.82",
3
+ "version": "2.0.83",
4
4
  "description": "Core library for CodeVibe plugins - shared keychain, crypto, AppSync, and auth functionality",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",