lark-remote 0.4.4 → 0.5.0

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.
Files changed (170) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/binder.d.ts +11 -10
  3. package/dist/binder.js +17 -16
  4. package/dist/bridge/approval-coordinator.d.ts +1 -1
  5. package/dist/bridge/approval-coordinator.js +3 -3
  6. package/dist/bridge/inbound-media.d.ts +1 -27
  7. package/dist/bridge/inbound-media.js +23 -21
  8. package/dist/bridge/index.d.ts +57 -57
  9. package/dist/bridge/index.js +136 -129
  10. package/dist/bridge/queue-manager.d.ts +45 -38
  11. package/dist/bridge/queue-manager.js +136 -136
  12. package/dist/card/approval-render.d.ts +1 -1
  13. package/dist/card/approval-render.js +6 -6
  14. package/dist/card/bash-card-session.d.ts +3 -3
  15. package/dist/card/bash-card-session.js +3 -3
  16. package/dist/card/bash-renderer.js +5 -5
  17. package/dist/card/card-session.d.ts +4 -4
  18. package/dist/card/card-session.js +6 -6
  19. package/dist/card/card-shared.d.ts +1 -1
  20. package/dist/card/card-shared.js +2 -2
  21. package/dist/card/run-card-session.js +2 -2
  22. package/dist/card/run-renderer.d.ts +1 -1
  23. package/dist/card/run-renderer.js +22 -22
  24. package/dist/card/run-state.d.ts +2 -2
  25. package/dist/card/run-state.js +3 -3
  26. package/dist/card/tool-render.d.ts +1 -1
  27. package/dist/card/tool-render.js +6 -6
  28. package/dist/cli.js +5 -6
  29. package/dist/clone.d.ts +6 -9
  30. package/dist/clone.js +12 -8
  31. package/dist/common/clamp.d.ts +2 -0
  32. package/dist/common/clamp.js +5 -0
  33. package/dist/common/fs.d.ts +4 -3
  34. package/dist/common/fs.js +5 -4
  35. package/dist/common/truncate.d.ts +1 -1
  36. package/dist/common/truncate.js +2 -2
  37. package/dist/common/ttl-cache.d.ts +2 -2
  38. package/dist/common/ttl-cache.js +2 -2
  39. package/dist/config/codex-config.d.ts +9 -9
  40. package/dist/config/codex-config.js +18 -18
  41. package/dist/config/dir.d.ts +4 -5
  42. package/dist/config/dir.js +12 -10
  43. package/dist/config/index.d.ts +3 -3
  44. package/dist/config/index.js +6 -6
  45. package/dist/config/opencode-config.js +3 -3
  46. package/dist/config/wizard.js +2 -2
  47. package/dist/connector/index.d.ts +5 -7
  48. package/dist/connector/index.js +29 -16
  49. package/dist/inbound/event.d.ts +1 -1
  50. package/dist/inbound/event.js +1 -1
  51. package/dist/inbound/placeholder.d.ts +2 -2
  52. package/dist/inbound/placeholder.js +2 -2
  53. package/dist/inbound/receipt.d.ts +1 -3
  54. package/dist/inbound/receipt.js +2 -2
  55. package/dist/inbound/turn-assembler.d.ts +1 -3
  56. package/dist/inbound/turn-assembler.js +2 -2
  57. package/dist/index.js +38 -30
  58. package/dist/instance-lock.js +8 -7
  59. package/dist/logger/index.d.ts +1 -1
  60. package/dist/logger/index.js +4 -4
  61. package/dist/persistence/atomic-write.d.ts +1 -1
  62. package/dist/persistence/atomic-write.js +9 -5
  63. package/dist/platform/agent-stopper.d.ts +2 -2
  64. package/dist/platform/identity.d.ts +7 -1
  65. package/dist/platform/identity.js +2 -2
  66. package/dist/platform/path.d.ts +6 -0
  67. package/dist/platform/path.js +14 -8
  68. package/dist/platform/select.d.ts +1 -1
  69. package/dist/platform/select.js +1 -1
  70. package/dist/platform/shell.d.ts +2 -3
  71. package/dist/platform/spawn.d.ts +2 -2
  72. package/dist/platform/spawn.js +2 -2
  73. package/dist/platform/terminator-posix.js +6 -6
  74. package/dist/platform/terminator-win32.js +3 -3
  75. package/dist/platform/terminator.d.ts +3 -3
  76. package/dist/platform/terminator.js +2 -2
  77. package/dist/platform/types.d.ts +1 -1
  78. package/dist/restart.d.ts +1 -1
  79. package/dist/restart.js +5 -3
  80. package/dist/router/card-helpers.d.ts +1 -3
  81. package/dist/router/card-helpers.js +2 -2
  82. package/dist/router/config/codex.d.ts +1 -1
  83. package/dist/router/config/codex.js +3 -3
  84. package/dist/router/config/common/model-patch.d.ts +1 -2
  85. package/dist/router/config/common/model-patch.js +1 -2
  86. package/dist/router/config/opencode.js +2 -2
  87. package/dist/router/config/pi.js +1 -1
  88. package/dist/router/index.d.ts +30 -30
  89. package/dist/router/index.js +103 -84
  90. package/dist/router/order-exec-dispatch.d.ts +3 -10
  91. package/dist/router/order-exec-dispatch.js +5 -5
  92. package/dist/router/{utils.d.ts → usage-format.d.ts} +2 -4
  93. package/dist/router/{utils.js → usage-format.js} +3 -8
  94. package/dist/runner/bash/runner.d.ts +2 -2
  95. package/dist/runner/bash/runner.js +6 -6
  96. package/dist/runner/claude/runner.d.ts +1 -1
  97. package/dist/runner/claude/runner.js +2 -3
  98. package/dist/runner/claude/session.d.ts +4 -6
  99. package/dist/runner/claude/session.js +21 -23
  100. package/dist/runner/codex/app-server/runner.js +3 -3
  101. package/dist/runner/codex/app-server/translator.d.ts +2 -2
  102. package/dist/runner/codex/app-server/translator.js +5 -5
  103. package/dist/runner/common/acp/{protocol-helpers.d.ts → acp-approval.d.ts} +4 -10
  104. package/dist/runner/common/acp/{protocol-helpers.js → acp-approval.js} +7 -6
  105. package/dist/runner/common/acp/base-acp-runner.d.ts +1 -1
  106. package/dist/runner/common/acp/base-acp-runner.js +2 -2
  107. package/dist/runner/common/acp/base-translator.d.ts +3 -3
  108. package/dist/runner/common/acp/base-translator.js +4 -4
  109. package/dist/runner/common/acp/protocol-types.js +1 -1
  110. package/dist/runner/common/connection-based-runner.d.ts +5 -5
  111. package/dist/runner/common/connection-based-runner.js +5 -5
  112. package/dist/runner/common/jsonl-stream.d.ts +2 -2
  113. package/dist/runner/common/jsonl-stream.js +12 -12
  114. package/dist/runner/common/jsonrpc/client.d.ts +1 -1
  115. package/dist/runner/common/jsonrpc/client.js +1 -1
  116. package/dist/runner/common/jsonrpc/connection-manager.d.ts +13 -13
  117. package/dist/runner/common/jsonrpc/connection-manager.js +37 -37
  118. package/dist/runner/common/jsonrpc/transport.d.ts +1 -1
  119. package/dist/runner/common/jsonrpc/transport.js +2 -2
  120. package/dist/runner/common/{usage.d.ts → result-usage.d.ts} +1 -1
  121. package/dist/runner/common/{usage.js → result-usage.js} +2 -2
  122. package/dist/runner/common/spawning-runner.d.ts +23 -10
  123. package/dist/runner/common/spawning-runner.js +48 -22
  124. package/dist/runner/common/{runner-utils.d.ts → synthetic-events.d.ts} +4 -4
  125. package/dist/runner/common/{runner-utils.js → synthetic-events.js} +5 -5
  126. package/dist/runner/dsh/client.d.ts +1 -1
  127. package/dist/runner/dsh/client.js +1 -1
  128. package/dist/runner/dsh/runner.js +3 -3
  129. package/dist/runner/kimi/acp/runner.d.ts +4 -4
  130. package/dist/runner/kimi/acp/runner.js +10 -10
  131. package/dist/runner/kimi/acp/translator.d.ts +2 -2
  132. package/dist/runner/kimi/acp/translator.js +5 -5
  133. package/dist/runner/opencode/acp/runner.d.ts +4 -4
  134. package/dist/runner/opencode/acp/runner.js +4 -4
  135. package/dist/runner/opencode/acp/translator.js +2 -2
  136. package/dist/runner/pi/rpc/runner.d.ts +1 -1
  137. package/dist/runner/pi/rpc/runner.js +2 -2
  138. package/dist/runner/pi/rpc/translator.d.ts +1 -2
  139. package/dist/runner/pi/rpc/translator.js +4 -6
  140. package/dist/runner/registry.d.ts +3 -3
  141. package/dist/runner/registry.js +3 -3
  142. package/dist/runner/types.d.ts +1 -1
  143. package/dist/session/claude/session-index.d.ts +13 -1
  144. package/dist/session/claude/session-index.js +21 -6
  145. package/dist/session/claude/session-reader.d.ts +1 -1
  146. package/dist/session/claude/session-reader.js +1 -1
  147. package/dist/session/claude/sessions.js +10 -10
  148. package/dist/session/codex/rollout-reader.d.ts +4 -4
  149. package/dist/session/codex/rollout-reader.js +14 -14
  150. package/dist/session/common/two-pass.js +2 -2
  151. package/dist/session/common/usage-accumulator.d.ts +2 -2
  152. package/dist/session/common/usage-accumulator.js +2 -2
  153. package/dist/session/dsh/sessions.d.ts +1 -1
  154. package/dist/session/dsh/sessions.js +3 -3
  155. package/dist/session/kimi/sessions.d.ts +2 -6
  156. package/dist/session/kimi/sessions.js +13 -19
  157. package/dist/session/opencode/sessions.d.ts +3 -3
  158. package/dist/session/opencode/sessions.js +15 -13
  159. package/dist/session/pi/sessions.js +13 -12
  160. package/dist/session/registry.d.ts +1 -1
  161. package/dist/session/registry.js +1 -1
  162. package/dist/session/session-store.d.ts +3 -4
  163. package/dist/session/session-store.js +3 -5
  164. package/dist/update/index.d.ts +1 -1
  165. package/dist/update/index.js +1 -1
  166. package/dist/update/version-check.d.ts +5 -3
  167. package/dist/update/version-check.js +10 -8
  168. package/dist/workspace/index.d.ts +4 -4
  169. package/dist/workspace/index.js +5 -5
  170. package/package.json +1 -1
