Skip to content

@pitcher/canvas-ui ​

Modules ​

ModuleDescription
internal-

Enumerations ​

PitcherBroadcastedEventName ​

Enumeration Members ​

Enumeration MemberValue
CANVAS_CLOSED"canvas_closed"
CANVAS_NEXT_BUTTON_CLICKED"canvas_next_button_clicked"
CANVAS_OPENED"canvas_opened"
CANVAS_PREVIOUS_BUTTON_CLICKED"canvas_previous_button_clicked"
FILE_DOWNLOAD"file:download"
ROUTE_CHANGED"route_changed"
UI_HIDE_MODAL"ui:hide-modal"
UI_SHOW_MODAL"ui:show-modal"

PitcherEventName ​

Enumeration Members ​

Enumeration MemberValueDescription
ACCESS_TOKEN_RENEWED"access_token_renewed"-
ANALYTICS_CAPTURED"analytics_captured"-
APP_BACKGROUNDED"app_backgrounded"-
APP_FOREGROUNDED"app_foregrounded"-
CANVAS_CLOSE_REQUESTED"canvas_close_requested"-
CANVAS_CONTEXT_STORED"canvas_context_stored"An app frame stored context on a canvas over the host bridge (PIT-5725). The host UI applies it to a builder open on that canvas, which would otherwise write its older copy back. Separate from CANVAS_UPDATED_SUCCESS on purpose: apps in the field apply that event to their own canvas without checking the id, and this write is often for a different canvas.
CANVAS_OPEN_REQUESTED"canvas_open_requested"-
CANVAS_PAGE_NEXT_REQUESTED"canvas_page_next_requested"-
CANVAS_PAGE_PREVIOUS_REQUESTED"canvas_page_previous_requested"-
CANVAS_UPDATED"canvas_updated"-
CANVAS_UPDATED_SUCCESS"canvas_updated_success"-
CONTENT_LIST_REFRESH_REQUESTED"content_list_refresh_requested"-
ENTERED_FULLSCREEN"entered_fullscreen"-
ENV_CHANGED"env_changed"-
EXITED_FULLSCREEN"exited_fullscreen"-
FILE_CLOSED"file_closed"-
FILE_DOWNLOADED"file_downloaded"-
FILE_OPENED"file_opened"-
FILE_UPLOAD_PROGRESS"file_upload_progress"-
GLOBAL_PHOTO_CAPTURED"global_photo_captured"-
ITEM_SHAREBOX_ADD_COMPLETED"item_sharebox_add_completed"-
ITEM_SHAREBOX_ADD_REQUESTED"item_sharebox_add_requested"-
ITEM_SHAREBOX_STATUS_REQUESTED"item_sharebox_status_requested"-
ITEM_SHAREBOX_STATUS_UPDATED"item_sharebox_status_updated"-
NETWORK_CONNECTION_ESTABLISHED"network_connection_established"-
NETWORK_CONNECTION_LOST"network_connection_lost"-
NON_FILES_SYNC_FINISHED"non_files_sync_finished"-
OPEN_FOLDER_REQUESTED"open_folder_requested"-
PEER_CONNECTIVITY_EVENT"peer_connectivity_event"-
PHOTOS_CAPTURED"photos_captured"-
ROUTE_CHANGE_REQUESTED"route_change_requested"-
STT_INTERRUPTED"stt.interrupted"-
STT_PARTIAL"stt.partial"-
SUBMIT_POSTCALL_CLICKED"submit_postcall_clicked"-
SYNC_BADGE_VALUE_REPORTED"sync_badge_value_reported"-
SYNC_BOX_RESOLVE_ERROR_TAPPED"sync_box_resolve_error_tapped"-
UPDATE_LOCATION"update_location"-

PitcherExternalEventName ​

Enumeration Members ​

Enumeration MemberValue
CREATE_AND_OPEN_CANVAS"create_and_open_canvas"
OPEN_CANVAS"open_canvas"
OPEN_CREATE_CANVAS"open_create_canvas"
SELECT_ACCOUNT"select_account"
START_CALL"start_call"

PitcherMessageType ​

Enumeration Members ​

Enumeration MemberValue
REQUEST"PITCHER_REQUEST"
RESPONSE"PITCHER_RESPONSE"

PitcherResponseStatus ​

Enumeration Members ​

Enumeration MemberValue
ERROR"error"
OK"ok"

Interfaces ​

AdminToastRequest ​

Represents a request to show a toast notification.

Properties ​

PropertyTypeDescription
closable?booleanIndicates if the toast can be closed manually (optional).
duration?numberDuration for which the toast should be displayed (optional).
keepAliveOnHover?booleanIndicates if the toast should remain visible when hovered over (optional).
messagestringMessage to be displayed in the toast.
showIcon?booleanIndicates if an icon should be shown in the toast (optional).
type"error" | "info" | "warning" | "success" | "loading"Type of the toast notification.

AICompletePayload ​

Payload for an on-device AI completion (ai.complete, iOS only). The exact iOS wire contract — keys are already snake_case, do not rename.

Properties ​

PropertyTypeDescription
max_tokens?numberMaximum number of tokens to generate.
promptstringThe full prompt to complete.
stream?booleanWhether to stream the completion (v1 SDK callers should omit/false).

AICompleteResult ​

Result of an on-device AI completion (ai.complete, iOS only).

Properties ​

PropertyTypeDescription
elapsed_seconds?number-
textstringThe generated completion text.
time_to_first_token_seconds?number-
tokens_generated?number-

AIRuntimeCapabilities ​

Capabilities of the AI runtime serving ai.complete on the current platform. On iOS this is the native on-device (Gemma) bridge answer — snake_case wire fields come straight from the native handler. On web there is no local model; the SDK answers statically with the online (Bedrock) runtime.

Properties ​

PropertyTypeDescription
availablebooleanWhether an AI completion runtime is available right now.
download_progress_percent?numberDownload progress 0-100 while model_downloading (iOS only).
llm_model?stringThe on-device model identifier (iOS only).
model_available_for_download?booleanWhether an on-device model can be downloaded for this instance (iOS only).
model_downloading?booleanWhether the on-device model is currently downloading (iOS only).
offline?booleanWhether the runtime works offline (true for the iOS on-device model).
runtime?stringServing runtime hint, e.g. 'bedrock-online' (web) — iOS reports its model via llm_model instead.
unavailability_reason?stringWhy the runtime is unavailable, when available is false (iOS only).

ApiEventMap ​

Properties ​

PropertyType
eventPitcherEvent

ApiOptions ​

Properties ​

PropertyType
casing?"camel" | "snake"
errorLogger?(p) => string | void
fetchMode?FetchMode
logLevel?"off" | "info" | "debug"

AppsDbDeleteEntryPayload ​

Payload for appsDbDeleteEntry.

Properties ​

PropertyType
idstring

AppsDbEntriesResult ​

Entry-list result shared by appsDbGetEntries and appsDbPsql.

Properties ​

PropertyType
entriesAppsDbEntry[]
hasMore?boolean
totalCount?number

AppsDbEntry ​

A single AppsDB entry (next-core core_appsdb_entries row / iOS offline mirror record).

Properties ​

PropertyTypeDescription
created_at?string-
dataRecord<string, any>Opaque application data. Keys are stored verbatim (no casing transformation).
idstringUnique identifier (ULID).
instance_id?string | null-
org_id?string | null-
typestringObject type the entry belongs to (e.g. personalfolders, favorite).
updated_at?string-
user_id?number | null-

AppsDbGetEntriesPayload ​

Payload for appsDbGetEntries — list AppsDB entries of a type.

Properties ​

PropertyTypeDescription
instance_id?string-
limit?number-
offset?number-
typestringThe object type to read. On iOS only types allowlisted via the offline_appsdb_types instance/org setting are served from the offline mirror.
user_id?number-

AppsDbPsqlPayload ​

Payload for appsDbPsql — a PSQL (SQL-like) query against AppsDB, e.g. SELECT * FROM favorite WHERE user_id = 1 AND data.file_id = 'abc'.

Properties ​

PropertyType
querystring

AppsDbUpsertEntryPayload ​

Payload for appsDbUpsertEntry. With id the entry is updated (the server deep-merges data); without id a new entry is created.

Properties ​

PropertyTypeDescription
dataRecord<string, any>-
id?string-
instance_id?string-
no_user_id?booleanCreate an instance-wide entry with no user attribution (allowlist-gated server-side, see next-core appsdb/ownership.ts).
type?string-
user_id?number-

CreateAndOpenCanvasEvent ​

Properties ​

PropertyType
account_id?string

CRMCreatePayload ​

Payload for creating CRM records (Web only). Uses Salesforce REST API to create records.

Properties ​

PropertyTypeDescription
recordsRecord<string, unknown>[]Array of records to create. Each record is a key-value map of field names to values. Field names should use Salesforce API names (e.g., 'Account__c', 'Order_Date__c').
service?CRMServiceTypeOptional name of the CRM service to use.
sobjectstringThe Salesforce object type (e.g., 'Account', 'Contact', 'Order__c').

CRMDeleteObject ​

Represents a single CRM object to be deleted.

Properties ​

PropertyTypeDescription
idsstring[]Array of IDs of the records to delete.
table_namestringThe name of the CRM table/object to delete from.

CRMDescribePayload ​

Payload for retrieving CRM object metadata/describe (Web only). Uses Salesforce REST API to fetch object metadata including fields and picklist values.

Properties ​

PropertyTypeDescription
service?CRMServiceTypeOptional name of the CRM service to use.
sobjectstringThe Salesforce object type to describe (e.g., 'Account', 'Contact', 'Opportunity').

CRMLayoutPayload ​

Payload for retrieving CRM object layout (Web only). Uses Salesforce REST API to fetch object layout information including sections, fields arrangement, and form factors.

Properties ​

PropertyTypeDescription
form_factor?stringOptional form factor (e.g., 'Large', 'Medium', 'Small').
layout_type?stringOptional layout type (e.g., 'Full', 'Compact').
mode?stringOptional mode (e.g., 'Create', 'Edit', 'View').
record_type_id?stringOptional record type ID for record type specific layouts.
service?CRMServiceTypeOptional name of the CRM service to use.
sobjectstringThe Salesforce object type to get layout for (e.g., 'Account', 'Contact', 'Opportunity').

CRMQueryPayload ​

Payload for executing a query against CRM.

Properties ​

PropertyTypeDescription
querystringThe query string to execute.
service?CRMServiceTypeOptional name of the service to be queried.

CRMSmartDeleteObjectsPayload ​

Payload for deleting CRM objects (iOS only).

Properties ​

PropertyTypeDescription
objectsCRMDeleteObject[]Array of CRM objects to be deleted.

CRMSmartObjectLayoutPayload ​

Payload for getting CRM smart object layout (iOS only).

Properties ​

PropertyTypeDescription
form_factor?stringOptional form factor (e.g., 'Large', 'Medium', 'Small').
layout_type?stringOptional layout type (e.g., 'Full', 'Compact').
mode?stringOptional mode (e.g., 'Create', 'Edit', 'View').
objectstringThe name of the CRM object (e.g., 'Account', 'Contact', 'Opportunity').
record_type_id?stringOptional record type ID.

CRMSmartObjectMetadataPayload ​

Payload for retrieving CRM smart object metadata (iOS only).

Properties ​

