Skip to content

Generated wire contract reference

This reference is projected from contract/asyncapi.yaml. The contract file remains normative. NOW's eight-byte binary frame is normative prose in that file because AsyncAPI describes messages, not this custom framing layer.

  • AsyncAPI version: 3.0.0
  • Product contract version: 0.2.0
  • Contract revision: 2
  • Default content type: application/json

Channels

ID Address Purpose
control 0 JSON control messages, framed on channel 0.
bulk 1 Raw payload bytes on channel 1, correlated by the frame header's transfer id. Four payload kinds ride it: capture pixel data (rows top-to-bottom, rowBytes apart; depth 8 uses the guest's palette; 16 is RGB555 big-endian; 32 is xRGB8888 big-endian), file content (file.begin describes the container), a scene document (scene.begin: UTF-8 JSON, the Mirror IR whose major is irVersion — or, when scene.begin says delta:true, a delta against the baseline the request named), and a cloud preview (preview.begin: raw indexed rows, top-to-bottom, rowBytes apart, already dithered by the HOST to the depth the guest asked — no palette block, because the target is the classic system table for that depth, which both sides already own). The control message that began the transfer says which.

Operations

Operation Direction Channel Messages
hostPublishesUpdates send control updateOffer
guestRequestsUpdate send control updateRequest, updateResult
hostExecutesLine receive control execRequest, execCancel, execInput
guestAnswersExec send control execOutput, execResult
guestOffersCapture send control captureOffer, captureBegin, captureEnd
hostRequestsScene receive control sceneRequest
guestServesScene send control sceneBegin, sceneEnd, sceneSame
hostControlsStream receive control streamStart, streamStop, streamRefresh
guestRequestsStream send control streamRequest
guestEndsStream send control streamStopped
hostBrowsesFiles receive control fileList, fileGet, fileCancel
hostPutsFiles receive control fileOffer
hostChangesFiles receive control fileMove, fileTrash, fileRestore, fileMkdir
guestServesFiles send control fileListing, fileRefuse, fileBegin, fileEnd, fileProgress
hostAnswersOffer receive control captureAccept, captureRefuse
hostRequestsCapture receive control captureRequest, captureCancel
censusExchange send control censusRequest, censusReport
hostBrowsesProcesses receive control processList
guestServesProcesses send control processListing
hostBrowsesSoftware receive control softwareList
guestServesSoftware send control softwareListing
hostDrivesProcess receive control processFront, processQuit, processShot
guestAnswersDrive send control processResult
guestAsksCloud send control cloudServices, cloudList, cloudDetail, cloudGet, cloudPreview
hostServesCloud receive control cloudReport, cloudListing, cloudCard, cloudRefuse, previewBegin, previewEnd
guestAsksChat send control chatModels, chatSend, chatCancel, chatReset
hostServesChat receive control chatCatalog, chatDelta, chatStatus, chatResult
guestAsksHostSurface send control hostShow
hostServesHostSurface receive control hostShown
peerAnnouncesMirrorInvalidation send control mirrorInvalidate
peerReceivesMirrorInvalidation receive control mirrorInvalidate

Messages

