@ebowwa/coder 0.2.1 → 0.7.64

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 (401) hide show
  1. package/README.md +31 -32
  2. package/dist/core/__tests__/permissions.test.d.ts +12 -0
  3. package/dist/core/__tests__/permissions.test.d.ts.map +1 -0
  4. package/dist/core/__tests__/permissions.test.js +851 -0
  5. package/dist/core/agent-loop/__tests__/compaction.test.d.ts +5 -0
  6. package/dist/core/agent-loop/__tests__/compaction.test.d.ts.map +1 -0
  7. package/dist/core/agent-loop/__tests__/compaction.test.js +209 -0
  8. package/dist/core/agent-loop/__tests__/formatters.test.d.ts +5 -0
  9. package/dist/core/agent-loop/__tests__/formatters.test.d.ts.map +1 -0
  10. package/dist/core/agent-loop/__tests__/formatters.test.js +195 -0
  11. package/dist/core/agent-loop/__tests__/index.test.d.ts +5 -0
  12. package/dist/core/agent-loop/__tests__/index.test.d.ts.map +1 -0
  13. package/dist/core/agent-loop/__tests__/index.test.js +121 -0
  14. package/dist/core/agent-loop/__tests__/loop-state.test.d.ts +5 -0
  15. package/dist/core/agent-loop/__tests__/loop-state.test.d.ts.map +1 -0
  16. package/dist/core/agent-loop/__tests__/loop-state.test.js +340 -0
  17. package/dist/core/agent-loop/__tests__/message-builder.test.d.ts +5 -0
  18. package/dist/core/agent-loop/__tests__/message-builder.test.d.ts.map +1 -0
  19. package/dist/core/agent-loop/__tests__/message-builder.test.js +178 -0
  20. package/dist/core/agent-loop/__tests__/tool-executor.test.d.ts +5 -0
  21. package/dist/core/agent-loop/__tests__/tool-executor.test.d.ts.map +1 -0
  22. package/dist/core/agent-loop/__tests__/tool-executor.test.js +331 -0
  23. package/dist/core/agent-loop/compaction.d.ts +39 -0
  24. package/dist/core/agent-loop/compaction.d.ts.map +1 -0
  25. package/dist/core/agent-loop/compaction.js +51 -0
  26. package/dist/core/agent-loop/formatters.d.ts +21 -0
  27. package/dist/core/agent-loop/formatters.d.ts.map +1 -0
  28. package/dist/core/agent-loop/formatters.js +42 -0
  29. package/dist/core/agent-loop/index.d.ts +25 -0
  30. package/dist/core/agent-loop/index.d.ts.map +1 -0
  31. package/dist/core/agent-loop/index.js +83 -0
  32. package/dist/core/agent-loop/loop-state.d.ts +74 -0
  33. package/dist/core/agent-loop/loop-state.d.ts.map +1 -0
  34. package/dist/core/agent-loop/loop-state.js +147 -0
  35. package/dist/core/agent-loop/message-builder.d.ts +13 -0
  36. package/dist/core/agent-loop/message-builder.d.ts.map +1 -0
  37. package/dist/core/agent-loop/message-builder.js +49 -0
  38. package/dist/core/agent-loop/tool-executor.d.ts +23 -0
  39. package/dist/core/agent-loop/tool-executor.d.ts.map +1 -0
  40. package/dist/core/agent-loop/tool-executor.js +152 -0
  41. package/dist/core/agent-loop/turn-executor.d.ts +57 -0
  42. package/dist/core/agent-loop/turn-executor.d.ts.map +1 -0
  43. package/dist/core/agent-loop/turn-executor.js +124 -0
  44. package/dist/core/agent-loop/types.d.ts +141 -0
  45. package/dist/core/agent-loop/types.d.ts.map +1 -0
  46. package/dist/core/agent-loop/types.js +4 -0
  47. package/dist/core/agent-loop.d.ts +17 -0
  48. package/dist/core/agent-loop.d.ts.map +1 -0
  49. package/dist/core/agent-loop.js +16 -0
  50. package/dist/core/api-client-impl.d.ts +62 -0
  51. package/dist/core/api-client-impl.d.ts.map +1 -0
  52. package/dist/core/api-client-impl.js +479 -0
  53. package/dist/core/api-client.d.ts +6 -0
  54. package/dist/core/api-client.d.ts.map +1 -0
  55. package/dist/core/api-client.js +5 -0
  56. package/dist/core/checkpoints.d.ts +128 -0
  57. package/dist/core/checkpoints.d.ts.map +1 -0
  58. package/dist/core/checkpoints.js +438 -0
  59. package/dist/core/claude-md.d.ts +71 -0
  60. package/dist/core/claude-md.d.ts.map +1 -0
  61. package/dist/core/claude-md.js +198 -0
  62. package/dist/core/cognitive-security/hooks.d.ts +138 -0
  63. package/dist/core/cognitive-security/hooks.d.ts.map +1 -0
  64. package/dist/core/cognitive-security/hooks.js +389 -0
  65. package/dist/core/cognitive-security/index.d.ts +751 -0
  66. package/dist/core/cognitive-security/index.d.ts.map +1 -0
  67. package/dist/core/cognitive-security/index.js +1123 -0
  68. package/dist/core/cognitive-security/middleware.d.ts +136 -0
  69. package/dist/core/cognitive-security/middleware.d.ts.map +1 -0
  70. package/dist/core/cognitive-security/middleware.js +376 -0
  71. package/dist/core/config-loader.d.ts +127 -0
  72. package/dist/core/config-loader.d.ts.map +1 -0
  73. package/dist/core/config-loader.js +219 -0
  74. package/dist/core/context-compaction.d.ts +87 -0
  75. package/dist/core/context-compaction.d.ts.map +1 -0
  76. package/dist/core/context-compaction.js +428 -0
  77. package/dist/core/git-status.d.ts +25 -0
  78. package/dist/core/git-status.d.ts.map +1 -0
  79. package/dist/core/git-status.js +204 -0
  80. package/dist/core/image.d.ts +69 -0
  81. package/dist/core/image.d.ts.map +1 -0
  82. package/dist/core/image.js +290 -0
  83. package/dist/core/image.test.d.ts +2 -0
  84. package/dist/core/image.test.d.ts.map +1 -0
  85. package/dist/core/image.test.js +149 -0
  86. package/dist/core/models.d.ts +123 -0
  87. package/dist/core/models.d.ts.map +1 -0
  88. package/dist/core/models.js +325 -0
  89. package/dist/core/permissions.d.ts +81 -0
  90. package/dist/core/permissions.d.ts.map +1 -0
  91. package/dist/core/permissions.js +327 -0
  92. package/dist/core/retry.d.ts +25 -0
  93. package/dist/core/retry.d.ts.map +1 -0
  94. package/dist/core/retry.js +121 -0
  95. package/dist/core/session-store.d.ts +9 -0
  96. package/dist/core/session-store.d.ts.map +1 -0
  97. package/dist/core/session-store.js +10 -0
  98. package/dist/core/sessions/export.d.ts +47 -0
  99. package/dist/core/sessions/export.d.ts.map +1 -0
  100. package/dist/core/sessions/export.js +256 -0
  101. package/dist/core/sessions/index.d.ts +132 -0
  102. package/dist/core/sessions/index.d.ts.map +1 -0
  103. package/dist/core/sessions/index.js +442 -0
  104. package/dist/core/sessions/metadata.d.ts +77 -0
  105. package/dist/core/sessions/metadata.d.ts.map +1 -0
  106. package/dist/core/sessions/metadata.js +233 -0
  107. package/dist/core/sessions/persistence.d.ts +72 -0
  108. package/dist/core/sessions/persistence.d.ts.map +1 -0
  109. package/dist/core/sessions/persistence.js +201 -0
  110. package/dist/core/sessions/types.d.ts +110 -0
  111. package/dist/core/sessions/types.d.ts.map +1 -0
  112. package/dist/core/sessions/types.js +4 -0
  113. package/dist/core/stream-highlighter.d.ts +18 -0
  114. package/dist/core/stream-highlighter.d.ts.map +1 -0
  115. package/dist/core/stream-highlighter.js +916 -0
  116. package/dist/core/system-reminders.d.ts +89 -0
  117. package/dist/core/system-reminders.d.ts.map +1 -0
  118. package/dist/core/system-reminders.js +285 -0
  119. package/dist/ecosystem/hooks/__tests__/index.test.d.ts +5 -0
  120. package/dist/ecosystem/hooks/__tests__/index.test.d.ts.map +1 -0
  121. package/dist/ecosystem/hooks/__tests__/index.test.js +458 -0
  122. package/dist/ecosystem/hooks/index.d.ts +59 -0
  123. package/dist/ecosystem/hooks/index.d.ts.map +1 -0
  124. package/dist/ecosystem/hooks/index.js +294 -0
  125. package/dist/ecosystem/hooks/prompt-evaluator.d.ts +32 -0
  126. package/dist/ecosystem/hooks/prompt-evaluator.d.ts.map +1 -0
  127. package/dist/ecosystem/hooks/prompt-evaluator.js +229 -0
  128. package/dist/ecosystem/skills/index.d.ts +55 -0
  129. package/dist/ecosystem/skills/index.d.ts.map +1 -0
  130. package/dist/ecosystem/skills/index.js +258 -0
  131. package/dist/ecosystem/tools/__tests__/index.test.d.ts +7 -0
  132. package/dist/ecosystem/tools/__tests__/index.test.d.ts.map +1 -0
  133. package/dist/ecosystem/tools/__tests__/index.test.js +856 -0
  134. package/dist/ecosystem/tools/index.d.ts +24 -0
  135. package/dist/ecosystem/tools/index.d.ts.map +1 -0
  136. package/dist/ecosystem/tools/index.js +1709 -0
  137. package/dist/index.d.ts +24 -0
  138. package/dist/index.d.ts.map +1 -0
  139. package/dist/index.js +32 -2
  140. package/dist/interfaces/mcp/client.d.ts +40 -0
  141. package/dist/interfaces/mcp/client.d.ts.map +1 -0
  142. package/dist/interfaces/mcp/client.js +309 -0
  143. package/dist/interfaces/ui/index.d.ts +36 -0
  144. package/dist/interfaces/ui/index.d.ts.map +1 -0
  145. package/dist/interfaces/ui/index.js +61 -0
  146. package/dist/interfaces/ui/spinner.d.ts +140 -0
  147. package/dist/interfaces/ui/spinner.d.ts.map +1 -0
  148. package/dist/interfaces/ui/spinner.js +342 -0
  149. package/dist/interfaces/ui/terminal/cli/index.d.ts +12 -0
  150. package/dist/interfaces/ui/terminal/cli/index.d.ts.map +1 -0
  151. package/dist/interfaces/ui/terminal/cli/index.js +167 -0
  152. package/dist/interfaces/ui/terminal/shared/args.d.ts +39 -0
  153. package/dist/interfaces/ui/terminal/shared/args.d.ts.map +1 -0
  154. package/dist/interfaces/ui/terminal/shared/args.js +176 -0
  155. package/dist/interfaces/ui/terminal/shared/index.d.ts +11 -0
  156. package/dist/interfaces/ui/terminal/shared/index.d.ts.map +1 -0
  157. package/dist/interfaces/ui/terminal/shared/index.js +16 -0
  158. package/dist/interfaces/ui/terminal/shared/loading-state.d.ts +124 -0
  159. package/dist/interfaces/ui/terminal/shared/loading-state.d.ts.map +1 -0
  160. package/dist/interfaces/ui/terminal/shared/loading-state.js +246 -0
  161. package/dist/interfaces/ui/terminal/shared/query.d.ts +22 -0
  162. package/dist/interfaces/ui/terminal/shared/query.d.ts.map +1 -0
  163. package/dist/interfaces/ui/terminal/shared/query.js +100 -0
  164. package/dist/interfaces/ui/terminal/shared/setup.d.ts +33 -0
  165. package/dist/interfaces/ui/terminal/shared/setup.d.ts.map +1 -0
  166. package/dist/interfaces/ui/terminal/shared/setup.js +226 -0
  167. package/dist/interfaces/ui/terminal/shared/status-line.d.ts +117 -0
  168. package/dist/interfaces/ui/terminal/shared/status-line.d.ts.map +1 -0
  169. package/dist/interfaces/ui/terminal/shared/status-line.js +267 -0
  170. package/dist/interfaces/ui/terminal/shared/system-prompt.d.ts +38 -0
  171. package/dist/interfaces/ui/terminal/shared/system-prompt.d.ts.map +1 -0
  172. package/dist/interfaces/ui/terminal/shared/system-prompt.js +102 -0
  173. package/dist/interfaces/ui/terminal/tui/HelpPanel.d.ts +39 -0
  174. package/dist/interfaces/ui/terminal/tui/HelpPanel.d.ts.map +1 -0
  175. package/dist/interfaces/ui/terminal/tui/HelpPanel.js +215 -0
  176. package/dist/interfaces/ui/terminal/tui/InputContext.d.ts +91 -0
  177. package/dist/interfaces/ui/terminal/tui/InputContext.d.ts.map +1 -0
  178. package/dist/interfaces/ui/terminal/tui/InputContext.js +154 -0
  179. package/dist/interfaces/ui/terminal/tui/InputField.d.ts +18 -0
  180. package/dist/interfaces/ui/terminal/tui/InputField.d.ts.map +1 -0
  181. package/dist/interfaces/ui/terminal/tui/InputField.js +41 -0
  182. package/dist/interfaces/ui/terminal/tui/InteractiveTUI.d.ts +16 -0
  183. package/dist/interfaces/ui/terminal/tui/InteractiveTUI.d.ts.map +1 -0
  184. package/dist/interfaces/ui/terminal/tui/InteractiveTUI.js +451 -0
  185. package/dist/interfaces/ui/terminal/tui/MessageArea.d.ts +10 -0
  186. package/dist/interfaces/ui/terminal/tui/MessageArea.d.ts.map +1 -0
  187. package/dist/interfaces/ui/terminal/tui/MessageArea.js +91 -0
  188. package/dist/interfaces/ui/terminal/tui/MessageStore.d.ts +48 -0
  189. package/dist/interfaces/ui/terminal/tui/MessageStore.d.ts.map +1 -0
  190. package/dist/interfaces/ui/terminal/tui/MessageStore.js +151 -0
  191. package/dist/interfaces/ui/terminal/tui/StatusBar.d.ts +9 -0
  192. package/dist/interfaces/ui/terminal/tui/StatusBar.d.ts.map +1 -0
  193. package/dist/interfaces/ui/terminal/tui/StatusBar.js +36 -0
  194. package/dist/interfaces/ui/terminal/tui/commands.d.ts +21 -0
  195. package/dist/interfaces/ui/terminal/tui/commands.d.ts.map +1 -0
  196. package/dist/interfaces/ui/terminal/tui/commands.js +359 -0
  197. package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.d.ts +115 -0
  198. package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.d.ts.map +1 -0
  199. package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.js +306 -0
  200. package/dist/interfaces/ui/terminal/tui/components/MultilineInput.d.ts +92 -0
  201. package/dist/interfaces/ui/terminal/tui/components/MultilineInput.d.ts.map +1 -0
  202. package/dist/interfaces/ui/terminal/tui/components/MultilineInput.js +399 -0
  203. package/dist/interfaces/ui/terminal/tui/components/PaneManager.d.ts +59 -0
  204. package/dist/interfaces/ui/terminal/tui/components/PaneManager.d.ts.map +1 -0
  205. package/dist/interfaces/ui/terminal/tui/components/PaneManager.js +139 -0
  206. package/dist/interfaces/ui/terminal/tui/components/Sidebar.d.ts +68 -0
  207. package/dist/interfaces/ui/terminal/tui/components/Sidebar.d.ts.map +1 -0
  208. package/dist/interfaces/ui/terminal/tui/components/Sidebar.js +340 -0
  209. package/dist/interfaces/ui/terminal/tui/components/index.d.ts +23 -0
  210. package/dist/interfaces/ui/terminal/tui/components/index.d.ts.map +1 -0
  211. package/dist/interfaces/ui/terminal/tui/components/index.js +51 -0
  212. package/dist/interfaces/ui/terminal/tui/console.d.ts +20 -0
  213. package/dist/interfaces/ui/terminal/tui/console.d.ts.map +1 -0
  214. package/dist/interfaces/ui/terminal/tui/console.js +46 -0
  215. package/dist/interfaces/ui/terminal/tui/index.d.ts +20 -0
  216. package/dist/interfaces/ui/terminal/tui/index.d.ts.map +1 -0
  217. package/dist/interfaces/ui/terminal/tui/index.js +28 -0
  218. package/dist/interfaces/ui/terminal/tui/run.d.ts +13 -0
  219. package/dist/interfaces/ui/terminal/tui/run.d.ts.map +1 -0
  220. package/dist/interfaces/ui/terminal/tui/run.js +31 -0
  221. package/dist/interfaces/ui/terminal/tui/spinner.d.ts +44 -0
  222. package/dist/interfaces/ui/terminal/tui/spinner.d.ts.map +1 -0
  223. package/dist/interfaces/ui/terminal/tui/spinner.js +59 -0
  224. package/dist/interfaces/ui/terminal/tui/tui-app.d.ts +39 -0
  225. package/dist/interfaces/ui/terminal/tui/tui-app.d.ts.map +1 -0
  226. package/dist/interfaces/ui/terminal/tui/tui-app.js +198 -0
  227. package/dist/interfaces/ui/terminal/tui/tui-footer.d.ts +167 -0
  228. package/dist/interfaces/ui/terminal/tui/tui-footer.d.ts.map +1 -0
  229. package/dist/interfaces/ui/terminal/tui/tui-footer.js +330 -0
  230. package/dist/interfaces/ui/terminal/tui/types.d.ts +165 -0
  231. package/dist/interfaces/ui/terminal/tui/types.d.ts.map +1 -0
  232. package/dist/interfaces/ui/terminal/tui/types.js +5 -0
  233. package/dist/interfaces/ui/terminal/tui/useInputHandler.d.ts +23 -0
  234. package/dist/interfaces/ui/terminal/tui/useInputHandler.d.ts.map +1 -0
  235. package/dist/interfaces/ui/terminal/tui/useInputHandler.js +72 -0
  236. package/dist/interfaces/ui/terminal/tui/useNativeInput.d.ts +90 -0
  237. package/dist/interfaces/ui/terminal/tui/useNativeInput.d.ts.map +1 -0
  238. package/dist/interfaces/ui/terminal/tui/useNativeInput.js +188 -0
  239. package/dist/native/index.d.ts +480 -0
  240. package/dist/native/index.d.ts.map +1 -0
  241. package/dist/native/index.js +1625 -0
  242. package/dist/teammates/index.d.ts +161 -0
  243. package/dist/teammates/index.d.ts.map +1 -0
  244. package/dist/teammates/index.js +827 -0
  245. package/dist/types/index.d.ts +482 -0
  246. package/dist/types/index.d.ts.map +1 -0
  247. package/dist/types/index.js +52 -0
  248. package/native/README.md +5 -5
  249. package/native/index.darwin-arm64.node +0 -0
  250. package/native/index.node +0 -0
  251. package/native/package.json +4 -4
  252. package/package.json +33 -16
  253. package/packages/src/core/__tests__/permissions.test.ts +1091 -0
  254. package/packages/src/core/agent-loop/__tests__/compaction.test.ts +280 -0
  255. package/packages/src/core/agent-loop/__tests__/formatters.test.ts +234 -0
  256. package/packages/src/core/agent-loop/__tests__/index.test.ts +162 -0
  257. package/packages/src/core/agent-loop/__tests__/loop-state.test.ts +413 -0
  258. package/packages/src/core/agent-loop/__tests__/message-builder.test.ts +229 -0
  259. package/packages/src/core/agent-loop/__tests__/tool-executor.test.ts +457 -0
  260. package/packages/src/core/agent-loop/compaction.ts +88 -0
  261. package/packages/src/core/agent-loop/formatters.ts +50 -0
  262. package/packages/src/core/agent-loop/index.ts +135 -0
  263. package/packages/src/core/agent-loop/loop-state.ts +187 -0
  264. package/packages/src/core/agent-loop/message-builder.ts +62 -0
  265. package/packages/src/core/agent-loop/tool-executor.ts +211 -0
  266. package/packages/src/core/agent-loop/turn-executor.ts +222 -0
  267. package/packages/src/core/agent-loop/types.ts +148 -0
  268. package/packages/src/core/agent-loop.ts +18 -0
  269. package/packages/src/core/api-client-impl.ts +619 -0
  270. package/packages/src/core/api-client.ts +6 -0
  271. package/packages/src/core/checkpoints.ts +606 -0
  272. package/packages/src/core/claude-md.ts +272 -0
  273. package/packages/src/core/cognitive-security/hooks.ts +590 -0
  274. package/packages/src/core/cognitive-security/index.ts +2041 -0
  275. package/packages/src/core/cognitive-security/middleware.ts +536 -0
  276. package/packages/src/core/config-loader.ts +324 -0
  277. package/packages/src/core/context-compaction.ts +578 -0
  278. package/packages/src/core/git-status.ts +262 -0
  279. package/packages/src/core/image.test.ts +180 -0
  280. package/packages/src/core/image.ts +350 -0
  281. package/packages/src/core/lmdb.db +0 -0
  282. package/packages/src/core/lmdb.db-lock +0 -0
  283. package/packages/src/core/models.ts +430 -0
  284. package/packages/src/core/normalizers/todo +4 -0
  285. package/packages/src/core/permissions.ts +431 -0
  286. package/packages/src/core/retry.ts +170 -0
  287. package/packages/src/core/session-store.ts +36 -0
  288. package/packages/src/core/sessions/export.ts +329 -0
  289. package/packages/src/core/sessions/index.ts +587 -0
  290. package/packages/src/core/sessions/metadata.ts +309 -0
  291. package/packages/src/core/sessions/persistence.ts +244 -0
  292. package/packages/src/core/sessions/types.ts +169 -0
  293. package/packages/src/core/stream-highlighter.ts +1123 -0
  294. package/packages/src/core/system-reminders.ts +402 -0
  295. package/packages/src/core/todo +8 -0
  296. package/packages/src/ecosystem/hooks/__tests__/index.test.ts +561 -0
  297. package/packages/src/ecosystem/hooks/index.ts +341 -0
  298. package/packages/src/ecosystem/hooks/prompt-evaluator.ts +300 -0
  299. package/packages/src/ecosystem/skills/index.ts +295 -0
  300. package/packages/src/ecosystem/tools/__tests__/index.test.ts +1335 -0
  301. package/packages/src/ecosystem/tools/index.ts +1877 -0
  302. package/packages/src/index.ts +120 -0
  303. package/packages/src/interfaces/mcp/client.ts +389 -0
  304. package/packages/src/interfaces/ui/Screenshot 2026-03-02 at 9.23.10/342/200/257PM.png +0 -0
  305. package/packages/src/interfaces/ui/Screenshot 2026-03-03 at 10.55.11/342/200/257AM.png +0 -0
  306. package/packages/src/interfaces/ui/index.ts +161 -0
  307. package/packages/src/interfaces/ui/lmdb.db +0 -0
  308. package/packages/src/interfaces/ui/lmdb.db-lock +0 -0
  309. package/packages/src/interfaces/ui/spinner.ts +451 -0
  310. package/packages/src/interfaces/ui/terminal/cli/index.ts +228 -0
  311. package/packages/src/interfaces/ui/terminal/lmdb.db +0 -0
  312. package/packages/src/interfaces/ui/terminal/lmdb.db-lock +0 -0
  313. package/packages/src/interfaces/ui/terminal/shared/args.ts +222 -0
  314. package/packages/src/interfaces/ui/terminal/shared/index.ts +71 -0
  315. package/packages/src/interfaces/ui/terminal/shared/loading-state.ts +322 -0
  316. package/packages/src/interfaces/ui/terminal/shared/query.ts +146 -0
  317. package/packages/src/interfaces/ui/terminal/shared/setup.ts +295 -0
  318. package/packages/src/interfaces/ui/terminal/shared/status-line.ts +358 -0
  319. package/packages/src/interfaces/ui/terminal/shared/system-prompt.ts +146 -0
  320. package/packages/src/interfaces/ui/terminal/tui/HelpPanel.tsx +262 -0
  321. package/packages/src/interfaces/ui/terminal/tui/InputContext.tsx +232 -0
  322. package/packages/src/interfaces/ui/terminal/tui/InputField.tsx +62 -0
  323. package/packages/src/interfaces/ui/terminal/tui/InteractiveTUI.tsx +537 -0
  324. package/packages/src/interfaces/ui/terminal/tui/MessageArea.tsx +107 -0
  325. package/packages/src/interfaces/ui/terminal/tui/MessageStore.tsx +240 -0
  326. package/packages/src/interfaces/ui/terminal/tui/StatusBar.tsx +54 -0
  327. package/packages/src/interfaces/ui/terminal/tui/commands.ts +438 -0
  328. package/packages/src/interfaces/ui/terminal/tui/components/InteractiveElements.tsx +584 -0
  329. package/packages/src/interfaces/ui/terminal/tui/components/MultilineInput.tsx +614 -0
  330. package/packages/src/interfaces/ui/terminal/tui/components/PaneManager.tsx +333 -0
  331. package/packages/src/interfaces/ui/terminal/tui/components/Sidebar.tsx +604 -0
  332. package/packages/src/interfaces/ui/terminal/tui/components/index.ts +118 -0
  333. package/packages/src/interfaces/ui/terminal/tui/console.ts +49 -0
  334. package/packages/src/interfaces/ui/terminal/tui/index.ts +90 -0
  335. package/packages/src/interfaces/ui/terminal/tui/run.tsx +42 -0
  336. package/packages/src/interfaces/ui/terminal/tui/spinner.ts +69 -0
  337. package/packages/src/interfaces/ui/terminal/tui/tui-app.tsx +390 -0
  338. package/packages/src/interfaces/ui/terminal/tui/tui-footer.ts +422 -0
  339. package/packages/src/interfaces/ui/terminal/tui/types.ts +186 -0
  340. package/packages/src/interfaces/ui/terminal/tui/useInputHandler.ts +104 -0
  341. package/packages/src/interfaces/ui/terminal/tui/useNativeInput.ts +239 -0
  342. package/packages/src/lmdb.db +0 -0
  343. package/packages/src/lmdb.db-lock +0 -0
  344. package/packages/src/native/index.ts +2345 -0
  345. package/packages/src/teammates/index.ts +982 -0
  346. package/packages/src/types/index.ts +722 -0
  347. package/dist/cli.js +0 -148
  348. package/dist/index-0pkak453.js +0 -136
  349. package/dist/index-0qd0x8b4.js +0 -110
  350. package/dist/index-0x3kprq6.js +0 -240
  351. package/dist/index-1eawy937.js +0 -308
  352. package/dist/index-24m2aygy.js +0 -240
  353. package/dist/index-29xcjnne.js +0 -280
  354. package/dist/index-2avyytn5.js +0 -349
  355. package/dist/index-4ms367ey.js +0 -136
  356. package/dist/index-4w2t3b0m.js +0 -240
  357. package/dist/index-4xfgd8nz.js +0 -261
  358. package/dist/index-5acjp9gc.js +0 -157
  359. package/dist/index-5s15hr56.js +0 -136
  360. package/dist/index-6e4wf341.js +0 -349
  361. package/dist/index-6fvnkedw.js +0 -240
  362. package/dist/index-6rqpmd4g.js +0 -128
  363. package/dist/index-77ckwnbm.js +0 -280
  364. package/dist/index-9knxy49k.js +0 -128
  365. package/dist/index-9zrnw4zx.js +0 -128
  366. package/dist/index-bk21w99v.js +0 -280
  367. package/dist/index-c41n76fv.js +0 -240
  368. package/dist/index-cb4ppjdt.js +0 -255
  369. package/dist/index-cfb2edt6.js +0 -240
  370. package/dist/index-cmfa38hh.js +0 -308
  371. package/dist/index-datjz8q1.js +0 -257
  372. package/dist/index-eadf4wvn.js +0 -240
  373. package/dist/index-em5k0m3z.js +0 -345
  374. package/dist/index-gh8r333a.js +0 -110
  375. package/dist/index-gkx6k2tr.js +0 -261
  376. package/dist/index-h5cabfks.js +0 -155
  377. package/dist/index-hcrpwyy3.js +0 -261
  378. package/dist/index-hk7fwwa8.js +0 -257
  379. package/dist/index-jb8cw7f8.js +0 -136
  380. package/dist/index-kbyw4th1.js +0 -347
  381. package/dist/index-kgj5gqnm.js +0 -345
  382. package/dist/index-mdf6xp1z.js +0 -255
  383. package/dist/index-mrhv8kvc.js +0 -280
  384. package/dist/index-mt4743dd.js +0 -161
  385. package/dist/index-qnwsg97q.js +0 -240
  386. package/dist/index-qwdy6x44.js +0 -261
  387. package/dist/index-rmj77261.js +0 -157
  388. package/dist/index-sbbw1a61.js +0 -349
  389. package/dist/index-svy5bcpn.js +0 -345
  390. package/dist/index-tvmy7tm9.js +0 -261
  391. package/dist/index-tzz4vzkj.js +0 -312
  392. package/dist/index-vz80zmhe.js +0 -110
  393. package/dist/index-wed2fk67.js +0 -240
  394. package/dist/index-wksgzz8e.js +0 -280
  395. package/dist/index-wn2m4wma.js +0 -240
  396. package/dist/index-xha05vjc.js +0 -257
  397. package/dist/index-yc6eh8p8.js +0 -136
  398. package/dist/index-ycjxx9ft.js +0 -240
  399. package/dist/index-z0gzd0fc.js +0 -110
  400. package/dist/index-z8cwtf8j.js +0 -240
  401. package/dist/index-zy5mtt00.js +0 -128
