playerthree/arena

playerthree/arena: types of series and match execution (SPEC §20.10, §20.11) — MatchSpec, SeriesSpec, result rows and envelopes, and the GameMatchHost, SeatBinder, SeriesStore and SeriesRunner contracts. Types only: browser packages load this module (directly or through protocol.ts) without Node or DOM libraries.

Interfaces

ActiveAttempt

Defined in: packages/playerthree/src/arena.ts:102

Properties


ActiveMatchRow

Defined in: packages/playerthree/src/arena.ts:103

Properties


ArenaJsonSchema

Defined in: packages/playerthree/src/arena.ts:9

The supported JSON Schema vocabulary is deliberately small and exported as ordinary draft-2020-12 schemas.

Properties

PropertyModifierTypeDefined in
$defs?readonlyReadonly<Record<string, ArenaJsonSchema>>packages/playerthree/src/arena.ts:10
$id?readonlystringpackages/playerthree/src/arena.ts:10
$ref?readonlystringpackages/playerthree/src/arena.ts:10
$schema?readonlystringpackages/playerthree/src/arena.ts:10
additionalProperties?readonlyboolean | ArenaJsonSchemapackages/playerthree/src/arena.ts:13
anyOf?readonlyreadonly ArenaJsonSchema[]packages/playerthree/src/arena.ts:12
const?readonlyunknownpackages/playerthree/src/arena.ts:11
description?readonlystringpackages/playerthree/src/arena.ts:15
enum?readonlyreadonly unknown[]packages/playerthree/src/arena.ts:11
exclusiveMinimum?readonlynumberpackages/playerthree/src/arena.ts:15
format?readonly"date-time"packages/playerthree/src/arena.ts:15
items?readonlyArenaJsonSchemapackages/playerthree/src/arena.ts:14
maximum?readonlynumberpackages/playerthree/src/arena.ts:15
maxItems?readonlynumberpackages/playerthree/src/arena.ts:14
maxLength?readonlynumberpackages/playerthree/src/arena.ts:14
maxProperties?readonlynumberpackages/playerthree/src/arena.ts:13
minimum?readonlynumberpackages/playerthree/src/arena.ts:15
minItems?readonlynumberpackages/playerthree/src/arena.ts:14
minLength?readonlynumberpackages/playerthree/src/arena.ts:14
oneOf?readonlyreadonly ArenaJsonSchema[]packages/playerthree/src/arena.ts:12
pattern?readonlystringpackages/playerthree/src/arena.ts:15
properties?readonlyReadonly<Record<string, ArenaJsonSchema>>packages/playerthree/src/arena.ts:12
propertyNames?readonlyArenaJsonSchemapackages/playerthree/src/arena.ts:13
required?readonlyreadonly string[]packages/playerthree/src/arena.ts:12
type?readonly| "string" | "number" | "boolean" | "object" | "array" | "integer" | "null" | readonly ("string" | "number" | "boolean" | "object" | "array" | "integer" | "null")[]packages/playerthree/src/arena.ts:11

ArtifactRef

Defined in: packages/playerthree/src/arena.ts:51

Properties


ArtifactRow

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

Properties


AttemptAccounting

Defined in: packages/playerthree/src/arena.ts:89

Per attempt: chunk count, total bytes and SHA-256 over the concatenated hex chunk checksums in index order (shared: of the projected chunks).

Properties


BindingContext

Defined in: packages/playerthree/src/arena.ts:59

Properties


BoundSeat

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

Properties

PropertyTypeDefined in
executionIdstringpackages/playerthree/src/arena.ts:58
kind"human" | "policy" | "agent" | "bot" | "none"packages/playerthree/src/arena.ts:58
seatSeatRefpackages/playerthree/src/arena.ts:58

CauseRow

Defined in: packages/playerthree/src/arena.ts:78

Properties


DecisionRow

Defined in: packages/playerthree/src/arena.ts:80

Properties


EntrantCard

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

Properties


EntrantRow

Defined in: packages/playerthree/src/arena.ts:83

Properties

PropertyTypeDefined in
aiPlayerbooleanpackages/playerthree/src/arena.ts:83
artifactHashstring | nullpackages/playerthree/src/arena.ts:83
botLevelstring | nullpackages/playerthree/src/arena.ts:83
botOptionsRecord<string, number | boolean> | nullpackages/playerthree/src/arena.ts:83
botVersionstring | nullpackages/playerthree/src/arena.ts:83
entrantIdstringpackages/playerthree/src/arena.ts:83
harnessstring | nullpackages/playerthree/src/arena.ts:83
harnessVerifiedbooleanpackages/playerthree/src/arena.ts:83
kind"human" | "policy" | "agent" | "bot"packages/playerthree/src/arena.ts:83
labelstringpackages/playerthree/src/arena.ts:83
modelstring | nullpackages/playerthree/src/arena.ts:83
providerstring | nullpackages/playerthree/src/arena.ts:83
scaffoldVersionstring | nullpackages/playerthree/src/arena.ts:83
selfReportedbooleanpackages/playerthree/src/arena.ts:83
stateResetSource| NonNullable<"runner" | "declared" | "not_applicable" | undefined> | nullpackages/playerthree/src/arena.ts:83

