lark-remote 0.5.18 → 0.5.20

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 (123) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/bridge/approval-actions.d.ts +1 -1
  3. package/dist/bridge/approval-actions.js +1 -1
  4. package/dist/bridge/bash-run.d.ts +71 -0
  5. package/dist/bridge/bash-run.js +217 -0
  6. package/dist/bridge/compact.d.ts +155 -0
  7. package/dist/bridge/compact.js +450 -0
  8. package/dist/bridge/final-usage.js +4 -4
  9. package/dist/bridge/inbound-media.js +1 -1
  10. package/dist/bridge/index.d.ts +120 -119
  11. package/dist/bridge/index.js +257 -695
  12. package/dist/bridge/job-watch.d.ts +68 -0
  13. package/dist/bridge/job-watch.js +146 -0
  14. package/dist/bridge/queue-manager.d.ts +3 -3
  15. package/dist/bridge/queue-manager.js +10 -29
  16. package/dist/card/approval-render.d.ts +2 -2
  17. package/dist/card/approval-render.js +109 -97
  18. package/dist/card/bash-card-session.js +2 -0
  19. package/dist/card/card-budget.js +1 -1
  20. package/dist/card/card-helpers.d.ts +3 -3
  21. package/dist/card/card-helpers.js +6 -6
  22. package/dist/card/card-session.d.ts +17 -0
  23. package/dist/card/card-session.js +35 -0
  24. package/dist/card/final-answer-file.js +1 -1
  25. package/dist/card/run-card-session.js +2 -0
  26. package/dist/card/run-renderer.d.ts +3 -3
  27. package/dist/card/run-renderer.js +77 -102
  28. package/dist/card/run-state.d.ts +35 -8
  29. package/dist/card/run-state.js +117 -90
  30. package/dist/card/tool-render.d.ts +1 -1
  31. package/dist/card/tool-render.js +1 -1
  32. package/dist/card/usage-format.d.ts +12 -0
  33. package/dist/card/usage-format.js +8 -3
  34. package/dist/cli.js +15 -3
  35. package/dist/clone.js +2 -2
  36. package/dist/config/codex-config.js +130 -106
  37. package/dist/config/index.d.ts +16 -2
  38. package/dist/config/index.js +23 -8
  39. package/dist/connector/index.js +6 -6
  40. package/dist/error-classification.js +3 -2
  41. package/dist/inbound/placeholder.d.ts +1 -1
  42. package/dist/inbound/placeholder.js +1 -1
  43. package/dist/index.js +203 -133
  44. package/dist/logger/index.js +6 -6
  45. package/dist/message-handlers.d.ts +0 -5
  46. package/dist/message-handlers.js +4 -2
  47. package/dist/model-catalog.d.ts +2 -2
  48. package/dist/model-catalog.js +3 -8
  49. package/dist/platform/identity.js +1 -1
  50. package/dist/platform/path.d.ts +1 -1
  51. package/dist/platform/path.js +1 -1
  52. package/dist/platform/sleep-blocker.js +1 -1
  53. package/dist/platform/terminator-win32.js +2 -1
  54. package/dist/router/commands/resume.js +2 -20
  55. package/dist/router/config/dsh.d.ts +4 -8
  56. package/dist/router/config/dsh.js +3 -10
  57. package/dist/router/config/kimi.js +1 -1
  58. package/dist/router/config/types.d.ts +1 -1
  59. package/dist/router/config-diff.js +1 -1
  60. package/dist/router/index.d.ts +56 -11
  61. package/dist/router/index.js +222 -202
  62. package/dist/runner/claude/session.d.ts +1 -1
  63. package/dist/runner/claude/session.js +6 -4
  64. package/dist/runner/codex/app-server/runner.d.ts +9 -2
  65. package/dist/runner/codex/app-server/runner.js +30 -25
  66. package/dist/runner/codex/app-server/translator.d.ts +0 -5
  67. package/dist/runner/codex/app-server/translator.js +4 -17
  68. package/dist/runner/common/acp/acp-approval.d.ts +1 -1
  69. package/dist/runner/common/acp/acp-approval.js +1 -1
  70. package/dist/runner/common/acp/base-acp-runner.d.ts +5 -2
  71. package/dist/runner/common/acp/base-acp-runner.js +26 -65
  72. package/dist/runner/common/acp/base-translator.d.ts +12 -2
  73. package/dist/runner/common/acp/base-translator.js +31 -9
  74. package/dist/runner/common/acp/protocol-types.d.ts +1 -1
  75. package/dist/runner/common/acp/protocol-types.js +2 -2
  76. package/dist/runner/common/connection-based-runner.d.ts +32 -1
  77. package/dist/runner/common/connection-based-runner.js +32 -2
  78. package/dist/runner/common/jsonrpc/connection-manager.d.ts +2 -2
  79. package/dist/runner/common/jsonrpc/connection-manager.js +4 -4
  80. package/dist/runner/common/spawning-runner.d.ts +1 -1
  81. package/dist/runner/common/spawning-runner.js +1 -1
  82. package/dist/runner/dsh/catalog-probe.d.ts +17 -0
  83. package/dist/runner/dsh/catalog-probe.js +10 -0
  84. package/dist/runner/dsh/client.d.ts +13 -8
  85. package/dist/runner/dsh/client.js +23 -15
  86. package/dist/runner/dsh/exit-cancel.d.ts +2 -2
  87. package/dist/runner/dsh/exit-cancel.js +2 -2
  88. package/dist/runner/dsh/inflight.d.ts +1 -1
  89. package/dist/runner/dsh/inflight.js +1 -1
  90. package/dist/runner/dsh/runner.d.ts +48 -2
  91. package/dist/runner/dsh/runner.js +288 -199
  92. package/dist/runner/dsh/translator.d.ts +1 -1
  93. package/dist/runner/dsh/translator.js +1 -1
  94. package/dist/runner/index.d.ts +1 -1
  95. package/dist/runner/kimi/acp/runner.d.ts +1 -2
  96. package/dist/runner/kimi/acp/runner.js +1 -2
  97. package/dist/runner/kimi/acp/translator.d.ts +1 -1
  98. package/dist/runner/kimi/acp/translator.js +3 -4
  99. package/dist/runner/opencode/acp/runner.d.ts +2 -2
  100. package/dist/runner/opencode/acp/runner.js +4 -4
  101. package/dist/runner/pi/rpc/protocol-types.d.ts +1 -1
  102. package/dist/runner/pi/rpc/protocol-types.js +1 -1
  103. package/dist/runner/pi/rpc/runner.d.ts +3 -0
  104. package/dist/runner/pi/rpc/runner.js +27 -42
  105. package/dist/runner/types.d.ts +25 -8
  106. package/dist/runner/types.js +1 -1
  107. package/dist/session/claude/sessions.d.ts +45 -0
  108. package/dist/session/claude/sessions.js +97 -71
  109. package/dist/session/codex/rollout-reader.js +4 -4
  110. package/dist/session/common/throw-session-list-error.d.ts +10 -0
  111. package/dist/session/common/throw-session-list-error.js +16 -0
  112. package/dist/session/dsh/sessions.js +11 -5
  113. package/dist/session/kimi/sessions.d.ts +40 -1
  114. package/dist/session/kimi/sessions.js +244 -192
  115. package/dist/session/opencode/sessions.d.ts +153 -1
  116. package/dist/session/opencode/sessions.js +354 -321
  117. package/dist/session/pi/sessions.js +4 -5
  118. package/dist/session/session-store.d.ts +1 -1
  119. package/dist/session/session-store.js +1 -1
  120. package/dist/update/version-check.js +2 -1
  121. package/dist/workspace/index.d.ts +1 -1
  122. package/dist/workspace/index.js +1 -1
  123. package/package.json +1 -1