@@ -1,21 +1,9 @@
1
1
  import type { SessionStore, SessionReaderRegistry } from '../session/index.js';
2
2
  import type { AppConfig } from '../config/index.js';
3
- import type { Bridge } from '../bridge/index.js';
3
+ import type { Bridge, CommandContext, CommandResult } from '../bridge/index.js';
4
4
  import type { AgentBinding } from '../bridge/queue-manager.js';
5
5
  import type { CloneSession } from '../clone.js';
6
6
  import { type VersionCheckResult, type InstallResult } from '../update/index.js';
7
- interface CommandContext {
8
- userId: string;
9
- chatId: string;
10
- messageId: string;
11
- /** 本轮(装配窗口)全部入站 messageId,`messageId` 是最后一条。见 BridgeContext 同名字段(§B8)。 */
12
- turnMessageIds?: string[];
13
- }
14
- interface CommandResult {
15
- text?: string;
16
- markdown?: string;
17
- card?: object;
18
- }
19
7
  /**
20
8
  * Card-action commands that must run with enqueue({ immediate: true }).
21
9
  * These bypass the serial queue and execute immediately.
@@ -31,7 +19,7 @@ interface CommandResult {
31
19
  * stop — interrupt current run
32
20
  * ls.file — send file only
33
21
  * ws.page — paginate /ws list only
34
- * ws.remove — delete workspace alias only
22
+ * ws.remove — delete cwd alias only
35
23
  * resume.use — set sessionId + agent for correct reader routing
36
24
  * help.* — read-only help commands
37
25
  * order.delete — delete order only
@@ -46,8 +34,8 @@ export interface CardActionPayload {
46
34
  name?: string;
47
35
  runId?: string;
48
36
  sessionId?: string;
37
+ /** 目标工作目录(queue.* 卡片动作定位队列;stop 等卡片回传执行目录)。 */
49
38
  cwd?: string;