EventDefinition

Defined in: packages/playerthree/src/arena.ts:49

Properties


GameMatchHost

Defined in: packages/playerthree/src/arena.ts:63

A game's single-match runner for series: describes the game, resolves specs, creates matches and serves observers and artifacts.

Methods

artifact()
artifact(id): Promise<AsyncIterable<Uint8Array<ArrayBufferLike>, any, any>>;

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

Parameters
ParameterType
idstring
Returns

Promise<AsyncIterable<Uint8Array<ArrayBufferLike>, any, any>>

create()
create(spec, context): Promise<MatchExecution>;

Defined in: packages/playerthree/src/arena.ts:66

Parameters
ParameterType
specMatchSpec
context{ attemptId: string; bindings: readonly BoundSeat[]; budgets: { maxCostUsd: string | null; maxTokens: number | null; maxTurns: number | null; }; execution: { abortOn?: readonly "infrastructure"[]; clock: "realtime" | "accelerated" | "decision_barrier"; concurrency: number; maxInfraRetries: number; maxTicks: number; maxWallMs: number; speed: number; state: "reset_each_match" | "carry_within_series"; }; signal: AbortSignal; telemetry: { commentaryConsents?: readonly object[]; eventDefinitions?: readonly EventDefinition[]; includeCommentary: boolean; metricDefinitions?: readonly MetricDefinition[]; sampleEveryTicks: number; }; emitChunk(rows): Promise<void>; emitEvent(event): Promise<void>; emitMetric(row): Promise<void>; }
context.attemptIdstring
context.bindingsreadonly BoundSeat[]
context.budgets{ maxCostUsd: string | null; maxTokens: number | null; maxTurns: number | null; }
context.budgets.maxCostUsdstring | null
context.budgets.maxTokensnumber | null
context.budgets.maxTurnsnumber | null
context.execution{ abortOn?: readonly "infrastructure"[]; clock: "realtime" | "accelerated" | "decision_barrier"; concurrency: number; maxInfraRetries: number; maxTicks: number; maxWallMs: number; speed: number; state: "reset_each_match" | "carry_within_series"; }
context.execution.abortOn?readonly "infrastructure"[]
context.execution.clock"realtime" | "accelerated" | "decision_barrier"
context.execution.concurrencynumber
context.execution.maxInfraRetriesnumber
context.execution.maxTicksnumber
context.execution.maxWallMsnumber
context.execution.speednumber
context.execution.state"reset_each_match" | "carry_within_series"
context.signalAbortSignal
context.telemetry{ commentaryConsents?: readonly object[]; eventDefinitions?: readonly EventDefinition[]; includeCommentary: boolean; metricDefinitions?: readonly MetricDefinition[]; sampleEveryTicks: number; }
context.telemetry.commentaryConsents?readonly object[]
context.telemetry.eventDefinitions?readonly EventDefinition[]
context.telemetry.includeCommentaryboolean
context.telemetry.metricDefinitions?readonly MetricDefinition[]
context.telemetry.sampleEveryTicksnumber
context.emitChunk(rows) => Promise<void>
context.emitEvent(event) => Promise<void>
context.emitMetric(row) => Promise<void>
Returns

Promise<MatchExecution>

describe()
describe(): Promise<{
  clocks: readonly ("realtime" | "accelerated" | "decision_barrier")[];
  eventDefinitions?: readonly EventDefinition[];
  game: string;
  gameVersion: string;
  metricDefinitions?: readonly MetricDefinition[];
  supportedLayouts: readonly object[];
  surfaceHash: string;
}>;

Defined in: packages/playerthree/src/arena.ts:64

Returns

Promise<{ clocks: readonly ("realtime" | "accelerated" | "decision_barrier")[]; eventDefinitions?: readonly EventDefinition[]; game: string; gameVersion: string; metricDefinitions?: readonly MetricDefinition[]; supportedLayouts: readonly object[]; surfaceHash: string; }>

observe()
observe(
   matchId, 
   grant, 
   after?
): AsyncIterable<ObserverFrame>;

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

Parameters
ParameterType
matchIdstring
grantObserverGrant
after?number
Returns

AsyncIterable<ObserverFrame>

resolve()
resolve(spec): Promise<MatchSpec>;

Defined in: packages/playerthree/src/arena.ts:65

Parameters
ParameterType
specMatchSpec
Returns

Promise<MatchSpec>


GameMatchResult

Defined in: packages/playerthree/src/arena.ts:54

How one match attempt ended, with its outcomes, metrics and artifacts.

Properties


IntentRow

Defined in: packages/playerthree/src/arena.ts:79

Properties


LatencySummary

Defined in: packages/playerthree/src/arena.ts:84

