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
@@ -15,7 +15,7 @@
15
15
  * - isSessionActive: use `updated` timestamp with 1 hour stale window.
16
16
  * - Simple memory cache with TTL.
17
17
  */
18
- import type { AgentSession, AgentSessionReader, SessionContent } from '../../session-contract.js';
18
+ import type { AgentSession, AgentSessionReader, AgentSessionUsage, SessionContent } from '../../session-contract.js';
19
19
  interface OpencodeSessionReaderOptions {
20
20
  /** Path to the opencode binary. Defaults to `opencode`. */
21
21
  binary?: string;
@@ -28,6 +28,145 @@ interface OpencodeSessionReaderOptions {
28
28
  */
29
29
  captureExport?: (sessionId: string) => string;
30
30
  }
31
+ /** v1 export 单条消息(外部 JSON 契约,导出供扫描累积器单测构造)。 */
32
+ export interface OpencodeExportMessage {
33
+ info: {
34
+ role: 'user' | 'assistant';
35
+ time?: {
36
+ created: number;
37
+ };
38
+ id: string;
39
+ sessionID: string;
40
+ };
41
+ parts: Array<{
42
+ type: string;
43
+ text?: string;
44
+ tool?: string;
45
+ callID?: string;
46
+ state?: {
47
+ status: string;
48
+ input?: Record<string, unknown>;
49
+ output?: string;
50
+ error?: string;
51
+ };
52
+ reason?: string;
53
+ tokens?: {
54
+ total: number;
55
+ input: number;
56
+ output: number;
57
+ reasoning: number;
58
+ cache?: {
59
+ read: number;
60
+ write: number;
61
+ };
62
+ };
63
+ }>;
64
+ }
65
+ /**
66
+ * v2 `session export` messages are flattened: `{type, text, content}` rather
67
+ * than v1's `{info, parts}` envelope. Keep the v2 types local to this reader —
68
+ * they are an external JSON contract, not an internal model.
69
+ */
70
+ /** v2 export 单条消息(外部 JSON 契约,导出供扫描累积器单测构造)。 */
71
+ export interface OpencodeV2Message {
72
+ id?: string;
73
+ type: string;
74
+ time?: {
75
+ created?: number;
76
+ completed?: number;
77
+ };
78
+ text?: string;
79
+ content?: Array<OpencodeV2ContentPart>;
80
+ tokens?: {
81
+ input: number;
82
+ output: number;
83
+ reasoning: number;
84
+ cache?: {
85
+ read: number;
86
+ write: number;
87
+ };
88
+ };
89
+ error?: {
90
+ type?: string;
91
+ message?: string;
92
+ };
93
+ command?: string;
94
+ output?: string;
95
+ callID?: string;
96
+ summary?: string;
97
+ }
98
+ interface OpencodeV2ContentPart {
99
+ type: string;
100
+ text?: string;
101
+ id?: string;
102
+ name?: string;
103
+ state?: {
104
+ status?: string;
105
+ input?: unknown;
106
+ content?: Array<{
107
+ type?: string;
108
+ text?: string;
109
+ content?: {
110
+ type?: string;
111
+ text?: string;
112
+ };
113
+ }>;
114
+ error?: {
115
+ type?: string;
116
+ message?: string;
117
+ } | string;
118
+ result?: unknown;
119
+ };
120
+ }
121
+ /** flow 累计的五个字段(v1 step-finish tokens 与 v2 message tokens 同形)。 */
122
+ interface OpencodeUsageFlow {
123
+ input: number;
124
+ output: number;
125
+ cacheRead: number;
126
+ cacheCreation: number;
127
+ total: number;
128
+ }
129
+ /** v1 扫描累积器结果(纯数据)。 */
130
+ export interface OpencodeV1Scan {
131
+ /** 末条 user 消息下标(catch-up tail 起点);整份 export 无 user 消息 = -1。 */
132
+ lastUserIndex: number;
133
+ /** tail 内首条 user 文本(displayTitle 首选)。 */
134
+ tailDisplayTitle: string | undefined;
135
+ /** tail 内最后一次非零 step-finish 采样(contextLength 水位来源)。 */
136
+ latest: AgentSessionUsage | undefined;
137
+ /** tail 内非零 step-finish 求和(本 run flow)。 */
138
+ turn: OpencodeUsageFlow;
139
+ /** 全会话 step-finish 求和(cumulative;零 total 的退化 step 字段照加)。 */
140
+ cum: OpencodeUsageFlow;
141
+ }
142
+ /**
143
+ * v1 扫描累积器(纯函数):单遍扫过全部 export 消息,产出 catch-up tail 的
144
+ * 位置(末条 user 消息)、本 run flow(tail 内非零 step-finish 求和)、末条
145
+ * 非零采样(contextLength 水位)与全会话累计。
146
+ *
147
+ * 产生:OpencodeV1Scan。依赖:入参 messages。不改任何外部状态。
148
+ *
149
+ * 口径(勿改):cumulative 对**所有** step-finish 逐字段求和、不设零 total
150
+ * 门槛;turn/latest 只认 tail 内非零 total 的 step(模型在 reasoning 中被
151
+ * 截断的退化 step 不算采样)。
152
+ */
153
+ export declare function scanV1Messages(messages: OpencodeExportMessage[]): OpencodeV1Scan;
154
+ /** v2 usage 扫描累积器结果(纯数据)。 */
155
+ export interface OpencodeV2UsageScan {
156
+ /** 末条采样(contextLength 水位来源)。 */
157
+ latest: AgentSessionUsage | undefined;
158
+ /** 末个 turn(末个 turn 起点之后)的采样求和(本 run flow)。 */
159
+ turn: OpencodeUsageFlow;
160
+ /** 全会话采样求和(cumulative)。 */
161
+ cum: OpencodeUsageFlow;
162
+ }
163
+ /**
164
+ * v2 扫描累积器(纯函数):usageSample 已滤掉零 total 的退化消息;turn 边界
165
+ * 由 lastTurnStartIndex 判定(idle / user / synthetic / system,见其注释)。
166
+ *
167
+ * 产生:OpencodeV2UsageScan。依赖:入参 messages。不改任何外部状态。
168
+ */
169
+ export declare function scanV2Usage(messages: OpencodeV2Message[]): OpencodeV2UsageScan;
31
170
  export declare class OpencodeSessionReader implements AgentSessionReader {
32
171
  private readonly binary;
33
172
  private readonly cacheTtlMs;
@@ -56,14 +195,27 @@ export declare class OpencodeSessionReader implements AgentSessionReader {
56
195
  getNewestSession(cwd: string): AgentSession | null;
57
196
  /**
58
197
  * Read session content: extract catch-up tail (last user message + everything after).
198
+ *
199
+ * 编排:定位会话文件(captureExport + parse)→ directory 精确匹配(与
200
+ * cwd-scoped list 同口径)→ 按 export 版本分发到 v1/v2 装配。
59
201
  */
60
202
  readSessionContent(sessionId: string, cwd: string, opts?: {
61
203
  maxEvents?: number;
62
204
  }): SessionContent;
205
+ /**
206
+ * v1 export(`{info, parts}` 信封 + step-finish 用量 part)的 catch-up tail
207
+ * 装配:扫描累积器(scanV1Messages)出 tail 位置与本 run/累计 usage,事件
208
+ * 装配(assembleV1TailEvents)出展示流,这里只做组装。
209
+ */
210
+ private readV1SessionContent;
63
211
  /**
64
212
  * v2 export: messages are flat (`type` + `text`/`content`) and assistant
65
213
  * usage lives on the message instead of a `step-finish` part. Keep this
66
214
  * mapping isolated from the v1 parser so v1 behaviour stays unchanged.
215
+ *
216
+ * turnStart 可能落在末条采样之后(新 turn 尚无采样)→ turn 全 0;latest
217
+ * 仍是上一轮末条采样,contextLength 保留水位。turnStart 小于最后一个采样
218
+ * 下标时,flow 覆盖末条值,只有 contextLength 保留末条(finalizeTurnUsage)。
67
219
  */
68
220
  private readV2SessionContent;
69
221
  /**