shennian 0.2.0 → 0.2.5

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 (282) hide show
  1. package/dist/bin/shennian.d.ts +0 -1
  2. package/dist/bin/shennian.js +0 -1
  3. package/dist/src/agents/adapter.d.ts +0 -1
  4. package/dist/src/agents/adapter.js +0 -1
  5. package/dist/src/agents/claude.d.ts +1 -1
  6. package/dist/src/agents/claude.js +12 -6
  7. package/dist/src/agents/codex.d.ts +18 -1
  8. package/dist/src/agents/codex.js +372 -13
  9. package/dist/src/agents/command-spec.d.ts +28 -3
  10. package/dist/src/agents/command-spec.js +251 -10
  11. package/dist/src/agents/cursor.d.ts +0 -1
  12. package/dist/src/agents/cursor.js +2 -4
  13. package/dist/src/agents/custom.d.ts +0 -6
  14. package/dist/src/agents/custom.js +4 -40
  15. package/dist/src/agents/detect.d.ts +0 -1
  16. package/dist/src/agents/detect.js +0 -1
  17. package/dist/src/agents/gemini.d.ts +0 -1
  18. package/dist/src/agents/gemini.js +7 -3
  19. package/dist/src/agents/model-registry/cache.d.ts +0 -1
  20. package/dist/src/agents/model-registry/cache.js +0 -1
  21. package/dist/src/agents/model-registry/discovery.d.ts +0 -1
  22. package/dist/src/agents/model-registry/discovery.js +90 -48
  23. package/dist/src/agents/model-registry/parsers.d.ts +4 -1
  24. package/dist/src/agents/model-registry/parsers.js +168 -1
  25. package/dist/src/agents/model-registry/runner.d.ts +2 -7
  26. package/dist/src/agents/model-registry/runner.js +3 -134
  27. package/dist/src/agents/model-registry/service.d.ts +0 -1
  28. package/dist/src/agents/model-registry/service.js +12 -10
  29. package/dist/src/agents/model-registry/types.d.ts +0 -1
  30. package/dist/src/agents/model-registry/types.js +0 -1
  31. package/dist/src/agents/model-registry.d.ts +3 -2
  32. package/dist/src/agents/model-registry.js +3 -2
  33. package/dist/src/agents/openclaw.d.ts +0 -1
  34. package/dist/src/agents/openclaw.js +13 -4
  35. package/dist/src/agents/pi.d.ts +0 -1
  36. package/dist/src/agents/pi.js +0 -1
  37. package/dist/src/commands/agent.d.ts +0 -1
  38. package/dist/src/commands/agent.js +2 -33
  39. package/dist/src/commands/daemon.d.ts +6 -1
  40. package/dist/src/commands/daemon.js +153 -18
  41. package/dist/src/commands/pair-qr.d.ts +0 -1
  42. package/dist/src/commands/pair-qr.js +0 -1
  43. package/dist/src/commands/pair.d.ts +0 -1
  44. package/dist/src/commands/pair.js +0 -1
  45. package/dist/src/commands/upgrade.d.ts +0 -1
  46. package/dist/src/commands/upgrade.js +0 -1
  47. package/dist/src/config/index.d.ts +0 -1
  48. package/dist/src/config/index.js +0 -1
  49. package/dist/src/fs/handler.d.ts +0 -1
  50. package/dist/src/fs/handler.js +18 -1
  51. package/dist/src/fs/security.d.ts +0 -1
  52. package/dist/src/fs/security.js +5 -1
  53. package/dist/src/index.d.ts +0 -1
  54. package/dist/src/index.js +36 -8
  55. package/dist/src/log-reporter.d.ts +0 -1
  56. package/dist/src/log-reporter.js +2 -20
  57. package/dist/src/native-fusion/parsers.d.ts +0 -1
  58. package/dist/src/native-fusion/parsers.js +407 -44
  59. package/dist/src/native-fusion/service.d.ts +0 -1
  60. package/dist/src/native-fusion/service.js +16 -10
  61. package/dist/src/native-fusion/state.d.ts +0 -1
  62. package/dist/src/native-fusion/state.js +0 -1
  63. package/dist/src/native-fusion/types.d.ts +0 -1
  64. package/dist/src/native-fusion/types.js +0 -1
  65. package/dist/src/region.d.ts +0 -1
  66. package/dist/src/region.js +0 -1
  67. package/dist/src/relay/client.d.ts +11 -2
  68. package/dist/src/relay/client.js +22 -4
  69. package/dist/src/session/handlers/agents.d.ts +0 -1
  70. package/dist/src/session/handlers/agents.js +0 -1
  71. package/dist/src/session/handlers/chat.d.ts +0 -1
  72. package/dist/src/session/handlers/chat.js +49 -8
  73. package/dist/src/session/handlers/control.d.ts +0 -1
  74. package/dist/src/session/handlers/control.js +0 -1
  75. package/dist/src/session/handlers/fs.d.ts +0 -1
  76. package/dist/src/session/handlers/fs.js +37 -3
  77. package/dist/src/session/manager.d.ts +1 -1
  78. package/dist/src/session/manager.js +23 -4
  79. package/dist/src/session/store.d.ts +0 -1
  80. package/dist/src/session/store.js +0 -1
  81. package/dist/src/session/types.d.ts +6 -1
  82. package/dist/src/session/types.js +0 -1
  83. package/dist/src/upgrade/engine.d.ts +0 -1
  84. package/dist/src/upgrade/engine.js +0 -1
  85. package/package.json +3 -2
  86. package/dist/bin/shennian.d.ts.map +0 -1
  87. package/dist/bin/shennian.js.map +0 -1
  88. package/dist/src/__experiments__/probe-debug.d.ts +0 -2
  89. package/dist/src/__experiments__/probe-debug.d.ts.map +0 -1
  90. package/dist/src/__experiments__/probe-debug.js +0 -66
  91. package/dist/src/__experiments__/probe-debug.js.map +0 -1
  92. package/dist/src/__experiments__/probe-final-benchmark.d.ts +0 -3
  93. package/dist/src/__experiments__/probe-final-benchmark.d.ts.map +0 -1
  94. package/dist/src/__experiments__/probe-final-benchmark.js +0 -234
  95. package/dist/src/__experiments__/probe-final-benchmark.js.map +0 -1
  96. package/dist/src/__experiments__/probe-models-final.d.ts +0 -19
  97. package/dist/src/__experiments__/probe-models-final.d.ts.map +0 -1
  98. package/dist/src/__experiments__/probe-models-final.js +0 -250
  99. package/dist/src/__experiments__/probe-models-final.js.map +0 -1
  100. package/dist/src/__experiments__/probe-models.d.ts +0 -7
  101. package/dist/src/__experiments__/probe-models.d.ts.map +0 -1
  102. package/dist/src/__experiments__/probe-models.js +0 -251
  103. package/dist/src/__experiments__/probe-models.js.map +0 -1
  104. package/dist/src/__tests__/agents-e2e.d.ts +0 -21
  105. package/dist/src/__tests__/agents-e2e.d.ts.map +0 -1
  106. package/dist/src/__tests__/agents-e2e.js +0 -146
  107. package/dist/src/__tests__/agents-e2e.js.map +0 -1
  108. package/dist/src/__tests__/claude-adapter.test.d.ts +0 -2
  109. package/dist/src/__tests__/claude-adapter.test.d.ts.map +0 -1
  110. package/dist/src/__tests__/claude-adapter.test.js +0 -75
  111. package/dist/src/__tests__/claude-adapter.test.js.map +0 -1
  112. package/dist/src/__tests__/codex-adapter.test.d.ts +0 -2
  113. package/dist/src/__tests__/codex-adapter.test.d.ts.map +0 -1
  114. package/dist/src/__tests__/codex-adapter.test.js +0 -224
  115. package/dist/src/__tests__/codex-adapter.test.js.map +0 -1
  116. package/dist/src/__tests__/config.test.d.ts +0 -2
  117. package/dist/src/__tests__/config.test.d.ts.map +0 -1
  118. package/dist/src/__tests__/config.test.js +0 -60
  119. package/dist/src/__tests__/config.test.js.map +0 -1
  120. package/dist/src/__tests__/cursor-adapter.test.d.ts +0 -2
  121. package/dist/src/__tests__/cursor-adapter.test.d.ts.map +0 -1
  122. package/dist/src/__tests__/cursor-adapter.test.js +0 -69
  123. package/dist/src/__tests__/cursor-adapter.test.js.map +0 -1
  124. package/dist/src/__tests__/custom-agent-flow.test.d.ts +0 -2
  125. package/dist/src/__tests__/custom-agent-flow.test.d.ts.map +0 -1
  126. package/dist/src/__tests__/custom-agent-flow.test.js +0 -244
  127. package/dist/src/__tests__/custom-agent-flow.test.js.map +0 -1
  128. package/dist/src/__tests__/daemon-autostart.test.d.ts +0 -2
  129. package/dist/src/__tests__/daemon-autostart.test.d.ts.map +0 -1
  130. package/dist/src/__tests__/daemon-autostart.test.js +0 -60
  131. package/dist/src/__tests__/daemon-autostart.test.js.map +0 -1
  132. package/dist/src/__tests__/e2e-relay.d.ts +0 -19
  133. package/dist/src/__tests__/e2e-relay.d.ts.map +0 -1
  134. package/dist/src/__tests__/e2e-relay.js +0 -256
  135. package/dist/src/__tests__/e2e-relay.js.map +0 -1
  136. package/dist/src/__tests__/model-discovery.test.d.ts +0 -2
  137. package/dist/src/__tests__/model-discovery.test.d.ts.map +0 -1
  138. package/dist/src/__tests__/model-discovery.test.js +0 -47
  139. package/dist/src/__tests__/model-discovery.test.js.map +0 -1
  140. package/dist/src/__tests__/model-switching.test.d.ts +0 -2
  141. package/dist/src/__tests__/model-switching.test.d.ts.map +0 -1
  142. package/dist/src/__tests__/model-switching.test.js +0 -253
  143. package/dist/src/__tests__/model-switching.test.js.map +0 -1
  144. package/dist/src/__tests__/native-fusion-parsers.test.d.ts +0 -2
  145. package/dist/src/__tests__/native-fusion-parsers.test.d.ts.map +0 -1
  146. package/dist/src/__tests__/native-fusion-parsers.test.js +0 -216
  147. package/dist/src/__tests__/native-fusion-parsers.test.js.map +0 -1
  148. package/dist/src/__tests__/native-fusion-service.test.d.ts +0 -2
  149. package/dist/src/__tests__/native-fusion-service.test.d.ts.map +0 -1
  150. package/dist/src/__tests__/native-fusion-service.test.js +0 -157
  151. package/dist/src/__tests__/native-fusion-service.test.js.map +0 -1
  152. package/dist/src/__tests__/native-session-sync.test.d.ts +0 -2
  153. package/dist/src/__tests__/native-session-sync.test.d.ts.map +0 -1
  154. package/dist/src/__tests__/native-session-sync.test.js +0 -198
  155. package/dist/src/__tests__/native-session-sync.test.js.map +0 -1
  156. package/dist/src/__tests__/pair-qr.test.d.ts +0 -2
  157. package/dist/src/__tests__/pair-qr.test.d.ts.map +0 -1
  158. package/dist/src/__tests__/pair-qr.test.js +0 -13
  159. package/dist/src/__tests__/pair-qr.test.js.map +0 -1
  160. package/dist/src/__tests__/pi-context.test.d.ts +0 -2
  161. package/dist/src/__tests__/pi-context.test.d.ts.map +0 -1
  162. package/dist/src/__tests__/pi-context.test.js +0 -261
  163. package/dist/src/__tests__/pi-context.test.js.map +0 -1
  164. package/dist/src/__tests__/session-manager.test.d.ts +0 -2
  165. package/dist/src/__tests__/session-manager.test.d.ts.map +0 -1
  166. package/dist/src/__tests__/session-manager.test.js +0 -592
  167. package/dist/src/__tests__/session-manager.test.js.map +0 -1
  168. package/dist/src/__tests__/session-store.test.d.ts +0 -2
  169. package/dist/src/__tests__/session-store.test.d.ts.map +0 -1
  170. package/dist/src/__tests__/session-store.test.js +0 -106
  171. package/dist/src/__tests__/session-store.test.js.map +0 -1
  172. package/dist/src/agents/adapter.d.ts.map +0 -1
  173. package/dist/src/agents/adapter.js.map +0 -1
  174. package/dist/src/agents/claude.d.ts.map +0 -1
  175. package/dist/src/agents/claude.js.map +0 -1
  176. package/dist/src/agents/codex.d.ts.map +0 -1
  177. package/dist/src/agents/codex.js.map +0 -1
  178. package/dist/src/agents/command-spec.d.ts.map +0 -1
  179. package/dist/src/agents/command-spec.js.map +0 -1
  180. package/dist/src/agents/cursor.d.ts.map +0 -1
  181. package/dist/src/agents/cursor.js.map +0 -1
  182. package/dist/src/agents/custom.d.ts.map +0 -1
  183. package/dist/src/agents/custom.js.map +0 -1
  184. package/dist/src/agents/detect.d.ts.map +0 -1
  185. package/dist/src/agents/detect.js.map +0 -1
  186. package/dist/src/agents/gemini.d.ts.map +0 -1
  187. package/dist/src/agents/gemini.js.map +0 -1
  188. package/dist/src/agents/model-registry/cache.d.ts.map +0 -1
  189. package/dist/src/agents/model-registry/cache.js.map +0 -1
  190. package/dist/src/agents/model-registry/discovery.d.ts.map +0 -1
  191. package/dist/src/agents/model-registry/discovery.js.map +0 -1
  192. package/dist/src/agents/model-registry/parsers.d.ts.map +0 -1
  193. package/dist/src/agents/model-registry/parsers.js.map +0 -1
  194. package/dist/src/agents/model-registry/runner.d.ts.map +0 -1
  195. package/dist/src/agents/model-registry/runner.js.map +0 -1
  196. package/dist/src/agents/model-registry/service.d.ts.map +0 -1
  197. package/dist/src/agents/model-registry/service.js.map +0 -1
  198. package/dist/src/agents/model-registry/types.d.ts.map +0 -1
  199. package/dist/src/agents/model-registry/types.js.map +0 -1
  200. package/dist/src/agents/model-registry.d.ts.map +0 -1
  201. package/dist/src/agents/model-registry.js.map +0 -1
  202. package/dist/src/agents/openclaw.d.ts.map +0 -1
  203. package/dist/src/agents/openclaw.js.map +0 -1
  204. package/dist/src/agents/pi.d.ts.map +0 -1
  205. package/dist/src/agents/pi.js.map +0 -1
  206. package/dist/src/commands/agent.d.ts.map +0 -1
  207. package/dist/src/commands/agent.js.map +0 -1
  208. package/dist/src/commands/daemon.d.ts.map +0 -1
  209. package/dist/src/commands/daemon.js.map +0 -1
  210. package/dist/src/commands/pair-qr.d.ts.map +0 -1
  211. package/dist/src/commands/pair-qr.js.map +0 -1
  212. package/dist/src/commands/pair.d.ts.map +0 -1
  213. package/dist/src/commands/pair.js.map +0 -1
  214. package/dist/src/commands/upgrade.d.ts.map +0 -1
  215. package/dist/src/commands/upgrade.js.map +0 -1
  216. package/dist/src/config/index.d.ts.map +0 -1
  217. package/dist/src/config/index.js.map +0 -1
  218. package/dist/src/fs/handler.d.ts.map +0 -1
  219. package/dist/src/fs/handler.js.map +0 -1
  220. package/dist/src/fs/multimodal.d.ts +0 -5
  221. package/dist/src/fs/multimodal.d.ts.map +0 -1
  222. package/dist/src/fs/multimodal.js +0 -39
  223. package/dist/src/fs/multimodal.js.map +0 -1
  224. package/dist/src/fs/security.d.ts.map +0 -1
  225. package/dist/src/fs/security.js.map +0 -1
  226. package/dist/src/index.d.ts.map +0 -1
  227. package/dist/src/index.js.map +0 -1
  228. package/dist/src/log-reporter.d.ts.map +0 -1
  229. package/dist/src/log-reporter.js.map +0 -1
  230. package/dist/src/native-fusion/parsers.d.ts.map +0 -1
  231. package/dist/src/native-fusion/parsers.js.map +0 -1
  232. package/dist/src/native-fusion/service.d.ts.map +0 -1
  233. package/dist/src/native-fusion/service.js.map +0 -1
  234. package/dist/src/native-fusion/state.d.ts.map +0 -1
  235. package/dist/src/native-fusion/state.js.map +0 -1
  236. package/dist/src/native-fusion/types.d.ts.map +0 -1
  237. package/dist/src/native-fusion/types.js.map +0 -1
  238. package/dist/src/native-sync/discover.d.ts +0 -6
  239. package/dist/src/native-sync/discover.d.ts.map +0 -1
  240. package/dist/src/native-sync/discover.js +0 -69
  241. package/dist/src/native-sync/discover.js.map +0 -1
  242. package/dist/src/native-sync/parsers.d.ts +0 -3
  243. package/dist/src/native-sync/parsers.d.ts.map +0 -1
  244. package/dist/src/native-sync/parsers.js +0 -373
  245. package/dist/src/native-sync/parsers.js.map +0 -1
  246. package/dist/src/native-sync/service.d.ts +0 -16
  247. package/dist/src/native-sync/service.d.ts.map +0 -1
  248. package/dist/src/native-sync/service.js +0 -95
  249. package/dist/src/native-sync/service.js.map +0 -1
  250. package/dist/src/native-sync/state.d.ts +0 -6
  251. package/dist/src/native-sync/state.d.ts.map +0 -1
  252. package/dist/src/native-sync/state.js +0 -34
  253. package/dist/src/native-sync/state.js.map +0 -1
  254. package/dist/src/native-sync/types.d.ts +0 -23
  255. package/dist/src/native-sync/types.d.ts.map +0 -1
  256. package/dist/src/native-sync/types.js +0 -4
  257. package/dist/src/native-sync/types.js.map +0 -1
  258. package/dist/src/region.d.ts.map +0 -1
  259. package/dist/src/region.js.map +0 -1
  260. package/dist/src/relay/client.d.ts.map +0 -1
  261. package/dist/src/relay/client.js.map +0 -1
  262. package/dist/src/session/handlers/agents.d.ts.map +0 -1
  263. package/dist/src/session/handlers/agents.js.map +0 -1
  264. package/dist/src/session/handlers/chat.d.ts.map +0 -1
  265. package/dist/src/session/handlers/chat.js.map +0 -1
  266. package/dist/src/session/handlers/control.d.ts.map +0 -1
  267. package/dist/src/session/handlers/control.js.map +0 -1
  268. package/dist/src/session/handlers/fs.d.ts.map +0 -1
  269. package/dist/src/session/handlers/fs.js.map +0 -1
  270. package/dist/src/session/handlers/queue.d.ts +0 -4
  271. package/dist/src/session/handlers/queue.d.ts.map +0 -1
  272. package/dist/src/session/handlers/queue.js +0 -66
  273. package/dist/src/session/handlers/queue.js.map +0 -1
  274. package/dist/src/session/manager.d.ts.map +0 -1
  275. package/dist/src/session/manager.js.map +0 -1
  276. package/dist/src/session/store.d.ts.map +0 -1
  277. package/dist/src/session/store.js.map +0 -1
  278. package/dist/src/session/types.d.ts.map +0 -1
  279. package/dist/src/session/types.js.map +0 -1
  280. package/dist/src/upgrade/engine.d.ts.map +0 -1
  281. package/dist/src/upgrade/engine.js.map +0 -1
  282. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,592 +0,0 @@
