Generated reference
Every operation, and the surface it answers on.
This page is written by docs-tools/gen_reference.py out of the frozen registry, the schemas, the descriptors and the daemon's own op list. Nothing on it is typed by hand, and ./run-checks.sh fails if it drifts from those sources.
The registry
The registry keys one row per (operation, surface) pair. It is the freeze source for a bundle and the dispatch truth for the daemon: a call whose (operation, surface) pair has no row is refused, not interpreted. Four operations carry two rows because they exist on both the participant and the governance surface.
| Surface | Rows | What it is |
|---|---|---|
governance | 24 | Decisions made about a Society: bootstrap, charter, membership offers, admission, mandates, and the two reconciliation seats. The seat where authority is granted. |
candidate | 3 | The only surface an unadmitted candidate can reach — offer-scoped, minted with one MembershipOffer and fenced the moment that offer terminates. It can accept, refuse, or propose its own self-policy, and nothing else. |
participant | 42 | What an admitted participant does on its own behalf: propose endeavors, fill seats, pledge, derive mandates, open activities, submit deliveries, record reviews. |
runtime | 14 | The execution seam. Episode claim/start/complete, checkpoints, permit consumption, usage reports, placement admission — reached with a byomd-minted workload token bound to one (episode, generation). |
projection | 11 | Reads only. Society and participant projections, the charter history, the event ledger and its payloads, snapshots, and the recovery checkpoint. No operation on this surface mutates anything. |
pre_auth | 3 | Version and capability negotiation, answerable before any authority is established. Not a socket of its own: these operations answer on every socket. |
originating | 2 | The two recovery reads a caller aims at its own prior request — idempotency_result and cursor_recover. Not a socket of its own: they answer on the mutation-capable socket the original request used. |
admin | 0 | Named in the closed surface enum and bound to no operation at all. There is no admin.sock, and deny-by-absence means an admin call is not unauthorized — it is unaddressable. |
| Class | Rows | What the meta looks like |
|---|---|---|
read | 16 | Never mutates; carries no MutationMeta. |
create | 40 | A mutation whose closed meta has no expected_revision member at all, so supplying one fails the schema. |
update | 43 | A current-head CAS whose closed meta requires meta.expected_revision (RT-01). |
| Bundle | Rows | Families |
|---|---|---|
B0.1 | 80 | activities, acts, calls_and_pledges, candidates, charter, endeavors, events_and_recovery_core, mandates, negotiation, participants, society |
B0.3 | 3 | host_integration, recovery |
B0.4 | 11 | budgets, recovery, runtime |
B0.5 | 5 | knowledge, runtime |
Across 16 families. The served column below is read out of the daemon's own implemented() predicate: 85 of 95 operations are implemented, and the rest answer a typed feature_unavailable rather than being silently absent.
Operations by surface
Request and result schema names are the frozen files under spec/schemas/ops/; a -v2 name is an immutable successor publication, never an edit of the original.
governance — 24 rows
Decisions made about a Society: bootstrap, charter, membership offers, admission, mandates, and the two reconciliation seats. The seat where authority is granted.
| Operation | Binding | Family | Class | Bundle | Request / result schema | Served |
|---|---|---|---|---|---|---|
act_intent_cancel | R25 | acts | update | B0.1 | act-intent-cancel-requestact-intent-cancel-result | no |
act_intent_finalize | R23 | acts | update | B0.1 | act-intent-finalize-requestact-intent-finalize-result | yes |
act_intent_position | R21 | acts | create | B0.1 | act-intent-position-requestact-intent-position-result | yes |
budget_reconcile | R38 | budgets | create | B0.4 | budget-reconcile-requestbudget-reconcile-result | yes |
charter_finalize | R8 | charter | update | B0.1 | charter-finalize-requestcharter-finalize-result | yes |
charter_position | R6 | charter | create | B0.1 | charter-position-requestcharter-position-result | yes |
effect_reconcile | R38 | recovery | create | B0.4 | effect-reconcile-requesteffect-reconcile-result | yes |
external_command_terminalize | R40 | recovery | create | B0.3 | external-command-terminalize-requestexternal-command-terminalize-result | yes |
kovee_endeavor_form | R39 | host_integration | create | B0.3 | kovee-endeavor-form-requestkovee-endeavor-form-result | yes |
mandate_hold | R18 | mandates | update | B0.1 | mandate-hold-requestmandate-hold-result | yes |
mandate_issue | R18 | mandates | update | B0.1 | mandate-issue-requestmandate-issue-result-v2 | yes |
mandate_position | R17 | mandates | create | B0.1 | mandate-position-requestmandate-position-result | yes |
mandate_revoke | R18 | mandates | update | B0.1 | mandate-revoke-requestmandate-revoke-result | yes |
manifestation_admit | R8 | participants | update | B0.1 | manifestation-admit-requestmanifestation-admit-result | yes |
membership_offer | R10 | participants | create | B0.1 | membership-offer-requestmembership-offer-result | yes |
membership_offer_revoke | R10 | participants | update | B0.1 | membership-offer-revoke-requestmembership-offer-revoke-result | yes |
onboarding_offer | R10 | participants | create | B0.1 | onboarding-offer-requestonboarding-offer-result | yes |
participant_admit | R8 | participants | update | B0.1 | participant-admit-requestparticipant-admit-result | yes |
participant_suspend | R10 | participants | update | B0.1 | participant-suspend-requestparticipant-suspend-result | no |
society_bootstrap | R2 | society | update | B0.1 | society-bootstrap-requestsociety-bootstrap-result | yes |
society_dissolve | R3 | society | update | B0.1 | society-dissolve-requestsociety-dissolve-result | no |
society_hold | R3 | society | update | B0.1 | society-hold-requestsociety-hold-result | no |
society_prepare | R2 | society | create | B0.1 | society-prepare-requestsociety-prepare-result | yes |
society_release | R3 | society | update | B0.1 | society-release-requestsociety-release-result | no |
candidate — 3 rows
The only surface an unadmitted candidate can reach — offer-scoped, minted with one MembershipOffer and fenced the moment that offer terminates. It can accept, refuse, or propose its own self-policy, and nothing else.
| Operation | Binding | Family | Class | Bundle | Request / result schema | Served |
|---|---|---|---|---|---|---|
candidate_self_policy_propose | R11 | candidates | create | B0.1 | candidate-self-policy-propose-request-v2candidate-self-policy-propose-result | yes |
membership_accept | R11 | candidates | update | B0.1 | membership-accept-requestmembership-accept-result | yes |
membership_refuse | R11 | candidates | update | B0.1 | membership-refuse-requestmembership-refuse-result | yes |
participant — 42 rows
What an admitted participant does on its own behalf: propose endeavors, fill seats, pledge, derive mandates, open activities, submit deliveries, record reviews.
| Operation | Binding | Family | Class | Bundle | Request / result schema | Served |
|---|---|---|---|---|---|---|
act_intent_cancel | R24 | acts | update | B0.1 | act-intent-cancel-requestact-intent-cancel-result | no |
act_intent_finalize | R22 | acts | update | B0.1 | act-intent-finalize-requestact-intent-finalize-result | yes |
act_intent_position | R20 | acts | create | B0.1 | act-intent-position-requestact-intent-position-result | yes |
act_intent_prepare | R19 | acts | create | B0.1 | act-intent-prepare-requestact-intent-prepare-result | yes |
activation_policy_adopt | R13 | participants | create | B0.1 | activation-policy-adopt-request-v2activation-policy-adopt-result | yes |
activation_policy_revoke | R13 | participants | update | B0.1 | activation-policy-revoke-requestactivation-policy-revoke-result | yes |
activity_close | R29 | activities | update | B0.1 | activity-close-requestactivity-close-result | yes |
activity_hold | R29 | activities | update | B0.1 | activity-hold-requestactivity-hold-result | yes |
activity_open | R29 | activities | create | B0.1 | activity-open-requestactivity-open-result | yes |
assent_policy_adopt | R13 | participants | create | B0.1 | assent-policy-adopt-request-v2assent-policy-adopt-result | yes |
assent_policy_revoke | R13 | participants | update | B0.1 | assent-policy-revoke-requestassent-policy-revoke-result | yes |
call_open | R5 | calls_and_pledges | create | B0.1 | call-open-request-v2call-open-result | yes |
call_withdraw | R14 | calls_and_pledges | update | B0.1 | call-withdraw-requestcall-withdraw-result | yes |
charter_propose | R5 | charter | create | B0.1 | charter-propose-request-v2charter-propose-result | yes |
continuation_write | R29 | activities | create | B0.1 | continuation-write-requestcontinuation-write-result | yes |
continuity_root_update | R13 | participants | update | B0.1 | continuity-root-update-request-v2continuity-root-update-result | yes |
delivery_submit | R29 | calls_and_pledges | create | B0.1 | delivery-submit-requestdelivery-submit-result | yes |
delivery_withdraw | R14 | calls_and_pledges | update | B0.1 | delivery-withdraw-requestdelivery-withdraw-result | no |
endeavor_close | R14 | endeavors | update | B0.1 | endeavor-close-requestendeavor-close-result | yes |
endeavor_finalize | R9 | endeavors | update | B0.1 | endeavor-finalize-requestendeavor-finalize-result | yes |
endeavor_hold | R14 | endeavors | update | B0.1 | endeavor-hold-requestendeavor-hold-result | yes |
endeavor_position | R7 | endeavors | create | B0.1 | endeavor-position-requestendeavor-position-result | yes |
endeavor_propose | R5 | endeavors | create | B0.1 | endeavor-propose-requestendeavor-propose-result | yes |
endeavor_release | R14 | endeavors | update | B0.1 | endeavor-release-requestendeavor-release-result | yes |
episode_request | R29 | activities | create | B0.1 | episode-request-requestepisode-request-result | yes |
mandate_derive | R15 | mandates | create | B0.1 | mandate-derive-request-v2mandate-derive-result | yes |
mandate_position | R16 | mandates | create | B0.1 | mandate-position-requestmandate-position-result | yes |
mandate_prepare | R15 | mandates | create | B0.1 | mandate-prepare-request-v2mandate-prepare-result | yes |
manifestation_disable | R13 | participants | update | B0.1 | manifestation-disable-requestmanifestation-disable-result | no |
manifestation_propose | R13 | participants | create | B0.1 | manifestation-propose-requestmanifestation-propose-result | no |
participant_propose | R5 | participants | create | B0.1 | participant-propose-requestparticipant-propose-result | no |
participant_retire | R12 | participants | update | B0.1 | participant-retire-requestparticipant-retire-result | no |
participation_cease | R12 | participants | update | B0.1 | participation-cease-requestparticipation-cease-result | yes |
pledge_amend | R5 | calls_and_pledges | create | B0.1 | pledge-amend-request-v2pledge-amend-result | yes |
pledge_finalize | R9 | calls_and_pledges | update | B0.1 | pledge-finalize-requestpledge-finalize-result | yes |
pledge_position | R7 | calls_and_pledges | create | B0.1 | pledge-position-requestpledge-position-result | yes |
pledge_propose | R5 | calls_and_pledges | create | B0.1 | pledge-propose-request-v2pledge-propose-result | yes |
pledge_relinquish | R14 | calls_and_pledges | update | B0.1 | pledge-relinquish-requestpledge-relinquish-result | yes |
pledge_resume | R14 | calls_and_pledges | update | B0.1 | pledge-resume-requestpledge-resume-result | yes |
review_record | R14 | calls_and_pledges | create | B0.1 | review-record-requestreview-record-result | yes |
wake_intent_submit | R29 | activities | create | B0.1 | wake-intent-submit-requestwake-intent-submit-result | yes |
wake_intent_withdraw | R29 | activities | update | B0.1 | wake-intent-withdraw-requestwake-intent-withdraw-result | yes |
runtime — 14 rows
The execution seam. Episode claim/start/complete, checkpoints, permit consumption, usage reports, placement admission — reached with a byomd-minted workload token bound to one (episode, generation).
| Operation | Binding | Family | Class | Bundle | Request / result schema | Served |
|---|---|---|---|---|---|---|
attention_notice_record | R30-derived | runtime | create | B0.5 | attention-notice-record-requestattention-notice-record-result | yes |
checkpoint_commit | R30 | runtime | create | B0.4 | checkpoint-commit-requestcheckpoint-commit-result | yes |
effect_outcome_admit | R35 | runtime | create | B0.4 | effect-outcome-admit-requesteffect-outcome-admit-result | yes |
episode_claim | R30 | runtime | create | B0.4 | episode-claim-requestepisode-claim-result | yes |
episode_complete | R30 | runtime | update | B0.4 | episode-complete-requestepisode-complete-result | yes |
episode_fail | R30 | runtime | update | B0.4 | episode-fail-requestepisode-fail-result | yes |
episode_start | R30 | runtime | update | B0.4 | episode-start-requestepisode-start-result | yes |
episode_yield | R30 | runtime | update | B0.4 | episode-yield-requestepisode-yield-result | yes |
execution_permit_consume | R34 | acts | update | B0.1 | execution-permit-consume-requestexecution-permit-consume-result | yes |
onboarding_compute_permit_consume | R32 | runtime | update | B0.5 | onboarding-compute-permit-consume-requestonboarding-compute-permit-consume-result | yes |
onboarding_episode_claim | R31 | runtime | create | B0.5 | onboarding-episode-claim-requestonboarding-episode-claim-result | yes |
onboarding_episode_complete | R31 | runtime | update | B0.5 | onboarding-episode-complete-requestonboarding-episode-complete-result | yes |
placement_admit | R33 | runtime | create | B0.4 | placement-admit-requestplacement-admit-result | yes |
usage_report | R30 | runtime | create | B0.4 | usage-report-requestusage-report-result | yes |
projection — 11 rows
Reads only. Society and participant projections, the charter history, the event ledger and its payloads, snapshots, and the recovery checkpoint. No operation on this surface mutates anything.
| Operation | Binding | Family | Class | Bundle | Request / result schema | Served |
|---|---|---|---|---|---|---|
activity_show | R4 | activities | read | B0.1 | activity-show-requestactivity-show-result | yes |
charter_history | R4 | charter | read | B0.1 | charter-history-requestcharter-history-result | yes |
context_manifest_show | R4 | knowledge | read | B0.5 | context-manifest-show-requestcontext-manifest-show-result | yes |
event_payload | R4 | events_and_recovery_core | read | B0.1 | event-payload-requestevent-payload-result | yes |
events_read | R4 | events_and_recovery_core | read | B0.1 | events-read-requestevents-read-result | yes |
events_wait | R4 | events_and_recovery_core | read | B0.1 | events-wait-requestevents-wait-result | yes |
external_command_result_query | R42 | recovery | read | B0.3 | external-command-result-query-requestexternal-command-result-query-result | yes |
participant_show | R4 | participants | read | B0.1 | participant-show-requestparticipant-show-result | yes |
recovery_checkpoint_show | R4 | events_and_recovery_core | read | B0.1 | recovery-checkpoint-show-requestrecovery-checkpoint-show-result | yes |
snapshot_get | R4 | events_and_recovery_core | read | B0.1 | snapshot-get-requestsnapshot-get-result | yes |
society_show | R4 | society | read | B0.1 | society-show-requestsociety-show-result | yes |
pre_auth — 3 rows
Version and capability negotiation, answerable before any authority is established. Not a socket of its own: these operations answer on every socket.
| Operation | Binding | Family | Class | Bundle | Request / result schema | Served |
|---|---|---|---|---|---|---|
feature_info | R1 | negotiation | read | B0.1 | feature-info-requestfeature-info-result | yes |
hello | R1 | negotiation | read | B0.1 | hello-requesthello-result | yes |
protocol_info | R1 | negotiation | read | B0.1 | protocol-info-requestprotocol-info-result | yes |
originating — 2 rows
The two recovery reads a caller aims at its own prior request — idempotency_result and cursor_recover. Not a socket of its own: they answer on the mutation-capable socket the original request used.
| Operation | Binding | Family | Class | Bundle | Request / result schema | Served |
|---|---|---|---|---|---|---|
cursor_recover | R41 | events_and_recovery_core | read | B0.1 | cursor-recover-requestcursor-recover-result | yes |
idempotency_result | R41 | events_and_recovery_core | read | B0.1 | idempotency-result-requestidempotency-result-result | yes |
admin — 0 rows
Named in the closed surface enum and bound to no operation at all. There is no admin.sock, and deny-by-absence means an admin call is not unauthorized — it is unaddressable.
No operation is bound to admin. It is a value in the closed surface enum with no registry row and no socket, so there is nothing to call and nothing to authorize.
10 of the 95 registered operations are not implemented by this daemon: act_intent_cancel, delivery_withdraw, manifestation_disable, manifestation_propose, participant_propose, participant_retire, participant_suspend, society_dissolve, society_hold, society_release. Each is bound in the registry and answers feature_unavailable; feature_info advertises exactly the implemented set, because a feature is advertised only when it is complete.
Transition machines
26 committed transition descriptors, 167 states and 312 transitions in total. A descriptor is the closed state machine for one record kind: a transition that is not listed is not merely disallowed, it is invalid. 5 of them are Kovee-owned executors, outside byom's one-descriptor-per-mutating-operation rule.
The model column names the TLA+ module that declares parity with the descriptor. 9 modules exist; a descriptor with no model is covered by the executable state walks and by the schema and registry gates, but not by TLC.
| Machine | States | Transitions | Owner | Model |
|---|---|---|---|---|
ActIntent | 11 | 20 | byom | ActIntentPermit.tla |
ActivityStream | 8 | 26 | byom | EpisodeLease.tla |
AuthorityMutationJournal | 5 | 9 | byom | AuthorityJournal.tla |
ByomAksonDispatchOutcomeReceiptHead | 2 | 3 | kovee (C2) | — none |
ByomEpisodeBinding | 3 | 4 | kovee (C2) | — none |
Call | 5 | 9 | byom | — none |
Candidate self-policy | 4 | 5 | byom | — none |
CharterRevision | 3 | 5 | byom | — none |
ContinuationHead | 1 | 2 | byom | — none |
ContinuityRoot | 3 | 5 | byom | — none |
Delivery/Review | 4 | 4 | byom | — none |
EndeavorFormationIntent/Slot | 9 | 37 | kovee (C2) | — none |
Endeavor | 8 | 14 | byom | — none |
Episode/EpisodeLease | 17 | 20 | byom | EpisodeLease.tla |
GreenfieldEnablement | 4 | 7 | kovee (C2) | GreenfieldEnablement.tla |
Mandate | 7 | 9 | byom | MandateChain.tla |
Manifestation | 4 | 4 | byom | — none |
MembershipOffer/Standing | 12 | 19 | byom | MembershipOfferStanding.tla |
OnboardingActivationOffer | 6 | 14 | byom | MembershipOfferStanding.tla |
Participant activation policy | 4 | 4 | byom | — none |
Participant assent policy | 4 | 4 | byom | — none |
Participant | 5 | 6 | byom | — none |
Pledge | 14 | 43 | byom | Pledge.tla |
Society | 5 | 7 | byom | — none |
ByomSubordinateReservation | 6 | 13 | kovee (C2) | SubordinateReservation.tla |
WakeIntent/ActivationAdmission/ResourceAllocation | 13 | 19 | byom | EpisodeLease.tla |
Digest classes
Every digest field on the wire is a typed DigestRef — {class, algorithm, key_ref?, value_hex}, a closed member set — never an unlabelled hash. A well-constructed digest of the wrong class is digest_class_mismatch even when the 32-byte value spaces coincide.
| Class | Algorithm | key_ref | What it is for |
|---|---|---|---|
structural_public | sha-256 | forbidden | Knowingly non-sensitive, non-erasable protocol or schema bytes only. SHA-256 over type-tagged canonical bytes. |
portable_public | sha-256 | forbidden | Content whose owner explicitly accepted a durable, publicly dictionary-testable identifier. SHA-256 over exact bytes. This is the class the A8 cross-boundary rule demands of any digest one protocol asks the other for. |
disclosed_party | sha-256 | forbidden | SHA-256 over bytes already disclosed to named recipients, always carrying the external-copy obligation. |
ciphertext_public | sha-256 | forbidden | SHA-256 over encrypted blob bytes. Sealed blobs only — never a commitment to low-entropy plaintext. |
local_erasure_safe | hmac-sha-256 | required | Ordinary erasable local content and every authority subject. HMAC under a random per-object secret: destroying that secret destroys exactly that object's offline verification. |
scope_erasure_safe | hmac-sha-256 | required | Shared-key index and chain constructions — the idempotency index, the privacy-access chain. HMAC under a per-scope key: destroying it erases verifiability for the whole scope, never one object. |
Problem kinds
The failure envelope wraps an RFC 9457 problem object whose kind is this closed 29-value enum. type is exactly https://byom.dev/problems/ + kind; an unknown kind fails closed. title is free prose and carries no authority.
invalid, unsupported_version, feature_unavailable, forbidden_surface, forbidden, not_found, stale_revision, stale_binding, stale_assembly_epoch, stale_lease, idempotency_mismatch, position_ineligible, decision_incomplete, independence_conflict, authority_widening, mandate_held, admission_required, classification_unmapped, policy_conflict, policy_overflow, budget_exceeded, effect_ambiguous, authority_witness_unknown, endpoint_sealed, cursor_expired, unavailable, formation_requires_participation, external_command_not_terminalizable, internal.
Wire limits
The conformance-tested initial limits, advertised by protocol_info and enforced before schema validation.
| Limit | Value | Unit |
|---|---|---|
| Request body | 262,144 | bytes, inclusive — 256 KiB |
| Response body | 1,048,576 | bytes, inclusive — 1 MiB |
| Container nesting depth | 64 | levels, inclusive |
| JSON values per document | 65,536 | nodes, inclusive |
| Identifier | 128 | bytes of visible ASCII |
| List items per mutation | 256 | items |
| Events per page | 512 | events |