berry-agent-sdk 0.1.0-alpha.2
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 +78 -0
- package/dist/packages/berry-agent-sdk/src/client.d.ts +6 -0
- package/dist/packages/berry-agent-sdk/src/client.js +59 -0
- package/dist/packages/berry-agent-sdk/src/client.js.map +1 -0
- package/dist/packages/berry-agent-sdk/src/http.d.ts +24 -0
- package/dist/packages/berry-agent-sdk/src/http.js +232 -0
- package/dist/packages/berry-agent-sdk/src/http.js.map +1 -0
- package/dist/packages/berry-agent-sdk/src/index.d.ts +25 -0
- package/dist/packages/berry-agent-sdk/src/index.js +22 -0
- package/dist/packages/berry-agent-sdk/src/index.js.map +1 -0
- package/dist/packages/berry-agent-sdk/src/stdio.d.ts +23 -0
- package/dist/packages/berry-agent-sdk/src/stdio.js +238 -0
- package/dist/packages/berry-agent-sdk/src/stdio.js.map +1 -0
- package/dist/packages/berry-agent-sdk/src/types.d.ts +117 -0
- package/dist/packages/berry-agent-sdk/src/types.js +19 -0
- package/dist/packages/berry-agent-sdk/src/types.js.map +1 -0
- package/dist/src/agent/events.d.ts +11 -0
- package/dist/src/agent/events.js +2 -0
- package/dist/src/agent/events.js.map +1 -0
- package/dist/src/agent/index.d.ts +13 -0
- package/dist/src/agent/index.js +3 -0
- package/dist/src/agent/index.js.map +1 -0
- package/dist/src/agent/loop.d.ts +19 -0
- package/dist/src/agent/loop.js +140 -0
- package/dist/src/agent/loop.js.map +1 -0
- package/dist/src/agent/queue.d.ts +105 -0
- package/dist/src/agent/queue.js +120 -0
- package/dist/src/agent/queue.js.map +1 -0
- package/dist/src/agent/stream.d.ts +21 -0
- package/dist/src/agent/stream.js +80 -0
- package/dist/src/agent/stream.js.map +1 -0
- package/dist/src/agent/tools-batch.d.ts +49 -0
- package/dist/src/agent/tools-batch.js +222 -0
- package/dist/src/agent/tools-batch.js.map +1 -0
- package/dist/src/agent/types.d.ts +104 -0
- package/dist/src/agent/types.js +9 -0
- package/dist/src/agent/types.js.map +1 -0
- package/dist/src/channels/ask-queue.d.ts +44 -0
- package/dist/src/channels/ask-queue.js +83 -0
- package/dist/src/channels/ask-queue.js.map +1 -0
- package/dist/src/channels/commands.d.ts +56 -0
- package/dist/src/channels/commands.js +130 -0
- package/dist/src/channels/commands.js.map +1 -0
- package/dist/src/channels/engine/cell.d.ts +55 -0
- package/dist/src/channels/engine/cell.js +144 -0
- package/dist/src/channels/engine/cell.js.map +1 -0
- package/dist/src/channels/engine/diff.d.ts +3 -0
- package/dist/src/channels/engine/diff.js +144 -0
- package/dist/src/channels/engine/diff.js.map +1 -0
- package/dist/src/channels/engine/engine.d.ts +151 -0
- package/dist/src/channels/engine/engine.js +417 -0
- package/dist/src/channels/engine/engine.js.map +1 -0
- package/dist/src/channels/engine/index.d.ts +22 -0
- package/dist/src/channels/engine/index.js +9 -0
- package/dist/src/channels/engine/index.js.map +1 -0
- package/dist/src/channels/engine/input-keys.d.ts +39 -0
- package/dist/src/channels/engine/input-keys.js +87 -0
- package/dist/src/channels/engine/input-keys.js.map +1 -0
- package/dist/src/channels/engine/input.d.ts +174 -0
- package/dist/src/channels/engine/input.js +597 -0
- package/dist/src/channels/engine/input.js.map +1 -0
- package/dist/src/channels/engine/memory-io.d.ts +46 -0
- package/dist/src/channels/engine/memory-io.js +72 -0
- package/dist/src/channels/engine/memory-io.js.map +1 -0
- package/dist/src/channels/engine/process-io.d.ts +23 -0
- package/dist/src/channels/engine/process-io.js +39 -0
- package/dist/src/channels/engine/process-io.js.map +1 -0
- package/dist/src/channels/engine/types.d.ts +202 -0
- package/dist/src/channels/engine/types.js +18 -0
- package/dist/src/channels/engine/types.js.map +1 -0
- package/dist/src/channels/engine/width.d.ts +23 -0
- package/dist/src/channels/engine/width.js +123 -0
- package/dist/src/channels/engine/width.js.map +1 -0
- package/dist/src/channels/index.d.ts +25 -0
- package/dist/src/channels/index.js +16 -0
- package/dist/src/channels/index.js.map +1 -0
- package/dist/src/channels/registry.d.ts +33 -0
- package/dist/src/channels/registry.js +57 -0
- package/dist/src/channels/registry.js.map +1 -0
- package/dist/src/channels/sdk/admit.d.ts +32 -0
- package/dist/src/channels/sdk/admit.js +30 -0
- package/dist/src/channels/sdk/admit.js.map +1 -0
- package/dist/src/channels/sdk/backend.d.ts +19 -0
- package/dist/src/channels/sdk/backend.js +103 -0
- package/dist/src/channels/sdk/backend.js.map +1 -0
- package/dist/src/channels/sdk/cursor.d.ts +51 -0
- package/dist/src/channels/sdk/cursor.js +57 -0
- package/dist/src/channels/sdk/cursor.js.map +1 -0
- package/dist/src/channels/sdk/index.d.ts +20 -0
- package/dist/src/channels/sdk/index.js +21 -0
- package/dist/src/channels/sdk/index.js.map +1 -0
- package/dist/src/channels/sdk/jsonl.d.ts +47 -0
- package/dist/src/channels/sdk/jsonl.js +201 -0
- package/dist/src/channels/sdk/jsonl.js.map +1 -0
- package/dist/src/channels/sdk/protocol.d.ts +297 -0
- package/dist/src/channels/sdk/protocol.js +25 -0
- package/dist/src/channels/sdk/protocol.js.map +1 -0
- package/dist/src/channels/sdk/schema.d.ts +12 -0
- package/dist/src/channels/sdk/schema.js +92 -0
- package/dist/src/channels/sdk/schema.js.map +1 -0
- package/dist/src/channels/sdk/wire-core.d.ts +199 -0
- package/dist/src/channels/sdk/wire-core.js +447 -0
- package/dist/src/channels/sdk/wire-core.js.map +1 -0
- package/dist/src/channels/service.d.ts +66 -0
- package/dist/src/channels/service.js +170 -0
- package/dist/src/channels/service.js.map +1 -0
- package/dist/src/channels/tui/autocomplete/autocomplete.d.ts +32 -0
- package/dist/src/channels/tui/autocomplete/autocomplete.js +43 -0
- package/dist/src/channels/tui/autocomplete/autocomplete.js.map +1 -0
- package/dist/src/channels/tui/autocomplete/file-mentions.d.ts +18 -0
- package/dist/src/channels/tui/autocomplete/file-mentions.js +107 -0
- package/dist/src/channels/tui/autocomplete/file-mentions.js.map +1 -0
- package/dist/src/channels/tui/autocomplete/popup.d.ts +47 -0
- package/dist/src/channels/tui/autocomplete/popup.js +149 -0
- package/dist/src/channels/tui/autocomplete/popup.js.map +1 -0
- package/dist/src/channels/tui/autocomplete/provider.d.ts +38 -0
- package/dist/src/channels/tui/autocomplete/provider.js +8 -0
- package/dist/src/channels/tui/autocomplete/provider.js.map +1 -0
- package/dist/src/channels/tui/autocomplete/token.d.ts +22 -0
- package/dist/src/channels/tui/autocomplete/token.js +69 -0
- package/dist/src/channels/tui/autocomplete/token.js.map +1 -0
- package/dist/src/channels/tui/backend/ansi-rows.d.ts +86 -0
- package/dist/src/channels/tui/backend/ansi-rows.js +209 -0
- package/dist/src/channels/tui/backend/ansi-rows.js.map +1 -0
- package/dist/src/channels/tui/backend/main-screen.d.ts +90 -0
- package/dist/src/channels/tui/backend/main-screen.js +208 -0
- package/dist/src/channels/tui/backend/main-screen.js.map +1 -0
- package/dist/src/channels/tui/backend/osc.d.ts +79 -0
- package/dist/src/channels/tui/backend/osc.js +92 -0
- package/dist/src/channels/tui/backend/osc.js.map +1 -0
- package/dist/src/channels/tui/backend/transcript.d.ts +98 -0
- package/dist/src/channels/tui/backend/transcript.js +231 -0
- package/dist/src/channels/tui/backend/transcript.js.map +1 -0
- package/dist/src/channels/tui/backend/tui-backend.d.ts +324 -0
- package/dist/src/channels/tui/backend/tui-backend.js +916 -0
- package/dist/src/channels/tui/backend/tui-backend.js.map +1 -0
- package/dist/src/channels/tui/editor/editor-model.d.ts +141 -0
- package/dist/src/channels/tui/editor/editor-model.js +544 -0
- package/dist/src/channels/tui/editor/editor-model.js.map +1 -0
- package/dist/src/channels/tui/editor/editor-view.d.ts +36 -0
- package/dist/src/channels/tui/editor/editor-view.js +141 -0
- package/dist/src/channels/tui/editor/editor-view.js.map +1 -0
- package/dist/src/channels/tui/editor/editor.d.ts +50 -0
- package/dist/src/channels/tui/editor/editor.js +276 -0
- package/dist/src/channels/tui/editor/editor.js.map +1 -0
- package/dist/src/channels/tui/editor/undo-stack.d.ts +22 -0
- package/dist/src/channels/tui/editor/undo-stack.js +36 -0
- package/dist/src/channels/tui/editor/undo-stack.js.map +1 -0
- package/dist/src/channels/tui/editor/visual-lines.d.ts +39 -0
- package/dist/src/channels/tui/editor/visual-lines.js +127 -0
- package/dist/src/channels/tui/editor/visual-lines.js.map +1 -0
- package/dist/src/channels/tui/editor/word-nav.d.ts +10 -0
- package/dist/src/channels/tui/editor/word-nav.js +107 -0
- package/dist/src/channels/tui/editor/word-nav.js.map +1 -0
- package/dist/src/channels/tui/history/history-viewer.d.ts +133 -0
- package/dist/src/channels/tui/history/history-viewer.js +404 -0
- package/dist/src/channels/tui/history/history-viewer.js.map +1 -0
- package/dist/src/channels/tui/index.d.ts +16 -0
- package/dist/src/channels/tui/index.js +4 -0
- package/dist/src/channels/tui/index.js.map +1 -0
- package/dist/src/channels/tui/markdown/blocks.d.ts +42 -0
- package/dist/src/channels/tui/markdown/blocks.js +112 -0
- package/dist/src/channels/tui/markdown/blocks.js.map +1 -0
- package/dist/src/channels/tui/markdown/inline.d.ts +24 -0
- package/dist/src/channels/tui/markdown/inline.js +76 -0
- package/dist/src/channels/tui/markdown/inline.js.map +1 -0
- package/dist/src/channels/tui/markdown/markdown.d.ts +34 -0
- package/dist/src/channels/tui/markdown/markdown.js +183 -0
- package/dist/src/channels/tui/markdown/markdown.js.map +1 -0
- package/dist/src/channels/tui/memory/memory-viewer.d.ts +235 -0
- package/dist/src/channels/tui/memory/memory-viewer.js +541 -0
- package/dist/src/channels/tui/memory/memory-viewer.js.map +1 -0
- package/dist/src/channels/tui/overlay/alt-screen.d.ts +79 -0
- package/dist/src/channels/tui/overlay/alt-screen.js +106 -0
- package/dist/src/channels/tui/overlay/alt-screen.js.map +1 -0
- package/dist/src/channels/tui/overlay/overlay.d.ts +53 -0
- package/dist/src/channels/tui/overlay/overlay.js +58 -0
- package/dist/src/channels/tui/overlay/overlay.js.map +1 -0
- package/dist/src/channels/tui/overlay/select-confirm.d.ts +73 -0
- package/dist/src/channels/tui/overlay/select-confirm.js +157 -0
- package/dist/src/channels/tui/overlay/select-confirm.js.map +1 -0
- package/dist/src/channels/tui/panels/todo-panel.d.ts +24 -0
- package/dist/src/channels/tui/panels/todo-panel.js +55 -0
- package/dist/src/channels/tui/panels/todo-panel.js.map +1 -0
- package/dist/src/channels/tui/panels/tool-progress-panel.d.ts +37 -0
- package/dist/src/channels/tui/panels/tool-progress-panel.js +94 -0
- package/dist/src/channels/tui/panels/tool-progress-panel.js.map +1 -0
- package/dist/src/channels/tui/scroll/scroll-view.d.ts +96 -0
- package/dist/src/channels/tui/scroll/scroll-view.js +255 -0
- package/dist/src/channels/tui/scroll/scroll-view.js.map +1 -0
- package/dist/src/channels/tui/status/status-line.d.ts +46 -0
- package/dist/src/channels/tui/status/status-line.js +77 -0
- package/dist/src/channels/tui/status/status-line.js.map +1 -0
- package/dist/src/channels/tui/theme.d.ts +27 -0
- package/dist/src/channels/tui/theme.js +42 -0
- package/dist/src/channels/tui/theme.js.map +1 -0
- package/dist/src/channels/types.d.ts +84 -0
- package/dist/src/channels/types.js +12 -0
- package/dist/src/channels/types.js.map +1 -0
- package/dist/src/channels/ui-core.d.ts +80 -0
- package/dist/src/channels/ui-core.js +210 -0
- package/dist/src/channels/ui-core.js.map +1 -0
- package/dist/src/context/codes.d.ts +1 -0
- package/dist/src/context/codes.js +41 -0
- package/dist/src/context/codes.js.map +1 -0
- package/dist/src/context/events.d.ts +62 -0
- package/dist/src/context/events.js +161 -0
- package/dist/src/context/events.js.map +1 -0
- package/dist/src/context/index.d.ts +16 -0
- package/dist/src/context/index.js +14 -0
- package/dist/src/context/index.js.map +1 -0
- package/dist/src/context/logger.d.ts +67 -0
- package/dist/src/context/logger.js +137 -0
- package/dist/src/context/logger.js.map +1 -0
- package/dist/src/context/scope.d.ts +78 -0
- package/dist/src/context/scope.js +183 -0
- package/dist/src/context/scope.js.map +1 -0
- package/dist/src/context/workspace.d.ts +8 -0
- package/dist/src/context/workspace.js +105 -0
- package/dist/src/context/workspace.js.map +1 -0
- package/dist/src/contracts/agent-events.d.ts +73 -0
- package/dist/src/contracts/agent-events.js +17 -0
- package/dist/src/contracts/agent-events.js.map +1 -0
- package/dist/src/contracts/api.d.ts +249 -0
- package/dist/src/contracts/api.js +334 -0
- package/dist/src/contracts/api.js.map +1 -0
- package/dist/src/contracts/approval.d.ts +37 -0
- package/dist/src/contracts/approval.js +10 -0
- package/dist/src/contracts/approval.js.map +1 -0
- package/dist/src/contracts/env-ref.d.ts +41 -0
- package/dist/src/contracts/env-ref.js +33 -0
- package/dist/src/contracts/env-ref.js.map +1 -0
- package/dist/src/contracts/errors.d.ts +56 -0
- package/dist/src/contracts/errors.js +267 -0
- package/dist/src/contracts/errors.js.map +1 -0
- package/dist/src/contracts/events.d.ts +70 -0
- package/dist/src/contracts/events.js +330 -0
- package/dist/src/contracts/events.js.map +1 -0
- package/dist/src/contracts/index.d.ts +32 -0
- package/dist/src/contracts/index.js +27 -0
- package/dist/src/contracts/index.js.map +1 -0
- package/dist/src/contracts/llm.d.ts +278 -0
- package/dist/src/contracts/llm.js +13 -0
- package/dist/src/contracts/llm.js.map +1 -0
- package/dist/src/contracts/messages.d.ts +63 -0
- package/dist/src/contracts/messages.js +66 -0
- package/dist/src/contracts/messages.js.map +1 -0
- package/dist/src/contracts/redact.d.ts +46 -0
- package/dist/src/contracts/redact.js +224 -0
- package/dist/src/contracts/redact.js.map +1 -0
- package/dist/src/contracts/tools.d.ts +198 -0
- package/dist/src/contracts/tools.js +35 -0
- package/dist/src/contracts/tools.js.map +1 -0
- package/dist/src/contracts/types.d.ts +304 -0
- package/dist/src/contracts/types.js +51 -0
- package/dist/src/contracts/types.js.map +1 -0
- package/dist/src/contracts/ui.d.ts +122 -0
- package/dist/src/contracts/ui.js +16 -0
- package/dist/src/contracts/ui.js.map +1 -0
- package/dist/src/sdk/types.d.ts +144 -0
- package/dist/src/sdk/types.js +33 -0
- package/dist/src/sdk/types.js.map +1 -0
- package/package.json +29 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 输入解码器(07 篇引擎节件 2——kitty/legacy 双轨七态机)。
|
|
3
|
+
*
|
|
4
|
+
* 把终端 stdin 字节流解析成结构化输入事件(key/text/ime/paste/mouse 五分——
|
|
5
|
+
* 事件模型在 types 件),一台状态机两种轨制同吃:
|
|
6
|
+
* - **legacy 轨**:C0 控制码(Ctrl+字母 = 0x01-0x1a)、CSI/SS3 功能键
|
|
7
|
+
* (`\x1b[A` 箭头、`\x1b[1;5C` Ctrl+Right、`\x1b[3~` Delete、`\x1b[15~` F5…)、
|
|
8
|
+
* `ESC` 前缀 = alt(`\x1bx`)、`CSI Z` = shift+tab。legacy 轨无事件型区分、
|
|
9
|
+
* 键相恒 press(types 契约条款)。
|
|
10
|
+
* - **kitty 轨**:`CSI unicode-key-code[:交替键] ; 修饰[:事件型] ; 文本码点 u`
|
|
11
|
+
* 全形解析(kitty 键盘协议规范);探测应答(`CSI ? flags u`)与 DA1
|
|
12
|
+
* (`CSI ? …c`)拦截上抛协议落定,绝不误当按键。
|
|
13
|
+
* - **IME 组字态**(CSI u 形态):key 0 纯文本事件 = OS/IME 组装文本(kitty
|
|
14
|
+
* 规范原文「终端拿不到键信息时键号必须用 0」)。增量流识别 = 前缀增长检测:
|
|
15
|
+
* 新文本严格扩展挂起预编辑 → 组字中事件(不落正文);否则 → 提交事件(主流
|
|
16
|
+
* 终端只送提交:首达即立即交付,零延迟)。任意按键到达时若预编辑仍挂起 →
|
|
17
|
+
* 先冲刷为提交(流式预编辑终端的安全网,不双发)。
|
|
18
|
+
* - **legacy 形态 IME**:主流终端组字期间不送任何字节(终端自绘预编辑),提交
|
|
19
|
+
* 以纯 UTF-8 到达——整段作为 text 事件交付(不撕裂、不误判为按键序列)。
|
|
20
|
+
* 带内无标记,诚实不发明启发式。
|
|
21
|
+
* - **bracketed paste**:`\x1b[200~ … \x1b[201~` 整段识别整段交付(内容不逐键
|
|
22
|
+
* 解析——「严格处理」)。
|
|
23
|
+
* - **SGR 1006 鼠标**(2026-09-11 鼠标解码批):`CSI < Cb;Cx;Cy M/m` 全形解析
|
|
24
|
+
* (M = 按压/按住拖动、m = 释放);v1 语义面收窄五钮 left/middle/right/
|
|
25
|
+
* wheel-up/wheel-down——66/67(水平滚轮)与 128-131(扩展键)线值整序吞;
|
|
26
|
+
* 线值 8-11 是 alt 系修饰组合(位域 8=alt 叠加),照常拆解还原绝不入吞
|
|
27
|
+
* 清单;坐标 1 基 → 0 基(模型面单源 0 基)。
|
|
28
|
+
* - **X10 防御吞 + 运行时降级**:bare `CSI M` 后三字节(X10 形)整吞不产事件
|
|
29
|
+
* (坐标字节 0x20+ 落可打印区间——地面态重解会伪造 text/按键);开了 1006
|
|
30
|
+
* 的会话里 X10 形到达 ⟺ 终端无 SGR 能力(判据可靠),首达触发
|
|
31
|
+
* onMouseLegacy 一次性回调(per-entry 闩),装配层据此 DECRST 关鼠标回
|
|
32
|
+
* 原生选区。
|
|
33
|
+
* - **lone-ESC 判定窗**:ESC 为 chunk 末字节时挂起等续;窗内
|
|
34
|
+
* (escapeWindowMs,缺省 30ms)无续字节(settle)→ 判 Esc 键。kitty
|
|
35
|
+
* disambiguate 轨下 Esc 键以 `CSI 27u` 到达,此窗只剩 legacy 轨兜底职责。
|
|
36
|
+
* - **换防吞在途**:discardPending() 丢弃解析中途的一切在途转义/粘贴/预编辑
|
|
37
|
+
* 状态——换防瞬间 stdin 在途序列不漏进新栈。
|
|
38
|
+
*
|
|
39
|
+
* 事件产出形与本仓契约对齐:KeyEvent.phase 必填三值(legacy 恒 press);
|
|
40
|
+
* ImeEvent.committed(true 提交 / false 预编辑增量——与 berry composing 互反)。
|
|
41
|
+
*/
|
|
42
|
+
import type { InputEvent, KeyboardProtocol } from './types.js';
|
|
43
|
+
/** 解码器构造选项 */
|
|
44
|
+
export interface InputDecoderOptions {
|
|
45
|
+
/** 时钟注入(缺省 Date.now——lone-ESC 判定窗 / IME 跟随窗计时) */
|
|
46
|
+
now?: () => number;
|
|
47
|
+
/** lone-ESC 判定窗(ms;缺省 30) */
|
|
48
|
+
escapeWindowMs?: number;
|
|
49
|
+
/** 协议探测落定回调(kitty 应答先到 / DA1 到达时裁 kitty 或 legacy) */
|
|
50
|
+
onProtocol?: (protocol: KeyboardProtocol) => void;
|
|
51
|
+
/**
|
|
52
|
+
* X10 形首达回调(一次性——per-entry 闩;onProtocol 同形先例):开了
|
|
53
|
+
* 1006 的会话里 X10 形到达 ⟺ 终端无 SGR 能力(判据可靠),装配层据此
|
|
54
|
+
* DECRST 关鼠标回原生选区(运行时降级)。
|
|
55
|
+
*/
|
|
56
|
+
onMouseLegacy?: () => void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 状态机输入解码器。feed 进 chunk、take 排空事件;settle 在判定窗到点时由
|
|
60
|
+
* 引擎调用(lone-ESC 裁决);discardPending 换防吞在途。
|
|
61
|
+
*/
|
|
62
|
+
export declare class InputDecoder {
|
|
63
|
+
/** 事件积压队列(take 排空后换新数组——feed 不回调,避免重入) */
|
|
64
|
+
private queue;
|
|
65
|
+
/**
|
|
66
|
+
* 解析态七分:ground 地面 / esc 转义挂起 / csi 参数积攒 / ss3 / paste
|
|
67
|
+
* 粘贴体 / paste-drain 粘贴吸收态(粘贴态被换防丢弃或超帽冲刷后残余粘贴体
|
|
68
|
+
* 不得按地面态解码成伪造命令行事件——空框 enter 开应用、`/exit`+CRLF 触
|
|
69
|
+
* 退出,吞到真终界 PASTE_END 再回地面)/ mouse-x10 X10 吞态(bare CSI M
|
|
70
|
+
* 后三字节整吞——坐标字节落可打印区间,地面态重解会伪造 text 事件)。
|
|
71
|
+
*/
|
|
72
|
+
private mode;
|
|
73
|
+
/** CSI 参数积攒缓冲(含私用标记 ?/> 与参数字节) */
|
|
74
|
+
private csiBuf;
|
|
75
|
+
/** CSI 超帽毒化旗标:序列已判畸形——吞到终点字节整序丢弃(残段不漏成文本) */
|
|
76
|
+
private csiPoisoned;
|
|
77
|
+
/** 粘贴体积攒缓冲 */
|
|
78
|
+
private pasteBuf;
|
|
79
|
+
/**
|
|
80
|
+
* 跨 chunk 终界悬置尾(≤5 字节):上 chunk 末尾可能是终界 \x1b[201~ 的真
|
|
81
|
+
* 前缀——悬置于此,下 chunk 先拼回再搜。生命周期:paste 态未命中路径置位;
|
|
82
|
+
* 终界命中 / 防护帽冲刷 / discardPending 清。
|
|
83
|
+
*/
|
|
84
|
+
private pendingPasteTail;
|
|
85
|
+
/** 地面态可打印文本游程积攒(连续可打印合并单事件——打字/提交不撕裂) */
|
|
86
|
+
private textRun;
|
|
87
|
+
/** lone-ESC 挂起时刻(null = 无挂起) */
|
|
88
|
+
private escPendingAt;
|
|
89
|
+
/** IME 挂起预编辑(组字中间态;null = 无组字) */
|
|
90
|
+
private preedit;
|
|
91
|
+
/** 上一发 CSI 0 文本事件(跟随窗回溯判据——流式预编辑终端的组字态开session锚) */
|
|
92
|
+
private lastCsi0;
|
|
93
|
+
/** kitty 协议已应答旗标(DA1 到达时裁 legacy/kitty) */
|
|
94
|
+
private kittyAnswered;
|
|
95
|
+
/** 协议落定已上报旗标(事件只发一次) */
|
|
96
|
+
private protocolReported;
|
|
97
|
+
/** X10 吞态剩余字节数(bare CSI M 后整吞 3 字节;0 = 不在吞态) */
|
|
98
|
+
private mouseX10Remain;
|
|
99
|
+
/** X10 首达已上报旗标(onMouseLegacy 只发一次——per-entry 闩) */
|
|
100
|
+
private mouseLegacyReported;
|
|
101
|
+
private readonly now;
|
|
102
|
+
private readonly escapeWindowMs;
|
|
103
|
+
private readonly onProtocol?;
|
|
104
|
+
private readonly onMouseLegacy?;
|
|
105
|
+
constructor(opts?: InputDecoderOptions);
|
|
106
|
+
/** 组字中旗标(焦面查询面——true 时预编辑在途) */
|
|
107
|
+
get composing(): boolean;
|
|
108
|
+
/** 挂起预编辑全文(无则 null——预编辑渲染面取用) */
|
|
109
|
+
get pendingPreedit(): string | null;
|
|
110
|
+
/** lone-ESC 挂起中(引擎据此装判定窗定时器) */
|
|
111
|
+
get hasPendingEscape(): boolean;
|
|
112
|
+
/** 喂入一个 stdin chunk(字符串已按 UTF-8 解码完成) */
|
|
113
|
+
feed(chunk: string): void;
|
|
114
|
+
/** 判定窗裁决(引擎在窗到点调用):仍挂起 → 判 Esc 键 */
|
|
115
|
+
settle(): void;
|
|
116
|
+
/**
|
|
117
|
+
* 换防吞在途:丢弃解析中途的转义/粘贴/预编辑/文本游程——换防瞬间 stdin
|
|
118
|
+
* 在途序列一窗全丢,不漏进新栈。
|
|
119
|
+
*
|
|
120
|
+
* 粘贴态例外:粘贴体半截被弃后残余字节若按地面态重解会伪造命令行事件——
|
|
121
|
+
* 粘贴态/吸收态换防改入吸收态(paste-drain),吞残余到真终界 PASTE_END 再
|
|
122
|
+
* 回地面;CSI/ESC/X10 半序列无续作义务,仍回地面。
|
|
123
|
+
*/
|
|
124
|
+
discardPending(): void;
|
|
125
|
+
/** 排空事件队列(引擎 emit 的取货口) */
|
|
126
|
+
take(): InputEvent[];
|
|
127
|
+
/** 游程冲刷:地面态连续可打印合并成一个 text 事件(提交/打字不撕裂) */
|
|
128
|
+
private flushTextRun;
|
|
129
|
+
/** 按键派发(预编辑挂起时先冲刷为提交——流式组字安全网;phase 必填) */
|
|
130
|
+
private emitKey;
|
|
131
|
+
/** 预编辑被非组字事件打断 → 冲刷为提交(终端漏发显式提交时的兜底) */
|
|
132
|
+
private flushImeOnInterrupt;
|
|
133
|
+
/** C0 控制码 → 键事件(legacy ctrl 映射表:a-z=0x01-0x1a 等) */
|
|
134
|
+
private dispatchControl;
|
|
135
|
+
/** CSI 整序派发(params 含私用标记;final 为终点字节) */
|
|
136
|
+
private dispatchCsi;
|
|
137
|
+
/** CSI number[;mods] ~ 功能键派发(200/201 粘贴包裹由 paste 态接管) */
|
|
138
|
+
private dispatchTilde;
|
|
139
|
+
/**
|
|
140
|
+
* SGR 1006 鼠标报文派发:`CSI < Cb;Cx;Cy M/m`(M = 按压/按住拖动、m = 释放)。
|
|
141
|
+
*
|
|
142
|
+
* - Cb 位域:低两位 = 按钮号(0 左/1 中/2 右;3 无按钮);4=shift / 8=alt /
|
|
143
|
+
* 16=ctrl;32=按住 motion;64 帽位 = 轮系(+0 上/+1 下;+2/+3 = 66/67
|
|
144
|
+
* 水平滚轮左右);128 位 = 扩展按钮 8-11(线值 128-131)。
|
|
145
|
+
* - v1 语义面收窄五钮(left/middle/right/wheel-up/wheel-down):66/67 与
|
|
146
|
+
* 128-131 线值整序吞不产事件;线值 8-11 是 alt 系修饰组合(8=alt+左键
|
|
147
|
+
* 等),位域拆解后照常还原,绝不入吞清单。
|
|
148
|
+
* - 坐标 1 基 → 0 基(types 契约单源 0 基);wheel 无 release(终端不报,
|
|
149
|
+
* 滚轮以 press 一相到达);SGR 位域无 meta 位,meta 恒 false。
|
|
150
|
+
* - 非法参数(NaN/坐标越 0 基界)fail-closed 整序吞。
|
|
151
|
+
*/
|
|
152
|
+
private decodeSgrMouse;
|
|
153
|
+
/**
|
|
154
|
+
* kitty CSI u 全形派发:
|
|
155
|
+
* `CSI key[:交替键] ; 修饰[:事件型] ; 文本码点 u`
|
|
156
|
+
*/
|
|
157
|
+
private dispatchKittyKey;
|
|
158
|
+
/** kitty 键号 → 规范键名(功能键表 + 可打印码点直映) */
|
|
159
|
+
private kittyKeyName;
|
|
160
|
+
/**
|
|
161
|
+
* IME 文本事件裁决(组字态机):
|
|
162
|
+
* - 组字 session 在途:新文本严格扩展挂起预编辑 → 组字中(不落正文,仅供
|
|
163
|
+
* 预编辑渲染);不扩展 → 冲刷为提交。
|
|
164
|
+
* - 无 session:主流终端 CSI 0 只送单发提交 → **立即交付零延迟**。跟随窗内
|
|
165
|
+
* 再来一发且与前发构成前缀链 → 判流式预编辑终端:回溯开 session(前发已
|
|
166
|
+
* 交付不可撤——流式首块漏判是本设计的已知边界,注释在案),本发转组字中。
|
|
167
|
+
*/
|
|
168
|
+
private dispatchImeText;
|
|
169
|
+
/**
|
|
170
|
+
* 粘贴体防护帽:超帽强制冲刷并转吸收态(畸形流不锁死键盘)。冲刷后入吸收
|
|
171
|
+
* 态吞残余到真终界 PASTE_END——残余粘贴体按地面态重解会伪造命令行事件。
|
|
172
|
+
*/
|
|
173
|
+
private enforcePasteCap;
|
|
174
|
+
}
|