rom-manager 3.3.2__tar.gz → 3.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. {rom_manager-3.3.2/rom_manager.egg-info → rom_manager-3.3.3}/PKG-INFO +4 -4
  2. {rom_manager-3.3.2 → rom_manager-3.3.3}/README.md +1 -1
  3. {rom_manager-3.3.2 → rom_manager-3.3.3}/pyproject.toml +7 -3
  4. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/connectors/tool_schema_fingerprints.json +1 -1
  5. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/kg_ingest.py +1 -1
  6. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/kg_media.py +1 -1
  7. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/mcp_server.py +1 -1
  8. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/ontology/certification.json +3 -3
  9. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/version.py +1 -1
  10. {rom_manager-3.3.2 → rom_manager-3.3.3/rom_manager.egg-info}/PKG-INFO +4 -4
  11. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager.egg-info/SOURCES.txt +1 -0
  12. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager.egg-info/entry_points.txt +3 -0
  13. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager.egg-info/requires.txt +2 -2
  14. rom_manager-3.3.3/tests/test_fleet_name.py +53 -0
  15. {rom_manager-3.3.2 → rom_manager-3.3.3}/LICENSE +0 -0
  16. {rom_manager-3.3.2 → rom_manager-3.3.3}/MANIFEST.in +0 -0
  17. {rom_manager-3.3.2 → rom_manager-3.3.3}/requirements.txt +0 -0
  18. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/__init__.py +0 -0
  19. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/__main__.py +0 -0
  20. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/adapters/__init__.py +0 -0
  21. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/adapters/api_client.py +0 -0
  22. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/api_client.py +0 -0
  23. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/archives.py +0 -0
  24. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/auth.py +0 -0
  25. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/connectors/__init__.py +0 -0
  26. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/connectors/mcp_source_presets.json +0 -0
  27. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/conversion.py +0 -0
  28. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/core/__init__.py +0 -0
  29. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/core/archives.py +0 -0
  30. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/core/conversion.py +0 -0
  31. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/core/naming.py +0 -0
  32. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/game_codes.py +0 -0
  33. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/mcp/__init__.py +0 -0
  34. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/mcp/mcp_conversion.py +0 -0
  35. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/mcp/mcp_game_codes.py +0 -0
  36. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/mcp/mcp_ingest.py +0 -0
  37. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/mcp/mcp_romm.py +0 -0
  38. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/mcp_config.json +0 -0
  39. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/models/__init__.py +0 -0
  40. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/models/schemas.py +0 -0
  41. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/naming.py +0 -0
  42. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/ontology/__init__.py +0 -0
  43. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/ontology/fixtures/records.json +0 -0
  44. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/ontology/mappings/source.yaml +0 -0
  45. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/ontology/migrations/manifest.json +0 -0
  46. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/ontology/rom.ttl +0 -0
  47. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/ontology/shapes/connector.shacl.ttl +0 -0
  48. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/prompts/__init__.py +0 -0
  49. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/prompts/convert_rom.md +0 -0
  50. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/prompts/librarian_specialist.json +0 -0
  51. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/rom_manager.py +0 -0
  52. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/__init__.py +0 -0
  53. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/__init__.py +0 -0
  54. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client.py +0 -0
  55. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_base.py +0 -0
  56. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_collections.py +0 -0
  57. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_config.py +0 -0
  58. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_devices.py +0 -0
  59. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_feeds.py +0 -0
  60. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_firmware.py +0 -0
  61. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_platforms.py +0 -0
  62. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_roms.py +0 -0
  63. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_saves.py +0 -0
  64. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_screenshots.py +0 -0
  65. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_search.py +0 -0
  66. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_states.py +0 -0
  67. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_system.py +0 -0
  68. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_tasks.py +0 -0
  69. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/api/api_client_users.py +0 -0
  70. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/auth.py +0 -0
  71. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/cli.py +0 -0
  72. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/romm/openapi.json +0 -0
  73. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/__init__.py +0 -0
  74. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/rom-manager-conversion/SKILL.md +0 -0
  75. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/rom-manager-conversion/WORKFLOW.md +0 -0
  76. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/rom-manager-game-codes/SKILL.md +0 -0
  77. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/rom-manager-game-codes/WORKFLOW.md +0 -0
  78. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/rom-manager-library-sync/SKILL.md +0 -0
  79. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/rom-manager-library-sync/WORKFLOW.md +0 -0
  80. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/rom-manager-operations/SKILL.md +0 -0
  81. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/rom-manager-operations/agents/openai.yaml +0 -0
  82. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager/skills/rom-manager-operations/references/catalog.md +0 -0
  83. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager.egg-info/dependency_links.txt +0 -0
  84. {rom_manager-3.3.2 → rom_manager-3.3.3}/rom_manager.egg-info/top_level.txt +0 -0
  85. {rom_manager-3.3.2 → rom_manager-3.3.3}/setup.cfg +0 -0
  86. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_archives.py +0 -0
  87. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_bridge_concepts.py +0 -0
  88. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_conversion.py +0 -0
  89. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_game_codes.py +0 -0
  90. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_init_dynamics.py +0 -0
  91. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_kg_ingest.py +0 -0
  92. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_kg_media.py +0 -0
  93. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_mcp_registration.py +0 -0
  94. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_naming.py +0 -0
  95. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_romm_cli.py +0 -0
  96. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_romm_client.py +0 -0
  97. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_romm_coverage.py +0 -0
  98. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_romm_mcp_registration.py +0 -0
  99. {rom_manager-3.3.2 → rom_manager-3.3.3}/tests/test_startup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rom-manager
