vibelet 1.2.152 → 1.2.153

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.
@@ -1,2 +1,2 @@
1
- var c=require("node:fs"),n=require("node:path"),p="@vibelet/cli";function i(r){try{let e=JSON.parse((0,c.readFileSync)(r,"utf8"));if(e.name===p&&typeof e.version=="string"&&e.version.length>0)return e.version}catch{}return null}function l(){return"1.2.152"}var a=l();process.stdout.write(`${a}
1
+ var c=require("node:fs"),n=require("node:path"),p="@vibelet/cli";function i(r){try{let e=JSON.parse((0,c.readFileSync)(r,"utf8"));if(e.name===p&&typeof e.version=="string"&&e.version.length>0)return e.version}catch{}return null}function l(){return"1.2.153"}var a=l();process.stdout.write(`${a}
2
2
  `);
package/dist/vibelet.mjs CHANGED
@@ -11768,7 +11768,7 @@ __nccwpck_require__.d(__webpack_exports__, {
11768
11768
  gJ: () => (/* binding */ terminalControlTokenPath)
11769
11769
  });
11770
11770
 
11771
- // UNUSED EXPORTS: buildClaudeSessionIdArgs, buildClaudeTerminalArgs, buildResumeNativeArgs, cleanupClaudeTerminalHookFiles, collectProcessTreePids, connectTerminalControl, createClaudeTerminalHookFiles, createTerminalModeState, exitCodeFromChildExit, extractInitialSessionId, extractTerminalPromptPreview, formatTerminalControlScreen, hasClaudeContinueArg, hasClaudeResumePickerArg, hasClaudeSettingsArg, monitorTerminalControlUntilChildExit, normalizeTerminalScreenForTty, requestSwitchBackWhenReady, resolveNativeAgentCommand, stopNativeChild, waitForRemoteMonitorInput
11771
+ // UNUSED EXPORTS: buildClaudeSessionIdArgs, buildClaudeTerminalArgs, buildResumeNativeArgs, cleanupClaudeTerminalHookFiles, collectProcessTreePids, connectTerminalControl, createClaudeTerminalHookFiles, createTerminalModeState, exitCodeFromChildExit, extractInitialSessionId, extractTerminalPromptPreview, formatTerminalControlScreen, hasClaudeContinueArg, hasClaudeResumePickerArg, hasClaudeSettingsArg, installTerminalSignalHandlers, monitorTerminalControlUntilChildExit, normalizeTerminalScreenForTty, requestSwitchBackWhenReady, resolveNativeAgentCommand, stopNativeChild, waitForRemoteMonitorInput
11772
11772
 
11773
11773
  // EXTERNAL MODULE: external "node:child_process"
11774
11774
  var external_node_child_process_ = __nccwpck_require__(1421);
@@ -12449,18 +12449,22 @@ function restoreTerminalCursor(stream) {
12449
12449
  if (stream?.isTTY) stream.write(`${ANSI_SHOW_CURSOR}${ANSI_RESET}`);
12450
12450
  }
12451
12451
 
12452
- function installTerminalSignalHandlers(getChild, getMode) {
12452
+ function installTerminalSignalHandlers(
12453
+ getChild,
12454
+ getMode,
12455
+ { processObj = process, sendChildSignal = sendSignal } = {},
12456
+ ) {
12453
12457
  const previous = {
12454
- SIGINT: process.listeners('SIGINT'),
12455
- SIGTERM: process.listeners('SIGTERM'),
12458
+ SIGINT: processObj.listeners('SIGINT'),
12459
+ SIGTERM: processObj.listeners('SIGTERM'),
12456
12460
  };
12457
12461
  let resolveSignalExit;
12458
12462
  const signalExit = new Promise((resolve) => {
12459
12463
  resolveSignalExit = resolve;
12460
12464
  });
12461
12465
 
12462
- process.removeAllListeners('SIGINT');
12463
- process.removeAllListeners('SIGTERM');
12466
+ processObj.removeAllListeners('SIGINT');
12467
+ processObj.removeAllListeners('SIGTERM');
12464
12468
 
12465
12469
  function handleSignal(signal) {
12466
12470
  if (getMode() === 'remoteDaemon') {
@@ -12468,23 +12472,29 @@ function installTerminalSignalHandlers(getChild, getMode) {
12468
12472
  return;
12469
12473
  }
12470
12474
  const child = getChild();
12471
- if (!child) {
12475
+ if (!child?.pid || child.exitCode !== null || child.signalCode !== null) {
12472
12476
  resolveSignalExit(signal === 'SIGINT' ? 130 : 143);
12473
12477
  return;
12474
12478
  }
12475
- sendSignal(child, signal);
12479
+ if (signal === 'SIGINT') {
12480
+ // The inherited native TUI shares this foreground terminal/console and
12481
+ // receives keyboard Ctrl-C directly. Forwarding it here would deliver
12482
+ // the same interrupt twice.
12483
+ return;
12484
+ }
12485
+ sendChildSignal(child, signal);
12476
12486
  }
12477
12487
 
12478
- process.on('SIGINT', () => handleSignal('SIGINT'));
12479
- process.on('SIGTERM', () => handleSignal('SIGTERM'));
12488
+ processObj.on('SIGINT', () => handleSignal('SIGINT'));
12489
+ processObj.on('SIGTERM', () => handleSignal('SIGTERM'));
12480
12490
 
12481
12491
  return {
12482
12492
  signalExit,
12483
12493
  restore() {
12484
- process.removeAllListeners('SIGINT');
12485
- process.removeAllListeners('SIGTERM');
12486
- for (const listener of previous.SIGINT) process.on('SIGINT', listener);
12487
- for (const listener of previous.SIGTERM) process.on('SIGTERM', listener);
12494
+ processObj.removeAllListeners('SIGINT');
12495
+ processObj.removeAllListeners('SIGTERM');
12496
+ for (const listener of previous.SIGINT) processObj.on('SIGINT', listener);
12497
+ for (const listener of previous.SIGTERM) processObj.on('SIGTERM', listener);
12488
12498
  },
12489
12499
  };
12490
12500
  }
@@ -13092,7 +13102,10 @@ async function runManagedNativeTerminal({
13092
13102
  ],
13093
13103
  footerLines: ['Starting now...'],
13094
13104
  });
13095
- await waitMs(SWITCHBACK_RESTORE_NOTICE_MS);
13105
+ const restoreNotice = await waitForRetryOrSignal(signalHandlers.signalExit, SWITCHBACK_RESTORE_NOTICE_MS);
13106
+ if (restoreNotice.type === 'exit') {
13107
+ return restoreNotice.code;
13108
+ }
13096
13109
  nativeArgs = buildResumeNativeArgs(agent, args, sessionId);
13097
13110
  argv = [command, ...nativeArgs];
13098
13111
  }
@@ -1 +1 @@
1
- import{R as c,M as p,B as x}from"./mermaid-O7DHMXV3-DcLAcT5g.js";import{r,j as d}from"./index-m1lWI7bU.js";var R=({code:i,language:e,raw:t,className:g,startLine:u,...m})=>{let{shikiTheme:o}=r.useContext(c),a=p(),[n,s]=r.useState(t);return r.useEffect(()=>{if(!a){s(t);return}let l=a.highlight({code:i,language:e,themes:o},h=>{s(h)});l&&s(l)},[i,e,o,a,t]),d.jsx(x,{className:g,language:e,result:n,startLine:u,...m})};export{R as HighlightedCodeBlockBody};
1
+ import{R as c,M as p,B as x}from"./mermaid-O7DHMXV3-BA2glr4S.js";import{r,j as d}from"./index-BiSnL70b.js";var R=({code:i,language:e,raw:t,className:g,startLine:u,...m})=>{let{shikiTheme:o}=r.useContext(c),a=p(),[n,s]=r.useState(t);return r.useEffect(()=>{if(!a){s(t);return}let l=a.highlight({code:i,language:e,themes:o},h=>{s(h)});l&&s(l)},[i,e,o,a,t]),d.jsx(x,{className:g,language:e,result:n,startLine:u,...m})};export{R as HighlightedCodeBlockBody};