Skip to content

Conversation

@yrobla
Copy link
Contributor

@yrobla yrobla commented Nov 17, 2025

Successfully added the OutputFormat / outputFormat field to all configuration layers for vMCP composite tool workflows. This PR lays the foundation for implementing output aggregation in multi-step workflows as described in issue #174.

@yrobla yrobla requested a review from Copilot November 17, 2025 14:13
@yrobla yrobla changed the title schema and config changes for vMCP: Composition - Output Aggregation … schema and config changes for vMCP: Composition - Output Aggregation Nov 17, 2025
…for Multi-Step Workflows

Successfully added the OutputFormat / outputFormat field to all configuration
layers for vMCP composite tool workflows. This PR lays the foundation for
implementing output aggregation in multi-step workflows as described in issue #174.
@yrobla yrobla force-pushed the feat/vmcp_composition_multistep branch from d30b42b to 09c8ef4 Compare November 17, 2025 14:14
Copilot finished reviewing on behalf of yrobla November 17, 2025 14:15
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds the OutputFormat / output_format field across all configuration layers for vMCP composite tool workflows, laying the groundwork for implementing output aggregation in multi-step workflows (issue #174).

  • Added OutputFormat string field to the WorkflowDefinition struct in the composer package
  • Added OutputFormat field to the CompositeToolConfig struct in the config package with JSON/YAML tags
  • Updated the workflow converter to map OutputFormat from config to workflow definitions
  • Added comprehensive test coverage for the OutputFormat field conversion
  • Updated Kubernetes CRD definitions to include the outputFormat field
  • Updated API documentation to describe the new field

Reviewed Changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pkg/vmcp/composer/composer.go Added OutputFormat field to WorkflowDefinition struct with detailed documentation
pkg/vmcp/config/config.go Added OutputFormat field to CompositeToolConfig with JSON/YAML tags and comprehensive documentation
pkg/vmcp/server/workflow_converter.go Updated converter to map OutputFormat from config to WorkflowDefinition
pkg/vmcp/server/workflow_converter_test.go Added test coverage for OutputFormat field propagation through conversion
cmd/thv-operator/api/v1alpha1/virtualmcpcompositetooldefinition_types.go Added OutputFormat field to CRD spec with kubebuilder annotations
deploy/charts/operator-crds/crds/toolhive.stacklok.dev_virtualmcpcompositetooldefinitions.yaml Updated CRD schema with outputFormat field definition
docs/operator/crd-api.md Updated API documentation to include outputFormat field description

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@codecov
Copy link

codecov bot commented Nov 17, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 55.84%. Comparing base (107ea07) to head (b2e7e32).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2609      +/-   ##
==========================================
- Coverage   55.85%   55.84%   -0.01%     
==========================================
  Files         312      312              
  Lines       29541    29542       +1     
==========================================
- Hits        16501    16499       -2     
- Misses      11599    11601       +2     
- Partials     1441     1442       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@yrobla yrobla requested review from JAORMX and jhrozek November 17, 2025 14:31
Copy link
Contributor

@tgrunnagle tgrunnagle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A future enhancement may be to add support for configRefs in k8s.

description: A Helm chart for installing the ToolHive Operator CRDs into Kubernetes.
type: application
version: 0.0.57
version: 0.0.58
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think 0.0.58 was merged in the meantime and we need another bump

// }
//
// +optional
OutputFormat string `json:"outputFormat,omitempty"`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add a size limit?
Since we already have a webhook could we add some validation there?

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.

5 participants