You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`SDK/` is the multi-runtime workspace for `ManagedCode.Tps`.
6
13
7
-
-`ts/`: canonical TPS source implementation
8
-
-`js/`: emitted JS runtime, JS-facing tests, and the JS-local package
9
-
-`dotnet/`: .NET runtime, solution, and xUnit tests
10
-
-`fixtures/`: shared TPS fixtures and runtime expectations
11
-
-`docs/`: SDK architecture and ADRs
12
-
-`manifest.json`: enabled runtimes plus CI commands
13
-
14
-
## Common Contract
14
+
## What This Workspace Contains
15
15
16
-
Every active runtime must provide:
16
+
This folder is where TPS runtime implementations live. The goal is parity across active runtimes:
17
17
18
-
-a constants catalog for TPS keywords, tags, metadata keys, emotions, and diagnostics
18
+
- constants catalog
19
19
- TPS validation with actionable diagnostics
20
20
- TPS parsing into a document model
21
21
- TPS compilation into a JSON-friendly state machine
22
-
- a player API that resolves the current presentation model from compiled data
22
+
- player/runtime APIs that resolve what to display at a specific elapsed time
23
+
24
+
The TypeScript runtime is the canonical implementation. The JavaScript runtime is the consumer-facing built artifact of that source. The .NET runtime is an independent implementation under the `ManagedCode.Tps` namespace.
25
+
26
+
## Workspace Layout
27
+
28
+
-`ts/`: canonical TypeScript implementation
29
+
-`js/`: generated JavaScript runtime, Node tests, and package metadata
30
+
-`dotnet/`: .NET runtime, solution, and xUnit tests
31
+
-`flutter/`: reserved Flutter runtime folder
32
+
-`swift/`: reserved Swift runtime folder
33
+
-`java/`: reserved Java runtime folder
34
+
-`fixtures/`: shared TPS fixtures and expected runtime behavior
35
+
-`docs/`: SDK ADRs and architecture notes
36
+
-`manifest.json`: internal runtime matrix source for CI and site generation
37
+
38
+
## Runtime Guide
39
+
40
+
| Folder | Purpose | Edit Here When | Main Commands |
@@ -31,17 +56,27 @@ The compiled TPS state machine is organized as:
31
56
4. phrases
32
57
5. words
33
58
34
-
Each compiled word carries timing plus authoring-derived metadata such as emphasis, emotion hint, speed override, pronunciation, volume, delivery mode, and edit-point markers.
59
+
Each compiled word carries timing and authoring-derived metadata such as emphasis, emotion, speed override, pronunciation, volume, delivery mode, and edit-point markers.
60
+
61
+
## How To Work In This SDK
35
62
36
-
## Verification
63
+
1. Change the TPS contract in `SDK/ts` first unless the work is package-specific or .NET-specific.
64
+
2. Rebuild the JS runtime from the TS source.
65
+
3. Run the runtime-specific tests for the SDK you changed.
66
+
4. If behavior changes, keep parity across active runtimes and shared fixtures.
67
+
68
+
## Local Verification
37
69
38
70
- TypeScript: `npm --prefix SDK/js run test:types`
39
71
- JavaScript: `npm --prefix SDK/js run coverage:js`
40
-
- C#: `dotnet test SDK/dotnet/ManagedCode.Tps.slnx /p:CollectCoverage=true /p:CoverletOutputFormat=json /p:ThresholdType=line%2Cbranch%2Cmethod /p:Threshold=90`
41
-
42
-
GitHub Actions reads `SDK/manifest.json`, builds the enabled runtimes, runs their tests, and enforces a minimum runtime coverage gate of 90%.
This folder contains the .NET TPS runtime under the `ManagedCode.Tps` namespace.
4
7
8
+
Package identity: `ManagedCode.Tps`
9
+
10
+
## What This Project Is
11
+
12
+
`SDK/dotnet` is the C# implementation of the TPS runtime. It provides the same functional surface as the active TypeScript/JavaScript SDKs, but as a native .NET library under the `ManagedCode.Tps` namespace.
13
+
14
+
This is the project to change when the .NET API, serialization behavior, or .NET runtime semantics need to evolve.
15
+
5
16
## Public API
6
17
7
18
-`TpsSpec`: TPS constants, tags, metadata keys, emotions, diagnostics, and palettes
@@ -15,14 +26,27 @@ This folder contains the .NET TPS runtime under the `ManagedCode.Tps` namespace.
15
26
-`src/ManagedCode.Tps/`: runtime implementation
16
27
-`tests/ManagedCode.Tps.Tests/`: xUnit coverage and parity tests
17
28
18
-
## Contract Notes
29
+
## Technical Scope
19
30
20
31
- validation returns actionable `TpsDiagnostic` entries with exact ranges
21
32
- parse returns the TPS document model with segments and blocks
22
33
- compile returns the fully timed state machine with compiled words, phrases, blocks, and segments
23
34
- player resolves the current presentation model for any elapsed timestamp
24
35
25
-
## Verification
36
+
## How To Work With This Project
37
+
38
+
1. Update `src/ManagedCode.Tps/` for runtime or API changes.
39
+
2. Keep behavior aligned with the active TPS contract used by the TS/JS SDKs.
40
+
3. Run build, tests, and coverage checks after changes.
0 commit comments