@inline-openclaw/inline 0.0.62 → 0.0.64
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 +25 -6
- package/dist/account-inspect-api.js +8 -1
- package/dist/account-inspect-api.js.map +3 -3
- package/dist/approval-handler.runtime.js +3006 -414
- package/dist/approval-handler.runtime.js.map +24 -22
- package/dist/channel-plugin-api.js +3858 -754
- package/dist/channel-plugin-api.js.map +34 -30
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +278 -2
- package/dist/index.js.map +5 -4
- package/dist/runtime-register-api.js +2730 -309
- package/dist/runtime-register-api.js.map +24 -22
- package/dist/setup-plugin-api.js +56 -35
- package/dist/setup-plugin-api.js.map +6 -6
- package/docs/openclaw-setup.md +28 -0
- package/openclaw.plugin.json +1 -0
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -34,18 +34,28 @@ Reply-thread behavior:
|
|
|
34
34
|
|
|
35
35
|
## Install
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
The current Inline plugin targets OpenClaw `2026.8.x` from `2026.8.2`. Install
|
|
38
|
+
the plugin version for your OpenClaw release line:
|
|
39
|
+
|
|
40
|
+
| OpenClaw line | Inline plugin | Exact install |
|
|
41
|
+
| --- | --- | --- |
|
|
42
|
+
| `2026.8.x` (`>=2026.8.2`) | `0.0.64` | `openclaw plugins install --force @inline-openclaw/inline@0.0.64` |
|
|
43
|
+
| `2026.7.x` | `0.0.63` | `openclaw plugins install --force @inline-openclaw/inline@0.0.63` |
|
|
44
|
+
| `2026.6.x` (`>=2026.6.11`, including extended-stable `2026.6.34`) | `0.0.63` | `openclaw plugins install --force @inline-openclaw/inline@0.0.63` |
|
|
45
|
+
|
|
46
|
+
`@latest` follows the newest supported OpenClaw line; it is not a compatibility
|
|
47
|
+
alias for older host APIs.
|
|
38
48
|
|
|
39
49
|
## Compatibility
|
|
40
50
|
|
|
41
51
|
| Plugin version | OpenClaw host | Inline realtime SDK | Status | Notes |
|
|
42
52
|
| --- | --- | --- | --- | --- |
|
|
43
|
-
| `0.0.
|
|
53
|
+
| `0.0.64` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Current | Supports the stable 2026.8 plugin SDK and preserves DM/group reply-thread routing. |
|
|
54
|
+
| `0.0.63` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.16` | Previous | Applies live-safe settings writes without restarting the Inline channel before it can answer. |
|
|
55
|
+
| `0.0.62` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.16` | Previous | Keeps the thread-only Following control out of direct-message agent settings, where the server does not support it. |
|
|
44
56
|
| `0.0.61` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.16` | Previous | Bounds model discovery through provider authentication so agent settings return a fallback instead of hanging indefinitely. |
|
|
45
57
|
| `0.0.60` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.16` | Previous | Uses the plugin index's supported force-install path for exact updates on current OpenClaw hosts. |
|
|
46
58
|
| `0.0.59` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.16` | Previous | Adds mentionable Agent specialization, exact Agent activation, and fail-closed bot-message provenance. |
|
|
47
|
-
| `0.0.57` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.14` | Previous | Hardens exact CLI-managed upgrades, deterministic channel listing, default/help consistency, and packed-artifact validation. |
|
|
48
|
-
| `0.0.56` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.14` | Stable | Finalizes unified Inline CLI setup compatibility while preserving the separately installed OpenClaw plugin boundary. |
|
|
49
59
|
|
|
50
60
|
From npm:
|
|
51
61
|
|
|
@@ -270,6 +280,7 @@ Inline reply-thread semantics:
|
|
|
270
280
|
- Agent-authored callback buttons use `agent:` action IDs. A press is acknowledged immediately and becomes a normal agent turn with the actor, chat, source message, interaction, action ID, and callback data. The normal response edits the source message; omitted buttons clear its old buttons and returned buttons replace them. Adapter-owned command, approval, thread, and model controls use `system:` IDs and keep their deterministic handlers.
|
|
271
281
|
- `thread-reply` expects `threadId` to be the child reply-thread chat id, while `to` stays the parent chat id.
|
|
272
282
|
- If `threadId` is missing, `thread-reply` can use the current reply-thread context or a saved route from `thread-create` when called with the parent chat target plus `parentMessageId`.
|
|
283
|
+
- Ordinary `send`, `reply`, and attachment actions inherit the current child when they target its parent; an unrelated explicit destination remains unrelated. Current supported OpenClaw hosts cannot validate and mirror an explicit child-to-parent escape reliably, so Inline rejects those flags when they request that ambiguous parent escape. Explicit unrelated destinations and explicit child targets remain supported.
|
|
273
284
|
- `thread-create` creates a top-level Inline thread when called without a parent target. Use `participant`/`participants` for a private thread, or `spaceId` with `isPublic: true` for a public space thread. If `spaceId` is present and no participants are supplied, Inline defaults `thread-create` to a public space thread.
|
|
274
285
|
- `thread-create` creates a real reply thread from a parent chat when `to`/`chatId`/`channelId` is supplied, or when an explicit `replyToId`/`messageId` anchor can be paired with the current channel context.
|
|
275
286
|
- `forward`/`forwardMessages` forwards one or more source `messageId`/`messageIds` to a destination `to`/`chatId`/`userId`. The source can be `from`/`source`/`fromChatId`/`fromUserId`; when omitted in an Inline conversation, it defaults to the current chat.
|
|
@@ -277,8 +288,16 @@ Inline reply-thread semantics:
|
|
|
277
288
|
- `pin`/`unpin` use `messageId` and default to the current Inline chat/thread when no target is passed; `list-pins` also defaults to the current chat/thread.
|
|
278
289
|
- `invite-to-space` invites one user per call into a space using `userId`/`user`/`participant`, `email`, or `phoneNumber`; pass `role: "admin"` for admin invites or omit it for a member invite.
|
|
279
290
|
- In `replyThreadMode: "auto"`, explicit user requests such as "reply in a thread" create and answer in a child reply thread automatically; the `thread-create` and `thread-reply` message-tool actions remain available for manual tool use.
|
|
280
|
-
-
|
|
281
|
-
-
|
|
291
|
+
- Parent typing stops before reply-thread handoff; subsequent typing, presence, and answers stay in the child. If required creation cannot be confirmed, Inline reports a short error in the parent without generating the answer there.
|
|
292
|
+
- Reply threads can be created from both DM and group parent chats. A first-level DM child keeps direct-message access policy and no-mention behavior even though Inline encodes the child as a chat. Session isolation follows OpenClaw’s `session.dmScope`; use `per-channel-peer` for separate sender transcripts. The host default `main` shares DM transcripts and is unsuitable when an untrusted participant can join a DM child.
|
|
293
|
+
- A message tool that creates a reply thread during a response moves subsequent visible typing, presence, and delivery to that child. The OpenClaw run and transcript keep the session in which the turn started; the next child message opens the child session. The adapter leaves final suppression to OpenClaw and does not discard a final merely because a tool sent something. Host dedupe varies by action, text, route, and streaming path; identical tool/final output can still repeat, and host streaming suppression can hide distinct text. No OpenClaw internals are patched. Any commentary already sent before creation remains in the parent.
|
|
294
|
+
- Saved thread routes are scoped to the parent message. A missing current-message route never selects an unrelated active thread, and an agent without its own active route cannot inherit another agent's route.
|
|
295
|
+
- Anchored creation reuses the server's existing child only for the same parent-message anchor. Inside a child, unanchored creation reuses that child; an explicit child-local anchor can create a nested Inline reply thread. Nested creation is a durable destination operation and does not move the current generated turn, so send nested content with `thread-reply` using the returned child id. This adapter only guarantees root-DM policy/session projection for first-level DM reply children; nested DM children remain an explicit advanced path.
|
|
296
|
+
- A repeated unanchored `thread-create` that still targets the stale parent during the same live handoff also reuses that handoff's child.
|
|
297
|
+
- During parent-to-child handoff, the exact source parent reply reference is stripped from stale-parent/implicit sends. Other references explicitly targeting the parent are rejected. Omitted destinations inherit the child, and explicitly targeted child-local numeric IDs are preserved even if they equal the parent's source ID. Numeric IDs alone cannot prove which chat an arbitrary reference came from.
|
|
298
|
+
- A mentioned Inline Agent specialization is retained with the saved reply-thread route, so later child follow-ups normally do not require another Agent mention. If local route state expires or is lost, mention the Agent again.
|
|
299
|
+
- Parent DM history is omitted for participants added only to its child. `inline_parent_context` also validates the trusted Inline requester against the actual parent DM peer, including explicit parent overrides. Group history and non-Inline operator tool access keep their existing bot-token access contract.
|
|
300
|
+
- Per-DM reply mode and parent-history limits are honored. The existing `/threadreply` command is group-only; configure DMs through Agent Settings or config.
|
|
282
301
|
- Inline current-message media is attached like native channels. Reply-thread anchor media is summarized as context and is not promoted to current-message media on every child-thread turn.
|
|
283
302
|
|
|
284
303
|
You can gate action groups from config:
|
|
@@ -14404,6 +14404,13 @@ function resolveControlCommandGate(params) {
|
|
|
14404
14404
|
shouldBlock: params.allowTextCommands && params.hasControlCommand && !commandAuthorized
|
|
14405
14405
|
};
|
|
14406
14406
|
}
|
|
14407
|
+
function resolveUseAccessGroups(cfg) {
|
|
14408
|
+
const commands = cfg.commands;
|
|
14409
|
+
if (!commands || typeof commands !== "object" || Array.isArray(commands)) {
|
|
14410
|
+
return true;
|
|
14411
|
+
}
|
|
14412
|
+
return commands.useAccessGroups !== false;
|
|
14413
|
+
}
|
|
14407
14414
|
function resolveMentionGatingWithBypass(params) {
|
|
14408
14415
|
const shouldBypassMention = params.isGroup && params.requireMention && !params.wasMentioned && !(params.hasAnyMention ?? false) && params.allowTextCommands && params.commandAuthorized && params.hasControlCommand;
|
|
14409
14416
|
const effectiveWasMentioned = params.wasMentioned || params.implicitMention === true || shouldBypassMention;
|
|
@@ -15026,5 +15033,5 @@ export {
|
|
|
15026
15033
|
inspectInlineReadOnlyAccount
|
|
15027
15034
|
};
|
|
15028
15035
|
|
|
15029
|
-
//# debugId=
|
|
15036
|
+
//# debugId=ABA852CEA796C68F64756E2164756E21
|
|
15030
15037
|
//# sourceMappingURL=account-inspect-api.js.map
|