agent-tower 0.1.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 (341) hide show
  1. package/dist/app.d.ts +2 -0
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +62 -0
  4. package/dist/app.js.map +1 -0
  5. package/dist/cli.d.ts +3 -0
  6. package/dist/cli.d.ts.map +1 -0
  7. package/dist/cli.js +131 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/core/container.d.ts +11 -0
  10. package/dist/core/container.d.ts.map +1 -0
  11. package/dist/core/container.js +66 -0
  12. package/dist/core/container.js.map +1 -0
  13. package/dist/core/event-bus.d.ts +58 -0
  14. package/dist/core/event-bus.d.ts.map +1 -0
  15. package/dist/core/event-bus.js +29 -0
  16. package/dist/core/event-bus.js.map +1 -0
  17. package/dist/errors.d.ts +22 -0
  18. package/dist/errors.d.ts.map +1 -0
  19. package/dist/errors.js +36 -0
  20. package/dist/errors.js.map +1 -0
  21. package/dist/executors/base.executor.d.ts +160 -0
  22. package/dist/executors/base.executor.d.ts.map +1 -0
  23. package/dist/executors/base.executor.js +122 -0
  24. package/dist/executors/base.executor.js.map +1 -0
  25. package/dist/executors/claude-code.executor.d.ts +78 -0
  26. package/dist/executors/claude-code.executor.d.ts.map +1 -0
  27. package/dist/executors/claude-code.executor.js +160 -0
  28. package/dist/executors/claude-code.executor.js.map +1 -0
  29. package/dist/executors/command-builder.d.ts +64 -0
  30. package/dist/executors/command-builder.d.ts.map +1 -0
  31. package/dist/executors/command-builder.js +144 -0
  32. package/dist/executors/command-builder.js.map +1 -0
  33. package/dist/executors/cursor-agent.executor.d.ts +57 -0
  34. package/dist/executors/cursor-agent.executor.d.ts.map +1 -0
  35. package/dist/executors/cursor-agent.executor.js +109 -0
  36. package/dist/executors/cursor-agent.executor.js.map +1 -0
  37. package/dist/executors/default-profiles.json +29 -0
  38. package/dist/executors/execution-env.d.ts +64 -0
  39. package/dist/executors/execution-env.d.ts.map +1 -0
  40. package/dist/executors/execution-env.js +97 -0
  41. package/dist/executors/execution-env.js.map +1 -0
  42. package/dist/executors/gemini-cli.executor.d.ts +55 -0
  43. package/dist/executors/gemini-cli.executor.d.ts.map +1 -0
  44. package/dist/executors/gemini-cli.executor.js +117 -0
  45. package/dist/executors/gemini-cli.executor.js.map +1 -0
  46. package/dist/executors/index.d.ts +49 -0
  47. package/dist/executors/index.d.ts.map +1 -0
  48. package/dist/executors/index.js +95 -0
  49. package/dist/executors/index.js.map +1 -0
  50. package/dist/executors/profiles.d.ts +61 -0
  51. package/dist/executors/profiles.d.ts.map +1 -0
  52. package/dist/executors/profiles.js +192 -0
  53. package/dist/executors/profiles.js.map +1 -0
  54. package/dist/git/git-cli.d.ts +59 -0
  55. package/dist/git/git-cli.d.ts.map +1 -0
  56. package/dist/git/git-cli.js +156 -0
  57. package/dist/git/git-cli.js.map +1 -0
  58. package/dist/git/worktree.manager.d.ts +166 -0
  59. package/dist/git/worktree.manager.d.ts.map +1 -0
  60. package/dist/git/worktree.manager.js +481 -0
  61. package/dist/git/worktree.manager.js.map +1 -0
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +37 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/mcp/context.d.ts +15 -0
  67. package/dist/mcp/context.d.ts.map +1 -0
  68. package/dist/mcp/context.js +19 -0
  69. package/dist/mcp/context.js.map +1 -0
  70. package/dist/mcp/http-client.d.ts +46 -0
  71. package/dist/mcp/http-client.d.ts.map +1 -0
  72. package/dist/mcp/http-client.js +100 -0
  73. package/dist/mcp/http-client.js.map +1 -0
  74. package/dist/mcp/index.d.ts +3 -0
  75. package/dist/mcp/index.d.ts.map +1 -0
  76. package/dist/mcp/index.js +36 -0
  77. package/dist/mcp/index.js.map +1 -0
  78. package/dist/mcp/server.d.ts +6 -0
  79. package/dist/mcp/server.d.ts.map +1 -0
  80. package/dist/mcp/server.js +32 -0
  81. package/dist/mcp/server.js.map +1 -0
  82. package/dist/mcp/tools/projects.d.ts +7 -0
  83. package/dist/mcp/tools/projects.d.ts.map +1 -0
  84. package/dist/mcp/tools/projects.js +12 -0
  85. package/dist/mcp/tools/projects.js.map +1 -0
  86. package/dist/mcp/tools/sessions.d.ts +7 -0
  87. package/dist/mcp/tools/sessions.d.ts.map +1 -0
  88. package/dist/mcp/tools/sessions.js +22 -0
  89. package/dist/mcp/tools/sessions.js.map +1 -0
  90. package/dist/mcp/tools/tasks.d.ts +7 -0
  91. package/dist/mcp/tools/tasks.d.ts.map +1 -0
  92. package/dist/mcp/tools/tasks.js +68 -0
  93. package/dist/mcp/tools/tasks.js.map +1 -0
  94. package/dist/mcp/tools/workspaces.d.ts +7 -0
  95. package/dist/mcp/tools/workspaces.d.ts.map +1 -0
  96. package/dist/mcp/tools/workspaces.js +45 -0
  97. package/dist/mcp/tools/workspaces.js.map +1 -0
  98. package/dist/mcp/types.d.ts +109 -0
  99. package/dist/mcp/types.d.ts.map +1 -0
  100. package/dist/mcp/types.js +55 -0
  101. package/dist/mcp/types.js.map +1 -0
  102. package/dist/middleware/tunnel-auth.d.ts +13 -0
  103. package/dist/middleware/tunnel-auth.d.ts.map +1 -0
  104. package/dist/middleware/tunnel-auth.js +39 -0
  105. package/dist/middleware/tunnel-auth.js.map +1 -0
  106. package/dist/output/__tests__/claude-code-parser-token.test.d.ts +2 -0
  107. package/dist/output/__tests__/claude-code-parser-token.test.d.ts.map +1 -0
  108. package/dist/output/__tests__/claude-code-parser-token.test.js +233 -0
  109. package/dist/output/__tests__/claude-code-parser-token.test.js.map +1 -0
  110. package/dist/output/__tests__/cursor-agent-parser-token.test.d.ts +2 -0
  111. package/dist/output/__tests__/cursor-agent-parser-token.test.d.ts.map +1 -0
  112. package/dist/output/__tests__/cursor-agent-parser-token.test.js +95 -0
  113. package/dist/output/__tests__/cursor-agent-parser-token.test.js.map +1 -0
  114. package/dist/output/__tests__/msg-store-token.test.d.ts +2 -0
  115. package/dist/output/__tests__/msg-store-token.test.d.ts.map +1 -0
  116. package/dist/output/__tests__/msg-store-token.test.js +38 -0
  117. package/dist/output/__tests__/msg-store-token.test.js.map +1 -0
  118. package/dist/output/claude-code-parser.d.ts +96 -0
  119. package/dist/output/claude-code-parser.d.ts.map +1 -0
  120. package/dist/output/claude-code-parser.js +498 -0
  121. package/dist/output/claude-code-parser.js.map +1 -0
  122. package/dist/output/cursor-agent-parser.d.ts +87 -0
  123. package/dist/output/cursor-agent-parser.d.ts.map +1 -0
  124. package/dist/output/cursor-agent-parser.js +476 -0
  125. package/dist/output/cursor-agent-parser.js.map +1 -0
  126. package/dist/output/index.d.ts +9 -0
  127. package/dist/output/index.d.ts.map +1 -0
  128. package/dist/output/index.js +13 -0
  129. package/dist/output/index.js.map +1 -0
  130. package/dist/output/msg-store.d.ts +110 -0
  131. package/dist/output/msg-store.d.ts.map +1 -0
  132. package/dist/output/msg-store.js +274 -0
  133. package/dist/output/msg-store.js.map +1 -0
  134. package/dist/output/types.d.ts +90 -0
  135. package/dist/output/types.d.ts.map +1 -0
  136. package/dist/output/types.js +93 -0
  137. package/dist/output/types.js.map +1 -0
  138. package/dist/output/utils/ansi.d.ts +8 -0
  139. package/dist/output/utils/ansi.d.ts.map +1 -0
  140. package/dist/output/utils/ansi.js +17 -0
  141. package/dist/output/utils/ansi.js.map +1 -0
  142. package/dist/output/utils/patch.d.ts +57 -0
  143. package/dist/output/utils/patch.d.ts.map +1 -0
  144. package/dist/output/utils/patch.js +113 -0
  145. package/dist/output/utils/patch.js.map +1 -0
  146. package/dist/pipeline/agent-pipeline.d.ts +28 -0
  147. package/dist/pipeline/agent-pipeline.d.ts.map +1 -0
  148. package/dist/pipeline/agent-pipeline.js +76 -0
  149. package/dist/pipeline/agent-pipeline.js.map +1 -0
  150. package/dist/routes/attachments.d.ts +3 -0
  151. package/dist/routes/attachments.d.ts.map +1 -0
  152. package/dist/routes/attachments.js +141 -0
  153. package/dist/routes/attachments.js.map +1 -0
  154. package/dist/routes/demo.d.ts +3 -0
  155. package/dist/routes/demo.d.ts.map +1 -0
  156. package/dist/routes/demo.js +152 -0
  157. package/dist/routes/demo.js.map +1 -0
  158. package/dist/routes/files.d.ts +3 -0
  159. package/dist/routes/files.d.ts.map +1 -0
  160. package/dist/routes/files.js +313 -0
  161. package/dist/routes/files.js.map +1 -0
  162. package/dist/routes/filesystem.d.ts +3 -0
  163. package/dist/routes/filesystem.d.ts.map +1 -0
  164. package/dist/routes/filesystem.js +126 -0
  165. package/dist/routes/filesystem.js.map +1 -0
  166. package/dist/routes/git.d.ts +3 -0
  167. package/dist/routes/git.d.ts.map +1 -0
  168. package/dist/routes/git.js +170 -0
  169. package/dist/routes/git.js.map +1 -0
  170. package/dist/routes/index.d.ts +3 -0
  171. package/dist/routes/index.d.ts.map +1 -0
  172. package/dist/routes/index.js +45 -0
  173. package/dist/routes/index.js.map +1 -0
  174. package/dist/routes/notifications.d.ts +10 -0
  175. package/dist/routes/notifications.d.ts.map +1 -0
  176. package/dist/routes/notifications.js +54 -0
  177. package/dist/routes/notifications.js.map +1 -0
  178. package/dist/routes/profiles.d.ts +12 -0
  179. package/dist/routes/profiles.d.ts.map +1 -0
  180. package/dist/routes/profiles.js +76 -0
  181. package/dist/routes/profiles.js.map +1 -0
  182. package/dist/routes/projects.d.ts +3 -0
  183. package/dist/routes/projects.d.ts.map +1 -0
  184. package/dist/routes/projects.js +94 -0
  185. package/dist/routes/projects.js.map +1 -0
  186. package/dist/routes/sessions.d.ts +12 -0
  187. package/dist/routes/sessions.d.ts.map +1 -0
  188. package/dist/routes/sessions.js +109 -0
  189. package/dist/routes/sessions.js.map +1 -0
  190. package/dist/routes/system.d.ts +3 -0
  191. package/dist/routes/system.d.ts.map +1 -0
  192. package/dist/routes/system.js +42 -0
  193. package/dist/routes/system.js.map +1 -0
  194. package/dist/routes/tasks.d.ts +3 -0
  195. package/dist/routes/tasks.d.ts.map +1 -0
  196. package/dist/routes/tasks.js +136 -0
  197. package/dist/routes/tasks.js.map +1 -0
  198. package/dist/routes/terminals.d.ts +3 -0
  199. package/dist/routes/terminals.d.ts.map +1 -0
  200. package/dist/routes/terminals.js +54 -0
  201. package/dist/routes/terminals.js.map +1 -0
  202. package/dist/routes/tunnel.d.ts +3 -0
  203. package/dist/routes/tunnel.d.ts.map +1 -0
  204. package/dist/routes/tunnel.js +36 -0
  205. package/dist/routes/tunnel.js.map +1 -0
  206. package/dist/routes/workspaces.d.ts +3 -0
  207. package/dist/routes/workspaces.d.ts.map +1 -0
  208. package/dist/routes/workspaces.js +171 -0
  209. package/dist/routes/workspaces.js.map +1 -0
  210. package/dist/services/commit-message.service.d.ts +32 -0
  211. package/dist/services/commit-message.service.d.ts.map +1 -0
  212. package/dist/services/commit-message.service.js +202 -0
  213. package/dist/services/commit-message.service.js.map +1 -0
  214. package/dist/services/notifications/feishu-channel.d.ts +9 -0
  215. package/dist/services/notifications/feishu-channel.d.ts.map +1 -0
  216. package/dist/services/notifications/feishu-channel.js +51 -0
  217. package/dist/services/notifications/feishu-channel.js.map +1 -0
  218. package/dist/services/notifications/index.d.ts +3 -0
  219. package/dist/services/notifications/index.d.ts.map +1 -0
  220. package/dist/services/notifications/index.js +2 -0
  221. package/dist/services/notifications/index.js.map +1 -0
  222. package/dist/services/notifications/notification.service.d.ts +10 -0
  223. package/dist/services/notifications/notification.service.d.ts.map +1 -0
  224. package/dist/services/notifications/notification.service.js +85 -0
  225. package/dist/services/notifications/notification.service.js.map +1 -0
  226. package/dist/services/notifications/os-channel.d.ts +8 -0
  227. package/dist/services/notifications/os-channel.d.ts.map +1 -0
  228. package/dist/services/notifications/os-channel.js +38 -0
  229. package/dist/services/notifications/os-channel.js.map +1 -0
  230. package/dist/services/notifications/types.d.ts +11 -0
  231. package/dist/services/notifications/types.d.ts.map +1 -0
  232. package/dist/services/notifications/types.js +2 -0
  233. package/dist/services/notifications/types.js.map +1 -0
  234. package/dist/services/project.service.d.ts +91 -0
  235. package/dist/services/project.service.d.ts.map +1 -0
  236. package/dist/services/project.service.js +138 -0
  237. package/dist/services/project.service.js.map +1 -0
  238. package/dist/services/session-manager.d.ts +164 -0
  239. package/dist/services/session-manager.d.ts.map +1 -0
  240. package/dist/services/session-manager.js +569 -0
  241. package/dist/services/session-manager.js.map +1 -0
  242. package/dist/services/task.service.d.ts +179 -0
  243. package/dist/services/task.service.d.ts.map +1 -0
  244. package/dist/services/task.service.js +281 -0
  245. package/dist/services/task.service.js.map +1 -0
  246. package/dist/services/terminal-manager.d.ts +64 -0
  247. package/dist/services/terminal-manager.d.ts.map +1 -0
  248. package/dist/services/terminal-manager.js +217 -0
  249. package/dist/services/terminal-manager.js.map +1 -0
  250. package/dist/services/tunnel.service.d.ts +16 -0
  251. package/dist/services/tunnel.service.d.ts.map +1 -0
  252. package/dist/services/tunnel.service.js +77 -0
  253. package/dist/services/tunnel.service.js.map +1 -0
  254. package/dist/services/workspace.service.d.ts +219 -0
  255. package/dist/services/workspace.service.d.ts.map +1 -0
  256. package/dist/services/workspace.service.js +351 -0
  257. package/dist/services/workspace.service.js.map +1 -0
  258. package/dist/socket/events.d.ts +2 -0
  259. package/dist/socket/events.d.ts.map +1 -0
  260. package/dist/socket/events.js +3 -0
  261. package/dist/socket/events.js.map +1 -0
  262. package/dist/socket/index.d.ts +20 -0
  263. package/dist/socket/index.d.ts.map +1 -0
  264. package/dist/socket/index.js +77 -0
  265. package/dist/socket/index.js.map +1 -0
  266. package/dist/socket/middleware/auth.d.ts +13 -0
  267. package/dist/socket/middleware/auth.d.ts.map +1 -0
  268. package/dist/socket/middleware/auth.js +29 -0
  269. package/dist/socket/middleware/auth.js.map +1 -0
  270. package/dist/socket/middleware/error-handler.d.ts +11 -0
  271. package/dist/socket/middleware/error-handler.d.ts.map +1 -0
  272. package/dist/socket/middleware/error-handler.js +39 -0
  273. package/dist/socket/middleware/error-handler.js.map +1 -0
  274. package/dist/socket/middleware/index.d.ts +3 -0
  275. package/dist/socket/middleware/index.d.ts.map +1 -0
  276. package/dist/socket/middleware/index.js +3 -0
  277. package/dist/socket/middleware/index.js.map +1 -0
  278. package/dist/socket/rooms.d.ts +30 -0
  279. package/dist/socket/rooms.d.ts.map +1 -0
  280. package/dist/socket/rooms.js +39 -0
  281. package/dist/socket/rooms.js.map +1 -0
  282. package/dist/socket/socket-gateway.d.ts +21 -0
  283. package/dist/socket/socket-gateway.d.ts.map +1 -0
  284. package/dist/socket/socket-gateway.js +173 -0
  285. package/dist/socket/socket-gateway.js.map +1 -0
  286. package/dist/types/index.d.ts +41 -0
  287. package/dist/types/index.d.ts.map +1 -0
  288. package/dist/types/index.js +41 -0
  289. package/dist/types/index.js.map +1 -0
  290. package/dist/utils/index.d.ts +12 -0
  291. package/dist/utils/index.d.ts.map +1 -0
  292. package/dist/utils/index.js +25 -0
  293. package/dist/utils/index.js.map +1 -0
  294. package/dist/web/assets/AgentDemoPage-WdWEQtyU.js +1 -0
  295. package/dist/web/assets/DemoPage-C4Z_ftHI.js +4 -0
  296. package/dist/web/assets/NotificationSettingsPage-FrLfgt9y.js +1 -0
  297. package/dist/web/assets/ProfileSettingsPage-Cs93rTRr.js +3 -0
  298. package/dist/web/assets/ProjectKanbanPage-BmlRVfzo.js +75 -0
  299. package/dist/web/assets/ProjectKanbanPage-G5OQeJvU.css +1 -0
  300. package/dist/web/assets/api-client-CEBkg5lt.js +1 -0
  301. package/dist/web/assets/circle-alert-BEozlsMd.js +1 -0
  302. package/dist/web/assets/code-block-OCS4YCEC-CGgYYS4A.js +2 -0
  303. package/dist/web/assets/folder-picker-BP3x3phB.js +1 -0
  304. package/dist/web/assets/index-BuAijQvi.js +13 -0
  305. package/dist/web/assets/index-CxV866Yg.css +1 -0
  306. package/dist/web/assets/loader-circle-yEIqsdJ1.js +1 -0
  307. package/dist/web/assets/mermaid-NOHMQCX5-CIqtI2jF.js +123 -0
  308. package/dist/web/assets/mermaid-NOHMQCX5-lI9o3AWT.css +1 -0
  309. package/dist/web/assets/modal-BoX2RXaV.js +1 -0
  310. package/dist/web/assets/query-keys-BD_s_Etj.js +1 -0
  311. package/dist/web/assets/use-profiles-Rh8rBsAt.js +1 -0
  312. package/dist/web/index.html +14 -0
  313. package/dist/web/vite.svg +1 -0
  314. package/node_modules/@agent-tower/shared/dist/dev-port.d.ts +12 -0
  315. package/node_modules/@agent-tower/shared/dist/dev-port.d.ts.map +1 -0
  316. package/node_modules/@agent-tower/shared/dist/dev-port.js +31 -0
  317. package/node_modules/@agent-tower/shared/dist/dev-port.js.map +1 -0
  318. package/node_modules/@agent-tower/shared/dist/index.d.ts +5 -0
  319. package/node_modules/@agent-tower/shared/dist/index.d.ts.map +1 -0
  320. package/node_modules/@agent-tower/shared/dist/index.js +5 -0
  321. package/node_modules/@agent-tower/shared/dist/index.js.map +1 -0
  322. package/node_modules/@agent-tower/shared/dist/log-adapter.d.ts +72 -0
  323. package/node_modules/@agent-tower/shared/dist/log-adapter.d.ts.map +1 -0
  324. package/node_modules/@agent-tower/shared/dist/log-adapter.js +144 -0
  325. package/node_modules/@agent-tower/shared/dist/log-adapter.js.map +1 -0
  326. package/node_modules/@agent-tower/shared/dist/socket/events.d.ts +133 -0
  327. package/node_modules/@agent-tower/shared/dist/socket/events.d.ts.map +1 -0
  328. package/node_modules/@agent-tower/shared/dist/socket/events.js +32 -0
  329. package/node_modules/@agent-tower/shared/dist/socket/events.js.map +1 -0
  330. package/node_modules/@agent-tower/shared/dist/socket/index.d.ts +2 -0
  331. package/node_modules/@agent-tower/shared/dist/socket/index.d.ts.map +1 -0
  332. package/node_modules/@agent-tower/shared/dist/socket/index.js +2 -0
  333. package/node_modules/@agent-tower/shared/dist/socket/index.js.map +1 -0
  334. package/node_modules/@agent-tower/shared/dist/types.d.ts +168 -0
  335. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -0
  336. package/node_modules/@agent-tower/shared/dist/types.js +53 -0
  337. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -0
  338. package/node_modules/@agent-tower/shared/package.json +38 -0
  339. package/package.json +46 -0
  340. package/prisma/schema.prisma +130 -0
  341. package/scripts/postinstall.js +120 -0
