@realtimex/sdk 2.0.47 → 2.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -99,6 +99,21 @@ export interface CalibrateDecisionBatteryOptions extends RealtimeXRequestOptions
99
99
  body?: CalibrateDecisionBatteryBody;
100
100
  }
101
101
 
102
+ export type CancelBrowserWatchParams = Record<string, never>;
103
+ export type CancelBrowserWatchQuery = Record<string, never>;
104
+ export type CancelBrowserWatchHeaders = Record<string, never>;
105
+ export type CancelBrowserWatchBody = {
106
+ key: string;
107
+ acknowledgeUnknown?: boolean;
108
+ };
109
+ export type CancelBrowserWatchResponse = unknown;
110
+ export interface CancelBrowserWatchOptions extends RealtimeXRequestOptions {
111
+ params?: CancelBrowserWatchParams;
112
+ query?: CancelBrowserWatchQuery;
113
+ headers?: CancelBrowserWatchHeaders & Record<string, string>;
114
+ body?: CancelBrowserWatchBody;
115
+ }
116
+
102
117
  export type CancelHumanQuestionParams = {
103
118
  requestId: string;
104
119
  };
@@ -270,7 +285,43 @@ export type CreateBrowserSessionBody = {
270
285
  guardrails?: Record<string, unknown>;
271
286
  origin?: string;
272
287
  };
