Actions and capabilities
An action belongs to the client composition that registers it. Capability advertisement tells the server what the runtime says it can execute; central and local policy still decide whether one invocation is allowed.
Actions present in every core runtime
| Action | Purpose | Authorization behavior |
|---|---|---|
ping | runtime probe | framework introspection bypass |
echo | command round-trip probe | framework introspection bypass |
get_actions | return current registered actions | framework introspection bypass |
get_policy | return configured local policy | framework introspection bypass |
get_config | return outbound-filtered configuration | framework introspection bypass |
cache_data | write through the configured client cache | ordinary local policy; returns no_cache without a provider |
The first five bypass ordinary local action authorization because they are bounded runtime queries. They remain available only through the authenticated Cheetah relationship. ping.timestamp is created by Date.now() in the client runtime that executes the probe. It confirms client execution but is not an authoritative application-server clock.
Browser control actions
The browser package can register:
list_tabsandfocus_tab;create_tab,navigate, andclose_tab;create_worker_windowandset_worker_window;- browser
download_files; set_worker_overlay.
Availability depends on the composed browser services and Chrome permissions. Targets belong under target; for example, navigate reads target.tab_id and params.url.
Page actions
Browser content-script and cooperative-web layers can supply:
- change:
click,type,scroll,focus,blur; - read:
get_text,get_dom,get_page_info,get_element_info,query_selector_all,get_attribute; - wait:
wait_for_element, plus web-onlywait_settled.
The extension path crosses the content-script bridge and is constrained by tab access and extension permissions. The web path acts on its own cooperative document. Identical action names do not give the two environments identical authority or every identical option.
Important page-action contracts include:
typeappends to an input or textarea whenclearis omitted or false, and replaces the value whenclear: true; it focuses the element and emits one bubblinginputevent then one bubblingchangeevent, but does not support content-editable elements;- browser
scrollaccepts optionalselector,x,y, andabsolute; with a selector it changes that element's own scroll position; - page-side
wait_for_elementdefaults to 5 seconds, while the extension bridge has its own 15-second deadline; - selected-element
get_textreadstextContent; without a selector it returns at most 5,000 characters of bodyinnerText; get_element_inforeturns tag, ID, class, truncated text, rectangle, and a positive-size visibility flag, not computed styles or a general attribute map.
Console actions
The console package can register:
- flows:
list_flows,create_flow,close_flow; - files:
read_file,write_file,list_dir; - process execution:
exec; - console
download_files.
exec reports the Cheetah handler as applied when the program was launched and observed; the payload's exit_code records whether the program itself succeeded. File roots, shell access, downloads, and modules should be restricted by client-local policy.
Custom and native actions
Custom action contracts belong to the package or product that registers them. Provide a descriptor with matching name, summary, argument-check choice, schema, and non-sensitive metadata. Register it before startup.
The runtime execution context exposes normalized command data, progress, cancellation, and configured providers. A progress or result payload may be an object, explicit null, or absent; wrap arrays and primitives in a named object. Return stable errors. A native bridge must translate cancellation and lifecycle semantics explicitly; current mobile/native support does not yet have full browser/console parity.
Descriptor boundary
Built-in descriptors describe the registered action names, summaries, argument-check behavior, schemas, and safe metadata used for discovery and validation. They do not grant permission, replace client-local policy, or prove that the platform has a required resource or operating-system capability. Custom action authors must keep a descriptor and its handler contract aligned and test both schema validation and real platform behavior.
The current protocol advertises capabilities at startup and has no live capability-change message. Handler registration closes when startup begins, keeping get_actions, executable handlers, and the hello advertisement aligned. Build and start a fresh runtime to change its action composition.
Interpret outcomes by action contract
An applied handler result means the Cheetah action ran and produced its defined payload. Batch actions can report partial success. External systems can report their own success or failure inside that payload. Cancellation can suppress a late terminal result after abort or lease invalidation.
Do not infer exactly-once external effects from command IDs, ACKs, leases, or returned-message deduplication. Use product idempotency and reconciliation where the action requires it.