@nex-ai/nex 0.1.64 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. package/README.md +236 -231
  2. package/bin/nex-mcp.js +50 -0
  3. package/bin/nex.js +53 -0
  4. package/package.json +9 -36
  5. package/dist/agent/adoption.d.ts +0 -23
  6. package/dist/agent/adoption.js +0 -87
  7. package/dist/agent/adoption.js.map +0 -1
  8. package/dist/agent/gossip.d.ts +0 -17
  9. package/dist/agent/gossip.js +0 -48
  10. package/dist/agent/gossip.js.map +0 -1
  11. package/dist/agent/loop.d.ts +0 -59
  12. package/dist/agent/loop.js +0 -389
  13. package/dist/agent/loop.js.map +0 -1
  14. package/dist/agent/queues.d.ts +0 -16
  15. package/dist/agent/queues.js +0 -44
  16. package/dist/agent/queues.js.map +0 -1
  17. package/dist/agent/session-store.d.ts +0 -21
  18. package/dist/agent/session-store.js +0 -96
  19. package/dist/agent/session-store.js.map +0 -1
  20. package/dist/agent/templates.d.ts +0 -5
  21. package/dist/agent/templates.js +0 -55
  22. package/dist/agent/templates.js.map +0 -1
  23. package/dist/agent/tools.d.ts +0 -25
  24. package/dist/agent/tools.js +0 -238
  25. package/dist/agent/tools.js.map +0 -1
  26. package/dist/agent/types.d.ts +0 -59
  27. package/dist/agent/types.js +0 -5
  28. package/dist/agent/types.js.map +0 -1
  29. package/dist/calendar/scheduler.d.ts +0 -32
  30. package/dist/calendar/scheduler.js +0 -178
  31. package/dist/calendar/scheduler.js.map +0 -1
  32. package/dist/calendar/store.d.ts +0 -15
  33. package/dist/calendar/store.js +0 -50
  34. package/dist/calendar/store.js.map +0 -1
  35. package/dist/calendar/types.d.ts +0 -17
  36. package/dist/calendar/types.js +0 -5
  37. package/dist/calendar/types.js.map +0 -1
  38. package/dist/chat/channel.d.ts +0 -20
  39. package/dist/chat/channel.js +0 -84
  40. package/dist/chat/channel.js.map +0 -1
  41. package/dist/chat/message-store.d.ts +0 -18
  42. package/dist/chat/message-store.js +0 -82
  43. package/dist/chat/message-store.js.map +0 -1
  44. package/dist/chat/router.d.ts +0 -17
  45. package/dist/chat/router.js +0 -65
  46. package/dist/chat/router.js.map +0 -1
  47. package/dist/chat/suggested-responses.d.ts +0 -6
  48. package/dist/chat/suggested-responses.js +0 -99
  49. package/dist/chat/suggested-responses.js.map +0 -1
  50. package/dist/chat/types.d.ts +0 -28
  51. package/dist/chat/types.js +0 -5
  52. package/dist/chat/types.js.map +0 -1
  53. package/dist/cli.d.ts +0 -5
  54. package/dist/cli.js +0 -20
  55. package/dist/cli.js.map +0 -1
  56. package/dist/commands/attribute.d.ts +0 -4
  57. package/dist/commands/attribute.js +0 -75
  58. package/dist/commands/attribute.js.map +0 -1
  59. package/dist/commands/config-cmd.d.ts +0 -4
  60. package/dist/commands/config-cmd.js +0 -53
  61. package/dist/commands/config-cmd.js.map +0 -1
  62. package/dist/commands/context.d.ts +0 -4
  63. package/dist/commands/context.js +0 -167
  64. package/dist/commands/context.js.map +0 -1
  65. package/dist/commands/dispatch.d.ts +0 -44
  66. package/dist/commands/dispatch.js +0 -1550
  67. package/dist/commands/dispatch.js.map +0 -1
  68. package/dist/commands/graph.d.ts +0 -5
  69. package/dist/commands/graph.js +0 -77
  70. package/dist/commands/graph.js.map +0 -1
  71. package/dist/commands/init.d.ts +0 -49
  72. package/dist/commands/init.js +0 -319
  73. package/dist/commands/init.js.map +0 -1
  74. package/dist/commands/insight.d.ts +0 -4
  75. package/dist/commands/insight.js +0 -39
  76. package/dist/commands/insight.js.map +0 -1
  77. package/dist/commands/integrate.d.ts +0 -4
  78. package/dist/commands/integrate.js +0 -361
  79. package/dist/commands/integrate.js.map +0 -1
  80. package/dist/commands/list-job.d.ts +0 -4
  81. package/dist/commands/list-job.js +0 -41
  82. package/dist/commands/list-job.js.map +0 -1
  83. package/dist/commands/list.d.ts +0 -4
  84. package/dist/commands/list.js +0 -148
  85. package/dist/commands/list.js.map +0 -1
  86. package/dist/commands/note.d.ts +0 -4
  87. package/dist/commands/note.js +0 -77
  88. package/dist/commands/note.js.map +0 -1
  89. package/dist/commands/object.d.ts +0 -4
  90. package/dist/commands/object.js +0 -78
  91. package/dist/commands/object.js.map +0 -1
  92. package/dist/commands/parse-input.d.ts +0 -5
  93. package/dist/commands/parse-input.js +0 -37
  94. package/dist/commands/parse-input.js.map +0 -1
  95. package/dist/commands/record.d.ts +0 -4
  96. package/dist/commands/record.js +0 -126
  97. package/dist/commands/record.js.map +0 -1
  98. package/dist/commands/register.d.ts +0 -4
  99. package/dist/commands/register.js +0 -23
  100. package/dist/commands/register.js.map +0 -1
  101. package/dist/commands/relationship.d.ts +0 -4
  102. package/dist/commands/relationship.js +0 -80
  103. package/dist/commands/relationship.js.map +0 -1
  104. package/dist/commands/scan.d.ts +0 -4
  105. package/dist/commands/scan.js +0 -107
  106. package/dist/commands/scan.js.map +0 -1
  107. package/dist/commands/search.d.ts +0 -4
  108. package/dist/commands/search.js +0 -62
  109. package/dist/commands/search.js.map +0 -1
  110. package/dist/commands/session.d.ts +0 -4
  111. package/dist/commands/session.js +0 -31
  112. package/dist/commands/session.js.map +0 -1
  113. package/dist/commands/setup.d.ts +0 -25
  114. package/dist/commands/setup.js +0 -580
  115. package/dist/commands/setup.js.map +0 -1
  116. package/dist/commands/task.d.ts +0 -4
  117. package/dist/commands/task.js +0 -140
  118. package/dist/commands/task.js.map +0 -1
  119. package/dist/commands/workspace.d.ts +0 -8
  120. package/dist/commands/workspace.js +0 -251
  121. package/dist/commands/workspace.js.map +0 -1
  122. package/dist/index.d.ts +0 -9
  123. package/dist/index.js +0 -142
  124. package/dist/index.js.map +0 -1
  125. package/dist/lib/capture-filter.d.ts +0 -9
  126. package/dist/lib/capture-filter.js +0 -14
  127. package/dist/lib/capture-filter.js.map +0 -1
  128. package/dist/lib/client.d.ts +0 -20
  129. package/dist/lib/client.js +0 -160
  130. package/dist/lib/client.js.map +0 -1
  131. package/dist/lib/config.d.ts +0 -35
  132. package/dist/lib/config.js +0 -96
  133. package/dist/lib/config.js.map +0 -1
  134. package/dist/lib/context-format.d.ts +0 -7
  135. package/dist/lib/context-format.js +0 -21
  136. package/dist/lib/context-format.js.map +0 -1
  137. package/dist/lib/errors.d.ts +0 -18
  138. package/dist/lib/errors.js +0 -30
  139. package/dist/lib/errors.js.map +0 -1
  140. package/dist/lib/file-scanner.d.ts +0 -38
  141. package/dist/lib/file-scanner.js +0 -188
  142. package/dist/lib/file-scanner.js.map +0 -1
  143. package/dist/lib/graph-html.d.ts +0 -59
  144. package/dist/lib/graph-html.js +0 -859
  145. package/dist/lib/graph-html.js.map +0 -1
  146. package/dist/lib/installers.d.ts +0 -80
  147. package/dist/lib/installers.js +0 -602
  148. package/dist/lib/installers.js.map +0 -1
  149. package/dist/lib/integrations.d.ts +0 -23
  150. package/dist/lib/integrations.js +0 -25
  151. package/dist/lib/integrations.js.map +0 -1
  152. package/dist/lib/output.d.ts +0 -7
  153. package/dist/lib/output.js +0 -70
  154. package/dist/lib/output.js.map +0 -1
  155. package/dist/lib/platform-detect.d.ts +0 -23
  156. package/dist/lib/platform-detect.js +0 -359
  157. package/dist/lib/platform-detect.js.map +0 -1
  158. package/dist/lib/project-config.d.ts +0 -53
  159. package/dist/lib/project-config.js +0 -151
  160. package/dist/lib/project-config.js.map +0 -1
  161. package/dist/lib/prompt.d.ts +0 -15
  162. package/dist/lib/prompt.js +0 -213
  163. package/dist/lib/prompt.js.map +0 -1
  164. package/dist/lib/rate-limiter.d.ts +0 -13
  165. package/dist/lib/rate-limiter.js +0 -49
  166. package/dist/lib/rate-limiter.js.map +0 -1
  167. package/dist/lib/recall-filter.d.ts +0 -5
  168. package/dist/lib/recall-filter.js +0 -24
  169. package/dist/lib/recall-filter.js.map +0 -1
  170. package/dist/lib/session-store.d.ts +0 -15
  171. package/dist/lib/session-store.js +0 -62
  172. package/dist/lib/session-store.js.map +0 -1
  173. package/dist/lib/tui.d.ts +0 -57
  174. package/dist/lib/tui.js +0 -247
  175. package/dist/lib/tui.js.map +0 -1
  176. package/dist/lib/workspace-registry.d.ts +0 -47
  177. package/dist/lib/workspace-registry.js +0 -240
  178. package/dist/lib/workspace-registry.js.map +0 -1
  179. package/dist/mcp/channel.d.ts +0 -24
  180. package/dist/mcp/channel.js +0 -198
  181. package/dist/mcp/channel.js.map +0 -1
  182. package/dist/mcp/client.d.ts +0 -20
  183. package/dist/mcp/client.js +0 -131
  184. package/dist/mcp/client.js.map +0 -1
  185. package/dist/mcp/config.d.ts +0 -19
  186. package/dist/mcp/config.js +0 -48
  187. package/dist/mcp/config.js.map +0 -1
  188. package/dist/mcp/context-files.d.ts +0 -9
  189. package/dist/mcp/context-files.js +0 -90
  190. package/dist/mcp/context-files.js.map +0 -1
  191. package/dist/mcp/file-manifest.d.ts +0 -27
  192. package/dist/mcp/file-manifest.js +0 -68
  193. package/dist/mcp/file-manifest.js.map +0 -1
  194. package/dist/mcp/file-scanner.d.ts +0 -17
  195. package/dist/mcp/file-scanner.js +0 -77
  196. package/dist/mcp/file-scanner.js.map +0 -1
  197. package/dist/mcp/index.d.ts +0 -2
  198. package/dist/mcp/index.js +0 -51
  199. package/dist/mcp/index.js.map +0 -1
  200. package/dist/mcp/rate-limiter.d.ts +0 -14
  201. package/dist/mcp/rate-limiter.js +0 -60
  202. package/dist/mcp/rate-limiter.js.map +0 -1
  203. package/dist/mcp/server.d.ts +0 -6
  204. package/dist/mcp/server.js +0 -44
  205. package/dist/mcp/server.js.map +0 -1
  206. package/dist/mcp/session-store.d.ts +0 -16
  207. package/dist/mcp/session-store.js +0 -70
  208. package/dist/mcp/session-store.js.map +0 -1
  209. package/dist/mcp/tools/context.d.ts +0 -3
  210. package/dist/mcp/tools/context.js +0 -65
  211. package/dist/mcp/tools/context.js.map +0 -1
  212. package/dist/mcp/tools/insights.d.ts +0 -3
  213. package/dist/mcp/tools/insights.js +0 -24
  214. package/dist/mcp/tools/insights.js.map +0 -1
  215. package/dist/mcp/tools/integrations.d.ts +0 -3
  216. package/dist/mcp/tools/integrations.js +0 -27
  217. package/dist/mcp/tools/integrations.js.map +0 -1
  218. package/dist/mcp/tools/lists.d.ts +0 -3
  219. package/dist/mcp/tools/lists.js +0 -101
  220. package/dist/mcp/tools/lists.js.map +0 -1
  221. package/dist/mcp/tools/notes.d.ts +0 -3
  222. package/dist/mcp/tools/notes.js +0 -52
  223. package/dist/mcp/tools/notes.js.map +0 -1
  224. package/dist/mcp/tools/notifications.d.ts +0 -3
  225. package/dist/mcp/tools/notifications.js +0 -53
  226. package/dist/mcp/tools/notifications.js.map +0 -1
  227. package/dist/mcp/tools/records.d.ts +0 -3
  228. package/dist/mcp/tools/records.js +0 -74
  229. package/dist/mcp/tools/records.js.map +0 -1
  230. package/dist/mcp/tools/register.d.ts +0 -3
  231. package/dist/mcp/tools/register.js +0 -41
  232. package/dist/mcp/tools/register.js.map +0 -1
  233. package/dist/mcp/tools/relationships.d.ts +0 -3
  234. package/dist/mcp/tools/relationships.js +0 -47
  235. package/dist/mcp/tools/relationships.js.map +0 -1
  236. package/dist/mcp/tools/scan.d.ts +0 -3
  237. package/dist/mcp/tools/scan.js +0 -37
  238. package/dist/mcp/tools/scan.js.map +0 -1
  239. package/dist/mcp/tools/schema.d.ts +0 -3
  240. package/dist/mcp/tools/schema.js +0 -108
  241. package/dist/mcp/tools/schema.js.map +0 -1
  242. package/dist/mcp/tools/search.d.ts +0 -3
  243. package/dist/mcp/tools/search.js +0 -8
  244. package/dist/mcp/tools/search.js.map +0 -1
  245. package/dist/mcp/tools/tasks.d.ts +0 -3
  246. package/dist/mcp/tools/tasks.js +0 -88
  247. package/dist/mcp/tools/tasks.js.map +0 -1
  248. package/dist/mcp/workspace-data-dir.d.ts +0 -2
  249. package/dist/mcp/workspace-data-dir.js +0 -28
  250. package/dist/mcp/workspace-data-dir.js.map +0 -1
  251. package/dist/orchestration/budget.d.ts +0 -32
  252. package/dist/orchestration/budget.js +0 -72
  253. package/dist/orchestration/budget.js.map +0 -1
  254. package/dist/orchestration/executor.d.ts +0 -59
  255. package/dist/orchestration/executor.js +0 -197
  256. package/dist/orchestration/executor.js.map +0 -1
  257. package/dist/orchestration/router.d.ts +0 -30
  258. package/dist/orchestration/router.js +0 -98
  259. package/dist/orchestration/router.js.map +0 -1
  260. package/dist/orchestration/templates.d.ts +0 -11
  261. package/dist/orchestration/templates.js +0 -99
  262. package/dist/orchestration/templates.js.map +0 -1
  263. package/dist/orchestration/types.d.ts +0 -58
  264. package/dist/orchestration/types.js +0 -7
  265. package/dist/orchestration/types.js.map +0 -1
  266. package/dist/plugin/auto-capture.d.ts +0 -11
  267. package/dist/plugin/auto-capture.js +0 -135
  268. package/dist/plugin/auto-capture.js.map +0 -1
  269. package/dist/plugin/auto-recall-worker.d.ts +0 -2
  270. package/dist/plugin/auto-recall-worker.js +0 -74
  271. package/dist/plugin/auto-recall-worker.js.map +0 -1
  272. package/dist/plugin/auto-recall.d.ts +0 -11
  273. package/dist/plugin/auto-recall.js +0 -186
  274. package/dist/plugin/auto-recall.js.map +0 -1
  275. package/dist/plugin/auto-register.d.ts +0 -10
  276. package/dist/plugin/auto-register.js +0 -81
  277. package/dist/plugin/auto-register.js.map +0 -1
  278. package/dist/plugin/auto-scan.d.ts +0 -10
  279. package/dist/plugin/auto-scan.js +0 -54
  280. package/dist/plugin/auto-scan.js.map +0 -1
  281. package/dist/plugin/auto-session-start.d.ts +0 -14
  282. package/dist/plugin/auto-session-start.js +0 -156
  283. package/dist/plugin/auto-session-start.js.map +0 -1
  284. package/dist/plugin/capture-filter.d.ts +0 -21
  285. package/dist/plugin/capture-filter.js +0 -32
  286. package/dist/plugin/capture-filter.js.map +0 -1
  287. package/dist/plugin/config.d.ts +0 -61
  288. package/dist/plugin/config.js +0 -182
  289. package/dist/plugin/config.js.map +0 -1
  290. package/dist/plugin/context-files.d.ts +0 -23
  291. package/dist/plugin/context-files.js +0 -103
  292. package/dist/plugin/context-files.js.map +0 -1
  293. package/dist/plugin/context-format.d.ts +0 -18
  294. package/dist/plugin/context-format.js +0 -34
  295. package/dist/plugin/context-format.js.map +0 -1
  296. package/dist/plugin/file-manifest.d.ts +0 -27
  297. package/dist/plugin/file-manifest.js +0 -68
  298. package/dist/plugin/file-manifest.js.map +0 -1
  299. package/dist/plugin/file-scanner.d.ts +0 -19
  300. package/dist/plugin/file-scanner.js +0 -90
  301. package/dist/plugin/file-scanner.js.map +0 -1
  302. package/dist/plugin/nex-client.d.ts +0 -50
  303. package/dist/plugin/nex-client.js +0 -129
  304. package/dist/plugin/nex-client.js.map +0 -1
  305. package/dist/plugin/rate-limiter.d.ts +0 -26
  306. package/dist/plugin/rate-limiter.js +0 -65
  307. package/dist/plugin/rate-limiter.js.map +0 -1
  308. package/dist/plugin/recall-cache.d.ts +0 -41
  309. package/dist/plugin/recall-cache.js +0 -195
  310. package/dist/plugin/recall-cache.js.map +0 -1
  311. package/dist/plugin/recall-filter.d.ts +0 -13
  312. package/dist/plugin/recall-filter.js +0 -39
  313. package/dist/plugin/recall-filter.js.map +0 -1
  314. package/dist/plugin/session-store.d.ts +0 -23
  315. package/dist/plugin/session-store.js +0 -73
  316. package/dist/plugin/session-store.js.map +0 -1
  317. package/dist/plugin/workspace-data-dir.d.ts +0 -2
  318. package/dist/plugin/workspace-data-dir.js +0 -31
  319. package/dist/plugin/workspace-data-dir.js.map +0 -1
  320. package/dist/tui/agent-colors.d.ts +0 -19
  321. package/dist/tui/agent-colors.js +0 -34
  322. package/dist/tui/agent-colors.js.map +0 -1
  323. package/dist/tui/app.d.ts +0 -14
  324. package/dist/tui/app.js +0 -181
  325. package/dist/tui/app.js.map +0 -1
  326. package/dist/tui/channel-colors.d.ts +0 -16
  327. package/dist/tui/channel-colors.js +0 -43
  328. package/dist/tui/channel-colors.js.map +0 -1
  329. package/dist/tui/components/agent-card.d.ts +0 -11
  330. package/dist/tui/components/agent-card.js +0 -40
  331. package/dist/tui/components/agent-card.js.map +0 -1
  332. package/dist/tui/components/banner.d.ts +0 -44
  333. package/dist/tui/components/banner.js +0 -130
  334. package/dist/tui/components/banner.js.map +0 -1
  335. package/dist/tui/components/channel-colors.d.ts +0 -21
  336. package/dist/tui/components/channel-colors.js +0 -53
  337. package/dist/tui/components/channel-colors.js.map +0 -1
  338. package/dist/tui/components/channel-message.d.ts +0 -53
  339. package/dist/tui/components/channel-message.js +0 -66
  340. package/dist/tui/components/channel-message.js.map +0 -1
  341. package/dist/tui/components/chat-input.d.ts +0 -11
  342. package/dist/tui/components/chat-input.js +0 -19
  343. package/dist/tui/components/chat-input.js.map +0 -1
  344. package/dist/tui/components/data-table.d.ts +0 -11
  345. package/dist/tui/components/data-table.js +0 -47
  346. package/dist/tui/components/data-table.js.map +0 -1
  347. package/dist/tui/components/error-box.d.ts +0 -11
  348. package/dist/tui/components/error-box.js +0 -59
  349. package/dist/tui/components/error-box.js.map +0 -1
  350. package/dist/tui/components/help-screen.d.ts +0 -3
  351. package/dist/tui/components/help-screen.js +0 -63
  352. package/dist/tui/components/help-screen.js.map +0 -1
  353. package/dist/tui/components/index.d.ts +0 -17
  354. package/dist/tui/components/index.js +0 -10
  355. package/dist/tui/components/index.js.map +0 -1
  356. package/dist/tui/components/inline-confirm.d.ts +0 -14
  357. package/dist/tui/components/inline-confirm.js +0 -13
  358. package/dist/tui/components/inline-confirm.js.map +0 -1
  359. package/dist/tui/components/inline-select.d.ts +0 -21
  360. package/dist/tui/components/inline-select.js +0 -20
  361. package/dist/tui/components/inline-select.js.map +0 -1
  362. package/dist/tui/components/markdown.d.ts +0 -6
  363. package/dist/tui/components/markdown.js +0 -179
  364. package/dist/tui/components/markdown.js.map +0 -1
  365. package/dist/tui/components/mention-autocomplete.d.ts +0 -79
  366. package/dist/tui/components/mention-autocomplete.js +0 -250
  367. package/dist/tui/components/mention-autocomplete.js.map +0 -1
  368. package/dist/tui/components/message-list.d.ts +0 -18
  369. package/dist/tui/components/message-list.js +0 -29
  370. package/dist/tui/components/message-list.js.map +0 -1
  371. package/dist/tui/components/picker.d.ts +0 -16
  372. package/dist/tui/components/picker.js +0 -32
  373. package/dist/tui/components/picker.js.map +0 -1
  374. package/dist/tui/components/progress-steps.d.ts +0 -13
  375. package/dist/tui/components/progress-steps.js +0 -21
  376. package/dist/tui/components/progress-steps.js.map +0 -1
  377. package/dist/tui/components/slack/compose.d.ts +0 -27
  378. package/dist/tui/components/slack/compose.js +0 -147
  379. package/dist/tui/components/slack/compose.js.map +0 -1
  380. package/dist/tui/components/slack/layout.d.ts +0 -36
  381. package/dist/tui/components/slack/layout.js +0 -96
  382. package/dist/tui/components/slack/layout.js.map +0 -1
  383. package/dist/tui/components/slack/messages.d.ts +0 -72
  384. package/dist/tui/components/slack/messages.js +0 -177
  385. package/dist/tui/components/slack/messages.js.map +0 -1
  386. package/dist/tui/components/slack/quick-switcher.d.ts +0 -33
  387. package/dist/tui/components/slack/quick-switcher.js +0 -98
  388. package/dist/tui/components/slack/quick-switcher.js.map +0 -1
  389. package/dist/tui/components/slack/sidebar-types.d.ts +0 -65
  390. package/dist/tui/components/slack/sidebar-types.js +0 -7
  391. package/dist/tui/components/slack/sidebar-types.js.map +0 -1
  392. package/dist/tui/components/slack/sidebar.d.ts +0 -46
  393. package/dist/tui/components/slack/sidebar.js +0 -52
  394. package/dist/tui/components/slack/sidebar.js.map +0 -1
  395. package/dist/tui/components/slack/thread-panel.d.ts +0 -45
  396. package/dist/tui/components/slack/thread-panel.js +0 -47
  397. package/dist/tui/components/slack/thread-panel.js.map +0 -1
  398. package/dist/tui/components/slash-autocomplete.d.ts +0 -83
  399. package/dist/tui/components/slash-autocomplete.js +0 -233
  400. package/dist/tui/components/slash-autocomplete.js.map +0 -1
  401. package/dist/tui/components/spinner.d.ts +0 -17
  402. package/dist/tui/components/spinner.js +0 -30
  403. package/dist/tui/components/spinner.js.map +0 -1
  404. package/dist/tui/components/status-bar.d.ts +0 -23
  405. package/dist/tui/components/status-bar.js +0 -55
  406. package/dist/tui/components/status-bar.js.map +0 -1
  407. package/dist/tui/components/success-box.d.ts +0 -7
  408. package/dist/tui/components/success-box.js +0 -10
  409. package/dist/tui/components/success-box.js.map +0 -1
  410. package/dist/tui/components/tool-indicator.d.ts +0 -12
  411. package/dist/tui/components/tool-indicator.js +0 -18
  412. package/dist/tui/components/tool-indicator.js.map +0 -1
  413. package/dist/tui/components/viewport.d.ts +0 -9
  414. package/dist/tui/components/viewport.js +0 -24
  415. package/dist/tui/components/viewport.js.map +0 -1
  416. package/dist/tui/generative/bindings.d.ts +0 -27
  417. package/dist/tui/generative/bindings.js +0 -152
  418. package/dist/tui/generative/bindings.js.map +0 -1
  419. package/dist/tui/generative/registry.d.ts +0 -19
  420. package/dist/tui/generative/registry.js +0 -31
  421. package/dist/tui/generative/registry.js.map +0 -1
  422. package/dist/tui/generative/renderer.d.ts +0 -24
  423. package/dist/tui/generative/renderer.js +0 -160
  424. package/dist/tui/generative/renderer.js.map +0 -1
  425. package/dist/tui/generative/types.d.ts +0 -68
  426. package/dist/tui/generative/types.js +0 -7
  427. package/dist/tui/generative/types.js.map +0 -1
  428. package/dist/tui/hooks/use-cancellable.d.ts +0 -28
  429. package/dist/tui/hooks/use-cancellable.js +0 -51
  430. package/dist/tui/hooks/use-cancellable.js.map +0 -1
  431. package/dist/tui/hooks/use-streaming.d.ts +0 -44
  432. package/dist/tui/hooks/use-streaming.js +0 -105
  433. package/dist/tui/hooks/use-streaming.js.map +0 -1
  434. package/dist/tui/index.d.ts +0 -4
  435. package/dist/tui/index.js +0 -7
  436. package/dist/tui/index.js.map +0 -1
  437. package/dist/tui/keybindings.d.ts +0 -25
  438. package/dist/tui/keybindings.js +0 -277
  439. package/dist/tui/keybindings.js.map +0 -1
  440. package/dist/tui/register-views.d.ts +0 -8
  441. package/dist/tui/register-views.js +0 -122
  442. package/dist/tui/register-views.js.map +0 -1
  443. package/dist/tui/router.d.ts +0 -29
  444. package/dist/tui/router.js +0 -87
  445. package/dist/tui/router.js.map +0 -1
  446. package/dist/tui/services/agent-service.d.ts +0 -58
  447. package/dist/tui/services/agent-service.js +0 -197
  448. package/dist/tui/services/agent-service.js.map +0 -1
  449. package/dist/tui/services/calendar-service.d.ts +0 -31
  450. package/dist/tui/services/calendar-service.js +0 -133
  451. package/dist/tui/services/calendar-service.js.map +0 -1
  452. package/dist/tui/services/chat-service.d.ts +0 -28
  453. package/dist/tui/services/chat-service.js +0 -91
  454. package/dist/tui/services/chat-service.js.map +0 -1
  455. package/dist/tui/services/orchestration-service.d.ts +0 -42
  456. package/dist/tui/services/orchestration-service.js +0 -153
  457. package/dist/tui/services/orchestration-service.js.map +0 -1
  458. package/dist/tui/slash-commands.d.ts +0 -106
  459. package/dist/tui/slash-commands.js +0 -1421
  460. package/dist/tui/slash-commands.js.map +0 -1
  461. package/dist/tui/store.d.ts +0 -96
  462. package/dist/tui/store.js +0 -120
  463. package/dist/tui/store.js.map +0 -1
  464. package/dist/tui/theme.d.ts +0 -40
  465. package/dist/tui/theme.js +0 -39
  466. package/dist/tui/theme.js.map +0 -1
  467. package/dist/tui/tui-context.d.ts +0 -22
  468. package/dist/tui/tui-context.js +0 -17
  469. package/dist/tui/tui-context.js.map +0 -1
  470. package/dist/tui/views/agent-list.d.ts +0 -8
  471. package/dist/tui/views/agent-list.js +0 -11
  472. package/dist/tui/views/agent-list.js.map +0 -1
  473. package/dist/tui/views/ask-chat.d.ts +0 -9
  474. package/dist/tui/views/ask-chat.js +0 -40
  475. package/dist/tui/views/ask-chat.js.map +0 -1
  476. package/dist/tui/views/calendar.d.ts +0 -15
  477. package/dist/tui/views/calendar.js +0 -29
  478. package/dist/tui/views/calendar.js.map +0 -1
  479. package/dist/tui/views/chat.d.ts +0 -18
  480. package/dist/tui/views/chat.js +0 -28
  481. package/dist/tui/views/chat.js.map +0 -1
  482. package/dist/tui/views/generative.d.ts +0 -14
  483. package/dist/tui/views/generative.js +0 -37
  484. package/dist/tui/views/generative.js.map +0 -1
  485. package/dist/tui/views/help.d.ts +0 -6
  486. package/dist/tui/views/help.js +0 -9
  487. package/dist/tui/views/help.js.map +0 -1
  488. package/dist/tui/views/home-screen.d.ts +0 -67
  489. package/dist/tui/views/home-screen.js +0 -192
  490. package/dist/tui/views/home-screen.js.map +0 -1
  491. package/dist/tui/views/home.d.ts +0 -33
  492. package/dist/tui/views/home.js +0 -60
  493. package/dist/tui/views/home.js.map +0 -1
  494. package/dist/tui/views/index.d.ts +0 -20
  495. package/dist/tui/views/index.js +0 -11
  496. package/dist/tui/views/index.js.map +0 -1
  497. package/dist/tui/views/insights.d.ts +0 -19
  498. package/dist/tui/views/insights.js +0 -46
  499. package/dist/tui/views/insights.js.map +0 -1
  500. package/dist/tui/views/orchestration.d.ts +0 -18
  501. package/dist/tui/views/orchestration.js +0 -73
  502. package/dist/tui/views/orchestration.js.map +0 -1
  503. package/dist/tui/views/record-detail.d.ts +0 -10
  504. package/dist/tui/views/record-detail.js +0 -22
  505. package/dist/tui/views/record-detail.js.map +0 -1
  506. package/dist/tui/views/record-list.d.ts +0 -15
  507. package/dist/tui/views/record-list.js +0 -22
  508. package/dist/tui/views/record-list.js.map +0 -1
  509. package/dist/tui/views/slack-channel-header.d.ts +0 -15
  510. package/dist/tui/views/slack-channel-header.js +0 -16
  511. package/dist/tui/views/slack-channel-header.js.map +0 -1
  512. package/dist/tui/views/slack-home.d.ts +0 -21
  513. package/dist/tui/views/slack-home.js +0 -572
  514. package/dist/tui/views/slack-home.js.map +0 -1
  515. package/dist/tui/views/stream.d.ts +0 -16
  516. package/dist/tui/views/stream.js +0 -210
  517. package/dist/tui/views/stream.js.map +0 -1
  518. package/dist/tui/views/task-board.d.ts +0 -21
  519. package/dist/tui/views/task-board.js +0 -33
  520. package/dist/tui/views/task-board.js.map +0 -1
  521. package/dist/tui/views/timeline.d.ts +0 -17
  522. package/dist/tui/views/timeline.js +0 -24
  523. package/dist/tui/views/timeline.js.map +0 -1