PropertyTypeDescription
objectstringThe name of the CRM object to retrieve metadata for (e.g., 'Account', 'Contact', 'Opportunity').
record_type_id?stringOptional record type ID to retrieve metadata for a specific record type.

CRMSmartObjectValidationRulesPayload ​

Payload for getting CRM smart object validation rules (iOS only).

Properties ​

PropertyTypeDescription
objectstringThe name of the CRM object (e.g., 'Account', 'Contact', 'Opportunity').

CRMUpsertPayload ​

Payload for upserting CRM records (Web only). Uses Salesforce REST API to insert or update records based on external ID.

Properties ​

PropertyTypeDescription
external_id_fieldstringThe external ID field used to match existing records for update. If a record with matching external ID exists, it will be updated; otherwise, a new record is created.
recordsRecord<string, unknown>[]Array of records to upsert. Each record is a key-value map of field names to values. Field names should use Salesforce API names (e.g., 'Account__c', 'Order_Date__c').
service?CRMServiceTypeOptional name of the CRM service to use.
sobjectstringThe Salesforce object type (e.g., 'Account', 'Contact', 'Order__c').

GetInstanceMetadataTemplatesPayload ​

Payload for getting instance metadata templates.

Properties ​

PropertyTypeDescription
ordering?stringOrdering of the metadata templates. String containing field name to order by.
page?numberPage number for pagination.
page_size?numberNumber of items per page.
search?stringSearch query for filtering metadata templates.

LocationRoute ​

Represents a route in the location.

Properties ​

PropertyTypeDescription
is_inactivebooleanIndicates when application is still registered but not used right now.
is_mountedbooleanIndicates if the route is mounted.
is_restoringbooleanIndicates if the route is being restored.
pathstringThe path of the route.
queryRecord<string, any>The query parameters of the route.

NotificationPayload ​

Payload for sending a notification.

Properties ​

PropertyTypeDescription
contentstringContent of the notification.
type?"native" | "alert"Type of the notification.

OpenCanvasPitcherEvent ​

Properties ​

PropertyType
account_id?string
account_name?string
canvas_id?string
edit_mode?"true" | "false"

OpenCreateCanvasPitcherEvent ​

PIT-9807: a CRM deep link that opens the create dialog prefilled; the rep confirms. Every value arrives as a URL query string (?event[name]=open_create_canvas&event[template_id]=…).

Properties ​

PropertyTypeDescription
account_id?stringThe CRM's own account id, which is the id Pitcher stores the account under.
account_name?stringUsed on orgs with no Salesforce connection, where Pitcher cannot look the account up.
instance_id?stringThe instance to open the dialog in. Web and iPad switch to it when the rep can access it.
template_id?stringPreselected template. One the create dialog does not offer is dropped, with a warning.

OpenExternalUrlRequestPayload ​

Payload object for opening an external URL.

Properties ​

PropertyTypeDescription
options?stringAdditional options for opening the URL.
target?"_self" | "_blank"The target where the URL should be opened. Defaults to '_blank'.
urlstringThe URL to open.

OpenRequestPayload ​

Payload object for opening a file.

Properties ​

PropertyTypeDescription
canvasCorrelationId?stringTracking id for the canvas presentation session.
canvasInView?booleanIndicates if the canvas is in view.
context?Record<string, any>Optional, overrides over the context of the current canvas, useful for injecting file annotation data. Default is {}.
fileId?stringId of the file to open.
files?objectIds of the files to open and the strategy to open them with.
files.idsstring[]-
files.strategy"simultaneous" | "swap"-
fromCanvasId?stringId of the canvas from which the file is opened.
isInCall?booleanIndicates if the user is in a call.
isOverlayApp?booleanIndicates if the app should be opened as overlay.
newTab?booleanIndicates if the file should be opened in a new tab.
pageIndex?numberOptional, page index to open. Default is null.
search?stringSearch query string within the file.
startTime?numberOptional, video start timestamp in seconds. Default is null.
url?string | nullURL of the file content.
usedInSectionId?stringId of the canvas section from which the file is opened.

OpenWebViewAlwaysOnTop ​

Payload object for opening a web view that is always on top.

Properties ​

PropertyTypeDescription
modal_settingsobjectSettings for the modal window.
modal_settings.heightnumberThe height of the modal window.
modal_settings.widthnumberThe width of the modal window.
modal_settings.xnumberThe x-coordinate of the modal window.
modal_settings.ynumberThe y-coordinate of the modal window.
urlstringThe URL to open in the web view.

OrgConfigResponse ​

Properties ​

PropertyType
auth0object
auth0.audiencestring
auth0.auth0_domainstring
auth0.domainstring
auth0.issuerstring
auth0.region"us" | "eu" | "au"
auth0.web_client_idstring
auth0_tenant_region"us" | "eu" | "au"
datadog_region"us" | "eu"
region"us" | "eu" | "au"
segmentobject
segment.web_write_keystring
segment_region"us" | "eu"
sentry_region"us" | "eu"

PeerConnectivityContext ​

Indexable ​

[key: string]: unknown

Properties ​

PropertyType
canvasId?string
fileId?string
routeName?string
routePath?string
viewId?string
viewType?string

PeerConnectivityDispatchOptions ​

Properties ​

PropertyTypeDescription
isFeatureEnabled?booleanGuards if feature flag is enabled for the current organization.

PeerConnectivityEvent ​

Extends ​

Type Parameters ​

Type ParameterDefault type
TData extends Record<string, unknown>Record<string, unknown>
TContext extends PeerConnectivityContextPeerConnectivityContext

Properties ​

PropertyTypeOverridesInherited from
actionstring-PeerConnectivityEventPayload.action
context?TContext-PeerConnectivityEventPayload.context
data?TData-PeerConnectivityEventPayload.data
metadataPeerConnectivityMetadataPeerConnectivityEventPayload.metadata-
versionnumberPeerConnectivityEventPayload.version-

PeerConnectivityEventPayload ​

Extended by ​

Type Parameters ​

Type ParameterDefault type
TData extends Record<string, unknown>Record<string, unknown>
TContext extends PeerConnectivityContextPeerConnectivityContext

Properties ​

PropertyType
actionstring
context?TContext
data?TData
metadata?Partial<PeerConnectivityMetadata>
version?number

PeerConnectivityMetadata ​

Properties ​

PropertyType
correlationIdstring
extras?Record<string, unknown>
sourcestring
timestampnumber

PiaSearchAnswerPayload ​

Payload for piaSearchAnswer — one high-level question-answering call over the instance's content, routed on-device (iOS Gemma) or online (next-core Bedrock route) based on the pia_search_config flag mode.

Properties ​

PropertyTypeDescription
context_text?stringClient-assembled content context (file names/tags/summaries). Used ONLY by the on-device path — the online route assembles its own context server-side.
expansion_terms?string[]Client-derived (LLM expansion) synonym terms for the query, forwarded whenever non-empty, with or without file_ids. The online route re-validates them, re-ranks its candidate pool with them at a fractional weight (a typed match always outranks a synonym-only one) and, on the grounded path, uses them to choose which passages are excerpted. They can never add a file outside the pool. The on-device path ignores them.
file_ids?string[]Optional narrowing of the online route's candidate pool to these file ids.
include_document_text?booleanOpt in to server-side document grounding: the online route fetches the transcripts of file_ids and adds query-relevant verbatim passages to the prompt. Requires file_ids; ignored without them. Explicit rather than inferred from file_ids so that a caller which already narrows by ids keeps its exact prompt. Online path only — the on-device token budget cannot absorb document excerpts.
instance_id?stringInstance to search in. Defaults to the env's active instance.
locale?stringThe rep's interface locale (PIT-9079). The online route adds that language's search stop words to the English ones when it ranks and excerpts. Defaults to the env's ui_locale, then device_locale; sent only when non-empty. An unknown locale is folded to English server-side, never rejected.
max_tokens?numberToken budget for the on-device completion.
querystringThe rep's natural-language question.

PiaSearchAnswerResult ​

Unified piaSearchAnswer result across both serving paths.

Properties ​

PropertyTypeDescription
answerstringThe answer text.
citations?PiaSearchCitation[]Which page(s) of each cited file the answer was grounded in (PIT-8062). Online, document-grounded path only, and only when the instance has the enable_pia_search_page_citations flag on. Optional at RUNTIME, not merely in the types. Consumers load this SDK from an unversioned CDN tag, so the bundle a rep runs may predate the field entirely; and a backend with the flag off omits it from the body. The key is absent in those cases — never null, never []. A cited file with no page information still appears in cited_file_ids: degrade to a file-level citation, never to an empty state.
cited_file_ids?string[]File ids (from the candidate context) the answer drew on. Online path only.
confidence?"high" | "medium" | "low"Model self-reported confidence. Online path only.
degraded?truetrue when the server's echo guard discarded the model's answer (PIT-7914): answer is the fallback text, cited_file_ids is empty and citations is absent. Show no sources for it, keyword matches included. Online path only; absent on every normal answer and from bundles that predate the field.
source"online" | "on_device"Which runtime produced the answer.

PiaSearchCitation ​

Page-level attribution for ONE cited file (PIT-8062).

page_indices is 0-based — the same base openFile(fileId, pageIndex) and the iOS page_index → pdfPageIndex bridge take, so a consumer passes the value straight through and only adds 1 for a user-facing label. The model emits 1-based page numbers (it echoes the label it was shown); next-core's pia-search route converts them exactly once, server-side.

Properties ​

PropertyTypeDescription
file_idstringA file id that also appears in cited_file_ids. That superset relation is a server guarantee, not something this SDK enforces: next-core's pia-search route builds cited_file_ids as the union of the model's own list and every citation's file_id, so a file can be added by a citation but never removed by one. The SDK coerces the two fields independently and does not cross-check them — it has no way to tell a contract violation from a backend newer than itself.
page_indicesnumber[]0-based viewer page indices. The route emits them ascending, deduped, one entry per file and at most 5 per file. Those are again server guarantees, restated here so a consumer knows what to expect; this SDK passes the array through untouched rather than re-normalizing it, so it cannot drift from whatever the route decides. A consumer that renders fixed-width chips should still cap what it draws.

PitcherAPI ​

Extends ​

Methods ​

emit() ​

emit<Key>(eventName, params): void

Type Parameters ​
Type Parameter
Key extends "event"
Parameters ​
ParameterType
eventNameKey
paramsApiEventMap[Key]
Returns ​

void

Inherited from ​

Emitter.emit

off() ​

off<Key>(eventName, fn): void

Type Parameters ​
Type Parameter
Key extends "event"
Parameters ​
ParameterType
eventNameKey
fnEventReceiver<ApiEventMap[Key]>
Returns ​

void

Inherited from ​

Emitter.off

on() ​

on<Key>(eventName, fn): void

Type Parameters ​
Type Parameter
Key extends "event"
Parameters ​
ParameterType
eventNameKey
fnEventReceiver<ApiEventMap[Key]>
Returns ​

void

Inherited from ​

Emitter.on

request() ​

request(type, body, callback): Promise<PitcherResponse>

Parameters ​
ParameterType
typestring
bodyany
callback() => any
Returns ​

Promise<PitcherResponse>


PitcherEnv ​

Properties ​

