playerthree/results

playerthree/results: canonical series results (SPEC §20.10, §20.11) — export projections that drop private references, bounded-memory canonical JSON/CSV exports and live summaries — plus the re-exported arena schemas, ratings and commander-log verification.

Interfaces

RatedLineup

Defined in: packages/playerthree/src/ratings.ts:114

One side of a rated match: its members (one TrueSkill team), its placement and optional partial-play weights.

Properties

PropertyTypeDescriptionDefined in
idsreadonly string[]-packages/playerthree/src/ratings.ts:115
ranknumber-packages/playerthree/src/ratings.ts:116
weights?readonly number[]Per member, in (0, 1]: the share of the side it played (e.g. plane share); default 1.packages/playerthree/src/ratings.ts:118

ScoreBlock

Defined in: packages/playerthree/src/ratings.ts:46

One seed block of an entrant's games: wins, score (win 1, draw 0.5) and game count.

Properties


SkillRating

Defined in: packages/playerthree/src/ratings.ts:108

Properties


TrueSkillParameters

Defined in: packages/playerthree/src/ratings.ts:100

TrueSkill parameters (ts-trueskill 5.1.0).

Properties

Variables

ACTIVE_MATCH_SCHEMA

const ACTIVE_MATCH_SCHEMA: ArenaJsonSchema;

Defined in: packages/playerthree/src/arena-schema.ts:112


ARENA_HOST_EVENT_DEFINITIONS

const ARENA_HOST_EVENT_DEFINITIONS: readonly EventDefinition[];

Defined in: packages/playerthree/src/arena-schema.ts:73


EXPORT_MATCH_SPEC_SCHEMA

const EXPORT_MATCH_SPEC_SCHEMA: ArenaJsonSchema;

Defined in: packages/playerthree/src/arena-schema.ts:68


EXPORT_SERIES_SPEC_SCHEMA

const EXPORT_SERIES_SPEC_SCHEMA: ArenaJsonSchema;

Defined in: packages/playerthree/src/arena-schema.ts:88


MATCH_SPEC_SCHEMA

const MATCH_SPEC_SCHEMA: ArenaJsonSchema;

Defined in: packages/playerthree/src/arena-schema.ts:67


RESULT_COLUMNS

const RESULT_COLUMNS: object;

Defined in: packages/playerthree/src/results.ts:23

Column order is part of the version-1 CSV contract; JSON uses canonical sorted object keys.

Type Declaration

NameTypeDefined in
artifactsreadonly ["id", "matchId", "kind", "format", "version", "sha256", "bytes", "availability", "releaseAt", "expiresAt"]packages/playerthree/src/results.ts:35
causesreadonly ["matchId", "sequence", "tick", "victimTeam", "victimRole", "victimKind", "attackerTeam", "attackerRole", "attackerKind", "cause", "count", "alloyValue", "energyValue"]packages/playerthree/src/results.ts:29
decisionsreadonly ["matchId", "team", "role", "decisionId", "startedAt", "finishedAt", "latencyMs", "source", "status"]packages/playerthree/src/results.ts:31
entrantsreadonly ["entrantId", "kind", "label", "aiPlayer", "provider", "model", "selfReported", "harness", "harnessVerified", "scaffoldVersion", "artifactHash", "botVersion", "botLevel", "botOptions", "stateResetSource"]packages/playerthree/src/results.ts:24
eventsreadonly ["matchId", "sequence", "tick", "atMs", "kind", "team", "role", "data"]packages/playerthree/src/results.ts:33
intentsreadonly ["matchId", "team", "role", "source", "code", "submitted", "accepted", "rejected"]packages/playerthree/src/results.ts:30
matchesreadonly ["matchId", "trialId", "attemptId", "attemptNumber", "revision", "status", "acceptedAttempt", "startedAt", "endedAt", "ticks", "simulatedMs", "wallMs", "terminalReason", "outcomes", "spec", "releaseAt"]packages/playerthree/src/results.ts:26
metricsreadonly ["matchId", "tick", "sequence", "scope", "team", "role", "metric", "value", "unit"]packages/playerthree/src/results.ts:28
schedulereadonly ["trialId", "scenarioId", "permutationId", "repetition", "scheduleIndex", "seed", "mapId", "mapIdentity", "mapSeed", "layoutId", "rulesHash", "surfaceHash", "resolvedOptions", "sideBindings"]packages/playerthree/src/results.ts:25
seatsreadonly ["matchId", "team", "role", "entrantId", "executionKind", "fallbackKind", "artifactVersion", "artifactHash", "readyState", "activeTicks", "submittedIntents", "acceptedIntents", "rejectedIntents", "commandApm", "policyErrors"]packages/playerthree/src/results.ts:27
standingsreadonly ["entrantId", "wins", "losses", "draws", "games", "winRate", "scoreRate", "rating", "mu", "sigma", "conservativeRating", "ratingParameters", "ratingImplementation", "provisional", "averageSimulatedMs", "averageWallMs", "confidence"]packages/playerthree/src/results.ts:34
usagereadonly ["matchId", "phase", "team", "role", "entrantId", "executionId", "decisionId", "reporter", "inputTokens", "outputTokens", "cacheReadTokens", "cacheWriteTokens", "costAmount", "currency", "pricingVersion", "coverage"]packages/playerthree/src/results.ts:32