@@ -3,6 +3,7 @@ import path from 'node:path';
3
3
  import os from 'node:os';
4
4
  import { findJsonlLine } from '../common/jsonl.js';
5
5
  import { scanJsonlOnce, tailOffsetAfter, scanTailEvents } from '../common/two-pass.js';
6
+ import { throwSessionListError } from '../common/throw-session-list-error.js';
6
7
  import { extractContentBlocks } from '../common/content-blocks.js';
7
8
  import { UsageAccumulator, contextWindowOccupancy, cumulativeUsageFields, } from '../common/usage-accumulator.js';
8
9
  import { isStale } from '../common/constants.js';
@@ -63,7 +64,7 @@ function extractPiText(content) {
63
64
  * dominates displayTitle and squeezes out the user's actual words.
64
65
  * Replace the whole `<skill>…</skill>` block with `skill:x`, preserving any
65
66
  * trailing real text. Falls back to the original text when no skill block
66
- * is present (or the block is malformed/unclosed). Regression 2026-07-13.
67
+ * is present (or the block is malformed/unclosed).
67
68
  */
68
69
  function compressSkillInjection(text) {
69
70
  return text
@@ -193,7 +194,7 @@ function piScalarScan(filePath) {
193
194
  const text = extractPiText(msg.content);
194
195
  // Compress skill-injection bodies so the "最近输入" label shows what
195
196
  // the user invoked (skill:x) + any trailing real input, not a
196
- // truncated SKILL.md head. Regression 2026-07-13.
197
+ // truncated SKILL.md head.
197
198
  if (text)
198
199
  lastUserText = compressSkillInjection(text);
199
200
  }
@@ -367,9 +368,7 @@ export class PiSessionReader {
367
368
  if (err.code === 'ENOENT') {
368
369
  return [];
369
370
  }
370
- getLogger().error(`[pi-session-reader] listSessions failed: ${err}`);
371
- const msg = err instanceof Error ? err.message : String(err);
372
- throw new Error(`pi session list 读取失败: ${msg}`, { cause: err });
371
+ throwSessionListError('pi', err);
373
372
  }
374
373
  const sessions = [];
375
374
  for (const f of files) {
@@ -30,7 +30,7 @@ export declare class SessionStore {
30
30
  private sessions;
31
31
  private readonly persistPath?;
32
32
  /**
33
- * 进程内会话代际(2026-08-09 /new 被在途 run init 写回撤销事故):
33
+ * 进程内会话代际(防 /new 被在途 run init 写回撤销):
34
34
  * 每次「用户意图移动 session 指针」+1。system.init 写回通道不 bump。
35
35
  * Bridge 在 run 启动时快照 epoch,init 写回前比较——不一致说明 /new、
36
36
  * /cd、/resume 等在 run 在途时移动了指针,该 run 的写回是 stale 的,丢弃。
@@ -20,7 +20,7 @@ export class SessionStore {
20
20
  sessions = new Map();
21
21
  persistPath;
22
22
  /**
23
- * 进程内会话代际(2026-08-09 /new 被在途 run init 写回撤销事故):
23
+ * 进程内会话代际(防 /new 被在途 run init 写回撤销):
24
24
  * 每次「用户意图移动 session 指针」+1。system.init 写回通道不 bump。
25
25
  * Bridge 在 run 启动时快照 epoch,init 写回前比较——不一致说明 /new、
26
26
  * /cd、/resume 等在 run 在途时移动了指针,该 run 的写回是 stale 的,丢弃。
@@ -99,7 +99,8 @@ function readCache(cachePath) {
99
99
  return null;
100
100
  return cached;
101
101
  }
102
- catch {
102
+ catch (err) {
103
+ getLogger().debug('[update] version cache unreadable, refetching:', err);
103
104
  return null;
104
105
  }
105
106
  }
@@ -11,7 +11,7 @@ export interface WorkspaceEntry {
11
11
  * mid-write cannot leave a truncated JSON file. On load, a corrupt file
12
12
  * is treated as empty (with a warning) so the lark-remote can still start.
13
13
  *
14
- * lastUsedAt 语义(2026-08-19 语义对齐):保存(save)与使用(use/touch)
14
+ * lastUsedAt 语义:保存(save)与使用(use/touch)
15
15
  * 都会把时间戳更新为当前时间。save 内部调用 touch,保证「最近使用」排序
16
16
  * 对新保存的 cwd 同样生效(新条目应排在列表最前,而非沉底)。
17
17
  * 同一毫秒内连续操作时 touch 会用 max+1 保证严格递增,避免 Date.now 相同
@@ -10,7 +10,7 @@ import { getLogger } from '../logger/index.js';
10
10
  * mid-write cannot leave a truncated JSON file. On load, a corrupt file
11
11
  * is treated as empty (with a warning) so the lark-remote can still start.
12
12
  *
13
- * lastUsedAt 语义(2026-08-19 语义对齐):保存(save)与使用(use/touch)
13
+ * lastUsedAt 语义:保存(save)与使用(use/touch)
14
14
  * 都会把时间戳更新为当前时间。save 内部调用 touch,保证「最近使用」排序
15
15
  * 对新保存的 cwd 同样生效(新条目应排在列表最前,而非沉底)。
16
16
  * 同一毫秒内连续操作时 touch 会用 max+1 保证严格递增,避免 Date.now 相同
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lark-remote",
3
- "version": "0.5.18",
3
+ "version": "0.5.20",
4
4
  "description": "Feishu (Lark) private-chat bridge to local coding agents — Claude Code / Codex / opencode / pi / kimi, with live-streaming CardKit 2.0 cards",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",