claude-code-tools 1.0.10__py3-none-any.whl

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.

Potentially problematic release.


This version of claude-code-tools might be problematic. Click here for more details.

Files changed (1807) hide show
  1. claude_code_tools/__init__.py +3 -0
  2. claude_code_tools/action_rpc.py +403 -0
  3. claude_code_tools/aichat.py +1718 -0
  4. claude_code_tools/claude_continue.py +299 -0
  5. claude_code_tools/codex_continue.py +309 -0
  6. claude_code_tools/config.py +93 -0
  7. claude_code_tools/delete_session.py +194 -0
  8. claude_code_tools/dotenv_vault.py +268 -0
  9. claude_code_tools/env_safe.py +235 -0
  10. claude_code_tools/export_all.py +342 -0
  11. claude_code_tools/export_claude_session.py +481 -0
  12. claude_code_tools/export_codex_session.py +466 -0
  13. claude_code_tools/export_session.py +573 -0
  14. claude_code_tools/find_claude_session.py +1741 -0
  15. claude_code_tools/find_codex_session.py +1329 -0
  16. claude_code_tools/find_original_session.py +134 -0
  17. claude_code_tools/find_session.py +1086 -0
  18. claude_code_tools/find_trimmed_sessions.py +259 -0
  19. claude_code_tools/node_menu_ui.py +406 -0
  20. claude_code_tools/search_index.py +1247 -0
  21. claude_code_tools/session_lineage.py +260 -0
  22. claude_code_tools/session_menu.py +187 -0
  23. claude_code_tools/session_menu_cli.py +448 -0
  24. claude_code_tools/session_tui.py +516 -0
  25. claude_code_tools/session_utils.py +1313 -0
  26. claude_code_tools/smart_trim.py +424 -0
  27. claude_code_tools/smart_trim_core.py +616 -0
  28. claude_code_tools/tmux_cli_controller.py +928 -0
  29. claude_code_tools/tmux_remote_controller.py +229 -0
  30. claude_code_tools/trim_session.py +817 -0
  31. claude_code_tools/trim_session_claude.py +319 -0
  32. claude_code_tools/trim_session_codex.py +344 -0
  33. claude_code_tools-1.0.10.dist-info/METADATA +685 -0
  34. claude_code_tools-1.0.10.dist-info/RECORD +1807 -0
  35. claude_code_tools-1.0.10.dist-info/WHEEL +4 -0
  36. claude_code_tools-1.0.10.dist-info/entry_points.txt +5 -0
  37. claude_code_tools-1.0.10.dist-info/licenses/LICENSE +21 -0
  38. docs/cc-codex-instructions.md +37 -0
  39. docs/claude-code-chutes.md +138 -0
  40. docs/claude-code-tmux-tutorials.md +105 -0
  41. docs/dot-zshrc.md +307 -0
  42. docs/find-claude-session.md +149 -0
  43. docs/lmsh.md +70 -0
  44. docs/reddit-post.md +55 -0
  45. docs/tmux-cli-instructions.md +186 -0
  46. docs/vault-documentation.md +161 -0
  47. node_ui/action_config.js +72 -0
  48. node_ui/menu.js +2367 -0
  49. node_ui/node_modules/.bin/is-in-ci +5 -0
  50. node_ui/node_modules/.bin/loose-envify +16 -0
  51. node_ui/node_modules/.package-lock.json +714 -0
  52. node_ui/node_modules/@alcalzone/ansi-tokenize/README.md +248 -0
  53. node_ui/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.d.ts +11 -0
  54. node_ui/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.js +41 -0
  55. node_ui/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.js.map +1 -0
  56. node_ui/node_modules/@alcalzone/ansi-tokenize/build/diff.d.ts +6 -0
  57. node_ui/node_modules/@alcalzone/ansi-tokenize/build/diff.js +17 -0
  58. node_ui/node_modules/@alcalzone/ansi-tokenize/build/diff.js.map +1 -0
  59. node_ui/node_modules/@alcalzone/ansi-tokenize/build/index.d.ts +6 -0
  60. node_ui/node_modules/@alcalzone/ansi-tokenize/build/index.js +7 -0
  61. node_ui/node_modules/@alcalzone/ansi-tokenize/build/index.js.map +1 -0
  62. node_ui/node_modules/@alcalzone/ansi-tokenize/build/reduce.d.ts +5 -0
  63. node_ui/node_modules/@alcalzone/ansi-tokenize/build/reduce.js +27 -0
  64. node_ui/node_modules/@alcalzone/ansi-tokenize/build/reduce.js.map +1 -0
  65. node_ui/node_modules/@alcalzone/ansi-tokenize/build/styledChars.d.ts +6 -0
  66. node_ui/node_modules/@alcalzone/ansi-tokenize/build/styledChars.js +38 -0
  67. node_ui/node_modules/@alcalzone/ansi-tokenize/build/styledChars.js.map +1 -0
  68. node_ui/node_modules/@alcalzone/ansi-tokenize/build/tokenize.d.ts +12 -0
  69. node_ui/node_modules/@alcalzone/ansi-tokenize/build/tokenize.js +70 -0
  70. node_ui/node_modules/@alcalzone/ansi-tokenize/build/tokenize.js.map +1 -0
  71. node_ui/node_modules/@alcalzone/ansi-tokenize/build/undo.d.ts +3 -0
  72. node_ui/node_modules/@alcalzone/ansi-tokenize/build/undo.js +11 -0
  73. node_ui/node_modules/@alcalzone/ansi-tokenize/build/undo.js.map +1 -0
  74. node_ui/node_modules/@alcalzone/ansi-tokenize/package.json +63 -0
  75. node_ui/node_modules/ansi-escapes/base.d.ts +292 -0
  76. node_ui/node_modules/ansi-escapes/base.js +198 -0
  77. node_ui/node_modules/ansi-escapes/index.d.ts +2 -0
  78. node_ui/node_modules/ansi-escapes/index.js +2 -0
  79. node_ui/node_modules/ansi-escapes/license +9 -0
  80. node_ui/node_modules/ansi-escapes/package.json +70 -0
  81. node_ui/node_modules/ansi-escapes/readme.md +284 -0
  82. node_ui/node_modules/ansi-regex/index.d.ts +33 -0
  83. node_ui/node_modules/ansi-regex/index.js +14 -0
  84. node_ui/node_modules/ansi-regex/license +9 -0
  85. node_ui/node_modules/ansi-regex/package.json +61 -0
  86. node_ui/node_modules/ansi-regex/readme.md +66 -0
  87. node_ui/node_modules/ansi-styles/index.d.ts +236 -0
  88. node_ui/node_modules/ansi-styles/index.js +223 -0
  89. node_ui/node_modules/ansi-styles/license +9 -0
  90. node_ui/node_modules/ansi-styles/package.json +54 -0
  91. node_ui/node_modules/ansi-styles/readme.md +173 -0
  92. node_ui/node_modules/auto-bind/index.d.ts +50 -0
  93. node_ui/node_modules/auto-bind/index.js +41 -0
  94. node_ui/node_modules/auto-bind/license +9 -0
  95. node_ui/node_modules/auto-bind/package.json +51 -0
  96. node_ui/node_modules/auto-bind/react.d.ts +26 -0
  97. node_ui/node_modules/auto-bind/react.js +28 -0
  98. node_ui/node_modules/auto-bind/readme.md +92 -0
  99. node_ui/node_modules/chalk/license +9 -0
  100. node_ui/node_modules/chalk/package.json +83 -0
  101. node_ui/node_modules/chalk/readme.md +325 -0
  102. node_ui/node_modules/chalk/source/index.d.ts +320 -0
  103. node_ui/node_modules/chalk/source/index.js +225 -0
  104. node_ui/node_modules/chalk/source/utilities.js +33 -0
  105. node_ui/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  106. node_ui/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  107. node_ui/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  108. node_ui/node_modules/chalk/source/vendor/supports-color/browser.js +30 -0
  109. node_ui/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  110. node_ui/node_modules/chalk/source/vendor/supports-color/index.js +182 -0
  111. node_ui/node_modules/cli-boxes/boxes.json +82 -0
  112. node_ui/node_modules/cli-boxes/index.d.ts +127 -0
  113. node_ui/node_modules/cli-boxes/index.js +6 -0
  114. node_ui/node_modules/cli-boxes/license +9 -0
  115. node_ui/node_modules/cli-boxes/package.json +42 -0
  116. node_ui/node_modules/cli-boxes/readme.md +115 -0
  117. node_ui/node_modules/cli-cursor/index.d.ts +47 -0
  118. node_ui/node_modules/cli-cursor/index.js +39 -0
  119. node_ui/node_modules/cli-cursor/license +9 -0
  120. node_ui/node_modules/cli-cursor/package.json +49 -0
  121. node_ui/node_modules/cli-cursor/readme.md +51 -0
  122. node_ui/node_modules/cli-truncate/index.d.ts +116 -0
  123. node_ui/node_modules/cli-truncate/index.js +99 -0
  124. node_ui/node_modules/cli-truncate/license +9 -0
  125. node_ui/node_modules/cli-truncate/node_modules/slice-ansi/index.js +105 -0
  126. node_ui/node_modules/cli-truncate/node_modules/slice-ansi/license +10 -0
  127. node_ui/node_modules/cli-truncate/node_modules/slice-ansi/package.json +53 -0
  128. node_ui/node_modules/cli-truncate/node_modules/slice-ansi/readme.md +66 -0
  129. node_ui/node_modules/cli-truncate/package.json +51 -0
  130. node_ui/node_modules/cli-truncate/readme.md +150 -0
  131. node_ui/node_modules/code-excerpt/dist/index.d.ts +9 -0
  132. node_ui/node_modules/code-excerpt/dist/index.js +27 -0
  133. node_ui/node_modules/code-excerpt/license +21 -0
  134. node_ui/node_modules/code-excerpt/package.json +43 -0
  135. node_ui/node_modules/code-excerpt/readme.md +65 -0
  136. node_ui/node_modules/convert-to-spaces/dist/index.d.ts +2 -0
  137. node_ui/node_modules/convert-to-spaces/dist/index.js +4 -0
  138. node_ui/node_modules/convert-to-spaces/license +21 -0
  139. node_ui/node_modules/convert-to-spaces/package.json +40 -0
  140. node_ui/node_modules/convert-to-spaces/readme.md +39 -0
  141. node_ui/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  142. node_ui/node_modules/emoji-regex/README.md +107 -0
  143. node_ui/node_modules/emoji-regex/index.d.ts +3 -0
  144. node_ui/node_modules/emoji-regex/index.js +4 -0
  145. node_ui/node_modules/emoji-regex/index.mjs +4 -0
  146. node_ui/node_modules/emoji-regex/package.json +45 -0
  147. node_ui/node_modules/environment/index.d.ts +74 -0
  148. node_ui/node_modules/environment/index.js +47 -0
  149. node_ui/node_modules/environment/license +9 -0
  150. node_ui/node_modules/environment/package.json +74 -0
  151. node_ui/node_modules/environment/readme.md +94 -0
  152. node_ui/node_modules/escape-string-regexp/index.d.ts +16 -0
  153. node_ui/node_modules/escape-string-regexp/index.js +11 -0
  154. node_ui/node_modules/escape-string-regexp/license +9 -0
  155. node_ui/node_modules/escape-string-regexp/package.json +40 -0
  156. node_ui/node_modules/escape-string-regexp/readme.md +34 -0
  157. node_ui/node_modules/figures/index.d.ts +269 -0
  158. node_ui/node_modules/figures/index.js +322 -0
  159. node_ui/node_modules/figures/license +9 -0
  160. node_ui/node_modules/figures/package.json +46 -0
  161. node_ui/node_modules/figures/readme.md +328 -0
  162. node_ui/node_modules/get-east-asian-width/index.d.ts +60 -0
  163. node_ui/node_modules/get-east-asian-width/index.js +30 -0
  164. node_ui/node_modules/get-east-asian-width/license +9 -0
  165. node_ui/node_modules/get-east-asian-width/lookup.js +403 -0
  166. node_ui/node_modules/get-east-asian-width/package.json +70 -0
  167. node_ui/node_modules/get-east-asian-width/readme.md +65 -0
  168. node_ui/node_modules/indent-string/index.d.ts +38 -0
  169. node_ui/node_modules/indent-string/index.js +38 -0
  170. node_ui/node_modules/indent-string/license +9 -0
  171. node_ui/node_modules/indent-string/package.json +40 -0
  172. node_ui/node_modules/indent-string/readme.md +73 -0
  173. node_ui/node_modules/ink/build/apply-styles.js +175 -0
  174. node_ui/node_modules/ink/build/build-layout.js +77 -0
  175. node_ui/node_modules/ink/build/calculate-wrapped-text.js +53 -0
  176. node_ui/node_modules/ink/build/colorize.d.ts +3 -0
  177. node_ui/node_modules/ink/build/colorize.js +48 -0
  178. node_ui/node_modules/ink/build/colorize.js.map +1 -0
  179. node_ui/node_modules/ink/build/components/App.d.ts +61 -0
  180. node_ui/node_modules/ink/build/components/App.js +286 -0
  181. node_ui/node_modules/ink/build/components/App.js.map +1 -0
  182. node_ui/node_modules/ink/build/components/AppContext.d.ts +12 -0
  183. node_ui/node_modules/ink/build/components/AppContext.js +11 -0
  184. node_ui/node_modules/ink/build/components/AppContext.js.map +1 -0
  185. node_ui/node_modules/ink/build/components/Box.d.ts +62 -0
  186. node_ui/node_modules/ink/build/components/Box.js +20 -0
  187. node_ui/node_modules/ink/build/components/Box.js.map +1 -0
  188. node_ui/node_modules/ink/build/components/Color.js +62 -0
  189. node_ui/node_modules/ink/build/components/ErrorOverview.d.ts +6 -0
  190. node_ui/node_modules/ink/build/components/ErrorOverview.js +79 -0
  191. node_ui/node_modules/ink/build/components/ErrorOverview.js.map +1 -0
  192. node_ui/node_modules/ink/build/components/FocusContext.d.ts +17 -0
  193. node_ui/node_modules/ink/build/components/FocusContext.js +17 -0
  194. node_ui/node_modules/ink/build/components/FocusContext.js.map +1 -0
  195. node_ui/node_modules/ink/build/components/Newline.d.ts +13 -0
  196. node_ui/node_modules/ink/build/components/Newline.js +8 -0
  197. node_ui/node_modules/ink/build/components/Newline.js.map +1 -0
  198. node_ui/node_modules/ink/build/components/Spacer.d.ts +6 -0
  199. node_ui/node_modules/ink/build/components/Spacer.js +10 -0
  200. node_ui/node_modules/ink/build/components/Spacer.js.map +1 -0
  201. node_ui/node_modules/ink/build/components/Static.d.ts +31 -0
  202. node_ui/node_modules/ink/build/components/Static.js +33 -0
  203. node_ui/node_modules/ink/build/components/Static.js.map +1 -0
  204. node_ui/node_modules/ink/build/components/StderrContext.d.ts +19 -0
  205. node_ui/node_modules/ink/build/components/StderrContext.js +13 -0
  206. node_ui/node_modules/ink/build/components/StderrContext.js.map +1 -0
  207. node_ui/node_modules/ink/build/components/StdinContext.d.ts +26 -0
  208. node_ui/node_modules/ink/build/components/StdinContext.js +19 -0
  209. node_ui/node_modules/ink/build/components/StdinContext.js.map +1 -0
  210. node_ui/node_modules/ink/build/components/StdoutContext.d.ts +19 -0
  211. node_ui/node_modules/ink/build/components/StdoutContext.js +13 -0
  212. node_ui/node_modules/ink/build/components/StdoutContext.js.map +1 -0
  213. node_ui/node_modules/ink/build/components/Text.d.ts +49 -0
  214. node_ui/node_modules/ink/build/components/Text.js +40 -0
  215. node_ui/node_modules/ink/build/components/Text.js.map +1 -0
  216. node_ui/node_modules/ink/build/components/Transform.d.ts +15 -0
  217. node_ui/node_modules/ink/build/components/Transform.js +14 -0
  218. node_ui/node_modules/ink/build/components/Transform.js.map +1 -0
  219. node_ui/node_modules/ink/build/devtools-window-polyfill.d.ts +1 -0
  220. node_ui/node_modules/ink/build/devtools-window-polyfill.js +64 -0
  221. node_ui/node_modules/ink/build/devtools-window-polyfill.js.map +1 -0
  222. node_ui/node_modules/ink/build/devtools.d.ts +1 -0
  223. node_ui/node_modules/ink/build/devtools.js +9 -0
  224. node_ui/node_modules/ink/build/devtools.js.map +1 -0
  225. node_ui/node_modules/ink/build/dom.d.ts +42 -0
  226. node_ui/node_modules/ink/build/dom.js +117 -0
  227. node_ui/node_modules/ink/build/dom.js.map +1 -0
  228. node_ui/node_modules/ink/build/experimental/apply-style.js +140 -0
  229. node_ui/node_modules/ink/build/experimental/dom.js +123 -0
  230. node_ui/node_modules/ink/build/experimental/output.js +91 -0
  231. node_ui/node_modules/ink/build/experimental/reconciler.js +141 -0
  232. node_ui/node_modules/ink/build/experimental/renderer.js +81 -0
  233. node_ui/node_modules/ink/build/get-max-width.d.ts +3 -0
  234. node_ui/node_modules/ink/build/get-max-width.js +10 -0
  235. node_ui/node_modules/ink/build/get-max-width.js.map +1 -0
  236. node_ui/node_modules/ink/build/hooks/use-app.d.ts +5 -0
  237. node_ui/node_modules/ink/build/hooks/use-app.js +8 -0
  238. node_ui/node_modules/ink/build/hooks/use-app.js.map +1 -0
  239. node_ui/node_modules/ink/build/hooks/use-focus-manager.d.ts +34 -0
  240. node_ui/node_modules/ink/build/hooks/use-focus-manager.js +18 -0
  241. node_ui/node_modules/ink/build/hooks/use-focus-manager.js.map +1 -0
  242. node_ui/node_modules/ink/build/hooks/use-focus.d.ts +34 -0
  243. node_ui/node_modules/ink/build/hooks/use-focus.js +47 -0
  244. node_ui/node_modules/ink/build/hooks/use-focus.js.map +1 -0
  245. node_ui/node_modules/ink/build/hooks/use-input.d.ts +97 -0
  246. node_ui/node_modules/ink/build/hooks/use-input.js +96 -0
  247. node_ui/node_modules/ink/build/hooks/use-input.js.map +1 -0
  248. node_ui/node_modules/ink/build/hooks/use-stderr.d.ts +5 -0
  249. node_ui/node_modules/ink/build/hooks/use-stderr.js +8 -0
  250. node_ui/node_modules/ink/build/hooks/use-stderr.js.map +1 -0
  251. node_ui/node_modules/ink/build/hooks/use-stdin.d.ts +5 -0
  252. node_ui/node_modules/ink/build/hooks/use-stdin.js +8 -0
  253. node_ui/node_modules/ink/build/hooks/use-stdin.js.map +1 -0
  254. node_ui/node_modules/ink/build/hooks/use-stdout.d.ts +5 -0
  255. node_ui/node_modules/ink/build/hooks/use-stdout.js +8 -0
  256. node_ui/node_modules/ink/build/hooks/use-stdout.js.map +1 -0
  257. node_ui/node_modules/ink/build/hooks/useInput.js +38 -0
  258. node_ui/node_modules/ink/build/index.d.ts +27 -0
  259. node_ui/node_modules/ink/build/index.js +16 -0
  260. node_ui/node_modules/ink/build/index.js.map +1 -0
  261. node_ui/node_modules/ink/build/ink.d.ts +38 -0
  262. node_ui/node_modules/ink/build/ink.js +235 -0
  263. node_ui/node_modules/ink/build/ink.js.map +1 -0
  264. node_ui/node_modules/ink/build/instance.js +205 -0
  265. node_ui/node_modules/ink/build/instances.d.ts +4 -0
  266. node_ui/node_modules/ink/build/instances.js +8 -0
  267. node_ui/node_modules/ink/build/instances.js.map +1 -0
  268. node_ui/node_modules/ink/build/log-update.d.ts +13 -0
  269. node_ui/node_modules/ink/build/log-update.js +37 -0
  270. node_ui/node_modules/ink/build/log-update.js.map +1 -0
  271. node_ui/node_modules/ink/build/measure-element.d.ts +16 -0
  272. node_ui/node_modules/ink/build/measure-element.js +9 -0
  273. node_ui/node_modules/ink/build/measure-element.js.map +1 -0
  274. node_ui/node_modules/ink/build/measure-text.d.ts +6 -0
  275. node_ui/node_modules/ink/build/measure-text.js +20 -0
  276. node_ui/node_modules/ink/build/measure-text.js.map +1 -0
  277. node_ui/node_modules/ink/build/output.d.ts +35 -0
  278. node_ui/node_modules/ink/build/output.js +148 -0
  279. node_ui/node_modules/ink/build/output.js.map +1 -0
  280. node_ui/node_modules/ink/build/parse-keypress.d.ts +15 -0
  281. node_ui/node_modules/ink/build/parse-keypress.js +225 -0
  282. node_ui/node_modules/ink/build/parse-keypress.js.map +1 -0
  283. node_ui/node_modules/ink/build/reconciler.d.ts +4 -0
  284. node_ui/node_modules/ink/build/reconciler.js +219 -0
  285. node_ui/node_modules/ink/build/reconciler.js.map +1 -0
  286. node_ui/node_modules/ink/build/render-border.d.ts +4 -0
  287. node_ui/node_modules/ink/build/render-border.js +73 -0
  288. node_ui/node_modules/ink/build/render-border.js.map +1 -0
  289. node_ui/node_modules/ink/build/render-node-to-output.d.ts +10 -0
  290. node_ui/node_modules/ink/build/render-node-to-output.js +99 -0
  291. node_ui/node_modules/ink/build/render-node-to-output.js.map +1 -0
  292. node_ui/node_modules/ink/build/render.d.ts +68 -0
  293. node_ui/node_modules/ink/build/render.js +48 -0
  294. node_ui/node_modules/ink/build/render.js.map +1 -0
  295. node_ui/node_modules/ink/build/renderer.d.ts +8 -0
  296. node_ui/node_modules/ink/build/renderer.js +36 -0
  297. node_ui/node_modules/ink/build/renderer.js.map +1 -0
  298. node_ui/node_modules/ink/build/squash-text-nodes.d.ts +3 -0
  299. node_ui/node_modules/ink/build/squash-text-nodes.js +35 -0
  300. node_ui/node_modules/ink/build/squash-text-nodes.js.map +1 -0
  301. node_ui/node_modules/ink/build/styles.d.ts +243 -0
  302. node_ui/node_modules/ink/build/styles.js +229 -0
  303. node_ui/node_modules/ink/build/styles.js.map +1 -0
  304. node_ui/node_modules/ink/build/wrap-text.d.ts +3 -0
  305. node_ui/node_modules/ink/build/wrap-text.js +31 -0
  306. node_ui/node_modules/ink/build/wrap-text.js.map +1 -0
  307. node_ui/node_modules/ink/license +9 -0
  308. node_ui/node_modules/ink/package.json +197 -0
  309. node_ui/node_modules/ink/readme.md +2153 -0
  310. node_ui/node_modules/ink-select-input/build/Indicator.d.ts +6 -0
  311. node_ui/node_modules/ink-select-input/build/Indicator.js +8 -0
  312. node_ui/node_modules/ink-select-input/build/Indicator.js.map +1 -0
  313. node_ui/node_modules/ink-select-input/build/Item.d.ts +7 -0
  314. node_ui/node_modules/ink-select-input/build/Item.js +7 -0
  315. node_ui/node_modules/ink-select-input/build/Item.js.map +1 -0
  316. node_ui/node_modules/ink-select-input/build/SelectInput.d.ts +49 -0
  317. node_ui/node_modules/ink-select-input/build/SelectInput.js +83 -0
  318. node_ui/node_modules/ink-select-input/build/SelectInput.js.map +1 -0
  319. node_ui/node_modules/ink-select-input/build/index.d.ts +3 -0
  320. node_ui/node_modules/ink-select-input/build/index.js +4 -0
  321. node_ui/node_modules/ink-select-input/build/index.js.map +1 -0
  322. node_ui/node_modules/ink-select-input/license +9 -0
  323. node_ui/node_modules/ink-select-input/node_modules/figures/index.d.ts +279 -0
  324. node_ui/node_modules/ink-select-input/node_modules/figures/index.js +292 -0
  325. node_ui/node_modules/ink-select-input/node_modules/figures/license +9 -0
  326. node_ui/node_modules/ink-select-input/node_modules/figures/package.json +49 -0
  327. node_ui/node_modules/ink-select-input/node_modules/figures/readme.md +337 -0
  328. node_ui/node_modules/ink-select-input/node_modules/is-unicode-supported/index.d.ts +12 -0
  329. node_ui/node_modules/ink-select-input/node_modules/is-unicode-supported/index.js +21 -0
  330. node_ui/node_modules/ink-select-input/node_modules/is-unicode-supported/license +9 -0
  331. node_ui/node_modules/ink-select-input/node_modules/is-unicode-supported/package.json +47 -0
  332. node_ui/node_modules/ink-select-input/node_modules/is-unicode-supported/readme.md +35 -0
  333. node_ui/node_modules/ink-select-input/package.json +83 -0
  334. node_ui/node_modules/ink-select-input/readme.md +98 -0
  335. node_ui/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  336. node_ui/node_modules/is-fullwidth-code-point/index.js +40 -0
  337. node_ui/node_modules/is-fullwidth-code-point/license +9 -0
  338. node_ui/node_modules/is-fullwidth-code-point/package.json +45 -0
  339. node_ui/node_modules/is-fullwidth-code-point/readme.md +43 -0
  340. node_ui/node_modules/is-in-ci/cli.js +5 -0
  341. node_ui/node_modules/is-in-ci/index.d.ts +15 -0
  342. node_ui/node_modules/is-in-ci/index.js +11 -0
  343. node_ui/node_modules/is-in-ci/license +9 -0
  344. node_ui/node_modules/is-in-ci/package.json +48 -0
  345. node_ui/node_modules/is-in-ci/readme.md +43 -0
  346. node_ui/node_modules/is-unicode-supported/index.d.ts +12 -0
  347. node_ui/node_modules/is-unicode-supported/index.js +17 -0
  348. node_ui/node_modules/is-unicode-supported/license +9 -0
  349. node_ui/node_modules/is-unicode-supported/package.json +43 -0
  350. node_ui/node_modules/is-unicode-supported/readme.md +35 -0
  351. node_ui/node_modules/js-tokens/CHANGELOG.md +151 -0
  352. node_ui/node_modules/js-tokens/LICENSE +21 -0
  353. node_ui/node_modules/js-tokens/README.md +240 -0
  354. node_ui/node_modules/js-tokens/index.js +23 -0
  355. node_ui/node_modules/js-tokens/package.json +30 -0
  356. node_ui/node_modules/lodash/LICENSE +47 -0
  357. node_ui/node_modules/lodash/README.md +39 -0
  358. node_ui/node_modules/lodash/_DataView.js +7 -0
  359. node_ui/node_modules/lodash/_Hash.js +32 -0
  360. node_ui/node_modules/lodash/_LazyWrapper.js +28 -0
  361. node_ui/node_modules/lodash/_ListCache.js +32 -0
  362. node_ui/node_modules/lodash/_LodashWrapper.js +22 -0
  363. node_ui/node_modules/lodash/_Map.js +7 -0
  364. node_ui/node_modules/lodash/_MapCache.js +32 -0
  365. node_ui/node_modules/lodash/_Promise.js +7 -0
  366. node_ui/node_modules/lodash/_Set.js +7 -0
  367. node_ui/node_modules/lodash/_SetCache.js +27 -0
  368. node_ui/node_modules/lodash/_Stack.js +27 -0
  369. node_ui/node_modules/lodash/_Symbol.js +6 -0
  370. node_ui/node_modules/lodash/_Uint8Array.js +6 -0
  371. node_ui/node_modules/lodash/_WeakMap.js +7 -0
  372. node_ui/node_modules/lodash/_apply.js +21 -0
  373. node_ui/node_modules/lodash/_arrayAggregator.js +22 -0
  374. node_ui/node_modules/lodash/_arrayEach.js +22 -0
  375. node_ui/node_modules/lodash/_arrayEachRight.js +21 -0
  376. node_ui/node_modules/lodash/_arrayEvery.js +23 -0
  377. node_ui/node_modules/lodash/_arrayFilter.js +25 -0
  378. node_ui/node_modules/lodash/_arrayIncludes.js +17 -0
  379. node_ui/node_modules/lodash/_arrayIncludesWith.js +22 -0
  380. node_ui/node_modules/lodash/_arrayLikeKeys.js +49 -0
  381. node_ui/node_modules/lodash/_arrayMap.js +21 -0
  382. node_ui/node_modules/lodash/_arrayPush.js +20 -0
  383. node_ui/node_modules/lodash/_arrayReduce.js +26 -0
  384. node_ui/node_modules/lodash/_arrayReduceRight.js +24 -0
  385. node_ui/node_modules/lodash/_arraySample.js +15 -0
  386. node_ui/node_modules/lodash/_arraySampleSize.js +17 -0
  387. node_ui/node_modules/lodash/_arrayShuffle.js +15 -0
  388. node_ui/node_modules/lodash/_arraySome.js +23 -0
  389. node_ui/node_modules/lodash/_asciiSize.js +12 -0
  390. node_ui/node_modules/lodash/_asciiToArray.js +12 -0
  391. node_ui/node_modules/lodash/_asciiWords.js +15 -0
  392. node_ui/node_modules/lodash/_assignMergeValue.js +20 -0
  393. node_ui/node_modules/lodash/_assignValue.js +28 -0
  394. node_ui/node_modules/lodash/_assocIndexOf.js +21 -0
  395. node_ui/node_modules/lodash/_baseAggregator.js +21 -0
  396. node_ui/node_modules/lodash/_baseAssign.js +17 -0
  397. node_ui/node_modules/lodash/_baseAssignIn.js +17 -0
  398. node_ui/node_modules/lodash/_baseAssignValue.js +25 -0
  399. node_ui/node_modules/lodash/_baseAt.js +23 -0
  400. node_ui/node_modules/lodash/_baseClamp.js +22 -0
  401. node_ui/node_modules/lodash/_baseClone.js +166 -0
  402. node_ui/node_modules/lodash/_baseConforms.js +18 -0
  403. node_ui/node_modules/lodash/_baseConformsTo.js +27 -0
  404. node_ui/node_modules/lodash/_baseCreate.js +30 -0
  405. node_ui/node_modules/lodash/_baseDelay.js +21 -0
  406. node_ui/node_modules/lodash/_baseDifference.js +67 -0
  407. node_ui/node_modules/lodash/_baseEach.js +14 -0
  408. node_ui/node_modules/lodash/_baseEachRight.js +14 -0
  409. node_ui/node_modules/lodash/_baseEvery.js +21 -0
  410. node_ui/node_modules/lodash/_baseExtremum.js +32 -0
  411. node_ui/node_modules/lodash/_baseFill.js +32 -0
  412. node_ui/node_modules/lodash/_baseFilter.js +21 -0
  413. node_ui/node_modules/lodash/_baseFindIndex.js +24 -0
  414. node_ui/node_modules/lodash/_baseFindKey.js +23 -0
  415. node_ui/node_modules/lodash/_baseFlatten.js +38 -0
  416. node_ui/node_modules/lodash/_baseFor.js +16 -0
  417. node_ui/node_modules/lodash/_baseForOwn.js +16 -0
  418. node_ui/node_modules/lodash/_baseForOwnRight.js +16 -0
  419. node_ui/node_modules/lodash/_baseForRight.js +15 -0
  420. node_ui/node_modules/lodash/_baseFunctions.js +19 -0
  421. node_ui/node_modules/lodash/_baseGet.js +24 -0
  422. node_ui/node_modules/lodash/_baseGetAllKeys.js +20 -0
  423. node_ui/node_modules/lodash/_baseGetTag.js +28 -0
  424. node_ui/node_modules/lodash/_baseGt.js +14 -0
  425. node_ui/node_modules/lodash/_baseHas.js +19 -0
  426. node_ui/node_modules/lodash/_baseHasIn.js +13 -0
  427. node_ui/node_modules/lodash/_baseInRange.js +18 -0
  428. node_ui/node_modules/lodash/_baseIndexOf.js +20 -0
  429. node_ui/node_modules/lodash/_baseIndexOfWith.js +23 -0
  430. node_ui/node_modules/lodash/_baseIntersection.js +74 -0
  431. node_ui/node_modules/lodash/_baseInverter.js +21 -0
  432. node_ui/node_modules/lodash/_baseInvoke.js +24 -0
  433. node_ui/node_modules/lodash/_baseIsArguments.js +18 -0
  434. node_ui/node_modules/lodash/_baseIsArrayBuffer.js +17 -0
  435. node_ui/node_modules/lodash/_baseIsDate.js +18 -0
  436. node_ui/node_modules/lodash/_baseIsEqual.js +28 -0
  437. node_ui/node_modules/lodash/_baseIsEqualDeep.js +83 -0
  438. node_ui/node_modules/lodash/_baseIsMap.js +18 -0
  439. node_ui/node_modules/lodash/_baseIsMatch.js +62 -0
  440. node_ui/node_modules/lodash/_baseIsNaN.js +12 -0
  441. node_ui/node_modules/lodash/_baseIsNative.js +47 -0
  442. node_ui/node_modules/lodash/_baseIsRegExp.js +18 -0
  443. node_ui/node_modules/lodash/_baseIsSet.js +18 -0
  444. node_ui/node_modules/lodash/_baseIsTypedArray.js +60 -0
  445. node_ui/node_modules/lodash/_baseIteratee.js +31 -0
  446. node_ui/node_modules/lodash/_baseKeys.js +30 -0
  447. node_ui/node_modules/lodash/_baseKeysIn.js +33 -0
  448. node_ui/node_modules/lodash/_baseLodash.js +10 -0
  449. node_ui/node_modules/lodash/_baseLt.js +14 -0
  450. node_ui/node_modules/lodash/_baseMap.js +22 -0
  451. node_ui/node_modules/lodash/_baseMatches.js +22 -0
  452. node_ui/node_modules/lodash/_baseMatchesProperty.js +33 -0
  453. node_ui/node_modules/lodash/_baseMean.js +20 -0
  454. node_ui/node_modules/lodash/_baseMerge.js +42 -0
  455. node_ui/node_modules/lodash/_baseMergeDeep.js +94 -0
  456. node_ui/node_modules/lodash/_baseNth.js +20 -0
  457. node_ui/node_modules/lodash/_baseOrderBy.js +49 -0
  458. node_ui/node_modules/lodash/_basePick.js +19 -0
  459. node_ui/node_modules/lodash/_basePickBy.js +30 -0
  460. node_ui/node_modules/lodash/_baseProperty.js +14 -0
  461. node_ui/node_modules/lodash/_basePropertyDeep.js +16 -0
  462. node_ui/node_modules/lodash/_basePropertyOf.js +14 -0
  463. node_ui/node_modules/lodash/_basePullAll.js +51 -0
  464. node_ui/node_modules/lodash/_basePullAt.js +37 -0
  465. node_ui/node_modules/lodash/_baseRandom.js +18 -0
  466. node_ui/node_modules/lodash/_baseRange.js +28 -0
  467. node_ui/node_modules/lodash/_baseReduce.js +23 -0
  468. node_ui/node_modules/lodash/_baseRepeat.js +35 -0
  469. node_ui/node_modules/lodash/_baseRest.js +17 -0
  470. node_ui/node_modules/lodash/_baseSample.js +15 -0
  471. node_ui/node_modules/lodash/_baseSampleSize.js +18 -0
  472. node_ui/node_modules/lodash/_baseSet.js +51 -0
  473. node_ui/node_modules/lodash/_baseSetData.js +17 -0
  474. node_ui/node_modules/lodash/_baseSetToString.js +22 -0
  475. node_ui/node_modules/lodash/_baseShuffle.js +15 -0
  476. node_ui/node_modules/lodash/_baseSlice.js +31 -0
  477. node_ui/node_modules/lodash/_baseSome.js +22 -0
  478. node_ui/node_modules/lodash/_baseSortBy.js +21 -0
  479. node_ui/node_modules/lodash/_baseSortedIndex.js +42 -0
  480. node_ui/node_modules/lodash/_baseSortedIndexBy.js +67 -0
  481. node_ui/node_modules/lodash/_baseSortedUniq.js +30 -0
  482. node_ui/node_modules/lodash/_baseSum.js +24 -0
  483. node_ui/node_modules/lodash/_baseTimes.js +20 -0
  484. node_ui/node_modules/lodash/_baseToNumber.js +24 -0
  485. node_ui/node_modules/lodash/_baseToPairs.js +18 -0
  486. node_ui/node_modules/lodash/_baseToString.js +37 -0
  487. node_ui/node_modules/lodash/_baseTrim.js +19 -0
  488. node_ui/node_modules/lodash/_baseUnary.js +14 -0
  489. node_ui/node_modules/lodash/_baseUniq.js +72 -0
  490. node_ui/node_modules/lodash/_baseUnset.js +20 -0
  491. node_ui/node_modules/lodash/_baseUpdate.js +18 -0
  492. node_ui/node_modules/lodash/_baseValues.js +19 -0
  493. node_ui/node_modules/lodash/_baseWhile.js +26 -0
  494. node_ui/node_modules/lodash/_baseWrapperValue.js +25 -0
  495. node_ui/node_modules/lodash/_baseXor.js +36 -0
  496. node_ui/node_modules/lodash/_baseZipObject.js +23 -0
  497. node_ui/node_modules/lodash/_cacheHas.js +13 -0
  498. node_ui/node_modules/lodash/_castArrayLikeObject.js +14 -0
  499. node_ui/node_modules/lodash/_castFunction.js +14 -0
  500. node_ui/node_modules/lodash/_castPath.js +21 -0
  501. node_ui/node_modules/lodash/_castRest.js +14 -0
  502. node_ui/node_modules/lodash/_castSlice.js +18 -0
  503. node_ui/node_modules/lodash/_charsEndIndex.js +19 -0
  504. node_ui/node_modules/lodash/_charsStartIndex.js +20 -0
  505. node_ui/node_modules/lodash/_cloneArrayBuffer.js +16 -0
  506. node_ui/node_modules/lodash/_cloneBuffer.js +35 -0
  507. node_ui/node_modules/lodash/_cloneDataView.js +16 -0
  508. node_ui/node_modules/lodash/_cloneRegExp.js +17 -0
  509. node_ui/node_modules/lodash/_cloneSymbol.js +18 -0
  510. node_ui/node_modules/lodash/_cloneTypedArray.js +16 -0
  511. node_ui/node_modules/lodash/_compareAscending.js +41 -0
  512. node_ui/node_modules/lodash/_compareMultiple.js +44 -0
  513. node_ui/node_modules/lodash/_composeArgs.js +39 -0
  514. node_ui/node_modules/lodash/_composeArgsRight.js +41 -0
  515. node_ui/node_modules/lodash/_copyArray.js +20 -0
  516. node_ui/node_modules/lodash/_copyObject.js +40 -0
  517. node_ui/node_modules/lodash/_copySymbols.js +16 -0
  518. node_ui/node_modules/lodash/_copySymbolsIn.js +16 -0
  519. node_ui/node_modules/lodash/_coreJsData.js +6 -0
  520. node_ui/node_modules/lodash/_countHolders.js +21 -0
  521. node_ui/node_modules/lodash/_createAggregator.js +23 -0
  522. node_ui/node_modules/lodash/_createAssigner.js +37 -0
  523. node_ui/node_modules/lodash/_createBaseEach.js +32 -0
  524. node_ui/node_modules/lodash/_createBaseFor.js +25 -0
  525. node_ui/node_modules/lodash/_createBind.js +28 -0
  526. node_ui/node_modules/lodash/_createCaseFirst.js +33 -0
  527. node_ui/node_modules/lodash/_createCompounder.js +24 -0
  528. node_ui/node_modules/lodash/_createCtor.js +37 -0
  529. node_ui/node_modules/lodash/_createCurry.js +46 -0
  530. node_ui/node_modules/lodash/_createFind.js +25 -0
  531. node_ui/node_modules/lodash/_createFlow.js +78 -0
  532. node_ui/node_modules/lodash/_createHybrid.js +92 -0
  533. node_ui/node_modules/lodash/_createInverter.js +17 -0
  534. node_ui/node_modules/lodash/_createMathOperation.js +38 -0
  535. node_ui/node_modules/lodash/_createOver.js +27 -0
  536. node_ui/node_modules/lodash/_createPadding.js +33 -0
  537. node_ui/node_modules/lodash/_createPartial.js +43 -0
  538. node_ui/node_modules/lodash/_createRange.js +30 -0
  539. node_ui/node_modules/lodash/_createRecurry.js +56 -0
  540. node_ui/node_modules/lodash/_createRelationalOperation.js +20 -0
  541. node_ui/node_modules/lodash/_createRound.js +35 -0
  542. node_ui/node_modules/lodash/_createSet.js +19 -0
  543. node_ui/node_modules/lodash/_createToPairs.js +30 -0
  544. node_ui/node_modules/lodash/_createWrap.js +106 -0
  545. node_ui/node_modules/lodash/_customDefaultsAssignIn.js +29 -0
  546. node_ui/node_modules/lodash/_customDefaultsMerge.js +28 -0
  547. node_ui/node_modules/lodash/_customOmitClone.js +16 -0
  548. node_ui/node_modules/lodash/_deburrLetter.js +71 -0
  549. node_ui/node_modules/lodash/_defineProperty.js +11 -0
  550. node_ui/node_modules/lodash/_equalArrays.js +84 -0
  551. node_ui/node_modules/lodash/_equalByTag.js +112 -0
  552. node_ui/node_modules/lodash/_equalObjects.js +90 -0
  553. node_ui/node_modules/lodash/_escapeHtmlChar.js +21 -0
  554. node_ui/node_modules/lodash/_escapeStringChar.js +22 -0
  555. node_ui/node_modules/lodash/_flatRest.js +16 -0
  556. node_ui/node_modules/lodash/_freeGlobal.js +4 -0
  557. node_ui/node_modules/lodash/_getAllKeys.js +16 -0
  558. node_ui/node_modules/lodash/_getAllKeysIn.js +17 -0
  559. node_ui/node_modules/lodash/_getData.js +15 -0
  560. node_ui/node_modules/lodash/_getFuncName.js +31 -0
  561. node_ui/node_modules/lodash/_getHolder.js +13 -0
  562. node_ui/node_modules/lodash/_getMapData.js +18 -0
  563. node_ui/node_modules/lodash/_getMatchData.js +24 -0
  564. node_ui/node_modules/lodash/_getNative.js +17 -0
  565. node_ui/node_modules/lodash/_getPrototype.js +6 -0
  566. node_ui/node_modules/lodash/_getRawTag.js +46 -0
  567. node_ui/node_modules/lodash/_getSymbols.js +30 -0
  568. node_ui/node_modules/lodash/_getSymbolsIn.js +25 -0
  569. node_ui/node_modules/lodash/_getTag.js +58 -0
  570. node_ui/node_modules/lodash/_getValue.js +13 -0
  571. node_ui/node_modules/lodash/_getView.js +33 -0
  572. node_ui/node_modules/lodash/_getWrapDetails.js +17 -0
  573. node_ui/node_modules/lodash/_hasPath.js +39 -0
  574. node_ui/node_modules/lodash/_hasUnicode.js +26 -0
  575. node_ui/node_modules/lodash/_hasUnicodeWord.js +15 -0
  576. node_ui/node_modules/lodash/_hashClear.js +15 -0
  577. node_ui/node_modules/lodash/_hashDelete.js +17 -0
  578. node_ui/node_modules/lodash/_hashGet.js +30 -0
  579. node_ui/node_modules/lodash/_hashHas.js +23 -0
  580. node_ui/node_modules/lodash/_hashSet.js +23 -0
  581. node_ui/node_modules/lodash/_initCloneArray.js +26 -0
  582. node_ui/node_modules/lodash/_initCloneByTag.js +77 -0
  583. node_ui/node_modules/lodash/_initCloneObject.js +18 -0
  584. node_ui/node_modules/lodash/_insertWrapDetails.js +23 -0
  585. node_ui/node_modules/lodash/_isFlattenable.js +20 -0
  586. node_ui/node_modules/lodash/_isIndex.js +25 -0
  587. node_ui/node_modules/lodash/_isIterateeCall.js +30 -0
  588. node_ui/node_modules/lodash/_isKey.js +29 -0
  589. node_ui/node_modules/lodash/_isKeyable.js +15 -0
  590. node_ui/node_modules/lodash/_isLaziable.js +28 -0
  591. node_ui/node_modules/lodash/_isMaskable.js +14 -0
  592. node_ui/node_modules/lodash/_isMasked.js +20 -0
  593. node_ui/node_modules/lodash/_isPrototype.js +18 -0
  594. node_ui/node_modules/lodash/_isStrictComparable.js +15 -0
  595. node_ui/node_modules/lodash/_iteratorToArray.js +18 -0
  596. node_ui/node_modules/lodash/_lazyClone.js +23 -0
  597. node_ui/node_modules/lodash/_lazyReverse.js +23 -0
  598. node_ui/node_modules/lodash/_lazyValue.js +69 -0
  599. node_ui/node_modules/lodash/_listCacheClear.js +13 -0
  600. node_ui/node_modules/lodash/_listCacheDelete.js +35 -0
  601. node_ui/node_modules/lodash/_listCacheGet.js +19 -0
  602. node_ui/node_modules/lodash/_listCacheHas.js +16 -0
  603. node_ui/node_modules/lodash/_listCacheSet.js +26 -0
  604. node_ui/node_modules/lodash/_mapCacheClear.js +21 -0
  605. node_ui/node_modules/lodash/_mapCacheDelete.js +18 -0
  606. node_ui/node_modules/lodash/_mapCacheGet.js +16 -0
  607. node_ui/node_modules/lodash/_mapCacheHas.js +16 -0
  608. node_ui/node_modules/lodash/_mapCacheSet.js +22 -0
  609. node_ui/node_modules/lodash/_mapToArray.js +18 -0
  610. node_ui/node_modules/lodash/_matchesStrictComparable.js +20 -0
  611. node_ui/node_modules/lodash/_memoizeCapped.js +26 -0
  612. node_ui/node_modules/lodash/_mergeData.js +90 -0
  613. node_ui/node_modules/lodash/_metaMap.js +6 -0
  614. node_ui/node_modules/lodash/_nativeCreate.js +6 -0
  615. node_ui/node_modules/lodash/_nativeKeys.js +6 -0
  616. node_ui/node_modules/lodash/_nativeKeysIn.js +20 -0
  617. node_ui/node_modules/lodash/_nodeUtil.js +30 -0
  618. node_ui/node_modules/lodash/_objectToString.js +22 -0
  619. node_ui/node_modules/lodash/_overArg.js +15 -0
  620. node_ui/node_modules/lodash/_overRest.js +36 -0
  621. node_ui/node_modules/lodash/_parent.js +16 -0
  622. node_ui/node_modules/lodash/_reEscape.js +4 -0
  623. node_ui/node_modules/lodash/_reEvaluate.js +4 -0
  624. node_ui/node_modules/lodash/_reInterpolate.js +4 -0
  625. node_ui/node_modules/lodash/_realNames.js +4 -0
  626. node_ui/node_modules/lodash/_reorder.js +29 -0
  627. node_ui/node_modules/lodash/_replaceHolders.js +29 -0
  628. node_ui/node_modules/lodash/_root.js +9 -0
  629. node_ui/node_modules/lodash/_safeGet.js +21 -0
  630. node_ui/node_modules/lodash/_setCacheAdd.js +19 -0
  631. node_ui/node_modules/lodash/_setCacheHas.js +14 -0
  632. node_ui/node_modules/lodash/_setData.js +20 -0
  633. node_ui/node_modules/lodash/_setToArray.js +18 -0
  634. node_ui/node_modules/lodash/_setToPairs.js +18 -0
  635. node_ui/node_modules/lodash/_setToString.js +14 -0
  636. node_ui/node_modules/lodash/_setWrapToString.js +21 -0
  637. node_ui/node_modules/lodash/_shortOut.js +37 -0
  638. node_ui/node_modules/lodash/_shuffleSelf.js +28 -0
  639. node_ui/node_modules/lodash/_stackClear.js +15 -0
  640. node_ui/node_modules/lodash/_stackDelete.js +18 -0
  641. node_ui/node_modules/lodash/_stackGet.js +14 -0
  642. node_ui/node_modules/lodash/_stackHas.js +14 -0
  643. node_ui/node_modules/lodash/_stackSet.js +34 -0
  644. node_ui/node_modules/lodash/_strictIndexOf.js +23 -0
  645. node_ui/node_modules/lodash/_strictLastIndexOf.js +21 -0
  646. node_ui/node_modules/lodash/_stringSize.js +18 -0
  647. node_ui/node_modules/lodash/_stringToArray.js +18 -0
  648. node_ui/node_modules/lodash/_stringToPath.js +27 -0
  649. node_ui/node_modules/lodash/_toKey.js +21 -0
  650. node_ui/node_modules/lodash/_toSource.js +26 -0
  651. node_ui/node_modules/lodash/_trimmedEndIndex.js +19 -0
  652. node_ui/node_modules/lodash/_unescapeHtmlChar.js +21 -0
  653. node_ui/node_modules/lodash/_unicodeSize.js +44 -0
  654. node_ui/node_modules/lodash/_unicodeToArray.js +40 -0
  655. node_ui/node_modules/lodash/_unicodeWords.js +69 -0
  656. node_ui/node_modules/lodash/_updateWrapDetails.js +46 -0
  657. node_ui/node_modules/lodash/_wrapperClone.js +23 -0
  658. node_ui/node_modules/lodash/add.js +22 -0
  659. node_ui/node_modules/lodash/after.js +42 -0
  660. node_ui/node_modules/lodash/array.js +67 -0
  661. node_ui/node_modules/lodash/ary.js +29 -0
  662. node_ui/node_modules/lodash/assign.js +58 -0
  663. node_ui/node_modules/lodash/assignIn.js +40 -0
  664. node_ui/node_modules/lodash/assignInWith.js +38 -0
  665. node_ui/node_modules/lodash/assignWith.js +37 -0
  666. node_ui/node_modules/lodash/at.js +23 -0
  667. node_ui/node_modules/lodash/attempt.js +35 -0
  668. node_ui/node_modules/lodash/before.js +40 -0
  669. node_ui/node_modules/lodash/bind.js +57 -0
  670. node_ui/node_modules/lodash/bindAll.js +41 -0
  671. node_ui/node_modules/lodash/bindKey.js +68 -0
  672. node_ui/node_modules/lodash/camelCase.js +29 -0
  673. node_ui/node_modules/lodash/capitalize.js +23 -0
  674. node_ui/node_modules/lodash/castArray.js +44 -0
  675. node_ui/node_modules/lodash/ceil.js +26 -0
  676. node_ui/node_modules/lodash/chain.js +38 -0
  677. node_ui/node_modules/lodash/chunk.js +50 -0
  678. node_ui/node_modules/lodash/clamp.js +39 -0
  679. node_ui/node_modules/lodash/clone.js +36 -0
  680. node_ui/node_modules/lodash/cloneDeep.js +29 -0
  681. node_ui/node_modules/lodash/cloneDeepWith.js +40 -0
  682. node_ui/node_modules/lodash/cloneWith.js +42 -0
  683. node_ui/node_modules/lodash/collection.js +30 -0
  684. node_ui/node_modules/lodash/commit.js +33 -0
  685. node_ui/node_modules/lodash/compact.js +31 -0
  686. node_ui/node_modules/lodash/concat.js +43 -0
  687. node_ui/node_modules/lodash/cond.js +60 -0
  688. node_ui/node_modules/lodash/conforms.js +35 -0
  689. node_ui/node_modules/lodash/conformsTo.js +32 -0
  690. node_ui/node_modules/lodash/constant.js +26 -0
  691. node_ui/node_modules/lodash/core.js +3877 -0
  692. node_ui/node_modules/lodash/core.min.js +29 -0
  693. node_ui/node_modules/lodash/countBy.js +40 -0
  694. node_ui/node_modules/lodash/create.js +43 -0
  695. node_ui/node_modules/lodash/curry.js +57 -0
  696. node_ui/node_modules/lodash/curryRight.js +54 -0
  697. node_ui/node_modules/lodash/date.js +3 -0
  698. node_ui/node_modules/lodash/debounce.js +191 -0
  699. node_ui/node_modules/lodash/deburr.js +45 -0
  700. node_ui/node_modules/lodash/defaultTo.js +25 -0
  701. node_ui/node_modules/lodash/defaults.js +64 -0
  702. node_ui/node_modules/lodash/defaultsDeep.js +30 -0
  703. node_ui/node_modules/lodash/defer.js +26 -0
  704. node_ui/node_modules/lodash/delay.js +28 -0
  705. node_ui/node_modules/lodash/difference.js +33 -0
  706. node_ui/node_modules/lodash/differenceBy.js +44 -0
  707. node_ui/node_modules/lodash/differenceWith.js +40 -0
  708. node_ui/node_modules/lodash/divide.js +22 -0
  709. node_ui/node_modules/lodash/drop.js +38 -0
  710. node_ui/node_modules/lodash/dropRight.js +39 -0
  711. node_ui/node_modules/lodash/dropRightWhile.js +45 -0
  712. node_ui/node_modules/lodash/dropWhile.js +45 -0
  713. node_ui/node_modules/lodash/each.js +1 -0
  714. node_ui/node_modules/lodash/eachRight.js +1 -0
  715. node_ui/node_modules/lodash/endsWith.js +43 -0
  716. node_ui/node_modules/lodash/entries.js +1 -0
  717. node_ui/node_modules/lodash/entriesIn.js +1 -0
  718. node_ui/node_modules/lodash/eq.js +37 -0
  719. node_ui/node_modules/lodash/escape.js +43 -0
  720. node_ui/node_modules/lodash/escapeRegExp.js +32 -0
  721. node_ui/node_modules/lodash/every.js +56 -0
  722. node_ui/node_modules/lodash/extend.js +1 -0
  723. node_ui/node_modules/lodash/extendWith.js +1 -0
  724. node_ui/node_modules/lodash/fill.js +45 -0
  725. node_ui/node_modules/lodash/filter.js +52 -0
  726. node_ui/node_modules/lodash/find.js +42 -0
  727. node_ui/node_modules/lodash/findIndex.js +55 -0
  728. node_ui/node_modules/lodash/findKey.js +44 -0
  729. node_ui/node_modules/lodash/findLast.js +25 -0
  730. node_ui/node_modules/lodash/findLastIndex.js +59 -0
  731. node_ui/node_modules/lodash/findLastKey.js +44 -0
  732. node_ui/node_modules/lodash/first.js +1 -0
  733. node_ui/node_modules/lodash/flake.lock +40 -0
  734. node_ui/node_modules/lodash/flake.nix +20 -0
  735. node_ui/node_modules/lodash/flatMap.js +29 -0
  736. node_ui/node_modules/lodash/flatMapDeep.js +31 -0
  737. node_ui/node_modules/lodash/flatMapDepth.js +31 -0
  738. node_ui/node_modules/lodash/flatten.js +22 -0
  739. node_ui/node_modules/lodash/flattenDeep.js +25 -0
  740. node_ui/node_modules/lodash/flattenDepth.js +33 -0
  741. node_ui/node_modules/lodash/flip.js +28 -0
  742. node_ui/node_modules/lodash/floor.js +26 -0
  743. node_ui/node_modules/lodash/flow.js +27 -0
  744. node_ui/node_modules/lodash/flowRight.js +26 -0
  745. node_ui/node_modules/lodash/forEach.js +41 -0
  746. node_ui/node_modules/lodash/forEachRight.js +31 -0
  747. node_ui/node_modules/lodash/forIn.js +39 -0
  748. node_ui/node_modules/lodash/forInRight.js +37 -0
  749. node_ui/node_modules/lodash/forOwn.js +36 -0
  750. node_ui/node_modules/lodash/forOwnRight.js +34 -0
  751. node_ui/node_modules/lodash/fp/F.js +1 -0
  752. node_ui/node_modules/lodash/fp/T.js +1 -0
  753. node_ui/node_modules/lodash/fp/__.js +1 -0
  754. node_ui/node_modules/lodash/fp/_baseConvert.js +569 -0
  755. node_ui/node_modules/lodash/fp/_convertBrowser.js +18 -0
  756. node_ui/node_modules/lodash/fp/_falseOptions.js +7 -0
  757. node_ui/node_modules/lodash/fp/_mapping.js +358 -0
  758. node_ui/node_modules/lodash/fp/_util.js +16 -0
  759. node_ui/node_modules/lodash/fp/add.js +5 -0
  760. node_ui/node_modules/lodash/fp/after.js +5 -0
  761. node_ui/node_modules/lodash/fp/all.js +1 -0
  762. node_ui/node_modules/lodash/fp/allPass.js +1 -0
  763. node_ui/node_modules/lodash/fp/always.js +1 -0
  764. node_ui/node_modules/lodash/fp/any.js +1 -0
  765. node_ui/node_modules/lodash/fp/anyPass.js +1 -0
  766. node_ui/node_modules/lodash/fp/apply.js +1 -0
  767. node_ui/node_modules/lodash/fp/array.js +2 -0
  768. node_ui/node_modules/lodash/fp/ary.js +5 -0
  769. node_ui/node_modules/lodash/fp/assign.js +5 -0
  770. node_ui/node_modules/lodash/fp/assignAll.js +5 -0
  771. node_ui/node_modules/lodash/fp/assignAllWith.js +5 -0
  772. node_ui/node_modules/lodash/fp/assignIn.js +5 -0
  773. node_ui/node_modules/lodash/fp/assignInAll.js +5 -0
  774. node_ui/node_modules/lodash/fp/assignInAllWith.js +5 -0
  775. node_ui/node_modules/lodash/fp/assignInWith.js +5 -0
  776. node_ui/node_modules/lodash/fp/assignWith.js +5 -0
  777. node_ui/node_modules/lodash/fp/assoc.js +1 -0
  778. node_ui/node_modules/lodash/fp/assocPath.js +1 -0
  779. node_ui/node_modules/lodash/fp/at.js +5 -0
  780. node_ui/node_modules/lodash/fp/attempt.js +5 -0
  781. node_ui/node_modules/lodash/fp/before.js +5 -0
  782. node_ui/node_modules/lodash/fp/bind.js +5 -0
  783. node_ui/node_modules/lodash/fp/bindAll.js +5 -0
  784. node_ui/node_modules/lodash/fp/bindKey.js +5 -0
  785. node_ui/node_modules/lodash/fp/camelCase.js +5 -0
  786. node_ui/node_modules/lodash/fp/capitalize.js +5 -0
  787. node_ui/node_modules/lodash/fp/castArray.js +5 -0
  788. node_ui/node_modules/lodash/fp/ceil.js +5 -0
  789. node_ui/node_modules/lodash/fp/chain.js +5 -0
  790. node_ui/node_modules/lodash/fp/chunk.js +5 -0
  791. node_ui/node_modules/lodash/fp/clamp.js +5 -0
  792. node_ui/node_modules/lodash/fp/clone.js +5 -0
  793. node_ui/node_modules/lodash/fp/cloneDeep.js +5 -0
  794. node_ui/node_modules/lodash/fp/cloneDeepWith.js +5 -0
  795. node_ui/node_modules/lodash/fp/cloneWith.js +5 -0
  796. node_ui/node_modules/lodash/fp/collection.js +2 -0
  797. node_ui/node_modules/lodash/fp/commit.js +5 -0
  798. node_ui/node_modules/lodash/fp/compact.js +5 -0
  799. node_ui/node_modules/lodash/fp/complement.js +1 -0
  800. node_ui/node_modules/lodash/fp/compose.js +1 -0
  801. node_ui/node_modules/lodash/fp/concat.js +5 -0
  802. node_ui/node_modules/lodash/fp/cond.js +5 -0
  803. node_ui/node_modules/lodash/fp/conforms.js +1 -0
  804. node_ui/node_modules/lodash/fp/conformsTo.js +5 -0
  805. node_ui/node_modules/lodash/fp/constant.js +5 -0
  806. node_ui/node_modules/lodash/fp/contains.js +1 -0
  807. node_ui/node_modules/lodash/fp/convert.js +18 -0
  808. node_ui/node_modules/lodash/fp/countBy.js +5 -0
  809. node_ui/node_modules/lodash/fp/create.js +5 -0
  810. node_ui/node_modules/lodash/fp/curry.js +5 -0
  811. node_ui/node_modules/lodash/fp/curryN.js +5 -0
  812. node_ui/node_modules/lodash/fp/curryRight.js +5 -0
  813. node_ui/node_modules/lodash/fp/curryRightN.js +5 -0
  814. node_ui/node_modules/lodash/fp/date.js +2 -0
  815. node_ui/node_modules/lodash/fp/debounce.js +5 -0
  816. node_ui/node_modules/lodash/fp/deburr.js +5 -0
  817. node_ui/node_modules/lodash/fp/defaultTo.js +5 -0
  818. node_ui/node_modules/lodash/fp/defaults.js +5 -0
  819. node_ui/node_modules/lodash/fp/defaultsAll.js +5 -0
  820. node_ui/node_modules/lodash/fp/defaultsDeep.js +5 -0
  821. node_ui/node_modules/lodash/fp/defaultsDeepAll.js +5 -0
  822. node_ui/node_modules/lodash/fp/defer.js +5 -0
  823. node_ui/node_modules/lodash/fp/delay.js +5 -0
  824. node_ui/node_modules/lodash/fp/difference.js +5 -0
  825. node_ui/node_modules/lodash/fp/differenceBy.js +5 -0
  826. node_ui/node_modules/lodash/fp/differenceWith.js +5 -0
  827. node_ui/node_modules/lodash/fp/dissoc.js +1 -0
  828. node_ui/node_modules/lodash/fp/dissocPath.js +1 -0
  829. node_ui/node_modules/lodash/fp/divide.js +5 -0
  830. node_ui/node_modules/lodash/fp/drop.js +5 -0
  831. node_ui/node_modules/lodash/fp/dropLast.js +1 -0
  832. node_ui/node_modules/lodash/fp/dropLastWhile.js +1 -0
  833. node_ui/node_modules/lodash/fp/dropRight.js +5 -0
  834. node_ui/node_modules/lodash/fp/dropRightWhile.js +5 -0
  835. node_ui/node_modules/lodash/fp/dropWhile.js +5 -0
  836. node_ui/node_modules/lodash/fp/each.js +1 -0
  837. node_ui/node_modules/lodash/fp/eachRight.js +1 -0
  838. node_ui/node_modules/lodash/fp/endsWith.js +5 -0
  839. node_ui/node_modules/lodash/fp/entries.js +1 -0
  840. node_ui/node_modules/lodash/fp/entriesIn.js +1 -0
  841. node_ui/node_modules/lodash/fp/eq.js +5 -0
  842. node_ui/node_modules/lodash/fp/equals.js +1 -0
  843. node_ui/node_modules/lodash/fp/escape.js +5 -0
  844. node_ui/node_modules/lodash/fp/escapeRegExp.js +5 -0
  845. node_ui/node_modules/lodash/fp/every.js +5 -0
  846. node_ui/node_modules/lodash/fp/extend.js +1 -0
  847. node_ui/node_modules/lodash/fp/extendAll.js +1 -0
  848. node_ui/node_modules/lodash/fp/extendAllWith.js +1 -0
  849. node_ui/node_modules/lodash/fp/extendWith.js +1 -0
  850. node_ui/node_modules/lodash/fp/fill.js +5 -0
  851. node_ui/node_modules/lodash/fp/filter.js +5 -0
  852. node_ui/node_modules/lodash/fp/find.js +5 -0
  853. node_ui/node_modules/lodash/fp/findFrom.js +5 -0
  854. node_ui/node_modules/lodash/fp/findIndex.js +5 -0
  855. node_ui/node_modules/lodash/fp/findIndexFrom.js +5 -0
  856. node_ui/node_modules/lodash/fp/findKey.js +5 -0
  857. node_ui/node_modules/lodash/fp/findLast.js +5 -0
  858. node_ui/node_modules/lodash/fp/findLastFrom.js +5 -0
  859. node_ui/node_modules/lodash/fp/findLastIndex.js +5 -0
  860. node_ui/node_modules/lodash/fp/findLastIndexFrom.js +5 -0
  861. node_ui/node_modules/lodash/fp/findLastKey.js +5 -0
  862. node_ui/node_modules/lodash/fp/first.js +1 -0
  863. node_ui/node_modules/lodash/fp/flatMap.js +5 -0
  864. node_ui/node_modules/lodash/fp/flatMapDeep.js +5 -0
  865. node_ui/node_modules/lodash/fp/flatMapDepth.js +5 -0
  866. node_ui/node_modules/lodash/fp/flatten.js +5 -0
  867. node_ui/node_modules/lodash/fp/flattenDeep.js +5 -0
  868. node_ui/node_modules/lodash/fp/flattenDepth.js +5 -0
  869. node_ui/node_modules/lodash/fp/flip.js +5 -0
  870. node_ui/node_modules/lodash/fp/floor.js +5 -0
  871. node_ui/node_modules/lodash/fp/flow.js +5 -0
  872. node_ui/node_modules/lodash/fp/flowRight.js +5 -0
  873. node_ui/node_modules/lodash/fp/forEach.js +5 -0
  874. node_ui/node_modules/lodash/fp/forEachRight.js +5 -0
  875. node_ui/node_modules/lodash/fp/forIn.js +5 -0
  876. node_ui/node_modules/lodash/fp/forInRight.js +5 -0
  877. node_ui/node_modules/lodash/fp/forOwn.js +5 -0
  878. node_ui/node_modules/lodash/fp/forOwnRight.js +5 -0
  879. node_ui/node_modules/lodash/fp/fromPairs.js +5 -0
  880. node_ui/node_modules/lodash/fp/function.js +2 -0
  881. node_ui/node_modules/lodash/fp/functions.js +5 -0
  882. node_ui/node_modules/lodash/fp/functionsIn.js +5 -0
  883. node_ui/node_modules/lodash/fp/get.js +5 -0
  884. node_ui/node_modules/lodash/fp/getOr.js +5 -0
  885. node_ui/node_modules/lodash/fp/groupBy.js +5 -0
  886. node_ui/node_modules/lodash/fp/gt.js +5 -0
  887. node_ui/node_modules/lodash/fp/gte.js +5 -0
  888. node_ui/node_modules/lodash/fp/has.js +5 -0
  889. node_ui/node_modules/lodash/fp/hasIn.js +5 -0
  890. node_ui/node_modules/lodash/fp/head.js +5 -0
  891. node_ui/node_modules/lodash/fp/identical.js +1 -0
  892. node_ui/node_modules/lodash/fp/identity.js +5 -0
  893. node_ui/node_modules/lodash/fp/inRange.js +5 -0
  894. node_ui/node_modules/lodash/fp/includes.js +5 -0
  895. node_ui/node_modules/lodash/fp/includesFrom.js +5 -0
  896. node_ui/node_modules/lodash/fp/indexBy.js +1 -0
  897. node_ui/node_modules/lodash/fp/indexOf.js +5 -0
  898. node_ui/node_modules/lodash/fp/indexOfFrom.js +5 -0
  899. node_ui/node_modules/lodash/fp/init.js +1 -0
  900. node_ui/node_modules/lodash/fp/initial.js +5 -0
  901. node_ui/node_modules/lodash/fp/intersection.js +5 -0
  902. node_ui/node_modules/lodash/fp/intersectionBy.js +5 -0
  903. node_ui/node_modules/lodash/fp/intersectionWith.js +5 -0
  904. node_ui/node_modules/lodash/fp/invert.js +5 -0
  905. node_ui/node_modules/lodash/fp/invertBy.js +5 -0
  906. node_ui/node_modules/lodash/fp/invertObj.js +1 -0
  907. node_ui/node_modules/lodash/fp/invoke.js +5 -0
  908. node_ui/node_modules/lodash/fp/invokeArgs.js +5 -0
  909. node_ui/node_modules/lodash/fp/invokeArgsMap.js +5 -0
  910. node_ui/node_modules/lodash/fp/invokeMap.js +5 -0
  911. node_ui/node_modules/lodash/fp/isArguments.js +5 -0
  912. node_ui/node_modules/lodash/fp/isArray.js +5 -0
  913. node_ui/node_modules/lodash/fp/isArrayBuffer.js +5 -0
  914. node_ui/node_modules/lodash/fp/isArrayLike.js +5 -0
  915. node_ui/node_modules/lodash/fp/isArrayLikeObject.js +5 -0
  916. node_ui/node_modules/lodash/fp/isBoolean.js +5 -0
  917. node_ui/node_modules/lodash/fp/isBuffer.js +5 -0
  918. node_ui/node_modules/lodash/fp/isDate.js +5 -0
  919. node_ui/node_modules/lodash/fp/isElement.js +5 -0
  920. node_ui/node_modules/lodash/fp/isEmpty.js +5 -0
  921. node_ui/node_modules/lodash/fp/isEqual.js +5 -0
  922. node_ui/node_modules/lodash/fp/isEqualWith.js +5 -0
  923. node_ui/node_modules/lodash/fp/isError.js +5 -0
  924. node_ui/node_modules/lodash/fp/isFinite.js +5 -0
  925. node_ui/node_modules/lodash/fp/isFunction.js +5 -0
  926. node_ui/node_modules/lodash/fp/isInteger.js +5 -0
  927. node_ui/node_modules/lodash/fp/isLength.js +5 -0
  928. node_ui/node_modules/lodash/fp/isMap.js +5 -0
  929. node_ui/node_modules/lodash/fp/isMatch.js +5 -0
  930. node_ui/node_modules/lodash/fp/isMatchWith.js +5 -0
  931. node_ui/node_modules/lodash/fp/isNaN.js +5 -0
  932. node_ui/node_modules/lodash/fp/isNative.js +5 -0
  933. node_ui/node_modules/lodash/fp/isNil.js +5 -0
  934. node_ui/node_modules/lodash/fp/isNull.js +5 -0
  935. node_ui/node_modules/lodash/fp/isNumber.js +5 -0
  936. node_ui/node_modules/lodash/fp/isObject.js +5 -0
  937. node_ui/node_modules/lodash/fp/isObjectLike.js +5 -0
  938. node_ui/node_modules/lodash/fp/isPlainObject.js +5 -0
  939. node_ui/node_modules/lodash/fp/isRegExp.js +5 -0
  940. node_ui/node_modules/lodash/fp/isSafeInteger.js +5 -0
  941. node_ui/node_modules/lodash/fp/isSet.js +5 -0
  942. node_ui/node_modules/lodash/fp/isString.js +5 -0
  943. node_ui/node_modules/lodash/fp/isSymbol.js +5 -0
  944. node_ui/node_modules/lodash/fp/isTypedArray.js +5 -0
  945. node_ui/node_modules/lodash/fp/isUndefined.js +5 -0
  946. node_ui/node_modules/lodash/fp/isWeakMap.js +5 -0
  947. node_ui/node_modules/lodash/fp/isWeakSet.js +5 -0
  948. node_ui/node_modules/lodash/fp/iteratee.js +5 -0
  949. node_ui/node_modules/lodash/fp/join.js +5 -0
  950. node_ui/node_modules/lodash/fp/juxt.js +1 -0
  951. node_ui/node_modules/lodash/fp/kebabCase.js +5 -0
  952. node_ui/node_modules/lodash/fp/keyBy.js +5 -0
  953. node_ui/node_modules/lodash/fp/keys.js +5 -0
  954. node_ui/node_modules/lodash/fp/keysIn.js +5 -0
  955. node_ui/node_modules/lodash/fp/lang.js +2 -0
  956. node_ui/node_modules/lodash/fp/last.js +5 -0
  957. node_ui/node_modules/lodash/fp/lastIndexOf.js +5 -0
  958. node_ui/node_modules/lodash/fp/lastIndexOfFrom.js +5 -0
  959. node_ui/node_modules/lodash/fp/lowerCase.js +5 -0
  960. node_ui/node_modules/lodash/fp/lowerFirst.js +5 -0
  961. node_ui/node_modules/lodash/fp/lt.js +5 -0
  962. node_ui/node_modules/lodash/fp/lte.js +5 -0
  963. node_ui/node_modules/lodash/fp/map.js +5 -0
  964. node_ui/node_modules/lodash/fp/mapKeys.js +5 -0
  965. node_ui/node_modules/lodash/fp/mapValues.js +5 -0
  966. node_ui/node_modules/lodash/fp/matches.js +1 -0
  967. node_ui/node_modules/lodash/fp/matchesProperty.js +5 -0
  968. node_ui/node_modules/lodash/fp/math.js +2 -0
  969. node_ui/node_modules/lodash/fp/max.js +5 -0
  970. node_ui/node_modules/lodash/fp/maxBy.js +5 -0
  971. node_ui/node_modules/lodash/fp/mean.js +5 -0
  972. node_ui/node_modules/lodash/fp/meanBy.js +5 -0
  973. node_ui/node_modules/lodash/fp/memoize.js +5 -0
  974. node_ui/node_modules/lodash/fp/merge.js +5 -0
  975. node_ui/node_modules/lodash/fp/mergeAll.js +5 -0
  976. node_ui/node_modules/lodash/fp/mergeAllWith.js +5 -0
  977. node_ui/node_modules/lodash/fp/mergeWith.js +5 -0
  978. node_ui/node_modules/lodash/fp/method.js +5 -0
  979. node_ui/node_modules/lodash/fp/methodOf.js +5 -0
  980. node_ui/node_modules/lodash/fp/min.js +5 -0
  981. node_ui/node_modules/lodash/fp/minBy.js +5 -0
  982. node_ui/node_modules/lodash/fp/mixin.js +5 -0
  983. node_ui/node_modules/lodash/fp/multiply.js +5 -0
  984. node_ui/node_modules/lodash/fp/nAry.js +1 -0
  985. node_ui/node_modules/lodash/fp/negate.js +5 -0
  986. node_ui/node_modules/lodash/fp/next.js +5 -0
  987. node_ui/node_modules/lodash/fp/noop.js +5 -0
  988. node_ui/node_modules/lodash/fp/now.js +5 -0
  989. node_ui/node_modules/lodash/fp/nth.js +5 -0
  990. node_ui/node_modules/lodash/fp/nthArg.js +5 -0
  991. node_ui/node_modules/lodash/fp/number.js +2 -0
  992. node_ui/node_modules/lodash/fp/object.js +2 -0
  993. node_ui/node_modules/lodash/fp/omit.js +5 -0
  994. node_ui/node_modules/lodash/fp/omitAll.js +1 -0
  995. node_ui/node_modules/lodash/fp/omitBy.js +5 -0
  996. node_ui/node_modules/lodash/fp/once.js +5 -0
  997. node_ui/node_modules/lodash/fp/orderBy.js +5 -0
  998. node_ui/node_modules/lodash/fp/over.js +5 -0
  999. node_ui/node_modules/lodash/fp/overArgs.js +5 -0
  1000. node_ui/node_modules/lodash/fp/overEvery.js +5 -0
  1001. node_ui/node_modules/lodash/fp/overSome.js +5 -0
  1002. node_ui/node_modules/lodash/fp/pad.js +5 -0
  1003. node_ui/node_modules/lodash/fp/padChars.js +5 -0
  1004. node_ui/node_modules/lodash/fp/padCharsEnd.js +5 -0
  1005. node_ui/node_modules/lodash/fp/padCharsStart.js +5 -0
  1006. node_ui/node_modules/lodash/fp/padEnd.js +5 -0
  1007. node_ui/node_modules/lodash/fp/padStart.js +5 -0
  1008. node_ui/node_modules/lodash/fp/parseInt.js +5 -0
  1009. node_ui/node_modules/lodash/fp/partial.js +5 -0
  1010. node_ui/node_modules/lodash/fp/partialRight.js +5 -0
  1011. node_ui/node_modules/lodash/fp/partition.js +5 -0
  1012. node_ui/node_modules/lodash/fp/path.js +1 -0
  1013. node_ui/node_modules/lodash/fp/pathEq.js +1 -0
  1014. node_ui/node_modules/lodash/fp/pathOr.js +1 -0
  1015. node_ui/node_modules/lodash/fp/paths.js +1 -0
  1016. node_ui/node_modules/lodash/fp/pick.js +5 -0
  1017. node_ui/node_modules/lodash/fp/pickAll.js +1 -0
  1018. node_ui/node_modules/lodash/fp/pickBy.js +5 -0
  1019. node_ui/node_modules/lodash/fp/pipe.js +1 -0
  1020. node_ui/node_modules/lodash/fp/placeholder.js +6 -0
  1021. node_ui/node_modules/lodash/fp/plant.js +5 -0
  1022. node_ui/node_modules/lodash/fp/pluck.js +1 -0
  1023. node_ui/node_modules/lodash/fp/prop.js +1 -0
  1024. node_ui/node_modules/lodash/fp/propEq.js +1 -0
  1025. node_ui/node_modules/lodash/fp/propOr.js +1 -0
  1026. node_ui/node_modules/lodash/fp/property.js +1 -0
  1027. node_ui/node_modules/lodash/fp/propertyOf.js +5 -0
  1028. node_ui/node_modules/lodash/fp/props.js +1 -0
  1029. node_ui/node_modules/lodash/fp/pull.js +5 -0
  1030. node_ui/node_modules/lodash/fp/pullAll.js +5 -0
  1031. node_ui/node_modules/lodash/fp/pullAllBy.js +5 -0
  1032. node_ui/node_modules/lodash/fp/pullAllWith.js +5 -0
  1033. node_ui/node_modules/lodash/fp/pullAt.js +5 -0
  1034. node_ui/node_modules/lodash/fp/random.js +5 -0
  1035. node_ui/node_modules/lodash/fp/range.js +5 -0
  1036. node_ui/node_modules/lodash/fp/rangeRight.js +5 -0
  1037. node_ui/node_modules/lodash/fp/rangeStep.js +5 -0
  1038. node_ui/node_modules/lodash/fp/rangeStepRight.js +5 -0
  1039. node_ui/node_modules/lodash/fp/rearg.js +5 -0
  1040. node_ui/node_modules/lodash/fp/reduce.js +5 -0
  1041. node_ui/node_modules/lodash/fp/reduceRight.js +5 -0
  1042. node_ui/node_modules/lodash/fp/reject.js +5 -0
  1043. node_ui/node_modules/lodash/fp/remove.js +5 -0
  1044. node_ui/node_modules/lodash/fp/repeat.js +5 -0
  1045. node_ui/node_modules/lodash/fp/replace.js +5 -0
  1046. node_ui/node_modules/lodash/fp/rest.js +5 -0
  1047. node_ui/node_modules/lodash/fp/restFrom.js +5 -0
  1048. node_ui/node_modules/lodash/fp/result.js +5 -0
  1049. node_ui/node_modules/lodash/fp/reverse.js +5 -0
  1050. node_ui/node_modules/lodash/fp/round.js +5 -0
  1051. node_ui/node_modules/lodash/fp/sample.js +5 -0
  1052. node_ui/node_modules/lodash/fp/sampleSize.js +5 -0
  1053. node_ui/node_modules/lodash/fp/seq.js +2 -0
  1054. node_ui/node_modules/lodash/fp/set.js +5 -0
  1055. node_ui/node_modules/lodash/fp/setWith.js +5 -0
  1056. node_ui/node_modules/lodash/fp/shuffle.js +5 -0
  1057. node_ui/node_modules/lodash/fp/size.js +5 -0
  1058. node_ui/node_modules/lodash/fp/slice.js +5 -0
  1059. node_ui/node_modules/lodash/fp/snakeCase.js +5 -0
  1060. node_ui/node_modules/lodash/fp/some.js +5 -0
  1061. node_ui/node_modules/lodash/fp/sortBy.js +5 -0
  1062. node_ui/node_modules/lodash/fp/sortedIndex.js +5 -0
  1063. node_ui/node_modules/lodash/fp/sortedIndexBy.js +5 -0
  1064. node_ui/node_modules/lodash/fp/sortedIndexOf.js +5 -0
  1065. node_ui/node_modules/lodash/fp/sortedLastIndex.js +5 -0
  1066. node_ui/node_modules/lodash/fp/sortedLastIndexBy.js +5 -0
  1067. node_ui/node_modules/lodash/fp/sortedLastIndexOf.js +5 -0
  1068. node_ui/node_modules/lodash/fp/sortedUniq.js +5 -0
  1069. node_ui/node_modules/lodash/fp/sortedUniqBy.js +5 -0
  1070. node_ui/node_modules/lodash/fp/split.js +5 -0
  1071. node_ui/node_modules/lodash/fp/spread.js +5 -0
  1072. node_ui/node_modules/lodash/fp/spreadFrom.js +5 -0
  1073. node_ui/node_modules/lodash/fp/startCase.js +5 -0
  1074. node_ui/node_modules/lodash/fp/startsWith.js +5 -0
  1075. node_ui/node_modules/lodash/fp/string.js +2 -0
  1076. node_ui/node_modules/lodash/fp/stubArray.js +5 -0
  1077. node_ui/node_modules/lodash/fp/stubFalse.js +5 -0
  1078. node_ui/node_modules/lodash/fp/stubObject.js +5 -0
  1079. node_ui/node_modules/lodash/fp/stubString.js +5 -0
  1080. node_ui/node_modules/lodash/fp/stubTrue.js +5 -0
  1081. node_ui/node_modules/lodash/fp/subtract.js +5 -0
  1082. node_ui/node_modules/lodash/fp/sum.js +5 -0
  1083. node_ui/node_modules/lodash/fp/sumBy.js +5 -0
  1084. node_ui/node_modules/lodash/fp/symmetricDifference.js +1 -0
  1085. node_ui/node_modules/lodash/fp/symmetricDifferenceBy.js +1 -0
  1086. node_ui/node_modules/lodash/fp/symmetricDifferenceWith.js +1 -0
  1087. node_ui/node_modules/lodash/fp/tail.js +5 -0
  1088. node_ui/node_modules/lodash/fp/take.js +5 -0
  1089. node_ui/node_modules/lodash/fp/takeLast.js +1 -0
  1090. node_ui/node_modules/lodash/fp/takeLastWhile.js +1 -0
  1091. node_ui/node_modules/lodash/fp/takeRight.js +5 -0
  1092. node_ui/node_modules/lodash/fp/takeRightWhile.js +5 -0
  1093. node_ui/node_modules/lodash/fp/takeWhile.js +5 -0
  1094. node_ui/node_modules/lodash/fp/tap.js +5 -0
  1095. node_ui/node_modules/lodash/fp/template.js +5 -0
  1096. node_ui/node_modules/lodash/fp/templateSettings.js +5 -0
  1097. node_ui/node_modules/lodash/fp/throttle.js +5 -0
  1098. node_ui/node_modules/lodash/fp/thru.js +5 -0
  1099. node_ui/node_modules/lodash/fp/times.js +5 -0
  1100. node_ui/node_modules/lodash/fp/toArray.js +5 -0
  1101. node_ui/node_modules/lodash/fp/toFinite.js +5 -0
  1102. node_ui/node_modules/lodash/fp/toInteger.js +5 -0
  1103. node_ui/node_modules/lodash/fp/toIterator.js +5 -0
  1104. node_ui/node_modules/lodash/fp/toJSON.js +5 -0
  1105. node_ui/node_modules/lodash/fp/toLength.js +5 -0
  1106. node_ui/node_modules/lodash/fp/toLower.js +5 -0
  1107. node_ui/node_modules/lodash/fp/toNumber.js +5 -0
  1108. node_ui/node_modules/lodash/fp/toPairs.js +5 -0
  1109. node_ui/node_modules/lodash/fp/toPairsIn.js +5 -0
  1110. node_ui/node_modules/lodash/fp/toPath.js +5 -0
  1111. node_ui/node_modules/lodash/fp/toPlainObject.js +5 -0
  1112. node_ui/node_modules/lodash/fp/toSafeInteger.js +5 -0
  1113. node_ui/node_modules/lodash/fp/toString.js +5 -0
  1114. node_ui/node_modules/lodash/fp/toUpper.js +5 -0
  1115. node_ui/node_modules/lodash/fp/transform.js +5 -0
  1116. node_ui/node_modules/lodash/fp/trim.js +5 -0
  1117. node_ui/node_modules/lodash/fp/trimChars.js +5 -0
  1118. node_ui/node_modules/lodash/fp/trimCharsEnd.js +5 -0
  1119. node_ui/node_modules/lodash/fp/trimCharsStart.js +5 -0
  1120. node_ui/node_modules/lodash/fp/trimEnd.js +5 -0
  1121. node_ui/node_modules/lodash/fp/trimStart.js +5 -0
  1122. node_ui/node_modules/lodash/fp/truncate.js +5 -0
  1123. node_ui/node_modules/lodash/fp/unapply.js +1 -0
  1124. node_ui/node_modules/lodash/fp/unary.js +5 -0
  1125. node_ui/node_modules/lodash/fp/unescape.js +5 -0
  1126. node_ui/node_modules/lodash/fp/union.js +5 -0
  1127. node_ui/node_modules/lodash/fp/unionBy.js +5 -0
  1128. node_ui/node_modules/lodash/fp/unionWith.js +5 -0
  1129. node_ui/node_modules/lodash/fp/uniq.js +5 -0
  1130. node_ui/node_modules/lodash/fp/uniqBy.js +5 -0
  1131. node_ui/node_modules/lodash/fp/uniqWith.js +5 -0
  1132. node_ui/node_modules/lodash/fp/uniqueId.js +5 -0
  1133. node_ui/node_modules/lodash/fp/unnest.js +1 -0
  1134. node_ui/node_modules/lodash/fp/unset.js +5 -0
  1135. node_ui/node_modules/lodash/fp/unzip.js +5 -0
  1136. node_ui/node_modules/lodash/fp/unzipWith.js +5 -0
  1137. node_ui/node_modules/lodash/fp/update.js +5 -0
  1138. node_ui/node_modules/lodash/fp/updateWith.js +5 -0
  1139. node_ui/node_modules/lodash/fp/upperCase.js +5 -0
  1140. node_ui/node_modules/lodash/fp/upperFirst.js +5 -0
  1141. node_ui/node_modules/lodash/fp/useWith.js +1 -0
  1142. node_ui/node_modules/lodash/fp/util.js +2 -0
  1143. node_ui/node_modules/lodash/fp/value.js +5 -0
  1144. node_ui/node_modules/lodash/fp/valueOf.js +5 -0
  1145. node_ui/node_modules/lodash/fp/values.js +5 -0
  1146. node_ui/node_modules/lodash/fp/valuesIn.js +5 -0
  1147. node_ui/node_modules/lodash/fp/where.js +1 -0
  1148. node_ui/node_modules/lodash/fp/whereEq.js +1 -0
  1149. node_ui/node_modules/lodash/fp/without.js +5 -0
  1150. node_ui/node_modules/lodash/fp/words.js +5 -0
  1151. node_ui/node_modules/lodash/fp/wrap.js +5 -0
  1152. node_ui/node_modules/lodash/fp/wrapperAt.js +5 -0
  1153. node_ui/node_modules/lodash/fp/wrapperChain.js +5 -0
  1154. node_ui/node_modules/lodash/fp/wrapperLodash.js +5 -0
  1155. node_ui/node_modules/lodash/fp/wrapperReverse.js +5 -0
  1156. node_ui/node_modules/lodash/fp/wrapperValue.js +5 -0
  1157. node_ui/node_modules/lodash/fp/xor.js +5 -0
  1158. node_ui/node_modules/lodash/fp/xorBy.js +5 -0
  1159. node_ui/node_modules/lodash/fp/xorWith.js +5 -0
  1160. node_ui/node_modules/lodash/fp/zip.js +5 -0
  1161. node_ui/node_modules/lodash/fp/zipAll.js +5 -0
  1162. node_ui/node_modules/lodash/fp/zipObj.js +1 -0
  1163. node_ui/node_modules/lodash/fp/zipObject.js +5 -0
  1164. node_ui/node_modules/lodash/fp/zipObjectDeep.js +5 -0
  1165. node_ui/node_modules/lodash/fp/zipWith.js +5 -0
  1166. node_ui/node_modules/lodash/fp.js +2 -0
  1167. node_ui/node_modules/lodash/fromPairs.js +28 -0
  1168. node_ui/node_modules/lodash/function.js +25 -0
  1169. node_ui/node_modules/lodash/functions.js +31 -0
  1170. node_ui/node_modules/lodash/functionsIn.js +31 -0
  1171. node_ui/node_modules/lodash/get.js +33 -0
  1172. node_ui/node_modules/lodash/groupBy.js +41 -0
  1173. node_ui/node_modules/lodash/gt.js +29 -0
  1174. node_ui/node_modules/lodash/gte.js +30 -0
  1175. node_ui/node_modules/lodash/has.js +35 -0
  1176. node_ui/node_modules/lodash/hasIn.js +34 -0
  1177. node_ui/node_modules/lodash/head.js +23 -0
  1178. node_ui/node_modules/lodash/identity.js +21 -0
  1179. node_ui/node_modules/lodash/inRange.js +55 -0
  1180. node_ui/node_modules/lodash/includes.js +53 -0
  1181. node_ui/node_modules/lodash/index.js +1 -0
  1182. node_ui/node_modules/lodash/indexOf.js +42 -0
  1183. node_ui/node_modules/lodash/initial.js +22 -0
  1184. node_ui/node_modules/lodash/intersection.js +30 -0
  1185. node_ui/node_modules/lodash/intersectionBy.js +45 -0
  1186. node_ui/node_modules/lodash/intersectionWith.js +41 -0
  1187. node_ui/node_modules/lodash/invert.js +42 -0
  1188. node_ui/node_modules/lodash/invertBy.js +56 -0
  1189. node_ui/node_modules/lodash/invoke.js +24 -0
  1190. node_ui/node_modules/lodash/invokeMap.js +41 -0
  1191. node_ui/node_modules/lodash/isArguments.js +36 -0
  1192. node_ui/node_modules/lodash/isArray.js +26 -0
  1193. node_ui/node_modules/lodash/isArrayBuffer.js +27 -0
  1194. node_ui/node_modules/lodash/isArrayLike.js +33 -0
  1195. node_ui/node_modules/lodash/isArrayLikeObject.js +33 -0
  1196. node_ui/node_modules/lodash/isBoolean.js +29 -0
  1197. node_ui/node_modules/lodash/isBuffer.js +38 -0
  1198. node_ui/node_modules/lodash/isDate.js +27 -0
  1199. node_ui/node_modules/lodash/isElement.js +25 -0
  1200. node_ui/node_modules/lodash/isEmpty.js +77 -0
  1201. node_ui/node_modules/lodash/isEqual.js +35 -0
  1202. node_ui/node_modules/lodash/isEqualWith.js +41 -0
  1203. node_ui/node_modules/lodash/isError.js +36 -0
  1204. node_ui/node_modules/lodash/isFinite.js +36 -0
  1205. node_ui/node_modules/lodash/isFunction.js +37 -0
  1206. node_ui/node_modules/lodash/isInteger.js +33 -0
  1207. node_ui/node_modules/lodash/isLength.js +35 -0
  1208. node_ui/node_modules/lodash/isMap.js +27 -0
  1209. node_ui/node_modules/lodash/isMatch.js +36 -0
  1210. node_ui/node_modules/lodash/isMatchWith.js +41 -0
  1211. node_ui/node_modules/lodash/isNaN.js +38 -0
  1212. node_ui/node_modules/lodash/isNative.js +40 -0
  1213. node_ui/node_modules/lodash/isNil.js +25 -0
  1214. node_ui/node_modules/lodash/isNull.js +22 -0
  1215. node_ui/node_modules/lodash/isNumber.js +38 -0
  1216. node_ui/node_modules/lodash/isObject.js +31 -0
  1217. node_ui/node_modules/lodash/isObjectLike.js +29 -0
  1218. node_ui/node_modules/lodash/isPlainObject.js +62 -0
  1219. node_ui/node_modules/lodash/isRegExp.js +27 -0
  1220. node_ui/node_modules/lodash/isSafeInteger.js +37 -0
  1221. node_ui/node_modules/lodash/isSet.js +27 -0
  1222. node_ui/node_modules/lodash/isString.js +30 -0
  1223. node_ui/node_modules/lodash/isSymbol.js +29 -0
  1224. node_ui/node_modules/lodash/isTypedArray.js +27 -0
  1225. node_ui/node_modules/lodash/isUndefined.js +22 -0
  1226. node_ui/node_modules/lodash/isWeakMap.js +28 -0
  1227. node_ui/node_modules/lodash/isWeakSet.js +28 -0
  1228. node_ui/node_modules/lodash/iteratee.js +53 -0
  1229. node_ui/node_modules/lodash/join.js +26 -0
  1230. node_ui/node_modules/lodash/kebabCase.js +28 -0
  1231. node_ui/node_modules/lodash/keyBy.js +36 -0
  1232. node_ui/node_modules/lodash/keys.js +37 -0
  1233. node_ui/node_modules/lodash/keysIn.js +32 -0
  1234. node_ui/node_modules/lodash/lang.js +58 -0
  1235. node_ui/node_modules/lodash/last.js +20 -0
  1236. node_ui/node_modules/lodash/lastIndexOf.js +46 -0
  1237. node_ui/node_modules/lodash/lodash.js +17209 -0
  1238. node_ui/node_modules/lodash/lodash.min.js +140 -0
  1239. node_ui/node_modules/lodash/lowerCase.js +27 -0
  1240. node_ui/node_modules/lodash/lowerFirst.js +22 -0
  1241. node_ui/node_modules/lodash/lt.js +29 -0
  1242. node_ui/node_modules/lodash/lte.js +30 -0
  1243. node_ui/node_modules/lodash/map.js +53 -0
  1244. node_ui/node_modules/lodash/mapKeys.js +36 -0
  1245. node_ui/node_modules/lodash/mapValues.js +43 -0
  1246. node_ui/node_modules/lodash/matches.js +46 -0
  1247. node_ui/node_modules/lodash/matchesProperty.js +44 -0
  1248. node_ui/node_modules/lodash/math.js +17 -0
  1249. node_ui/node_modules/lodash/max.js +29 -0
  1250. node_ui/node_modules/lodash/maxBy.js +34 -0
  1251. node_ui/node_modules/lodash/mean.js +22 -0
  1252. node_ui/node_modules/lodash/meanBy.js +31 -0
  1253. node_ui/node_modules/lodash/memoize.js +73 -0
  1254. node_ui/node_modules/lodash/merge.js +39 -0
  1255. node_ui/node_modules/lodash/mergeWith.js +39 -0
  1256. node_ui/node_modules/lodash/method.js +34 -0
  1257. node_ui/node_modules/lodash/methodOf.js +33 -0
  1258. node_ui/node_modules/lodash/min.js +29 -0
  1259. node_ui/node_modules/lodash/minBy.js +34 -0
  1260. node_ui/node_modules/lodash/mixin.js +74 -0
  1261. node_ui/node_modules/lodash/multiply.js +22 -0
  1262. node_ui/node_modules/lodash/negate.js +40 -0
  1263. node_ui/node_modules/lodash/next.js +35 -0
  1264. node_ui/node_modules/lodash/noop.js +17 -0
  1265. node_ui/node_modules/lodash/now.js +23 -0
  1266. node_ui/node_modules/lodash/nth.js +29 -0
  1267. node_ui/node_modules/lodash/nthArg.js +32 -0
  1268. node_ui/node_modules/lodash/number.js +5 -0
  1269. node_ui/node_modules/lodash/object.js +49 -0
  1270. node_ui/node_modules/lodash/omit.js +57 -0
  1271. node_ui/node_modules/lodash/omitBy.js +29 -0
  1272. node_ui/node_modules/lodash/once.js +25 -0
  1273. node_ui/node_modules/lodash/orderBy.js +47 -0
  1274. node_ui/node_modules/lodash/over.js +24 -0
  1275. node_ui/node_modules/lodash/overArgs.js +61 -0
  1276. node_ui/node_modules/lodash/overEvery.js +34 -0
  1277. node_ui/node_modules/lodash/overSome.js +37 -0
  1278. node_ui/node_modules/lodash/package.json +17 -0
  1279. node_ui/node_modules/lodash/pad.js +49 -0
  1280. node_ui/node_modules/lodash/padEnd.js +39 -0
  1281. node_ui/node_modules/lodash/padStart.js +39 -0
  1282. node_ui/node_modules/lodash/parseInt.js +43 -0
  1283. node_ui/node_modules/lodash/partial.js +50 -0
  1284. node_ui/node_modules/lodash/partialRight.js +49 -0
  1285. node_ui/node_modules/lodash/partition.js +43 -0
  1286. node_ui/node_modules/lodash/pick.js +25 -0
  1287. node_ui/node_modules/lodash/pickBy.js +37 -0
  1288. node_ui/node_modules/lodash/plant.js +48 -0
  1289. node_ui/node_modules/lodash/property.js +32 -0
  1290. node_ui/node_modules/lodash/propertyOf.js +30 -0
  1291. node_ui/node_modules/lodash/pull.js +29 -0
  1292. node_ui/node_modules/lodash/pullAll.js +29 -0
  1293. node_ui/node_modules/lodash/pullAllBy.js +33 -0
  1294. node_ui/node_modules/lodash/pullAllWith.js +32 -0
  1295. node_ui/node_modules/lodash/pullAt.js +43 -0
  1296. node_ui/node_modules/lodash/random.js +82 -0
  1297. node_ui/node_modules/lodash/range.js +46 -0
  1298. node_ui/node_modules/lodash/rangeRight.js +41 -0
  1299. node_ui/node_modules/lodash/rearg.js +33 -0
  1300. node_ui/node_modules/lodash/reduce.js +51 -0
  1301. node_ui/node_modules/lodash/reduceRight.js +36 -0
  1302. node_ui/node_modules/lodash/reject.js +46 -0
  1303. node_ui/node_modules/lodash/release.md +48 -0
  1304. node_ui/node_modules/lodash/remove.js +53 -0
  1305. node_ui/node_modules/lodash/repeat.js +37 -0
  1306. node_ui/node_modules/lodash/replace.js +29 -0
  1307. node_ui/node_modules/lodash/rest.js +40 -0
  1308. node_ui/node_modules/lodash/result.js +56 -0
  1309. node_ui/node_modules/lodash/reverse.js +34 -0
  1310. node_ui/node_modules/lodash/round.js +26 -0
  1311. node_ui/node_modules/lodash/sample.js +24 -0
  1312. node_ui/node_modules/lodash/sampleSize.js +37 -0
  1313. node_ui/node_modules/lodash/seq.js +16 -0
  1314. node_ui/node_modules/lodash/set.js +35 -0
  1315. node_ui/node_modules/lodash/setWith.js +32 -0
  1316. node_ui/node_modules/lodash/shuffle.js +25 -0
  1317. node_ui/node_modules/lodash/size.js +46 -0
  1318. node_ui/node_modules/lodash/slice.js +37 -0
  1319. node_ui/node_modules/lodash/snakeCase.js +28 -0
  1320. node_ui/node_modules/lodash/some.js +51 -0
  1321. node_ui/node_modules/lodash/sortBy.js +48 -0
  1322. node_ui/node_modules/lodash/sortedIndex.js +24 -0
  1323. node_ui/node_modules/lodash/sortedIndexBy.js +33 -0
  1324. node_ui/node_modules/lodash/sortedIndexOf.js +31 -0
  1325. node_ui/node_modules/lodash/sortedLastIndex.js +25 -0
  1326. node_ui/node_modules/lodash/sortedLastIndexBy.js +33 -0
  1327. node_ui/node_modules/lodash/sortedLastIndexOf.js +31 -0
  1328. node_ui/node_modules/lodash/sortedUniq.js +24 -0
  1329. node_ui/node_modules/lodash/sortedUniqBy.js +26 -0
  1330. node_ui/node_modules/lodash/split.js +52 -0
  1331. node_ui/node_modules/lodash/spread.js +63 -0
  1332. node_ui/node_modules/lodash/startCase.js +29 -0
  1333. node_ui/node_modules/lodash/startsWith.js +39 -0
  1334. node_ui/node_modules/lodash/string.js +33 -0
  1335. node_ui/node_modules/lodash/stubArray.js +23 -0
  1336. node_ui/node_modules/lodash/stubFalse.js +18 -0
  1337. node_ui/node_modules/lodash/stubObject.js +23 -0
  1338. node_ui/node_modules/lodash/stubString.js +18 -0
  1339. node_ui/node_modules/lodash/stubTrue.js +18 -0
  1340. node_ui/node_modules/lodash/subtract.js +22 -0
  1341. node_ui/node_modules/lodash/sum.js +24 -0
  1342. node_ui/node_modules/lodash/sumBy.js +33 -0
  1343. node_ui/node_modules/lodash/tail.js +22 -0
  1344. node_ui/node_modules/lodash/take.js +37 -0
  1345. node_ui/node_modules/lodash/takeRight.js +39 -0
  1346. node_ui/node_modules/lodash/takeRightWhile.js +45 -0
  1347. node_ui/node_modules/lodash/takeWhile.js +45 -0
  1348. node_ui/node_modules/lodash/tap.js +29 -0
  1349. node_ui/node_modules/lodash/template.js +272 -0
  1350. node_ui/node_modules/lodash/templateSettings.js +67 -0
  1351. node_ui/node_modules/lodash/throttle.js +69 -0
  1352. node_ui/node_modules/lodash/thru.js +28 -0
  1353. node_ui/node_modules/lodash/times.js +51 -0
  1354. node_ui/node_modules/lodash/toArray.js +58 -0
  1355. node_ui/node_modules/lodash/toFinite.js +42 -0
  1356. node_ui/node_modules/lodash/toInteger.js +36 -0
  1357. node_ui/node_modules/lodash/toIterator.js +23 -0
  1358. node_ui/node_modules/lodash/toJSON.js +1 -0
  1359. node_ui/node_modules/lodash/toLength.js +38 -0
  1360. node_ui/node_modules/lodash/toLower.js +28 -0
  1361. node_ui/node_modules/lodash/toNumber.js +64 -0
  1362. node_ui/node_modules/lodash/toPairs.js +30 -0
  1363. node_ui/node_modules/lodash/toPairsIn.js +30 -0
  1364. node_ui/node_modules/lodash/toPath.js +33 -0
  1365. node_ui/node_modules/lodash/toPlainObject.js +32 -0
  1366. node_ui/node_modules/lodash/toSafeInteger.js +37 -0
  1367. node_ui/node_modules/lodash/toString.js +28 -0
  1368. node_ui/node_modules/lodash/toUpper.js +28 -0
  1369. node_ui/node_modules/lodash/transform.js +65 -0
  1370. node_ui/node_modules/lodash/trim.js +47 -0
  1371. node_ui/node_modules/lodash/trimEnd.js +41 -0
  1372. node_ui/node_modules/lodash/trimStart.js +43 -0
  1373. node_ui/node_modules/lodash/truncate.js +111 -0
  1374. node_ui/node_modules/lodash/unary.js +22 -0
  1375. node_ui/node_modules/lodash/unescape.js +34 -0
  1376. node_ui/node_modules/lodash/union.js +26 -0
  1377. node_ui/node_modules/lodash/unionBy.js +39 -0
  1378. node_ui/node_modules/lodash/unionWith.js +34 -0
  1379. node_ui/node_modules/lodash/uniq.js +25 -0
  1380. node_ui/node_modules/lodash/uniqBy.js +31 -0
  1381. node_ui/node_modules/lodash/uniqWith.js +28 -0
  1382. node_ui/node_modules/lodash/uniqueId.js +28 -0
  1383. node_ui/node_modules/lodash/unset.js +34 -0
  1384. node_ui/node_modules/lodash/unzip.js +45 -0
  1385. node_ui/node_modules/lodash/unzipWith.js +39 -0
  1386. node_ui/node_modules/lodash/update.js +35 -0
  1387. node_ui/node_modules/lodash/updateWith.js +33 -0
  1388. node_ui/node_modules/lodash/upperCase.js +27 -0
  1389. node_ui/node_modules/lodash/upperFirst.js +22 -0
  1390. node_ui/node_modules/lodash/util.js +34 -0
  1391. node_ui/node_modules/lodash/value.js +1 -0
  1392. node_ui/node_modules/lodash/valueOf.js +1 -0
  1393. node_ui/node_modules/lodash/values.js +34 -0
  1394. node_ui/node_modules/lodash/valuesIn.js +32 -0
  1395. node_ui/node_modules/lodash/without.js +31 -0
  1396. node_ui/node_modules/lodash/words.js +35 -0
  1397. node_ui/node_modules/lodash/wrap.js +30 -0
  1398. node_ui/node_modules/lodash/wrapperAt.js +48 -0
  1399. node_ui/node_modules/lodash/wrapperChain.js +34 -0
  1400. node_ui/node_modules/lodash/wrapperLodash.js +147 -0
  1401. node_ui/node_modules/lodash/wrapperReverse.js +44 -0
  1402. node_ui/node_modules/lodash/wrapperValue.js +21 -0
  1403. node_ui/node_modules/lodash/xor.js +28 -0
  1404. node_ui/node_modules/lodash/xorBy.js +39 -0
  1405. node_ui/node_modules/lodash/xorWith.js +34 -0
  1406. node_ui/node_modules/lodash/zip.js +22 -0
  1407. node_ui/node_modules/lodash/zipObject.js +24 -0
  1408. node_ui/node_modules/lodash/zipObjectDeep.js +23 -0
  1409. node_ui/node_modules/lodash/zipWith.js +32 -0
  1410. node_ui/node_modules/lodash.isequal/LICENSE +47 -0
  1411. node_ui/node_modules/lodash.isequal/README.md +18 -0
  1412. node_ui/node_modules/lodash.isequal/index.js +1848 -0
  1413. node_ui/node_modules/lodash.isequal/package.json +16 -0
  1414. node_ui/node_modules/loose-envify/LICENSE +21 -0
  1415. node_ui/node_modules/loose-envify/README.md +45 -0
  1416. node_ui/node_modules/loose-envify/cli.js +16 -0
  1417. node_ui/node_modules/loose-envify/custom.js +4 -0
  1418. node_ui/node_modules/loose-envify/index.js +3 -0
  1419. node_ui/node_modules/loose-envify/loose-envify.js +36 -0
  1420. node_ui/node_modules/loose-envify/package.json +36 -0
  1421. node_ui/node_modules/loose-envify/replace.js +65 -0
  1422. node_ui/node_modules/meow/build/dependencies.js +8828 -0
  1423. node_ui/node_modules/meow/build/index.d.ts +1425 -0
  1424. node_ui/node_modules/meow/build/index.js +95 -0
  1425. node_ui/node_modules/meow/build/licenses.md +1620 -0
  1426. node_ui/node_modules/meow/build/options.js +92 -0
  1427. node_ui/node_modules/meow/build/parser.js +84 -0
  1428. node_ui/node_modules/meow/build/utils.js +7 -0
  1429. node_ui/node_modules/meow/build/validate.js +122 -0
  1430. node_ui/node_modules/meow/license +9 -0
  1431. node_ui/node_modules/meow/package.json +105 -0
  1432. node_ui/node_modules/meow/readme.md +314 -0
  1433. node_ui/node_modules/mimic-fn/index.d.ts +54 -0
  1434. node_ui/node_modules/mimic-fn/index.js +13 -0
  1435. node_ui/node_modules/mimic-fn/license +9 -0
  1436. node_ui/node_modules/mimic-fn/package.json +42 -0
  1437. node_ui/node_modules/mimic-fn/readme.md +69 -0
  1438. node_ui/node_modules/onetime/index.d.ts +64 -0
  1439. node_ui/node_modules/onetime/index.js +44 -0
  1440. node_ui/node_modules/onetime/license +9 -0
  1441. node_ui/node_modules/onetime/package.json +43 -0
  1442. node_ui/node_modules/onetime/readme.md +94 -0
  1443. node_ui/node_modules/patch-console/dist/index.d.ts +4 -0
  1444. node_ui/node_modules/patch-console/dist/index.js +45 -0
  1445. node_ui/node_modules/patch-console/dist/index.js.map +1 -0
  1446. node_ui/node_modules/patch-console/license +9 -0
  1447. node_ui/node_modules/patch-console/package.json +53 -0
  1448. node_ui/node_modules/patch-console/readme.md +62 -0
  1449. node_ui/node_modules/react/LICENSE +21 -0
  1450. node_ui/node_modules/react/README.md +37 -0
  1451. node_ui/node_modules/react/cjs/react-jsx-dev-runtime.development.js +1315 -0
  1452. node_ui/node_modules/react/cjs/react-jsx-dev-runtime.production.min.js +10 -0
  1453. node_ui/node_modules/react/cjs/react-jsx-dev-runtime.profiling.min.js +10 -0
  1454. node_ui/node_modules/react/cjs/react-jsx-runtime.development.js +1333 -0
  1455. node_ui/node_modules/react/cjs/react-jsx-runtime.production.min.js +11 -0
  1456. node_ui/node_modules/react/cjs/react-jsx-runtime.profiling.min.js +11 -0
  1457. node_ui/node_modules/react/cjs/react.development.js +2740 -0
  1458. node_ui/node_modules/react/cjs/react.production.min.js +26 -0
  1459. node_ui/node_modules/react/cjs/react.shared-subset.development.js +20 -0
  1460. node_ui/node_modules/react/cjs/react.shared-subset.production.min.js +10 -0
  1461. node_ui/node_modules/react/index.js +7 -0
  1462. node_ui/node_modules/react/jsx-dev-runtime.js +7 -0
  1463. node_ui/node_modules/react/jsx-runtime.js +7 -0
  1464. node_ui/node_modules/react/package.json +47 -0
  1465. node_ui/node_modules/react/react.shared-subset.js +7 -0
  1466. node_ui/node_modules/react/umd/react.development.js +3343 -0
  1467. node_ui/node_modules/react/umd/react.production.min.js +31 -0
  1468. node_ui/node_modules/react/umd/react.profiling.min.js +31 -0
  1469. node_ui/node_modules/react-devtools-core/README.md +131 -0
  1470. node_ui/node_modules/react-devtools-core/backend.js +1 -0
  1471. node_ui/node_modules/react-devtools-core/dist/backend.js +16888 -0
  1472. node_ui/node_modules/react-devtools-core/dist/backend.js.map +1 -0
  1473. node_ui/node_modules/react-devtools-core/dist/importFile.worker.worker.js +2 -0
  1474. node_ui/node_modules/react-devtools-core/dist/importFile.worker.worker.js.map +1 -0
  1475. node_ui/node_modules/react-devtools-core/dist/parseHookNames.chunk.js +2 -0
  1476. node_ui/node_modules/react-devtools-core/dist/parseHookNames.chunk.js.map +1 -0
  1477. node_ui/node_modules/react-devtools-core/dist/parseSourceAndMetadata.worker.worker.js +2 -0
  1478. node_ui/node_modules/react-devtools-core/dist/parseSourceAndMetadata.worker.worker.js.map +1 -0
  1479. node_ui/node_modules/react-devtools-core/dist/standalone.js +3 -0
  1480. node_ui/node_modules/react-devtools-core/dist/standalone.js.LICENSE.txt +41 -0
  1481. node_ui/node_modules/react-devtools-core/dist/standalone.js.map +1 -0
  1482. node_ui/node_modules/react-devtools-core/node_modules/ws/LICENSE +21 -0
  1483. node_ui/node_modules/react-devtools-core/node_modules/ws/README.md +495 -0
  1484. node_ui/node_modules/react-devtools-core/node_modules/ws/browser.js +8 -0
  1485. node_ui/node_modules/react-devtools-core/node_modules/ws/index.js +10 -0
  1486. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/buffer-util.js +129 -0
  1487. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/constants.js +10 -0
  1488. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/event-target.js +184 -0
  1489. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/extension.js +223 -0
  1490. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/limiter.js +55 -0
  1491. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/permessage-deflate.js +518 -0
  1492. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/receiver.js +607 -0
  1493. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/sender.js +409 -0
  1494. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/stream.js +180 -0
  1495. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/validation.js +104 -0
  1496. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/websocket-server.js +449 -0
  1497. node_ui/node_modules/react-devtools-core/node_modules/ws/lib/websocket.js +1197 -0
  1498. node_ui/node_modules/react-devtools-core/node_modules/ws/package.json +56 -0
  1499. node_ui/node_modules/react-devtools-core/package.json +38 -0
  1500. node_ui/node_modules/react-devtools-core/standalone.js +1 -0
  1501. node_ui/node_modules/react-reconciler/LICENSE +21 -0
  1502. node_ui/node_modules/react-reconciler/README.md +337 -0
  1503. node_ui/node_modules/react-reconciler/cjs/react-reconciler-constants.development.js +45 -0
  1504. node_ui/node_modules/react-reconciler/cjs/react-reconciler-constants.production.min.js +10 -0
  1505. node_ui/node_modules/react-reconciler/cjs/react-reconciler-reflection.development.js +660 -0
  1506. node_ui/node_modules/react-reconciler/cjs/react-reconciler-reflection.production.min.js +15 -0
  1507. node_ui/node_modules/react-reconciler/cjs/react-reconciler.development.js +21531 -0
  1508. node_ui/node_modules/react-reconciler/cjs/react-reconciler.production.min.js +234 -0
  1509. node_ui/node_modules/react-reconciler/cjs/react-reconciler.profiling.min.js +255 -0
  1510. node_ui/node_modules/react-reconciler/constants.js +7 -0
  1511. node_ui/node_modules/react-reconciler/index.js +7 -0
  1512. node_ui/node_modules/react-reconciler/package.json +40 -0
  1513. node_ui/node_modules/react-reconciler/reflection.js +7 -0
  1514. node_ui/node_modules/restore-cursor/index.d.ts +11 -0
  1515. node_ui/node_modules/restore-cursor/index.js +11 -0
  1516. node_ui/node_modules/restore-cursor/license +9 -0
  1517. node_ui/node_modules/restore-cursor/package.json +55 -0
  1518. node_ui/node_modules/restore-cursor/readme.md +31 -0
  1519. node_ui/node_modules/scheduler/LICENSE +21 -0
  1520. node_ui/node_modules/scheduler/README.md +9 -0
  1521. node_ui/node_modules/scheduler/cjs/scheduler-unstable_mock.development.js +700 -0
  1522. node_ui/node_modules/scheduler/cjs/scheduler-unstable_mock.production.min.js +20 -0
  1523. node_ui/node_modules/scheduler/cjs/scheduler-unstable_post_task.development.js +207 -0
  1524. node_ui/node_modules/scheduler/cjs/scheduler-unstable_post_task.production.min.js +14 -0
  1525. node_ui/node_modules/scheduler/cjs/scheduler.development.js +634 -0
  1526. node_ui/node_modules/scheduler/cjs/scheduler.production.min.js +19 -0
  1527. node_ui/node_modules/scheduler/index.js +7 -0
  1528. node_ui/node_modules/scheduler/package.json +36 -0
  1529. node_ui/node_modules/scheduler/umd/scheduler-unstable_mock.development.js +699 -0
  1530. node_ui/node_modules/scheduler/umd/scheduler-unstable_mock.production.min.js +19 -0
  1531. node_ui/node_modules/scheduler/umd/scheduler.development.js +152 -0
  1532. node_ui/node_modules/scheduler/umd/scheduler.production.min.js +146 -0
  1533. node_ui/node_modules/scheduler/umd/scheduler.profiling.min.js +146 -0
  1534. node_ui/node_modules/scheduler/unstable_mock.js +7 -0
  1535. node_ui/node_modules/scheduler/unstable_post_task.js +7 -0
  1536. node_ui/node_modules/shell-quote/.eslintrc +30 -0
  1537. node_ui/node_modules/shell-quote/.github/FUNDING.yml +12 -0
  1538. node_ui/node_modules/shell-quote/.nycrc +14 -0
  1539. node_ui/node_modules/shell-quote/LICENSE +24 -0
  1540. node_ui/node_modules/shell-quote/README.md +161 -0
  1541. node_ui/node_modules/shell-quote/index.js +4 -0
  1542. node_ui/node_modules/shell-quote/package.json +72 -0
  1543. node_ui/node_modules/shell-quote/parse.js +226 -0
  1544. node_ui/node_modules/shell-quote/print.py +3 -0
  1545. node_ui/node_modules/shell-quote/quote.js +19 -0
  1546. node_ui/node_modules/shell-quote/security.md +11 -0
  1547. node_ui/node_modules/shell-quote/test/comment.js +16 -0
  1548. node_ui/node_modules/shell-quote/test/env.js +52 -0
  1549. node_ui/node_modules/shell-quote/test/env_fn.js +21 -0
  1550. node_ui/node_modules/shell-quote/test/op.js +102 -0
  1551. node_ui/node_modules/shell-quote/test/parse.js +44 -0
  1552. node_ui/node_modules/shell-quote/test/quote.js +60 -0
  1553. node_ui/node_modules/shell-quote/test/set.js +31 -0
  1554. node_ui/node_modules/signal-exit/LICENSE.txt +16 -0
  1555. node_ui/node_modules/signal-exit/README.md +39 -0
  1556. node_ui/node_modules/signal-exit/index.js +202 -0
  1557. node_ui/node_modules/signal-exit/package.json +38 -0
  1558. node_ui/node_modules/signal-exit/signals.js +53 -0
  1559. node_ui/node_modules/slice-ansi/index.d.ts +19 -0
  1560. node_ui/node_modules/slice-ansi/index.js +169 -0
  1561. node_ui/node_modules/slice-ansi/license +10 -0
  1562. node_ui/node_modules/slice-ansi/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  1563. node_ui/node_modules/slice-ansi/node_modules/is-fullwidth-code-point/index.js +12 -0
  1564. node_ui/node_modules/slice-ansi/node_modules/is-fullwidth-code-point/license +9 -0
  1565. node_ui/node_modules/slice-ansi/node_modules/is-fullwidth-code-point/package.json +53 -0
  1566. node_ui/node_modules/slice-ansi/node_modules/is-fullwidth-code-point/readme.md +31 -0
  1567. node_ui/node_modules/slice-ansi/package.json +58 -0
  1568. node_ui/node_modules/slice-ansi/readme.md +54 -0
  1569. node_ui/node_modules/stack-utils/LICENSE.md +21 -0
  1570. node_ui/node_modules/stack-utils/index.js +344 -0
  1571. node_ui/node_modules/stack-utils/node_modules/escape-string-regexp/index.d.ts +18 -0
  1572. node_ui/node_modules/stack-utils/node_modules/escape-string-regexp/index.js +11 -0
  1573. node_ui/node_modules/stack-utils/node_modules/escape-string-regexp/license +9 -0
  1574. node_ui/node_modules/stack-utils/node_modules/escape-string-regexp/package.json +43 -0
  1575. node_ui/node_modules/stack-utils/node_modules/escape-string-regexp/readme.md +29 -0
  1576. node_ui/node_modules/stack-utils/package.json +39 -0
  1577. node_ui/node_modules/stack-utils/readme.md +143 -0
  1578. node_ui/node_modules/string-width/index.d.ts +39 -0
  1579. node_ui/node_modules/string-width/index.js +82 -0
  1580. node_ui/node_modules/string-width/license +9 -0
  1581. node_ui/node_modules/string-width/package.json +64 -0
  1582. node_ui/node_modules/string-width/readme.md +66 -0
  1583. node_ui/node_modules/strip-ansi/index.d.ts +15 -0
  1584. node_ui/node_modules/strip-ansi/index.js +14 -0
  1585. node_ui/node_modules/strip-ansi/license +9 -0
  1586. node_ui/node_modules/strip-ansi/package.json +59 -0
  1587. node_ui/node_modules/strip-ansi/readme.md +37 -0
  1588. node_ui/node_modules/to-rotated/index.d.ts +18 -0
  1589. node_ui/node_modules/to-rotated/index.js +24 -0
  1590. node_ui/node_modules/to-rotated/license +9 -0
  1591. node_ui/node_modules/to-rotated/package.json +46 -0
  1592. node_ui/node_modules/to-rotated/readme.md +29 -0
  1593. node_ui/node_modules/type-fest/index.d.ts +178 -0
  1594. node_ui/node_modules/type-fest/license-cc0 +121 -0
  1595. node_ui/node_modules/type-fest/license-mit +9 -0
  1596. node_ui/node_modules/type-fest/package.json +91 -0
  1597. node_ui/node_modules/type-fest/readme.md +1060 -0
  1598. node_ui/node_modules/type-fest/source/all-union-fields.d.ts +88 -0
  1599. node_ui/node_modules/type-fest/source/and.d.ts +25 -0
  1600. node_ui/node_modules/type-fest/source/array-indices.d.ts +23 -0
  1601. node_ui/node_modules/type-fest/source/array-slice.d.ts +109 -0
  1602. node_ui/node_modules/type-fest/source/array-splice.d.ts +99 -0
  1603. node_ui/node_modules/type-fest/source/array-tail.d.ts +76 -0
  1604. node_ui/node_modules/type-fest/source/array-values.d.ts +22 -0
  1605. node_ui/node_modules/type-fest/source/arrayable.d.ts +29 -0
  1606. node_ui/node_modules/type-fest/source/async-return-type.d.ts +23 -0
  1607. node_ui/node_modules/type-fest/source/asyncify.d.ts +32 -0
  1608. node_ui/node_modules/type-fest/source/basic.d.ts +68 -0
  1609. node_ui/node_modules/type-fest/source/camel-case.d.ts +89 -0
  1610. node_ui/node_modules/type-fest/source/camel-cased-properties-deep.d.ts +97 -0
  1611. node_ui/node_modules/type-fest/source/camel-cased-properties.d.ts +43 -0
  1612. node_ui/node_modules/type-fest/source/conditional-except.d.ts +45 -0
  1613. node_ui/node_modules/type-fest/source/conditional-keys.d.ts +47 -0
  1614. node_ui/node_modules/type-fest/source/conditional-pick-deep.d.ts +118 -0
  1615. node_ui/node_modules/type-fest/source/conditional-pick.d.ts +44 -0
  1616. node_ui/node_modules/type-fest/source/conditional-simplify.d.ts +32 -0
  1617. node_ui/node_modules/type-fest/source/delimiter-case.d.ts +78 -0
  1618. node_ui/node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts +106 -0
  1619. node_ui/node_modules/type-fest/source/delimiter-cased-properties.d.ts +46 -0
  1620. node_ui/node_modules/type-fest/source/distributed-omit.d.ts +89 -0
  1621. node_ui/node_modules/type-fest/source/distributed-pick.d.ts +85 -0
  1622. node_ui/node_modules/type-fest/source/empty-object.d.ts +46 -0
  1623. node_ui/node_modules/type-fest/source/enforce-optional.d.ts +47 -0
  1624. node_ui/node_modules/type-fest/source/entries.d.ts +62 -0
  1625. node_ui/node_modules/type-fest/source/entry.d.ts +65 -0
  1626. node_ui/node_modules/type-fest/source/exact.d.ts +68 -0
  1627. node_ui/node_modules/type-fest/source/except.d.ts +108 -0
  1628. node_ui/node_modules/type-fest/source/find-global-type.d.ts +64 -0
  1629. node_ui/node_modules/type-fest/source/fixed-length-array.d.ts +43 -0
  1630. node_ui/node_modules/type-fest/source/get.d.ts +219 -0
  1631. node_ui/node_modules/type-fest/source/global-this.d.ts +21 -0
  1632. node_ui/node_modules/type-fest/source/greater-than-or-equal.d.ts +22 -0
  1633. node_ui/node_modules/type-fest/source/greater-than.d.ts +56 -0
  1634. node_ui/node_modules/type-fest/source/has-optional-keys.d.ts +21 -0
  1635. node_ui/node_modules/type-fest/source/has-readonly-keys.d.ts +21 -0
  1636. node_ui/node_modules/type-fest/source/has-required-keys.d.ts +59 -0
  1637. node_ui/node_modules/type-fest/source/has-writable-keys.d.ts +21 -0
  1638. node_ui/node_modules/type-fest/source/if-any.d.ts +24 -0
  1639. node_ui/node_modules/type-fest/source/if-empty-object.d.ts +26 -0
  1640. node_ui/node_modules/type-fest/source/if-never.d.ts +24 -0
  1641. node_ui/node_modules/type-fest/source/if-null.d.ts +24 -0
  1642. node_ui/node_modules/type-fest/source/if-unknown.d.ts +24 -0
  1643. node_ui/node_modules/type-fest/source/includes.d.ts +22 -0
  1644. node_ui/node_modules/type-fest/source/int-closed-range.d.ts +35 -0
  1645. node_ui/node_modules/type-fest/source/int-range.d.ts +55 -0
  1646. node_ui/node_modules/type-fest/source/internal/array.d.ts +126 -0
  1647. node_ui/node_modules/type-fest/source/internal/characters.d.ts +67 -0
  1648. node_ui/node_modules/type-fest/source/internal/index.d.ts +8 -0
  1649. node_ui/node_modules/type-fest/source/internal/keys.d.ts +97 -0
  1650. node_ui/node_modules/type-fest/source/internal/numeric.d.ts +118 -0
  1651. node_ui/node_modules/type-fest/source/internal/object.d.ts +236 -0
  1652. node_ui/node_modules/type-fest/source/internal/string.d.ts +210 -0
  1653. node_ui/node_modules/type-fest/source/internal/tuple.d.ts +90 -0
  1654. node_ui/node_modules/type-fest/source/internal/type.d.ts +139 -0
  1655. node_ui/node_modules/type-fest/source/invariant-of.d.ts +76 -0
  1656. node_ui/node_modules/type-fest/source/is-any.d.ts +33 -0
  1657. node_ui/node_modules/type-fest/source/is-equal.d.ts +31 -0
  1658. node_ui/node_modules/type-fest/source/is-float.d.ts +41 -0
  1659. node_ui/node_modules/type-fest/source/is-integer.d.ts +58 -0
  1660. node_ui/node_modules/type-fest/source/is-literal.d.ts +296 -0
  1661. node_ui/node_modules/type-fest/source/is-never.d.ts +42 -0
  1662. node_ui/node_modules/type-fest/source/is-null.d.ts +20 -0
  1663. node_ui/node_modules/type-fest/source/is-tuple.d.ts +89 -0
  1664. node_ui/node_modules/type-fest/source/is-unknown.d.ts +52 -0
  1665. node_ui/node_modules/type-fest/source/iterable-element.d.ts +64 -0
  1666. node_ui/node_modules/type-fest/source/join.d.ts +68 -0
  1667. node_ui/node_modules/type-fest/source/jsonifiable.d.ts +37 -0
  1668. node_ui/node_modules/type-fest/source/jsonify.d.ts +122 -0
  1669. node_ui/node_modules/type-fest/source/kebab-case.d.ts +44 -0
  1670. node_ui/node_modules/type-fest/source/kebab-cased-properties-deep.d.ts +63 -0
  1671. node_ui/node_modules/type-fest/source/kebab-cased-properties.d.ts +40 -0
  1672. node_ui/node_modules/type-fest/source/keys-of-union.d.ts +42 -0
  1673. node_ui/node_modules/type-fest/source/last-array-element.d.ts +38 -0
  1674. node_ui/node_modules/type-fest/source/less-than-or-equal.d.ts +22 -0
  1675. node_ui/node_modules/type-fest/source/less-than.d.ts +26 -0
  1676. node_ui/node_modules/type-fest/source/literal-to-primitive-deep.d.ts +36 -0
  1677. node_ui/node_modules/type-fest/source/literal-to-primitive.d.ts +36 -0
  1678. node_ui/node_modules/type-fest/source/literal-union.d.ts +37 -0
  1679. node_ui/node_modules/type-fest/source/merge-deep.d.ts +486 -0
  1680. node_ui/node_modules/type-fest/source/merge-exclusive.d.ts +41 -0
  1681. node_ui/node_modules/type-fest/source/merge.d.ts +48 -0
  1682. node_ui/node_modules/type-fest/source/multidimensional-array.d.ts +44 -0
  1683. node_ui/node_modules/type-fest/source/multidimensional-readonly-array.d.ts +48 -0
  1684. node_ui/node_modules/type-fest/source/non-empty-object.d.ts +35 -0
  1685. node_ui/node_modules/type-fest/source/non-empty-string.d.ts +28 -0
  1686. node_ui/node_modules/type-fest/source/non-empty-tuple.d.ts +21 -0
  1687. node_ui/node_modules/type-fest/source/numeric.d.ts +222 -0
  1688. node_ui/node_modules/type-fest/source/observable-like.d.ts +63 -0
  1689. node_ui/node_modules/type-fest/source/omit-deep.d.ts +167 -0
  1690. node_ui/node_modules/type-fest/source/omit-index-signature.d.ts +95 -0
  1691. node_ui/node_modules/type-fest/source/opaque.d.ts +1 -0
  1692. node_ui/node_modules/type-fest/source/optional-keys-of.d.ts +39 -0
  1693. node_ui/node_modules/type-fest/source/or.d.ts +25 -0
  1694. node_ui/node_modules/type-fest/source/override-properties.d.ts +36 -0
  1695. node_ui/node_modules/type-fest/source/package-json.d.ts +676 -0
  1696. node_ui/node_modules/type-fest/source/partial-deep.d.ts +151 -0
  1697. node_ui/node_modules/type-fest/source/partial-on-undefined-deep.d.ts +78 -0
  1698. node_ui/node_modules/type-fest/source/pascal-case.d.ts +42 -0
  1699. node_ui/node_modules/type-fest/source/pascal-cased-properties-deep.d.ts +62 -0
  1700. node_ui/node_modules/type-fest/source/pascal-cased-properties.d.ts +36 -0
  1701. node_ui/node_modules/type-fest/source/paths.d.ts +262 -0
  1702. node_ui/node_modules/type-fest/source/pick-deep.d.ts +149 -0
  1703. node_ui/node_modules/type-fest/source/pick-index-signature.d.ts +50 -0
  1704. node_ui/node_modules/type-fest/source/primitive.d.ts +13 -0
  1705. node_ui/node_modules/type-fest/source/promisable.d.ts +25 -0
  1706. node_ui/node_modules/type-fest/source/readonly-deep.d.ts +81 -0
  1707. node_ui/node_modules/type-fest/source/readonly-keys-of.d.ts +30 -0
  1708. node_ui/node_modules/type-fest/source/readonly-tuple.d.ts +41 -0
  1709. node_ui/node_modules/type-fest/source/replace.d.ts +85 -0
  1710. node_ui/node_modules/type-fest/source/require-all-or-none.d.ts +51 -0
  1711. node_ui/node_modules/type-fest/source/require-at-least-one.d.ts +47 -0
  1712. node_ui/node_modules/type-fest/source/require-exactly-one.d.ts +45 -0
  1713. node_ui/node_modules/type-fest/source/require-one-or-none.d.ts +46 -0
  1714. node_ui/node_modules/type-fest/source/required-deep.d.ts +78 -0
  1715. node_ui/node_modules/type-fest/source/required-keys-of.d.ts +30 -0
  1716. node_ui/node_modules/type-fest/source/schema.d.ts +114 -0
  1717. node_ui/node_modules/type-fest/source/screaming-snake-case.d.ts +28 -0
  1718. node_ui/node_modules/type-fest/source/set-field-type.d.ts +65 -0
  1719. node_ui/node_modules/type-fest/source/set-non-nullable-deep.d.ts +83 -0
  1720. node_ui/node_modules/type-fest/source/set-non-nullable.d.ts +39 -0
  1721. node_ui/node_modules/type-fest/source/set-optional.d.ts +38 -0
  1722. node_ui/node_modules/type-fest/source/set-parameter-type.d.ts +117 -0
  1723. node_ui/node_modules/type-fest/source/set-readonly.d.ts +39 -0
  1724. node_ui/node_modules/type-fest/source/set-required-deep.d.ts +68 -0
  1725. node_ui/node_modules/type-fest/source/set-required.d.ts +70 -0
  1726. node_ui/node_modules/type-fest/source/set-return-type.d.ts +29 -0
  1727. node_ui/node_modules/type-fest/source/shared-union-fields-deep.d.ts +178 -0
  1728. node_ui/node_modules/type-fest/source/shared-union-fields.d.ts +76 -0
  1729. node_ui/node_modules/type-fest/source/simplify-deep.d.ts +115 -0
  1730. node_ui/node_modules/type-fest/source/simplify.d.ts +58 -0
  1731. node_ui/node_modules/type-fest/source/single-key-object.d.ts +29 -0
  1732. node_ui/node_modules/type-fest/source/snake-case.d.ts +45 -0
  1733. node_ui/node_modules/type-fest/source/snake-cased-properties-deep.d.ts +63 -0
  1734. node_ui/node_modules/type-fest/source/snake-cased-properties.d.ts +40 -0
  1735. node_ui/node_modules/type-fest/source/split.d.ts +88 -0
  1736. node_ui/node_modules/type-fest/source/spread.d.ts +84 -0
  1737. node_ui/node_modules/type-fest/source/string-key-of.d.ts +25 -0
  1738. node_ui/node_modules/type-fest/source/string-repeat.d.ts +47 -0
  1739. node_ui/node_modules/type-fest/source/string-slice.d.ts +37 -0
  1740. node_ui/node_modules/type-fest/source/stringified.d.ts +23 -0
  1741. node_ui/node_modules/type-fest/source/structured-cloneable.d.ts +92 -0
  1742. node_ui/node_modules/type-fest/source/subtract.d.ts +83 -0
  1743. node_ui/node_modules/type-fest/source/sum.d.ts +78 -0
  1744. node_ui/node_modules/type-fest/source/tagged-union.d.ts +51 -0
  1745. node_ui/node_modules/type-fest/source/tagged.d.ts +256 -0
  1746. node_ui/node_modules/type-fest/source/trim.d.ts +27 -0
  1747. node_ui/node_modules/type-fest/source/tsconfig-json.d.ts +1294 -0
  1748. node_ui/node_modules/type-fest/source/tuple-to-object.d.ts +42 -0
  1749. node_ui/node_modules/type-fest/source/tuple-to-union.d.ts +51 -0
  1750. node_ui/node_modules/type-fest/source/typed-array.d.ts +17 -0
  1751. node_ui/node_modules/type-fest/source/undefined-on-partial-deep.d.ts +80 -0
  1752. node_ui/node_modules/type-fest/source/union-to-intersection.d.ts +61 -0
  1753. node_ui/node_modules/type-fest/source/union-to-tuple.d.ts +56 -0
  1754. node_ui/node_modules/type-fest/source/unknown-array.d.ts +25 -0
  1755. node_ui/node_modules/type-fest/source/unknown-map.d.ts +24 -0
  1756. node_ui/node_modules/type-fest/source/unknown-record.d.ts +31 -0
  1757. node_ui/node_modules/type-fest/source/unknown-set.d.ts +24 -0
  1758. node_ui/node_modules/type-fest/source/value-of.d.ts +42 -0
  1759. node_ui/node_modules/type-fest/source/words.d.ts +118 -0
  1760. node_ui/node_modules/type-fest/source/writable-deep.d.ts +83 -0
  1761. node_ui/node_modules/type-fest/source/writable-keys-of.d.ts +33 -0
  1762. node_ui/node_modules/type-fest/source/writable.d.ts +68 -0
  1763. node_ui/node_modules/widest-line/index.d.ts +12 -0
  1764. node_ui/node_modules/widest-line/index.js +11 -0
  1765. node_ui/node_modules/widest-line/license +9 -0
  1766. node_ui/node_modules/widest-line/package.json +60 -0
  1767. node_ui/node_modules/widest-line/readme.md +26 -0
  1768. node_ui/node_modules/wrap-ansi/index.d.ts +41 -0
  1769. node_ui/node_modules/wrap-ansi/index.js +222 -0
  1770. node_ui/node_modules/wrap-ansi/license +9 -0
  1771. node_ui/node_modules/wrap-ansi/package.json +69 -0
  1772. node_ui/node_modules/wrap-ansi/readme.md +75 -0
  1773. node_ui/node_modules/ws/LICENSE +20 -0
  1774. node_ui/node_modules/ws/README.md +548 -0
  1775. node_ui/node_modules/ws/browser.js +8 -0
  1776. node_ui/node_modules/ws/index.js +13 -0
  1777. node_ui/node_modules/ws/lib/buffer-util.js +131 -0
  1778. node_ui/node_modules/ws/lib/constants.js +18 -0
  1779. node_ui/node_modules/ws/lib/event-target.js +292 -0
  1780. node_ui/node_modules/ws/lib/extension.js +203 -0
  1781. node_ui/node_modules/ws/lib/limiter.js +55 -0
  1782. node_ui/node_modules/ws/lib/permessage-deflate.js +528 -0
  1783. node_ui/node_modules/ws/lib/receiver.js +706 -0
  1784. node_ui/node_modules/ws/lib/sender.js +602 -0
  1785. node_ui/node_modules/ws/lib/stream.js +161 -0
  1786. node_ui/node_modules/ws/lib/subprotocol.js +62 -0
  1787. node_ui/node_modules/ws/lib/validation.js +152 -0
  1788. node_ui/node_modules/ws/lib/websocket-server.js +550 -0
  1789. node_ui/node_modules/ws/lib/websocket.js +1388 -0
  1790. node_ui/node_modules/ws/package.json +69 -0
  1791. node_ui/node_modules/ws/wrapper.mjs +8 -0
  1792. node_ui/node_modules/yoga-wasm-web/LICENSE +21 -0
  1793. node_ui/node_modules/yoga-wasm-web/README.md +70 -0
  1794. node_ui/node_modules/yoga-wasm-web/dist/asm.d.ts +6 -0
  1795. node_ui/node_modules/yoga-wasm-web/dist/asm.js +1 -0
  1796. node_ui/node_modules/yoga-wasm-web/dist/auto.d.ts +7 -0
  1797. node_ui/node_modules/yoga-wasm-web/dist/browser.js +1 -0
  1798. node_ui/node_modules/yoga-wasm-web/dist/generated/YGEnums.d.ts +328 -0
  1799. node_ui/node_modules/yoga-wasm-web/dist/index.d.ts +7 -0
  1800. node_ui/node_modules/yoga-wasm-web/dist/index.js +1 -0
  1801. node_ui/node_modules/yoga-wasm-web/dist/node.js +1 -0
  1802. node_ui/node_modules/yoga-wasm-web/dist/wrapAsm-57389177.js +1 -0
  1803. node_ui/node_modules/yoga-wasm-web/dist/wrapAsm-f766f97f.js +1 -0
  1804. node_ui/node_modules/yoga-wasm-web/dist/wrapAsm.d.ts +176 -0
  1805. node_ui/node_modules/yoga-wasm-web/dist/yoga.wasm +0 -0
  1806. node_ui/node_modules/yoga-wasm-web/package.json +56 -0
  1807. node_ui/package.json +21 -0
