name: module-analysis-workflow
description: Analyzes JS modules to identify exports and summarize content
outputPath: "output"

files:
  moduleA:
    include: ["src/moduleA.js"]
  moduleB:
    include: ["src/moduleB.js"]
  allModules: # Collection for iteration
    include: ["src/*.js"]

# Define global context available everywhere
global_variables:
  # Example global variable
  analysisType: "Static Analysis"

# Define data for iteration by sets
iterable_objects:
  # List of modules with their content embedded
  module_list: # Target for 'for_each: module_list'
    - name: moduleA
      path: "{{ files.moduleA.path }}"
      content: "{{ files.moduleA }}" # Embed content
    - name: moduleB
      path: "{{ files.moduleB.path }}"
      content: "{{ files.moduleB }}" # Embed content

  # Alternatively, could iterate directly over the file collection
  # module_files: "{{ files.allModules }}"

sets:
  - useSet: identify-module-exports
    for_each: module_list # Iterate over the list defined in iterable_objects

  - useSet: summarize-identified-modules
    for_each: module_list # Iterate over the list defined in iterable_objects

  # Add the new sets to the sequence
  - useSet: refine-summary
    for_each: module_list # This set iterates
  - useSet: aggregate-summaries
    # This set does NOT iterate

# Define overall required outputs (optional)
# requiredOutput: 