@realtimex/sdk 1.7.13 → 1.7.14
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/dist/{chunk-3DVGTGOK.mjs → chunk-PEWBG7US.mjs} +79 -0
- package/dist/{errors-x6ngbrlA.d.mts → errors-DsxB91BA.d.mts} +57 -1
- package/dist/{errors-x6ngbrlA.d.ts → errors-DsxB91BA.d.ts} +57 -1
- package/dist/index.d.mts +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.js +79 -0
- package/dist/index.mjs +2 -1
- package/dist/v1/index.d.mts +2 -2
- package/dist/v1/index.d.ts +2 -2
- package/dist/v1/index.js +80 -0
- package/dist/v1/index.mjs +3 -1
- package/package.json +1 -1
- package/skills/realtimex-moderator-sdk/SKILL.md +97 -2
- package/skills/realtimex-moderator-sdk/references/api-reference.md +98 -1
- package/skills/realtimex-moderator-sdk/references/known-issues.md +1 -1
- package/skills/realtimex-moderator-sdk/scripts/lib/sdk-init.js +1 -0
- package/skills/realtimex-moderator-sdk/scripts/rtx.js +167 -0
|
@@ -705,6 +705,83 @@ var V1DesktopRuntimeSessionsModule = class {
|
|
|
705
705
|
}
|
|
706
706
|
};
|
|
707
707
|
|
|
708
|
+
// src/v1/modules/v1DesktopBrowser.ts
|
|
709
|
+
var V1DesktopBrowserModule = class {
|
|
710
|
+
constructor(client) {
|
|
711
|
+
this.client = client;
|
|
712
|
+
}
|
|
713
|
+
/**
|
|
714
|
+
* List RealTimeX Browser sessions available in the Electron desktop app.
|
|
715
|
+
* @see GET /sdk/desktop/browser/sessions
|
|
716
|
+
*/
|
|
717
|
+
async listSessions() {
|
|
718
|
+
return this.client.request("GET", `/sdk/desktop/browser/sessions`);
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* Create a named RealTimeX Browser session in the Electron desktop app.
|
|
722
|
+
* @see POST /sdk/desktop/browser/sessions
|
|
723
|
+
*/
|
|
724
|
+
async createSession(body) {
|
|
725
|
+
return this.client.request("POST", `/sdk/desktop/browser/sessions`, body);
|
|
726
|
+
}
|
|
727
|
+
/**
|
|
728
|
+
* Get a specific RealTimeX Browser session by session name.
|
|
729
|
+
* @see GET /sdk/desktop/browser/sessions/{sessionName}
|
|
730
|
+
*/
|
|
731
|
+
async getSession(sessionName) {
|
|
732
|
+
return this.client.request("GET", `/sdk/desktop/browser/sessions/${sessionName}`);
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* Delete a named RealTimeX Browser session from the Electron desktop app.
|
|
736
|
+
* @see DELETE /sdk/desktop/browser/sessions/{sessionName}
|
|
737
|
+
*/
|
|
738
|
+
async deleteSession(sessionName) {
|
|
739
|
+
return this.client.request("DELETE", `/sdk/desktop/browser/sessions/${sessionName}`);
|
|
740
|
+
}
|
|
741
|
+
/**
|
|
742
|
+
* Create a RealTimeX Browser tab, optionally launching the browser session if needed.
|
|
743
|
+
* @see POST /sdk/desktop/browser/tabs
|
|
744
|
+
*/
|
|
745
|
+
async createTab(body) {
|
|
746
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs`, body);
|
|
747
|
+
}
|
|
748
|
+
/**
|
|
749
|
+
* Get a RealTimeX Browser tab snapshot by tab reference.
|
|
750
|
+
* @see GET /sdk/desktop/browser/tabs/{tabRef}
|
|
751
|
+
*/
|
|
752
|
+
async getTab(tabRef) {
|
|
753
|
+
return this.client.request("GET", `/sdk/desktop/browser/tabs/${tabRef}`);
|
|
754
|
+
}
|
|
755
|
+
/**
|
|
756
|
+
* Close an existing RealTimeX Browser tab.
|
|
757
|
+
* @see DELETE /sdk/desktop/browser/tabs/{tabRef}
|
|
758
|
+
*/
|
|
759
|
+
async deleteTab(tabRef) {
|
|
760
|
+
return this.client.request("DELETE", `/sdk/desktop/browser/tabs/${tabRef}`);
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
763
|
+
* Evaluate JavaScript in a specific RealTimeX Browser tab.
|
|
764
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/evaluate
|
|
765
|
+
*/
|
|
766
|
+
async evaluateTab(tabRef, body) {
|
|
767
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs/${tabRef}/evaluate`, body);
|
|
768
|
+
}
|
|
769
|
+
/**
|
|
770
|
+
* Focus an existing RealTimeX Browser tab.
|
|
771
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/focus
|
|
772
|
+
*/
|
|
773
|
+
async focusTab(tabRef, body) {
|
|
774
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs/${tabRef}/focus`, body);
|
|
775
|
+
}
|
|
776
|
+
/**
|
|
777
|
+
* Navigate an existing RealTimeX Browser tab to a new URL.
|
|
778
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/navigate
|
|
779
|
+
*/
|
|
780
|
+
async navigateTab(tabRef, body) {
|
|
781
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs/${tabRef}/navigate`, body);
|
|
782
|
+
}
|
|
783
|
+
};
|
|
784
|
+
|
|
708
785
|
// src/v1/namespace.ts
|
|
709
786
|
var V1ApiNamespace = class {
|
|
710
787
|
// [GENERATED-PROPS-END]
|
|
@@ -720,6 +797,7 @@ var V1ApiNamespace = class {
|
|
|
720
797
|
this.openai = new V1OpenAIModule(this._client);
|
|
721
798
|
this.embed = new V1EmbedModule(this._client);
|
|
722
799
|
this.desktopRuntimeSessions = new V1DesktopRuntimeSessionsModule(this._client);
|
|
800
|
+
this.desktopBrowser = new V1DesktopBrowserModule(this._client);
|
|
723
801
|
}
|
|
724
802
|
};
|
|
725
803
|
|
|
@@ -740,5 +818,6 @@ export {
|
|
|
740
818
|
V1OpenAIModule,
|
|
741
819
|
V1EmbedModule,
|
|
742
820
|
V1DesktopRuntimeSessionsModule,
|
|
821
|
+
V1DesktopBrowserModule,
|
|
743
822
|
V1ApiNamespace
|
|
744
823
|
};
|
|
@@ -450,6 +450,61 @@ declare class V1DesktopRuntimeSessionsModule {
|
|
|
450
450
|
permission(sessionId: string, body?: Record<string, unknown>): Promise<unknown>;
|
|
451
451
|
}
|
|
452
452
|
|
|
453
|
+
declare class V1DesktopBrowserModule {
|
|
454
|
+
private readonly client;
|
|
455
|
+
constructor(client: DeveloperApiClient);
|
|
456
|
+
/**
|
|
457
|
+
* List RealTimeX Browser sessions available in the Electron desktop app.
|
|
458
|
+
* @see GET /sdk/desktop/browser/sessions
|
|
459
|
+
*/
|
|
460
|
+
listSessions(): Promise<unknown>;
|
|
461
|
+
/**
|
|
462
|
+
* Create a named RealTimeX Browser session in the Electron desktop app.
|
|
463
|
+
* @see POST /sdk/desktop/browser/sessions
|
|
464
|
+
*/
|
|
465
|
+
createSession(body?: Record<string, unknown>): Promise<unknown>;
|
|
466
|
+
/**
|
|
467
|
+
* Get a specific RealTimeX Browser session by session name.
|
|
468
|
+
* @see GET /sdk/desktop/browser/sessions/{sessionName}
|
|
469
|
+
*/
|
|
470
|
+
getSession(sessionName: string): Promise<unknown>;
|
|
471
|
+
/**
|
|
472
|
+
* Delete a named RealTimeX Browser session from the Electron desktop app.
|
|
473
|
+
* @see DELETE /sdk/desktop/browser/sessions/{sessionName}
|
|
474
|
+
*/
|
|
475
|
+
deleteSession(sessionName: string): Promise<unknown>;
|
|
476
|
+
/**
|
|
477
|
+
* Create a RealTimeX Browser tab, optionally launching the browser session if needed.
|
|
478
|
+
* @see POST /sdk/desktop/browser/tabs
|
|
479
|
+
*/
|
|
480
|
+
createTab(body?: Record<string, unknown>): Promise<unknown>;
|
|
481
|
+
/**
|
|
482
|
+
* Get a RealTimeX Browser tab snapshot by tab reference.
|
|
483
|
+
* @see GET /sdk/desktop/browser/tabs/{tabRef}
|
|
484
|
+
*/
|
|
485
|
+
getTab(tabRef: string): Promise<unknown>;
|
|
486
|
+
/**
|
|
487
|
+
* Close an existing RealTimeX Browser tab.
|
|
488
|
+
* @see DELETE /sdk/desktop/browser/tabs/{tabRef}
|
|
489
|
+
*/
|
|
490
|
+
deleteTab(tabRef: string): Promise<unknown>;
|
|
491
|
+
/**
|
|
492
|
+
* Evaluate JavaScript in a specific RealTimeX Browser tab.
|
|
493
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/evaluate
|
|
494
|
+
*/
|
|
495
|
+
evaluateTab(tabRef: string, body?: Record<string, unknown>): Promise<unknown>;
|
|
496
|
+
/**
|
|
497
|
+
* Focus an existing RealTimeX Browser tab.
|
|
498
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/focus
|
|
499
|
+
*/
|
|
500
|
+
focusTab(tabRef: string, body?: Record<string, unknown>): Promise<unknown>;
|
|
501
|
+
/**
|
|
502
|
+
* Navigate an existing RealTimeX Browser tab to a new URL.
|
|
503
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/navigate
|
|
504
|
+
*/
|
|
505
|
+
navigateTab(tabRef: string, body?: Record<string, unknown>): Promise<unknown>;
|
|
506
|
+
}
|
|
507
|
+
|
|
453
508
|
/**
|
|
454
509
|
* V1ApiNamespace - Container for all RealtimeX Developer API (v1) modules.
|
|
455
510
|
*
|
|
@@ -474,6 +529,7 @@ declare class V1ApiNamespace {
|
|
|
474
529
|
openai: V1OpenAIModule;
|
|
475
530
|
embed: V1EmbedModule;
|
|
476
531
|
desktopRuntimeSessions: V1DesktopRuntimeSessionsModule;
|
|
532
|
+
desktopBrowser: V1DesktopBrowserModule;
|
|
477
533
|
constructor(baseUrl: string, apiKey: string, appId?: string);
|
|
478
534
|
}
|
|
479
535
|
|
|
@@ -498,4 +554,4 @@ declare class ServerError extends DeveloperApiError {
|
|
|
498
554
|
constructor(message?: string);
|
|
499
555
|
}
|
|
500
556
|
|
|
501
|
-
export { AuthenticationError as A, DeveloperApiClient as D, NotFoundError as N, ServerError as S, V1ApiNamespace as V, V1DesktopRuntimeSessionsModule as a,
|
|
557
|
+
export { AuthenticationError as A, DeveloperApiClient as D, NotFoundError as N, ServerError as S, V1ApiNamespace as V, V1DesktopRuntimeSessionsModule as a, V1DesktopBrowserModule as b, DeveloperApiError as c, ValidationError as d, V1AuthModule as e, V1AdminModule as f, V1DocumentModule as g, V1WorkspaceModule as h, V1SystemModule as i, V1ThreadModule as j, V1UsersModule as k, V1OpenAIModule as l, V1EmbedModule as m };
|
|
@@ -450,6 +450,61 @@ declare class V1DesktopRuntimeSessionsModule {
|
|
|
450
450
|
permission(sessionId: string, body?: Record<string, unknown>): Promise<unknown>;
|
|
451
451
|
}
|
|
452
452
|
|
|
453
|
+
declare class V1DesktopBrowserModule {
|
|
454
|
+
private readonly client;
|
|
455
|
+
constructor(client: DeveloperApiClient);
|
|
456
|
+
/**
|
|
457
|
+
* List RealTimeX Browser sessions available in the Electron desktop app.
|
|
458
|
+
* @see GET /sdk/desktop/browser/sessions
|
|
459
|
+
*/
|
|
460
|
+
listSessions(): Promise<unknown>;
|
|
461
|
+
/**
|
|
462
|
+
* Create a named RealTimeX Browser session in the Electron desktop app.
|
|
463
|
+
* @see POST /sdk/desktop/browser/sessions
|
|
464
|
+
*/
|
|
465
|
+
createSession(body?: Record<string, unknown>): Promise<unknown>;
|
|
466
|
+
/**
|
|
467
|
+
* Get a specific RealTimeX Browser session by session name.
|
|
468
|
+
* @see GET /sdk/desktop/browser/sessions/{sessionName}
|
|
469
|
+
*/
|
|
470
|
+
getSession(sessionName: string): Promise<unknown>;
|
|
471
|
+
/**
|
|
472
|
+
* Delete a named RealTimeX Browser session from the Electron desktop app.
|
|
473
|
+
* @see DELETE /sdk/desktop/browser/sessions/{sessionName}
|
|
474
|
+
*/
|
|
475
|
+
deleteSession(sessionName: string): Promise<unknown>;
|
|
476
|
+
/**
|
|
477
|
+
* Create a RealTimeX Browser tab, optionally launching the browser session if needed.
|
|
478
|
+
* @see POST /sdk/desktop/browser/tabs
|
|
479
|
+
*/
|
|
480
|
+
createTab(body?: Record<string, unknown>): Promise<unknown>;
|
|
481
|
+
/**
|
|
482
|
+
* Get a RealTimeX Browser tab snapshot by tab reference.
|
|
483
|
+
* @see GET /sdk/desktop/browser/tabs/{tabRef}
|
|
484
|
+
*/
|
|
485
|
+
getTab(tabRef: string): Promise<unknown>;
|
|
486
|
+
/**
|
|
487
|
+
* Close an existing RealTimeX Browser tab.
|
|
488
|
+
* @see DELETE /sdk/desktop/browser/tabs/{tabRef}
|
|
489
|
+
*/
|
|
490
|
+
deleteTab(tabRef: string): Promise<unknown>;
|
|
491
|
+
/**
|
|
492
|
+
* Evaluate JavaScript in a specific RealTimeX Browser tab.
|
|
493
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/evaluate
|
|
494
|
+
*/
|
|
495
|
+
evaluateTab(tabRef: string, body?: Record<string, unknown>): Promise<unknown>;
|
|
496
|
+
/**
|
|
497
|
+
* Focus an existing RealTimeX Browser tab.
|
|
498
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/focus
|
|
499
|
+
*/
|
|
500
|
+
focusTab(tabRef: string, body?: Record<string, unknown>): Promise<unknown>;
|
|
501
|
+
/**
|
|
502
|
+
* Navigate an existing RealTimeX Browser tab to a new URL.
|
|
503
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/navigate
|
|
504
|
+
*/
|
|
505
|
+
navigateTab(tabRef: string, body?: Record<string, unknown>): Promise<unknown>;
|
|
506
|
+
}
|
|
507
|
+
|
|
453
508
|
/**
|
|
454
509
|
* V1ApiNamespace - Container for all RealtimeX Developer API (v1) modules.
|
|
455
510
|
*
|
|
@@ -474,6 +529,7 @@ declare class V1ApiNamespace {
|
|
|
474
529
|
openai: V1OpenAIModule;
|
|
475
530
|
embed: V1EmbedModule;
|
|
476
531
|
desktopRuntimeSessions: V1DesktopRuntimeSessionsModule;
|
|
532
|
+
desktopBrowser: V1DesktopBrowserModule;
|
|
477
533
|
constructor(baseUrl: string, apiKey: string, appId?: string);
|
|
478
534
|
}
|
|
479
535
|
|
|
@@ -498,4 +554,4 @@ declare class ServerError extends DeveloperApiError {
|
|
|
498
554
|
constructor(message?: string);
|
|
499
555
|
}
|
|
500
556
|
|
|
501
|
-
export { AuthenticationError as A, DeveloperApiClient as D, NotFoundError as N, ServerError as S, V1ApiNamespace as V, V1DesktopRuntimeSessionsModule as a,
|
|
557
|
+
export { AuthenticationError as A, DeveloperApiClient as D, NotFoundError as N, ServerError as S, V1ApiNamespace as V, V1DesktopRuntimeSessionsModule as a, V1DesktopBrowserModule as b, DeveloperApiError as c, ValidationError as d, V1AuthModule as e, V1AdminModule as f, V1DocumentModule as g, V1WorkspaceModule as h, V1SystemModule as i, V1ThreadModule as j, V1UsersModule as k, V1OpenAIModule as l, V1EmbedModule as m };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { V as V1ApiNamespace, a as V1DesktopRuntimeSessionsModule } from './errors-
|
|
2
|
-
export { A as AuthenticationError, D as DeveloperApiClient,
|
|
1
|
+
import { V as V1ApiNamespace, a as V1DesktopRuntimeSessionsModule, b as V1DesktopBrowserModule } from './errors-DsxB91BA.mjs';
|
|
2
|
+
export { A as AuthenticationError, D as DeveloperApiClient, c as DeveloperApiError, N as NotFoundError, S as ServerError, d as ValidationError } from './errors-DsxB91BA.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* RealtimeX Local App SDK - Types
|
|
@@ -2027,6 +2027,11 @@ declare class RealtimeXSDK {
|
|
|
2027
2027
|
* Backed by `sdk.v1.desktopRuntimeSessions` for compatibility with generated v1 modules.
|
|
2028
2028
|
*/
|
|
2029
2029
|
desktopRuntimeSessions: V1DesktopRuntimeSessionsModule | undefined;
|
|
2030
|
+
/**
|
|
2031
|
+
* Desktop browser control — top-level alias for the RealTimeX Browser session and tab APIs.
|
|
2032
|
+
* Backed by `sdk.v1.desktopBrowser` for compatibility with generated v1 modules.
|
|
2033
|
+
*/
|
|
2034
|
+
desktopBrowser: V1DesktopBrowserModule | undefined;
|
|
2030
2035
|
readonly appId: string;
|
|
2031
2036
|
readonly appName: string | undefined;
|
|
2032
2037
|
readonly apiKey: string | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { V as V1ApiNamespace, a as V1DesktopRuntimeSessionsModule } from './errors-
|
|
2
|
-
export { A as AuthenticationError, D as DeveloperApiClient,
|
|
1
|
+
import { V as V1ApiNamespace, a as V1DesktopRuntimeSessionsModule, b as V1DesktopBrowserModule } from './errors-DsxB91BA.js';
|
|
2
|
+
export { A as AuthenticationError, D as DeveloperApiClient, c as DeveloperApiError, N as NotFoundError, S as ServerError, d as ValidationError } from './errors-DsxB91BA.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* RealtimeX Local App SDK - Types
|
|
@@ -2027,6 +2027,11 @@ declare class RealtimeXSDK {
|
|
|
2027
2027
|
* Backed by `sdk.v1.desktopRuntimeSessions` for compatibility with generated v1 modules.
|
|
2028
2028
|
*/
|
|
2029
2029
|
desktopRuntimeSessions: V1DesktopRuntimeSessionsModule | undefined;
|
|
2030
|
+
/**
|
|
2031
|
+
* Desktop browser control — top-level alias for the RealTimeX Browser session and tab APIs.
|
|
2032
|
+
* Backed by `sdk.v1.desktopBrowser` for compatibility with generated v1 modules.
|
|
2033
|
+
*/
|
|
2034
|
+
desktopBrowser: V1DesktopBrowserModule | undefined;
|
|
2030
2035
|
readonly appId: string;
|
|
2031
2036
|
readonly appName: string | undefined;
|
|
2032
2037
|
readonly apiKey: string | undefined;
|
package/dist/index.js
CHANGED
|
@@ -3750,6 +3750,83 @@ var V1DesktopRuntimeSessionsModule = class {
|
|
|
3750
3750
|
}
|
|
3751
3751
|
};
|
|
3752
3752
|
|
|
3753
|
+
// src/v1/modules/v1DesktopBrowser.ts
|
|
3754
|
+
var V1DesktopBrowserModule = class {
|
|
3755
|
+
constructor(client) {
|
|
3756
|
+
this.client = client;
|
|
3757
|
+
}
|
|
3758
|
+
/**
|
|
3759
|
+
* List RealTimeX Browser sessions available in the Electron desktop app.
|
|
3760
|
+
* @see GET /sdk/desktop/browser/sessions
|
|
3761
|
+
*/
|
|
3762
|
+
async listSessions() {
|
|
3763
|
+
return this.client.request("GET", `/sdk/desktop/browser/sessions`);
|
|
3764
|
+
}
|
|
3765
|
+
/**
|
|
3766
|
+
* Create a named RealTimeX Browser session in the Electron desktop app.
|
|
3767
|
+
* @see POST /sdk/desktop/browser/sessions
|
|
3768
|
+
*/
|
|
3769
|
+
async createSession(body) {
|
|
3770
|
+
return this.client.request("POST", `/sdk/desktop/browser/sessions`, body);
|
|
3771
|
+
}
|
|
3772
|
+
/**
|
|
3773
|
+
* Get a specific RealTimeX Browser session by session name.
|
|
3774
|
+
* @see GET /sdk/desktop/browser/sessions/{sessionName}
|
|
3775
|
+
*/
|
|
3776
|
+
async getSession(sessionName) {
|
|
3777
|
+
return this.client.request("GET", `/sdk/desktop/browser/sessions/${sessionName}`);
|
|
3778
|
+
}
|
|
3779
|
+
/**
|
|
3780
|
+
* Delete a named RealTimeX Browser session from the Electron desktop app.
|
|
3781
|
+
* @see DELETE /sdk/desktop/browser/sessions/{sessionName}
|
|
3782
|
+
*/
|
|
3783
|
+
async deleteSession(sessionName) {
|
|
3784
|
+
return this.client.request("DELETE", `/sdk/desktop/browser/sessions/${sessionName}`);
|
|
3785
|
+
}
|
|
3786
|
+
/**
|
|
3787
|
+
* Create a RealTimeX Browser tab, optionally launching the browser session if needed.
|
|
3788
|
+
* @see POST /sdk/desktop/browser/tabs
|
|
3789
|
+
*/
|
|
3790
|
+
async createTab(body) {
|
|
3791
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs`, body);
|
|
3792
|
+
}
|
|
3793
|
+
/**
|
|
3794
|
+
* Get a RealTimeX Browser tab snapshot by tab reference.
|
|
3795
|
+
* @see GET /sdk/desktop/browser/tabs/{tabRef}
|
|
3796
|
+
*/
|
|
3797
|
+
async getTab(tabRef) {
|
|
3798
|
+
return this.client.request("GET", `/sdk/desktop/browser/tabs/${tabRef}`);
|
|
3799
|
+
}
|
|
3800
|
+
/**
|
|
3801
|
+
* Close an existing RealTimeX Browser tab.
|
|
3802
|
+
* @see DELETE /sdk/desktop/browser/tabs/{tabRef}
|
|
3803
|
+
*/
|
|
3804
|
+
async deleteTab(tabRef) {
|
|
3805
|
+
return this.client.request("DELETE", `/sdk/desktop/browser/tabs/${tabRef}`);
|
|
3806
|
+
}
|
|
3807
|
+
/**
|
|
3808
|
+
* Evaluate JavaScript in a specific RealTimeX Browser tab.
|
|
3809
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/evaluate
|
|
3810
|
+
*/
|
|
3811
|
+
async evaluateTab(tabRef, body) {
|
|
3812
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs/${tabRef}/evaluate`, body);
|
|
3813
|
+
}
|
|
3814
|
+
/**
|
|
3815
|
+
* Focus an existing RealTimeX Browser tab.
|
|
3816
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/focus
|
|
3817
|
+
*/
|
|
3818
|
+
async focusTab(tabRef, body) {
|
|
3819
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs/${tabRef}/focus`, body);
|
|
3820
|
+
}
|
|
3821
|
+
/**
|
|
3822
|
+
* Navigate an existing RealTimeX Browser tab to a new URL.
|
|
3823
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/navigate
|
|
3824
|
+
*/
|
|
3825
|
+
async navigateTab(tabRef, body) {
|
|
3826
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs/${tabRef}/navigate`, body);
|
|
3827
|
+
}
|
|
3828
|
+
};
|
|
3829
|
+
|
|
3753
3830
|
// src/v1/namespace.ts
|
|
3754
3831
|
var V1ApiNamespace = class {
|
|
3755
3832
|
// [GENERATED-PROPS-END]
|
|
@@ -3765,6 +3842,7 @@ var V1ApiNamespace = class {
|
|
|
3765
3842
|
this.openai = new V1OpenAIModule(this._client);
|
|
3766
3843
|
this.embed = new V1EmbedModule(this._client);
|
|
3767
3844
|
this.desktopRuntimeSessions = new V1DesktopRuntimeSessionsModule(this._client);
|
|
3845
|
+
this.desktopBrowser = new V1DesktopBrowserModule(this._client);
|
|
3768
3846
|
}
|
|
3769
3847
|
};
|
|
3770
3848
|
|
|
@@ -4468,6 +4546,7 @@ var _RealtimeXSDK = class _RealtimeXSDK {
|
|
|
4468
4546
|
this.credentials = new CredentialsModule(this.httpClient);
|
|
4469
4547
|
this.v1 = this.apiKey || this.appId ? new V1ApiNamespace(this.realtimexUrl, this.apiKey ?? "", this.appId || void 0) : void 0;
|
|
4470
4548
|
this.desktopRuntimeSessions = this.v1?.desktopRuntimeSessions;
|
|
4549
|
+
this.desktopBrowser = this.v1?.desktopBrowser;
|
|
4471
4550
|
if (this.permissions.length > 0 && this.appId && !this.apiKey) {
|
|
4472
4551
|
this.register().catch((err) => {
|
|
4473
4552
|
console.error("[RealtimeX SDK] Auto-registration failed:", err.message);
|
package/dist/index.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
ServerError,
|
|
7
7
|
V1ApiNamespace,
|
|
8
8
|
ValidationError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-PEWBG7US.mjs";
|
|
10
10
|
|
|
11
11
|
// src/modules/api.ts
|
|
12
12
|
var PermissionDeniedError = class extends Error {
|
|
@@ -3653,6 +3653,7 @@ var _RealtimeXSDK = class _RealtimeXSDK {
|
|
|
3653
3653
|
this.credentials = new CredentialsModule(this.httpClient);
|
|
3654
3654
|
this.v1 = this.apiKey || this.appId ? new V1ApiNamespace(this.realtimexUrl, this.apiKey ?? "", this.appId || void 0) : void 0;
|
|
3655
3655
|
this.desktopRuntimeSessions = this.v1?.desktopRuntimeSessions;
|
|
3656
|
+
this.desktopBrowser = this.v1?.desktopBrowser;
|
|
3656
3657
|
if (this.permissions.length > 0 && this.appId && !this.apiKey) {
|
|
3657
3658
|
this.register().catch((err) => {
|
|
3658
3659
|
console.error("[RealtimeX SDK] Auto-registration failed:", err.message);
|
package/dist/v1/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as DeveloperApiClient } from '../errors-
|
|
2
|
-
export { A as AuthenticationError,
|
|
1
|
+
import { D as DeveloperApiClient } from '../errors-DsxB91BA.mjs';
|
|
2
|
+
export { A as AuthenticationError, c as DeveloperApiError, N as NotFoundError, S as ServerError, f as V1AdminModule, V as V1ApiNamespace, e as V1AuthModule, b as V1DesktopBrowserModule, a as V1DesktopRuntimeSessionsModule, g as V1DocumentModule, m as V1EmbedModule, l as V1OpenAIModule, i as V1SystemModule, j as V1ThreadModule, k as V1UsersModule, h as V1WorkspaceModule, d as ValidationError } from '../errors-DsxB91BA.mjs';
|
|
3
3
|
|
|
4
4
|
interface WorkspaceStreamChunk {
|
|
5
5
|
/** The text fragment emitted by this SSE event */
|
package/dist/v1/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as DeveloperApiClient } from '../errors-
|
|
2
|
-
export { A as AuthenticationError,
|
|
1
|
+
import { D as DeveloperApiClient } from '../errors-DsxB91BA.js';
|
|
2
|
+
export { A as AuthenticationError, c as DeveloperApiError, N as NotFoundError, S as ServerError, f as V1AdminModule, V as V1ApiNamespace, e as V1AuthModule, b as V1DesktopBrowserModule, a as V1DesktopRuntimeSessionsModule, g as V1DocumentModule, m as V1EmbedModule, l as V1OpenAIModule, i as V1SystemModule, j as V1ThreadModule, k as V1UsersModule, h as V1WorkspaceModule, d as ValidationError } from '../errors-DsxB91BA.js';
|
|
3
3
|
|
|
4
4
|
interface WorkspaceStreamChunk {
|
|
5
5
|
/** The text fragment emitted by this SSE event */
|
package/dist/v1/index.js
CHANGED
|
@@ -28,6 +28,7 @@ __export(v1_exports, {
|
|
|
28
28
|
V1AdminModule: () => V1AdminModule,
|
|
29
29
|
V1ApiNamespace: () => V1ApiNamespace,
|
|
30
30
|
V1AuthModule: () => V1AuthModule,
|
|
31
|
+
V1DesktopBrowserModule: () => V1DesktopBrowserModule,
|
|
31
32
|
V1DesktopRuntimeSessionsModule: () => V1DesktopRuntimeSessionsModule,
|
|
32
33
|
V1DocumentModule: () => V1DocumentModule,
|
|
33
34
|
V1EmbedModule: () => V1EmbedModule,
|
|
@@ -751,6 +752,83 @@ var V1DesktopRuntimeSessionsModule = class {
|
|
|
751
752
|
}
|
|
752
753
|
};
|
|
753
754
|
|
|
755
|
+
// src/v1/modules/v1DesktopBrowser.ts
|
|
756
|
+
var V1DesktopBrowserModule = class {
|
|
757
|
+
constructor(client) {
|
|
758
|
+
this.client = client;
|
|
759
|
+
}
|
|
760
|
+
/**
|
|
761
|
+
* List RealTimeX Browser sessions available in the Electron desktop app.
|
|
762
|
+
* @see GET /sdk/desktop/browser/sessions
|
|
763
|
+
*/
|
|
764
|
+
async listSessions() {
|
|
765
|
+
return this.client.request("GET", `/sdk/desktop/browser/sessions`);
|
|
766
|
+
}
|
|
767
|
+
/**
|
|
768
|
+
* Create a named RealTimeX Browser session in the Electron desktop app.
|
|
769
|
+
* @see POST /sdk/desktop/browser/sessions
|
|
770
|
+
*/
|
|
771
|
+
async createSession(body) {
|
|
772
|
+
return this.client.request("POST", `/sdk/desktop/browser/sessions`, body);
|
|
773
|
+
}
|
|
774
|
+
/**
|
|
775
|
+
* Get a specific RealTimeX Browser session by session name.
|
|
776
|
+
* @see GET /sdk/desktop/browser/sessions/{sessionName}
|
|
777
|
+
*/
|
|
778
|
+
async getSession(sessionName) {
|
|
779
|
+
return this.client.request("GET", `/sdk/desktop/browser/sessions/${sessionName}`);
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
* Delete a named RealTimeX Browser session from the Electron desktop app.
|
|
783
|
+
* @see DELETE /sdk/desktop/browser/sessions/{sessionName}
|
|
784
|
+
*/
|
|
785
|
+
async deleteSession(sessionName) {
|
|
786
|
+
return this.client.request("DELETE", `/sdk/desktop/browser/sessions/${sessionName}`);
|
|
787
|
+
}
|
|
788
|
+
/**
|
|
789
|
+
* Create a RealTimeX Browser tab, optionally launching the browser session if needed.
|
|
790
|
+
* @see POST /sdk/desktop/browser/tabs
|
|
791
|
+
*/
|
|
792
|
+
async createTab(body) {
|
|
793
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs`, body);
|
|
794
|
+
}
|
|
795
|
+
/**
|
|
796
|
+
* Get a RealTimeX Browser tab snapshot by tab reference.
|
|
797
|
+
* @see GET /sdk/desktop/browser/tabs/{tabRef}
|
|
798
|
+
*/
|
|
799
|
+
async getTab(tabRef) {
|
|
800
|
+
return this.client.request("GET", `/sdk/desktop/browser/tabs/${tabRef}`);
|
|
801
|
+
}
|
|
802
|
+
/**
|
|
803
|
+
* Close an existing RealTimeX Browser tab.
|
|
804
|
+
* @see DELETE /sdk/desktop/browser/tabs/{tabRef}
|
|
805
|
+
*/
|
|
806
|
+
async deleteTab(tabRef) {
|
|
807
|
+
return this.client.request("DELETE", `/sdk/desktop/browser/tabs/${tabRef}`);
|
|
808
|
+
}
|
|
809
|
+
/**
|
|
810
|
+
* Evaluate JavaScript in a specific RealTimeX Browser tab.
|
|
811
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/evaluate
|
|
812
|
+
*/
|
|
813
|
+
async evaluateTab(tabRef, body) {
|
|
814
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs/${tabRef}/evaluate`, body);
|
|
815
|
+
}
|
|
816
|
+
/**
|
|
817
|
+
* Focus an existing RealTimeX Browser tab.
|
|
818
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/focus
|
|
819
|
+
*/
|
|
820
|
+
async focusTab(tabRef, body) {
|
|
821
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs/${tabRef}/focus`, body);
|
|
822
|
+
}
|
|
823
|
+
/**
|
|
824
|
+
* Navigate an existing RealTimeX Browser tab to a new URL.
|
|
825
|
+
* @see POST /sdk/desktop/browser/tabs/{tabRef}/navigate
|
|
826
|
+
*/
|
|
827
|
+
async navigateTab(tabRef, body) {
|
|
828
|
+
return this.client.request("POST", `/sdk/desktop/browser/tabs/${tabRef}/navigate`, body);
|
|
829
|
+
}
|
|
830
|
+
};
|
|
831
|
+
|
|
754
832
|
// src/v1/namespace.ts
|
|
755
833
|
var V1ApiNamespace = class {
|
|
756
834
|
// [GENERATED-PROPS-END]
|
|
@@ -766,6 +844,7 @@ var V1ApiNamespace = class {
|
|
|
766
844
|
this.openai = new V1OpenAIModule(this._client);
|
|
767
845
|
this.embed = new V1EmbedModule(this._client);
|
|
768
846
|
this.desktopRuntimeSessions = new V1DesktopRuntimeSessionsModule(this._client);
|
|
847
|
+
this.desktopBrowser = new V1DesktopBrowserModule(this._client);
|
|
769
848
|
}
|
|
770
849
|
};
|
|
771
850
|
|
|
@@ -892,6 +971,7 @@ async function uploadFileToFolder(client, file, folderName, options = {}) {
|
|
|
892
971
|
V1AdminModule,
|
|
893
972
|
V1ApiNamespace,
|
|
894
973
|
V1AuthModule,
|
|
974
|
+
V1DesktopBrowserModule,
|
|
895
975
|
V1DesktopRuntimeSessionsModule,
|
|
896
976
|
V1DocumentModule,
|
|
897
977
|
V1EmbedModule,
|
package/dist/v1/index.mjs
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
V1AdminModule,
|
|
8
8
|
V1ApiNamespace,
|
|
9
9
|
V1AuthModule,
|
|
10
|
+
V1DesktopBrowserModule,
|
|
10
11
|
V1DesktopRuntimeSessionsModule,
|
|
11
12
|
V1DocumentModule,
|
|
12
13
|
V1EmbedModule,
|
|
@@ -16,7 +17,7 @@ import {
|
|
|
16
17
|
V1UsersModule,
|
|
17
18
|
V1WorkspaceModule,
|
|
18
19
|
ValidationError
|
|
19
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-PEWBG7US.mjs";
|
|
20
21
|
|
|
21
22
|
// src/v1/overrides/v1WorkspaceStreaming.ts
|
|
22
23
|
async function* streamWorkspaceChat(client, slug, body) {
|
|
@@ -140,6 +141,7 @@ export {
|
|
|
140
141
|
V1AdminModule,
|
|
141
142
|
V1ApiNamespace,
|
|
142
143
|
V1AuthModule,
|
|
144
|
+
V1DesktopBrowserModule,
|
|
143
145
|
V1DesktopRuntimeSessionsModule,
|
|
144
146
|
V1DocumentModule,
|
|
145
147
|
V1EmbedModule,
|
package/package.json
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
name: realtimex-moderator-sdk
|
|
3
3
|
description: Control and interact with the RealTimeX application through its Node.js SDK. This skill should be used when users want to manage workspaces, threads, agents, activities, LLM chat, vector store, MCP tools, ACP agent sessions, TTS/STT, or any other RealTimeX platform feature via the API. All method signatures are verified against the SDK source code.
|
|
4
4
|
generated: 2026-05-08
|
|
5
|
-
sdk_version: 1.7.
|
|
5
|
+
sdk_version: 1.7.14
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# RealTimeX Moderator (SDK Source-Verified)
|
|
9
9
|
|
|
10
|
-
Interact with the RealTimeX platform (`http://localhost:3001`) using `@realtimex/sdk` **v1.7.
|
|
10
|
+
Interact with the RealTimeX platform (`http://localhost:3001`) using `@realtimex/sdk` **v1.7.14**. Authentication is automatic when running inside RealtimeX.
|
|
11
11
|
|
|
12
12
|
`<SKILL_DIR>` below refers to the directory containing this SKILL.md.
|
|
13
13
|
|
|
@@ -29,6 +29,9 @@ node "$SKILL" terminal-launch-cli-agent claude claude-cli "what is current worki
|
|
|
29
29
|
node "$SKILL" terminal-launch-shell --workspace=<slug> --thread=<slug> --command="pwd" $ENV
|
|
30
30
|
node "$SKILL" terminal-sessions --workspace=<slug> $ENV
|
|
31
31
|
node "$SKILL" terminal-write <session-id> "continue" $ENV
|
|
32
|
+
node "$SKILL" browser-sessions $ENV
|
|
33
|
+
node "$SKILL" browser-session-create github-review $ENV
|
|
34
|
+
node "$SKILL" browser-tab-create https://example.com --session=github-review $ENV
|
|
32
35
|
node "$SKILL" acp-chat qwen-cli "question" --cwd=<path> $ENV
|
|
33
36
|
node "$SKILL" llm-chat "message" $ENV
|
|
34
37
|
node "$SKILL" activities --status=pending $ENV
|
|
@@ -169,6 +172,98 @@ If the user says:
|
|
|
169
172
|
|
|
170
173
|
then prefer `sdk.desktopRuntimeSessions.*`, not ACP.
|
|
171
174
|
|
|
175
|
+
If the user says:
|
|
176
|
+
- "open this URL in RealTimeX Browser"
|
|
177
|
+
- "create a browser session"
|
|
178
|
+
- "navigate the managed browser tab"
|
|
179
|
+
- "focus or close a RealTimeX Browser tab"
|
|
180
|
+
|
|
181
|
+
then prefer `sdk.desktopBrowser.*`, not ACP and not desktop terminal sessions.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Desktop Browser
|
|
186
|
+
|
|
187
|
+
For anything that says **RealTimeX Browser**, **browser session**, **browser tab**, **open a URL in the managed browser**, or **navigate/focus/close a managed browser tab**, use:
|
|
188
|
+
|
|
189
|
+
- `sdk.desktopBrowser.*`
|
|
190
|
+
|
|
191
|
+
Do **not** use ACP for this unless the user explicitly wants ACP browser handoff behavior. Do **not** use `sdk.desktopRuntimeSessions.*` for browser tabs; that module is only for terminal sessions.
|
|
192
|
+
|
|
193
|
+
### Use desktop browser for
|
|
194
|
+
- listing named RealTimeX Browser sessions
|
|
195
|
+
- creating a named browser session
|
|
196
|
+
- getting or deleting a named browser session
|
|
197
|
+
- creating a browser tab in a named session
|
|
198
|
+
- reading a browser tab snapshot
|
|
199
|
+
- evaluating JavaScript in a browser tab
|
|
200
|
+
- focusing a browser tab
|
|
201
|
+
- navigating a browser tab
|
|
202
|
+
- closing a browser tab
|
|
203
|
+
|
|
204
|
+
### Correct SDK namespace
|
|
205
|
+
|
|
206
|
+
```js
|
|
207
|
+
sdk.desktopBrowser
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Compatibility:
|
|
211
|
+
- `sdk.desktopBrowser` is the preferred alias
|
|
212
|
+
- `sdk.v1.desktopBrowser` still exists for backward compatibility
|
|
213
|
+
|
|
214
|
+
### Correct examples
|
|
215
|
+
|
|
216
|
+
List browser sessions:
|
|
217
|
+
|
|
218
|
+
```js
|
|
219
|
+
await sdk.desktopBrowser.listSessions();
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Create a named browser session:
|
|
223
|
+
|
|
224
|
+
```js
|
|
225
|
+
await sdk.desktopBrowser.createSession({
|
|
226
|
+
sessionName: "github-review"
|
|
227
|
+
});
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Create a browser tab:
|
|
231
|
+
|
|
232
|
+
```js
|
|
233
|
+
await sdk.desktopBrowser.createTab({
|
|
234
|
+
sessionName: "github-review",
|
|
235
|
+
url: "https://example.com"
|
|
236
|
+
});
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Navigate a browser tab:
|
|
240
|
+
|
|
241
|
+
```js
|
|
242
|
+
await sdk.desktopBrowser.navigateTab("cli-browser:9555:tab:3", {
|
|
243
|
+
url: "https://docs.realtimex.ai",
|
|
244
|
+
focus: true,
|
|
245
|
+
focusWindow: true
|
|
246
|
+
});
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Evaluate JavaScript in a browser tab:
|
|
250
|
+
|
|
251
|
+
```js
|
|
252
|
+
await sdk.desktopBrowser.evaluateTab("cli-browser:9555:tab:3", {
|
|
253
|
+
expression: "document.title",
|
|
254
|
+
userGesture: true
|
|
255
|
+
});
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Naming rule
|
|
259
|
+
|
|
260
|
+
Prefer normal named sessions like:
|
|
261
|
+
- `github-review`
|
|
262
|
+
- `docs-research`
|
|
263
|
+
- `qa-checkout`
|
|
264
|
+
|
|
265
|
+
Avoid mutating reserved/system-managed sessions like `acp-*` unless the user explicitly asks to work with internal ACP browser flows.
|
|
266
|
+
|
|
172
267
|
---
|
|
173
268
|
|
|
174
269
|
## ACP Session Management
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# RealTimeX SDK — API Reference
|
|
2
2
|
|
|
3
|
-
> Auto-generated from `@realtimex/sdk` source · v**1.7.
|
|
3
|
+
> Auto-generated from `@realtimex/sdk` source · v**1.7.14** · 2026-05-08
|
|
4
4
|
|
|
5
5
|
**Package:** `@realtimex/sdk` (CJS) · **Server:** `http://localhost:3001`
|
|
6
6
|
**Developer Mode auth:** `Authorization: Bearer <apiKey>`
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
| `mcp.servers` | `sdk.mcp.getServers()` |
|
|
28
28
|
| `mcp.tools` | `sdk.mcp.getTools/executeTool()` |
|
|
29
29
|
| `acp.agent` | `sdk.acpAgent.*` |
|
|
30
|
+
| `desktop.runtime-sessions` | `sdk.desktopRuntimeSessions.*` |
|
|
31
|
+
| `desktop.browser` | `sdk.desktopBrowser.*` |
|
|
30
32
|
|
|
31
33
|
---
|
|
32
34
|
|
|
@@ -105,6 +107,62 @@ Compatibility: `sdk.v1.desktopRuntimeSessions` remains available, but prefer the
|
|
|
105
107
|
|
|
106
108
|
---
|
|
107
109
|
|
|
110
|
+
## sdk.desktopBrowser — RealTimeX Browser
|
|
111
|
+
|
|
112
|
+
Use this module for the managed RealTimeX Browser control plane. This is the correct path for:
|
|
113
|
+
- listing named browser sessions
|
|
114
|
+
- creating a named browser session
|
|
115
|
+
- opening a URL in a managed browser tab
|
|
116
|
+
- reading/evaluating/focusing/navigating/closing managed browser tabs
|
|
117
|
+
|
|
118
|
+
Do not use ACP for these unless the user explicitly asks for ACP browser handoff behavior.
|
|
119
|
+
Do not use desktop terminal sessions for browser tabs.
|
|
120
|
+
|
|
121
|
+
### `V1DesktopBrowserModule`
|
|
122
|
+
|
|
123
|
+
```ts
|
|
124
|
+
async listSessions(): Promise<unknown>
|
|
125
|
+
async createSession(body: { sessionName: string; remoteDebugPort?: number; }): Promise<unknown>
|
|
126
|
+
async getSession(sessionName: string): Promise<unknown>
|
|
127
|
+
async deleteSession(sessionName: string): Promise<unknown>
|
|
128
|
+
async createTab(body: { sessionName?: string; url: string; focus?: boolean; focusWindow?: boolean; }): Promise<unknown>
|
|
129
|
+
async getTab(tabRef: string): Promise<unknown>
|
|
130
|
+
async evaluateTab(tabRef: string, body: { expression: string; userGesture?: boolean; }): Promise<unknown>
|
|
131
|
+
async focusTab(tabRef: string, body?: { focusWindow?: boolean; }): Promise<unknown>
|
|
132
|
+
async navigateTab(tabRef: string, body: { url: string; focus?: boolean; focusWindow?: boolean; }): Promise<unknown>
|
|
133
|
+
async deleteTab(tabRef: string): Promise<unknown>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Correct examples
|
|
137
|
+
|
|
138
|
+
```js
|
|
139
|
+
await sdk.desktopBrowser.createSession({
|
|
140
|
+
sessionName: 'github-review'
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
await sdk.desktopBrowser.createTab({
|
|
144
|
+
sessionName: 'github-review',
|
|
145
|
+
url: 'https://example.com'
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
await sdk.desktopBrowser.navigateTab('cli-browser:9555:tab:3', {
|
|
149
|
+
url: 'https://docs.realtimex.ai',
|
|
150
|
+
focus: true,
|
|
151
|
+
focusWindow: true
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
await sdk.desktopBrowser.evaluateTab('cli-browser:9555:tab:3', {
|
|
155
|
+
expression: 'document.title',
|
|
156
|
+
userGesture: true
|
|
157
|
+
});
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Prefer normal named sessions like `github-review` or `docs-research`.
|
|
161
|
+
Avoid mutating reserved/system-managed sessions like `acp-*` unless the user explicitly asks for internal ACP browser flows.
|
|
162
|
+
Compatibility: `sdk.v1.desktopBrowser` remains available, but prefer the top-level alias.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
108
166
|
## Core — RealtimeXSDK
|
|
109
167
|
|
|
110
168
|
### `RealtimeXSDK`
|
|
@@ -128,6 +186,7 @@ Compatibility: `sdk.v1.desktopRuntimeSessions` remains available, but prefer the
|
|
|
128
186
|
- `credentials: CredentialsModule`
|
|
129
187
|
- `v1: V1ApiNamespace | undefined`
|
|
130
188
|
- `desktopRuntimeSessions: V1DesktopRuntimeSessionsModule | undefined`
|
|
189
|
+
- `desktopBrowser: V1DesktopBrowserModule | undefined`
|
|
131
190
|
|
|
132
191
|
```ts
|
|
133
192
|
// Developer API (v1) — requires apiKey to be set in config.
|
|
@@ -887,6 +946,44 @@ async createCustomTheme(): Promise<unknown>
|
|
|
887
946
|
|
|
888
947
|
---
|
|
889
948
|
|
|
949
|
+
## sdk.v1.desktopBrowser — v1 Desktop Browser
|
|
950
|
+
|
|
951
|
+
### `V1DesktopBrowserModule`
|
|
952
|
+
|
|
953
|
+
```ts
|
|
954
|
+
// List RealTimeX Browser sessions available in the Electron desktop app.
|
|
955
|
+
async listSessions(): Promise<unknown>
|
|
956
|
+
|
|
957
|
+
// Create a named RealTimeX Browser session in the Electron desktop app.
|
|
958
|
+
async createSession(body?: Record<string, unknown>): Promise<unknown>
|
|
959
|
+
|
|
960
|
+
// Get a specific RealTimeX Browser session by session name.
|
|
961
|
+
async getSession(sessionName: string): Promise<unknown>
|
|
962
|
+
|
|
963
|
+
// Delete a named RealTimeX Browser session from the Electron desktop app.
|
|
964
|
+
async deleteSession(sessionName: string): Promise<unknown>
|
|
965
|
+
|
|
966
|
+
// Create a RealTimeX Browser tab, optionally launching the browser session if needed.
|
|
967
|
+
async createTab(body?: Record<string, unknown>): Promise<unknown>
|
|
968
|
+
|
|
969
|
+
// Get a RealTimeX Browser tab snapshot by tab reference.
|
|
970
|
+
async getTab(tabRef: string): Promise<unknown>
|
|
971
|
+
|
|
972
|
+
// Close an existing RealTimeX Browser tab.
|
|
973
|
+
async deleteTab(tabRef: string): Promise<unknown>
|
|
974
|
+
|
|
975
|
+
// Evaluate JavaScript in a specific RealTimeX Browser tab.
|
|
976
|
+
async evaluateTab(tabRef: string, body?: Record<string, unknown>): Promise<unknown>
|
|
977
|
+
|
|
978
|
+
// Focus an existing RealTimeX Browser tab.
|
|
979
|
+
async focusTab(tabRef: string, body?: Record<string, unknown>): Promise<unknown>
|
|
980
|
+
|
|
981
|
+
// Navigate an existing RealTimeX Browser tab to a new URL.
|
|
982
|
+
async navigateTab(tabRef: string, body?: Record<string, unknown>): Promise<unknown>
|
|
983
|
+
```
|
|
984
|
+
|
|
985
|
+
---
|
|
986
|
+
|
|
890
987
|
## sdk.v1.desktopEmbed — v1 Desktop Embed
|
|
891
988
|
|
|
892
989
|
### `V1DesktopEmbedModule`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Known Issues — Source-Detected
|
|
2
2
|
|
|
3
|
-
> Auto-generated by `scripts/generate-skill.mjs` · SDK **1.7.
|
|
3
|
+
> Auto-generated by `scripts/generate-skill.mjs` · SDK **1.7.14** · 2026-05-08
|
|
4
4
|
|
|
5
5
|
Run `node scripts/generate-skill.mjs --force` after SDK source changes to refresh.
|
|
6
6
|
|
|
@@ -344,6 +344,14 @@ function getDesktopRuntimeSessionsModule(sdk) {
|
|
|
344
344
|
return module;
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
+
function getDesktopBrowserModule(sdk) {
|
|
348
|
+
const module = sdk?.desktopBrowser || sdk?.v1?.desktopBrowser;
|
|
349
|
+
if (!module) {
|
|
350
|
+
throw new Error('sdk.desktopBrowser is unavailable. Ensure the SDK was initialized with Developer API access.');
|
|
351
|
+
}
|
|
352
|
+
return module;
|
|
353
|
+
}
|
|
354
|
+
|
|
347
355
|
// -- terminal-launcher / terminal sessions ----------------------------------
|
|
348
356
|
CMD['terminal-open-launcher'] = async () => {
|
|
349
357
|
const { sdk, context } = await getSDK();
|
|
@@ -450,6 +458,131 @@ CMD['terminal-close'] = async () => {
|
|
|
450
458
|
print(await terminal.deleteRuntimeSession(sessionId));
|
|
451
459
|
};
|
|
452
460
|
|
|
461
|
+
CMD['browser-sessions'] = async () => {
|
|
462
|
+
const { sdk } = await getSDK();
|
|
463
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
464
|
+
print(await browser.listSessions());
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
CMD['browser-session-create'] = async () => {
|
|
468
|
+
const [sessionName] = cmdArgs;
|
|
469
|
+
if (!sessionName) {
|
|
470
|
+
console.error('Usage: rtx.js browser-session-create <session-name> [--port=<n>]');
|
|
471
|
+
process.exit(1);
|
|
472
|
+
}
|
|
473
|
+
const { sdk } = await getSDK();
|
|
474
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
475
|
+
const body = {
|
|
476
|
+
sessionName,
|
|
477
|
+
...(flags.port ? { remoteDebugPort: Number(flags.port) } : {}),
|
|
478
|
+
};
|
|
479
|
+
print(await browser.createSession(body));
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
CMD['browser-session-get'] = async () => {
|
|
483
|
+
const [sessionName] = cmdArgs;
|
|
484
|
+
if (!sessionName) {
|
|
485
|
+
console.error('Usage: rtx.js browser-session-get <session-name>');
|
|
486
|
+
process.exit(1);
|
|
487
|
+
}
|
|
488
|
+
const { sdk } = await getSDK();
|
|
489
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
490
|
+
print(await browser.getSession(sessionName));
|
|
491
|
+
};
|
|
492
|
+
|
|
493
|
+
CMD['browser-session-delete'] = async () => {
|
|
494
|
+
const [sessionName] = cmdArgs;
|
|
495
|
+
if (!sessionName) {
|
|
496
|
+
console.error('Usage: rtx.js browser-session-delete <session-name>');
|
|
497
|
+
process.exit(1);
|
|
498
|
+
}
|
|
499
|
+
const { sdk } = await getSDK();
|
|
500
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
501
|
+
print(await browser.deleteSession(sessionName));
|
|
502
|
+
};
|
|
503
|
+
|
|
504
|
+
CMD['browser-tab-create'] = async () => {
|
|
505
|
+
const [url] = cmdArgs;
|
|
506
|
+
if (!url) {
|
|
507
|
+
console.error('Usage: rtx.js browser-tab-create <url> [--session=<name>] [--focus=true|false] [--focus-window=true|false]');
|
|
508
|
+
process.exit(1);
|
|
509
|
+
}
|
|
510
|
+
const { sdk } = await getSDK();
|
|
511
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
512
|
+
const body = {
|
|
513
|
+
url,
|
|
514
|
+
...(flags.session ? { sessionName: flags.session } : {}),
|
|
515
|
+
...(flags.focus !== undefined ? { focus: flags.focus !== 'false' } : {}),
|
|
516
|
+
...(flags['focus-window'] !== undefined ? { focusWindow: flags['focus-window'] !== 'false' } : {}),
|
|
517
|
+
};
|
|
518
|
+
print(await browser.createTab(body));
|
|
519
|
+
};
|
|
520
|
+
|
|
521
|
+
CMD['browser-tab-get'] = async () => {
|
|
522
|
+
const [tabRef] = cmdArgs;
|
|
523
|
+
if (!tabRef) {
|
|
524
|
+
console.error('Usage: rtx.js browser-tab-get <tab-ref>');
|
|
525
|
+
process.exit(1);
|
|
526
|
+
}
|
|
527
|
+
const { sdk } = await getSDK();
|
|
528
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
529
|
+
print(await browser.getTab(tabRef));
|
|
530
|
+
};
|
|
531
|
+
|
|
532
|
+
CMD['browser-tab-focus'] = async () => {
|
|
533
|
+
const [tabRef] = cmdArgs;
|
|
534
|
+
if (!tabRef) {
|
|
535
|
+
console.error('Usage: rtx.js browser-tab-focus <tab-ref> [--focus-window=true|false]');
|
|
536
|
+
process.exit(1);
|
|
537
|
+
}
|
|
538
|
+
const { sdk } = await getSDK();
|
|
539
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
540
|
+
const body = flags['focus-window'] !== undefined ? { focusWindow: flags['focus-window'] !== 'false' } : {};
|
|
541
|
+
print(await browser.focusTab(tabRef, body));
|
|
542
|
+
};
|
|
543
|
+
|
|
544
|
+
CMD['browser-tab-navigate'] = async () => {
|
|
545
|
+
const [tabRef, url] = cmdArgs;
|
|
546
|
+
if (!tabRef || !url) {
|
|
547
|
+
console.error('Usage: rtx.js browser-tab-navigate <tab-ref> <url> [--focus=true|false] [--focus-window=true|false]');
|
|
548
|
+
process.exit(1);
|
|
549
|
+
}
|
|
550
|
+
const { sdk } = await getSDK();
|
|
551
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
552
|
+
const body = {
|
|
553
|
+
url,
|
|
554
|
+
...(flags.focus !== undefined ? { focus: flags.focus !== 'false' } : {}),
|
|
555
|
+
...(flags['focus-window'] !== undefined ? { focusWindow: flags['focus-window'] !== 'false' } : {}),
|
|
556
|
+
};
|
|
557
|
+
print(await browser.navigateTab(tabRef, body));
|
|
558
|
+
};
|
|
559
|
+
|
|
560
|
+
CMD['browser-tab-evaluate'] = async () => {
|
|
561
|
+
const [tabRef, ...expressionParts] = cmdArgs;
|
|
562
|
+
if (!tabRef || expressionParts.length === 0) {
|
|
563
|
+
console.error('Usage: rtx.js browser-tab-evaluate <tab-ref> <expression> [--user-gesture=true|false]');
|
|
564
|
+
process.exit(1);
|
|
565
|
+
}
|
|
566
|
+
const { sdk } = await getSDK();
|
|
567
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
568
|
+
const body = {
|
|
569
|
+
expression: expressionParts.join(' '),
|
|
570
|
+
...(flags['user-gesture'] !== undefined ? { userGesture: flags['user-gesture'] !== 'false' } : {}),
|
|
571
|
+
};
|
|
572
|
+
print(await browser.evaluateTab(tabRef, body));
|
|
573
|
+
};
|
|
574
|
+
|
|
575
|
+
CMD['browser-tab-close'] = async () => {
|
|
576
|
+
const [tabRef] = cmdArgs;
|
|
577
|
+
if (!tabRef) {
|
|
578
|
+
console.error('Usage: rtx.js browser-tab-close <tab-ref>');
|
|
579
|
+
process.exit(1);
|
|
580
|
+
}
|
|
581
|
+
const { sdk } = await getSDK();
|
|
582
|
+
const browser = getDesktopBrowserModule(sdk);
|
|
583
|
+
print(await browser.deleteTab(tabRef));
|
|
584
|
+
};
|
|
585
|
+
|
|
453
586
|
// -- acp-agents -------------------------------------------------------------
|
|
454
587
|
// Source: AcpAgentModule.listAgents({ includeModels? })
|
|
455
588
|
// Returns: AcpAgentInfo[] { id, label, handles[], installed, authReady, status }
|
|
@@ -982,6 +1115,40 @@ sdk.desktopRuntimeSessions.* — Desktop terminal sessions:
|
|
|
982
1115
|
Compatibility:
|
|
983
1116
|
The SDK also exposes this module as sdk.v1.desktopRuntimeSessions.
|
|
984
1117
|
|
|
1118
|
+
sdk.desktopBrowser.* — RealTimeX Browser sessions and tabs:
|
|
1119
|
+
browser-sessions
|
|
1120
|
+
List named RealTimeX Browser sessions.
|
|
1121
|
+
|
|
1122
|
+
browser-session-create <session-name> [--port=<n>]
|
|
1123
|
+
Create a named browser session.
|
|
1124
|
+
|
|
1125
|
+
browser-session-get <session-name>
|
|
1126
|
+
Fetch one named browser session.
|
|
1127
|
+
|
|
1128
|
+
browser-session-delete <session-name>
|
|
1129
|
+
Delete a named browser session.
|
|
1130
|
+
|
|
1131
|
+
browser-tab-create <url> [--session=<name>] [--focus=true|false] [--focus-window=true|false]
|
|
1132
|
+
Create a managed browser tab.
|
|
1133
|
+
|
|
1134
|
+
browser-tab-get <tab-ref>
|
|
1135
|
+
Fetch one browser tab snapshot by tab ref.
|
|
1136
|
+
|
|
1137
|
+
browser-tab-focus <tab-ref> [--focus-window=true|false]
|
|
1138
|
+
Focus a managed browser tab.
|
|
1139
|
+
|
|
1140
|
+
browser-tab-navigate <tab-ref> <url> [--focus=true|false] [--focus-window=true|false]
|
|
1141
|
+
Navigate a managed browser tab.
|
|
1142
|
+
|
|
1143
|
+
browser-tab-evaluate <tab-ref> <expression> [--user-gesture=true|false]
|
|
1144
|
+
Evaluate JavaScript in a managed browser tab.
|
|
1145
|
+
|
|
1146
|
+
browser-tab-close <tab-ref>
|
|
1147
|
+
Close a managed browser tab.
|
|
1148
|
+
|
|
1149
|
+
Compatibility:
|
|
1150
|
+
The SDK also exposes this module as sdk.v1.desktopBrowser.
|
|
1151
|
+
|
|
985
1152
|
sdk.acpAgent.* — Session Management:
|
|
986
1153
|
acp-agents [--models=true]
|
|
987
1154
|
List available ACP CLI agents.
|