Zeayii.Vexo.Assembly 0.0.37

dotnet add package Zeayii.Vexo.Assembly --version 0.0.37
                    
NuGet\Install-Package Zeayii.Vexo.Assembly -Version 0.0.37
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Zeayii.Vexo.Assembly" Version="0.0.37" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Zeayii.Vexo.Assembly" Version="0.0.37" />
                    
Directory.Packages.props
<PackageReference Include="Zeayii.Vexo.Assembly" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Zeayii.Vexo.Assembly --version 0.0.37
                    
#r "nuget: Zeayii.Vexo.Assembly, 0.0.37"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Zeayii.Vexo.Assembly@0.0.37
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Zeayii.Vexo.Assembly&version=0.0.37
                    
Install as a Cake Addin
#tool nuget:?package=Zeayii.Vexo.Assembly&version=0.0.37
                    
Install as a Cake Tool

Zeayii.Vexo.Assembly.Core

Organization: zeayii
Module Type: Core Orchestration Layer
Target Framework: net10.0

1. Purpose

Zeayii.Vexo.Assembly.Core is the orchestration backbone of assembly flow. It does not parse protocol internals or container bytes. Instead, it coordinates:

  1. descriptor input,
  2. provider preparation output,
  3. manifest extraction output,

into a deterministic incremental stream of ExecutionTask frames.

2. Responsibilities

  • Provide unified assembly entry points (single-shot + incremental).
  • Drive provider preparation stage and content-key obtain stage.
  • Orchestrate DASH/HLS adapters and polling state transitions.
  • Execute snapshot validation, stability validation, and delta building.
  • Consume immutable AssemblyOptions snapshot consistently.

3. Non-Responsibilities

  • No MPD/M3U8 parsing internals (Manifest module owns this).
  • No MP4/WebM byte-level parse/remux (Media module owns this).
  • No vendor-private business logic (Provider/private modules own this).
  • No CLI argument mapping (host application owns this).

4. Layering and Dependency Direction

Vexo / Host
  -> Core (this module)
    -> Manifest
      -> Media
        -> Abstractions

Core exposes orchestration behavior only and keeps protocol internals behind adapters.

5. Public Usage

Use DI registration and resolve SerialTaskAssembler:

services.AddTaskAssemblyCoreRuntime(assemblyOptions);

var assembler = provider.GetRequiredService<SerialTaskAssembler>();
await foreach (var frame in assembler.AssembleFramesAsync(descriptor, context, ct))
{
    if (frame is WorkUnitFrame workUnitFrame)
    {
        // workUnitFrame.WorkUnit / workUnitFrame.Delta / workUnitFrame.LifecycleState
    }
}

6. Main Execution Flow

  1. SerialTaskAssembler resolves provider via TaskAssemblyOrchestratorResolver.
  2. Runs PrepareAsync in streaming mode (no full buffering).
  3. For each preparation context, performs one extraction round (coordinator-based):
    • format sniffing,
    • DASH/HLS adapter extraction,
    • filter pipeline,
    • ExecutionTask build.
  4. Applies snapshot/stability validation and delta build.
  5. Continues or terminates based on refresh decision.

6.1 Group Timeline Finalization (New)

  • After deduplication, the filter chain runs GroupTimelineFinalizeFilter to compute:
    • StartOffset (session-accumulated offset) per StreamGroup;
    • Duration (primary media duration) per StreamGroup.
  • Offset state is kept in assembly session (TaskAssemblyUnitSession.AccumulatedOffset) and carried across rounds.
  • Text subtitles receive group offset; container subtitles do not receive text-style shifting to keep execution-side container concat semantics intact.
  • Per-round RoundAccumulatedDuration is committed by adapters at round completion and becomes the next round's start baseline.

7. Design Principles

  • Streaming-first: preparation is yielded as it arrives.
  • One-way dependency: no upward coupling into host/private code.
  • State centralization: polling and lifecycle state are managed in Core.
  • Extensible-private logic: provider extension points without polluting public pipeline.

8. Performance and AOT

  • Explicit types + DI delegates; no runtime reflection dependency.
  • Singleton registrations for high-frequency resolvers/adapters.
  • Iterative polling flow without unnecessary intermediate materialization.

9. Collaboration with Other Modules

  • Abstractions: contracts, models, filters, validators.
  • Manifest: protocol extraction, refresh decision, protocol filters.
  • Offline: sample orchestrator and default assembly wiring.

10. Commercial Release Checklist

  • Freeze and document AssemblyOptions defaults.
  • Run incremental assembly regression on real-world vectors.
  • Keep private provider logic isolated from core orchestration path.

11. License

This module follows the repository root license.

12. Visibility Boundary (public / internal)

Core intentionally exposes only:

  • SerialTaskAssembler as the runtime assembly entry point.
  • ServiceCollectionExtensions as the DI composition entry.

All orchestration collaborators (adapters, resolvers, round requests) are internal because:

  • the execution layer should not depend on Core internals,
  • public API must represent capabilities, not wiring details,
  • Core internals can evolve without forcing external breaking changes.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Zeayii.Vexo.Assembly:

Package Downloads
Zeayii.Vexo.Assembly.Offline

Vexo Task Assembly Offline Implementation for Vexo.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.37 158 5/17/2026
0.0.36 114 5/16/2026
0.0.35 117 5/16/2026
0.0.34 116 5/16/2026
0.0.33 126 5/4/2026
0.0.32 147 4/5/2026
0.0.31 135 4/5/2026
0.0.30 166 3/28/2026
0.0.29 119 3/26/2026
0.0.28 109 3/26/2026
0.0.27 112 3/26/2026
0.0.26 121 3/16/2026
0.0.25 115 3/15/2026
0.0.24 114 3/15/2026