@ebowwa/coder 0.7.63 → 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 (341) hide show
  1. package/dist/core/__tests__/permissions.test.d.ts +12 -0
  2. package/dist/core/__tests__/permissions.test.d.ts.map +1 -0
  3. package/dist/core/__tests__/permissions.test.js +851 -0
  4. package/dist/core/agent-loop/__tests__/compaction.test.d.ts +5 -0
  5. package/dist/core/agent-loop/__tests__/compaction.test.d.ts.map +1 -0
  6. package/dist/core/agent-loop/__tests__/compaction.test.js +209 -0
  7. package/dist/core/agent-loop/__tests__/formatters.test.d.ts +5 -0
  8. package/dist/core/agent-loop/__tests__/formatters.test.d.ts.map +1 -0
  9. package/dist/core/agent-loop/__tests__/formatters.test.js +195 -0
  10. package/dist/core/agent-loop/__tests__/index.test.d.ts +5 -0
  11. package/dist/core/agent-loop/__tests__/index.test.d.ts.map +1 -0
  12. package/dist/core/agent-loop/__tests__/index.test.js +121 -0
  13. package/dist/core/agent-loop/__tests__/loop-state.test.d.ts +5 -0
  14. package/dist/core/agent-loop/__tests__/loop-state.test.d.ts.map +1 -0
  15. package/dist/core/agent-loop/__tests__/loop-state.test.js +340 -0
  16. package/dist/core/agent-loop/__tests__/message-builder.test.d.ts +5 -0
  17. package/dist/core/agent-loop/__tests__/message-builder.test.d.ts.map +1 -0
  18. package/dist/core/agent-loop/__tests__/message-builder.test.js +178 -0
  19. package/dist/core/agent-loop/__tests__/tool-executor.test.d.ts +5 -0
  20. package/dist/core/agent-loop/__tests__/tool-executor.test.d.ts.map +1 -0
  21. package/dist/core/agent-loop/__tests__/tool-executor.test.js +331 -0
  22. package/dist/core/agent-loop/compaction.d.ts +39 -0
  23. package/dist/core/agent-loop/compaction.d.ts.map +1 -0
  24. package/dist/core/agent-loop/compaction.js +51 -0
  25. package/dist/core/agent-loop/formatters.d.ts +21 -0
  26. package/dist/core/agent-loop/formatters.d.ts.map +1 -0
  27. package/dist/core/agent-loop/formatters.js +42 -0
  28. package/dist/core/agent-loop/index.d.ts +25 -0
  29. package/dist/core/agent-loop/index.d.ts.map +1 -0
  30. package/dist/core/agent-loop/index.js +83 -0
  31. package/dist/core/agent-loop/loop-state.d.ts +74 -0
  32. package/dist/core/agent-loop/loop-state.d.ts.map +1 -0
  33. package/dist/core/agent-loop/loop-state.js +147 -0
  34. package/dist/core/agent-loop/message-builder.d.ts +13 -0
  35. package/dist/core/agent-loop/message-builder.d.ts.map +1 -0
  36. package/dist/core/agent-loop/message-builder.js +49 -0
  37. package/dist/core/agent-loop/tool-executor.d.ts +23 -0
  38. package/dist/core/agent-loop/tool-executor.d.ts.map +1 -0
  39. package/dist/core/agent-loop/tool-executor.js +152 -0
  40. package/dist/core/agent-loop/turn-executor.d.ts +57 -0
  41. package/dist/core/agent-loop/turn-executor.d.ts.map +1 -0
  42. package/dist/core/agent-loop/turn-executor.js +124 -0
  43. package/dist/core/agent-loop/types.d.ts +141 -0
  44. package/dist/core/agent-loop/types.d.ts.map +1 -0
  45. package/dist/core/agent-loop/types.js +4 -0
  46. package/dist/core/agent-loop.d.ts +17 -0
  47. package/dist/core/agent-loop.d.ts.map +1 -0
  48. package/dist/core/agent-loop.js +16 -0
  49. package/dist/core/api-client-impl.d.ts +62 -0
  50. package/dist/core/api-client-impl.d.ts.map +1 -0
  51. package/dist/core/api-client-impl.js +479 -0
  52. package/dist/core/api-client.d.ts +6 -0
  53. package/dist/core/api-client.d.ts.map +1 -0
  54. package/dist/core/api-client.js +5 -0
  55. package/dist/core/checkpoints.d.ts +128 -0
  56. package/dist/core/checkpoints.d.ts.map +1 -0
  57. package/dist/core/checkpoints.js +438 -0
  58. package/dist/core/claude-md.d.ts +71 -0
  59. package/dist/core/claude-md.d.ts.map +1 -0
  60. package/dist/core/claude-md.js +198 -0
  61. package/dist/core/cognitive-security/hooks.d.ts +138 -0
  62. package/dist/core/cognitive-security/hooks.d.ts.map +1 -0
  63. package/dist/core/cognitive-security/hooks.js +389 -0
  64. package/dist/core/cognitive-security/index.d.ts +751 -0
  65. package/dist/core/cognitive-security/index.d.ts.map +1 -0
  66. package/dist/core/cognitive-security/index.js +1123 -0
  67. package/dist/core/cognitive-security/middleware.d.ts +136 -0
  68. package/dist/core/cognitive-security/middleware.d.ts.map +1 -0
  69. package/dist/core/cognitive-security/middleware.js +376 -0
  70. package/dist/core/config-loader.d.ts +127 -0
  71. package/dist/core/config-loader.d.ts.map +1 -0
  72. package/dist/core/config-loader.js +219 -0
  73. package/dist/core/context-compaction.d.ts +87 -0
  74. package/dist/core/context-compaction.d.ts.map +1 -0
  75. package/dist/core/context-compaction.js +428 -0
  76. package/dist/core/git-status.d.ts +25 -0
  77. package/dist/core/git-status.d.ts.map +1 -0
  78. package/dist/core/git-status.js +204 -0
  79. package/dist/core/image.d.ts +69 -0
  80. package/dist/core/image.d.ts.map +1 -0
  81. package/dist/core/image.js +290 -0
  82. package/dist/core/image.test.d.ts +2 -0
  83. package/dist/core/image.test.d.ts.map +1 -0
  84. package/dist/core/image.test.js +149 -0
  85. package/dist/core/models.d.ts +123 -0
  86. package/dist/core/models.d.ts.map +1 -0
  87. package/dist/core/models.js +325 -0
  88. package/dist/core/permissions.d.ts +81 -0
  89. package/dist/core/permissions.d.ts.map +1 -0
  90. package/dist/core/permissions.js +327 -0
  91. package/dist/core/retry.d.ts +25 -0
  92. package/dist/core/retry.d.ts.map +1 -0
  93. package/dist/core/retry.js +121 -0
  94. package/dist/core/session-store.d.ts +9 -0
  95. package/dist/core/session-store.d.ts.map +1 -0
  96. package/dist/core/session-store.js +10 -0
  97. package/dist/core/sessions/export.d.ts +47 -0
  98. package/dist/core/sessions/export.d.ts.map +1 -0
  99. package/dist/core/sessions/export.js +256 -0
  100. package/dist/core/sessions/index.d.ts +132 -0
  101. package/dist/core/sessions/index.d.ts.map +1 -0
  102. package/dist/core/sessions/index.js +442 -0
  103. package/dist/core/sessions/metadata.d.ts +77 -0
  104. package/dist/core/sessions/metadata.d.ts.map +1 -0
  105. package/dist/core/sessions/metadata.js +233 -0
  106. package/dist/core/sessions/persistence.d.ts +72 -0
  107. package/dist/core/sessions/persistence.d.ts.map +1 -0
  108. package/dist/core/sessions/persistence.js +201 -0
  109. package/dist/core/sessions/types.d.ts +110 -0
  110. package/dist/core/sessions/types.d.ts.map +1 -0
  111. package/dist/core/sessions/types.js +4 -0
  112. package/dist/core/stream-highlighter.d.ts +18 -0
  113. package/dist/core/stream-highlighter.d.ts.map +1 -0
  114. package/dist/core/stream-highlighter.js +916 -0
  115. package/dist/core/system-reminders.d.ts +89 -0
  116. package/dist/core/system-reminders.d.ts.map +1 -0
  117. package/dist/core/system-reminders.js +285 -0
  118. package/dist/ecosystem/hooks/__tests__/index.test.d.ts +5 -0
  119. package/dist/ecosystem/hooks/__tests__/index.test.d.ts.map +1 -0
  120. package/dist/ecosystem/hooks/__tests__/index.test.js +458 -0
  121. package/dist/ecosystem/hooks/index.d.ts +59 -0
  122. package/dist/ecosystem/hooks/index.d.ts.map +1 -0
  123. package/dist/ecosystem/hooks/index.js +294 -0
  124. package/dist/ecosystem/hooks/prompt-evaluator.d.ts +32 -0
  125. package/dist/ecosystem/hooks/prompt-evaluator.d.ts.map +1 -0
  126. package/dist/ecosystem/hooks/prompt-evaluator.js +229 -0
  127. package/dist/ecosystem/skills/index.d.ts +55 -0
  128. package/dist/ecosystem/skills/index.d.ts.map +1 -0
  129. package/dist/ecosystem/skills/index.js +258 -0
  130. package/dist/ecosystem/tools/__tests__/index.test.d.ts +7 -0
  131. package/dist/ecosystem/tools/__tests__/index.test.d.ts.map +1 -0
  132. package/dist/ecosystem/tools/__tests__/index.test.js +856 -0
  133. package/dist/ecosystem/tools/index.d.ts +24 -0
  134. package/dist/ecosystem/tools/index.d.ts.map +1 -0
  135. package/dist/ecosystem/tools/index.js +1709 -0
  136. package/dist/index.d.ts +24 -0
  137. package/dist/index.d.ts.map +1 -0
  138. package/dist/index.js +32 -52192
  139. package/dist/interfaces/mcp/client.d.ts +40 -0
  140. package/dist/interfaces/mcp/client.d.ts.map +1 -0
  141. package/dist/interfaces/mcp/client.js +309 -0
  142. package/dist/interfaces/ui/index.d.ts +36 -0
  143. package/dist/interfaces/ui/index.d.ts.map +1 -0
  144. package/dist/interfaces/ui/index.js +61 -0
  145. package/dist/interfaces/ui/spinner.d.ts +140 -0
  146. package/dist/interfaces/ui/spinner.d.ts.map +1 -0
  147. package/dist/interfaces/ui/spinner.js +342 -0
  148. package/dist/interfaces/ui/terminal/cli/index.d.ts +12 -0
  149. package/dist/interfaces/ui/terminal/cli/index.d.ts.map +1 -0
  150. package/dist/interfaces/ui/terminal/cli/index.js +159 -52768
  151. package/dist/interfaces/ui/terminal/shared/args.d.ts +39 -0
  152. package/dist/interfaces/ui/terminal/shared/args.d.ts.map +1 -0
  153. package/dist/interfaces/ui/terminal/shared/args.js +176 -0
  154. package/dist/interfaces/ui/terminal/shared/index.d.ts +11 -0
  155. package/dist/interfaces/ui/terminal/shared/index.d.ts.map +1 -0
  156. package/dist/interfaces/ui/terminal/shared/index.js +16 -0
  157. package/dist/interfaces/ui/terminal/shared/loading-state.d.ts +124 -0
  158. package/dist/interfaces/ui/terminal/shared/loading-state.d.ts.map +1 -0
  159. package/dist/interfaces/ui/terminal/shared/loading-state.js +246 -0
  160. package/dist/interfaces/ui/terminal/shared/query.d.ts +22 -0
  161. package/dist/interfaces/ui/terminal/shared/query.d.ts.map +1 -0
  162. package/dist/interfaces/ui/terminal/shared/query.js +100 -0
  163. package/dist/interfaces/ui/terminal/shared/setup.d.ts +33 -0
  164. package/dist/interfaces/ui/terminal/shared/setup.d.ts.map +1 -0
  165. package/dist/interfaces/ui/terminal/shared/setup.js +226 -0
  166. package/dist/interfaces/ui/terminal/shared/status-line.d.ts +117 -0
  167. package/dist/interfaces/ui/terminal/shared/status-line.d.ts.map +1 -0
  168. package/dist/interfaces/ui/terminal/shared/status-line.js +267 -0
  169. package/dist/interfaces/ui/terminal/shared/system-prompt.d.ts +38 -0
  170. package/dist/interfaces/ui/terminal/shared/system-prompt.d.ts.map +1 -0
  171. package/dist/interfaces/ui/terminal/shared/system-prompt.js +102 -0
  172. package/dist/interfaces/ui/terminal/tui/HelpPanel.d.ts +39 -0
  173. package/dist/interfaces/ui/terminal/tui/HelpPanel.d.ts.map +1 -0
  174. package/dist/interfaces/ui/terminal/tui/HelpPanel.js +215 -0
  175. package/dist/interfaces/ui/terminal/tui/InputContext.d.ts +91 -0
  176. package/dist/interfaces/ui/terminal/tui/InputContext.d.ts.map +1 -0
  177. package/dist/interfaces/ui/terminal/tui/InputContext.js +154 -0
  178. package/dist/interfaces/ui/terminal/tui/InputField.d.ts +18 -0
  179. package/dist/interfaces/ui/terminal/tui/InputField.d.ts.map +1 -0
  180. package/dist/interfaces/ui/terminal/tui/InputField.js +41 -0
  181. package/dist/interfaces/ui/terminal/tui/InteractiveTUI.d.ts +16 -0
  182. package/dist/interfaces/ui/terminal/tui/InteractiveTUI.d.ts.map +1 -0
  183. package/dist/interfaces/ui/terminal/tui/InteractiveTUI.js +451 -0
  184. package/dist/interfaces/ui/terminal/tui/MessageArea.d.ts +10 -0
  185. package/dist/interfaces/ui/terminal/tui/MessageArea.d.ts.map +1 -0
  186. package/dist/interfaces/ui/terminal/tui/MessageArea.js +91 -0
  187. package/dist/interfaces/ui/terminal/tui/MessageStore.d.ts +48 -0
  188. package/dist/interfaces/ui/terminal/tui/MessageStore.d.ts.map +1 -0
  189. package/dist/interfaces/ui/terminal/tui/MessageStore.js +151 -0
  190. package/dist/interfaces/ui/terminal/tui/StatusBar.d.ts +9 -0
  191. package/dist/interfaces/ui/terminal/tui/StatusBar.d.ts.map +1 -0
  192. package/dist/interfaces/ui/terminal/tui/StatusBar.js +36 -0
  193. package/dist/interfaces/ui/terminal/tui/commands.d.ts +21 -0
  194. package/dist/interfaces/ui/terminal/tui/commands.d.ts.map +1 -0
  195. package/dist/interfaces/ui/terminal/tui/commands.js +359 -0
  196. package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.d.ts +115 -0
  197. package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.d.ts.map +1 -0
  198. package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.js +306 -0
  199. package/dist/interfaces/ui/terminal/tui/components/MultilineInput.d.ts +92 -0
  200. package/dist/interfaces/ui/terminal/tui/components/MultilineInput.d.ts.map +1 -0
  201. package/dist/interfaces/ui/terminal/tui/components/MultilineInput.js +399 -0
  202. package/dist/interfaces/ui/terminal/tui/components/PaneManager.d.ts +59 -0
  203. package/dist/interfaces/ui/terminal/tui/components/PaneManager.d.ts.map +1 -0
  204. package/dist/interfaces/ui/terminal/tui/components/PaneManager.js +139 -0
  205. package/dist/interfaces/ui/terminal/tui/components/Sidebar.d.ts +68 -0
  206. package/dist/interfaces/ui/terminal/tui/components/Sidebar.d.ts.map +1 -0
  207. package/dist/interfaces/ui/terminal/tui/components/Sidebar.js +340 -0
  208. package/dist/interfaces/ui/terminal/tui/components/index.d.ts +23 -0
  209. package/dist/interfaces/ui/terminal/tui/components/index.d.ts.map +1 -0
  210. package/dist/interfaces/ui/terminal/tui/components/index.js +51 -0
  211. package/dist/interfaces/ui/terminal/tui/console.d.ts +20 -0
  212. package/dist/interfaces/ui/terminal/tui/console.d.ts.map +1 -0
  213. package/dist/interfaces/ui/terminal/tui/console.js +46 -0
  214. package/dist/interfaces/ui/terminal/tui/index.d.ts +20 -0
  215. package/dist/interfaces/ui/terminal/tui/index.d.ts.map +1 -0
  216. package/dist/interfaces/ui/terminal/tui/index.js +28 -0
  217. package/dist/interfaces/ui/terminal/tui/run.d.ts +13 -0
  218. package/dist/interfaces/ui/terminal/tui/run.d.ts.map +1 -0
  219. package/dist/interfaces/ui/terminal/tui/run.js +31 -0
  220. package/dist/interfaces/ui/terminal/tui/spinner.d.ts +44 -0
  221. package/dist/interfaces/ui/terminal/tui/spinner.d.ts.map +1 -0
  222. package/dist/interfaces/ui/terminal/tui/spinner.js +59 -0
  223. package/dist/interfaces/ui/terminal/tui/tui-app.d.ts +39 -0
  224. package/dist/interfaces/ui/terminal/tui/tui-app.d.ts.map +1 -0
  225. package/dist/interfaces/ui/terminal/tui/tui-app.js +198 -0
  226. package/dist/interfaces/ui/terminal/tui/tui-footer.d.ts +167 -0
  227. package/dist/interfaces/ui/terminal/tui/tui-footer.d.ts.map +1 -0
  228. package/dist/interfaces/ui/terminal/tui/tui-footer.js +330 -0
  229. package/dist/interfaces/ui/terminal/tui/types.d.ts +165 -0
  230. package/dist/interfaces/ui/terminal/tui/types.d.ts.map +1 -0
  231. package/dist/interfaces/ui/terminal/tui/types.js +5 -0
  232. package/dist/interfaces/ui/terminal/tui/useInputHandler.d.ts +23 -0
  233. package/dist/interfaces/ui/terminal/tui/useInputHandler.d.ts.map +1 -0
  234. package/dist/interfaces/ui/terminal/tui/useInputHandler.js +72 -0
  235. package/dist/interfaces/ui/terminal/tui/useNativeInput.d.ts +90 -0
  236. package/dist/interfaces/ui/terminal/tui/useNativeInput.d.ts.map +1 -0
  237. package/dist/interfaces/ui/terminal/tui/useNativeInput.js +188 -0
  238. package/dist/native/index.d.ts +480 -0
  239. package/dist/native/index.d.ts.map +1 -0
  240. package/dist/native/index.js +1625 -0
  241. package/dist/teammates/index.d.ts +161 -0
  242. package/dist/teammates/index.d.ts.map +1 -0
  243. package/dist/teammates/index.js +827 -0
  244. package/dist/types/index.d.ts +482 -0
  245. package/dist/types/index.d.ts.map +1 -0
  246. package/dist/types/index.js +52 -0
  247. package/package.json +4 -2
  248. package/packages/src/core/__tests__/permissions.test.ts +1091 -0
  249. package/packages/src/core/agent-loop/__tests__/compaction.test.ts +280 -0
  250. package/packages/src/core/agent-loop/__tests__/formatters.test.ts +234 -0
  251. package/packages/src/core/agent-loop/__tests__/index.test.ts +162 -0
  252. package/packages/src/core/agent-loop/__tests__/loop-state.test.ts +413 -0
  253. package/packages/src/core/agent-loop/__tests__/message-builder.test.ts +229 -0
  254. package/packages/src/core/agent-loop/__tests__/tool-executor.test.ts +457 -0
  255. package/packages/src/core/agent-loop/compaction.ts +88 -0
  256. package/packages/src/core/agent-loop/formatters.ts +50 -0
  257. package/packages/src/core/agent-loop/index.ts +135 -0
  258. package/packages/src/core/agent-loop/loop-state.ts +187 -0
  259. package/packages/src/core/agent-loop/message-builder.ts +62 -0
  260. package/packages/src/core/agent-loop/tool-executor.ts +211 -0
  261. package/packages/src/core/agent-loop/turn-executor.ts +222 -0
  262. package/packages/src/core/agent-loop/types.ts +148 -0
  263. package/packages/src/core/agent-loop.ts +18 -0
  264. package/packages/src/core/api-client-impl.ts +619 -0
  265. package/packages/src/core/api-client.ts +6 -0
  266. package/packages/src/core/checkpoints.ts +606 -0
  267. package/packages/src/core/claude-md.ts +272 -0
  268. package/packages/src/core/cognitive-security/hooks.ts +590 -0
  269. package/packages/src/core/cognitive-security/index.ts +2041 -0
  270. package/packages/src/core/cognitive-security/middleware.ts +536 -0
  271. package/packages/src/core/config-loader.ts +324 -0
  272. package/packages/src/core/context-compaction.ts +578 -0
  273. package/packages/src/core/git-status.ts +262 -0
  274. package/packages/src/core/image.test.ts +180 -0
  275. package/packages/src/core/image.ts +350 -0
  276. package/packages/src/core/lmdb.db +0 -0
  277. package/packages/src/core/lmdb.db-lock +0 -0
  278. package/packages/src/core/models.ts +430 -0
  279. package/packages/src/core/normalizers/todo +4 -0
  280. package/packages/src/core/permissions.ts +431 -0
  281. package/packages/src/core/retry.ts +170 -0
  282. package/packages/src/core/session-store.ts +36 -0
  283. package/packages/src/core/sessions/export.ts +329 -0
  284. package/packages/src/core/sessions/index.ts +587 -0
  285. package/packages/src/core/sessions/metadata.ts +309 -0
  286. package/packages/src/core/sessions/persistence.ts +244 -0
  287. package/packages/src/core/sessions/types.ts +169 -0
  288. package/packages/src/core/stream-highlighter.ts +1123 -0
  289. package/packages/src/core/system-reminders.ts +402 -0
  290. package/packages/src/core/todo +8 -0
  291. package/packages/src/ecosystem/hooks/__tests__/index.test.ts +561 -0
  292. package/packages/src/ecosystem/hooks/index.ts +341 -0
  293. package/packages/src/ecosystem/hooks/prompt-evaluator.ts +300 -0
  294. package/packages/src/ecosystem/skills/index.ts +295 -0
  295. package/packages/src/ecosystem/tools/__tests__/index.test.ts +1335 -0
  296. package/packages/src/ecosystem/tools/index.ts +1877 -0
  297. package/packages/src/index.ts +120 -0
  298. package/packages/src/interfaces/mcp/client.ts +389 -0
  299. package/packages/src/interfaces/ui/Screenshot 2026-03-02 at 9.23.10/342/200/257PM.png +0 -0
  300. package/packages/src/interfaces/ui/Screenshot 2026-03-03 at 10.55.11/342/200/257AM.png +0 -0
  301. package/packages/src/interfaces/ui/index.ts +161 -0
  302. package/packages/src/interfaces/ui/lmdb.db +0 -0
  303. package/packages/src/interfaces/ui/lmdb.db-lock +0 -0
  304. package/packages/src/interfaces/ui/spinner.ts +451 -0
  305. package/packages/src/interfaces/ui/terminal/cli/index.ts +228 -0
  306. package/packages/src/interfaces/ui/terminal/lmdb.db +0 -0
  307. package/packages/src/interfaces/ui/terminal/lmdb.db-lock +0 -0
  308. package/packages/src/interfaces/ui/terminal/shared/args.ts +222 -0
  309. package/packages/src/interfaces/ui/terminal/shared/index.ts +71 -0
  310. package/packages/src/interfaces/ui/terminal/shared/loading-state.ts +322 -0
  311. package/packages/src/interfaces/ui/terminal/shared/query.ts +146 -0
  312. package/packages/src/interfaces/ui/terminal/shared/setup.ts +295 -0
  313. package/packages/src/interfaces/ui/terminal/shared/status-line.ts +358 -0
  314. package/packages/src/interfaces/ui/terminal/shared/system-prompt.ts +146 -0
  315. package/packages/src/interfaces/ui/terminal/tui/HelpPanel.tsx +262 -0
  316. package/packages/src/interfaces/ui/terminal/tui/InputContext.tsx +232 -0
  317. package/packages/src/interfaces/ui/terminal/tui/InputField.tsx +62 -0
  318. package/packages/src/interfaces/ui/terminal/tui/InteractiveTUI.tsx +537 -0
  319. package/packages/src/interfaces/ui/terminal/tui/MessageArea.tsx +107 -0
  320. package/packages/src/interfaces/ui/terminal/tui/MessageStore.tsx +240 -0
  321. package/packages/src/interfaces/ui/terminal/tui/StatusBar.tsx +54 -0
  322. package/packages/src/interfaces/ui/terminal/tui/commands.ts +438 -0
  323. package/packages/src/interfaces/ui/terminal/tui/components/InteractiveElements.tsx +584 -0
  324. package/packages/src/interfaces/ui/terminal/tui/components/MultilineInput.tsx +614 -0
  325. package/packages/src/interfaces/ui/terminal/tui/components/PaneManager.tsx +333 -0
  326. package/packages/src/interfaces/ui/terminal/tui/components/Sidebar.tsx +604 -0
  327. package/packages/src/interfaces/ui/terminal/tui/components/index.ts +118 -0
  328. package/packages/src/interfaces/ui/terminal/tui/console.ts +49 -0
  329. package/packages/src/interfaces/ui/terminal/tui/index.ts +90 -0
  330. package/packages/src/interfaces/ui/terminal/tui/run.tsx +42 -0
  331. package/packages/src/interfaces/ui/terminal/tui/spinner.ts +69 -0
  332. package/packages/src/interfaces/ui/terminal/tui/tui-app.tsx +390 -0
  333. package/packages/src/interfaces/ui/terminal/tui/tui-footer.ts +422 -0
  334. package/packages/src/interfaces/ui/terminal/tui/types.ts +186 -0
  335. package/packages/src/interfaces/ui/terminal/tui/useInputHandler.ts +104 -0
  336. package/packages/src/interfaces/ui/terminal/tui/useNativeInput.ts +239 -0
  337. package/packages/src/lmdb.db +0 -0
  338. package/packages/src/lmdb.db-lock +0 -0
  339. package/packages/src/native/index.ts +2345 -0
  340. package/packages/src/teammates/index.ts +982 -0
  341. package/packages/src/types/index.ts +722 -0
