Skip to content

Feature: list all available resources (taskflows, personalities, etc.)#182

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/feature-list-all-available-resources
Draft

Feature: list all available resources (taskflows, personalities, etc.)#182
Copilot wants to merge 3 commits intomainfrom
copilot/feature-list-all-available-resources

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 2, 2026

The framework had no way to enumerate available resources, making it hard to discover what taskflows/personalities exist and producing unhelpful errors when a resource path was wrong.

Changes

available_tools.py

  • Added _SUBDIR_MAP mapping each AvailableToolType to its conventional package subdirectory name (taskflows, personalities, toolboxes, prompts, model_configs)
  • Added AvailableTools.list_resources(tooltype=None) — scans sys.path for packages containing the above subdirectories and returns sorted dotted resource names (e.g. examples.taskflows.example)
  • _load() now appends an "Available Xs:" hint to BadToolNameError when a resource cannot be found

cli.py

  • Added --list-resources / -L flag — lists all discovered resources grouped by type and exits (analogous to --list-models)

tests/test_yaml_parser.py

  • Added TestListResources with 8 tests covering return structure, filtering, sort order, name format, and error message hints

Example

$ seclab-taskflow-agent -L
personalities:
  examples.personalities.apple_expert
  ...
  seclab_taskflow_agent.personalities.assistant
taskflows:
  examples.taskflows.CVE-2023-2283
  examples.taskflows.echo
  examples.taskflows.example
  ...
toolboxes:
  seclab_taskflow_agent.toolboxes.echo
  ...

When a resource is not found:

BadToolNameError: Cannot load examples.taskflows.typo because ... is not a valid file.

Available taskflows:
  examples.taskflows.CVE-2023-2283
  examples.taskflows.echo
  examples.taskflows.example
  ...

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • unsupported.example.com
    • Triggering command: /usr/bin/python python -m pytest tests/ -x -q (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -q yLab/seclab-taskflow-agent (dns block)
    • Triggering command: /usr/bin/python python -m pytest tests/ -q (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI assigned Copilot and p- Apr 2, 2026
Copilot AI linked an issue Apr 2, 2026 that may be closed by this pull request
Copilot AI changed the title [WIP] Add functionality to list all available resources and their namespaces Feature: list all available resources (taskflows, personalities, etc.) Apr 2, 2026
Copilot finished work on behalf of p- April 2, 2026 12:07
Copilot AI requested a review from p- April 2, 2026 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: list all available resources (task flows etc.)

2 participants