@@ -0,0 +1,442 @@
1
+ /**
2
+ * Session Store - Composable session management
3
+ * Composes persistence, metadata, and export modules
4
+ */
5
+ import { homedir } from "os";
6
+ import { join } from "path";
7
+ import { SessionPersistence } from "./persistence.js";
8
+ import { SessionMetadataManager } from "./metadata.js";
9
+ import { SessionExporter } from "./export.js";
10
+ // Re-export types for convenience
11
+ export * from "./types.js";
12
+ export { SessionPersistence } from "./persistence.js";
13
+ export { SessionMetadataManager } from "./metadata.js";
14
+ export { SessionExporter } from "./export.js";
15
+ /**
16
+ * Main SessionStore class
17
+ * Composes persistence, metadata, and export functionality
18
+ */
19
+ export class SessionStore {
20
+ persistence;
21
+ metadataManager;
22
+ exporter;
23
+ currentSessionId = null;
24
+ currentMetadata = null;
25
+ eventHandlers = new Set();
26
+ constructor(sessionsDir) {
27
+ const dir = sessionsDir ?? join(homedir(), ".claude", "sessions");
28
+ this.persistence = new SessionPersistence(dir);
29
+ this.metadataManager = new SessionMetadataManager(this.persistence);
30
+ this.exporter = new SessionExporter(this.persistence);
31
+ }
32
+ // ============================================
33
+ // INITIALIZATION
34
+ // ============================================
35
+ /**
36
+ * Initialize the sessions directory
37
+ */
38
+ async init() {
39
+ await this.persistence.init();
40
+ }
41
+ /**
42
+ * Get the sessions directory path
43
+ */
44
+ getSessionsDir() {
45
+ return this.persistence.getSessionsDir();
46
+ }
47
+ /**
48
+ * Get the file path for a specific session
49
+ */
50
+ getSessionPath(sessionId) {
51
+ return this.persistence.getSessionPath(sessionId);
52
+ }
53
+ // ============================================
54
+ // EVENT HANDLING
55
+ // ============================================
56
+ /**
57
+ * Subscribe to session events
58
+ */
59
+ onEvent(handler) {
60
+ this.eventHandlers.add(handler);
61
+ return () => this.eventHandlers.delete(handler);
62
+ }
63
+ /**
64
+ * Emit a session event
65
+ */
66
+ async emit(type) {
67
+ const event = { ...type, timestamp: type.timestamp ?? Date.now() };
68
+ await Promise.all([...this.eventHandlers].map((handler) => handler(event)));
69
+ }
70
+ // ============================================
71
+ // SESSION CREATION & MANAGEMENT
72
+ // ============================================
73
+ /**
74
+ * Create a new session (or reuse existing empty session)
75
+ */
76
+ async createSession(options) {
77
+ await this.init();
78
+ // Try to find an existing empty session to reuse
79
+ const sessions = await this.listSessions(20);
80
+ const emptySession = sessions.find((s) => s.messageCount === 0);
81
+ if (emptySession) {
82
+ // Reuse the empty session
83
+ this.currentSessionId = emptySession.id;
84
+ this.currentMetadata = this.metadataManager.createMetadata({
85
+ id: emptySession.id,
86
+ ...options,
87
+ });
88
+ await this.persistence.append(emptySession.id, this.currentMetadata);
89
+ await this.emit({
90
+ type: "resumed",
91
+ sessionId: emptySession.id,
92
+ timestamp: Date.now(),
93
+ data: { reused: true },
94
+ });
95
+ return emptySession.id;
96
+ }
97
+ // No empty session found, create new
98
+ const sessionId = this.metadataManager.generateId();
99
+ this.currentSessionId = sessionId;
100
+ this.currentMetadata = this.metadataManager.createMetadata({
101
+ id: sessionId,
102
+ ...options,
103
+ });
104
+ await this.persistence.append(sessionId, this.currentMetadata);
105
+ // Write context entry
106
+ const context = {
107
+ type: "context",
108
+ timestamp: Date.now(),
109
+ workingDirectory: options.workingDirectory,
110
+ };
111
+ await this.persistence.append(sessionId, context);
112
+ await this.emit({
113
+ type: "created",
114
+ sessionId,
115
+ timestamp: Date.now(),
116
+ data: this.currentMetadata,
117
+ });
118
+ return sessionId;
119
+ }
120
+ /**
121
+ * Resume an existing session
122
+ */
123
+ async resumeSession(sessionId) {
124
+ const entries = await this.persistence.read(sessionId);
125
+ if (entries.length === 0) {
126
+ return null;
127
+ }
128
+ const session = this.parseEntries(entries);
129
+ session.metadata.id = sessionId; // Ensure ID is set
130
+ this.currentSessionId = sessionId;
131
+ this.currentMetadata = session.metadata;
132
+ await this.emit({
133
+ type: "resumed",
134
+ sessionId,
135
+ timestamp: Date.now(),
136
+ data: session.metadata,
137
+ });
138
+ return session;
139
+ }
140
+ /**
141
+ * Parse session entries into structured session
142
+ */
143
+ parseEntries(entries) {
144
+ let metadata = null;
145
+ const messages = [];
146
+ const tools = [];
147
+ const metrics = [];
148
+ let context = null;
149
+ const checkpoints = [];
150
+ for (const entry of entries) {
151
+ // All entries have explicit type field now
152
+ switch (entry.type) {
153
+ case "metadata":
154
+ metadata = entry;
155
+ break;
156
+ case "message":
157
+ messages.push(entry.data);
158
+ break;
159
+ case "tool_use":
160
+ tools.push(entry);
161
+ break;
162
+ case "metrics":
163
+ metrics.push(entry.data);
164
+ break;
165
+ case "context":
166
+ context = entry;
167
+ break;
168
+ case "checkpoint":
169
+ checkpoints.push(entry);
170
+ break;
171
+ }
172
+ }
173
+ if (!metadata) {
174
+ metadata = this.metadataManager.createMetadata({
175
+ model: "claude-sonnet-4-6",
176
+ workingDirectory: process.cwd(),
177
+ });
178
+ }
179
+ return {
180
+ metadata,
181
+ messages,
182
+ tools,
183
+ metrics,
184
+ context,
185
+ checkpoints,
186
+ };
187
+ }
188
+ /**
189
+ * Delete a session
190
+ */
191
+ async deleteSession(sessionId) {
192
+ const deleted = await this.persistence.delete(sessionId);
193
+ if (deleted) {
194
+ await this.emit({
195
+ type: "deleted",
196
+ sessionId,
197
+ timestamp: Date.now(),
198
+ });
199
+ if (this.currentSessionId === sessionId) {
200
+ this.currentSessionId = null;
201
+ this.currentMetadata = null;
202
+ }
203
+ }
204
+ return deleted;
205
+ }
206
+ // ============================================
207
+ // DATA SAVING
208
+ // ============================================
209
+ /**
210
+ * Save a message to the current session
211
+ */
212
+ async saveMessage(message) {
213
+ if (!this.currentSessionId) {
214
+ throw new Error("No active session");
215
+ }
216
+ const entry = {
217
+ type: "message",
218
+ timestamp: Date.now(),
219
+ data: message,
220
+ };
221
+ await this.persistence.append(this.currentSessionId, entry);
222
+ await this.emit({
223
+ type: "message_saved",
224
+ sessionId: this.currentSessionId,
225
+ timestamp: Date.now(),
226
+ data: message,
227
+ });
228
+ }
229
+ /**
230
+ * Save a tool use to the current session
231
+ */
232
+ async saveToolUse(toolId, toolName, input, result, isError) {
233
+ if (!this.currentSessionId) {
234
+ throw new Error("No active session");
235
+ }
236
+ const entry = {
237
+ type: "tool_use",
238
+ timestamp: Date.now(),
239
+ toolId,
240
+ toolName,
241
+ input,
242
+ result,
243
+ isError,
244
+ };
245
+ await this.persistence.append(this.currentSessionId, entry);
246
+ }
247
+ /**
248
+ * Save metrics to the current session
249
+ */
250
+ async saveMetrics(metrics) {
251
+ if (!this.currentSessionId) {
252
+ throw new Error("No active session");
253
+ }
254
+ const entry = {
255
+ type: "metrics",
256
+ timestamp: Date.now(),
257
+ data: metrics,
258
+ };
259
+ await this.persistence.append(this.currentSessionId, entry);
260
+ // Update running totals in metadata
261
+ if (this.currentMetadata) {
262
+ this.currentMetadata.totalCost =
263
+ (this.currentMetadata.totalCost ?? 0) + metrics.costUSD;
264
+ this.currentMetadata.totalTokens = {
265
+ input: (this.currentMetadata.totalTokens?.input ?? 0) +
266
+ metrics.usage.input_tokens,
267
+ output: (this.currentMetadata.totalTokens?.output ?? 0) +
268
+ metrics.usage.output_tokens,
269
+ };
270
+ }
271
+ await this.emit({
272
+ type: "metrics_saved",
273
+ sessionId: this.currentSessionId,
274
+ timestamp: Date.now(),
275
+ data: metrics,
276
+ });
277
+ }
278
+ // ============================================
279
+ // LISTING & QUERYING
280
+ // ============================================
281
+ /**
282
+ * List recent sessions
283
+ */
284
+ async listSessions(limit = 20, filter) {
285
+ await this.init();
286
+ const files = await this.persistence.listFiles();
287
+ // Get modification times for sorting
288
+ const modTimes = await this.persistence.getModificationTimes(files);
289
+ // Sort by modification time (newest first)
290
+ const sortedFiles = files.sort((a, b) => {
291
+ const timeA = modTimes.get(a)?.getTime() ?? 0;
292
+ const timeB = modTimes.get(b)?.getTime() ?? 0;
293
+ return timeB - timeA;
294
+ });
295
+ // Parse summaries
296
+ const sessions = [];
297
+ for (const sessionId of sortedFiles.slice(0, limit * 2)) {
298
+ const summary = await this.metadataManager.getSummary(sessionId);
299
+ if (summary) {
300
+ sessions.push(summary);
301
+ }
302
+ }
303
+ // Apply filter if provided
304
+ const filtered = filter
305
+ ? this.metadataManager.filterSessions(sessions, filter)
306
+ : sessions;
307
+ // Sort by last activity
308
+ const sorted = this.metadataManager.sortSessions(filtered, "lastActivity", "desc");
309
+ return sorted.slice(0, limit);
310
+ }
311
+ /**
312
+ * Get session summary by ID
313
+ */
314
+ async getSessionSummary(sessionId) {
315
+ return this.metadataManager.getSummary(sessionId);
316
+ }
317
+ /**
318
+ * Find empty sessions
319
+ */
320
+ async findEmptySessions() {
321
+ const sessions = await this.listSessions(100);
322
+ return this.metadataManager.findEmptySessions(sessions);
323
+ }
324
+ /**
325
+ * Clean up empty sessions (delete them)
326
+ */
327
+ async cleanupEmptySessions() {
328
+ const empty = await this.findEmptySessions();
329
+ let deleted = 0;
330
+ for (const session of empty) {
331
+ // Don't delete the current session even if empty
332
+ if (session.id === this.currentSessionId) {
333
+ continue;
334
+ }
335
+ const success = await this.deleteSession(session.id);
336
+ if (success) {
337
+ deleted++;
338
+ }
339
+ }
340
+ return deleted;
341
+ }
342
+ // ============================================
343
+ // EXPORT
344
+ // ============================================
345
+ /**
346
+ * Export session to a file
347
+ */
348
+ async exportSession(sessionId, format, outputPath) {
349
+ const session = await this.resumeSession(sessionId);
350
+ if (!session) {
351
+ throw new Error(`Session not found: ${sessionId}`);
352
+ }
353
+ let content;
354
+ let defaultExt;
355
+ switch (format) {
356
+ case "jsonl": {
357
+ const sessionFile = this.persistence.getSessionPath(sessionId);
358
+ content = await Bun.file(sessionFile).text();
359
+ defaultExt = "jsonl";
360
+ break;
361
+ }
362
+ case "json": {
363
+ content = this.exporter.export(session, "json");
364
+ defaultExt = "json";
365
+ break;
366
+ }
367
+ case "markdown": {
368
+ content = this.exporter.export(session, "markdown");
369
+ defaultExt = "md";
370
+ break;
371
+ }
372
+ default:
373
+ throw new Error(`Unsupported format: ${format}`);
374
+ }
375
+ const finalPath = outputPath ?? join(process.cwd(), `session-${sessionId}.${defaultExt}`);
376
+ await Bun.write(finalPath, content);
377
+ return finalPath;
378
+ }
379
+ // ============================================
380
+ // CURRENT SESSION ACCESSORS
381
+ // ============================================
382
+ /**
383
+ * Get the current session ID
384
+ */
385
+ getCurrentSessionId() {
386
+ return this.currentSessionId;
387
+ }
388
+ /**
389
+ * Get the current session metadata
390
+ */
391
+ getCurrentMetadata() {
392
+ return this.currentMetadata;
393
+ }
394
+ /**
395
+ * Update current session metadata
396
+ */
397
+ updateMetadata(updates) {
398
+ if (this.currentMetadata) {
399
+ this.currentMetadata = this.metadataManager.merge(this.currentMetadata, updates);
400
+ }
401
+ }
402
+ // ============================================
403
+ // UTILITY
404
+ // ============================================
405
+ /**
406
+ * Check if a session exists
407
+ */
408
+ async sessionExists(sessionId) {
409
+ return this.persistence.exists(sessionId);
410
+ }
411
+ /**
412
+ * Get session statistics
413
+ */
414
+ async getStats() {
415
+ const sessions = await this.listSessions(1000);
416
+ const stats = this.metadataManager.calculateStats(sessions);
417
+ const empty = this.metadataManager.findEmptySessions(sessions);
418
+ return {
419
+ totalSessions: stats.totalSessions,
420
+ totalMessages: stats.totalMessages,
421
+ totalCost: stats.totalCost,
422
+ emptySessions: empty.length,
423
+ };
424
+ }
425
+ }
426
+ // ============================================
427
+ // HELPER FUNCTIONS (for CLI compatibility)
428
+ // ============================================
429
+ /**
430
+ * Format a session summary for display
431
+ */
432
+ export function formatSessionSummary(session) {
433
+ return SessionExporter.formatSummary(session);
434
+ }
435
+ /**
436
+ * Print sessions list for CLI
437
+ */
438
+ export function printSessionsList(sessions) {
439
+ SessionExporter.printList(sessions);
440
+ }
441
+ // Default export for convenience
442
+ export default SessionStore;
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Session Metadata - Manage session metadata and summaries
3
+ */
4
+ import type { SessionMetadata, SessionSummary, SessionEntry, SessionFilter } from "./types.js";
5
+ import { SessionPersistence } from "./persistence.js";
6
+ export declare class SessionMetadataManager {
7
+ private persistence;
8
+ constructor(persistence: SessionPersistence);
9
+ /**
10
+ * Generate a new session ID
11
+ */
12
+ generateId(): string;
13
+ /**
14
+ * Create metadata for a new session
15
+ */
16
+ createMetadata(options: {
17
+ id?: string;
18
+ model: string;
19
+ workingDirectory: string;
20
+ agentName?: string;
21
+ agentColor?: string;
22
+ teamName?: string;
23
+ }): SessionMetadata;
24
+ /**
25
+ * Update metadata timestamps
26
+ */
27
+ touch(metadata: SessionMetadata): SessionMetadata;
28
+ /**
29
+ * Merge updated fields into metadata
30
+ */
31
+ merge(metadata: SessionMetadata, updates: Partial<SessionMetadata>): SessionMetadata;
32
+ /**
33
+ * Get summary from session entries
34
+ */
35
+ getSummary(sessionId: string): Promise<SessionSummary | null>;
36
+ /**
37
+ * Convert entries to summary
38
+ */
39
+ entriesToSummary(sessionId: string, entries: SessionEntry[]): SessionSummary | null;
40
+ /**
41
+ * Filter sessions based on criteria
42
+ */
43
+ filterSessions(sessions: SessionSummary[], filter: SessionFilter): SessionSummary[];
44
+ /**
45
+ * Sort sessions by various criteria
46
+ */
47
+ sortSessions(sessions: SessionSummary[], sortBy?: "created" | "updated" | "lastActivity" | "messageCount" | "cost", order?: "asc" | "desc"): SessionSummary[];
48
+ /**
49
+ * Find empty sessions (no messages)
50
+ */
51
+ findEmptySessions(sessions: SessionSummary[]): SessionSummary[];
52
+ /**
53
+ * Find sessions by partial ID match
54
+ */
55
+ findById(sessions: SessionSummary[], partialId: string): SessionSummary | undefined;
56
+ /**
57
+ * Get unique models from sessions
58
+ */
59
+ getUniqueModels(sessions: SessionSummary[]): string[];
60
+ /**
61
+ * Get unique working directories from sessions
62
+ */
63
+ getUniqueDirectories(sessions: SessionSummary[]): string[];
64
+ /**
65
+ * Calculate aggregate statistics
66
+ */
67
+ calculateStats(sessions: SessionSummary[]): {
68
+ totalSessions: number;
69
+ totalMessages: number;
70
+ totalCost: number;
71
+ totalInputTokens: number;
72
+ totalOutputTokens: number;
73
+ averageMessagesPerSession: number;
74
+ averageCostPerSession: number;
75
+ };
76
+ }
77
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../packages/src/core/sessions/metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,YAAY,EAGZ,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAAqB;gBAE5B,WAAW,EAAE,kBAAkB;IAI3C;;OAEG;IACH,UAAU,IAAI,MAAM;IAMpB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE;QACtB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,eAAe;IAgBnB;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,eAAe,GAAG,eAAe;IAOjD;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,eAAe;IAQlB;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAKnE;;OAEG;IACH,gBAAgB,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,EAAE,GACtB,cAAc,GAAG,IAAI;IAyExB;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,cAAc,EAAE,EAC1B,MAAM,EAAE,aAAa,GACpB,cAAc,EAAE;IAqCnB;;OAEG;IACH,YAAY,CACV,QAAQ,EAAE,cAAc,EAAE,EAC1B,MAAM,GAAE,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,MAAuB,EACzF,KAAK,GAAE,KAAK,GAAG,MAAe,GAC7B,cAAc,EAAE;IA0BnB;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;IAI/D;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAInF;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE;IAKrD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE;IAK1D;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG;QAC1C,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,yBAAyB,EAAE,MAAM,CAAC;QAClC,qBAAqB,EAAE,MAAM,CAAC;KAC/B;CAuBF"}