@realtimex/sdk 2.0.31 → 2.0.32
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/README.md +32 -1
- package/index.d.ts +166 -0
- package/index.js +118 -1
- package/package.json +1 -1
- package/skills/realtimex-moderator-sdk/SKILL.md +41 -6
package/README.md
CHANGED
|
@@ -19,10 +19,41 @@ const workspaces = await client.request("listWorkspaces");
|
|
|
19
19
|
`REALTIMEX_BASE_URL`. Desktop and `dev:all` runtimes propagate the resolved
|
|
20
20
|
dynamic `/cli` endpoint; the SDK does not guess a localhost port.
|
|
21
21
|
|
|
22
|
+
## Webhook endpoint management
|
|
23
|
+
|
|
24
|
+
Webhook endpoints can be managed through the generated authenticated client.
|
|
25
|
+
These control-plane operations require an authenticated, user-bound session
|
|
26
|
+
credential.
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
const { createRealtimeXClient } = require("@realtimex/sdk");
|
|
30
|
+
|
|
31
|
+
const client = createRealtimeXClient({
|
|
32
|
+
baseUrl: process.env.REALTIMEX_BASE_URL,
|
|
33
|
+
token: process.env.REALTIMEX_AUTH_TOKEN,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const created = await client.createWebhookEndpoint({
|
|
37
|
+
name: "Build tasks",
|
|
38
|
+
workspaceId: 7,
|
|
39
|
+
secret: process.env.REALTIMEX_WEBHOOK_SECRET,
|
|
40
|
+
dispatchMode: "trigger_agent",
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
await client.listWebhookDeliveries({
|
|
44
|
+
endpointId: created.endpoint.id,
|
|
45
|
+
limit: 25,
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The `secret` field is write-only. Endpoint responses report
|
|
50
|
+
`secretConfigured`; they never contain the plaintext secret, ciphertext, or a
|
|
51
|
+
secret-storage reference. Deletion additionally requires
|
|
52
|
+
`{ confirmDestructive: true }`.
|
|
53
|
+
|
|
22
54
|
## Public webhook task delivery
|
|
23
55
|
|
|
24
56
|
Use a separate webhook client to trigger an existing public webhook endpoint.
|
|
25
|
-
Webhook endpoint creation and editing remain in RealtimeX settings.
|
|
26
57
|
|
|
27
58
|
```js
|
|
28
59
|
const { createRealtimeXWebhookClient } = require("@realtimex/sdk");
|
package/index.d.ts
CHANGED
|
@@ -169,6 +169,41 @@ export interface CreateThreadOptions extends RealtimeXRequestOptions {
|
|
|
169
169
|
body?: CreateThreadBody;
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
+
export type CreateWebhookEndpointParams = Record<string, never>;
|
|
173
|
+
export type CreateWebhookEndpointQuery = Record<string, never>;
|
|
174
|
+
export type CreateWebhookEndpointHeaders = Record<string, never>;
|
|
175
|
+
export type CreateWebhookEndpointBody = {
|
|
176
|
+
name: string;
|
|
177
|
+
workspaceId: number;
|
|
178
|
+
preset?: string;
|
|
179
|
+
enabled?: boolean;
|
|
180
|
+
secret: string;
|
|
181
|
+
signatureHeader?: string;
|
|
182
|
+
signaturePrefix?: string;
|
|
183
|
+
timestampHeader?: string;
|
|
184
|
+
deliveryIdHeader?: string;
|
|
185
|
+
eventTypeHeader?: string;
|
|
186
|
+
sourceHeader?: string;
|
|
187
|
+
allowedSourcePaths?: Array<string>;
|
|
188
|
+
replayWindowSeconds?: number;
|
|
189
|
+
payloadSizeLimitBytes?: number;
|
|
190
|
+
dispatchMode?: "record_only" | "send_to_thread" | "trigger_agent" | "trigger_flow";
|
|
191
|
+
triggerFlowId?: string;
|
|
192
|
+
agentTask?: Record<string, unknown>;
|
|
193
|
+
persistPayloadMode?: "none" | "attachment";
|
|
194
|
+
payloadStorageWorkspaceId?: number;
|
|
195
|
+
payloadStorageSubpath?: string;
|
|
196
|
+
dispatchInstruction?: string;
|
|
197
|
+
includePayloadPreview?: boolean;
|
|
198
|
+
};
|
|
199
|
+
export type CreateWebhookEndpointResponse = Record<string, unknown>;
|
|
200
|
+
export interface CreateWebhookEndpointOptions extends RealtimeXRequestOptions {
|
|
201
|
+
params?: CreateWebhookEndpointParams;
|
|
202
|
+
query?: CreateWebhookEndpointQuery;
|
|
203
|
+
headers?: CreateWebhookEndpointHeaders & Record<string, string>;
|
|
204
|
+
body?: CreateWebhookEndpointBody;
|
|
205
|
+
}
|
|
206
|
+
|
|
172
207
|
export type CreateWorkspaceParams = Record<string, never>;
|
|
173
208
|
export type CreateWorkspaceQuery = Record<string, never>;
|
|
174
209
|
export type CreateWorkspaceHeaders = {
|
|
@@ -255,6 +290,22 @@ export interface DeleteThreadOptions extends RealtimeXRequestOptions {
|
|
|
255
290
|
body?: DeleteThreadBody;
|
|
256
291
|
}
|
|
257
292
|
|
|
293
|
+
export type DeleteWebhookEndpointParams = {
|
|
294
|
+
endpointId: string;
|
|
295
|
+
};
|
|
296
|
+
export type DeleteWebhookEndpointQuery = Record<string, never>;
|
|
297
|
+
export type DeleteWebhookEndpointHeaders = Record<string, never>;
|
|
298
|
+
export type DeleteWebhookEndpointBody = {
|
|
299
|
+
confirmDestructive: true;
|
|
300
|
+
};
|
|
301
|
+
export type DeleteWebhookEndpointResponse = Record<string, unknown>;
|
|
302
|
+
export interface DeleteWebhookEndpointOptions extends RealtimeXRequestOptions {
|
|
303
|
+
params?: DeleteWebhookEndpointParams;
|
|
304
|
+
query?: DeleteWebhookEndpointQuery;
|
|
305
|
+
headers?: DeleteWebhookEndpointHeaders & Record<string, string>;
|
|
306
|
+
body?: DeleteWebhookEndpointBody;
|
|
307
|
+
}
|
|
308
|
+
|
|
258
309
|
export type DeleteWorkspaceParams = {
|
|
259
310
|
workspaceSlug: string;
|
|
260
311
|
};
|
|
@@ -407,6 +458,20 @@ export interface GetThreadOptions extends RealtimeXRequestOptions {
|
|
|
407
458
|
body?: GetThreadBody;
|
|
408
459
|
}
|
|
409
460
|
|
|
461
|
+
export type GetWebhookEndpointParams = {
|
|
462
|
+
endpointId: string;
|
|
463
|
+
};
|
|
464
|
+
export type GetWebhookEndpointQuery = Record<string, never>;
|
|
465
|
+
export type GetWebhookEndpointHeaders = Record<string, never>;
|
|
466
|
+
export type GetWebhookEndpointBody = unknown;
|
|
467
|
+
export type GetWebhookEndpointResponse = Record<string, unknown>;
|
|
468
|
+
export interface GetWebhookEndpointOptions extends RealtimeXRequestOptions {
|
|
469
|
+
params?: GetWebhookEndpointParams;
|
|
470
|
+
query?: GetWebhookEndpointQuery;
|
|
471
|
+
headers?: GetWebhookEndpointHeaders & Record<string, string>;
|
|
472
|
+
body?: GetWebhookEndpointBody;
|
|
473
|
+
}
|
|
474
|
+
|
|
410
475
|
export type GetWorkspaceParams = {
|
|
411
476
|
workspaceSlug: string;
|
|
412
477
|
};
|
|
@@ -610,6 +675,34 @@ export interface ListThreadsOptions extends RealtimeXRequestOptions {
|
|
|
610
675
|
body?: ListThreadsBody;
|
|
611
676
|
}
|
|
612
677
|
|
|
678
|
+
export type ListWebhookDeliveriesParams = Record<string, never>;
|
|
679
|
+
export type ListWebhookDeliveriesQuery = {
|
|
680
|
+
endpointId?: string;
|
|
681
|
+
limit?: number;
|
|
682
|
+
offset?: number;
|
|
683
|
+
};
|
|
684
|
+
export type ListWebhookDeliveriesHeaders = Record<string, never>;
|
|
685
|
+
export type ListWebhookDeliveriesBody = unknown;
|
|
686
|
+
export type ListWebhookDeliveriesResponse = Record<string, unknown>;
|
|
687
|
+
export interface ListWebhookDeliveriesOptions extends RealtimeXRequestOptions {
|
|
688
|
+
params?: ListWebhookDeliveriesParams;
|
|
689
|
+
query?: ListWebhookDeliveriesQuery;
|
|
690
|
+
headers?: ListWebhookDeliveriesHeaders & Record<string, string>;
|
|
691
|
+
body?: ListWebhookDeliveriesBody;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
export type ListWebhookEndpointsParams = Record<string, never>;
|
|
695
|
+
export type ListWebhookEndpointsQuery = Record<string, never>;
|
|
696
|
+
export type ListWebhookEndpointsHeaders = Record<string, never>;
|
|
697
|
+
export type ListWebhookEndpointsBody = unknown;
|
|
698
|
+
export type ListWebhookEndpointsResponse = Record<string, unknown>;
|
|
699
|
+
export interface ListWebhookEndpointsOptions extends RealtimeXRequestOptions {
|
|
700
|
+
params?: ListWebhookEndpointsParams;
|
|
701
|
+
query?: ListWebhookEndpointsQuery;
|
|
702
|
+
headers?: ListWebhookEndpointsHeaders & Record<string, string>;
|
|
703
|
+
body?: ListWebhookEndpointsBody;
|
|
704
|
+
}
|
|
705
|
+
|
|
613
706
|
export type ListWorkspaceAgentSkillsParams = {
|
|
614
707
|
workspaceSlug: string;
|
|
615
708
|
};
|
|
@@ -1378,6 +1471,22 @@ export interface TerminateTerminalSessionOptions extends RealtimeXRequestOptions
|
|
|
1378
1471
|
body?: TerminateTerminalSessionBody;
|
|
1379
1472
|
}
|
|
1380
1473
|
|
|
1474
|
+
export type TestWebhookEndpointParams = {
|
|
1475
|
+
endpointId: string;
|
|
1476
|
+
};
|
|
1477
|
+
export type TestWebhookEndpointQuery = Record<string, never>;
|
|
1478
|
+
export type TestWebhookEndpointHeaders = Record<string, never>;
|
|
1479
|
+
export type TestWebhookEndpointBody = {
|
|
1480
|
+
payload?: Record<string, unknown>;
|
|
1481
|
+
};
|
|
1482
|
+
export type TestWebhookEndpointResponse = Record<string, unknown>;
|
|
1483
|
+
export interface TestWebhookEndpointOptions extends RealtimeXRequestOptions {
|
|
1484
|
+
params?: TestWebhookEndpointParams;
|
|
1485
|
+
query?: TestWebhookEndpointQuery;
|
|
1486
|
+
headers?: TestWebhookEndpointHeaders & Record<string, string>;
|
|
1487
|
+
body?: TestWebhookEndpointBody;
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1381
1490
|
export type TriggerWorkspaceHeartbeatParams = {
|
|
1382
1491
|
workspaceSlug: string;
|
|
1383
1492
|
};
|
|
@@ -1438,6 +1547,43 @@ export interface UpdateChannelOptions extends RealtimeXRequestOptions {
|
|
|
1438
1547
|
body?: UpdateChannelBody;
|
|
1439
1548
|
}
|
|
1440
1549
|
|
|
1550
|
+
export type UpdateWebhookEndpointParams = {
|
|
1551
|
+
endpointId: string;
|
|
1552
|
+
};
|
|
1553
|
+
export type UpdateWebhookEndpointQuery = Record<string, never>;
|
|
1554
|
+
export type UpdateWebhookEndpointHeaders = Record<string, never>;
|
|
1555
|
+
export type UpdateWebhookEndpointBody = {
|
|
1556
|
+
name?: string;
|
|
1557
|
+
workspaceId?: number;
|
|
1558
|
+
preset?: string;
|
|
1559
|
+
enabled?: boolean;
|
|
1560
|
+
secret?: string;
|
|
1561
|
+
signatureHeader?: string;
|
|
1562
|
+
signaturePrefix?: string;
|
|
1563
|
+
timestampHeader?: string;
|
|
1564
|
+
deliveryIdHeader?: string;
|
|
1565
|
+
eventTypeHeader?: string;
|
|
1566
|
+
sourceHeader?: string;
|
|
1567
|
+
allowedSourcePaths?: Array<string>;
|
|
1568
|
+
replayWindowSeconds?: number;
|
|
1569
|
+
payloadSizeLimitBytes?: number;
|
|
1570
|
+
dispatchMode?: "record_only" | "send_to_thread" | "trigger_agent" | "trigger_flow";
|
|
1571
|
+
triggerFlowId?: string;
|
|
1572
|
+
agentTask?: Record<string, unknown>;
|
|
1573
|
+
persistPayloadMode?: "none" | "attachment";
|
|
1574
|
+
payloadStorageWorkspaceId?: number;
|
|
1575
|
+
payloadStorageSubpath?: string;
|
|
1576
|
+
dispatchInstruction?: string;
|
|
1577
|
+
includePayloadPreview?: boolean;
|
|
1578
|
+
};
|
|
1579
|
+
export type UpdateWebhookEndpointResponse = Record<string, unknown>;
|
|
1580
|
+
export interface UpdateWebhookEndpointOptions extends RealtimeXRequestOptions {
|
|
1581
|
+
params?: UpdateWebhookEndpointParams;
|
|
1582
|
+
query?: UpdateWebhookEndpointQuery;
|
|
1583
|
+
headers?: UpdateWebhookEndpointHeaders & Record<string, string>;
|
|
1584
|
+
body?: UpdateWebhookEndpointBody;
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1441
1587
|
export type WorkspaceShellLayoutParams = Record<string, never>;
|
|
1442
1588
|
export type WorkspaceShellLayoutQuery = Record<string, never>;
|
|
1443
1589
|
export type WorkspaceShellLayoutHeaders = Record<string, never>;
|
|
@@ -1563,6 +1709,9 @@ export declare class RealtimeXClient {
|
|
|
1563
1709
|
/** Create a thread in one workspace. The name is optional but recommended. */
|
|
1564
1710
|
createThread(options?: CreateThreadOptions): Promise<CreateThreadResponse>;
|
|
1565
1711
|
createThread(workspaceSlug: string, body: CreateThreadBody, options?: Omit<CreateThreadOptions, 'params' | 'body'>): Promise<CreateThreadResponse>;
|
|
1712
|
+
/** Create a webhook endpoint in an accessible workspace. secret is a write-only input. */
|
|
1713
|
+
createWebhookEndpoint(options?: CreateWebhookEndpointOptions): Promise<CreateWebhookEndpointResponse>;
|
|
1714
|
+
createWebhookEndpoint(body: CreateWebhookEndpointBody, options?: Omit<CreateWebhookEndpointOptions, 'body'>): Promise<CreateWebhookEndpointResponse>;
|
|
1566
1715
|
/** Create a workspace. Requires a human-readable workspace name. */
|
|
1567
1716
|
createWorkspace(options?: CreateWorkspaceOptions): Promise<CreateWorkspaceResponse>;
|
|
1568
1717
|
createWorkspace(body: CreateWorkspaceBody, options?: Omit<CreateWorkspaceOptions, 'body'>): Promise<CreateWorkspaceResponse>;
|
|
@@ -1578,6 +1727,9 @@ export declare class RealtimeXClient {
|
|
|
1578
1727
|
/** Delete one thread by exact workspace slug and exact thread slug. */
|
|
1579
1728
|
deleteThread(options?: DeleteThreadOptions): Promise<DeleteThreadResponse>;
|
|
1580
1729
|
deleteThread(params: DeleteThreadParams, options?: Omit<DeleteThreadOptions, 'params'>): Promise<DeleteThreadResponse>;
|
|
1730
|
+
/** Permanently delete a visible webhook endpoint. confirmDestructive must be true. */
|
|
1731
|
+
deleteWebhookEndpoint(options?: DeleteWebhookEndpointOptions): Promise<DeleteWebhookEndpointResponse>;
|
|
1732
|
+
deleteWebhookEndpoint(endpointId: string, body: DeleteWebhookEndpointBody, options?: Omit<DeleteWebhookEndpointOptions, 'params' | 'body'>): Promise<DeleteWebhookEndpointResponse>;
|
|
1581
1733
|
/** Delete one workspace by exact workspace slug. */
|
|
1582
1734
|
deleteWorkspace(options?: DeleteWorkspaceOptions): Promise<DeleteWorkspaceResponse>;
|
|
1583
1735
|
deleteWorkspace(workspaceSlug: string, options?: Omit<DeleteWorkspaceOptions, 'params'>): Promise<DeleteWorkspaceResponse>;
|
|
@@ -1605,6 +1757,9 @@ export declare class RealtimeXClient {
|
|
|
1605
1757
|
/** Get one thread by exact workspace slug and exact thread slug. */
|
|
1606
1758
|
getThread(options?: GetThreadOptions): Promise<GetThreadResponse>;
|
|
1607
1759
|
getThread(params: GetThreadParams, options?: Omit<GetThreadOptions, 'params'>): Promise<GetThreadResponse>;
|
|
1760
|
+
/** Get one visible webhook endpoint by endpoint id. The response reports secretConfigured but never returns the secret. */
|
|
1761
|
+
getWebhookEndpoint(options?: GetWebhookEndpointOptions): Promise<GetWebhookEndpointResponse>;
|
|
1762
|
+
getWebhookEndpoint(endpointId: string, options?: Omit<GetWebhookEndpointOptions, 'params'>): Promise<GetWebhookEndpointResponse>;
|
|
1608
1763
|
/** Get one workspace by exact workspace slug. */
|
|
1609
1764
|
getWorkspace(options?: GetWorkspaceOptions): Promise<GetWorkspaceResponse>;
|
|
1610
1765
|
getWorkspace(workspaceSlug: string, options?: Omit<GetWorkspaceOptions, 'params'>): Promise<GetWorkspaceResponse>;
|
|
@@ -1638,6 +1793,11 @@ export declare class RealtimeXClient {
|
|
|
1638
1793
|
/** List threads for one exact workspace slug. */
|
|
1639
1794
|
listThreads(options?: ListThreadsOptions): Promise<ListThreadsResponse>;
|
|
1640
1795
|
listThreads(workspaceSlug: string, options?: Omit<ListThreadsOptions, 'params'>): Promise<ListThreadsResponse>;
|
|
1796
|
+
/** List bounded delivery metadata for visible webhook endpoints. Raw headers, bodies, signatures, and payload fields are omitted. */
|
|
1797
|
+
listWebhookDeliveries(options?: ListWebhookDeliveriesOptions): Promise<ListWebhookDeliveriesResponse>;
|
|
1798
|
+
listWebhookDeliveries(query?: ListWebhookDeliveriesQuery, options?: Omit<ListWebhookDeliveriesOptions, 'query'>): Promise<ListWebhookDeliveriesResponse>;
|
|
1799
|
+
/** List webhook endpoints visible to the authenticated user. Secrets are never returned. */
|
|
1800
|
+
listWebhookEndpoints(options?: ListWebhookEndpointsOptions): Promise<ListWebhookEndpointsResponse>;
|
|
1641
1801
|
/** List published agent skills with enabled/disabled state for one exact workspace slug. */
|
|
1642
1802
|
listWorkspaceAgentSkills(options?: ListWorkspaceAgentSkillsOptions): Promise<ListWorkspaceAgentSkillsResponse>;
|
|
1643
1803
|
listWorkspaceAgentSkills(workspaceSlug: string, options?: Omit<ListWorkspaceAgentSkillsOptions, 'params'>): Promise<ListWorkspaceAgentSkillsResponse>;
|
|
@@ -1750,6 +1910,9 @@ export declare class RealtimeXClient {
|
|
|
1750
1910
|
/** Terminate a terminal runtime session by detaching any controller and closing the underlying PTY session. */
|
|
1751
1911
|
terminateTerminalSession(options?: TerminateTerminalSessionOptions): Promise<TerminateTerminalSessionResponse>;
|
|
1752
1912
|
terminateTerminalSession(sessionId: string, options?: Omit<TerminateTerminalSessionOptions, 'params'>): Promise<TerminateTerminalSessionResponse>;
|
|
1913
|
+
/** Submit an optional JSON payload as a signed test delivery through a visible webhook endpoint. */
|
|
1914
|
+
testWebhookEndpoint(options?: TestWebhookEndpointOptions): Promise<TestWebhookEndpointResponse>;
|
|
1915
|
+
testWebhookEndpoint(endpointId: string, body: TestWebhookEndpointBody, options?: Omit<TestWebhookEndpointOptions, 'params' | 'body'>): Promise<TestWebhookEndpointResponse>;
|
|
1753
1916
|
/** Trigger the default HEARTBEAT.md task for a workspace immediately. Falls back to the legacy heartbeat executor when no tasks are defined. */
|
|
1754
1917
|
triggerWorkspaceHeartbeat(options?: TriggerWorkspaceHeartbeatOptions): Promise<TriggerWorkspaceHeartbeatResponse>;
|
|
1755
1918
|
triggerWorkspaceHeartbeat(workspaceSlug: string, body: TriggerWorkspaceHeartbeatBody, options?: Omit<TriggerWorkspaceHeartbeatOptions, 'params' | 'body'>): Promise<TriggerWorkspaceHeartbeatResponse>;
|
|
@@ -1759,6 +1922,9 @@ export declare class RealtimeXClient {
|
|
|
1759
1922
|
/** Update one chat channel by exact channel id. Only channel writable fields are changed. */
|
|
1760
1923
|
updateChannel(options?: UpdateChannelOptions): Promise<UpdateChannelResponse>;
|
|
1761
1924
|
updateChannel(channelId: string, body: UpdateChannelBody, options?: Omit<UpdateChannelOptions, 'params' | 'body'>): Promise<UpdateChannelResponse>;
|
|
1925
|
+
/** Update a visible webhook endpoint. Passing secret rotates it; the value is never returned. */
|
|
1926
|
+
updateWebhookEndpoint(options?: UpdateWebhookEndpointOptions): Promise<UpdateWebhookEndpointResponse>;
|
|
1927
|
+
updateWebhookEndpoint(endpointId: string, body: UpdateWebhookEndpointBody, options?: Omit<UpdateWebhookEndpointOptions, 'params' | 'body'>): Promise<UpdateWebhookEndpointResponse>;
|
|
1762
1928
|
/** Verify workspace navigation, title-bar containment, Files dock behavior, and action contrast at desktop and compact viewports. */
|
|
1763
1929
|
workspaceShellLayout(options?: WorkspaceShellLayoutOptions): Promise<WorkspaceShellLayoutResponse>;
|
|
1764
1930
|
workspaceShellLayout(body: WorkspaceShellLayoutBody, options?: Omit<WorkspaceShellLayoutOptions, 'body'>): Promise<WorkspaceShellLayoutResponse>;
|
package/index.js
CHANGED
|
@@ -82,6 +82,14 @@ const operations = {
|
|
|
82
82
|
],
|
|
83
83
|
"hasBody": true
|
|
84
84
|
},
|
|
85
|
+
"createWebhookEndpoint": {
|
|
86
|
+
"method": "POST",
|
|
87
|
+
"path": "/create-webhook-endpoint",
|
|
88
|
+
"pathParams": [],
|
|
89
|
+
"queryParams": [],
|
|
90
|
+
"headerParams": [],
|
|
91
|
+
"hasBody": true
|
|
92
|
+
},
|
|
85
93
|
"createWorkspace": {
|
|
86
94
|
"method": "POST",
|
|
87
95
|
"path": "/create-workspace",
|
|
@@ -142,6 +150,16 @@ const operations = {
|
|
|
142
150
|
],
|
|
143
151
|
"hasBody": false
|
|
144
152
|
},
|
|
153
|
+
"deleteWebhookEndpoint": {
|
|
154
|
+
"method": "DELETE",
|
|
155
|
+
"path": "/delete-webhook-endpoint/{endpointId}",
|
|
156
|
+
"pathParams": [
|
|
157
|
+
"endpointId"
|
|
158
|
+
],
|
|
159
|
+
"queryParams": [],
|
|
160
|
+
"headerParams": [],
|
|
161
|
+
"hasBody": true
|
|
162
|
+
},
|
|
145
163
|
"deleteWorkspace": {
|
|
146
164
|
"method": "DELETE",
|
|
147
165
|
"path": "/delete-workspace/{workspaceSlug}",
|
|
@@ -258,6 +276,16 @@ const operations = {
|
|
|
258
276
|
],
|
|
259
277
|
"hasBody": false
|
|
260
278
|
},
|
|
279
|
+
"getWebhookEndpoint": {
|
|
280
|
+
"method": "GET",
|
|
281
|
+
"path": "/get-webhook-endpoint/{endpointId}",
|
|
282
|
+
"pathParams": [
|
|
283
|
+
"endpointId"
|
|
284
|
+
],
|
|
285
|
+
"queryParams": [],
|
|
286
|
+
"headerParams": [],
|
|
287
|
+
"hasBody": false
|
|
288
|
+
},
|
|
261
289
|
"getWorkspace": {
|
|
262
290
|
"method": "GET",
|
|
263
291
|
"path": "/get-workspace/{workspaceSlug}",
|
|
@@ -399,6 +427,26 @@ const operations = {
|
|
|
399
427
|
],
|
|
400
428
|
"hasBody": false
|
|
401
429
|
},
|
|
430
|
+
"listWebhookDeliveries": {
|
|
431
|
+
"method": "GET",
|
|
432
|
+
"path": "/list-webhook-deliveries",
|
|
433
|
+
"pathParams": [],
|
|
434
|
+
"queryParams": [
|
|
435
|
+
"endpointId",
|
|
436
|
+
"limit",
|
|
437
|
+
"offset"
|
|
438
|
+
],
|
|
439
|
+
"headerParams": [],
|
|
440
|
+
"hasBody": false
|
|
441
|
+
},
|
|
442
|
+
"listWebhookEndpoints": {
|
|
443
|
+
"method": "GET",
|
|
444
|
+
"path": "/list-webhook-endpoints",
|
|
445
|
+
"pathParams": [],
|
|
446
|
+
"queryParams": [],
|
|
447
|
+
"headerParams": [],
|
|
448
|
+
"hasBody": false
|
|
449
|
+
},
|
|
402
450
|
"listWorkspaceAgentSkills": {
|
|
403
451
|
"method": "GET",
|
|
404
452
|
"path": "/list-workspace-agent-skills/{workspaceSlug}",
|
|
@@ -829,6 +877,16 @@ const operations = {
|
|
|
829
877
|
],
|
|
830
878
|
"hasBody": false
|
|
831
879
|
},
|
|
880
|
+
"testWebhookEndpoint": {
|
|
881
|
+
"method": "POST",
|
|
882
|
+
"path": "/test-webhook-endpoint/{endpointId}",
|
|
883
|
+
"pathParams": [
|
|
884
|
+
"endpointId"
|
|
885
|
+
],
|
|
886
|
+
"queryParams": [],
|
|
887
|
+
"headerParams": [],
|
|
888
|
+
"hasBody": true
|
|
889
|
+
},
|
|
832
890
|
"triggerWorkspaceHeartbeat": {
|
|
833
891
|
"method": "POST",
|
|
834
892
|
"path": "/trigger-workspace-heartbeat/{workspaceSlug}",
|
|
@@ -865,6 +923,16 @@ const operations = {
|
|
|
865
923
|
],
|
|
866
924
|
"hasBody": true
|
|
867
925
|
},
|
|
926
|
+
"updateWebhookEndpoint": {
|
|
927
|
+
"method": "POST",
|
|
928
|
+
"path": "/update-webhook-endpoint/{endpointId}",
|
|
929
|
+
"pathParams": [
|
|
930
|
+
"endpointId"
|
|
931
|
+
],
|
|
932
|
+
"queryParams": [],
|
|
933
|
+
"headerParams": [],
|
|
934
|
+
"hasBody": true
|
|
935
|
+
},
|
|
868
936
|
"workspaceShellLayout": {
|
|
869
937
|
"method": "POST",
|
|
870
938
|
"path": "/workspace-shell-layout",
|
|
@@ -1347,6 +1415,13 @@ class RealtimeXClient {
|
|
|
1347
1415
|
);
|
|
1348
1416
|
}
|
|
1349
1417
|
|
|
1418
|
+
createWebhookEndpoint(...args) {
|
|
1419
|
+
return this.request(
|
|
1420
|
+
"createWebhookEndpoint",
|
|
1421
|
+
normalizeOperationOptions(operations["createWebhookEndpoint"], args)
|
|
1422
|
+
);
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1350
1425
|
createWorkspace(...args) {
|
|
1351
1426
|
return this.request(
|
|
1352
1427
|
"createWorkspace",
|
|
@@ -1382,6 +1457,13 @@ class RealtimeXClient {
|
|
|
1382
1457
|
);
|
|
1383
1458
|
}
|
|
1384
1459
|
|
|
1460
|
+
deleteWebhookEndpoint(...args) {
|
|
1461
|
+
return this.request(
|
|
1462
|
+
"deleteWebhookEndpoint",
|
|
1463
|
+
normalizeOperationOptions(operations["deleteWebhookEndpoint"], args)
|
|
1464
|
+
);
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1385
1467
|
deleteWorkspace(...args) {
|
|
1386
1468
|
return this.request(
|
|
1387
1469
|
"deleteWorkspace",
|
|
@@ -1445,6 +1527,13 @@ class RealtimeXClient {
|
|
|
1445
1527
|
);
|
|
1446
1528
|
}
|
|
1447
1529
|
|
|
1530
|
+
getWebhookEndpoint(...args) {
|
|
1531
|
+
return this.request(
|
|
1532
|
+
"getWebhookEndpoint",
|
|
1533
|
+
normalizeOperationOptions(operations["getWebhookEndpoint"], args)
|
|
1534
|
+
);
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1448
1537
|
getWorkspace(...args) {
|
|
1449
1538
|
return this.request(
|
|
1450
1539
|
"getWorkspace",
|
|
@@ -1536,6 +1625,20 @@ class RealtimeXClient {
|
|
|
1536
1625
|
);
|
|
1537
1626
|
}
|
|
1538
1627
|
|
|
1628
|
+
listWebhookDeliveries(...args) {
|
|
1629
|
+
return this.request(
|
|
1630
|
+
"listWebhookDeliveries",
|
|
1631
|
+
normalizeOperationOptions(operations["listWebhookDeliveries"], args)
|
|
1632
|
+
);
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
listWebhookEndpoints(...args) {
|
|
1636
|
+
return this.request(
|
|
1637
|
+
"listWebhookEndpoints",
|
|
1638
|
+
normalizeOperationOptions(operations["listWebhookEndpoints"], args)
|
|
1639
|
+
);
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1539
1642
|
listWorkspaceAgentSkills(...args) {
|
|
1540
1643
|
return this.request(
|
|
1541
1644
|
"listWorkspaceAgentSkills",
|
|
@@ -1802,6 +1905,13 @@ class RealtimeXClient {
|
|
|
1802
1905
|
);
|
|
1803
1906
|
}
|
|
1804
1907
|
|
|
1908
|
+
testWebhookEndpoint(...args) {
|
|
1909
|
+
return this.request(
|
|
1910
|
+
"testWebhookEndpoint",
|
|
1911
|
+
normalizeOperationOptions(operations["testWebhookEndpoint"], args)
|
|
1912
|
+
);
|
|
1913
|
+
}
|
|
1914
|
+
|
|
1805
1915
|
triggerWorkspaceHeartbeat(...args) {
|
|
1806
1916
|
return this.request(
|
|
1807
1917
|
"triggerWorkspaceHeartbeat",
|
|
@@ -1823,6 +1933,13 @@ class RealtimeXClient {
|
|
|
1823
1933
|
);
|
|
1824
1934
|
}
|
|
1825
1935
|
|
|
1936
|
+
updateWebhookEndpoint(...args) {
|
|
1937
|
+
return this.request(
|
|
1938
|
+
"updateWebhookEndpoint",
|
|
1939
|
+
normalizeOperationOptions(operations["updateWebhookEndpoint"], args)
|
|
1940
|
+
);
|
|
1941
|
+
}
|
|
1942
|
+
|
|
1826
1943
|
workspaceShellLayout(...args) {
|
|
1827
1944
|
return this.request(
|
|
1828
1945
|
"workspaceShellLayout",
|
|
@@ -1848,5 +1965,5 @@ module.exports = {
|
|
|
1848
1965
|
createRealtimeXClient,
|
|
1849
1966
|
createRealtimeXWebhookClient,
|
|
1850
1967
|
operations,
|
|
1851
|
-
version: "2.0.
|
|
1968
|
+
version: "2.0.32",
|
|
1852
1969
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: realtimex-moderator-sdk
|
|
3
|
-
description: "Use the RealTimeX API through the generated CLI for workspace, thread, terminal-agent sessions, channel (Telegram, Zalo, Discord), skills, plugins and send messages, setup personality, heartbeat tasks operations, publish and manage artifacts, run tour guide to setup working dir."
|
|
3
|
+
description: "Use the RealTimeX API through the generated CLI for workspace, thread, terminal-agent sessions, channel (Telegram, Zalo, Discord), skills, plugins, webhook endpoint management and delivery inspection, send messages, setup personality, heartbeat tasks operations, publish and manage artifacts, run tour guide to setup working dir."
|
|
4
4
|
author: ""
|
|
5
5
|
license: "Apache-2.0"
|
|
6
6
|
argument-hint: "<command> [args] | install cli"
|
|
@@ -20,15 +20,15 @@ This skill drives the `realtimex-pp-cli` binary. Verify the CLI is installed and
|
|
|
20
20
|
|
|
21
21
|
1. Install or reinstall the pinned version via npm:
|
|
22
22
|
```bash
|
|
23
|
-
npm install -g @realtimex/pp-cli@2.0.
|
|
23
|
+
npm install -g @realtimex/pp-cli@2.0.32
|
|
24
24
|
```
|
|
25
25
|
2. Verify the exact version:
|
|
26
26
|
```bash
|
|
27
27
|
realtimex-pp-cli --version
|
|
28
28
|
```
|
|
29
|
-
The output must be `realtimex-pp-cli 2.0.
|
|
29
|
+
The output must be `realtimex-pp-cli 2.0.32`.
|
|
30
30
|
|
|
31
|
-
If `--version` reports "command not found" after install, the npm global bin directory is not on `$PATH`. If it reports any version other than `2.0.
|
|
31
|
+
If `--version` reports "command not found" after install, the npm global bin directory is not on `$PATH`. If it reports any version other than `2.0.32`, reinstall with the pinned npm command above. Do not proceed with skill commands until exact-version verification succeeds.
|
|
32
32
|
|
|
33
33
|
* Always run first:
|
|
34
34
|
|
|
@@ -66,6 +66,10 @@ If `--version` reports "command not found" after install, the npm global bin dir
|
|
|
66
66
|
|
|
67
67
|
- `realtimex-pp-cli create-thread <workspaceSlug>` — Create a thread in one workspace. The name is optional but recommended.
|
|
68
68
|
|
|
69
|
+
**create-webhook-endpoint** — Manage create webhook endpoint
|
|
70
|
+
|
|
71
|
+
- `realtimex-pp-cli create-webhook-endpoint` — Create a webhook endpoint in an accessible workspace. secret is a write-only input.
|
|
72
|
+
|
|
69
73
|
**create-workspace** — Manage create workspace
|
|
70
74
|
|
|
71
75
|
- `realtimex-pp-cli create-workspace` — Create a workspace. Requires a human-readable workspace name.
|
|
@@ -86,6 +90,10 @@ If `--version` reports "command not found" after install, the npm global bin dir
|
|
|
86
90
|
|
|
87
91
|
- `realtimex-pp-cli delete-thread <workspaceSlug> <threadSlug>` — Delete one thread by exact workspace slug and exact thread slug.
|
|
88
92
|
|
|
93
|
+
**delete-webhook-endpoint** — Manage delete webhook endpoint
|
|
94
|
+
|
|
95
|
+
- `realtimex-pp-cli delete-webhook-endpoint <endpointId>` — Permanently delete a visible webhook endpoint. confirmDestructive must be true.
|
|
96
|
+
|
|
89
97
|
**delete-workspace** — Manage delete workspace
|
|
90
98
|
|
|
91
99
|
- `realtimex-pp-cli delete-workspace <workspaceSlug>` — Delete one workspace by exact workspace slug.
|
|
@@ -122,6 +130,10 @@ If `--version` reports "command not found" after install, the npm global bin dir
|
|
|
122
130
|
|
|
123
131
|
- `realtimex-pp-cli get-thread <workspaceSlug> <threadSlug>` — Get one thread by exact workspace slug and exact thread slug.
|
|
124
132
|
|
|
133
|
+
**get-webhook-endpoint** — Manage get webhook endpoint
|
|
134
|
+
|
|
135
|
+
- `realtimex-pp-cli get-webhook-endpoint <endpointId>` — Get one visible webhook endpoint by endpoint id. The response reports secretConfigured but never returns the secret.
|
|
136
|
+
|
|
125
137
|
**get-workspace** — Manage get workspace
|
|
126
138
|
|
|
127
139
|
- `realtimex-pp-cli get-workspace <workspaceSlug>` — Get one workspace by exact workspace slug.
|
|
@@ -174,6 +186,14 @@ If `--version` reports "command not found" after install, the npm global bin dir
|
|
|
174
186
|
|
|
175
187
|
- `realtimex-pp-cli list-threads <workspaceSlug>` — List threads for one exact workspace slug.
|
|
176
188
|
|
|
189
|
+
**list-webhook-deliveries** — Manage list webhook deliveries
|
|
190
|
+
|
|
191
|
+
- `realtimex-pp-cli list-webhook-deliveries` — List bounded delivery metadata for visible webhook endpoints.
|
|
192
|
+
|
|
193
|
+
**list-webhook-endpoints** — Manage list webhook endpoints
|
|
194
|
+
|
|
195
|
+
- `realtimex-pp-cli list-webhook-endpoints` — List webhook endpoints visible to the authenticated user. Secrets are never returned.
|
|
196
|
+
|
|
177
197
|
**list-workspace-agent-skills** — Manage list workspace agent skills
|
|
178
198
|
|
|
179
199
|
- `realtimex-pp-cli list-workspace-agent-skills <workspaceSlug>` — List published agent skills with enabled/disabled state for one exact workspace slug.
|
|
@@ -322,6 +342,10 @@ If `--version` reports "command not found" after install, the npm global bin dir
|
|
|
322
342
|
|
|
323
343
|
- `realtimex-pp-cli terminate-terminal-session <sessionId>` — Terminate a terminal runtime session by detaching any controller and closing the underlying PTY session.
|
|
324
344
|
|
|
345
|
+
**test-webhook-endpoint** — Manage test webhook endpoint
|
|
346
|
+
|
|
347
|
+
- `realtimex-pp-cli test-webhook-endpoint <endpointId>` — Submit an optional JSON payload as a signed test delivery through a visible webhook endpoint.
|
|
348
|
+
|
|
325
349
|
**trigger-workspace-heartbeat** — Manage trigger workspace heartbeat
|
|
326
350
|
|
|
327
351
|
- `realtimex-pp-cli trigger-workspace-heartbeat <workspaceSlug>` — Trigger the default HEARTBEAT.md task for a workspace immediately.
|
|
@@ -334,6 +358,10 @@ If `--version` reports "command not found" after install, the npm global bin dir
|
|
|
334
358
|
|
|
335
359
|
- `realtimex-pp-cli update-channel <channelId>` — Update one chat channel by exact channel id. Only channel writable fields are changed.
|
|
336
360
|
|
|
361
|
+
**update-webhook-endpoint** — Manage update webhook endpoint
|
|
362
|
+
|
|
363
|
+
- `realtimex-pp-cli update-webhook-endpoint <endpointId>` — Update a visible webhook endpoint. Passing secret rotates it; the value is never returned.
|
|
364
|
+
|
|
337
365
|
**workspace-shell-layout** — Manage workspace shell layout
|
|
338
366
|
|
|
339
367
|
- `realtimex-pp-cli workspace-shell-layout` — Verify workspace navigation, title-bar containment, Files dock behavior
|
|
@@ -464,9 +492,9 @@ Verify: `claude mcp list`
|
|
|
464
492
|
```bash
|
|
465
493
|
realtimex-pp-cli --version
|
|
466
494
|
```
|
|
467
|
-
If the command is missing or the output is not exactly `realtimex-pp-cli 2.0.
|
|
495
|
+
If the command is missing or the output is not exactly `realtimex-pp-cli 2.0.32`, reinstall the pinned version:
|
|
468
496
|
```bash
|
|
469
|
-
npm install -g @realtimex/pp-cli@2.0.
|
|
497
|
+
npm install -g @realtimex/pp-cli@2.0.32
|
|
470
498
|
```
|
|
471
499
|
Then run `realtimex-pp-cli --version` again and proceed only after exact-version verification succeeds.
|
|
472
500
|
2. Match the user query to the best command from the Unique Capabilities and Command Reference above.
|
|
@@ -529,6 +557,13 @@ For `send-channel-file`:
|
|
|
529
557
|
* In desktop/local runtime, the CLI should send the absolute local `filePath` to the server. The server validates the path against allowed storage/temp roots before sending through the channel. Base64 upload is fallback transport, not the preferred path.
|
|
530
558
|
* The server validates the delivery context, active channel session, plugin state, runtime binding when supplied, and file size/type handling before delivery.
|
|
531
559
|
|
|
560
|
+
For webhook endpoint management:
|
|
561
|
+
|
|
562
|
+
* These operations require an authenticated, user-bound session credential.
|
|
563
|
+
* Treat `secret` as write-only input for creation or rotation. Never expect, request, print, or persist a plaintext secret from endpoint responses.
|
|
564
|
+
* Use `list-webhook-deliveries` for bounded metadata inspection. Raw request headers, signatures, bodies, and normalized payload fields are intentionally unavailable.
|
|
565
|
+
* Pass `confirmDestructive=true` only after the user has explicitly requested permanent endpoint deletion.
|
|
566
|
+
|
|
532
567
|
For workspace default-agent setup:
|
|
533
568
|
|
|
534
569
|
* Use `prepare.agents` only.
|