Skip to content

Easier tools#59

Merged
guenhter merged 7 commits intomainfrom
easier-tools
Apr 8, 2026
Merged

Easier tools#59
guenhter merged 7 commits intomainfrom
easier-tools

Conversation

@guenhter
Copy link
Copy Markdown
Contributor

@guenhter guenhter commented Apr 7, 2026

No description provided.

@guenhter guenhter force-pushed the easier-tools branch 2 times, most recently from d95070c to 3dabf07 Compare April 8, 2026 11:47
Copy link
Copy Markdown
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 streamlines “tools” across the stack by switching to the OpenAI Responses API function-tool shape end-to-end, simplifying /api/tools to return a raw list, improving the chat tool selector UX, and adding frontend manifest includes resolution for easier module composition.

Changes:

  • Flattened tool definitions (frontend + backend) to use { type: "function", name, description, parameters, strict } and updated tool fetching/usage accordingly.
  • Added frontend manifest includes resolution with merge/replace/drop collision strategies and accompanying tests/docs.
  • Introduced a backend ToolsRouterModule that aggregates multiple tool registries and dispatches tool execution by tool name.

Reviewed changes

Copilot reviewed 42 out of 43 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
frontend/omni/src/modules/tools-service/toolName.ts Adds helper to sort tools by name.
frontend/omni/src/modules/tools-service/toolName.test.ts Unit test for tool name sorting.
frontend/omni/src/modules/tools-service/modaiBackendToolsService.svelte.ts Updates tools fetch parsing to expect a raw tool list from /api/tools.
frontend/omni/src/modules/tools-service/index.svelte.ts Flattens OpenAIFunctionTool type to Responses API shape.
frontend/omni/src/modules/tools-service/index.svelte.test.ts Updates tools-service tests to match raw list response + flattened tool shape.
frontend/omni/src/modules/fetch-service/sessionFetchService.svelte.ts Makes session fetch service delegate to injected fetch service (instead of global fetch).
frontend/omni/src/modules/fetch-service/fetchService.test.ts Updates tests for injected fetch dependency and adds delegation coverage.
frontend/omni/src/modules/chat/ChatToolsSelector.svelte Sorts tools, formats display names, adds tooltip descriptions, and makes popover scrollable.
frontend/omni/src/modules/chat/ChatComponent.svelte Updates selection logic to use tool.name instead of nested tool.function.name.
frontend/omni/src/modules/chat-service/openai.svelte.ts Updates OpenAI tool conversion to use flattened tool fields.
frontend/omni/src/modules/chat-service/openai.svelte.test.ts Updates OpenAI chat-service tests for flattened tool schema.
frontend/omni/src/core/module-system/ModulesProvider.svelte Switches manifest loading to resolveManifest (supports includes).
frontend/omni/src/core/module-system/manifestJson.ts Implements manifest include resolution + collision strategies + deep merge.
frontend/omni/src/core/module-system/manifestJson.test.ts Adds comprehensive tests for include resolution and collision strategies.
frontend/omni/public/modules_with_backend.json Adds dependency wiring for session fetch service to wrap a base fetch service.
frontend/omni/justfile Renames check-write to format.
frontend/omni/docs/architecture/core.md Documents manifest includes and collision behavior.
frontend/omni/CHANGELOG.md Notes manifest includes and tools API/UX changes.
frontend/omni/.gitignore Updates ignored module manifest outputs under public/.
e2e_tests/tests_omni_light/justfile Renames check-write to format.
e2e_tests/tests_omni_full/src/chat.spec.ts Updates tool enabling to match human-readable tool display name.
e2e_tests/tests_omni_full/justfile Renames check-write to format.
e2e_tests/tests_omni_full/backend-config-e2e.yaml Updates tools config to use tool_servers and OpenAPI spec URL.
backend/tools/dice-roller/justfile Renames check-write to format.
backend/omni/src/modai/modules/tools/tools_web_module.py Removes the old web module that wrapped tool definitions in an envelope.
backend/omni/src/modai/modules/tools/tool_router.py Adds router module to aggregate registries and expose GET /api/tools.
backend/omni/src/modai/modules/tools/tool_registry_predefined_vars.py Refactors predefined-vars registry to be request-aware and operate on OpenAI tool dicts.
backend/omni/src/modai/modules/tools/tool_registry_openapi.py Refactors OpenAPI tool registry to expose all operations and execute by operationId.
backend/omni/src/modai/modules/tools/README.md Adds backend tools module documentation and configuration examples.
backend/omni/src/modai/modules/tools/module.py Refactors tool contract to get_tools(request) / run_tool(request, params) and uses FunctionToolParam.
backend/omni/src/modai/modules/tools/tests/test_tools_web_module.py Removes tests for deleted tools web module.
backend/omni/src/modai/modules/tools/tests/test_tool_router.py Adds tests for tools router aggregation and dispatch behavior.
backend/omni/src/modai/modules/tools/tests/test_tool_registry_predefined_vars.py Updates tests for new request-aware predefined-vars registry behavior.
backend/omni/src/modai/modules/tools/tests/test_tool_registry_openapi.py Updates tests for operation-based discovery/execution and new config format.
backend/omni/src/modai/modules/chat/openai_agent_chat.py Updates tool execution path to call tool_registry.run_tool(request, params).
backend/omni/src/modai/modules/chat/tests/test_chat_llm_modules.py Updates tool-call tests for the new registry execution contract.
backend/omni/src/modai/default_config.yaml Updates default tool registry wiring (router + predefined vars + openapi).
backend/omni/justfile Renames check-write to format.
backend/omni/docs/architecture/tools.md Updates tools architecture docs to the new router/registry contract and raw list response.
backend/omni/config.sample.yaml Removes outdated tools config and adds a clarifying auth comment.
backend/omni/CHANGELOG.md Notes tool registry refactor, raw tool list response, and config changes.
backend/omni/.gitignore Adds backend-local ignores for configs, dbs, and .env.
.gitignore Removes global *.db ignore (leaving .env).

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

@guenhter guenhter merged commit dad3108 into main Apr 8, 2026
15 of 16 checks passed
@guenhter guenhter deleted the easier-tools branch April 8, 2026 14:44
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