3
- Version: 3.3.2
3
+ Version: 3.3.3
4
4
  Summary: ROM Converter/Organizer (CHD/RVZ) + MCP Server
5
5
  Author-email: Project Maintainers <maintainers@users.noreply.github.com>
6
6
  License: MIT
@@ -12,12 +12,12 @@ Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: <3.15,>=3.12
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
- Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.5
15
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.11
16
16
  Requires-Dist: python-dotenv>=1.2.4
17
17
  Requires-Dist: tqdm>=4.70.1
18
18
  Requires-Dist: requests>=2.34.2
19
19
  Provides-Extra: mcp
20
- Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.5; extra == "mcp"
20
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.11; extra == "mcp"
21
21
  Provides-Extra: native
22
22
  Requires-Dist: patool>=4.1.0; extra == "native"
23
23
  Provides-Extra: convert
@@ -50,7 +50,7 @@ Dynamic: license-file
50
50
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/rom-manager)
51
51
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/rom-manager)
52
52
 
53
- *Version: 3.3.2*
53
+ *Version: 3.3.3*
54
54
 
55
55
  > **Documentation** — Installation, deployment, and usage across the API, CLI, and
56
56
  > [official documentation](https://knuckles-team.github.io/rom-manager/).
@@ -17,7 +17,7 @@
17
17
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/rom-manager)
18
18
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/rom-manager)
19
19
 
20
- *Version: 3.3.2*
20
+ *Version: 3.3.3*
21
21
 
22
22
  > **Documentation** — Installation, deployment, and usage across the API, CLI, and
