Metadata-Version: 2.4
Name: act-workflow
Version: 4.8.381
Summary: A library for executing workflow nodes based on Actfile configuration
Home-page: https://github.com/tajalagawani/actpip
Author: Taj Noah
Author-email: mail@tajnoah.me
License: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: aiohappyeyeballs==2.4.3
Requires-Dist: aiohttp==3.10.10
Requires-Dist: aiosignal==1.3.1
Requires-Dist: annotated-types==0.7.0
Requires-Dist: anyio<5.0.0
Requires-Dist: async-timeout==4.0.3
Requires-Dist: attrs==24.2.0
Requires-Dist: certifi==2024.8.30
Requires-Dist: charset-normalizer==3.4.0
Requires-Dist: dataclasses-json==0.6.7
Requires-Dist: distro==1.9.0
Requires-Dist: exceptiongroup==1.2.2
Requires-Dist: frozenlist==1.4.1
Requires-Dist: h11==0.14.0
Requires-Dist: httpcore==1.0.6
Requires-Dist: httpx<1.0.0,>=0.28.1
Requires-Dist: idna==3.10
Requires-Dist: jiter==0.6.1
Requires-Dist: jsonpatch==1.33
Requires-Dist: jsonpointer==3.0.0
Requires-Dist: langchain==0.3.3
Requires-Dist: langchain-community==0.3.2
Requires-Dist: langchain-core==0.3.11
Requires-Dist: langchain-openai==0.2.2
Requires-Dist: langchain-text-splitters==0.3.0
Requires-Dist: langsmith==0.1.135
Requires-Dist: marshmallow==3.22.0
Requires-Dist: multidict==6.1.0
Requires-Dist: mypy-extensions==1.0.0
Requires-Dist: numpy==1.26.4
Requires-Dist: openai==1.51.2
Requires-Dist: orjson==3.10.7
Requires-Dist: packaging==24.1
Requires-Dist: propcache==0.2.0
Requires-Dist: pydantic==2.9.2
Requires-Dist: pydantic-settings==2.6.0
Requires-Dist: pydantic_core==2.23.4
Requires-Dist: python-dotenv==1.0.1
Requires-Dist: PyYAML==6.0.2
Requires-Dist: regex==2024.9.11
Requires-Dist: requests==2.32.3
Requires-Dist: requests-toolbelt==1.0.0
Requires-Dist: sniffio==1.3.1
Requires-Dist: SQLAlchemy==2.0.36
Requires-Dist: tenacity==8.5.0
Requires-Dist: tiktoken==0.8.0
Requires-Dist: tqdm==4.66.5
Requires-Dist: typing-inspect==0.9.0
Requires-Dist: typing_extensions==4.12.2
Requires-Dist: yarl==1.15.4
Requires-Dist: slack-sdk==3.33.1
Requires-Dist: colorama>=0.4.6
Requires-Dist: tabulate==0.9.0
Requires-Dist: psutil>=5.8.0
Requires-Dist: anthropic==0.49.0
Requires-Dist: neo4j==5.28.1
Requires-Dist: boto3==1.37.6
Provides-Extra: dev
Requires-Dist: pytest>=6.2.5; extra == "dev"
Requires-Dist: mypy>=0.910; extra == "dev"
Requires-Dist: flake8>=3.9.2; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

I. Control Flow Nodes (Controlling the execution path)

If: (As implemented) Conditionally executes different paths based on a boolean comparison.

Switch: Multi-way branching based on the value of an input (like a case statement). Takes an input value and routes to different outputs based on matching cases, plus a default path.

ForEach (Item): Iterates over a list input, executing a sub-path for each item in the list. Outputs the results from each iteration.

ForEach (Index): Similar to ForEach (Item), but also provides the current index to the sub-path.

While Loop: Executes a sub-path repeatedly while a specified condition (checked at the start) remains true. Requires careful design to avoid infinite loops.

Do While Loop: Executes a sub-path once, and then repeatedly while a specified condition (checked at the end) remains true.

Merge: Waits for one of multiple incoming paths to complete and then continues the flow. Useful after an If/Switch.