273
- export type CreateBrowserSessionResponse = Record<string, unknown>;
288
+ export type CreateBrowserSessionResponse = {
289
+ success: boolean;
290
+ session?: {
291
+ sessionName: string;
292
+ status: string;
293
+ running: boolean;
294
+ remoteDebugPort?: number | null;
295
+ tabs?: Array<{
296
+ id?: number;
297
+ url?: string;
298
+ title?: string;
299
+ isActive?: boolean;
300
+ }>;
301
+ control: {
302
+ mode?: "agent" | "person" | "idle";
303
+ source?: "gateway" | "host-only";
304
+ agent?: {
305
+ clients?: number;
306
+ lastCommandAt?: string | null;
307
+ active?: boolean;
308
+ };
309
+ person?: {
310
+ since?: string | null;
311
+ };
312
+ startedBy?: Record<string, unknown> | null;
313
+ updatedAt?: string | null;
314
+ } | null;
315
+ pendingAuth: {
316
+ host: string;
317
+ realm: string | null;
318
+ } | null;
319
+ downloads: {
320
+ count: number;
321
+ lastAt: string | null;
322
+ } | null;
323
+ } | null;
324
+ };
274
325
  export interface CreateBrowserSessionOptions extends RealtimeXRequestOptions {
275
326
  params?: CreateBrowserSessionParams;
276
327
  query?: CreateBrowserSessionQuery;
@@ -308,6 +359,7 @@ export type CreateChannelBody = {
308
359
  config?: Record<string, unknown>;
309
360
  settings?: {
310
361
  deliveryMode?: "agent" | "platform";
362
+ ownerMessages?: boolean;
311
363
  };
312
364
  };
313
365
  export type CreateChannelResponse = Record<string, unknown>;
@@ -439,6 +491,7 @@ export type CreateWorkspaceHeaders = {
439
491
  };
440
492
  export type CreateWorkspaceBody = {
441
493
  name: string;
494
+ isolationMode?: "none" | "client";
442
495
  };
443
496
  export type CreateWorkspaceResponse = Record<string, unknown>;
444
497
  export interface CreateWorkspaceOptions extends RealtimeXRequestOptions {
@@ -720,7 +773,43 @@ export type FocusBrowserTabBody = {
720
773
  tabRef?: string;
721
774
  focusWindow?: boolean;
722
775
  };
723
- export type FocusBrowserTabResponse = Record<string, unknown>;
776
+ export type FocusBrowserTabResponse = {
777
+ success: boolean;
778
+ session?: {
779
+ sessionName: string;
780
+ status: string;
781
+ running: boolean;
782
+ remoteDebugPort?: number | null;
783
+ tabs?: Array<{
784
+ id?: number;
785
+ url?: string;
786
+ title?: string;
787
+ isActive?: boolean;
788
+ }>;
789
+ control: {
790
+ mode?: "agent" | "person" | "idle";
791
+ source?: "gateway" | "host-only";
792
+ agent?: {
793
+ clients?: number;
794
+ lastCommandAt?: string | null;
795
+ active?: boolean;
796
+ };
797
+ person?: {
798
+ since?: string | null;
799
+ };
800
+ startedBy?: Record<string, unknown> | null;
801
+ updatedAt?: string | null;
802
+ } | null;
803
+ pendingAuth: {
804
+ host: string;
805
+ realm: string | null;
806
+ } | null;
807
+ downloads: {
808
+ count: number;
809
+ lastAt: string | null;
810
+ } | null;
811
+ } | null;
812
+ };
724
813
  export interface FocusBrowserTabOptions extends RealtimeXRequestOptions {
725
814
  params?: FocusBrowserTabParams;
726
815
  query?: FocusBrowserTabQuery;
@@ -1117,6 +1206,39 @@ export interface ListArtifactsOptions extends RealtimeXRequestOptions {
1117
1206
  body?: ListArtifactsBody;
1118
1207
  }
1119
1208
 
1209
+ export type ListBrowserDownloadsParams = {
1210
+ sessionName: string;
1211
+ };
1212
+ export type ListBrowserDownloadsQuery = Record<string, never>;
1213
+ export type ListBrowserDownloadsHeaders = {
1214
+ "x-app-id"?: string;
1215
+ };
1216
+ export type ListBrowserDownloadsBody = unknown;
1217
+ export type ListBrowserDownloadsResponse = {
1218
+ success: true;
1219
+ sessionName: string;
1220
+ downloads: Array<{
1221
+ id: string;
1222
+ filename?: string | null;
1223
+ path?: string | null;
1224
+ state: "progressing" | "completed" | "cancelled" | "interrupted";
1225
+ url?: string | null;
1226
+ mimeType?: string | null;
1227
+ startedBy: "agent" | "person" | "unknown";
1228
+ receivedBytes?: number;
1229
+ totalBytes?: number;
1230
+ startedAt?: string | null;
1231
+ endedAt?: string | null;
1232
+ reason?: string;
1233
+ }>;
1234
+ };
1235
+ export interface ListBrowserDownloadsOptions extends RealtimeXRequestOptions {
1236
+ params?: ListBrowserDownloadsParams;
1237
+ query?: ListBrowserDownloadsQuery;
1238
+ headers?: ListBrowserDownloadsHeaders & Record<string, string>;
1239
+ body?: ListBrowserDownloadsBody;
1240
+ }
1241
+
1120
1242
  export type ListBrowserProfilesParams = Record<string, never>;
1121
1243
  export type ListBrowserProfilesQuery = Record<string, never>;
1122
1244
  export type ListBrowserProfilesHeaders = {
@@ -1137,7 +1259,44 @@ export type ListBrowserSessionsHeaders = {
1137
1259
  "x-app-id"?: string;
1138
1260
  };
1139
1261
  export type ListBrowserSessionsBody = unknown;
1140
- export type ListBrowserSessionsResponse = Record<string, unknown>;
1262
+ export type ListBrowserSessionsResponse = {
1263
+ success: true;
1264
+ sessions: Array<{
1265
+ sessionName: string;
1266
+ status: string;
1267
+ running: boolean;
1268
+ remoteDebugPort?: number | null;
1269
+ tabs?: Array<{
1270
+ id?: number;
1271
+ url?: string;
1272
+ title?: string;
1273
+ isActive?: boolean;
1274
+ }>;
1275
+ control: {
1276
+ mode?: "agent" | "person" | "idle";
1277
+ source?: "gateway" | "host-only";
1278
+ agent?: {
1279
+ clients?: number;
1280
+ lastCommandAt?: string | null;
1281
+ active?: boolean;
1282
+ };
1283
+ person?: {
1284
+ since?: string | null;
1285
+ };
1286
+ startedBy?: Record<string, unknown> | null;
1287
+ updatedAt?: string | null;
1288
+ } | null;
1289
+ pendingAuth: {
1290
+ host: string;
1291
+ realm: string | null;
1292
+ } | null;
1293
+ downloads: {
1294
+ count: number;
1295
+ lastAt: string | null;
1296
+ } | null;
1297
+ }>;
1298
+ profiles?: Array<Record<string, unknown>>;
1299
+ };
1141
1300
  export interface ListBrowserSessionsOptions extends RealtimeXRequestOptions {
1142
1301
  params?: ListBrowserSessionsParams;
1143
1302
  query?: ListBrowserSessionsQuery;
@@ -1145,6 +1304,23 @@ export interface ListBrowserSessionsOptions extends RealtimeXRequestOptions {
1145
1304
  body?: ListBrowserSessionsBody;
1146
1305
  }
1147
1306
 
1307
+ export type ListBrowserWatchesParams = Record<string, never>;
1308
+ export type ListBrowserWatchesQuery = {
1309
+ key?: string;
1310
+ includeResolved?: boolean;
1311
+ limit?: number;
1312
+ cursor?: string;
1313
+ };
1314
+ export type ListBrowserWatchesHeaders = Record<string, never>;
1315
+ export type ListBrowserWatchesBody = unknown;
1316
+ export type ListBrowserWatchesResponse = unknown;
1317
+ export interface ListBrowserWatchesOptions extends RealtimeXRequestOptions {
1318
+ params?: ListBrowserWatchesParams;
1319
+ query?: ListBrowserWatchesQuery;
1320
+ headers?: ListBrowserWatchesHeaders & Record<string, string>;
1321
+ body?: ListBrowserWatchesBody;
1322
+ }
1323
+
1148
1324
  export type ListChannelsParams = Record<string, never>;
1149
1325
  export type ListChannelsQuery = Record<string, never>;
1150
1326
  export type ListChannelsHeaders = {
@@ -1568,6 +1744,43 @@ export interface PauseArtifactOptions extends RealtimeXRequestOptions {
1568
1744
  body?: PauseArtifactBody;
1569
1745
  }
1570
1746
 
1747
+ export type PeerConnectionFixtureParams = Record<string, never>;
1748
+ export type PeerConnectionFixtureQuery = Record<string, never>;
1749
+ export type PeerConnectionFixtureHeaders = Record<string, never>;
1750
+ export type PeerConnectionFixtureBody = {
1751
+ workspaceSlug?: string;
1752
+ storageUser?: string;
1753
+ artifactPath?: string;
1754
+ timeoutMs?: number;
1755
+ confirmDestructive?: boolean;
1756
+ };
1757
+ export type PeerConnectionFixtureResponse = Record<string, unknown>;
1758
+ export interface PeerConnectionFixtureOptions extends RealtimeXRequestOptions {
1759
+ params?: PeerConnectionFixtureParams;
1760
+ query?: PeerConnectionFixtureQuery;
1761
+ headers?: PeerConnectionFixtureHeaders & Record<string, string>;
1762
+ body?: PeerConnectionFixtureBody;
1763
+ }
1764
+
1765
+ export type PeerRequestFixtureParams = Record<string, never>;
1766
+ export type PeerRequestFixtureQuery = Record<string, never>;
1767
+ export type PeerRequestFixtureHeaders = Record<string, never>;
1768
+ export type PeerRequestFixtureBody = {
1769
+ workspaceSlug?: string;
1770
+ threadSlug?: string;
1771
+ storageUser?: string;
1772
+ artifactPath?: string;
1773
+ timeoutMs?: number;
1774
+ confirmDestructive?: boolean;
1775
+ };
1776
+ export type PeerRequestFixtureResponse = Record<string, unknown>;
1777
+ export interface PeerRequestFixtureOptions extends RealtimeXRequestOptions {
1778
+ params?: PeerRequestFixtureParams;
1779
+ query?: PeerRequestFixtureQuery;
1780
+ headers?: PeerRequestFixtureHeaders & Record<string, string>;
1781
+ body?: PeerRequestFixtureBody;
1782
+ }
1783
+
1571
1784
  export type PostCliDelegateConsultationsConsultationIdReplyParams = {
1572
1785
  consultationId: string;
1573
1786
  };
@@ -2183,6 +2396,7 @@ export type SendChannelMessageBody = {
2183
2396
  text: string;
2184
2397
  context?: string;
2185
2398
  idempotencyKey?: string;
2399
+ replyTo?: string;
2186
2400
  };
2187
2401
  export type SendChannelMessageResponse = Record<string, unknown>;
2188
2402
  export interface SendChannelMessageOptions extends RealtimeXRequestOptions {
@@ -2192,6 +2406,25 @@ export interface SendChannelMessageOptions extends RealtimeXRequestOptions {
2192
2406
  body?: SendChannelMessageBody;
2193
2407
  }
2194
2408
 
2409
+ export type SendChannelReactionParams = Record<string, never>;
2410
+ export type SendChannelReactionQuery = Record<string, never>;
2411
+ export type SendChannelReactionHeaders = {
2412
+ "x-app-id"?: string;
2413
+ };
2414
+ export type SendChannelReactionBody = {
2415
+ message: string;
2416
+ emoji?: string;
2417
+ remove?: boolean;
2418
+ context?: string;
2419
+ };
2420
+ export type SendChannelReactionResponse = Record<string, unknown>;
2421
+ export interface SendChannelReactionOptions extends RealtimeXRequestOptions {
2422
+ params?: SendChannelReactionParams;
2423
+ query?: SendChannelReactionQuery;
2424
+ headers?: SendChannelReactionHeaders & Record<string, string>;
2425
+ body?: SendChannelReactionBody;
2426
+ }
2427
+
2195
2428
  export type SendMessageParams = {
2196
2429
  workspaceSlug: string;
2197
2430
  threadSlug: string;
@@ -2246,6 +2479,42 @@ export interface SendTerminalSessionMessageOptions extends RealtimeXRequestOptio
2246
2479
  body?: SendTerminalSessionMessageBody;
2247
2480
  }
2248
2481
 
2482
+ export type SetBrowserWatchParams = Record<string, never>;
2483
+ export type SetBrowserWatchQuery = Record<string, never>;
2484
+ export type SetBrowserWatchHeaders = Record<string, never>;
2485
+ export type SetBrowserWatchBody = {
2486
+ key: string;
2487
+ session: string;
2488
+ tabId: number;
2489
+ kind: "dom" | "url";
2490
+ condition: {
2491
+ selector?: string;
2492
+ text?: string;
2493
+ caseInsensitive?: boolean;
2494
+ when?: "appears" | "changes";
2495
+ idAttr?: string;
2496
+ urlPrefix?: string;
2497
+ urlIncludes?: string;
2498
+ urlEquals?: string;
2499
+ };
2500
+ urlScope?: string;
2501
+ until?: string;
2502
+ for?: string;
2503
+ maxFires?: number;
2504
+ minGapSeconds?: number;
2505
+ debounceMs?: number;
2506
+ excerptChars?: number;
2507
+ reason: string;
2508
+ context?: Record<string, unknown>;
2509
+ };
2510
+ export type SetBrowserWatchResponse = unknown;
2511
+ export interface SetBrowserWatchOptions extends RealtimeXRequestOptions {
2512
+ params?: SetBrowserWatchParams;
2513
+ query?: SetBrowserWatchQuery;
2514
+ headers?: SetBrowserWatchHeaders & Record<string, string>;
2515
+ body?: SetBrowserWatchBody;
2516
+ }
2517
+
2249
2518
  export type SetDefaultWorkspaceAgentParams = Record<string, never>;
2250
2519
  export type SetDefaultWorkspaceAgentQuery = Record<string, never>;
2251
2520
  export type SetDefaultWorkspaceAgentHeaders = Record<string, never>;
@@ -2599,7 +2868,43 @@ export type StartBrowserSessionHeaders = {
2599
2868
  export type StartBrowserSessionBody = {
2600
2869
  url?: string;
2601
2870
  };
2602
- export type StartBrowserSessionResponse = Record<string, unknown>;
2871
+ export type StartBrowserSessionResponse = {
2872
+ success: boolean;
2873
+ session?: {
2874
+ sessionName: string;
2875
+ status: string;
2876
+ running: boolean;
2877
+ remoteDebugPort?: number | null;
2878
+ tabs?: Array<{
2879
+ id?: number;
2880
+ url?: string;
2881
+ title?: string;
2882
+ isActive?: boolean;
2883
+ }>;
2884
+ control: {
2885
+ mode?: "agent" | "person" | "idle";
2886
+ source?: "gateway" | "host-only";
2887
+ agent?: {
2888
+ clients?: number;
2889
+ lastCommandAt?: string | null;
2890
+ active?: boolean;
2891
+ };
2892
+ person?: {
2893
+ since?: string | null;
2894
+ };
2895
+ startedBy?: Record<string, unknown> | null;
2896
+ updatedAt?: string | null;
2897
+ } | null;
2898
+ pendingAuth: {
2899
+ host: string;
2900
+ realm: string | null;
2901
+ } | null;
2902
+ downloads: {
2903
+ count: number;
2904
+ lastAt: string | null;
2905
+ } | null;
2906
+ } | null;
2907
+ };
2603
2908
  export interface StartBrowserSessionOptions extends RealtimeXRequestOptions {
2604
2909
  params?: StartBrowserSessionParams;
2605
2910
  query?: StartBrowserSessionQuery;
@@ -2623,6 +2928,25 @@ export interface StartChannelOptions extends RealtimeXRequestOptions {
2623
2928
  body?: StartChannelBody;
2624
2929
  }
2625
2930
 
2931
+ export type StartChannelChatParams = Record<string, never>;
2932
+ export type StartChannelChatQuery = Record<string, never>;
2933
+ export type StartChannelChatHeaders = {
2934
+ "x-app-id"?: string;
2935
+ };
2936
+ export type StartChannelChatBody = {
2937
+ channelId: number;
2938
+ chatType: "group" | "dm";
2939
+ chatName?: string;
2940
+ chatId?: string;
2941
+ };
2942
+ export type StartChannelChatResponse = Record<string, unknown>;
2943
+ export interface StartChannelChatOptions extends RealtimeXRequestOptions {
2944
+ params?: StartChannelChatParams;
2945
+ query?: StartChannelChatQuery;
2946
+ headers?: StartChannelChatHeaders & Record<string, string>;
2947
+ body?: StartChannelChatBody;
2948
+ }
2949
+
2626
2950
  export type StartLocalAppParams = {
2627
2951
  appId: string;
2628
2952
  };
@@ -2647,7 +2971,43 @@ export type StopBrowserSessionHeaders = {
2647
2971
  export type StopBrowserSessionBody = {
2648
2972
  timeoutMs?: number;
2649
2973
  };
2650
- export type StopBrowserSessionResponse = Record<string, unknown>;
2974
+ export type StopBrowserSessionResponse = {
2975
+ success: boolean;
2976
+ session?: {
2977
+ sessionName: string;
2978
+ status: string;
2979
+ running: boolean;
2980
+ remoteDebugPort?: number | null;
2981
+ tabs?: Array<{
2982
+ id?: number;
2983
+ url?: string;
2984
+ title?: string;
2985
+ isActive?: boolean;
2986
+ }>;
2987
+ control: {
2988
+ mode?: "agent" | "person" | "idle";
2989
+ source?: "gateway" | "host-only";
2990
+ agent?: {
2991
+ clients?: number;
2992
+ lastCommandAt?: string | null;
2993
+ active?: boolean;
2994
+ };
2995
+ person?: {
2996
+ since?: string | null;
2997
+ };
2998
+ startedBy?: Record<string, unknown> | null;
2999
+ updatedAt?: string | null;
3000
+ } | null;
3001
+ pendingAuth: {
3002
+ host: string;
3003
+ realm: string | null;
3004
+ } | null;
3005
+ downloads: {
3006
+ count: number;
3007
+ lastAt: string | null;
3008
+ } | null;
3009
+ } | null;
3010
+ };
2651
3011
  export interface StopBrowserSessionOptions extends RealtimeXRequestOptions {
2652
3012
  params?: StopBrowserSessionParams;
2653
3013
  query?: StopBrowserSessionQuery;
@@ -2804,6 +3164,7 @@ export type UpdateChannelBody = {
2804
3164
  tts_enabled?: boolean;
2805
3165
  settings?: {
2806
3166
  deliveryMode?: "agent" | "platform";
3167
+ ownerMessages?: boolean;
2807
3168
  };
2808
3169
  };
2809
3170
  export type UpdateChannelResponse = Record<string, unknown>;
@@ -3062,6 +3423,9 @@ export declare class RealtimeXClient {
3062
3423
  /** Fit per-model battery thresholds from labelled states or paired decision digests; report only unless write=true. */
3063
3424
  calibrateDecisionBattery(options?: CalibrateDecisionBatteryOptions): Promise<CalibrateDecisionBatteryResponse>;
3064
3425
  calibrateDecisionBattery(body: CalibrateDecisionBatteryBody, options?: Omit<CalibrateDecisionBatteryOptions, 'body'>): Promise<CalibrateDecisionBatteryResponse>;
3426
+ /** Cancel a browser watch of the thread of the calling agent session by key: it ends and its endpoint turns off. Cancelling an already cancelled key succeeds. A fire that is being delivered cannot be retracted. A watch whose delivery is uncertain can only be released with acknowledgeUnknown after checking the thread. */
3427
+ cancelBrowserWatch(options?: CancelBrowserWatchOptions): Promise<CancelBrowserWatchResponse>;
3428
+ cancelBrowserWatch(body: CancelBrowserWatchBody, options?: Omit<CancelBrowserWatchOptions, 'body'>): Promise<CancelBrowserWatchResponse>;
3065
3429
  cancelHumanQuestion(options?: CancelHumanQuestionOptions): Promise<CancelHumanQuestionResponse>;
3066
3430
  cancelHumanQuestion(requestId: string, body: CancelHumanQuestionBody, options?: Omit<CancelHumanQuestionOptions, 'params' | 'body'>): Promise<CancelHumanQuestionResponse>;
3067
3431
  /** Cancel a scheduled wake-up of the thread of the calling agent session by key. Cancelling an already cancelled key succeeds. A wake that is being delivered cannot be retracted. A wake with uncertain delivery can only be released with acknowledgeUnknown after checking the thread. */
@@ -3084,7 +3448,7 @@ export declare class RealtimeXClient {
3084
3448
  /** Set non-secret global configuration values for one installed plugin. Use a plugin id, name, or displayName from list-plugins. Password fields are refused for manual global setup; workspace-owned fields are rejected and must be configured in Workspace Settings → Plugins. */
3085
3449
  configurePlugin(options?: ConfigurePluginOptions): Promise<ConfigurePluginResponse>;
3086
3450
  configurePlugin(pluginId: string, body: ConfigurePluginBody, options?: Omit<ConfigurePluginOptions, 'params' | 'body'>): Promise<ConfigurePluginResponse>;
3087
- /** Create an isolated named RealTimeX Browser session. When url is supplied, start the session and open that URL. */
3451
+ /** Create a named RealTimeX Browser session on its own throwaway profile, or, with profileName, on a profile the user created in Settings. When url is supplied, start it and open that URL. */
3088
3452
  createBrowserSession(options?: CreateBrowserSessionOptions): Promise<CreateBrowserSessionResponse>;
3089
3453
  createBrowserSession(body: CreateBrowserSessionBody, options?: Omit<CreateBrowserSessionOptions, 'body'>): Promise<CreateBrowserSessionResponse>;
3090
3454
  /** Create a chat channel in one exact workspace. Defaults to Telegram when plugin_type, channelType, and type are omitted. Use flat botToken and thread_id fields instead of nested config/settings. */
@@ -3112,7 +3476,7 @@ export declare class RealtimeXClient {
3112
3476
  /** Create and deliver a valid synthetic Delegate Human-authorization task in an isolated development runtime. */
3113
3477
  delegateHumanTaskFixture(options?: DelegateHumanTaskFixtureOptions): Promise<DelegateHumanTaskFixtureResponse>;
3114
3478
  delegateHumanTaskFixture(body: DelegateHumanTaskFixtureBody, options?: Omit<DelegateHumanTaskFixtureOptions, 'body'>): Promise<DelegateHumanTaskFixtureResponse>;
3115
- /** Delete a stopped named RealTimeX Browser session and its isolated profile. */
3479
+ /** Delete a stopped named RealTimeX Browser session. Its throwaway profile is removed with it; a profile the user created in Settings stays. */
3116
3480
  deleteBrowserSession(options?: DeleteBrowserSessionOptions): Promise<DeleteBrowserSessionResponse>;
3117
3481
  deleteBrowserSession(sessionName: string, options?: Omit<DeleteBrowserSessionOptions, 'params'>): Promise<DeleteBrowserSessionResponse>;
3118
3482
  /** Delete one chat channel by exact channel id. */
@@ -3206,10 +3570,16 @@ export declare class RealtimeXClient {
3206
3570
  /** List public artifacts for one exact workspace slug. Revoked artifacts are hidden unless includeRevoked=true is passed. */
3207
3571
  listArtifacts(options?: ListArtifactsOptions): Promise<ListArtifactsResponse>;
3208
3572
  listArtifacts(workspaceSlug: string, options?: Omit<ListArtifactsOptions, 'params'>): Promise<ListArtifactsResponse>;
3573
+ /** List the downloads of a running RealTimeX Browser session, newest first: filename, path, state (progressing, completed, cancelled or interrupted), url, startedBy (agent, person or unknown) and byte counts. Files are saved to <Downloads folder>/RealTimeX Browser/<profile name>/. It answers while the person is in control. A session that is not running has no list. */
3574
+ listBrowserDownloads(options?: ListBrowserDownloadsOptions): Promise<ListBrowserDownloadsResponse>;
3575
+ listBrowserDownloads(sessionName: string, options?: Omit<ListBrowserDownloadsOptions, 'params'>): Promise<ListBrowserDownloadsResponse>;
3209
3576
  /** List RealTimeX Browser profiles: the identities (sign-ins) sessions run on, with retention policy and the session using each one. */
3210
3577
  listBrowserProfiles(options?: ListBrowserProfilesOptions): Promise<ListBrowserProfilesResponse>;
3211
3578
  /** List registered RealTimeX Browser sessions and their live runtime state. */
3212
3579
  listBrowserSessions(options?: ListBrowserSessionsOptions): Promise<ListBrowserSessionsResponse>;
3580
+ /** List the browser watches of the thread of the calling agent session, newest first: open ones, or all with includeResolved=true. Each shows its publicId and name on the Webhooks & Events page, its state (paused when the person paused it there), why it is suspended, coverage gaps and recent fires. Page excerpts are never listed. */
3581
+ listBrowserWatches(options?: ListBrowserWatchesOptions): Promise<ListBrowserWatchesResponse>;
3582
+ listBrowserWatches(query?: ListBrowserWatchesQuery, options?: Omit<ListBrowserWatchesOptions, 'query'>): Promise<ListBrowserWatchesResponse>;
3213
3583
  /** List configured chat channels. Use returned channel ids with update-channel. */
3214
3584
  listChannels(options?: ListChannelsOptions): Promise<ListChannelsResponse>;
3215
3585
  /** List host and workspace batteries with the fitted status for the active model; no model call. */
@@ -3270,6 +3640,12 @@ export declare class RealtimeXClient {
3270
3640
  /** Pause one published artifact by artifact id. Paused artifacts remain listed but stop serving publicly. */
3271
3641
  pauseArtifact(options?: PauseArtifactOptions): Promise<PauseArtifactResponse>;
3272
3642
  pauseArtifact(artifactId: string, options?: Omit<PauseArtifactOptions, 'params'>): Promise<PauseArtifactResponse>;
3643
+ /** Put an isolated development runtime into one desktop-connection state for the #2671 thread-reference item. */
3644
+ peerConnectionFixture(options?: PeerConnectionFixtureOptions): Promise<PeerConnectionFixtureResponse>;
3645
+ peerConnectionFixture(body: PeerConnectionFixtureBody, options?: Omit<PeerConnectionFixtureOptions, 'body'>): Promise<PeerConnectionFixtureResponse>;
3646
+ /** Seed one desktop-connection request card per UX contract v3 state into a thread of an isolated development runtime. */
3647
+ peerRequestFixture(options?: PeerRequestFixtureOptions): Promise<PeerRequestFixtureResponse>;
3648
+ peerRequestFixture(body: PeerRequestFixtureBody, options?: Omit<PeerRequestFixtureOptions, 'body'>): Promise<PeerRequestFixtureResponse>;
3273
3649
  postCliDelegateConsultationsConsultationIdReply(options?: PostCliDelegateConsultationsConsultationIdReplyOptions): Promise<PostCliDelegateConsultationsConsultationIdReplyResponse>;
3274
3650
  postCliDelegateConsultationsConsultationIdReply(consultationId: string, options?: Omit<PostCliDelegateConsultationsConsultationIdReplyOptions, 'params'>): Promise<PostCliDelegateConsultationsConsultationIdReplyResponse>;
3275
3651
  postCliDelegateRunsRunIdConsultations(options?: PostCliDelegateRunsRunIdConsultationsOptions): Promise<PostCliDelegateRunsRunIdConsultationsResponse>;
@@ -3350,15 +3726,21 @@ export declare class RealtimeXClient {
3350
3726
  /** Send one local file to the external chat that this terminal is answering. Run it from the channel-linked terminal with --file-path <absolute path>: the target chat comes from your terminal session, so --context is optional. Send one file per command. Channels that cannot send files return an error. contentBase64 with fileName remains available when no local path exists. */
3351
3727
  sendChannelFile(options?: SendChannelFileOptions): Promise<SendChannelFileResponse>;
3352
3728
  sendChannelFile(body: SendChannelFileBody, options?: Omit<SendChannelFileOptions, 'body'>): Promise<SendChannelFileResponse>;
3353
- /** Post one message to the external chat (Zalo, Telegram, ...) that this terminal is answering. Run it from the channel-linked terminal: the target chat comes from your terminal session, so --context is optional. Pass multi-line text with a quoted heredoc: --text "$(cat <<"EOF" ... EOF)". Send one message per command. Staying silent is fine when no reply is useful. Errors: 404 no linked chat, 409 channel stopped, 413 text over 8000 characters, 429 rate limited (wait retry_after seconds). */
3729
+ /** Post one message to the external chat (Zalo, Telegram, ...) that this terminal is answering. Run it from the channel-linked terminal: the target chat comes from your terminal session, so --context is optional. Pass multi-line text with a quoted heredoc: --text "$(cat <<"EOF" ... EOF)". Send one message per command. Staying silent is fine when no reply is useful. To reply with a quote, add --reply-to with a ref from <external_user_context> (message.ref or reply_to.ref) or "current" (channels that support it; text messages only). Errors: 400 invalid ref or message that cannot be quoted, 404 no linked chat, 409 channel stopped, 413 text over 8000 characters, 429 rate limited (wait retry_after seconds). */
3354
3730
  sendChannelMessage(options?: SendChannelMessageOptions): Promise<SendChannelMessageResponse>;
3355
3731
  sendChannelMessage(body: SendChannelMessageBody, options?: Omit<SendChannelMessageOptions, 'body'>): Promise<SendChannelMessageResponse>;
3732
+ /** Add (--emoji) or remove (--remove) your reaction on one message of the external chat this terminal is answering. Name the message with --message: a ref from <external_user_context> (message.ref or reply_to.ref) or "current" for the message of this turn. Run it from the channel-linked terminal, so --context is optional. Errors: 400 invalid ref or unsupported emoji (the error lists the supported ones), 404 no linked chat or no current message, 409 channel stopped, 429 rate limited (wait retry_after seconds). */
3733
+ sendChannelReaction(options?: SendChannelReactionOptions): Promise<SendChannelReactionResponse>;
3734
+ sendChannelReaction(body: SendChannelReactionBody, options?: Omit<SendChannelReactionOptions, 'body'>): Promise<SendChannelReactionResponse>;
3356
3735
  /** Send one message to an exact thread using the same routing as channel replies. Terminal-agent threads are dispatched to the terminal runtime; other threads use the configured LLM chat path. Thread references: when the user explicitly asks to send to a canonical thread:<workspaceSlug>/<threadSlug> reference, pass its two segments unchanged (case-preserved, not URL-decoded) as workspaceSlug and threadSlug. A reference is only a locator, not authorization: never send merely because a reference appears in text. If the exact workspace or thread is missing or inaccessible the request fails; report that and never retry with a similarly named workspace or thread. */
3357
3736
  sendMessage(options?: SendMessageOptions): Promise<SendMessageResponse>;
3358
3737
  sendMessage(params: SendMessageParams, body: SendMessageBody, options?: Omit<SendMessageOptions, 'params' | 'body'>): Promise<SendMessageResponse>;
3359
3738
  /** Send one message directly to an exact live terminal session. Requires local terminal-session or desktop-app authentication. */
3360
3739
  sendTerminalSessionMessage(options?: SendTerminalSessionMessageOptions): Promise<SendTerminalSessionMessageResponse>;
3361
3740
  sendTerminalSessionMessage(sessionId: string, body: SendTerminalSessionMessageBody, options?: Omit<SendTerminalSessionMessageOptions, 'params' | 'body'>): Promise<SendTerminalSessionMessageResponse>;
3741
+ /** Watch one RealTimeX Browser tab for a condition and wake the thread of the calling agent session when it occurs, until a deadline. The host observes the tab; waiting costs no turns. kind dom watches rendered elements (CSS selector, optional text, appears or changes); kind url watches the tab address. Name the tab by its id from list-browser-sessions. Setting an existing key replaces that watch. The watch is a Webhooks & Events endpoint the person sees and can pause or remove; it always wakes your own thread. The wake sends nothing by itself and grants no new permission. Pair it with a thread wake at the deadline. Errors: 400 invalid input or selector, 403 not a thread-bound agent session, thread wakes off, or a route field (WATCH_ROUTE_NOT_ALLOWED), 404 session or tab not found, 409 tab ambiguous or not observable, key busy or uncertain, or paused by the person, 429 limits, 503 desktop or browser unavailable. */
3742
+ setBrowserWatch(options?: SetBrowserWatchOptions): Promise<SetBrowserWatchResponse>;
3743
+ setBrowserWatch(body: SetBrowserWatchBody, options?: Omit<SetBrowserWatchOptions, 'body'>): Promise<SetBrowserWatchResponse>;
3362
3744
  /** Set a workspace default agent from the desktop workspace chat settings UI. */
3363
3745
  setDefaultWorkspaceAgent(options?: SetDefaultWorkspaceAgentOptions): Promise<SetDefaultWorkspaceAgentResponse>;
3364
3746
  setDefaultWorkspaceAgent(body: SetDefaultWorkspaceAgentBody, options?: Omit<SetDefaultWorkspaceAgentOptions, 'body'>): Promise<SetDefaultWorkspaceAgentResponse>;
@@ -3406,6 +3788,9 @@ export declare class RealtimeXClient {
3406
3788
  /** Start one chat channel by exact channel id. */
3407
3789
  startChannel(options?: StartChannelOptions): Promise<StartChannelResponse>;
3408
3790
  startChannel(channelId: string, options?: Omit<StartChannelOptions, 'params'>): Promise<StartChannelResponse>;
3791
+ /** Start a Zalo Personal or WhatsApp chat before anyone writes in it, or get the thread it already has. Pass channelId, chatType (group or dm) and the chat\'s listed name as chatName (or chatId). Works only for a chat the channel\'s access settings already allow; it never approves anyone. A new chat gets its own thread, and that thread\'s agent is told the owner started the chat. Nothing is sent to the chat. Errors: 404 unknown chat name, 409 not allowed, ambiguous name or channel stopped, 403 workspace not reachable. */
3792
+ startChannelChat(options?: StartChannelChatOptions): Promise<StartChannelChatResponse>;
3793
+ startChannelChat(body: StartChannelChatBody, options?: Omit<StartChannelChatOptions, 'body'>): Promise<StartChannelChatResponse>;
3409
3794
  startLocalApp(options?: StartLocalAppOptions): Promise<StartLocalAppResponse>;
3410
3795
  startLocalApp(appId: string, body: StartLocalAppBody, options?: Omit<StartLocalAppOptions, 'params' | 'body'>): Promise<StartLocalAppResponse>;
3411
3796
  /** Gracefully stop an existing named RealTimeX Browser session. */
package/index.js CHANGED
@@ -41,6 +41,14 @@ const operations = {
41
41
  ],
42
42
  "hasBody": true
43
43
  },
44
+ "cancelBrowserWatch": {
45
+ "method": "POST",
46
+ "path": "/cancel-browser-watch",
47
+ "pathParams": [],
48
+ "queryParams": [],
49
+ "headerParams": [],
50
+ "hasBody": true
51
+ },
44
52
  "cancelHumanQuestion": {
45
53
  "method": "POST",
46
54
  "path": "/cancel-human-question/{requestId}",
@@ -609,6 +617,18 @@ const operations = {
609
617
  ],
610
618
  "hasBody": false
611
619
  },
620
+ "listBrowserDownloads": {
621
+ "method": "GET",
622
+ "path": "/list-browser-downloads/{sessionName}",
623
+ "pathParams": [
624
+ "sessionName"
625
+ ],
626
+ "queryParams": [],
627
+ "headerParams": [
628
+ "x-app-id"
629
+ ],
630
+ "hasBody": false
631
+ },
612
632
  "listBrowserProfiles": {
613
633
  "method": "GET",
614
634
  "path": "/list-browser-profiles",
@@ -629,6 +649,19 @@ const operations = {
629
649
  ],
630
650
  "hasBody": false
631
651
  },
652
+ "listBrowserWatches": {
653
+ "method": "GET",
654
+ "path": "/list-browser-watches",
655
+ "pathParams": [],
656
+ "queryParams": [
657
+ "key",
658
+ "includeResolved",
659
+ "limit",
660
+ "cursor"
661
+ ],
662
+ "headerParams": [],
663
+ "hasBody": false
664
+ },
632
665
  "listChannels": {
633
666
  "method": "GET",
634
667
  "path": "/list-channels",
@@ -881,6 +914,22 @@ const operations = {
881
914
  ],
882
915
  "hasBody": false
883
916
  },
917
+ "peerConnectionFixture": {
918
+ "method": "POST",
919
+ "path": "/peer-connection-fixture",
920
+ "pathParams": [],
921
+ "queryParams": [],
922
+ "headerParams": [],
923
+ "hasBody": true
924
+ },
925
+ "peerRequestFixture": {
926
+ "method": "POST",
927
+ "path": "/peer-request-fixture",
928
+ "pathParams": [],
929
+ "queryParams": [],
930
+ "headerParams": [],
931
+ "hasBody": true
932
+ },
884
933
  "postCliDelegateConsultationsConsultationIdReply": {
885
934
  "method": "POST",
886
935
  "path": "/delegate-consultations/{consultationId}/reply",
@@ -1247,6 +1296,16 @@ const operations = {
1247
1296
  ],
1248
1297
  "hasBody": true
1249
1298
  },
1299
+ "sendChannelReaction": {
1300
+ "method": "POST",
1301
+ "path": "/send-channel-reaction",
1302
+ "pathParams": [],
1303
+ "queryParams": [],
1304
+ "headerParams": [
1305
+ "x-app-id"
1306
+ ],
1307
+ "hasBody": true
1308
+ },
1250
1309
  "sendMessage": {
1251
1310
  "method": "POST",
1252
1311
  "path": "/send-message/{workspaceSlug}/{threadSlug}",
@@ -1272,6 +1331,14 @@ const operations = {
1272
1331
  ],
1273
1332
  "hasBody": true
1274
1333
  },
1334
+ "setBrowserWatch": {
1335
+ "method": "POST",
1336
+ "path": "/set-browser-watch",
1337
+ "pathParams": [],
1338
+ "queryParams": [],
1339
+ "headerParams": [],
1340
+ "hasBody": true
1341
+ },
1275
1342
  "setDefaultWorkspaceAgent": {
1276
1343
  "method": "POST",
1277
1344
  "path": "/set-default-workspace-agent",
@@ -1441,6 +1508,16 @@ const operations = {
1441
1508
  ],
1442
1509
  "hasBody": false
1443
1510
  },
1511
+ "startChannelChat": {
1512
+ "method": "POST",
1513
+ "path": "/start-channel-chat",
1514
+ "pathParams": [],
1515
+ "queryParams": [],
1516
+ "headerParams": [
1517
+ "x-app-id"
1518
+ ],
1519
+ "hasBody": true
1520
+ },
1444
1521
  "startLocalApp": {
1445
1522
  "method": "POST",
1446
1523
  "path": "/start-local-app/{appId}",
@@ -2070,6 +2147,13 @@ class RealtimeXClient {
2070
2147
  );
2071
2148
  }
2072
2149
 
2150
+ cancelBrowserWatch(...args) {
2151
+ return this.request(
2152
+ "cancelBrowserWatch",
2153
+ normalizeOperationOptions(operations["cancelBrowserWatch"], args)
2154
+ );
2155
+ }
2156
+
2073
2157
  cancelHumanQuestion(...args) {
2074
2158
  return this.request(
2075
2159
  "cancelHumanQuestion",
@@ -2441,6 +2525,13 @@ class RealtimeXClient {
2441
2525
  );
2442
2526
  }
2443
2527
 
2528
+ listBrowserDownloads(...args) {
2529
+ return this.request(
2530
+ "listBrowserDownloads",
2531
+ normalizeOperationOptions(operations["listBrowserDownloads"], args)
2532
+ );
2533
+ }
2534
+
2444
2535
  listBrowserProfiles(...args) {
2445
2536
  return this.request(
2446
2537
  "listBrowserProfiles",
@@ -2455,6 +2546,13 @@ class RealtimeXClient {
2455
2546
  );
2456
2547
  }
2457
2548
 
2549
+ listBrowserWatches(...args) {
2550
+ return this.request(
2551
+ "listBrowserWatches",
2552
+ normalizeOperationOptions(operations["listBrowserWatches"], args)
2553
+ );
2554
+ }
2555
+
2458
2556
  listChannels(...args) {
2459
2557
  return this.request(
2460
2558
  "listChannels",
@@ -2623,6 +2721,20 @@ class RealtimeXClient {
2623
2721
  );
2624
2722
  }
2625
2723
 
2724
+ peerConnectionFixture(...args) {
2725
+ return this.request(
2726
+ "peerConnectionFixture",
2727
+ normalizeOperationOptions(operations["peerConnectionFixture"], args)
2728
+ );
2729
+ }
2730
+
2731
+ peerRequestFixture(...args) {
2732
+ return this.request(
2733
+ "peerRequestFixture",
2734
+ normalizeOperationOptions(operations["peerRequestFixture"], args)
2735
+ );
2736
+ }
2737
+
2626
2738
  postCliDelegateConsultationsConsultationIdReply(...args) {
2627
2739
  return this.request(
2628
2740
  "postCliDelegateConsultationsConsultationIdReply",
@@ -2854,6 +2966,13 @@ class RealtimeXClient {
2854
2966
  );
2855
2967
  }
2856
2968
 
2969
+ sendChannelReaction(...args) {
2970
+ return this.request(
2971
+ "sendChannelReaction",
2972
+ normalizeOperationOptions(operations["sendChannelReaction"], args)
2973
+ );
2974
+ }
2975
+
2857
2976
  sendMessage(...args) {
2858
2977
  return this.request(
2859
2978
  "sendMessage",
@@ -2868,6 +2987,13 @@ class RealtimeXClient {
2868
2987
  );
2869
2988
  }
2870
2989
 
2990
+ setBrowserWatch(...args) {
2991
+ return this.request(
2992
+ "setBrowserWatch",
2993
+ normalizeOperationOptions(operations["setBrowserWatch"], args)
2994
+ );
2995
+ }
2996
+
2871
2997
  setDefaultWorkspaceAgent(...args) {
2872
2998
  return this.request(
2873
2999
  "setDefaultWorkspaceAgent",
@@ -2980,6 +3106,13 @@ class RealtimeXClient {
2980
3106
  );
2981
3107
  }
2982
3108
 
3109
+ startChannelChat(...args) {
3110
+ return this.request(
3111
+ "startChannelChat",
3112
+ normalizeOperationOptions(operations["startChannelChat"], args)
3113
+ );
3114
+ }
3115
+
2983
3116
  startLocalApp(...args) {
2984
3117
  return this.request(
2985
3118
  "startLocalApp",
@@ -3117,5 +3250,5 @@ module.exports = {
3117
3250
  createRealtimeXClient,
3118
3251
  createRealtimeXWebhookClient,
3119
3252
  operations,
3120
- version: "2.0.47",
3253
+ version: "2.0.49",
3121
3254
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@realtimex/sdk",
3
- "version": "2.0.47",
3
+ "version": "2.0.49",
4
4
  "description": "RealtimeX runtime SDK package and moderator agent skill assets.",
5
5
  "private": false,
6
6
  "main": "./index.js",
@@ -15,16 +15,16 @@ List, publish, inspect, pause, resume, and revoke RealTimeX workspace artifacts.
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -15,16 +15,16 @@ Run RealTimeX automation workflows and guided automation-flow commands, includin
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -83,6 +83,14 @@ realtimex-pp-cli prepare --agent
83
83
 
84
84
  - `realtimex-pp-cli memory-page` — Exercise the global Memory page with intercepted synthetic sources in an owned dev renderer.
85
85
 
86
+ **peer-connection-fixture** — Manage peer connection fixture
87
+
88
+ - `realtimex-pp-cli peer-connection-fixture` — Put an isolated development runtime into one desktop-connection state for the #2671 thread-reference item.
89
+
90
+ **peer-request-fixture** — Manage peer request fixture
91
+
92
+ - `realtimex-pp-cli peer-request-fixture` — Seed one desktop-connection request card per UX contract v3 state into a thread of an isolated development runtime.
93
+
86
94
  **run-automation-workflow** — Manage run automation workflow
87
95
 
88
96
  - `realtimex-pp-cli run-automation-workflow` — Run any app automation flow or scenario exposed via flowMetadata.cli.enabled=true by passing workflowName.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: realtimex-browser-sessions
3
- description: "List, create, start, stop, delete and show tabs of isolated RealTimeX browser sessions. Use for named browser runtime and profile lifecycle work."
3
+ description: "List, create, start, stop, delete and show tabs of named RealTimeX browser sessions. Use for named browser runtime and profile lifecycle work."
4
4
  allowed-tools: "Read Bash"
5
5
  metadata:
6
6
  openclaw:
@@ -11,20 +11,20 @@ metadata:
11
11
 
12
12
  # RealTimeX Browser Sessions
13
13
 
14
- List, create, start, stop, delete and show tabs of isolated RealTimeX browser sessions. Use for named browser runtime and profile lifecycle work.
14
+ List, create, start, stop, delete and show tabs of named RealTimeX browser sessions. Use for named browser runtime and profile lifecycle work.
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -35,18 +35,26 @@ realtimex-pp-cli prepare --agent
35
35
 
36
36
  ## Command reference
37
37
 
38
+ **cancel-browser-watch** — Manage cancel browser watch
39
+
40
+ - `realtimex-pp-cli cancel-browser-watch` — Cancel a browser watch of the thread of the calling agent session by key: it ends and its endpoint turns off.
41
+
38
42
  **create-browser-session** — Manage create browser session
39
43
 
40
- - `realtimex-pp-cli create-browser-session` — Create an isolated named RealTimeX Browser session. When url is supplied, start the session and open that URL.
44
+ - `realtimex-pp-cli create-browser-session` — Create a named RealTimeX Browser session on its own throwaway profile, or, with profileName
41
45
 
42
46
  **delete-browser-session** — Manage delete browser session
43
47
 
44
- - `realtimex-pp-cli delete-browser-session <sessionName>` — Delete a stopped named RealTimeX Browser session and its isolated profile.
48
+ - `realtimex-pp-cli delete-browser-session <sessionName>` — Delete a stopped named RealTimeX Browser session.
45
49
 
46
50
  **focus-browser-tab** — Manage focus browser tab
47
51
 
48
52
  - `realtimex-pp-cli focus-browser-tab <sessionName>` — Make a tab the displayed tab of a running RealTimeX Browser session, so it renders before an agent interacts with it.
49
53
 
54
+ **list-browser-downloads** — Manage list browser downloads
55
+
56
+ - `realtimex-pp-cli list-browser-downloads <sessionName>` — List the downloads of a running RealTimeX Browser session, newest first: filename, path, state (progressing, completed
57
+
50
58
  **list-browser-profiles** — Manage list browser profiles
51
59
 
52
60
  - `realtimex-pp-cli list-browser-profiles` — List RealTimeX Browser profiles: the identities (sign-ins) sessions run on
@@ -55,6 +63,14 @@ realtimex-pp-cli prepare --agent
55
63
 
56
64
  - `realtimex-pp-cli list-browser-sessions` — List registered RealTimeX Browser sessions and their live runtime state.
57
65
 
66
+ **list-browser-watches** — Manage list browser watches
67
+
68
+ - `realtimex-pp-cli list-browser-watches` — List the browser watches of the thread of the calling agent session, newest first: open ones
69
+
70
+ **set-browser-watch** — Manage set browser watch
71
+
72
+ - `realtimex-pp-cli set-browser-watch` — Watch one RealTimeX Browser tab for a condition and wake the thread of the calling agent session when it occurs
73
+
58
74
  **start-browser-session** — Manage start browser session
59
75
 
60
76
  - `realtimex-pp-cli start-browser-session <sessionName>` — Start an existing named RealTimeX Browser session, optionally opening an absolute HTTP or HTTPS URL.
@@ -66,10 +82,12 @@ realtimex-pp-cli prepare --agent
66
82
  ## Domain rules
67
83
 
68
84
  - List browser sessions before lifecycle changes and use the exact returned session name.
69
- - Create a named session before starting it; stop it when the task is done and do not delete it to clean up. Pass `--profile-name` only for a profile the user created in Settings and `list-browser-profiles` shows; the host removes throwaway sessions after your agent session ends.
85
+ - Create a named session before starting it; stop it when the task is done and do not delete it to clean up. Pass `--profile-name` only for a profile the user created in Settings and `list-browser-profiles` shows, and a name `list-browser-profiles` does not show answers `404 profile-not-found` with `knownProfiles`; the host removes throwaway sessions after your agent session ends.
70
86
  - A session runs on a profile (a saved sign-in); without `--profile-name` it gets its own throwaway profile. Never substitute terminal-session identifiers for session names.
71
87
  - Before interacting with a tab over CDP, run `focus-browser-tab <sessionName> --tab-id <id>` so it becomes the displayed tab; add `--focus-window` only when the Human should see it.
72
88
  - If you attached `agent-browser` to a session, do not run `agent-browser close`; stopping the session closes it.
89
+ - `list-browser-sessions` returns `control` per session (`mode` is `agent`, `person` or `idle`; null with browser control off). If a command fails because the person is in control, stop and wait for the hand-back message; to check later, run `list-browser-sessions` once and read `control.mode`, never in a loop.
90
+ - `list-browser-downloads <sessionName>` lists the files a session downloaded, with `state`, `path` and `startedBy`; files are under `<Downloads>/RealTimeX Browser/<profile name>/`. A session entry's `pendingAuth` names an HTTP challenge only the person can answer.
73
91
 
74
92
  ## Shared constraints
75
93
 
@@ -15,16 +15,16 @@ Create, configure, start, stop, and delete RealTimeX chat channels, approve pair
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -75,10 +75,18 @@ realtimex-pp-cli prepare --agent
75
75
 
76
76
  - `realtimex-pp-cli send-channel-message` — Post one message to the external chat (Zalo, Telegram, ...) that this terminal is answering.
77
77
 
78
+ **send-channel-reaction** — Manage send channel reaction
79
+
80
+ - `realtimex-pp-cli send-channel-reaction` — Add (--emoji) or remove (--remove) your reaction on one message of the external chat this terminal is answering.
81
+
78
82
  **start-channel** — Manage start channel
79
83
 
80
84
  - `realtimex-pp-cli start-channel <channelId>` — Start one chat channel by exact channel id.
81
85
 
86
+ **start-channel-chat** — Manage start channel chat
87
+
88
+ - `realtimex-pp-cli start-channel-chat` — Start a Zalo Personal or WhatsApp chat before anyone writes in it, or get the thread it already has.
89
+
82
90
  **stop-channel** — Manage stop channel
83
91
 
84
92
  - `realtimex-pp-cli stop-channel <channelId>` — Stop one chat channel by exact channel id.
@@ -15,16 +15,16 @@ Run advisory decision-model judgments, list decision batteries, and calibrate ba
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -15,16 +15,16 @@ Manage RealTimeX Delegate scope bindings, policy drafts and compiler jobs, activ
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -15,16 +15,16 @@ Configure RealTimeX heartbeat scheduling, agents, active hours, timezone, autopi
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -15,16 +15,16 @@ Create, inspect, configure, start, stop, restart, and delete RealTimeX Local App
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -15,16 +15,16 @@ Use this router to select the smallest RealTimeX skill that owns the requested o
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -41,7 +41,7 @@ realtimex-pp-cli prepare --agent
41
41
  | `realtimex-secrets` | Manage encrypted Login, Card, Identity, SSH key and Secure note items, tags and workspace scope with the moderator CLI. Use saved fields in terminal commands or browser forms through rtxexec. |
42
42
  | `realtimex-workspaces` | Manage RealTimeX workspaces, threads, messages, workspace personality, LLM configuration, and default agents. Use for workspace and conversation operations. |
43
43
  | `realtimex-terminal-agents` | Manage RealTimeX terminal agents, terminal sessions, session messages, and idle prompts. Use for desktop terminal-agent runtime and terminal-session lifecycle work. |
44
- | `realtimex-browser-sessions` | List, create, start, stop, delete and show tabs of isolated RealTimeX browser sessions. Use for named browser runtime and profile lifecycle work. |
44
+ | `realtimex-browser-sessions` | List, create, start, stop, delete and show tabs of named RealTimeX browser sessions. Use for named browser runtime and profile lifecycle work. |
45
45
  | `realtimex-local-apps` | Create, inspect, configure, start, stop, restart, and delete RealTimeX Local Apps. Use for local source, npx, uvx, webhook-trigger, status, log, and lifecycle operations. |
46
46
  | `realtimex-heartbeat` | Configure RealTimeX heartbeat scheduling, agents, active hours, timezone, autopilot, and immediate workspace heartbeat runs. Use for recurring HEARTBEAT.md task execution. |
47
47
  | `realtimex-automation-flows` | Run RealTimeX automation workflows and guided automation-flow commands, including working-directory setup and workspace layout. Use for explicit multi-step automation execution. |
@@ -15,16 +15,16 @@ Manage RealTimeX plugins and agent skills, including configuration, enablement,
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -15,16 +15,16 @@ Manage encrypted Login, Card, Identity, SSH key and Secure note items, tags and
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -15,16 +15,16 @@ Manage RealTimeX terminal agents, terminal sessions, session messages, and idle
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -15,16 +15,16 @@ Create, inspect, update, test, and delete RealTimeX public webhook endpoints and
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first:
@@ -15,16 +15,16 @@ Manage RealTimeX workspaces, threads, messages, workspace personality, LLM confi
15
15
 
16
16
  ## CLI setup
17
17
 
18
- This skill uses `realtimex-pp-cli` version 2.0.47. Before using its commands:
18
+ This skill uses `realtimex-pp-cli` version 2.0.49. Before using its commands:
19
19
 
20
20
  ```bash
21
21
  realtimex-pp-cli --version
22
22
  ```
23
23
 
24
- If it is missing or does not report `realtimex-pp-cli 2.0.47`, install the pinned version:
24
+ If it is missing or does not report `realtimex-pp-cli 2.0.49`, install the pinned version:
25
25
 
26
26
  ```bash
27
- npm install -g @realtimex/pp-cli@2.0.47
27
+ npm install -g @realtimex/pp-cli@2.0.49
28
28
  ```
29
29
 
30
30
  For requests about the current workspace or thread, resolve context first: