@chrysb/alphaclaw 0.8.3-beta.5 → 0.8.3

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.
@@ -266,7 +266,7 @@ export const kProviderOrder = [
266
266
  "vllm",
267
267
  ];
268
268
 
269
- export const kCoreProviders = new Set(["anthropic", "openai", "google"]);
269
+ export const kCoreProviders = new Set(["anthropic", "openai", "google", "openrouter"]);
270
270
 
271
271
  export const kProviderFeatures = {
272
272
  anthropic: ["Agent Model"],
@@ -233,6 +233,72 @@ const createSlackApi = (getToken) => {
233
233
  });
234
234
  };
235
235
 
236
+ /**
237
+ * Update an existing message
238
+ * @param {string} channel - Channel ID
239
+ * @param {string} timestamp - Message timestamp
240
+ * @param {string} text - New message text
241
+ * @returns {Promise<object>} Update response
242
+ * @requires chat:write OAuth scope
243
+ */
244
+ const updateMessage = (channel, timestamp, text) => {
245
+ return call("chat.update", {
246
+ channel,
247
+ ts: timestamp,
248
+ text: String(text || ""),
249
+ });
250
+ };
251
+
252
+ /**
253
+ * Delete a message
254
+ * @param {string} channel - Channel ID
255
+ * @param {string} timestamp - Message timestamp
256
+ * @requires chat:write OAuth scope
257
+ */
258
+ const deleteMessage = (channel, timestamp) => {
259
+ return call("chat.delete", { channel, ts: timestamp });
260
+ };
261
+
262
+ /**
263
+ * Pin a message to a channel
264
+ * @param {string} channel - Channel ID
265
+ * @param {string} timestamp - Message timestamp
266
+ * @requires pins:write OAuth scope
267
+ */
268
+ const pinMessage = (channel, timestamp) => {
269
+ return call("pins.add", { channel, timestamp });
270
+ };
271
+
272
+ /**
273
+ * Unpin a message from a channel
274
+ * @param {string} channel - Channel ID
275
+ * @param {string} timestamp - Message timestamp
276
+ * @requires pins:write OAuth scope
277
+ */
278
+ const unpinMessage = (channel, timestamp) => {
279
+ return call("pins.remove", { channel, timestamp });
280
+ };
281
+
282
+ /**
283
+ * Get user information
284
+ * @param {string} userId - User ID
285
+ * @returns {Promise<object>} User info (name, real_name, email, etc.)
286
+ * @requires users:read OAuth scope
287
+ */
288
+ const getUserInfo = (userId) => {
289
+ return call("users.info", { user: userId });
290
+ };
291
+
292
+ /**
293
+ * Get channel information
294
+ * @param {string} channelId - Channel ID
295
+ * @returns {Promise<object>} Channel info (name, topic, purpose, etc.)
296
+ * @requires channels:read or groups:read OAuth scope (depending on channel type)
297
+ */
298
+ const getChannelInfo = (channelId) => {
299
+ return call("conversations.info", { channel: channelId });
300
+ };
301
+
236
302
  return {
237
303
  authTest,
238
304
  postMessage,
@@ -241,6 +307,12 @@ const createSlackApi = (getToken) => {
241
307
  removeReaction,
242
308
  uploadFile,
243
309
  uploadTextSnippet,
310
+ updateMessage,
311
+ deleteMessage,
312
+ pinMessage,
313
+ unpinMessage,
314
+ getUserInfo,
315
+ getChannelInfo,
244
316
  };
245
317
  };
246
318
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chrysb/alphaclaw",
3
- "version": "0.8.3-beta.5",
3
+ "version": "0.8.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -36,7 +36,7 @@
36
36
  "dependencies": {
37
37
  "express": "^4.21.0",
38
38
  "http-proxy": "^1.18.1",
39
- "openclaw": "^2026.3.28",
39
+ "openclaw": "2026.3.28",
40
40
  "patch-package": "^8.0.1",
41
41
  "ws": "^8.19.0"
42
42
  },
