@ebowwa/coder 0.7.63 → 0.7.65

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 (364) 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 +33688 -49712
  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 +32012 -50526
  151. package/dist/interfaces/ui/terminal/native/README.md +53 -0
  152. package/dist/interfaces/ui/terminal/native/claude_code_native.darwin-x64.node +0 -0
  153. package/dist/interfaces/ui/terminal/native/claude_code_native.dylib +0 -0
  154. package/dist/interfaces/ui/terminal/native/index.d.ts +0 -0
  155. package/dist/interfaces/ui/terminal/native/index.darwin-arm64.node +0 -0
  156. package/dist/interfaces/ui/terminal/native/index.js +43 -0
  157. package/dist/interfaces/ui/terminal/native/index.node +0 -0
  158. package/dist/interfaces/ui/terminal/native/package.json +34 -0
  159. package/dist/interfaces/ui/terminal/shared/args.d.ts +39 -0
  160. package/dist/interfaces/ui/terminal/shared/args.d.ts.map +1 -0
  161. package/dist/interfaces/ui/terminal/shared/args.js +176 -0
  162. package/dist/interfaces/ui/terminal/shared/index.d.ts +11 -0
  163. package/dist/interfaces/ui/terminal/shared/index.d.ts.map +1 -0
  164. package/dist/interfaces/ui/terminal/shared/index.js +16 -0
  165. package/dist/interfaces/ui/terminal/shared/loading-state.d.ts +124 -0
  166. package/dist/interfaces/ui/terminal/shared/loading-state.d.ts.map +1 -0
  167. package/dist/interfaces/ui/terminal/shared/loading-state.js +246 -0
  168. package/dist/interfaces/ui/terminal/shared/query.d.ts +22 -0
  169. package/dist/interfaces/ui/terminal/shared/query.d.ts.map +1 -0
  170. package/dist/interfaces/ui/terminal/shared/query.js +100 -0
  171. package/dist/interfaces/ui/terminal/shared/setup.d.ts +33 -0
  172. package/dist/interfaces/ui/terminal/shared/setup.d.ts.map +1 -0
  173. package/dist/interfaces/ui/terminal/shared/setup.js +226 -0
  174. package/dist/interfaces/ui/terminal/shared/status-line.d.ts +117 -0
  175. package/dist/interfaces/ui/terminal/shared/status-line.d.ts.map +1 -0
  176. package/dist/interfaces/ui/terminal/shared/status-line.js +267 -0
  177. package/dist/interfaces/ui/terminal/shared/system-prompt.d.ts +38 -0
  178. package/dist/interfaces/ui/terminal/shared/system-prompt.d.ts.map +1 -0
  179. package/dist/interfaces/ui/terminal/shared/system-prompt.js +102 -0
  180. package/dist/interfaces/ui/terminal/tui/HelpPanel.d.ts +39 -0
  181. package/dist/interfaces/ui/terminal/tui/HelpPanel.d.ts.map +1 -0
  182. package/dist/interfaces/ui/terminal/tui/HelpPanel.js +215 -0
  183. package/dist/interfaces/ui/terminal/tui/InputContext.d.ts +91 -0
  184. package/dist/interfaces/ui/terminal/tui/InputContext.d.ts.map +1 -0
  185. package/dist/interfaces/ui/terminal/tui/InputContext.js +154 -0
  186. package/dist/interfaces/ui/terminal/tui/InputField.d.ts +18 -0
  187. package/dist/interfaces/ui/terminal/tui/InputField.d.ts.map +1 -0
  188. package/dist/interfaces/ui/terminal/tui/InputField.js +41 -0
  189. package/dist/interfaces/ui/terminal/tui/InteractiveTUI.d.ts +16 -0
  190. package/dist/interfaces/ui/terminal/tui/InteractiveTUI.d.ts.map +1 -0
  191. package/dist/interfaces/ui/terminal/tui/InteractiveTUI.js +451 -0
  192. package/dist/interfaces/ui/terminal/tui/MessageArea.d.ts +10 -0
  193. package/dist/interfaces/ui/terminal/tui/MessageArea.d.ts.map +1 -0
  194. package/dist/interfaces/ui/terminal/tui/MessageArea.js +91 -0
  195. package/dist/interfaces/ui/terminal/tui/MessageStore.d.ts +48 -0
  196. package/dist/interfaces/ui/terminal/tui/MessageStore.d.ts.map +1 -0
  197. package/dist/interfaces/ui/terminal/tui/MessageStore.js +151 -0
  198. package/dist/interfaces/ui/terminal/tui/StatusBar.d.ts +9 -0
  199. package/dist/interfaces/ui/terminal/tui/StatusBar.d.ts.map +1 -0
  200. package/dist/interfaces/ui/terminal/tui/StatusBar.js +36 -0
  201. package/dist/interfaces/ui/terminal/tui/commands.d.ts +21 -0
  202. package/dist/interfaces/ui/terminal/tui/commands.d.ts.map +1 -0
  203. package/dist/interfaces/ui/terminal/tui/commands.js +359 -0
  204. package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.d.ts +115 -0
  205. package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.d.ts.map +1 -0
  206. package/dist/interfaces/ui/terminal/tui/components/InteractiveElements.js +306 -0
  207. package/dist/interfaces/ui/terminal/tui/components/MultilineInput.d.ts +92 -0
  208. package/dist/interfaces/ui/terminal/tui/components/MultilineInput.d.ts.map +1 -0
  209. package/dist/interfaces/ui/terminal/tui/components/MultilineInput.js +399 -0
  210. package/dist/interfaces/ui/terminal/tui/components/PaneManager.d.ts +59 -0
  211. package/dist/interfaces/ui/terminal/tui/components/PaneManager.d.ts.map +1 -0
  212. package/dist/interfaces/ui/terminal/tui/components/PaneManager.js +139 -0
  213. package/dist/interfaces/ui/terminal/tui/components/Sidebar.d.ts +68 -0
  214. package/dist/interfaces/ui/terminal/tui/components/Sidebar.d.ts.map +1 -0
  215. package/dist/interfaces/ui/terminal/tui/components/Sidebar.js +340 -0
  216. package/dist/interfaces/ui/terminal/tui/components/index.d.ts +23 -0
  217. package/dist/interfaces/ui/terminal/tui/components/index.d.ts.map +1 -0
  218. package/dist/interfaces/ui/terminal/tui/components/index.js +51 -0
  219. package/dist/interfaces/ui/terminal/tui/console.d.ts +20 -0
  220. package/dist/interfaces/ui/terminal/tui/console.d.ts.map +1 -0
  221. package/dist/interfaces/ui/terminal/tui/console.js +46 -0
  222. package/dist/interfaces/ui/terminal/tui/index.d.ts +20 -0
  223. package/dist/interfaces/ui/terminal/tui/index.d.ts.map +1 -0
  224. package/dist/interfaces/ui/terminal/tui/index.js +28 -0
  225. package/dist/interfaces/ui/terminal/tui/run.d.ts +13 -0
  226. package/dist/interfaces/ui/terminal/tui/run.d.ts.map +1 -0
  227. package/dist/interfaces/ui/terminal/tui/run.js +31 -0
  228. package/dist/interfaces/ui/terminal/tui/spinner.d.ts +44 -0
  229. package/dist/interfaces/ui/terminal/tui/spinner.d.ts.map +1 -0
  230. package/dist/interfaces/ui/terminal/tui/spinner.js +59 -0
  231. package/dist/interfaces/ui/terminal/tui/tui-app.d.ts +39 -0
  232. package/dist/interfaces/ui/terminal/tui/tui-app.d.ts.map +1 -0
  233. package/dist/interfaces/ui/terminal/tui/tui-app.js +198 -0
  234. package/dist/interfaces/ui/terminal/tui/tui-footer.d.ts +167 -0
  235. package/dist/interfaces/ui/terminal/tui/tui-footer.d.ts.map +1 -0
  236. package/dist/interfaces/ui/terminal/tui/tui-footer.js +330 -0
  237. package/dist/interfaces/ui/terminal/tui/types.d.ts +165 -0
  238. package/dist/interfaces/ui/terminal/tui/types.d.ts.map +1 -0
  239. package/dist/interfaces/ui/terminal/tui/types.js +5 -0
  240. package/dist/interfaces/ui/terminal/tui/useInputHandler.d.ts +23 -0
  241. package/dist/interfaces/ui/terminal/tui/useInputHandler.d.ts.map +1 -0
  242. package/dist/interfaces/ui/terminal/tui/useInputHandler.js +72 -0
  243. package/dist/interfaces/ui/terminal/tui/useNativeInput.d.ts +90 -0
  244. package/dist/interfaces/ui/terminal/tui/useNativeInput.d.ts.map +1 -0
  245. package/dist/interfaces/ui/terminal/tui/useNativeInput.js +188 -0
  246. package/dist/native/README.md +53 -0
  247. package/dist/native/claude_code_native.darwin-x64.node +0 -0
  248. package/dist/native/claude_code_native.dylib +0 -0
  249. package/dist/native/index.d.ts +0 -0
  250. package/dist/native/index.d.ts.map +1 -0
  251. package/dist/native/index.darwin-arm64.node +0 -0
  252. package/dist/native/index.js +43 -0
  253. package/dist/native/index.node +0 -0
  254. package/dist/native/package.json +34 -0
  255. package/dist/teammates/index.d.ts +161 -0
  256. package/dist/teammates/index.d.ts.map +1 -0
  257. package/dist/teammates/index.js +827 -0
  258. package/dist/types/index.d.ts +482 -0
  259. package/dist/types/index.d.ts.map +1 -0
  260. package/dist/types/index.js +52 -0
  261. package/native/index.darwin-arm64.node +0 -0
  262. package/native/index.js +33 -19
  263. package/package.json +6 -3
  264. package/packages/src/core/__tests__/permissions.test.ts +1091 -0
  265. package/packages/src/core/agent-loop/__tests__/compaction.test.ts +283 -0
  266. package/packages/src/core/agent-loop/__tests__/formatters.test.ts +234 -0
  267. package/packages/src/core/agent-loop/__tests__/index.test.ts +162 -0
  268. package/packages/src/core/agent-loop/__tests__/loop-state.test.ts +413 -0
  269. package/packages/src/core/agent-loop/__tests__/message-builder.test.ts +229 -0
  270. package/packages/src/core/agent-loop/__tests__/tool-executor.test.ts +457 -0
  271. package/packages/src/core/agent-loop/compaction.ts +92 -0
  272. package/packages/src/core/agent-loop/formatters.ts +50 -0
  273. package/packages/src/core/agent-loop/index.ts +137 -0
  274. package/packages/src/core/agent-loop/loop-state.ts +187 -0
  275. package/packages/src/core/agent-loop/message-builder.ts +62 -0
  276. package/packages/src/core/agent-loop/tool-executor.ts +211 -0
  277. package/packages/src/core/agent-loop/turn-executor.ts +226 -0
  278. package/packages/src/core/agent-loop/types.ts +152 -0
  279. package/packages/src/core/agent-loop.ts +18 -0
  280. package/packages/src/core/api-client-impl.ts +729 -0
  281. package/packages/src/core/api-client.ts +6 -0
  282. package/packages/src/core/checkpoints.ts +606 -0
  283. package/packages/src/core/claude-md.ts +272 -0
  284. package/packages/src/core/cognitive-security/hooks.ts +591 -0
  285. package/packages/src/core/cognitive-security/index.ts +2041 -0
  286. package/packages/src/core/cognitive-security/middleware.ts +536 -0
  287. package/packages/src/core/config/todo +7 -0
  288. package/packages/src/core/config-loader.ts +324 -0
  289. package/packages/src/core/context/__tests__/integration.test.ts +334 -0
  290. package/packages/src/core/context/compaction.ts +170 -0
  291. package/packages/src/core/context/constants.ts +58 -0
  292. package/packages/src/core/context/extraction.ts +85 -0
  293. package/packages/src/core/context/index.ts +66 -0
  294. package/packages/src/core/context/summarization.ts +251 -0
  295. package/packages/src/core/context/token-estimation.ts +98 -0
  296. package/packages/src/core/context/types.ts +59 -0
  297. package/packages/src/core/git-status.ts +262 -0
  298. package/packages/src/core/image.test.ts +180 -0
  299. package/packages/src/core/image.ts +350 -0
  300. package/packages/src/core/lmdb.db +0 -0
  301. package/packages/src/core/lmdb.db-lock +0 -0
  302. package/packages/src/core/models.ts +507 -0
  303. package/packages/src/core/normalizers/todo +8 -0
  304. package/packages/src/core/permissions.ts +431 -0
  305. package/packages/src/core/providers/README.md +230 -0
  306. package/packages/src/core/providers/__tests__/providers.test.ts +135 -0
  307. package/packages/src/core/providers/index.ts +419 -0
  308. package/packages/src/core/providers/types.ts +132 -0
  309. package/packages/src/core/retry.ts +180 -0
  310. package/packages/src/core/session-store.ts +36 -0
  311. package/packages/src/core/sessions/export.ts +329 -0
  312. package/packages/src/core/sessions/index.ts +587 -0
  313. package/packages/src/core/sessions/metadata.ts +309 -0
  314. package/packages/src/core/sessions/persistence.ts +244 -0
  315. package/packages/src/core/sessions/types.ts +169 -0
  316. package/packages/src/core/stream-highlighter.ts +1123 -0
  317. package/packages/src/core/system-reminders.ts +402 -0
  318. package/packages/src/core/todo +8 -0
  319. package/packages/src/ecosystem/hooks/__tests__/index.test.ts +561 -0
  320. package/packages/src/ecosystem/hooks/index.ts +341 -0
  321. package/packages/src/ecosystem/hooks/prompt-evaluator.ts +300 -0
  322. package/packages/src/ecosystem/skills/index.ts +295 -0
  323. package/packages/src/ecosystem/tools/__tests__/index.test.ts +1335 -0
  324. package/packages/src/ecosystem/tools/index.ts +2051 -0
  325. package/packages/src/index.ts +141 -0
  326. package/packages/src/interfaces/mcp/client.ts +389 -0
  327. package/packages/src/interfaces/ui/index.ts +158 -0
  328. package/packages/src/interfaces/ui/lmdb.db +0 -0
  329. package/packages/src/interfaces/ui/lmdb.db-lock +0 -0
  330. package/packages/src/interfaces/ui/spinner.ts +451 -0
  331. package/packages/src/interfaces/ui/terminal/bridge/index.ts +370 -0
  332. package/packages/src/interfaces/ui/terminal/bridge/ipc.ts +829 -0
  333. package/packages/src/interfaces/ui/terminal/bridge/screen-export.ts +968 -0
  334. package/packages/src/interfaces/ui/terminal/bridge/types.ts +226 -0
  335. package/packages/src/interfaces/ui/terminal/bridge/useBridge.ts +210 -0
  336. package/packages/src/interfaces/ui/terminal/cli/bootstrap.ts +132 -0
  337. package/packages/src/interfaces/ui/terminal/cli/index.ts +415 -0
  338. package/packages/src/interfaces/ui/terminal/cli/interactive/index.ts +110 -0
  339. package/packages/src/interfaces/ui/terminal/cli/interactive/input-handler.ts +393 -0
  340. package/packages/src/interfaces/ui/terminal/cli/interactive/interactive-runner.ts +820 -0
  341. package/packages/src/interfaces/ui/terminal/cli/interactive/message-store.ts +299 -0
  342. package/packages/src/interfaces/ui/terminal/cli/interactive/types.ts +274 -0
  343. package/packages/src/interfaces/ui/terminal/lmdb.db +0 -0
  344. package/packages/src/interfaces/ui/terminal/lmdb.db-lock +0 -0
  345. package/packages/src/interfaces/ui/terminal/shared/args.ts +222 -0
  346. package/packages/src/interfaces/ui/terminal/shared/index.ts +84 -0
  347. package/packages/src/interfaces/ui/terminal/shared/loading-state.ts +322 -0
  348. package/packages/src/interfaces/ui/terminal/shared/query.ts +152 -0
  349. package/packages/src/interfaces/ui/terminal/shared/setup.ts +299 -0
  350. package/packages/src/interfaces/ui/terminal/shared/spinner-frames.ts +73 -0
  351. package/packages/src/interfaces/ui/terminal/shared/status-line.ts +366 -0
  352. package/packages/src/interfaces/ui/terminal/shared/system-prompt.ts +146 -0
  353. package/packages/src/lmdb.db +0 -0
  354. package/packages/src/lmdb.db-lock +0 -0
  355. package/packages/src/native/index.ts +2722 -0
  356. package/packages/src/native/tui_v2_types.ts +39 -0
  357. package/packages/src/teammates/coordination.test.ts +279 -0
  358. package/packages/src/teammates/coordination.ts +646 -0
  359. package/packages/src/teammates/index.ts +1052 -0
  360. package/packages/src/teammates/integration.test.ts +272 -0
  361. package/packages/src/teammates/runner.test.ts +235 -0
  362. package/packages/src/teammates/runner.ts +750 -0
  363. package/packages/src/teammates/schemas.ts +673 -0
  364. package/packages/src/types/index.ts +723 -0