PropertyTypeDescription
capabilities?string[]Bridge capabilities the running native host advertises (PIT-7682). Only web posts to the API directly and needs no capability check — every NATIVE host (isNativeHost(env.mode)) routes requests through its own bridge handlers. That includes the Tauri desktop/Android shell (pitcher-impact-tauri-ng), which reports its own build target as mode (MACOS / WINDOWS / ANDROID) and states what it supports here. A host that omits a token behaves exactly like an old iPad build — consumers that treat absent as unsupported degrade it safely — so gaining a capability means implementing the forwarding first. Tokens are <request_type>.<field>, e.g. share_canvas.brand_id. Feature-detect on them rather than on version: an older host omits the key entirely, so absent must be treated as unsupported. The shape is not guaranteed either — it crosses a bridge from native code — so check Array.isArray before .includes, or a string value substring-matches the gate open. Defined natively in BridgeCapabilities (pitcher-impact-ios-ng); the strings are a permanent contract because web builds in the wild keep checking them.
client_type?"admin" | "dsr" | "impact" | "impact-canvas-home" | "course"-
crm_shape?Record<string, any>-
device_locale?string-
launch_darkly?LaunchDarklyEnv-
mode"WEB" | "IOS" | "WINDOWS" | "ANDROID" | "MACOS"The HOST the web layer is running inside — mode IS the platform, one value per OS. WEB is the browser; everything else is a NATIVE shell with a JS bridge and an offline mirror (IOS the iPad, MACOS/WINDOWS/ANDROID the Tauri desktop/Android shell). Never write mode === 'IOS' to mean "native" — use isNativeHost(mode) (@sdk/platform), which is mode !== 'WEB' so a host newer than this bundle still takes the native branch. Values are only ever ADDED to this union — never renamed or removed, apps in the field compare them. IOS stays the right test only for iPad HARDWARE: MultipeerConnectivity (peer session), the Salesforce Mobile SDK's SmartStore, on-device inference — subsystems no other host has.
permissions?string[]-
pitcherobject-
pitcher.access_tokenstring-
pitcher.id_tokenstring-
pitcher.impersonated_by?string-
pitcher.instancePitcherInstance-
pitcher.org_config?OrgConfigResponse-
pitcher.organizationPitcherOrg-
pitcher.token_claimsRecord<string, any>-
pitcher.userUser-
state?object-
state.active_canvas_id?string-
state.active_file?object-
state.active_file.idstring-
state.active_section_id?string-
state.canvas_correlation_id?string-
sync_badge_value?number-
ui_locale?stringLocale the user picked in the Pitcher shell. Web only — iOS has no picker and reports device_locale instead. Apps should prefer this and fall back: `ui_locale

PitcherEvent ​

Properties ​

PropertyType
bodyvoid | PitcherEnv | Record<string, any> | File | UpdateLocationPitcherEvent | OpenCanvasPitcherEvent | CreateAndOpenCanvasEvent | OpenCreateCanvasPitcherEvent | StartCallPitcherEvent | SelectAccountPitcherEvent | RouteChangedPitcherEvent | { access_token: string; } | { section_id?: string; url: string; } | { user_triggered: boolean; } | { progress: number; upload_uid: string; } | { payload: any; type: "File Entered" | "File Exited" | "Web File Entered" | "Web File Exited" | "Page Entered" | "Page Exited" | "Page Viewed" | "App Entered" | "App Exited" | "Canvas Entered" | "Canvas Exited" | "Canvas Heartbeat" | "Wizard Entered" | "Wizard Exited" | "Canvas Shared" | "Customer Sentiment Captured" | "Canvas Page Entered" | "Canvas Page Exited" | "Canvas Component Entered" | "Canvas Component Exited" | "Canvas File Downloaded" | "Canvas Downloaded" | "User Feedback Captured" | "User Bug Reported" | "User File Reviewed" | "Hotspot Clicked" | "Collection Player Content Changed" | "Comment Added" | "Comment Replied" | "Comment Assigned" | "Comment Resolved" | "Comment Deleted"; } | Partial<CanvasRetrieve> | Pick<CanvasRetrieve, "id" | "context"> | { file_id?: string; view_id?: string; } | { file_id?: string; view_id?: string; } | { canvas_id?: string; current_page_index?: number; } | { canvas_id?: string; current_page_index?: number; } | { canvas_id?: string; } | { canvas_id?: string; } | { item_id: string; } | { is_in_sharebox: boolean; item_id: string; } | { item_id: string; } | { error?: string; is_in_sharebox: boolean; item_id: string; success: boolean; } | { count: number; } | { id: string; last_error: string; table_name: string; } | PeerConnectivityEvent<Record<string, unknown>, PeerConnectivityContext> | SttPartialEvent | SttInterruptedEvent | { body: string; } | { body: { canvas_id?: string; current_page_index: number; }; } | { body: { canvas_id?: string; current_page_index: number; }; } | { body: { canvas_id: string; }; } | { body: { canvas_id: string; }; } | { body: { route_name: string; route_path: string; }; }
typekeyof PitcherEventMap

PitcherEventMap ​

Properties ​

PropertyTypeDescription
access_token_renewedobjectThe shell renewed the Pitcher access token. Apps that cached env.pitcher.access_token (instead of reading it lazily via getEnv()) should replace their copy with this one. See web-only for now — Impact iOS does not emit this event yet; keep a pull fallback (getEnv() / refreshAccessToken()) for cross-platform apps.
access_token_renewed.access_tokenstring-
analytics_capturedobjectSee iOS-only
analytics_captured.payloadany-
analytics_captured.type"File Entered" | "File Exited" | "Web File Entered" | "Web File Exited" | "Page Entered" | "Page Exited" | "Page Viewed" | "App Entered" | "App Exited" | "Canvas Entered" | "Canvas Exited" | "Canvas Heartbeat" | "Wizard Entered" | "Wizard Exited" | "Canvas Shared" | "Customer Sentiment Captured" | "Canvas Page Entered" | "Canvas Page Exited" | "Canvas Component Entered" | "Canvas Component Exited" | "Canvas File Downloaded" | "Canvas Downloaded" | "User Feedback Captured" | "User Bug Reported" | "User File Reviewed" | "Hotspot Clicked" | "Collection Player Content Changed" | "Comment Added" | "Comment Replied" | "Comment Assigned" | "Comment Resolved" | "Comment Deleted"-
canvas_close_requestedobject-
canvas_close_requested.canvas_id?string-
canvas_closedobject-
canvas_closed.bodyobject-
canvas_closed.body.canvas_idstring-
canvas_context_storedPick<CanvasRetrieve, "id" | "context">-
canvas_next_button_clickedobject-
canvas_next_button_clicked.bodyobject-
canvas_next_button_clicked.body.canvas_id?string-
canvas_next_button_clicked.body.current_page_indexnumber-
canvas_open_requestedobject-
canvas_open_requested.canvas_id?string-
canvas_openedobject-
canvas_opened.bodyobject-
canvas_opened.body.canvas_idstring-
canvas_page_next_requestedobject-
canvas_page_next_requested.canvas_id?string-
canvas_page_next_requested.current_page_index?number-
canvas_page_previous_requestedobject-
canvas_page_previous_requested.canvas_id?string-
canvas_page_previous_requested.current_page_index?number-
canvas_previous_button_clickedobject-
canvas_previous_button_clicked.bodyobject-
canvas_previous_button_clicked.body.canvas_id?string-
canvas_previous_button_clicked.body.current_page_indexnumber-
canvas_updatedRecord<string, any>-
canvas_updated_successPartial<CanvasRetrieve>-
content_list_refresh_requestedvoidSee iOS-only
create_and_open_canvasCreateAndOpenCanvasEvent-
entered_fullscreenvoidSee WEB-only
env_changedPitcherEnv-
exited_fullscreenvoidSee WEB-only
file_closedobject-
file_closed.file_id?string-
file_closed.view_id?string-
file_downloadedFileSee iOS-only
file_openedobject-
file_opened.file_id?string-
file_opened.view_id?string-
file_upload_progressobjectSee iOS-only
file_upload_progress.progressnumber-
file_upload_progress.upload_uidstring-
file:downloadobject-
file:download.bodystring-
global_photo_capturedobjectSee iOS-only
global_photo_captured.section_id?string-
global_photo_captured.urlstring-
item_sharebox_add_completedobject-
item_sharebox_add_completed.error?string-
item_sharebox_add_completed.is_in_shareboxboolean-
item_sharebox_add_completed.item_idstring-
item_sharebox_add_completed.successboolean-
item_sharebox_add_requestedobject-
item_sharebox_add_requested.item_idstring-
item_sharebox_status_requestedobject-
item_sharebox_status_requested.item_idstring-
item_sharebox_status_updatedobject-
item_sharebox_status_updated.is_in_shareboxboolean-
item_sharebox_status_updated.item_idstring-
network_connection_establishedvoidSee iOS-only
network_connection_lostvoidSee iOS-only
non_files_sync_finishedobjectSee iOS-only
non_files_sync_finished.user_triggeredboolean-
open_canvasOpenCanvasPitcherEvent-
open_create_canvasOpenCreateCanvasPitcherEvent-
peer_connectivity_eventPeerConnectivityEvent-
photos_capturedvoidSee iOS-only
route_change_requestedRouteChangedPitcherEventSee iOS-only
route_changedobject-
route_changed.bodyobject-
route_changed.body.route_namestring-
route_changed.body.route_pathstring-
select_accountSelectAccountPitcherEvent-
start_callStartCallPitcherEvent-
stt.interruptedSttInterruptedEventSpeech-to-text dictation session ended WITHOUT a stt.stop (e.g. a call recording preempted the mic on iOS, or a fatal capture error on web). Stop waiting for partials and reset the field. Cross-platform.
stt.partialSttPartialEventSpeech-to-text dictation partial (PITCHER_REQUEST stt.start session). Cross-platform (iOS bridge and the web host engine). text is the FULL transcript so far — replace, don't append.
submit_postcall_clickedvoid-
sync_badge_value_reportedobjectSee iOS-only
sync_badge_value_reported.countnumber-
sync_box_resolve_error_tappedobjectSee iOS-only Fired when user taps "Fix" on a failed SFDC sync error in the Syncbox. The id may be a Salesforce ID, external ID, or locally-generated temp ID.
sync_box_resolve_error_tapped.idstringRecord ID that failed to sync (SF ID, external ID, or temp ID like PIT_...)
sync_box_resolve_error_tapped.last_errorstringSalesforce sync error message
sync_box_resolve_error_tapped.table_namestringSFDC object/soup name (e.g. "Event", "Call2_vod__c")
ui:hide-modalvoid-
ui:show-modalvoid-
update_locationUpdateLocationPitcherEvent-

PitcherInterface ​

Extends ​

Properties ​

PropertyType
APIPitcherAPI

Methods ​

emit() ​

emit<Key>(eventName, params): void

Type Parameters ​
Type Parameter
Key extends EventKey<PitcherEventMap>
Parameters ​
ParameterType
eventNameKey
paramsPitcherEventMap[Key]
Returns ​

void

Inherited from ​

Emitter.emit

off() ​

off<Key>(eventName, fn): void

Type Parameters ​
Type Parameter
Key extends EventKey<PitcherEventMap>
Parameters ​
ParameterType
eventNameKey
fnEventReceiver<PitcherEventMap[Key]>
Returns ​

void

Inherited from ​

Emitter.off

on() ​

on<Key>(eventName, fn): void

Type Parameters ​
Type Parameter
Key extends EventKey<PitcherEventMap>
Parameters ​
ParameterType
eventNameKey
fnEventReceiver<PitcherEventMap[Key]>
Returns ​

void

Inherited from ​

Emitter.on


PitcherMessage ​

Properties ​

PropertyType
requestobject
request.body?Record<string, any>
request.idstring
request.typestring
type"PITCHER_EVENT"

PitcherResponse ​

Properties ​

PropertyType
requestobject
request.body?Record<string, any>
request.idstring
request.typestring
responseobject
response.body?Record<string, any>
response.statusPitcherResponseStatus
typeRESPONSE

QueryPayload ​

Payload for executing a query.

Properties ​

PropertyTypeDescription
args?string[][]Optional arguments for the query.
querystringThe query string to execute.

RouteChangedPitcherEvent ​

Properties ​

PropertyType
route_namestring
route_pathstring

SelectAccountPitcherEvent ​

Preselects an account in the meeting bar without starting a call. Used by the SFDC passthrough Prepare flow.

Properties ​

PropertyType
account?object
account.idstring
account.name?string

SharePayload ​

Payload for iOS sharing dialog.

Properties ​

PropertyTypeDescription
body?stringBody
subject?stringSubject
textstringText to be shared.

ShowPeerSessionRequestPayload ​

Payload for showing peer session dialog.

Properties ​

PropertyTypeDescription
xnumberThe x-coordinate of the button that triggered the action.
ynumberThe y-coordinate of the button that triggered the action.

ShowSyncboxRequestPayload ​

Payload for showing syncbox dialog.

Properties ​

PropertyTypeDescription
xnumberThe x-coordinate of the button that triggered the action.
ynumberThe y-coordinate of the button that triggered the action.

SlideSearchPayload ​

Payload for slideSearch (PIT-9090) — ranks the slides of one wizard template configuration for a query through the next-core pia-prepare/slide-search route. Online only.

visible_group_names / visible_slide_refs are the caller's own visibility evaluation (what the rep can currently see). The server intersects them with the configuration and the caller's ACL; they are a scope hint, not a security boundary.

Properties ​

PropertyTypeDescription
canvas_idstringThe canvas whose context holds the configuration — the deck being built, or a template for a headless call.
instance_id?stringInstance the configuration belongs to. Defaults to the env's active instance.
locale?stringLanguage for reason. Folded server-side to a supported locale; English otherwise.
max_results?number1..10, default 10.
querystringThe rep's keyword or question (≤ 500 chars).
section_list_idstringKey in that canvas's context.section_list_config.
visible_group_namesstring[]Group names currently visible (1..200). Role groups (cover/agenda) are ignored.
visible_slide_refsstring[]Visible slide refs (1..1000): section canvas ids, or <fileId>_page_<n> with a 0-based page.

SlideSearchResult ​

Result of slideSearch.

Properties ​

PropertyTypeDescription
mode"full_realm" | "compact" | "prefiltered"How the realm reached the model: every slide in full, every slide compact, or a lexical pre-cut.
realm_sizenumberSlides in the narrowed, ACL-filtered realm.
resultsSlideSearchResultItem[]-

SlideSearchResultItem ​

One ranked slide from slideSearch.

Properties ​

PropertyTypeDescription
group_labelstring`displayName
group_namestringThe group's internal name (stable key).
reasonstring≤ 160 chars, in the requested locale.
relevance"high" | "medium" | "low"-
scorenumberOrdinal only — sort key, not a probability.
slide_refstringThe ref exactly as sent.
snippetstring≤ 200 chars, verbatim from the slide; may be ''.
snippet_source"model" | "lexical"model when the model's quote was verified verbatim, lexical when the server substituted one.
titlestring-