@@ -1,50 +0,0 @@
1
- ### Prioritized Implementation Order
2
-
3
- 1. **[P0 | S] Unify toast type mapping in one place so callers consistently use semantic levels.**
4
- - [x] Update `lib/public/js/components/toast.js` (`showToast`, `ToastContainer`) to normalize legacy values.
5
- - [x] Normalize highest-impact callers first: `lib/public/js/components/providers.js`, `lib/public/js/components/models.js`, `lib/public/js/components/google.js`, `lib/public/js/components/gateway.js`, `lib/public/js/components/envars.js`, `lib/public/js/components/webhooks.js`.
6
- - Current inconsistency snapshot:
7
- - Legacy color callers: `lib/public/js/components/providers.js`, `lib/public/js/components/models.js`, `lib/public/js/components/google.js`.
8
- - Semantic callers: `lib/public/js/components/envars.js`, `lib/public/js/components/webhooks.js`, `lib/public/js/components/gateway.js`, `lib/public/js/components/telegram-workspace.js`.
9
-
10
- 2. **[P0 | M] Add a shared restart banner component (and/or restart hook) for restart-required flows.**
11
- - [x] Extract shared banner + handler state from: `lib/public/js/components/envars.js`, `lib/public/js/components/providers.js`, `lib/public/js/components/webhooks.js`.
12
- - [x] Keep `restartGateway` integration aligned with existing gateway action UI in `lib/public/js/components/gateway.js`.
13
- - Current inconsistency snapshot:
14
- - Duplicate banner + state + handler logic in the same 3 files above.
15
-
16
- 3. **[P1 | S] Add a small shared loading spinner component to replace repeated inline SVG.**
17
- - [x] Replace inline spinners in: `lib/public/js/app.js`, `lib/public/js/components/providers.js`, `lib/public/js/components/models.js`, `lib/public/js/components/onboarding/welcome-setup-step.js`.
18
- - [x] Evaluate whether `lib/public/js/components/update-action-button.js` should consume the shared spinner as well.
19
- - Current inconsistency snapshot:
20
- - Spinner markup shape and sizing differ slightly by file.
21
-
22
- 4. **[P1 | M] Standardize button styles around `ac-btn-*` + common disabled treatment.**
23
- - [x] Convert ad-hoc utility button patterns in: `lib/public/js/components/pairings.js` (Reject), `lib/public/js/components/device-pairings.js` (Reject), `lib/public/js/components/webhooks.js` (Create/Delete), `lib/public/js/components/google.js` (disconnect action), `lib/public/js/components/providers.js` (Codex reconnect/disconnect/restart).
24
- - [x] Align onboarding variants in: `lib/public/js/components/onboarding/welcome-setup-step.js`, `lib/public/js/components/onboarding/welcome-form-step.js`, `lib/public/js/components/onboarding/welcome-pairing-step.js`.
25
- - Current inconsistency snapshot:
26
- - Mixed custom classes vs ad-hoc border utility buttons.
27
-
28
- 5. **[P1 | S] Normalize disabled opacity usage to one convention.**
29
- - [x] Standardize `opacity-50` vs `opacity-60` in:
30
- - `lib/public/js/components/envars.js`
31
- - `lib/public/js/components/providers.js`
32
- - `lib/public/js/components/webhooks.js`
33
- - `lib/public/js/components/telegram-workspace.js`
34
- - `lib/public/js/components/onboarding/welcome-setup-step.js`
35
- - `lib/public/js/components/onboarding/welcome-pairing-step.js`
36
- - Current inconsistency snapshot:
37
- - `opacity-50` and `opacity-60` both used for disabled states.
38
-
39
- 6. **[P2 | M] Consider a shared action button wrapper for common save/create/delete states.**
40
- - [x] Evaluate extraction points in: `lib/public/js/components/envars.js`, `lib/public/js/components/providers.js`, `lib/public/js/components/webhooks.js`, `lib/public/js/components/models.js`, `lib/public/js/components/pairings.js`, `lib/public/js/components/device-pairings.js`.
41
- - Current inconsistency snapshot:
42
- - Repeated action-label + loading-label + disabled-guard patterns.
43
-
44
- 7. **[P2 | M] Extract a shared modal shell wrapper for non-confirm custom modals.**
45
- - [x] Factor shared overlay/panel shell from:
46
- - `lib/public/js/components/webhooks.js` (`CreateWebhookModal`)
47
- - `lib/public/js/components/credentials-modal.js`
48
- - [x] Keep parity with `lib/public/js/components/confirm-dialog.js` behavior (overlay click + Escape semantics).
49
- - Current inconsistency snapshot:
50
- - Same modal shell classes/structure repeated with minor differences.