Properties

PropertyTypeDefined in
entrantIdstringpackages/playerthree/src/arena.ts:84
method"nearest_rank/1"packages/playerthree/src/arena.ts:84
p50Msnumber | nullpackages/playerthree/src/arena.ts:84
p95Msnumber | nullpackages/playerthree/src/arena.ts:84
samplesnumberpackages/playerthree/src/arena.ts:84
source"runner" | "provider" | "self_report" | "host_gap"packages/playerthree/src/arena.ts:84

MatchCommit

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

Properties


MatchExecution

Defined in: packages/playerthree/src/arena.ts:57

One created match: started once, settled through finished, abortable and disposable.

Properties

Methods

abort()
abort(reason): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:57

Parameters
ParameterType
reasonAbortReason
Returns

Promise<void>

dispose()
dispose(): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:57

Returns

Promise<void>

start()
start(): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:57

Returns

Promise<void>


MatchRow

Defined in: packages/playerthree/src/arena.ts:76

Properties


MatchSpec

Defined in: packages/playerthree/src/arena.ts:25

One match: game identity and pinned hashes, seed and map, options, sides with their seat occupants, and entrant bindings.

Properties


MetricDefinition

Defined in: packages/playerthree/src/arena.ts:48

Properties

PropertyTypeDefined in
interpretation"stock" | "cumulative" | "rate" | "configuration"packages/playerthree/src/arena.ts:48
metricstringpackages/playerthree/src/arena.ts:48
scope"seat" | "match" | "side"packages/playerthree/src/arena.ts:48
unitstringpackages/playerthree/src/arena.ts:48

MetricRow

Defined in: packages/playerthree/src/arena.ts:47

Properties


OutcomeRow

Defined in: packages/playerthree/src/arena.ts:52

Properties

PropertyTypeDefined in
outcome"win" | "loss" | "draw" | "aborted"packages/playerthree/src/arena.ts:52
ranknumber | nullpackages/playerthree/src/arena.ts:52
reasonstringpackages/playerthree/src/arena.ts:52
teamstringpackages/playerthree/src/arena.ts:52

ResultChunk

Defined in: packages/playerthree/src/arena.ts:101

Properties


ResultRows

Defined in: packages/playerthree/src/arena.ts:82

Properties


ResultsEnvelope

Defined in: packages/playerthree/src/arena.ts:91

The canonical playerthree.results document of one series revision (the full download).

Properties

PropertyTypeDefined in
accountingobjectpackages/playerthree/src/arena.ts:91
accounting.chunksreadonly AttemptAccounting[]packages/playerthree/src/arena.ts:91
accounting.provenance"recorded_chunks" | "shared_projection"packages/playerthree/src/arena.ts:91
accounting.recordedBytesnumberpackages/playerthree/src/arena.ts:91
accounting.tablesReadonly<Record<ResultsTable, { bytes: number; rows: number; }>>packages/playerthree/src/arena.ts:91
activeMatchesreadonly ActiveMatchRow[]packages/playerthree/src/arena.ts:91
comparisonHashstringpackages/playerthree/src/arena.ts:91
completedAtstring | nullpackages/playerthree/src/arena.ts:91
completenessobjectpackages/playerthree/src/arena.ts:91
completeness.missingreadonly string[]packages/playerthree/src/arena.ts:91
completeness.rawCompletebooleanpackages/playerthree/src/arena.ts:91
completeness.scheduleCompletebooleanpackages/playerthree/src/arena.ts:91
createdAtstringpackages/playerthree/src/arena.ts:91
disclosureobjectpackages/playerthree/src/arena.ts:91
disclosure.audience"owner" | "shared"packages/playerthree/src/arena.ts:91
disclosure.commentarybooleanpackages/playerthree/src/arena.ts:91
format"playerthree.results"packages/playerthree/src/arena.ts:91
retentionobjectpackages/playerthree/src/arena.ts:91
retention.bytesnumberpackages/playerthree/src/arena.ts:91
retention.expiresAtstringpackages/playerthree/src/arena.ts:91
retention.maxBytesnumberpackages/playerthree/src/arena.ts:91
revisionnumberpackages/playerthree/src/arena.ts:91
seriesIdstringpackages/playerthree/src/arena.ts:91
specExportSeriesSpecpackages/playerthree/src/arena.ts:91
stateSeriesStatepackages/playerthree/src/arena.ts:91
summariesobjectpackages/playerthree/src/arena.ts:91
summaries.latencyreadonly LatencySummary[]packages/playerthree/src/arena.ts:91
summaries.usagereadonly UsageSummary[]packages/playerthree/src/arena.ts:91
tablesOmit<ResultRows, "artifacts"> & objectpackages/playerthree/src/arena.ts:91
updatedAtstringpackages/playerthree/src/arena.ts:91
version1packages/playerthree/src/arena.ts:91

ResultsSummary

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

Bounded live view of a revision: the envelope's shape with row-limited tables, labelled by sampling. Accounting, summaries, completeness and retention are exact over every row; sampling.tables[t].rows is the full count.