RESULT_ROW_SCHEMAS

const RESULT_ROW_SCHEMAS: object;

Defined in: packages/playerthree/src/arena-schema.ts:96

Type Declaration


RESULTS_ENVELOPE_SCHEMA

const RESULTS_ENVELOPE_SCHEMA: ArenaJsonSchema;

Defined in: packages/playerthree/src/arena-schema.ts:123


RESULTS_SUMMARY_SCHEMA

const RESULTS_SUMMARY_SCHEMA: ArenaJsonSchema;

Defined in: packages/playerthree/src/arena-schema.ts:125


SERIES_SPEC_SCHEMA

const SERIES_SPEC_SCHEMA: ArenaJsonSchema;

Defined in: packages/playerthree/src/arena-schema.ts:86


SERIES_UPDATE_SCHEMA

const SERIES_UPDATE_SCHEMA: ArenaJsonSchema;

Defined in: packages/playerthree/src/arena-schema.ts:113

Functions

blockBootstrap()

function blockBootstrap(blocks): object;

Defined in: packages/playerthree/src/ratings.ts:58

Deterministic percentile bootstrap (32-bit LCG seed BOOTSTRAP_SEED, 2000 replicates, 95%) over whole blocks, never individual games: win-rate and score-rate intervals, or null for fewer than two blocks (a single seed cannot identify between-seed uncertainty). Blocks are resampled in key order, so the result is independent of input order.

Parameters

ParameterType
blocksreadonly ScoreBlock[]

Returns

object

NameTypeDefined in
scoreRate[number, number] | nullpackages/playerthree/src/ratings.ts:58
winRate[number, number] | nullpackages/playerthree/src/ratings.ts:58

buildResultsSummary()

function buildResultsSummary(
   record, 
   iterate, 
   revision?, 
   policy?, 
   now?
): Promise<ResultsSummary>;

Defined in: packages/playerthree/src/results.ts:571

Bounded live view of a committed (and, when shared, released) revision. Bounded metadata tables are complete; each raw table keeps at most 2000 rows — metrics evenly strided per (match, scope, side, seat, metric) series, other tables as their canonical prefix — and sampling labels every table. Accounting, latency quantiles, usage totals, completeness and retention are exact over all rows. The shared projection is the export's.

Parameters

ParameterType
recordStoredSeries
iterate() => AsyncIterable<StoredResultChunk>
revision?number
policy?SharePolicy
now?number

Returns

Promise<ResultsSummary>


commanderPublicId()

function commanderPublicId(game, commanderId): string;

Defined in: packages/playerthree/src/commander-log-integrity.ts:12

Public, non-reversible id of a commander (its private id is a random UUID).

Parameters

ParameterType
gamestring
commanderIdstring

Returns

string


csvCell()

function csvCell(value): string;

Defined in: packages/playerthree/src/results.ts:666

RFC 4180; null is \N, literal leading backslash is doubled, formula/apostrophe strings gain one apostrophe.

Parameters

ParameterType
valueunknown

Returns

string


effectiveVerdict()

function effectiveVerdict(entry, rows): CommanderLogVerdict;

Defined in: packages/playerthree/src/commander-log-integrity.ts:114

The entry's effective verdict: its own, or the newest later verdict row for it.

Parameters

ParameterType
entryCommanderLogEntry
rowsreadonly CommanderLogVerdictRow[]

Returns

CommanderLogVerdict


entryDigest()

function entryDigest(entry): string;

Defined in: packages/playerthree/src/commander-log-integrity.ts:32

SHA-256 hex of the canonical entry without digest and sig (it covers prevDigest: the chain).

Parameters

ParameterType
entryOmit<CommanderLogEntry, "digest" | "sig"> & Partial<Pick<CommanderLogEntry, "digest" | "sig">>

Returns

string


exportMatchSpec()

function exportMatchSpec(spec): ExportMatchSpec;

Defined in: packages/playerthree/src/results.ts:141

Never copy owner/member/commander references into even the owner's downloadable raw dataset.

Parameters

ParameterType
spec| MatchSpec | ExportMatchSpec

