diff --git a/modules/workflows/methods/methodAi/methodAi.py b/modules/workflows/methods/methodAi/methodAi.py index 2ec9cd51..64fc4f0f 100644 --- a/modules/workflows/methods/methodAi/methodAi.py +++ b/modules/workflows/methods/methodAi/methodAi.py @@ -439,6 +439,13 @@ class MethodAi(MethodBase): default="", description="Additional context from upstream steps.", ), + "folderId": WorkflowActionParameter( + name="folderId", + type="str", + frontendType=FrontendType.USER_FILE_FOLDER, + required=False, + description="Target folder in My Files when persisting workflow output", + ), }, execute=generateCode.__get__(self, self.__class__) ), diff --git a/modules/workflows/methods/methodContext/methodContext.py b/modules/workflows/methods/methodContext/methodContext.py index 2f12f707..80e0c089 100644 --- a/modules/workflows/methods/methodContext/methodContext.py +++ b/modules/workflows/methods/methodContext/methodContext.py @@ -71,6 +71,123 @@ class MethodContext(MethodBase): required=True, description="Document reference(s) to extract content from", ), + "contentFilter": WorkflowActionParameter( + name="contentFilter", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["all", "textOnly", "imagesOnly", "noImages"], + required=False, + default="all", + description="Which extracted parts to keep (text, images, etc.).", + ), + "outputMode": WorkflowActionParameter( + name="outputMode", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["blob", "lines", "pages", "chunks", "structured"], + required=False, + default="lines", + description="How results are structured under presentation files.", + ), + "splitBy": WorkflowActionParameter( + name="splitBy", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["newline", "paragraph", "sentence"], + required=False, + default="newline", + description="Delimiter for lines/chunks output modes.", + ), + "chunkSizeUnit": WorkflowActionParameter( + name="chunkSizeUnit", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["tokens", "characters", "words"], + required=False, + default="tokens", + description="Unit for chunkSize and chunkOverlap when outputMode is chunks.", + ), + "chunkSize": WorkflowActionParameter( + name="chunkSize", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["256", "500", "1000", "2000", "4000"], + required=False, + default="500", + description="Target chunk size when outputMode is chunks.", + ), + "chunkOverlap": WorkflowActionParameter( + name="chunkOverlap", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["0", "25", "50", "100", "200"], + required=False, + default="0", + description="Overlap between consecutive chunks.", + ), + "filterEmptyLines": WorkflowActionParameter( + name="filterEmptyLines", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["true", "false"], + required=False, + default="true", + description="Remove empty segments for lines/chunks modes.", + ), + "trimWhitespace": WorkflowActionParameter( + name="trimWhitespace", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["true", "false"], + required=False, + default="true", + description="Trim leading/trailing whitespace per segment.", + ), + "includeLineNumbers": WorkflowActionParameter( + name="includeLineNumbers", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["true", "false"], + required=False, + default="false", + description="Prefix line numbers when outputMode is lines.", + ), + "includeMetadata": WorkflowActionParameter( + name="includeMetadata", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["true", "false"], + required=False, + default="false", + description="Attach filename and offsets to line/chunk entries.", + ), + "csvHeaderRow": WorkflowActionParameter( + name="csvHeaderRow", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["true", "false"], + required=False, + default="true", + description="Treat first CSV row as column headers.", + ), + "pdfExtractMode": WorkflowActionParameter( + name="pdfExtractMode", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["text", "tables", "images", "all"], + required=False, + default="all", + description="Presentation-layer filter by part type group.", + ), + "markdownPreserveFormatting": WorkflowActionParameter( + name="markdownPreserveFormatting", + type="str", + frontendType=FrontendType.SELECT, + frontendOptions=["true", "false"], + required=False, + default="false", + description="Keep markdown markup on text parts when false strips lightly.", + ), }, execute=extractContent.__get__(self, self.__class__) ), @@ -134,7 +251,7 @@ class MethodContext(MethodBase): description="Storage scope for keys written by this node", ), "assignments": WorkflowActionParameter( - name="assignments", type="list", required=True, + name="assignments", type="List[Any]", required=True, frontendType=FrontendType.CONTEXT_ASSIGNMENTS, default=[], description=( @@ -183,7 +300,7 @@ class MethodContext(MethodBase): description="allow = only these keys pass; block = these keys are removed", ), "keys": WorkflowActionParameter( - name="keys", type="list", required=True, + name="keys", type="List[str]", required=True, frontendType=FrontendType.JSON, default=[], description="Key paths or glob patterns", @@ -214,7 +331,7 @@ class MethodContext(MethodBase): outputType="Transit", parameters={ "mappings": WorkflowActionParameter( - name="mappings", type="list", required=True, + name="mappings", type="List[Any]", required=True, frontendType=FrontendType.MAPPING_TABLE, default=[], description="List of mapping entries",