StartCallPitcherEvent ​

Properties ​

PropertyTypeDescription
account?object-
account.idstring-
account.namestring-
canvas_id?string-
contact_ids?string[]-
edit_mode?"true" | "false"-
jump_to_postcall?booleanPIT-7462: start and immediately stop the call, opening the postcall form. The host seeds the call's eventDate from the scheduled meeting record (StartDateTime/EndDateTime) so the form never shows a 0-second duration.
meeting_id?stringCRM meeting/event id. When provided, the host fetches the meeting through its own CRM provider so the meeting bar shows the proper subject/time instead of "Unscheduled".
post_action?string-
post_action_path?string-

SttAvailabilityResult ​

Result of stt.availability — a side-effect-free capability check an app should call BEFORE offering a mic button. It does NOT prompt for the microphone or download any model; it only reports whether dictation could be started, so the UI can hide/disable the control up front.

Properties ​

PropertyTypeDescription
availablebooleanDictation can be started right now — the feature is enabled AND an engine can run on this device.
engineSttEngineKind | nullThe engine that would answer stt.start, or null when unavailable. Note "webspeech" sends audio off-device, so a UI may want to reflect that.
reason?SttUnavailableReasonPresent when available is false: "disabled" (feature flag off) or "unsupported" (no engine on this device / browser).

SttInterruptedEvent ​

Body of the stt.interrupted event (host → JS; native bridge on iOS, the Impact host engine on web). Fires only when a session ends WITHOUT a stt.stop — a normal stt.stop does NOT fire this.

Properties ​

PropertyTypeDescription
reasonstringWhy the session ended — an opaque, host-specific string; don't parse it, just stop waiting for partials and reset the field. Known values: - iOS: "preempted" — a higher-priority call recording took the mic. - web: "error:capture_ended" (mic/track ended), "error:<code>" (a fatal Web Speech recognition error, e.g. "error:network"), "error:restart_failed".
session_idstringSession that was interrupted.

SttPartialEvent ​

Body of the stt.partial event (host → JS; native bridge on iOS, the Impact host engine on web). Fires roughly every ~2s while recording.

Properties ​

PropertyTypeDescription
indexnumberPer-session monotonic counter (only advances when text changes) for ordering / de-dupe.
session_idstringSession the partial belongs to.
textstringThe FULL transcript so far — NOT a delta. Replace the field's dictation content with it, don't append.

SttStartPayload ​

Payload for stt.start — cross-platform (identical shape on iOS and web). Keys are already snake_case, so LowLevelApi's snakeCaseKeys transform is a no-op (no RAW_PAYLOAD_METHODS entry needed; the vocabulary string values are left untouched by the key-only transform).

Properties ​

PropertyTypeDescription
language?string | nullISO 639-1 code (e.g. "en") to force a language. Omit/null for auto-detect (the default, like native iOS dictation).
session_idstringCaller-chosen session id. All stt.partial / stt.interrupted events and the matching stt.stop are keyed by it. Re-starting with the same id replaces that session.
vocabulary?string[]Proper nouns likely to be spoken (the current call's CRM contact / account / product names). Biases recognition toward correct spelling (e.g. "Dr. Sarah O'Brien" instead of "Dr. Starwhop Brine"). Send the relevant names, not the whole CRM — it's length-capped on the native side.

SttStopPayload ​

Payload for stt.stop — cross-platform.

Properties ​

PropertyTypeDescription
session_idstringThe session_id passed to the matching stt.start.

SttStopResult ​

Result of stt.stop — cross-platform.

Properties ​

PropertyTypeDescription
transcriptstringThe final, full transcript for the session.

SubmitUserFeedbackPayload ​

Payload for submitting user feedback.

Properties ​

PropertyTypeDescription
dataRecord<string, any>Data associated with the feedback.
type"bug" | "feedback"Type of feedback being submitted.

TtsSpeakPayload ​

Payload for tts.speak. The exact native wire contract — keys are single words, so LowLevelApi's snakeCaseKeys transform is a no-op; no RAW_PAYLOAD_METHODS entry is needed.

Properties ​

PropertyTypeDescription
language?stringBCP-47/ISO language tag (e.g. "en-US"). If given, an installed offline voice is required, else the call rejects with TTS_VOICE_UNAVAILABLE. Omit to use the system voice.
pitch?numberSpeech pitch; clamped 0.5…2.0 (1.0 = normal). Web-only caveat: the on-device Supertonic engine has no pitch control and silently ignores this — only honored when Web Speech answers the call (which engine answers is not observable to the caller).
rate?numberSpeech rate; clamped to the platform min…max. Web-only caveat: the range differs per engine — Web Speech clamps 0.1…10, the on-device Supertonic engine clamps 0.5…2 (extreme values push its duration model outside what it was trained on) — with no way for the caller to know which engine answered a given call.
textstringThe text to speak. Empty/whitespace rejects with TTS_EMPTY_TEXT.

TtsSpeakResult ​

Result of tts.speak. The promise resolves when the utterance FINISHES.

Properties ​

PropertyTypeDescription
completedbooleantrue → finished speaking naturally; false → it was stopped (tts.stop) or replaced by a newer tts.speak (only one utterance is active at a time).

UiOpenCollectionPlayerOverlayGroup ​

Properties ​

PropertyTypeDescription
idstringFile ID
namestringFile name
slides?object[]Optional: specific slides/pages to show from the file

UiOpenCollectionPlayerOverlayRequest ​

Properties ​

PropertyTypeDescription
groupsUiOpenCollectionPlayerOverlayGroup[]Array of files/slides to be played in the collection
namestringThe display name for the collection

UiOpenGlobalPopupRequest ​

Properties ​

PropertyTypeDescription
app_namestringName of the app to open
extra_context?Record<string, any>Extra context to pass to the app

UiOpenGlobalPopupResponse ​

Properties ​

PropertyTypeDescription
successbooleanWhether the popup was successfully opened

UiOpenSharingSettingsRequest ​

Properties ​

PropertyType
default_auth_strategy?string
filesobject[]

UiOpenSharingSettingsResponse ​

Properties ​

PropertyTypeDescription
canvas_name?stringPIT-5865 — the name the rep typed for the ShareBox in the sharing modal, already resolved (blank fell back to the default timestamp name, and it is capped at 100 chars). Deliberately a SIBLING of settings rather than a field inside it: settings is stored verbatim by the calling app as its pending-ShareBox sharing settings and rides into saved drafts, so a canvas name has no business in there. Absent on older hosts — the caller falls back to its own default.
settings?object-
settings.allow_download?boolean-
settings.allowed_domains?string[]-
settings.allowed_emails?string[]-
settings.auth_strategy"none" | "any_email" | "specified_emails" | "specified_domains" | "verified_emails" | "verified_domains"-
settings.brand_id?stringPIT-7682 — id of an entry in the instance's shared_link_brands setting, present only when the rep made a deliberate pick in the sharing modal. The host collects it; the app that later creates the link (ng-emails-app's ShareBox POST) forwards it verbatim to /shared-links, which is the only place it means anything — the brand is baked into the short URL at creation. Absent means "no choice", and the API applies the brand the rep last used on the instance, then the instance default.
settings.valid_until_days?number | null-
user_action"cancelled" | "confirmed"-

UiPreselectSfdcMeetingIdRequest ​

Properties ​

PropertyTypeDescription
eventIdstringSalesforce Meeting ID

UiPreselectSfdcMeetingIdResponse ​

Properties ​

PropertyTypeDescription
eventSfEvent | nullSalesforce Event

UiToastRequest ​

Properties ​

PropertyTypeDefault valueDescription
closable?booleantrueVisibility of the close button, default is true
duration?number3500Optional, value in milliseconds
keepAliveOnHover?booleantrueToast won't be hidden as long as it is hovered
messagestring**REQUIRED**Text to show inside the toast
showIcon?booleantrueSet to false to hide the icon
type"error" | "info" | "warning" | "success" | "loading"**REQUIRED**Type of the toast, influences the default icon

