@surfmate.team/digital-human-ports
v0.2.0
Published
The shared port interfaces (contracts) for the digital-human suite — ChatPort, VoiceSynthesisPort, VoiceCloningPort and their DTOs. Zero dependencies, types only. Adapters implement these; features consume them. Single source of truth.
Downloads
1,614
Maintainers
Readme
@surfmate.team/digital-human-ports
The shared port interfaces (contracts) for the digital-human suite. Zero dependencies, types only — the single source of truth that adapters implement and features consume, so neither side depends on the other's package.
npm i @surfmate.team/digital-human-portsPorts
import type {
ChatPort, // LLM: complete(prompt) => Promise<string>
VoiceSynthesisPort, // TTS: synthesize / playUrl / playBytes / stop
VoiceCloningPort, // clone: cloneFromSample / listClones / deleteClone
} from '@surfmate.team/digital-human-ports'| Port | Implemented by | Consumed by |
| --- | --- | --- |
| ChatPort | digital-human-llm (Grok, …) | digital-human-conversation |
| VoiceSynthesisPort | digital-human-minimax | digital-human-voice |
| VoiceCloningPort | digital-human-minimax | digital-human-voice-clone |
This is the Abstractions package pattern (cf. slf4j-api,
Microsoft.Extensions.Logging.Abstractions, @opentelemetry/api): the most
stable, most-depended-on package in the graph. Changing a port is a breaking
change — bump the major version.
License
MIT