1
- // @covers src/session/manager.ts
2
- import { describe, it, expect, vi, beforeEach } from 'vitest';
3
- import { EventEmitter } from 'node:events';
4
- vi.mock('node:fs', async (importOriginal) => {
5
- const actual = await importOriginal();
6
- return {
7
- ...actual,
8
- statSync: vi.fn((_p) => ({ size: 1024 * 100 })), // default: 100 KB
9
- mkdirSync: vi.fn(),
10
- writeFileSync: vi.fn(),
11
- readFileSync: vi.fn(() => Buffer.from('')),
12
- readdirSync: vi.fn(() => []),
13
- };
14
- });
15
- const mockAdapter = () => {
16
- const adapter = Object.assign(new EventEmitter(), {
17
- type: 'claude',
18
- start: vi.fn(async () => { }),
19
- send: vi.fn(async (_text, _modelId) => { }),
20
- resume: vi.fn(async () => { }),
21
- stop: vi.fn(async () => { }),
22
- });
23
- return adapter;
24
- };
25
- const { mockCreateAgent } = vi.hoisted(() => ({
26
- mockCreateAgent: vi.fn(),
27
- }));
28
- const { mockLookupClaudeTranscriptCwd } = vi.hoisted(() => ({
29
- mockLookupClaudeTranscriptCwd: vi.fn(),
30
- }));
31
- vi.mock('../agents/adapter.js', async (importOriginal) => {
32
- const orig = await importOriginal();
33
- return { ...orig, createAgent: mockCreateAgent };
34
- });
35
- vi.mock('../agents/claude.js', () => ({}));
36
- vi.mock('../agents/codex.js', () => ({}));
37
- vi.mock('../agents/gemini.js', () => ({}));
38
- vi.mock('../agents/cursor.js', () => ({}));
39
- vi.mock('../agents/openclaw.js', () => ({}));
40
- vi.mock('../agents/pi.js', () => ({}));
41
- vi.mock('../native-fusion/parsers.js', () => ({
42
- lookupClaudeTranscriptCwd: mockLookupClaudeTranscriptCwd,
43
- }));
44
- import { SessionManager } from '../session/manager.js';
45
- function createMockClient() {
46
- return {
47
- sendRes: vi.fn(),
48
- sendEvent: vi.fn(),
49
- sendAgentEvent: vi.fn(),
50
- };
51
- }
52
- describe('SessionManager', () => {
53
- let client;
54
- let manager;
55
- beforeEach(() => {
56
- vi.clearAllMocks();
57
- mockLookupClaudeTranscriptCwd.mockReturnValue(null);
58
- client = createMockClient();
59
- manager = new SessionManager(client);
60
- });
61
- describe('agent events include sessionId', () => {
62
- it('includes sessionId in agentEvent payloads', async () => {
63
- const adapter = mockAdapter();
64
- mockCreateAgent.mockReturnValue(adapter);
65
- await manager.handleReq({
66
- type: 'req',
67
- id: 'r1',
68
- method: 'chat.send',
69
- params: { sessionId: 'sess-abc', text: 'hello', agentType: 'claude', workDir: '/tmp' },
70
- });
71
- // Simulate adapter emitting an event
72
- const agentEvent = { state: 'delta', runId: 'run1', seq: 0, text: 'Hi' };
73
- adapter.emit('agentEvent', agentEvent);
74
- expect(client.sendAgentEvent).toHaveBeenCalledWith(expect.objectContaining({
75
- type: 'event',
76
- event: 'agent',
77
- id: 'agent-evt-run1-0',
78
- payload: expect.objectContaining({
79
- state: 'delta',
80
- sessionId: 'sess-abc',
81
- text: 'Hi',
82
- }),
83
- }));
84
- });
85
- it('includes sessionId in error events', async () => {
86
- const adapter = mockAdapter();
87
- mockCreateAgent.mockReturnValue(adapter);
88
- await manager.handleReq({
89
- type: 'req',
90
- id: 'r1',
91
- method: 'chat.send',
92
- params: { sessionId: 'sess-xyz', text: 'hi', agentType: 'claude', workDir: '/tmp' },
93
- });
94
- adapter.emit('error', new Error('CLI crashed'));
95
- expect(client.sendEvent).toHaveBeenCalledWith(expect.objectContaining({
96
- payload: expect.objectContaining({
97
- state: 'error',
98
- sessionId: 'sess-xyz',
99
- message: 'CLI crashed',
100
- }),
101
- }));
102
- });
103
- it('events from different sessions have correct sessionId', async () => {
104
- const adapterA = mockAdapter();
105
- const adapterB = mockAdapter();
106
- mockCreateAgent.mockReturnValueOnce(adapterA).mockReturnValueOnce(adapterB);
107
- await manager.handleReq({
108
- type: 'req', id: 'r1', method: 'chat.send',
109
- params: { sessionId: 'sess-A', text: 'hi', agentType: 'claude', workDir: '/tmp' },
110
- });
111
- await manager.handleReq({
112
- type: 'req', id: 'r2', method: 'chat.send',
113
- params: { sessionId: 'sess-B', text: 'yo', agentType: 'codex', workDir: '/tmp' },
114
- });
115
- adapterA.emit('agentEvent', { state: 'delta', runId: 'rA', seq: 0, text: 'from A' });
116
- adapterB.emit('agentEvent', { state: 'delta', runId: 'rB', seq: 0, text: 'from B' });
117
- const calls = client.sendAgentEvent.mock.calls.map((c) => c[0].payload);
118
- const aEvent = calls.find((p) => p.text === 'from A');
119
- const bEvent = calls.find((p) => p.text === 'from B');
120
- expect(aEvent?.sessionId).toBe('sess-A');
121
- expect(bEvent?.sessionId).toBe('sess-B');
122
- });
123
- });
124
- describe('attachments', () => {
125
- it('无附件时直接传递原始文本', async () => {
126
- const adapter = mockAdapter();
127
- mockCreateAgent.mockReturnValue(adapter);
128
- await manager.handleReq({
129
- type: 'req', id: 'r1', method: 'chat.send',
130
- params: { sessionId: 'sess-1', text: 'hello', agentType: 'claude', workDir: '/tmp' },
131
- });
132
- expect(adapter.send).toHaveBeenCalledWith('hello', undefined);
133
- });
134
- it('有附件时在文本前注入 [附件] 路径行', async () => {
135
- const adapter = mockAdapter();
136
- mockCreateAgent.mockReturnValue(adapter);
137
- await manager.handleReq({
138
- type: 'req', id: 'r1', method: 'chat.send',
139
- params: {
140
- sessionId: 'sess-2',
141
- text: '这是什么图?',
142
- agentType: 'claude',
143
- workDir: '/tmp',
144
- attachments: [{ path: '/tmp/.uploads/shot.png', name: 'shot.png', mimeType: 'image/png' }],
145
- },
146
- });
147
- const sentText = adapter.send.mock.calls[0][0];
148
- expect(sentText).toBe('这是什么图?');
149
- });
150
- it('附件参数不再影响发送文本', async () => {
151
- const adapter = mockAdapter();
152
- mockCreateAgent.mockReturnValue(adapter);
153
- await manager.handleReq({
154
- type: 'req', id: 'r1', method: 'chat.send',
155
- params: {
156
- sessionId: 'sess-3',
157
- text: '帮我看看',
158
- agentType: 'claude',
159
- workDir: '/tmp',
160
- attachments: [
161
- { path: '/tmp/a.png', name: 'a.png', mimeType: 'image/png' },
162
- { path: '/tmp/b.json', name: 'b.json', mimeType: 'application/json' },
163
- ],
164
- },
165
- });
166
- const sentText = adapter.send.mock.calls[0][0];
167
- expect(sentText).toBe('帮我看看');
168
- });
169
- });
170
- describe('agentSessionId persistence', () => {
171
- it('passes agentSessionId from chat.send params to adapter.start', async () => {
172
- const adapter = mockAdapter();
173
- mockCreateAgent.mockReturnValue(adapter);
174
- await manager.handleReq({
175
- type: 'req', id: 'r1', method: 'chat.send',
176
- params: {
177
- sessionId: 'sess-resume',
178
- text: 'hello',
179
- agentType: 'claude',
180
- workDir: '/tmp',
181
- agentSessionId: 'claude-sid-123',
182
- },
183
- });
184
- expect(adapter.start).toHaveBeenCalledWith('sess-resume', expect.any(String), 'claude-sid-123');
185
- });
186
- it('emits session.update when agent reports agentSessionId on final', async () => {
187
- const adapter = mockAdapter();
188
- mockCreateAgent.mockReturnValue(adapter);
189
- await manager.handleReq({
190
- type: 'req', id: 'r1', method: 'chat.send',
191
- params: { sessionId: 'sess-new', text: 'hi', agentType: 'claude', workDir: '/tmp' },
192
- });
193
- const finalEvent = {
194
- state: 'final',
195
- runId: 'run1',
196
- seq: 1,
197
- agentSessionId: 'claude-sid-456',
198
- };
199
- adapter.emit('agentEvent', finalEvent);
200
- const sessionUpdateCall = client.sendEvent.mock.calls.find((c) => c[0].event === 'session.update');
201
- expect(sessionUpdateCall).toBeDefined();
202
- expect(sessionUpdateCall[0]).toEqual(expect.objectContaining({
203
- type: 'event',
204
- event: 'session.update',
205
- payload: {
206
- session: {
207
- id: 'sess-new',
208
- agentType: 'claude',
209
- agentSessionId: 'claude-sid-456',
210
- },
211
- },
212
- }));
213
- });
214
- it('does not emit session.update when final has no agentSessionId', async () => {
215
- const adapter = mockAdapter();
216
- mockCreateAgent.mockReturnValue(adapter);
217
- await manager.handleReq({
218
- type: 'req', id: 'r1', method: 'chat.send',
219
- params: { sessionId: 'sess-no-sid', text: 'hi', agentType: 'codex', workDir: '/tmp' },
220
- });
221
- adapter.emit('agentEvent', { state: 'final', runId: 'run1', seq: 1 });
222
- const sessionUpdateCall = client.sendEvent.mock.calls.find((c) => c[0].event === 'session.update');
223
- expect(sessionUpdateCall).toBeUndefined();
224
- });
225
- it('reuses existing adapter (with agentSessionId) for same session', async () => {
226
- const adapter = mockAdapter();
227
- mockCreateAgent.mockReturnValue(adapter);
228
- await manager.handleReq({
229
- type: 'req', id: 'r1', method: 'chat.send',
230
- params: { sessionId: 'sess-reuse', text: 'first', agentType: 'claude', workDir: '/tmp' },
231
- });
232
- await manager.handleReq({
233
- type: 'req', id: 'r2', method: 'chat.send',
234
- params: { sessionId: 'sess-reuse', text: 'second', agentType: 'claude', workDir: '/tmp' },
235
- });
236
- expect(mockCreateAgent).toHaveBeenCalledTimes(1);
237
- expect(adapter.send).toHaveBeenCalledTimes(2);
238
- expect(adapter.send).toHaveBeenNthCalledWith(1, 'first', undefined);
239
- expect(adapter.send).toHaveBeenNthCalledWith(2, 'second', undefined);
240
- });
241
- it('resumes an existing adapter when a newer agentSessionId arrives', async () => {
242
- const adapter = mockAdapter();
243
- mockCreateAgent.mockReturnValue(adapter);
244
- await manager.handleReq({
245
- type: 'req',
246
- id: 'r1',
247
- method: 'chat.send',
248
- params: {
249
- sessionId: 'sess-resume-existing',
250
- text: 'first',
251
- agentType: 'claude',
252
- workDir: '/tmp',
253
- agentSessionId: 'sid-1',
254
- },
255
- });
256
- await manager.handleReq({
257
- type: 'req',
258
- id: 'r2',
259
- method: 'chat.send',
260
- params: {
261
- sessionId: 'sess-resume-existing',
262
- text: 'second',
263
- agentType: 'claude',
264
- workDir: '/tmp',
265
- agentSessionId: 'sid-2',
266
- },
267
- });
268
- expect(adapter.resume).toHaveBeenCalledWith('sid-2');
269
- expect(adapter.send).toHaveBeenNthCalledWith(2, 'second', undefined);
270
- });
271
- it('rebuilds the cached adapter when the incoming session metadata drifts', async () => {
272
- const firstAdapter = mockAdapter();
273
- const secondAdapter = mockAdapter();
274
- secondAdapter.type = 'codex';
275
- mockCreateAgent.mockReturnValueOnce(firstAdapter).mockReturnValueOnce(secondAdapter);
276
- await manager.handleReq({
277
- type: 'req',
278
- id: 'r1',
279
- method: 'chat.send',
280
- params: {
281
- sessionId: 'sess-drift',
282
- text: 'first',
283
- agentType: 'claude',
284
- workDir: '/tmp/original',
285
- },
286
- });
287
- await manager.handleReq({
288
- type: 'req',
289
- id: 'r2',
290
- method: 'chat.send',
291
- params: {
292
- sessionId: 'sess-drift',
293
- text: 'second',
294
- agentType: 'codex',
295
- workDir: '/tmp/next',
296
- agentSessionId: 'thread-2',
297
- },
298
- });
299
- expect(firstAdapter.stop).toHaveBeenCalledTimes(1);
300
- expect(secondAdapter.start).toHaveBeenCalledWith('sess-drift', '/tmp/next', 'thread-2');
301
- expect(secondAdapter.send).toHaveBeenCalledWith('second', undefined);
302
- });
303
- it('passes modelId to adapter.send when provided', async () => {
304
- const adapter = mockAdapter();
305
- mockCreateAgent.mockReturnValue(adapter);
306
- await manager.handleReq({
307
- type: 'req',
308
- id: 'r1',
309
- method: 'chat.send',
310
- params: {
311
- sessionId: 'sess-model',
312
- text: 'hello',
313
- agentType: 'claude',
314
- workDir: '/tmp',
315
- modelId: 'sonnet',
316
- },
317
- });
318
- expect(adapter.send).toHaveBeenCalledWith('hello', 'sonnet');
319
- });
320
- it('repairs claude imported workDir from transcript cwd before starting the adapter', async () => {
321
- const adapter = mockAdapter();
322
- mockCreateAgent.mockReturnValue(adapter);
323
- mockLookupClaudeTranscriptCwd.mockReturnValue('/Users/lichen/Documents/code/projects/shennian');
324
- await manager.handleReq({
325
- type: 'req',
326
- id: 'r1',
327
- method: 'chat.send',
328
- params: {
329
- sessionId: 'sess-imported',
330
- text: 'continue',
331
- agentType: 'claude',
332
- workDir: '-Users-lichen-Documents-code-projects-shennian',
333
- agentSessionId: 'claude-sid-imported',
334
- },
335
- });
336
- expect(adapter.start).toHaveBeenCalledWith('sess-imported', '/Users/lichen/Documents/code/projects/shennian', 'claude-sid-imported');
337
- expect(adapter.send).toHaveBeenCalledWith('continue', undefined);
338
- });
339
- });
340
- describe('codex resume flow', () => {
341
- it('passes agentSessionId to codex adapter via start()', async () => {
342
- const adapter = mockAdapter();
343
- adapter.type = 'codex';
344
- mockCreateAgent.mockReturnValue(adapter);
345
- await manager.handleReq({
346
- type: 'req', id: 'r1', method: 'chat.send',
347
- params: {
348
- sessionId: 'sess-codex',
349
- text: 'fix bug',
350
- agentType: 'codex',
351
- workDir: '/tmp',
352
- agentSessionId: 'thread-abc-123',
353
- },
354
- });
355
- expect(adapter.start).toHaveBeenCalledWith('sess-codex', expect.any(String), 'thread-abc-123');
356
- });
357
- it('persists codex agentSessionId from final event', async () => {
358
- const adapter = mockAdapter();
359
- adapter.type = 'codex';
360
- mockCreateAgent.mockReturnValue(adapter);
361
- await manager.handleReq({
362
- type: 'req', id: 'r1', method: 'chat.send',
363
- params: { sessionId: 'sess-codex-new', text: 'hello', agentType: 'codex', workDir: '/tmp' },
364
- });
365
- adapter.emit('agentEvent', {
366
- state: 'final', runId: 'run1', seq: 1,
367
- agentSessionId: 'thread-xyz-789',
368
- });
369
- const updateCall = client.sendEvent.mock.calls.find((c) => c[0].event === 'session.update');
370
- expect(updateCall).toBeDefined();
371
- expect(updateCall[0]).toEqual(expect.objectContaining({
372
- payload: {
373
- session: {
374
- id: 'sess-codex-new',
375
- agentType: 'codex',
376
- agentSessionId: 'thread-xyz-789',
377
- },
378
- },
379
- }));
380
- });
381
- });
382
- describe('custom agent agentSessionId', () => {
383
- it('persists custom agent session ID from final event', async () => {
384
- const adapter = mockAdapter();
385
- adapter.type = 'custom:my-agent';
386
- mockCreateAgent.mockReturnValue(adapter);
387
- await manager.handleReq({
388
- type: 'req', id: 'r1', method: 'chat.send',
389
- params: { sessionId: 'sess-custom', text: 'hello', agentType: 'custom:my-agent', workDir: '/tmp' },
390
- });
391
- adapter.emit('agentEvent', {
392
- state: 'final', runId: 'run1', seq: 1,
393
- agentSessionId: 'custom-session-456',
394
- });
395
- const updateCall = client.sendEvent.mock.calls.find((c) => c[0].event === 'session.update');
396
- expect(updateCall).toBeDefined();
397
- expect(updateCall[0]).toEqual(expect.objectContaining({
398
- payload: {
399
- session: {
400
- id: 'sess-custom',
401
- agentType: 'custom:my-agent',
402
- agentSessionId: 'custom-session-456',
403
- },
404
- },
405
- }));
406
- });
407
- });
408
- describe('error handling', () => {
409
- it('waits for adapter.send to resolve before acknowledging chat.send success', async () => {
410
- const adapter = mockAdapter();
411
- let resolveSend = null;
412
- adapter.send.mockReturnValue(new Promise((resolve) => {
413
- resolveSend = resolve;
414
- }));
415
- mockCreateAgent.mockReturnValue(adapter);
416
- const sendPromise = manager.handleReq({
417
- type: 'req', id: 'r-wait', method: 'chat.send',
418
- params: { sessionId: 'sess-wait', text: 'hi', agentType: 'claude', workDir: '/tmp' },
419
- });
420
- await Promise.resolve();
421
- expect(client.sendRes).not.toHaveBeenCalled();
422
- expect(resolveSend).toBeTypeOf('function');
423
- resolveSend();
424
- await sendPromise;
425
- expect(client.sendRes).toHaveBeenCalledWith(expect.objectContaining({
426
- type: 'res',
427
- id: 'r-wait',
428
- ok: true,
429
- }));
430
- });
431
- it('sends error with sessionId when agent not found', async () => {
432
- mockCreateAgent.mockReturnValue(null);
433
- await manager.handleReq({
434
- type: 'req', id: 'r1', method: 'chat.send',
435
- params: { sessionId: 'sess-1', text: 'hi', agentType: 'unknown', workDir: '/tmp' },
436
- });
437
- expect(client.sendEvent).toHaveBeenCalledWith(expect.objectContaining({
438
- payload: expect.objectContaining({
439
- state: 'error',
440
- sessionId: 'sess-1',
441
- }),
442
- }));
443
- expect(client.sendRes).toHaveBeenCalledWith(expect.objectContaining({
444
- type: 'res',
445
- id: 'r1',
446
- ok: false,
447
- error: 'Unsupported agent: unknown',
448
- }));
449
- });
450
- it('sends error with sessionId when adapter.start fails', async () => {
451
- const adapter = mockAdapter();
452
- adapter.start.mockRejectedValue(new Error('start failed'));
453
- mockCreateAgent.mockReturnValue(adapter);
454
- await manager.handleReq({
455
- type: 'req', id: 'r1', method: 'chat.send',
456
- params: { sessionId: 'sess-2', text: 'hi', agentType: 'claude', workDir: '/tmp' },
457
- });
458
- expect(client.sendEvent).toHaveBeenCalledWith(expect.objectContaining({
459
- payload: expect.objectContaining({
460
- state: 'error',
461
- sessionId: 'sess-2',
462
- message: expect.stringContaining('start failed'),
463
- }),
464
- }));
465
- expect(client.sendRes).toHaveBeenCalledWith(expect.objectContaining({
466
- type: 'res',
467
- id: 'r1',
468
- ok: false,
469
- error: expect.stringContaining('start failed'),
470
- }));
471
- });
472
- it('cleans up session and sends error when adapter.send fails', async () => {
473
- const adapter = mockAdapter();
474
- adapter.send.mockRejectedValue(new Error('send failed'));
475
- mockCreateAgent.mockReturnValue(adapter);
476
- await manager.handleReq({
477
- type: 'req', id: 'r1', method: 'chat.send',
478
- params: { sessionId: 'sess-3', text: 'hi', agentType: 'claude', workDir: '/tmp' },
479
- });
480
- expect(client.sendEvent).toHaveBeenCalledWith(expect.objectContaining({
481
- payload: expect.objectContaining({
482
- state: 'error',
483
- sessionId: 'sess-3',
484
- message: expect.stringContaining('send failed'),
485
- }),
486
- }));
487
- expect(client.sendRes).toHaveBeenCalledWith(expect.objectContaining({
488
- type: 'res',
489
- id: 'r1',
490
- ok: false,
491
- error: expect.stringContaining('send failed'),
492
- }));
493
- });
494
- it('retries the same req.id after a failed send instead of silently deduping it', async () => {
495
- const firstAdapter = mockAdapter();
496
- firstAdapter.send.mockRejectedValueOnce(new Error('send failed'));
497
- const secondAdapter = mockAdapter();
498
- mockCreateAgent.mockReturnValueOnce(firstAdapter).mockReturnValueOnce(secondAdapter);
499
- const frame = {
500
- type: 'req',
501
- id: 'req-retry',
502
- method: 'chat.send',
503
- params: { sessionId: 'sess-retry', text: 'hi', agentType: 'claude', workDir: '/tmp' },
504
- };
505
- await manager.handleReq(frame);
506
- await manager.handleReq(frame);
507
- expect(mockCreateAgent).toHaveBeenCalledTimes(2);
508
- expect(firstAdapter.stop).toHaveBeenCalledTimes(1);
509
- expect(secondAdapter.send).toHaveBeenCalledWith('hi', undefined);
510
- });
511
- });
512
- describe('chat.abort', () => {
513
- it('emits a synthetic aborted event for the active run after stop succeeds', async () => {
514
- const adapter = mockAdapter();
515
- mockCreateAgent.mockReturnValue(adapter);
516
- await manager.handleReq({
517
- type: 'req',
518
- id: 'send-1',
519
- method: 'chat.send',
520
- params: { sessionId: 'sess-abort', text: 'hi', agentType: 'claude', workDir: '/tmp' },
521
- });
522
- adapter.emit('agentEvent', { state: 'delta', runId: 'run-abort', seq: 0, text: 'working' });
523
- await manager.handleReq({
524
- type: 'req',
525
- id: 'abort-1',
526
- method: 'chat.abort',
527
- params: { sessionId: 'sess-abort' },
528
- });
529
- expect(adapter.stop).toHaveBeenCalledTimes(1);
530
- expect(client.sendAgentEvent).toHaveBeenCalledWith(expect.objectContaining({
531
- type: 'event',
532
- event: 'agent',
533
- id: 'agent-evt-run-abort-1',
534
- seq: 1,
535
- payload: expect.objectContaining({
536
- state: 'aborted',
537
- sessionId: 'sess-abort',
538
- runId: 'run-abort',
539
- seq: 1,
540
- }),
541
- }));
542
- expect(client.sendRes).toHaveBeenCalledWith(expect.objectContaining({ type: 'res', id: 'abort-1', ok: true }));
543
- });
544
- });
545
- describe('session eviction', () => {
546
- it('evicts oldest idle session when exceeding MAX_SESSIONS', async () => {
547
- const adapters = [];
548
- mockCreateAgent.mockImplementation(() => {
549
- const a = mockAdapter();
550
- adapters.push(a);
551
- return a;
552
- });
553
- for (let i = 0; i < 50; i++) {
554
- await manager.handleReq({
555
- type: 'req', id: `r-${i}`, method: 'chat.send',
556
- params: { sessionId: `sess-${i}`, text: 'hi', agentType: 'claude', workDir: '/tmp' },
557
- });
558
- }
559
- expect(adapters).toHaveLength(50);
560
- expect(adapters[0].stop).not.toHaveBeenCalled();
561
- await manager.handleReq({
562
- type: 'req', id: 'r-51', method: 'chat.send',
563
- params: { sessionId: 'sess-new', text: 'hi', agentType: 'claude', workDir: '/tmp' },
564
- });
565
- expect(adapters[0].stop).toHaveBeenCalled();
566
- expect(adapters).toHaveLength(51);
567
- });
568
- it('does not evict when reusing existing session', async () => {
569
- const adapters = [];
570
- mockCreateAgent.mockImplementation(() => {
571
- const a = mockAdapter();
572
- adapters.push(a);
573
- return a;
574
- });
575
- for (let i = 0; i < 50; i++) {
576
- await manager.handleReq({
577
- type: 'req', id: `r-${i}`, method: 'chat.send',
578
- params: { sessionId: `sess-${i}`, text: 'hi', agentType: 'claude', workDir: '/tmp' },
579
- });
580
- }
581
- await manager.handleReq({
582
- type: 'req', id: 'r-reuse', method: 'chat.send',
583
- params: { sessionId: 'sess-0', text: 'second msg', agentType: 'claude', workDir: '/tmp' },
584
- });
585
- expect(adapters).toHaveLength(50);
586
- for (const a of adapters) {
587
- expect(a.stop).not.toHaveBeenCalled();
588
- }
589
- });
590
- });
591
- });
592
- //# sourceMappingURL=session-manager.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-manager.test.js","sourceRoot":"","sources":["../../../src/__tests__/session-manager.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=session-store.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-store.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/session-store.test.ts"],"names":[],"mappings":""}