UpdateLocationOnGetRoutesRequest ​

Interface for the 'get_routes_request' update location action.

Extends ​

Properties ​

PropertyTypeDescriptionOverrides
action"get_routes_request"The action type.UpdateLocation.action
appstringThe application identifier.-

UpdateLocationOnGetRoutesResponse ​

Interface for the 'get_routes_response' update location action.

Extends ​

Properties ​

PropertyTypeDescriptionOverrides
action"get_routes_response"The action type.UpdateLocation.action
appstringThe application identifier.-
routesLocationRoutesThe routes in the response.-

UpdateLocationOnMounted ​

Interface for the 'mounted' update location action.

Extends ​

Properties ​

PropertyTypeDescriptionOverrides
action"mounted"The action type.UpdateLocation.action
appstringThe application identifier.-

UpdateLocationOnRegister ​

Interface for the 'register' update location action.

Extends ​

Properties ​

PropertyTypeDescriptionOverrides
action"register"The action type.UpdateLocation.action
child_appstringThe child application identifier.-
parent_app?stringThe parent application identifier (optional).-
path?stringThe path of the route (optional).-
query?Record<string, any>The query parameters of the route (optional).-

UpdateLocationOnRestore ​

Interface for the 'restore' update location action.

Extends ​

Properties ​

PropertyTypeDescriptionOverrides
action"restore"The action type.UpdateLocation.action
routesRecord<string, Omit<LocationRoute, "is_mounted">>The routes to be restored.-

UpdateLocationOnRestoreCompleted ​

Interface for the 'restore_completed' update location action.

Extends ​

Properties ​

PropertyTypeDescriptionOverrides
action"restore_completed"The action type.UpdateLocation.action
appstringThe application identifier.-
pathstringThe path of the route.-
queryRecord<string, any>The query parameters of the route.-

UpdateLocationOnUnregister ​

Interface for the 'unregister' update location action.

Extends ​

Properties ​

PropertyTypeDescriptionOverrides
action"unregister"The action type.UpdateLocation.action
appstringThe application identifier.-

UpdateLocationOnUpdate ​

Interface for the 'update' update location action.

Extends ​

Properties ​

PropertyTypeDescriptionOverrides
action"update"The action type.UpdateLocation.action
routesRecord<string, Omit<LocationRoute, "is_restoring" | "is_mounted" | "is_inactive">>The routes to be updated.-

UpsertCRMObject ​

Represents a single CRM object to be upserted.

Properties ​

PropertyTypeDescription
external_id_path?stringOptional external ID path for identifying records during upsert. Used to determine if a record should be created or updated. Important: Always provide this field when performing updates to ensure records are matched correctly. Without it, the operation may create duplicate records instead of updating existing ones.
objectsRecord<string, any>[]Array of objects to upsert. Each object is a key-value map of field names to values. Important: When creating new records, each object must include an explicit identifier field (e.g., Id) passed from the frontend. The backend does not auto-generate IDs.
table_namestringThe name of the CRM table/object to upsert into.

UpsertCRMObjectsPayload ​

Payload for upserting CRM objects (iOS only).

Properties ​

PropertyTypeDescription
objectsUpsertCRMObject[]Array of CRM objects to be upserted.

WeeklyFocusRankAccountContext ​

Properties ​

PropertyType
sectionsobject[]

WeeklyFocusRankMeeting ​

Properties ​

PropertyTypeDescription
account_idstring-
account_namestring-
attendee_count?number-
event_idstring-
meeting_subjectstring-
meeting_timestringISO datetime, or a date-only 'YYYY-MM-DD'.

WeeklyFocusRankPayload ​

Payload for weeklyFocusRank — one high-level call that ranks the rep's next-7-days meetings, routed on-device (iOS Gemma) or online (next-core Bedrock route). Calendar fetching stays caller-side: the caller owns the meeting list and passes it in.

Properties ​

PropertyTypeDescription
context?Record<string, WeeklyFocusRankAccountContext>One CRM context bundle per UNIQUE account, keyed by account_id (open tasks, opportunity state, recent calls — whatever the admin mapped).
instance_id?stringInstance to rank in. Defaults to the env's active instance.
max_picks?numberHow many meetings to pick (1-8, default 5).
meetingsWeeklyFocusRankMeeting[]The rep's meetings. Windowed to today + 6 days by the SDK/route — send the whole calendar if that is what you have.
one_per_account?booleanKeep at most one pick per account. Default true.
time_zone?stringIANA zone the 7-day window is measured in. Defaults to the device's zone, which is the rep's zone on-device; ALWAYS sent to the online route, whose server clock is UTC.

WeeklyFocusRankPick ​

One ranked pick, resolved back to a real meeting id.

Properties ​

PropertyTypeDescription
event_idstring-
ranknumber1 = highest priority; unique and contiguous from 1.
reasonstring-

WeeklyFocusRankResult ​

Unified weeklyFocusRank result across both serving paths.

Properties ​

PropertyTypeDescription
collapsed_countnumberMeetings in the 7-day window that were NOT picked — including those the ranking never saw. The surface renders this as "+N more this week".
herostringOne or two sentences summarising the week. Empty when the week is empty.
source"online" | "on_device"Which runtime produced the ranking.
topWeeklyFocusRankPick[]The picked meetings, highest priority first.

Type Aliases ​

AdminCaptureAppErrorRequest ​

AdminCaptureAppErrorRequest = Record<string, any>

Error object to send to Pitcher sentry instance


AdminEnv ​

AdminEnv = object

Represents the admin environment.

Properties ​

client_type? ​

optional client_type?: typeof CLIENT_TYPE[keyof typeof CLIENT_TYPE]

crm_shape? ​

optional crm_shape?: Record<string, any>

launch_darkly? ​

optional launch_darkly?: LaunchDarklyEnv

mode? ​

optional mode?: PitcherEnv["mode"]

Pitcher environment settings.

pitcher ​

pitcher: PitcherEnv["pitcher"]

state? ​

optional state?: PitcherEnv["state"]

ui_locale? ​

optional ui_locale?: PitcherEnv["ui_locale"]


AdminMessage ​

AdminMessage<Payload> = object

Represents an admin message with a specific payload.

Type Parameters ​

Type ParameterDefault typeDescription
PayloadanyThe type of the message data.

Properties ​

body ​

body: object

Body of the message containing the message type and payload data.

NameTypeDescription
dataPayloadPayload data for the message.
typetypeof ADMIN_MESSAGE_TYPES[keyof typeof ADMIN_MESSAGE_TYPES]Type of the admin message.
id ​

id: string

Unique identifier for the message.

type ​

type: typeof ADMIN_MESSAGE

Type of the admin message.


AdminMessagePayloads ​

AdminMessagePayloads = object

Properties ​

admin_env_changed ​

admin_env_changed: AdminEnv


AdminOpenCollectionPlayerOverlayGroup ​

AdminOpenCollectionPlayerOverlayGroup = object

Properties ​

id ​

id: string

name ​

name: string

slides? ​

optional slides?: object[]

NameType
file_idstring
slide_indexnumber

AdminOpenCollectionPlayerOverlayRequest ​

AdminOpenCollectionPlayerOverlayRequest = object

Properties ​

groups ​

groups: AdminOpenCollectionPlayerOverlayGroup[]

name ​

name: string


AdminRequest ​

AdminRequest<Payload> = object

Represents an admin request with a specific payload.

Type Parameters ​

Type ParameterDefault typeDescription
PayloadanyThe type of the payload data.

Properties ​

body ​

body: object

Body of the request containing the method type and payload data.

NameTypeDescription
dataPayloadPayload data for the request.
typetypeof ADMIN_API_METHOD_TYPES[keyof typeof ADMIN_API_METHOD_TYPES]Type of the admin API method.
id ​

id: string

Unique identifier for the request.

type ​

type: typeof ADMIN_API_TYPES["ADMIN_REQUEST"]

Type of the admin API request.


AdminResponse ​

AdminResponse<Response> = object

Represents an admin response with a specific payload.

Type Parameters ​

Type ParameterDefault typeDescription
ResponseanyThe type of the response data.

Properties ​

body ​

body: Response

Body of the response containing the response data.

id ​

id: string

Unique identifier for the response.

type ​

type: typeof ADMIN_API_TYPES["ADMIN_RESPONSE"]

Type of the admin API response.


AdminSelectAgendaRequest ​

AdminSelectAgendaRequest = object

Properties ​

attach_to? ​

optional attach_to?: AgendaSelectorProps["attachTo"]

initial_agenda? ​

optional initial_agenda?: AgendaSelectorProps["initialAgenda"]


AdminSelectAgendaResponse ​

AdminSelectAgendaResponse = object

Properties ​

content? ​

optional content?: Agenda

Selected content

user_action ​

user_action: "cancelled" | "selected"

User action result


AdminSelectCanvasesRequest ​

AdminSelectCanvasesRequest = object

Properties ​

allowed_ids? ​

optional allowed_ids?: Canvas["id"][]

Array of canvas ids to include in the picker (optional).

allowed_types? ​

optional allowed_types?: ("canvas" | "canvas-template" | "section" | "section-template")[]

Array of canvas types to include in the picker (optional).

initial_metadata_filters? ​

optional initial_metadata_filters?: Record<string, any>

Initial metadata filters to apply to the picker (optional).

selections? ​

optional selections?: CanvasSelection[]

Array of selections.

sequencing_key? ​

optional sequencing_key?: string

The sequencing key to use for ordering the canvases (optional).


AdminSelectCanvasesResponse ​

AdminSelectCanvasesResponse = object

Properties ​

canvases? ​

optional canvases?: Canvas[]

Selected canvases

user_action ​

user_action: "cancelled" | "selected"

User action result


AdminSelectCollectionPlayerRequest ​

AdminSelectCollectionPlayerRequest = object

Properties ​

attach_to? ​

optional attach_to?: CollectionSelectorProps["attachTo"]

close_on_settings? ​

optional close_on_settings?: CollectionSelectorProps["closeOnSettings"]

hide_close? ​

optional hide_close?: CollectionSelectorProps["hideClose"]

initial_data? ​

optional initial_data?: CollectionSelectorProps["initialData"]

initial_metadata_filters? ​

optional initial_metadata_filters?: CollectionSelectorProps["initialMetadataFilters"]

open_settings? ​

optional open_settings?: CollectionSelectorProps["openSettings"]

readonly_name? ​

optional readonly_name?: CollectionSelectorProps["readonlyName"]

translations? ​

optional translations?: CollectionSelectorProps["translations"]


AdminSelectCollectionPlayerResponse ​

AdminSelectCollectionPlayerResponse = object

Properties ​

content? ​

optional content?: CollectionPlayer

Selected content

user_action ​

user_action: "cancelled" | "selected" | "settings"

User action result


AdminSelectContentRequest ​

AdminSelectContentRequest = object

Represents a request to select content.

Properties ​

allow_converted_deck_pages? ​

optional allow_converted_deck_pages?: boolean

Lets the user pick single pages of a PPTX deck converted to HTML, as with a PDF (optional). Such a page has a page image but no PDF behind it, so set this only where a page is shown as an image.

allowed_ids? ​

optional allowed_ids?: File["id"][]

Array of file ids to include in the picker (optional).

allowed_original_extensions? ​

optional allowed_original_extensions?: string[]

Array of file extensions to scope out list of the results (optional). Only files with these extensions will be shown.

allowed_selector_types? ​

