@inline-openclaw/inline 0.0.66 → 0.0.67
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 +14 -6
- package/dist/approval-handler.runtime.js +22 -4
- package/dist/approval-handler.runtime.js.map +3 -3
- package/dist/channel-plugin-api.js +58 -7
- package/dist/channel-plugin-api.js.map +7 -6
- package/dist/runtime-register-api.js +216 -10
- package/dist/runtime-register-api.js.map +9 -6
- package/docs/openclaw-setup.md +1 -1
- package/openclaw.plugin.json +0 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ the plugin version for your OpenClaw release line:
|
|
|
39
39
|
|
|
40
40
|
| OpenClaw line | Inline plugin | Exact install |
|
|
41
41
|
| --- | --- | --- |
|
|
42
|
-
| `2026.8.x` (`>=2026.8.2`) | `0.0.
|
|
42
|
+
| `2026.8.x` (`>=2026.8.2`) | `0.0.67` | `openclaw plugins install @inline-openclaw/inline --force --accept-capabilities` |
|
|
43
43
|
| `2026.7.x` (`>=2026.7.1`) | `0.0.63` | `openclaw plugins install @inline-openclaw/inline@0.0.63 --force` |
|
|
44
44
|
| `2026.6.x` (`>=2026.6.11`, including extended-stable `2026.6.34`) | `0.0.63` | `openclaw plugins install @inline-openclaw/inline@0.0.63 --force` |
|
|
45
45
|
|
|
@@ -50,12 +50,12 @@ alias for older host APIs.
|
|
|
50
50
|
|
|
51
51
|
| Plugin version | OpenClaw host | Inline realtime SDK | Status | Notes |
|
|
52
52
|
| --- | --- | --- | --- | --- |
|
|
53
|
-
| `0.0.
|
|
53
|
+
| `0.0.67` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Current | Keeps the manifest compatible with ClawHub's metadata transport without changing the channel schema. |
|
|
54
|
+
| `0.0.66` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Bounds direct account probes so SDK cleanup completes before the host deadline. |
|
|
54
55
|
| `0.0.65` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Makes chat-triggered updates noninteractive by explicitly accepting the trusted Inline capability surface. |
|
|
55
56
|
| `0.0.64` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Supports the stable 2026.8 plugin SDK and preserves DM/group reply-thread routing. |
|
|
56
57
|
| `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. |
|
|
57
58
|
| `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. |
|
|
58
|
-
| `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. |
|
|
59
59
|
|
|
60
60
|
From npm:
|
|
61
61
|
|
|
@@ -80,6 +80,14 @@ capability consent, strips credential variables from the updater process, and
|
|
|
80
80
|
asks for `/restart` after OpenClaw reports a successful update. Other authorized
|
|
81
81
|
chat members cannot update host plugins.
|
|
82
82
|
|
|
83
|
+
Installed skills are published to Inline for Skilled Agent selection on gateway
|
|
84
|
+
start and whenever OpenClaw emits `skill_changed`. Any authorized bot user can
|
|
85
|
+
run `/inline_sync` to force an immediate command-and-skill catalog republish,
|
|
86
|
+
then open or reopen Inline's Skilled Agent editor to load it. `/inline_version`
|
|
87
|
+
shows the loaded plugin/OpenClaw versions, safe install source and timestamps
|
|
88
|
+
when OpenClaw provides them, and the last in-process catalog-sync result. These
|
|
89
|
+
commands never print tokens, paths, package specs, or raw configuration.
|
|
90
|
+
|
|
83
91
|
After updating, verify that `openclaw plugins list` shows `inline`, `openclaw channels status --channel inline --probe --json` reports Inline configured/running, and `openclaw plugins inspect inline --json` reports the expected package version.
|
|
84
92
|
|
|
85
93
|
From a local checkout (dev):
|
|
@@ -363,12 +371,12 @@ The plugin also registers `inline_bot_commands` for Inline bot command managemen
|
|
|
363
371
|
|
|
364
372
|
Bot command sync:
|
|
365
373
|
|
|
366
|
-
- On `gateway_start
|
|
374
|
+
- On `gateway_start` and OpenClaw's `skill_changed` event, the plugin republishes bot commands and installed skills for each enabled/configured Inline account.
|
|
367
375
|
- Default commands include the same user-facing command set as bundled chat providers (for example: `/status`, `/model`, `/exec`, `/usage`, etc.).
|
|
368
|
-
- Inline also registers `/threadreply` to manage this group's reply-thread mode, `/follow` and `/unfollow` for explicit dialog relevance, and owner-only `/inline_update` for tracked plugin updates.
|
|
376
|
+
- Inline also registers `/threadreply` to manage this group's reply-thread mode, `/follow` and `/unfollow` for explicit dialog relevance, `/inline_sync` for a manual catalog refresh, `/inline_version` for safe runtime/install information, and owner-only `/inline_update` for tracked plugin updates.
|
|
369
377
|
- Inline accepts `/command@botusername` when the suffix matches the active bot and ignores commands targeted at another bot, including in followed threads.
|
|
370
378
|
- The plugin uses OpenClaw's command, skill command, and plugin command registries when available.
|
|
371
|
-
- Inline-owned `/follow`, `/unfollow`, `/threadreply`, and `/
|
|
379
|
+
- Inline-owned `/follow`, `/unfollow`, `/threadreply`, `/inline_update`, `/inline_sync`, and `/inline_version` entries are preserved when a larger host command set is truncated to the Bot API's 100-command limit or retried after `BOT_COMMANDS_TOO_MUCH`; catalog sync logs how many entries were omitted.
|
|
372
380
|
- Disable startup sync globally with `commands.native: false`, or per-channel with `channels.inline.commands.native: false`. Disabled startup sync clears existing Inline bot commands for the affected account.
|
|
373
381
|
- Disable skill command inclusion with `commands.nativeSkills: false`, or per-channel with `channels.inline.commands.nativeSkills: false`.
|
|
374
382
|
|
|
@@ -33891,7 +33891,8 @@ class AgentProjectCatalog$Type extends import_runtime4.MessageType {
|
|
|
33891
33891
|
constructor() {
|
|
33892
33892
|
super("AgentProjectCatalog", [
|
|
33893
33893
|
{ no: 1, name: "options", kind: "message", repeat: 1, T: () => AgentProjectOption },
|
|
33894
|
-
{ no: 2, name: "can_select_folder", kind: "scalar", opt: true, T: 8 }
|
|
33894
|
+
{ no: 2, name: "can_select_folder", kind: "scalar", opt: true, T: 8 },
|
|
33895
|
+
{ no: 3, name: "default_project_id", kind: "scalar", opt: true, T: 9 }
|
|
33895
33896
|
]);
|
|
33896
33897
|
}
|
|
33897
33898
|
create(value) {
|
|
@@ -33912,6 +33913,9 @@ class AgentProjectCatalog$Type extends import_runtime4.MessageType {
|
|
|
33912
33913
|
case 2:
|
|
33913
33914
|
message.canSelectFolder = reader.bool();
|
|
33914
33915
|
break;
|
|
33916
|
+
case 3:
|
|
33917
|
+
message.defaultProjectId = reader.string();
|
|
33918
|
+
break;
|
|
33915
33919
|
default:
|
|
33916
33920
|
let u = options.readUnknownField;
|
|
33917
33921
|
if (u === "throw")
|
|
@@ -33928,6 +33932,8 @@ class AgentProjectCatalog$Type extends import_runtime4.MessageType {
|
|
|
33928
33932
|
AgentProjectOption.internalBinaryWrite(message.options[i], writer.tag(1, import_runtime.WireType.LengthDelimited).fork(), options).join();
|
|
33929
33933
|
if (message.canSelectFolder !== undefined)
|
|
33930
33934
|
writer.tag(2, import_runtime.WireType.Varint).bool(message.canSelectFolder);
|
|
33935
|
+
if (message.defaultProjectId !== undefined)
|
|
33936
|
+
writer.tag(3, import_runtime.WireType.LengthDelimited).string(message.defaultProjectId);
|
|
33931
33937
|
let u = options.writeUnknownFields;
|
|
33932
33938
|
if (u !== false)
|
|
33933
33939
|
(u == true ? import_runtime2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -34041,7 +34047,8 @@ class AgentModelOption$Type extends import_runtime4.MessageType {
|
|
|
34041
34047
|
{ no: 1, name: "id", kind: "scalar", T: 9 },
|
|
34042
34048
|
{ no: 2, name: "label", kind: "scalar", T: 9 },
|
|
34043
34049
|
{ no: 3, name: "description", kind: "scalar", opt: true, T: 9 },
|
|
34044
|
-
{ no: 4, name: "reasoning_effort_ids", kind: "scalar", repeat: 2, T: 9 }
|
|
34050
|
+
{ no: 4, name: "reasoning_effort_ids", kind: "scalar", repeat: 2, T: 9 },
|
|
34051
|
+
{ no: 5, name: "default_reasoning_effort_id", kind: "scalar", opt: true, T: 9 }
|
|
34045
34052
|
]);
|
|
34046
34053
|
}
|
|
34047
34054
|
create(value) {
|
|
@@ -34070,6 +34077,9 @@ class AgentModelOption$Type extends import_runtime4.MessageType {
|
|
|
34070
34077
|
case 4:
|
|
34071
34078
|
message.reasoningEffortIds.push(reader.string());
|
|
34072
34079
|
break;
|
|
34080
|
+
case 5:
|
|
34081
|
+
message.defaultReasoningEffortId = reader.string();
|
|
34082
|
+
break;
|
|
34073
34083
|
default:
|
|
34074
34084
|
let u = options.readUnknownField;
|
|
34075
34085
|
if (u === "throw")
|
|
@@ -34090,6 +34100,8 @@ class AgentModelOption$Type extends import_runtime4.MessageType {
|
|
|
34090
34100
|
writer.tag(3, import_runtime.WireType.LengthDelimited).string(message.description);
|
|
34091
34101
|
for (let i = 0;i < message.reasoningEffortIds.length; i++)
|
|
34092
34102
|
writer.tag(4, import_runtime.WireType.LengthDelimited).string(message.reasoningEffortIds[i]);
|
|
34103
|
+
if (message.defaultReasoningEffortId !== undefined)
|
|
34104
|
+
writer.tag(5, import_runtime.WireType.LengthDelimited).string(message.defaultReasoningEffortId);
|
|
34093
34105
|
let u = options.writeUnknownFields;
|
|
34094
34106
|
if (u !== false)
|
|
34095
34107
|
(u == true ? import_runtime2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -34101,7 +34113,8 @@ var AgentModelOption = new AgentModelOption$Type;
|
|
|
34101
34113
|
class AgentModelCatalog$Type extends import_runtime4.MessageType {
|
|
34102
34114
|
constructor() {
|
|
34103
34115
|
super("AgentModelCatalog", [
|
|
34104
|
-
{ no: 1, name: "options", kind: "message", repeat: 1, T: () => AgentModelOption }
|
|
34116
|
+
{ no: 1, name: "options", kind: "message", repeat: 1, T: () => AgentModelOption },
|
|
34117
|
+
{ no: 2, name: "default_model_id", kind: "scalar", opt: true, T: 9 }
|
|
34105
34118
|
]);
|
|
34106
34119
|
}
|
|
34107
34120
|
create(value) {
|
|
@@ -34119,6 +34132,9 @@ class AgentModelCatalog$Type extends import_runtime4.MessageType {
|
|
|
34119
34132
|
case 1:
|
|
34120
34133
|
message.options.push(AgentModelOption.internalBinaryRead(reader, reader.uint32(), options));
|
|
34121
34134
|
break;
|
|
34135
|
+
case 2:
|
|
34136
|
+
message.defaultModelId = reader.string();
|
|
34137
|
+
break;
|
|
34122
34138
|
default:
|
|
34123
34139
|
let u = options.readUnknownField;
|
|
34124
34140
|
if (u === "throw")
|
|
@@ -34133,6 +34149,8 @@ class AgentModelCatalog$Type extends import_runtime4.MessageType {
|
|
|
34133
34149
|
internalBinaryWrite(message, writer, options) {
|
|
34134
34150
|
for (let i = 0;i < message.options.length; i++)
|
|
34135
34151
|
AgentModelOption.internalBinaryWrite(message.options[i], writer.tag(1, import_runtime.WireType.LengthDelimited).fork(), options).join();
|
|
34152
|
+
if (message.defaultModelId !== undefined)
|
|
34153
|
+
writer.tag(2, import_runtime.WireType.LengthDelimited).string(message.defaultModelId);
|
|
34136
34154
|
let u = options.writeUnknownFields;
|
|
34137
34155
|
if (u !== false)
|
|
34138
34156
|
(u == true ? import_runtime2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -69233,5 +69251,5 @@ export {
|
|
|
69233
69251
|
inlineApprovalNativeRuntime
|
|
69234
69252
|
};
|
|
69235
69253
|
|
|
69236
|
-
//# debugId=
|
|
69254
|
+
//# debugId=1D806320E6C7C86164756E2164756E21
|
|
69237
69255
|
//# sourceMappingURL=approval-handler.runtime.js.map
|