@@ -0,0 +1,507 @@
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" | "minimax" | "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 - Coding Plan with Shared Quota)
168
+ // Note: GLM-5 consumes quota at 3x (peak) and 2x (off-peak)
169
+ "glm-5": {
170
+ id: "glm-5",
171
+ name: "GLM-5",
172
+ fullName: "GLM-5",
173
+ contextWindow: 200_000,
174
+ maxOutput: 128_000,
175
+ pricing: { input: 0.5, output: 0.5, cacheWrite: 0, cacheRead: 0 },
176
+ supportsThinking: true,
177
+ provider: "zhipu",
178
+ supportsVision: true,
179
+ },
180
+ "glm-4.7": {
181
+ id: "glm-4.7",
182
+ name: "GLM-4.7",
183
+ fullName: "GLM-4.7",
184
+ contextWindow: 128_000,
185
+ maxOutput: 8_192,
186
+ pricing: { input: 0.5, output: 0.5, cacheWrite: 0, cacheRead: 0 },
187
+ supportsThinking: true,
188
+ provider: "zhipu",
189
+ supportsVision: true,
190
+ },
191
+ "glm-4.6": {
192
+ id: "glm-4.6",
193
+ name: "GLM-4.6",
194
+ fullName: "GLM-4.6",
195
+ contextWindow: 128_000,
196
+ maxOutput: 8_192,
197
+ pricing: { input: 0.5, output: 0.5, cacheWrite: 0, cacheRead: 0 },
198
+ supportsThinking: true,
199
+ provider: "zhipu",
200
+ supportsVision: true,
201
+ },
202
+ "glm-4.5v": {
203
+ id: "glm-4.5v",
204
+ name: "GLM-4.5V",
205
+ fullName: "GLM-4.5 Vision",
206
+ contextWindow: 128_000,
207
+ maxOutput: 4_096,
208
+ pricing: { input: 0.5, output: 0.5, cacheWrite: 0, cacheRead: 0 },
209
+ supportsThinking: false,
210
+ provider: "zhipu",
211
+ supportsVision: true,
212
+ },
213
+ "glm-4.5": {
214
+ id: "glm-4.5",
215
+ name: "GLM-4.5",
216
+ fullName: "GLM-4.5",
217
+ contextWindow: 128_000,
218
+ maxOutput: 4_096,
219
+ pricing: { input: 0.5, output: 0.5, cacheWrite: 0, cacheRead: 0 },
220
+ supportsThinking: false,
221
+ provider: "zhipu",
222
+ supportsVision: false,
223
+ },
224
+ "glm-4.5-air": {
225
+ id: "glm-4.5-air",
226
+ name: "GLM-4.5 Air",
227
+ fullName: "GLM-4.5 Air",
228
+ contextWindow: 128_000,
229
+ maxOutput: 4_096,
230
+ pricing: { input: 0.1, output: 0.1, cacheWrite: 0, cacheRead: 0 },
231
+ supportsThinking: false,
232
+ provider: "zhipu",
233
+ supportsVision: false,
234
+ },
235
+
236
+ // MiniMax Series
237
+ "minimax-m2.5": {
238
+ id: "MiniMax-M2.5",
239
+ name: "M2.5",
240
+ fullName: "MiniMax M2.5",
241
+ contextWindow: 200_000,
242
+ maxOutput: 32_000,
243
+ pricing: { input: 0.3, output: 0.9, cacheWrite: 0, cacheRead: 0 },
244
+ supportsThinking: false,
245
+ provider: "minimax",
246
+ supportsVision: true,
247
+ },
248
+ };
249
+
250
+ // ============================================
251
+ // MODEL LISTS
252
+ // ============================================
253
+
254
+ /** Models available for interactive use (shown in /models command) */
255
+ export const AVAILABLE_MODELS = [
256
+ // Claude 4.x (Anthropic - stub)
257
+ MODELS["claude-opus-4-6"]!,
258
+ MODELS["claude-sonnet-4-6"]!,
259
+ MODELS["claude-haiku-4-5"]!,
260
+ // GLM Series (Zhipu / Z.AI - coding plan)
261
+ MODELS["glm-5"]!,
262
+ MODELS["glm-4.7"]!,
263
+ MODELS["glm-4.5v"]!,
264
+ // MiniMax Series
265
+ MODELS["minimax-m2.5"]!,
266
+ ] as const;
267
+
268
+ /** Model aliases for subagent tasks */
269
+ export const MODEL_ALIASES = {
270
+ // Claude aliases
271
+ haiku: "claude-haiku-4-5",
272
+ sonnet: "claude-sonnet-4-6",
273
+ opus: "claude-opus-4-6",
274
+ default: "claude-sonnet-4-6",
275
+ // GLM aliases (Zhipu / Z.AI)
276
+ glm: "glm-5",
277
+ glm5: "glm-5",
278
+ glm4: "glm-4.7",
279
+ glm47: "glm-4.7",
280
+ glm46: "glm-4.6",
281
+ glm45v: "glm-4.5v",
282
+ glm45: "glm-4.5",
283
+ glm45air: "glm-4.5-air",
284
+ fast: "glm-4.5-air",
285
+ // MiniMax aliases
286
+ minimax: "minimax-m2.5",
287
+ m25: "minimax-m2.5",
288
+ } as const;
289
+
290
+ // ============================================
291
+ // DEFAULTS
292
+ // ============================================
293
+
294
+ /** Default model for interactive use */
295
+ export const DEFAULT_MODEL = "claude-sonnet-4-6";
296
+
297
+ /** Default model for summarization (fast/cheap) */
298
+ export const SUMMARIZATION_MODEL = process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL || "glm-4.5-air";
299
+
300
+ /** Default context window if model not found */
301
+ export const DEFAULT_CONTEXT_WINDOW = 200_000;
302
+
303
+ /** Default max output tokens if not specified */
304
+ export const DEFAULT_MAX_OUTPUT = 4_096;
305
+
306
+ // ============================================
307
+ // HELPER FUNCTIONS
308
+ // ============================================
309
+
310
+ /**
311
+ * Get model definition by ID
312
+ */
313
+ export function getModel(modelId: string): ModelDefinition | undefined {
314
+ return MODELS[modelId];
315
+ }
316
+
317
+ /**
318
+ * Get model or throw if not found
319
+ */
320
+ export function requireModel(modelId: string): ModelDefinition {
321
+ const model = MODELS[modelId];
322
+ if (!model) {
323
+ throw new Error(`Unknown model: ${modelId}`);
324
+ }
325
+ return model;
326
+ }
327
+
328
+ /**
329
+ * Get context window for a model
330
+ * Falls back to fuzzy matching and then default
331
+ */
332
+ export function getContextWindow(modelId: string): number {
333
+ // Exact match
334
+ const model = MODELS[modelId];
335
+ if (model) {
336
+ return model.contextWindow;
337
+ }
338
+
339
+ // Fuzzy match (e.g., "opus" in model name)
340
+ const modelLower = modelId.toLowerCase();
341
+ for (const [key, def] of Object.entries(MODELS)) {
342
+ const keyPart = key.split("-")[1];
343
+ if (keyPart && modelLower.includes(keyPart)) {
344
+ return def.contextWindow;
345
+ }
346
+ }
347
+
348
+ return DEFAULT_CONTEXT_WINDOW;
349
+ }
350
+
351
+ /**
352
+ * Get max output tokens for a model
353
+ */
354
+ export function getMaxOutput(modelId: string): number {
355
+ const model = MODELS[modelId];
356
+ if (model?.maxOutput) {
357
+ return model.maxOutput;
358
+ }
359
+ // Default to 1/4 of context window
360
+ return Math.floor(getContextWindow(modelId) / 4);
361
+ }
362
+
363
+ /**
364
+ * Get display name for a model
365
+ */
366
+ export function getModelDisplayName(modelId: string): string {
367
+ const model = MODELS[modelId];
368
+ return model?.name || modelId;
369
+ }
370
+
371
+ /**
372
+ * Check if model supports extended thinking
373
+ */
374
+ export function supportsExtendedThinking(modelId: string): boolean {
375
+ const model = MODELS[modelId];
376
+ if (model) {
377
+ return model.supportsThinking;
378
+ }
379
+ // Fuzzy check for Claude 4.x
380
+ return (
381
+ modelId.includes("claude-opus-4") ||
382
+ modelId.includes("claude-sonnet-4") ||
383
+ modelId.includes("claude-haiku-4") ||
384
+ modelId.includes("claude-4")
385
+ );
386
+ }
387
+
388
+ /**
389
+ * Check if model supports vision
390
+ */
391
+ export function supportsVision(modelId: string): boolean {
392
+ const model = MODELS[modelId];
393
+ return model?.supportsVision ?? false;
394
+ }
395
+
396
+ /**
397
+ * Get pricing for a model
398
+ */
399
+ export function getModelPricing(
400
+ modelId: string
401
+ ): { input: number; output: number; cacheWrite: number; cacheRead: number } {
402
+ const model = MODELS[modelId];
403
+ if (model) {
404
+ return model.pricing;
405
+ }
406
+ // Default to Sonnet pricing
407
+ return { input: 3, output: 15, cacheWrite: 3.75, cacheRead: 0.3 };
408
+ }
409
+
410
+ /**
411
+ * Calculate cost for API usage
412
+ */
413
+ export function calculateCost(
414
+ modelId: string,
415
+ usage: {
416
+ input_tokens: number;
417
+ output_tokens: number;
418
+ cache_creation_input_tokens?: number;
419
+ cache_read_input_tokens?: number;
420
+ }
421
+ ): { costUSD: number; estimatedSavingsUSD: number } {
422
+ const pricing = getModelPricing(modelId);
423
+
424
+ const inputTokens = usage.input_tokens - (usage.cache_read_input_tokens ?? 0);
425
+ const cacheReadTokens = usage.cache_read_input_tokens ?? 0;
426
+ const cacheWriteTokens = usage.cache_creation_input_tokens ?? 0;
427
+ const outputTokens = usage.output_tokens;
428
+
429
+ const inputCost = (inputTokens / 1_000_000) * pricing.input;
430
+ const cacheReadCost = (cacheReadTokens / 1_000_000) * pricing.cacheRead;
431
+ const cacheWriteCost = (cacheWriteTokens / 1_000_000) * pricing.cacheWrite;
432
+ const outputCost = (outputTokens / 1_000_000) * pricing.output;
433
+
434
+ const costUSD = inputCost + cacheReadCost + cacheWriteCost + outputCost;
435
+
436
+ // Calculate savings from caching
437
+ const totalCachedTokens = cacheReadTokens + cacheWriteTokens;
438
+ const savedCost = (totalCachedTokens / 1_000_000) * (pricing.input - pricing.cacheRead);
439
+
440
+ return { costUSD, estimatedSavingsUSD: savedCost };
441
+ }
442
+
443
+ /**
444
+ * Format cost for display
445
+ */
446
+ export function formatCost(costUSD: number): string {
447
+ if (costUSD < 0.01) {
448
+ return `$${costUSD.toFixed(4)}`;
449
+ } else if (costUSD < 1) {
450
+ return `$${costUSD.toFixed(3)}`;
451
+ } else {
452
+ return `$${costUSD.toFixed(2)}`;
453
+ }
454
+ }
455
+
456
+ /**
457
+ * Resolve model alias to model ID
458
+ */
459
+ export function resolveModelAlias(alias: string): string {
460
+ return MODEL_ALIASES[alias as keyof typeof MODEL_ALIASES] || alias;
461
+ }
462
+
463
+ // ============================================
464
+ // LEGACY TYPE EXPORTS (for backwards compatibility)
465
+ // ============================================
466
+
467
+ /** Claude model type (for TypeScript type checking) */
468
+ export type ClaudeModel =
469
+ | "claude-opus-4-6"
470
+ | "claude-sonnet-4-6"
471
+ | "claude-haiku-4-5"
472
+ | "claude-haiku-4-5-20251001"
473
+ | "claude-opus-4-5"
474
+ | "claude-sonnet-4-5"
475
+ | "claude-3-5-sonnet"
476
+ | "claude-3-5-haiku"
477
+ | "claude-3-opus"
478
+ | "claude-3-sonnet"
479
+ | "claude-3-haiku"
480
+ | "glm-5"
481
+ | "glm-4.5-air"
482
+ | string;
483
+
484
+ // ============================================
485
+ // LEGACY CONSTANTS (for backwards compatibility)
486
+ // ============================================
487
+
488
+ /** @deprecated Use getModelPricing() instead */
489
+ export const MODEL_PRICING: Record<
490
+ string,
491
+ { input: number; output: number; cache_write: number; cache_read: number }
492
+ > = Object.fromEntries(
493
+ Object.entries(MODELS).map(([id, m]) => [
494
+ id,
495
+ { input: m.pricing.input, output: m.pricing.output, cache_write: m.pricing.cacheWrite, cache_read: m.pricing.cacheRead },
496
+ ])
497
+ );
498
+
499
+ /** @deprecated Use getContextWindow() instead */
500
+ export const MODEL_CONTEXT_WINDOWS: Record<string, number> = Object.fromEntries(
501
+ Object.entries(MODELS).map(([id, m]) => [id, m.contextWindow])
502
+ );
503
+
504
+ /** @deprecated Use getModelDisplayName() instead */
505
+ export const MODEL_DISPLAY_NAMES: Record<string, string> = Object.fromEntries(
506
+ Object.entries(MODELS).map(([id, m]) => [id, m.name])
507
+ );
@@ -0,0 +1,8 @@
1
+ - channels
2
+ - stream
3
+ - keyboard event activity
4
+ - tools/mcps
5
+
6
+
7
+ packages/src/sandbox-body/channels/channel-command handles all this
8
+ this si an npm package