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
| Property | Type | Defined in |
|---|---|---|
attemptId | string | packages/playerthree/src/arena.ts:102 |
attemptNumber | number | packages/playerthree/src/arena.ts:102 |
matchId | string | null | packages/playerthree/src/arena.ts:102 |
releaseAt | number | packages/playerthree/src/arena.ts:102 |
startedAt | string | packages/playerthree/src/arena.ts:102 |
trialId | string | packages/playerthree/src/arena.ts:102 |
ActiveMatchRow
Defined in: packages/playerthree/src/arena.ts:103
Properties
| Property | Type | Defined in |
|---|---|---|
attemptId | string | packages/playerthree/src/arena.ts:103 |
attemptNumber | number | packages/playerthree/src/arena.ts:103 |
matchId | string | packages/playerthree/src/arena.ts:103 |
releaseAt | number | packages/playerthree/src/arena.ts:103 |
spec | ExportMatchSpec | packages/playerthree/src/arena.ts:103 |
startedAt | string | packages/playerthree/src/arena.ts:103 |
trialId | string | packages/playerthree/src/arena.ts:103 |
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
ArtifactRef
Defined in: packages/playerthree/src/arena.ts:51
Properties
| Property | Type | Defined in |
|---|---|---|
availability | "available" | "not_recorded" | "expired" | packages/playerthree/src/arena.ts:51 |
bytes | number | packages/playerthree/src/arena.ts:51 |
expiresAt? | string | packages/playerthree/src/arena.ts:51 |
format | string | packages/playerthree/src/arena.ts:51 |
id | string | packages/playerthree/src/arena.ts:51 |
kind | "replay" | "recording" | packages/playerthree/src/arena.ts:51 |
matchId? | string | packages/playerthree/src/arena.ts:51 |
releaseAt? | number | packages/playerthree/src/arena.ts:51 |
sha256 | string | packages/playerthree/src/arena.ts:51 |
version | number | packages/playerthree/src/arena.ts:51 |
ArtifactRow
Defined in: packages/playerthree/src/arena.ts:86
Properties
| Property | Type | Defined in |
|---|---|---|
availability | "available" | "not_recorded" | "expired" | packages/playerthree/src/arena.ts:86 |
bytes | number | packages/playerthree/src/arena.ts:86 |
expiresAt | string | null | packages/playerthree/src/arena.ts:86 |
format | string | packages/playerthree/src/arena.ts:86 |
id | string | packages/playerthree/src/arena.ts:86 |
kind | "replay" | "recording" | packages/playerthree/src/arena.ts:86 |
matchId | string | null | packages/playerthree/src/arena.ts:86 |
releaseAt | number | null | packages/playerthree/src/arena.ts:86 |
sha256 | string | packages/playerthree/src/arena.ts:86 |
version | number | packages/playerthree/src/arena.ts:86 |
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
| Property | Type | Defined in |
|---|---|---|
attemptId | string | packages/playerthree/src/arena.ts:89 |
bytes | number | packages/playerthree/src/arena.ts:89 |
chunks | number | packages/playerthree/src/arena.ts:89 |
sha256 | string | packages/playerthree/src/arena.ts:89 |
BindingContext
Defined in: packages/playerthree/src/arena.ts:59
Properties
| Property | Type | Defined in |
|---|---|---|
attemptId | string | packages/playerthree/src/arena.ts:59 |
reset | boolean | packages/playerthree/src/arena.ts:59 |
signal | AbortSignal | packages/playerthree/src/arena.ts:59 |
BoundSeat
Defined in: packages/playerthree/src/arena.ts:58
Properties
| Property | Type | Defined in |
|---|---|---|
executionId | string | packages/playerthree/src/arena.ts:58 |
kind | "human" | "policy" | "agent" | "bot" | "none" | packages/playerthree/src/arena.ts:58 |
seat | SeatRef | packages/playerthree/src/arena.ts:58 |
CauseRow
Defined in: packages/playerthree/src/arena.ts:78
Properties
| Property | Type | Defined in |
|---|---|---|
alloyValue | number | packages/playerthree/src/arena.ts:78 |
attackerKind | string | null | packages/playerthree/src/arena.ts:78 |
attackerRole | string | null | packages/playerthree/src/arena.ts:78 |
attackerTeam | string | null | packages/playerthree/src/arena.ts:78 |
cause | string | packages/playerthree/src/arena.ts:78 |
count | number | packages/playerthree/src/arena.ts:78 |
energyValue | number | packages/playerthree/src/arena.ts:78 |
matchId | string | packages/playerthree/src/arena.ts:78 |
sequence | number | packages/playerthree/src/arena.ts:78 |
tick | number | packages/playerthree/src/arena.ts:78 |
victimKind | string | packages/playerthree/src/arena.ts:78 |
victimRole | string | packages/playerthree/src/arena.ts:78 |
victimTeam | string | packages/playerthree/src/arena.ts:78 |
DecisionRow
Defined in: packages/playerthree/src/arena.ts:80
Properties
| Property | Type | Defined in |
|---|---|---|
decisionId | string | packages/playerthree/src/arena.ts:80 |
finishedAt | string | packages/playerthree/src/arena.ts:80 |
latencyMs | number | packages/playerthree/src/arena.ts:80 |
matchId | string | packages/playerthree/src/arena.ts:80 |
role | string | packages/playerthree/src/arena.ts:80 |
source | "runner" | "provider" | "self_report" | "host_gap" | packages/playerthree/src/arena.ts:80 |
startedAt | string | packages/playerthree/src/arena.ts:80 |
status | string | packages/playerthree/src/arena.ts:80 |
team | string | packages/playerthree/src/arena.ts:80 |
EntrantCard
Defined in: packages/playerthree/src/arena.ts:23
Properties
| Property | Type | Defined in |
|---|---|---|
aiPlayer | boolean | packages/playerthree/src/arena.ts:23 |
artifactHash? | string | packages/playerthree/src/arena.ts:23 |
botLevel? | string | packages/playerthree/src/arena.ts:23 |
botOptions? | Record<string, number | boolean> | packages/playerthree/src/arena.ts:23 |
botVersion? | string | packages/playerthree/src/arena.ts:23 |
harness? | object | packages/playerthree/src/arena.ts:23 |
harness.label | string | packages/playerthree/src/arena.ts:23 |
harness.verified | boolean | packages/playerthree/src/arena.ts:23 |
id | string | packages/playerthree/src/arena.ts:23 |
kind | "human" | "policy" | "agent" | "bot" | packages/playerthree/src/arena.ts:23 |
label | string | packages/playerthree/src/arena.ts:23 |
model? | string | packages/playerthree/src/arena.ts:23 |
provider? | string | packages/playerthree/src/arena.ts:23 |
scaffoldVersion? | string | packages/playerthree/src/arena.ts:23 |
selfReported? | true | packages/playerthree/src/arena.ts:23 |
stateResetSource? | "runner" | "declared" | "not_applicable" | packages/playerthree/src/arena.ts:23 |
EntrantRow
Defined in: packages/playerthree/src/arena.ts:83
Properties
| Property | Type | Defined in |
|---|---|---|
aiPlayer | boolean | packages/playerthree/src/arena.ts:83 |
artifactHash | string | null | packages/playerthree/src/arena.ts:83 |
botLevel | string | null | packages/playerthree/src/arena.ts:83 |
botOptions | Record<string, number | boolean> | null | packages/playerthree/src/arena.ts:83 |
botVersion | string | null | packages/playerthree/src/arena.ts:83 |
entrantId | string | packages/playerthree/src/arena.ts:83 |
harness | string | null | packages/playerthree/src/arena.ts:83 |
harnessVerified | boolean | packages/playerthree/src/arena.ts:83 |
kind | "human" | "policy" | "agent" | "bot" | packages/playerthree/src/arena.ts:83 |
label | string | packages/playerthree/src/arena.ts:83 |
model | string | null | packages/playerthree/src/arena.ts:83 |
provider | string | null | packages/playerthree/src/arena.ts:83 |
scaffoldVersion | string | null | packages/playerthree/src/arena.ts:83 |
selfReported | boolean | packages/playerthree/src/arena.ts:83 |
stateResetSource | | NonNullable<"runner" | "declared" | "not_applicable" | undefined> | null | packages/playerthree/src/arena.ts:83 |
EventDefinition
Defined in: packages/playerthree/src/arena.ts:49
Properties
| Property | Type | Defined in |
|---|---|---|
dataSchema | ArenaJsonSchema | packages/playerthree/src/arena.ts:49 |
kind | string | packages/playerthree/src/arena.ts:49 |
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
| Parameter | Type |
|---|---|
id | string |
Returns
Promise<AsyncIterable<Uint8Array<ArrayBufferLike>, any, any>>
create()
create(spec, context): Promise<MatchExecution>;Defined in: packages/playerthree/src/arena.ts:66
Parameters
| Parameter | Type |
|---|---|
spec | MatchSpec |
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.attemptId | string |
context.bindings | readonly BoundSeat[] |
context.budgets | { maxCostUsd: string | null; maxTokens: number | null; maxTurns: number | null; } |
context.budgets.maxCostUsd | string | null |
context.budgets.maxTokens | number | null |
context.budgets.maxTurns | number | 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.concurrency | number |
context.execution.maxInfraRetries | number |
context.execution.maxTicks | number |
context.execution.maxWallMs | number |
context.execution.speed | number |
context.execution.state | "reset_each_match" | "carry_within_series" |
context.signal | AbortSignal |
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.includeCommentary | boolean |
context.telemetry.metricDefinitions? | readonly MetricDefinition[] |
context.telemetry.sampleEveryTicks | number |
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
| Parameter | Type |
|---|---|
matchId | string |
grant | ObserverGrant |
after? | number |
Returns
AsyncIterable<ObserverFrame>
resolve()
resolve(spec): Promise<MatchSpec>;Defined in: packages/playerthree/src/arena.ts:65
Parameters
| Parameter | Type |
|---|---|
spec | MatchSpec |
Returns
Promise<MatchSpec>
GameMatchResult
Defined in: packages/playerthree/src/arena.ts:54
How one match attempt ended, with its outcomes, metrics and artifacts.
Properties
| Property | Type | Defined in |
|---|---|---|
artifacts | readonly ArtifactRef[] | packages/playerthree/src/arena.ts:54 |
metrics | readonly MetricRow[] | packages/playerthree/src/arena.ts:54 |
outcomes | readonly OutcomeRow[] | packages/playerthree/src/arena.ts:54 |
rows? | Partial<ResultRows> | packages/playerthree/src/arena.ts:54 |
simulatedMs | number | packages/playerthree/src/arena.ts:54 |
terminal | "aborted" | "finished" | "forfeit" | "infra_error" | packages/playerthree/src/arena.ts:54 |
terminalReason? | string | packages/playerthree/src/arena.ts:54 |
ticks | number | packages/playerthree/src/arena.ts:54 |
wallMs | number | packages/playerthree/src/arena.ts:54 |
IntentRow
Defined in: packages/playerthree/src/arena.ts:79
Properties
| Property | Type | Defined in |
|---|---|---|
accepted | number | packages/playerthree/src/arena.ts:79 |
code | string | packages/playerthree/src/arena.ts:79 |
matchId | string | packages/playerthree/src/arena.ts:79 |
rejected | number | packages/playerthree/src/arena.ts:79 |
role | string | packages/playerthree/src/arena.ts:79 |
source | string | packages/playerthree/src/arena.ts:79 |
submitted | number | packages/playerthree/src/arena.ts:79 |
team | string | packages/playerthree/src/arena.ts:79 |
LatencySummary
Defined in: packages/playerthree/src/arena.ts:84
Properties
| Property | Type | Defined in |
|---|---|---|
entrantId | string | packages/playerthree/src/arena.ts:84 |
method | "nearest_rank/1" | packages/playerthree/src/arena.ts:84 |
p50Ms | number | null | packages/playerthree/src/arena.ts:84 |
p95Ms | number | null | packages/playerthree/src/arena.ts:84 |
samples | number | packages/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
| Property | Type | Defined in |
|---|---|---|
attempt | MatchRow | packages/playerthree/src/arena.ts:108 |
chunks? | readonly ResultChunk[] | packages/playerthree/src/arena.ts:108 |
leaseHolder | string | packages/playerthree/src/arena.ts:108 |
update | SeriesUpdate | packages/playerthree/src/arena.ts:108 |
MatchExecution
Defined in: packages/playerthree/src/arena.ts:57
One created match: started once, settled through finished, abortable and disposable.
Properties
| Property | Type | Defined in |
|---|---|---|
finished | Promise<GameMatchResult> | packages/playerthree/src/arena.ts:57 |
id | string | packages/playerthree/src/arena.ts:57 |
Methods
abort()
abort(reason): Promise<void>;Defined in: packages/playerthree/src/arena.ts:57
Parameters
| Parameter | Type |
|---|---|
reason | AbortReason |
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
| Property | Type | Defined in |
|---|---|---|
acceptedAttempt | boolean | packages/playerthree/src/arena.ts:76 |
attemptId | string | packages/playerthree/src/arena.ts:76 |
attemptNumber | number | packages/playerthree/src/arena.ts:76 |
endedAt | string | packages/playerthree/src/arena.ts:76 |
matchId | string | packages/playerthree/src/arena.ts:76 |
outcomes | readonly OutcomeRow[] | packages/playerthree/src/arena.ts:76 |
releaseAt | number | packages/playerthree/src/arena.ts:76 |
revision | number | packages/playerthree/src/arena.ts:76 |
simulatedMs | number | packages/playerthree/src/arena.ts:76 |
spec | ExportMatchSpec | packages/playerthree/src/arena.ts:76 |
startedAt | string | packages/playerthree/src/arena.ts:76 |
status | "aborted" | "finished" | "forfeit" | "infra_error" | packages/playerthree/src/arena.ts:76 |
terminalReason | string | packages/playerthree/src/arena.ts:76 |
ticks | number | packages/playerthree/src/arena.ts:76 |
trialId | string | packages/playerthree/src/arena.ts:76 |
wallMs | number | packages/playerthree/src/arena.ts:76 |
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
| Property | Type | Defined in |
|---|---|---|
interpretation | "stock" | "cumulative" | "rate" | "configuration" | packages/playerthree/src/arena.ts:48 |
metric | string | packages/playerthree/src/arena.ts:48 |
scope | "seat" | "match" | "side" | packages/playerthree/src/arena.ts:48 |
unit | string | packages/playerthree/src/arena.ts:48 |
MetricRow
Defined in: packages/playerthree/src/arena.ts:47
Properties
| Property | Type | Defined in |
|---|---|---|
matchId | string | packages/playerthree/src/arena.ts:47 |
metric | string | packages/playerthree/src/arena.ts:47 |
role | string | null | packages/playerthree/src/arena.ts:47 |
scope | "seat" | "match" | "side" | packages/playerthree/src/arena.ts:47 |
sequence | number | packages/playerthree/src/arena.ts:47 |
team | string | null | packages/playerthree/src/arena.ts:47 |
tick | number | packages/playerthree/src/arena.ts:47 |
unit | string | packages/playerthree/src/arena.ts:47 |
value | number | packages/playerthree/src/arena.ts:47 |
OutcomeRow
Defined in: packages/playerthree/src/arena.ts:52
Properties
| Property | Type | Defined in |
|---|---|---|
outcome | "win" | "loss" | "draw" | "aborted" | packages/playerthree/src/arena.ts:52 |
rank | number | null | packages/playerthree/src/arena.ts:52 |
reason | string | packages/playerthree/src/arena.ts:52 |
team | string | packages/playerthree/src/arena.ts:52 |
ResultChunk
Defined in: packages/playerthree/src/arena.ts:101
Properties
| Property | Type | Defined in |
|---|---|---|
bytes | number | packages/playerthree/src/arena.ts:101 |
checksum | string | packages/playerthree/src/arena.ts:101 |
index | number | packages/playerthree/src/arena.ts:101 |
rows | Partial<ResultRows> | packages/playerthree/src/arena.ts:101 |
ResultRows
Defined in: packages/playerthree/src/arena.ts:82
Properties
| Property | Type | Defined in |
|---|---|---|
artifacts | readonly ArtifactRef[] | packages/playerthree/src/arena.ts:82 |
causes | readonly CauseRow[] | packages/playerthree/src/arena.ts:82 |
decisions | readonly DecisionRow[] | packages/playerthree/src/arena.ts:82 |
events | readonly TimelineEvent[] | packages/playerthree/src/arena.ts:82 |
intents | readonly IntentRow[] | packages/playerthree/src/arena.ts:82 |
metrics | readonly MetricRow[] | packages/playerthree/src/arena.ts:82 |
seats | readonly SeatRow[] | packages/playerthree/src/arena.ts:82 |
usage | readonly UsageRow[] | packages/playerthree/src/arena.ts:82 |
ResultsEnvelope
Defined in: packages/playerthree/src/arena.ts:91
The canonical playerthree.results document of one series revision (the full download).
Properties
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
Omit<ResultsEnvelope,"format">
Properties
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
| Parameter | Type |
|---|---|
owner | string |
spec | MatchSpec |
context | BindingContext |
Returns
Promise<{
seats: readonly BoundSeat[];
release(): Promise<void>;
}>
validate()?
validate?(owner, spec): Promise<void>;Defined in: packages/playerthree/src/arena.ts:61
Parameters
| Parameter | Type |
|---|---|
owner | string |
spec | SeriesSpec |
Returns
Promise<void>
SeatRow
Defined in: packages/playerthree/src/arena.ts:77
Properties
| Property | Type | Defined in |
|---|---|---|
acceptedIntents | number | null | packages/playerthree/src/arena.ts:77 |
activeTicks | number | null | packages/playerthree/src/arena.ts:77 |
artifactHash | string | null | packages/playerthree/src/arena.ts:77 |
artifactVersion | number | null | packages/playerthree/src/arena.ts:77 |
commandApm | number | null | packages/playerthree/src/arena.ts:77 |
entrantId | string | null | packages/playerthree/src/arena.ts:77 |
executionKind | "human" | "policy" | "agent" | "bot" | "none" | packages/playerthree/src/arena.ts:77 |
fallbackKind | "human" | "policy" | "agent" | "bot" | "none" | null | packages/playerthree/src/arena.ts:77 |
matchId | string | packages/playerthree/src/arena.ts:77 |
policyErrors | number | null | packages/playerthree/src/arena.ts:77 |
readyState | string | packages/playerthree/src/arena.ts:77 |
rejectedIntents | number | null | packages/playerthree/src/arena.ts:77 |
role | string | packages/playerthree/src/arena.ts:77 |
submittedIntents | number | null | packages/playerthree/src/arena.ts:77 |
team | string | packages/playerthree/src/arena.ts:77 |
SeriesLimits
Defined in: packages/playerthree/src/arena.ts:100
Properties
| Property | Type | Defined in |
|---|---|---|
maxActiveSeries? | number | packages/playerthree/src/arena.ts:100 |
maxAttemptBytes? | number | packages/playerthree/src/arena.ts:100 |
maxBytes | number | packages/playerthree/src/arena.ts:100 |
maxChunkBytes | number | packages/playerthree/src/arena.ts:100 |
maxConcurrency | number | packages/playerthree/src/arena.ts:100 |
maxGames | number | packages/playerthree/src/arena.ts:100 |
maxOwnerBytes? | number | packages/playerthree/src/arena.ts:100 |
maxWallMs | number | packages/playerthree/src/arena.ts:100 |
retentionMs | number | packages/playerthree/src/arena.ts:100 |
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
| Parameter | Type |
|---|---|
owner | string |
id | string |
Returns
Promise<void>
create()
create(owner, spec): Promise<{
id: string;
revision: number;
}>;Defined in: packages/playerthree/src/arena.ts:142
Parameters
| Parameter | Type |
|---|---|
owner | string |
spec | SeriesSpec |
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
| Parameter | Type |
|---|---|
owner | string |
id | string |
policy | SharePolicy |
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
| Parameter | Type |
|---|---|
access | SeriesAccess |
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
| Parameter | Type |
|---|---|
owner | string |
id | string |
policy | SharePolicy |
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
| Parameter | Type |
|---|---|
access | SeriesAccess |
revision? | number |
Returns
Promise<ResultsSummary>
revokeShare()
revokeShare(owner, id): Promise<void>;Defined in: packages/playerthree/src/arena.ts:153
Parameters
| Parameter | Type |
|---|---|
owner | string |
id | string |
Returns
Promise<void>
setCommentaryConsent()
setCommentaryConsent(
owner,
id,
entrantId,
consent
): Promise<void>;Defined in: packages/playerthree/src/arena.ts:154
Parameters
| Parameter | Type |
|---|---|
owner | string |
id | string |
entrantId | string |
consent | { chat: boolean; summaries: boolean; } |
consent.chat | boolean |
consent.summaries | boolean |
Returns
Promise<void>
start()
start(owner, id): Promise<void>;Defined in: packages/playerthree/src/arena.ts:143
Parameters
| Parameter | Type |
|---|---|
owner | string |
id | string |
Returns
Promise<void>
updates()
updates(access, afterRevision?): AsyncIterable<SeriesUpdate>;Defined in: packages/playerthree/src/arena.ts:145
Parameters
| Parameter | Type |
|---|---|
access | SeriesAccess |
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
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
| Parameter | Type |
|---|---|
id | string |
attemptId | string |
chunk | ResultChunk |
holder | string |
Returns
Promise<void>
attachMatch()
attachMatch(
id,
expectedRevision,
attemptId,
matchId,
releaseAt,
holder
): Promise<number>;Defined in: packages/playerthree/src/arena.ts:122
Parameters
| Parameter | Type |
|---|---|
id | string |
expectedRevision | number |
attemptId | string |
matchId | string |
releaseAt | number |
holder | string |
Returns
Promise<number>
beginAttempt()
beginAttempt(
id,
expectedRevision,
attempt,
holder
): Promise<void>;Defined in: packages/playerthree/src/arena.ts:124
Parameters
| Parameter | Type |
|---|---|
id | string |
expectedRevision | number |
attempt | ActiveAttempt |
holder | string |
Returns
Promise<void>
claim()
claim(
id,
holder,
expiresAt
): Promise<boolean>;Defined in: packages/playerthree/src/arena.ts:130
Parameters
| Parameter | Type |
|---|---|
id | string |
holder | string |
expiresAt | number |
Returns
Promise<boolean>
commitMatch()
commitMatch(
id,
expectedRevision,
commit
): Promise<number>;Defined in: packages/playerthree/src/arena.ts:125
Parameters
| Parameter | Type |
|---|---|
id | string |
expectedRevision | number |
commit | MatchCommit |
Returns
Promise<number>
create()
create(record): Promise<void>;Defined in: packages/playerthree/src/arena.ts:113
Parameters
| Parameter | Type |
|---|---|
record | StoredSeries |
Returns
Promise<void>
delete()
delete(id, owner): Promise<void>;Defined in: packages/playerthree/src/arena.ts:133
Parameters
| Parameter | Type |
|---|---|
id | string |
owner | string |
Returns
Promise<void>
get()
get(id): Promise<StoredSeries | undefined>;Defined in: packages/playerthree/src/arena.ts:115
Metadata only; never raw rows.
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
Promise<StoredSeries | undefined>
getArtifact()
getArtifact(id, artifactId): Promise<Uint8Array<ArrayBufferLike> | undefined>;Defined in: packages/playerthree/src/arena.ts:135
Parameters
| Parameter | Type |
|---|---|
id | string |
artifactId | string |
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
| Parameter | Type |
|---|---|
id | string |
revision? | number |
Returns
AsyncIterable<StoredResultChunk>
list()
list(owner, cursor?): Promise<readonly StoredSeries[]>;Defined in: packages/playerthree/src/arena.ts:116
Parameters
| Parameter | Type |
|---|---|
owner | string |
cursor? | string |
Returns
Promise<readonly StoredSeries[]>
prune()
prune(now): Promise<void>;Defined in: packages/playerthree/src/arena.ts:129
Parameters
| Parameter | Type |
|---|---|
now | number |
Returns
Promise<void>
putArtifact()
putArtifact(
id,
artifact,
data,
holder
): Promise<void>;Defined in: packages/playerthree/src/arena.ts:134
Parameters
| Parameter | Type |
|---|---|
id | string |
artifact | ArtifactRef |
data | Uint8Array |
holder | string |
Returns
Promise<void>
recoverable()
recoverable(now): Promise<readonly StoredSeries[]>;Defined in: packages/playerthree/src/arena.ts:132
Parameters
| Parameter | Type |
|---|---|
now | number |
Returns
Promise<readonly StoredSeries[]>
release()
release(id, holder): Promise<void>;Defined in: packages/playerthree/src/arena.ts:131
Parameters
| Parameter | Type |
|---|---|
id | string |
holder | string |
Returns
Promise<void>
resolveShare()
resolveShare(tokenDigest): Promise<ShareRecord | undefined>;Defined in: packages/playerthree/src/arena.ts:128
Parameters
| Parameter | Type |
|---|---|
tokenDigest | string |
Returns
Promise<ShareRecord | undefined>
setCommentaryConsent()
setCommentaryConsent(
id,
owner,
entrantId,
consent
): Promise<void>;Defined in: packages/playerthree/src/arena.ts:136
Parameters
| Parameter | Type |
|---|---|
id | string |
owner | string |
entrantId | string |
consent | { chat: boolean; summaries: boolean; } |
consent.chat | boolean |
consent.summaries | boolean |
Returns
Promise<void>
share()
share(
id,
owner,
record
): Promise<ShareRecord | null>;Defined in: packages/playerthree/src/arena.ts:127
Parameters
| Parameter | Type |
|---|---|
id | string |
owner | string |
record | ShareRecord | null |
Returns
Promise<ShareRecord | null>
transition()
transition(
id,
expectedRevision,
state,
recording?,
leaseHolder?
): Promise<number>;Defined in: packages/playerthree/src/arena.ts:126
Parameters
| Parameter | Type |
|---|---|
id | string |
expectedRevision | number |
state | SeriesState |
recording? | { missing: readonly string[]; rawComplete: false; } |
recording.missing | readonly string[] |
recording.rawComplete | false |
leaseHolder? | string |
Returns
Promise<number>
SeriesUpdate
Defined in: packages/playerthree/src/arena.ts:72
Properties
| Property | Type | Defined in |
|---|---|---|
activeMatches | readonly ActiveMatchRow[] | packages/playerthree/src/arena.ts:72 |
at | string | packages/playerthree/src/arena.ts:72 |
completed | number | packages/playerthree/src/arena.ts:72 |
recording? | object | packages/playerthree/src/arena.ts:72 |
recording.missing | readonly string[] | packages/playerthree/src/arena.ts:72 |
recording.rawComplete | false | packages/playerthree/src/arena.ts:72 |
releaseAt | number | packages/playerthree/src/arena.ts:72 |
revision | number | packages/playerthree/src/arena.ts:72 |
seriesId | string | packages/playerthree/src/arena.ts:72 |
standings | readonly StandingRow[] | packages/playerthree/src/arena.ts:72 |
state | SeriesState | packages/playerthree/src/arena.ts:72 |
total | number | packages/playerthree/src/arena.ts:72 |
SharePolicy
Defined in: packages/playerthree/src/arena.ts:109
Properties
| Property | Type | Defined in |
|---|---|---|
commentary | boolean | packages/playerthree/src/arena.ts:109 |
consentedEntrants | readonly string[] | packages/playerthree/src/arena.ts:109 |
expiresAt | string | packages/playerthree/src/arena.ts:109 |
notBefore | number | packages/playerthree/src/arena.ts:109 |
ShareRecord
Defined in: packages/playerthree/src/arena.ts:110
Properties
| Property | Type | Defined in |
|---|---|---|
digest | string | packages/playerthree/src/arena.ts:110 |
generation | number | packages/playerthree/src/arena.ts:110 |
owner | string | packages/playerthree/src/arena.ts:110 |
policy | SharePolicy | packages/playerthree/src/arena.ts:110 |
revokedAt | string | null | packages/playerthree/src/arena.ts:110 |
seriesId | string | packages/playerthree/src/arena.ts:110 |
SideSpec
Defined in: packages/playerthree/src/arena.ts:22
Properties
| Property | Type | Defined in |
|---|---|---|
alliance | string | packages/playerthree/src/arena.ts:22 |
id | string | packages/playerthree/src/arena.ts:22 |
seats | readonly object[] | packages/playerthree/src/arena.ts:22 |
spawnSlot | string | packages/playerthree/src/arena.ts:22 |
StandingRow
Defined in: packages/playerthree/src/arena.ts:71
Properties
StoredResultChunk
Defined in: packages/playerthree/src/arena.ts:107
A checksum-verified raw chunk of an attempt committed at committedRevision.
Properties
| Property | Type | Defined in |
|---|---|---|
attemptId | string | packages/playerthree/src/arena.ts:107 |
chunk | ResultChunk | packages/playerthree/src/arena.ts:107 |
committedRevision | number | packages/playerthree/src/arena.ts:107 |
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
| Property | Type | Defined in |
|---|---|---|
atMs | number | packages/playerthree/src/arena.ts:50 |
data | Record<string, unknown> | packages/playerthree/src/arena.ts:50 |
kind | string | packages/playerthree/src/arena.ts:50 |
matchId | string | packages/playerthree/src/arena.ts:50 |
role | string | null | packages/playerthree/src/arena.ts:50 |
sequence | number | packages/playerthree/src/arena.ts:50 |
team | string | null | packages/playerthree/src/arena.ts:50 |
tick | number | packages/playerthree/src/arena.ts:50 |
TrialRow
Defined in: packages/playerthree/src/arena.ts:75
Properties
| Property | Type | Defined in |
|---|---|---|
layoutId | string | packages/playerthree/src/arena.ts:75 |
mapId | string | packages/playerthree/src/arena.ts:75 |
mapIdentity | string | packages/playerthree/src/arena.ts:75 |
mapSeed | number | packages/playerthree/src/arena.ts:75 |
permutationId | string | packages/playerthree/src/arena.ts:75 |
repetition | number | packages/playerthree/src/arena.ts:75 |
resolvedOptions | Record<string, unknown> | packages/playerthree/src/arena.ts:75 |
rulesHash | string | packages/playerthree/src/arena.ts:75 |
scenarioId | string | packages/playerthree/src/arena.ts:75 |
scheduleIndex | number | packages/playerthree/src/arena.ts:75 |
seed | number | packages/playerthree/src/arena.ts:75 |
sideBindings | readonly object[] | packages/playerthree/src/arena.ts:75 |
spec | MatchSpec | packages/playerthree/src/arena.ts:75 |
surfaceHash | string | packages/playerthree/src/arena.ts:75 |
trialId | string | packages/playerthree/src/arena.ts:75 |
UsageRow
Defined in: packages/playerthree/src/arena.ts:81
Properties
UsageSummary
Defined in: packages/playerthree/src/arena.ts:85
Properties
| Property | Type | Defined in |
|---|---|---|
cacheReadTokens | number | null | packages/playerthree/src/arena.ts:85 |
cacheWriteTokens | number | null | packages/playerthree/src/arena.ts:85 |
costAmount | string | null | packages/playerthree/src/arena.ts:85 |
coverage | "complete" | "partial" | "unknown" | packages/playerthree/src/arena.ts:85 |
currency | string | null | packages/playerthree/src/arena.ts:85 |
entrantId | string | packages/playerthree/src/arena.ts:85 |
inputTokens | number | null | packages/playerthree/src/arena.ts:85 |
outputTokens | number | null | packages/playerthree/src/arena.ts:85 |
phase | "authoring" | "inference" | packages/playerthree/src/arena.ts:85 |
reporter | "runner" | "reported" | "estimated" | "unpriced" | null | packages/playerthree/src/arena.ts:85 |
samples | number | packages/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
| Name | Type | Defined in |
|---|---|---|
sides | readonly 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
| Name | Type | Defined in |
|---|---|---|
entrantSeats? | readonly object[] | packages/playerthree/src/arena.ts:74 |
template | ExportMatchSpec | packages/playerthree/src/arena.ts:74 |
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
