-
Notifications
You must be signed in to change notification settings - Fork 5
docs(specs): update SPEC-PLATFORM-SERVICE post v1.1.0 #461
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
omid-aignostics
wants to merge
9
commits into
main
Choose a base branch
from
docs/update-platform-spec-post-v1.1.0
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
b6f3fea
feat(utils): split MCP and plugin requirements, add plugin integratio…
omid-aignostics f9d65b1
chore: exclude tests/resources/ from name-tests-test pre-commit hook
omid-aignostics 5118c8b
chore: fix regex in name-tests-test pre-commit hook exclusion
omid-aignostics e5965f0
refactor(tests): centralise dummy plugin install fixture in utils con…
omid-aignostics 30be3db
chore: fix YAML escape in pre-commit hook exclusion regex
omid-aignostics 33e508f
style: reformat test signature to single line per ruff
omid-aignostics b10356e
style: fix ruff formatting in mcp_test.py
omid-aignostics 0f9c093
chore(deps): upgrade lxml-html-clean to 0.4.4 and authlib to 1.6.9
omid-aignostics 706e932
docs(specs): update SPEC-PLATFORM-SERVICE post v1.1.0
omid-aignostics File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,10 +1,10 @@ | ||
| --- | ||
| itemId: SHR-UTILS-1 | ||
| itemTitle: Central MCP Server for SDK and Plugin Tool Access | ||
| itemTitle: Central MCP Server for SDK Tool Access | ||
| itemType: Requirement | ||
| Requirement type: ENVIRONMENT | ||
| --- | ||
|
|
||
| ## Description | ||
|
|
||
| Users shall be able to expose SDK and plugin functionality to AI agents via a central MCP server for use in AI-assisted development workflows. | ||
| Developers shall be able to expose SDK functionality to AI agents via a central MCP server for use in AI-assisted development workflows. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| --- | ||
| itemId: SHR-UTILS-2 | ||
| itemTitle: Plugin System for SDK Extension | ||
| itemType: Requirement | ||
| Requirement type: ENVIRONMENT | ||
| --- | ||
|
|
||
| ## Description | ||
|
|
||
| Developers shall be able to extend the Python SDK at runtime with custom plugin modules that contribute business logic, CLI commands, and UI pages. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| --- | ||
| itemId: SWR-UTILS-2-1 | ||
| itemTitle: Plugin Module Discovery and Loading | ||
| itemHasParent: SHR-UTILS-2 | ||
| itemType: Requirement | ||
| Requirement type: FUNCTIONAL | ||
| Layer: System (backend logic) | ||
| --- | ||
|
|
||
| System shall discover and load externally installed plugin modules at runtime, making their functionality available without requiring changes to the core SDK codebase. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| --- | ||
| itemId: SWR-UTILS-2-2 | ||
| itemTitle: Plugin CLI Command Integration | ||
| itemHasParent: SHR-UTILS-2 | ||
| itemType: Requirement | ||
| Requirement type: FUNCTIONAL | ||
| Layer: System (backend logic) | ||
| --- | ||
|
|
||
| System shall automatically register CLI commands contributed by plugin modules into the SDK command-line interface. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| --- | ||
| itemId: SWR-UTILS-2-3 | ||
| itemTitle: Plugin GUI Page Integration | ||
| itemHasParent: SHR-UTILS-2 | ||
| itemType: Requirement | ||
| Requirement type: FUNCTIONAL | ||
| Layer: System (backend logic) | ||
| --- | ||
|
|
||
| System shall automatically register GUI pages contributed by plugin modules into the SDK graphical user interface. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| Feature: Plugin CLI Command Integration | ||
|
|
||
| The SDK automatically registers CLI commands contributed by plugin modules | ||
| into the SDK command-line interface when the plugin is installed. | ||
|
|
||
| @tests:SWR-UTILS-2-2 | ||
| @id:TC-UTILS-PLUGIN-02 | ||
| Scenario: Plugin CLI commands are registered in the SDK CLI after installation | ||
| Given a plugin package registers an entry point under "aignostics.plugins" | ||
| And the plugin exposes a Typer CLI instance | ||
| When the SDK CLI is prepared via prepare_cli() | ||
| Then the plugin's CLI is registered in the SDK command-line interface |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| Feature: Plugin GUI Page Integration | ||
|
|
||
| The SDK automatically registers GUI navigation entries contributed by plugin | ||
| modules into the SDK graphical user interface when the plugin is installed. | ||
|
|
||
| @tests:SWR-UTILS-2-3 | ||
| @id:TC-UTILS-PLUGIN-03 | ||
| Scenario: Plugin GUI navigation entries are available in the SDK after installation | ||
| Given a plugin package registers an entry point under "aignostics.plugins" | ||
| And the plugin exposes a BaseNavBuilder subclass | ||
| When the SDK GUI collects navigation groups via gui_get_nav_groups() | ||
| Then the plugin's navigation entries are included in the SDK navigation |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| """Shared fixtures for utils tests.""" | ||
|
|
||
| from __future__ import annotations | ||
|
|
||
| import importlib | ||
| import site | ||
| import subprocess | ||
| import sys | ||
| from pathlib import Path | ||
| from typing import TYPE_CHECKING | ||
|
|
||
| import pytest | ||
|
|
||
| if TYPE_CHECKING: | ||
| from collections.abc import Iterator | ||
|
|
||
| DUMMY_PLUGIN_DIR = Path(__file__).resolve().parents[2] / "resources" / "mcp_dummy_plugin" | ||
|
|
||
|
|
||
| @pytest.fixture(scope="session") | ||
| def install_dummy_plugin() -> Iterator[None]: | ||
| """Install the dummy plugin package in editable mode for the test session. | ||
|
|
||
| Refreshes site-packages so the running interpreter sees the new package | ||
| and its entry points without a process restart. | ||
| """ | ||
| subprocess.run( | ||
| [sys.executable, "-m", "pip", "install", "--no-deps", "-e", str(DUMMY_PLUGIN_DIR)], | ||
| check=True, | ||
| capture_output=True, | ||
| text=True, | ||
| ) | ||
|
|
||
| importlib.invalidate_caches() | ||
| for sp in site.getsitepackages(): | ||
| site.addsitedir(sp) | ||
|
|
||
| yield | ||
|
|
||
| subprocess.run( | ||
| [sys.executable, "-m", "pip", "uninstall", "-y", "mcp-dummy-plugin"], | ||
| check=True, | ||
| capture_output=True, | ||
| text=True, | ||
| ) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The session fixture installs the dummy plugin via
pip install -e. With a PEP 517 backend (hatchling), pip will use build isolation by default, which can trigger additional build-env installs and potentially network access during test runs. Consider adding--no-build-isolation(and ensuring hatchling is available in the test environment) to make the integration tests more reliable and faster in constrained CI environments.