PulseTrade.Comm.Spa.Dynamic.Contracts 0.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package PulseTrade.Comm.Spa.Dynamic.Contracts --version 0.1.1
                    
NuGet\Install-Package PulseTrade.Comm.Spa.Dynamic.Contracts -Version 0.1.1
                    
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="PulseTrade.Comm.Spa.Dynamic.Contracts" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PulseTrade.Comm.Spa.Dynamic.Contracts" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="PulseTrade.Comm.Spa.Dynamic.Contracts" />
                    
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 PulseTrade.Comm.Spa.Dynamic.Contracts --version 0.1.1
                    
#r "nuget: PulseTrade.Comm.Spa.Dynamic.Contracts, 0.1.1"
                    
#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 PulseTrade.Comm.Spa.Dynamic.Contracts@0.1.1
                    
#: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=PulseTrade.Comm.Spa.Dynamic.Contracts&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=PulseTrade.Comm.Spa.Dynamic.Contracts&version=0.1.1
                    
Install as a Cake Tool

PulseTrade.Comm.Spa.Dynamic.Contracts

SDUI runtime/frame/action vocabulary、strict server codec、validation limits、pure reducer與poll lifecycle。方案 1 讓同一套 RuntimeFrame/reducer 產生 WebSharper browser metadata,並提供 loopback WebSocket 專用的 typed-JSON codec;package 仍不依賴 PTCS、fCell2、PTMD、SQL 或 provider SDK。

Data flow

host adapter -> RuntimeFrame -> RuntimeCodec/Validation -> RuntimeReducer -> Renderer model
local action -> reducer effect
remote action/poll/resync -> typed SduiAction -> host adapter

RuntimeCodec 的既有 System.Text.Json wire 與 BrowserRuntimeCodec 的 WebSharper typed-JSON wire 是兩條明確分離的 encoding;兩者共用相同 RuntimeFrame/RuntimeClientFrame 型別,但 JSON bytes 不可交叉解碼。Interactive mutation 另用 ptcs-dynamic-action.v1DynamicActionClientFrame / DynamicActionServerFrame,以 RequestIdExpectedDocumentRevision 與 explicit result 建立 correlation;action result 不屬於 authoritative RuntimePayload

Patch retention以整個ordered operation batch套用後的candidate data為驗證單位。替換既有key或先trim再append可維持在hard limit;多個operation合計超限時,整批patch不會進入authoritative state,reducer保留last-good data/revision並回RequestResync

SourceSnapshotEnvelope / SourceEventEnvelope 是跨 domain 的 ordering seam。SourceProjection只驗stream identity、epoch、sequence、source revision並在gap/conflict/reducer reject時要求authoritative snapshot;payload reducer仍由domain owner adapter注入,package不擁有MDCQ、TradeCore、FsStl、SOR或FCell2型別。source revision不會直接提升browser DocumentRevision

DynamicTemplateSchemaEditorValueKind描述Text/Integer/Decimal/Boolean/Choice/Scale/List/Group,不包含domain union或provider client。DynamicEditorValidation遞迴限制depth/fields/choices/list items,驗default value型別與safe payload;同template的不同參數實例以TaRowSpec.RowId區分,document validator拒絕重複RowId。

TaWorkspaceDocument.EditorSchemas是authoritative editor catalog,與Rows共用DocumentRevision。可重新設定的row以TaRowEditorBinding.attachTemplateKey + EditorInputValue[]寫入TaRowSpec.Options["ptcs.dynamic.editor.binding.v1"]tryResolve只在binding與catalog schema都有效時回傳editor state。legacy row沒有binding仍可顯示與移除,但不會被猜成可編輯。

DynamicTemplateSchemaCodec.toValue/fromValue提供transport-neutral SduiValue representation,供PTCS與Interactive adapter傳遞catalog;consumer須將invalid catalog視為整體錯誤,不可靜默刪除壞項後繼續。

DynamicActionLifecycle只管理單一pending request與correlated result。revision conflict不送出request;accepted/rejected只清除相符request並保存bounded feedback,均不直接修改authoritative document。Host完成resource prepare/swap後,必須以新的RuntimeFrame發布document revision。

Error與invalid/gapped frame保留last-good document/data/view;duplicate frame no-op;sequence gap、identity mismatch或patch base mismatch只產生typed resync effect。

TaWorkspaceDocument.BaseRowId指定shared event-time axis。SharedCursorChanged傳actual base datapoint timestamp;VisibleRangeChanged[start,end)MaximumBasePoints <= 4000,兩者沿用correlated action lifecycle。

TemporalAxis/TemporalSeries是provider-neutral的shared temporal representation。axis point保存唯一Position及完整interval/frontier/finality/projection;scalar series只保存Position + SduiValue並exact-pin AxisRevision。Position只作join key,不依scale推算或補空K;current-K preview以相同Position和新的axis/series revision原位替換。TaCandleDataRefs把O/H/L/C/V五條scalar series組成candlestick,避免每個TA scalar重複28份時間metadata。既有temporal-point.v1仍可解碼。

Current exact package:PulseTrade.Comm.Spa.Dynamic.Contracts 0.1.0-alpha21,exact依賴FSharp.Core [10.1.400];current contract gate 19/19。Typed與decoded frame均執行相同validation;single patch最多64 operations,另受500 items與16MiB frame限制。

Browser-facing numeric使用JSON number/float,query range使用canonical ISO-8601 string。host/server必須重新驗證range並轉成domain DateTimeOffset;Contracts不把browser parser當authorization或domain validation。

Security boundary

  • protocol/case/row/action allowlist。
  • frame bytes、rows、patch operations/items hard limits。
  • shared contract拒絕script、selector與arbitrary URL key/value。
  • contract只傳typed data/effect,不傳credential、SQL、DOM selector或transport URL。
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 (7)

Showing the top 5 NuGet packages that depend on PulseTrade.Comm.Spa.Dynamic.Contracts:

Package Downloads
PulseTrade.Comm.Spa.Dynamic.Ptcs

PTCS same-session transient adapter for PulseTrade Dynamic SDUI runtime.

PulseTrade.Comm.Spa.Dynamic.Ptcs.Client

Pure WebSharper same-origin PTCS transient client adapter for Dynamic TA Research.

PulseTrade.Comm.Spa.Dynamic.Renderer

Pure WebSharper renderer for transport-neutral PulseTrade Dynamic SDUI runtime documents.

PulseTrade.MarketData.E2EQuotation.Dynamic.Adapter

E2EQuotation-specific mapper for transport-neutral Dynamic TA runtime frames and actions.

PulseTrade.Comm.Spa.Dynamic.Interactive.Client

Transport-neutral WebSharper client shell for embedding the Dynamic SDUI runtime in interactive hosts.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.7 0 9/9/2026
0.1.6 0 9/9/2026
0.1.4 0 9/9/2026
0.1.1 38 9/8/2026
0.1.0-alpha5 472 7/12/2026
0.1.0-alpha21 35 9/8/2026
0.1.0-alpha20 36 9/8/2026
0.1.0-alpha19 52 9/8/2026
0.1.0-alpha17 45 9/8/2026
0.1.0-alpha16 61 9/6/2026