@inline-openclaw/inline 0.0.65 → 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 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.65` | `openclaw plugins install @inline-openclaw/inline --force --accept-capabilities` |
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.65` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Current | Makes chat-triggered updates noninteractive by explicitly accepting the trusted Inline capability surface. |
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. |
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. |
54
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. |
55
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. |
56
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. |
57
- | `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. |
58
- | `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. |
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`, the plugin registers default bot commands for each enabled/configured Inline account.
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 `/inline_update` 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`; startup sync logs how many entries were omitted.
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
 
@@ -5632,6 +5632,20 @@ var BlockDisclosure_Kind;
5632
5632
  BlockDisclosure_Kind2[BlockDisclosure_Kind2["DEFAULT"] = 0] = "DEFAULT";
5633
5633
  BlockDisclosure_Kind2[BlockDisclosure_Kind2["PROGRESS"] = 1] = "PROGRESS";
5634
5634
  })(BlockDisclosure_Kind || (BlockDisclosure_Kind = {}));
5635
+ var BlockDisclosure_ActivityKind;
5636
+ (function(BlockDisclosure_ActivityKind2) {
5637
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
5638
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["REASONING"] = 1] = "REASONING";
5639
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["EXPLORE"] = 2] = "EXPLORE";
5640
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["READ"] = 3] = "READ";
5641
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["SEARCH"] = 4] = "SEARCH";
5642
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["EDIT"] = 5] = "EDIT";
5643
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["DELETE"] = 6] = "DELETE";
5644
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["MOVE"] = 7] = "MOVE";
5645
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["COMMAND"] = 8] = "COMMAND";
5646
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["WEB"] = 9] = "WEB";
5647
+ BlockDisclosure_ActivityKind2[BlockDisclosure_ActivityKind2["TOOL"] = 10] = "TOOL";
5648
+ })(BlockDisclosure_ActivityKind || (BlockDisclosure_ActivityKind = {}));
5635
5649
  var BlockTable_Alignment;