Extends

Properties

PropertyTypeInherited fromDefined in
accountingobjectResultsEnvelope.accountingpackages/playerthree/src/arena.ts:91
accounting.chunksreadonly AttemptAccounting[]-packages/playerthree/src/arena.ts:91
accounting.provenance"recorded_chunks" | "shared_projection"-packages/playerthree/src/arena.ts:91
accounting.recordedBytesnumber-packages/playerthree/src/arena.ts:91
accounting.tablesReadonly<Record<ResultsTable, { bytes: number; rows: number; }>>-packages/playerthree/src/arena.ts:91
activeMatchesreadonly ActiveMatchRow[]ResultsEnvelope.activeMatchespackages/playerthree/src/arena.ts:91
comparisonHashstringResultsEnvelope.comparisonHashpackages/playerthree/src/arena.ts:91
completedAtstring | nullResultsEnvelope.completedAtpackages/playerthree/src/arena.ts:91
completenessobjectResultsEnvelope.completenesspackages/playerthree/src/arena.ts:91
completeness.missingreadonly string[]-packages/playerthree/src/arena.ts:91
completeness.rawCompleteboolean-packages/playerthree/src/arena.ts:91
completeness.scheduleCompleteboolean-packages/playerthree/src/arena.ts:91
createdAtstringResultsEnvelope.createdAtpackages/playerthree/src/arena.ts:91
disclosureobjectResultsEnvelope.disclosurepackages/playerthree/src/arena.ts:91
disclosure.audience"owner" | "shared"-packages/playerthree/src/arena.ts:91
disclosure.commentaryboolean-packages/playerthree/src/arena.ts:91
format"playerthree.results.summary"-packages/playerthree/src/arena.ts:97
retentionobjectResultsEnvelope.retentionpackages/playerthree/src/arena.ts:91
retention.bytesnumber-packages/playerthree/src/arena.ts:91
retention.expiresAtstring-packages/playerthree/src/arena.ts:91
retention.maxBytesnumber-packages/playerthree/src/arena.ts:91
revisionnumberResultsEnvelope.revisionpackages/playerthree/src/arena.ts:91
samplingobject-packages/playerthree/src/arena.ts:98
sampling.limitnumber-packages/playerthree/src/arena.ts:98
sampling.tablesReadonly<Record<ResultsTable, { included: number; method: "complete" | "sorted_prefix" | "stride_per_series"; rows: number; }>>-packages/playerthree/src/arena.ts:98
seriesIdstringResultsEnvelope.seriesIdpackages/playerthree/src/arena.ts:91
specExportSeriesSpecResultsEnvelope.specpackages/playerthree/src/arena.ts:91
stateSeriesStateResultsEnvelope.statepackages/playerthree/src/arena.ts:91
summariesobjectResultsEnvelope.summariespackages/playerthree/src/arena.ts:91
summaries.latencyreadonly LatencySummary[]-packages/playerthree/src/arena.ts:91
summaries.usagereadonly UsageSummary[]-packages/playerthree/src/arena.ts:91
tablesOmit<ResultRows, "artifacts"> & objectResultsEnvelope.tablespackages/playerthree/src/arena.ts:91
updatedAtstringResultsEnvelope.updatedAtpackages/playerthree/src/arena.ts:91
version1ResultsEnvelope.versionpackages/playerthree/src/arena.ts:91

SeatBinder

Defined in: packages/playerthree/src/arena.ts:61

Binds a match's seats to entrants before it starts (and releases them after); validate vets a series up front.

Methods

bind()
bind(
   owner, 
   spec, 
   context
): Promise<{
  seats: readonly BoundSeat[];
  release(): Promise<void>;
}>;

Defined in: packages/playerthree/src/arena.ts:61

Parameters
ParameterType
ownerstring
specMatchSpec
contextBindingContext
Returns

Promise<{ seats: readonly BoundSeat[]; release(): Promise<void>; }>

validate()?
validate?(owner, spec): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:61

Parameters
ParameterType
ownerstring
specSeriesSpec
Returns

Promise<void>


SeatRow

Defined in: packages/playerthree/src/arena.ts:77

Properties

PropertyTypeDefined in
acceptedIntentsnumber | nullpackages/playerthree/src/arena.ts:77
activeTicksnumber | nullpackages/playerthree/src/arena.ts:77
artifactHashstring | nullpackages/playerthree/src/arena.ts:77
artifactVersionnumber | nullpackages/playerthree/src/arena.ts:77
commandApmnumber | nullpackages/playerthree/src/arena.ts:77
entrantIdstring | nullpackages/playerthree/src/arena.ts:77
executionKind"human" | "policy" | "agent" | "bot" | "none"packages/playerthree/src/arena.ts:77
fallbackKind"human" | "policy" | "agent" | "bot" | "none" | nullpackages/playerthree/src/arena.ts:77
matchIdstringpackages/playerthree/src/arena.ts:77
policyErrorsnumber | nullpackages/playerthree/src/arena.ts:77
readyStatestringpackages/playerthree/src/arena.ts:77
rejectedIntentsnumber | nullpackages/playerthree/src/arena.ts:77
rolestringpackages/playerthree/src/arena.ts:77
submittedIntentsnumber | nullpackages/playerthree/src/arena.ts:77
teamstringpackages/playerthree/src/arena.ts:77

