Inline base64 source maps had been checked into tracked src files. This strips those comments from the repository without changing runtime behavior or adding ongoing guardrails, per the requested one-time cleanup scope. Constraint: Keep this change limited to tracked source cleanup only Rejected: Add CI/source verification guard | user requested one-time cleanup only Confidence: high Scope-risk: narrow Reversibility: clean Directive: If these directives reappear, fix the producing transform instead of reintroducing repo-side cleanup code Tested: rg -n "sourceMappingURL" ., bun run smoke, bun run verify:privacy, bun run test:provider, npm run test:provider-recommendation Not-tested: bun run typecheck (repository has many pre-existing unrelated failures) Co-authored-by: anandh8x <test@example.com>
108 lines
3.2 KiB
TypeScript
108 lines
3.2 KiB
TypeScript
import { c as _c } from "react-compiler-runtime";
|
|
/**
|
|
* Component that registers keybinding handlers for command bindings.
|
|
*
|
|
* Must be rendered inside KeybindingSetup to have access to the keybinding context.
|
|
* Reads "command:*" actions from the current keybinding configuration and registers
|
|
* handlers that invoke the corresponding slash command via onSubmit.
|
|
*
|
|
* Commands triggered via keybinding are treated as "immediate" - they execute right
|
|
* away and preserve the user's existing input text (the prompt is not cleared).
|
|
*/
|
|
import { useMemo } from 'react';
|
|
import { useIsModalOverlayActive } from '../context/overlayContext.js';
|
|
import { useOptionalKeybindingContext } from '../keybindings/KeybindingContext.js';
|
|
import { useKeybindings } from '../keybindings/useKeybinding.js';
|
|
import type { PromptInputHelpers } from '../utils/handlePromptSubmit.js';
|
|
type Props = {
|
|
// onSubmit accepts additional parameters beyond what we pass here,
|
|
// so we use a rest parameter to allow any additional args
|
|
onSubmit: (input: string, helpers: PromptInputHelpers, ...rest: [speculationAccept?: undefined, options?: {
|
|
fromKeybinding?: boolean;
|
|
}]) => void;
|
|
/** Set to false to disable command keybindings (e.g., when a dialog is open) */
|
|
isActive?: boolean;
|
|
};
|
|
const NOOP_HELPERS: PromptInputHelpers = {
|
|
setCursorOffset: () => {},
|
|
clearBuffer: () => {},
|
|
resetHistory: () => {}
|
|
};
|
|
|
|
/**
|
|
* Registers keybinding handlers for all "command:*" actions found in the
|
|
* user's keybinding configuration. When triggered, each handler submits
|
|
* the corresponding slash command (e.g., "command:commit" submits "/commit").
|
|
*/
|
|
export function CommandKeybindingHandlers(t0) {
|
|
const $ = _c(8);
|
|
const {
|
|
onSubmit,
|
|
isActive: t1
|
|
} = t0;
|
|
const isActive = t1 === undefined ? true : t1;
|
|
const keybindingContext = useOptionalKeybindingContext();
|
|
const isModalOverlayActive = useIsModalOverlayActive();
|
|
let t2;
|
|
bb0: {
|
|
if (!keybindingContext) {
|
|
let t3;
|
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
t3 = new Set();
|
|
$[0] = t3;
|
|
} else {
|
|
t3 = $[0];
|
|
}
|
|
t2 = t3;
|
|
break bb0;
|
|
}
|
|
let actions;
|
|
if ($[1] !== keybindingContext.bindings) {
|
|
actions = new Set();
|
|
for (const binding of keybindingContext.bindings) {
|
|
if (binding.action?.startsWith("command:")) {
|
|
actions.add(binding.action);
|
|
}
|
|
}
|
|
$[1] = keybindingContext.bindings;
|
|
$[2] = actions;
|
|
} else {
|
|
actions = $[2];
|
|
}
|
|
t2 = actions;
|
|
}
|
|
const commandActions = t2;
|
|
let map;
|
|
if ($[3] !== commandActions || $[4] !== onSubmit) {
|
|
map = {};
|
|
for (const action of commandActions) {
|
|
const commandName = action.slice(8);
|
|
map[action] = () => {
|
|
onSubmit(`/${commandName}`, NOOP_HELPERS, undefined, {
|
|
fromKeybinding: true
|
|
});
|
|
};
|
|
}
|
|
$[3] = commandActions;
|
|
$[4] = onSubmit;
|
|
$[5] = map;
|
|
} else {
|
|
map = $[5];
|
|
}
|
|
const handlers = map;
|
|
const t3 = isActive && !isModalOverlayActive;
|
|
let t4;
|
|
if ($[6] !== t3) {
|
|
t4 = {
|
|
context: "Chat",
|
|
isActive: t3
|
|
};
|
|
$[6] = t3;
|
|
$[7] = t4;
|
|
} else {
|
|
t4 = $[7];
|
|
}
|
|
useKeybindings(handlers, t4);
|
|
return null;
|
|
}
|