23
23
  > [official documentation](https://knuckles-team.github.io/rom-manager/).
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rom-manager"
7
- version = "3.3.2"
7
+ version = "3.3.3"
8
8
  description = "ROM Converter/Organizer (CHD/RVZ) + MCP Server"
9
9
  readme = "README.md"
10
10
  classifiers = [ "Development Status :: 5 - Production/Stable", "License :: Public Domain", "Environment :: Console", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3",]
11
11
  requires-python = ">=3.12, <3.15"
12
- dependencies = [ "agent-connector-sdk[mcp]>=0.3.5,<1.0.0", "python-dotenv>=1.2.4", "tqdm>=4.70.1", "requests>=2.34.2",]
12
+ dependencies = [ "agent-connector-sdk[mcp]>=0.3.11,<1.0.0", "python-dotenv>=1.2.4", "tqdm>=4.70.1", "requests>=2.34.2",]
13
13
  [[project.authors]]
14
14
  name = "Project Maintainers"
15
15
  email = "maintainers@users.noreply.github.com"
@@ -18,7 +18,7 @@ email = "maintainers@users.noreply.github.com"
18
18
  text = "MIT"
19
19
 
20
20
  [project.optional-dependencies]
21
- mcp = [ "agent-connector-sdk[mcp]>=0.3.5,<1.0.0",]
21
+ mcp = [ "agent-connector-sdk[mcp]>=0.3.11,<1.0.0",]
22
22
  native = [ "patool>=4.1.0",]
23
23
  convert = [ "patool>=4.1.0",]
24
24
  all = [ "rom-manager[mcp,native]>=2.0.0",]
@@ -41,6 +41,10 @@ rom-manager = "rom_manager.connectors"
41
41
  [project.entry-points."agent_connector_sdk.prompt_providers"]
42
42
  rom-manager = "rom_manager.prompts"
43
43
 
44
+ # The one declared connector identity: the fleet name (SDK-CONNECTOR-CONTROL-R071).
45
+ [project.entry-points."agent_connector_sdk.connector"]
46
+ rom-manager-mcp = "rom_manager"
47
+
44
48
  [tool.uv.workspace]
45
49
  members = ["."]
46
50
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "algorithm": "agent-connector-sdk:mcp-tool-contract-compat:v2",
3
- "connector": "rom-manager",
3
+ "connector": "rom-manager-mcp",
4
4
  "schema_version": "1",
5
5
  "tools": {
6
6
  "romm_list_platforms": "1e1d60bb79222aa9b40130a6def179f8df377f2137c74627010e859d66faa554",
@@ -29,7 +29,7 @@ from agent_connector_sdk.ingest import (
29
29
 
30
30
  logger = logging.getLogger("rom_manager.kg")
31
31
 
32
- _BINDING = IngestBinding(connector="rom-manager", stream="rom")
32
+ _BINDING = IngestBinding(connector="rom-manager-mcp", stream="rom")
33
33
 
34
34
  _ENTITY_RESERVED_KEYS = frozenset({"id", "node_type"})
35
35
  _RELATIONSHIP_RESERVED_KEYS = frozenset({"source", "target", "relationship"})
@@ -30,7 +30,7 @@ from agent_connector_sdk.ingest import (
30
30
 
31
31
  logger = logging.getLogger("rom_manager.kg.media")
32
32
 
33
- _BINDING = IngestBinding(connector="rom-manager", stream="rom")
33
+ _BINDING = IngestBinding(connector="rom-manager-mcp", stream="rom")
34
34
 
35
35
 
36
36
  async def _store(
@@ -41,7 +41,7 @@ from rom_manager.api_client import Api
41
41
  from rom_manager.auth import get_client
42
42
  from rom_manager.romm import RommApi, get_romm_client
43
43
 
44
- __version__ = "3.3.2"
44
+ __version__ = "3.3.3"
45
45
  print(f"ROM Manager MCP v{__version__}", file=sys.stderr)
46
46
 
47
47
  logger = get_logger(name="mcp_server")
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "api_version": "arbora.io/v1",
3
3
  "artifacts": {
4
- "connector_manifest.yml": "84a15e7f037bba749d4706085c2d47f28d8ae73971a756eb731e837cab3446ba",
4
+ "connector_manifest.yml": "1d9b28b4d4f2a727e91d2d78f4c79ca94cb8472e62431212ef48f3505b174c01",
5
5
  "rom_manager/connectors/mcp_source_presets.json": "67d9b7bd5d67ded36310d59c75f8e2b1659180e65dbd2b40528c198af2d0eacc",
6
- "rom_manager/connectors/tool_schema_fingerprints.json": "1896628dca1369429fb799eccf62c84a7a0737320cb77d38b6a1b319701dc3e9",
6
+ "rom_manager/connectors/tool_schema_fingerprints.json": "ac7e2338afa615151e207a701e9494d8f26d2cf84fefafc0b5412f254a83a97d",
7
7
  "rom_manager/ontology/fixtures/records.json": "16e329cbb3875df819f48c6c3c28a9a08c721486ba82cbe16afe8cf269af411e",
8
8
  "rom_manager/ontology/mappings/source.yaml": "73fa61fedbbbecfdb538b6f86700d4cacedb0f5082f92342bd9a2637a4462d8a",
9
9
  "rom_manager/ontology/migrations/manifest.json": "afbc56fc66f2965bc52b701dd3f1e745d619b596d21f6cc51471fa0e85214442",
@@ -22,7 +22,7 @@
22
22
  "bundle_schema": "2",
23
23
  "epistemic_graph": ">=2.27.0,<3"
24
24
  },
25
- "connector": "rom-manager",
25
+ "connector": "rom-manager-mcp",
26
26
  "kind": "ConnectorSourceAttestation",
27
27
  "live_certified": false,
28
28
  "mode": "offline-source",
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python
2
2
 
3
- __version__ = "3.3.2"
3
+ __version__ = "3.3.3"
4
4
  __author__ = "Project Maintainers"
5
5
  __credits__ = "Project Maintainers"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rom-manager
3
- Version: 3.3.2
3
+ Version: 3.3.3
4
4
  Summary: ROM Converter/Organizer (CHD/RVZ) + MCP Server
5
5
  Author-email: Project Maintainers <maintainers@users.noreply.github.com>
6
6
  License: MIT
@@ -12,12 +12,12 @@ Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: <3.15,>=3.12
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
- Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.5
15
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.11
16
16
  Requires-Dist: python-dotenv>=1.2.4
17
17
  Requires-Dist: tqdm>=4.70.1
18
18
  Requires-Dist: requests>=2.34.2
19
19
  Provides-Extra: mcp
20
- Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.5; extra == "mcp"
20
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.11; extra == "mcp"
21
21
  Provides-Extra: native
22
22
  Requires-Dist: patool>=4.1.0; extra == "native"
23
23
  Provides-Extra: convert
@@ -50,7 +50,7 @@ Dynamic: license-file
50
50
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/rom-manager)
51
51
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/rom-manager)
52
52
 
53
- *Version: 3.3.2*
53
+ *Version: 3.3.3*
54
54
 
55
55
  > **Documentation** — Installation, deployment, and usage across the API, CLI, and
56
56
  > [official documentation](https://knuckles-team.github.io/rom-manager/).
@@ -83,6 +83,7 @@ rom_manager/skills/rom-manager-operations/references/catalog.md
83
83
  tests/test_archives.py
84
84
  tests/test_bridge_concepts.py
85
85
  tests/test_conversion.py
86
+ tests/test_fleet_name.py
86
87
  tests/test_game_codes.py
87
88
  tests/test_init_dynamics.py
88
89
  tests/test_kg_ingest.py
@@ -1,3 +1,6 @@
1
+ [agent_connector_sdk.connector]
2
+ rom-manager-mcp = rom_manager
3
+
1
4
  [agent_connector_sdk.ontology_providers]
2
5
  rom-manager = rom_manager.ontology
3
6
 
@@ -1,4 +1,4 @@
1
- agent-connector-sdk[mcp]<1.0.0,>=0.3.5
1
+ agent-connector-sdk[mcp]<1.0.0,>=0.3.11
2
2
  python-dotenv>=1.2.4
3
3
  tqdm>=4.70.1
4
4
  requests>=2.34.2
@@ -10,7 +10,7 @@ rom-manager[mcp,native]>=2.0.0
10
10
  patool>=4.1.0
11
11
 
12
12
  [mcp]
13
- agent-connector-sdk[mcp]<1.0.0,>=0.3.5
13
+ agent-connector-sdk[mcp]<1.0.0,>=0.3.11
14
14
 
15
15
  [native]
16
16
  patool>=4.1.0
@@ -0,0 +1,53 @@
1
+ """CONN-ROM-MANAGER-CONNECTOR-IDENTITY-R001: the connector is filed under its fleet name, rom-manager-mcp."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import ast
6
+ import json
7
+ import re
8
+ import tomllib
9
+ from pathlib import Path
10
+
11
+ import pytest
12
+
13
+ ROOT = Path(__file__).resolve().parents[1]
14
+ PACKAGE = ROOT / "rom_manager"
15
+ FLEET = "rom-manager-mcp"
16
+
17
+
18
+ def _call_connectors(path: Path) -> list[str]:
19
+ names = []
20
+ for node in ast.walk(ast.parse(path.read_text(encoding="utf-8"))):
21
+ if isinstance(node, ast.Call) and getattr(
22
+ node.func, "id", getattr(node.func, "attr", "")
23
+ ) in {
24
+ "IngestBinding",
25
+ "ConnectorContent",
26
+ }:
27
+ names += [
28
+ str(k.value.value)
29
+ for k in node.keywords
30
+ if k.arg == "connector" and isinstance(k.value, ast.Constant)
31
+ ]
32
+ return names
33
+
34
+
35
+ @pytest.mark.spec("CONN-ROM-MANAGER-CONNECTOR-IDENTITY-R001")
36
+ def test_connector_name_is_the_fleet_name() -> None:
37
+ pyproject = tomllib.loads((ROOT / "pyproject.toml").read_text(encoding="utf-8"))
38
+ assert pyproject["project"]["entry-points"]["agent_connector_sdk.connector"] == {
39
+ FLEET: "rom_manager"
40
+ }
41
+ manifest_path = PACKAGE / "connector_manifest.yml"
42
+ if not manifest_path.is_file():
43
+ manifest_path = ROOT / "connector_manifest.yml"
44
+ manifest = manifest_path.read_text(encoding="utf-8")
45
+ match = re.search(r'^\s*"?connector"?\s*:\s*"?([^"\s,]+)', manifest, re.MULTILINE)
46
+ assert match is not None and match.group(1) == FLEET
47
+ fingerprints = PACKAGE / "connectors" / "tool_schema_fingerprints.json"
48
+ if fingerprints.is_file():
49
+ assert (
50
+ json.loads(fingerprints.read_text(encoding="utf-8"))["connector"] == FLEET
51
+ )
52
+ for module in sorted(PACKAGE.glob("*.py")):
53
+ assert all(name == FLEET for name in _call_connectors(module)), module.name
File without changes
File without changes
File without changes