Returns

ExportMatchSpec


exportSeriesSpec()

function exportSeriesSpec(spec): ExportSeriesSpec;

Defined in: packages/playerthree/src/results.ts:158

The public projection of a SeriesSpec: private occupant, owner and commander references removed (as in exportMatchSpec).

Parameters

ParameterType
specSeriesSpec

Returns

ExportSeriesSpec


exportStoredResults()

function exportStoredResults(
   record, 
   iterate, 
   format, 
   revision?, 
   policy?, 
   now?
): AsyncIterable<Uint8Array<ArrayBufferLike>>;

Defined in: packages/playerthree/src/results.ts:634

Streams the complete playerthree.results v1 download of a committed revision with bounded memory: the canonical JSON envelope (identical bytes to canonicalJson(envelope)), or the CSV ZIP of one RFC-4180 table per file plus schema.json, spec.json and manifest.json. Rows are ordered by an external merge sort whose temporary run files live in a private os.tmpdir() directory that is removed when the stream ends, fails or is abandoned.

Parameters

ParameterType
recordStoredSeries
iterate() => AsyncIterable<StoredResultChunk>
format"json" | "csv"
revision?number
policy?SharePolicy
now?number

Returns

AsyncIterable<Uint8Array<ArrayBufferLike>>


parseResultsSigner()

function parseResultsSigner(text): ResultsSigner;

Defined in: packages/playerthree/src/commander-log-integrity.ts:46

An Ed25519 private key as PKCS#8 PEM, or base64/base64url PKCS#8 DER (single-line secrets).

Parameters

ParameterType
textstring

Returns

ResultsSigner


rateMatch()

function rateMatch(
   env, 
   lineups, 
   ratings, 
   weight?
): Map<string, SkillRating>;

Defined in: packages/playerthree/src/ratings.ts:129

One TrueSkill update (the factor graph of ts-trueskill 5.1.0, convergence delta 0.0001). Each lineup is a team (allies together), ranked by rank; weights are partial-play weights. Unknown ids start at env.mu/env.sigma. The match weight weight ∈ [0, 1] blends each member's update: μ' = μ + w(μ_new − μ), σ'² = σ² + w(σ_new² − σ²); 1 is the plain update (exactly), 0 changes nothing. Returns the members' new ratings.

Parameters

ParameterTypeDefault value
envTrueSkillParametersundefined
lineupsreadonly RatedLineup[]undefined
ratingsReadonlyMap<string, SkillRating>undefined
weight?number1

Returns

Map<string, SkillRating>


resultsDigest()

function resultsDigest(envelope): string;

Defined in: packages/playerthree/src/results.ts:659

SHA-256 over the exact canonical UTF-8 JSON download, including format/version/revision.

Parameters

ParameterType
envelopeResultsEnvelope

Returns

string


resultsKeyId()

function resultsKeyId(publicKey): string;

Defined in: packages/playerthree/src/commander-log-integrity.ts:41

k_ + the first 16 hex of SHA-256 over the SPKI DER public key.

Parameters

ParameterType
publicKeyKeyObject

Returns

string


resultsPublicKey()

function resultsPublicKey(
   signer, 
   from, 
   until?
): ResultsKey;

Defined in: packages/playerthree/src/commander-log-integrity.ts:61

The published form of a signer's public key.

Parameters

ParameterTypeDefault value
signerResultsSignerundefined
fromnumberundefined
until?number | nullnull

Returns

ResultsKey


sealedDigest()

function sealedDigest(sealed): string;

Defined in: packages/playerthree/src/commander-log-integrity.ts:21

SHA-256 hex of the canonical sealed part: the commitment an entry carries as sealed.

Parameters

ParameterType
sealedCommanderLogSealed

Returns

string


serializeResultsCsv()

function serializeResultsCsv(envelope): ReadonlyMap<string, string>;

Defined in: packages/playerthree/src/results.ts:701

CSV files of an already materialised (small) envelope for CLI report writers; same serializer as the streamed ZIP.

Parameters

ParameterType
envelopeResultsEnvelope

Returns

ReadonlyMap<string, string>


standings()

function standings(
   spec, 
   trials, 
   attempts
): StandingRow[];

Defined in: packages/playerthree/src/ratings.ts:159

Recompute after each committed match in canonical schedule order, not worker completion order.

Parameters

ParameterType
specSeriesSpec
trialsreadonly TrialRow[]
attemptsreadonly MatchRow[]

Returns

StandingRow[]


validateMatchSpec()

function validateMatchSpec(value): MatchSpec;

Defined in: packages/playerthree/src/arena-schema.ts:192

Throws with a schema path (never the input) unless value is a valid MatchSpec.