Join (Wait All): Waits for all of multiple incoming paths (e.g., from a parallel execution) to complete before continuing. Often outputs combined results.

Fork (Parallel): Executes multiple downstream paths concurrently. Often paired with a Join node later.

Delay: Pauses the workflow execution for a specified duration (e.g., seconds, milliseconds).

Terminate Workflow: Explicitly stops the workflow execution, optionally setting a final status (success/failure) and message/output.

Sub-Workflow / Call Workflow: Executes another defined Actfile workflow, potentially passing inputs and receiving outputs.

Try/Catch: Defines a block of nodes to execute. If an error occurs within the 'try' path, execution jumps to a 'catch' path, providing error details. A 'finally' path could also be added.

Rate Limit: Limits the execution frequency of a downstream path (e.g., max 5 times per second).

II. Data Manipulation Nodes (Transforming and managing data)

Set Variable: (As implemented) Explicitly stores a value (static or from input/placeholders) under a specific key name in its result, making it easily accessible later.

Get Variable: (Could be implicit via placeholders, but explicit might be useful) Retrieves a value previously stored by a Set Variable node or from the initial input. Often redundant if placeholder resolution is robust.

Delete Variable: Removes a variable from the context (less common, might complicate state).

Transform (JSONata): Transforms input data (usually JSON/dict) using the powerful JSONata query and transformation language.

Template: Renders a string using a templating engine (like Jinja2) and input data, useful for creating dynamic messages, code snippets, or configurations.

Merge Dictionaries: Combines two or more input dictionaries into one. Needs options for handling duplicate keys (overwrite, error, ignore).

Merge Lists: Concatenates two or more input lists into one.

Append To List: Adds one or more items to an existing list.

Get List Item: Retrieves an item from a list by its index (e.g., 0, -1).

Get List Slice: Extracts a sub-section of a list based on start/end indices.

List Length: Returns the number of items in a list.

Split String: Splits a string into a list based on a delimiter.

Join List: Joins items of a list into a single string using a specified separator.

Select Path (JSONPath): Extracts specific data from a JSON object/dict using a JSONPath expression.

Parse JSON: Converts a JSON string input into a structured object/dictionary or list.

Stringify JSON: Converts a structured object/dictionary or list into a JSON string representation.

Format Date/Time: Formats a date/time input (e.g., ISO string, timestamp) into a specified string format.

Format Number: Formats a number input (e.g., adding commas, setting decimal places).

Convert Type: Explicitly converts a value from one basic type to another (e.g., string to integer, integer to boolean). Needs error handling for invalid conversions.

Regex Extract: Extracts parts of a string that match a regular expression pattern (using capture groups).

Regex Match: Checks if an input string fully matches a regular expression pattern (returns boolean).

Create Dictionary: Creates a new dictionary object from specified key-value pairs.

Get Dictionary Value: Retrieves the value associated with a specific key in a dictionary. Handles missing keys gracefully (e.g., return null or default).

Set Dictionary Value: Adds or updates a key-value pair within an existing dictionary.

III. Utility Nodes (General purpose helpers)

Log Message: (As implemented) Logs a message to the system logs at a specified level.

Comment / No-Op: Does nothing functionally but allows adding documentation or breakpoints directly within the workflow graph.

Generate Error: Intentionally throws an error with a specified message. Useful for testing error handling paths (Try/Catch).

Timestamp: Outputs the current date/time in a specified format (e.g., ISO 8601, Unix timestamp).

Basic Math: Performs simple arithmetic operations (+, -, *, /, %, power) on numeric inputs.

String Operation: Performs common string manipulations (upper, lower, trim, length, substring, replace).

Random Number: Generates a random number within a specified range.

Random String: Generates a random string of a specified length and character set.

Generate UUID: Generates a universally unique identifier (UUID).

Hash Data: Computes a hash (e.g., MD5, SHA-256) of an input string or data.

Validate Schema: Validates input data against a provided JSON Schema definition. Returns boolean or throws error on failure.

Get Data Type: Returns the data type of an input value as a string (e.g., "string", "number", "list", "object", "boolean", "null").