50
- workspace?: string;
51
39
  messageId?: string;
52
40
  userId?: string;
53
41
  chatId?: string;
@@ -56,7 +44,7 @@ export interface CardActionPayload {
56
44
  offset?: number;
57
45
  /**
58
46
  * `/ls` 浏览起点(本次 `/ls <dir>` 指定的目录;省略时 = cwd)。
59
- * 卡片上的「返回」按钮回到这里,而不是回到 workspace cwd。
47
+ * 卡片上的「返回」按钮回到这里,而不是回到会话工作目录。
60
48
  */
61
49
  root?: string;
62
50
  /** /resume 列表的 agent 类型。 */
@@ -114,6 +102,18 @@ export declare const APPROVAL_ACTION_CMDS: readonly string[];
114
102
  * index.ts 控制层直返清单的唯一来源(勿在别处复制名单)。
115
103
  */
116
104
  export declare const DIRECT_RETURN_CMDS: ReadonlySet<string>;
105
+ /**
106
+ * 会话 / cwd / agent 变更类卡片动作(单源)。这些动作会改写 sessionStore 的
107
+ * sessionId / cwd / defaultAgent,必须与入站装配器的 700ms 静默窗口定序:
108
+ * 控制层(index.ts)在执行它们之前先 flush 该 user/chat 的装配窗口,保证窗口内
109
+ * 先到的文本消息在本动作之前 commit(绑定动作前的旧状态)。否则窗口内消息会
110
+ * 漂移到动作之后的新状态(2026-10-07 事故:输入「重新构建」后立即点「新会话」,
111
+ * 消息落到新会话)。
112
+ *
113
+ * 文本命令(/new、/cd、/resume、/config)已由 index.ts 命令分支先 flush,
114
+ * 不在此列——只有卡片动作绕过了该分支。
115
+ */
116
+ export declare const SESSION_MUTATING_ACTION_CMDS: ReadonlySet<string>;
117
117
  export declare class CommandRouter {
118
118
  /** Valid agent kinds — single source of truth for resume.use / resume.page / cmdResume. */
119
119
  static readonly VALID_AGENTS: readonly ["claude", "codex", "opencode", "pi", "kimi", "dsh"];
@@ -205,7 +205,7 @@ export declare class CommandRouter {
205
205
  cachePath?: string;
206
206
  bypassCache?: boolean;
207
207
  }) => Promise<VersionCheckResult>;
208
- isNewer?: (current: string, latest: string) => boolean | null;
208
+ compareVersions?: (current: string, latest: string) => -1 | 0 | 1 | null;
209
209
  runInstallLatest?: () => Promise<InstallResult>;
210
210
  };
