Conversation
* Unified to `ILlmSchema` * Complete the new `ILlmSchema` type * detailed description comments * Update src/structures/ILlmSchema.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/structures/ILlmSchema.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/structures/ILlmSchema.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * prettier --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Universal `HttpLlm` * Update src/HttpLlm.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/HttpLlm.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix configuration comments * fix more thing --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Remove individual LLM schemas * fix
* Unify test functions about LLM schemas * Update test/src/utils/LlmApplicationFactory.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fixed most of test functions * fixed most of test functions * completed everything --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This is a major version release (v6.0) that consolidates the LLM function calling schema types into a unified interface. The PR removes model-specific type parameters and type checkers, simplifying the API by moving from multiple model-specific schemas (ChatGPT, Claude, Gemini, etc.) to a single ILlmSchema type.
Key Changes:
- Removed model-specific type parameters from interfaces (
ILlmFunction<Model>→ILlmFunction) - Consolidated type checkers into a single
LlmTypeCheckerutility - Updated configuration interfaces from
optionstoconfigproperty naming - Removed deprecated v3.0 and v3.1 schema types and their associated type checkers
Reviewed changes
Copilot reviewed 140 out of 140 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
test/src/utils/LlmFunctionCaller.ts |
Removed generic model parameter from interface and function signatures |
test/src/utils/LlmApplicationFactory.ts |
Simplified to work with unified ILlmSchema, fixed console.log statement |
test/src/features/mcp/validate_mcp_application.ts |
Deleted - replaced with unified test |
test/src/features/mcp/test_mcp_schema_ref.ts |
Updated to use unified LlmTypeChecker |
test/src/features/mcp/test_mcp_application.ts |
New unified MCP application test |
| Multiple llm/schema test files | Deleted model-specific tests, replaced with unified versions |
src/utils/LlmTypeChecker.ts |
Consolidated from GeminiTypeChecker with updated documentation |
src/utils/LlmDataMerger.ts |
Removed generic model parameter |
| Deprecated type checkers | Removed ChatGptTypeChecker, ClaudeTypeChecker, LlamaTypeChecker, DeepSeekTypeChecker, LlmTypeCheckerV3, LlmTypeCheckerV3_1 |
src/structures/IMcpLlmFunction.ts |
Removed model generic parameter |
src/structures/IMcpLlmApplication.ts |
Changed options to config, removed model property |
src/structures/ILlmFunction.ts |
Removed model generic parameter |
Comments suppressed due to low confidence (1)
src/composers/HttpMigrateRouteComposer.ts:187
- Operands schema.description and schema.description are identical.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| * (Model Context Protocol) document. It contains | ||
| * {@link IMcpLlmApplication.errors failed functions}, and adjusted | ||
| * {@link IMcpLlmApplication.options options} during the `IMcpLlmApplication` | ||
| * {@link IMcpLlmApplication.config options} during the `IMcpLlmApplication` |
There was a problem hiding this comment.
The property name has been changed from options to config throughout the codebase. However, the documentation comment still refers to the old property name. Update the comment to reference IMcpLlmApplication.config instead of IMcpLlmApplication.options.
|
|
||
| // BOTH OF THEM | ||
| return [ | ||
| llm !== null |
There was a problem hiding this comment.
Variable 'llm' cannot be of type null, but it is compared to an expression of type null.
| llm !== null | ||
| ? { | ||
| ...props.schema, | ||
| $ref: `#/$defs/${llmKey}`, | ||
| } | ||
| : null, | ||
| human !== null | ||
| ? { | ||
| ...props.schema, | ||
| $ref: `#/$defs/${humanKey}`, | ||
| } | ||
| : null, |
There was a problem hiding this comment.
Variable 'human' cannot be of type null, but it is compared to an expression of type null.
| llm !== null | |
| ? { | |
| ...props.schema, | |
| $ref: `#/$defs/${llmKey}`, | |
| } | |
| : null, | |
| human !== null | |
| ? { | |
| ...props.schema, | |
| $ref: `#/$defs/${humanKey}`, | |
| } | |
| : null, | |
| { | |
| ...props.schema, | |
| $ref: `#/$defs/${llmKey}`, | |
| }, | |
| { | |
| ...props.schema, | |
| $ref: `#/$defs/${humanKey}`, | |
| }, |
Overall PR of individually implemented.