mirror of
https://github.com/hanzo-ml/hub.git
synced 2026-07-27 07:04:53 +00:00
* feat(catalog): split OpenAPI spec into per-plugin files Restructure the monolithic catalog.yaml source into per-plugin specs so each plugin can independently define its own API paths and schemas while sharing common types from common.yaml. - Slim api/openapi/src/catalog.yaml to core (sources, labels, preview) - Add catalog/plugins/model/api/openapi/ (model paths + schemas) - Add catalog/plugins/mcp/api/openapi/ (MCP paths + schemas) - Add scripts/merge_catalog_specs.sh to combine core + plugins + lib - Update Makefile to use merge_catalog_specs.sh for catalog.yaml The merged output is semantically identical to the previous monolithic spec — generated code, validation, and tests are unchanged. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Alessio Pragliola <seth.pro@gmail.com> * feat(catalog): per-plugin server stub generation Generate server stubs (controllers, interfaces) per-plugin instead of from the unified spec, while keeping client models in catalog/pkg/openapi/. - Add scripts/assemble_plugin_spec.sh to build standalone specs per plugin - Add catalog/plugins/{model,mcp}/scripts/gen_openapi_server.sh for independent per-plugin code generation - Add per-plugin .openapi-generator-ignore files - Split api.go into api_model.go + api_mcp.go (same package, no breaking change) - Refactor catalog/scripts/gen_openapi_server.sh into orchestrator - Update catalog/Makefile with per-plugin targets and dependency isolation Changing a plugin's spec only regenerates that plugin's controller. Generated output is identical to the previous unified generation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Alessio Pragliola <seth.pro@gmail.com> * refactor: move plugin OpenAPI specs to api/openapi/src/plugins/ Co-locate plugin specs with other OpenAPI sources under api/openapi/src/ instead of catalog/plugins/*/api/openapi/. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Alessio Pragliola <seth.pro@gmail.com> * refactor: consolidate plugin OpenAPI specs into single files Flatten per-plugin directory structure (openapi.yaml + components.yaml) into single files (model.yaml, mcp.yaml) under api/openapi/src/plugins/. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Alessio Pragliola <seth.pro@gmail.com> * fix: update .gitattributes and clean target for per-plugin generation Regenerate .gitattributes to reflect api.go → api_model.go/api_mcp.go rename. Fix clean-internal-server-openapi to also delete per-plugin output files so both plugins regenerate after a clean. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Alessio Pragliola <seth.pro@gmail.com> * fix: remove generator boilerplate after per-plugin generation Clean up README.md, api/openapi.yaml, and .openapi-generator-ignore after each plugin generation run to prevent untracked files in CI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Alessio Pragliola <seth.pro@gmail.com> --------- Signed-off-by: Alessio Pragliola <seth.pro@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>