5636
5650
  (function(BlockTable_Alignment2) {
5637
5651
  BlockTable_Alignment2[BlockTable_Alignment2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
@@ -9551,13 +9565,15 @@ class BlockDisclosure$Type extends import_runtime4.MessageType {
9551
9565
  { no: 2, name: "kind", kind: "enum", T: () => ["BlockDisclosure.Kind", BlockDisclosure_Kind, "KIND_"] },
9552
9566
  { no: 3, name: "initially_open", kind: "scalar", opt: true, T: 8 },
9553
9567
  { no: 4, name: "children", kind: "message", repeat: 1, T: () => Block },
9554
- { no: 5, name: "is_rtl", kind: "scalar", opt: true, T: 8 }
9568
+ { no: 5, name: "is_rtl", kind: "scalar", opt: true, T: 8 },
9569
+ { no: 6, name: "activity_kind", kind: "enum", T: () => ["BlockDisclosure.ActivityKind", BlockDisclosure_ActivityKind, "ACTIVITY_KIND_"] }
9555
9570
  ]);
9556
9571
  }
9557
9572
  create(value) {
9558
9573
  const message = globalThis.Object.create(this.messagePrototype);
9559
9574
  message.kind = 0;
9560
9575
  message.children = [];
9576
+ message.activityKind = 0;
9561
9577
  if (value !== undefined)
9562
9578
  import_runtime3.reflectionMergePartial(this, message, value);
9563
9579
  return message;
@@ -9582,6 +9598,9 @@ class BlockDisclosure$Type extends import_runtime4.MessageType {
9582
9598
  case 5:
9583
9599
  message.isRtl = reader.bool();
9584
9600
  break;
9601
+ case 6:
9602
+ message.activityKind = reader.int32();
9603
+ break;
9585
9604
  default:
9586
9605
  let u = options.readUnknownField;
9587
9606
  if (u === "throw")
@@ -9604,6 +9623,8 @@ class BlockDisclosure$Type extends import_runtime4.MessageType {
9604
9623
  Block.internalBinaryWrite(message.children[i], writer.tag(4, import_runtime.WireType.LengthDelimited).fork(), options).join();
9605
9624
  if (message.isRtl !== undefined)
9606
9625
  writer.tag(5, import_runtime.WireType.Varint).bool(message.isRtl);
9626
+ if (message.activityKind !== 0)
9627
+ writer.tag(6, import_runtime.WireType.Varint).int32(message.activityKind);
9607
9628
  let u = options.writeUnknownFields;
9608
9629
  if (u !== false)
9609
9630
  (u == true ? import_runtime2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -33870,7 +33891,8 @@ class AgentProjectCatalog$Type extends import_runtime4.MessageType {
33870
33891
  constructor() {
33871
33892
  super("AgentProjectCatalog", [
33872
33893
  { no: 1, name: "options", kind: "message", repeat: 1, T: () => AgentProjectOption },
33873
- { 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 }
33874
33896
  ]);
33875
33897
  }
33876
33898
  create(value) {
@@ -33891,6 +33913,9 @@ class AgentProjectCatalog$Type extends import_runtime4.MessageType {
33891
33913
  case 2:
33892
33914
  message.canSelectFolder = reader.bool();
33893
33915
  break;
33916
+ case 3:
33917
+ message.defaultProjectId = reader.string();
33918
+ break;
33894
33919
  default:
33895
33920
  let u = options.readUnknownField;
33896
33921
  if (u === "throw")
@@ -33907,6 +33932,8 @@ class AgentProjectCatalog$Type extends import_runtime4.MessageType {
33907
33932
  AgentProjectOption.internalBinaryWrite(message.options[i], writer.tag(1, import_runtime.WireType.LengthDelimited).fork(), options).join();
33908
33933
  if (message.canSelectFolder !== undefined)
33909
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);
33910
33937
  let u = options.writeUnknownFields;
33911
33938
  if (u !== false)
33912
33939
  (u == true ? import_runtime2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -34020,7 +34047,8 @@ class AgentModelOption$Type extends import_runtime4.MessageType {
34020
34047
  { no: 1, name: "id", kind: "scalar", T: 9 },
34021
34048
  { no: 2, name: "label", kind: "scalar", T: 9 },
34022
34049
  { no: 3, name: "description", kind: "scalar", opt: true, T: 9 },
34023
- { 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 }
34024
34052
  ]);
34025
34053
  }
34026
34054
  create(value) {
@@ -34049,6 +34077,9 @@ class AgentModelOption$Type extends import_runtime4.MessageType {
34049
34077
  case 4:
34050
34078
  message.reasoningEffortIds.push(reader.string());
34051
34079
  break;
34080
+ case 5:
34081
+ message.defaultReasoningEffortId = reader.string();
34082
+ break;
34052
34083
  default:
34053
34084
  let u = options.readUnknownField;
34054
34085
  if (u === "throw")
@@ -34069,6 +34100,8 @@ class AgentModelOption$Type extends import_runtime4.MessageType {
34069
34100
  writer.tag(3, import_runtime.WireType.LengthDelimited).string(message.description);
34070
34101
  for (let i = 0;i < message.reasoningEffortIds.length; i++)
34071
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);
34072
34105
  let u = options.writeUnknownFields;
34073
34106
  if (u !== false)
34074
34107
  (u == true ? import_runtime2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -34080,7 +34113,8 @@ var AgentModelOption = new AgentModelOption$Type;
34080
34113
  class AgentModelCatalog$Type extends import_runtime4.MessageType {
34081
34114
  constructor() {
34082
34115
  super("AgentModelCatalog", [
34083
- { 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 }
34084
34118
  ]);
34085
34119
  }
34086
34120
  create(value) {
@@ -34098,6 +34132,9 @@ class AgentModelCatalog$Type extends import_runtime4.MessageType {
34098
34132
  case 1:
34099
34133
  message.options.push(AgentModelOption.internalBinaryRead(reader, reader.uint32(), options));
34100
34134
  break;
34135
+ case 2:
34136
+ message.defaultModelId = reader.string();
34137
+ break;
34101
34138
  default:
34102
34139
  let u = options.readUnknownField;
34103
34140
  if (u === "throw")
@@ -34112,6 +34149,8 @@ class AgentModelCatalog$Type extends import_runtime4.MessageType {
34112
34149
  internalBinaryWrite(message, writer, options) {
34113
34150
  for (let i = 0;i < message.options.length; i++)
34114
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);
34115
34154
  let u = options.writeUnknownFields;
34116
34155
  if (u !== false)
34117
34156
  (u == true ? import_runtime2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -69212,5 +69251,5 @@ export {
69212
69251
  inlineApprovalNativeRuntime
69213
69252
  };
69214
69253
 
69215
- //# debugId=AD53428C1039806264756E2164756E21
69254
+ //# debugId=1D806320E6C7C86164756E2164756E21
69216
69255
  //# sourceMappingURL=approval-handler.runtime.js.map