@nex-ai/nex 0.1.65 → 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 (529) 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 -1544
  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 -111
  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 -584
  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/compounding-worker.d.ts +0 -2
  132. package/dist/lib/compounding-worker.js +0 -21
  133. package/dist/lib/compounding-worker.js.map +0 -1
  134. package/dist/lib/compounding.d.ts +0 -20
  135. package/dist/lib/compounding.js +0 -45
  136. package/dist/lib/compounding.js.map +0 -1
  137. package/dist/lib/config.d.ts +0 -35
  138. package/dist/lib/config.js +0 -96
  139. package/dist/lib/config.js.map +0 -1
  140. package/dist/lib/context-format.d.ts +0 -7
  141. package/dist/lib/context-format.js +0 -21
  142. package/dist/lib/context-format.js.map +0 -1
  143. package/dist/lib/errors.d.ts +0 -18
  144. package/dist/lib/errors.js +0 -30
  145. package/dist/lib/errors.js.map +0 -1
  146. package/dist/lib/file-scanner.d.ts +0 -38
  147. package/dist/lib/file-scanner.js +0 -188
  148. package/dist/lib/file-scanner.js.map +0 -1
  149. package/dist/lib/graph-html.d.ts +0 -59
  150. package/dist/lib/graph-html.js +0 -859
  151. package/dist/lib/graph-html.js.map +0 -1
  152. package/dist/lib/installers.d.ts +0 -80
  153. package/dist/lib/installers.js +0 -602
  154. package/dist/lib/installers.js.map +0 -1
  155. package/dist/lib/integrations.d.ts +0 -23
  156. package/dist/lib/integrations.js +0 -25
  157. package/dist/lib/integrations.js.map +0 -1
  158. package/dist/lib/output.d.ts +0 -7
  159. package/dist/lib/output.js +0 -70
  160. package/dist/lib/output.js.map +0 -1
  161. package/dist/lib/platform-detect.d.ts +0 -23
  162. package/dist/lib/platform-detect.js +0 -359
  163. package/dist/lib/platform-detect.js.map +0 -1
  164. package/dist/lib/project-config.d.ts +0 -53
  165. package/dist/lib/project-config.js +0 -151
  166. package/dist/lib/project-config.js.map +0 -1
  167. package/dist/lib/prompt.d.ts +0 -15
  168. package/dist/lib/prompt.js +0 -213
  169. package/dist/lib/prompt.js.map +0 -1
  170. package/dist/lib/rate-limiter.d.ts +0 -13
  171. package/dist/lib/rate-limiter.js +0 -49
  172. package/dist/lib/rate-limiter.js.map +0 -1
  173. package/dist/lib/recall-filter.d.ts +0 -5
  174. package/dist/lib/recall-filter.js +0 -24
  175. package/dist/lib/recall-filter.js.map +0 -1
  176. package/dist/lib/session-store.d.ts +0 -15
  177. package/dist/lib/session-store.js +0 -62
  178. package/dist/lib/session-store.js.map +0 -1
  179. package/dist/lib/tui.d.ts +0 -57
  180. package/dist/lib/tui.js +0 -247
  181. package/dist/lib/tui.js.map +0 -1
  182. package/dist/lib/workspace-registry.d.ts +0 -47
  183. package/dist/lib/workspace-registry.js +0 -240
  184. package/dist/lib/workspace-registry.js.map +0 -1
  185. package/dist/mcp/channel.d.ts +0 -24
  186. package/dist/mcp/channel.js +0 -198
  187. package/dist/mcp/channel.js.map +0 -1
  188. package/dist/mcp/client.d.ts +0 -20
  189. package/dist/mcp/client.js +0 -131
  190. package/dist/mcp/client.js.map +0 -1
  191. package/dist/mcp/config.d.ts +0 -19
  192. package/dist/mcp/config.js +0 -48
  193. package/dist/mcp/config.js.map +0 -1
  194. package/dist/mcp/context-files.d.ts +0 -9
  195. package/dist/mcp/context-files.js +0 -90
  196. package/dist/mcp/context-files.js.map +0 -1
  197. package/dist/mcp/file-manifest.d.ts +0 -27
  198. package/dist/mcp/file-manifest.js +0 -68
  199. package/dist/mcp/file-manifest.js.map +0 -1
  200. package/dist/mcp/file-scanner.d.ts +0 -17
  201. package/dist/mcp/file-scanner.js +0 -77
  202. package/dist/mcp/file-scanner.js.map +0 -1
  203. package/dist/mcp/index.d.ts +0 -2
  204. package/dist/mcp/index.js +0 -51
  205. package/dist/mcp/index.js.map +0 -1
  206. package/dist/mcp/rate-limiter.d.ts +0 -14
  207. package/dist/mcp/rate-limiter.js +0 -60
  208. package/dist/mcp/rate-limiter.js.map +0 -1
  209. package/dist/mcp/server.d.ts +0 -6
  210. package/dist/mcp/server.js +0 -44
  211. package/dist/mcp/server.js.map +0 -1
  212. package/dist/mcp/session-store.d.ts +0 -16
  213. package/dist/mcp/session-store.js +0 -70
  214. package/dist/mcp/session-store.js.map +0 -1
  215. package/dist/mcp/tools/context.d.ts +0 -3
  216. package/dist/mcp/tools/context.js +0 -65
  217. package/dist/mcp/tools/context.js.map +0 -1
  218. package/dist/mcp/tools/insights.d.ts +0 -3
  219. package/dist/mcp/tools/insights.js +0 -24
  220. package/dist/mcp/tools/insights.js.map +0 -1
  221. package/dist/mcp/tools/integrations.d.ts +0 -3
  222. package/dist/mcp/tools/integrations.js +0 -27
  223. package/dist/mcp/tools/integrations.js.map +0 -1
  224. package/dist/mcp/tools/lists.d.ts +0 -3
  225. package/dist/mcp/tools/lists.js +0 -101
  226. package/dist/mcp/tools/lists.js.map +0 -1
  227. package/dist/mcp/tools/notes.d.ts +0 -3
  228. package/dist/mcp/tools/notes.js +0 -52
  229. package/dist/mcp/tools/notes.js.map +0 -1
  230. package/dist/mcp/tools/notifications.d.ts +0 -3
  231. package/dist/mcp/tools/notifications.js +0 -53
  232. package/dist/mcp/tools/notifications.js.map +0 -1
  233. package/dist/mcp/tools/records.d.ts +0 -3
  234. package/dist/mcp/tools/records.js +0 -74
  235. package/dist/mcp/tools/records.js.map +0 -1
  236. package/dist/mcp/tools/register.d.ts +0 -3
  237. package/dist/mcp/tools/register.js +0 -41
  238. package/dist/mcp/tools/register.js.map +0 -1
  239. package/dist/mcp/tools/relationships.d.ts +0 -3
  240. package/dist/mcp/tools/relationships.js +0 -47
  241. package/dist/mcp/tools/relationships.js.map +0 -1
  242. package/dist/mcp/tools/scan.d.ts +0 -3
  243. package/dist/mcp/tools/scan.js +0 -37
  244. package/dist/mcp/tools/scan.js.map +0 -1
  245. package/dist/mcp/tools/schema.d.ts +0 -3
  246. package/dist/mcp/tools/schema.js +0 -108
  247. package/dist/mcp/tools/schema.js.map +0 -1
  248. package/dist/mcp/tools/search.d.ts +0 -3
  249. package/dist/mcp/tools/search.js +0 -8
  250. package/dist/mcp/tools/search.js.map +0 -1
  251. package/dist/mcp/tools/tasks.d.ts +0 -3
  252. package/dist/mcp/tools/tasks.js +0 -88
  253. package/dist/mcp/tools/tasks.js.map +0 -1
  254. package/dist/mcp/workspace-data-dir.d.ts +0 -2
  255. package/dist/mcp/workspace-data-dir.js +0 -28
  256. package/dist/mcp/workspace-data-dir.js.map +0 -1
  257. package/dist/orchestration/budget.d.ts +0 -32
  258. package/dist/orchestration/budget.js +0 -72
  259. package/dist/orchestration/budget.js.map +0 -1
  260. package/dist/orchestration/executor.d.ts +0 -59
  261. package/dist/orchestration/executor.js +0 -197
  262. package/dist/orchestration/executor.js.map +0 -1
  263. package/dist/orchestration/router.d.ts +0 -30
  264. package/dist/orchestration/router.js +0 -98
  265. package/dist/orchestration/router.js.map +0 -1
  266. package/dist/orchestration/templates.d.ts +0 -11
  267. package/dist/orchestration/templates.js +0 -99
  268. package/dist/orchestration/templates.js.map +0 -1
  269. package/dist/orchestration/types.d.ts +0 -58
  270. package/dist/orchestration/types.js +0 -7
  271. package/dist/orchestration/types.js.map +0 -1
  272. package/dist/plugin/auto-capture.d.ts +0 -11
  273. package/dist/plugin/auto-capture.js +0 -135
  274. package/dist/plugin/auto-capture.js.map +0 -1
  275. package/dist/plugin/auto-recall-worker.d.ts +0 -2
  276. package/dist/plugin/auto-recall-worker.js +0 -74
  277. package/dist/plugin/auto-recall-worker.js.map +0 -1
  278. package/dist/plugin/auto-recall.d.ts +0 -11
  279. package/dist/plugin/auto-recall.js +0 -186
  280. package/dist/plugin/auto-recall.js.map +0 -1
  281. package/dist/plugin/auto-register.d.ts +0 -10
  282. package/dist/plugin/auto-register.js +0 -81
  283. package/dist/plugin/auto-register.js.map +0 -1
  284. package/dist/plugin/auto-scan.d.ts +0 -10
  285. package/dist/plugin/auto-scan.js +0 -54
  286. package/dist/plugin/auto-scan.js.map +0 -1
  287. package/dist/plugin/auto-session-start.d.ts +0 -14
  288. package/dist/plugin/auto-session-start.js +0 -156
  289. package/dist/plugin/auto-session-start.js.map +0 -1
  290. package/dist/plugin/capture-filter.d.ts +0 -21
  291. package/dist/plugin/capture-filter.js +0 -32
  292. package/dist/plugin/capture-filter.js.map +0 -1
  293. package/dist/plugin/config.d.ts +0 -61
  294. package/dist/plugin/config.js +0 -182
  295. package/dist/plugin/config.js.map +0 -1
  296. package/dist/plugin/context-files.d.ts +0 -23
  297. package/dist/plugin/context-files.js +0 -103
  298. package/dist/plugin/context-files.js.map +0 -1
  299. package/dist/plugin/context-format.d.ts +0 -18
  300. package/dist/plugin/context-format.js +0 -34
  301. package/dist/plugin/context-format.js.map +0 -1
  302. package/dist/plugin/file-manifest.d.ts +0 -27
  303. package/dist/plugin/file-manifest.js +0 -68
  304. package/dist/plugin/file-manifest.js.map +0 -1
  305. package/dist/plugin/file-scanner.d.ts +0 -19
  306. package/dist/plugin/file-scanner.js +0 -90
  307. package/dist/plugin/file-scanner.js.map +0 -1
  308. package/dist/plugin/nex-client.d.ts +0 -50
  309. package/dist/plugin/nex-client.js +0 -129
  310. package/dist/plugin/nex-client.js.map +0 -1
  311. package/dist/plugin/rate-limiter.d.ts +0 -26
  312. package/dist/plugin/rate-limiter.js +0 -65
  313. package/dist/plugin/rate-limiter.js.map +0 -1
  314. package/dist/plugin/recall-cache.d.ts +0 -41
  315. package/dist/plugin/recall-cache.js +0 -195
  316. package/dist/plugin/recall-cache.js.map +0 -1
  317. package/dist/plugin/recall-filter.d.ts +0 -13
  318. package/dist/plugin/recall-filter.js +0 -39
  319. package/dist/plugin/recall-filter.js.map +0 -1
  320. package/dist/plugin/session-store.d.ts +0 -23
  321. package/dist/plugin/session-store.js +0 -73
  322. package/dist/plugin/session-store.js.map +0 -1
  323. package/dist/plugin/workspace-data-dir.d.ts +0 -2
  324. package/dist/plugin/workspace-data-dir.js +0 -31
  325. package/dist/plugin/workspace-data-dir.js.map +0 -1
  326. package/dist/tui/agent-colors.d.ts +0 -19
  327. package/dist/tui/agent-colors.js +0 -34
  328. package/dist/tui/agent-colors.js.map +0 -1
  329. package/dist/tui/app.d.ts +0 -14
  330. package/dist/tui/app.js +0 -181
  331. package/dist/tui/app.js.map +0 -1
  332. package/dist/tui/channel-colors.d.ts +0 -16
  333. package/dist/tui/channel-colors.js +0 -43
  334. package/dist/tui/channel-colors.js.map +0 -1
  335. package/dist/tui/components/agent-card.d.ts +0 -11
  336. package/dist/tui/components/agent-card.js +0 -40
  337. package/dist/tui/components/agent-card.js.map +0 -1
  338. package/dist/tui/components/banner.d.ts +0 -44
  339. package/dist/tui/components/banner.js +0 -130
  340. package/dist/tui/components/banner.js.map +0 -1
  341. package/dist/tui/components/channel-colors.d.ts +0 -21
  342. package/dist/tui/components/channel-colors.js +0 -53
  343. package/dist/tui/components/channel-colors.js.map +0 -1
  344. package/dist/tui/components/channel-message.d.ts +0 -53
  345. package/dist/tui/components/channel-message.js +0 -66
  346. package/dist/tui/components/channel-message.js.map +0 -1
  347. package/dist/tui/components/chat-input.d.ts +0 -11
  348. package/dist/tui/components/chat-input.js +0 -19
  349. package/dist/tui/components/chat-input.js.map +0 -1
  350. package/dist/tui/components/data-table.d.ts +0 -11
  351. package/dist/tui/components/data-table.js +0 -47
  352. package/dist/tui/components/data-table.js.map +0 -1
  353. package/dist/tui/components/error-box.d.ts +0 -11
  354. package/dist/tui/components/error-box.js +0 -59
  355. package/dist/tui/components/error-box.js.map +0 -1
  356. package/dist/tui/components/help-screen.d.ts +0 -3
  357. package/dist/tui/components/help-screen.js +0 -63
  358. package/dist/tui/components/help-screen.js.map +0 -1
  359. package/dist/tui/components/index.d.ts +0 -17
  360. package/dist/tui/components/index.js +0 -10
  361. package/dist/tui/components/index.js.map +0 -1
  362. package/dist/tui/components/inline-confirm.d.ts +0 -14
  363. package/dist/tui/components/inline-confirm.js +0 -13
  364. package/dist/tui/components/inline-confirm.js.map +0 -1
  365. package/dist/tui/components/inline-select.d.ts +0 -21
  366. package/dist/tui/components/inline-select.js +0 -20
  367. package/dist/tui/components/inline-select.js.map +0 -1
  368. package/dist/tui/components/markdown.d.ts +0 -6
  369. package/dist/tui/components/markdown.js +0 -179
  370. package/dist/tui/components/markdown.js.map +0 -1
  371. package/dist/tui/components/mention-autocomplete.d.ts +0 -79
  372. package/dist/tui/components/mention-autocomplete.js +0 -250
  373. package/dist/tui/components/mention-autocomplete.js.map +0 -1
  374. package/dist/tui/components/message-list.d.ts +0 -18
  375. package/dist/tui/components/message-list.js +0 -29
  376. package/dist/tui/components/message-list.js.map +0 -1
  377. package/dist/tui/components/picker.d.ts +0 -16
  378. package/dist/tui/components/picker.js +0 -32
  379. package/dist/tui/components/picker.js.map +0 -1
  380. package/dist/tui/components/progress-steps.d.ts +0 -13
  381. package/dist/tui/components/progress-steps.js +0 -21
  382. package/dist/tui/components/progress-steps.js.map +0 -1
  383. package/dist/tui/components/slack/compose.d.ts +0 -27
  384. package/dist/tui/components/slack/compose.js +0 -147
  385. package/dist/tui/components/slack/compose.js.map +0 -1
  386. package/dist/tui/components/slack/layout.d.ts +0 -36
  387. package/dist/tui/components/slack/layout.js +0 -96
  388. package/dist/tui/components/slack/layout.js.map +0 -1
  389. package/dist/tui/components/slack/messages.d.ts +0 -72
  390. package/dist/tui/components/slack/messages.js +0 -177
  391. package/dist/tui/components/slack/messages.js.map +0 -1
  392. package/dist/tui/components/slack/quick-switcher.d.ts +0 -33
  393. package/dist/tui/components/slack/quick-switcher.js +0 -98
  394. package/dist/tui/components/slack/quick-switcher.js.map +0 -1
  395. package/dist/tui/components/slack/sidebar-types.d.ts +0 -65
  396. package/dist/tui/components/slack/sidebar-types.js +0 -7
  397. package/dist/tui/components/slack/sidebar-types.js.map +0 -1
  398. package/dist/tui/components/slack/sidebar.d.ts +0 -46
  399. package/dist/tui/components/slack/sidebar.js +0 -52
  400. package/dist/tui/components/slack/sidebar.js.map +0 -1
  401. package/dist/tui/components/slack/thread-panel.d.ts +0 -45
  402. package/dist/tui/components/slack/thread-panel.js +0 -47
  403. package/dist/tui/components/slack/thread-panel.js.map +0 -1
  404. package/dist/tui/components/slash-autocomplete.d.ts +0 -83
  405. package/dist/tui/components/slash-autocomplete.js +0 -233
  406. package/dist/tui/components/slash-autocomplete.js.map +0 -1
  407. package/dist/tui/components/spinner.d.ts +0 -17
  408. package/dist/tui/components/spinner.js +0 -30
  409. package/dist/tui/components/spinner.js.map +0 -1
  410. package/dist/tui/components/status-bar.d.ts +0 -23
  411. package/dist/tui/components/status-bar.js +0 -55
  412. package/dist/tui/components/status-bar.js.map +0 -1
  413. package/dist/tui/components/success-box.d.ts +0 -7
  414. package/dist/tui/components/success-box.js +0 -10
  415. package/dist/tui/components/success-box.js.map +0 -1
  416. package/dist/tui/components/tool-indicator.d.ts +0 -12
  417. package/dist/tui/components/tool-indicator.js +0 -18
  418. package/dist/tui/components/tool-indicator.js.map +0 -1
  419. package/dist/tui/components/viewport.d.ts +0 -9
  420. package/dist/tui/components/viewport.js +0 -24
  421. package/dist/tui/components/viewport.js.map +0 -1
  422. package/dist/tui/generative/bindings.d.ts +0 -27
  423. package/dist/tui/generative/bindings.js +0 -152
  424. package/dist/tui/generative/bindings.js.map +0 -1
  425. package/dist/tui/generative/registry.d.ts +0 -19
  426. package/dist/tui/generative/registry.js +0 -31
  427. package/dist/tui/generative/registry.js.map +0 -1
  428. package/dist/tui/generative/renderer.d.ts +0 -24
  429. package/dist/tui/generative/renderer.js +0 -160
  430. package/dist/tui/generative/renderer.js.map +0 -1
  431. package/dist/tui/generative/types.d.ts +0 -68
  432. package/dist/tui/generative/types.js +0 -7
  433. package/dist/tui/generative/types.js.map +0 -1
  434. package/dist/tui/hooks/use-cancellable.d.ts +0 -28
  435. package/dist/tui/hooks/use-cancellable.js +0 -51
  436. package/dist/tui/hooks/use-cancellable.js.map +0 -1
  437. package/dist/tui/hooks/use-streaming.d.ts +0 -44
  438. package/dist/tui/hooks/use-streaming.js +0 -105
  439. package/dist/tui/hooks/use-streaming.js.map +0 -1
  440. package/dist/tui/index.d.ts +0 -4
  441. package/dist/tui/index.js +0 -7
  442. package/dist/tui/index.js.map +0 -1
  443. package/dist/tui/keybindings.d.ts +0 -25
  444. package/dist/tui/keybindings.js +0 -277
  445. package/dist/tui/keybindings.js.map +0 -1
  446. package/dist/tui/register-views.d.ts +0 -8
  447. package/dist/tui/register-views.js +0 -122
  448. package/dist/tui/register-views.js.map +0 -1
  449. package/dist/tui/router.d.ts +0 -29
  450. package/dist/tui/router.js +0 -87
  451. package/dist/tui/router.js.map +0 -1
  452. package/dist/tui/services/agent-service.d.ts +0 -58
  453. package/dist/tui/services/agent-service.js +0 -197
  454. package/dist/tui/services/agent-service.js.map +0 -1
  455. package/dist/tui/services/calendar-service.d.ts +0 -31
  456. package/dist/tui/services/calendar-service.js +0 -133
  457. package/dist/tui/services/calendar-service.js.map +0 -1
  458. package/dist/tui/services/chat-service.d.ts +0 -28
  459. package/dist/tui/services/chat-service.js +0 -91
  460. package/dist/tui/services/chat-service.js.map +0 -1
  461. package/dist/tui/services/orchestration-service.d.ts +0 -42
  462. package/dist/tui/services/orchestration-service.js +0 -153
  463. package/dist/tui/services/orchestration-service.js.map +0 -1
  464. package/dist/tui/slash-commands.d.ts +0 -106
  465. package/dist/tui/slash-commands.js +0 -1421
  466. package/dist/tui/slash-commands.js.map +0 -1
  467. package/dist/tui/store.d.ts +0 -96
  468. package/dist/tui/store.js +0 -120
  469. package/dist/tui/store.js.map +0 -1
  470. package/dist/tui/theme.d.ts +0 -40
  471. package/dist/tui/theme.js +0 -39
  472. package/dist/tui/theme.js.map +0 -1
  473. package/dist/tui/tui-context.d.ts +0 -22
  474. package/dist/tui/tui-context.js +0 -17
  475. package/dist/tui/tui-context.js.map +0 -1
  476. package/dist/tui/views/agent-list.d.ts +0 -8
  477. package/dist/tui/views/agent-list.js +0 -11
  478. package/dist/tui/views/agent-list.js.map +0 -1
  479. package/dist/tui/views/ask-chat.d.ts +0 -9
  480. package/dist/tui/views/ask-chat.js +0 -40
  481. package/dist/tui/views/ask-chat.js.map +0 -1
  482. package/dist/tui/views/calendar.d.ts +0 -15
  483. package/dist/tui/views/calendar.js +0 -29
  484. package/dist/tui/views/calendar.js.map +0 -1
  485. package/dist/tui/views/chat.d.ts +0 -18
  486. package/dist/tui/views/chat.js +0 -28
  487. package/dist/tui/views/chat.js.map +0 -1
  488. package/dist/tui/views/generative.d.ts +0 -14
  489. package/dist/tui/views/generative.js +0 -37
  490. package/dist/tui/views/generative.js.map +0 -1
  491. package/dist/tui/views/help.d.ts +0 -6
  492. package/dist/tui/views/help.js +0 -9
  493. package/dist/tui/views/help.js.map +0 -1
  494. package/dist/tui/views/home-screen.d.ts +0 -67
  495. package/dist/tui/views/home-screen.js +0 -192
  496. package/dist/tui/views/home-screen.js.map +0 -1
  497. package/dist/tui/views/home.d.ts +0 -33
  498. package/dist/tui/views/home.js +0 -60
  499. package/dist/tui/views/home.js.map +0 -1
  500. package/dist/tui/views/index.d.ts +0 -20
  501. package/dist/tui/views/index.js +0 -11
  502. package/dist/tui/views/index.js.map +0 -1
  503. package/dist/tui/views/insights.d.ts +0 -19
  504. package/dist/tui/views/insights.js +0 -46
  505. package/dist/tui/views/insights.js.map +0 -1
  506. package/dist/tui/views/orchestration.d.ts +0 -18
  507. package/dist/tui/views/orchestration.js +0 -73
  508. package/dist/tui/views/orchestration.js.map +0 -1
  509. package/dist/tui/views/record-detail.d.ts +0 -10
  510. package/dist/tui/views/record-detail.js +0 -22
  511. package/dist/tui/views/record-detail.js.map +0 -1
  512. package/dist/tui/views/record-list.d.ts +0 -15
  513. package/dist/tui/views/record-list.js +0 -22
  514. package/dist/tui/views/record-list.js.map +0 -1
  515. package/dist/tui/views/slack-channel-header.d.ts +0 -15
  516. package/dist/tui/views/slack-channel-header.js +0 -16
  517. package/dist/tui/views/slack-channel-header.js.map +0 -1
  518. package/dist/tui/views/slack-home.d.ts +0 -21
  519. package/dist/tui/views/slack-home.js +0 -572
  520. package/dist/tui/views/slack-home.js.map +0 -1
  521. package/dist/tui/views/stream.d.ts +0 -16
  522. package/dist/tui/views/stream.js +0 -210
  523. package/dist/tui/views/stream.js.map +0 -1
  524. package/dist/tui/views/task-board.d.ts +0 -21
  525. package/dist/tui/views/task-board.js +0 -33
  526. package/dist/tui/views/task-board.js.map +0 -1
  527. package/dist/tui/views/timeline.d.ts +0 -17
  528. package/dist/tui/views/timeline.js +0 -24
  529. 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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"}