@@ -1,68 +0,0 @@
1
- /**
2
- * A2UI-compatible component schema for the generative TUI.
3
- * Agents emit JSON matching these types; the renderer converts them
4
- * to Ink component trees at runtime.
5
- */
6
- export type A2UIComponent = A2UIRow | A2UIColumn | A2UICard | A2UIText | A2UITextField | A2UIList | A2UITable | A2UIProgress | A2UISpacer;
7
- export interface A2UIRow {
8
- type: 'row';
9
- children: A2UIComponent[];
10
- gap?: number;
11
- padding?: number;
12
- }
13
- export interface A2UIColumn {
14
- type: 'column';
15
- children: A2UIComponent[];
16
- gap?: number;
17
- padding?: number;
18
- }
19
- export interface A2UICard {
20
- type: 'card';
21
- title?: string;
22
- children: A2UIComponent[];
23
- borderColor?: string;
24
- }
25
- export interface A2UIText {
26
- type: 'text';
27
- content: string;
28
- bold?: boolean;
29
- color?: string;
30
- dimmed?: boolean;
31
- }
32
- export interface A2UITextField {
33
- type: 'textfield';
34
- placeholder?: string;
35
- value?: string;
36
- onSubmit?: string;
37
- }
38
- export interface A2UIList {
39
- type: 'list';
40
- items: string[] | string;
41
- selected?: number;
42
- onSelect?: string;
43
- }
44
- export interface A2UITable {
45
- type: 'table';
46
- headers: string[];
47
- rows: string[][] | string;
48
- onRowSelect?: string;
49
- }
50
- export interface A2UIProgress {
51
- type: 'progress';
52
- value: number;
53
- label?: string;
54
- }
55
- export interface A2UISpacer {
56
- type: 'spacer';
57
- height?: number;
58
- }
59
- /** Data model that components bind to via JSON Pointers. */
60
- export interface A2UIDataModel {
61
- [path: string]: unknown;
62
- }
63
- /** Streaming update message for modifying the data model. */
64
- export interface A2UIUpdate {
65
- type: 'set' | 'merge' | 'delete';
66
- path: string;
67
- value?: unknown;
68
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * A2UI-compatible component schema for the generative TUI.
3
- * Agents emit JSON matching these types; the renderer converts them
4
- * to Ink component trees at runtime.
5
- */
6
- export {};
7
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tui/generative/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Hook for cancellable async operations with AbortController pattern.
3
- *
4
- * Provides:
5
- * - `signal` — pass to fetch / async operations
6
- * - `cancel()` — aborts the current controller
7
- * - `reset()` — creates a fresh AbortController
8
- * - `isCancelled` — true after cancel(), cleared on reset()
9
- */
10
- export interface UseCancellableReturn {
11
- signal: AbortSignal;
12
- cancel: () => void;
13
- reset: () => void;
14
- isCancelled: boolean;
15
- }
16
- export declare function useCancellable(): UseCancellableReturn;
17
- /**
18
- * Creates a Ctrl+C handler with the following behavior:
19
- * - During loading: first Ctrl+C cancels the operation
20
- * - When idle: first Ctrl+C records timestamp and returns "pending_exit",
21
- * second Ctrl+C within `windowMs` exits the process
22
- *
23
- * Returns "cancelled" | "exit" | "pending_exit".
24
- */
25
- export interface CtrlCHandler {
26
- handle: () => "cancelled" | "exit" | "pending_exit";
27
- }
28
- export declare function createCtrlCHandler(cancelFn: () => boolean, exitFn?: () => void, windowMs?: number): CtrlCHandler;
@@ -1,51 +0,0 @@
1
- /**
2
- * Hook for cancellable async operations with AbortController pattern.
3
- *
4
- * Provides:
5
- * - `signal` — pass to fetch / async operations
6
- * - `cancel()` — aborts the current controller
7
- * - `reset()` — creates a fresh AbortController
8
- * - `isCancelled` — true after cancel(), cleared on reset()
9
- */
10
- import { useState, useRef, useCallback } from "react";
11
- export function useCancellable() {
12
- const controllerRef = useRef(new AbortController());
13
- const [isCancelled, setIsCancelled] = useState(false);
14
- const cancel = useCallback(() => {
15
- controllerRef.current.abort();
16
- setIsCancelled(true);
17
- }, []);
18
- const reset = useCallback(() => {
19
- controllerRef.current = new AbortController();
20
- setIsCancelled(false);
21
- }, []);
22
- return {
23
- signal: controllerRef.current.signal,
24
- cancel,
25
- reset,
26
- isCancelled,
27
- };
28
- }
29
- export function createCtrlCHandler(cancelFn, exitFn = () => process.exit(0), windowMs = 1000) {
30
- let lastPressTime = 0;
31
- return {
32
- handle() {
33
- const now = Date.now();
34
- // Try to cancel a running operation first
35
- const wasCancelled = cancelFn();
36
- if (wasCancelled) {
37
- lastPressTime = now;
38
- return "cancelled";
39
- }
40
- // Nothing to cancel — double-press check
41
- if (now - lastPressTime <= windowMs) {
42
- exitFn();
43
- return "exit";
44
- }
45
- // First idle press — record time, show hint
46
- lastPressTime = now;
47
- return "pending_exit";
48
- },
49
- };
50
- }
51
- //# sourceMappingURL=use-cancellable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-cancellable.js","sourceRoot":"","sources":["../../../src/tui/hooks/use-cancellable.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAWtD,MAAM,UAAU,cAAc;IAC5B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9B,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,aAAa,CAAC,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM;QACpC,MAAM;QACN,KAAK;QACL,WAAW;KACZ,CAAC;AACJ,CAAC;AAgBD,MAAM,UAAU,kBAAkB,CAChC,QAAuB,EACvB,SAAqB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAC1C,WAAmB,IAAI;IAEvB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,OAAO;QACL,MAAM;YACJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,0CAA0C;YAC1C,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC;YAChC,IAAI,YAAY,EAAE,CAAC;gBACjB,aAAa,GAAG,GAAG,CAAC;gBACpB,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,yCAAyC;YACzC,IAAI,GAAG,GAAG,aAAa,IAAI,QAAQ,EAAE,CAAC;gBACpC,MAAM,EAAE,CAAC;gBACT,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,4CAA4C;YAC5C,aAAa,GAAG,GAAG,CAAC;YACpB,OAAO,cAAc,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Hook for simulated streaming text reveal.
3
- *
4
- * Reveals text word-by-word using setInterval, giving an
5
- * animated "typing" appearance. When real SSE streaming is available,
6
- * this can be replaced with actual token-level streaming.
7
- *
8
- * Features:
9
- * - Word-level chunking at configurable interval (default 30ms)
10
- * - `isStreaming` flag for trailing cursor display
11
- * - `stopStreaming()` immediately shows full text
12
- */
13
- export interface UseStreamingReturn {
14
- /** The currently visible portion of the text */
15
- text: string;
16
- /** Whether text is still being revealed */
17
- isStreaming: boolean;
18
- /**
19
- * Start streaming a text string word-by-word.
20
- * @param fullText The complete text to reveal
21
- * @param chunkMs Interval between word reveals in ms (default 30)
22
- */
23
- startStreaming: (fullText: string, chunkMs?: number) => void;
24
- /** Immediately show all remaining text and stop streaming */
25
- stopStreaming: () => void;
26
- }
27
- /**
28
- * Split text into word-level chunks, preserving whitespace.
29
- * Each chunk is a word plus its trailing whitespace.
30
- * E.g. "hello world" → ["hello ", "world"]
31
- */
32
- export declare function splitIntoWordChunks(text: string): string[];
33
- export declare function useStreaming(): UseStreamingReturn;
34
- export interface StreamingOptions {
35
- /** Interval between word reveals in ms. Default: 30 */
36
- chunkMs?: number;
37
- }
38
- /**
39
- * Async generator that yields progressively revealed text, word by word.
40
- */
41
- export declare function streamText(fullText: string, options?: StreamingOptions, signal?: AbortSignal): AsyncGenerator<{
42
- text: string;
43
- isStreaming: boolean;
44
- }>;
@@ -1,105 +0,0 @@
1
- /**
2
- * Hook for simulated streaming text reveal.
3
- *
4
- * Reveals text word-by-word using setInterval, giving an
5
- * animated "typing" appearance. When real SSE streaming is available,
6
- * this can be replaced with actual token-level streaming.
7
- *
8
- * Features:
9
- * - Word-level chunking at configurable interval (default 30ms)
10
- * - `isStreaming` flag for trailing cursor display
11
- * - `stopStreaming()` immediately shows full text
12
- */
13
- import { useState, useEffect, useRef, useCallback } from "react";
14
- // ── Helpers ──────────────────────────────────────────────────────────
15
- /**
16
- * Split text into word-level chunks, preserving whitespace.
17
- * Each chunk is a word plus its trailing whitespace.
18
- * E.g. "hello world" → ["hello ", "world"]
19
- */
20
- export function splitIntoWordChunks(text) {
21
- const chunks = [];
22
- const regex = /\S+\s*/g;
23
- let match;
24
- while ((match = regex.exec(text)) !== null) {
25
- chunks.push(match[0]);
26
- }
27
- // Handle leading whitespace
28
- if (chunks.length === 0 && text.length > 0) {
29
- chunks.push(text);
30
- }
31
- return chunks;
32
- }
33
- // ── Hook ─────────────────────────────────────────────────────────────
34
- export function useStreaming() {
35
- const [text, setText] = useState("");
36
- const [isStreaming, setIsStreaming] = useState(false);
37
- const fullTextRef = useRef("");
38
- const chunksRef = useRef([]);
39
- const chunkIndexRef = useRef(0);
40
- const intervalRef = useRef(null);
41
- const cleanup = useCallback(() => {
42
- if (intervalRef.current !== null) {
43
- clearInterval(intervalRef.current);
44
- intervalRef.current = null;
45
- }
46
- }, []);
47
- const stopStreaming = useCallback(() => {
48
- cleanup();
49
- setText(fullTextRef.current);
50
- setIsStreaming(false);
51
- }, [cleanup]);
52
- const startStreaming = useCallback((fullText, chunkMs = 30) => {
53
- cleanup();
54
- fullTextRef.current = fullText;
55
- const chunks = splitIntoWordChunks(fullText);
56
- chunksRef.current = chunks;
57
- chunkIndexRef.current = 0;
58
- if (fullText.length === 0 || chunks.length === 0) {
59
- setText(fullText);
60
- setIsStreaming(false);
61
- return;
62
- }
63
- setText("");
64
- setIsStreaming(true);
65
- intervalRef.current = setInterval(() => {
66
- chunkIndexRef.current++;
67
- const revealed = chunksRef.current
68
- .slice(0, chunkIndexRef.current)
69
- .join("");
70
- const done = chunkIndexRef.current >= chunksRef.current.length;
71
- setText(revealed);
72
- if (done) {
73
- setIsStreaming(false);
74
- cleanup();
75
- }
76
- }, chunkMs);
77
- }, [cleanup]);
78
- // Cleanup on unmount
79
- useEffect(() => {
80
- return cleanup;
81
- }, [cleanup]);
82
- return { text, isStreaming, startStreaming, stopStreaming };
83
- }
84
- /**
85
- * Async generator that yields progressively revealed text, word by word.
86
- */
87
- export async function* streamText(fullText, options = {}, signal) {
88
- const { chunkMs = 30 } = options;
89
- const chunks = splitIntoWordChunks(fullText);
90
- if (chunks.length === 0)
91
- return;
92
- for (let i = 0; i < chunks.length; i++) {
93
- if (signal?.aborted) {
94
- yield { text: fullText, isStreaming: false };
95
- return;
96
- }
97
- const revealed = chunks.slice(0, i + 1).join("");
98
- const done = i === chunks.length - 1;
99
- yield { text: revealed, isStreaming: !done };
100
- if (!done) {
101
- await new Promise((resolve) => setTimeout(resolve, chunkMs));
102
- }
103
- }
104
- }
105
- //# sourceMappingURL=use-streaming.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-streaming.js","sourceRoot":"","sources":["../../../src/tui/hooks/use-streaming.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- /**
2
- * Entry point for TUI mode.
3
- */
4
- export declare function startTui(): void;
package/dist/tui/index.js DELETED
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render } from "ink";
3
- import { App } from "./app.js";
4
- export function startTui() {
5
- render(_jsx(App, {}));
6
- }
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,UAAU,QAAQ;IACtB,MAAM,CAAC,KAAC,GAAG,KAAG,CAAC,CAAC;AAClB,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Key dispatcher for the TUI.
3
- *
4
- * In conversation mode (home view), the input is always active and handled
5
- * by React's TextInput — so this module is only used in sub-views.
6
- *
7
- * Sub-views still support vim-style navigation and the original mode model.
8
- */
9
- import type { TuiState, Dispatch } from "./store.js";
10
- export interface ParsedKey {
11
- name: string;
12
- ctrl: boolean;
13
- shift: boolean;
14
- }
15
- /**
16
- * Parse a raw input string into a structured key descriptor.
17
- * Handles common ANSI escape sequences and control characters.
18
- */
19
- export declare function parseKey(input: string): ParsedKey;
20
- /**
21
- * Route a key event to the correct mode handler.
22
- * Note: in conversation mode (home view) this is NOT called —
23
- * the app.tsx skips calling handleKey when at home.
24
- */
25
- export declare function handleKey(rawInput: string, state: TuiState, dispatch: Dispatch): void;
@@ -1,277 +0,0 @@
1
- /**
2
- * Key dispatcher for the TUI.
3
- *
4
- * In conversation mode (home view), the input is always active and handled
5
- * by React's TextInput — so this module is only used in sub-views.
6
- *
7
- * Sub-views still support vim-style navigation and the original mode model.
8
- */
9
- /**
10
- * Parse a raw input string into a structured key descriptor.
11
- * Handles common ANSI escape sequences and control characters.
12
- */
13
- export function parseKey(input) {
14
- if (input.length === 1) {
15
- const code = input.charCodeAt(0);
16
- // Tab (0x09) -- must check before general Ctrl range
17
- if (code === 9) {
18
- return { name: "tab", ctrl: false, shift: false };
19
- }
20
- // Enter / Return (0x0D) -- must check before general Ctrl range
21
- if (code === 13) {
22
- return { name: "return", ctrl: false, shift: false };
23
- }
24
- // Escape (0x1B)
25
- if (code === 27) {
26
- return { name: "escape", ctrl: false, shift: false };
27
- }
28
- // Backspace (0x7F)
29
- if (code === 127) {
30
- return { name: "backspace", ctrl: false, shift: false };
31
- }
32
- // Ctrl+a through Ctrl+z (remaining control chars 1-26)
33
- if (code >= 1 && code <= 26) {
34
- const letter = String.fromCharCode(code + 96); // a=1, b=2, ...
35
- return { name: letter, ctrl: true, shift: false };
36
- }
37
- // Printable with shift detection for A-Z
38
- if (code >= 65 && code <= 90) {
39
- return { name: input, ctrl: false, shift: true };
40
- }
41
- return { name: input, ctrl: false, shift: false };
42
- }
43
- // ANSI escape sequences
44
- if (input.startsWith("\x1b[")) {
45
- const seq = input.slice(2);
46
- switch (seq) {
47
- case "A":
48
- return { name: "up", ctrl: false, shift: false };
49
- case "B":
50
- return { name: "down", ctrl: false, shift: false };
51
- case "C":
52
- return { name: "right", ctrl: false, shift: false };
53
- case "D":
54
- return { name: "left", ctrl: false, shift: false };
55
- case "H":
56
- return { name: "home", ctrl: false, shift: false };
57
- case "F":
58
- return { name: "end", ctrl: false, shift: false };
59
- case "3~":
60
- return { name: "delete", ctrl: false, shift: false };
61
- default:
62
- return { name: `[${seq}`, ctrl: false, shift: false };
63
- }
64
- }
65
- // Escape alone (multi-byte check when Ink sends it)
66
- if (input === "\x1b") {
67
- return { name: "escape", ctrl: false, shift: false };
68
- }
69
- return { name: input, ctrl: false, shift: false };
70
- }
71
- // ── Double-tap timing ──────────────────────────────────────────────
72
- const DOUBLE_TAP_MS = 500;
73
- // ── Available commands for autocomplete ────────────────────────────
74
- const COMMANDS = [
75
- "record list",
76
- "record get",
77
- "record create",
78
- "record update",
79
- "record delete",
80
- "object list",
81
- "object get",
82
- "search",
83
- "insight",
84
- "context",
85
- "task list",
86
- "task create",
87
- "note create",
88
- "help",
89
- "quit",
90
- ];
91
- // ── Normal mode handler (sub-views only) ─────────────────────────
92
- function handleNormalMode(key, rawInput, state, dispatch) {
93
- // Ctrl combinations
94
- if (key.ctrl) {
95
- switch (key.name) {
96
- case "d": // half-page down
97
- dispatch({ type: "SCROLL", offset: state.scrollOffset + 15 });
98
- return;
99
- case "u": // half-page up
100
- dispatch({
101
- type: "SCROLL",
102
- offset: Math.max(0, state.scrollOffset - 15),
103
- });
104
- return;
105
- case "c": // exit
106
- process.exit(0);
107
- return;
108
- }
109
- return;
110
- }
111
- switch (key.name) {
112
- case "i":
113
- dispatch({ type: "SET_MODE", mode: "insert" });
114
- return;
115
- case "/":
116
- dispatch({ type: "SET_MODE", mode: "insert" });
117
- dispatch({ type: "SET_INPUT", value: "/" });
118
- return;
119
- case "?":
120
- dispatch({ type: "PUSH_VIEW", view: { name: "help" } });
121
- return;
122
- case "a":
123
- dispatch({ type: "PUSH_VIEW", view: { name: "agent-list" } });
124
- return;
125
- case "c":
126
- dispatch({ type: "PUSH_VIEW", view: { name: "chat" } });
127
- return;
128
- case "C":
129
- dispatch({ type: "PUSH_VIEW", view: { name: "calendar" } });
130
- return;
131
- case "o":
132
- dispatch({ type: "PUSH_VIEW", view: { name: "orchestration" } });
133
- return;
134
- case "j":
135
- case "down":
136
- if (state.pickerItems && state.pickerItems.length > 0) {
137
- const next = Math.min(state.pickerCursor + 1, state.pickerItems.length - 1);
138
- dispatch({ type: "SET_PICKER_CURSOR", cursor: next });
139
- }
140
- else {
141
- dispatch({ type: "SCROLL", offset: state.scrollOffset + 1 });
142
- }
143
- return;
144
- case "k":
145
- case "up":
146
- if (state.pickerItems && state.pickerItems.length > 0) {
147
- const prev = Math.max(state.pickerCursor - 1, 0);
148
- dispatch({ type: "SET_PICKER_CURSOR", cursor: prev });
149
- }
150
- else {
151
- dispatch({
152
- type: "SCROLL",
153
- offset: Math.max(0, state.scrollOffset - 1),
154
- });
155
- }
156
- return;
157
- case "g": {
158
- const now = Date.now();
159
- if (state.lastKey === "g" &&
160
- now - state.lastKeyTime < DOUBLE_TAP_MS) {
161
- dispatch({ type: "SCROLL", offset: 0 });
162
- dispatch({ type: "SET_LAST_KEY", key: "", time: 0 });
163
- return;
164
- }
165
- dispatch({ type: "SET_LAST_KEY", key: "g", time: now });
166
- return;
167
- }
168
- case "G":
169
- dispatch({ type: "SCROLL", offset: Infinity });
170
- return;
171
- case "q":
172
- process.exit(0);
173
- return;
174
- case "escape":
175
- dispatch({ type: "POP_VIEW" });
176
- return;
177
- case "return":
178
- // Execute selected picker item
179
- if (state.pickerItems && state.pickerItems.length > 0) {
180
- const item = state.pickerItems[state.pickerCursor];
181
- if (item) {
182
- dispatch({ type: "SET_MODE", mode: "insert" });
183
- dispatch({ type: "SET_INPUT", value: item.command });
184
- }
185
- }
186
- return;
187
- default: {
188
- // Quick-select 1-9
189
- const num = parseInt(key.name, 10);
190
- if (num >= 1 && num <= 9 && state.pickerItems) {
191
- const idx = num - 1;
192
- if (idx < state.pickerItems.length) {
193
- dispatch({ type: "SET_PICKER_CURSOR", cursor: idx });
194
- const item = state.pickerItems[idx];
195
- if (item) {
196
- dispatch({ type: "SET_MODE", mode: "insert" });
197
- dispatch({ type: "SET_INPUT", value: item.command });
198
- }
199
- }
200
- }
201
- }
202
- }
203
- }
204
- // ── Insert mode handler (sub-views only) ─────────────────────────
205
- function handleInsertMode(key, _rawInput, state, dispatch) {
206
- switch (key.name) {
207
- case "escape":
208
- dispatch({ type: "SET_MODE", mode: "normal" });
209
- return;
210
- case "return":
211
- if (state.inputValue.trim()) {
212
- dispatch({ type: "PUSH_HISTORY", command: state.inputValue.trim() });
213
- }
214
- // The actual command execution is handled by the component layer
215
- return;
216
- case "up":
217
- // Previous history
218
- if (state.inputHistory.length > 0) {
219
- const newIdx = state.historyIndex === -1
220
- ? state.inputHistory.length - 1
221
- : Math.max(0, state.historyIndex - 1);
222
- dispatch({ type: "SET_HISTORY_INDEX", index: newIdx });
223
- dispatch({
224
- type: "SET_INPUT",
225
- value: state.inputHistory[newIdx] ?? "",
226
- });
227
- }
228
- return;
229
- case "down":
230
- // Next history
231
- if (state.historyIndex >= 0) {
232
- const newIdx = state.historyIndex + 1;
233
- if (newIdx >= state.inputHistory.length) {
234
- dispatch({ type: "SET_HISTORY_INDEX", index: -1 });
235
- dispatch({ type: "SET_INPUT", value: "" });
236
- }
237
- else {
238
- dispatch({ type: "SET_HISTORY_INDEX", index: newIdx });
239
- dispatch({
240
- type: "SET_INPUT",
241
- value: state.inputHistory[newIdx] ?? "",
242
- });
243
- }
244
- }
245
- return;
246
- case "tab": {
247
- // Basic autocomplete
248
- const current = state.inputValue.toLowerCase();
249
- if (!current)
250
- return;
251
- const match = COMMANDS.find((c) => c.startsWith(current));
252
- if (match) {
253
- dispatch({ type: "SET_INPUT", value: match });
254
- }
255
- return;
256
- }
257
- default:
258
- // All other keys are handled by the Ink TextInput component
259
- break;
260
- }
261
- }
262
- // ── Main entry point ───────────────────────────────────────────────
263
- /**
264
- * Route a key event to the correct mode handler.
265
- * Note: in conversation mode (home view) this is NOT called —
266
- * the app.tsx skips calling handleKey when at home.
267
- */
268
- export function handleKey(rawInput, state, dispatch) {
269
- const key = parseKey(rawInput);
270
- if (state.mode === "normal") {
271
- handleNormalMode(key, rawInput, state, dispatch);
272
- }
273
- else {
274
- handleInsertMode(key, rawInput, state, dispatch);
275
- }
276
- }
277
- //# sourceMappingURL=keybindings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keybindings.js","sourceRoot":"","sources":["../../src/tui/keybindings.ts"],"names":[],"mappings":"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"}