Parameters

ParameterType
valueunknown

Returns

MatchSpec


validateResultRows()

function validateResultRows(value): asserts value is Partial<ResultRows>;

Defined in: packages/playerthree/src/arena-schema.ts:198

Validate recorder table columns before persistence; metadata payload semantics are additionally game-schema validated.

Parameters

ParameterType
valueunknown

Returns

asserts value is Partial<ResultRows>


validateResultsEnvelope()

function validateResultsEnvelope(value): ResultsEnvelope;

Defined in: packages/playerthree/src/arena-schema.ts:194

Throws with a schema path (never the input) unless value is a valid playerthree.results envelope.

Parameters

ParameterType
valueunknown

Returns

ResultsEnvelope


validateResultsSummary()

function validateResultsSummary(value): ResultsSummary;

Defined in: packages/playerthree/src/arena-schema.ts:196

Throws with a schema path (never the input) unless value is a valid playerthree.results.summary.

Parameters

ParameterType
valueunknown

Returns

ResultsSummary


validateSeriesSpec()

function validateSeriesSpec(value): SeriesSpec;

Defined in: packages/playerthree/src/arena-schema.ts:185

Throws (schema path only) unless value is a valid SeriesSpec with bounded, self-contained event schemas.

Parameters

ParameterType
valueunknown

Returns

SeriesSpec


validateTelemetryRows()

function validateTelemetryRows(rows, telemetry): void;

Defined in: packages/playerthree/src/arena-schema.ts:225

Checks recorder rows against the series' declared metric identities/scopes and event kinds and data schemas.

Parameters

ParameterType
rowsPartial<ResultRows>
telemetry{ commentaryConsents?: readonly object[]; eventDefinitions?: readonly EventDefinition[]; includeCommentary: boolean; metricDefinitions?: readonly MetricDefinition[]; sampleEveryTicks: number; }
telemetry.commentaryConsents?readonly object[]
telemetry.eventDefinitions?readonly EventDefinition[]
telemetry.includeCommentaryboolean
telemetry.metricDefinitions?readonly MetricDefinition[]
telemetry.sampleEveryTicksnumber

Returns

void


verifyCommanderLog()

function verifyCommanderLog(
   entries, 
   keys, 
   sealed?
): CommanderLogCheck;

Defined in: packages/playerthree/src/commander-log-integrity.ts:89

Verify one commander's entries, given in seq order (a contiguous segment of its chain; a full log starts at seq 1 with a null prevDigest): format, digest, chain links, and the Ed25519 signature under a key valid at the entry's endedAt. sealed (optional, same order): owner copies whose commitments must match; null = tombstoned.

Parameters

ParameterType
entriesreadonly CommanderLogEntry[]
keysreadonly ResultsKey[]
sealed?readonly (CommanderLogSealed | null)[]

Returns

CommanderLogCheck


verifyVerdictRow()

function verifyVerdictRow(row, keys): boolean;

Defined in: packages/playerthree/src/commander-log-integrity.ts:108

A verdict row's signature under a key valid at its at.

Parameters

ParameterType
rowCommanderLogVerdictRow
keysreadonly ResultsKey[]

Returns

boolean

References

COMMANDER_LOG_FORMAT

Re-exports COMMANDER_LOG_FORMAT


COMMANDER_LOG_VERSION

Re-exports COMMANDER_LOG_VERSION


CommanderLogAssist

Re-exports CommanderLogAssist


CommanderLogDisposition

Re-exports CommanderLogDisposition


CommanderLogEntry

Re-exports CommanderLogEntry


CommanderLogHead

Re-exports CommanderLogHead


CommanderLogOutcome

Re-exports CommanderLogOutcome


CommanderLogSealed

Re-exports CommanderLogSealed


CommanderLogSeatRef

Re-exports CommanderLogSeatRef


CommanderLogStore

Re-exports CommanderLogStore


CommanderLogUsage

Re-exports CommanderLogUsage


CommanderLogVerdict

Re-exports CommanderLogVerdict


CommanderLogVerdictRow

Re-exports CommanderLogVerdictRow


compareLogEntries

Re-exports compareLogEntries


ExportMatchSpec

Re-exports ExportMatchSpec


ExportSeriesSpec

Re-exports ExportSeriesSpec


ResultsEnvelope

Re-exports ResultsEnvelope


ResultsKey

Re-exports ResultsKey


ResultsSigner

Re-exports ResultsSigner


ResultsSummary

Re-exports ResultsSummary


StandingRow

Re-exports StandingRow


StoredCommanderLogEntry

Re-exports StoredCommanderLogEntry


StoredResultChunk

Re-exports StoredResultChunk


UNRATED

Re-exports UNRATED