211
211
  });
@@ -222,7 +222,7 @@ export declare class CommandRouter {
222
222
  /**
223
223
  * Route a message: if it starts with /, handle as command; if it starts with !, execute as bash; otherwise forward to Claude.
224
224
  *
225
- * 命令识别前置条件(2026-09-15 P0 修复):
225
+ * 命令识别前置条件(2026-09-15修复,`inbound-unified-input-design.md` §5.6):
226
226
  * 裸前缀判定会被结构占位符命中 —— SDK 把富文本里的图片渲染成 `![image](img_v3_…)`,
227
227
  * 首字符恰好是 `!`,整段用户消息被当 shell 命令执行(`executeBash "[image](img_v3_…"`)。
228
228
  * 因此命令前缀只在「调用方声明纯文本 + 剥离占位符后非空且无占位符 + 首字符是 / 或 !」
@@ -249,7 +249,7 @@ export declare class CommandRouter {
249
249
  * Routes to the appropriate bridge method based on value.cmd.
250
250
  * Returns a toast response for immediate user feedback.
251
251
  */
252
- /** queue.* 卡片动作通用守卫:workspace/messageId 缺失时回复错误并返回 null。 */
252
+ /** queue.* 卡片动作通用守卫:cwd/messageId 缺失时回复错误并返回 null。 */
253
253
  private queuePayloadOrReply;
254
254
  /** 答案类操作的统一失败反馈:重复投递(同一 nonce 第二次点击)是已生效的
255
255
  * 中性事件,报 error 会误导(首次点击实际已成功)。 */
@@ -304,7 +304,7 @@ export declare class CommandRouter {
304
304
  *
305
305
  * offset 恒重置为 0(新筛选从第 1 页开始)。路径校验与 TOCTOU 兜底照
306
306
  * handleLsPage——校验失败只回错误 toast,绝不动卡片(否则用户看到一张空卡)。
307
- * ls.browse / ls.switch 的 value 里刻意不带 q,换目录即清除筛选(设计文档 §2.3)。
307
+ * ls.browse / ls.switch 的 value 里刻意不带 q,换目录即清除筛选。
308
308
  */
309
309
  private handleLsFilter;
310
310
  /**
@@ -350,17 +350,17 @@ export declare class CommandRouter {
350
350
  internalKey: string;
351
351
  } | null;
352
352
  /**
353
- * W2.8 单源:重建 order/ws 列表卡(不投递,card 进 callback 响应体用)。
353
+ * 单源:重建 order/ws 列表卡(不投递,card 进 callback 响应体用)。
354
354
  * `q` 只服务 ws 卡的关键词筛选;order 卡无此功能,不透传。
355
355
  */
356
356
  private rebuildListCard;
357
357
  /**
358
- * W2.8 单源:「重建列表卡 → updateCardInPlace」原地刷新骨架(列表卡删除/
358
+ * 单源:「重建列表卡 → updateCardInPlace」原地刷新骨架(列表卡删除/
359
359
  * 翻页/移除/排序/筛选动作共用)。返回重建后的卡片;无卡时返回 undefined 且跳过更新。
360
360
  */
361
361
  private refreshListCard;
362
362
  /**
363
- * W2.8 单源:order 三个 input handler(aliasInput/aliasRemove/textInput)
363
+ * 单源:order 三个 input handler(aliasInput/aliasRemove/textInput)
364
364
  * 的公共骨架——校验 orderId → reload+find → mutate → 成功后 toast + raw 卡。
365
365
  * mutate 返回 error 时仅回 error toast,不重渲染。
366
366
  * 注意:本 helper 只服务「toast + card 进响应体」语义(飞书需用响应体原地
@@ -410,7 +410,7 @@ export declare class CommandRouter {
410
410
  */
411
411
  private handleOrderTextInput;
412
412
  /**
413
- * Handle ws.use card action: switch to the workspace, then refresh the /ws
413
+ * Handle ws.use card action: switch to the cwd, then refresh the /ws
414
414
  * list card in place so "recent" sort order is immediately visible.
415
415
  *
416
416
  * Unlike the command-line `/ws use` (which returns text), the card action
@@ -419,7 +419,7 @@ export declare class CommandRouter {
419
419
  */
420
420
  private handleWsUse;
421
421
  /**
422
- * Handle ws.remove: remove the workspace alias and refresh the /ws list card
422
+ * Handle ws.remove: remove the cwd alias and refresh the /ws list card
423
423
  * in place (mirrors handleOrderDelete). Without this the stale alias would
424
424
  * remain visible on the card the user just clicked.
425
425
  */
@@ -472,7 +472,7 @@ export declare class CommandRouter {
472
472
  setNestedValue(target: AppConfig, key: string, value: unknown): void;
473
473
  diffConfig(original: AppConfig, pending: AppConfig): Record<string, string | undefined>;
474
474
  /**
475
- * config 写盘后的运行时传播(P1-6:自 config.save 卡片路径抽出,卡片保存与
475
+ * config 写盘后的运行时传播(自 config.save 卡片路径抽出,卡片保存与
476
476
  * `/config <key> <value>` 文本直写两条路径共用)。
477
477
  *
478
478
  * 1. bridge 运行时值同步:setConfig + idle watchdog timeout;
@@ -480,7 +480,7 @@ export declare class CommandRouter {
480
480
  * 配置值,/status 与真实 run 自相矛盾);
481
481
  * 3. defaultAgent 切换 → 旧 agent session 存 previousSessions、新 agent 恢复
482
482
  * 或清空(等效 /new);
483
- * 4. 当前 agent 配置变更 → syncAgentChoices 并原子写盘(P1-7:禁裸同步写盘,
483
+ * 4. 当前 agent 配置变更 → syncAgentChoices 并原子写盘(禁裸同步写盘,
484
484
  * 写一半崩溃会截断 config.yaml 导致 bridge 起不来)。
485
485
  *
486
486
  * @param updates 以 config 路径形式给出的变更 key(卡片路径来自 diffConfig;
@@ -530,7 +530,7 @@ export declare class CommandRouter {
530
530
  private buildConfigSwitchCard;
531
531
  /**
532
532
  * Whether a session of the given agent kind can be compacted from a resume
533
- * card. Design doc §6.2-2: duck-typing — check if the runner has `runCompact`
533
+ * card. duck-typing — check if the runner has `runCompact`
534
534
  * (codex app-server, kimi acp), instead of hardcoding agentKind === 'codex'.
535
535
  */
536
536
  private canCompactSession;
@@ -556,7 +556,7 @@ export declare class CommandRouter {
556
556
  * @param offset 分页起点(条目数)
557
557
  * @param rootDir 浏览起点:卡片「返回」按钮回到这里。省略时默认 = 本次列出的
558
558
  * 目录(`/ls <dir>` 的起点即该目录),因此「返回」不会把用户
559
- * 丢回 workspace cwd(用户明确反馈过)。
559
+ * 丢回 工作目录(用户明确反馈过)。
560
560
  * @param q 关键词筛选:只匹配**当前层**条目名(不递归),大小写不敏感。
561
561
  * 省略/空 = 无筛选。
562
562
  */
@@ -584,7 +584,7 @@ export declare class CommandRouter {
584
584
  */
585
585
  cmdWs(args: string[], ctx: CommandContext, offset?: number, q?: string): CommandResult;
586
586
  /**
587
- * L3: degraded card when a session's export is non-empty but unparseable
587
+ * degraded card when a session's export is non-empty but unparseable
588
588
  * (truncated by opencode's pipe cap on huge sessions, or otherwise corrupt).
589
589
  * The session exists, so reuse listSessions metadata (title) instead of the
590
590
  * misleading "未找到". Reuses the same card-builder helpers (markdownDiv) as