@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,430 @@
1
+ /**
2
+ * Model Configuration - Single Source of Truth
3
+ * Consolidates all model-related constants, types, and utilities
4
+ */
5
+
6
+ // ============================================
7
+ // MODEL DEFINITIONS
8
+ // ============================================
9
+
10
+ export interface ModelDefinition {
11
+ /** Model ID (e.g., "claude-opus-4-6") */
12
+ id: string;
13
+ /** Short display name (e.g., "Opus 4.6") */
14
+ name: string;
15
+ /** Full display name (e.g., "Claude Opus 4.6") - for /models command */
16
+ fullName: string;
17
+ /** Context window in tokens */
18
+ contextWindow: number;
19
+ /** Maximum output tokens (optional, defaults to contextWindow/4) */
20
+ maxOutput?: number;
21
+ /** Pricing per 1M tokens in USD */
22
+ pricing: {
23
+ input: number;
24
+ output: number;
25
+ cacheWrite: number;
26
+ cacheRead: number;
27
+ };
28
+ /** Whether model supports extended thinking */
29
+ supportsThinking: boolean;
30
+ /** Model provider */
31
+ provider: "anthropic" | "zhipu" | "openai" | "other";
32
+ /** Whether model supports vision/images */
33
+ supportsVision: boolean;
34
+ }
35
+
36
+ /**
37
+ * All available models with complete configuration
38
+ */
39
+ export const MODELS: Record<string, ModelDefinition> = {
40
+ // Claude 4.x Series (Latest)
41
+ "claude-opus-4-6": {
42
+ id: "claude-opus-4-6",
43
+ name: "Opus 4.6",
44
+ fullName: "Claude Opus 4.6",
45
+ contextWindow: 200_000,
46
+ maxOutput: 32_000,
47
+ pricing: { input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
48
+ supportsThinking: true,
49
+ provider: "anthropic",
50
+ supportsVision: true,
51
+ },
52
+ "claude-sonnet-4-6": {
53
+ id: "claude-sonnet-4-6",
54
+ name: "Sonnet 4.6",
55
+ fullName: "Claude Sonnet 4.6",
56
+ contextWindow: 200_000,
57
+ maxOutput: 16_000,
58
+ pricing: { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
59
+ supportsThinking: true,
60
+ provider: "anthropic",
61
+ supportsVision: true,
62
+ },
63
+ "claude-haiku-4-5": {
64
+ id: "claude-haiku-4-5",
65
+ name: "Haiku 4.5",
66
+ fullName: "Claude Haiku 4.5",
67
+ contextWindow: 200_000,
68
+ maxOutput: 8_000,
69
+ pricing: { input: 0.8, output: 4, cacheWrite: 1, cacheRead: 0.08 },
70
+ supportsThinking: true,
71
+ provider: "anthropic",
72
+ supportsVision: true,
73
+ },
74
+ "claude-haiku-4-5-20251001": {
75
+ id: "claude-haiku-4-5-20251001",
76
+ name: "Haiku 4.5",
77
+ fullName: "Claude Haiku 4.5",
78
+ contextWindow: 200_000,
79
+ maxOutput: 8_000,
80
+ pricing: { input: 0.8, output: 4, cacheWrite: 1, cacheRead: 0.08 },
81
+ supportsThinking: true,
82
+ provider: "anthropic",
83
+ supportsVision: true,
84
+ },
85
+
86
+ // Claude 4.x Series (Legacy naming)
87
+ "claude-opus-4-5": {
88
+ id: "claude-opus-4-5",
89
+ name: "Opus 4.5",
90
+ fullName: "Claude Opus 4.5",
91
+ contextWindow: 200_000,
92
+ maxOutput: 32_000,
93
+ pricing: { input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
94
+ supportsThinking: true,
95
+ provider: "anthropic",
96
+ supportsVision: true,
97
+ },
98
+ "claude-sonnet-4-5": {
99
+ id: "claude-sonnet-4-5",
100
+ name: "Sonnet 4.5",
101
+ fullName: "Claude Sonnet 4.5",
102
+ contextWindow: 200_000,
103
+ maxOutput: 16_000,
104
+ pricing: { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
105
+ supportsThinking: true,
106
+ provider: "anthropic",
107
+ supportsVision: true,
108
+ },
109
+
110
+ // Claude 3.x Series (Legacy)
111
+ "claude-3-5-sonnet": {
112
+ id: "claude-3-5-sonnet",
113
+ name: "Sonnet 3.5",
114
+ fullName: "Claude 3.5 Sonnet",
115
+ contextWindow: 200_000,
116
+ maxOutput: 8_192,
117
+ pricing: { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
118
+ supportsThinking: false,
119
+ provider: "anthropic",
120
+ supportsVision: true,
121
+ },
122
+ "claude-3-5-haiku": {
123
+ id: "claude-3-5-haiku",
124
+ name: "Haiku 3.5",
125
+ fullName: "Claude 3.5 Haiku",
126
+ contextWindow: 200_000,
127
+ maxOutput: 8_192,
128
+ pricing: { input: 0.8, output: 4, cacheWrite: 1, cacheRead: 0.08 },
129
+ supportsThinking: false,
130
+ provider: "anthropic",
131
+ supportsVision: true,
132
+ },
133
+ "claude-3-opus": {
134
+ id: "claude-3-opus",
135
+ name: "Opus 3",
136
+ fullName: "Claude 3 Opus",
137
+ contextWindow: 200_000,
138
+ maxOutput: 4_096,
139
+ pricing: { input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
140
+ supportsThinking: false,
141
+ provider: "anthropic",
142
+ supportsVision: true,
143
+ },
144
+ "claude-3-sonnet": {
145
+ id: "claude-3-sonnet",
146
+ name: "Sonnet 3",
147
+ fullName: "Claude 3 Sonnet",
148
+ contextWindow: 200_000,
149
+ maxOutput: 4_096,
150
+ pricing: { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
151
+ supportsThinking: false,
152
+ provider: "anthropic",
153
+ supportsVision: true,
154
+ },
155
+ "claude-3-haiku": {
156
+ id: "claude-3-haiku",
157
+ name: "Haiku 3",
158
+ fullName: "Claude 3 Haiku",
159
+ contextWindow: 200_000,
160
+ maxOutput: 4_096,
161
+ pricing: { input: 0.25, output: 1.25, cacheWrite: 0.3, cacheRead: 0.03 },
162
+ supportsThinking: false,
163
+ provider: "anthropic",
164
+ supportsVision: true,
165
+ },
166
+
167
+ // GLM Series (Zhipu AI)
168
+ "glm-5": {
169
+ id: "glm-5",
170
+ name: "GLM-5",
171
+ fullName: "GLM-5",
172
+ contextWindow: 200_000,
173
+ maxOutput: 128_000,
174
+ pricing: { input: 0.5, output: 0.5, cacheWrite: 0, cacheRead: 0 }, // GLM pricing TBD
175
+ supportsThinking: true,
176
+ provider: "zhipu",
177
+ supportsVision: true,
178
+ },
179
+ "glm-4.5-air": {
180
+ id: "glm-4.5-air",
181
+ name: "GLM-4.5 Air",
182
+ fullName: "GLM-4.5 Air",
183
+ contextWindow: 128_000,
184
+ maxOutput: 4_096,
185
+ pricing: { input: 0.1, output: 0.1, cacheWrite: 0, cacheRead: 0 },
186
+ supportsThinking: false,
187
+ provider: "zhipu",
188
+ supportsVision: false,
189
+ },
190
+ };
191
+
192
+ // ============================================
193
+ // MODEL LISTS
194
+ // ============================================
195
+
196
+ /** Models available for interactive use (shown in /models command) */
197
+ export const AVAILABLE_MODELS = [
198
+ MODELS["claude-opus-4-6"]!,
199
+ MODELS["claude-sonnet-4-6"]!,
200
+ MODELS["claude-haiku-4-5"]!,
201
+ MODELS["glm-5"]!,
202
+ ] as const;
203
+
204
+ /** Model aliases for subagent tasks */
205
+ export const MODEL_ALIASES = {
206
+ haiku: "claude-haiku-4-5",
207
+ sonnet: "claude-sonnet-4-6",
208
+ opus: "claude-opus-4-6",
209
+ fast: "glm-4.5-air",
210
+ default: "claude-sonnet-4-6",
211
+ } as const;
212
+
213
+ // ============================================
214
+ // DEFAULTS
215
+ // ============================================
216
+
217
+ /** Default model for interactive use */
218
+ export const DEFAULT_MODEL = "claude-sonnet-4-6";
219
+
220
+ /** Default model for summarization (fast/cheap) */
221
+ export const SUMMARIZATION_MODEL = process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL || "glm-4.5-air";
222
+
223
+ /** Default context window if model not found */
224
+ export const DEFAULT_CONTEXT_WINDOW = 200_000;
225
+
226
+ /** Default max output tokens if not specified */
227
+ export const DEFAULT_MAX_OUTPUT = 4_096;
228
+
229
+ // ============================================
230
+ // HELPER FUNCTIONS
231
+ // ============================================
232
+
233
+ /**
234
+ * Get model definition by ID
235
+ */
236
+ export function getModel(modelId: string): ModelDefinition | undefined {
237
+ return MODELS[modelId];
238
+ }
239
+
240
+ /**
241
+ * Get model or throw if not found
242
+ */
243
+ export function requireModel(modelId: string): ModelDefinition {
244
+ const model = MODELS[modelId];
245
+ if (!model) {
246
+ throw new Error(`Unknown model: ${modelId}`);
247
+ }
248
+ return model;
249
+ }
250
+
251
+ /**
252
+ * Get context window for a model
253
+ * Falls back to fuzzy matching and then default
254
+ */
255
+ export function getContextWindow(modelId: string): number {
256
+ // Exact match
257
+ const model = MODELS[modelId];
258
+ if (model) {
259
+ return model.contextWindow;
260
+ }
261
+
262
+ // Fuzzy match (e.g., "opus" in model name)
263
+ const modelLower = modelId.toLowerCase();
264
+ for (const [key, def] of Object.entries(MODELS)) {
265
+ const keyPart = key.split("-")[1];
266
+ if (keyPart && modelLower.includes(keyPart)) {
267
+ return def.contextWindow;
268
+ }
269
+ }
270
+
271
+ return DEFAULT_CONTEXT_WINDOW;
272
+ }
273
+
274
+ /**
275
+ * Get max output tokens for a model
276
+ */
277
+ export function getMaxOutput(modelId: string): number {
278
+ const model = MODELS[modelId];
279
+ if (model?.maxOutput) {
280
+ return model.maxOutput;
281
+ }
282
+ // Default to 1/4 of context window
283
+ return Math.floor(getContextWindow(modelId) / 4);
284
+ }
285
+
286
+ /**
287
+ * Get display name for a model
288
+ */
289
+ export function getModelDisplayName(modelId: string): string {
290
+ const model = MODELS[modelId];
291
+ return model?.name || modelId;
292
+ }
293
+
294
+ /**
295
+ * Check if model supports extended thinking
296
+ */
297
+ export function supportsExtendedThinking(modelId: string): boolean {
298
+ const model = MODELS[modelId];
299
+ if (model) {
300
+ return model.supportsThinking;
301
+ }
302
+ // Fuzzy check for Claude 4.x
303
+ return (
304
+ modelId.includes("claude-opus-4") ||
305
+ modelId.includes("claude-sonnet-4") ||
306
+ modelId.includes("claude-haiku-4") ||
307
+ modelId.includes("claude-4")
308
+ );
309
+ }
310
+
311
+ /**
312
+ * Check if model supports vision
313
+ */
314
+ export function supportsVision(modelId: string): boolean {
315
+ const model = MODELS[modelId];
316
+ return model?.supportsVision ?? false;
317
+ }
318
+
319
+ /**
320
+ * Get pricing for a model
321
+ */
322
+ export function getModelPricing(
323
+ modelId: string
324
+ ): { input: number; output: number; cacheWrite: number; cacheRead: number } {
325
+ const model = MODELS[modelId];
326
+ if (model) {
327
+ return model.pricing;
328
+ }
329
+ // Default to Sonnet pricing
330
+ return { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 };
331
+ }
332
+
333
+ /**
334
+ * Calculate cost for API usage
335
+ */
336
+ export function calculateCost(
337
+ modelId: string,
338
+ usage: {
339
+ input_tokens: number;
340
+ output_tokens: number;
341
+ cache_creation_input_tokens?: number;
342
+ cache_read_input_tokens?: number;
343
+ }
344
+ ): { costUSD: number; estimatedSavingsUSD: number } {
345
+ const pricing = getModelPricing(modelId);
346
+
347
+ const inputTokens = usage.input_tokens - (usage.cache_read_input_tokens ?? 0);
348
+ const cacheReadTokens = usage.cache_read_input_tokens ?? 0;
349
+ const cacheWriteTokens = usage.cache_creation_input_tokens ?? 0;
350
+ const outputTokens = usage.output_tokens;
351
+
352
+ const inputCost = (inputTokens / 1_000_000) * pricing.input;
353
+ const cacheReadCost = (cacheReadTokens / 1_000_000) * pricing.cacheRead;
354
+ const cacheWriteCost = (cacheWriteTokens / 1_000_000) * pricing.cacheWrite;
355
+ const outputCost = (outputTokens / 1_000_000) * pricing.output;
356
+
357
+ const costUSD = inputCost + cacheReadCost + cacheWriteCost + outputCost;
358
+
359
+ // Calculate savings from caching
360
+ const totalCachedTokens = cacheReadTokens + cacheWriteTokens;
361
+ const savedCost = (totalCachedTokens / 1_000_000) * (pricing.input - pricing.cacheRead);
362
+
363
+ return { costUSD, estimatedSavingsUSD: savedCost };
364
+ }
365
+
366
+ /**
367
+ * Format cost for display
368
+ */
369
+ export function formatCost(costUSD: number): string {
370
+ if (costUSD < 0.01) {
371
+ return `$${costUSD.toFixed(4)}`;
372
+ } else if (costUSD < 1) {
373
+ return `$${costUSD.toFixed(3)}`;
374
+ } else {
375
+ return `$${costUSD.toFixed(2)}`;
376
+ }
377
+ }
378
+
379
+ /**
380
+ * Resolve model alias to model ID
381
+ */
382
+ export function resolveModelAlias(alias: string): string {
383
+ return MODEL_ALIASES[alias as keyof typeof MODEL_ALIASES] || alias;
384
+ }
385
+
386
+ // ============================================
387
+ // LEGACY TYPE EXPORTS (for backwards compatibility)
388
+ // ============================================
389
+
390
+ /** Claude model type (for TypeScript type checking) */
391
+ export type ClaudeModel =
392
+ | "claude-opus-4-6"
393
+ | "claude-sonnet-4-6"
394
+ | "claude-haiku-4-5"
395
+ | "claude-haiku-4-5-20251001"
396
+ | "claude-opus-4-5"
397
+ | "claude-sonnet-4-5"
398
+ | "claude-3-5-sonnet"
399
+ | "claude-3-5-haiku"
400
+ | "claude-3-opus"
401
+ | "claude-3-sonnet"
402
+ | "claude-3-haiku"
403
+ | "glm-5"
404
+ | "glm-4.5-air"
405
+ | string;
406
+
407
+ // ============================================
408
+ // LEGACY CONSTANTS (for backwards compatibility)
409
+ // ============================================
410
+
411
+ /** @deprecated Use getModelPricing() instead */
412
+ export const MODEL_PRICING: Record<
413
+ string,
414
+ { input: number; output: number; cache_write: number; cache_read: number }
415
+ > = Object.fromEntries(
416
+ Object.entries(MODELS).map(([id, m]) => [
417
+ id,
418
+ { input: m.pricing.input, output: m.pricing.output, cache_write: m.pricing.cacheWrite, cache_read: m.pricing.cacheRead },
419
+ ])
420
+ );
421
+
422
+ /** @deprecated Use getContextWindow() instead */
423
+ export const MODEL_CONTEXT_WINDOWS: Record<string, number> = Object.fromEntries(
424
+ Object.entries(MODELS).map(([id, m]) => [id, m.contextWindow])
425
+ );
426
+
427
+ /** @deprecated Use getModelDisplayName() instead */
428
+ export const MODEL_DISPLAY_NAMES: Record<string, string> = Object.fromEntries(
429
+ Object.entries(MODELS).map(([id, m]) => [id, m.name])
430
+ );
@@ -0,0 +1,4 @@
1
+ - channels
2
+ - stream
3
+ - keyboard event activity
4
+ -