SeriesLimits

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

Properties


SeriesRunner

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

Runs series end to end for owners; hosts only ever run single matches.

Extended by

Methods

abort()
abort(owner, id): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:144

Parameters
ParameterType
ownerstring
idstring
Returns

Promise<void>

create()
create(owner, spec): Promise<{
  id: string;
  revision: number;
}>;

Defined in: packages/playerthree/src/arena.ts:142

Parameters
ParameterType
ownerstring
specSeriesSpec
Returns

Promise<{ id: string; revision: number; }>

createShare()
createShare(
   owner, 
   id, 
   policy
): Promise<{
  generation: number;
  token: string;
}>;

Defined in: packages/playerthree/src/arena.ts:152

Parameters
ParameterType
ownerstring
idstring
policySharePolicy
Returns

Promise<{ generation: number; token: string; }>

export()
export(
   access, 
   format, 
   revision?
): AsyncIterable<Uint8Array<ArrayBufferLike>>;

Defined in: packages/playerthree/src/arena.ts:149

Streams the full canonical playerthree.results JSON or the CSV ZIP with bounded memory.

Parameters
ParameterType
accessSeriesAccess
format"json" | "csv"
revision?number
Returns

AsyncIterable<Uint8Array<ArrayBufferLike>>

previewShare()
previewShare(
   owner, 
   id, 
   policy
): Promise<ResultsSummary>;

Defined in: packages/playerthree/src/arena.ts:151

The exact shared projection a share with this policy would publish now, before creating the link.

Parameters
ParameterType
ownerstring
idstring
policySharePolicy
Returns

Promise<ResultsSummary>

results()
results(access, revision?): Promise<ResultsSummary>;

Defined in: packages/playerthree/src/arena.ts:147

Bounded summary for live pages and polling; full raw data is only available through export.

Parameters
ParameterType
accessSeriesAccess
revision?number
Returns

Promise<ResultsSummary>

revokeShare()
revokeShare(owner, id): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:153

Parameters
ParameterType
ownerstring
idstring
Returns

Promise<void>

setCommentaryConsent()
setCommentaryConsent(
   owner, 
   id, 
   entrantId, 
   consent
): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:154

Parameters
ParameterType
ownerstring
idstring
entrantIdstring
consent{ chat: boolean; summaries: boolean; }
consent.chatboolean
consent.summariesboolean
Returns

Promise<void>

start()
start(owner, id): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:143

Parameters
ParameterType
ownerstring
idstring
Returns

Promise<void>

updates()
updates(access, afterRevision?): AsyncIterable<SeriesUpdate>;

Defined in: packages/playerthree/src/arena.ts:145

Parameters
ParameterType
accessSeriesAccess
afterRevision?number
Returns

AsyncIterable<SeriesUpdate>


SeriesSpec

Defined in: packages/playerthree/src/arena.ts:34

A frozen series: entrants, the match template, scenarios × side permutations × repetitions, execution limits, budgets, rating and telemetry.

Properties