optional allowed_selector_types?: SelectorType[]

Array of selector types to include in the picker (optional).

content_type? ​

optional content_type?: "file" | "slide" | "content"

Type of content to allow selection for (optional). file: Files only slide: Slides only content: Files and slides

Default ​
ts
'content'
disable_no_pptx_data? ​

optional disable_no_pptx_data?: boolean

Disables files from selection which do not have pptx_data in metadata object (optional).

disable_no_sharable? ​

optional disable_no_sharable?: boolean

Disables files from selection which are not sharable (optional).

initial_metadata_filters? ​

optional initial_metadata_filters?: Record<string, any>

Initial metadata filters to apply to the picker (optional).

max_selections? ​

optional max_selections?: number

Maximum number of selections allowed (optional).

min_selections? ​

optional min_selections?: number

Minimum number of selections allowed (optional).

only_allow_content_pdf_pages? ​

optional only_allow_content_pdf_pages?: boolean

Only allow content pdf pages (optional). User will be forced to select a page from the pdf.

selections? ​

optional selections?: Selection[]

List of selections to hydrate the picker with.

style? ​

optional style?: Record<string, any>

CSS style to apply to the picker (optional).


AdminSelectContentResponse ​

AdminSelectContentResponse = object

Represents a response to a content selection request.

Properties ​

content? ​

optional content?: (SelectedFile | SelectedPage)[]

Selected content, if any.

user_action ​

user_action: "cancelled" | "selected"

Action taken by the user.


CRMServiceType ​

CRMServiceType = "salesforce" | "dynamics" | "sap"


DsrEnv ​

DsrEnv = Pick<PitcherEnv, "mode" | "launch_darkly" | "client_type" | "state"> & object

Type Declaration ​

pitcher? ​

optional pitcher?: object

pitcher.access_token? ​

optional access_token?: string


DsrMessage ​

DsrMessage<Payload> = object

Type Parameters ​

Type ParameterDefault type
Payloadany

Properties ​

body ​

body: object

NameType
dataPayload
typetypeof DSR_MESSAGE_TYPES[keyof typeof DSR_MESSAGE_TYPES]
id ​

id: string

type ​

type: typeof DSR_MESSAGE


DsrMessagePayloads ​

DsrMessagePayloads = object

Properties ​

dsr_env_changed ​

dsr_env_changed: DsrEnv


DsrRequest ​

DsrRequest<Payload> = object

Type Parameters ​

Type ParameterDefault type
Payloadany

Properties ​

body ​

body: object

NameType
dataPayload
typetypeof DSR_API_METHOD_TYPES[keyof typeof DSR_API_METHOD_TYPES]
id ​

id: string

type ​

type: typeof DSR_API_TYPES["DSR_REQUEST"]


DsrResponse ​

DsrResponse<Response> = object

Type Parameters ​

Type ParameterDefault type
Responseany

Properties ​

body ​

body: Response

id ​

id: string

type ​

type: typeof DSR_API_TYPES["DSR_RESPONSE"]


FolderListRequest ​

FolderListRequest = object

Properties ​

fields? ​

optional fields?: string

filters? ​

optional filters?: Record<string, any>

id__in? ​

optional id__in?: string[]

name? ​

optional name?: string

ordering? ​

optional ordering?: string

page? ​

optional page?: number

page_size? ​

optional page_size?: number

optional search?: string


JsApiLocation ​

JsApiLocation = "ui" | "admin" | "dsr" | "impact"


ListFilesPayload ​

ListFilesPayload = Partial<Omit<File, "type">> & object

Payload for listing files with optional filters.

Type Declaration ​

content_type? ​

optional content_type?: File["content_type"] | File["content_type"][]

Filter for content types.

created_at__range? ​

optional created_at__range?: string

Range filter for creation date.

expires_at__range? ​

optional expires_at__range?: string

Range filter for expiration date.

id__in? ​

optional id__in?: string

Filter for file IDs.

type? ​

optional type?: File["type"] | File["type"][]

Filter for file types.

updated_at__range? ​

optional updated_at__range?: string

Range filter for update date.


LocationRoutes ​

LocationRoutes = Record<string, LocationRoute>

A record of location routes.


PeerConnectivityAction ​

PeerConnectivityAction = typeof PeerConnectivityActions[keyof typeof PeerConnectivityActions] | string


PeerConnectivityEventHandler ​

PeerConnectivityEventHandler<TData, TContext> = (event) => void

Type Parameters ​

Type ParameterDefault type
TData extends Record<string, unknown>Record<string, unknown>
TContext extends PeerConnectivityContextPeerConnectivityContext

Parameters ​

ParameterType
eventPeerConnectivityEvent<TData, TContext>

Returns ​

void


PitcherMode ​

PitcherMode = PitcherEnv["mode"]


PitcherPlatformType ​

PitcherPlatformType = typeof PLATFORM_TYPE[keyof typeof PLATFORM_TYPE]


ShareResponse ​

ShareResponse = object

Represents a response to a iOS sharing dialog.

Properties ​

activity_type? ​

optional activity_type?: string

Type of share action.

user_action ​

user_action: "cancelled" | "shared"

Action taken by the user.


SttEngineKind ​

SttEngineKind = "native" | "whisper" | "webspeech"

Which engine answers stt.start on the current platform: "native" (iOS on-device Speech), "whisper" (web on-device Whisper) or "webspeech" (web cloud fallback, audio leaves the device).


SttErrorCode ​

SttErrorCode = "STT_DISABLED" | "STT_DEVICE_UNSUPPORTED" | "STT_MODEL_NOT_READY" | "STT_BUSY" | "STT_MIC_PERMISSION_DENIED" | "STT_NOT_RECORDING" | "STT_CAPTURE_FAILED" | "STT_ERROR"

Error codes returned on a rejected stt.start / stt.stop — cross-platform (iOS bridge AND the web host engines). Surfaced verbatim in the rejected request's error body (iOS: error_code/errorCode; web: the error message / reason string — read them uniformly via api.sttErrorCode).

  • STT_DISABLED — the enable_stt_dictation config flag is off for this instance.
  • STT_DEVICE_UNSUPPORTED — the device can't run the on-device model.
  • STT_MODEL_NOT_READY — the whisper model isn't downloaded yet. Trigger a model download (ai.download_model with "whisper"), then retry stt.start.
  • STT_BUSY — the mic is held by another session (a live call recording, or another dictation). Surface a "mic in use" hint / prompt to stop the other session.
  • STT_MIC_PERMISSION_DENIED — microphone permission was denied.
  • STT_NOT_RECORDING — stt.stop for a session_id that isn't active.
  • STT_CAPTURE_FAILED / STT_ERROR — generic capture / other failure.

SttUnavailableReason ​

SttUnavailableReason = "disabled" | "unsupported"

Why dictation is unavailable: "disabled" (the enable_stt_dictation instance flag is off) or "unsupported" (no engine can run on this device).


SupportedEnvLocale ​

SupportedEnvLocale = typeof supportedEnvLocales[number]


TtsErrorCode ​

TtsErrorCode = "TTS_EMPTY_TEXT" | "TTS_VOICE_UNAVAILABLE" | "TTS_MODEL_NOT_READY" | "TTS_ERROR"

Error codes returned on tts.speak — as a bridge APIError ({ code, message, details }) on iOS, or in the host { reason } on web.

  • TTS_EMPTY_TEXT — no text was provided.
  • TTS_VOICE_UNAVAILABLE — a language was requested but no installed voice matches. The message tells the user to download it (iOS Settings › Accessibility › Spoken Content › Voices) — surface it so the UI can prompt.
  • TTS_MODEL_NOT_READY — the web on-device model isn't downloaded/loaded yet. When Web Speech is supported, the web host retries transparently through it, so apps normally never see this. It only surfaces when Web Speech is unavailable; if the Web Speech retry itself fails, its error propagates instead.
  • TTS_ERROR — unexpected fallback.

UiAppFullscreenChangeRequest ​

UiAppFullscreenChangeRequest = object

Properties ​

is_fullscreen ​

is_fullscreen: boolean

Whether the app is now showing content fullscreen (true) or has left fullscreen (false)


UiAppOpenRequestPayload ​

UiAppOpenRequestPayload = Record<string, string>

A canvas link's allowlisted route query, sent to the app already on screen, e.g. { training_id }.


UiAppResizeRequest ​

UiAppResizeRequest = object

Properties ​

height ​

height: number

Requested height as the number of pixels


UiAppSetDataPayload ​

UiAppSetDataPayload = object

Properties ​

canvas ​

canvas: CanvasRetrieve

Canvas data

canvas_correlation_id ​

canvas_correlation_id: string | undefined

Canvas correlation ID for tracking

client ​

client: string | null

Client name

component_id ​

component_id: string

Component ID

display_mode ​

display_mode: string | undefined

Display mode

full_screen_mode ​

full_screen_mode: boolean | undefined

Full screen mode status

height ​

height: string | undefined

Height of the canvas

in_call ​

in_call: boolean

Call status

is_edit_mode ​

is_edit_mode: boolean

Edit mode status

platform ​

platform: string | undefined

Platform name

section_index ​

section_index: number | null

Section index in section list

section_list_id ​

section_list_id: string | null

Section list ID

settings ​

settings: EmbeddableProps["settings"] | null

Embeddable settings

used_in_section ​

used_in_section: CanvasSection | null

Section used in canvas

user ​

user: User | null

User information

width ​

width: string | undefined

Width of the canvas


UiAppUpdateDataPayload ​

UiAppUpdateDataPayload = object

Properties ​

in_call ​

in_call: boolean

Call status

is_edit_mode ​

is_edit_mode: boolean

Edit mode status


UiBroadcastRequest ​

UiBroadcastRequest = Record<string, any>


UiCanvasNavigatePageRequest ​

UiCanvasNavigatePageRequest = object

Properties ​

page ​

page: ComponentNode["id"]

The id of the component we want to navigate to


UiCanvasUpdatedPayload ​

UiCanvasUpdatedPayload = object

Properties ​

canvas ​

canvas: CanvasRetrieve

Canvas data


UiCaptureAppErrorRequest ​

UiCaptureAppErrorRequest = Record<string, any>

Error object to send to Pitcher sentry instance


UiCompletePostcallRequest ​

UiCompletePostcallRequest = object

Properties ​

was_successfully_submitted? ​

optional was_successfully_submitted?: boolean

Indicates if the postcall was successfully submitted


UiMeetingCanceledPayload ​

UiMeetingCanceledPayload = object

Properties ​

accountId? ​

optional accountId?: string

Account ID

eventId? ​

optional eventId?: string

Event ID


UiMessageEnvelope ​

UiMessageEnvelope<T> = object

Type Parameters ​

Type ParameterDefault type
T extends typeof UI_MESSAGE_TYPES[keyof typeof UI_MESSAGE_TYPES]typeof UI_MESSAGE_TYPES[keyof typeof UI_MESSAGE_TYPES]

Properties ​

body ​

body: UiMessagePayloads[T]

Message body

type ​

type: T

Message type


UiMessagePayloads ​

UiMessagePayloads = object

Properties ​

ui_app_open_request ​

ui_app_open_request: UiAppOpenRequestPayload

ui_app_set_data ​

ui_app_set_data: UiAppSetDataPayload

ui_app_update_data ​

ui_app_update_data: UiAppUpdateDataPayload

ui_canvas_updated ​