Registry ID Wire name Payload schema
hello hello Hello
refuse refuse Refuse
ping ping Ping
pong pong Pong
bye bye Bye
error error Error
commandRequest command.request CommandRequest
commandResult command.result CommandResult
execRequest exec.request ExecRequest
execOutput exec.output ExecOutput
execResult exec.result ExecResult
execCancel exec.cancel ExecCancel
execInput exec.input ExecInput
censusRequest census.request CensusRequest
censusReport census.report CensusReport
captureRequest capture.request CaptureRequest
streamRequest stream.request StreamRequest
streamStart stream.start StreamStart
streamStop stream.stop StreamStop
streamRefresh stream.refresh StreamRefresh
streamStopped stream.stopped StreamStopped
fileList file.list FileList
fileListing file.listing FileListing
fileGet file.get FileGet
fileOffer file.offer FileOffer
updateOffer update.offer UpdateOffer
updateRequest update.request UpdateRequest
updateResult update.result UpdateResult
fileAccept file.accept FileAccept
fileDone file.done FileDone
fileProgress file.progress FileProgress
fileRefuse file.refuse FileRefuse
fileBegin file.begin FileBegin
fileEnd file.end FileEnd
fileMove file.move FileMove
fileTrash file.trash FileTrash
fileRestore file.restore FileRestore
fileMkdir file.mkdir FileMkdir
fileResult file.result FileResult
fileCancel file.cancel FileCancel
captureOffer capture.offer CaptureOffer
captureAccept capture.accept CaptureAccept
captureRefuse capture.refuse CaptureRefuse
captureCancel capture.cancel CaptureCancel
captureBegin capture.begin CaptureBegin
captureEnd capture.end CaptureEnd
sceneRequest scene.request SceneRequest
sceneBegin scene.begin SceneBegin
sceneEnd scene.end SceneEnd
sceneSame scene.same SceneSame
processList process.list ProcessList
processListing process.listing ProcessListing
processFront process.front ProcessFront
processQuit process.quit ProcessQuit
processShot process.shot ProcessShot
processResult process.result ProcessResult
softwareList software.list SoftwareList
softwareListing software.listing SoftwareListing
agentAccess agent.access AgentAccess
cloudServices cloud.services CloudServices
cloudReport cloud.report CloudReport
cloudList cloud.list CloudList
cloudListing cloud.listing CloudListing
cloudDetail cloud.detail CloudDetail
cloudCard cloud.card CloudCard
cloudGet cloud.get CloudGet
cloudPreview cloud.preview CloudPreview
cloudRefuse cloud.refuse CloudRefuse
chatModels chat.models ChatModels
chatCatalog chat.catalog ChatCatalog
chatSend chat.send ChatSend
chatDelta chat.delta ChatDelta
chatStatus chat.status ChatStatus
chatResult chat.result ChatResult
chatCancel chat.cancel ChatCancel
chatReset chat.reset ChatReset
previewBegin preview.begin PreviewBegin
previewEnd preview.end PreviewEnd
hostShow host.show HostShow
hostShown host.shown HostShown
mirrorInvalidate mirror.invalidate MirrorInvalidate

Commands

Commands are a NOW extension under components.x-commands. The receiver owns the grammar and behavior; the sender treats the name and arguments as contract data.

