• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / toolhive / 19371850918
51%

Build:
DEFAULT BRANCH: main
Ran 14 Nov 2025 05:09PM UTC
Jobs 1
Files 375
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Nov 2025 05:03PM UTC coverage: 48.359% (+0.02%) from 48.339%
19371850918

push

github

web-flow
Improve composite tool configuration ergonomics (#2589)

* Improve composite tool configuration ergonomics

Makes composite tool workflow configuration more user-friendly by
reducing verbosity and following "convention over configuration":

1. **Step type inference**: When 'tool' field is present, 'type' is
   automatically inferred as "tool". Elicitation steps still require
   explicit type for clarity.

2. **Optional timeout**: Timeout can be omitted and defaults to 30
   minutes at runtime. Validator now allows 0 (use default) instead
   of requiring explicit positive value.

Before:
```yaml
composite_tools:
  - name: "fetch_data"
    timeout: "30m"  # Required even for default
    steps:
      - id: "fetch"
        type: "tool"  # Redundant when 'tool' field present
        tool: "fetch_fetch"
```

After:
```yaml
composite_tools:
  - name: "fetch_data"
    # timeout omitted - uses 30m default
    steps:
      - id: "fetch"
        tool: "fetch_fetch"  # Type inferred as "tool"
```

Changes:
- Infer type="tool" when tool field is present
- Allow timeout=0 in validator (engine applies default)
- Handle empty timeout string in YAML loader
- Add comprehensive tests for both features

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Move type inference and defaults to YAMLLoader

This refactoring addresses the architectural concern that validators should
be read-only and not mutate configuration values. The changes follow the
'convention over configuration' principle while maintaining clean separation
of concerns.

Changes:
- Move step type inference from validator to yaml_loader transformWorkflowStep()
- Update validator to be read-only (no longer mutates step.Type)
- Add validation to prevent ambiguous configurations (both tool and message fields)
- Add test case for the ambiguous scenario
- Update existing tests to reflect loader-based type inference

Benefits:
- Clear separation: Load... (continued)

16 of 21 new or added lines in 2 files covered. (76.19%)

1 existing line in 1 file now uncovered.

23502 of 48599 relevant lines covered (48.36%)

36.31 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
60.56
1.92% pkg/vmcp/config/validator.go
4
60.29
0.35% pkg/vmcp/config/yaml_loader.go

Uncovered Existing Lines

Lines Coverage ∆ File
1
60.56
1.92% pkg/vmcp/config/validator.go
Jobs
ID Job ID Ran Files Coverage
1 19371850918.1 14 Nov 2025 05:09PM UTC 375
48.36
GitHub Action Run
Source Files on build 19371850918
  • Tree
  • List 375
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #19371850918
  • 3d250ed3 on github
  • Prev Build on main (#19371465569)
  • Next Build on main (#19372633929)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc