dsh-remote-control 1.0.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 (100) hide show
  1. package/LICENSE +21 -0
  2. package/cordis.patch.yml +21 -0
  3. package/dist/bundle/index.js +33956 -0
  4. package/dist/src/core/clock.d.ts +45 -0
  5. package/dist/src/core/clock.js +83 -0
  6. package/dist/src/core/clock.js.map +1 -0
  7. package/dist/src/core/keys.d.ts +98 -0
  8. package/dist/src/core/keys.js +176 -0
  9. package/dist/src/core/keys.js.map +1 -0
  10. package/dist/src/core/pairing-window.d.ts +95 -0
  11. package/dist/src/core/pairing-window.js +92 -0
  12. package/dist/src/core/pairing-window.js.map +1 -0
  13. package/dist/src/core/runtime.d.ts +104 -0
  14. package/dist/src/core/runtime.js +491 -0
  15. package/dist/src/core/runtime.js.map +1 -0
  16. package/dist/src/core/sleep-policy.d.ts +81 -0
  17. package/dist/src/core/sleep-policy.js +134 -0
  18. package/dist/src/core/sleep-policy.js.map +1 -0
  19. package/dist/src/core/window.d.ts +88 -0
  20. package/dist/src/core/window.js +185 -0
  21. package/dist/src/core/window.js.map +1 -0
  22. package/dist/src/index.d.ts +70 -0
  23. package/dist/src/index.js +882 -0
  24. package/dist/src/index.js.map +1 -0
  25. package/dist/src/platform/carrier-services.d.ts +96 -0
  26. package/dist/src/platform/carrier-services.js +982 -0
  27. package/dist/src/platform/carrier-services.js.map +1 -0
  28. package/dist/src/platform/guard.d.ts +60 -0
  29. package/dist/src/platform/guard.js +124 -0
  30. package/dist/src/platform/guard.js.map +1 -0
  31. package/dist/src/platform/mock-kernel.d.ts +95 -0
  32. package/dist/src/platform/mock-kernel.js +180 -0
  33. package/dist/src/platform/mock-kernel.js.map +1 -0
  34. package/dist/src/platform/qr.d.ts +28 -0
  35. package/dist/src/platform/qr.js +80 -0
  36. package/dist/src/platform/qr.js.map +1 -0
  37. package/dist/src/platform/sleep-posix.d.ts +17 -0
  38. package/dist/src/platform/sleep-posix.js +91 -0
  39. package/dist/src/platform/sleep-posix.js.map +1 -0
  40. package/dist/src/ports/index.d.ts +246 -0
  41. package/dist/src/ports/index.js +2 -0
  42. package/dist/src/ports/index.js.map +1 -0
  43. package/dist/src/shell/config.d.ts +56 -0
  44. package/dist/src/shell/config.js +212 -0
  45. package/dist/src/shell/config.js.map +1 -0
  46. package/dist/src/shell/pairing-text.d.ts +38 -0
  47. package/dist/src/shell/pairing-text.js +22 -0
  48. package/dist/src/shell/pairing-text.js.map +1 -0
  49. package/dist/src/shell/status.d.ts +39 -0
  50. package/dist/src/shell/status.js +119 -0
  51. package/dist/src/shell/status.js.map +1 -0
  52. package/dist/src/transport/relay.d.ts +107 -0
  53. package/dist/src/transport/relay.js +359 -0
  54. package/dist/src/transport/relay.js.map +1 -0
  55. package/dist/tests/carrier-events.test.d.ts +1 -0
  56. package/dist/tests/carrier-events.test.js +88 -0
  57. package/dist/tests/carrier-events.test.js.map +1 -0
  58. package/dist/tests/carrier-services.test.d.ts +1 -0
  59. package/dist/tests/carrier-services.test.js +562 -0
  60. package/dist/tests/carrier-services.test.js.map +1 -0
  61. package/dist/tests/carrier-vocabulary.test.d.ts +1 -0
  62. package/dist/tests/carrier-vocabulary.test.js +149 -0
  63. package/dist/tests/carrier-vocabulary.test.js.map +1 -0
  64. package/dist/tests/clock-probe-timers.test.d.ts +1 -0
  65. package/dist/tests/clock-probe-timers.test.js +73 -0
  66. package/dist/tests/clock-probe-timers.test.js.map +1 -0
  67. package/dist/tests/command-result.test.d.ts +1 -0
  68. package/dist/tests/command-result.test.js +185 -0
  69. package/dist/tests/command-result.test.js.map +1 -0
  70. package/dist/tests/config.test.d.ts +1 -0
  71. package/dist/tests/config.test.js +223 -0
  72. package/dist/tests/config.test.js.map +1 -0
  73. package/dist/tests/guard.test.d.ts +1 -0
  74. package/dist/tests/guard.test.js +175 -0
  75. package/dist/tests/guard.test.js.map +1 -0
  76. package/dist/tests/ids-and-keys.test.d.ts +1 -0
  77. package/dist/tests/ids-and-keys.test.js +211 -0
  78. package/dist/tests/ids-and-keys.test.js.map +1 -0
  79. package/dist/tests/pairing-text.test.d.ts +1 -0
  80. package/dist/tests/pairing-text.test.js +62 -0
  81. package/dist/tests/pairing-text.test.js.map +1 -0
  82. package/dist/tests/pairing-window.test.d.ts +1 -0
  83. package/dist/tests/pairing-window.test.js +165 -0
  84. package/dist/tests/pairing-window.test.js.map +1 -0
  85. package/dist/tests/relay-client.test.d.ts +1 -0
  86. package/dist/tests/relay-client.test.js +557 -0
  87. package/dist/tests/relay-client.test.js.map +1 -0
  88. package/dist/tests/runtime.test.d.ts +1 -0
  89. package/dist/tests/runtime.test.js +963 -0
  90. package/dist/tests/runtime.test.js.map +1 -0
  91. package/dist/tests/sleep.test.d.ts +1 -0
  92. package/dist/tests/sleep.test.js +264 -0
  93. package/dist/tests/sleep.test.js.map +1 -0
  94. package/dist/tests/status.test.d.ts +1 -0
  95. package/dist/tests/status.test.js +238 -0
  96. package/dist/tests/status.test.js.map +1 -0
  97. package/dist/tests/window.test.d.ts +1 -0
  98. package/dist/tests/window.test.js +210 -0
  99. package/dist/tests/window.test.js.map +1 -0
  100. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier-services.js","sourceRoot":"","sources":["../../../src/platform/carrier-services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * guard — 事件订阅的唯一入口。
3
+ *
4
+ * cordis 的事件有两种派发模式:`emit`(观测者只是被告知)与 `waterfall`
5
+ * (**注册即参与**,监听函数的返回值就是"这一棒往下传的值")。
6
+ * 观测者若订阅了 waterfall 并返回 `undefined`,就把整条链的结果冲掉了。
7
+ *
8
+ * 事故(不是理论风险):旧插件为了可观测性订阅了 `agent/request`,
9
+ * 宿主在构造 LLM 请求那一步拿到的是插件监听器返回的 undefined,于是
10
+ * **内核进程里每一个 turn 都崩**,报 `Cannot read properties of undefined (reading 'provider')`,
11
+ * 连桌面 UI 里人工发消息也一起崩(取证 HANDOFF.md §4.4 与
12
+ * docs/legacy-spec/host-plugin-cordis.md §2.1,崩溃点在
13
+ * `@deepseek-ai/dsh-agent-loop/lib/index.js:685-691`)。
14
+ *
15
+ * 为什么这次是**白名单**而不是旧实现的 13 项黑名单:宿主自己有一份权威的
16
+ * 「事件名 + 派发模式」表(`@deepseek-ai/dsh-api-remotes/lib/types/remote-events.js:12-40`),
17
+ * 按它 `approval/request`、`user-questions/request`、`llm/stream`、
18
+ * `system-prompt/assemble`、`tools/pre-execute|execute|post-execute|code-dispatch-log`、
19
+ * `internal/config`、`internal/update` 都是 waterfall,而旧黑名单里一个都没有——
20
+ * **旧插件没出事只是因为它恰好没订阅这些名字**。黑名单在任何一次宿主代际升级后都会静默失效,
21
+ * 所以本文件的原则是:名单外的名字一律拒订,而不是名单外的名字一律放行。
22
+ */
23
+ /** 允许订阅的 emit-mode 事件(逐个附取证位置,缺一个就少一类能力)。 */
24
+ export declare const SUBSCRIBABLE_EVENTS: readonly ["session/event", "session/created", "agent/status", "agent/error"];
25
+ export type SubscribableEvent = (typeof SUBSCRIBABLE_EVENTS)[number];
26
+ /**
27
+ * 已知为 waterfall 的事件名。
28
+ *
29
+ * 这份清单**不参与放行判断**(放行只看白名单),它存在的意义只有一条:
30
+ * 让测试能自校验"白名单里绝不出现这里任何一个名字"。
31
+ * 取证位置见 docs/legacy-spec/host-plugin-cordis.md §2.1 的 13 项 + 由宿主
32
+ * `remote-events.js` 与 `@mode waterfall` 声明补出来的 8 项。
33
+ */
34
+ export declare const WATERFALL_EVENTS: readonly string[];
35
+ /**
36
+ * 允许**参与**的 waterfall(与"观测"是两件事)。
37
+ *
38
+ * `approval/request` 的官方契约就是"参与者返回 outcome 即认领这次决定,
39
+ * 或调用 `next()` 交还"(取证 @deepseek-ai/dsh-user-approval/lib/types/index.d.ts:16-24)。
40
+ * 也就是说:审批要想到达手机,只能参与这条 waterfall,没有 emit-mode 的替代通道
41
+ * (`approval/asked` / `approval/decided` 只是审计事件,不能应答)。
42
+ *
43
+ * 所以这里是一份**显式、极窄**的参与名单,而不是一句"waterfall 一律禁止"。
44
+ * 名单外的名字一律拒;名单内的处理器必须返回合法 outcome 或调用 next(),
45
+ * 绝不能返回 undefined —— 那正是把内核每个 turn 都搞崩的形状。
46
+ */
47
+ export declare const WATERFALL_PARTICIPANTS: readonly ["approval/request"];
48
+ export type WaterfallParticipant = (typeof WATERFALL_PARTICIPANTS)[number];
49
+ /** 允许以"参与者"身份注册的 waterfall 名。 */
50
+ export declare function canParticipate(name: string): boolean;
51
+ /** 这个事件名允许订阅吗?白名单外一律 false。 */
52
+ export declare function canSubscribe(name: string): boolean;
53
+ /**
54
+ * 包装宿主的事件注册口:只把白名单内的订阅透下去,
55
+ * 其余返回一个"什么都没做过"的退订函数并记一条告警。
56
+ *
57
+ * 为什么不抛:`apply()` 的红线是绝不向外抛异常,而"少订阅一个事件"只是少一类推送,
58
+ * 不该让插件整个不工作。
59
+ */
60
+ export declare function guardedSubscribe(on: (name: string, listener: (payload: never) => void) => unknown, name: string, listener: (payload: never) => void, warn: (message: string, fields?: Record<string, string | number | boolean>) => void): () => void;
@@ -0,0 +1,124 @@
1
+ /**
2
+ * guard — 事件订阅的唯一入口。
3
+ *
4
+ * cordis 的事件有两种派发模式:`emit`(观测者只是被告知)与 `waterfall`
5
+ * (**注册即参与**,监听函数的返回值就是"这一棒往下传的值")。
6
+ * 观测者若订阅了 waterfall 并返回 `undefined`,就把整条链的结果冲掉了。
7
+ *
8
+ * 事故(不是理论风险):旧插件为了可观测性订阅了 `agent/request`,
9
+ * 宿主在构造 LLM 请求那一步拿到的是插件监听器返回的 undefined,于是
10
+ * **内核进程里每一个 turn 都崩**,报 `Cannot read properties of undefined (reading 'provider')`,
11
+ * 连桌面 UI 里人工发消息也一起崩(取证 HANDOFF.md §4.4 与
12
+ * docs/legacy-spec/host-plugin-cordis.md §2.1,崩溃点在
13
+ * `@deepseek-ai/dsh-agent-loop/lib/index.js:685-691`)。
14
+ *
15
+ * 为什么这次是**白名单**而不是旧实现的 13 项黑名单:宿主自己有一份权威的
16
+ * 「事件名 + 派发模式」表(`@deepseek-ai/dsh-api-remotes/lib/types/remote-events.js:12-40`),
17
+ * 按它 `approval/request`、`user-questions/request`、`llm/stream`、
18
+ * `system-prompt/assemble`、`tools/pre-execute|execute|post-execute|code-dispatch-log`、
19
+ * `internal/config`、`internal/update` 都是 waterfall,而旧黑名单里一个都没有——
20
+ * **旧插件没出事只是因为它恰好没订阅这些名字**。黑名单在任何一次宿主代际升级后都会静默失效,
21
+ * 所以本文件的原则是:名单外的名字一律拒订,而不是名单外的名字一律放行。
22
+ */
23
+ /** 允许订阅的 emit-mode 事件(逐个附取证位置,缺一个就少一类能力)。 */
24
+ export const SUBSCRIBABLE_EVENTS = [
25
+ // 会话内的结构化事件(含 approval/asked|decided 这类审计事件)。
26
+ // 取证:@deepseek-ai/dsh-session/lib/types/index.d.ts:44(`session/event` 声明为 emit)
27
+ 'session/event',
28
+ // 新会话建立。取证:同上 :66
29
+ 'session/created',
30
+ // agent 运行状态(running/idle)。取证:@deepseek-ai/dsh-agent/lib/types/runtime-types.d.ts:169,316
31
+ 'agent/status',
32
+ // agent 出错。取证:同上
33
+ 'agent/error',
34
+ ];
35
+ /**
36
+ * 已知为 waterfall 的事件名。
37
+ *
38
+ * 这份清单**不参与放行判断**(放行只看白名单),它存在的意义只有一条:
39
+ * 让测试能自校验"白名单里绝不出现这里任何一个名字"。
40
+ * 取证位置见 docs/legacy-spec/host-plugin-cordis.md §2.1 的 13 项 + 由宿主
41
+ * `remote-events.js` 与 `@mode waterfall` 声明补出来的 8 项。
42
+ */
43
+ export const WATERFALL_EVENTS = [
44
+ 'agent/pre-step',
45
+ 'agent/request',
46
+ 'agent/request-error',
47
+ 'compaction/summary-error',
48
+ 'connection/request',
49
+ 'fs/edit-intent',
50
+ 'fs/write-intent',
51
+ 'internal/get',
52
+ 'internal/set',
53
+ 'internal/config',
54
+ 'internal/update',
55
+ 'loader/patch-context',
56
+ 'session-telemetry/record',
57
+ 'user-questions/request',
58
+ 'workspace/session-activity',
59
+ 'approval/request',
60
+ 'llm/stream',
61
+ 'system-prompt/assemble',
62
+ 'tools/pre-execute',
63
+ 'tools/execute',
64
+ 'tools/post-execute',
65
+ 'tools/code-dispatch-log',
66
+ ];
67
+ /**
68
+ * 允许**参与**的 waterfall(与"观测"是两件事)。
69
+ *
70
+ * `approval/request` 的官方契约就是"参与者返回 outcome 即认领这次决定,
71
+ * 或调用 `next()` 交还"(取证 @deepseek-ai/dsh-user-approval/lib/types/index.d.ts:16-24)。
72
+ * 也就是说:审批要想到达手机,只能参与这条 waterfall,没有 emit-mode 的替代通道
73
+ * (`approval/asked` / `approval/decided` 只是审计事件,不能应答)。
74
+ *
75
+ * 所以这里是一份**显式、极窄**的参与名单,而不是一句"waterfall 一律禁止"。
76
+ * 名单外的名字一律拒;名单内的处理器必须返回合法 outcome 或调用 next(),
77
+ * 绝不能返回 undefined —— 那正是把内核每个 turn 都搞崩的形状。
78
+ */
79
+ export const WATERFALL_PARTICIPANTS = ['approval/request'];
80
+ const allowed = new Set(SUBSCRIBABLE_EVENTS);
81
+ const participants = new Set(WATERFALL_PARTICIPANTS);
82
+ /** 允许以"参与者"身份注册的 waterfall 名。 */
83
+ export function canParticipate(name) {
84
+ return participants.has(name);
85
+ }
86
+ /** 这个事件名允许订阅吗?白名单外一律 false。 */
87
+ export function canSubscribe(name) {
88
+ return allowed.has(name);
89
+ }
90
+ /**
91
+ * 包装宿主的事件注册口:只把白名单内的订阅透下去,
92
+ * 其余返回一个"什么都没做过"的退订函数并记一条告警。
93
+ *
94
+ * 为什么不抛:`apply()` 的红线是绝不向外抛异常,而"少订阅一个事件"只是少一类推送,
95
+ * 不该让插件整个不工作。
96
+ */
97
+ export function guardedSubscribe(on, name, listener, warn) {
98
+ if (!canSubscribe(name)) {
99
+ warn('refusing to subscribe', { name, waterfall: WATERFALL_EVENTS.includes(name) });
100
+ return () => { };
101
+ }
102
+ try {
103
+ const disposer = on(name, listener);
104
+ return () => {
105
+ if (typeof disposer === 'function')
106
+ disposer();
107
+ else if (typeof on.off === 'function') {
108
+ // 有的 cordis 代际要靠 off 退订;这里同样是"尽力而为",失败不影响主流程。
109
+ try {
110
+ ;
111
+ on.off(name, listener);
112
+ }
113
+ catch {
114
+ /* 忽略 */
115
+ }
116
+ }
117
+ };
118
+ }
119
+ catch (error) {
120
+ warn('subscribe failed', { name, message: String(error?.message ?? error) });
121
+ return () => { };
122
+ }
123
+ }
124
+ //# sourceMappingURL=guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/platform/guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,8CAA8C;IAC9C,gFAAgF;IAChF,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,0FAA0F;IAC1F,cAAc;IACd,iBAAiB;IACjB,aAAa;CACL,CAAA;AAIV;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,gBAAgB;IAChB,eAAe;IACf,qBAAqB;IACrB,0BAA0B;IAC1B,oBAAoB;IACpB,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,0BAA0B;IAC1B,wBAAwB;IACxB,4BAA4B;IAC5B,kBAAkB;IAClB,YAAY;IACZ,wBAAwB;IACxB,mBAAmB;IACnB,eAAe;IACf,oBAAoB;IACpB,yBAAyB;CAC1B,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,kBAAkB,CAAU,CAAA;AAInE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,mBAAmB,CAAC,CAAA;AACpD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,sBAAsB,CAAC,CAAA;AAE5D,iCAAiC;AACjC,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,EAAiE,EACjE,IAAY,EACZ,QAAkC,EAClC,IAAmF;IAEnF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnF,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACjB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACnC,OAAO,GAAG,EAAE;YACV,IAAI,OAAO,QAAQ,KAAK,UAAU;gBAAG,QAAuB,EAAE,CAAA;iBACzD,IAAI,OAAQ,EAAmC,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gBACxE,8CAA8C;gBAC9C,IAAI,CAAC;oBACH,CAAC;oBAAC,EAA0D,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;gBAClF,CAAC;gBAAC,MAAM,CAAC;oBACP,QAAQ;gBACV,CAAC;YACH,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAE,KAAe,EAAE,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAA;QACvF,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * mock-kernel — 内存替身内核。
3
+ *
4
+ * 两个用途,且**只有这两个**:
5
+ * 1. 开发机上没有可用内核面时,让插件仍能完整跑通"配对 → 列表 → 发指令 → 流式输出",
6
+ * 用来验证传输层与运行时逻辑(这是 `e2e/run.mjs` 那类本地闭环的对面);
7
+ * 2. 单元测试里当内核替身,不必再手写 cordis 假对象。
8
+ *
9
+ * 一条纪律:它产生的会话 id 一律以 `ses_mock` 开头。真链路验收
10
+ * (`e2e/live-e2e.mjs`)里有专门一条断言"列表里出现 ses_mock 前缀就判失败"——
11
+ * 因为旧实现曾靠自建主机模式假通过,掩盖了"中继说配对成功、主机却把 peer 丢了"
12
+ * 这类真故障(取证 docs/legacy-spec/testing-and-tooling.md §2.4、§4)。
13
+ */
14
+ import type { SessionSummary } from 'dsh-remote-wire';
15
+ import type { QuestionItem } from 'dsh-remote-wire';
16
+ import type { ApprovalDecision, AskUserQuestionAnswerValue, Clock, InteractionSink, KernelEvent, KernelHistoryPage, KernelPort } from '../ports/index.js';
17
+ export interface MockKernelOptions {
18
+ clock: Clock;
19
+ log?: (message: string, fields?: Record<string, string | number | boolean | undefined>) => void;
20
+ /** 初始会话;不给就有两条默认会话(一条空闲、一条归档),够覆盖列表与恢复路径。 */
21
+ sessions?: SessionSummary[];
22
+ /** 手机发指令时是否自动回放一段流式输出(冒烟测试靠它验证 delta→done)。 */
23
+ autoReply?: boolean;
24
+ /** 模拟审批:收到指令后自动挂一次审批请求。 */
25
+ autoApproval?: boolean;
26
+ /** 假历史(seq 就是下标)。不给就用一份两轮的默认内容,够验证翻页与渲染。 */
27
+ history?: KernelEvent[];
28
+ /** 读历史时报错(用来验证"能力缺失要明确拒绝,而不是回一张空页")。 */
29
+ historyError?: string;
30
+ /** 新建会话时报错(用来验证"新建失败必须给出可读原因,不许静默")。 */
31
+ newSessionError?: string;
32
+ }
33
+ export declare class MockKernel implements KernelPort {
34
+ readonly carrier = "mock";
35
+ private readonly sessions;
36
+ private readonly listeners;
37
+ private sink;
38
+ private readonly running;
39
+ private sequence;
40
+ private readonly options;
41
+ constructor(options: MockKernelOptions);
42
+ listSessions(limit: number): Promise<{
43
+ summary: SessionSummary;
44
+ live: boolean;
45
+ }[]>;
46
+ runState(sessionId: string): Promise<{
47
+ running: boolean;
48
+ state: SessionSummary['state'];
49
+ }>;
50
+ sendPrompt(sessionId: string, text: string): Promise<{
51
+ ok: boolean;
52
+ message?: string;
53
+ }>;
54
+ interrupt(sessionId: string): Promise<{
55
+ ok: boolean;
56
+ message?: string;
57
+ }>;
58
+ /**
59
+ * 假的新建会话:造一个 id、塞进内存列表,行为与真实载体一致(列表里立刻能看见)。
60
+ * 这样"新建 → 列表出现 → 点进去"这条链在本地闭环里能真跑一遍。
61
+ * `newSessionError` 用来演"宿主没有这个能力"那一支。
62
+ */
63
+ newSession(): Promise<{
64
+ ok: boolean;
65
+ sessionId?: string;
66
+ message?: string;
67
+ }>;
68
+ subscribe(onEvent: (event: KernelEvent) => void): () => void;
69
+ /**
70
+ * 假历史:`seq` 就是下标,从后往前切一页。
71
+ * 翻页语义与真实载体一致(`beforeSeq` 是**排他**上界、省略游标=到底了),
72
+ * 所以小程序侧的翻页逻辑能在本地闭环里真跑一遍。
73
+ */
74
+ readHistory(sessionId: string, options: {
75
+ beforeSeq?: number;
76
+ limit: number;
77
+ }): Promise<KernelHistoryPage>;
78
+ attachInteractionSink(sink: InteractionSink): () => void;
79
+ ensureRunnable(sessionId: string): Promise<{
80
+ ok: boolean;
81
+ message?: string;
82
+ }>;
83
+ modelSelection(): {
84
+ provider: string;
85
+ model: string;
86
+ } | undefined;
87
+ describe(): Record<string, string | number | boolean>;
88
+ /** 测试/冒烟用:手动注入一条内核事件。 */
89
+ feed(event: KernelEvent): void;
90
+ /** 测试用:让一次审批由外部结算(返回手机回传的 decision)。 */
91
+ askApproval(sessionId: string, action: string): Promise<ApprovalDecision | undefined>;
92
+ askQuestion(sessionId: string, questions: QuestionItem[]): Promise<AskUserQuestionAnswerValue | null | undefined>;
93
+ private emit;
94
+ }
95
+ export declare function createMockKernel(options: MockKernelOptions): KernelPort;
@@ -0,0 +1,180 @@
1
+ /**
2
+ * 默认假历史:两轮,正好覆盖四种块的组合(指令 / 步骤组 / 正文 / 用户消息)。
3
+ * 故意不给 `done` 之外的收尾事件——历史里没有运行态。
4
+ */
5
+ function defaultHistory(sessionId) {
6
+ return [
7
+ { kind: 'delta', sessionId, messageId: 'mock_h1', text: '看看这个项目的完成度', role: 'user', done: true },
8
+ { kind: 'delta', sessionId, messageId: 'mock_h2', text: '我先看一下目录结构。', role: 'assistant', done: true },
9
+ {
10
+ kind: 'tool',
11
+ sessionId,
12
+ callId: 'mock_hc1',
13
+ phase: 'completed',
14
+ tool: 'Bash',
15
+ title: 'ls -la',
16
+ argsPreview: '{"command":"ls -la"}',
17
+ resultPreview: 'total 88',
18
+ },
19
+ { kind: 'delta', sessionId, messageId: 'mock_h3', text: '结构清楚了。', role: 'assistant', done: true },
20
+ { kind: 'delta', sessionId, messageId: 'mock_h4', text: '再跑一遍测试', role: 'user', done: true },
21
+ { kind: 'delta', sessionId, messageId: 'mock_h5', text: '测试全过。', role: 'assistant', done: true },
22
+ ];
23
+ }
24
+ export class MockKernel {
25
+ carrier = 'mock';
26
+ sessions;
27
+ listeners = new Set();
28
+ sink;
29
+ running = new Set();
30
+ sequence = 0;
31
+ options;
32
+ constructor(options) {
33
+ this.options = options;
34
+ this.sessions = options.sessions ?? [
35
+ { id: 'ses_mock_idle', state: 'idle', title: '冒烟会话', workspace: '/tmp/mock', running: false },
36
+ { id: 'ses_mock_archived', state: 'archived', title: '归档会话', workspace: '/tmp/mock', running: false },
37
+ ];
38
+ }
39
+ async listSessions(limit) {
40
+ return this.sessions.slice(0, limit).map((summary) => ({ summary, live: this.running.has(summary.id) }));
41
+ }
42
+ async runState(sessionId) {
43
+ const found = this.sessions.find((session) => session.id === sessionId);
44
+ return { running: this.running.has(sessionId), state: found?.state ?? 'idle' };
45
+ }
46
+ async sendPrompt(sessionId, text) {
47
+ const found = this.sessions.find((session) => session.id === sessionId);
48
+ if (!found)
49
+ return { ok: false, message: `会话不存在:${sessionId}` };
50
+ if (found.state === 'archived')
51
+ return { ok: false, message: '会话已归档,需先恢复' };
52
+ this.running.add(sessionId);
53
+ this.emit({ kind: 'run-state', sessionId, state: 'running' });
54
+ if (this.options.autoApproval !== false && this.sink) {
55
+ // 冒烟路径也走一遍真实的交互协议:审批卡、decision 逐字回传、锁续持。
56
+ const decision = await this.sink.approval({ sessionId, action: 'bash echo', reason: 'mock 审批' });
57
+ this.emit({
58
+ kind: 'tool',
59
+ sessionId,
60
+ callId: `call_${++this.sequence}`,
61
+ phase: 'started',
62
+ tool: 'bash',
63
+ title: 'echo',
64
+ });
65
+ this.emit({
66
+ kind: 'tool',
67
+ sessionId,
68
+ callId: `call_${this.sequence}`,
69
+ phase: 'completed',
70
+ tool: 'bash',
71
+ resultPreview: decision,
72
+ });
73
+ }
74
+ if (this.options.autoReply !== false) {
75
+ const messageId = `msg_${++this.sequence}`;
76
+ for (const chunk of [`收到:`, text.slice(0, 40)]) {
77
+ this.emit({ kind: 'delta', sessionId, messageId, text: chunk, done: false });
78
+ }
79
+ this.emit({ kind: 'delta', sessionId, messageId, text: '', done: true });
80
+ }
81
+ this.running.delete(sessionId);
82
+ this.emit({ kind: 'run-state', sessionId, state: 'idle' });
83
+ return { ok: true };
84
+ }
85
+ async interrupt(sessionId) {
86
+ if (!this.running.delete(sessionId))
87
+ return { ok: false, message: '这个会话现在没在跑' };
88
+ this.emit({ kind: 'run-state', sessionId, state: 'idle', detail: 'interrupted' });
89
+ return { ok: true };
90
+ }
91
+ /**
92
+ * 假的新建会话:造一个 id、塞进内存列表,行为与真实载体一致(列表里立刻能看见)。
93
+ * 这样"新建 → 列表出现 → 点进去"这条链在本地闭环里能真跑一遍。
94
+ * `newSessionError` 用来演"宿主没有这个能力"那一支。
95
+ */
96
+ async newSession() {
97
+ if (this.options.newSessionError)
98
+ return { ok: false, message: this.options.newSessionError };
99
+ const sessionId = `ses_mock_new_${++this.sequence}`;
100
+ this.sessions.unshift({ id: sessionId, state: 'idle', running: false });
101
+ return { ok: true, sessionId };
102
+ }
103
+ subscribe(onEvent) {
104
+ this.listeners.add(onEvent);
105
+ return () => this.listeners.delete(onEvent);
106
+ }
107
+ /**
108
+ * 假历史:`seq` 就是下标,从后往前切一页。
109
+ * 翻页语义与真实载体一致(`beforeSeq` 是**排他**上界、省略游标=到底了),
110
+ * 所以小程序侧的翻页逻辑能在本地闭环里真跑一遍。
111
+ */
112
+ async readHistory(sessionId, options) {
113
+ if (this.options.historyError)
114
+ throw new Error(this.options.historyError);
115
+ const log = this.options.history ?? defaultHistory(sessionId);
116
+ const upTo = options.beforeSeq === undefined ? log.length : Math.max(0, Math.min(log.length, options.beforeSeq));
117
+ const from = Math.max(0, upTo - Math.max(1, options.limit));
118
+ return {
119
+ events: log.slice(from, upTo),
120
+ ...(from > 0 ? { nextBeforeSeq: from } : {}),
121
+ };
122
+ }
123
+ attachInteractionSink(sink) {
124
+ this.sink = sink;
125
+ return () => {
126
+ if (this.sink === sink)
127
+ this.sink = undefined;
128
+ };
129
+ }
130
+ async ensureRunnable(sessionId) {
131
+ const found = this.sessions.find((session) => session.id === sessionId);
132
+ if (!found)
133
+ return { ok: false, message: `会话不存在:${sessionId}` };
134
+ if (found.state === 'archived') {
135
+ found.state = 'idle';
136
+ this.emit({ kind: 'sessions-changed', reason: 'unarchived' });
137
+ }
138
+ return { ok: true };
139
+ }
140
+ modelSelection() {
141
+ return { provider: 'mock', model: 'mock-model' };
142
+ }
143
+ describe() {
144
+ return {
145
+ carrier: this.carrier,
146
+ sessions: this.sessions.length,
147
+ running: this.running.size,
148
+ sinkAttached: this.sink !== undefined,
149
+ };
150
+ }
151
+ /** 测试/冒烟用:手动注入一条内核事件。 */
152
+ feed(event) {
153
+ this.emit(event);
154
+ }
155
+ /** 测试用:让一次审批由外部结算(返回手机回传的 decision)。 */
156
+ async askApproval(sessionId, action) {
157
+ if (!this.sink)
158
+ return undefined;
159
+ return this.sink.approval({ sessionId, action, reason: 'mock 审批' });
160
+ }
161
+ async askQuestion(sessionId, questions) {
162
+ if (!this.sink)
163
+ return undefined;
164
+ return this.sink.question({ sessionId, questions });
165
+ }
166
+ emit(event) {
167
+ for (const listener of this.listeners) {
168
+ try {
169
+ listener(event);
170
+ }
171
+ catch {
172
+ /* 一个监听器坏了不能影响其它监听器 */
173
+ }
174
+ }
175
+ }
176
+ }
177
+ export function createMockKernel(options) {
178
+ return new MockKernel(options);
179
+ }
180
+ //# sourceMappingURL=mock-kernel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-kernel.js","sourceRoot":"","sources":["../../../src/platform/mock-kernel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export type QrStyle = 'ascii' | 'block' | 'half';
2
+ export interface QrOptions {
3
+ /** 纠错等级;屏幕对手机取景用 M 足够。 */
4
+ ecc?: 'L' | 'M' | 'Q' | 'H';
5
+ /** 静默区(模块数)。规范要 4,屏幕取景 2 通常也能扫。 */
6
+ quietZone?: number;
7
+ style?: QrStyle;
8
+ /** 用 ANSI 黑底白字包住输出。默认关:宿主不解析 ANSI 时会打成乱码。 */
9
+ ansi?: boolean;
10
+ }
11
+ /** 取二维码的布尔矩阵(含静默区)。 */
12
+ export declare function qrMatrix(text: string, ecc?: 'L' | 'M' | 'Q' | 'H', quietZone?: number): Promise<boolean[][]>;
13
+ /** 渲染成终端文本。 */
14
+ export declare function renderTerminalQr(text: string, options?: QrOptions): Promise<string>;
15
+ /**
16
+ * 生成 PNG。
17
+ *
18
+ * 为什么这是配对二维码的**首选输出**:DSH 的命令 API 只接受纯文本结果
19
+ * (`{kind, text}`,没有图片或附件类型),所以命令里没法把图交给 TUI;
20
+ * 但插件跑在主机上,可以直接写一个 PNG 并把它打开——真图像永远扫得出来。
21
+ */
22
+ export declare function qrPng(text: string, options?: {
23
+ ecc?: 'L' | 'M' | 'Q' | 'H';
24
+ quietZone?: number;
25
+ scale?: number;
26
+ }): Promise<Buffer>;
27
+ /** 二维码的模块数(测试用来断言静默区与几何,不依赖肉眼)。 */
28
+ export declare function qrModuleCount(text: string, ecc?: 'L' | 'M' | 'Q' | 'H'): Promise<number>;