feat(types): authoring observe, command, and bind schemas - #35
Open
abrichr wants to merge 1 commit into
Open
Conversation
Add the public MCP wire for hosted authoring. Observe, command, and bind are strict contracts with additionalProperties false. They do not reuse ComputerState or UINode. Extra keys and value, title, and screenshot fail validation. Bind tokens are oab_, not oar_.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reader
A types reviewer checking that the vendor wire cannot carry field values, window titles, or screenshots. If that sentence stops being true,
tests/test_authoring.pyshould fail.What this does
Public MCP wire for hosted authoring. ChatGPT.com and Claude.ai drive a first demonstration through tools; this package is the contract those tools share with Desktop and stdio.
Three schemas:
openadapt.authoring.observe/v1— projected tree. Normalized bounds, roles, automation ids. NoComputerState, noUINode. SharingElementRoleis the only computer-state reuse.openadapt.authoring.command/v1— mailbox envelope. Hostedclickis{ node_id }only. Compile returnsneeds_human_admit, notVERIFIED. Pause results name a param and never a value.openadapt.authoring.bind/v1—bind_statusplus exactoab_/oals_parsers. Tests rejectoar_,oap_,oab_with a hex body,oals_with a base64url body, and anything that merely starts withoa.additionalPropertiesis false. Extra keys fail.value,title, andscreenshotfail. The projector stays in Capture.Taxes/RBC/Amex are an example job only. No vertical nouns in the schemas. No AWS. No
control_planepath.Reviewer checks
tests/test_authoring.py: extra keys andvalue/title/screenshotfail on observe, command, and bind.openadapt_types/schemas/authoring-*-v1.jsonmatches the Pydantic models.oab_+ 43 unreserved characters. Cloudoar_and pairingoap_are refused.uv run pytest— 347 passed. Source-boundary check passed.Do not merge.
Opened by an agent session, not the founder.