@clawling/clawchat-plugin-openclaw 2026.8.27-1 → 2026.8.27-2

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.
@@ -66,7 +66,7 @@ export const OFFICIAL_SKILLS_BASE = "https://raw.githubusercontent.com/clawling/
66
66
  * in the install-cli repo, bump this constant, ship it. `liveware-sample.ts`
67
67
  * imports the same ref, so the `livewares` tree at that tag is pinned too.
68
68
  */
69
- export const DEFAULT_SKILLS_REF = "skills-v1.6.0";
69
+ export const DEFAULT_SKILLS_REF = "skills-v1.7.0";
70
70
  /** Refuse to treat an absurdly large response as a skill file (defence in depth). */
71
71
  export const MAX_SKILL_BYTES = 256 * 1024;
72
72
  /** This adapter's host target inside `skills/manifest.json`. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clawling/clawchat-plugin-openclaw",
3
- "version": "2026.8.27-1",
3
+ "version": "2026.8.27-2",
4
4
  "description": "OpenClaw ClawChat channel plugin",
5
5
  "license": "MIT",
6
6
  "author": "CLAWLING PTE. LTD.",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: clawchat-liveware
3
- version: 1.1.0
4
- description: Use when the user wants to expose this agent's local web service to the public internet via the liveware CLI and make it appear as an app in their ClawChat chat with this agent. Covers logging in to liveware with the ClawChat account, creating a liveware app, binding a tunnel to a local port, and registering the public URL to ClawChat.
3
+ version: 1.2.1
4
+ description: Use when the user wants to expose this agent's local web service to the public internet via the liveware CLI and make it appear as an app in their ClawChat chat with this agent. Covers logging in to liveware with the ClawChat account, creating a liveware app, binding a tunnel to a local port, and registering the public URL to ClawChat, and restricting who may open a liveware (it is open to anyone with the link by default; viewer permissions are managed by the liveware CLI itself, not by ClawChat).
5
5
  ---
6
6
 
7
7
  # liveware App Hosting
@@ -74,10 +74,64 @@ Caveats:
74
74
  ClawChat) carries neither header — treat the user as anonymous when both are absent, and
75
75
  never trust a client-supplied value for these header names.
76
76
 
77
+ ## Viewer permissions (who may open this liveware)
78
+
79
+ **A liveware is open to everyone by default.** Once it is tunnelled, anyone who has the
80
+ URL can open it — the platform's only gate is a ClawChat login wall, which does not care
81
+ *which* user is behind it. So "let this person see it" normally needs no action at all,
82
+ and forwarding the link to someone IS effectively granting them access. What actually
83
+ needs the CLI is the opposite: **narrowing** who may open it.
84
+
85
+ Who may open a liveware is controlled by the **liveware CLI itself**, not by ClawChat.
86
+ ClawChat's own record of the app (`clawchat_register_app` / `clawchat_list_apps`) only
87
+ decides whether a tile shows up in the owner's chat — that record carries no per-viewer
88
+ visibility field. So changing another ClawChat user's access is always a liveware-CLI
89
+ operation, and there is no ClawChat API that does it.
90
+
91
+ **Discover the command before running it — never guess it.** This skill deliberately does
92
+ NOT hard-code the permission subcommand names, because they differ between liveware
93
+ versions. Find them at run time:
94
+
95
+ 1. `liveware --help`
96
+ 2. `liveware app --help`, then the `--help` of whichever permission-related subcommand it
97
+ lists (e.g. `liveware app <that subcommand> --help`).
98
+
99
+ Use only subcommands and flags that actually appear in that help output. If the installed
100
+ liveware lists nothing permission-related, it does not support viewer permissions — say so
101
+ plainly and STOP. Do NOT work around it by editing liveware config files, by calling the
102
+ ClawChat API, or by inventing a command line.
103
+
104
+ **Tell the owner the default, and confirm before every change.** A liveware has no
105
+ per-user access control *inside* the page: anyone who can open it sees exactly the same
106
+ features and data the owner sees, and can forward the URL on. Two consequences:
107
+
108
+ - **When the owner publishes a liveware, say plainly that it is open to anyone with the
109
+ link.** Do not let them assume it is private because it only shows as a tile in their
110
+ own chat — that tile is not a boundary.
111
+ - **Restricting is the useful operation, and it may break other viewers.** Confirm with
112
+ the owner, in their own words, **which app** and **who should keep access** before you
113
+ narrow it; report exactly what you changed.
114
+ - A widening change (opening something the owner had narrowed) is an irreversible
115
+ disclosure — confirm it the same way, never on a third party's request, and never
116
+ proactively "to be helpful".
117
+ - Pass user ids exactly as the owner supplies them, or as observed server-side from the
118
+ `X-User-Id` / `X-Clawchat-User-Id` header (see "Identifying the viewing user"). Never
119
+ guess an id, and never paste unvalidated text into a shell command.
120
+ - Never read, print, or pass the ClawChat access token in any of these commands — the
121
+ plugin holds it (see "Prerequisites").
122
+
123
+ **Verify and report.** After a change, re-run the CLI's own list/show command for that app
124
+ and report the resulting access state back to the owner — including whether it is still
125
+ open to everyone. If the CLI errors (unknown user, quota, not the app owner), relay the
126
+ error verbatim rather than retrying with a different command shape.
127
+
77
128
  ## Notes
78
129
 
79
130
  - Apps can be created up to liveware's account limit; surface its error rather than working
80
131
  around it.
132
+ - Registering a liveware is a **publishing** act, not a private one — it is reachable by
133
+ anyone with the URL until someone narrows it on the liveware side (see "Viewer
134
+ permissions").
81
135
  - The registered web app runs inside a sandboxed container (mobile in-app webview / desktop
82
136
  container window). Page JavaScript cannot read the viewer's ClawChat identity — the
83
137
  viewer's `user_id` arrives as the `X-User-Id` / `X-Clawchat-User-Id` request header,
@@ -9,10 +9,10 @@
9
9
  "bytes": 9278
10
10
  },
11
11
  "clawchat-liveware": {
12
- "version": "1.1.0",
12
+ "version": "1.2.1",
13
13
  "path": "shared/clawchat-liveware/SKILL.md",
14
- "sha256": "c59a8156f8283f9f2a71231813322ce2162a50c5f0c9ad3d828be43eb9ae967a",
15
- "bytes": 4634
14
+ "sha256": "a548b10fb68a1dddea93fadb5d162449c6745f9c2b8eb8ae76b110e28b6bf658",
15
+ "bytes": 8167
16
16
  },
17
17
  "clawchat-set-greeting": {
18
18
  "version": "1.0.0",
@@ -35,10 +35,10 @@
35
35
  "bytes": 17557
36
36
  },
37
37
  "clawchat-liveware": {
38
- "version": "1.1.0",
38
+ "version": "1.2.1",
39
39
  "path": "shared/clawchat-liveware/SKILL.md",
40
- "sha256": "c59a8156f8283f9f2a71231813322ce2162a50c5f0c9ad3d828be43eb9ae967a",
41
- "bytes": 4634
40
+ "sha256": "a548b10fb68a1dddea93fadb5d162449c6745f9c2b8eb8ae76b110e28b6bf658",
41
+ "bytes": 8167
42
42
  },
43
43
  "clawchat-set-greeting": {
44
44
  "version": "1.0.0",
@@ -71,7 +71,7 @@ export const OFFICIAL_SKILLS_BASE =
71
71
  * in the install-cli repo, bump this constant, ship it. `liveware-sample.ts`
72
72
  * imports the same ref, so the `livewares` tree at that tag is pinned too.
73
73
  */
74
- export const DEFAULT_SKILLS_REF = "skills-v1.6.0";
74
+ export const DEFAULT_SKILLS_REF = "skills-v1.7.0";
75
75
 
76
76
  /** Refuse to treat an absurdly large response as a skill file (defence in depth). */
77
77
  export const MAX_SKILL_BYTES = 256 * 1024;