Support define is tool logic function (#17926)

- supports isTool and timeout settings in defineLogicFunction in apps
and in setting tabs definition
- compute for all toolInputSchema for logic funciton, in settings and in
code steps

<img width="991" height="802" alt="image"
src="https://github.com/user-attachments/assets/05dc1221-cac9-45a3-87b0-3b13161446fd"
/>
This commit is contained in:
martmull
2026-02-16 10:43:29 +01:00
committed by GitHub
parent f694bb99b3
commit da064d5e88
138 changed files with 4839 additions and 367 deletions
@@ -0,0 +1,26 @@
import { isDefined } from '@/utils/validation/isDefined';
import {
DEFAULT_TOOL_INPUT_SCHEMA,
type InputJsonSchema,
} from '@/logic-function';
export const getInputSchemaFromSourceCode = async (
sourceCode: string,
): Promise<InputJsonSchema> => {
const { getFunctionInputSchema } = await import(
'./get-function-input-schema'
);
const inputSchema = getFunctionInputSchema(sourceCode);
// Logic functions take a single params object
const firstParam = inputSchema[0];
if (firstParam?.type === 'object' && isDefined(firstParam.properties)) {
return {
type: 'object',
properties: firstParam.properties,
};
}
return DEFAULT_TOOL_INPUT_SCHEMA;
};