@@ -0,0 +1,325 @@
1
+ /**
2
+ * Model Configuration - Single Source of Truth
3
+ * Consolidates all model-related constants, types, and utilities
4
+ */
5
+ /**
6
+ * All available models with complete configuration
7
+ */
8
+ export const MODELS = {
9
+ // Claude 4.x Series (Latest)
10
+ "claude-opus-4-6": {
11
+ id: "claude-opus-4-6",
12
+ name: "Opus 4.6",
13
+ fullName: "Claude Opus 4.6",
14
+ contextWindow: 200_000,
15
+ maxOutput: 32_000,
16
+ pricing: { input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
17
+ supportsThinking: true,
18
+ provider: "anthropic",
19
+ supportsVision: true,
20
+ },
21
+ "claude-sonnet-4-6": {
22
+ id: "claude-sonnet-4-6",
23
+ name: "Sonnet 4.6",
24
+ fullName: "Claude Sonnet 4.6",
25
+ contextWindow: 200_000,
26
+ maxOutput: 16_000,
27
+ pricing: { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
28
+ supportsThinking: true,
29
+ provider: "anthropic",
30
+ supportsVision: true,
31
+ },
32
+ "claude-haiku-4-5": {
33
+ id: "claude-haiku-4-5",
34
+ name: "Haiku 4.5",
35
+ fullName: "Claude Haiku 4.5",
36
+ contextWindow: 200_000,
37
+ maxOutput: 8_000,
38
+ pricing: { input: 0.8, output: 4, cacheWrite: 1, cacheRead: 0.08 },
39
+ supportsThinking: true,
40
+ provider: "anthropic",
41
+ supportsVision: true,
42
+ },
43
+ "claude-haiku-4-5-20251001": {
44
+ id: "claude-haiku-4-5-20251001",
45
+ name: "Haiku 4.5",
46
+ fullName: "Claude Haiku 4.5",
47
+ contextWindow: 200_000,
48
+ maxOutput: 8_000,
49
+ pricing: { input: 0.8, output: 4, cacheWrite: 1, cacheRead: 0.08 },
50
+ supportsThinking: true,
51
+ provider: "anthropic",
52
+ supportsVision: true,
53
+ },
54
+ // Claude 4.x Series (Legacy naming)
55
+ "claude-opus-4-5": {
56
+ id: "claude-opus-4-5",
57
+ name: "Opus 4.5",
58
+ fullName: "Claude Opus 4.5",
59
+ contextWindow: 200_000,
60
+ maxOutput: 32_000,
61
+ pricing: { input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
62
+ supportsThinking: true,
63
+ provider: "anthropic",
64
+ supportsVision: true,
65
+ },
66
+ "claude-sonnet-4-5": {
67
+ id: "claude-sonnet-4-5",
68
+ name: "Sonnet 4.5",
69
+ fullName: "Claude Sonnet 4.5",
70
+ contextWindow: 200_000,
71
+ maxOutput: 16_000,
72
+ pricing: { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
73
+ supportsThinking: true,
74
+ provider: "anthropic",
75
+ supportsVision: true,
76
+ },
77
+ // Claude 3.x Series (Legacy)
78
+ "claude-3-5-sonnet": {
79
+ id: "claude-3-5-sonnet",
80
+ name: "Sonnet 3.5",
81
+ fullName: "Claude 3.5 Sonnet",
82
+ contextWindow: 200_000,
83
+ maxOutput: 8_192,
84
+ pricing: { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 },
85
+ supportsThinking: false,
86
+ provider: "anthropic",
87
+ supportsVision: true,
88
+ },
89
+ "claude-3-5-haiku": {
90
+ id: "claude-3-5-haiku",
91
+ name: "Haiku 3.5",
92
+ fullName: "Claude 3.5 Haiku",
93
+ contextWindow: 200_000,
94
+ maxOutput: 8_192,
95
+ pricing: { input: 0.8, output: 4, cacheWrite: 1, cacheRead: 0.08 },
96
+ supportsThinking: false,
97
+ provider: "anthropic",
98
+ supportsVision: true,
99
+ },
100
+ "claude-3-opus": {
101
+ id: "claude-3-opus",
102
+ name: "Opus 3",
103
+ fullName: "Claude 3 Opus",
104
+ contextWindow: 200_000,
105
+ maxOutput: 4_096,
106
+ pricing: { input: 15, output: 75, cacheWrite: 18.75, cacheRead: 1.5 },
107
+ supportsThinking: false,
108
+ provider: "anthropic",
109
+ supportsVision: true,
110
+ },
111
+ "claude-3-sonnet": {
112
+ id: "claude-3-sonnet",
113
+ name: "Sonnet 3",
114
+ fullName: "Claude 3 Sonnet",
115
+ contextWindow: 200_000,
116
+ maxOutput: 4_096,
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-haiku": {
123
+ id: "claude-3-haiku",
124
+ name: "Haiku 3",
125
+ fullName: "Claude 3 Haiku",
126
+ contextWindow: 200_000,
127
+ maxOutput: 4_096,
128
+ pricing: { input: 0.25, output: 1.25, cacheWrite: 0.3, cacheRead: 0.03 },
129
+ supportsThinking: false,
130
+ provider: "anthropic",
131
+ supportsVision: true,
132
+ },
133
+ // GLM Series (Zhipu AI)
134
+ "glm-5": {
135
+ id: "glm-5",
136
+ name: "GLM-5",
137
+ fullName: "GLM-5",
138
+ contextWindow: 200_000,
139
+ maxOutput: 128_000,
140
+ pricing: { input: 0.5, output: 0.5, cacheWrite: 0, cacheRead: 0 }, // GLM pricing TBD
141
+ supportsThinking: true,
142
+ provider: "zhipu",
143
+ supportsVision: true,
144
+ },
145
+ "glm-4.5-air": {
146
+ id: "glm-4.5-air",
147
+ name: "GLM-4.5 Air",
148
+ fullName: "GLM-4.5 Air",
149
+ contextWindow: 128_000,
150
+ maxOutput: 4_096,
151
+ pricing: { input: 0.1, output: 0.1, cacheWrite: 0, cacheRead: 0 },
152
+ supportsThinking: false,
153
+ provider: "zhipu",
154
+ supportsVision: false,
155
+ },
156
+ };
157
+ // ============================================
158
+ // MODEL LISTS
159
+ // ============================================
160
+ /** Models available for interactive use (shown in /models command) */
161
+ export const AVAILABLE_MODELS = [
162
+ MODELS["claude-opus-4-6"],
163
+ MODELS["claude-sonnet-4-6"],
164
+ MODELS["claude-haiku-4-5"],
165
+ MODELS["glm-5"],
166
+ ];
167
+ /** Model aliases for subagent tasks */
168
+ export const MODEL_ALIASES = {
169
+ haiku: "claude-haiku-4-5",
170
+ sonnet: "claude-sonnet-4-6",
171
+ opus: "claude-opus-4-6",
172
+ fast: "glm-4.5-air",
173
+ default: "claude-sonnet-4-6",
174
+ };
175
+ // ============================================
176
+ // DEFAULTS
177
+ // ============================================
178
+ /** Default model for interactive use */
179
+ export const DEFAULT_MODEL = "claude-sonnet-4-6";
180
+ /** Default model for summarization (fast/cheap) */
181
+ export const SUMMARIZATION_MODEL = process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL || "glm-4.5-air";
182
+ /** Default context window if model not found */
183
+ export const DEFAULT_CONTEXT_WINDOW = 200_000;
184
+ /** Default max output tokens if not specified */
185
+ export const DEFAULT_MAX_OUTPUT = 4_096;
186
+ // ============================================
187
+ // HELPER FUNCTIONS
188
+ // ============================================
189
+ /**
190
+ * Get model definition by ID
191
+ */
192
+ export function getModel(modelId) {
193
+ return MODELS[modelId];
194
+ }
195
+ /**
196
+ * Get model or throw if not found
197
+ */
198
+ export function requireModel(modelId) {
199
+ const model = MODELS[modelId];
200
+ if (!model) {
201
+ throw new Error(`Unknown model: ${modelId}`);
202
+ }
203
+ return model;
204
+ }
205
+ /**
206
+ * Get context window for a model
207
+ * Falls back to fuzzy matching and then default
208
+ */
209
+ export function getContextWindow(modelId) {
210
+ // Exact match
211
+ const model = MODELS[modelId];
212
+ if (model) {
213
+ return model.contextWindow;
214
+ }
215
+ // Fuzzy match (e.g., "opus" in model name)
216
+ const modelLower = modelId.toLowerCase();
217
+ for (const [key, def] of Object.entries(MODELS)) {
218
+ const keyPart = key.split("-")[1];
219
+ if (keyPart && modelLower.includes(keyPart)) {
220
+ return def.contextWindow;
221
+ }
222
+ }
223
+ return DEFAULT_CONTEXT_WINDOW;
224
+ }
225
+ /**
226
+ * Get max output tokens for a model
227
+ */
228
+ export function getMaxOutput(modelId) {
229
+ const model = MODELS[modelId];
230
+ if (model?.maxOutput) {
231
+ return model.maxOutput;
232
+ }
233
+ // Default to 1/4 of context window
234
+ return Math.floor(getContextWindow(modelId) / 4);
235
+ }
236
+ /**
237
+ * Get display name for a model
238
+ */
239
+ export function getModelDisplayName(modelId) {
240
+ const model = MODELS[modelId];
241
+ return model?.name || modelId;
242
+ }
243
+ /**
244
+ * Check if model supports extended thinking
245
+ */
246
+ export function supportsExtendedThinking(modelId) {
247
+ const model = MODELS[modelId];
248
+ if (model) {
249
+ return model.supportsThinking;
250
+ }
251
+ // Fuzzy check for Claude 4.x
252
+ return (modelId.includes("claude-opus-4") ||
253
+ modelId.includes("claude-sonnet-4") ||
254
+ modelId.includes("claude-haiku-4") ||
255
+ modelId.includes("claude-4"));
256
+ }
257
+ /**
258
+ * Check if model supports vision
259
+ */
260
+ export function supportsVision(modelId) {
261
+ const model = MODELS[modelId];
262
+ return model?.supportsVision ?? false;
263
+ }
264
+ /**
265
+ * Get pricing for a model
266
+ */
267
+ export function getModelPricing(modelId) {
268
+ const model = MODELS[modelId];
269
+ if (model) {
270
+ return model.pricing;
271
+ }
272
+ // Default to Sonnet pricing
273
+ return { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 };
274
+ }
275
+ /**
276
+ * Calculate cost for API usage
277
+ */
278
+ export function calculateCost(modelId, usage) {
279
+ const pricing = getModelPricing(modelId);
280
+ const inputTokens = usage.input_tokens - (usage.cache_read_input_tokens ?? 0);
281
+ const cacheReadTokens = usage.cache_read_input_tokens ?? 0;
282
+ const cacheWriteTokens = usage.cache_creation_input_tokens ?? 0;
283
+ const outputTokens = usage.output_tokens;
284
+ const inputCost = (inputTokens / 1_000_000) * pricing.input;
285
+ const cacheReadCost = (cacheReadTokens / 1_000_000) * pricing.cacheRead;
286
+ const cacheWriteCost = (cacheWriteTokens / 1_000_000) * pricing.cacheWrite;
287
+ const outputCost = (outputTokens / 1_000_000) * pricing.output;
288
+ const costUSD = inputCost + cacheReadCost + cacheWriteCost + outputCost;
289
+ // Calculate savings from caching
290
+ const totalCachedTokens = cacheReadTokens + cacheWriteTokens;
291
+ const savedCost = (totalCachedTokens / 1_000_000) * (pricing.input - pricing.cacheRead);
292
+ return { costUSD, estimatedSavingsUSD: savedCost };
293
+ }
294
+ /**
295
+ * Format cost for display
296
+ */
297
+ export function formatCost(costUSD) {
298
+ if (costUSD < 0.01) {
299
+ return `$${costUSD.toFixed(4)}`;
300
+ }
301
+ else if (costUSD < 1) {
302
+ return `$${costUSD.toFixed(3)}`;
303
+ }
304
+ else {
305
+ return `$${costUSD.toFixed(2)}`;
306
+ }
307
+ }
308
+ /**
309
+ * Resolve model alias to model ID
310
+ */
311
+ export function resolveModelAlias(alias) {
312
+ return MODEL_ALIASES[alias] || alias;
313
+ }
314
+ // ============================================
315
+ // LEGACY CONSTANTS (for backwards compatibility)
316
+ // ============================================
317
+ /** @deprecated Use getModelPricing() instead */
318
+ export const MODEL_PRICING = Object.fromEntries(Object.entries(MODELS).map(([id, m]) => [
319
+ id,
320
+ { input: m.pricing.input, output: m.pricing.output, cache_write: m.pricing.cacheWrite, cache_read: m.pricing.cacheRead },
321
+ ]));
322
+ /** @deprecated Use getContextWindow() instead */
323
+ export const MODEL_CONTEXT_WINDOWS = Object.fromEntries(Object.entries(MODELS).map(([id, m]) => [id, m.contextWindow]));
324
+ /** @deprecated Use getModelDisplayName() instead */
325
+ export const MODEL_DISPLAY_NAMES = Object.fromEntries(Object.entries(MODELS).map(([id, m]) => [id, m.name]));
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Permission System - Interactive permission prompts
3
+ */
4
+ export type PermissionMode = "default" | "acceptEdits" | "bypassPermissions" | "dontAsk" | "interactive" | "plan";
5
+ export type PermissionDecision = "allow" | "deny" | "allowAlways" | "denyAlways";
6
+ export interface PermissionRequest {
7
+ toolName: string;
8
+ toolInput: Record<string, unknown>;
9
+ riskLevel: "low" | "medium" | "high" | "critical";
10
+ description: string;
11
+ file?: string;
12
+ command?: string;
13
+ }
14
+ export interface PermissionResult {
15
+ decision: PermissionDecision;
16
+ reason?: string;
17
+ }
18
+ export interface PermissionCache {
19
+ [key: string]: {
20
+ decision: PermissionDecision;
21
+ timestamp: number;
22
+ };
23
+ }
24
+ export type PermissionPromptCallback = (request: PermissionRequest) => Promise<PermissionResult>;
25
+ /**
26
+ * Assess risk level for a tool operation
27
+ */
28
+ export declare function assessRiskLevel(toolName: string, toolInput: Record<string, unknown>): "low" | "medium" | "high" | "critical";
29
+ /**
30
+ * Generate a human-readable description of the tool operation
31
+ */
32
+ export declare function generateDescription(toolName: string, toolInput: Record<string, unknown>): string;
33
+ export declare class PermissionManager {
34
+ private cache;
35
+ private cacheTimeout;
36
+ private promptCallback;
37
+ private mode;
38
+ constructor(mode?: PermissionMode, promptCallback?: PermissionPromptCallback);
39
+ /**
40
+ * Check if a tool operation is permitted
41
+ */
42
+ checkPermission(toolName: string, toolInput: Record<string, unknown>): Promise<PermissionResult>;
43
+ /**
44
+ * Generate cache key for permission
45
+ */
46
+ private getCacheKey;
47
+ /**
48
+ * Default prompt implementation using readline
49
+ */
50
+ private defaultPrompt;
51
+ /**
52
+ * Clear permission cache
53
+ */
54
+ clearCache(): void;
55
+ /**
56
+ * Set permission mode
57
+ */
58
+ setMode(mode: PermissionMode): void;
59
+ }
60
+ /**
61
+ * Tool categories for permission decisions
62
+ */
63
+ export declare const TOOL_CATEGORIES: {
64
+ readonly readOnly: readonly ["Read", "Glob", "Grep", "Task"];
65
+ readonly fileEdit: readonly ["Write", "Edit", "NotebookEdit"];
66
+ readonly system: readonly ["Bash"];
67
+ readonly network: readonly [];
68
+ };
69
+ /**
70
+ * Check if tool is read-only
71
+ */
72
+ export declare function isReadOnlyTool(toolName: string): boolean;
73
+ /**
74
+ * Check if tool modifies files
75
+ */
76
+ export declare function isFileEditTool(toolName: string): boolean;
77
+ /**
78
+ * Check if tool executes system commands
79
+ */
80
+ export declare function isSystemTool(toolName: string): boolean;
81
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../packages/src/core/permissions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,aAAa,GACb,mBAAmB,GACnB,SAAS,GACT,aAAa,GACb,MAAM,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,MAAM,GACN,aAAa,GACb,YAAY,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,iBAAiB,KACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AA4E/B;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAiCxC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,CAmBR;AAMD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,IAAI,CAAiB;gBAG3B,IAAI,GAAE,cAA0B,EAChC,cAAc,CAAC,EAAE,wBAAwB;IAM3C;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,gBAAgB,CAAC;IAiF5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;YACW,aAAa;IA8D3B;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;CAKpC;AAMD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAEX;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD"}