ui_canvas_updated: UiCanvasUpdatedPayload

ui_meeting_canceled ​

ui_meeting_canceled: UiMeetingCanceledPayload

ui_prompt_pia_response_streamed ​

ui_prompt_pia_response_streamed: UiPromptPiaResponseStreamedPayload

ui_section_list_updated ​

ui_section_list_updated: UiSectionListUpdatedPayload


UiOpenRequest ​

UiOpenRequest = OpenRequestPayload & object

Type Declaration ​

app_context? ​

optional app_context?: Record<string, any>

Context to pass to the app

app_embed_location? ​

optional app_embed_location?: EmbedLocation

Embed location of the app

app_name? ​

optional app_name?: string

Name of the app to open


UiPrintCanvasRequest ​

UiPrintCanvasRequest = object

Properties ​

id ​

id: CanvasRetrieve["id"]

Canvas ID to print

notify_url? ​

optional notify_url?: string

Optional HTTPS URL for async download notifications


UiPrintCanvasResponse ​

UiPrintCanvasResponse = object

Properties ​

job_id? ​

optional job_id?: string

Job ID for tracking the async download

success ​

success: boolean

Indicates if the request was successful


UiPromptPiaRequest ​

UiPromptPiaRequest = object

Properties ​

id ​

id: string

Unique identifier of this prompt (needed for streaming event)

prompt ​

prompt: string

Prompt to send to PIA


UiPromptPiaResponse ​

UiPromptPiaResponse = object

Properties ​

id ​

id: string

Unique identifier of this prompt (needed for streaming event)

response ​

response: string

PIA response


UiPromptPiaResponseStreamedPayload ​

UiPromptPiaResponseStreamedPayload = object

Properties ​

chunk ​

chunk: string

Current chunk of the response

id ​

id: string

Unique identifier of this prompt

partial_response ​

partial_response: string

PIA response so far


UiSectionListUpdatedPayload ​

UiSectionListUpdatedPayload = object

Properties ​

canvas ​

canvas: CanvasRetrieve | null

Canvas data

section_list_component_id ​

section_list_component_id: string

Section list component ID

section_list_ids ​

section_list_ids: string[]

List of section IDs


UiSelectAgendaRequest ​

UiSelectAgendaRequest = object

Properties ​

attach_to? ​

optional attach_to?: AgendaSelectorProps["attachTo"]

initial_agenda? ​

optional initial_agenda?: AgendaSelectorProps["initialAgenda"]


UiSelectAgendaResponse ​

UiSelectAgendaResponse = object

Properties ​

content? ​

optional content?: Agenda

Selected content

user_action ​

user_action: "cancelled" | "selected"

User action result


UiSelectCanvasesRequest ​

UiSelectCanvasesRequest = object

Properties ​

allowed_ids? ​

optional allowed_ids?: Canvas["id"][]

allowed_types? ​

optional allowed_types?: ("canvas" | "canvas-template" | "section" | "section-template")[]

initial_metadata_filters? ​

optional initial_metadata_filters?: Record<string, any>

selections? ​

optional selections?: CanvasSelection[]

Array of selections


UiSelectCanvasesResponse ​

UiSelectCanvasesResponse = object

Properties ​

canvases? ​

optional canvases?: Canvas[]

Selected canvases

user_action ​

user_action: "cancelled" | "selected"

User action result


UiSelectCollectionPlayerRequest ​

UiSelectCollectionPlayerRequest = object

Properties ​

attach_to? ​

optional attach_to?: CollectionSelectorProps["attachTo"]

close_on_settings? ​

optional close_on_settings?: CollectionSelectorProps["closeOnSettings"]

hide_close? ​

optional hide_close?: CollectionSelectorProps["hideClose"]

initial_data? ​

optional initial_data?: CollectionSelectorProps["initialData"]

initial_metadata_filters? ​

optional initial_metadata_filters?: CollectionSelectorProps["initialMetadataFilters"]

open_settings? ​

optional open_settings?: CollectionSelectorProps["openSettings"]

readonly_name? ​

optional readonly_name?: CollectionSelectorProps["readonlyName"]

translations? ​

optional translations?: CollectionSelectorProps["translations"]


UiSelectCollectionPlayerResponse ​

UiSelectCollectionPlayerResponse = object

Properties ​

content? ​

optional content?: CollectionPlayer

Selected content

user_action ​

user_action: "cancelled" | "selected" | "settings"

User action result


UiSelectContentRequest ​

UiSelectContentRequest = object

Properties ​

allow_converted_deck_pages? ​

optional allow_converted_deck_pages?: boolean

Lets the user pick single pages of a PPTX deck converted to HTML, as with a PDF (optional). Such a page has a page image but no PDF behind it, so set this only where a page is shown as an image.

allowed_asset_content_types? ​

optional allowed_asset_content_types?: FileContentTypeEnum[]

allowed_content_types? ​

optional allowed_content_types?: FileContentTypeEnum[]

allowed_ids? ​

optional allowed_ids?: File["id"][]

allowed_original_extensions? ​

optional allowed_original_extensions?: string[]

Array of file extensions to scope out list of the results (optional). Only files with these extensions will be shown.

allowed_selector_types? ​

optional allowed_selector_types?: SelectorType[]

content_type? ​

optional content_type?: "file" | "slide" | "content"

disable_no_pptx_data? ​

optional disable_no_pptx_data?: boolean

Disables files from selection which do not have pptx_data in metadata object (optional).

disable_no_sharable? ​

optional disable_no_sharable?: boolean

Disables files from selection which are not sharable (optional).

embed_variant? ​

optional embed_variant?: string

Named sub-embedding of the content selector, forwarded verbatim to the selector app's window.initialize payload so ONE selector app can present itself differently per caller (PIT-7510: ng-wizard for the pitchdeck wizard). embed_location itself is set by the HOST and always wins, so a caller-specific context needs its own field.

initial_metadata_filters? ​

optional initial_metadata_filters?: Record<string, any>

max_selections? ​

optional max_selections?: number

min_selections? ​

optional min_selections?: Range<0, 999>

only_allow_content_pdf_pages? ​

optional only_allow_content_pdf_pages?: boolean

Only allow content pdf pages (optional). User will be forced to select a page from the pdf.

selections? ​

optional selections?: Selection[]

Array of selections


UiSelectContentResponse ​

UiSelectContentResponse = object

Properties ​

content? ​

optional content?: (SelectedFile | SelectedPage)[]

Selected content

user_action ​

user_action: "cancelled" | "selected"

User action result


UiSetPostcallStyleRequest ​

UiSetPostcallStyleRequest = Record<string, any>


UiUpdateCanvasRequest ​

UiUpdateCanvasRequest = Mutable<CanvasRetrieve> & object

Type Declaration ​

fields? ​

optional fields?: string

Comma-separated list of field keys to return from the server


UpdateLocationPitcherEvent ​

UpdateLocationPitcherEvent = UpdateLocationOnUnregister | UpdateLocationOnRestore | UpdateLocationOnUpdate | UpdateLocationOnRegister | UpdateLocationOnRestoreCompleted | UpdateLocationOnMounted | UpdateLocationOnGetRoutesRequest | UpdateLocationOnGetRoutesResponse

Union type for all update location pitcher events.

Variables ​

ADMIN_API_METHOD_TYPES ​

const ADMIN_API_METHOD_TYPES: object

Type Declaration ​

CAPTURE_APP_ERROR ​

readonly CAPTURE_APP_ERROR: "admin_capture_app_error" = 'admin_capture_app_error'

CLOSE ​

readonly CLOSE: "admin_close_file_overlay" = 'admin_close_file_overlay'

CREATE_CANVAS ​

readonly CREATE_CANVAS: "admin_create_canvas" = 'admin_create_canvas'

GET_APP_CONFIG ​

readonly GET_APP_CONFIG: "admin_get_app_config" = 'admin_get_app_config'

GET_CANVAS ​

readonly GET_CANVAS: "admin_get_canvas" = 'admin_get_canvas'

GET_CANVASES ​

readonly GET_CANVASES: "admin_get_canvases" = 'admin_get_canvases'

GET_ENV ​

readonly GET_ENV: "admin_get_env" = 'admin_get_env'

GET_FILE ​

readonly GET_FILE: "admin_get_file" = 'admin_get_file'

GET_FILES ​

readonly GET_FILES: "admin_get_files" = 'admin_get_files'

GET_INSTANCE_METADATA_TEMPLATES ​

readonly GET_INSTANCE_METADATA_TEMPLATES: "admin_get_instance_metadata_templates" = 'admin_get_instance_metadata_templates'

GET_USERS ​

readonly GET_USERS: "admin_get_users" = 'admin_get_users'

OPEN ​

readonly OPEN: "admin_open_file_overlay" = 'admin_open_file_overlay'

OPEN_CANVAS_OVERLAY ​

readonly OPEN_CANVAS_OVERLAY: "admin_open_canvas_overlay" = 'admin_open_canvas_overlay'

OPEN_COLLECTION_PLAYER_OVERLAY ​

readonly OPEN_COLLECTION_PLAYER_OVERLAY: "admin_open_collection_player_overlay" = 'admin_open_collection_player_overlay'

SELECT_AGENDA_CONTENT ​

readonly SELECT_AGENDA_CONTENT: "admin_select_agenda_content" = 'admin_select_agenda_content'

SELECT_CANVASES ​

readonly SELECT_CANVASES: "admin_select_canvases" = 'admin_select_canvases'

SELECT_COLLECTION_PLAYER_CONTENT ​

readonly SELECT_COLLECTION_PLAYER_CONTENT: "admin_select_collection_player_content" = 'admin_select_collection_player_content'

SELECT_CONTENT ​

readonly SELECT_CONTENT: "admin_select_content" = 'admin_select_content'

TOAST ​

readonly TOAST: "admin_toast" = 'admin_toast'

UPDATE_CANVAS ​

readonly UPDATE_CANVAS: "admin_update_canvas" = 'admin_update_canvas'


ADMIN_API_TYPES ​

const ADMIN_API_TYPES: object

Type Declaration ​

ADMIN_REQUEST ​

readonly ADMIN_REQUEST: "ADMIN_REQUEST" = 'ADMIN_REQUEST'

ADMIN_RESPONSE ​

readonly ADMIN_RESPONSE: "ADMIN_RESPONSE" = 'ADMIN_RESPONSE'


ADMIN_MESSAGE ​

const ADMIN_MESSAGE: "ADMIN_MESSAGE"


ADMIN_MESSAGE_TYPES ​

const ADMIN_MESSAGE_TYPES: object

Type Declaration ​

ENV_CHANGED ​

readonly ENV_CHANGED: "admin_env_changed" = 'admin_env_changed'


DEFAULT_PEER_CONNECTIVITY_VERSION ​

const DEFAULT_PEER_CONNECTIVITY_VERSION: 1 = 1


DSR_API_METHOD_TYPES ​

const DSR_API_METHOD_TYPES: object

Type Declaration ​

CLOSE ​

readonly CLOSE: "dsr_close" = 'dsr_close'

DSR_EMBEDDABLE_READY ​

readonly DSR_EMBEDDABLE_READY: "dsr_embeddable_ready" = 'dsr_embeddable_ready'

GET_APP_CONFIG ​

readonly GET_APP_CONFIG: "dsr_get_app_config" = 'dsr_get_app_config'

GET_ENV ​

readonly GET_ENV: "dsr_get_env" = 'dsr_get_env'

