openclaw-quiubo 2.3.2 → 2.3.4

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "openclaw-quiubo",
3
3
  "name": "Quiubo",
4
- "version": "2.3.2",
4
+ "version": "2.3.4",
5
5
  "description": "Chat with AI assistants through Quiubo",
6
6
  "channels": ["quiubo"],
7
7
  "configSchema": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-quiubo",
3
- "version": "2.3.2",
3
+ "version": "2.3.4",
4
4
  "description": "OpenClaw Quiubo channel plugin — chat with AI assistants through Quiubo",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,7 +16,7 @@
16
16
  "openclaw.plugin.json"
17
17
  ],
18
18
  "scripts": {
19
- "build": "node esbuild.config.mjs && tsc -p tsconfig.json --emitDeclarationOnly",
19
+ "build": "rm -rf dist && node esbuild.config.mjs && tsc -p tsconfig.json --emitDeclarationOnly",
20
20
  "typecheck": "tsc -p tsconfig.json --noEmit",
21
21
  "prepublishOnly": "npm run build"
22
22
  },
package/dist/src/api.js DELETED
@@ -1,257 +0,0 @@
1
- /**
2
- * Quiubo REST API Client
3
- *
4
- * SDK client for interacting with the Quiubo backend API.
5
- * Used by the OpenClaw extension to send/receive messages and manage groups.
6
- */
7
- import { randomUUID } from 'crypto';
8
- export class QuiuboApiClient {
9
- baseUrl;
10
- apiKey;
11
- constructor(baseUrl, apiKey) {
12
- // Remove trailing slash
13
- this.baseUrl = baseUrl.replace(/\/$/, '');
14
- this.apiKey = apiKey;
15
- }
16
- async request(method, path, body) {
17
- const url = `${this.baseUrl}/v1/sdk${path}`;
18
- const headers = {
19
- 'X-SDK-API-Key': this.apiKey,
20
- 'Content-Type': 'application/json',
21
- };
22
- const response = await fetch(url, {
23
- method,
24
- headers,
25
- body: body ? JSON.stringify(body) : undefined,
26
- });
27
- if (!response.ok) {
28
- const errorBody = await response.text();
29
- throw new Error(`Quiubo API error: ${response.status} ${response.statusText} - ${errorBody}`);
30
- }
31
- if (response.status === 204) {
32
- return undefined;
33
- }
34
- return response.json();
35
- }
36
- /**
37
- * Authenticate and verify API key
38
- */
39
- async authenticate() {
40
- return this.request('POST', '/auth');
41
- }
42
- /**
43
- * Send a plaintext message to an SDK group
44
- */
45
- async sendMessage(groupId, opts) {
46
- return this.request('POST', `/groups/${groupId}/messages`, {
47
- senderIdentityId: opts.senderIdentityId,
48
- ...(opts.ciphertext ? { ciphertext: opts.ciphertext } : { plaintext: opts.plaintext ?? '' }),
49
- clientMessageId: opts.clientMessageId ?? randomUUID(),
50
- ...(opts.metadata ? { metadata: opts.metadata } : {}),
51
- ...(opts.attachments?.length ? { attachments: opts.attachments } : {}),
52
- });
53
- }
54
- /**
55
- * List messages from an SDK group with cursor-based pagination
56
- */
57
- async listMessages(groupId, afterMessageId, limit = 50) {
58
- const params = new URLSearchParams({ limit: String(limit) });
59
- if (afterMessageId) {
60
- params.set('after_message_id', afterMessageId);
61
- }
62
- return this.request('GET', `/groups/${groupId}/messages?${params.toString()}`);
63
- }
64
- /**
65
- * Create a new SDK-managed group
66
- */
67
- async createGroup(opts) {
68
- return this.request('POST', '/groups', opts);
69
- }
70
- /**
71
- * Add members to an SDK group
72
- */
73
- async addMembers(groupId, identityIds) {
74
- await this.request('POST', `/groups/${groupId}/members`, {
75
- identityIds,
76
- action: 'add',
77
- });
78
- }
79
- /**
80
- * Remove members from an SDK group
81
- */
82
- async removeMembers(groupId, identityIds) {
83
- await this.request('POST', `/groups/${groupId}/members`, {
84
- identityIds,
85
- action: 'remove',
86
- });
87
- }
88
- /**
89
- * List all SDK-managed groups, optionally filtered by member identity
90
- */
91
- async listGroups(memberIdentityId) {
92
- if (memberIdentityId) {
93
- const params = new URLSearchParams({ member_identity_id: memberIdentityId });
94
- return this.request('GET', `/groups?${params.toString()}`);
95
- }
96
- return this.request('GET', '/groups');
97
- }
98
- /**
99
- * Get a specific SDK-managed group
100
- */
101
- async getGroup(groupId) {
102
- return this.request('GET', `/groups/${groupId}`);
103
- }
104
- /**
105
- * Configure webhook for the SDK app
106
- */
107
- async configureWebhook(opts) {
108
- return this.request('PATCH', '/webhook', opts);
109
- }
110
- // ========================================================================
111
- // Identity Management
112
- // ========================================================================
113
- /**
114
- * Create a service identity owned by this SDK app
115
- */
116
- async createIdentity(opts) {
117
- return this.request('POST', '/identities', opts);
118
- }
119
- /**
120
- * List service identities owned by this SDK app
121
- */
122
- async listIdentities() {
123
- return this.request('GET', '/identities');
124
- }
125
- /**
126
- * Delete (soft-delete) a service identity
127
- */
128
- async deleteIdentity(identityId) {
129
- return this.request('DELETE', `/identities/${identityId}`);
130
- }
131
- // ========================================================================
132
- // Join Token Management
133
- // ========================================================================
134
- /**
135
- * Create a join token for self-service user onboarding
136
- */
137
- async createJoinToken(opts) {
138
- return this.request('POST', '/join-tokens', opts);
139
- }
140
- /**
141
- * List join tokens for this SDK app
142
- */
143
- async listJoinTokens() {
144
- return this.request('GET', '/join-tokens');
145
- }
146
- /**
147
- * Revoke a join token
148
- */
149
- async deleteJoinToken(tokenId) {
150
- return this.request('DELETE', `/join-tokens/${tokenId}`);
151
- }
152
- // ========================================================================
153
- // Group Members
154
- // ========================================================================
155
- /**
156
- * List members of an SDK-managed group
157
- */
158
- async listGroupMembers(groupId) {
159
- return this.request('GET', `/groups/${groupId}/members`);
160
- }
161
- // ========================================================================
162
- // Group Settings
163
- // ========================================================================
164
- /**
165
- * Update settings for an SDK-managed group
166
- */
167
- async updateGroupSettings(groupId, settings) {
168
- return this.request('PATCH', `/groups/${groupId}/settings`, settings);
169
- }
170
- // ========================================================================
171
- // Typing Indicators
172
- // ========================================================================
173
- /**
174
- * Send a typing indicator for an identity in an SDK group.
175
- */
176
- async sendTypingIndicator(groupId, identityId) {
177
- await this.request('POST', `/groups/${groupId}/typing`, { identityId });
178
- }
179
- // ========================================================================
180
- // OpenClaw Response
181
- // ========================================================================
182
- /**
183
- * Send an openclaw:response back to the requesting user via Pusher.
184
- */
185
- async sendOpenclawResponse(groupId, opts) {
186
- return this.request('POST', `/groups/${groupId}/openclaw-response`, opts);
187
- }
188
- // ========================================================================
189
- // Agents
190
- // ========================================================================
191
- /**
192
- * List agents registered for this SDK app
193
- */
194
- async listAgents() {
195
- return this.request('GET', '/agents');
196
- }
197
- /**
198
- * Create (register) an agent for this SDK app
199
- */
200
- async createAgent(body) {
201
- return this.request('POST', '/agents', body);
202
- }
203
- /**
204
- * Update agent fields (name, status, scopes, metadata, capabilities)
205
- */
206
- async updateAgent(agentId, body) {
207
- await this.request('PATCH', `/agents/${agentId}`, body);
208
- }
209
- /**
210
- * Send a heartbeat for an agent (updates connection_status to 'online')
211
- */
212
- async sendHeartbeat(agentId) {
213
- await this.request('POST', `/agents/${agentId}/heartbeat`);
214
- }
215
- // ========================================================================
216
- // Agent E2EE Key Enrollment
217
- // ========================================================================
218
- /**
219
- * Request a key enrollment challenge for an agent
220
- */
221
- async requestKeyChallenge(agentId, body) {
222
- return this.request('POST', `/agents/${agentId}/keys/challenge`, body);
223
- }
224
- /**
225
- * Verify key enrollment signature
226
- */
227
- async verifyKeyChallenge(agentId, body) {
228
- return this.request('POST', `/agents/${agentId}/keys/verify`, body);
229
- }
230
- /**
231
- * Get active epoch key for an agent (SDK auth)
232
- */
233
- async getEpochKey(agentId, groupId) {
234
- return this.request('GET', `/agents/${agentId}/groups/${groupId}/encryption/key`);
235
- }
236
- /**
237
- * Get epoch keys for message history (SDK auth)
238
- */
239
- async getEpochKeys(agentId, groupId, epochs) {
240
- const query = epochs?.length ? `?epochs=${epochs.join(',')}` : '';
241
- return this.request('GET', `/agents/${agentId}/groups/${groupId}/encryption/epochs${query}`);
242
- }
243
- // ========================================================================
244
- // Pusher Auth
245
- // ========================================================================
246
- /**
247
- * Authenticate a Pusher channel subscription for an SDK-owned identity.
248
- */
249
- async pusherAuth(socketId, channelName, identityId) {
250
- return this.request('POST', '/pusher/auth', {
251
- socket_id: socketId,
252
- channel_name: channelName,
253
- identity_id: identityId,
254
- });
255
- }
256
- }
257
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}