PropertyTypeDescriptionDefined in
authoring?object-packages/playerthree/src/arena.ts:40
authoring.maxOutputTokensnumber-packages/playerthree/src/arena.ts:40
authoring.maxWallMsnumber-packages/playerthree/src/arena.ts:40
authoring.practiceSeedsreadonly number[]-packages/playerthree/src/arena.ts:40
budgetsobject-packages/playerthree/src/arena.ts:44
budgets.maxCostUsdstring | null-packages/playerthree/src/arena.ts:44
budgets.maxTokensnumber | null-packages/playerthree/src/arena.ts:44
budgets.maxTurnsnumber | null-packages/playerthree/src/arena.ts:44
entrantsreadonly EntrantCard[]-packages/playerthree/src/arena.ts:38
entrantSeats?readonly object[]-packages/playerthree/src/arena.ts:39
executionobject-packages/playerthree/src/arena.ts:43
execution.abortOn?readonly "infrastructure"[]-packages/playerthree/src/arena.ts:43
execution.clock"realtime" | "accelerated" | "decision_barrier"-packages/playerthree/src/arena.ts:43
execution.concurrencynumber-packages/playerthree/src/arena.ts:43
execution.maxInfraRetriesnumber-packages/playerthree/src/arena.ts:43
execution.maxTicksnumber-packages/playerthree/src/arena.ts:43
execution.maxWallMsnumber-packages/playerthree/src/arena.ts:43
execution.speednumber-packages/playerthree/src/arena.ts:43
execution.state"reset_each_match" | "carry_within_series"-packages/playerthree/src/arena.ts:43
format"playerthree.series"-packages/playerthree/src/arena.ts:35
gamestring-packages/playerthree/src/arena.ts:35
gameVersionstring-packages/playerthree/src/arena.ts:35
permutationsreadonly object[]-packages/playerthree/src/arena.ts:42
ratingRatingConfig-packages/playerthree/src/arena.ts:44
repetitionsnumber-packages/playerthree/src/arena.ts:42
scenariosreadonly object[]-packages/playerthree/src/arena.ts:41
surfaceHashstring-packages/playerthree/src/arena.ts:35
telemetryobject-packages/playerthree/src/arena.ts:45
telemetry.commentaryConsents?readonly object[]-packages/playerthree/src/arena.ts:45
telemetry.eventDefinitions?readonly EventDefinition[]-packages/playerthree/src/arena.ts:45
telemetry.includeCommentaryboolean-packages/playerthree/src/arena.ts:45
telemetry.metricDefinitions?readonly MetricDefinition[]-packages/playerthree/src/arena.ts:45
telemetry.sampleEveryTicksnumber-packages/playerthree/src/arena.ts:45
templateMatchSpec-packages/playerthree/src/arena.ts:38
track"policy" | "bots" | "live" | "gauntlet"gauntlet: a frozen policy entrant against fixed built-in bot references (a game's policy-only gauntlet).packages/playerthree/src/arena.ts:37
version1-packages/playerthree/src/arena.ts:35

SeriesStore

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

Durable series storage: metadata, raw result chunks, artifacts, execution leases and shares. Execution writes check the expected revision or the lease holder.

Methods

appendChunk()
appendChunk(
   id, 
   attemptId, 
   chunk, 
   holder
): Promise<void>;

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

Parameters
ParameterType
idstring
attemptIdstring
chunkResultChunk
holderstring
Returns

Promise<void>

attachMatch()
attachMatch(
   id, 
   expectedRevision, 
   attemptId, 
   matchId, 
   releaseAt, 
   holder
): Promise<number>;

Defined in: packages/playerthree/src/arena.ts:122

Parameters
ParameterType
idstring
expectedRevisionnumber
attemptIdstring
matchIdstring
releaseAtnumber
holderstring
Returns

Promise<number>

beginAttempt()
beginAttempt(
   id, 
   expectedRevision, 
   attempt, 
   holder
): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:124

Parameters
ParameterType
idstring
expectedRevisionnumber
attemptActiveAttempt
holderstring
Returns

Promise<void>

claim()
claim(
   id, 
   holder, 
   expiresAt
): Promise<boolean>;

Defined in: packages/playerthree/src/arena.ts:130

Parameters
ParameterType
idstring
holderstring
expiresAtnumber
Returns

Promise<boolean>

commitMatch()
commitMatch(
   id, 
   expectedRevision, 
   commit
): Promise<number>;

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

Parameters
ParameterType
idstring
expectedRevisionnumber
commitMatchCommit
Returns

Promise<number>

create()
create(record): Promise<void>;

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

Parameters
ParameterType
recordStoredSeries
Returns

Promise<void>

delete()
delete(id, owner): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:133

Parameters
ParameterType
idstring
ownerstring
Returns

Promise<void>

get()
get(id): Promise<StoredSeries | undefined>;

Defined in: packages/playerthree/src/arena.ts:115

Metadata only; never raw rows.

Parameters
ParameterType
idstring
Returns

Promise<StoredSeries | undefined>

getArtifact()
getArtifact(id, artifactId): Promise<Uint8Array<ArrayBufferLike> | undefined>;

Defined in: packages/playerthree/src/arena.ts:135

Parameters
ParameterType
idstring
artifactIdstring
Returns

Promise<Uint8Array<ArrayBufferLike> | undefined>

iterateChunks()
iterateChunks(id, revision?): AsyncIterable<StoredResultChunk>;

Defined in: packages/playerthree/src/arena.ts:121

Raw chunks of the attempts committed at revision (default: current), in schedule index/attempt number order then chunk index. Each iteration snapshots afresh, holds one verified chunk at a time and rejects corrupt or missing data.

Parameters
ParameterType
idstring
revision?number
Returns

AsyncIterable<StoredResultChunk>

list()
list(owner, cursor?): Promise<readonly StoredSeries[]>;

Defined in: packages/playerthree/src/arena.ts:116

Parameters
ParameterType
ownerstring
cursor?string
Returns

Promise<readonly StoredSeries[]>

prune()
prune(now): Promise<void>;

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

Parameters
ParameterType
nownumber
Returns

Promise<void>

putArtifact()
putArtifact(
   id, 
   artifact, 
   data, 
   holder
): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:134

Parameters
ParameterType
idstring
artifactArtifactRef
dataUint8Array
holderstring
Returns

Promise<void>

recoverable()
recoverable(now): Promise<readonly StoredSeries[]>;

Defined in: packages/playerthree/src/arena.ts:132

Parameters
ParameterType
nownumber
Returns

Promise<readonly StoredSeries[]>

release()
release(id, holder): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:131

Parameters
ParameterType
idstring
holderstring
Returns

Promise<void>

resolveShare()
resolveShare(tokenDigest): Promise<ShareRecord | undefined>;

Defined in: packages/playerthree/src/arena.ts:128

Parameters
ParameterType
tokenDigeststring
Returns

Promise<ShareRecord | undefined>

setCommentaryConsent()
setCommentaryConsent(
   id, 
   owner, 
   entrantId, 
   consent
): Promise<void>;

Defined in: packages/playerthree/src/arena.ts:136

Parameters
ParameterType
idstring
ownerstring
entrantIdstring
consent{ chat: boolean; summaries: boolean; }
consent.chatboolean
consent.summariesboolean
Returns

Promise<void>

share()
share(
   id, 
   owner, 
   record
): Promise<ShareRecord | null>;

Defined in: packages/playerthree/src/arena.ts:127

Parameters
ParameterType
idstring
ownerstring
recordShareRecord | null
Returns

Promise<ShareRecord | null>

transition()
transition(
   id, 
   expectedRevision, 
   state, 
   recording?, 
   leaseHolder?
): Promise<number>;

Defined in: packages/playerthree/src/arena.ts:126

Parameters
ParameterType
idstring
expectedRevisionnumber
stateSeriesState
recording?{ missing: readonly string[]; rawComplete: false; }
recording.missingreadonly string[]
recording.rawCompletefalse
leaseHolder?string
Returns

Promise<number>


SeriesUpdate

Defined in: packages/playerthree/src/arena.ts:72

Properties


SharePolicy

Defined in: packages/playerthree/src/arena.ts:109

Properties

PropertyTypeDefined in
commentarybooleanpackages/playerthree/src/arena.ts:109
consentedEntrantsreadonly string[]packages/playerthree/src/arena.ts:109
expiresAtstringpackages/playerthree/src/arena.ts:109
notBeforenumberpackages/playerthree/src/arena.ts:109

ShareRecord

Defined in: packages/playerthree/src/arena.ts:110

Properties


SideSpec

Defined in: packages/playerthree/src/arena.ts:22

Properties


StandingRow

Defined in: packages/playerthree/src/arena.ts:71

Properties

PropertyTypeDefined in
averageSimulatedMsnumber | nullpackages/playerthree/src/arena.ts:71
averageWallMsnumber | nullpackages/playerthree/src/arena.ts:71
confidenceobjectpackages/playerthree/src/arena.ts:71
confidence.blocksnumberpackages/playerthree/src/arena.ts:71
confidence.independentbooleanpackages/playerthree/src/arena.ts:71
confidence.levelnumberpackages/playerthree/src/arena.ts:71
confidence.method"seed_block_bootstrap"packages/playerthree/src/arena.ts:71
confidence.replicatesnumberpackages/playerthree/src/arena.ts:71
confidence.scoreRatereadonly [number, number] | nullpackages/playerthree/src/arena.ts:71
confidence.seednumberpackages/playerthree/src/arena.ts:71
confidence.version1packages/playerthree/src/arena.ts:71
confidence.winRatereadonly [number, number] | nullpackages/playerthree/src/arena.ts:71
conservativeRatingnumber | nullpackages/playerthree/src/arena.ts:71
drawsnumberpackages/playerthree/src/arena.ts:71
entrantIdstringpackages/playerthree/src/arena.ts:71
gamesnumberpackages/playerthree/src/arena.ts:71
lossesnumberpackages/playerthree/src/arena.ts:71
munumber | nullpackages/playerthree/src/arena.ts:71
provisionalbooleanpackages/playerthree/src/arena.ts:71
ratingnumber | nullpackages/playerthree/src/arena.ts:71
ratingImplementation"elo/1" | "ts-trueskill/5.1.0"packages/playerthree/src/arena.ts:71
ratingParametersRatingConfig & objectpackages/playerthree/src/arena.ts:71
scoreRatenumber | nullpackages/playerthree/src/arena.ts:71
sigmanumber | nullpackages/playerthree/src/arena.ts:71
winRatenumber | nullpackages/playerthree/src/arena.ts:71
winsnumberpackages/playerthree/src/arena.ts:71

StoredResultChunk

Defined in: packages/playerthree/src/arena.ts:107

A checksum-verified raw chunk of an attempt committed at committedRevision.

Properties


StoredSeries

Defined in: packages/playerthree/src/arena.ts:105

Metadata only: raw rows live behind SeriesStore.iterateChunks; chunkStats has one entry per attempt that appended chunks.

Properties


TimelineEvent

Defined in: packages/playerthree/src/arena.ts:50

Properties


TrialRow

Defined in: packages/playerthree/src/arena.ts:75

Properties


UsageRow

Defined in: packages/playerthree/src/arena.ts:81

Properties

PropertyTypeDefined in
cacheReadTokensnumber | nullpackages/playerthree/src/arena.ts:81
cacheWriteTokensnumber | nullpackages/playerthree/src/arena.ts:81
costAmountstring | nullpackages/playerthree/src/arena.ts:81
coverage"complete" | "partial" | "unknown"packages/playerthree/src/arena.ts:81
currencystring | nullpackages/playerthree/src/arena.ts:81
decisionIdstring | nullpackages/playerthree/src/arena.ts:81
entrantIdstringpackages/playerthree/src/arena.ts:81
executionIdstringpackages/playerthree/src/arena.ts:81
inputTokensnumber | nullpackages/playerthree/src/arena.ts:81
matchIdstring | nullpackages/playerthree/src/arena.ts:81
outputTokensnumber | nullpackages/playerthree/src/arena.ts:81
phase"authoring" | "inference"packages/playerthree/src/arena.ts:81
pricingVersionstring | nullpackages/playerthree/src/arena.ts:81
reporter"runner" | "reported" | "estimated" | "unpriced"packages/playerthree/src/arena.ts:81
rolestring | nullpackages/playerthree/src/arena.ts:81
teamstring | nullpackages/playerthree/src/arena.ts:81

UsageSummary

Defined in: packages/playerthree/src/arena.ts:85

Properties

PropertyTypeDefined in
cacheReadTokensnumber | nullpackages/playerthree/src/arena.ts:85
cacheWriteTokensnumber | nullpackages/playerthree/src/arena.ts:85
costAmountstring | nullpackages/playerthree/src/arena.ts:85
coverage"complete" | "partial" | "unknown"packages/playerthree/src/arena.ts:85
currencystring | nullpackages/playerthree/src/arena.ts:85
entrantIdstringpackages/playerthree/src/arena.ts:85
inputTokensnumber | nullpackages/playerthree/src/arena.ts:85
outputTokensnumber | nullpackages/playerthree/src/arena.ts:85
phase"authoring" | "inference"packages/playerthree/src/arena.ts:85
reporter"runner" | "reported" | "estimated" | "unpriced" | nullpackages/playerthree/src/arena.ts:85
samplesnumberpackages/playerthree/src/arena.ts:85

Type Aliases

AbortReason

type AbortReason = "owner" | "deadline" | "shutdown" | "storage" | "artifact_limit";

Defined in: packages/playerthree/src/arena.ts:55


CommanderRef

type CommanderRef = object;

Defined in: packages/playerthree/src/arena.ts:20

Properties

id
id: string;

Defined in: packages/playerthree/src/arena.ts:20

kind
kind: "agent" | "policy";

Defined in: packages/playerthree/src/arena.ts:20

version?
version?: number;

Defined in: packages/playerthree/src/arena.ts:20


ExportMatchSpec

type ExportMatchSpec = Omit<MatchSpec, "sides"> & object;

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

Type Declaration

NameTypeDefined in
sidesreadonly object[]packages/playerthree/src/arena.ts:73

ExportSeriesSpec

type ExportSeriesSpec = Omit<SeriesSpec, "template" | "entrantSeats"> & object;

Defined in: packages/playerthree/src/arena.ts:74

Type Declaration


RatingConfig

type RatingConfig = 
  | {
  algorithm: "elo";
  initial: number;
  k: number;
  scale: number;
  version: 1;
}
  | {
  algorithm: "trueskill";
  beta: number;
  drawProbability: number;
  mu: number;
  sigma: number;
  tau: number;
  version: 1;
};

Defined in: packages/playerthree/src/arena.ts:32


ResultsTable

type ResultsTable = keyof ResultsEnvelope["tables"];

Defined in: packages/playerthree/src/arena.ts:87


SeatRef

type SeatRef = object;

Defined in: packages/playerthree/src/arena.ts:19

Properties

role
role: string;

Defined in: packages/playerthree/src/arena.ts:19

team
team: string;

Defined in: packages/playerthree/src/arena.ts:19


SeriesAccess

type SeriesAccess = 
  | {
  kind: "owner";
  owner: string;
  seriesId: string;
}
  | {
  kind: "share";
  token: string;
};

Defined in: packages/playerthree/src/arena.ts:139

Who reads a series: its owner, or a share token holder (shared projection only).


SeriesState

type SeriesState = "queued" | "running" | "aborting" | "completed" | "aborted" | "failed";

Defined in: packages/playerthree/src/arena.ts:70


SlotOccupant

type SlotOccupant = 
  | {
  kind: "human";
  memberId: string;
}
  | {
  kind: "open";
}
  | {
  kind: "bot";
  level: string;
  options: Record<string, number | boolean>;
}
  | {
  kind: "commander";
  ref: CommanderRef;
}
  | {
  kind: "closed";
};

Defined in: packages/playerthree/src/arena.ts:21

References

ObserverFrame

Re-exports ObserverFrame


ObserverGrant

Re-exports ObserverGrant