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