@openclaw/clickclack 2026.7.2-beta.7 → 2026.7.33
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 +0 -152
- package/dist/.setup/channel-DGqOQ-o2.mjs +1172 -0
- package/dist/api.js +1 -2
- package/dist/channel-plugin-api.js +1 -1
- package/dist/index.js +1 -3
- package/dist/runtime-api.js +3 -4
- package/node_modules/ws/lib/permessage-deflate.js +3 -1
- package/node_modules/ws/package.json +1 -1
- package/openclaw.plugin.json +21 -129
- package/package.json +6 -94
- package/dist/channel-CECIpaS0.js +0 -1852
- package/dist/doctor-contract-api.js +0 -48
- package/dist/runtime-api-CZ1rmHjv.js +0 -1029
- package/dist/secret-contract-BKkzzjBA.js +0 -35
- package/dist/secret-contract-api.js +0 -2
- package/dist/setup-claim-CP-QZ5bt.js +0 -136
- package/dist/setup-entry.js +0 -15
- package/dist/setup-plugin-api.js +0 -19
- package/dist/setup-surface-DAy8vDJK.js +0 -1131
package/README.md
CHANGED
|
@@ -8,158 +8,6 @@ Official OpenClaw channel plugin for ClickClack.
|
|
|
8
8
|
openclaw plugins install @openclaw/clickclack
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
## Setup
|
|
12
|
-
|
|
13
|
-
The recommended setup path uses the one-time command generated by ClickClack:
|
|
14
|
-
|
|
15
|
-
```sh
|
|
16
|
-
openclaw channels add clickclack --code 'https://clickclack.example.com/#XXXX-XXXX-XXXX'
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Split-origin and path-mounted ClickClack deployments generate an exact
|
|
20
|
-
`/api/bot-setup-codes/claim#CODE` endpoint. OpenClaw validates the versioned
|
|
21
|
-
claim response and saves its canonical API base.
|
|
22
|
-
|
|
23
|
-
For manual token setup:
|
|
24
|
-
|
|
25
|
-
```sh
|
|
26
|
-
openclaw channels add clickclack \
|
|
27
|
-
--base-url https://clickclack.example.com \
|
|
28
|
-
--token ccb_... \
|
|
29
|
-
--workspace default
|
|
30
|
-
openclaw gateway
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Run `openclaw onboard` for guided setup. The workspace value can be a
|
|
34
|
-
`wsp_...` id, slug, or display name.
|
|
35
|
-
|
|
36
|
-
For the default account only, `--use-env` reads `CLICKCLACK_BOT_TOKEN`; config
|
|
37
|
-
storage is the normal setup path.
|
|
38
|
-
|
|
39
|
-
### Public and private endpoints
|
|
40
|
-
|
|
41
|
-
`baseUrl` is the public ClickClack URL used in links that people open. Set the
|
|
42
|
-
optional `apiBaseUrl` when the gateway should call ClickClack through a
|
|
43
|
-
different server-to-server endpoint:
|
|
44
|
-
|
|
45
|
-
```json5
|
|
46
|
-
{
|
|
47
|
-
channels: {
|
|
48
|
-
clickclack: {
|
|
49
|
-
baseUrl: "https://clack.openclaw.ai",
|
|
50
|
-
apiBaseUrl: "http://127.0.0.1:8484",
|
|
51
|
-
token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" },
|
|
52
|
-
workspace: "default",
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
This same-host pattern lets the public hostname stay fully protected by an
|
|
59
|
-
authentication gateway such as Cloudflare Access while the local OpenClaw
|
|
60
|
-
gateway talks directly to ClickClack. REST requests, setup verification, and
|
|
61
|
-
the realtime WebSocket use `apiBaseUrl`; browser-facing discussion links keep
|
|
62
|
-
using `baseUrl`. When `apiBaseUrl` is unset, it defaults to `baseUrl`.
|
|
63
|
-
|
|
64
|
-
## Command menus
|
|
65
|
-
|
|
66
|
-
ClickClack command menus are enabled by default. At gateway startup, the
|
|
67
|
-
extension publishes OpenClaw's native commands for composer autocomplete,
|
|
68
|
-
labeled with the bot's handle. The bot token must include `commands:write`;
|
|
69
|
-
current `bot:write` and `bot:admin` bundles include it.
|
|
70
|
-
|
|
71
|
-
Set `commandMenu: false` on an account to disable menu sync. Sync failures do
|
|
72
|
-
not prevent the gateway from starting, so older tokens and ClickClack servers
|
|
73
|
-
continue to work without a menu.
|
|
74
|
-
|
|
75
|
-
## Discussions
|
|
76
|
-
|
|
77
|
-
ClickClack can create one managed channel for each OpenClaw session:
|
|
78
|
-
|
|
79
|
-
The account token needs `channels:write`, which is included in `bot:admin` but
|
|
80
|
-
not in the normal `bot:write` setup token. The ClickClack server must also
|
|
81
|
-
support and return the managed-channel fields used by this integration.
|
|
82
|
-
|
|
83
|
-
```json5
|
|
84
|
-
{
|
|
85
|
-
channels: {
|
|
86
|
-
clickclack: {
|
|
87
|
-
baseUrl: "https://clickclack.example.com",
|
|
88
|
-
token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" },
|
|
89
|
-
workspace: "default",
|
|
90
|
-
discussions: {
|
|
91
|
-
enabled: true,
|
|
92
|
-
workspace: "default",
|
|
93
|
-
controlUrlBase: "https://team.openclaw.ai",
|
|
94
|
-
section: "Sessions",
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Opening a session discussion creates a public, externally managed channel and
|
|
102
|
-
stores its binding in the ClickClack plugin's SQLite state. Session archive,
|
|
103
|
-
restore, label, category, and deletion changes are reflected in the channel;
|
|
104
|
-
deletion archives the channel and never deletes its messages. `workspace`
|
|
105
|
-
defaults to the account workspace, and `section` defaults to `Sessions`.
|
|
106
|
-
`controlUrlBase` adds a link back to `/chat?session=<session-key>` in the
|
|
107
|
-
OpenClaw Control UI.
|
|
108
|
-
|
|
109
|
-
ClickClack-managed embed URLs explicitly advertise host-theme support. The
|
|
110
|
-
Control UI uses that provider-owned capability to apply its full palette before
|
|
111
|
-
the sidebar first paints and to stream live palette changes without rewriting
|
|
112
|
-
opaque or signed discussion URLs from other providers.
|
|
113
|
-
|
|
114
|
-
Enable discussions on exactly one ClickClack account. Multiple enabled
|
|
115
|
-
discussion accounts are rejected because the session discussion provider does
|
|
116
|
-
not have an account selector.
|
|
117
|
-
|
|
118
|
-
Messages in the managed channel run in a stable side session under the same
|
|
119
|
-
agent id as the attached main session. The plugin installs a scoped host grant
|
|
120
|
-
for `sessions_history`, `session_status`, and `sessions_send` between that side
|
|
121
|
-
session and its attached main session, so `tools.sessions.visibility` can stay
|
|
122
|
-
at its safer default `tree`. A second host-side policy blocks session discovery
|
|
123
|
-
and alternate targets; the side-agent prompt is not the authorization boundary.
|
|
124
|
-
The agent still needs those three tools in its effective tool allowlist.
|
|
125
|
-
|
|
126
|
-
The binding, managed ownership reference, and side-session identity include the
|
|
127
|
-
concrete OpenClaw session id as well as the pinned server and channel. Resetting
|
|
128
|
-
a reusable session key, replacing a binding, or retargeting it therefore revokes
|
|
129
|
-
the old channel locally, archives it when the old credential remains usable, and
|
|
130
|
-
starts a fresh channel and side transcript.
|
|
131
|
-
Messages arriving through an archived, reset, disabled, or retargeted managed
|
|
132
|
-
binding are dropped instead of falling back to the account's normal channel
|
|
133
|
-
routing. Released bindings leave a durable revoked-channel marker so delayed
|
|
134
|
-
realtime events remain fail-closed. Remote ownership is keyed by ClickClack
|
|
135
|
-
server and channel id, so renaming the local account cannot turn a managed
|
|
136
|
-
channel into an ordinary one.
|
|
137
|
-
|
|
138
|
-
Managed-channel ownership references include a durable per-installation id, so
|
|
139
|
-
two OpenClaw gateways using the same ClickClack workspace do not adopt each
|
|
140
|
-
other's discussion channels. They also include the destination and a durable
|
|
141
|
-
binding generation, so an account or workspace round trip cannot re-adopt a
|
|
142
|
-
previous channel. Changing or removing `controlUrlBase` is reflected on the next
|
|
143
|
-
lifecycle reconciliation pass.
|
|
144
|
-
|
|
145
|
-
If a channel-create response is lost, the pending ownership reservation
|
|
146
|
-
temporarily quarantines otherwise-unbound events in that workspace. The same
|
|
147
|
-
coarse reconciler then adopts the created channel or clears/archives the
|
|
148
|
-
ambiguous attempt; a reset cannot make the old channel fall through to ordinary
|
|
149
|
-
routing.
|
|
150
|
-
|
|
151
|
-
When a workspace move keeps the original workspace credential configured, the
|
|
152
|
-
plugin archives the old channel before release. If the token is replaced with a
|
|
153
|
-
workspace-scoped credential that cannot access the old workspace, OpenClaw
|
|
154
|
-
releases the binding into the revoked-channel marker without trying the new token
|
|
155
|
-
against the old channel; archive that leftover channel from ClickClack.
|
|
156
|
-
|
|
157
|
-
The main session gets a read-only `discussion` tool that pulls the latest
|
|
158
|
-
channel messages, including recent thread replies. The pull uses bounded
|
|
159
|
-
history and thread-request budgets; its output says when older active threads
|
|
160
|
-
may have been omitted. It never posts, archives, renames, or otherwise mutates
|
|
161
|
-
the discussion.
|
|
162
|
-
|
|
163
11
|
## Docs
|
|
164
12
|
|
|
165
13
|
See `docs/channels/clickclack.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/clickclack`.
|