lark-remote 0.5.12 → 0.5.14

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 (172) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/README.en.md +1 -14
  3. package/README.md +1 -14
  4. package/dist/agent-kinds.d.ts +27 -0
  5. package/dist/agent-kinds.js +38 -0
  6. package/dist/bridge/approval-actions.d.ts +95 -0
  7. package/dist/bridge/approval-actions.js +104 -0
  8. package/dist/bridge/approval-coordinator.d.ts +1 -0
  9. package/dist/bridge/approval-coordinator.js +12 -24
  10. package/dist/bridge/final-usage.d.ts +8 -17
  11. package/dist/bridge/final-usage.js +1 -18
  12. package/dist/bridge/index.d.ts +52 -38
  13. package/dist/bridge/index.js +255 -433
  14. package/dist/bridge/queue-manager.d.ts +25 -1
  15. package/dist/bridge/queue-manager.js +179 -160
  16. package/dist/bridge/run-approval.d.ts +16 -0
  17. package/dist/bridge/run-approval.js +41 -0
  18. package/dist/bridge/run-usage.d.ts +32 -0
  19. package/dist/bridge/run-usage.js +87 -0
  20. package/dist/bridge/session-writeback.d.ts +19 -0
  21. package/dist/bridge/session-writeback.js +36 -0
  22. package/dist/card/approval-render.d.ts +3 -2
  23. package/dist/card/approval-render.js +3 -2
  24. package/dist/card/bash-card-session.js +2 -5
  25. package/dist/{router → card}/card-helpers.d.ts +7 -7
  26. package/dist/{router → card}/card-helpers.js +8 -8
  27. package/dist/card/card-session.d.ts +6 -2
  28. package/dist/card/card-session.js +28 -28
  29. package/dist/card/card-shared.d.ts +4 -4
  30. package/dist/card/card-shared.js +4 -10
  31. package/dist/card/collapsible.js +3 -2
  32. package/dist/card/final-answer-overflow.d.ts +1 -0
  33. package/dist/card/final-answer-overflow.js +46 -0
  34. package/dist/card/run-card-session.d.ts +2 -2
  35. package/dist/card/run-card-session.js +4 -9
  36. package/dist/card/run-renderer.d.ts +14 -0
  37. package/dist/card/run-renderer.js +126 -23
  38. package/dist/card/run-state.d.ts +40 -51
  39. package/dist/card/run-state.js +96 -34
  40. package/dist/card/usage-format.d.ts +30 -0
  41. package/dist/{router → card}/usage-format.js +3 -10
  42. package/dist/clone.js +6 -1
  43. package/dist/config/codex-config.js +4 -4
  44. package/dist/config/index.d.ts +18 -20
  45. package/dist/config/index.js +6 -20
  46. package/dist/config/pi-config.js +6 -4
  47. package/dist/connector/index.d.ts +2 -4
  48. package/dist/connector/index.js +7 -11
  49. package/dist/{runner/dsh → dsh}/auth.js +3 -4
  50. package/dist/dsh/home.d.ts +2 -0
  51. package/dist/dsh/home.js +8 -0
  52. package/dist/dsh/protocol.d.ts +9 -0
  53. package/dist/dsh/protocol.js +61 -0
  54. package/dist/inbound/turn-assembler.js +6 -0
  55. package/dist/index.js +25 -414
  56. package/dist/message-handlers.d.ts +26 -0
  57. package/dist/message-handlers.js +275 -0
  58. package/dist/model-catalog.d.ts +14 -0
  59. package/dist/model-catalog.js +25 -0
  60. package/dist/platform/path.d.ts +9 -0
  61. package/dist/platform/path.js +18 -0
  62. package/dist/router/active-run-usage.d.ts +4 -0
  63. package/dist/router/active-run-usage.js +12 -0
  64. package/dist/router/card-action-payload.d.ts +1 -1
  65. package/dist/router/card-action-payload.js +1 -1
  66. package/dist/router/commands/ls.d.ts +9 -0
  67. package/dist/router/commands/ls.js +243 -0
  68. package/dist/router/commands/order.d.ts +12 -0
  69. package/dist/router/commands/order.js +178 -0
  70. package/dist/router/commands/resume.d.ts +48 -0
  71. package/dist/router/commands/resume.js +246 -0
  72. package/dist/router/commands/ws.d.ts +15 -0
  73. package/dist/router/commands/ws.js +189 -0
  74. package/dist/router/config/claude.js +5 -4
  75. package/dist/router/config/codex.js +2 -6
  76. package/dist/router/config/common/render.d.ts +5 -1
  77. package/dist/router/config/common/render.js +6 -13
  78. package/dist/router/config/common/turn-idle.d.ts +2 -0
  79. package/dist/router/config/common/turn-idle.js +9 -0
  80. package/dist/router/config/dsh.d.ts +1 -1
  81. package/dist/router/config/index.d.ts +1 -1
  82. package/dist/router/config/kimi.js +2 -6
  83. package/dist/router/config/opencode.js +2 -6
  84. package/dist/router/config/types.d.ts +11 -3
  85. package/dist/router/index.d.ts +55 -33
  86. package/dist/router/index.js +233 -1376
  87. package/dist/router/paging.d.ts +13 -0
  88. package/dist/router/paging.js +20 -0
  89. package/dist/router/path-validation.d.ts +27 -0
  90. package/dist/router/path-validation.js +45 -0
  91. package/dist/runner/agent-choices-common.d.ts +1 -1
  92. package/dist/runner/claude/runner.d.ts +23 -6
  93. package/dist/runner/claude/runner.js +6 -20
  94. package/dist/runner/claude/session.js +1 -1
  95. package/dist/runner/codex/app-server/runner.d.ts +3 -1
  96. package/dist/runner/codex/app-server/translator.d.ts +13 -0
  97. package/dist/runner/codex/app-server/translator.js +114 -151
  98. package/dist/runner/common/acp/base-acp-runner.d.ts +3 -1
  99. package/dist/runner/common/acp/base-translator.d.ts +3 -8
  100. package/dist/runner/common/acp/base-translator.js +16 -7
  101. package/dist/runner/common/connection-based-runner.d.ts +3 -1
  102. package/dist/runner/common/jsonrpc/transport.js +17 -7
  103. package/dist/runner/common/spawning-runner.js +10 -4
  104. package/dist/runner/common/turn-started.d.ts +2 -0
  105. package/dist/runner/common/turn-started.js +10 -0
  106. package/dist/runner/dsh/client.d.ts +2 -10
  107. package/dist/runner/dsh/client.js +13 -220
  108. package/dist/runner/dsh/daemon.d.ts +0 -2
  109. package/dist/runner/dsh/daemon.js +9 -7
  110. package/dist/runner/dsh/errors.d.ts +5 -0
  111. package/dist/runner/dsh/errors.js +11 -0
  112. package/dist/runner/dsh/exit-cancel.d.ts +0 -2
  113. package/dist/runner/dsh/exit-cancel.js +2 -2
  114. package/dist/runner/dsh/inflight.d.ts +0 -2
  115. package/dist/runner/dsh/inflight.js +1 -1
  116. package/dist/runner/dsh/mux-stream.d.ts +26 -0
  117. package/dist/runner/dsh/mux-stream.js +176 -0
  118. package/dist/runner/dsh/runner.d.ts +21 -1
  119. package/dist/runner/dsh/runner.js +76 -73
  120. package/dist/runner/dsh/translator.d.ts +1 -11
  121. package/dist/runner/dsh/translator.js +1 -1
  122. package/dist/runner/index.d.ts +1 -1
  123. package/dist/runner/kimi/acp/runner.d.ts +22 -1
  124. package/dist/runner/kimi/acp/runner.js +83 -60
  125. package/dist/runner/kimi/acp/translator.js +1 -12
  126. package/dist/runner/opencode/acp/error-monitor.d.ts +11 -0
  127. package/dist/runner/opencode/acp/error-monitor.js +31 -2
  128. package/dist/runner/opencode/acp/runner.d.ts +3 -1
  129. package/dist/runner/opencode/acp/translator.js +1 -12
  130. package/dist/runner/pi/rpc/runner.d.ts +2 -1
  131. package/dist/runner/pi/rpc/translator.d.ts +2 -8
  132. package/dist/runner/pi/rpc/translator.js +2 -7
  133. package/dist/runner/probe.d.ts +1 -1
  134. package/dist/runner/probe.js +10 -9
  135. package/dist/runner/registry.d.ts +2 -20
  136. package/dist/runner/registry.js +0 -32
  137. package/dist/runner/types.d.ts +37 -155
  138. package/dist/runner/types.js +4 -24
  139. package/dist/session/claude/session-index.d.ts +11 -4
  140. package/dist/session/claude/session-index.js +34 -10
  141. package/dist/session/claude/session-reader.d.ts +1 -1
  142. package/dist/session/claude/sessions.d.ts +2 -2
  143. package/dist/session/claude/sessions.js +41 -26
  144. package/dist/session/codex/rollout-reader.d.ts +1 -1
  145. package/dist/session/codex/rollout-reader.js +14 -13
  146. package/dist/session/codex/sessions.d.ts +1 -1
  147. package/dist/session/codex/sessions.js +4 -2
  148. package/dist/session/common/jsonl.js +7 -1
  149. package/dist/session/common/pagination.d.ts +2 -0
  150. package/dist/session/common/pagination.js +1 -1
  151. package/dist/session/common/recency.d.ts +6 -0
  152. package/dist/session/common/recency.js +7 -5
  153. package/dist/session/common/two-pass.d.ts +1 -1
  154. package/dist/session/common/usage-accumulator.d.ts +1 -1
  155. package/dist/session/dsh/sessions.d.ts +1 -1
  156. package/dist/session/dsh/sessions.js +37 -12
  157. package/dist/session/kimi/sessions.d.ts +1 -1
  158. package/dist/session/kimi/sessions.js +37 -10
  159. package/dist/session/opencode/sessions.d.ts +1 -1
  160. package/dist/session/opencode/sessions.js +53 -48
  161. package/dist/session/pi/sessions.d.ts +1 -1
  162. package/dist/session/pi/sessions.js +23 -9
  163. package/dist/session/registry.d.ts +2 -1
  164. package/dist/session/session-store.d.ts +1 -2
  165. package/dist/session/session-store.js +14 -7
  166. package/dist/session-contract.d.ts +178 -0
  167. package/dist/session-contract.js +9 -0
  168. package/package.json +1 -1
  169. package/dist/router/usage-format.d.ts +0 -60
  170. /package/dist/{runner/dsh → dsh}/auth.d.ts +0 -0
  171. /package/dist/{runner/dsh → dsh}/types.d.ts +0 -0
  172. /package/dist/{runner/dsh → dsh}/types.js +0 -0