@@ -0,0 +1,1086 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Unified session finder - search across multiple coding agents (Claude Code, Codex, etc.)
4
+
5
+ Usage:
6
+ find-session [keywords] [OPTIONS]
7
+ fs [keywords] [OPTIONS] # via shell wrapper
8
+
9
+ Examples:
10
+ find-session "langroid,MCP" # Search all agents in current project
11
+ find-session -g # Show all sessions across all projects
12
+ find-session "bug" --agents claude # Search only Claude sessions
13
+ """
14
+
15
+ import argparse
16
+ import json
17
+ import os
18
+ import sys
19
+ import time
20
+ from dataclasses import dataclass
21
+ from pathlib import Path
22
+ from typing import List, Optional, Tuple
23
+ import termios
24
+ import tty
25
+
26
+ # Import search functions from existing tools
27
+ from claude_code_tools.find_claude_session import (
28
+ find_sessions as find_claude_sessions,
29
+ resume_session as resume_claude_session,
30
+ get_session_file_path as get_claude_session_file_path,
31
+ copy_session_file as copy_claude_session_file,
32
+ clone_session as clone_claude_session,
33
+ handle_export_session as handle_export_claude_session,
34
+ handle_smart_trim_resume_claude,
35
+ is_sidechain_session,
36
+ is_malformed_session,
37
+ )
38
+ from claude_code_tools.find_codex_session import (
39
+ find_sessions as find_codex_sessions,
40
+ resume_session as resume_codex_session,
41
+ get_codex_home,
42
+ copy_session_file as copy_codex_session_file,
43
+ clone_session as clone_codex_session,
44
+ handle_export_session as handle_export_codex_session,
45
+ handle_smart_trim_resume_codex,
46
+ )
47
+ from claude_code_tools.session_menu import (
48
+ show_action_menu as menu_show_action_menu,
49
+ show_resume_submenu as menu_show_resume_submenu,
50
+ prompt_suppress_options as menu_prompt_suppress_options,
51
+ )
52
+ from claude_code_tools.node_menu_ui import run_node_menu_ui, run_find_options_ui
53
+ from claude_code_tools.trim_session import (
54
+ trim_and_create_session,
55
+ is_trimmed_session,
56
+ get_session_derivation_type,
57
+ )
58
+ from claude_code_tools.session_utils import (
59
+ format_session_id_display,
60
+ filter_sessions_by_time,
61
+ default_export_path,
62
+ )
63
+
64
+ try:
65
+ from rich.console import Console
66
+ from rich.table import Table
67
+ from rich import box
68
+
69
+ RICH_AVAILABLE = True
70
+ except ImportError:
71
+ RICH_AVAILABLE = False
72
+
73
+ try:
74
+ from claude_code_tools.session_tui import run_session_tui
75
+
76
+ TUI_AVAILABLE = True
77
+ except ImportError:
78
+ TUI_AVAILABLE = False
79
+
80
+
81
+ @dataclass
82
+ class AgentConfig:
83
+ """Configuration for a coding agent."""
84
+
85
+ name: str # Internal name (e.g., "claude", "codex")
86
+ display_name: str # Display name (e.g., "Claude", "Codex")
87
+ home_dir: Optional[str] # Custom home directory (None = default)
88
+ enabled: bool = True
89
+
90
+
91
+ def get_default_agents() -> List[AgentConfig]:
92
+ """Get default agent configurations."""
93
+ return [
94
+ AgentConfig(name="claude", display_name="Claude", home_dir=None),
95
+ AgentConfig(name="codex", display_name="Codex", home_dir=None),
96
+ ]
97
+
98
+
99
+ def load_config() -> List[AgentConfig]:
100
+ """Load agent configuration from config file or use defaults."""
101
+ config_path = Path.home() / ".config" / "find-session" / "config.json"
102
+
103
+ if config_path.exists():
104
+ try:
105
+ with open(config_path, "r") as f:
106
+ data = json.load(f)
107
+ agents = []
108
+ for agent_data in data.get("agents", []):
109
+ agents.append(
110
+ AgentConfig(
111
+ name=agent_data["name"],
112
+ display_name=agent_data.get(
113
+ "display_name", agent_data["name"].title()
114
+ ),
115
+ home_dir=agent_data.get("home_dir"),
116
+ enabled=agent_data.get("enabled", True),
117
+ )
118
+ )
119
+ return agents
120
+ except (json.JSONDecodeError, KeyError, IOError):
121
+ pass
122
+
123
+ # Return defaults if config doesn't exist or is invalid
124
+ return get_default_agents()
125
+
126
+
127
+ def build_scope_lines(args) -> tuple[str, str | None]:
128
+ """Return scope line and optional tip line mirroring Rich UI messaging."""
129
+ if args.original:
130
+ return (
131
+ "Showing: Original sessions only (excluding trimmed, rollover, and sub-agent sessions)",
132
+ None,
133
+ )
134
+
135
+ excluded_types = []
136
+ if args.no_sub:
137
+ excluded_types.append("sub-agent")
138
+ if args.no_trim:
139
+ excluded_types.append("trimmed")
140
+ if args.no_cont:
141
+ excluded_types.append("rollover")
142
+
143
+ if excluded_types:
144
+ excluded_str = ", ".join(excluded_types)
145
+ return (f"Showing: All sessions except {excluded_str}", None)
146
+
147
+ return (
148
+ "Showing: All session types (original, trimmed, rollover, and sub-agent)",
149
+ "Tip: Use --no-sub, --no-trim, or --no-roll to exclude specific types",
150
+ )
151
+
152
+
153
+ def search_all_agents(
154
+ keywords: List[str],
155
+ global_search: bool = False,
156
+ num_matches: int = 10,
157
+ agents: Optional[List[str]] = None,
158
+ claude_home: Optional[str] = None,
159
+ codex_home: Optional[str] = None,
160
+ original_only: bool = False,
161
+ no_sub: bool = False,
162
+ no_trim: bool = False,
163
+ no_cont: bool = False,
164
+ ) -> List[dict]:
165
+ """
166
+ Search sessions across all enabled agents.
167
+
168
+ Args:
169
+ keywords: List of keywords to search for
170
+ global_search: Search across all projects
171
+ num_matches: Number of matches to return
172
+ agents: List of agent names to search
173
+ claude_home: Claude home directory
174
+ codex_home: Codex home directory
175
+ original_only: Only return original sessions (excludes trimmed, rollover, and sub-agent)
176
+ no_sub: Exclude sub-agent sessions
177
+ no_trim: Exclude trimmed sessions
178
+ no_cont: Exclude rollover sessions (internally "continued")
179
+
180
+ Returns list of dicts with agent metadata added.
181
+ """
182
+ agent_configs = load_config()
183
+
184
+ # Filter by requested agents if specified
185
+ if agents:
186
+ agent_configs = [a for a in agent_configs if a.name in agents]
187
+
188
+ # Filter by enabled agents
189
+ agent_configs = [a for a in agent_configs if a.enabled]
190
+
191
+ all_sessions = []
192
+
193
+ for agent_config in agent_configs:
194
+ if agent_config.name == "claude":
195
+ # Search Claude sessions
196
+ home = claude_home or agent_config.home_dir
197
+ sessions = find_claude_sessions(
198
+ keywords,
199
+ global_search=global_search,
200
+ claude_home=home,
201
+ original_only=original_only,
202
+ no_sub=no_sub,
203
+ no_trim=no_trim,
204
+ no_cont=no_cont,
205
+ )
206
+
207
+ # Add agent metadata to each session
208
+ for session in sessions:
209
+ session_id = session[0]
210
+ cwd = session[6]
211
+
212
+ # Get file path and check if trimmed
213
+ file_path = Path(
214
+ get_claude_session_file_path(session_id, cwd, claude_home=home)
215
+ )
216
+ is_trimmed = is_trimmed_session(file_path)
217
+ derivation_type = get_session_derivation_type(file_path)
218
+
219
+ # Skip if original_only and session is trimmed
220
+ if original_only and is_trimmed:
221
+ continue
222
+
223
+ # Check if session is sidechain (sub-agent)
224
+ is_sidechain = is_sidechain_session(file_path)
225
+
226
+ # Skip malformed Claude sessions (missing metadata, cannot resume)
227
+ if is_malformed_session(file_path):
228
+ continue
229
+
230
+ session_dict = {
231
+ "agent": "claude",
232
+ "agent_display": agent_config.display_name,
233
+ "session_id": session_id,
234
+ "mod_time": session[1],
235
+ "create_time": session[2],
236
+ "lines": session[3],
237
+ "project": session[4],
238
+ "preview": session[5],
239
+ "cwd": cwd,
240
+ "branch": session[7] if len(session) > 7 else "",
241
+ "file_path": str(file_path),
242
+ "default_export_path": str(default_export_path(file_path, "claude")),
243
+ "claude_home": home,
244
+ "is_trimmed": is_trimmed,
245
+ "derivation_type": derivation_type,
246
+ "is_sidechain": is_sidechain,
247
+ }
248
+ all_sessions.append(session_dict)
249
+
250
+ elif agent_config.name == "codex":
251
+ # Search Codex sessions
252
+ home = codex_home or agent_config.home_dir
253
+ codex_home_path = get_codex_home(home)
254
+
255
+ if codex_home_path.exists():
256
+ sessions = find_codex_sessions(
257
+ codex_home_path,
258
+ keywords,
259
+ num_matches=num_matches * 2, # Get more for merging
260
+ global_search=global_search,
261
+ original_only=original_only,
262
+ no_sub=no_sub,
263
+ no_trim=no_trim,
264
+ no_cont=no_cont,
265
+ )
266
+
267
+ # Add agent metadata to each session
268
+ for session in sessions:
269
+ file_path = Path(session.get("file_path", ""))
270
+ is_trimmed = is_trimmed_session(file_path)
271
+ derivation_type = get_session_derivation_type(file_path)
272
+
273
+ # Skip if original_only and session is trimmed
274
+ if original_only and is_trimmed:
275
+ continue
276
+
277
+ session_dict = {
278
+ "agent": "codex",
279
+ "agent_display": agent_config.display_name,
280
+ "session_id": session["session_id"],
281
+ "mod_time": session["mod_time"],
282
+ "create_time": session.get("mod_time"), # Codex doesn't separate these
283
+ "lines": session["lines"],
284
+ "project": session["project"],
285
+ "preview": session["preview"],
286
+ "cwd": session["cwd"],
287
+ "branch": session.get("branch", ""),
288
+ "file_path": session.get("file_path", ""),
289
+ "default_export_path": str(default_export_path(file_path, "codex")) if file_path else "",
290
+ "is_trimmed": is_trimmed,
291
+ "derivation_type": derivation_type,
292
+ "is_sidechain": False, # Codex doesn't have sidechain sessions
293
+ }
294
+ all_sessions.append(session_dict)
295
+
296
+ # Sort by modification time (newest first) and limit
297
+ all_sessions.sort(key=lambda x: x["mod_time"], reverse=True)
298
+ return all_sessions[:num_matches]
299
+
300
+
301
+ def display_interactive_ui(
302
+ sessions: List[dict], keywords: List[str], stderr_mode: bool = False, num_matches: int = 10
303
+ ) -> Optional[dict]:
304
+ """Display unified session selection UI."""
305
+ if not RICH_AVAILABLE:
306
+ return None
307
+
308
+ # Use stderr console if in stderr mode
309
+ ui_console = Console(file=sys.stderr) if stderr_mode else Console()
310
+
311
+ # Limit to specified number of sessions
312
+ display_sessions = sessions[:num_matches]
313
+
314
+ if not display_sessions:
315
+ ui_console.print("[red]No sessions found[/red]")
316
+ return None
317
+
318
+ # Create table
319
+ title = (
320
+ f"Sessions matching: {', '.join(keywords)}" if keywords else "All sessions"
321
+ )
322
+ table = Table(
323
+ title=title, box=box.ROUNDED, show_header=True, header_style="bold cyan"
324
+ )
325
+
326
+ table.add_column("#", style="bold yellow", width=3)
327
+ table.add_column("Agent", style="magenta", width=6)
328
+ table.add_column("Session ID", style="dim", width=18)
329
+ table.add_column("Project", style="green")
330
+ table.add_column("Branch", style="cyan")
331
+ table.add_column("Date", style="blue")
332
+ table.add_column("Lines", style="cyan", justify="right", width=6)
333
+ table.add_column("Last User Message", style="white", max_width=50, overflow="fold")
334
+
335
+ for idx, session in enumerate(display_sessions, 1):
336
+ # Format date from mod_time
337
+ from datetime import datetime
338
+
339
+ mod_time = session["mod_time"]
340
+ date_str = datetime.fromtimestamp(mod_time).strftime("%m/%d %H:%M")
341
+
342
+ branch_display = session.get("branch", "") or "N/A"
343
+
344
+ # Format session ID with annotations using centralized helper
345
+ derivation_type = session.get("derivation_type")
346
+ session_id_display = format_session_id_display(
347
+ session["session_id"],
348
+ is_trimmed=(derivation_type == "trimmed"),
349
+ is_continued=(derivation_type == "continued"),
350
+ is_sidechain=session.get("is_sidechain", False),
351
+ truncate_length=8,
352
+ )
353
+
354
+ table.add_row(
355
+ str(idx),
356
+ session["agent_display"],
357
+ session_id_display,
358
+ session["project"],
359
+ branch_display,
360
+ date_str,
361
+ str(session["lines"]),
362
+ session["preview"],
363
+ )
364
+
365
+ ui_console.print(table)
366
+
367
+ # Show footnotes if any sessions are derived or sidechain
368
+ has_trimmed = any(s.get("derivation_type") == "trimmed" for s in display_sessions)
369
+ has_continued = any(s.get("derivation_type") == "continued" for s in display_sessions)
370
+ has_sidechain = any(s.get("is_sidechain", False) for s in display_sessions)
371
+ if has_trimmed or has_continued or has_sidechain:
372
+ footnotes = []
373
+ if has_trimmed:
374
+ footnotes.append("(t) = Trimmed session")
375
+ if has_continued:
376
+ footnotes.append("(r) = Rollover session")
377
+ if has_sidechain:
378
+ footnotes.append("(sub) = Sub-agent session (not directly resumable)")
379
+ ui_console.print("[dim]" + " | ".join(footnotes) + "[/dim]")
380
+
381
+ # Auto-select if only one result
382
+ if len(display_sessions) == 1:
383
+ ui_console.print(f"\n[yellow]Auto-selecting only match: {display_sessions[0]['session_id'][:16]}...[/yellow]")
384
+ return display_sessions[0]
385
+
386
+ ui_console.print("\n[bold]Select a session:[/bold]")
387
+ ui_console.print(f" • Enter number (1-{len(display_sessions)}) to select")
388
+ ui_console.print(" • Press Enter to cancel\n")
389
+
390
+ while True:
391
+ try:
392
+ from rich.prompt import Prompt
393
+
394
+ choice = Prompt.ask(
395
+ "Your choice", default="", show_default=False, console=ui_console
396
+ )
397
+
398
+ # Handle empty input - cancel
399
+ if not choice or not choice.strip():
400
+ ui_console.print("[yellow]Cancelled[/yellow]")
401
+ return None
402
+
403
+ idx = int(choice) - 1
404
+ if 0 <= idx < len(display_sessions):
405
+ return display_sessions[idx]
406
+ else:
407
+ ui_console.print("[red]Invalid choice. Please try again.[/red]")
408
+
409
+ except KeyboardInterrupt:
410
+ ui_console.print("\n[yellow]Cancelled[/yellow]")
411
+ return None
412
+ except EOFError:
413
+ ui_console.print("\n[yellow]Cancelled (EOF)[/yellow]")
414
+ return None
415
+ except ValueError:
416
+ ui_console.print("[red]Invalid choice. Please try again.[/red]")
417
+
418
+
419
+ def show_resume_submenu(stderr_mode: bool = False) -> Optional[str]:
420
+ """Show resume options submenu."""
421
+ return menu_show_resume_submenu(stderr_mode=stderr_mode)
422
+
423
+
424
+ def prompt_suppress_options(
425
+ stderr_mode: bool = False
426
+ ) -> Optional[Tuple[Optional[str], int, Optional[int]]]:
427
+ """
428
+ Prompt user for suppress-tool-results options.
429
+
430
+ Returns:
431
+ Tuple of (tools, threshold, trim_assistant_messages) or None if cancelled
432
+ """
433
+ return menu_prompt_suppress_options(stderr_mode=stderr_mode)
434
+
435
+
436
+ def append_to_codex_history(
437
+ session_id: str, first_user_msg: str, codex_home: str
438
+ ) -> None:
439
+ """
440
+ Append session to Codex history.jsonl file.
441
+
442
+ Args:
443
+ session_id: Session UUID
444
+ first_user_msg: First user message text
445
+ codex_home: Codex home directory
446
+ """
447
+ history_file = Path(codex_home) / "history.jsonl"
448
+ history_entry = {
449
+ "session_id": session_id,
450
+ "ts": int(time.time()),
451
+ "text": first_user_msg[:500], # Limit to 500 chars
452
+ }
453
+
454
+ with open(history_file, "a") as f:
455
+ f.write(json.dumps(history_entry) + "\n")
456
+
457
+
458
+ def extract_first_user_message(
459
+ session_file: Path, agent: str, last: bool = False
460
+ ) -> str:
461
+ """
462
+ Extract user message from session file.
463
+
464
+ Args:
465
+ session_file: Path to session file
466
+ agent: Agent type ('claude' or 'codex')
467
+ last: If True, return the last user message; if False, return the first
468
+
469
+ Returns:
470
+ User message text (first or last depending on `last` parameter)
471
+ """
472
+ result = None
473
+
474
+ with open(session_file, "r") as f:
475
+ for line in f:
476
+ try:
477
+ data = json.loads(line)
478
+ except json.JSONDecodeError:
479
+ continue
480
+
481
+ message_text = None
482
+
483
+ if agent == "claude":
484
+ if data.get("type") == "user":
485
+ content = data.get("message", {}).get("content")
486
+ if isinstance(content, str):
487
+ message_text = content
488
+ elif isinstance(content, list):
489
+ for item in content:
490
+ if isinstance(item, dict) and item.get("type") == "text":
491
+ message_text = item.get("text", "")
492
+ break
493
+ elif agent == "codex":
494
+ if data.get("type") == "response_item":
495
+ payload = data.get("payload", {})
496
+ if payload.get("type") == "message":
497
+ role = payload.get("role")
498
+ if role == "user":
499
+ # Codex stores text in content array
500
+ content = payload.get("content", [])
501
+ if content and isinstance(content, list):
502
+ for item in content:
503
+ if isinstance(item, dict):
504
+ text = item.get("text", "")
505
+ # Skip environment_context, get actual user message
506
+ if text and "<environment_context>" not in text:
507
+ message_text = text
508
+ break
509
+ # If content structure is different, try payload.text
510
+ if not message_text and payload.get("text"):
511
+ message_text = payload.get("text")
512
+
513
+ if message_text:
514
+ if not last:
515
+ return message_text # Return first match immediately
516
+ result = message_text # Keep updating for last match
517
+
518
+ return result or "Suppressed session"
519
+
520
+
521
+ def handle_suppress_resume(
522
+ session: dict,
523
+ tools: Optional[str],
524
+ threshold: int,
525
+ trim_assistant_messages: Optional[int] = None,
526
+ shell_mode: bool = False
527
+ ) -> None:
528
+ """
529
+ Suppress tool results and resume session.
530
+
531
+ Args:
532
+ session: Session dict
533
+ tools: Tool names to suppress (comma-separated) or None for all
534
+ threshold: Length threshold
535
+ trim_assistant_messages: Optional assistant message trimming
536
+ shell_mode: Whether in shell mode
537
+ """
538
+ agent = session["agent"]
539
+
540
+ # Get session file path based on agent type
541
+ if agent == "claude":
542
+ session_file = Path(
543
+ get_claude_session_file_path(
544
+ session["session_id"],
545
+ session["cwd"],
546
+ claude_home=session.get("claude_home"),
547
+ )
548
+ )
549
+ else: # codex
550
+ session_file = Path(session["file_path"])
551
+
552
+ output = sys.stderr if shell_mode else sys.stdout
553
+ print(f"\n🔧 Trimming session...", file=output)
554
+
555
+ # Parse tools into set if provided
556
+ target_tools = None
557
+ if tools:
558
+ target_tools = {tool.strip().lower() for tool in tools.split(",")}
559
+
560
+ try:
561
+ # Use helper function to trim and create new session
562
+ result = trim_and_create_session(
563
+ agent,
564
+ session_file,
565
+ target_tools,
566
+ threshold,
567
+ trim_assistant_messages=trim_assistant_messages
568
+ )
569
+ except Exception as e:
570
+ print(f"❌ Error trimming session: {e}", file=output)
571
+ return
572
+
573
+ # Check if nothing to trim (savings below threshold)
574
+ if result.get("nothing_to_trim"):
575
+ print(f"\n{'='*70}", file=output)
576
+ print(f"⚠️ NOTHING TO TRIM", file=output)
577
+ print(f"{'='*70}", file=output)
578
+ print(
579
+ f" Savings too small ({result['tokens_saved']} tokens) - "
580
+ f"no new session created",
581
+ file=output,
582
+ )
583
+ return
584
+
585
+ new_session_id = result["session_id"]
586
+ new_session_file = result["output_file"]
587
+
588
+ print(f"\n{'='*70}", file=output)
589
+ print(f"✅ TRIM COMPLETE", file=output)
590
+ print(f"{'='*70}", file=output)
591
+ print(f"📁 New session file created:", file=output)
592
+ print(f" {new_session_file}", file=output)
593
+ print(f"🆔 New session UUID: {new_session_id}", file=output)
594
+ print(
595
+ f"📊 Trimmed {result['num_tools_trimmed']} tool results, "
596
+ f"{result['num_assistant_trimmed']} assistant messages, "
597
+ f"saved ~{result['tokens_saved']:,} tokens",
598
+ file=output,
599
+ )
600
+
601
+ # For Codex, append to history.jsonl
602
+ if agent == "codex":
603
+ # Get first user message from original session
604
+ first_msg = extract_first_user_message(session_file, agent)
605
+
606
+ # Append to history
607
+ codex_home = get_codex_home()
608
+ history_file = Path(codex_home) / "history.jsonl"
609
+ append_to_codex_history(new_session_id, first_msg, codex_home)
610
+ print(f"📝 Added entry to Codex history:", file=output)
611
+ print(f" {history_file}", file=output)
612
+
613
+ print(f"\n🚀 Resuming suppressed session: {new_session_id[:16]}...", file=output)
614
+ print(f"{'='*70}\n", file=output)
615
+
616
+ # Resume the new session
617
+ if agent == "claude":
618
+ resume_claude_session(new_session_id, session["cwd"], shell_mode)
619
+ elif agent == "codex":
620
+ resume_codex_session(new_session_id, session["cwd"], shell_mode)
621
+
622
+
623
+ def show_action_menu(session: dict, stderr_mode: bool = False) -> Optional[str]:
624
+ """Show action menu for selected session."""
625
+ return menu_show_action_menu(
626
+ session_id=session['session_id'],
627
+ agent=session.get('agent', 'unknown'),
628
+ project_name=session['project'],
629
+ git_branch=session.get('branch'),
630
+ is_sidechain=session.get('is_sidechain', False),
631
+ stderr_mode=stderr_mode,
632
+ )
633
+
634
+
635
+ def create_action_handler(
636
+ shell_mode: bool = False, nonlaunch_flag: Optional[dict] = None
637
+ ):
638
+ """Create an action handler for the TUI or Node UI."""
639
+
640
+ def action_handler(session, action: str, kwargs: Optional[dict] = None) -> None:
641
+ """Handle actions from the UI - session can be tuple or dict."""
642
+ # Convert session to dict if it's a tuple or dict-like
643
+ if isinstance(session, dict):
644
+ session_dict = session
645
+ else:
646
+ # Shouldn't happen in unified find, but handle gracefully
647
+ session_dict = {"session_id": str(session), "agent": "unknown"}
648
+
649
+ handle_action(
650
+ session_dict, action, shell_mode=shell_mode, action_kwargs=kwargs or {}
651
+ )
652
+
653
+ if nonlaunch_flag is not None and action in {"path", "copy", "export"}:
654
+ nonlaunch_flag["done"] = True
655
+ nonlaunch_flag["session_id"] = session_dict.get("session_id")
656
+
657
+ return action_handler
658
+
659
+
660
+ def handle_action(
661
+ session: dict, action: str, shell_mode: bool = False, action_kwargs: Optional[dict] = None
662
+ ) -> None:
663
+ """Handle the selected action based on agent type."""
664
+ agent = session["agent"]
665
+ action_kwargs = action_kwargs or {}
666
+
667
+ if action == "resume":
668
+ if agent == "claude":
669
+ resume_claude_session(
670
+ session["session_id"],
671
+ session["cwd"],
672
+ shell_mode=shell_mode,
673
+ claude_home=session.get("claude_home"),
674
+ )
675
+ elif agent == "codex":
676
+ resume_codex_session(
677
+ session["session_id"], session["cwd"], shell_mode=shell_mode
678
+ )
679
+
680
+ elif action == "suppress_resume":
681
+ # Use provided options when available, otherwise prompt
682
+ tools = action_kwargs.get("tools")
683
+ threshold = action_kwargs.get("threshold")
684
+ trim_assistant = action_kwargs.get("trim_assistant")
685
+ if tools is None and threshold is None and trim_assistant is None:
686
+ options = prompt_suppress_options(stderr_mode=shell_mode)
687
+ if options:
688
+ tools, threshold, trim_assistant = options
689
+ else:
690
+ return
691
+ handle_suppress_resume(
692
+ session, tools, threshold or 500, trim_assistant, shell_mode
693
+ )
694
+
695
+ elif action == "smart_trim_resume":
696
+ if agent == "claude":
697
+ handle_smart_trim_resume_claude(
698
+ session["session_id"],
699
+ session["cwd"],
700
+ session.get("claude_home"),
701
+ )
702
+ elif agent == "codex":
703
+ # Get file path for codex
704
+ file_path = session.get("file_path", "")
705
+ handle_smart_trim_resume_codex(file_path)
706
+
707
+ elif action == "path":
708
+ if agent == "claude":
709
+ file_path = get_claude_session_file_path(
710
+ session["session_id"],
711
+ session["cwd"],
712
+ claude_home=session.get("claude_home"),
713
+ )
714
+ print(f"\nSession file path:")
715
+ print(file_path)
716
+ elif agent == "codex":
717
+ print(f"\nSession file path:")
718
+ print(session.get("file_path", "Unknown"))
719
+
720
+ elif action == "copy":
721
+ if agent == "claude":
722
+ file_path = get_claude_session_file_path(
723
+ session["session_id"],
724
+ session["cwd"],
725
+ claude_home=session.get("claude_home"),
726
+ )
727
+ copy_claude_session_file(file_path)
728
+ elif agent == "codex":
729
+ copy_codex_session_file(session.get("file_path", ""))
730
+
731
+ elif action == "clone":
732
+ if agent == "claude":
733
+ clone_claude_session(
734
+ session["session_id"],
735
+ session["cwd"],
736
+ shell_mode=shell_mode,
737
+ claude_home=session.get("claude_home"),
738
+ )
739
+ elif agent == "codex":
740
+ clone_codex_session(
741
+ session.get("file_path", ""),
742
+ session["session_id"],
743
+ session["cwd"],
744
+ shell_mode=shell_mode,
745
+ )
746
+
747
+ elif action == "export":
748
+ if agent == "claude":
749
+ file_path = get_claude_session_file_path(
750
+ session["session_id"],
751
+ session["cwd"],
752
+ claude_home=session.get("claude_home"),
753
+ )
754
+ handle_export_claude_session(file_path)
755
+ elif agent == "codex":
756
+ handle_export_codex_session(session.get("file_path", ""))
757
+
758
+ elif action == "continue":
759
+ # Continue with context in fresh session
760
+ from claude_code_tools.session_utils import continue_with_options
761
+
762
+ # Get file path based on agent type
763
+ if agent == "claude":
764
+ file_path = get_claude_session_file_path(
765
+ session["session_id"],
766
+ session["cwd"],
767
+ claude_home=session.get("claude_home"),
768
+ )
769
+ else:
770
+ # Codex session
771
+ file_path = session["file_path"]
772
+
773
+ continue_with_options(
774
+ file_path,
775
+ agent,
776
+ claude_home=session.get("claude_home"),
777
+ codex_home=session.get("codex_home")
778
+ )
779
+
780
+
781
+ def _run_search_and_display(args) -> bool:
782
+ """Run search and display results. Returns True if user wants back to options."""
783
+ # Parse keywords
784
+ keywords = (
785
+ [k.strip() for k in args.keywords.split(",") if k.strip()]
786
+ if args.keywords
787
+ else []
788
+ )
789
+
790
+ scope_line, tip_line = build_scope_lines(args)
791
+ print(scope_line, file=sys.stderr)
792
+ if tip_line:
793
+ print(tip_line, file=sys.stderr)
794
+ print(file=sys.stderr)
795
+
796
+ # Search all agents
797
+ matching_sessions = search_all_agents(
798
+ keywords,
799
+ global_search=args.global_search,
800
+ num_matches=args.num_matches,
801
+ agents=args.agents,
802
+ claude_home=args.claude_home,
803
+ codex_home=args.codex_home,
804
+ original_only=args.original,
805
+ no_sub=args.no_sub,
806
+ no_trim=args.no_trim,
807
+ no_cont=args.no_cont,
808
+ )
809
+
810
+ # Filter by minimum lines if specified
811
+ if args.min_lines > 0:
812
+ matching_sessions = [
813
+ s for s in matching_sessions if s.get("lines", 0) >= args.min_lines
814
+ ]
815
+
816
+ # Filter by time bounds if specified
817
+ if args.before or args.after:
818
+ matching_sessions = filter_sessions_by_time(
819
+ matching_sessions, before=args.before, after=args.after
820
+ )
821
+
822
+ if not matching_sessions:
823
+ scope = "all projects" if args.global_search else "current project"
824
+ keyword_msg = (
825
+ f" containing all keywords: {', '.join(keywords)}" if keywords else ""
826
+ )
827
+ if RICH_AVAILABLE:
828
+ console = Console()
829
+ console.print(f"[yellow]No sessions found{keyword_msg} in {scope}[/yellow]")
830
+ else:
831
+ print(f"No sessions found{keyword_msg} in {scope}", file=sys.stderr)
832
+ return False # Don't go back to options on empty results
833
+
834
+ # Display interactive UI
835
+ nonlaunch_flag = {"done": False}
836
+ action_handler = create_action_handler(
837
+ shell_mode=args.shell, nonlaunch_flag=nonlaunch_flag
838
+ )
839
+ limited_sessions = matching_sessions[: args.num_matches]
840
+ rpc_path = str(Path(__file__).parent / "action_rpc.py")
841
+
842
+ if not args.simple_ui:
843
+ focus_id = None
844
+ start_action = False
845
+ while True:
846
+ nonlaunch_flag["done"] = False
847
+ result = run_node_menu_ui(
848
+ limited_sessions,
849
+ keywords,
850
+ action_handler,
851
+ stderr_mode=args.shell,
852
+ focus_session_id=focus_id,
853
+ start_action=start_action,
854
+ rpc_path=rpc_path,
855
+ scope_line=scope_line,
856
+ tip_line=tip_line,
857
+ )
858
+ # Check for back_to_options signal
859
+ if result == "back_to_options":
860
+ return True
861
+ if nonlaunch_flag["done"]:
862
+ choice = prompt_post_action()
863
+ if choice == "back":
864
+ focus_id = nonlaunch_flag.get("session_id")
865
+ start_action = True
866
+ continue
867
+ break
868
+ elif RICH_AVAILABLE:
869
+ selected_session = display_interactive_ui(
870
+ matching_sessions, keywords, stderr_mode=args.shell,
871
+ num_matches=args.num_matches
872
+ )
873
+ if selected_session:
874
+ action = show_action_menu(selected_session, stderr_mode=args.shell)
875
+ if action:
876
+ handle_action(selected_session, action, shell_mode=args.shell)
877
+ else:
878
+ # Fallback without rich
879
+ print("\nMatching sessions:")
880
+ for idx, session in enumerate(matching_sessions[: args.num_matches], 1):
881
+ print(
882
+ f"{idx}. [{session['agent_display']}] {session['session_id'][:16]}... | "
883
+ f"{session['project']} | {session.get('branch', 'N/A')}"
884
+ )
885
+ return False
886
+
887
+
888
+ def main():
889
+ parser = argparse.ArgumentParser(
890
+ description="Unified session finder - search across multiple coding agents",
891
+ formatter_class=argparse.RawDescriptionHelpFormatter,
892
+ epilog="""
893
+ Examples:
894
+ find-session "langroid,MCP" # Search all agents in current project
895
+ find-session -g # Show all sessions across all projects
896
+ find-session "bug" --agents claude # Search only Claude sessions
897
+ find-session "error" --agents codex # Search only Codex sessions
898
+
899
+ To persist directory changes when resuming sessions:
900
+ Add this to your shell config (.bashrc/.zshrc):
901
+ fs() { eval $(find-session --shell "$@"); }
902
+
903
+ Then use: fs "keyword" -g
904
+ """,
905
+ )
906
+ parser.add_argument(
907
+ "keywords",
908
+ nargs="?",
909
+ default="",
910
+ help="Comma-separated keywords to search (AND logic). If omitted, shows all sessions.",
911
+ )
912
+ parser.add_argument(
913
+ "-g",
914
+ "--global",
915
+ dest="global_search",
916
+ action="store_true",
917
+ help="Search across all projects, not just the current one",
918
+ )
919
+ parser.add_argument(
920
+ "-n",
921
+ "--num-matches",
922
+ type=int,
923
+ default=10,
924
+ help="Number of matching sessions to display (default: 10)",
925
+ )
926
+ parser.add_argument(
927
+ "--agents",
928
+ nargs="+",
929
+ choices=["claude", "codex"],
930
+ help="Limit search to specific agents (e.g., --agents claude, "
931
+ "--agents claude codex). Default: all agents.",
932
+ )
933
+ parser.add_argument(
934
+ "--shell",
935
+ action="store_true",
936
+ help="Output shell commands for evaluation (for use with shell function)",
937
+ )
938
+ parser.add_argument(
939
+ "--claude-home", type=str, help="Path to Claude home directory (default: ~/.claude)"
940
+ )
941
+ parser.add_argument(
942
+ "--codex-home", type=str, help="Path to Codex home directory (default: ~/.codex)"
943
+ )
944
+ parser.add_argument(
945
+ "--original",
946
+ action="store_true",
947
+ help="Show only original sessions (excludes trimmed, rollover, and sub-agent sessions)",
948
+ )
949
+ parser.add_argument(
950
+ "--no-sub",
951
+ action="store_true",
952
+ help="Exclude sub-agent sessions from results",
953
+ )
954
+ parser.add_argument(
955
+ "--no-trim",
956
+ action="store_true",
957
+ help="Exclude trimmed sessions from results",
958
+ )
959
+ parser.add_argument(
960
+ "--no-roll",
961
+ dest="no_cont", # Keep internal name for compatibility
962
+ action="store_true",
963
+ help="Exclude rollover sessions from results",
964
+ )
965
+ parser.add_argument(
966
+ "--simple-ui",
967
+ dest="simple_ui",
968
+ action="store_true",
969
+ help="Use simple Rich table UI instead of Node interactive UI",
970
+ )
971
+ parser.add_argument(
972
+ "--min-lines",
973
+ type=int,
974
+ default=0,
975
+ help="Only show sessions with at least this many lines (default: 0 = no minimum)",
976
+ )
977
+ parser.add_argument(
978
+ "--before",
979
+ type=str,
980
+ help="Only show sessions modified before this time (inclusive). "
981
+ "Formats: YYYYMMDD, YYYY-MM-DD, MM/DD/YY, with optional T or space + HH:MM:SS",
982
+ )
983
+ parser.add_argument(
984
+ "--after",
985
+ type=str,
986
+ help="Only show sessions modified after this time (inclusive). "
987
+ "Formats: YYYYMMDD, YYYY-MM-DD, MM/DD/YY, with optional T or space + HH:MM:SS",
988
+ )
989
+ parser.add_argument(
990
+ "--no-ui",
991
+ action="store_true",
992
+ help="Skip interactive options menu and run search directly with CLI args",
993
+ )
994
+
995
+ args = parser.parse_args()
996
+ use_options_ui = not args.no_ui and not args.simple_ui
997
+
998
+ # Loop to allow returning to options from results
999
+ while True:
1000
+ # Show interactive options UI unless --no-ui or --simple-ui
1001
+ if use_options_ui:
1002
+ initial_options = {
1003
+ "keywords": args.keywords or "",
1004
+ "global": args.global_search,
1005
+ "num_matches": args.num_matches,
1006
+ "agents": args.agents or [],
1007
+ "original": args.original,
1008
+ "no_sub": args.no_sub,
1009
+ "no_trim": args.no_trim,
1010
+ "no_cont": args.no_cont,
1011
+ "min_lines": args.min_lines or "",
1012
+ "before": args.before or "",
1013
+ "after": args.after or "",
1014
+ }
1015
+ opts = run_find_options_ui(initial_options, variant="find")
1016
+ if opts is None:
1017
+ # User cancelled
1018
+ sys.exit(0)
1019
+ # Update args with user's selections
1020
+ args.keywords = opts.get("keywords") or ""
1021
+ args.global_search = opts.get("global", False)
1022
+ args.num_matches = opts.get("num_matches", 10)
1023
+ args.agents = opts.get("agents")
1024
+ args.original = opts.get("original", False)
1025
+ args.no_sub = opts.get("no_sub", False)
1026
+ args.no_trim = opts.get("no_trim", False)
1027
+ args.no_cont = opts.get("no_cont", False)
1028
+ args.min_lines = opts.get("min_lines") or 0
1029
+ args.before = opts.get("before")
1030
+ args.after = opts.get("after")
1031
+
1032
+ # Build and display equivalent CLI command
1033
+ cmd_parts = ["aichat find"]
1034
+ if args.keywords:
1035
+ cmd_parts.append(f'"{args.keywords}"')
1036
+ if args.global_search:
1037
+ cmd_parts.append("-g")
1038
+ if args.num_matches != 10:
1039
+ cmd_parts.append(f"-n {args.num_matches}")
1040
+ if args.agents:
1041
+ cmd_parts.append(f"--agents {' '.join(args.agents)}")
1042
+ if args.original:
1043
+ cmd_parts.append("--original")
1044
+ if args.no_sub:
1045
+ cmd_parts.append("--no-sub")
1046
+ if args.no_trim:
1047
+ cmd_parts.append("--no-trim")
1048
+ if args.no_cont:
1049
+ cmd_parts.append("--no-roll")
1050
+ if args.min_lines:
1051
+ cmd_parts.append(f"--min-lines {args.min_lines}")
1052
+ if args.before:
1053
+ cmd_parts.append(f"--before {args.before}")
1054
+ if args.after:
1055
+ cmd_parts.append(f"--after {args.after}")
1056
+ cmd_parts.append("--no-ui")
1057
+ print(f"\n→ {' '.join(cmd_parts)}\n", file=sys.stderr)
1058
+
1059
+ # Run search and display results
1060
+ back_to_options = _run_search_and_display(args)
1061
+ if back_to_options and use_options_ui:
1062
+ continue # Go back to options UI
1063
+ break # Exit
1064
+
1065
+
1066
+ if __name__ == "__main__":
1067
+ main()
1068
+ def _read_key() -> str:
1069
+ """Read a single keypress (non-blocking for Enter/Esc semantics)."""
1070
+ fd = sys.stdin.fileno()
1071
+ old = termios.tcgetattr(fd)
1072
+ try:
1073
+ tty.setcbreak(fd)
1074
+ ch = sys.stdin.read(1)
1075
+ finally:
1076
+ termios.tcsetattr(fd, termios.TCSADRAIN, old)
1077
+ return ch
1078
+
1079
+
1080
+ def prompt_post_action() -> str:
1081
+ """Prompt after non-launch action: Enter exits, Esc goes back."""
1082
+ print("\n[Action complete] Press Enter to exit, or Esc to return to menu", file=sys.stderr)
1083
+ ch = _read_key()
1084
+ if ch == "\x1b":
1085
+ return "back"
1086
+ return "exit"