refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations (#1771)
Codebase-wide sweep bringing the web client into strict compliance with the AGENTS.md TypeScript and Mantine/React conventions: ~170 inline 2+-static-prop elements extracted to named .withProps() constants across ~77 files, the AGENTS.md rule wording tightened to match (static-prop boundary + Accordion/Transition/data-*/Box exemptions), a real ScreenStage Box->Flex layout regression fixed (direction: column) with a Storybook regression guard, and an App.tsx double-cast tightened. Closes #1762.
This commit is contained in:
parent
8aba3122c5
commit
da37692485
1 changed files with 1567 additions and 991 deletions
|
|
@ -164,6 +164,23 @@ export function ToolsScreen({
|
|||
: undefined;
|
||||
const isExecuting = callState?.status === "pending";
|
||||
|
||||
const handleSelectTool = (name: string) => {
|
||||
// Seed the form with the tool's schema defaults so default-only fields the
|
||||
// user never edits are still sent on execute (the form shows defaults via
|
||||
// resolveValue, but onChange only writes edited fields).
|
||||
const tool = tools.find((t) => t.name === name);
|
||||
// `name` always comes from the rendered tools list (ToolControls only emits
|
||||
// names it was given), so the lookup never misses; the empty-object fallback
|
||||
// is an unreachable defensive default.
|
||||
let nextFormValues: Record<string, unknown> = {};
|
||||
/* v8 ignore next -- unreachable: onSelectTool always names a tool in the list */
|
||||
if (tool)
|
||||
nextFormValues = collectSchemaDefaults(
|
||||
toFormSchema(tool.inputSchema) ?? {},
|
||||
);
|
||||
onUiChange({ ...ui, selectedToolName: name, formValues: nextFormValues });
|
||||
};
|
||||
|
||||
return (
|
||||
<ScreenLayout>
|
||||
<Sidebar>
|
||||
|
|
@ -177,27 +194,7 @@ export function ToolsScreen({
|
|||
onRefreshList={onRefreshList}
|
||||
pagination={pagination}
|
||||
onSearchChange={(value) => onUiChange({ ...ui, search: value })}
|
||||
onSelectTool={(name) => {
|
||||
// Seed the form with the tool's schema defaults so default-only
|
||||
// fields the user never edits are still sent on execute (the
|
||||
// form shows defaults via resolveValue, but onChange only writes
|
||||
// edited fields).
|
||||
const tool = tools.find((t) => t.name === name);
|
||||
// `name` always comes from the rendered tools list (ToolControls
|
||||
// only emits names it was given), so the lookup never misses; the
|
||||
// empty-object fallback is an unreachable defensive default.
|
||||
let formValues: Record<string, unknown> = {};
|
||||
/* v8 ignore next -- unreachable: onSelectTool always names a tool in the list */
|
||||
if (tool)
|
||||
formValues = collectSchemaDefaults(
|
||||
toFormSchema(tool.inputSchema) ?? {},
|
||||
);
|
||||
onUiChange({
|
||||
...ui,
|
||||
selectedToolName: name,
|
||||
formValues,
|
||||
});
|
||||
}}
|
||||
onSelectTool={handleSelectTool}
|
||||
/>
|
||||
</SidebarCard>
|
||||
</Sidebar>
|
||||
|
|
|
|||
Loading…
Reference in a new issue