OneSay Platform
Examples
Private local M1 candidate. Hosting and external acceptance remain open.
The examples consume the public OneSay JavaScript SDK. They remain private, unpublished local candidates; the instructions below do not provision resources or authorize deployment.
Choose the service and existing consumer#
| Service | Existing runnable example and setup | Explicit lifecycle |
|---|---|---|
| Task Voice | JavaScript Quickstart, including its separate installed consumer layout and authorized application entry | Caller-supplied PCM, canonical ACK/replay, Task completion and Artifact/Usage readback. The application supplies identity, existing resources and explicit Consent decisions. |
| RTC audio, data and RPC | JavaScript RTC example (../../examples/javascript-rtc/README.md#run-from-a-new-installed-directory) | Explicit connect, publication, subscription/policy, receive, end and close buttons. The existing runner installs the private tarball in a fresh directory; no direct native SDK installation or configuration is needed. |
| RTC Agent | The same RTC example (../../examples/javascript-rtc/README.md#explicit-operations) and Agent playback handoff (../runbooks/AGENT_PLAYBACK.md) | Select existing input publications, create, get, request stop and read the original execution. An independent receiver needs its own authority and playback gesture. |
Task Voice and RTC are separate services. RTC connect or microphone publication does not start a Task or Agent. A pipeline Agent transcription result is not the Task dictation service. The SDK owns its pinned internal LiveKit dependency; the examples use public OneSay objects and do not expose native Room, Track or token APIs.
For RTC, run node tools/rtc/run-public-example.mjs from the repository with its
locked Node/pnpm and offline dependency store. Follow the linked README for the
printed loopback page, temporary installation cleanup and bounded server
lifetime. For Task, use the Quickstart's exact consumer layout, including its
existing support files. A raw checkout import is not the packaged consumer.
The historical E9 synthetic runner is a separate local proof, not the current
public Task sample or RTC qualification.
Developer and operator handoff#
Supply an authorized Project Environment, Room, AppSession, Source/publication selection and a short-lived caller credential through the application's existing identity flow. Browser callers never receive Platform API, Service, Provider or LiveKit long-term secrets. The RTC page keeps a token only in memory, clears the password field after use, and requires the authorized Control origin to accept the application's CORS origin. The static example server neither proxies credentials nor supplies server authority.
Retain each original resource, mutation key and policy version. Accepted intent
does not establish effective native installation, stop or revocation. A data
receiver must select the publication and start its reader; the RTC example's
nextDataFrame consumes one frame and closes that reader. Local cancellation
cannot roll back a committed operation. Close the original RTC session and
explicitly stop independently created Agent executions. Reconcile uncertain
outcomes through the original public resource and the application's explicit
Consent flow; do not automatically change keys, chase policy versions or create
replacement work.
Use the existing RTC operation diagnosis (../../examples/javascript-rtc/README.md#diagnosing-an-explicit-operation)
and Agent playback fault isolation (../runbooks/AGENT_PLAYBACK.md#fault-isolation-without-weaker-deadlines).
Keep operation/error code and resource binding in an access-controlled report;
exclude bearer values, connection material, private exceptions and customer
media. Substituted SDK tests only validate sample composition. Replaying a
native fixture requires its recorded owned environment, exact source/package
binding and original deadlines; opening a page is not a qualification result.
Existing evidence and remaining external qualification#
- Authorized Task sample (
../development/evidence/m1-v3-gx17-authorized-task-41a45efb.json): installed public API flow with owned PostgreSQL and deterministic Provider; original Task/Usage evidence remains bound to its source. - RTC packet/RPC, microphone, Agent, Streams and DataTrack (
../../examples/javascript-rtc/README.md#qualification-boundary): actual formal page operations have separate source-bound local receipts. The Agent page qualifies create/get/stop/get; its native output reception is a separately authorized SDK receiver. Streams and DataTrack passed in separate runs; there is no invented combined result. - Local sample checks (
../../tests/docs/rtc-example.test.mjs): controlled public SDK objects for composition, bounded cancellation and cleanup; these do not replace real HTTP/native qualification.
Staging: NOT-RUN — requires authorized Staging environment. Production,
physical microphone/speaker/hearing, hardware and real Provider qualification
remain NOT-RUN. Local synthetic capture and owned HTTP/TLS forwarding do not
qualify them. Package publication remains unauthorized. The active
Ledger (../development/M1_V3_EXECUTION_LEDGER.yaml) records the separate work
items and evidence; this directory index does not supersede it.
The earlier Browser AudioWorklet and Node raw PCM snippets remain offline contract assets. ESP32 component/SDK and real-device smoke are tracked separately; JavaScript example results do not qualify firmware or physical devices.
Source and provenance
View original Markdown
# Examples The examples consume the public OneSay JavaScript SDK. They remain private, unpublished local candidates; the instructions below do not provision resources or authorize deployment. ## Choose the service and existing consumer | Service | Existing runnable example and setup | Explicit lifecycle | | --- | --- | --- | | Task Voice | [JavaScript Quickstart](../guides/JAVASCRIPT_QUICKSTART.md#public-task-sample-using-the-installed-package), including its separate installed consumer layout and [authorized application entry](../guides/JAVASCRIPT_QUICKSTART.md#application-authorization-through-existing-public-apis) | Caller-supplied PCM, canonical ACK/replay, Task completion and Artifact/Usage readback. The application supplies identity, existing resources and explicit Consent decisions. | | RTC audio, data and RPC | [JavaScript RTC example](../../examples/javascript-rtc/README.md#run-from-a-new-installed-directory) | Explicit connect, publication, subscription/policy, receive, end and close buttons. The existing runner installs the private tarball in a fresh directory; no direct native SDK installation or configuration is needed. | | RTC Agent | [The same RTC example](../../examples/javascript-rtc/README.md#explicit-operations) and [Agent playback handoff](../runbooks/AGENT_PLAYBACK.md) | Select existing input publications, create, get, request stop and read the original execution. An independent receiver needs its own authority and playback gesture. | Task Voice and RTC are separate services. RTC connect or microphone publication does not start a Task or Agent. A pipeline Agent transcription result is not the Task dictation service. The SDK owns its pinned internal LiveKit dependency; the examples use public OneSay objects and do not expose native Room, Track or token APIs. For RTC, run `node tools/rtc/run-public-example.mjs` from the repository with its locked Node/pnpm and offline dependency store. Follow the linked README for the printed loopback page, temporary installation cleanup and bounded server lifetime. For Task, use the Quickstart's exact consumer layout, including its existing support files. A raw checkout import is not the packaged consumer. The historical E9 synthetic runner is a separate local proof, not the current public Task sample or RTC qualification. ## Developer and operator handoff Supply an authorized Project Environment, Room, AppSession, Source/publication selection and a short-lived caller credential through the application's existing identity flow. Browser callers never receive Platform API, Service, Provider or LiveKit long-term secrets. The RTC page keeps a token only in memory, clears the password field after use, and requires the authorized Control origin to accept the application's CORS origin. The static example server neither proxies credentials nor supplies server authority. Retain each original resource, mutation key and policy version. Accepted intent does not establish effective native installation, stop or revocation. A data receiver must select the publication and start its reader; the RTC example's `nextDataFrame` consumes one frame and closes that reader. Local cancellation cannot roll back a committed operation. Close the original RTC session and explicitly stop independently created Agent executions. Reconcile uncertain outcomes through the original public resource and the application's explicit Consent flow; do not automatically change keys, chase policy versions or create replacement work. Use the existing [RTC operation diagnosis](../../examples/javascript-rtc/README.md#diagnosing-an-explicit-operation) and [Agent playback fault isolation](../runbooks/AGENT_PLAYBACK.md#fault-isolation-without-weaker-deadlines). Keep operation/error code and resource binding in an access-controlled report; exclude bearer values, connection material, private exceptions and customer media. Substituted SDK tests only validate sample composition. Replaying a native fixture requires its recorded owned environment, exact source/package binding and original deadlines; opening a page is not a qualification result. ## Existing evidence and remaining external qualification - [Authorized Task sample](../development/evidence/m1-v3-gx17-authorized-task-41a45efb.json): installed public API flow with owned PostgreSQL and deterministic Provider; original Task/Usage evidence remains bound to its source. - [RTC packet/RPC, microphone, Agent, Streams and DataTrack](../../examples/javascript-rtc/README.md#qualification-boundary): actual formal page operations have separate source-bound local receipts. The Agent page qualifies create/get/stop/get; its native output reception is a separately authorized SDK receiver. Streams and DataTrack passed in separate runs; there is no invented combined result. - [Local sample checks](../../tests/docs/rtc-example.test.mjs): controlled public SDK objects for composition, bounded cancellation and cleanup; these do not replace real HTTP/native qualification. Staging: `NOT-RUN — requires authorized Staging environment`. Production, physical microphone/speaker/hearing, hardware and real Provider qualification remain `NOT-RUN`. Local synthetic capture and owned HTTP/TLS forwarding do not qualify them. Package publication remains unauthorized. The active [Ledger](../development/M1_V3_EXECUTION_LEDGER.yaml) records the separate work items and evidence; this directory index does not supersede it. The earlier Browser AudioWorklet and Node raw PCM snippets remain offline contract assets. ESP32 component/SDK and real-device smoke are tracked separately; JavaScript example results do not qualify firmware or physical devices.