Skip to content

Conversation

@h3xxit
Copy link
Member

@h3xxit h3xxit commented Aug 19, 2025

Summary by cubic

Release UTCP 1.0.0 with a modular core, plugin-based communication protocols, and a revamped client architecture to improve extensibility, packaging, and tests. This formalizes data models, auth, variable loading, and post-processing, and splits transports into installable plugins.

  • New Features

    • Core package (utcp) with Pydantic models and serializers: Tool, CallTemplate, UtcpManual, Auth, VariableLoader.
    • Pluggable interfaces: CommunicationProtocol, ConcurrentToolRepository, ToolSearchStrategy, VariableSubstitutor, ToolPostProcessor.
    • Implementations: UtcpClient, InMemToolRepository (async RW lock), TagAndDescriptionWordMatchStrategy, filter/limit post-processors.
    • Protocol plugins: utcp-http (HTTP, SSE, streamable HTTP + OpenAPI converter), utcp-cli, utcp-mcp; gql/socket scaffolding.
    • CI updates to install and test core and protocol plugins; coverage paths updated.
  • Migration

    • Replace provider with call_template in manuals and code; use call_template_type (e.g., "http", "sse", "streamable_http", "cli", "mcp").
    • Rename "http_stream" to "streamable_http" in configs.
    • Update imports to new modules (e.g., utcp_http., utcp_cli., utcp_mcp.*) and new interfaces.
    • Install desired protocol plugins alongside core (pip install utcp and the needed utcp-xxx packages).

h3xxit added 15 commits August 12, 2025 09:49
UTCP 1.0.0 introduces a modular core with plugin-based communication protocols, new Pydantic data models, and a revamped client architecture. This improves extensibility, testability, and packaging while formalizing auth, variable loading, and post-processing.

New Features
- Core package with Tool, CallTemplate, UtcpManual, Auth, VariableLoader, and serializers.
- Pluggable interfaces: CommunicationProtocol, ConcurrentToolRepository, ToolSearchStrategy, VariableSubstitutor, ToolPostProcessor.
- Implementations: UtcpClient, InMemToolRepository (async RW lock), TagAndDescriptionWordMatchStrategy, filter/limit post-processors.
- Protocol plugins: utcp-http (HTTP, SSE, streamable HTTP + OpenAPI converter), utcp-cli, utcp-mcp; gql/socket scaffolding.
- Packaging split: core (utcp) and per-protocol packages (utcp-http, utcp-cli, utcp-mcp, etc.).
- CI runs tests for core and plugins; coverage paths updated.
- README: provider_type "http_stream" renamed to "streamable_http".

Migration
- Replace provider with call_template in manuals and code; use call_template_type (e.g., "http", "sse", "streamable_http", "cli", "mcp").
- Rename "http_stream" to "streamable_http" in configs.
- Update imports to new modules (e.g., utcp_http., utcp_cli., utcp_mcp.*) and new interfaces.
- Install protocol plugins alongside core (pip install -e core[dev] and desired utcp-xxx packages) to auto-register. (utcp, utcp-xxx for the ones from pip)
- If using tag search, switch to TagAndDescriptionWordMatchStrategy.
- Variables that are substituted in different call_templates are first namespaced with the name of the manual, with the _ duplicated. So a call template called tool_1_template from the manual manual_1 would be converted to manual__1_tool_1_template. (already part of 0.2.0)
@h3xxit h3xxit merged commit 34f471e into main Aug 19, 2025
25 checks passed
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

40 issues found across 130 files

React with 👍 or 👎 to teach cubic. You can also tag @cubic-dev-ai to give feedback, ask questions, or re-run the review.

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.

2 participants