@evgenyy/lessinbox-channel 0.1.8 → 0.1.9

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
@@ -4,9 +4,10 @@ Openclaw channel plugin that sends and receives agent conversation state through
4
4
 
5
5
  ## What it does
6
6
 
7
- - Starts Lessinbox sessions (runs) when needed
7
+ - Keeps one continuous conversation per target (`channel:*` or `thread:*`)
8
+ - Starts new Lessinbox sessions (runs) only when needed
8
9
  - Posts assistant messages into Lessinbox threads
9
- - Maintains persistent `conversationId -> { threadId, runId }` mapping (`memory` or `redis`)
10
+ - Maintains persistent `conversationId -> { threadId, runId? }` mapping (`memory` or `redis`)
10
11
  - Opens workspace WebSocket stream and emits realtime inbound events (`message.created`, `interrupt.answered`, `run.state_changed`, etc.)
11
12
  - Exposes a channel plugin manifest + Lessinbox skill bundle
12
13
 
@@ -22,6 +23,7 @@ Openclaw channel plugin that sends and receives agent conversation state through
22
23
  {
23
24
  "channels": {
24
25
  "lessinbox": {
26
+ "enabled": true,
25
27
  "accounts": {
26
28
  "default": {
27
29
  "enabled": true,
@@ -34,7 +36,7 @@ Openclaw channel plugin that sends and receives agent conversation state through
34
36
  "redisPrefix": "lessinbox:openclaw",
35
37
  "workspaceStream": {
36
38
  "enabled": true,
37
- "wsUrl": "wss://lessinbox.example.com/v1/ws",
39
+ "wsUrl": "wss://lessinbox.example.com/v2/ws",
38
40
  "reconnectMs": 1500
39
41
  }
40
42
  }
@@ -56,14 +58,14 @@ If `threadId` and `runId` are missing, the plugin will create a new Lessinbox ru
56
58
 
57
59
  Target formats supported by the plugin:
58
60
 
59
- - `channel:<channelId>` - create/continue conversation for that channel
61
+ - `channel:<channelId>` - continue the latest thread for this channel (or create one if missing)
60
62
  - `thread:<threadId>` - create/continue conversation in that exact thread
61
63
  - raw channel id (`cml...` or `chn_...`) - treated as `channel:<id>`
62
64
  - account alias (`default`, etc.) - switches account when it matches configured account id
63
65
 
64
66
  ## Realtime inbound usage
65
67
 
66
- The package exports `subscribeToLessinboxEvents(...)` and also exposes `plugin.inbound.subscribe(...)`.
68
+ The package exports `subscribeToLessinboxEvents(...)` as a direct helper for custom integrations.
67
69
 
68
70
  Example:
69
71
 
@@ -79,7 +81,15 @@ const unsubscribe = subscribeToLessinboxEvents({
79
81
  })
80
82
  ```
81
83
 
82
- On terminal run states (`completed`, `failed`, `canceled`) the plugin clears stored run mapping automatically.
84
+ For Openclaw-native runtime lifecycle, inbound processing is wired through channel gateway hooks:
85
+
86
+ - `plugin.gateway.startAccount(...)` subscribes to Lessinbox workspace stream.
87
+ - `plugin.gateway.stopAccount(...)` unsubscribes and shuts down account listeners.
88
+ - Incoming `message.created` user messages are routed through Openclaw runtime reply dispatcher.
89
+
90
+ This is the preferred runtime path in v2.
91
+
92
+ On terminal run states (`completed`, `failed`, `canceled`) the plugin keeps thread mapping and clears only the run id, so the next outbound message starts a fresh run in the same thread.
83
93
 
84
94
  ## Build
85
95
 
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export interface LessinboxWorkspaceStreamConfig {
4
4
  reconnectMs?: number;
5
5
  }
6
6
  export interface LessinboxAccountConfig {
7
+ accountId?: string;
7
8
  enabled?: boolean;
8
9
  apiUrl: string;
9
10
  apiKey: string;
@@ -41,9 +42,64 @@ export interface InterruptCreateInput {
41
42
  }
42
43
  export interface LessinboxRunRef {
43
44
  threadId: string;
44
- runId: string;
45
+ runId?: string;
45
46
  status?: string;
46
47
  }
48
+ interface V2RunSnapshot {
49
+ id: string;
50
+ thread_id: string | null;
51
+ channel_id: string;
52
+ status: string;
53
+ }
54
+ interface V2RunGetResponse {
55
+ run: V2RunSnapshot;
56
+ }
57
+ interface V2ThreadRunSnapshot {
58
+ id: string;
59
+ status: string;
60
+ }
61
+ interface V2ThreadGetResponse {
62
+ id: string;
63
+ channel_id: string;
64
+ run: V2ThreadRunSnapshot | null;
65
+ session?: V2ThreadRunSnapshot | null;
66
+ }
67
+ interface V2ThreadSummary {
68
+ id: string;
69
+ channel_id: string;
70
+ run_id: string | null;
71
+ run_status: string | null;
72
+ session_id?: string | null;
73
+ session_status?: string | null;
74
+ }
75
+ interface V2ThreadListResponse {
76
+ threads: V2ThreadSummary[];
77
+ next_cursor: string | null;
78
+ }
79
+ interface V2MessageActor {
80
+ type?: string;
81
+ user_id?: string;
82
+ userId?: string;
83
+ agent_id?: string;
84
+ agentId?: string;
85
+ }
86
+ interface V2ThreadFeedMessage {
87
+ id: string;
88
+ run_id?: string | null;
89
+ session_id?: string | null;
90
+ kind?: string | null;
91
+ text?: string | null;
92
+ actor?: V2MessageActor;
93
+ created_at?: string;
94
+ }
95
+ interface V2ThreadFeedEntry {
96
+ type?: string;
97
+ message?: V2ThreadFeedMessage;
98
+ }
99
+ interface V2ThreadFeedResponse {
100
+ entries: V2ThreadFeedEntry[];
101
+ next_cursor: string | null;
102
+ }
47
103
  export type LessinboxWorkspaceEventKind = "event.appended" | "artifact.ready" | "checkpoint.created" | "checkpoint.resolved" | "run.status" | "thread.summary" | "message.created" | "interrupt.opened" | "interrupt.answered" | "run.state_changed";
48
104
  export interface LessinboxWorkspaceEvent {
49
105
  kind: string;
@@ -103,27 +159,56 @@ export declare class LessinboxApi {
103
159
  message: string;
104
160
  details?: Record<string, unknown>;
105
161
  }): Promise<void>;
162
+ getRun(runId: string): Promise<V2RunGetResponse>;
163
+ getThread(threadId: string): Promise<V2ThreadGetResponse>;
106
164
  listThreads(input?: {
107
165
  bucket?: "needs_input" | "in_progress" | "done" | "all";
108
166
  channelId?: string;
109
167
  cursor?: string;
110
168
  limit?: number;
111
- }): Promise<{
112
- threads: unknown[];
113
- next_cursor: string | null;
114
- }>;
169
+ }): Promise<V2ThreadListResponse>;
115
170
  createWorkspaceWsToken(): Promise<{
116
171
  token: string;
117
172
  expires_at: string;
118
173
  }>;
174
+ getThreadFeed(input: {
175
+ threadId: string;
176
+ limit?: number;
177
+ cursor?: string;
178
+ }): Promise<V2ThreadFeedResponse>;
119
179
  private request;
120
180
  }
121
181
  export declare function resolveAccountConfig(config: unknown, accountId?: string): LessinboxAccountConfig;
122
- type ChannelPluginRuntimeAPI = {
182
+ type ChannelLogSink = {
183
+ debug?: (message: string) => void;
184
+ info?: (message: string) => void;
185
+ warn?: (message: string) => void;
186
+ error?: (message: string) => void;
187
+ };
188
+ type ChannelRuntimeState = Record<string, unknown>;
189
+ type ChannelGatewayContext = {
190
+ cfg: unknown;
191
+ accountId: string;
192
+ account: LessinboxAccountConfig;
193
+ runtime: unknown;
194
+ abortSignal: AbortSignal;
195
+ log?: ChannelLogSink;
196
+ getStatus: () => ChannelRuntimeState;
197
+ setStatus: (next: ChannelRuntimeState) => void;
198
+ };
199
+ type ChannelGatewayStartContext = ChannelGatewayContext;
200
+ type ChannelGatewayStopContext = ChannelGatewayContext;
201
+ type OpenclawPluginService = {
202
+ id: string;
203
+ start: (ctx: unknown) => void | Promise<void>;
204
+ stop?: (ctx: unknown) => void | Promise<void>;
205
+ };
206
+ type OpenclawPluginApi = {
207
+ runtime?: unknown;
123
208
  registerChannel: (input: {
124
209
  plugin: unknown;
125
- }) => void;
126
- onShutdown?: (handler: () => Promise<void> | void) => void;
210
+ } | unknown) => void;
211
+ registerService?: (service: OpenclawPluginService) => void;
127
212
  };
128
213
  type SendTextInput = {
129
214
  text: string;
@@ -139,18 +224,23 @@ type SendTextInput = {
139
224
  conversationId?: string;
140
225
  metadata?: Record<string, unknown>;
141
226
  };
142
- type SubscribeInput = {
143
- config?: unknown;
144
- accountId?: string;
145
- onEvent: LessinboxInboundEventHandler;
227
+ type SendMediaInput = Omit<SendTextInput, "text"> & {
228
+ text?: string;
229
+ mediaUrl?: string;
146
230
  };
147
231
  declare function sendTextToLessinbox(input: SendTextInput): Promise<{
148
232
  ok: boolean;
149
233
  threadId: string;
150
234
  runId: string;
151
235
  }>;
236
+ declare function sendMediaToLessinbox(input: SendMediaInput): Promise<{
237
+ ok: boolean;
238
+ threadId: string;
239
+ runId: string;
240
+ }>;
241
+ declare function startLessinboxGatewayAccount(ctx: ChannelGatewayStartContext): Promise<void>;
242
+ declare function stopLessinboxGatewayAccount(ctx: ChannelGatewayStopContext): Promise<void>;
152
243
  export declare function subscribeToLessinboxEvents(input: SubscribeToLessinboxEventsInput): () => void;
153
- declare function subscribeFromPlugin(input: SubscribeInput): () => void;
154
244
  export declare function createLessinboxPlugin(): {
155
245
  id: string;
156
246
  meta: {
@@ -163,18 +253,45 @@ export declare function createLessinboxPlugin(): {
163
253
  };
164
254
  capabilities: {
165
255
  chatTypes: string[];
256
+ threads: boolean;
257
+ media: boolean;
258
+ };
259
+ reload: {
260
+ configPrefixes: string[];
166
261
  };
167
262
  config: {
168
263
  listAccountIds: (cfg: unknown) => string[];
169
264
  resolveAccount: (cfg: unknown, accountId?: string) => LessinboxAccountConfig;
265
+ isConfigured: (account: LessinboxAccountConfig) => boolean;
266
+ describeAccount: (account: LessinboxAccountConfig) => {
267
+ accountId: string;
268
+ enabled: boolean;
269
+ configured: boolean;
270
+ workspaceId: string;
271
+ apiUrl: string;
272
+ };
170
273
  };
171
274
  outbound: {
172
275
  deliveryMode: string;
173
276
  sendText: typeof sendTextToLessinbox;
277
+ sendMedia: typeof sendMediaToLessinbox;
278
+ };
279
+ gateway: {
280
+ startAccount: typeof startLessinboxGatewayAccount;
281
+ stopAccount: typeof stopLessinboxGatewayAccount;
174
282
  };
175
- inbound: {
176
- subscribe: typeof subscribeFromPlugin;
283
+ status: {
284
+ defaultRuntime: {
285
+ accountId: string;
286
+ running: boolean;
287
+ connected: boolean;
288
+ lastConnectedAt: null;
289
+ lastDisconnect: null;
290
+ lastStartAt: null;
291
+ lastStopAt: null;
292
+ lastError: null;
293
+ };
177
294
  };
178
295
  };
179
- export default function register(api: ChannelPluginRuntimeAPI): void;
296
+ export default function register(api: OpenclawPluginApi): void;
180
297
  export {};
package/dist/index.js CHANGED
@@ -2,7 +2,9 @@ import Redis from "ioredis";
2
2
  import WebSocket from "ws";
3
3
  const DEFAULT_RECONNECT_MS = 1_500;
4
4
  const MIN_RECONNECT_MS = 250;
5
+ const INBOUND_MESSAGE_DEDUPE_TTL_MS = 5 * 60 * 1000;
5
6
  const TERMINAL_RUN_STATUSES = new Set(["completed", "failed", "canceled"]);
7
+ const ACTIVE_RUN_STATUSES = new Set(["queued", "running", "waiting_for_human"]);
6
8
  function normalizeBaseUrl(baseUrl) {
7
9
  return baseUrl.replace(/\/+$/, "");
8
10
  }
@@ -91,10 +93,20 @@ function parseRunRef(value) {
91
93
  const threadId = toOptionalString(record.threadId);
92
94
  const runId = toOptionalString(record.runId);
93
95
  const status = toOptionalString(record.status);
94
- if (!threadId || !runId) {
96
+ if (!threadId) {
95
97
  return undefined;
96
98
  }
97
- return { threadId, runId, status };
99
+ return {
100
+ threadId,
101
+ ...(runId ? { runId } : {}),
102
+ ...(status ? { status } : {})
103
+ };
104
+ }
105
+ function isTerminalRunStatus(status) {
106
+ return Boolean(status && TERMINAL_RUN_STATUSES.has(status));
107
+ }
108
+ function isActiveRunStatus(status) {
109
+ return Boolean(status && ACTIVE_RUN_STATUSES.has(status));
98
110
  }
99
111
  function extractRunId(payload) {
100
112
  const record = asRecord(payload);
@@ -148,19 +160,19 @@ function buildWorkspaceWsEndpoint(apiUrl, wsUrlOverride) {
148
160
  url.search = "";
149
161
  const normalizedPath = url.pathname.replace(/\/+$/, "");
150
162
  if (!normalizedPath || normalizedPath === "/") {
151
- url.pathname = "/v1/ws";
163
+ url.pathname = "/v2/ws";
152
164
  return url.toString();
153
165
  }
154
- if (normalizedPath.endsWith("/v2")) {
166
+ if (normalizedPath.endsWith("/v1")) {
155
167
  const prefix = normalizedPath.slice(0, -3);
156
- url.pathname = `${prefix || ""}/v1/ws`;
168
+ url.pathname = `${prefix || ""}/v2/ws`;
157
169
  return url.toString();
158
170
  }
159
- if (normalizedPath.endsWith("/v1")) {
171
+ if (normalizedPath.endsWith("/v2")) {
160
172
  url.pathname = `${normalizedPath}/ws`;
161
173
  return url.toString();
162
174
  }
163
- url.pathname = `${normalizedPath}/v1/ws`;
175
+ url.pathname = `${normalizedPath}/v2/ws`;
164
176
  return url.toString();
165
177
  }
166
178
  function buildWorkspaceWsUrl(apiUrl, token, wsUrlOverride) {
@@ -389,14 +401,40 @@ class WorkspaceStreamConsumer {
389
401
  }
390
402
  const payload = asRecord(event.payload);
391
403
  const toStatus = toOptionalString(payload?.to);
392
- if (!toStatus || !TERMINAL_RUN_STATUSES.has(toStatus)) {
404
+ const mappedConversationId = await this.options.mappingStore.getConversationKeyForRun(event.runId);
405
+ const conversationId = event.conversationId ?? mappedConversationId ?? (event.threadId ? `thread:${event.threadId}` : undefined);
406
+ if (!conversationId) {
407
+ if (isTerminalRunStatus(toStatus)) {
408
+ await this.options.mappingStore.deleteRun(event.runId);
409
+ }
393
410
  return;
394
411
  }
395
- const conversationId = event.conversationId ?? (await this.options.mappingStore.getConversationKeyForRun(event.runId));
396
- if (conversationId) {
397
- await this.options.mappingStore.deleteConversation(conversationId);
412
+ const existing = await this.options.mappingStore.getConversationRun(conversationId);
413
+ const threadId = event.threadId ?? existing?.threadId;
414
+ if (!threadId) {
415
+ if (isTerminalRunStatus(toStatus)) {
416
+ await this.options.mappingStore.deleteRun(event.runId);
417
+ }
418
+ return;
419
+ }
420
+ const resolvedStatus = toStatus ?? existing?.status;
421
+ if (isTerminalRunStatus(toStatus)) {
422
+ await this.options.mappingStore.setConversationRun(conversationId, {
423
+ threadId,
424
+ ...(resolvedStatus ? { status: resolvedStatus } : {})
425
+ });
426
+ await this.options.mappingStore.deleteRun(event.runId);
427
+ return;
428
+ }
429
+ if (existing?.runId && existing.runId !== event.runId) {
430
+ await this.options.mappingStore.deleteRun(existing.runId);
398
431
  }
399
- await this.options.mappingStore.deleteRun(event.runId);
432
+ await this.options.mappingStore.setConversationRun(conversationId, {
433
+ threadId,
434
+ runId: event.runId,
435
+ ...(resolvedStatus ? { status: resolvedStatus } : {})
436
+ });
437
+ await this.options.mappingStore.setConversationKeyForRun(event.runId, conversationId);
400
438
  }
401
439
  async emit(event) {
402
440
  for (const listener of this.listeners) {
@@ -453,6 +491,10 @@ function ensureWorkspaceConsumer(accountId, account, api, mappingStore) {
453
491
  return consumer;
454
492
  }
455
493
  export async function shutdownLessinboxPluginResources() {
494
+ for (const unsubscribe of gatewayUnsubscribers.values()) {
495
+ unsubscribe();
496
+ }
497
+ gatewayUnsubscribers.clear();
456
498
  for (const consumer of workspaceConsumers.values()) {
457
499
  consumer.stop();
458
500
  }
@@ -461,6 +503,8 @@ export async function shutdownLessinboxPluginResources() {
461
503
  await store.close();
462
504
  }
463
505
  mappingStores.clear();
506
+ handledInboundMessages.clear();
507
+ lessinboxPluginRuntime = null;
464
508
  }
465
509
  export class LessinboxApi {
466
510
  constructor(config) {
@@ -524,6 +568,12 @@ export class LessinboxApi {
524
568
  idempotencyKey: randomIdempotencyKey()
525
569
  });
526
570
  }
571
+ async getRun(runId) {
572
+ return this.request(`/v2/runs/${runId}`, { method: "GET" });
573
+ }
574
+ async getThread(threadId) {
575
+ return this.request(`/v2/threads/${threadId}`, { method: "GET" });
576
+ }
527
577
  async listThreads(input = {}) {
528
578
  const params = new URLSearchParams();
529
579
  if (input.bucket)
@@ -538,11 +588,22 @@ export class LessinboxApi {
538
588
  return this.request(`/v2/threads${query ? `?${query}` : ""}`, { method: "GET" });
539
589
  }
540
590
  async createWorkspaceWsToken() {
541
- return this.request("/v1/workspace/ws-token", {
591
+ return this.request("/v2/workspace/ws-token", {
542
592
  method: "POST",
543
593
  body: {}
544
594
  });
545
595
  }
596
+ async getThreadFeed(input) {
597
+ const params = new URLSearchParams();
598
+ if (typeof input.limit === "number") {
599
+ params.set("limit", String(input.limit));
600
+ }
601
+ if (input.cursor) {
602
+ params.set("cursor", input.cursor);
603
+ }
604
+ const query = params.toString();
605
+ return this.request(`/v2/threads/${input.threadId}/feed${query ? `?${query}` : ""}`, { method: "GET" });
606
+ }
546
607
  async request(path, options) {
547
608
  const headers = new Headers({
548
609
  Authorization: `Bearer ${this.apiKey}`,
@@ -598,6 +659,7 @@ export function resolveAccountConfig(config, accountId) {
598
659
  }
599
660
  const mappingStore = resolveMappingStoreKind(account.mappingStore);
600
661
  return {
662
+ accountId: resolvedId,
601
663
  enabled: typeof account.enabled === "boolean" ? account.enabled : true,
602
664
  apiUrl,
603
665
  apiKey,
@@ -609,6 +671,49 @@ export function resolveAccountConfig(config, accountId) {
609
671
  workspaceStream: resolveWorkspaceStreamConfig(account.workspaceStream)
610
672
  };
611
673
  }
674
+ const gatewayUnsubscribers = new Map();
675
+ const handledInboundMessages = new Map();
676
+ let lessinboxPluginRuntime = null;
677
+ function setLessinboxPluginRuntime(runtime) {
678
+ if (!runtime || typeof runtime !== "object") {
679
+ lessinboxPluginRuntime = null;
680
+ return;
681
+ }
682
+ lessinboxPluginRuntime = runtime;
683
+ }
684
+ function getLessinboxPluginRuntime() {
685
+ return lessinboxPluginRuntime;
686
+ }
687
+ function formatError(err) {
688
+ if (err instanceof Error && err.message) {
689
+ return err.message;
690
+ }
691
+ if (typeof err === "string") {
692
+ return err;
693
+ }
694
+ try {
695
+ return JSON.stringify(err);
696
+ }
697
+ catch {
698
+ return String(err);
699
+ }
700
+ }
701
+ function sleep(ms) {
702
+ return new Promise((resolve) => {
703
+ setTimeout(resolve, ms);
704
+ });
705
+ }
706
+ function toOptionalTimestamp(value) {
707
+ if (typeof value === "number" && Number.isFinite(value)) {
708
+ return value;
709
+ }
710
+ const asString = toOptionalString(value);
711
+ if (!asString) {
712
+ return undefined;
713
+ }
714
+ const parsed = Date.parse(asString);
715
+ return Number.isFinite(parsed) ? parsed : undefined;
716
+ }
612
717
  function deriveConversationKey(input) {
613
718
  if (input.conversationId && input.conversationId.trim().length > 0) {
614
719
  return input.conversationId;
@@ -669,6 +774,136 @@ function resolveSendTarget(input) {
669
774
  // Raw IDs default to channel target so CLI `--target <channelId>` works out of the box.
670
775
  return { channelId: explicitTarget, conversationId: `channel:${explicitTarget}` };
671
776
  }
777
+ function deriveChannelIdFromConversationKey(conversationKey) {
778
+ if (!conversationKey || !conversationKey.startsWith("channel:")) {
779
+ return undefined;
780
+ }
781
+ const channelId = conversationKey.slice("channel:".length).trim();
782
+ return channelId.length > 0 ? channelId : undefined;
783
+ }
784
+ function deriveTitle(input) {
785
+ if (input.title && input.title.trim().length > 0) {
786
+ return input.title.trim();
787
+ }
788
+ return input.text.slice(0, 80);
789
+ }
790
+ function toRunRefFromThreadSummary(summary) {
791
+ const runId = toOptionalString(summary.session_id) ?? toOptionalString(summary.run_id);
792
+ const status = toOptionalString(summary.session_status) ?? toOptionalString(summary.run_status);
793
+ return {
794
+ threadId: summary.id,
795
+ ...(runId ? { runId } : {}),
796
+ ...(status ? { status } : {})
797
+ };
798
+ }
799
+ function toRunRefFromThreadDetail(thread) {
800
+ const session = asRecord(thread.session);
801
+ const run = asRecord(thread.run);
802
+ const runId = toOptionalString(session?.id) ?? toOptionalString(run?.id);
803
+ const status = toOptionalString(session?.status) ?? toOptionalString(run?.status);
804
+ return {
805
+ threadId: thread.id,
806
+ ...(runId ? { runId } : {}),
807
+ ...(status ? { status } : {})
808
+ };
809
+ }
810
+ function normalizeConversationMetadata(metadata, conversationKey) {
811
+ if (!conversationKey) {
812
+ return metadata;
813
+ }
814
+ return {
815
+ ...(metadata ?? {}),
816
+ conversation_id: conversationKey
817
+ };
818
+ }
819
+ function purgeHandledInboundMessages(now) {
820
+ for (const [key, expiresAt] of handledInboundMessages.entries()) {
821
+ if (expiresAt <= now) {
822
+ handledInboundMessages.delete(key);
823
+ }
824
+ }
825
+ }
826
+ function hasHandledInboundMessage(key) {
827
+ const now = Date.now();
828
+ purgeHandledInboundMessages(now);
829
+ const expiresAt = handledInboundMessages.get(key);
830
+ return typeof expiresAt === "number" && expiresAt > now;
831
+ }
832
+ function markHandledInboundMessage(key) {
833
+ handledInboundMessages.set(key, Date.now() + INBOUND_MESSAGE_DEDUPE_TTL_MS);
834
+ }
835
+ function deriveHandledInboundKey(accountId, messageId) {
836
+ return `${accountId}:${messageId}`;
837
+ }
838
+ function resolveMessageActorType(message) {
839
+ const actor = asRecord(message?.actor);
840
+ return toOptionalString(actor?.type) ?? "unknown";
841
+ }
842
+ function resolveMessageActorUserId(message) {
843
+ const actor = asRecord(message?.actor);
844
+ return toOptionalString(actor?.user_id) ?? toOptionalString(actor?.userId);
845
+ }
846
+ function resolveEventPayloadMessage(event) {
847
+ const payload = asRecord(event.payload);
848
+ const message = asRecord(payload?.message);
849
+ const id = toOptionalString(message?.id);
850
+ if (!id) {
851
+ return undefined;
852
+ }
853
+ return {
854
+ id,
855
+ run_id: toOptionalString(message?.run_id) ?? undefined,
856
+ session_id: toOptionalString(message?.session_id) ?? undefined,
857
+ kind: toOptionalString(message?.kind),
858
+ text: toOptionalString(message?.text),
859
+ actor: asRecord(message?.actor),
860
+ created_at: toOptionalString(message?.created_at)
861
+ };
862
+ }
863
+ async function findFeedMessageById(api, threadId, messageId) {
864
+ for (let attempt = 0; attempt < 3; attempt += 1) {
865
+ try {
866
+ const feed = await api.getThreadFeed({ threadId, limit: 50 });
867
+ const found = feed.entries.find((entry) => toOptionalString(entry?.message?.id) === messageId)?.message;
868
+ if (found) {
869
+ return found;
870
+ }
871
+ }
872
+ catch {
873
+ // ignore and retry
874
+ }
875
+ if (attempt < 2) {
876
+ await sleep((attempt + 1) * 120);
877
+ }
878
+ }
879
+ return undefined;
880
+ }
881
+ function coalesceInboundMessage(messageId, payloadMessage, feedMessage) {
882
+ const text = toOptionalString(feedMessage?.text) ??
883
+ toOptionalString(payloadMessage?.text);
884
+ if (!text) {
885
+ return null;
886
+ }
887
+ const actorType = resolveMessageActorType(feedMessage) !== "unknown"
888
+ ? resolveMessageActorType(feedMessage)
889
+ : resolveMessageActorType(payloadMessage);
890
+ const actorUserId = resolveMessageActorUserId(feedMessage) ??
891
+ resolveMessageActorUserId(payloadMessage);
892
+ const runId = toOptionalString(feedMessage?.run_id) ??
893
+ toOptionalString(feedMessage?.session_id) ??
894
+ toOptionalString(payloadMessage?.run_id) ??
895
+ toOptionalString(payloadMessage?.session_id);
896
+ const createdAtMs = toOptionalTimestamp(feedMessage?.created_at) ??
897
+ toOptionalTimestamp(payloadMessage?.created_at);
898
+ return {
899
+ id: messageId,
900
+ text,
901
+ actorType,
902
+ ...(actorUserId ? { actorUserId } : {}),
903
+ ...(runId ? { runId } : {}),
904
+ ...(typeof createdAtMs === "number" ? { createdAtMs } : {})
905
+ };
906
+ }
672
907
  async function sendTextToLessinbox(input) {
673
908
  if (!input.config) {
674
909
  throw new Error("Plugin sendText did not receive runtime config");
@@ -694,37 +929,368 @@ async function sendTextToLessinbox(input) {
694
929
  const mappedRun = conversationKey ? await mappingStore.getConversationRun(conversationKey) : undefined;
695
930
  let threadId = resolvedThreadId ?? mappedRun?.threadId;
696
931
  let runId = resolvedRunId ?? mappedRun?.runId;
697
- if (!threadId || !runId) {
698
- const title = (input.title && input.title.trim().length > 0 ? input.title.trim() : null) ??
699
- input.text.slice(0, 80);
932
+ let runStatus = mappedRun?.status;
933
+ let channelId = resolvedChannelId ?? deriveChannelIdFromConversationKey(conversationKey);
934
+ // Recover latest known thread for channel-targeted conversations when in-memory mapping is empty.
935
+ if (!threadId && !runId && channelId) {
936
+ const listing = await api.listThreads({
937
+ bucket: "all",
938
+ channelId,
939
+ limit: 1
940
+ });
941
+ const latest = listing.threads[0];
942
+ if (latest) {
943
+ const recovered = toRunRefFromThreadSummary(latest);
944
+ threadId = recovered.threadId;
945
+ runId = recovered.runId;
946
+ runStatus = recovered.status;
947
+ }
948
+ }
949
+ // Thread details give us canonical channel and latest session snapshot.
950
+ if (threadId && (!channelId || !runId || !runStatus)) {
951
+ const thread = await api.getThread(threadId);
952
+ channelId = channelId ?? thread.channel_id;
953
+ const detailRef = toRunRefFromThreadDetail(thread);
954
+ if (!runId && detailRef.runId) {
955
+ runId = detailRef.runId;
956
+ }
957
+ if (!runStatus && detailRef.status) {
958
+ runStatus = detailRef.status;
959
+ }
960
+ }
961
+ // For mapped runs, verify status so terminal sessions rotate automatically.
962
+ if (runId && !resolvedRunId) {
963
+ try {
964
+ const runSnapshot = await api.getRun(runId);
965
+ const run = runSnapshot.run;
966
+ runStatus = toOptionalString(run.status) ?? runStatus;
967
+ if (!threadId) {
968
+ threadId = toOptionalString(run.thread_id) ?? threadId;
969
+ }
970
+ channelId = channelId ?? toOptionalString(run.channel_id);
971
+ }
972
+ catch {
973
+ runId = undefined;
974
+ runStatus = undefined;
975
+ }
976
+ }
977
+ if (runId && !resolvedRunId && !isActiveRunStatus(runStatus)) {
978
+ await mappingStore.deleteRun(runId);
979
+ runId = undefined;
980
+ }
981
+ if (!runId) {
700
982
  const started = await api.startRun({
701
- title,
702
- channelId: resolvedChannelId ?? api.getDefaultChannelId(),
983
+ title: deriveTitle(input),
984
+ channelId: channelId ?? api.getDefaultChannelId(),
703
985
  threadId,
704
- metadata: input.metadata
986
+ metadata: normalizeConversationMetadata(input.metadata, conversationKey)
705
987
  });
706
988
  threadId = started.thread_id;
707
989
  runId = started.run_id;
990
+ runStatus = started.session_status ?? started.status;
991
+ channelId = channelId ?? api.getDefaultChannelId();
992
+ }
993
+ if (!threadId) {
994
+ throw new Error("Unable to resolve Lessinbox thread for outbound message");
708
995
  }
709
- await api.postMessage({
996
+ const message = await api.postMessage({
710
997
  threadId,
711
998
  runId,
712
999
  text: input.text,
713
1000
  kind: "text"
714
1001
  });
1002
+ const resolvedMessageRunId = message.run_id ?? runId;
715
1003
  if (conversationKey) {
716
- if (mappedRun?.runId && mappedRun.runId !== runId) {
1004
+ if (mappedRun?.runId && mappedRun.runId !== resolvedMessageRunId) {
717
1005
  await mappingStore.deleteRun(mappedRun.runId);
718
1006
  }
719
- await mappingStore.setConversationRun(conversationKey, { threadId, runId });
720
- await mappingStore.setConversationKeyForRun(runId, conversationKey);
1007
+ await mappingStore.setConversationRun(conversationKey, {
1008
+ threadId,
1009
+ ...(resolvedMessageRunId ? { runId: resolvedMessageRunId } : {}),
1010
+ ...(runStatus ? { status: runStatus } : {})
1011
+ });
1012
+ if (resolvedMessageRunId) {
1013
+ await mappingStore.setConversationKeyForRun(resolvedMessageRunId, conversationKey);
1014
+ }
721
1015
  }
722
1016
  return {
723
1017
  ok: true,
724
1018
  threadId,
725
- runId
1019
+ runId: resolvedMessageRunId ?? runId
726
1020
  };
727
1021
  }
1022
+ async function sendMediaToLessinbox(input) {
1023
+ const mediaUrl = toOptionalString(input.mediaUrl);
1024
+ const caption = input.text?.trim() ?? "";
1025
+ if (!mediaUrl) {
1026
+ return sendTextToLessinbox({
1027
+ ...input,
1028
+ text: caption
1029
+ });
1030
+ }
1031
+ const messageText = [caption, `Attachment: ${mediaUrl}`].filter(Boolean).join("\n\n");
1032
+ return sendTextToLessinbox({
1033
+ ...input,
1034
+ text: messageText || `Attachment: ${mediaUrl}`
1035
+ });
1036
+ }
1037
+ async function sendReplyPayloadToLessinbox(input) {
1038
+ const mediaUrls = input.payload.mediaUrls?.length
1039
+ ? input.payload.mediaUrls
1040
+ : input.payload.mediaUrl
1041
+ ? [input.payload.mediaUrl]
1042
+ : [];
1043
+ if (mediaUrls.length === 0) {
1044
+ await sendTextToLessinbox({
1045
+ text: input.payload.text ?? "",
1046
+ accountId: input.accountId,
1047
+ config: input.config,
1048
+ threadId: input.threadId,
1049
+ runId: input.runId,
1050
+ conversationId: `thread:${input.threadId}`
1051
+ });
1052
+ return;
1053
+ }
1054
+ let first = true;
1055
+ for (const mediaUrl of mediaUrls) {
1056
+ await sendMediaToLessinbox({
1057
+ text: first ? input.payload.text ?? "" : "",
1058
+ mediaUrl,
1059
+ accountId: input.accountId,
1060
+ config: input.config,
1061
+ threadId: input.threadId,
1062
+ runId: input.runId,
1063
+ conversationId: `thread:${input.threadId}`
1064
+ });
1065
+ first = false;
1066
+ }
1067
+ }
1068
+ async function dispatchInboundMessageToRuntime(input) {
1069
+ const routing = input.runtime.channel?.routing?.resolveAgentRoute;
1070
+ const replyRuntime = input.runtime.channel?.reply;
1071
+ if (!routing || !replyRuntime?.finalizeInboundContext || !replyRuntime.dispatchReplyWithBufferedBlockDispatcher) {
1072
+ return;
1073
+ }
1074
+ const route = routing({
1075
+ cfg: input.cfg,
1076
+ channel: "lessinbox",
1077
+ accountId: input.accountId,
1078
+ peer: {
1079
+ kind: "direct",
1080
+ id: input.threadId
1081
+ }
1082
+ });
1083
+ const routeSessionKey = toOptionalString(route.sessionKey) ??
1084
+ toOptionalString(route.mainSessionKey) ??
1085
+ `agent:main:lessinbox:thread:${input.threadId}`;
1086
+ const routeAccountId = toOptionalString(route.accountId) ?? input.accountId;
1087
+ const routeAgentId = toOptionalString(route.agentId);
1088
+ const ctxPayload = replyRuntime.finalizeInboundContext({
1089
+ Body: input.message.text,
1090
+ BodyForAgent: input.message.text,
1091
+ RawBody: input.message.text,
1092
+ CommandBody: input.message.text,
1093
+ From: `lessinbox:thread:${input.threadId}`,
1094
+ To: `thread:${input.threadId}`,
1095
+ SessionKey: routeSessionKey,
1096
+ AccountId: routeAccountId,
1097
+ ChatType: "direct",
1098
+ ConversationLabel: `Lessinbox thread ${input.threadId}`,
1099
+ SenderId: input.message.actorUserId ?? `thread:${input.threadId}`,
1100
+ Provider: "lessinbox",
1101
+ Surface: "lessinbox",
1102
+ MessageSid: input.message.id,
1103
+ Timestamp: input.message.createdAtMs ?? Date.now(),
1104
+ OriginatingChannel: "lessinbox",
1105
+ OriginatingTo: `thread:${input.threadId}`,
1106
+ CommandAuthorized: true
1107
+ });
1108
+ const sessionStore = asRecord(input.cfg)?.session;
1109
+ const resolveStorePath = input.runtime.channel?.session?.resolveStorePath;
1110
+ const recordInboundSession = input.runtime.channel?.session?.recordInboundSession;
1111
+ if (resolveStorePath && recordInboundSession) {
1112
+ const storePath = resolveStorePath(asRecord(sessionStore)?.store, { agentId: routeAgentId });
1113
+ await recordInboundSession({
1114
+ storePath,
1115
+ sessionKey: routeSessionKey,
1116
+ ctx: ctxPayload,
1117
+ onRecordError: (err) => {
1118
+ input.log?.error?.(`lessinbox failed recording inbound session metadata: ${formatError(err)}`);
1119
+ }
1120
+ });
1121
+ }
1122
+ input.runtime.system?.enqueueSystemEvent?.(`Lessinbox message in thread ${input.threadId}: ${input.message.text.slice(0, 160)}`, {
1123
+ sessionKey: routeSessionKey,
1124
+ contextKey: `lessinbox:message:${input.threadId}:${input.message.id}`
1125
+ });
1126
+ await replyRuntime.dispatchReplyWithBufferedBlockDispatcher({
1127
+ ctx: ctxPayload,
1128
+ cfg: input.cfg,
1129
+ dispatcherOptions: {
1130
+ deliver: async (payload) => {
1131
+ await sendReplyPayloadToLessinbox({
1132
+ payload,
1133
+ accountId: input.accountId,
1134
+ config: input.cfg,
1135
+ threadId: input.threadId,
1136
+ runId: input.runId
1137
+ });
1138
+ input.runtime.channel?.activity?.record?.({
1139
+ channel: "lessinbox",
1140
+ accountId: input.accountId,
1141
+ direction: "outbound"
1142
+ });
1143
+ },
1144
+ onError: (err, info) => {
1145
+ input.log?.error?.(`lessinbox ${info.kind} reply failed: ${formatError(err)}`);
1146
+ }
1147
+ }
1148
+ });
1149
+ }
1150
+ async function handleGatewayInboundEvent(input) {
1151
+ if (input.event.kind !== "message.created") {
1152
+ return;
1153
+ }
1154
+ const threadId = input.event.threadId;
1155
+ if (!threadId) {
1156
+ return;
1157
+ }
1158
+ const payloadMessage = resolveEventPayloadMessage(input.event);
1159
+ const messageId = toOptionalString(payloadMessage?.id);
1160
+ if (!messageId) {
1161
+ return;
1162
+ }
1163
+ const handledKey = deriveHandledInboundKey(input.accountId, messageId);
1164
+ if (hasHandledInboundMessage(handledKey)) {
1165
+ return;
1166
+ }
1167
+ const feedMessage = await findFeedMessageById(input.api, threadId, messageId);
1168
+ const inboundMessage = coalesceInboundMessage(messageId, payloadMessage, feedMessage);
1169
+ if (!inboundMessage) {
1170
+ return;
1171
+ }
1172
+ if (inboundMessage.actorType !== "user") {
1173
+ return;
1174
+ }
1175
+ markHandledInboundMessage(handledKey);
1176
+ const conversationId = input.event.conversationId ?? `thread:${threadId}`;
1177
+ const runId = inboundMessage.runId ?? input.event.runId;
1178
+ if (runId) {
1179
+ await input.mappingStore.setConversationRun(conversationId, {
1180
+ threadId,
1181
+ runId,
1182
+ status: "running"
1183
+ });
1184
+ await input.mappingStore.setConversationKeyForRun(runId, conversationId);
1185
+ }
1186
+ const at = inboundMessage.createdAtMs ?? Date.now();
1187
+ input.runtime.channel?.activity?.record?.({
1188
+ channel: "lessinbox",
1189
+ accountId: input.accountId,
1190
+ direction: "inbound",
1191
+ at
1192
+ });
1193
+ input.setStatus({
1194
+ accountId: input.accountId,
1195
+ connected: true,
1196
+ lastInboundAt: at,
1197
+ lastError: null
1198
+ });
1199
+ await dispatchInboundMessageToRuntime({
1200
+ runtime: input.runtime,
1201
+ cfg: input.cfg,
1202
+ accountId: input.accountId,
1203
+ threadId,
1204
+ runId,
1205
+ message: inboundMessage,
1206
+ log: input.log
1207
+ });
1208
+ }
1209
+ function cleanupConsumerIfUnused(consumerKey) {
1210
+ const consumer = workspaceConsumers.get(consumerKey);
1211
+ if (!consumer) {
1212
+ return;
1213
+ }
1214
+ if (consumer.listenerCount() > 0) {
1215
+ return;
1216
+ }
1217
+ consumer.stop();
1218
+ workspaceConsumers.delete(consumerKey);
1219
+ }
1220
+ async function startLessinboxGatewayAccount(ctx) {
1221
+ const runtime = getLessinboxPluginRuntime();
1222
+ const accountId = deriveAccountRuntimeId(ctx.accountId);
1223
+ if (!runtime) {
1224
+ ctx.setStatus({
1225
+ accountId,
1226
+ running: false,
1227
+ connected: false,
1228
+ lastError: "Lessinbox plugin runtime not initialized"
1229
+ });
1230
+ return;
1231
+ }
1232
+ if (ctx.account.enabled === false) {
1233
+ ctx.setStatus({
1234
+ accountId,
1235
+ running: false,
1236
+ connected: false,
1237
+ lastError: "Lessinbox account is disabled"
1238
+ });
1239
+ return;
1240
+ }
1241
+ const api = new LessinboxApi(ctx.account);
1242
+ const mappingStore = getConversationMappingStore(accountId, ctx.account);
1243
+ const consumer = ensureWorkspaceConsumer(accountId, ctx.account, api, mappingStore);
1244
+ const consumerKey = deriveWorkspaceConsumerRegistryKey(accountId, ctx.account);
1245
+ gatewayUnsubscribers.get(consumerKey)?.();
1246
+ gatewayUnsubscribers.delete(consumerKey);
1247
+ if (!consumer) {
1248
+ ctx.setStatus({
1249
+ accountId,
1250
+ running: false,
1251
+ connected: false,
1252
+ lastError: "Lessinbox workspace stream is disabled"
1253
+ });
1254
+ return;
1255
+ }
1256
+ const unsubscribe = consumer.addListener(async (event) => {
1257
+ await handleGatewayInboundEvent({
1258
+ runtime,
1259
+ cfg: ctx.cfg,
1260
+ api,
1261
+ accountId,
1262
+ mappingStore,
1263
+ event,
1264
+ setStatus: ctx.setStatus,
1265
+ log: ctx.log
1266
+ });
1267
+ });
1268
+ gatewayUnsubscribers.set(consumerKey, unsubscribe);
1269
+ consumer.start();
1270
+ ctx.setStatus({
1271
+ accountId,
1272
+ running: true,
1273
+ connected: true,
1274
+ lastStartAt: Date.now(),
1275
+ lastError: null
1276
+ });
1277
+ }
1278
+ async function stopLessinboxGatewayAccount(ctx) {
1279
+ const accountId = deriveAccountRuntimeId(ctx.accountId);
1280
+ const consumerKey = deriveWorkspaceConsumerRegistryKey(accountId, ctx.account);
1281
+ const unsubscribe = gatewayUnsubscribers.get(consumerKey);
1282
+ if (unsubscribe) {
1283
+ unsubscribe();
1284
+ gatewayUnsubscribers.delete(consumerKey);
1285
+ }
1286
+ cleanupConsumerIfUnused(consumerKey);
1287
+ ctx.setStatus({
1288
+ accountId,
1289
+ running: false,
1290
+ connected: false,
1291
+ lastStopAt: Date.now()
1292
+ });
1293
+ }
728
1294
  export function subscribeToLessinboxEvents(input) {
729
1295
  const accountRuntimeId = deriveAccountRuntimeId(input.accountId);
730
1296
  const account = resolveAccountConfig(input.config, accountRuntimeId);
@@ -739,16 +1305,6 @@ export function subscribeToLessinboxEvents(input) {
739
1305
  }
740
1306
  return consumer.addListener(input.onEvent);
741
1307
  }
742
- function subscribeFromPlugin(input) {
743
- if (!input.config) {
744
- throw new Error("Plugin inbound.subscribe did not receive runtime config");
745
- }
746
- return subscribeToLessinboxEvents({
747
- config: input.config,
748
- accountId: input.accountId,
749
- onEvent: input.onEvent
750
- });
751
- }
752
1308
  const plugin = {
753
1309
  id: "lessinbox",
754
1310
  meta: {
@@ -760,7 +1316,12 @@ const plugin = {
760
1316
  aliases: ["li", "lessinbox"]
761
1317
  },
762
1318
  capabilities: {
763
- chatTypes: ["direct", "thread"]
1319
+ chatTypes: ["direct", "thread"],
1320
+ threads: true,
1321
+ media: true
1322
+ },
1323
+ reload: {
1324
+ configPrefixes: ["channels.lessinbox"]
764
1325
  },
765
1326
  config: {
766
1327
  listAccountIds: (cfg) => {
@@ -770,14 +1331,36 @@ const plugin = {
770
1331
  }
771
1332
  return Object.keys(accounts);
772
1333
  },
773
- resolveAccount: (cfg, accountId) => resolveAccountConfig(cfg, accountId)
1334
+ resolveAccount: (cfg, accountId) => resolveAccountConfig(cfg, accountId),
1335
+ isConfigured: (account) => Boolean(account.apiUrl && account.apiKey && account.workspaceId && account.defaultChannelId),
1336
+ describeAccount: (account) => ({
1337
+ accountId: account.accountId ?? "default",
1338
+ enabled: account.enabled !== false,
1339
+ configured: Boolean(account.apiUrl && account.apiKey && account.workspaceId && account.defaultChannelId),
1340
+ workspaceId: account.workspaceId,
1341
+ apiUrl: account.apiUrl
1342
+ })
774
1343
  },
775
1344
  outbound: {
776
1345
  deliveryMode: "direct",
777
- sendText: sendTextToLessinbox
1346
+ sendText: sendTextToLessinbox,
1347
+ sendMedia: sendMediaToLessinbox
1348
+ },
1349
+ gateway: {
1350
+ startAccount: startLessinboxGatewayAccount,
1351
+ stopAccount: stopLessinboxGatewayAccount
778
1352
  },
779
- inbound: {
780
- subscribe: subscribeFromPlugin
1353
+ status: {
1354
+ defaultRuntime: {
1355
+ accountId: "default",
1356
+ running: false,
1357
+ connected: false,
1358
+ lastConnectedAt: null,
1359
+ lastDisconnect: null,
1360
+ lastStartAt: null,
1361
+ lastStopAt: null,
1362
+ lastError: null
1363
+ }
781
1364
  }
782
1365
  };
783
1366
  export function createLessinboxPlugin() {
@@ -787,10 +1370,15 @@ export default function register(api) {
787
1370
  if (!api || typeof api.registerChannel !== "function") {
788
1371
  throw new Error("Openclaw plugin runtime did not expose registerChannel");
789
1372
  }
1373
+ setLessinboxPluginRuntime(api.runtime);
790
1374
  api.registerChannel({ plugin });
791
- if (typeof api.onShutdown === "function") {
792
- api.onShutdown(async () => {
793
- await shutdownLessinboxPluginResources();
1375
+ if (typeof api.registerService === "function") {
1376
+ api.registerService({
1377
+ id: "lessinbox-channel-runtime",
1378
+ start: () => undefined,
1379
+ stop: async () => {
1380
+ await shutdownLessinboxPluginResources();
1381
+ }
794
1382
  });
795
1383
  }
796
1384
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evgenyy/lessinbox-channel",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,7 +12,8 @@
12
12
  "README.md"
13
13
  ],
14
14
  "scripts": {
15
- "build": "tsc -p tsconfig.json"
15
+ "build": "tsc -p tsconfig.json",
16
+ "test": "vitest --run"
16
17
  },
17
18
  "dependencies": {
18
19
  "ioredis": "^5.4.1",
@@ -5,7 +5,8 @@ description: Use Lessinbox threads as the primary human interface for Openclaw s
5
5
 
6
6
  When running through the Lessinbox channel:
7
7
  - Keep updates concise and post progress frequently.
8
+ - Keep the same thread as the durable conversation context; treat runs as internal session slices.
8
9
  - Use interrupts for meaningful human decisions only.
9
10
  - Provide context, options, and impact when asking for input.
10
11
  - When the task is done, post a clear summary and close the session.
11
- - Keep all execution state in-thread so the conversation is auditable.
12
+ - Keep all execution state in-thread so the conversation is auditable.