Metadata-Version: 2.4
Name: plm-connector-sdk
Version: 1.0.0
Summary: TracePulse PLM Connector SDK — Wave 5 Conv D (FTR-605 V1 head). Decorator-based authoring surface for read-only connectors against external PLM systems (Teamcenter / 3DEXPERIENCE / Windchill / ERP / ALM). Ships a reference Teamcenter connector with 4 deterministic read methods + a ConnectorRuntime Protocol consumed by the engine-core dispatcher. Standalone repos hosting MCP-spec connectors federate at V1.1+ via the same Protocol surface.
Author: TracePulse
License: Proprietary
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: plm-shared<2.0,>=1.0.0
Requires-Dist: pydantic>=2.5.0
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-asyncio; extra == "test"

# plm-connector-sdk

Wave 5 Conv D (FTR-605 V1 head) — decorator-based authoring surface for
read-only connectors against external PLM systems.

## Quick start

```python
from plm_connector_sdk import (
    ConnectorContext,
    ConnectorReadRequest,
    ConnectorReadResult,
    connector,
    read_method,
)


@connector(id="teamcenter", version="1.0.0", description="Teamcenter ref")
class TeamcenterConnector:
    @read_method(name="get_item", evidence_ref_type="tc.item")
    async def get_item(
        self, request: ConnectorReadRequest, ctx: ConnectorContext
    ) -> ConnectorReadResult:
        ...
```

## Federation with standalone MCP repos

Wave 5 Conv D ships the in-tree reference (`teamcenter`) only. Real
production connectors for 3DEXPERIENCE / PTC Windchill live in standalone
MCP-spec repos and federate at V1.1+ via the same `ConnectorRuntime`
Protocol consumed by the engine-core dispatcher (no Python-level
coupling — the dispatcher routes by `connector_id` to either an
in-tree decorator-registered runtime OR an external MCP server URL once
the wire protocol surface lands).

## Import-linter contracts

* `plm_connector_sdk` MUST NOT import `plm_engine_core`.
* `plm_connector_sdk` MUST NOT import `plm_skill_kernel`.
* `plm_connector_sdk` MUST NOT import `plm_accelerators` (Workbench).
