custom

Create your own module

Example

# Check out the docs at https://docs.second.dev/
# Constants are available across all steps
constants:
  limit: 3
  # You can use constants inside other constants as long as they are defined previously.
  limit_from_variable: '{{ limit }}'

steps:
  - tools:
      # Use regex to find all files in the current directory (up to a limit of 3)
      - name: find_files_by_name_with_regex
        arguments:
          path_to_directory: '.'
          find_file_name_pattern: '^[^\.]+\..+$'
          limit: '{{ limit }}'
        returns: files

      # For each file, get the file content
      - name: async_each
        items: '{{ files }}'
        each_item:
          item_name: file
          tools:
            - name: get_content_from_file
              arguments:
                path_to_file: '{{ file }}'
              returns: file_content

            # If the file content exists, show it in the agent trace.
            - name: if_else
              condition: '{{ file_content }}'
              returns_key: new_file_name # The name of the key that will be returned from the if_else step.
              if:
                tools:
                  - name: create_file_with_ai
                    arguments:
                      path_to_file: 'example/{{ file }}'
                      create_content_prompt: |
                        Create an example typescript file based off of the name of this file: `{{ file }}`
                    returns: new_example_file

                  - name: change_file_extension
                    arguments:
                      path_to_file: '{{ new_example_file }}'
                      new_extension: ts
                    returns: new_file_name
              returns: new_file

            - name: echo_one
              arguments:
                echo_arg: |
                  Here is the string from the conditional:
                  ```
                  {{ new_file }}
                  ```

Last updated