@@ -0,0 +1,476 @@
1
+ /**
2
+ * Cursor Agent stream-json 输出解析器
3
+ * 将 Cursor Agent CLI 的 JSON 流输出转换为标准化日志
4
+ *
5
+ * 参考 vibe-kanban Rust 实现: crates/executors/src/executors/cursor.rs
6
+ *
7
+ * Cursor Agent 输出 JSONL 格式,每行一个 JSON 对象,包含以下类型:
8
+ * - system: 系统初始化信息(model, session_id, cwd 等)
9
+ * - user: 用户消息
10
+ * - assistant: 助手文本消息(流式文本块)
11
+ * - thinking: 思考过程
12
+ * - tool_call: 工具调用(subtype: "started" | "completed")
13
+ * - result: 执行结果元数据
14
+ */
15
+ import { createAssistantMessage, createUserMessage, createSystemMessage, createToolUse, createThinking, createErrorMessage, createTokenUsageInfo, } from './types.js';
16
+ import { addNormalizedEntry, updateEntryContent, updateToolStatus, setSessionId, } from './utils/patch.js';
17
+ import { stripAnsiSequences } from './utils/ansi.js';
18
+ // ============ 工具调用解析辅助函数 ============
19
+ /** 工具 key -> 标准名称映射 */
20
+ const TOOL_KEY_MAP = {
21
+ shellToolCall: 'shell',
22
+ lsToolCall: 'ls',
23
+ globToolCall: 'glob',
24
+ grepToolCall: 'grep',
25
+ semSearchToolCall: 'semsearch',
26
+ writeToolCall: 'write',
27
+ readToolCall: 'read',
28
+ editToolCall: 'edit',
29
+ deleteToolCall: 'delete',
30
+ updateTodosToolCall: 'todo',
31
+ mcpToolCall: 'mcp',
32
+ };
33
+ /**
34
+ * 安全获取工具调用内部对象 { args, result }
35
+ */
36
+ function getToolCallInner(toolCall) {
37
+ for (const key of Object.keys(toolCall)) {
38
+ if (key in TOOL_KEY_MAP) {
39
+ const inner = toolCall[key];
40
+ if (inner && typeof inner === 'object') {
41
+ return { key, inner: inner };
42
+ }
43
+ }
44
+ }
45
+ return null;
46
+ }
47
+ /**
48
+ * 安全获取 args 对象
49
+ */
50
+ function getToolCallArgs(toolCall) {
51
+ const info = getToolCallInner(toolCall);
52
+ if (info?.inner?.args && typeof info.inner.args === 'object') {
53
+ return info.inner.args;
54
+ }
55
+ return {};
56
+ }
57
+ /**
58
+ * 获取工具调用名称
59
+ */
60
+ function getToolCallName(toolCall) {
61
+ const info = getToolCallInner(toolCall);
62
+ if (info) {
63
+ return TOOL_KEY_MAP[info.key] || info.key;
64
+ }
65
+ // Fallback: 返回第一个 key
66
+ const keys = Object.keys(toolCall);
67
+ return keys[0] || 'unknown';
68
+ }
69
+ /**
70
+ * 将路径转为相对路径
71
+ */
72
+ function makePathRelative(filePath, worktreePath) {
73
+ if (!worktreePath || !filePath)
74
+ return filePath;
75
+ if (filePath.startsWith(worktreePath)) {
76
+ let relative = filePath.slice(worktreePath.length);
77
+ if (relative.startsWith('/')) {
78
+ relative = relative.slice(1);
79
+ }
80
+ return relative || filePath;
81
+ }
82
+ return filePath;
83
+ }
84
+ /**
85
+ * 工具名称到动作类型的映射
86
+ */
87
+ function toolNameToAction(toolName) {
88
+ const mapping = {
89
+ shell: 'command_run',
90
+ read: 'file_read',
91
+ write: 'file_edit',
92
+ edit: 'file_edit',
93
+ delete: 'file_edit',
94
+ grep: 'search',
95
+ glob: 'search',
96
+ semsearch: 'search',
97
+ ls: 'other',
98
+ todo: 'todo_management',
99
+ mcp: 'tool',
100
+ };
101
+ return mapping[toolName] || 'tool';
102
+ }
103
+ /**
104
+ * Normalize Cursor todo status strings to standard format
105
+ */
106
+ function normalizeTodoStatus(status) {
107
+ switch (status.toLowerCase()) {
108
+ case 'todo_status_pending': return 'pending';
109
+ case 'todo_status_in_progress': return 'in_progress';
110
+ case 'todo_status_completed': return 'completed';
111
+ case 'todo_status_cancelled': return 'cancelled';
112
+ default: return status;
113
+ }
114
+ }
115
+ /**
116
+ * 获取工具调用的内容描述
117
+ */
118
+ function getToolCallContent(toolCall, worktreePath) {
119
+ const name = getToolCallName(toolCall);
120
+ const args = getToolCallArgs(toolCall);
121
+ switch (name) {
122
+ case 'shell':
123
+ return String(args.command || 'command');
124
+ case 'read':
125
+ return makePathRelative(String(args.path || 'file'), worktreePath);
126
+ case 'write':
127
+ return makePathRelative(String(args.path || 'file'), worktreePath);
128
+ case 'edit':
129
+ return makePathRelative(String(args.path || 'file'), worktreePath);
130
+ case 'delete':
131
+ return makePathRelative(String(args.path || 'file'), worktreePath);
132
+ case 'grep':
133
+ return String(args.pattern || 'pattern');
134
+ case 'semsearch':
135
+ return String(args.query || 'query');
136
+ case 'glob': {
137
+ const pattern = String(args.globPattern || args.glob_pattern || '*');
138
+ const targetPath = args.path || args.targetDirectory || args.target_directory;
139
+ if (targetPath) {
140
+ return `Find files: \`${pattern}\` in ${makePathRelative(String(targetPath), worktreePath)}`;
141
+ }
142
+ return `Find files: \`${pattern}\``;
143
+ }
144
+ case 'ls': {
145
+ const lsPath = makePathRelative(String(args.path || ''), worktreePath);
146
+ return lsPath ? `List directory: ${lsPath}` : 'List directory';
147
+ }
148
+ case 'todo':
149
+ return 'TODO list updated';
150
+ case 'mcp':
151
+ return String(args.toolName || args.name || 'mcp');
152
+ default:
153
+ return name;
154
+ }
155
+ }
156
+ /**
157
+ * 从 CursorJson 消息中提取 session_id
158
+ */
159
+ function extractSessionId(msg) {
160
+ // system 消息可能还没有初始化 session,不提取
161
+ if (msg.type === 'system')
162
+ return undefined;
163
+ return msg.session_id || undefined;
164
+ }
165
+ /**
166
+ * 连接 CursorMessage 中的所有文本内容
167
+ */
168
+ function concatMessageText(message) {
169
+ let out = '';
170
+ for (const item of message.content) {
171
+ if (item.type === 'text' && item.text) {
172
+ out += item.text;
173
+ }
174
+ }
175
+ return out || null;
176
+ }
177
+ // ============ Cursor Agent 解析器 ============
178
+ // Debug 日志开关
179
+ const DEBUG_PARSER = process.env.DEBUG_PARSER === 'true' || false;
180
+ const CURSOR_AUTH_REQUIRED_MSG = "Authentication required. Please run 'cursor-agent login' first, or set CURSOR_API_KEY environment variable.";
181
+ /**
182
+ * Cursor Agent 解析器
183
+ * 解析 Cursor Agent CLI 的 stream-json (JSONL) 输出
184
+ */
185
+ export class CursorAgentParser {
186
+ msgStore;
187
+ buffer = '';
188
+ worktreePath;
189
+ // 流式合并状态
190
+ sessionIdReported = false;
191
+ modelReported = false;
192
+ currentAssistantBuffer = '';
193
+ currentAssistantIndex = null;
194
+ currentThinkingBuffer = '';
195
+ currentThinkingIndex = null;
196
+ // 工具调用 call_id -> entry index 映射
197
+ callIndexMap = new Map();
198
+ constructor(msgStore, worktreePath = '') {
199
+ this.msgStore = msgStore;
200
+ this.worktreePath = worktreePath;
201
+ }
202
+ /** 使用 MsgStore 共享的索引提供器 */
203
+ get indexProvider() {
204
+ return this.msgStore.entryIndex;
205
+ }
206
+ /**
207
+ * 处理原始输出数据(可能包含多行或不完整行)
208
+ */
209
+ processData(data) {
210
+ this.buffer += data;
211
+ const lines = this.buffer.split('\n');
212
+ this.buffer = lines.pop() || '';
213
+ for (const line of lines) {
214
+ if (line.trim()) {
215
+ this.parseLine(line);
216
+ }
217
+ }
218
+ }
219
+ /**
220
+ * 处理 stderr 数据
221
+ */
222
+ processStderr(data) {
223
+ const content = stripAnsiSequences(data); // 去除 ANSI 转义
224
+ if (content.includes(CURSOR_AUTH_REQUIRED_MSG)) {
225
+ // 认证错误 - 创建 setup_required 错误
226
+ const entry = createErrorMessage(content, 'setup_required');
227
+ const index = this.indexProvider.next();
228
+ const patch = addNormalizedEntry(index, entry);
229
+ this.msgStore.pushPatch(patch);
230
+ }
231
+ else if (content.trim()) {
232
+ // 普通 stderr 消息
233
+ const entry = createErrorMessage(content);
234
+ const index = this.indexProvider.next();
235
+ const patch = addNormalizedEntry(index, entry);
236
+ this.msgStore.pushPatch(patch);
237
+ }
238
+ }
239
+ /**
240
+ * 解析单行 JSON
241
+ */
242
+ parseLine(line) {
243
+ let msg;
244
+ try {
245
+ msg = JSON.parse(line);
246
+ }
247
+ catch {
248
+ // 非 JSON 行(PTY echo、ANSI 控制序列等)— 丢弃,不产出 entry
249
+ // Agent CLI 的所有有效输出都是 JSONL 格式
250
+ if (DEBUG_PARSER) {
251
+ const stripped = stripAnsiSequences(line).trim();
252
+ if (stripped) {
253
+ console.log(`[CursorAgentParser] Skipping non-JSON line: "${stripped.slice(0, 80)}"`);
254
+ }
255
+ }
256
+ return;
257
+ }
258
+ // 推送 session_id
259
+ if (!this.sessionIdReported) {
260
+ const sessionId = extractSessionId(msg);
261
+ if (sessionId) {
262
+ this.msgStore.pushSessionId(sessionId);
263
+ const patch = setSessionId(sessionId);
264
+ this.msgStore.pushPatch(patch);
265
+ this.sessionIdReported = true;
266
+ }
267
+ }
268
+ // 判断是否需要刷新 assistant / thinking 缓冲区
269
+ const isAssistant = msg.type === 'assistant';
270
+ const isThinking = msg.type === 'thinking';
271
+ if (!isAssistant && this.currentAssistantIndex !== null) {
272
+ this.flushAssistant();
273
+ }
274
+ if (!isThinking && this.currentThinkingIndex !== null) {
275
+ this.flushThinking();
276
+ }
277
+ // 分类处理
278
+ switch (msg.type) {
279
+ case 'system':
280
+ this.handleSystem(msg);
281
+ break;
282
+ case 'user':
283
+ this.handleUser(msg);
284
+ break;
285
+ case 'assistant':
286
+ this.handleAssistant(msg);
287
+ break;
288
+ case 'thinking':
289
+ this.handleThinking(msg);
290
+ break;
291
+ case 'tool_call':
292
+ this.handleToolCall(msg);
293
+ break;
294
+ case 'result': {
295
+ // 从 result 消息中提取 token 用量(如果有)
296
+ const resultMsg = msg;
297
+ if (resultMsg.result && typeof resultMsg.result === 'object') {
298
+ const result = resultMsg.result;
299
+ const usage = result.usage;
300
+ if (usage && typeof usage === 'object') {
301
+ try {
302
+ const u = usage;
303
+ const totalTokens = (u.input_tokens || u.inputTokens || 0) +
304
+ (u.output_tokens || u.outputTokens || 0) +
305
+ (u.cache_read_input_tokens || 0) +
306
+ (u.cache_creation_input_tokens || 0);
307
+ const modelContextWindow = u.context_window || u.model_context_window || undefined;
308
+ const entry = createTokenUsageInfo(totalTokens, modelContextWindow);
309
+ const index = this.indexProvider.next();
310
+ const patch = addNormalizedEntry(index, entry);
311
+ this.msgStore.pushPatch(patch);
312
+ }
313
+ catch {
314
+ // 提取失败静默跳过
315
+ }
316
+ }
317
+ }
318
+ break;
319
+ }
320
+ default:
321
+ // 未知类型 - 作为系统消息输出
322
+ {
323
+ const entry = createSystemMessage(line);
324
+ const index = this.indexProvider.next();
325
+ const patch = addNormalizedEntry(index, entry);
326
+ this.msgStore.pushPatch(patch);
327
+ }
328
+ break;
329
+ }
330
+ }
331
+ /**
332
+ * 处理 system 消息
333
+ */
334
+ handleSystem(msg) {
335
+ if (!this.modelReported && msg.model) {
336
+ const entry = createSystemMessage(`System initialized with model: ${msg.model}`);
337
+ const index = this.indexProvider.next();
338
+ const patch = addNormalizedEntry(index, entry);
339
+ this.msgStore.pushPatch(patch);
340
+ this.modelReported = true;
341
+ }
342
+ }
343
+ /**
344
+ * 处理 user 消息 — 由 Agent CLI 输出 { type: "user" } 时产出 user_message entry
345
+ */
346
+ handleUser(msg) {
347
+ const text = concatMessageText(msg.message);
348
+ if (!text)
349
+ return;
350
+ const entry = createUserMessage(text);
351
+ const index = this.indexProvider.next();
352
+ const patch = addNormalizedEntry(index, entry);
353
+ this.msgStore.pushPatch(patch);
354
+ }
355
+ /**
356
+ * 处理 assistant 消息(流式文本块合并)
357
+ */
358
+ handleAssistant(msg) {
359
+ const chunk = concatMessageText(msg.message);
360
+ if (!chunk)
361
+ return;
362
+ this.currentAssistantBuffer += chunk;
363
+ if (this.currentAssistantIndex !== null) {
364
+ // 更新现有条目
365
+ const patch = updateEntryContent(this.currentAssistantIndex, this.currentAssistantBuffer);
366
+ this.msgStore.pushPatch(patch);
367
+ }
368
+ else {
369
+ // 创建新条目
370
+ const entry = createAssistantMessage(this.currentAssistantBuffer);
371
+ const index = this.indexProvider.next();
372
+ this.currentAssistantIndex = index;
373
+ const patch = addNormalizedEntry(index, entry);
374
+ this.msgStore.pushPatch(patch);
375
+ }
376
+ }
377
+ /**
378
+ * 处理 thinking 消息(流式思考块合并)
379
+ */
380
+ handleThinking(msg) {
381
+ if (!msg.text)
382
+ return;
383
+ this.currentThinkingBuffer += msg.text;
384
+ if (this.currentThinkingIndex !== null) {
385
+ // 更新现有条目
386
+ const patch = updateEntryContent(this.currentThinkingIndex, this.currentThinkingBuffer);
387
+ this.msgStore.pushPatch(patch);
388
+ }
389
+ else {
390
+ // 创建新条目
391
+ const entry = createThinking(this.currentThinkingBuffer);
392
+ const index = this.indexProvider.next();
393
+ this.currentThinkingIndex = index;
394
+ const patch = addNormalizedEntry(index, entry);
395
+ this.msgStore.pushPatch(patch);
396
+ }
397
+ }
398
+ /**
399
+ * 处理 tool_call 消息
400
+ */
401
+ handleToolCall(msg) {
402
+ const { subtype, call_id, tool_call } = msg;
403
+ const toolName = getToolCallName(tool_call);
404
+ const action = toolNameToAction(toolName);
405
+ const content = getToolCallContent(tool_call, this.worktreePath);
406
+ if (subtype?.toLowerCase() === 'started') {
407
+ // Extract todos if this is a todo tool call
408
+ const extras = this.extractTodoExtras(toolName, tool_call);
409
+ const entry = createToolUse(toolName, content, action, call_id, undefined, extras);
410
+ const index = this.indexProvider.next();
411
+ if (call_id) {
412
+ this.callIndexMap.set(call_id, index);
413
+ }
414
+ const patch = addNormalizedEntry(index, entry);
415
+ this.msgStore.pushPatch(patch);
416
+ }
417
+ else if (subtype?.toLowerCase() === 'completed' && call_id) {
418
+ // 工具调用完成 - 更新状态
419
+ const existingIndex = this.callIndexMap.get(call_id);
420
+ if (existingIndex !== undefined) {
421
+ const patch = updateToolStatus(existingIndex, 'success');
422
+ this.msgStore.pushPatch(patch);
423
+ }
424
+ }
425
+ }
426
+ /**
427
+ * Extract todo items from Cursor's updateTodosToolCall
428
+ */
429
+ extractTodoExtras(toolName, toolCall) {
430
+ if (toolName !== 'todo')
431
+ return undefined;
432
+ const args = getToolCallArgs(toolCall);
433
+ if (!args.todos || !Array.isArray(args.todos))
434
+ return undefined;
435
+ return {
436
+ todos: args.todos.map(t => ({
437
+ content: t.content || '',
438
+ status: normalizeTodoStatus(t.status || 'pending'),
439
+ priority: null,
440
+ })),
441
+ todoOperation: 'write',
442
+ };
443
+ }
444
+ /**
445
+ * 刷新 assistant 缓冲区
446
+ */
447
+ flushAssistant() {
448
+ this.currentAssistantIndex = null;
449
+ this.currentAssistantBuffer = '';
450
+ }
451
+ /**
452
+ * 刷新 thinking 缓冲区
453
+ */
454
+ flushThinking() {
455
+ this.currentThinkingIndex = null;
456
+ this.currentThinkingBuffer = '';
457
+ }
458
+ /**
459
+ * 完成解析
460
+ */
461
+ finish() {
462
+ // 处理剩余缓冲区
463
+ if (this.buffer.trim()) {
464
+ this.parseLine(this.buffer);
465
+ }
466
+ this.flushAssistant();
467
+ this.flushThinking();
468
+ }
469
+ }
470
+ /**
471
+ * 创建 Cursor Agent 解析器
472
+ */
473
+ export function createCursorAgentParser(msgStore, worktreePath = '') {
474
+ return new CursorAgentParser(msgStore, worktreePath);
475
+ }
476
+ //# sourceMappingURL=cursor-agent-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-agent-parser.js","sourceRoot":"","sources":["../../src/output/cursor-agent-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 日志标准化系统入口
3
+ */
4
+ export * from './types.js';
5
+ export { MsgStore, sessionMsgStoreManager } from './msg-store.js';
6
+ export { EntryIndexProvider, ConversationPatch, addNormalizedEntry, replaceNormalizedEntry, updateEntryContent, updateToolStatus, setSessionId, removeEntry, mergePatches, } from './utils/patch.js';
7
+ export { ClaudeCodeParser, createClaudeCodeParser } from './claude-code-parser.js';
8
+ export { CursorAgentParser, createCursorAgentParser } from './cursor-agent-parser.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/output/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,YAAY,CAAA;AAG1B,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAGjE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAClF,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 日志标准化系统入口
3
+ */
4
+ // 类型导出
5
+ export * from './types.js';
6
+ // MsgStore 导出
7
+ export { MsgStore, sessionMsgStoreManager } from './msg-store.js';
8
+ // Patch 工具导出
9
+ export { EntryIndexProvider, ConversationPatch, addNormalizedEntry, replaceNormalizedEntry, updateEntryContent, updateToolStatus, setSessionId, removeEntry, mergePatches, } from './utils/patch.js';
10
+ // 解析器导出
11
+ export { ClaudeCodeParser, createClaudeCodeParser } from './claude-code-parser.js';
12
+ export { CursorAgentParser, createCursorAgentParser } from './cursor-agent-parser.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO;AACP,cAAc,YAAY,CAAA;AAE1B,cAAc;AACd,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAEjE,aAAa;AACb,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,kBAAkB,CAAA;AAEzB,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAClF,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * MsgStore - conversation state container.
3
+ * Keeps patches/stdout history and snapshot reconstruction.
4
+ */
5
+ import { EntryIndexProvider } from './utils/patch.js';
6
+ import type { LogMsg, JsonPatch, NormalizedConversation } from './types.js';
7
+ /**
8
+ * MsgStore 类
9
+ * 管理消息的存储、历史回放和实时流式传输
10
+ */
11
+ export declare class MsgStore {
12
+ private messages;
13
+ private totalBytes;
14
+ private finished;
15
+ private baseSnapshot;
16
+ readonly entryIndex: EntryIndexProvider;
17
+ private patchListeners;
18
+ private sessionIdListeners;
19
+ private finishedListeners;
20
+ private cachedSnapshot;
21
+ private cachedUpToIndex;
22
+ constructor();
23
+ /**
24
+ * 从持久化快照恢复基础状态
25
+ * 设置 baseSnapshot 和 entryIndex,使新 parser 生成的 patch 索引正确衔接
26
+ */
27
+ restoreFromSnapshot(snapshot: NormalizedConversation): void;
28
+ /**
29
+ * 推送消息
30
+ */
31
+ push(msg: LogMsg): void;
32
+ /**
33
+ * 推送 stdout 数据
34
+ */
35
+ pushStdout(data: string): void;
36
+ /**
37
+ * 推送 stderr 数据
38
+ */
39
+ pushStderr(data: string): void;
40
+ /**
41
+ * 推送 patch
42
+ */
43
+ pushPatch(patch: JsonPatch): void;
44
+ /**
45
+ * 推送 session ID
46
+ */
47
+ pushSessionId(id: string): void;
48
+ /**
49
+ * 推送 message ID
50
+ */
51
+ pushMessageId(id: string): void;
52
+ /**
53
+ * 标记完成
54
+ */
55
+ finish(): void;
56
+ /**
57
+ * 标记完成(别名)
58
+ */
59
+ pushFinished(): void;
60
+ /**
61
+ * 是否已完成
62
+ */
63
+ isFinished(): boolean;
64
+ /**
65
+ * 获取所有消息
66
+ */
67
+ getMessages(): LogMsg[];
68
+ /**
69
+ * 获取当前标准化日志快照
70
+ * 使用增量缓存:只重放上次快照之后的新 patch,避免每次从头重放
71
+ */
72
+ getSnapshot(): NormalizedConversation;
73
+ onPatch(handler: (patch: JsonPatch) => void): () => void;
74
+ onSessionId(handler: (id: string) => void): () => void;
75
+ onFinished(handler: () => void): () => void;
76
+ }
77
+ /**
78
+ * Session MsgStore 管理器
79
+ * 管理多个会话的 MsgStore
80
+ */
81
+ declare class SessionMsgStoreManager {
82
+ private stores;
83
+ /**
84
+ * 创建 MsgStore
85
+ */
86
+ create(sessionId: string, _agentType?: string, _workingDir?: string): MsgStore;
87
+ /**
88
+ * 获取或创建 MsgStore
89
+ */
90
+ getOrCreate(sessionId: string): MsgStore;
91
+ /**
92
+ * 获取 MsgStore
93
+ */
94
+ get(sessionId: string): MsgStore | undefined;
95
+ /**
96
+ * 删除 MsgStore
97
+ */
98
+ delete(sessionId: string): boolean;
99
+ /**
100
+ * 删除 MsgStore(别名)
101
+ */
102
+ remove(sessionId: string): boolean;
103
+ /**
104
+ * 检查是否存在
105
+ */
106
+ has(sessionId: string): boolean;
107
+ }
108
+ export declare const sessionMsgStoreManager: SessionMsgStoreManager;
109
+ export {};
110
+ //# sourceMappingURL=msg-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-store.d.ts","sourceRoot":"","sources":["../../src/output/msg-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AA+B5E;;;GAGG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAuC;IAC3D,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,iBAAiB,CAAyB;IAGlD,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,eAAe,CAAM;;IAM7B;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAQ3D;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAiCvB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIjC;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;;OAGG;IACH,WAAW,IAAI,sBAAsB;IAiErC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAKxD,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAKtD,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;CAI5C;AAED;;;GAGG;AACH,cAAM,sBAAsB;IAC1B,OAAO,CAAC,MAAM,CAA+B;IAE7C;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ;IAS9E;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;IAIxC;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI5C;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAGhC;AAGD,eAAO,MAAM,sBAAsB,wBAA+B,CAAC"}