Command Arguments Output keys Summary
development development The PPC guest's human-registered Projects and MPW environment.
development-build action (required), projectID, candidateID development-build Starts, observes or cancels the PPC guest's page-neutral MPW ToolServer service.
development-project projectID (required), cursor development-project Measures and pages one active source tree beneath the human-selected Projects root.
development-stage action (required), candidateID (required), projectID, expectedDigest, expectedFiles, baseGuestDigest development-stage Prepares, observes or discards one inactive guest project candidate.
development-run productRef (required) development-run Launches only the unchanged opaque product measured by the last successful Development build.
development-test productRef (required) development-test Executes the closed test plan declared by the Project.ckp that produced the unchanged opaque product.
development-open projectID (required) development-open Optionally locates and launches CodeKitten through the classic Desktop database, then sends the active Project.ckp for one opaque project ID using the standard open-documents Apple Event.
help topic help What commands THIS machine serves, asked of the machine that serves them.
update component update Reads the exact application and extension builds the connected host has published.
gestalt snapshot, cpu, memory, os, network, hw, notice The guest's own account of itself, via the Gestalt Manager.
ls path ls List a folder in the guest's share.
put name put Send a file from the guest to the host.
cancel cancel Abandon the transfer in flight, in whichever direction it is going.
net net What the guest can say about its own networking, as four groups of rows: the link it is holding to this host, its TCP/IP configuration, the network ports the machine has, and — last — why a list of that Mac's connections is not among them.
putstat putstat Where the last file the guest RECEIVED spent its time: bytes, chunk and write counts, and the milliseconds inside FSWrite against the whole receive path.
desktop desktop, source, hasPattern, hasPicture, patternBytes, patternCarried, note What the guest's desktop is actually drawn from, asked of the running machine rather than read out of a resource.
wirestat action, value wirestat How long the guest takes to NOTICE a request, as two distributions it alone can take: the interval between its own wire service passes, and the delay from Open Transport announcing that data arrived to its event loop reading it.
tail lines tail The last lines of the guest's log for this launch.
vprobe vprobe Measure the guest's VRAM read cost by access method: raw framebuffer reads at 8/16/32/64-bit widths against the CopyBits baseline, reread caching, partial-read linearity, and pixel fidelity.
screenshot depth, save screenshot Capture the guest's screen.
shotdiag shotdiag Stage a capture down the guest's real wire path and report where it read from: the framebuffer base as the guest resolved it, StripAddress of that base, whether the machine is in 32-bit addressing at the moment of the walk, and the first sixteen bytes of row 0 as the walk sees them beside the same row as CopyBits copies it.
ps ps The guest's running processes, one row per process: the name, and its kind / size / whether it is frontmost.
census probe census Run one hardware-census probe and return its rows.
catsearch catsearch Time a whole-volume catalog search for applications: PBCatSearch over the receiver's startup volume matching file type APPL, run in short time slices — cold, then warm to expose caching.
sw domain sw The receiver's installed software, one page a domain.
launch target launch Open an application on the receiver: the software family's one mutation.
quit target quit Ask a RUNNING process on the receiver to quit, named the way a person names it — by the name ps and process.listing show.
front target front Bring a RUNNING process on the receiver to the front, named the way a person names it — by the name ps and process.listing show.
hide target hide Hide or show a RUNNING application on the receiver, named the way a person names it, and report what its visibility actually is afterwards.
reveal target reveal Show an installed item in the RECEIVER's own Finder, selected in its enclosing window — the read-only companion to launch.
vers target vers One file's 'vers' resources — the short version, the numeric version and stage, the Get Info string, and the product (id 2) when present — read from that one file's resource fork alone (Get1Resource, never the chain: the System's 'vers' answering for a file that has none is the most convincing wrong answer).
winact window (required), action (required), left, top, width, height winact Select, move, resize, zoom or close ONE window.
cursoract window (required), h (required), v (required) cursoract Place the guest's drawn cursor at one point inside ONE observed window, without clicking, selecting the window, or changing front order.
textget element (required) textget Read the text of ONE addressed text element.
textset element (required), text (required) textset Replace the whole contents of ONE addressed text element.
elements serialHi, serialLo elements Name this Mac's on-screen elements, so that they can be acted on.
ctlact element (required), part (required), h, v ctlact Act on ONE control, by answering the owning application's own TrackControl with the part code named.
dragpress element, window, h, v, toH, toV, idle, cap dragpress Press the mouse button on ONE element and LEAVE IT DOWN, handing the gesture to the resident's drag vehicle.
dragmove session (required), h (required), v (required) dragmove Publish a new pointer position for a drag already holding the button, and relay that the caller is still alive.
dragrelease session (required) dragrelease Ask the resident to release a drag it is holding.
ditemact element (required), item (required) ditemact Select ONE live Dialog Manager item through the owning application's own dialog event path.
menuact menu (required), item (required), titleLeft (required), serialHi, serialLo menuact Perform ONE menu command, by answering the owning application's own MenuSelect.
activate serialHi (required), serialLo (required) activate Bring ONE process forward, named by its process serial number.
actselftest serialHi, serialLo actselftest Prove the act plane's trap calling convention, in one process, from inside the machine.
mouseloc mouseloc Where this Mac's pointer IS, and — since P8 — where its PICTURE was last put.
key named, char, code, mods key Post ONE keystroke into this Mac's event queue — the mechanism textset is not, rather than a better one.
script source (required), timeoutMs, purpose script Run ONE AppleScript on this Mac, through its own OSA component.
aesend event (required), serialHi (required), serialLo (required), path aesend Send ONE core Apple Event to a process named by its serial.
qdtrace op, a5, serialHi, serialLo, front, window, mode, ttlTicks, cursor, maxBytes, maxRecords qdtrace What is DRAWING on this Mac — read from a ring the NOW Extension's resident half fills at draw time inside an armed application.
transitions op, a5, serialHi, serialLo, front, target, ttlTicks, cursor, maxRecords transitions What CHANGED on this Mac between two of its own event passes - read from a ring the NOW Extension's resident half fills inside an armed process, at the frequency of that process's event loop.
observe scope observe Walk this Mac's on-screen elements and MINT an opaque reference for each one seen.
handle ref (required) handle Take ONE reference back to a live element, or refuse — precisely.
axtree scope axtree The read surface over the same walk observe performs.
axsnap axsnap The cheap one: who is front, whether the reference layer can see it, and how many references are live.
cycle cycle Brings each application on the guest forward in turn, with the anchor plane armed, so that it executes its own event loop once and the resident captures its anchor — then restores the application that was frontmost.
mirror mirror The guest's read-only lifecycle view of the ONE optional NOW Extension and its data planes.

Change discipline

A behavior change begins in the contract. Implement the receiving side's share on the host, PPC guest, and 68K guest where supported; state intentional asymmetry; then update conformance fixtures and re-run the documentation projection.