GET_FILE ​

readonly GET_FILE: "dsr_get_file" = 'dsr_get_file'


DSR_API_TYPES ​

const DSR_API_TYPES: object

Type Declaration ​

DSR_REQUEST ​

readonly DSR_REQUEST: "DSR_REQUEST" = 'DSR_REQUEST'

DSR_RESPONSE ​

readonly DSR_RESPONSE: "DSR_RESPONSE" = 'DSR_RESPONSE'


DSR_MESSAGE ​

const DSR_MESSAGE: "DSR_MESSAGE"


DSR_MESSAGE_TYPES ​

const DSR_MESSAGE_TYPES: object

Type Declaration ​

ENV_CHANGED ​

readonly ENV_CHANGED: "dsr_env_changed" = 'dsr_env_changed'


highLevelApi ​

highLevelApi: ReturnType<typeof createHighLevelApi>


PEER_CONNECTIVITY_EVENT ​

const PEER_CONNECTIVITY_EVENT: "peer_connectivity_event" = 'peer_connectivity_event'


PEER_CONNECTIVITY_HANDLER_MATCH_ALL ​

const PEER_CONNECTIVITY_HANDLER_MATCH_ALL: "*" = '*'


PeerConnectivityActions ​

const PeerConnectivityActions: object

Type Declaration ​

BROWSER_FOLDER_OPEN ​

readonly BROWSER_FOLDER_OPEN: "browser.folder.open" = 'browser.folder.open'

CANVAS_CLOSE ​

readonly CANVAS_CLOSE: "canvas.close" = 'canvas.close'

CANVAS_OPEN ​

readonly CANVAS_OPEN: "canvas.open" = 'canvas.open'

CANVAS_PAGE_NEXT ​

readonly CANVAS_PAGE_NEXT: "canvas.navigate.next" = 'canvas.navigate.next'

CANVAS_PAGE_PREVIOUS ​

readonly CANVAS_PAGE_PREVIOUS: "canvas.navigate.previous" = 'canvas.navigate.previous'

FILE_CLOSE ​

readonly FILE_CLOSE: "file.close" = 'file.close'

FILE_OPEN ​

readonly FILE_OPEN: "file.open" = 'file.open'

ROUTE_CHANGE ​

readonly ROUTE_CHANGE: "route.change" = 'route.change'


PITCHER_EVENT ​

const PITCHER_EVENT: "PITCHER_EVENT"


supportedEnvLocales ​

const supportedEnvLocales: readonly ["da", "de", "el", "en", "es", "fr", "it", "ja", "nl", "pl", "pt", "pt-br", "th", "tr", "zh"]

The platform locale roster for installable apps: every locale an app's src/locales/ bundles when it follows the platform-wide i18n rollout (PIT-8288). An app that bundles fewer passes its own roster to resolveEnvLocale instead.

Not canvas-ui's supportedLocales (Impact/Admin UI, no pl/tr). Both are star-exported from canvas-ui's main.lib.ts, so the names must stay distinct.


UI_API_METHOD_TYPES ​

const UI_API_METHOD_TYPES: object

Type Declaration ​

UI_APP_FULLSCREEN_CHANGE ​

readonly UI_APP_FULLSCREEN_CHANGE: "ui_app_fullscreen_change" = 'ui_app_fullscreen_change'

UI_APP_LOADED ​

readonly UI_APP_LOADED: "ui_app_loaded" = 'ui_app_loaded'

UI_APP_RESIZE ​

readonly UI_APP_RESIZE: "ui_app_resize" = 'ui_app_resize'

UI_BROADCAST ​

readonly UI_BROADCAST: "ui_broadcast" = 'ui_broadcast'

UI_CANCEL_MEETING ​

readonly UI_CANCEL_MEETING: "ui_cancel_meeting" = 'ui_cancel_meeting'

UI_CANVAS_NAVIGATE_NEXT_PAGE ​

readonly UI_CANVAS_NAVIGATE_NEXT_PAGE: "ui_canvas_navigate_next_page" = 'ui_canvas_navigate_next_page'

UI_CANVAS_NAVIGATE_PAGE ​

readonly UI_CANVAS_NAVIGATE_PAGE: "ui_canvas_navigate_page" = 'ui_canvas_navigate_page'

UI_CANVAS_NAVIGATE_PREVIOUS_PAGE ​

readonly UI_CANVAS_NAVIGATE_PREVIOUS_PAGE: "ui_canvas_navigate_previous_page" = 'ui_canvas_navigate_previous_page'

UI_CAPTURE_APP_ERROR ​

readonly UI_CAPTURE_APP_ERROR: "ui_capture_app_error" = 'ui_capture_app_error'

UI_CLOSE_CANVAS_DRAWER ​

readonly UI_CLOSE_CANVAS_DRAWER: "ui_close_canvas_drawer" = 'ui_close_canvas_drawer'

UI_CLOSE_CANVAS_SECTION_EXECUTION ​

readonly UI_CLOSE_CANVAS_SECTION_EXECUTION: "ui_close_canvas_section_execution" = 'ui_close_canvas_section_execution'

UI_CLOSE_GLOBAL_POPUP ​

readonly UI_CLOSE_GLOBAL_POPUP: "ui_close_global_popup" = 'ui_close_global_popup'

UI_COMPLETE_POSTCALL ​

readonly UI_COMPLETE_POSTCALL: "ui_complete_postcall" = 'ui_complete_postcall'

UI_DISABLE_POSTCALL_SUBMIT ​

readonly UI_DISABLE_POSTCALL_SUBMIT: "ui_disable_postcall_submit" = 'ui_disable_postcall_submit'

UI_EMBEDDABLE_READY ​

readonly UI_EMBEDDABLE_READY: "ui_embeddable_ready" = 'ui_embeddable_ready'

UI_ENABLE_POSTCALL_SUBMIT ​

readonly UI_ENABLE_POSTCALL_SUBMIT: "ui_enable_postcall_submit" = 'ui_enable_postcall_submit'

UI_OPEN ​

readonly UI_OPEN: "ui_open" = 'ui_open'

UI_OPEN_CANVAS_OVERLAY ​

readonly UI_OPEN_CANVAS_OVERLAY: "ui_open_canvas_overlay" = 'ui_open_canvas_overlay'

UI_OPEN_COLLECTION_PLAYER_OVERLAY ​

readonly UI_OPEN_COLLECTION_PLAYER_OVERLAY: "ui_open_collection_player_overlay" = 'ui_open_collection_player_overlay'

UI_OPEN_GLOBAL_POPUP ​

readonly UI_OPEN_GLOBAL_POPUP: "ui_open_global_popup" = 'ui_open_global_popup'

UI_OPEN_SHARING_SETTINGS ​

readonly UI_OPEN_SHARING_SETTINGS: "ui_open_sharing_settings" = 'ui_open_sharing_settings'

UI_PRESELECT_SFDC_MEETING_ID ​

readonly UI_PRESELECT_SFDC_MEETING_ID: "ui_preselect_sfdc_meeting_id" = 'ui_preselect_sfdc_meeting_id'

UI_PRINT_CANVAS ​

readonly UI_PRINT_CANVAS: "ui_print_canvas" = 'ui_print_canvas'

UI_PROMPT_PIA ​

readonly UI_PROMPT_PIA: "ui_prompt_pia" = 'ui_prompt_pia'

UI_RESUME_MEETING ​

readonly UI_RESUME_MEETING: "ui_resume_meeting" = 'ui_resume_meeting'

UI_SELECT_AGENDA_CONTENT ​

readonly UI_SELECT_AGENDA_CONTENT: "ui_select_agenda_content" = 'ui_select_agenda_content'

UI_SELECT_CANVASES ​

readonly UI_SELECT_CANVASES: "ui_select_canvases" = 'ui_select_canvases'

UI_SELECT_COLLECTION_PLAYER_CONTENT ​

readonly UI_SELECT_COLLECTION_PLAYER_CONTENT: "ui_select_collection_player_content" = 'ui_select_collection_player_content'

UI_SELECT_CONTENT ​

readonly UI_SELECT_CONTENT: "ui_select_content" = 'ui_select_content'

UI_SET_POSTCALL_STYLE ​

readonly UI_SET_POSTCALL_STYLE: "ui_set_postcall_style" = 'ui_set_postcall_style'

UI_STOP_MEETING ​

readonly UI_STOP_MEETING: "ui_stop_meeting" = 'ui_stop_meeting'

UI_TOAST ​

readonly UI_TOAST: "ui_toast" = 'ui_toast'

UI_UPDATE_CANVAS ​

readonly UI_UPDATE_CANVAS: "ui_update_canvas" = 'ui_update_canvas'

UI_UPDATE_LOCATION ​

readonly UI_UPDATE_LOCATION: "ui_update_location" = 'ui_update_location'


UI_MESSAGE ​

const UI_MESSAGE: "UI_MESSAGE"


UI_MESSAGE_TYPES ​

const UI_MESSAGE_TYPES: object

Type Declaration ​

UI_APP_OPEN_REQUEST ​

readonly UI_APP_OPEN_REQUEST: "ui_app_open_request" = 'ui_app_open_request'

UI_APP_SET_DATA ​

readonly UI_APP_SET_DATA: "ui_app_set_data" = 'ui_app_set_data'

UI_APP_UPDATE_DATA ​

readonly UI_APP_UPDATE_DATA: "ui_app_update_data" = 'ui_app_update_data'

UI_CANVAS_UPDATED ​

readonly UI_CANVAS_UPDATED: "ui_canvas_updated" = 'ui_canvas_updated'

UI_MEETING_CANCELED ​

readonly UI_MEETING_CANCELED: "ui_meeting_canceled" = 'ui_meeting_canceled'

UI_PROMPT_PIA_RESPONSE_STREAMED ​

readonly UI_PROMPT_PIA_RESPONSE_STREAMED: "ui_prompt_pia_response_streamed" = 'ui_prompt_pia_response_streamed'

UI_SECTION_LIST_UPDATED ​

readonly UI_SECTION_LIST_UPDATED: "ui_section_list_updated" = 'ui_section_list_updated'


UI_NATIVE_MESSAGE_TYPES ​

const UI_NATIVE_MESSAGE_TYPES: readonly ["ui_app_set_data", "ui_app_update_data", "ui_canvas_updated"]


WEB_MODE ​

const WEB_MODE: "WEB"

The one value a browser reports. Every other mode comes from a native shell's bridge.

Functions ​

FunctionDescription
createScopedPitcherApiA DEDICATED api instance for a call site that needs different options, without touching the shared singleton every other consumer holds.
getAvailableApis-
isNativeHostIs this host a NATIVE shell rather than a browser?
platformTypeForMode-
registerPeerConnectivityHandler-
resolveEnvLocaleResolve an app's locale from the platform env: ui_locale (the locale picked in the Pitcher shell, web only), falling back to device_locale (the iOS device locale). Both are TOP-LEVEL env keys, siblings of pitcher. NEVER env.pitcher.user.language: that field is dead (PIT-7554).
sendPeerConnectivityEvent-
useAdminAPI methods available in the CatalogIQ Admin.
useApiThis method returns an object containing the API methods that are available to you in a given environment, whether that be the Canvas, UI, Admin or DSR.
useDsrAPI methods available in the CatalogIQ default UI.
usePitcherApiCheck out the returned object documentation for the list of available methods.
useUiAPI methods available in the CatalogIQ default UI.