├── .autopr └── triggers.yaml ├── .gitignore ├── .streamlit └── config.toml ├── .vscode └── ProfitPilot.code-workspace ├── Dockerfile ├── LICENSE ├── README.md ├── app.py ├── docker-compose.yml ├── example.ipynb ├── example.py ├── profit ├── __init__.py ├── agent.py ├── clarifi.py ├── clarifi_agent.py ├── llama.py ├── main.py └── tools.py ├── pyproject.toml ├── requirements.txt ├── trigger_schema.json ├── ven ├── bin │ ├── f2py │ ├── f2py3 │ ├── f2py3.10 │ ├── jsonschema │ ├── langchain-server │ ├── langsmith │ ├── markdown-it │ ├── normalizer │ ├── pygmentize │ ├── streamlit │ ├── streamlit.cmd │ └── watchmedo ├── etc │ └── jupyter │ │ └── nbconfig │ │ └── notebook.d │ │ └── pydeck.json ├── include │ └── site │ │ └── python3.10 │ │ └── greenlet │ │ └── greenlet.h └── share │ └── jupyter │ └── nbextensions │ └── pydeck │ ├── extensionRequires.js │ ├── index.js │ └── index.js.map └── workflow_schema.json /.autopr/triggers.yaml: -------------------------------------------------------------------------------- 1 | triggers: 2 | - label_substring: summarize 3 | on_issue: false 4 | on_pull_request: true 5 | run: summarize_pr 6 | - branch_name: main 7 | run: generate_readme_summaries 8 | parameters: 9 | FILE_SUMMARY_PROMPT: | 10 | Write an executive summary of this file, intended for someone seeing it for the first time. 11 | Don't explain simple or trivial things like imports, but do explain what the purpose of the file is. 12 | Be short and concise, especially if the file is empty. 13 | Respond in 1-10 bullet points, prefixed with emojis, with five spaces at the end of each line. 14 | FILE_SUMMARY_INSTRUCTIONS: | 15 | Respond in 1-10 bullet points, prefixed of emojis. Try to pick contextually relevant emojis. 16 | Be short and concise. 17 | An example of the structure I'm expecting: 18 | ~~~ 19 | 💧 line item 1 20 | 🚚 line item 2 21 | ~~~ 22 | PUT FIVE SPACES ON THE END OF EACH ONLINE. 23 | FOLDER_SUMMARY_PROMPT: | 24 | Write a high level overview of this folder, intended for someone seeing it for the first time. 25 | Don't explain simple or trivial things like imports, but do explain what the purpose is of the contents of the folder. 26 | Be high-level, and very concise. 27 | FOLDER_SUMMARY_INSTRUCTIONS: | 28 | Be very concise, and respond in the form of a short paragraph (max 3 sentences). 29 | IGNORE_FILES: 30 | - website 31 | - .github 32 | - .autopr 33 | - tests -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | 131 | -------------------------------------------------------------------------------- /.streamlit/config.toml: -------------------------------------------------------------------------------- 1 | [theme] 2 | base="light" 3 | primaryColor="#356dff" 4 | 5 | [ui] 6 | hideSidebarNav=true 7 | -------------------------------------------------------------------------------- /.vscode/ProfitPilot.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": ".." 5 | } 6 | ] 7 | } -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Use an official Python runtime as the parent image 2 | FROM python:3.8-slim 3 | 4 | # Set the working directory in the docker image 5 | WORKDIR /app 6 | 7 | # Copy the current directory contents into the container at /app 8 | COPY . /app 9 | 10 | # Install required tools and dependencies 11 | RUN apt-get update && apt-get install -y && rm -rf /var/lib/apt/lists/* 12 | 13 | # Install Python packages 14 | RUN pip install clarifai-grpc & \ 15 | pip install streamlit & \ 16 | pip install streamlit-chat & \ 17 | pip install pydantic & \ 18 | pip install langchain & \ 19 | pip install openai & \ 20 | pip install transformers & \ 21 | pip install faiss-gpu==1.7.2 & \ 22 | pip install langchain-experimental & \ 23 | pip install clarifai & \ 24 | pip install torch & \ 25 | pip install pandas 26 | 27 | # Expose the port the app runs on 28 | EXPOSE 80 29 | 30 | # Command to run the application 31 | CMD ["python3", "example.py"] 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2020 Clarifai, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ProfitPilot 2 | Introducing ProfitPilot, your ultimate autonomous AI sales professional agent. With our cutting-edge technology, we revolutionize the way businesses drive profits and skyrocket their sales. 3 | 4 | Imagine having a highly skilled sales professional who works tirelessly for you, always ready to engage clients, close deals, and generate revenue. 5 | 6 | That's exactly what ProfitPilot offers – a seductive value proposition that guarantees increased profitability and accelerated growth for your business. 7 | 8 | ProfitPilot combines powerful artificial intelligence with deep learning algorithms, enabling it to understand customer behaviors, preferences, and purchase patterns better than any human salesperson. 9 | 10 | It captivates potential clients with its persuasive communication skills, building lasting relationships and creating repeat customers. 11 | 12 | Say goodbye to wasted resources on hiring and training sales staff, as ProfitPilot works 24/7, tirelessly prospecting, qualifying leads, and delivering personalized pitches. 13 | 14 | Its effortless adaptability allows it to navigate through different industries, ensuring your value proposition resonates flawlessly with every client. 15 | 16 | But that's not all. 17 | 18 | ProfitPilot's unparalleled ability to analyze big data means it can identify market trends, predict customer demands, and provide you with valuable insights to stay ahead of the competition. 19 | 20 | It becomes your reliable co-pilot, guiding your business towards profitable decisions and unlocking hidden revenue streams. 21 | 22 | With ProfitPilot, you'll experience unrivaled efficiency, precision, and revenue generation in your sales process. 23 | 24 | By leveraging the power of autonomous AI, you unlock endless possibilities for sustainable growth, increased ROI, and a competitive edge in any market. 25 | 26 | Don't settle for outdated sales strategies. Embrace the future of selling with ProfitPilot – your ultimate seductive value proposition that guarantees an unstoppable surge in profits and takes your business to soaring heights. 27 | 28 | --- 29 | 30 | # Installation 31 | ```pip install profit-pilot``` 32 | 33 | # Usage 34 | ```python 35 | from profit.main import ProfitPilot 36 | 37 | 38 | 39 | # Create an instance of the ProfitPilot class 40 | pilot = ProfitPilot( 41 | openai_api_key="YOUR_OPENAI_API_KEY", 42 | ai_name="Athena", 43 | ai_role="Sales Representative", 44 | external_tools=None, 45 | company_name="ABC Company", 46 | company_values="Quality, Innovation, Customer Satisfaction", 47 | conversation_type="Cold Call", 48 | conversation_purpose="discuss our new product", 49 | company_business="Software Development", 50 | salesperson_name="John Doe", 51 | human_in_the_loop=False 52 | ) 53 | 54 | # Define the task you want the agent to perform 55 | task = "Hello, I'm calling to discuss our new product. Can I speak with the decision-maker?" 56 | 57 | # Run the task using the ProfitPilot instance 58 | pilot.run(task) 59 | 60 | ``` 61 | # Todo 62 | - Worker 63 | - Prompt, 64 | - Tools, Zapier tool, email answering, summarizng, email understanding, email response 65 | - Lead scraping, create tool that scrapes that scrapes on a website domain 66 | 67 | 68 | ## Requirements 69 | - Email function tools 70 | - Zapier tools 71 | - Prompts 72 | - pdf tool 73 | 74 | 75 | # TO win Hackathon 76 | - Focus on the story, why we're building this 77 | - Build a seamless user experience 78 | 79 | 80 | ----- 81 | 82 | ![Clarifai logo](https://www.clarifai.com/hs-fs/hubfs/logo/Clarifai/clarifai-740x150.png?width=240) 83 | 84 | # Clarifai App Module Template 85 | 86 | This is a template repository to make it easy to get started creating a UI module with Clarifai. 87 | 88 | 89 | ## To use this repo 90 | 91 | 1. Click the "Use this template" green button on github to make a repo from this repo template and give it a name of the format module-{XYZ} filling in the XYZ portion. 92 | 2. Clone the new repo as normal to your development environment. 93 | 3. `pip install -r requirements.txt` to make sure you have all the Python packages installed. Add any new packages to this requirements.txt file that you add during development. 94 | 4. Update the README.md to capture what your new module will do. 95 | 5. Rename the pages/*.py files as you desire and start filling them in to implement your module. 96 | 6. After you're tried things out locally, push your changes to github and get the git commit URL from there in order to create a module in Clarifai. 97 | 7. Go to any app you can create in within Clarifai, select Modules on the left and "Create Module" button, then follow the steps. 98 | 99 | -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | import streamlit as st 2 | from profit.main import ProfitPilot 3 | from clarifai_utils.modules.css import ClarifaiStreamlitCSS 4 | 5 | st.set_page_config(layout="wide") 6 | 7 | ClarifaiStreamlitCSS.insert_default_css(st) 8 | 9 | st.markdown("Please select a specific page from the sidebar to the left") 10 | 11 | # Define variables for ProfitPilot 12 | AI_NAME = "Athena" 13 | AI_ROLE = "Sales Representative" 14 | EXTERNAL_TOOLS = None 15 | COMPANY_NAME = "ABC Company" 16 | COMPANY_VALUES = "Quality, Innovation, Customer Satisfaction" 17 | CONVERSATION_TYPE = "Cold Email" 18 | CONVERSATION_PURPOSE = "discuss our new product" 19 | COMPANY_BUSINESS = "APAC AI" 20 | SALESPERSON_NAME = "John Doe" 21 | HUMAN_IN_THE_LOOP = False 22 | PROSPECT_NAME = "Jane Smith" # Add the prospect's name here 23 | 24 | # Create an instance of the ProfitPilot class 25 | pilot = ProfitPilot( 26 | ai_name=AI_NAME, 27 | ai_role=AI_ROLE, 28 | external_tools=EXTERNAL_TOOLS, 29 | company_name=COMPANY_NAME, 30 | company_values=COMPANY_VALUES, 31 | conversation_type=CONVERSATION_TYPE, 32 | conversation_purpose=CONVERSATION_PURPOSE, 33 | company_business=COMPANY_BUSINESS, 34 | salesperson_name=SALESPERSON_NAME, 35 | human_in_the_loop=HUMAN_IN_THE_LOOP, 36 | # prospect_name=PROSPECT_NAME # Add the prospect's name as an argument 37 | ) 38 | 39 | # Define the task you want the agent to perform 40 | # Adjusted for email format 41 | task = f""" 42 | Subject: Introducing {COMPANY_NAME}'s Newest Product—A Perfect Fit for you 43 | 44 | 45 | I hope this email finds you well. My name is {SALESPERSON_NAME}, and I'm with {COMPANY_NAME}. We specialize in {COMPANY_BUSINESS}, and I'm excited to share some news that aligns closely with your values—{COMPANY_VALUES}. 46 | 47 | I'd love the opportunity to discuss our latest product with you. Would you be open to exploring how it could benefit your team? 48 | 49 | Looking forward to your response! 50 | 51 | Best, 52 | {SALESPERSON_NAME} 53 | """ 54 | 55 | 56 | def main(): 57 | st.title("ProfitPilot") 58 | st.write("Welcome to profit pilot enter in your sales leads emails and information for personalized deal flow") 59 | 60 | if st.button("Run"): 61 | response = pilot.run(task) 62 | st.write(f"ProfitPilot: {response}") 63 | 64 | user_input = st.text_input("Your response:") 65 | if st.button("Send"): 66 | response = pilot.run(user_input) 67 | st.write(f"Profitpilot: {response}") 68 | 69 | 70 | if __name__ == "__main__": 71 | main() 72 | 73 | 74 | # # Run the task using the ProfitPilot instance 75 | # pilot.run(task) 76 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | 3 | services: 4 | app: 5 | build: 6 | context: . 7 | dockerfile: Dockerfile 8 | ports: 9 | - "8501:8501" 10 | volumes: 11 | - .:/app 12 | environment: 13 | - STREAMLIT_SERVER_PORT=8501 14 | -------------------------------------------------------------------------------- /example.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "!git clone https://github.com/kyegomez/ProfitPilot.git\n", 10 | "%cd ProfitPilot\n", 11 | "!pip3 install -r requirements.txt\n", 12 | "!python3 example.py" 13 | ] 14 | } 15 | ], 16 | "metadata": { 17 | "language_info": { 18 | "name": "python" 19 | }, 20 | "orig_nbformat": 4 21 | }, 22 | "nbformat": 4, 23 | "nbformat_minor": 2 24 | } 25 | -------------------------------------------------------------------------------- /example.py: -------------------------------------------------------------------------------- 1 | from profit.main import ProfitPilot 2 | 3 | # Define variables for ProfitPilot 4 | AI_NAME = "Athena" 5 | AI_ROLE = "Sales Representative" 6 | EXTERNAL_TOOLS = None 7 | COMPANY_NAME = "ABC Company" 8 | COMPANY_VALUES = "Quality, Innovation, Customer Satisfaction" 9 | CONVERSATION_TYPE = "Cold Email" 10 | CONVERSATION_PURPOSE = "discuss our new product" 11 | COMPANY_BUSINESS = "APAC AI" 12 | SALESPERSON_NAME = "John Doe" 13 | HUMAN_IN_THE_LOOP = False 14 | PROSPECT_NAME = "Jane Smith" # Add the prospect's name here 15 | 16 | # Create an instance of the ProfitPilot class 17 | pilot = ProfitPilot( 18 | ai_name=AI_NAME, 19 | ai_role=AI_ROLE, 20 | external_tools=EXTERNAL_TOOLS, 21 | company_name=COMPANY_NAME, 22 | company_values=COMPANY_VALUES, 23 | conversation_type=CONVERSATION_TYPE, 24 | conversation_purpose=CONVERSATION_PURPOSE, 25 | company_business=COMPANY_BUSINESS, 26 | salesperson_name=SALESPERSON_NAME, 27 | human_in_the_loop=HUMAN_IN_THE_LOOP, 28 | llama=True, 29 | openai_api_key="key" 30 | ) 31 | 32 | # Define the task you want the agent to perform 33 | # Adjusted for email format 34 | task = f""" 35 | Subject: Introducing {COMPANY_NAME}'s Newest Product—A Perfect Fit for {PROSPECT_NAME} 36 | 37 | Hi {PROSPECT_NAME}, 38 | 39 | I hope this email finds you well. My name is {SALESPERSON_NAME}, and I'm with {COMPANY_NAME}. We specialize in {COMPANY_BUSINESS}, and I'm excited to share some news that aligns closely with your values—{COMPANY_VALUES}. 40 | 41 | I'd love the opportunity to discuss our latest product with you. Would you be open to exploring how it could benefit your team? 42 | 43 | Looking forward to your response! 44 | 45 | Best, 46 | {SALESPERSON_NAME} 47 | """ 48 | 49 | # Run the task using the ProfitPilot instance 50 | pilot.run(task) -------------------------------------------------------------------------------- /profit/__init__.py: -------------------------------------------------------------------------------- 1 | from profit.main import ProfitPilot 2 | # from profit.agent import Agent -------------------------------------------------------------------------------- /profit/agent.py: -------------------------------------------------------------------------------- 1 | import faiss 2 | from langchain.chat_models import ChatOpenAI 3 | from langchain.docstore import InMemoryDocstore 4 | from langchain.embeddings import OpenAIEmbeddings 5 | from langchain.tools.human.tool import HumanInputRun 6 | from langchain.vectorstores import FAISS 7 | from langchain_experimental.autonomous_agents import AutoGPT 8 | 9 | from profit.llama import LLama 10 | from profit.tools import ( 11 | ReadFileTool, 12 | WriteFileTool, 13 | process_csv, 14 | query_website_tool, 15 | zapier_tools, 16 | GmailTool 17 | ) 18 | 19 | model = GmailTool 20 | 21 | ROOT_DIR = "./data/" 22 | 23 | class Agent: 24 | def __init__(self, 25 | ai_name="Autobot Swarm Worker", 26 | ai_role="Worker in a swarm", 27 | external_tools = None, 28 | human_in_the_loop=False, 29 | llama = False, 30 | temperature = 0.5, 31 | openai_api_key = None, 32 | ): 33 | self.human_in_the_loop = human_in_the_loop 34 | self.ai_name = ai_name 35 | self.ai_role = ai_role 36 | 37 | self.temperature = temperature 38 | self.openai_api_key = openai_api_key 39 | self.llama = llama 40 | 41 | if self.llama is True: 42 | self.llm = LLama() 43 | else: 44 | self.llm = ChatOpenAI( 45 | model_name='gpt-4', 46 | openai_api_key=self.openai_api_key, 47 | temperature=self.temperature 48 | ) 49 | 50 | self.setup_tools(external_tools) 51 | self.setup_memory() 52 | self.setup_agent() 53 | 54 | def setup_tools(self, external_tools): 55 | self.tools = [ 56 | WriteFileTool(root_dir=ROOT_DIR), 57 | ReadFileTool(root_dir=ROOT_DIR), 58 | process_csv, 59 | 60 | query_website_tool, 61 | HumanInputRun(), 62 | zapier_tools, 63 | 64 | ] 65 | if external_tools is not None: 66 | self.tools.extend(external_tools) 67 | 68 | def setup_memory(self): 69 | try: 70 | embeddings_model = OpenAIEmbeddings() 71 | embedding_size = 1536 72 | index = faiss.IndexFlatL2(embedding_size) 73 | self.vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {}) 74 | except Exception as error: 75 | raise RuntimeError(f"Error setting up memory. Maybe try tuning the embedding size: {error}") 76 | 77 | def setup_agent(self): 78 | try: 79 | self.agent = AutoGPT.from_llm_and_tools( 80 | ai_name=self.ai_name, 81 | ai_role=self.ai_role, 82 | tools=self.tools, 83 | llm=self.llm, 84 | memory=self.vectorstore.as_retriever(search_kwargs={"k": 8}), 85 | human_in_the_loop=self.human_in_the_loop 86 | ) 87 | 88 | except Exception as error: 89 | raise RuntimeError(f"Error setting up agent: {error}") 90 | 91 | def run(self, task): 92 | try: 93 | result = self.agent.run([task]) 94 | return result 95 | except Exception as error: 96 | raise RuntimeError(f"Error while running agent: {error}") 97 | 98 | def __call__(self, task): 99 | return self.run(task) 100 | -------------------------------------------------------------------------------- /profit/clarifi.py: -------------------------------------------------------------------------------- 1 | from langchain.llms import Clarifai 2 | 3 | 4 | # class ClarifiLLM: 5 | # def __init__( 6 | # self, 7 | # clarifai_pat: str = "890cdb0cb5aa4795ba51af9670120a1e", 8 | # user_id="meta", 9 | # app_id="Llama-2", 10 | # model_id="llama2-70b-chat" 11 | # ): 12 | # self.CLARIFAI_PAT = clarifai_pat 13 | # self.USER_ID = user_id 14 | # self.APP_ID = app_id 15 | # self.MODEL_ID = model_id 16 | # self.clarifai_llm = Clarifai( 17 | # pat=self.CLARIFAI_PAT, 18 | # user_id=self.USER_ID, 19 | # app_id=self.APP_ID, 20 | # model_id=self.MODEL_ID 21 | # ) 22 | # def generate(self, question): 23 | # return self.clarifai_llm(question) 24 | 25 | # def __call__(self, question): 26 | # return self.clarifai_llm(question) 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /profit/clarifi_agent.py: -------------------------------------------------------------------------------- 1 | import faiss 2 | from langchain.docstore import InMemoryDocstore 3 | from langchain.embeddings import OpenAIEmbeddings 4 | from langchain.tools.human.tool import HumanInputRun 5 | from langchain.vectorstores import FAISS 6 | from langchain_experimental.autonomous_agents import AutoGPT 7 | from profit.tools import ( 8 | ReadFileTool, 9 | WriteFileTool, 10 | process_csv, 11 | query_website_tool, 12 | # zapier_tools, 13 | ) 14 | 15 | ROOT_DIR = "./data/" 16 | 17 | from langchain.llms import Clarifai 18 | 19 | clarifi = Clarifai( 20 | pat="890cdb0cb5aa4795ba51af9670120a1e", 21 | user_id="meta", 22 | app_id="Llama-2", 23 | model_id="llama2-70b-chat" 24 | ) 25 | 26 | 27 | 28 | class Agent: 29 | def __init__( 30 | self, 31 | ai_name="Autobot Swarm Worker", 32 | ai_role="Worker in a swarm", 33 | external_tools = None, 34 | human_in_the_loop=False, 35 | llama = False, 36 | temperature = 0.5, 37 | openai_api_key = None, 38 | ): 39 | self.human_in_the_loop = human_in_the_loop 40 | self.ai_name = ai_name 41 | self.ai_role = ai_role 42 | 43 | self.temperature = temperature 44 | self.llama = llama 45 | self.openai_api_key = openai_api_key 46 | 47 | if self.llama is True: 48 | self.llm = clarifi 49 | else: 50 | pass 51 | 52 | self.setup_tools(external_tools) 53 | self.setup_memory() 54 | self.setup_agent() 55 | 56 | def setup_tools(self, external_tools): 57 | self.tools = [ 58 | WriteFileTool(root_dir=ROOT_DIR), 59 | ReadFileTool(root_dir=ROOT_DIR), 60 | process_csv, 61 | 62 | query_website_tool, 63 | HumanInputRun(), 64 | # zapier_tools, 65 | 66 | ] 67 | if external_tools is not None: 68 | self.tools.extend(external_tools) 69 | 70 | def setup_memory(self): 71 | try: 72 | embeddings_model = OpenAIEmbeddings(openai_api_key=self.openai_api_key) 73 | embedding_size = 1536 74 | index = faiss.IndexFlatL2(embedding_size) 75 | self.vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {}) 76 | except Exception as error: 77 | raise RuntimeError(f"Error setting up memory. Maybe try tuning the embedding size: {error}") 78 | 79 | def setup_agent(self): 80 | try: 81 | self.agent = AutoGPT.from_llm_and_tools( 82 | ai_name=self.ai_name, 83 | ai_role=self.ai_role, 84 | tools=self.tools, 85 | llm=self.llm, 86 | memory=self.vectorstore.as_retriever(search_kwargs={"k": 8}), 87 | human_in_the_loop=self.human_in_the_loop 88 | ) 89 | 90 | except Exception as error: 91 | raise RuntimeError(f"Error setting up agent: {error}") 92 | 93 | def run(self, task): 94 | try: 95 | result = self.agent.run([task]) 96 | return result 97 | except Exception as error: 98 | raise RuntimeError(f"Error while running agent: {error}") 99 | 100 | def __call__(self, task): 101 | return self.run(task) 102 | -------------------------------------------------------------------------------- /profit/llama.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import torch 3 | from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig 4 | 5 | class LLama: 6 | def __init__(self, 7 | model_id = "georgesung/llama2_7b_chat_uncensored", 8 | device: str = None, 9 | max_length: int = 2000, 10 | quantize: bool = False, 11 | quantization_config: dict = None): 12 | self.logger = logging.getLogger(__name__) 13 | self.device = device if device else ('cuda' if torch.cuda.is_available() else 'cpu') 14 | self.model_id = model_id 15 | self.max_length = max_length 16 | 17 | bnb_config = None 18 | if quantize: 19 | if not quantization_config: 20 | quantization_config = { 21 | 'load_in_4bit': True, 22 | 'bnb_4bit_use_double_quant': True, 23 | 'bnb_4bit_quant_type': "nf4", 24 | 'bnb_4bit_compute_dtype': torch.bfloat16 25 | } 26 | bnb_config = BitsAndBytesConfig(**quantization_config) 27 | 28 | try: 29 | self.tokenizer = AutoTokenizer.from_pretrained(self.model_id) 30 | self.model = AutoModelForCausalLM.from_pretrained(self.model_id, 31 | quantization_config=bnb_config) 32 | self.model.to(self.device) 33 | except Exception as e: 34 | self.logger.error(f"Failed to load the model or the tokenizer: {e}") 35 | raise 36 | 37 | def __call__(self, prompt_text: str, max_length: int = None): 38 | max_length = max_length if max_length else self.max_length 39 | try: 40 | inputs = self.tokenizer.encode(prompt_text, return_tensors="pt").to(self.device) 41 | with torch.no_grad(): 42 | outputs = self.model.generate(inputs, max_length=max_length, do_sample=True) 43 | return self.tokenizer.decode(outputs[0], skip_special_tokens=True) 44 | except Exception as e: 45 | self.logger.error(f"Failed to generate the text: {e}") 46 | raise 47 | 48 | def generate(self, prompt_text: str, max_length: int = None): 49 | max_length = max_length if max_length else self.max_length 50 | try: 51 | inputs = self.tokenizer.encode(prompt_text, return_tensors="pt").to(self.device) 52 | with torch.no_grad(): 53 | outputs = self.model.generate(inputs, max_length=max_length, do_sample=True) 54 | return self.tokenizer.decode(outputs[0], skip_special_tokens=True) 55 | except Exception as e: 56 | self.logger.error(f"Failed to generate the text: {e}") 57 | raise 58 | 59 | 60 | # llama = LLama2(quantized=True) 61 | # llama.generate("What is your name") 62 | -------------------------------------------------------------------------------- /profit/main.py: -------------------------------------------------------------------------------- 1 | from profit.clarifi_agent import Agent 2 | 3 | class ProfitPilot: 4 | def __init__( 5 | self, 6 | ai_name: str = None, 7 | ai_role: str = None, 8 | external_tools = None, 9 | company_name: str = None, 10 | company_values: str = None, 11 | conversation_type: str = None, 12 | conversation_purpose: str = None, 13 | company_business: str = None, 14 | salesperson_name: str = None, 15 | human_in_the_loop=False, 16 | llama = True, 17 | conversation_history = None, 18 | openai_api_key = None, 19 | ): 20 | super().__init__() 21 | self.external_tools = external_tools 22 | self.human_in_the_loop = human_in_the_loop 23 | self.ai_name = ai_name 24 | self.ai_role = ai_role 25 | self.company_name = company_name 26 | self.llama = llama 27 | self.conversation_history = conversation_history 28 | self.company_values = company_values 29 | self.conversation_type = conversation_type 30 | self.conversation_purpose = conversation_purpose 31 | self.company_business = company_business 32 | self.salesperson_name = salesperson_name 33 | self.openai_api_key = openai_api_key 34 | 35 | self.ai_role = f""" 36 | You're the best cold emailer of APAC AI, you follow the principles of these books: SPIN Selling, To sell is Human, and FANATICAL Prospecting 37 | 38 | Never forget your name is {self.ai_name}. You work as a {self.ai_role}. 39 | You work at company named {self.company_name}. {self.company_name}'s business is the following: {self.company_business}. 40 | Company values are the following. {self.company_values} 41 | You are contacting a potential prospect in order to {self.conversation_purpose} 42 | Your means of contacting the prospect is {self.conversation_type} 43 | 44 | If you're asked about where you got the user's contact information, say that you got it from public records. 45 | Keep your responses in short length to retain the user's attention. Never produce lists, just answers. 46 | Start the conversation by just a greeting and how is the prospect doing without pitching in your first turn. 47 | When the conversation is over, output 48 | Always think about at which conversation stage you are at before answering: 49 | 50 | 1: Introduction: Start the conversation by introducing yourself and your company. Be polite and respectful while keeping the tone of the conversation professional. Your greeting should be welcoming. Always clarify in your greeting the reason why you are calling. 51 | 2: Qualification: Qualify the prospect by confirming if they are the right person to talk to regarding your product/service. Ensure that they have the authority to make purchasing decisions. 52 | 3: Value proposition: Briefly explain how your product/service can benefit the prospect. Focus on the unique selling points and value proposition of your product/service that sets it apart from competitors. 53 | 4: Needs analysis: Ask open-ended questions to uncover the prospect's needs and pain points. Listen carefully to their responses and take notes. 54 | 5: Solution presentation: Based on the prospect's needs, present your product/service as the solution that can address their pain points. 55 | 6: Objection handling: Address any objections that the prospect may have regarding your product/service. Be prepared to provide evidence or testimonials to support your claims. 56 | 7: Close: Ask for the sale by proposing a next step. This could be a demo, a trial or a meeting with decision-makers. Ensure to summarize what has been discussed and reiterate the benefits. 57 | 8: End conversation: The prospect has to leave to call, the prospect is not interested, or next steps where already determined by the sales agent. 58 | 59 | Example 1: 60 | Conversation history: 61 | {self.salesperson_name}: Hey, good morning! 62 | User: Hello, who is this? 63 | {self.salesperson_name}: This is {self.salesperson_name} calling from {self.company_name}. How are you? 64 | User: I am well, why are you calling? 65 | {self.salesperson_name}: I am calling to talk about options for your home insurance. 66 | User: I am not interested, thanks. 67 | {self.salesperson_name}: Alright, no worries, have a good day! 68 | End of example 1. 69 | 70 | You must respond according to the previous conversation history and the stage of the conversation you are at. 71 | Only generate one response at a time and act as {self.salesperson_name} only! When you are done generating, end with '' to give the user a chance to respond. 72 | 73 | Conversation history: 74 | {self.conversation_history} 75 | {self.salesperson_name}: 76 | """ 77 | 78 | def run(self, task): 79 | node = Agent( 80 | ai_name=self.ai_name, 81 | ai_role=self.ai_role, 82 | human_in_the_loop=self.human_in_the_loop, 83 | external_tools=self.external_tools, 84 | openai_api_key=self.openai_api_key, 85 | llama=self.llama 86 | ) 87 | response = node.run(task) 88 | print(response) 89 | 90 | -------------------------------------------------------------------------------- /profit/tools.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | import os 3 | 4 | # Tools 5 | from contextlib import contextmanager 6 | from typing import Optional 7 | 8 | import pandas as pd 9 | from langchain.agents import tool 10 | from langchain.agents.agent_toolkits.pandas.base import create_pandas_dataframe_agent 11 | from langchain.chains.qa_with_sources.loading import load_qa_with_sources_chain 12 | from langchain.docstore.document import Document 13 | from langchain.memory.chat_message_histories import FileChatMessageHistory 14 | from langchain.tools.human.tool import HumanInputRun 15 | 16 | ROOT_DIR = "./data/" 17 | 18 | #gmail 19 | from langchain.agents.agent_toolkits import GmailToolkit 20 | from langchain.chains.qa_with_sources.loading import BaseCombineDocumentsChain 21 | from langchain.chat_models import ChatOpenAI 22 | from langchain.llms import Clarifai 23 | from langchain.text_splitter import RecursiveCharacterTextSplitter 24 | from langchain.tools import BaseTool, DuckDuckGoSearchRun 25 | from langchain.tools.file_management.read import ReadFileTool 26 | from langchain.tools.file_management.write import WriteFileTool 27 | from langchain.tools.gmail.utils import build_resource_service, get_gmail_credentials 28 | from pydantic import Field 29 | 30 | 31 | llm = Clarifai( 32 | pat="890cdb0cb5aa4795ba51af9670120a1e", 33 | user_id="meta", 34 | app_id="Llama-2", 35 | model_id="llama2-70b-chat" 36 | ) 37 | 38 | 39 | 40 | 41 | 42 | # from langchain.agents.agent_toolkits import ZapierToolkit 43 | # from langchain.utilities.zapier import ZapierNLAWrapper 44 | 45 | 46 | @contextmanager 47 | def pushd(new_dir): 48 | """Context manager for changing the current working directory.""" 49 | prev_dir = os.getcwd() 50 | os.chdir(new_dir) 51 | try: 52 | yield 53 | finally: 54 | os.chdir(prev_dir) 55 | 56 | 57 | @tool 58 | def process_csv( 59 | llm, csv_file_path: str, instructions: str, output_path: Optional[str] = None 60 | ) -> str: 61 | """Process a CSV by with pandas in a limited REPL.\ 62 | Only use this after writing data to disk as a csv file.\ 63 | Any figures must be saved to disk to be viewed by the human.\ 64 | Instructions should be written in natural language, not code. Assume the dataframe is already loaded.""" 65 | with pushd(ROOT_DIR): 66 | try: 67 | df = pd.read_csv(csv_file_path) 68 | except Exception as e: 69 | return f"Error: {e}" 70 | agent = create_pandas_dataframe_agent(llm, df, max_iterations=30, verbose=False) 71 | if output_path is not None: 72 | instructions += f" Save output to disk at {output_path}" 73 | try: 74 | result = agent.run(instructions) 75 | return result 76 | except Exception as e: 77 | return f"Error: {e}" 78 | 79 | 80 | async def async_load_playwright(url: str) -> str: 81 | """Load the specified URLs using Playwright and parse using BeautifulSoup.""" 82 | from bs4 import BeautifulSoup 83 | from playwright.async_api import async_playwright 84 | 85 | results = "" 86 | async with async_playwright() as p: 87 | browser = await p.chromium.launch(headless=True) 88 | try: 89 | page = await browser.new_page() 90 | await page.goto(url) 91 | 92 | page_source = await page.content() 93 | soup = BeautifulSoup(page_source, "html.parser") 94 | 95 | for script in soup(["script", "style"]): 96 | script.extract() 97 | 98 | text = soup.get_text() 99 | lines = (line.strip() for line in text.splitlines()) 100 | chunks = (phrase.strip() for line in lines for phrase in line.split(" ")) 101 | results = "\n".join(chunk for chunk in chunks if chunk) 102 | except Exception as e: 103 | results = f"Error: {e}" 104 | await browser.close() 105 | return results 106 | 107 | 108 | def run_async(coro): 109 | event_loop = asyncio.get_event_loop() 110 | return event_loop.run_until_complete(coro) 111 | 112 | 113 | @tool 114 | def browse_web_page(url: str) -> str: 115 | """Verbose way to scrape a whole webpage. Likely to cause issues parsing.""" 116 | return run_async(async_load_playwright(url)) 117 | 118 | 119 | def _get_text_splitter(): 120 | return RecursiveCharacterTextSplitter( 121 | # Set a really small chunk size, just to show. 122 | chunk_size=500, 123 | chunk_overlap=20, 124 | length_function=len, 125 | ) 126 | 127 | 128 | class WebpageQATool(BaseTool): 129 | name = "query_webpage" 130 | description = ( 131 | "Browse a webpage and retrieve the information relevant to the question." 132 | ) 133 | text_splitter: RecursiveCharacterTextSplitter = Field( 134 | default_factory=_get_text_splitter 135 | ) 136 | qa_chain: BaseCombineDocumentsChain 137 | 138 | def _run(self, url: str, question: str) -> str: 139 | """Useful for browsing websites and scraping the text information.""" 140 | result = browse_web_page.run(url) 141 | docs = [Document(page_content=result, metadata={"source": url})] 142 | web_docs = self.text_splitter.split_documents(docs) 143 | results = [] 144 | # TODO: Handle this with a MapReduceChain 145 | for i in range(0, len(web_docs), 4): 146 | input_docs = web_docs[i : i + 4] 147 | window_result = self.qa_chain( 148 | {"input_documents": input_docs, "question": question}, 149 | return_only_outputs=True, 150 | ) 151 | results.append(f"Response from window {i} - {window_result}") 152 | results_docs = [ 153 | Document(page_content="\n".join(results), metadata={"source": url}) 154 | ] 155 | return self.qa_chain( 156 | {"input_documents": results_docs, "question": question}, 157 | return_only_outputs=True, 158 | ) 159 | 160 | async def _arun(self, url: str, question: str) -> str: 161 | raise NotImplementedError 162 | 163 | query_website_tool = WebpageQATool(qa_chain=load_qa_with_sources_chain(llm)) 164 | 165 | # !pip install duckduckgo_search 166 | # web_search = DuckDuckGoSearchRun() 167 | 168 | # get from https://nla.zapier.com/docs/authentication/ after logging in): 169 | # os.environ["ZAPIER_NLA_API_KEY"] = os.environ.get("ZAPIER_NLA_API_KEY", "") 170 | 171 | # zapier = ZapierNLAWrapper() 172 | # zapier_toolkit = ZapierToolkit.from_zapier_nla_wrapper(zapier) 173 | # zapier_tools = zapier_toolkit.get_tools() 174 | 175 | 176 | 177 | 178 | # # Gmail 179 | # class GmailTool: 180 | # def __init__( 181 | # self, 182 | # token_file: str = "token.json", 183 | # scopes = ["https://mail.google.com/"], 184 | # client_secrets_file = "credientials.json", 185 | # ): 186 | # super().__init__() 187 | # self.token_file = token_file 188 | # self.scopes = scopes 189 | # self.client_secrets_file = client_secrets_file 190 | # def run(self): 191 | # self.credentials = get_gmail_credentials( 192 | # token_file=self.token_file, 193 | # scopes=self.scopes, 194 | # client_secrets_file=self.client_secrets_file 195 | # ) 196 | 197 | # self.api_resource = build_resource_service(credentials=self.credentials) 198 | # self.toolkit = GmailToolkit(api_resource=self.api_resource) 199 | # self.tools = self.toolkit.get_tools() 200 | # return self.tools 201 | # gmailtool = GmailTool() 202 | # gmailtool = gmailtool.run() -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["poetry-core>=1.0.0"] 3 | build-backend = "poetry.core.masonry.api" 4 | 5 | [tool.poetry] 6 | name = "profit-pilot" 7 | version = "0.2.8" 8 | description = "ProfitPilot - AI Agents" 9 | license = "MIT" 10 | authors = ["Kye Gomez "] 11 | homepage = "https://github.com/kyegomez/ProfitPilot" 12 | documentation = "" # Add this if you have documentation. 13 | readme = "README.md" # Assuming you have a README.md 14 | repository = "https://github.com/kyegomez/ProfitPilot" 15 | keywords = ["artificial intelligence", "deep learning", "optimizers", "Prompt Engineering"] 16 | classifiers = [ 17 | "Development Status :: 4 - Beta", 18 | "Intended Audience :: Developers", 19 | "Topic :: Scientific/Engineering :: Artificial Intelligence", 20 | "License :: OSI Approved :: MIT License", 21 | "Programming Language :: Python :: 3.6" 22 | ] 23 | packages = [ 24 | { include = "profit" }, 25 | { include = "profit/**/*.py" }, 26 | ] 27 | 28 | 29 | [tool.poetry.dependencies] 30 | python = "^3.6" 31 | langchain-experimental = "*" 32 | langchain = "*" 33 | transformers = "*" 34 | pydantic = "*" 35 | openai = "*" 36 | faiss-gpu = "1.7.2" 37 | torch = "*" 38 | pandas = "*" 39 | clarifai = "*" 40 | google-api-python-client = "*" 41 | google-auth-oauthlib = "*" 42 | google-auth-httplib2 = "*" 43 | beautifulsoup4 = "*" 44 | 45 | [tool.poetry.dev-dependencies] 46 | # Add development dependencies here 47 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | langchain 2 | transformers 3 | faiss-gpu 4 | langchain-experimental==0.0.10 5 | torch 6 | pandas 7 | sentencepiece 8 | openai 9 | tiktoken 10 | google-api-python-client 11 | google-auth-oauthlib 12 | google-auth-httplib2 13 | beautifulsoup4 14 | clarifai -------------------------------------------------------------------------------- /ven/bin/f2py: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from numpy.f2py.f2py2e import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/bin/f2py3: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from numpy.f2py.f2py2e import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/bin/f2py3.10: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from numpy.f2py.f2py2e import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/bin/jsonschema: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from jsonschema.cli import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/bin/langchain-server: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from langchain.server import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/bin/langsmith: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from langsmith.cli.main import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/bin/markdown-it: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from markdown_it.cli.parse import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/bin/normalizer: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from charset_normalizer.cli.normalizer import cli_detect 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(cli_detect()) 9 | -------------------------------------------------------------------------------- /ven/bin/pygmentize: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from pygments.cmdline import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/bin/streamlit: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from streamlit.web.cli import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/bin/streamlit.cmd: -------------------------------------------------------------------------------- 1 | rem Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022) 2 | rem 3 | rem Licensed under the Apache License, Version 2.0 (the "License"); 4 | rem you may not use this file except in compliance with the License. 5 | rem You may obtain a copy of the License at 6 | rem 7 | rem http://www.apache.org/licenses/LICENSE-2.0 8 | rem 9 | rem Unless required by applicable law or agreed to in writing, software 10 | rem distributed under the License is distributed on an "AS IS" BASIS, 11 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | rem See the License for the specific language governing permissions and 13 | rem limitations under the License. 14 | 15 | @echo OFF 16 | python -m streamlit %* 17 | -------------------------------------------------------------------------------- /ven/bin/watchmedo: -------------------------------------------------------------------------------- 1 | #!/home/anon/wsl-repos/ProfitPilot/ven/bin/python3 2 | # -*- coding: utf-8 -*- 3 | import re 4 | import sys 5 | from watchdog.watchmedo import main 6 | if __name__ == '__main__': 7 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 8 | sys.exit(main()) 9 | -------------------------------------------------------------------------------- /ven/etc/jupyter/nbconfig/notebook.d/pydeck.json: -------------------------------------------------------------------------------- 1 | { 2 | "load_extensions": { 3 | "pydeck/extension": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /ven/include/site/python3.10/greenlet/greenlet.h: -------------------------------------------------------------------------------- 1 | /* -*- indent-tabs-mode: nil; tab-width: 4; -*- */ 2 | 3 | /* Greenlet object interface */ 4 | 5 | #ifndef Py_GREENLETOBJECT_H 6 | #define Py_GREENLETOBJECT_H 7 | 8 | 9 | #include 10 | 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | 15 | /* This is deprecated and undocumented. It does not change. */ 16 | #define GREENLET_VERSION "1.0.0" 17 | 18 | #ifndef GREENLET_MODULE 19 | #define implementation_ptr_t void* 20 | #endif 21 | 22 | typedef struct _greenlet { 23 | PyObject_HEAD 24 | PyObject* weakreflist; 25 | PyObject* dict; 26 | implementation_ptr_t pimpl; 27 | } PyGreenlet; 28 | 29 | #define PyGreenlet_Check(op) (op && PyObject_TypeCheck(op, &PyGreenlet_Type)) 30 | 31 | 32 | /* C API functions */ 33 | 34 | /* Total number of symbols that are exported */ 35 | #define PyGreenlet_API_pointers 12 36 | 37 | #define PyGreenlet_Type_NUM 0 38 | #define PyExc_GreenletError_NUM 1 39 | #define PyExc_GreenletExit_NUM 2 40 | 41 | #define PyGreenlet_New_NUM 3 42 | #define PyGreenlet_GetCurrent_NUM 4 43 | #define PyGreenlet_Throw_NUM 5 44 | #define PyGreenlet_Switch_NUM 6 45 | #define PyGreenlet_SetParent_NUM 7 46 | 47 | #define PyGreenlet_MAIN_NUM 8 48 | #define PyGreenlet_STARTED_NUM 9 49 | #define PyGreenlet_ACTIVE_NUM 10 50 | #define PyGreenlet_GET_PARENT_NUM 11 51 | 52 | #ifndef GREENLET_MODULE 53 | /* This section is used by modules that uses the greenlet C API */ 54 | static void** _PyGreenlet_API = NULL; 55 | 56 | # define PyGreenlet_Type \ 57 | (*(PyTypeObject*)_PyGreenlet_API[PyGreenlet_Type_NUM]) 58 | 59 | # define PyExc_GreenletError \ 60 | ((PyObject*)_PyGreenlet_API[PyExc_GreenletError_NUM]) 61 | 62 | # define PyExc_GreenletExit \ 63 | ((PyObject*)_PyGreenlet_API[PyExc_GreenletExit_NUM]) 64 | 65 | /* 66 | * PyGreenlet_New(PyObject *args) 67 | * 68 | * greenlet.greenlet(run, parent=None) 69 | */ 70 | # define PyGreenlet_New \ 71 | (*(PyGreenlet * (*)(PyObject * run, PyGreenlet * parent)) \ 72 | _PyGreenlet_API[PyGreenlet_New_NUM]) 73 | 74 | /* 75 | * PyGreenlet_GetCurrent(void) 76 | * 77 | * greenlet.getcurrent() 78 | */ 79 | # define PyGreenlet_GetCurrent \ 80 | (*(PyGreenlet * (*)(void)) _PyGreenlet_API[PyGreenlet_GetCurrent_NUM]) 81 | 82 | /* 83 | * PyGreenlet_Throw( 84 | * PyGreenlet *greenlet, 85 | * PyObject *typ, 86 | * PyObject *val, 87 | * PyObject *tb) 88 | * 89 | * g.throw(...) 90 | */ 91 | # define PyGreenlet_Throw \ 92 | (*(PyObject * (*)(PyGreenlet * self, \ 93 | PyObject * typ, \ 94 | PyObject * val, \ 95 | PyObject * tb)) \ 96 | _PyGreenlet_API[PyGreenlet_Throw_NUM]) 97 | 98 | /* 99 | * PyGreenlet_Switch(PyGreenlet *greenlet, PyObject *args) 100 | * 101 | * g.switch(*args, **kwargs) 102 | */ 103 | # define PyGreenlet_Switch \ 104 | (*(PyObject * \ 105 | (*)(PyGreenlet * greenlet, PyObject * args, PyObject * kwargs)) \ 106 | _PyGreenlet_API[PyGreenlet_Switch_NUM]) 107 | 108 | /* 109 | * PyGreenlet_SetParent(PyObject *greenlet, PyObject *new_parent) 110 | * 111 | * g.parent = new_parent 112 | */ 113 | # define PyGreenlet_SetParent \ 114 | (*(int (*)(PyGreenlet * greenlet, PyGreenlet * nparent)) \ 115 | _PyGreenlet_API[PyGreenlet_SetParent_NUM]) 116 | 117 | /* 118 | * PyGreenlet_GetParent(PyObject* greenlet) 119 | * 120 | * return greenlet.parent; 121 | * 122 | * This could return NULL even if there is no exception active. 123 | * If it does not return NULL, you are responsible for decrementing the 124 | * reference count. 125 | */ 126 | # define PyGreenlet_GetParent \ 127 | (*(PyGreenlet* (*)(PyGreenlet*)) \ 128 | _PyGreenlet_API[PyGreenlet_GET_PARENT_NUM]) 129 | 130 | /* 131 | * deprecated, undocumented alias. 132 | */ 133 | # define PyGreenlet_GET_PARENT PyGreenlet_GetParent 134 | 135 | # define PyGreenlet_MAIN \ 136 | (*(int (*)(PyGreenlet*)) \ 137 | _PyGreenlet_API[PyGreenlet_MAIN_NUM]) 138 | 139 | # define PyGreenlet_STARTED \ 140 | (*(int (*)(PyGreenlet*)) \ 141 | _PyGreenlet_API[PyGreenlet_STARTED_NUM]) 142 | 143 | # define PyGreenlet_ACTIVE \ 144 | (*(int (*)(PyGreenlet*)) \ 145 | _PyGreenlet_API[PyGreenlet_ACTIVE_NUM]) 146 | 147 | 148 | 149 | 150 | /* Macro that imports greenlet and initializes C API */ 151 | /* NOTE: This has actually moved to ``greenlet._greenlet._C_API``, but we 152 | keep the older definition to be sure older code that might have a copy of 153 | the header still works. */ 154 | # define PyGreenlet_Import() \ 155 | { \ 156 | _PyGreenlet_API = (void**)PyCapsule_Import("greenlet._C_API", 0); \ 157 | } 158 | 159 | #endif /* GREENLET_MODULE */ 160 | 161 | #ifdef __cplusplus 162 | } 163 | #endif 164 | #endif /* !Py_GREENLETOBJECT_H */ 165 | -------------------------------------------------------------------------------- /ven/share/jupyter/nbextensions/pydeck/extensionRequires.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | define(function() { 3 | 'use strict'; 4 | requirejs.config({ 5 | map: { 6 | '*': { 7 | '@deck.gl/jupyter-widget': 'nbextensions/pydeck/index' 8 | } 9 | } 10 | }); 11 | // Export the required load_ipython_extension function 12 | return { 13 | load_ipython_extension: function() {} 14 | }; 15 | }); 16 | -------------------------------------------------------------------------------- /workflow_schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "ParsingModel[dict[autopr.models.executable.ExecutableId, autopr.models.config.elements.WorkflowDefinition]]", 3 | "type": "object", 4 | "additionalProperties": { 5 | "$ref": "#/definitions/WorkflowDefinition" 6 | }, 7 | "definitions": { 8 | "TemplateDeclaration": { 9 | "title": "TemplateDeclaration", 10 | "description": "A template declaration is a string that can be rendered within a context.", 11 | "type": "object", 12 | "properties": { 13 | "template": { 14 | "title": "Template", 15 | "anyOf": [ 16 | { 17 | "type": "string" 18 | }, 19 | { 20 | "type": "object" 21 | }, 22 | { 23 | "type": "array", 24 | "items": {} 25 | } 26 | ] 27 | } 28 | }, 29 | "required": [ 30 | "template" 31 | ], 32 | "additionalProperties": false 33 | }, 34 | "VarDeclaration": { 35 | "title": "VarDeclaration", 36 | "description": "A variable declaration is a string that references a variable (or path to nested variable) in the context.", 37 | "type": "object", 38 | "properties": { 39 | "var": { 40 | "title": "Var", 41 | "type": "string" 42 | } 43 | }, 44 | "required": [ 45 | "var" 46 | ], 47 | "additionalProperties": false 48 | }, 49 | "ConstDeclaration": { 50 | "title": "ConstDeclaration", 51 | "description": "A constant declaration is a string that is interpreted as a constant value.", 52 | "type": "object", 53 | "properties": { 54 | "const": { 55 | "title": "Const" 56 | } 57 | }, 58 | "additionalProperties": false 59 | }, 60 | "LambdaDeclaration": { 61 | "title": "LambdaDeclaration", 62 | "description": "A lambda declaration is a python expression that can be evaluated within a context.", 63 | "type": "object", 64 | "properties": { 65 | "lambda": { 66 | "title": "Lambda", 67 | "type": "string" 68 | } 69 | }, 70 | "required": [ 71 | "lambda" 72 | ], 73 | "additionalProperties": false 74 | }, 75 | "Param": { 76 | "title": "Param", 77 | "type": "object", 78 | "properties": { 79 | "name": { 80 | "title": "Name", 81 | "type": "string" 82 | }, 83 | "default": { 84 | "title": "Default", 85 | "anyOf": [ 86 | { 87 | "type": "string" 88 | }, 89 | { 90 | "type": "object" 91 | }, 92 | { 93 | "type": "array", 94 | "items": {} 95 | }, 96 | { 97 | "$ref": "#/definitions/TemplateDeclaration" 98 | }, 99 | { 100 | "$ref": "#/definitions/VarDeclaration" 101 | }, 102 | { 103 | "$ref": "#/definitions/ConstDeclaration" 104 | }, 105 | { 106 | "$ref": "#/definitions/LambdaDeclaration" 107 | } 108 | ] 109 | } 110 | }, 111 | "required": [ 112 | "name", 113 | "default" 114 | ], 115 | "additionalProperties": false 116 | }, 117 | "ParamDeclaration": { 118 | "title": "ParamDeclaration", 119 | "description": "A parameter declaration is a string that references a parameter passed in trigger invocation.", 120 | "type": "object", 121 | "properties": { 122 | "param": { 123 | "$ref": "#/definitions/Param" 124 | } 125 | }, 126 | "required": [ 127 | "param" 128 | ], 129 | "additionalProperties": false 130 | }, 131 | "commentInputsActionFieldTemplate": { 132 | "title": "commentInputsActionFieldTemplate", 133 | "type": "object", 134 | "properties": { 135 | "comment": { 136 | "title": "Comment", 137 | "anyOf": [ 138 | { 139 | "type": "string" 140 | }, 141 | { 142 | "$ref": "#/definitions/TemplateDeclaration" 143 | }, 144 | { 145 | "$ref": "#/definitions/VarDeclaration" 146 | }, 147 | { 148 | "$ref": "#/definitions/ConstDeclaration" 149 | }, 150 | { 151 | "$ref": "#/definitions/LambdaDeclaration" 152 | }, 153 | { 154 | "$ref": "#/definitions/ParamDeclaration" 155 | } 156 | ] 157 | }, 158 | "issue_number": { 159 | "title": "Issue Number", 160 | "anyOf": [ 161 | { 162 | "type": "integer" 163 | }, 164 | { 165 | "$ref": "#/definitions/TemplateDeclaration" 166 | }, 167 | { 168 | "$ref": "#/definitions/VarDeclaration" 169 | }, 170 | { 171 | "$ref": "#/definitions/ConstDeclaration" 172 | }, 173 | { 174 | "$ref": "#/definitions/LambdaDeclaration" 175 | }, 176 | { 177 | "$ref": "#/definitions/ParamDeclaration" 178 | } 179 | ] 180 | } 181 | }, 182 | "required": [ 183 | "comment" 184 | ], 185 | "additionalProperties": false 186 | }, 187 | "commentActionModel": { 188 | "title": "commentActionModel", 189 | "type": "object", 190 | "properties": { 191 | "name": { 192 | "title": "Name", 193 | "type": "string" 194 | }, 195 | "description": { 196 | "title": "Description", 197 | "type": "string" 198 | }, 199 | "action": { 200 | "title": "Action", 201 | "enum": [ 202 | "comment" 203 | ], 204 | "type": "string" 205 | }, 206 | "inputs": { 207 | "$ref": "#/definitions/commentInputsActionFieldTemplate" 208 | }, 209 | "outputs": { 210 | "title": "Outputs", 211 | "type": "null" 212 | } 213 | }, 214 | "required": [ 215 | "action", 216 | "inputs" 217 | ], 218 | "additionalProperties": false 219 | }, 220 | "commentIterableActionModel": { 221 | "title": "commentIterableActionModel", 222 | "type": "object", 223 | "properties": { 224 | "name": { 225 | "title": "Name", 226 | "type": "string" 227 | }, 228 | "description": { 229 | "title": "Description", 230 | "type": "string" 231 | }, 232 | "iterate": { 233 | "title": "Iterate", 234 | "anyOf": [ 235 | { 236 | "type": "integer" 237 | }, 238 | { 239 | "type": "string" 240 | } 241 | ] 242 | }, 243 | "as": { 244 | "title": "As", 245 | "type": "string" 246 | }, 247 | "allow_finish_early": { 248 | "title": "Allow Finish Early", 249 | "default": false, 250 | "type": "boolean" 251 | }, 252 | "action": { 253 | "title": "Action", 254 | "enum": [ 255 | "comment" 256 | ], 257 | "type": "string" 258 | }, 259 | "inputs": { 260 | "$ref": "#/definitions/commentInputsActionFieldTemplate" 261 | }, 262 | "list_outputs": { 263 | "title": "List Outputs", 264 | "type": "null" 265 | } 266 | }, 267 | "required": [ 268 | "iterate", 269 | "action", 270 | "inputs" 271 | ], 272 | "additionalProperties": false 273 | }, 274 | "set_issue_titleInputsActionFieldTemplate": { 275 | "title": "set_issue_titleInputsActionFieldTemplate", 276 | "type": "object", 277 | "properties": { 278 | "title": { 279 | "title": "Title", 280 | "anyOf": [ 281 | { 282 | "type": "string" 283 | }, 284 | { 285 | "$ref": "#/definitions/TemplateDeclaration" 286 | }, 287 | { 288 | "$ref": "#/definitions/VarDeclaration" 289 | }, 290 | { 291 | "$ref": "#/definitions/ConstDeclaration" 292 | }, 293 | { 294 | "$ref": "#/definitions/LambdaDeclaration" 295 | }, 296 | { 297 | "$ref": "#/definitions/ParamDeclaration" 298 | } 299 | ] 300 | } 301 | }, 302 | "required": [ 303 | "title" 304 | ], 305 | "additionalProperties": false 306 | }, 307 | "set_issue_titleActionModel": { 308 | "title": "set_issue_titleActionModel", 309 | "type": "object", 310 | "properties": { 311 | "name": { 312 | "title": "Name", 313 | "type": "string" 314 | }, 315 | "description": { 316 | "title": "Description", 317 | "type": "string" 318 | }, 319 | "action": { 320 | "title": "Action", 321 | "enum": [ 322 | "set_issue_title" 323 | ], 324 | "type": "string" 325 | }, 326 | "inputs": { 327 | "$ref": "#/definitions/set_issue_titleInputsActionFieldTemplate" 328 | }, 329 | "outputs": { 330 | "title": "Outputs", 331 | "type": "null" 332 | } 333 | }, 334 | "required": [ 335 | "action", 336 | "inputs" 337 | ], 338 | "additionalProperties": false 339 | }, 340 | "set_issue_titleIterableActionModel": { 341 | "title": "set_issue_titleIterableActionModel", 342 | "type": "object", 343 | "properties": { 344 | "name": { 345 | "title": "Name", 346 | "type": "string" 347 | }, 348 | "description": { 349 | "title": "Description", 350 | "type": "string" 351 | }, 352 | "iterate": { 353 | "title": "Iterate", 354 | "anyOf": [ 355 | { 356 | "type": "integer" 357 | }, 358 | { 359 | "type": "string" 360 | } 361 | ] 362 | }, 363 | "as": { 364 | "title": "As", 365 | "type": "string" 366 | }, 367 | "allow_finish_early": { 368 | "title": "Allow Finish Early", 369 | "default": false, 370 | "type": "boolean" 371 | }, 372 | "action": { 373 | "title": "Action", 374 | "enum": [ 375 | "set_issue_title" 376 | ], 377 | "type": "string" 378 | }, 379 | "inputs": { 380 | "$ref": "#/definitions/set_issue_titleInputsActionFieldTemplate" 381 | }, 382 | "list_outputs": { 383 | "title": "List Outputs", 384 | "type": "null" 385 | } 386 | }, 387 | "required": [ 388 | "iterate", 389 | "action", 390 | "inputs" 391 | ], 392 | "additionalProperties": false 393 | }, 394 | "crawl_folderInputsActionFieldTemplate": { 395 | "title": "crawl_folderInputsActionFieldTemplate", 396 | "type": "object", 397 | "properties": { 398 | "entries_to_ignore": { 399 | "title": "Entries To Ignore", 400 | "anyOf": [ 401 | { 402 | "type": "array", 403 | "items": { 404 | "type": "string" 405 | } 406 | }, 407 | { 408 | "$ref": "#/definitions/TemplateDeclaration" 409 | }, 410 | { 411 | "$ref": "#/definitions/VarDeclaration" 412 | }, 413 | { 414 | "$ref": "#/definitions/ConstDeclaration" 415 | }, 416 | { 417 | "$ref": "#/definitions/LambdaDeclaration" 418 | }, 419 | { 420 | "$ref": "#/definitions/ParamDeclaration" 421 | } 422 | ] 423 | }, 424 | "folder_path": { 425 | "title": "Folder Path", 426 | "anyOf": [ 427 | { 428 | "type": "string" 429 | }, 430 | { 431 | "$ref": "#/definitions/TemplateDeclaration" 432 | }, 433 | { 434 | "$ref": "#/definitions/VarDeclaration" 435 | }, 436 | { 437 | "$ref": "#/definitions/ConstDeclaration" 438 | }, 439 | { 440 | "$ref": "#/definitions/LambdaDeclaration" 441 | }, 442 | { 443 | "$ref": "#/definitions/ParamDeclaration" 444 | } 445 | ] 446 | }, 447 | "ignore_binary_files": { 448 | "title": "Ignore Binary Files", 449 | "anyOf": [ 450 | { 451 | "type": "boolean" 452 | }, 453 | { 454 | "$ref": "#/definitions/TemplateDeclaration" 455 | }, 456 | { 457 | "$ref": "#/definitions/VarDeclaration" 458 | }, 459 | { 460 | "$ref": "#/definitions/ConstDeclaration" 461 | }, 462 | { 463 | "$ref": "#/definitions/LambdaDeclaration" 464 | }, 465 | { 466 | "$ref": "#/definitions/ParamDeclaration" 467 | } 468 | ] 469 | } 470 | }, 471 | "required": [ 472 | "folder_path" 473 | ], 474 | "additionalProperties": false 475 | }, 476 | "crawl_folderOutputsActionFieldTemplate": { 477 | "title": "crawl_folderOutputsActionFieldTemplate", 478 | "type": "object", 479 | "properties": { 480 | "contents": { 481 | "title": "Contents", 482 | "type": "string" 483 | } 484 | }, 485 | "additionalProperties": false 486 | }, 487 | "crawl_folderActionModel": { 488 | "title": "crawl_folderActionModel", 489 | "type": "object", 490 | "properties": { 491 | "name": { 492 | "title": "Name", 493 | "type": "string" 494 | }, 495 | "description": { 496 | "title": "Description", 497 | "type": "string" 498 | }, 499 | "action": { 500 | "title": "Action", 501 | "enum": [ 502 | "crawl_folder" 503 | ], 504 | "type": "string" 505 | }, 506 | "inputs": { 507 | "$ref": "#/definitions/crawl_folderInputsActionFieldTemplate" 508 | }, 509 | "outputs": { 510 | "title": "Outputs", 511 | "default": {}, 512 | "allOf": [ 513 | { 514 | "$ref": "#/definitions/crawl_folderOutputsActionFieldTemplate" 515 | } 516 | ] 517 | } 518 | }, 519 | "required": [ 520 | "action", 521 | "inputs" 522 | ], 523 | "additionalProperties": false 524 | }, 525 | "crawl_folderIterableActionModel": { 526 | "title": "crawl_folderIterableActionModel", 527 | "type": "object", 528 | "properties": { 529 | "name": { 530 | "title": "Name", 531 | "type": "string" 532 | }, 533 | "description": { 534 | "title": "Description", 535 | "type": "string" 536 | }, 537 | "iterate": { 538 | "title": "Iterate", 539 | "anyOf": [ 540 | { 541 | "type": "integer" 542 | }, 543 | { 544 | "type": "string" 545 | } 546 | ] 547 | }, 548 | "as": { 549 | "title": "As", 550 | "type": "string" 551 | }, 552 | "allow_finish_early": { 553 | "title": "Allow Finish Early", 554 | "default": false, 555 | "type": "boolean" 556 | }, 557 | "action": { 558 | "title": "Action", 559 | "enum": [ 560 | "crawl_folder" 561 | ], 562 | "type": "string" 563 | }, 564 | "inputs": { 565 | "$ref": "#/definitions/crawl_folderInputsActionFieldTemplate" 566 | }, 567 | "list_outputs": { 568 | "title": "List Outputs", 569 | "default": {}, 570 | "allOf": [ 571 | { 572 | "$ref": "#/definitions/crawl_folderOutputsActionFieldTemplate" 573 | } 574 | ] 575 | } 576 | }, 577 | "required": [ 578 | "iterate", 579 | "action", 580 | "inputs" 581 | ], 582 | "additionalProperties": false 583 | }, 584 | "bashBashInputsActionFieldTemplate": { 585 | "title": "bashBashInputsActionFieldTemplate", 586 | "type": "object", 587 | "properties": { 588 | "command": { 589 | "title": "Command", 590 | "anyOf": [ 591 | { 592 | "type": "string" 593 | }, 594 | { 595 | "$ref": "#/definitions/TemplateDeclaration" 596 | }, 597 | { 598 | "$ref": "#/definitions/VarDeclaration" 599 | }, 600 | { 601 | "$ref": "#/definitions/ConstDeclaration" 602 | }, 603 | { 604 | "$ref": "#/definitions/LambdaDeclaration" 605 | }, 606 | { 607 | "$ref": "#/definitions/ParamDeclaration" 608 | } 609 | ] 610 | } 611 | }, 612 | "required": [ 613 | "command" 614 | ], 615 | "additionalProperties": false 616 | }, 617 | "bashBashOutputsActionFieldTemplate": { 618 | "title": "bashBashOutputsActionFieldTemplate", 619 | "type": "object", 620 | "properties": { 621 | "stdout": { 622 | "title": "Stdout", 623 | "type": "string" 624 | }, 625 | "stderr": { 626 | "title": "Stderr", 627 | "type": "string" 628 | } 629 | }, 630 | "additionalProperties": false 631 | }, 632 | "bashActionModel": { 633 | "title": "bashActionModel", 634 | "type": "object", 635 | "properties": { 636 | "name": { 637 | "title": "Name", 638 | "type": "string" 639 | }, 640 | "description": { 641 | "title": "Description", 642 | "type": "string" 643 | }, 644 | "action": { 645 | "title": "Action", 646 | "enum": [ 647 | "bash" 648 | ], 649 | "type": "string" 650 | }, 651 | "inputs": { 652 | "$ref": "#/definitions/bashBashInputsActionFieldTemplate" 653 | }, 654 | "outputs": { 655 | "title": "Outputs", 656 | "default": {}, 657 | "allOf": [ 658 | { 659 | "$ref": "#/definitions/bashBashOutputsActionFieldTemplate" 660 | } 661 | ] 662 | } 663 | }, 664 | "required": [ 665 | "action", 666 | "inputs" 667 | ], 668 | "additionalProperties": false 669 | }, 670 | "bashIterableActionModel": { 671 | "title": "bashIterableActionModel", 672 | "type": "object", 673 | "properties": { 674 | "name": { 675 | "title": "Name", 676 | "type": "string" 677 | }, 678 | "description": { 679 | "title": "Description", 680 | "type": "string" 681 | }, 682 | "iterate": { 683 | "title": "Iterate", 684 | "anyOf": [ 685 | { 686 | "type": "integer" 687 | }, 688 | { 689 | "type": "string" 690 | } 691 | ] 692 | }, 693 | "as": { 694 | "title": "As", 695 | "type": "string" 696 | }, 697 | "allow_finish_early": { 698 | "title": "Allow Finish Early", 699 | "default": false, 700 | "type": "boolean" 701 | }, 702 | "action": { 703 | "title": "Action", 704 | "enum": [ 705 | "bash" 706 | ], 707 | "type": "string" 708 | }, 709 | "inputs": { 710 | "$ref": "#/definitions/bashBashInputsActionFieldTemplate" 711 | }, 712 | "list_outputs": { 713 | "title": "List Outputs", 714 | "default": {}, 715 | "allOf": [ 716 | { 717 | "$ref": "#/definitions/bashBashOutputsActionFieldTemplate" 718 | } 719 | ] 720 | } 721 | }, 722 | "required": [ 723 | "iterate", 724 | "action", 725 | "inputs" 726 | ], 727 | "additionalProperties": false 728 | }, 729 | "commit_and_pushInputsActionFieldTemplate": { 730 | "title": "commit_and_pushInputsActionFieldTemplate", 731 | "type": "object", 732 | "properties": { 733 | "commit_message": { 734 | "title": "Commit Message", 735 | "anyOf": [ 736 | { 737 | "type": "string" 738 | }, 739 | { 740 | "$ref": "#/definitions/TemplateDeclaration" 741 | }, 742 | { 743 | "$ref": "#/definitions/VarDeclaration" 744 | }, 745 | { 746 | "$ref": "#/definitions/ConstDeclaration" 747 | }, 748 | { 749 | "$ref": "#/definitions/LambdaDeclaration" 750 | }, 751 | { 752 | "$ref": "#/definitions/ParamDeclaration" 753 | } 754 | ] 755 | }, 756 | "filepaths": { 757 | "title": "Filepaths", 758 | "anyOf": [ 759 | { 760 | "type": "array", 761 | "items": { 762 | "type": "string" 763 | } 764 | }, 765 | { 766 | "$ref": "#/definitions/TemplateDeclaration" 767 | }, 768 | { 769 | "$ref": "#/definitions/VarDeclaration" 770 | }, 771 | { 772 | "$ref": "#/definitions/ConstDeclaration" 773 | }, 774 | { 775 | "$ref": "#/definitions/LambdaDeclaration" 776 | }, 777 | { 778 | "$ref": "#/definitions/ParamDeclaration" 779 | } 780 | ] 781 | } 782 | }, 783 | "additionalProperties": false 784 | }, 785 | "commit_and_pushActionModel": { 786 | "title": "commit_and_pushActionModel", 787 | "type": "object", 788 | "properties": { 789 | "name": { 790 | "title": "Name", 791 | "type": "string" 792 | }, 793 | "description": { 794 | "title": "Description", 795 | "type": "string" 796 | }, 797 | "action": { 798 | "title": "Action", 799 | "enum": [ 800 | "commit_and_push" 801 | ], 802 | "type": "string" 803 | }, 804 | "inputs": { 805 | "title": "Inputs", 806 | "default": {}, 807 | "allOf": [ 808 | { 809 | "$ref": "#/definitions/commit_and_pushInputsActionFieldTemplate" 810 | } 811 | ] 812 | }, 813 | "outputs": { 814 | "title": "Outputs", 815 | "type": "null" 816 | } 817 | }, 818 | "required": [ 819 | "action" 820 | ], 821 | "additionalProperties": false 822 | }, 823 | "commit_and_pushIterableActionModel": { 824 | "title": "commit_and_pushIterableActionModel", 825 | "type": "object", 826 | "properties": { 827 | "name": { 828 | "title": "Name", 829 | "type": "string" 830 | }, 831 | "description": { 832 | "title": "Description", 833 | "type": "string" 834 | }, 835 | "iterate": { 836 | "title": "Iterate", 837 | "anyOf": [ 838 | { 839 | "type": "integer" 840 | }, 841 | { 842 | "type": "string" 843 | } 844 | ] 845 | }, 846 | "as": { 847 | "title": "As", 848 | "type": "string" 849 | }, 850 | "allow_finish_early": { 851 | "title": "Allow Finish Early", 852 | "default": false, 853 | "type": "boolean" 854 | }, 855 | "action": { 856 | "title": "Action", 857 | "enum": [ 858 | "commit_and_push" 859 | ], 860 | "type": "string" 861 | }, 862 | "inputs": { 863 | "title": "Inputs", 864 | "default": {}, 865 | "allOf": [ 866 | { 867 | "$ref": "#/definitions/commit_and_pushInputsActionFieldTemplate" 868 | } 869 | ] 870 | }, 871 | "list_outputs": { 872 | "title": "List Outputs", 873 | "type": "null" 874 | } 875 | }, 876 | "required": [ 877 | "iterate", 878 | "action" 879 | ], 880 | "additionalProperties": false 881 | }, 882 | "write_into_fileInputsActionFieldTemplate": { 883 | "title": "write_into_fileInputsActionFieldTemplate", 884 | "type": "object", 885 | "properties": { 886 | "filepath": { 887 | "title": "Filepath", 888 | "anyOf": [ 889 | { 890 | "type": "string" 891 | }, 892 | { 893 | "$ref": "#/definitions/TemplateDeclaration" 894 | }, 895 | { 896 | "$ref": "#/definitions/VarDeclaration" 897 | }, 898 | { 899 | "$ref": "#/definitions/ConstDeclaration" 900 | }, 901 | { 902 | "$ref": "#/definitions/LambdaDeclaration" 903 | }, 904 | { 905 | "$ref": "#/definitions/ParamDeclaration" 906 | } 907 | ] 908 | }, 909 | "content": { 910 | "title": "Content", 911 | "anyOf": [ 912 | { 913 | "type": "string" 914 | }, 915 | { 916 | "$ref": "#/definitions/TemplateDeclaration" 917 | }, 918 | { 919 | "$ref": "#/definitions/VarDeclaration" 920 | }, 921 | { 922 | "$ref": "#/definitions/ConstDeclaration" 923 | }, 924 | { 925 | "$ref": "#/definitions/LambdaDeclaration" 926 | }, 927 | { 928 | "$ref": "#/definitions/ParamDeclaration" 929 | } 930 | ] 931 | }, 932 | "append_at_the_end": { 933 | "title": "Append At The End", 934 | "anyOf": [ 935 | { 936 | "type": "boolean" 937 | }, 938 | { 939 | "$ref": "#/definitions/TemplateDeclaration" 940 | }, 941 | { 942 | "$ref": "#/definitions/VarDeclaration" 943 | }, 944 | { 945 | "$ref": "#/definitions/ConstDeclaration" 946 | }, 947 | { 948 | "$ref": "#/definitions/LambdaDeclaration" 949 | }, 950 | { 951 | "$ref": "#/definitions/ParamDeclaration" 952 | } 953 | ] 954 | } 955 | }, 956 | "required": [ 957 | "filepath", 958 | "content" 959 | ], 960 | "additionalProperties": false 961 | }, 962 | "write_into_fileOutputsActionFieldTemplate": { 963 | "title": "write_into_fileOutputsActionFieldTemplate", 964 | "type": "object", 965 | "properties": { 966 | "success": { 967 | "title": "Success", 968 | "type": "string" 969 | } 970 | }, 971 | "additionalProperties": false 972 | }, 973 | "write_into_fileActionModel": { 974 | "title": "write_into_fileActionModel", 975 | "type": "object", 976 | "properties": { 977 | "name": { 978 | "title": "Name", 979 | "type": "string" 980 | }, 981 | "description": { 982 | "title": "Description", 983 | "type": "string" 984 | }, 985 | "action": { 986 | "title": "Action", 987 | "enum": [ 988 | "write_into_file" 989 | ], 990 | "type": "string" 991 | }, 992 | "inputs": { 993 | "$ref": "#/definitions/write_into_fileInputsActionFieldTemplate" 994 | }, 995 | "outputs": { 996 | "title": "Outputs", 997 | "default": {}, 998 | "allOf": [ 999 | { 1000 | "$ref": "#/definitions/write_into_fileOutputsActionFieldTemplate" 1001 | } 1002 | ] 1003 | } 1004 | }, 1005 | "required": [ 1006 | "action", 1007 | "inputs" 1008 | ], 1009 | "additionalProperties": false 1010 | }, 1011 | "write_into_fileIterableActionModel": { 1012 | "title": "write_into_fileIterableActionModel", 1013 | "type": "object", 1014 | "properties": { 1015 | "name": { 1016 | "title": "Name", 1017 | "type": "string" 1018 | }, 1019 | "description": { 1020 | "title": "Description", 1021 | "type": "string" 1022 | }, 1023 | "iterate": { 1024 | "title": "Iterate", 1025 | "anyOf": [ 1026 | { 1027 | "type": "integer" 1028 | }, 1029 | { 1030 | "type": "string" 1031 | } 1032 | ] 1033 | }, 1034 | "as": { 1035 | "title": "As", 1036 | "type": "string" 1037 | }, 1038 | "allow_finish_early": { 1039 | "title": "Allow Finish Early", 1040 | "default": false, 1041 | "type": "boolean" 1042 | }, 1043 | "action": { 1044 | "title": "Action", 1045 | "enum": [ 1046 | "write_into_file" 1047 | ], 1048 | "type": "string" 1049 | }, 1050 | "inputs": { 1051 | "$ref": "#/definitions/write_into_fileInputsActionFieldTemplate" 1052 | }, 1053 | "list_outputs": { 1054 | "title": "List Outputs", 1055 | "default": {}, 1056 | "allOf": [ 1057 | { 1058 | "$ref": "#/definitions/write_into_fileOutputsActionFieldTemplate" 1059 | } 1060 | ] 1061 | } 1062 | }, 1063 | "required": [ 1064 | "iterate", 1065 | "action", 1066 | "inputs" 1067 | ], 1068 | "additionalProperties": false 1069 | }, 1070 | "insert_content_into_textInputsActionFieldTemplate": { 1071 | "title": "insert_content_into_textInputsActionFieldTemplate", 1072 | "type": "object", 1073 | "properties": { 1074 | "existing_content": { 1075 | "title": "Existing Content", 1076 | "anyOf": [ 1077 | { 1078 | "type": "string" 1079 | }, 1080 | { 1081 | "$ref": "#/definitions/TemplateDeclaration" 1082 | }, 1083 | { 1084 | "$ref": "#/definitions/VarDeclaration" 1085 | }, 1086 | { 1087 | "$ref": "#/definitions/ConstDeclaration" 1088 | }, 1089 | { 1090 | "$ref": "#/definitions/LambdaDeclaration" 1091 | }, 1092 | { 1093 | "$ref": "#/definitions/ParamDeclaration" 1094 | } 1095 | ] 1096 | }, 1097 | "delimiter": { 1098 | "title": "Delimiter", 1099 | "anyOf": [ 1100 | { 1101 | "type": "string" 1102 | }, 1103 | { 1104 | "$ref": "#/definitions/TemplateDeclaration" 1105 | }, 1106 | { 1107 | "$ref": "#/definitions/VarDeclaration" 1108 | }, 1109 | { 1110 | "$ref": "#/definitions/ConstDeclaration" 1111 | }, 1112 | { 1113 | "$ref": "#/definitions/LambdaDeclaration" 1114 | }, 1115 | { 1116 | "$ref": "#/definitions/ParamDeclaration" 1117 | } 1118 | ] 1119 | }, 1120 | "content_to_add": { 1121 | "title": "Content To Add", 1122 | "anyOf": [ 1123 | { 1124 | "type": "string" 1125 | }, 1126 | { 1127 | "$ref": "#/definitions/TemplateDeclaration" 1128 | }, 1129 | { 1130 | "$ref": "#/definitions/VarDeclaration" 1131 | }, 1132 | { 1133 | "$ref": "#/definitions/ConstDeclaration" 1134 | }, 1135 | { 1136 | "$ref": "#/definitions/LambdaDeclaration" 1137 | }, 1138 | { 1139 | "$ref": "#/definitions/ParamDeclaration" 1140 | } 1141 | ] 1142 | } 1143 | }, 1144 | "required": [ 1145 | "existing_content", 1146 | "delimiter", 1147 | "content_to_add" 1148 | ], 1149 | "additionalProperties": false 1150 | }, 1151 | "insert_content_into_textOutputsActionFieldTemplate": { 1152 | "title": "insert_content_into_textOutputsActionFieldTemplate", 1153 | "type": "object", 1154 | "properties": { 1155 | "content": { 1156 | "title": "Content", 1157 | "type": "string" 1158 | } 1159 | }, 1160 | "additionalProperties": false 1161 | }, 1162 | "insert_content_into_textActionModel": { 1163 | "title": "insert_content_into_textActionModel", 1164 | "type": "object", 1165 | "properties": { 1166 | "name": { 1167 | "title": "Name", 1168 | "type": "string" 1169 | }, 1170 | "description": { 1171 | "title": "Description", 1172 | "type": "string" 1173 | }, 1174 | "action": { 1175 | "title": "Action", 1176 | "enum": [ 1177 | "insert_content_into_text" 1178 | ], 1179 | "type": "string" 1180 | }, 1181 | "inputs": { 1182 | "$ref": "#/definitions/insert_content_into_textInputsActionFieldTemplate" 1183 | }, 1184 | "outputs": { 1185 | "title": "Outputs", 1186 | "default": {}, 1187 | "allOf": [ 1188 | { 1189 | "$ref": "#/definitions/insert_content_into_textOutputsActionFieldTemplate" 1190 | } 1191 | ] 1192 | } 1193 | }, 1194 | "required": [ 1195 | "action", 1196 | "inputs" 1197 | ], 1198 | "additionalProperties": false 1199 | }, 1200 | "insert_content_into_textIterableActionModel": { 1201 | "title": "insert_content_into_textIterableActionModel", 1202 | "type": "object", 1203 | "properties": { 1204 | "name": { 1205 | "title": "Name", 1206 | "type": "string" 1207 | }, 1208 | "description": { 1209 | "title": "Description", 1210 | "type": "string" 1211 | }, 1212 | "iterate": { 1213 | "title": "Iterate", 1214 | "anyOf": [ 1215 | { 1216 | "type": "integer" 1217 | }, 1218 | { 1219 | "type": "string" 1220 | } 1221 | ] 1222 | }, 1223 | "as": { 1224 | "title": "As", 1225 | "type": "string" 1226 | }, 1227 | "allow_finish_early": { 1228 | "title": "Allow Finish Early", 1229 | "default": false, 1230 | "type": "boolean" 1231 | }, 1232 | "action": { 1233 | "title": "Action", 1234 | "enum": [ 1235 | "insert_content_into_text" 1236 | ], 1237 | "type": "string" 1238 | }, 1239 | "inputs": { 1240 | "$ref": "#/definitions/insert_content_into_textInputsActionFieldTemplate" 1241 | }, 1242 | "list_outputs": { 1243 | "title": "List Outputs", 1244 | "default": {}, 1245 | "allOf": [ 1246 | { 1247 | "$ref": "#/definitions/insert_content_into_textOutputsActionFieldTemplate" 1248 | } 1249 | ] 1250 | } 1251 | }, 1252 | "required": [ 1253 | "iterate", 1254 | "action", 1255 | "inputs" 1256 | ], 1257 | "additionalProperties": false 1258 | }, 1259 | "PromptContextInConfigVar": { 1260 | "title": "PromptContextInConfigVar", 1261 | "description": "A variable declaration for prompt context in config.", 1262 | "type": "object", 1263 | "properties": { 1264 | "var": { 1265 | "title": "Var", 1266 | "type": "string" 1267 | }, 1268 | "heading": { 1269 | "title": "Heading", 1270 | "type": "string" 1271 | }, 1272 | "priority": { 1273 | "title": "Priority", 1274 | "default": 1, 1275 | "type": "integer" 1276 | } 1277 | }, 1278 | "required": [ 1279 | "var", 1280 | "heading" 1281 | ], 1282 | "additionalProperties": false 1283 | }, 1284 | "PromptContextInConfigTemplate": { 1285 | "title": "PromptContextInConfigTemplate", 1286 | "description": "A template string for prompt context in config.", 1287 | "type": "object", 1288 | "properties": { 1289 | "template": { 1290 | "title": "Template", 1291 | "anyOf": [ 1292 | { 1293 | "type": "string" 1294 | }, 1295 | { 1296 | "type": "object" 1297 | }, 1298 | { 1299 | "type": "array", 1300 | "items": {} 1301 | } 1302 | ] 1303 | }, 1304 | "heading": { 1305 | "title": "Heading", 1306 | "type": "string" 1307 | }, 1308 | "priority": { 1309 | "title": "Priority", 1310 | "default": 1, 1311 | "type": "integer" 1312 | } 1313 | }, 1314 | "required": [ 1315 | "template", 1316 | "heading" 1317 | ], 1318 | "additionalProperties": false 1319 | }, 1320 | "PromptContextInConfigLambda": { 1321 | "title": "PromptContextInConfigLambda", 1322 | "description": "A lambda declaration for prompt context in config.", 1323 | "type": "object", 1324 | "properties": { 1325 | "lambda": { 1326 | "title": "Lambda", 1327 | "type": "string" 1328 | }, 1329 | "heading": { 1330 | "title": "Heading", 1331 | "type": "string" 1332 | }, 1333 | "priority": { 1334 | "title": "Priority", 1335 | "default": 1, 1336 | "type": "integer" 1337 | } 1338 | }, 1339 | "required": [ 1340 | "lambda", 1341 | "heading" 1342 | ], 1343 | "additionalProperties": false 1344 | }, 1345 | "PromptContextInConfigConst": { 1346 | "title": "PromptContextInConfigConst", 1347 | "description": "A constant declaration for prompt context in config.", 1348 | "type": "object", 1349 | "properties": { 1350 | "const": { 1351 | "title": "Const" 1352 | }, 1353 | "heading": { 1354 | "title": "Heading", 1355 | "type": "string" 1356 | }, 1357 | "priority": { 1358 | "title": "Priority", 1359 | "default": 1, 1360 | "type": "integer" 1361 | } 1362 | }, 1363 | "required": [ 1364 | "heading" 1365 | ], 1366 | "additionalProperties": false 1367 | }, 1368 | "PromptContextInConfig": { 1369 | "title": "PromptContextInConfig", 1370 | "type": "array", 1371 | "items": { 1372 | "anyOf": [ 1373 | { 1374 | "$ref": "#/definitions/PromptContextInConfigVar" 1375 | }, 1376 | { 1377 | "$ref": "#/definitions/PromptContextInConfigTemplate" 1378 | }, 1379 | { 1380 | "$ref": "#/definitions/PromptContextInConfigLambda" 1381 | }, 1382 | { 1383 | "$ref": "#/definitions/PromptContextInConfigConst" 1384 | } 1385 | ] 1386 | } 1387 | }, 1388 | "promptInputsActionFieldTemplate": { 1389 | "title": "promptInputsActionFieldTemplate", 1390 | "type": "object", 1391 | "properties": { 1392 | "model": { 1393 | "title": "Model", 1394 | "anyOf": [ 1395 | { 1396 | "type": "string" 1397 | }, 1398 | { 1399 | "$ref": "#/definitions/TemplateDeclaration" 1400 | }, 1401 | { 1402 | "$ref": "#/definitions/VarDeclaration" 1403 | }, 1404 | { 1405 | "$ref": "#/definitions/ConstDeclaration" 1406 | }, 1407 | { 1408 | "$ref": "#/definitions/LambdaDeclaration" 1409 | }, 1410 | { 1411 | "$ref": "#/definitions/ParamDeclaration" 1412 | } 1413 | ] 1414 | }, 1415 | "prompt_context": { 1416 | "title": "Prompt Context", 1417 | "anyOf": [ 1418 | { 1419 | "$ref": "#/definitions/PromptContextInConfig" 1420 | }, 1421 | { 1422 | "$ref": "#/definitions/TemplateDeclaration" 1423 | }, 1424 | { 1425 | "$ref": "#/definitions/VarDeclaration" 1426 | }, 1427 | { 1428 | "$ref": "#/definitions/ConstDeclaration" 1429 | }, 1430 | { 1431 | "$ref": "#/definitions/LambdaDeclaration" 1432 | }, 1433 | { 1434 | "$ref": "#/definitions/ParamDeclaration" 1435 | } 1436 | ] 1437 | }, 1438 | "instructions": { 1439 | "title": "Instructions", 1440 | "anyOf": [ 1441 | { 1442 | "type": "string" 1443 | }, 1444 | { 1445 | "$ref": "#/definitions/TemplateDeclaration" 1446 | }, 1447 | { 1448 | "$ref": "#/definitions/VarDeclaration" 1449 | }, 1450 | { 1451 | "$ref": "#/definitions/ConstDeclaration" 1452 | }, 1453 | { 1454 | "$ref": "#/definitions/LambdaDeclaration" 1455 | }, 1456 | { 1457 | "$ref": "#/definitions/ParamDeclaration" 1458 | } 1459 | ] 1460 | }, 1461 | "prompt": { 1462 | "title": "Prompt", 1463 | "anyOf": [ 1464 | { 1465 | "type": "string" 1466 | }, 1467 | { 1468 | "$ref": "#/definitions/TemplateDeclaration" 1469 | }, 1470 | { 1471 | "$ref": "#/definitions/VarDeclaration" 1472 | }, 1473 | { 1474 | "$ref": "#/definitions/ConstDeclaration" 1475 | }, 1476 | { 1477 | "$ref": "#/definitions/LambdaDeclaration" 1478 | }, 1479 | { 1480 | "$ref": "#/definitions/ParamDeclaration" 1481 | } 1482 | ] 1483 | }, 1484 | "max_prompt_tokens": { 1485 | "title": "Max Prompt Tokens", 1486 | "anyOf": [ 1487 | { 1488 | "type": "integer" 1489 | }, 1490 | { 1491 | "$ref": "#/definitions/TemplateDeclaration" 1492 | }, 1493 | { 1494 | "$ref": "#/definitions/VarDeclaration" 1495 | }, 1496 | { 1497 | "$ref": "#/definitions/ConstDeclaration" 1498 | }, 1499 | { 1500 | "$ref": "#/definitions/LambdaDeclaration" 1501 | }, 1502 | { 1503 | "$ref": "#/definitions/ParamDeclaration" 1504 | } 1505 | ] 1506 | }, 1507 | "max_response_tokens": { 1508 | "title": "Max Response Tokens", 1509 | "anyOf": [ 1510 | { 1511 | "type": "integer" 1512 | }, 1513 | { 1514 | "$ref": "#/definitions/TemplateDeclaration" 1515 | }, 1516 | { 1517 | "$ref": "#/definitions/VarDeclaration" 1518 | }, 1519 | { 1520 | "$ref": "#/definitions/ConstDeclaration" 1521 | }, 1522 | { 1523 | "$ref": "#/definitions/LambdaDeclaration" 1524 | }, 1525 | { 1526 | "$ref": "#/definitions/ParamDeclaration" 1527 | } 1528 | ] 1529 | }, 1530 | "strategy": { 1531 | "title": "Strategy", 1532 | "anyOf": [ 1533 | { 1534 | "enum": [ 1535 | "middle out" 1536 | ], 1537 | "type": "string" 1538 | }, 1539 | { 1540 | "$ref": "#/definitions/TemplateDeclaration" 1541 | }, 1542 | { 1543 | "$ref": "#/definitions/VarDeclaration" 1544 | }, 1545 | { 1546 | "$ref": "#/definitions/ConstDeclaration" 1547 | }, 1548 | { 1549 | "$ref": "#/definitions/LambdaDeclaration" 1550 | }, 1551 | { 1552 | "$ref": "#/definitions/ParamDeclaration" 1553 | } 1554 | ] 1555 | }, 1556 | "temperature": { 1557 | "title": "Temperature", 1558 | "anyOf": [ 1559 | { 1560 | "type": "number" 1561 | }, 1562 | { 1563 | "$ref": "#/definitions/TemplateDeclaration" 1564 | }, 1565 | { 1566 | "$ref": "#/definitions/VarDeclaration" 1567 | }, 1568 | { 1569 | "$ref": "#/definitions/ConstDeclaration" 1570 | }, 1571 | { 1572 | "$ref": "#/definitions/LambdaDeclaration" 1573 | }, 1574 | { 1575 | "$ref": "#/definitions/ParamDeclaration" 1576 | } 1577 | ] 1578 | } 1579 | }, 1580 | "additionalProperties": false 1581 | }, 1582 | "promptOutputsActionFieldTemplate": { 1583 | "title": "promptOutputsActionFieldTemplate", 1584 | "type": "object", 1585 | "properties": { 1586 | "result": { 1587 | "title": "Result", 1588 | "type": "string" 1589 | } 1590 | }, 1591 | "additionalProperties": false 1592 | }, 1593 | "promptActionModel": { 1594 | "title": "promptActionModel", 1595 | "type": "object", 1596 | "properties": { 1597 | "name": { 1598 | "title": "Name", 1599 | "type": "string" 1600 | }, 1601 | "description": { 1602 | "title": "Description", 1603 | "type": "string" 1604 | }, 1605 | "action": { 1606 | "title": "Action", 1607 | "enum": [ 1608 | "prompt" 1609 | ], 1610 | "type": "string" 1611 | }, 1612 | "inputs": { 1613 | "title": "Inputs", 1614 | "default": {}, 1615 | "allOf": [ 1616 | { 1617 | "$ref": "#/definitions/promptInputsActionFieldTemplate" 1618 | } 1619 | ] 1620 | }, 1621 | "outputs": { 1622 | "title": "Outputs", 1623 | "default": {}, 1624 | "allOf": [ 1625 | { 1626 | "$ref": "#/definitions/promptOutputsActionFieldTemplate" 1627 | } 1628 | ] 1629 | } 1630 | }, 1631 | "required": [ 1632 | "action" 1633 | ], 1634 | "additionalProperties": false 1635 | }, 1636 | "promptIterableActionModel": { 1637 | "title": "promptIterableActionModel", 1638 | "type": "object", 1639 | "properties": { 1640 | "name": { 1641 | "title": "Name", 1642 | "type": "string" 1643 | }, 1644 | "description": { 1645 | "title": "Description", 1646 | "type": "string" 1647 | }, 1648 | "iterate": { 1649 | "title": "Iterate", 1650 | "anyOf": [ 1651 | { 1652 | "type": "integer" 1653 | }, 1654 | { 1655 | "type": "string" 1656 | } 1657 | ] 1658 | }, 1659 | "as": { 1660 | "title": "As", 1661 | "type": "string" 1662 | }, 1663 | "allow_finish_early": { 1664 | "title": "Allow Finish Early", 1665 | "default": false, 1666 | "type": "boolean" 1667 | }, 1668 | "action": { 1669 | "title": "Action", 1670 | "enum": [ 1671 | "prompt" 1672 | ], 1673 | "type": "string" 1674 | }, 1675 | "inputs": { 1676 | "title": "Inputs", 1677 | "default": {}, 1678 | "allOf": [ 1679 | { 1680 | "$ref": "#/definitions/promptInputsActionFieldTemplate" 1681 | } 1682 | ] 1683 | }, 1684 | "list_outputs": { 1685 | "title": "List Outputs", 1686 | "default": {}, 1687 | "allOf": [ 1688 | { 1689 | "$ref": "#/definitions/promptOutputsActionFieldTemplate" 1690 | } 1691 | ] 1692 | } 1693 | }, 1694 | "required": [ 1695 | "iterate", 1696 | "action" 1697 | ], 1698 | "additionalProperties": false 1699 | }, 1700 | "read_fileInputsActionFieldTemplate": { 1701 | "title": "read_fileInputsActionFieldTemplate", 1702 | "type": "object", 1703 | "properties": { 1704 | "filepath": { 1705 | "title": "Filepath", 1706 | "anyOf": [ 1707 | { 1708 | "type": "string" 1709 | }, 1710 | { 1711 | "$ref": "#/definitions/TemplateDeclaration" 1712 | }, 1713 | { 1714 | "$ref": "#/definitions/VarDeclaration" 1715 | }, 1716 | { 1717 | "$ref": "#/definitions/ConstDeclaration" 1718 | }, 1719 | { 1720 | "$ref": "#/definitions/LambdaDeclaration" 1721 | }, 1722 | { 1723 | "$ref": "#/definitions/ParamDeclaration" 1724 | } 1725 | ] 1726 | }, 1727 | "ensure_exists": { 1728 | "title": "Ensure Exists", 1729 | "anyOf": [ 1730 | { 1731 | "type": "boolean" 1732 | }, 1733 | { 1734 | "$ref": "#/definitions/TemplateDeclaration" 1735 | }, 1736 | { 1737 | "$ref": "#/definitions/VarDeclaration" 1738 | }, 1739 | { 1740 | "$ref": "#/definitions/ConstDeclaration" 1741 | }, 1742 | { 1743 | "$ref": "#/definitions/LambdaDeclaration" 1744 | }, 1745 | { 1746 | "$ref": "#/definitions/ParamDeclaration" 1747 | } 1748 | ] 1749 | } 1750 | }, 1751 | "required": [ 1752 | "filepath" 1753 | ], 1754 | "additionalProperties": false 1755 | }, 1756 | "read_fileOutputsActionFieldTemplate": { 1757 | "title": "read_fileOutputsActionFieldTemplate", 1758 | "type": "object", 1759 | "properties": { 1760 | "contents": { 1761 | "title": "Contents", 1762 | "type": "string" 1763 | }, 1764 | "success": { 1765 | "title": "Success", 1766 | "type": "string" 1767 | } 1768 | }, 1769 | "additionalProperties": false 1770 | }, 1771 | "read_fileActionModel": { 1772 | "title": "read_fileActionModel", 1773 | "type": "object", 1774 | "properties": { 1775 | "name": { 1776 | "title": "Name", 1777 | "type": "string" 1778 | }, 1779 | "description": { 1780 | "title": "Description", 1781 | "type": "string" 1782 | }, 1783 | "action": { 1784 | "title": "Action", 1785 | "enum": [ 1786 | "read_file" 1787 | ], 1788 | "type": "string" 1789 | }, 1790 | "inputs": { 1791 | "$ref": "#/definitions/read_fileInputsActionFieldTemplate" 1792 | }, 1793 | "outputs": { 1794 | "title": "Outputs", 1795 | "default": {}, 1796 | "allOf": [ 1797 | { 1798 | "$ref": "#/definitions/read_fileOutputsActionFieldTemplate" 1799 | } 1800 | ] 1801 | } 1802 | }, 1803 | "required": [ 1804 | "action", 1805 | "inputs" 1806 | ], 1807 | "additionalProperties": false 1808 | }, 1809 | "read_fileIterableActionModel": { 1810 | "title": "read_fileIterableActionModel", 1811 | "type": "object", 1812 | "properties": { 1813 | "name": { 1814 | "title": "Name", 1815 | "type": "string" 1816 | }, 1817 | "description": { 1818 | "title": "Description", 1819 | "type": "string" 1820 | }, 1821 | "iterate": { 1822 | "title": "Iterate", 1823 | "anyOf": [ 1824 | { 1825 | "type": "integer" 1826 | }, 1827 | { 1828 | "type": "string" 1829 | } 1830 | ] 1831 | }, 1832 | "as": { 1833 | "title": "As", 1834 | "type": "string" 1835 | }, 1836 | "allow_finish_early": { 1837 | "title": "Allow Finish Early", 1838 | "default": false, 1839 | "type": "boolean" 1840 | }, 1841 | "action": { 1842 | "title": "Action", 1843 | "enum": [ 1844 | "read_file" 1845 | ], 1846 | "type": "string" 1847 | }, 1848 | "inputs": { 1849 | "$ref": "#/definitions/read_fileInputsActionFieldTemplate" 1850 | }, 1851 | "list_outputs": { 1852 | "title": "List Outputs", 1853 | "default": {}, 1854 | "allOf": [ 1855 | { 1856 | "$ref": "#/definitions/read_fileOutputsActionFieldTemplate" 1857 | } 1858 | ] 1859 | } 1860 | }, 1861 | "required": [ 1862 | "iterate", 1863 | "action", 1864 | "inputs" 1865 | ], 1866 | "additionalProperties": false 1867 | }, 1868 | "ExtraModel": { 1869 | "title": "ExtraModel", 1870 | "type": "object", 1871 | "properties": {} 1872 | }, 1873 | "WorkflowInvocation": { 1874 | "title": "WorkflowInvocation", 1875 | "type": "object", 1876 | "properties": { 1877 | "name": { 1878 | "title": "Name", 1879 | "type": "string" 1880 | }, 1881 | "description": { 1882 | "title": "Description", 1883 | "type": "string" 1884 | }, 1885 | "inputs": { 1886 | "$ref": "#/definitions/ExtraModel" 1887 | }, 1888 | "outputs": { 1889 | "$ref": "#/definitions/ExtraModel" 1890 | }, 1891 | "workflow": { 1892 | "title": "Workflow", 1893 | "type": "string" 1894 | } 1895 | }, 1896 | "required": [ 1897 | "workflow" 1898 | ], 1899 | "additionalProperties": false 1900 | }, 1901 | "IterableWorkflowInvocation": { 1902 | "title": "IterableWorkflowInvocation", 1903 | "type": "object", 1904 | "properties": { 1905 | "name": { 1906 | "title": "Name", 1907 | "type": "string" 1908 | }, 1909 | "description": { 1910 | "title": "Description", 1911 | "type": "string" 1912 | }, 1913 | "iterate": { 1914 | "title": "Iterate", 1915 | "anyOf": [ 1916 | { 1917 | "type": "integer" 1918 | }, 1919 | { 1920 | "type": "string" 1921 | } 1922 | ] 1923 | }, 1924 | "as": { 1925 | "title": "As", 1926 | "type": "string" 1927 | }, 1928 | "allow_finish_early": { 1929 | "title": "Allow Finish Early", 1930 | "default": false, 1931 | "type": "boolean" 1932 | }, 1933 | "inputs": { 1934 | "$ref": "#/definitions/ExtraModel" 1935 | }, 1936 | "list_outputs": { 1937 | "$ref": "#/definitions/ExtraModel" 1938 | }, 1939 | "workflow": { 1940 | "title": "Workflow", 1941 | "type": "string" 1942 | } 1943 | }, 1944 | "required": [ 1945 | "iterate", 1946 | "workflow" 1947 | ], 1948 | "additionalProperties": false 1949 | }, 1950 | "SetVars": { 1951 | "title": "SetVars", 1952 | "type": "object", 1953 | "properties": { 1954 | "set_vars": { 1955 | "title": "Set Vars", 1956 | "type": "object", 1957 | "additionalProperties": { 1958 | "anyOf": [ 1959 | { 1960 | "$ref": "#/definitions/TemplateDeclaration" 1961 | }, 1962 | { 1963 | "$ref": "#/definitions/VarDeclaration" 1964 | }, 1965 | { 1966 | "$ref": "#/definitions/ConstDeclaration" 1967 | }, 1968 | { 1969 | "$ref": "#/definitions/LambdaDeclaration" 1970 | }, 1971 | { 1972 | "$ref": "#/definitions/ParamDeclaration" 1973 | } 1974 | ] 1975 | } 1976 | } 1977 | }, 1978 | "required": [ 1979 | "set_vars" 1980 | ], 1981 | "additionalProperties": false 1982 | }, 1983 | "IfContextNotExists": { 1984 | "title": "IfContextNotExists", 1985 | "type": "object", 1986 | "properties": { 1987 | "then": { 1988 | "title": "Then", 1989 | "anyOf": [ 1990 | { 1991 | "type": "string" 1992 | }, 1993 | { 1994 | "anyOf": [ 1995 | { 1996 | "$ref": "#/definitions/commentActionModel" 1997 | }, 1998 | { 1999 | "$ref": "#/definitions/commentIterableActionModel" 2000 | }, 2001 | { 2002 | "$ref": "#/definitions/set_issue_titleActionModel" 2003 | }, 2004 | { 2005 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2006 | }, 2007 | { 2008 | "$ref": "#/definitions/crawl_folderActionModel" 2009 | }, 2010 | { 2011 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2012 | }, 2013 | { 2014 | "$ref": "#/definitions/bashActionModel" 2015 | }, 2016 | { 2017 | "$ref": "#/definitions/bashIterableActionModel" 2018 | }, 2019 | { 2020 | "$ref": "#/definitions/commit_and_pushActionModel" 2021 | }, 2022 | { 2023 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2024 | }, 2025 | { 2026 | "$ref": "#/definitions/write_into_fileActionModel" 2027 | }, 2028 | { 2029 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2030 | }, 2031 | { 2032 | "$ref": "#/definitions/insert_content_into_textActionModel" 2033 | }, 2034 | { 2035 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2036 | }, 2037 | { 2038 | "$ref": "#/definitions/promptActionModel" 2039 | }, 2040 | { 2041 | "$ref": "#/definitions/promptIterableActionModel" 2042 | }, 2043 | { 2044 | "$ref": "#/definitions/read_fileActionModel" 2045 | }, 2046 | { 2047 | "$ref": "#/definitions/read_fileIterableActionModel" 2048 | } 2049 | ] 2050 | }, 2051 | { 2052 | "$ref": "#/definitions/WorkflowInvocation" 2053 | }, 2054 | { 2055 | "$ref": "#/definitions/IterableWorkflowInvocation" 2056 | }, 2057 | { 2058 | "anyOf": [ 2059 | { 2060 | "$ref": "#/definitions/SetVars" 2061 | }, 2062 | { 2063 | "$ref": "#/definitions/IfLambda" 2064 | }, 2065 | { 2066 | "$ref": "#/definitions/IfExistsContext" 2067 | }, 2068 | { 2069 | "$ref": "#/definitions/IfContextNotExists" 2070 | } 2071 | ] 2072 | }, 2073 | { 2074 | "type": "array", 2075 | "items": { 2076 | "anyOf": [ 2077 | { 2078 | "type": "string" 2079 | }, 2080 | { 2081 | "anyOf": [ 2082 | { 2083 | "$ref": "#/definitions/commentActionModel" 2084 | }, 2085 | { 2086 | "$ref": "#/definitions/commentIterableActionModel" 2087 | }, 2088 | { 2089 | "$ref": "#/definitions/set_issue_titleActionModel" 2090 | }, 2091 | { 2092 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2093 | }, 2094 | { 2095 | "$ref": "#/definitions/crawl_folderActionModel" 2096 | }, 2097 | { 2098 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2099 | }, 2100 | { 2101 | "$ref": "#/definitions/bashActionModel" 2102 | }, 2103 | { 2104 | "$ref": "#/definitions/bashIterableActionModel" 2105 | }, 2106 | { 2107 | "$ref": "#/definitions/commit_and_pushActionModel" 2108 | }, 2109 | { 2110 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2111 | }, 2112 | { 2113 | "$ref": "#/definitions/write_into_fileActionModel" 2114 | }, 2115 | { 2116 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2117 | }, 2118 | { 2119 | "$ref": "#/definitions/insert_content_into_textActionModel" 2120 | }, 2121 | { 2122 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2123 | }, 2124 | { 2125 | "$ref": "#/definitions/promptActionModel" 2126 | }, 2127 | { 2128 | "$ref": "#/definitions/promptIterableActionModel" 2129 | }, 2130 | { 2131 | "$ref": "#/definitions/read_fileActionModel" 2132 | }, 2133 | { 2134 | "$ref": "#/definitions/read_fileIterableActionModel" 2135 | } 2136 | ] 2137 | }, 2138 | { 2139 | "$ref": "#/definitions/WorkflowInvocation" 2140 | }, 2141 | { 2142 | "$ref": "#/definitions/IterableWorkflowInvocation" 2143 | }, 2144 | { 2145 | "anyOf": [ 2146 | { 2147 | "$ref": "#/definitions/SetVars" 2148 | }, 2149 | { 2150 | "$ref": "#/definitions/IfLambda" 2151 | }, 2152 | { 2153 | "$ref": "#/definitions/IfExistsContext" 2154 | }, 2155 | { 2156 | "$ref": "#/definitions/IfContextNotExists" 2157 | } 2158 | ] 2159 | } 2160 | ] 2161 | } 2162 | } 2163 | ] 2164 | }, 2165 | "else": { 2166 | "title": "Else", 2167 | "anyOf": [ 2168 | { 2169 | "type": "string" 2170 | }, 2171 | { 2172 | "anyOf": [ 2173 | { 2174 | "$ref": "#/definitions/commentActionModel" 2175 | }, 2176 | { 2177 | "$ref": "#/definitions/commentIterableActionModel" 2178 | }, 2179 | { 2180 | "$ref": "#/definitions/set_issue_titleActionModel" 2181 | }, 2182 | { 2183 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2184 | }, 2185 | { 2186 | "$ref": "#/definitions/crawl_folderActionModel" 2187 | }, 2188 | { 2189 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2190 | }, 2191 | { 2192 | "$ref": "#/definitions/bashActionModel" 2193 | }, 2194 | { 2195 | "$ref": "#/definitions/bashIterableActionModel" 2196 | }, 2197 | { 2198 | "$ref": "#/definitions/commit_and_pushActionModel" 2199 | }, 2200 | { 2201 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2202 | }, 2203 | { 2204 | "$ref": "#/definitions/write_into_fileActionModel" 2205 | }, 2206 | { 2207 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2208 | }, 2209 | { 2210 | "$ref": "#/definitions/insert_content_into_textActionModel" 2211 | }, 2212 | { 2213 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2214 | }, 2215 | { 2216 | "$ref": "#/definitions/promptActionModel" 2217 | }, 2218 | { 2219 | "$ref": "#/definitions/promptIterableActionModel" 2220 | }, 2221 | { 2222 | "$ref": "#/definitions/read_fileActionModel" 2223 | }, 2224 | { 2225 | "$ref": "#/definitions/read_fileIterableActionModel" 2226 | } 2227 | ] 2228 | }, 2229 | { 2230 | "$ref": "#/definitions/WorkflowInvocation" 2231 | }, 2232 | { 2233 | "$ref": "#/definitions/IterableWorkflowInvocation" 2234 | }, 2235 | { 2236 | "anyOf": [ 2237 | { 2238 | "$ref": "#/definitions/SetVars" 2239 | }, 2240 | { 2241 | "$ref": "#/definitions/IfLambda" 2242 | }, 2243 | { 2244 | "$ref": "#/definitions/IfExistsContext" 2245 | }, 2246 | { 2247 | "$ref": "#/definitions/IfContextNotExists" 2248 | } 2249 | ] 2250 | }, 2251 | { 2252 | "type": "array", 2253 | "items": { 2254 | "anyOf": [ 2255 | { 2256 | "type": "string" 2257 | }, 2258 | { 2259 | "anyOf": [ 2260 | { 2261 | "$ref": "#/definitions/commentActionModel" 2262 | }, 2263 | { 2264 | "$ref": "#/definitions/commentIterableActionModel" 2265 | }, 2266 | { 2267 | "$ref": "#/definitions/set_issue_titleActionModel" 2268 | }, 2269 | { 2270 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2271 | }, 2272 | { 2273 | "$ref": "#/definitions/crawl_folderActionModel" 2274 | }, 2275 | { 2276 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2277 | }, 2278 | { 2279 | "$ref": "#/definitions/bashActionModel" 2280 | }, 2281 | { 2282 | "$ref": "#/definitions/bashIterableActionModel" 2283 | }, 2284 | { 2285 | "$ref": "#/definitions/commit_and_pushActionModel" 2286 | }, 2287 | { 2288 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2289 | }, 2290 | { 2291 | "$ref": "#/definitions/write_into_fileActionModel" 2292 | }, 2293 | { 2294 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2295 | }, 2296 | { 2297 | "$ref": "#/definitions/insert_content_into_textActionModel" 2298 | }, 2299 | { 2300 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2301 | }, 2302 | { 2303 | "$ref": "#/definitions/promptActionModel" 2304 | }, 2305 | { 2306 | "$ref": "#/definitions/promptIterableActionModel" 2307 | }, 2308 | { 2309 | "$ref": "#/definitions/read_fileActionModel" 2310 | }, 2311 | { 2312 | "$ref": "#/definitions/read_fileIterableActionModel" 2313 | } 2314 | ] 2315 | }, 2316 | { 2317 | "$ref": "#/definitions/WorkflowInvocation" 2318 | }, 2319 | { 2320 | "$ref": "#/definitions/IterableWorkflowInvocation" 2321 | }, 2322 | { 2323 | "anyOf": [ 2324 | { 2325 | "$ref": "#/definitions/SetVars" 2326 | }, 2327 | { 2328 | "$ref": "#/definitions/IfLambda" 2329 | }, 2330 | { 2331 | "$ref": "#/definitions/IfExistsContext" 2332 | }, 2333 | { 2334 | "$ref": "#/definitions/IfContextNotExists" 2335 | } 2336 | ] 2337 | } 2338 | ] 2339 | } 2340 | } 2341 | ] 2342 | }, 2343 | "if_not_in_context": { 2344 | "title": "If Not In Context", 2345 | "anyOf": [ 2346 | { 2347 | "type": "string" 2348 | }, 2349 | { 2350 | "type": "array", 2351 | "items": { 2352 | "type": "string" 2353 | } 2354 | } 2355 | ] 2356 | } 2357 | }, 2358 | "required": [ 2359 | "then", 2360 | "if_not_in_context" 2361 | ], 2362 | "additionalProperties": false 2363 | }, 2364 | "IfExistsContext": { 2365 | "title": "IfExistsContext", 2366 | "type": "object", 2367 | "properties": { 2368 | "then": { 2369 | "title": "Then", 2370 | "anyOf": [ 2371 | { 2372 | "type": "string" 2373 | }, 2374 | { 2375 | "anyOf": [ 2376 | { 2377 | "$ref": "#/definitions/commentActionModel" 2378 | }, 2379 | { 2380 | "$ref": "#/definitions/commentIterableActionModel" 2381 | }, 2382 | { 2383 | "$ref": "#/definitions/set_issue_titleActionModel" 2384 | }, 2385 | { 2386 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2387 | }, 2388 | { 2389 | "$ref": "#/definitions/crawl_folderActionModel" 2390 | }, 2391 | { 2392 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2393 | }, 2394 | { 2395 | "$ref": "#/definitions/bashActionModel" 2396 | }, 2397 | { 2398 | "$ref": "#/definitions/bashIterableActionModel" 2399 | }, 2400 | { 2401 | "$ref": "#/definitions/commit_and_pushActionModel" 2402 | }, 2403 | { 2404 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2405 | }, 2406 | { 2407 | "$ref": "#/definitions/write_into_fileActionModel" 2408 | }, 2409 | { 2410 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2411 | }, 2412 | { 2413 | "$ref": "#/definitions/insert_content_into_textActionModel" 2414 | }, 2415 | { 2416 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2417 | }, 2418 | { 2419 | "$ref": "#/definitions/promptActionModel" 2420 | }, 2421 | { 2422 | "$ref": "#/definitions/promptIterableActionModel" 2423 | }, 2424 | { 2425 | "$ref": "#/definitions/read_fileActionModel" 2426 | }, 2427 | { 2428 | "$ref": "#/definitions/read_fileIterableActionModel" 2429 | } 2430 | ] 2431 | }, 2432 | { 2433 | "$ref": "#/definitions/WorkflowInvocation" 2434 | }, 2435 | { 2436 | "$ref": "#/definitions/IterableWorkflowInvocation" 2437 | }, 2438 | { 2439 | "anyOf": [ 2440 | { 2441 | "$ref": "#/definitions/SetVars" 2442 | }, 2443 | { 2444 | "$ref": "#/definitions/IfLambda" 2445 | }, 2446 | { 2447 | "$ref": "#/definitions/IfExistsContext" 2448 | }, 2449 | { 2450 | "$ref": "#/definitions/IfContextNotExists" 2451 | } 2452 | ] 2453 | }, 2454 | { 2455 | "type": "array", 2456 | "items": { 2457 | "anyOf": [ 2458 | { 2459 | "type": "string" 2460 | }, 2461 | { 2462 | "anyOf": [ 2463 | { 2464 | "$ref": "#/definitions/commentActionModel" 2465 | }, 2466 | { 2467 | "$ref": "#/definitions/commentIterableActionModel" 2468 | }, 2469 | { 2470 | "$ref": "#/definitions/set_issue_titleActionModel" 2471 | }, 2472 | { 2473 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2474 | }, 2475 | { 2476 | "$ref": "#/definitions/crawl_folderActionModel" 2477 | }, 2478 | { 2479 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2480 | }, 2481 | { 2482 | "$ref": "#/definitions/bashActionModel" 2483 | }, 2484 | { 2485 | "$ref": "#/definitions/bashIterableActionModel" 2486 | }, 2487 | { 2488 | "$ref": "#/definitions/commit_and_pushActionModel" 2489 | }, 2490 | { 2491 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2492 | }, 2493 | { 2494 | "$ref": "#/definitions/write_into_fileActionModel" 2495 | }, 2496 | { 2497 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2498 | }, 2499 | { 2500 | "$ref": "#/definitions/insert_content_into_textActionModel" 2501 | }, 2502 | { 2503 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2504 | }, 2505 | { 2506 | "$ref": "#/definitions/promptActionModel" 2507 | }, 2508 | { 2509 | "$ref": "#/definitions/promptIterableActionModel" 2510 | }, 2511 | { 2512 | "$ref": "#/definitions/read_fileActionModel" 2513 | }, 2514 | { 2515 | "$ref": "#/definitions/read_fileIterableActionModel" 2516 | } 2517 | ] 2518 | }, 2519 | { 2520 | "$ref": "#/definitions/WorkflowInvocation" 2521 | }, 2522 | { 2523 | "$ref": "#/definitions/IterableWorkflowInvocation" 2524 | }, 2525 | { 2526 | "anyOf": [ 2527 | { 2528 | "$ref": "#/definitions/SetVars" 2529 | }, 2530 | { 2531 | "$ref": "#/definitions/IfLambda" 2532 | }, 2533 | { 2534 | "$ref": "#/definitions/IfExistsContext" 2535 | }, 2536 | { 2537 | "$ref": "#/definitions/IfContextNotExists" 2538 | } 2539 | ] 2540 | } 2541 | ] 2542 | } 2543 | } 2544 | ] 2545 | }, 2546 | "else": { 2547 | "title": "Else", 2548 | "anyOf": [ 2549 | { 2550 | "type": "string" 2551 | }, 2552 | { 2553 | "anyOf": [ 2554 | { 2555 | "$ref": "#/definitions/commentActionModel" 2556 | }, 2557 | { 2558 | "$ref": "#/definitions/commentIterableActionModel" 2559 | }, 2560 | { 2561 | "$ref": "#/definitions/set_issue_titleActionModel" 2562 | }, 2563 | { 2564 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2565 | }, 2566 | { 2567 | "$ref": "#/definitions/crawl_folderActionModel" 2568 | }, 2569 | { 2570 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2571 | }, 2572 | { 2573 | "$ref": "#/definitions/bashActionModel" 2574 | }, 2575 | { 2576 | "$ref": "#/definitions/bashIterableActionModel" 2577 | }, 2578 | { 2579 | "$ref": "#/definitions/commit_and_pushActionModel" 2580 | }, 2581 | { 2582 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2583 | }, 2584 | { 2585 | "$ref": "#/definitions/write_into_fileActionModel" 2586 | }, 2587 | { 2588 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2589 | }, 2590 | { 2591 | "$ref": "#/definitions/insert_content_into_textActionModel" 2592 | }, 2593 | { 2594 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2595 | }, 2596 | { 2597 | "$ref": "#/definitions/promptActionModel" 2598 | }, 2599 | { 2600 | "$ref": "#/definitions/promptIterableActionModel" 2601 | }, 2602 | { 2603 | "$ref": "#/definitions/read_fileActionModel" 2604 | }, 2605 | { 2606 | "$ref": "#/definitions/read_fileIterableActionModel" 2607 | } 2608 | ] 2609 | }, 2610 | { 2611 | "$ref": "#/definitions/WorkflowInvocation" 2612 | }, 2613 | { 2614 | "$ref": "#/definitions/IterableWorkflowInvocation" 2615 | }, 2616 | { 2617 | "anyOf": [ 2618 | { 2619 | "$ref": "#/definitions/SetVars" 2620 | }, 2621 | { 2622 | "$ref": "#/definitions/IfLambda" 2623 | }, 2624 | { 2625 | "$ref": "#/definitions/IfExistsContext" 2626 | }, 2627 | { 2628 | "$ref": "#/definitions/IfContextNotExists" 2629 | } 2630 | ] 2631 | }, 2632 | { 2633 | "type": "array", 2634 | "items": { 2635 | "anyOf": [ 2636 | { 2637 | "type": "string" 2638 | }, 2639 | { 2640 | "anyOf": [ 2641 | { 2642 | "$ref": "#/definitions/commentActionModel" 2643 | }, 2644 | { 2645 | "$ref": "#/definitions/commentIterableActionModel" 2646 | }, 2647 | { 2648 | "$ref": "#/definitions/set_issue_titleActionModel" 2649 | }, 2650 | { 2651 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2652 | }, 2653 | { 2654 | "$ref": "#/definitions/crawl_folderActionModel" 2655 | }, 2656 | { 2657 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2658 | }, 2659 | { 2660 | "$ref": "#/definitions/bashActionModel" 2661 | }, 2662 | { 2663 | "$ref": "#/definitions/bashIterableActionModel" 2664 | }, 2665 | { 2666 | "$ref": "#/definitions/commit_and_pushActionModel" 2667 | }, 2668 | { 2669 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2670 | }, 2671 | { 2672 | "$ref": "#/definitions/write_into_fileActionModel" 2673 | }, 2674 | { 2675 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2676 | }, 2677 | { 2678 | "$ref": "#/definitions/insert_content_into_textActionModel" 2679 | }, 2680 | { 2681 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2682 | }, 2683 | { 2684 | "$ref": "#/definitions/promptActionModel" 2685 | }, 2686 | { 2687 | "$ref": "#/definitions/promptIterableActionModel" 2688 | }, 2689 | { 2690 | "$ref": "#/definitions/read_fileActionModel" 2691 | }, 2692 | { 2693 | "$ref": "#/definitions/read_fileIterableActionModel" 2694 | } 2695 | ] 2696 | }, 2697 | { 2698 | "$ref": "#/definitions/WorkflowInvocation" 2699 | }, 2700 | { 2701 | "$ref": "#/definitions/IterableWorkflowInvocation" 2702 | }, 2703 | { 2704 | "anyOf": [ 2705 | { 2706 | "$ref": "#/definitions/SetVars" 2707 | }, 2708 | { 2709 | "$ref": "#/definitions/IfLambda" 2710 | }, 2711 | { 2712 | "$ref": "#/definitions/IfExistsContext" 2713 | }, 2714 | { 2715 | "$ref": "#/definitions/IfContextNotExists" 2716 | } 2717 | ] 2718 | } 2719 | ] 2720 | } 2721 | } 2722 | ] 2723 | }, 2724 | "if_in_context": { 2725 | "title": "If In Context", 2726 | "anyOf": [ 2727 | { 2728 | "type": "string" 2729 | }, 2730 | { 2731 | "type": "array", 2732 | "items": { 2733 | "type": "string" 2734 | } 2735 | } 2736 | ] 2737 | } 2738 | }, 2739 | "required": [ 2740 | "then", 2741 | "if_in_context" 2742 | ], 2743 | "additionalProperties": false 2744 | }, 2745 | "IfLambda": { 2746 | "title": "IfLambda", 2747 | "type": "object", 2748 | "properties": { 2749 | "then": { 2750 | "title": "Then", 2751 | "anyOf": [ 2752 | { 2753 | "type": "string" 2754 | }, 2755 | { 2756 | "anyOf": [ 2757 | { 2758 | "$ref": "#/definitions/commentActionModel" 2759 | }, 2760 | { 2761 | "$ref": "#/definitions/commentIterableActionModel" 2762 | }, 2763 | { 2764 | "$ref": "#/definitions/set_issue_titleActionModel" 2765 | }, 2766 | { 2767 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2768 | }, 2769 | { 2770 | "$ref": "#/definitions/crawl_folderActionModel" 2771 | }, 2772 | { 2773 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2774 | }, 2775 | { 2776 | "$ref": "#/definitions/bashActionModel" 2777 | }, 2778 | { 2779 | "$ref": "#/definitions/bashIterableActionModel" 2780 | }, 2781 | { 2782 | "$ref": "#/definitions/commit_and_pushActionModel" 2783 | }, 2784 | { 2785 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2786 | }, 2787 | { 2788 | "$ref": "#/definitions/write_into_fileActionModel" 2789 | }, 2790 | { 2791 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2792 | }, 2793 | { 2794 | "$ref": "#/definitions/insert_content_into_textActionModel" 2795 | }, 2796 | { 2797 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2798 | }, 2799 | { 2800 | "$ref": "#/definitions/promptActionModel" 2801 | }, 2802 | { 2803 | "$ref": "#/definitions/promptIterableActionModel" 2804 | }, 2805 | { 2806 | "$ref": "#/definitions/read_fileActionModel" 2807 | }, 2808 | { 2809 | "$ref": "#/definitions/read_fileIterableActionModel" 2810 | } 2811 | ] 2812 | }, 2813 | { 2814 | "$ref": "#/definitions/WorkflowInvocation" 2815 | }, 2816 | { 2817 | "$ref": "#/definitions/IterableWorkflowInvocation" 2818 | }, 2819 | { 2820 | "anyOf": [ 2821 | { 2822 | "$ref": "#/definitions/SetVars" 2823 | }, 2824 | { 2825 | "$ref": "#/definitions/IfLambda" 2826 | }, 2827 | { 2828 | "$ref": "#/definitions/IfExistsContext" 2829 | }, 2830 | { 2831 | "$ref": "#/definitions/IfContextNotExists" 2832 | } 2833 | ] 2834 | }, 2835 | { 2836 | "type": "array", 2837 | "items": { 2838 | "anyOf": [ 2839 | { 2840 | "type": "string" 2841 | }, 2842 | { 2843 | "anyOf": [ 2844 | { 2845 | "$ref": "#/definitions/commentActionModel" 2846 | }, 2847 | { 2848 | "$ref": "#/definitions/commentIterableActionModel" 2849 | }, 2850 | { 2851 | "$ref": "#/definitions/set_issue_titleActionModel" 2852 | }, 2853 | { 2854 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2855 | }, 2856 | { 2857 | "$ref": "#/definitions/crawl_folderActionModel" 2858 | }, 2859 | { 2860 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2861 | }, 2862 | { 2863 | "$ref": "#/definitions/bashActionModel" 2864 | }, 2865 | { 2866 | "$ref": "#/definitions/bashIterableActionModel" 2867 | }, 2868 | { 2869 | "$ref": "#/definitions/commit_and_pushActionModel" 2870 | }, 2871 | { 2872 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2873 | }, 2874 | { 2875 | "$ref": "#/definitions/write_into_fileActionModel" 2876 | }, 2877 | { 2878 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2879 | }, 2880 | { 2881 | "$ref": "#/definitions/insert_content_into_textActionModel" 2882 | }, 2883 | { 2884 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2885 | }, 2886 | { 2887 | "$ref": "#/definitions/promptActionModel" 2888 | }, 2889 | { 2890 | "$ref": "#/definitions/promptIterableActionModel" 2891 | }, 2892 | { 2893 | "$ref": "#/definitions/read_fileActionModel" 2894 | }, 2895 | { 2896 | "$ref": "#/definitions/read_fileIterableActionModel" 2897 | } 2898 | ] 2899 | }, 2900 | { 2901 | "$ref": "#/definitions/WorkflowInvocation" 2902 | }, 2903 | { 2904 | "$ref": "#/definitions/IterableWorkflowInvocation" 2905 | }, 2906 | { 2907 | "anyOf": [ 2908 | { 2909 | "$ref": "#/definitions/SetVars" 2910 | }, 2911 | { 2912 | "$ref": "#/definitions/IfLambda" 2913 | }, 2914 | { 2915 | "$ref": "#/definitions/IfExistsContext" 2916 | }, 2917 | { 2918 | "$ref": "#/definitions/IfContextNotExists" 2919 | } 2920 | ] 2921 | } 2922 | ] 2923 | } 2924 | } 2925 | ] 2926 | }, 2927 | "else": { 2928 | "title": "Else", 2929 | "anyOf": [ 2930 | { 2931 | "type": "string" 2932 | }, 2933 | { 2934 | "anyOf": [ 2935 | { 2936 | "$ref": "#/definitions/commentActionModel" 2937 | }, 2938 | { 2939 | "$ref": "#/definitions/commentIterableActionModel" 2940 | }, 2941 | { 2942 | "$ref": "#/definitions/set_issue_titleActionModel" 2943 | }, 2944 | { 2945 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 2946 | }, 2947 | { 2948 | "$ref": "#/definitions/crawl_folderActionModel" 2949 | }, 2950 | { 2951 | "$ref": "#/definitions/crawl_folderIterableActionModel" 2952 | }, 2953 | { 2954 | "$ref": "#/definitions/bashActionModel" 2955 | }, 2956 | { 2957 | "$ref": "#/definitions/bashIterableActionModel" 2958 | }, 2959 | { 2960 | "$ref": "#/definitions/commit_and_pushActionModel" 2961 | }, 2962 | { 2963 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 2964 | }, 2965 | { 2966 | "$ref": "#/definitions/write_into_fileActionModel" 2967 | }, 2968 | { 2969 | "$ref": "#/definitions/write_into_fileIterableActionModel" 2970 | }, 2971 | { 2972 | "$ref": "#/definitions/insert_content_into_textActionModel" 2973 | }, 2974 | { 2975 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 2976 | }, 2977 | { 2978 | "$ref": "#/definitions/promptActionModel" 2979 | }, 2980 | { 2981 | "$ref": "#/definitions/promptIterableActionModel" 2982 | }, 2983 | { 2984 | "$ref": "#/definitions/read_fileActionModel" 2985 | }, 2986 | { 2987 | "$ref": "#/definitions/read_fileIterableActionModel" 2988 | } 2989 | ] 2990 | }, 2991 | { 2992 | "$ref": "#/definitions/WorkflowInvocation" 2993 | }, 2994 | { 2995 | "$ref": "#/definitions/IterableWorkflowInvocation" 2996 | }, 2997 | { 2998 | "anyOf": [ 2999 | { 3000 | "$ref": "#/definitions/SetVars" 3001 | }, 3002 | { 3003 | "$ref": "#/definitions/IfLambda" 3004 | }, 3005 | { 3006 | "$ref": "#/definitions/IfExistsContext" 3007 | }, 3008 | { 3009 | "$ref": "#/definitions/IfContextNotExists" 3010 | } 3011 | ] 3012 | }, 3013 | { 3014 | "type": "array", 3015 | "items": { 3016 | "anyOf": [ 3017 | { 3018 | "type": "string" 3019 | }, 3020 | { 3021 | "anyOf": [ 3022 | { 3023 | "$ref": "#/definitions/commentActionModel" 3024 | }, 3025 | { 3026 | "$ref": "#/definitions/commentIterableActionModel" 3027 | }, 3028 | { 3029 | "$ref": "#/definitions/set_issue_titleActionModel" 3030 | }, 3031 | { 3032 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 3033 | }, 3034 | { 3035 | "$ref": "#/definitions/crawl_folderActionModel" 3036 | }, 3037 | { 3038 | "$ref": "#/definitions/crawl_folderIterableActionModel" 3039 | }, 3040 | { 3041 | "$ref": "#/definitions/bashActionModel" 3042 | }, 3043 | { 3044 | "$ref": "#/definitions/bashIterableActionModel" 3045 | }, 3046 | { 3047 | "$ref": "#/definitions/commit_and_pushActionModel" 3048 | }, 3049 | { 3050 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 3051 | }, 3052 | { 3053 | "$ref": "#/definitions/write_into_fileActionModel" 3054 | }, 3055 | { 3056 | "$ref": "#/definitions/write_into_fileIterableActionModel" 3057 | }, 3058 | { 3059 | "$ref": "#/definitions/insert_content_into_textActionModel" 3060 | }, 3061 | { 3062 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 3063 | }, 3064 | { 3065 | "$ref": "#/definitions/promptActionModel" 3066 | }, 3067 | { 3068 | "$ref": "#/definitions/promptIterableActionModel" 3069 | }, 3070 | { 3071 | "$ref": "#/definitions/read_fileActionModel" 3072 | }, 3073 | { 3074 | "$ref": "#/definitions/read_fileIterableActionModel" 3075 | } 3076 | ] 3077 | }, 3078 | { 3079 | "$ref": "#/definitions/WorkflowInvocation" 3080 | }, 3081 | { 3082 | "$ref": "#/definitions/IterableWorkflowInvocation" 3083 | }, 3084 | { 3085 | "anyOf": [ 3086 | { 3087 | "$ref": "#/definitions/SetVars" 3088 | }, 3089 | { 3090 | "$ref": "#/definitions/IfLambda" 3091 | }, 3092 | { 3093 | "$ref": "#/definitions/IfExistsContext" 3094 | }, 3095 | { 3096 | "$ref": "#/definitions/IfContextNotExists" 3097 | } 3098 | ] 3099 | } 3100 | ] 3101 | } 3102 | } 3103 | ] 3104 | }, 3105 | "if_lambda": { 3106 | "title": "If Lambda", 3107 | "description": "A python lambda expression that returns a boolean. ", 3108 | "type": "string" 3109 | } 3110 | }, 3111 | "required": [ 3112 | "then", 3113 | "if_lambda" 3114 | ], 3115 | "additionalProperties": false 3116 | }, 3117 | "WorkflowDefinition": { 3118 | "title": "WorkflowDefinition", 3119 | "type": "object", 3120 | "properties": { 3121 | "name": { 3122 | "title": "Name", 3123 | "type": "string" 3124 | }, 3125 | "description": { 3126 | "title": "Description", 3127 | "type": "string" 3128 | }, 3129 | "inputs": { 3130 | "title": "Inputs", 3131 | "type": "array", 3132 | "items": { 3133 | "type": "string" 3134 | } 3135 | }, 3136 | "outputs": { 3137 | "title": "Outputs", 3138 | "type": "array", 3139 | "items": { 3140 | "type": "string" 3141 | } 3142 | }, 3143 | "steps": { 3144 | "title": "Steps", 3145 | "type": "array", 3146 | "items": { 3147 | "anyOf": [ 3148 | { 3149 | "type": "string" 3150 | }, 3151 | { 3152 | "$ref": "#/definitions/commentActionModel" 3153 | }, 3154 | { 3155 | "$ref": "#/definitions/commentIterableActionModel" 3156 | }, 3157 | { 3158 | "$ref": "#/definitions/set_issue_titleActionModel" 3159 | }, 3160 | { 3161 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 3162 | }, 3163 | { 3164 | "$ref": "#/definitions/crawl_folderActionModel" 3165 | }, 3166 | { 3167 | "$ref": "#/definitions/crawl_folderIterableActionModel" 3168 | }, 3169 | { 3170 | "$ref": "#/definitions/bashActionModel" 3171 | }, 3172 | { 3173 | "$ref": "#/definitions/bashIterableActionModel" 3174 | }, 3175 | { 3176 | "$ref": "#/definitions/commit_and_pushActionModel" 3177 | }, 3178 | { 3179 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 3180 | }, 3181 | { 3182 | "$ref": "#/definitions/write_into_fileActionModel" 3183 | }, 3184 | { 3185 | "$ref": "#/definitions/write_into_fileIterableActionModel" 3186 | }, 3187 | { 3188 | "$ref": "#/definitions/insert_content_into_textActionModel" 3189 | }, 3190 | { 3191 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 3192 | }, 3193 | { 3194 | "$ref": "#/definitions/promptActionModel" 3195 | }, 3196 | { 3197 | "$ref": "#/definitions/promptIterableActionModel" 3198 | }, 3199 | { 3200 | "$ref": "#/definitions/read_fileActionModel" 3201 | }, 3202 | { 3203 | "$ref": "#/definitions/read_fileIterableActionModel" 3204 | }, 3205 | { 3206 | "$ref": "#/definitions/WorkflowInvocation" 3207 | }, 3208 | { 3209 | "$ref": "#/definitions/IterableWorkflowInvocation" 3210 | }, 3211 | { 3212 | "$ref": "#/definitions/SetVars" 3213 | }, 3214 | { 3215 | "$ref": "#/definitions/IfLambda" 3216 | }, 3217 | { 3218 | "$ref": "#/definitions/IfExistsContext" 3219 | }, 3220 | { 3221 | "$ref": "#/definitions/IfContextNotExists" 3222 | }, 3223 | { 3224 | "type": "array", 3225 | "items": { 3226 | "anyOf": [ 3227 | { 3228 | "type": "string" 3229 | }, 3230 | { 3231 | "$ref": "#/definitions/commentActionModel" 3232 | }, 3233 | { 3234 | "$ref": "#/definitions/commentIterableActionModel" 3235 | }, 3236 | { 3237 | "$ref": "#/definitions/set_issue_titleActionModel" 3238 | }, 3239 | { 3240 | "$ref": "#/definitions/set_issue_titleIterableActionModel" 3241 | }, 3242 | { 3243 | "$ref": "#/definitions/crawl_folderActionModel" 3244 | }, 3245 | { 3246 | "$ref": "#/definitions/crawl_folderIterableActionModel" 3247 | }, 3248 | { 3249 | "$ref": "#/definitions/bashActionModel" 3250 | }, 3251 | { 3252 | "$ref": "#/definitions/bashIterableActionModel" 3253 | }, 3254 | { 3255 | "$ref": "#/definitions/commit_and_pushActionModel" 3256 | }, 3257 | { 3258 | "$ref": "#/definitions/commit_and_pushIterableActionModel" 3259 | }, 3260 | { 3261 | "$ref": "#/definitions/write_into_fileActionModel" 3262 | }, 3263 | { 3264 | "$ref": "#/definitions/write_into_fileIterableActionModel" 3265 | }, 3266 | { 3267 | "$ref": "#/definitions/insert_content_into_textActionModel" 3268 | }, 3269 | { 3270 | "$ref": "#/definitions/insert_content_into_textIterableActionModel" 3271 | }, 3272 | { 3273 | "$ref": "#/definitions/promptActionModel" 3274 | }, 3275 | { 3276 | "$ref": "#/definitions/promptIterableActionModel" 3277 | }, 3278 | { 3279 | "$ref": "#/definitions/read_fileActionModel" 3280 | }, 3281 | { 3282 | "$ref": "#/definitions/read_fileIterableActionModel" 3283 | }, 3284 | { 3285 | "$ref": "#/definitions/WorkflowInvocation" 3286 | }, 3287 | { 3288 | "$ref": "#/definitions/IterableWorkflowInvocation" 3289 | }, 3290 | { 3291 | "$ref": "#/definitions/SetVars" 3292 | }, 3293 | { 3294 | "$ref": "#/definitions/IfLambda" 3295 | }, 3296 | { 3297 | "$ref": "#/definitions/IfExistsContext" 3298 | }, 3299 | { 3300 | "$ref": "#/definitions/IfContextNotExists" 3301 | } 3302 | ] 3303 | } 3304 | } 3305 | ] 3306 | } 3307 | } 3308 | }, 3309 | "required": [ 3310 | "steps" 3311 | ], 3312 | "additionalProperties": false 3313 | } 3314 | } 3315 | } --------------------------------------------------------------------------------