@@ -4,7 +4,8 @@ import type { SessionReaderRegistry, SessionStore } from '../session/index.js';
4
4
  import type { AppConfig } from '../config/index.js';
5
5
  import { type RunCardChannel } from '../card/run-card-session.js';
6
6
  import { type RunTerminal } from '../card/run-state.js';
7
- import { type AgentKind, type StopOutcome } from '../runner/types.js';
7
+ import type { AgentKind } from '../agent-kinds.js';
8
+ import { type StopOutcome } from '../runner/types.js';
8
9
  import { QueueManager, type QueuedTask, type EnqueueOptions, type AgentBinding, type ExecutingInfo } from './queue-manager.js';
9
10
  import type { InboundMediaPayload } from '../connector/index.js';
10
11
  import type { MediaOutcome } from '../inbound/turn.js';
@@ -14,7 +15,7 @@ import type { MediaOutcome } from '../inbound/turn.js';
14
15
  * through it. Declared here so tests can satisfy it structurally without
15
16
  * `as unknown as` casts.
16
17
  */
17
- interface BridgeChannel extends RunCardChannel {
18
+ export interface BridgeChannel extends RunCardChannel {
18
19
  sendWithRetry(chatId: string, input: {
19
20
  text: string;
20
21
  } | {
@@ -149,6 +150,8 @@ export declare class Bridge {
149
150
  private activeRuns;
150
151
  /** Approval coordinators keyed by runId. */
151
152
  private approvalCoordinators;
153
+ /** 审批卡动作的实现(只读上面那张表;见 approval-actions.ts)。 */
154
+ private approvalActions;
152
155
  /**
153
156
  * 最近若干次已完成的、runner 有 runCompact 的 run(cwd → runId → 记录)。
154
157
  * run 结束后 activeRuns 已清空,而终态卡上的 Compact 按钮只带 runId,
@@ -369,10 +372,16 @@ export declare class Bridge {
369
372
  private interruptActiveRun;
370
373
  /** Send a result message to the user (§7). Returns true on success, false on failure. */
371
374
  sendResult(result: CommandResult, ctx: CommandContext): Promise<boolean>;
375
+ /**
376
+ * Deliver a final answer that cannot fit in the run card. Plain text avoids
377
+ * markdown parser limits and preserves every character; sequence labels make
378
+ * multi-message delivery unambiguous.
379
+ */
380
+ private sendFinalAnswerOverflow;
372
381
  /**
373
382
  * Update an existing card in place (原地更新) instead of sending a new one.
374
383
  *
375
- * Used by /config cardAction handlers (config.toggle/set/input/save) so the
384
+ * Used by /config cardAction handlers (config.set/input/save) so the
376
385
  * user sees the card refresh on the same message bubble rather than getting
377
386
  * a new card per click — same-message-bubble update pattern.
378
387
  *
@@ -462,6 +471,38 @@ export declare class Bridge {
462
471
  * 队列继续推进(否则一个挂死的 run 永久堵住后续消息)。
463
472
  */
464
473
  private startIdleWatchdog;
474
+ /**
475
+ * result 事件的 pre-init 守卫(§9.22)。
476
+ *
477
+ * Claude CLI `--resume` 会在 system.init 之前先吐一条**上一轮**的陈旧 result。
478
+ * 认了它就会过早置 sawResult / 抓错 usage / 让 run-state reducer 提前进入
479
+ * finalizing(reducer 用 sessionId===undefined 守卫,同一条红线)。本轮真正的
480
+ * result 在 system.init 之后才到。
481
+ *
482
+ * 例外:app-server runner(usageAuthority==='live')的 init 是 runner 自己补发
483
+ * 的 synthetic init(2026-08-13 修复)。此分支保留为防御性兜底:live runner 若
484
+ * 在无 init 时发出 result(旧构建等),session 写回照常执行,但 sawResult 不置
485
+ * 真——卡片不会把半初始化的 run 当作已收尾。
486
+ *
487
+ * @param dropFromCard 该 result 是陈旧重放,不得进卡片(调用方 continue 跳过 push)
488
+ */
489
+ private observeResultEvent;
490
+ /**
491
+ * 审批三事件的派发(requested / resolved / view_updated)。
492
+ *
493
+ * coordinator 一 run 一个,首次 requested 时惰性建好并登记,`finally` 里统一
494
+ * onTurnEnded + 摘除。
495
+ */
496
+ private dispatchApprovalEvent;
497
+ /**
498
+ * 进程退出(for-await 自然结束)后的终态矩阵——它是本轮的唯一终态触发源。
499
+ *
500
+ * 1) finalizing(result 已收到)→ 三态映射 + usage meta
501
+ * 2) running(未收到 result)→ 错误路径;pre-init 终态优先当唯一线索
502
+ * 3) 已终态 + sawResult → 首终态不动,仅补 usage meta
503
+ * 4) 已终态且未收到 result(如 spawn 失败后 interrupted)→ 无 usage 可补,跳过
504
+ */
505
+ private finishRunAfterStream;
465
506
  /**
466
507
  * Step 2 of forwardToClaude: Run the agent and consume its event stream.
467
508
  * Handles idle watchdog, event processing, session sync, and state transitions.
@@ -488,45 +529,28 @@ export declare class Bridge {
488
529
  * find and return to this session without scrolling up.
489
530
  */
490
531
  private sendCompletionNotificationCard;
491
- /**
492
- * Resolve the ApprovalCoordinator for a run, or throw the standard
493
- * "已结束" error. Shared preamble of all approval card-action handlers.
494
- */
495
- private withCoordinator;
496
- /**
497
- * Handle an approval response from a card button click.
498
- * Routes to the ApprovalCoordinator for the given run.
499
- */
532
+ /** 审批响应(卡片按钮)→ ApprovalCoordinator.submit。 */
500
533
  handleApprovalRespond(opts: {
501
534
  runId: string;
502
535
  requestId: number | string;
503
536
  decision: string;
504
537
  nonce: string;
505
538
  }): Promise<void>;
506
- /**
507
- * 计划审批修改意见(ExitPlanMode 输入框):记录到 coordinator 并回流卡片。
508
- * 「拒绝并附意见」/「批准并采纳修改」按钮复用该文本。
509
- */
539
+ /** 计划审批修改意见(ExitPlanMode 输入框)→ coordinator.planFeedback。 */
510
540
  handleApprovalPlanFeedback(opts: {
511
541
  runId: string;
512
542
  requestId: number | string;
513
543
  text: string;
514
544
  nonce: string;
515
545
  }): Promise<void>;
516
- /**
517
- * Handle a permission toggle from a card button click.
518
- * Routes to the ApprovalCoordinator for the given run.
519
- */
546
+ /** 权限条目勾选(卡片按钮)→ coordinator.togglePerm。 */
520
547
  handleApprovalToggle(opts: {
521
548
  runId: string;
522
549
  requestId: number | string;
523
550
  permId: string;
524
551
  selected?: boolean;
525
552
  }): Promise<void>;
526
- /**
527
- * Claude AskUserQuestion 选项点击(单选即时提交 / 多选切换勾选)。
528
- * 路由到 ApprovalCoordinator.toggleAnswer。
529
- */
553
+ /** AskUserQuestion 选项点击 → coordinator.toggleAnswer。 */
530
554
  handleApprovalAnswer(opts: {
531
555
  runId: string;
532
556
  requestId: number | string;
@@ -534,20 +558,14 @@ export declare class Bridge {
534
558
  option: string;
535
559
  nonce: string;
536
560
  }): Promise<void>;
537
- /**
538
- * Claude AskUserQuestion 多选问题的「提交答案」按钮。
539
- * 路由到 ApprovalCoordinator.submitAnswers。
540
- */
561
+ /** AskUserQuestion 多选「提交答案」→ coordinator.submitAnswers。 */
541
562
  handleApprovalAnswerSubmit(opts: {
542
563
  runId: string;
543
564
  requestId: number | string;
544
565
  questionIndex: number;
545
566
  nonce: string;
546
567
  }): Promise<void>;
547
- /**
548
- * Claude AskUserQuestion 自定义答案(Other):自由文本直接
549
- * 作为该单选问题的答案提交。路由到 ApprovalCoordinator.answerCustom。
550
- */
568
+ /** AskUserQuestion 自定义答案(Other)→ coordinator.answerCustom。 */
551
569
  handleApprovalAnswerCustom(opts: {
552
570
  runId: string;
553
571
  requestId: number | string;
@@ -555,11 +573,7 @@ export declare class Bridge {
555
573
  text: string;
556
574
  nonce: string;
557
575
  }): Promise<void>;
558
- /**
559
- * Codex AskUserQuestion 补充说明(user_note,2026-08-18 live 验证模型理解
560
- * "user_note: <text>" 条目):记录到 coordinator,随答案一起提交。
561
- * 路由到 ApprovalCoordinator.answerNote。
562
- */
576
+ /** AskUserQuestion 补充说明(user_note)→ coordinator.answerNote。 */
563
577
  handleApprovalAnswerNote(opts: {
564
578
  runId: string;
565
579
  requestId: number | string;
@@ -609,7 +623,7 @@ export declare class Bridge {
609
623
  runId?: string;
610
624
  }, ctx: CommandContext): Promise<void>;
611
625
  /**
612
- * §5.3: kimi 压缩在途检测——reader 鸭子实现 `readCompactionState` 时,若
626
+ * §5.3: kimi 压缩在途检测——reader 实现契约的 `readCompactionState` 时,若
613
627
  * wire 状态机判定当前有未终结的压缩(最后一次 begin 无 terminal 记录),
614
628
  * 直接回文本「已有一次 Compact 正在进行」并返回 true(调用方不开卡、不发
615
629
  * session/prompt)。codex/claude 等 reader 无此方法 → 返回 false,行为不变。