@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,160 +0,0 @@
1
- /**
2
- * HTTP client for the Nex Developer API.
3
- * Hardcoded base URL with all HTTP methods.
4
- */
5
- import { AuthError, RateLimitError, ServerError } from "./errors.js";
6
- import { API_BASE, REGISTER_URL } from "./config.js";
7
- // Pre-process JSON text: quote integer values for "id" fields that exceed
8
- // Number.MAX_SAFE_INTEGER, preventing JS precision loss on snowflake IDs.
9
- const UNSAFE_ID_RE = /("(?:[^"]*_)?id"\s*:\s*)(\d{16,})/g;
10
- function safenIds(jsonText) {
11
- return jsonText.replace(UNSAFE_ID_RE, (_match, prefix, digits) => {
12
- if (Number.isSafeInteger(Number(digits)))
13
- return `${prefix}${digits}`;
14
- return `${prefix}"${digits}"`;
15
- });
16
- }
17
- export class NexClient {
18
- apiKey;
19
- timeoutMs;
20
- constructor(apiKey, timeoutMs = 120_000) {
21
- this.apiKey = apiKey;
22
- this.timeoutMs = timeoutMs;
23
- }
24
- get isAuthenticated() {
25
- return this.apiKey !== undefined && this.apiKey.length > 0;
26
- }
27
- setApiKey(key) {
28
- this.apiKey = key;
29
- }
30
- requireAuth() {
31
- if (!this.isAuthenticated) {
32
- throw new AuthError();
33
- }
34
- }
35
- async request(method, path, body, timeoutMs) {
36
- this.requireAuth();
37
- const url = `${API_BASE}${path}`;
38
- const controller = new AbortController();
39
- const timer = setTimeout(() => controller.abort(), timeoutMs ?? this.timeoutMs);
40
- try {
41
- const headers = {
42
- Authorization: `Bearer ${this.apiKey}`,
43
- "X-Nex-Source": "skill-cli",
44
- };
45
- if (body !== undefined) {
46
- headers["Content-Type"] = "application/json";
47
- }
48
- const res = await fetch(url, {
49
- method,
50
- headers,
51
- body: body !== undefined ? JSON.stringify(body) : undefined,
52
- signal: controller.signal,
53
- });
54
- if (res.status === 401 || res.status === 403) {
55
- throw new AuthError("Invalid or expired API key. Run 'nex setup' to re-authenticate.");
56
- }
57
- if (res.status === 429) {
58
- const retryAfter = res.headers.get("retry-after");
59
- const ms = retryAfter ? parseInt(retryAfter, 10) * 1000 : 60_000;
60
- throw new RateLimitError(ms);
61
- }
62
- if (!res.ok) {
63
- let errorBody;
64
- try {
65
- errorBody = await res.text();
66
- }
67
- catch {
68
- // ignore
69
- }
70
- throw new ServerError(res.status, errorBody);
71
- }
72
- const text = await res.text();
73
- if (!text || !text.trim())
74
- return {};
75
- // Preserve large integer IDs as strings to avoid JS precision loss
76
- return JSON.parse(safenIds(text));
77
- }
78
- finally {
79
- clearTimeout(timer);
80
- }
81
- }
82
- async register(email, name, companyName) {
83
- const body = { email, source: "cli" };
84
- if (name !== undefined)
85
- body.name = name;
86
- if (companyName !== undefined)
87
- body.company_name = companyName;
88
- const res = await fetch(REGISTER_URL, {
89
- method: "POST",
90
- headers: { "Content-Type": "application/json" },
91
- body: JSON.stringify(body),
92
- signal: AbortSignal.timeout(this.timeoutMs),
93
- });
94
- if (!res.ok) {
95
- let errorBody;
96
- try {
97
- errorBody = await res.text();
98
- }
99
- catch {
100
- // ignore
101
- }
102
- throw new ServerError(res.status, errorBody);
103
- }
104
- const data = (await res.json());
105
- const apiKey = data.api_key;
106
- if (typeof apiKey === "string" && apiKey.length > 0) {
107
- this.apiKey = apiKey;
108
- }
109
- return data;
110
- }
111
- async get(path, timeoutMs) {
112
- return this.request("GET", path, undefined, timeoutMs);
113
- }
114
- async getRaw(path, timeoutMs) {
115
- this.requireAuth();
116
- const url = `${API_BASE}${path}`;
117
- const controller = new AbortController();
118
- const timer = setTimeout(() => controller.abort(), timeoutMs ?? this.timeoutMs);
119
- try {
120
- const res = await fetch(url, {
121
- method: "GET",
122
- headers: { Authorization: `Bearer ${this.apiKey}` },
123
- signal: controller.signal,
124
- });
125
- if (res.status === 401 || res.status === 403) {
126
- throw new AuthError("Invalid or expired API key. Run 'nex setup' to re-authenticate.");
127
- }
128
- if (res.status === 429) {
129
- const retryAfter = res.headers.get("retry-after");
130
- const ms = retryAfter ? parseInt(retryAfter, 10) * 1000 : 60_000;
131
- throw new RateLimitError(ms);
132
- }
133
- if (!res.ok) {
134
- let errorBody;
135
- try {
136
- errorBody = await res.text();
137
- }
138
- catch { /* ignore */ }
139
- throw new ServerError(res.status, errorBody);
140
- }
141
- return await res.text();
142
- }
143
- finally {
144
- clearTimeout(timer);
145
- }
146
- }
147
- async post(path, body, timeoutMs) {
148
- return this.request("POST", path, body, timeoutMs);
149
- }
150
- async put(path, body, timeoutMs) {
151
- return this.request("PUT", path, body, timeoutMs);
152
- }
153
- async patch(path, body, timeoutMs) {
154
- return this.request("PATCH", path, body, timeoutMs);
155
- }
156
- async delete(path, timeoutMs) {
157
- return this.request("DELETE", path, undefined, timeoutMs);
158
- }
159
- }
160
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- /**
2
- * Configuration resolution: CLI flags > env vars > config file.
3
- * Base URL is hardcoded to production (NEX_DEV_URL escape hatch for local dev).
4
- */
5
- export declare const CONFIG_PATH: string;
6
- export declare const BASE_URL: {};
7
- export declare const API_BASE: string;
8
- export declare const REGISTER_URL: string;
9
- export interface NexConfig {
10
- api_key?: string;
11
- email?: string;
12
- workspace_id?: string;
13
- workspace_slug?: string;
14
- default_format?: string;
15
- default_timeout?: number;
16
- [key: string]: unknown;
17
- }
18
- export declare function loadConfig(): NexConfig;
19
- export declare function saveConfig(config: NexConfig): void;
20
- /**
21
- * Resolve API key from: flag > env > active workspace > config file.
22
- */
23
- export declare function resolveApiKey(flagValue?: string): string | undefined;
24
- /**
25
- * Resolve output format from: flag > config file > default.
26
- */
27
- export declare function resolveFormat(flagValue?: string): string;
28
- /**
29
- * Resolve timeout from: flag > config file > default.
30
- */
31
- export declare function resolveTimeout(flagValue?: string): number;
32
- /**
33
- * Persist registration data to config file and workspace registry.
34
- */
35
- export declare function persistRegistration(data: Record<string, unknown>): void;
@@ -1,96 +0,0 @@
1
- /**
2
- * Configuration resolution: CLI flags > env vars > config file.
3
- * Base URL is hardcoded to production (NEX_DEV_URL escape hatch for local dev).
4
- */
5
- import { readFileSync, writeFileSync, mkdirSync } from "node:fs";
6
- import { join, dirname } from "node:path";
7
- import { homedir } from "node:os";
8
- import { getActiveCredentials, addWorkspace } from "./workspace-registry.js";
9
- export const CONFIG_PATH = join(homedir(), ".nex", "config.json");
10
- export const BASE_URL = process.env.NEX_DEV_URL ?? loadConfig().dev_url ?? "https://app.nex.ai";
11
- export const API_BASE = `${BASE_URL}/api/developers`;
12
- export const REGISTER_URL = `${BASE_URL}/api/v1/agents/register`;
13
- export function loadConfig() {
14
- try {
15
- const raw = readFileSync(CONFIG_PATH, "utf-8");
16
- const data = JSON.parse(raw);
17
- // If migrated format, merge active workspace credentials into return
18
- if (data.active_workspace && !data.api_key) {
19
- const wsCreds = getActiveCredentials();
20
- if (wsCreds) {
21
- return { ...data, ...wsCreds };
22
- }
23
- }
24
- return data;
25
- }
26
- catch {
27
- return {};
28
- }
29
- }
30
- export function saveConfig(config) {
31
- mkdirSync(dirname(CONFIG_PATH), { recursive: true });
32
- writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + "\n", "utf-8");
33
- }
34
- /**
35
- * Resolve API key from: flag > env > active workspace > config file.
36
- */
37
- export function resolveApiKey(flagValue) {
38
- if (flagValue)
39
- return flagValue;
40
- if (process.env.NEX_API_KEY)
41
- return process.env.NEX_API_KEY;
42
- // Try active workspace credentials
43
- const wsCreds = getActiveCredentials();
44
- if (wsCreds?.api_key)
45
- return wsCreds.api_key;
46
- // Legacy fallback: flat config.json (pre-migration)
47
- return loadConfig().api_key || undefined;
48
- }
49
- /**
50
- * Resolve output format from: flag > config file > default.
51
- */
52
- export function resolveFormat(flagValue) {
53
- if (flagValue)
54
- return flagValue;
55
- const configured = loadConfig().default_format;
56
- if (configured)
57
- return configured;
58
- // Default to "text" for TTY (rich TUI output), "json" for piped/scripted usage
59
- return process.stdout.isTTY ? "text" : "json";
60
- }
61
- /**
62
- * Resolve timeout from: flag > config file > default.
63
- */
64
- export function resolveTimeout(flagValue) {
65
- if (flagValue)
66
- return parseInt(flagValue, 10);
67
- return loadConfig().default_timeout ?? 120_000;
68
- }
69
- /**
70
- * Persist registration data to config file and workspace registry.
71
- */
72
- export function persistRegistration(data) {
73
- // Legacy: still write to config.json for backwards compat during migration
74
- const existing = loadConfig();
75
- if (typeof data.api_key === "string")
76
- existing.api_key = data.api_key;
77
- if (typeof data.email === "string")
78
- existing.email = data.email;
79
- if (typeof data.workspace_id === "string" || typeof data.workspace_id === "number") {
80
- existing.workspace_id = String(data.workspace_id);
81
- }
82
- if (typeof data.workspace_slug === "string")
83
- existing.workspace_slug = data.workspace_slug;
84
- saveConfig(existing);
85
- // New: add to workspace registry
86
- const slug = data.workspace_slug || data.workspace_id;
87
- if (slug && data.api_key) {
88
- addWorkspace(slug, {
89
- api_key: data.api_key,
90
- email: data.email || "",
91
- workspace_id: String(data.workspace_id || ""),
92
- workspace_slug: slug,
93
- });
94
- }
95
- }
96
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export interface NexRecallResult {
2
- answer: string;
3
- entityCount: number;
4
- sessionId?: string;
5
- }
6
- export declare function formatNexContext(result: NexRecallResult): string;
7
- export declare function stripNexContext(text: string): string;
@@ -1,21 +0,0 @@
1
- const OPEN_TAG = "<nex-context>";
2
- const CLOSE_TAG = "</nex-context>";
3
- export function formatNexContext(result) {
4
- const parts = [
5
- OPEN_TAG,
6
- "The following is relevant context from the user's knowledge base. Use it to inform your response, but do not mention this block directly.",
7
- ];
8
- if (result.entityCount > 0) {
9
- parts.push(`[${result.entityCount} related entities found]`);
10
- }
11
- parts.push("");
12
- parts.push(result.answer);
13
- parts.push(CLOSE_TAG);
14
- return parts.join("\n");
15
- }
16
- export function stripNexContext(text) {
17
- let result = text.replace(/<nex-context>[\s\S]*?<\/nex-context>/g, "");
18
- result = result.replace(/<nex-context>[\s\S]*/g, "");
19
- return result.trim();
20
- }
21
- //# sourceMappingURL=context-format.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-format.js","sourceRoot":"","sources":["../../src/lib/context-format.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,eAAe,CAAC;AACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAQnC,MAAM,UAAU,gBAAgB,CAAC,MAAuB;IACtD,MAAM,KAAK,GAAa;QACtB,QAAQ;QACR,2IAA2I;KAC5I,CAAC;IACF,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,0BAA0B,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Error types for Nex CLI.
3
- * Exit codes: 0 = success, 1 = general error, 2 = auth error.
4
- */
5
- export declare class AuthError extends Error {
6
- exitCode: number;
7
- constructor(message?: string);
8
- }
9
- export declare class RateLimitError extends Error {
10
- exitCode: number;
11
- retryAfterMs: number;
12
- constructor(retryAfterMs?: number);
13
- }
14
- export declare class ServerError extends Error {
15
- exitCode: number;
16
- status: number;
17
- constructor(status: number, body?: string);
18
- }
@@ -1,30 +0,0 @@
1
- /**
2
- * Error types for Nex CLI.
3
- * Exit codes: 0 = success, 1 = general error, 2 = auth error.
4
- */
5
- export class AuthError extends Error {
6
- exitCode = 2;
7
- constructor(message = "API key missing or invalid. Run 'nex register --email <email>' to get a new key, then run 'nex setup'.") {
8
- super(message);
9
- this.name = "AuthError";
10
- }
11
- }
12
- export class RateLimitError extends Error {
13
- exitCode = 1;
14
- retryAfterMs;
15
- constructor(retryAfterMs = 60_000) {
16
- super(`Rate limited — retry after ${Math.ceil(retryAfterMs / 1000)}s`);
17
- this.name = "RateLimitError";
18
- this.retryAfterMs = retryAfterMs;
19
- }
20
- }
21
- export class ServerError extends Error {
22
- exitCode = 1;
23
- status;
24
- constructor(status, body) {
25
- super(`Nex API error ${status}${body ? `: ${body}` : ""}`);
26
- this.name = "ServerError";
27
- this.status = status;
28
- }
29
- }
30
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAC3B,QAAQ,GAAG,CAAC,CAAC;IAEpB,YAAY,OAAO,GAAG,wGAAwG;QAC5H,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IAChC,QAAQ,GAAG,CAAC,CAAC;IACb,YAAY,CAAS;IAE5B,YAAY,YAAY,GAAG,MAAM;QAC/B,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC7B,QAAQ,GAAG,CAAC,CAAC;IACb,MAAM,CAAS;IAEtB,YAAY,MAAc,EAAE,IAAa;QACvC,KAAK,CAAC,iBAAiB,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -1,38 +0,0 @@
1
- /**
2
- * File scanner — discovers text files, tracks changes via content hash,
3
- * and ingests new/changed files into Nex via POST /v1/context/text.
4
- *
5
- * Manifest stored at ~/.nex/file-scan-manifest.json.
6
- */
7
- export interface ManifestEntry {
8
- hash: string;
9
- size: number;
10
- scanned_at: string;
11
- }
12
- export interface Manifest {
13
- version: number;
14
- files: Record<string, ManifestEntry>;
15
- }
16
- export interface ScanOptions {
17
- extensions: string[];
18
- maxFiles: number;
19
- depth: number;
20
- force: boolean;
21
- dryRun: boolean;
22
- }
23
- export interface ScanResult {
24
- scanned: number;
25
- skipped: number;
26
- errors: number;
27
- files: Array<{
28
- path: string;
29
- status: "ingested" | "skipped" | "error";
30
- reason?: string;
31
- }>;
32
- }
33
- export declare const MANIFEST_PATH: string;
34
- export declare function loadScanConfig(overrides?: Partial<ScanOptions>): ScanOptions;
35
- export declare function isScanEnabled(): boolean;
36
- export declare function loadManifest(): Manifest;
37
- export declare function saveManifest(manifest: Manifest): void;
38
- export declare function scanFiles(dir: string, opts: ScanOptions, ingestFn: (content: string, context: string) => Promise<unknown>, onProgress?: (current: number, total: number, filePath: string) => void): Promise<ScanResult>;
@@ -1,188 +0,0 @@
1
- /**
2
- * File scanner — discovers text files, tracks changes via content hash,
3
- * and ingests new/changed files into Nex via POST /v1/context/text.
4
- *
5
- * Manifest stored at ~/.nex/file-scan-manifest.json.
6
- */
7
- import { createHash } from "node:crypto";
8
- import { readFileSync, writeFileSync, mkdirSync, statSync, readdirSync } from "node:fs";
9
- import { join, extname, resolve, dirname } from "node:path";
10
- import { homedir } from "node:os";
11
- // --- Constants ---
12
- export const MANIFEST_PATH = join(homedir(), ".nex", "file-scan-manifest.json");
13
- const DEFAULT_EXTENSIONS = [
14
- // Documents
15
- ".md", ".txt", ".rtf", ".html", ".htm",
16
- // Data / config
17
- ".csv", ".tsv", ".json", ".yaml", ".yml", ".toml", ".xml",
18
- // Code / scripts
19
- ".js", ".ts", ".jsx", ".tsx", ".py", ".rb", ".go", ".rs", ".java",
20
- ".sh", ".bash", ".zsh", ".fish",
21
- // Markup / notes
22
- ".org", ".rst", ".adoc", ".tex", ".log",
23
- // Config / CI
24
- ".env", ".ini", ".cfg", ".conf", ".properties",
25
- ];
26
- const SKIP_DIRS = new Set([
27
- "node_modules", ".git", "dist", "build", ".next", "__pycache__", ".venv",
28
- ".cache", ".turbo", "coverage", ".nyc_output",
29
- ]);
30
- // --- Config from env ---
31
- export function loadScanConfig(overrides) {
32
- const envEnabled = process.env.NEX_SCAN_ENABLED;
33
- if (envEnabled === "false" || envEnabled === "0") {
34
- // Caller should check this separately; config still resolves
35
- }
36
- const envExts = process.env.NEX_SCAN_EXTENSIONS;
37
- const extensions = overrides?.extensions
38
- ?? (envExts ? envExts.split(",").map((e) => e.trim()) : DEFAULT_EXTENSIONS);
39
- const envMaxFiles = process.env.NEX_SCAN_MAX_FILES;
40
- const maxFiles = overrides?.maxFiles
41
- ?? (envMaxFiles ? parseInt(envMaxFiles, 10) : 1000);
42
- const envDepth = process.env.NEX_SCAN_DEPTH;
43
- const depth = overrides?.depth
44
- ?? (envDepth ? parseInt(envDepth, 10) : 20);
45
- return {
46
- extensions,
47
- maxFiles,
48
- depth,
49
- force: overrides?.force ?? false,
50
- dryRun: overrides?.dryRun ?? false,
51
- };
52
- }
53
- export function isScanEnabled() {
54
- const v = process.env.NEX_SCAN_ENABLED;
55
- return v !== "false" && v !== "0";
56
- }
57
- // --- Manifest ---
58
- export function loadManifest() {
59
- try {
60
- const raw = readFileSync(MANIFEST_PATH, "utf-8");
61
- const data = JSON.parse(raw);
62
- if (data.version === 1 && typeof data.files === "object")
63
- return data;
64
- }
65
- catch {
66
- // missing or corrupt
67
- }
68
- return { version: 1, files: {} };
69
- }
70
- export function saveManifest(manifest) {
71
- mkdirSync(dirname(MANIFEST_PATH), { recursive: true });
72
- writeFileSync(MANIFEST_PATH, JSON.stringify(manifest, null, 2) + "\n", "utf-8");
73
- }
74
- function discoverFiles(dir, extensions, maxDepth, currentDepth = 0) {
75
- if (currentDepth > maxDepth)
76
- return [];
77
- const results = [];
78
- let entries;
79
- try {
80
- entries = readdirSync(dir);
81
- }
82
- catch {
83
- return results;
84
- }
85
- for (const entry of entries) {
86
- if (entry.startsWith(".") && SKIP_DIRS.has(entry))
87
- continue;
88
- if (SKIP_DIRS.has(entry))
89
- continue;
90
- const fullPath = join(dir, entry);
91
- let stat;
92
- try {
93
- stat = statSync(fullPath);
94
- }
95
- catch {
96
- continue;
97
- }
98
- if (stat.isDirectory()) {
99
- results.push(...discoverFiles(fullPath, extensions, maxDepth, currentDepth + 1));
100
- }
101
- else if (stat.isFile() && extensions.has(extname(entry).toLowerCase())) {
102
- results.push({ path: fullPath, size: stat.size, mtime: stat.mtimeMs });
103
- }
104
- }
105
- return results;
106
- }
107
- // --- Hashing ---
108
- function hashFile(filePath) {
109
- const content = readFileSync(filePath);
110
- return "sha256-" + createHash("sha256").update(content).digest("hex");
111
- }
112
- // --- Concurrency helper ---
113
- const DEFAULT_CONCURRENCY = 5;
114
- async function runConcurrent(items, concurrency, fn) {
115
- let next = 0;
116
- async function worker() {
117
- while (next < items.length) {
118
- const idx = next++;
119
- await fn(items[idx], idx);
120
- }
121
- }
122
- const workers = Array.from({ length: Math.min(concurrency, items.length) }, () => worker());
123
- await Promise.all(workers);
124
- }
125
- // --- Scanner ---
126
- export async function scanFiles(dir, opts, ingestFn, onProgress) {
127
- const absDir = resolve(dir);
128
- const extSet = new Set(opts.extensions.map((e) => (e.startsWith(".") ? e : `.${e}`).toLowerCase()));
129
- // Discover files
130
- const discovered = discoverFiles(absDir, extSet, opts.depth);
131
- // Sort by mtime descending (newest first), cap at maxFiles
132
- discovered.sort((a, b) => b.mtime - a.mtime);
133
- const candidates = discovered.slice(0, opts.maxFiles);
134
- const manifest = opts.force ? { version: 1, files: {} } : loadManifest();
135
- const result = { scanned: 0, skipped: 0, errors: 0, files: [] };
136
- const jobs = [];
137
- for (const file of candidates) {
138
- const hash = hashFile(file.path);
139
- const existing = manifest.files[file.path];
140
- if (existing && existing.hash === hash && !opts.force) {
141
- result.skipped++;
142
- result.files.push({ path: file.path, status: "skipped", reason: "unchanged" });
143
- continue;
144
- }
145
- if (opts.dryRun) {
146
- result.scanned++;
147
- result.files.push({ path: file.path, status: "ingested", reason: existing ? "changed" : "new" });
148
- continue;
149
- }
150
- const content = readFileSync(file.path, "utf-8");
151
- if (!content.trim()) {
152
- result.skipped++;
153
- result.files.push({ path: file.path, status: "skipped", reason: "empty" });
154
- continue;
155
- }
156
- jobs.push({ file, hash, existing, content });
157
- }
158
- if (opts.dryRun || jobs.length === 0) {
159
- if (!opts.dryRun)
160
- saveManifest(manifest);
161
- return result;
162
- }
163
- // Ingest concurrently
164
- // TODO: Replace with server-side batch endpoint (POST /v1/context/batch) once available
165
- const concurrency = Math.min(DEFAULT_CONCURRENCY, jobs.length);
166
- let completed = 0;
167
- await runConcurrent(jobs, concurrency, async (job) => {
168
- try {
169
- await ingestFn(job.content, `file-scan:${job.file.path}`);
170
- manifest.files[job.file.path] = {
171
- hash: job.hash,
172
- size: job.file.size,
173
- scanned_at: new Date().toISOString(),
174
- };
175
- result.scanned++;
176
- result.files.push({ path: job.file.path, status: "ingested", reason: job.existing ? "changed" : "new" });
177
- }
178
- catch (err) {
179
- result.errors++;
180
- result.files.push({ path: job.file.path, status: "error", reason: err instanceof Error ? err.message : String(err) });
181
- }
182
- completed++;
183
- onProgress?.(completed, jobs.length, job.file.path);
184
- });
185
- saveManifest(manifest);
186
- return result;
187
- }
188
- //# sourceMappingURL=file-scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-scanner.js","sourceRoot":"","sources":["../../src/lib/file-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAkClC,oBAAoB;AAEpB,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,yBAAyB,CAAC,CAAC;AAEhF,MAAM,kBAAkB,GAAG;IACzB,YAAY;IACZ,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACtC,gBAAgB;IAChB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACzD,iBAAiB;IACjB,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO;IACjE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAC/B,iBAAiB;IACjB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IACvC,cAAc;IACd,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;CAC/C,CAAC;AACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO;IACxE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa;CAC9C,CAAC,CAAC;AAEH,0BAA0B;AAE1B,MAAM,UAAU,cAAc,CAAC,SAAgC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAChD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACjD,6DAA6D;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAChD,MAAM,UAAU,GAAG,SAAS,EAAE,UAAU;WACnC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAE9E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACnD,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ;WAC/B,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC5C,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK;WACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9C,OAAO;QACL,UAAU;QACV,QAAQ;QACR,KAAK;QACL,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,KAAK;QAChC,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,KAAK;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACvC,OAAO,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC;AACpC,CAAC;AAED,mBAAmB;AAEnB,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;QACzC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAClF,CAAC;AAUD,SAAS,aAAa,CACpB,GAAW,EACX,UAAuB,EACvB,QAAgB,EAChB,YAAY,GAAG,CAAC;IAEhB,IAAI,YAAY,GAAG,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAC5D,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kBAAkB;AAElB,SAAS,QAAQ,CAAC,QAAgB;IAChC,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,6BAA6B;AAE7B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,KAAK,UAAU,aAAa,CAC1B,KAAU,EACV,WAAmB,EACnB,EAA6C;IAE7C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,UAAU,MAAM;QACnB,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;YACnB,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5F,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,kBAAkB;AAElB,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,IAAiB,EACjB,QAAgE,EAChE,UAAuE;IAEvE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEpG,iBAAiB;IACjB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE7D,2DAA2D;IAC3D,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAc,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;IACrF,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAS5E,MAAM,IAAI,GAAgB,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/E,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACjG,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3E,SAAS;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB;IACtB,wFAAwF;IACxF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,MAAM,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACnD,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAE1D,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;gBACnB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YAEF,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxH,CAAC;QAED,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC"}