diff --git a/README.md b/README.md index 43264ed..07a24cb 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,8 @@ Attach file to the chat with the `-f` or `--file` parameter: ai -f package.json -f package-lock.json -- "what's my package version and most complex transitive dependency?" ``` +You can also attach files interactively with the [Attach File Action](#attach-file-action). + ![Demo Recording of Attaching Files](./docs/casts/attach-files/ai-files.svg) ### Attaching Images @@ -111,11 +113,14 @@ Attach images to the chat with the `--image-file` parameter: ai -f --image-file fish.jpg -- "what is this a picture of?" ``` -When you use `--image-file` rather than `--file`, the model's vision APIs will be used, meaning that in the chat you can ask questions about the content of the images. +When you use `--image-file` rather than `--file`, the model's vision APIs will be used, meaning that in the chat you can ask questions about the content of the images. You can also attach files interactively with the [Attach File Action](#attach-file-action). -![Demo Recording of Attaching Files](./docs/casts/attach-files/ai-files.svg) +![Demo Recording of Attaching Images](./docs/casts/image-files/image-file.svg) -Note that vision processing is required for the model which is being used. A reference is at [`ai-providers-and-models`](https://github.com/dwmkerr/ai-providers-and-models). If the model doesn't support vision a Compatibility Error will be raised. +Notes: + +- Vision processing is required for the model which is being used. A reference is at [`ai-providers-and-models`](https://github.com/dwmkerr/ai-providers-and-models). If the model doesn't support vision a Compatibility Error will be raised. +- You can also upload images using the `--file` parameter. In this case images are base 64 encoded and will be uploaded as text in the chat - meaning that although the provider will not be able to recognise the image, it could still answer questions such as what type of file does it appear to be, what is its size and so on. ### Copying to the Clipboard or Saving to a File @@ -175,29 +180,15 @@ Tips: - Suggested models and descriptions are loaded from [`ai-providers-and-models`](https://github.com/dwmkerr/ai-providers-and-models) -### Advanced - -Advanced or experimental features. - -Force color output (useful if you are piping and need color codes): - -```bash -# Force color output: -# - set FORCE_COLOR=1 -# - ascii formatting will be applied even if stdout is not a tty -# - use 'less -r' (-r = raw, render color codes) as a way to quickly test. -FORCE_COLOR=1 ai 'show me some markdown features' | less -r -``` - -Example of how to interactively stage, generate a conventional commit: +## Actions -- [`aigac.sh`](./docs/casts/aigac.sh) - AI Git Add Commit shell script +When you press `Enter` in the chat prompt, the Actions menu will pop up. These actions offer additional features to work with AI. - +### Attach File Action -## Actions +The 'Attach File' action allows you to interactively attach files to a chat message. Files can be processed as text or images (if supported by the currently selected model): -When you press `Enter` in the chat prompt, the Actions menu will pop up. These actions offer additional features to work with AI. +[Recording of the Attach File action](./docs/casts/attach-file-action/attach-file-action.svg) ### Change Model diff --git a/docs/advanced.md b/docs/advanced.md new file mode 100644 index 0000000..6de582b --- /dev/null +++ b/docs/advanced.md @@ -0,0 +1,20 @@ +# Advanced + +Advanced features. + +Force color output (useful if you are piping and need color codes): + +```bash +# Force color output: +# - set FORCE_COLOR=1 +# - ascii formatting will be applied even if stdout is not a tty +# - use 'less -r' (-r = raw, render color codes) as a way to quickly test. +FORCE_COLOR=1 ai 'show me some markdown features' | less -r +``` + +Example of how to interactively stage, generate a conventional commit: + +- [`aigac.sh`](./docs/casts/aigac.sh) - AI Git Add Commit shell script + + + diff --git a/docs/casts/attach-file-action/attach-file-action-default.gif b/docs/casts/attach-file-action/attach-file-action-default.gif new file mode 100644 index 0000000..0e25051 Binary files /dev/null and b/docs/casts/attach-file-action/attach-file-action-default.gif differ diff --git a/docs/casts/attach-file-action/attach-file-action-github-dark.gif b/docs/casts/attach-file-action/attach-file-action-github-dark.gif new file mode 100644 index 0000000..4e21287 Binary files /dev/null and b/docs/casts/attach-file-action/attach-file-action-github-dark.gif differ diff --git a/docs/casts/attach-file-action/attach-file-action.cast b/docs/casts/attach-file-action/attach-file-action.cast new file mode 100644 index 0000000..374423c --- /dev/null +++ b/docs/casts/attach-file-action/attach-file-action.cast @@ -0,0 +1,774 @@ +{"version": 2, "width": 80, "height": 15, "timestamp": 1744022832, "env": {"SHELL": "/usr/local/bin/bash", "TERM": "xterm-256color"}, "title": "Terminal AI"} +[1.238721, "o", "\u001b[?2004h\r\n\u001b[1m\u001b[34mDave_Kerr/scratch/demo\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m "] +[2.209001, "o", "a"] +[2.553873, "o", "i"] +[2.948195, "o", "\r\n"] +[2.948471, "o", "\u001b[?2004l\r"] +[3.251871, "o", "\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n\u001b[90m\u001b[90m Menu openai: gpt-4o-2024-08-06\u001b[39m\u001b[90m\u001b[39m\u001b[1A\u001b[9G"] +[4.243909, "o", "\u001b[1B\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n\u001b[90m\u001b[90m Menu openai: gpt-4o-2024-08-06\u001b[39m\u001b[90m\u001b[39m\u001b[1A\u001b[9G"] +[4.246457, "o", "\u001b[1B\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\u001b[9G"] +[4.248058, "o", "\r\n\u001b[?25h"] +[4.249028, "o", "\u001b[1A\u001b[K"] +[4.251444, "o", "\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m \u001b[2m(Use arrow keys)\u001b[22m\r\n\u001b[36m❯ Chat\u001b[39m\r\n Chat (Fullscreen)\r\n Attach File\r\n Change Model\r\n Quit\u001b[?25l\u001b[7G"] +[4.873489, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n Chat\r\n\u001b[36m❯ Chat (Fullscreen)\u001b[39m\r\n Attach File\r\n Change Model\r\n Quit\u001b[?25l\u001b[7G"] +[5.250041, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n Chat\r\n Chat (Fullscreen)\r\n\u001b[36m❯ Attach File\u001b[39m\r\n Change Model\r\n Quit\u001b[?25l\u001b[7G"] +[5.717871, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m \u001b[36mAttach File\u001b[39m\u001b[20G"] +[5.719077, "o", "\r\n\u001b[?25h"] +[5.719453, "o", "\u001b[1A\u001b[K"] +[5.761113, "o", "\u001b[36m?\u001b[39m \u001b[1mFile path:\u001b[22m\r\n\u001b[35m/Users/Dave_Kerr/scratch/demo/\u001b[39m\r\n\u001b[36m├── recording/\u001b[39m\r\n\u001b[37m├── animal.jpg\u001b[39m\r\n\u001b[37m└── package.json\u001b[39m\r\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n\u001b[36m↑↓\u001b[39m navigate, \u001b[36m\u001b[39m select\r\n\u001b[36m\u001b[39m open directory, \u001b[36m\u001b[39m go back\u001b[?25l\u001b[44G"] +[6.560652, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[36m?\u001b[39m \u001b[1mFile path:\u001b[22m\r\n\u001b[35m/Users/Dave_Kerr/scratch/demo/\u001b[39m\r\n\u001b[33m├── recording/\u001b[39m\r\n\u001b[36m├── animal.jpg\u001b[39m\r\n\u001b[37m└── package.json\u001b[39m\r\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n\u001b[36m↑↓\u001b[39m navigate, \u001b[36m\u001b[39m select\r\n\u001b[36m\u001b[39m open directory, \u001b[36m\u001b[39m go back\u001b[?25l\u001b[44G"] +[7.352096, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[36m?\u001b[39m \u001b[1mFile path:\u001b[22m\r\n\u001b[35m/Users/Dave_Kerr/scratch/demo/\u001b[39m\r\n\u001b[36m├── recording/\u001b[39m\r\n\u001b[37m├── animal.jpg\u001b[39m\r\n\u001b[37m└── package.json\u001b[39m\r\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n\u001b[36m↑↓\u001b[39m navigate, \u001b[36m\u001b[39m select\r\n\u001b[36m\u001b[39m open directory, \u001b[36m\u001b[39m go back\u001b[?25l\u001b[44G"] +[7.657936, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[36m?\u001b[39m \u001b[1mFile path:\u001b[22m\r\n\u001b[35m/Users/Dave_Kerr/scratch/demo/\u001b[39m\r\n\u001b[33m├── recording/\u001b[39m\r\n\u001b[36m├── animal.jpg\u001b[39m\r\n\u001b[37m└── package.json\u001b[39m\r\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n\u001b[36m↑↓\u001b[39m navigate, \u001b[36m\u001b[39m select\r\n\u001b[36m\u001b[39m open directory, \u001b[36m\u001b[39m go back\u001b[?25l\u001b[44G"] +[7.956553, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[36m?\u001b[39m \u001b[1mFile path:\u001b[22m\r\n\u001b[35m/Users/Dave_Kerr/scratch/demo/\u001b[39m\r\n\u001b[33m├── recording/\u001b[39m\r\n\u001b[37m├── animal.jpg\u001b[39m\r\n\u001b[36m└── package.json\u001b[39m\r\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n\u001b[36m↑↓\u001b[39m navigate, \u001b[36m\u001b[39m select\r\n\u001b[36m\u001b[39m open directory, \u001b[36m\u001b[39m go back\u001b[?25l\u001b[44G"] +[8.342441, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1mFile path:\u001b[22m \u001b[36m/Users/Dave_Kerr/scratch/demo/package.json\u001b[39m\u001b[56G"] +[8.344219, "o", "\r\n\u001b[?25h"] +[8.346153, "o", "\u001b[34m?\u001b[39m \u001b[1mFile processing mode:\u001b[22m \u001b[2m(Use arrow keys)\u001b[22m\r\n\u001b[36m❯ Text\u001b[39m\r\n Image\r\n\u001b[36mProcess as text. Ideal for code, documents, etc.\u001b[39m\u001b[?25l\u001b[49G"] +[9.665021, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1mFile processing mode:\u001b[22m\r\n Text\r\n\u001b[36m❯ Image\u001b[39m\r\n\u001b[36mVision processing (model dependent). Enables image recognition, etc.\u001b[39m\u001b[?25l\u001b[69G"] +[10.494859, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1mFile processing mode:\u001b[22m\r\n\u001b[36m❯ Text\u001b[39m\r\n Image\r\n\u001b[36mProcess as text. Ideal for code, documents, etc.\u001b[39m\u001b[?25l\u001b[49G"] +[10.816956, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1mFile processing mode:\u001b[22m \u001b[36mText\u001b[39m\u001b[29G"] +[10.817818, "o", "\r\n\u001b[?25h"] +[10.81983, "o", "\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n\u001b[90m\u001b[90m Menu openai: gpt-4o-2024-08-06\u001b[39m\u001b[90m\u001b[39m\u001b[1A\u001b[9G"] +[11.743784, "o", "\u001b[1B\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n\u001b[90m\u001b[90m Menu openai: gpt-4o-2024-08-06\u001b[39m\u001b[90m\u001b[39m\u001b[1A\u001b[9G"] +[11.744994, "o", "\u001b[1B\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\u001b[9G"] +[11.745834, "o", "\r\n\u001b[?25h"] +[11.746363, "o", "\u001b[1A\u001b[K"] +[11.748636, "o", "\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m \u001b[2m(Use arrow keys)\u001b[22m\r\n\u001b[36m❯ Chat\u001b[39m\r\n Chat (Fullscreen)\r\n Attach File\r\n Change Model\r\n Quit\u001b[?25l\u001b[7G"] +[12.249097, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n Chat\r\n\u001b[36m❯ Chat (Fullscreen)\u001b[39m\r\n Attach File\r\n Change Model\r\n Quit\u001b[?25l\u001b[7G"] +[12.599728, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n Chat\r\n Chat (Fullscreen)\r\n\u001b[36m❯ Attach File\u001b[39m\r\n Change Model\r\n Quit\u001b[?25l\u001b[7G"] +[12.994641, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m \u001b[36mAttach File\u001b[39m\u001b[20G"] +[12.995067, "o", "\r\n\u001b[?25h"] +[12.995238, "o", "\u001b[1A\u001b[K"] +[12.997013, "o", "\u001b[36m?\u001b[39m \u001b[1mFile path:\u001b[22m\r\n\u001b[35m/Users/Dave_Kerr/scratch/demo/\u001b[39m\r\n\u001b[36m├── recording/\u001b[39m\r\n\u001b[37m├── animal.jpg\u001b[39m\r\n\u001b[37m└── package.json\u001b[39m\r\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n\u001b[36m↑↓\u001b[39m navigate, \u001b[36m\u001b[39m select\r\n\u001b[36m\u001b[39m open directory, \u001b[36m\u001b[39m go back\u001b[?25l\u001b[44G"] +[13.959159, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[36m?\u001b[39m \u001b[1mFile path:\u001b[22m\r\n\u001b[35m/Users/Dave_Kerr/scratch/demo/\u001b[39m\r\n\u001b[33m├── recording/\u001b[39m\r\n\u001b[36m├── animal.jpg\u001b[39m\r\n\u001b[37m└── package.json\u001b[39m\r\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n\u001b[36m↑↓\u001b[39m navigate, \u001b[36m\u001b[39m select\r\n\u001b[36m\u001b[39m open directory, \u001b[36m\u001b[39m go back\u001b[?25l\u001b[44G"] +[14.433242, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[36m?\u001b[39m \u001b[1mFile path:\u001b[22m\r\n\u001b[35m/Users/Dave_Kerr/scratch/demo/\u001b[39m\r\n\u001b[33m├── recording/\u001b[39m\r\n\u001b[37m├── animal.jpg\u001b[39m\r\n\u001b[36m└── package.json\u001b[39m\r\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n\u001b[36m↑↓\u001b[39m navigate, \u001b[36m\u001b[39m select\r\n\u001b[36m\u001b[39m open directory, \u001b[36m\u001b[39m go back\u001b[?25l\u001b[44G"] +[15.271481, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[36m?\u001b[39m \u001b[1mFile path:\u001b[22m\r\n\u001b[35m/Users/Dave_Kerr/scratch/demo/\u001b[39m\r\n\u001b[33m├── recording/\u001b[39m\r\n\u001b[36m├── animal.jpg\u001b[39m\r\n\u001b[37m└── package.json\u001b[39m\r\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n\u001b[36m↑↓\u001b[39m navigate, \u001b[36m\u001b[39m select\r\n\u001b[36m\u001b[39m open directory, \u001b[36m\u001b[39m go back\u001b[?25l\u001b[44G"] +[15.728407, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1mFile path:\u001b[22m \u001b[36m/Users/Dave_Kerr/scratch/demo/animal.jpg\u001b[39m\u001b[54G"] +[15.72905, "o", "\r\n\u001b[?25h"] +[15.730706, "o", "\u001b[34m?\u001b[39m \u001b[1mFile processing mode:\u001b[22m \u001b[2m(Use arrow keys)\u001b[22m\r\n\u001b[36m❯ Text\u001b[39m\r\n Image\r\n\u001b[36mProcess as text. Ideal for code, documents, etc.\u001b[39m\u001b[?25l\u001b[49G"] +[16.54871, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1mFile processing mode:\u001b[22m\r\n Text\r\n\u001b[36m❯ Image\u001b[39m\r\n\u001b[36mVision processing (model dependent). Enables image recognition, etc.\u001b[39m\u001b[?25l\u001b[69G"] +[17.764741, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1mFile processing mode:\u001b[22m \u001b[36mImage\u001b[39m\u001b[30G"] +[17.765428, "o", "\r\n\u001b[?25h"] +[17.768088, "o", "\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n\u001b[90m\u001b[90m Menu openai: gpt-4o-2024-08-06\u001b[39m\u001b[90m\u001b[39m\u001b[1A\u001b[9G"] +[18.598423, "o", "\u001b[10G"] +[18.599315, "o", "\u001b[1B\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m w\u001b[10G"] +[18.729706, "o", "\u001b[11G"] +[18.730187, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m wh\u001b[11G"] +[18.871353, "o", "\u001b[12G"] +[18.872157, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m wha\u001b[12G"] +[18.973603, "o", "\u001b[13G"] +[18.973816, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what\u001b[13G"] +[19.122386, "o", "\u001b[14G"] +[19.12312, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what\u001b[14G"] +[19.273714, "o", "\u001b[15G"] +[19.274934, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what a\u001b[15G"] +[19.404785, "o", "\u001b[16G"] +[19.405581, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what ar\u001b[16G"] +[19.478306, "o", "\u001b[17G"] +[19.478935, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are\u001b[17G"] +[19.580935, "o", "\u001b[18G"] +[19.581503, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are\u001b[18G"] +[19.659836, "o", "\u001b[19G"] +[19.660207, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are t\u001b[19G"] +[19.833792, "o", "\u001b[20G"] +[19.834286, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are th\u001b[20G"] +[19.967811, "o", "\u001b[21G"] +[19.968573, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are the\u001b[21G"] +[20.109985, "o", "\u001b[22G"] +[20.110781, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are thes\u001b[22G"] +[20.200598, "o", "\u001b[23G"] +[20.201136, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are these\u001b[23G"] +[20.310563, "o", "\u001b[24G"] +[20.311246, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are these\u001b[24G"] +[20.452213, "o", "\u001b[25G"] +[20.452397, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are these f\u001b[25G"] +[20.614928, "o", "\u001b[26G"] +[20.615821, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are these fi\u001b[26G"] +[20.649598, "o", "\u001b[27G"] +[20.650292, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are these fil\u001b[27G"] +[20.83897, "o", "\u001b[28G"] +[20.8393, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are these file\u001b[28G"] +[21.019619, "o", "\u001b[29G"] +[21.020545, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are these files\u001b[29G"] +[21.33165, "o", "\u001b[30G"] +[21.332279, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are these files?\u001b[30G"] +[21.684913, "o", "\u001b[9G"] +[21.685564, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what are these files?\u001b[30G"] +[21.687324, "o", "\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m \u001b[34mwhat are these files?\u001b[39m\u001b[30G"] +[21.687944, "o", "\r\n\u001b[?25h"] +[21.699927, "o", "\u001b[90m(uploading: /Users/Dave_Kerr/scratch/demo/package.json...)\u001b[39m\r\n"] +[21.70003, "o", "\u001b[90m(uploading image: /Users/Dave_Kerr/scratch/demo/animal.jpg...)\u001b[39m\r\n"] +[21.726837, "o", "\u001b[?25l"] +[21.726964, "o", "\u001b[1G"] +[21.726975, "o", "\u001b[1G"] +[21.727115, "o", "\u001b[36m⠋\u001b[39m "] +[21.808412, "o", "\u001b[1G"] +[21.808504, "o", "\u001b[0K\u001b[36m⠙\u001b[39m "] +[21.889806, "o", "\u001b[1G\u001b[0K"] +[21.889981, "o", "\u001b[36m⠹\u001b[39m "] +[21.971204, "o", "\u001b[1G\u001b[0K"] +[21.971299, "o", "\u001b[36m⠸\u001b[39m "] +[22.05122, "o", "\u001b[1G\u001b[0K"] +[22.051312, "o", "\u001b[36m⠼\u001b[39m "] +[22.131598, "o", "\u001b[1G\u001b[0K"] +[22.131935, "o", "\u001b[36m⠴\u001b[39m "] +[22.212951, "o", "\u001b[1G\u001b[0K"] +[22.213193, "o", "\u001b[36m⠦\u001b[39m "] +[22.292786, "o", "\u001b[1G\u001b[0K"] +[22.29293, "o", "\u001b[36m⠧\u001b[39m "] +[22.3743, "o", "\u001b[1G\u001b[0K"] +[22.374948, "o", "\u001b[36m⠇\u001b[39m "] +[22.454852, "o", "\u001b[1G\u001b[0K"] +[22.454932, "o", "\u001b[36m⠏\u001b[39m "] +[22.536111, "o", "\u001b[1G\u001b[0K\u001b[36m⠋\u001b[39m "] +[22.616325, "o", "\u001b[1G\u001b[0K\u001b[36m⠙\u001b[39m "] +[22.697195, "o", "\u001b[1G\u001b[0K\u001b[36m⠹\u001b[39m "] +[22.777391, "o", "\u001b[1G\u001b[0K\u001b[36m⠸\u001b[39m "] +[22.858714, "o", "\u001b[1G\u001b[0K"] +[22.858823, "o", "\u001b[36m⠼\u001b[39m "] +[22.940234, "o", "\u001b[1G"] +[22.940617, "o", "\u001b[0K\u001b[36m⠴\u001b[39m "] +[23.020565, "o", "\u001b[1G\u001b[0K"] +[23.020725, "o", "\u001b[36m⠦\u001b[39m "] +[23.102094, "o", "\u001b[1G\u001b[0K"] +[23.102225, "o", "\u001b[36m⠧\u001b[39m "] +[23.182053, "o", "\u001b[1G\u001b[0K"] +[23.182503, "o", "\u001b[36m⠇\u001b[39m "] +[23.262816, "o", "\u001b[1G\u001b[0K"] +[23.26312, "o", "\u001b[36m⠏\u001b[39m "] +[23.344076, "o", "\u001b[1G\u001b[0K"] +[23.344224, "o", "\u001b[36m⠋\u001b[39m "] +[23.424417, "o", "\u001b[1G\u001b[0K\u001b[36m⠙\u001b[39m "] +[23.504691, "o", "\u001b[1G\u001b[0K"] +[23.505022, "o", "\u001b[36m⠹\u001b[39m "] +[23.585673, "o", "\u001b[1G\u001b[0K"] +[23.586052, "o", "\u001b[36m⠸\u001b[39m "] +[23.666815, "o", "\u001b[1G\u001b[0K"] +[23.666997, "o", "\u001b[36m⠼\u001b[39m "] +[23.747391, "o", "\u001b[1G\u001b[0K"] +[23.747818, "o", "\u001b[36m⠴\u001b[39m "] +[23.828711, "o", "\u001b[1G\u001b[0K"] +[23.829045, "o", "\u001b[36m⠦\u001b[39m "] +[23.909984, "o", "\u001b[1G\u001b[0K\u001b[36m⠧\u001b[39m "] +[23.99121, "o", "\u001b[1G\u001b[0K"] +[23.991326, "o", "\u001b[36m⠇\u001b[39m "] +[24.071486, "o", "\u001b[1G\u001b[0K"] +[24.071779, "o", "\u001b[36m⠏\u001b[39m "] +[24.152798, "o", "\u001b[1G\u001b[0K"] +[24.153152, "o", "\u001b[36m⠋\u001b[39m "] +[24.235203, "o", "\u001b[1G\u001b[0K\u001b[36m⠙\u001b[39m "] +[24.284142, "o", "\u001b[1G\u001b[0K\u001b[?25h"] +[24.300545, "o", "\u001b[37m\u001b[1mopenai:\u001b[22m\u001b[39m 1. \u001b[0m\u001b[0m\u001b[0m**package.json**: A JSON file for a Node.js project, detailing configurations, scripts, and dependencies.\u001b[0m\u001b[0m\u001b[0m\r\n 2. \u001b[0m\u001b[0m\u001b[0m**Image**: An illustration of a fish.\u001b[0m\u001b[0m\u001b[0m\r\n"] +[24.301413, "o", "\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n\u001b[90m\u001b[90m Menu openai: gpt-4o-2024-08-06\u001b[39m\u001b[90m\u001b[39m\u001b[1A\u001b[9G"] +[26.809821, "o", "\u001b[?25h"] +[26.810265, "o", "\u001b[1B\r\n\u001b[?25h"] +[26.811126, "o", "Goodbye!\r\n"] +[26.860394, "o", "\u001b[?2004h\r\n\u001b[1m\u001b[34mDave_Kerr/scratch/demo\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m "] +[28.241917, "o", "e"] +[28.496413, "o", "x"] +[29.813303, "o", "\b\u001b[K"] +[29.938692, "o", "\b\u001b[K"] +[30.062793, "o", "\u0007"] +[30.173033, "o", "s"] +[30.321338, "o", "v"] +[30.915733, "o", "\u0007g"] +[31.782972, "o", "\b\b\b\u001b[K"] +[32.29819, "o", "c"] +[32.373306, "o", "d"] +[32.489412, "o", " "] +[33.064196, "o", "r"] +[33.135579, "o", "e"] +[33.393048, "o", "cording/"] +[33.788837, "o", "\r\n"] +[33.789002, "o", "\u001b[?2004l\r"] +[33.830695, "o", "\u001b[?2004h\r\n\u001b[1m\u001b[34mscratch/demo/recording\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m "] +[34.041897, "o", "l"] +[34.170402, "o", "s"] +[34.29593, "o", "\r\n"] +[34.296029, "o", "\u001b[?2004l\r"] +[34.309543, "o", "attach-file-action.cast\r\n"] +[34.345179, "o", "\u001b[?2004h\r\n\u001b[1m\u001b[34mscratch/demo/recording\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m "] +[35.412898, "o", "c"] +[35.705998, "o", "s"] +[35.925629, "o", "\b\u001b[K"] +[36.048505, "o", "\b\u001b[K"] +[36.280728, "o", "c"] +[36.400577, "o", "a"] +[36.501937, "o", "s"] +[36.722702, "o", "\u0007"] +[37.330405, "o", "\b\u001b[K"] +[37.449692, "o", "\b\u001b[K"] +[37.556788, "o", "\b\u001b[K"] +[40.58773, "o", "s"] +[41.126292, "o", "v"] +[41.391526, "o", "\u0007g"] +[41.526677, "o", "\u0007"] +[41.716529, "o", "\r\nsvg-term svgtopam \r\n\r\n\u001b[1m\u001b[34mscratch/demo/recording\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m svg"] +[41.870306, "o", "\r\nsvg-term svgtopam \r\n\r\n\u001b[1m\u001b[34mscratch/demo/recording\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m svg"] +[43.018106, "o", "\b\u001b[K"] +[43.14381, "o", "\b\u001b[K"] +[43.24941, "o", "\b\u001b[K"] +[43.390264, "o", "c"] +[43.519054, "o", "a"] +[43.826534, "o", "\u0007"] +[43.962683, "o", "\r\n"] +[43.962822, "o", "caffeinate caller captoinfo catimg\r\ncairo-trace cameratopam case \r\ncal cancel cast_to_svg_gif \r\ncalendar cap_mkdb cat \r\n\r\n\u001b[1m\u001b[34mscratch/demo/recording\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m ca"] +[44.115535, "o", "\r\ncaffeinate caller captoinfo catimg\r\ncairo-trace cameratopam case \r\ncal cancel cast_to_svg_gif \r\n"] +[44.11559, "o", "calendar cap_mkdb cat \r\n\r\n\u001b[1m\u001b[34mscratch/demo/recording\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m ca"] +[46.236442, "o", "s"] +[46.291395, "o", "t"] +[46.554251, "o", "_to_svg_gif "] +[47.51172, "o", "attach-file-action.cast "] +[48.239121, "o", "\r\n"] +[48.239179, "o", "\u001b[?2004l\r"] +[50.742146, "o", "\r1 / 137 [>--------------------------------------------------] 0.73 % 15.59/s 9s "] +[50.752237, "o", "\r2 / 137 [>--------------------------------------------------] 1.46 % 26.92/s 5s "] +[50.7559, "o", "\r3 / 137 [=>-------------------------------------------------] 2.19 % 38.48/s 3s "] +[50.777125, "o", "\r4 / 137 [=>-------------------------------------------------] 2.92 % 40.34/s 3s "] +[50.798079, "o", "\r5 / 137 [=>-------------------------------------------------] 3.65 % 41.62/s 3s "] +[50.818027, "o", "\r6 / 137 [==>------------------------------------------------] 4.38 % 42.83/s 3s "] +[50.839493, "o", "\r7 / 137 [==>------------------------------------------------] 5.11 % 43.33/s 3s "] +[50.86045, "o", "\r8 / 137 [==>------------------------------------------------] 5.84 % 43.83/s 3s "] +[50.877059, "o", "\r9 / 137 [===>-----------------------------------------------] 6.57 % 45.20/s 3s "] +[50.894651, "o", "\r10 / 137 [===>----------------------------------------------] 7.30 % 46.15/s 3s "] +[50.910152, "o", "\r11 / 137 [====>---------------------------------------------] 8.03 % 47.37/s 3s "] +[50.924785, "o", "\r12 / 137 [====>---------------------------------------------] 8.76 % 48.61/s 3s "] +[50.941555, "o", "\r13 / 137 [====>---------------------------------------------] 9.49 % 49.31/s 3s "] +[50.957296, "o", "\r14 / 137 [=====>-------------------------------------------] 10.22 % 50.11/s 2s "] +[50.972815, "o", "\r15 / 137 [=====>-------------------------------------------] 10.95 % 50.87/s 2s "] +[51.000415, "o", "\r16 / 137 [=====>-------------------------------------------] 11.68 % 49.62/s 2s "] +[51.02674, "o", "\r17 / 137 [======>------------------------------------------] 12.41 % 48.74/s 2s "] +[51.05434, "o", "\r18 / 137 [======>------------------------------------------] 13.14 % 47.82/s 2s "] +[51.082049, "o", "\r19 / 137 [======>------------------------------------------] 13.87 % 47.02/s 3s "] +[51.105561, "o", "\r20 / 137 [=======>-----------------------------------------] 14.60 % 46.77/s 3s "] +[51.129064, "o", "\r21 / 137 [=======>-----------------------------------------] 15.33 % 46.55/s 2s "] +[51.150309, "o", "\r22 / 137 [=======>-----------------------------------------] 16.06 % 46.57/s 2s "] +[51.169335, "o", "\r23 / 137 [========>----------------------------------------] 16.79 % 46.81/s 2s "] +[51.187674, "o", "\r24 / 137 [========>----------------------------------------] 17.52 % 47.08/s 2s "] +[51.206078, "o", "\r25 / 137 [========>----------------------------------------] 18.25 % 47.34/s 2s "] +[51.224651, "o", "\r26 / 137 [=========>---------------------------------------] 18.98 % 47.56/s 2s "] +[51.246304, "o", "\r27 / 137 [=========>---------------------------------------] 19.71 % 47.51/s 2s "] +[51.262978, "o", "\r28 / 137 [==========>--------------------------------------] 20.44 % 47.86/s 2s "] +[51.279544, "o", "\r29 / 137 [==========>--------------------------------------] 21.17 % 48.20/s 2s "] +[51.29786, "o", "\r30 / 137 [==========>--------------------------------------] 21.90 % 48.39/s 2s "] +[51.31666, "o", "\r31 / 137 [===========>-------------------------------------] 22.63 % 48.53/s 2s "] +[51.335625, "o", "\r32 / 137 [===========>-------------------------------------] 23.36 % 48.66/s 2s "] +[51.354508, "o", "\r33 / 137 [===========>-------------------------------------] 24.09 % 48.78/s 2s "] +[51.373685, "o", "\r34 / 137 [============>------------------------------------] 24.82 % 48.87/s 2s "] +[51.392529, "o", "\r35 / 137 [============>------------------------------------] 25.55 % 48.98/s 2s "] +[51.411573, "o", "\r36 / 137 [============>------------------------------------] 26.28 % 49.07/s 2s "] +[51.430534, "o", "\r37 / 137 [=============>-----------------------------------] 27.01 % 49.16/s 2s "] +[51.449486, "o", "\r38 / 137 [=============>-----------------------------------] 27.74 % 49.25/s 2s "] +[51.468457, "o", "\r39 / 137 [=============>-----------------------------------] 28.47 % 49.33/s 2s "] +[51.487642, "o", "\r40 / 137 [==============>----------------------------------] 29.20 % 49.40/s 2s "] +[51.50726, "o", "\r41 / 137 [==============>----------------------------------] 29.93 % 49.44/s 2s "] +[51.526762, "o", "\r42 / 137 [===============>---------------------------------] 30.66 % 49.48/s 2s "] +[51.546514, "o", "\r43 / 137 [===============>---------------------------------] 31.39 % 49.51/s 2s "] +[51.575902, "o", "\r44 / 137 [===============>---------------------------------] 32.12 % 49.00/s 2s "] +[51.608313, "o", "\r45 / 137 [================>--------------------------------] 32.85 % 48.37/s 2s "] +[51.639259, "o", "\r46 / 137 [================>--------------------------------] 33.58 % 47.85/s 2s "] +[51.670245, "o", "\r47 / 137 [================>--------------------------------] 34.31 % 47.36/s 2s "] +[51.701348, "o", "\r48 / 137 [=================>-------------------------------] 35.04 % 46.90/s 2s "] +[51.732351, "o", "\r49 / 137 [=================>-------------------------------] 35.77 % 46.47/s 2s "] +[51.765244, "o", "\r50 / 137 [=================>-------------------------------] 36.50 % 45.99/s 2s "] +[52.8218, "o", "\r51 / 137 [==================>------------------------------] 37.23 % 23.79/s 4s "] +[52.863748, "o", "\r52 / 137 [==================>------------------------------] 37.96 % 23.79/s 4s \r53 / 137 [==================>------------------------------] 38.69 % 24.25/s 3s \r54 / 137 [===================>-----------------------------] 39.42 % 24.70/s 3s \r55 / 137 [===================>-----------------------------] 40.15 % 25.16/s 3s \r56 / 137 [====================>----------------------------] 40.88 % 25.62/s 3s \r57 / 137 [====================>----------------------------] 41.61 % 26.08/s 3s \r58 / 137 [====================>----------------------------] 42.34 % 26.53/s 3s \r59 / 137 [=====================>---------------------------] 43.07 % 26.99/s 3s \r60 / 137 [=====================>---------------------------] 43.80 % 27.45/s 3s "] +[52.863827, "o", "\r61 / 137 [=====================>---------------------------] 44.53 % 27.91/s 3s \r62 / 137 [======================>--------------------------] 45.26 % 28.36/s 3s \r63 / 137 [======================>--------------------------] 45.99 % 28.82/s 3s \r64 / 137 [======================>--------------------------] 46.72 % 29.28/s 2s \r65 / 137 [=======================>-------------------------] 47.45 % 29.74/s 2s \r66 / 137 [=======================>-------------------------] 48.18 % 30.19/s 2s \r67 / 137 [=======================>-------------------------] 48.91 % 30.65/s 2s \r68 / 137 [========================>------------------------] 49.64 % 31.11/s 2s \r69 / 137 [========================>------------------------] 50.36 % 31.57/s 2s \r70 / 137 [=========================>-----------------------] 51.09 % 32.02/s 2s \r71 / 137 [=========================>-----------------------] 51.82 % 32.48/s 2s "] +[52.863898, "o", "\r72 / 137 [=========================>-----------------------] 52.55 % 32.94/s 2s \r73 / 137 [==========================>----------------------] 53.28 % 33.40/s 2s \r74 / 137 [==========================>----------------------] 54.01 % 33.85/s 2s \r75 / 137 [==========================>----------------------] 54.74 % 34.31/s 2s \r76 / 137 [===========================>---------------------] 55.47 % 34.77/s 2s \r77 / 137 [===========================>---------------------] 56.20 % 35.23/s 2s \r78 / 137 [===========================>---------------------] 56.93 % 35.68/s 2s \r79 / 137 [============================>--------------------] 57.66 % 36.14/s 2s \r80 / 137 [============================>--------------------] 58.39 % 36.60/s 2s \r81 / 137 [============================>--------------------] 59.12 % 37.06/s 2s \r82 / 137 [=============================>-------------------] 59.85 % 37.51/s 1s \r83 / 137 [=============================>-------------------] 60.58 % 37.97/s 1s "] +[52.906858, "o", "\r84 / 137 [==============================>------------------] 61.31 % 37.69/s 1s "] +[52.950405, "o", "\r85 / 137 [==============================>------------------] 62.04 % 37.40/s 1s "] +[52.99075, "o", "\r86 / 137 [==============================>------------------] 62.77 % 37.18/s 1s "] +[53.027569, "o", "\r87 / 137 [===============================>-----------------] 63.50 % 37.03/s 1s "] +[53.065114, "o", "\r88 / 137 [===============================>-----------------] 64.23 % 36.86/s 1s "] +[53.107811, "o", "\r89 / 137 [===============================>-----------------] 64.96 % 36.63/s 1s "] +[53.149528, "o", "\r90 / 137 [================================>----------------] 65.69 % 36.41/s 1s "] +[53.192153, "o", "\r91 / 137 [================================>----------------] 66.42 % 36.19/s 1s "] +[53.234773, "o", "\r92 / 137 [================================>----------------] 67.15 % 35.98/s 1s "] +[53.277507, "o", "\r93 / 137 [=================================>---------------] 67.88 % 35.78/s 1s "] +[53.318941, "o", "\r94 / 137 [=================================>---------------] 68.61 % 35.59/s 1s "] +[53.355575, "o", "\r95 / 137 [=================================>---------------] 69.34 % 35.48/s 1s "] +[53.39235, "o", "\r96 / 137 [==================================>--------------] 70.07 % 35.37/s 1s "] +[53.429323, "o", "\r97 / 137 [==================================>--------------] 70.80 % 35.25/s 1s "] +[53.46139, "o", "\r98 / 137 [===================================>-------------] 71.53 % 35.21/s 1s "] +[53.484713, "o", "\r99 / 137 [===================================>-------------] 72.26 % 35.27/s 1s "] +[53.508674, "o", "\r100 / 137 [===================================>------------] 72.99 % 35.33/s 1s "] +[53.533397, "o", "\r101 / 137 [===================================>------------] 73.72 % 35.37/s 1s "] +[53.556701, "o", "\r102 / 137 [===================================>------------] 74.45 % 35.43/s 1s "] +[53.579023, "o", "\r103 / 137 [====================================>-----------] 75.18 % 35.50/s 1s "] +[53.602056, "o", "\r104 / 137 [====================================>-----------] 75.91 % 35.57/s 1s "] +[53.625693, "o", "\r105 / 137 [====================================>-----------] 76.64 % 35.62/s 1s "] +[53.649636, "o", "\r106 / 137 [=====================================>----------] 77.37 % 35.67/s 1s "] +[53.672178, "o", "\r107 / 137 [=====================================>----------] 78.10 % 35.74/s 1s "] +[53.695909, "o", "\r108 / 137 [=====================================>----------] 78.83 % 35.79/s 1s "] +[53.719251, "o", "\r109 / 137 [======================================>---------] 79.56 % 35.84/s 1s "] +[53.742558, "o", "\r110 / 137 [======================================>---------] 80.29 % 35.89/s 1s "] +[53.765944, "o", "\r111 / 137 [======================================>---------] 81.02 % 35.95/s 1s "] +[53.78965, "o", "\r112 / 137 [=======================================>--------] 81.75 % 35.99/s 1s "] +[53.808007, "o", "\r113 / 137 [=======================================>--------] 82.48 % 36.10/s 1s "] +[53.826599, "o", "\r114 / 137 [=======================================>--------] 83.21 % 36.21/s 1s "] +[53.844901, "o", "\r115 / 137 [========================================>-------] 83.94 % 36.31/s 1s "] +[53.863146, "o", "\r116 / 137 [========================================>-------] 84.67 % 36.42/s 1s "] +[53.882537, "o", "\r117 / 137 [========================================>-------] 85.40 % 36.51/s 1s "] +[53.902265, "o", "\r118 / 137 [=========================================>------] 86.13 % 36.60/s 1s "] +[53.924581, "o", "\r119 / 137 [=========================================>------] 86.86 % 36.65/s 0s "] +[53.950922, "o", "\r120 / 137 [==========================================>-----] 87.59 % 36.66/s 0s "] +[53.976812, "o", "\r121 / 137 [==========================================>-----] 88.32 % 36.68/s 0s "] +[54.001678, "o", "\r122 / 137 [==========================================>-----] 89.05 % 36.71/s 0s "] +[54.02685, "o", "\r123 / 137 [===========================================>----] 89.78 % 36.73/s 0s "] +[54.053816, "o", "\r124 / 137 [===========================================>----] 90.51 % 36.73/s 0s "] +[54.081931, "o", "\r125 / 137 [===========================================>----] 91.24 % 36.72/s 0s "] +[54.109678, "o", "\r126 / 137 [============================================>---] 91.97 % 36.72/s 0s "] +[54.117054, "o", "\r127 / 137 [============================================>---] 92.70 % 36.93/s 0s "] +[54.11859, "o", "\r128 / 137 [============================================>---] 93.43 % 37.20/s 0s "] +[54.119744, "o", "\r129 / 137 [=============================================>--] 94.16 % 37.48/s 0s "] +[54.121765, "o", "\r130 / 137 [=============================================>--] 94.89 % 37.75/s 0s "] +[54.123409, "o", "\r131 / 137 [=============================================>--] 95.62 % 38.02/s 0s "] +[54.125037, "o", "\r132 / 137 [==============================================>-] 96.35 % 38.29/s 0s "] +[54.128042, "o", "\r133 / 137 [==============================================>-] 97.08 % 38.55/s 0s "] +[54.128427, "o", "\r137 / 137 [==================================================] 100.00 % 39.70/s \r\n"] +[54.252238, "o", "\r1 / 192 [>--------------------------------------------------] 0.52 % 24.57/s 8s "] +[54.258956, "o", "\r2 / 192 [>--------------------------------------------------] 1.04 % 42.16/s 5s "] +[54.262194, "o", "\r3 / 192 [>--------------------------------------------------] 1.56 % 59.19/s 3s "] +[54.280731, "o", "\r4 / 192 [=>-------------------------------------------------] 2.08 % 57.80/s 3s "] +[54.299531, "o", "\r5 / 192 [=>-------------------------------------------------] 2.60 % 56.81/s 3s "] +[54.318485, "o", "\r6 / 192 [=>-------------------------------------------------] 3.12 % 56.10/s 3s "] +[54.340496, "o", "\r7 / 192 [=>-------------------------------------------------] 3.65 % 54.27/s 3s "] +[54.361375, "o", "\r8 / 192 [==>------------------------------------------------] 4.17 % 53.38/s 3s "] +[54.377933, "o", "\r9 / 192 [==>------------------------------------------------] 4.69 % 54.08/s 3s "] +[54.395388, "o", "\r10 / 192 [==>-----------------------------------------------] 5.21 % 54.39/s 3s "] +[54.410848, "o", "\r11 / 192 [==>-----------------------------------------------] 5.73 % 55.18/s 3s "] +[54.425015, "o", "\r12 / 192 [===>----------------------------------------------] 6.25 % 56.20/s 3s "] +[54.442633, "o", "\r13 / 192 [===>----------------------------------------------] 6.77 % 56.25/s 3s "] +[54.458364, "o", "\r14 / 192 [===>----------------------------------------------] 7.29 % 56.72/s 3s "] +[54.473872, "o", "\r15 / 192 [===>----------------------------------------------] 7.81 % 57.17/s 3s "] +[54.501518, "o", "\r16 / 192 [====>---------------------------------------------] 8.33 % 55.17/s 3s "] +[54.529028, "o", "\r17 / 192 [====>---------------------------------------------] 8.85 % 53.54/s 3s "] +[54.556205, "o", "\r18 / 192 [====>---------------------------------------------] 9.38 % 52.22/s 3s "] +[54.583938, "o", "\r19 / 192 [====>---------------------------------------------] 9.90 % 51.02/s 3s "] +[54.606702, "o", "\r20 / 192 [=====>-------------------------------------------] 10.42 % 50.61/s 3s "] +[54.629758, "o", "\r21 / 192 [=====>-------------------------------------------] 10.94 % 50.21/s 3s "] +[54.651256, "o", "\r22 / 192 [=====>-------------------------------------------] 11.46 % 50.03/s 3s "] +[54.67043, "o", "\r23 / 192 [=====>-------------------------------------------] 11.98 % 50.12/s 3s "] +[54.688419, "o", "\r24 / 192 [======>------------------------------------------] 12.50 % 50.32/s 3s "] +[54.706831, "o", "\r25 / 192 [======>------------------------------------------] 13.02 % 50.47/s 3s "] +[54.725033, "o", "\r26 / 192 [======>------------------------------------------] 13.54 % 50.63/s 3s "] +[54.744068, "o", "\r27 / 192 [======>------------------------------------------] 14.06 % 50.70/s 3s "] +[54.762246, "o", "\r28 / 192 [=======>-----------------------------------------] 14.58 % 50.84/s 3s "] +[54.780752, "o", "\r29 / 192 [=======>-----------------------------------------] 15.10 % 50.95/s 3s "] +[54.798711, "o", "\r30 / 192 [=======>-----------------------------------------] 15.62 % 51.09/s 3s "] +[54.817439, "o", "\r31 / 192 [=======>-----------------------------------------] 16.15 % 51.16/s 3s "] +[54.835559, "o", "\r32 / 192 [========>----------------------------------------] 16.67 % 51.28/s 3s "] +[54.854456, "o", "\r33 / 192 [========>----------------------------------------] 17.19 % 51.33/s 3s "] +[54.872902, "o", "\r34 / 192 [========>----------------------------------------] 17.71 % 51.41/s 3s "] +[54.891628, "o", "\r35 / 192 [========>----------------------------------------] 18.23 % 51.46/s 3s "] +[54.910973, "o", "\r36 / 192 [=========>---------------------------------------] 18.75 % 51.47/s 3s "] +[54.929813, "o", "\r37 / 192 [=========>---------------------------------------] 19.27 % 51.51/s 3s "] +[54.948892, "o", "\r38 / 192 [=========>---------------------------------------] 19.79 % 51.53/s 3s "] +[54.967826, "o", "\r39 / 192 [=========>---------------------------------------] 20.31 % 51.57/s 3s "] +[54.986936, "o", "\r40 / 192 [==========>--------------------------------------] 20.83 % 51.58/s 3s "] +[55.005645, "o", "\r41 / 192 [==========>--------------------------------------] 21.35 % 51.63/s 3s "] +[55.024736, "o", "\r42 / 192 [==========>--------------------------------------] 21.88 % 51.65/s 3s "] +[55.044361, "o", "\r43 / 192 [==========>--------------------------------------] 22.40 % 51.63/s 3s "] +[55.074665, "o", "\r44 / 192 [===========>-------------------------------------] 22.92 % 50.98/s 3s "] +[55.107963, "o", "\r45 / 192 [===========>-------------------------------------] 23.44 % 50.20/s 3s "] +[55.138199, "o", "\r46 / 192 [===========>-------------------------------------] 23.96 % 49.64/s 3s "] +[55.169318, "o", "\r47 / 192 [===========>-------------------------------------] 24.48 % 49.07/s 3s "] +[55.200154, "o", "\r48 / 192 [============>------------------------------------] 25.00 % 48.55/s 3s "] +[55.230884, "o", "\r49 / 192 [============>------------------------------------] 25.52 % 48.07/s 3s "] +[55.261384, "o", "\r50 / 192 [============>------------------------------------] 26.04 % 47.62/s 3s "] +[56.30892, "o", "\r51 / 192 [=============>-----------------------------------] 26.56 % 24.32/s 6s "] +[56.351637, "o", "\r52 / 192 [=============>-----------------------------------] 27.08 % 24.30/s 6s \r53 / 192 [=============>-----------------------------------] 27.60 % 24.76/s 6s \r54 / 192 [=============>-----------------------------------] 28.12 % 25.23/s 5s \r55 / 192 [==============>----------------------------------] 28.65 % 25.70/s 5s "] +[56.351669, "o", "\r56 / 192 [==============>----------------------------------] 29.17 % 26.17/s 5s \r57 / 192 [==============>----------------------------------] 29.69 % 26.63/s 5s \r58 / 192 [==============>----------------------------------] 30.21 % 27.10/s 5s \r59 / 192 [===============>---------------------------------] 30.73 % 27.57/s 5s \r60 / 192 [===============>---------------------------------] 31.25 % 28.04/s 5s \r61 / 192 [===============>---------------------------------] 31.77 % 28.50/s 5s \r62 / 192 [===============>---------------------------------] 32.29 % 28.97/s 4s \r63 / 192 [================>--------------------------------] 32.81 % 29.44/s 4s \r64 / 192 [================>--------------------------------] 33.33 % 29.90/s 4s \r65 / 192 [================>--------------------------------] 33.85 % 30.37/s 4s \r66 / 192 [================>--------------------------------] 34.38 % 30.84/s 4s \r67 / 192 [=================>-------------------------------] 34.90 % 31.31/s 4s \r68 / 192 [=================>-----------------------"] +[56.351683, "o", "--------] 35.42 % 31.77/s 4s \r69 / 192 [=================>-------------------------------] 35.94 % 32.24/s 4s \r70 / 192 [=================>-------------------------------] 36.46 % 32.71/s 4s \r71 / 192 [==================>------------------------------] 36.98 % 33.17/s 4s \r72 / 192 [==================>------------------------------] 37.50 % 33.64/s 4s \r73 / 192 [==================>------------------------------] 38.02 % 34.11/s 3s \r74 / 192 [==================>------------------------------] 38.54 % 34.58/s 3s \r75 / 192 [===================>-----------------------------] 39.06 % 35.04/s 3s \r76 / 192 [===================>-----------------------------] 39.58 % 35.51/s 3s \r77 / 192 [===================>-----------------------------] 40.10 % 35.98/s 3s \r78 / 192 [===================>-----------------------------] 40.62 % 36.45/s 3s "] +[56.351692, "o", "\r79 / 192 [====================>----------------------------] 41.15 % 36.91/s 3s \r80 / 192 [====================>----------------------------] 41.67 % 37.38/s 3s \r81 / 192 [====================>----------------------------] 42.19 % 37.85/s 3s "] +[56.351822, "o", "\r82 / 192 [====================>----------------------------] 42.71 % 38.31/s 3s \r83 / 192 [=====================>---------------------------] 43.23 % 38.78/s 3s "] +[56.393534, "o", "\r84 / 192 [=====================>---------------------------] 43.75 % 38.50/s 3s "] +[56.437676, "o", "\r85 / 192 [=====================>---------------------------] 44.27 % 38.18/s 3s "] +[56.479005, "o", "\r86 / 192 [=====================>---------------------------] 44.79 % 37.93/s 3s "] +[56.520355, "o", "\r87 / 192 [======================>--------------------------] 45.31 % 37.68/s 3s "] +[56.562483, "o", "\r88 / 192 [======================>--------------------------] 45.83 % 37.43/s 3s "] +[56.604558, "o", "\r89 / 192 [======================>--------------------------] 46.35 % 37.19/s 3s "] +[56.646689, "o", "\r90 / 192 [======================>--------------------------] 46.88 % 36.96/s 3s "] +[56.68773, "o", "\r91 / 192 [=======================>-------------------------] 47.40 % 36.75/s 3s "] +[56.732413, "o", "\r92 / 192 [=======================>-------------------------] 47.92 % 36.50/s 3s "] +[56.775341, "o", "\r93 / 192 [=======================>-------------------------] 48.44 % 36.27/s 3s "] +[56.816343, "o", "\r94 / 192 [=======================>-------------------------] 48.96 % 36.09/s 3s "] +[56.853648, "o", "\r95 / 192 [========================>------------------------] 49.48 % 35.96/s 3s "] +[56.891051, "o", "\r96 / 192 [========================>------------------------] 50.00 % 35.83/s 3s "] +[56.928119, "o", "\r97 / 192 [========================>------------------------] 50.52 % 35.71/s 3s "] +[56.960604, "o", "\r98 / 192 [=========================>-----------------------] 51.04 % 35.65/s 3s "] +[56.983807, "o", "\r99 / 192 [=========================>-----------------------] 51.56 % 35.71/s 3s "] +[57.007381, "o", "\r100 / 192 [========================>-----------------------] 52.08 % 35.77/s 3s "] +[57.032547, "o", "\r101 / 192 [=========================>----------------------] 52.60 % 35.80/s 3s "] +[57.056409, "o", "\r102 / 192 [=========================>----------------------] 53.12 % 35.85/s 3s "] +[57.078784, "o", "\r103 / 192 [=========================>----------------------] 53.65 % 35.92/s 2s "] +[57.10158, "o", "\r104 / 192 [=========================>----------------------] 54.17 % 35.99/s 2s "] +[57.12656, "o", "\r105 / 192 [==========================>---------------------] 54.69 % 36.02/s 2s "] +[57.150413, "o", "\r106 / 192 [==========================>---------------------] 55.21 % 36.07/s 2s "] +[57.173349, "o", "\r107 / 192 [==========================>---------------------] 55.73 % 36.13/s 2s "] +[57.196226, "o", "\r108 / 192 [==========================>---------------------] 56.25 % 36.18/s 2s "] +[57.219239, "o", "\r109 / 192 [===========================>--------------------] 56.77 % 36.24/s 2s "] +[57.242123, "o", "\r110 / 192 [===========================>--------------------] 57.29 % 36.30/s 2s "] +[57.264373, "o", "\r111 / 192 [===========================>--------------------] 57.81 % 36.36/s 2s "] +[57.287725, "o", "\r112 / 192 [===========================>--------------------] 58.33 % 36.41/s 2s "] +[57.306321, "o", "\r113 / 192 [============================>-------------------] 58.85 % 36.51/s 2s "] +[57.324902, "o", "\r114 / 192 [============================>-------------------] 59.38 % 36.62/s 2s "] +[57.343241, "o", "\r115 / 192 [============================>-------------------] 59.90 % 36.72/s 2s "] +[57.361657, "o", "\r116 / 192 [============================>-------------------] 60.42 % 36.82/s 2s "] +[57.379511, "o", "\r117 / 192 [=============================>------------------] 60.94 % 36.93/s 2s "] +[57.397491, "o", "\r118 / 192 [=============================>------------------] 61.46 % 37.04/s 2s "] +[57.415849, "o", "\r119 / 192 [=============================>------------------] 61.98 % 37.14/s 2s "] +[57.439061, "o", "\r120 / 192 [=============================>------------------] 62.50 % 37.18/s 2s "] +[57.463797, "o", "\r121 / 192 [==============================>-----------------] 63.02 % 37.20/s 2s "] +[57.488274, "o", "\r122 / 192 [==============================>-----------------] 63.54 % 37.23/s 2s "] +[57.513123, "o", "\r123 / 192 [==============================>-----------------] 64.06 % 37.25/s 2s "] +[57.539224, "o", "\r124 / 192 [==============================>-----------------] 64.58 % 37.26/s 2s "] +[57.567419, "o", "\r125 / 192 [===============================>----------------] 65.10 % 37.25/s 2s "] +[57.595028, "o", "\r126 / 192 [===============================>----------------] 65.62 % 37.24/s 2s "] +[57.63031, "o", "\r127 / 192 [===============================>----------------] 66.15 % 37.15/s 2s "] +[57.663909, "o", "\r128 / 192 [===============================>----------------] 66.67 % 37.08/s 2s "] +[57.696236, "o", "\r129 / 192 [================================>---------------] 67.19 % 37.02/s 2s "] +[57.730174, "o", "\r130 / 192 [================================>---------------] 67.71 % 36.95/s 2s "] +[57.764146, "o", "\r131 / 192 [================================>---------------] 68.23 % 36.87/s 2s "] +[57.798243, "o", "\r132 / 192 [================================>---------------] 68.75 % 36.80/s 2s "] +[57.833652, "o", "\r133 / 192 [=================================>--------------] 69.27 % 36.72/s 2s "] +[57.866495, "o", "\r134 / 192 [=================================>--------------] 69.79 % 36.66/s 2s "] +[57.900393, "o", "\r135 / 192 [=================================>--------------] 70.31 % 36.60/s 2s "] +[57.933271, "o", "\r136 / 192 [=================================>--------------] 70.83 % 36.54/s 2s "] +[57.967845, "o", "\r137 / 192 [==================================>-------------] 71.35 % 36.47/s 2s "] +[58.001586, "o", "\r138 / 192 [==================================>-------------] 71.88 % 36.41/s 1s "] +[58.035669, "o", "\r139 / 192 [==================================>-------------] 72.40 % 36.35/s 1s "] +[58.069713, "o", "\r140 / 192 [==================================>-------------] 72.92 % 36.29/s 1s "] +[58.103264, "o", "\r141 / 192 [===================================>------------] 73.44 % 36.23/s 1s "] +[58.136796, "o", "\r142 / 192 [===================================>------------] 73.96 % 36.18/s 1s "] +[58.176255, "o", "\r143 / 192 [===================================>------------] 74.48 % 36.07/s 1s "] +[58.215135, "o", "\r144 / 192 [===================================>------------] 75.00 % 35.97/s 1s "] +[58.249619, "o", "\r145 / 192 [====================================>-----------] 75.52 % 35.91/s 1s "] +[58.283488, "o", "\r146 / 192 [====================================>-----------] 76.04 % 35.85/s 1s "] +[58.317842, "o", "\r147 / 192 [====================================>-----------] 76.56 % 35.80/s 1s "] +[58.351923, "o", "\r148 / 192 [====================================>-----------] 77.08 % 35.75/s 1s "] +[58.385731, "o", "\r149 / 192 [=====================================>----------] 77.60 % 35.70/s 1s "] +[58.419683, "o", "\r150 / 192 [=====================================>----------] 78.12 % 35.64/s 1s "] +[58.4546, "o", "\r151 / 192 [=====================================>----------] 78.65 % 35.59/s 1s "] +[58.488609, "o", "\r152 / 192 [=====================================>----------] 79.17 % 35.54/s 1s "] +[58.522835, "o", "\r153 / 192 [======================================>---------] 79.69 % 35.49/s 1s "] +[58.557056, "o", "\r154 / 192 [======================================>---------] 80.21 % 35.44/s 1s "] +[58.5906, "o", "\r155 / 192 [======================================>---------] 80.73 % 35.40/s 1s "] +[58.624806, "o", "\r156 / 192 [======================================>---------] 81.25 % 35.35/s 1s "] +[58.658779, "o", "\r157 / 192 [=======================================>--------] 81.77 % 35.30/s 1s "] +[58.691819, "o", "\r158 / 192 [=======================================>--------] 82.29 % 35.27/s 1s "] +[58.725647, "o", "\r159 / 192 [=======================================>--------] 82.81 % 35.22/s 1s "] +[58.759791, "o", "\r160 / 192 [=======================================>--------] 83.33 % 35.18/s 1s "] +[58.794076, "o", "\r161 / 192 [========================================>-------] 83.85 % 35.13/s 1s "] +[58.828255, "o", "\r162 / 192 [========================================>-------] 84.38 % 35.09/s 1s "] +[58.861878, "o", "\r163 / 192 [========================================>-------] 84.90 % 35.05/s 1s "] +[58.895747, "o", "\r164 / 192 [========================================>-------] 85.42 % 35.01/s 1s "] +[58.92964, "o", "\r165 / 192 [=========================================>------] 85.94 % 34.97/s 1s "] +[58.96327, "o", "\r166 / 192 [=========================================>------] 86.46 % 34.93/s 1s "] +[58.99724, "o", "\r167 / 192 [=========================================>------] 86.98 % 34.90/s 1s "] +[59.031176, "o", "\r168 / 192 [=========================================>------] 87.50 % 34.86/s 1s "] +[59.065432, "o", "\r169 / 192 [==========================================>-----] 88.02 % 34.82/s 1s "] +[59.099623, "o", "\r170 / 192 [==========================================>-----] 88.54 % 34.78/s 1s "] +[59.133369, "o", "\r171 / 192 [==========================================>-----] 89.06 % 34.74/s 1s "] +[59.167764, "o", "\r172 / 192 [==========================================>-----] 89.58 % 34.70/s 1s "] +[59.201626, "o", "\r173 / 192 [===========================================>----] 90.10 % 34.67/s 1s "] +[59.235141, "o", "\r174 / 192 [===========================================>----] 90.62 % 34.64/s 1s "] +[59.269205, "o", "\r175 / 192 [===========================================>----] 91.15 % 34.60/s 0s "] +[59.302952, "o", "\r176 / 192 [===========================================>----] 91.67 % 34.57/s 0s "] +[59.337511, "o", "\r177 / 192 [============================================>---] 92.19 % 34.53/s 0s "] +[59.371292, "o", "\r178 / 192 [============================================>---] 92.71 % 34.50/s 0s "] +[59.405874, "o", "\r179 / 192 [============================================>---] 93.23 % 34.46/s 0s "] +[59.439597, "o", "\r180 / 192 [============================================>---] 93.75 % 34.43/s 0s "] +[59.471, "o", "\r181 / 192 [=============================================>--] 94.27 % 34.41/s 0s "] +[59.476653, "o", "\r182 / 192 [=============================================>--] 94.79 % 34.57/s 0s "] +[59.478139, "o", "\r183 / 192 [=============================================>--] 95.31 % 34.75/s 0s "] +[59.479746, "o", "\r184 / 192 [=============================================>--] 95.83 % 34.93/s 0s "] +[59.481149, "o", "\r185 / 192 [==============================================>-] 96.35 % 35.11/s 0s "] +[59.482555, "o", "\r186 / 192 [==============================================>-] 96.88 % 35.29/s 0s "] +[59.483963, "o", "\r187 / 192 [==============================================>-] 97.40 % 35.47/s 0s "] +[59.487517, "o", "\r188 / 192 [==============================================>-] 97.92 % 35.63/s 0s "] +[59.487554, "o", "\r192 / 192 [==================================================] 100.00 % 36.39/s \r\n"] +[59.615182, "o", "\r1 / 297 [>-------------------------------------------------] 0.34 % 24.31/s 12s "] +[59.622314, "o", "\r2 / 297 [>--------------------------------------------------] 0.67 % 41.42/s 7s "] +[59.62547, "o", "\r3 / 297 [>--------------------------------------------------] 1.01 % 58.31/s 5s "] +[59.644769, "o", "\r4 / 297 [>--------------------------------------------------] 1.35 % 56.55/s 5s "] +[59.664501, "o", "\r5 / 297 [>--------------------------------------------------] 1.68 % 55.26/s 5s "] +[59.685528, "o", "\r6 / 297 [=>-------------------------------------------------] 2.02 % 53.81/s 5s "] +[59.705197, "o", "\r7 / 297 [=>-------------------------------------------------] 2.36 % 53.37/s 5s "] +[59.725159, "o", "\r8 / 297 [=>-------------------------------------------------] 2.69 % 52.93/s 5s "] +[59.74129, "o", "\r9 / 297 [=>-------------------------------------------------] 3.03 % 53.81/s 5s "] +[59.75802, "o", "\r10 / 297 [=>------------------------------------------------] 3.37 % 54.35/s 5s "] +[59.773169, "o", "\r11 / 297 [=>------------------------------------------------] 3.70 % 55.24/s 5s "] +[59.787703, "o", "\r12 / 297 [==>-----------------------------------------------] 4.04 % 56.16/s 5s "] +[59.805378, "o", "\r13 / 297 [==>-----------------------------------------------] 4.38 % 56.19/s 5s "] +[59.820806, "o", "\r14 / 297 [==>-----------------------------------------------] 4.71 % 56.73/s 5s "] +[59.83591, "o", "\r15 / 297 [==>-----------------------------------------------] 5.05 % 57.28/s 5s "] +[59.865136, "o", "\r16 / 297 [==>-----------------------------------------------] 5.39 % 54.96/s 5s "] +[59.891905, "o", "\r17 / 297 [==>-----------------------------------------------] 5.72 % 53.48/s 5s "] +[59.918349, "o", "\r18 / 297 [===>----------------------------------------------] 6.06 % 52.28/s 5s "] +[59.945472, "o", "\r19 / 297 [===>----------------------------------------------] 6.40 % 51.15/s 5s "] +[59.968449, "o", "\r20 / 297 [===>----------------------------------------------] 6.73 % 50.71/s 5s "] +[59.991376, "o", "\r21 / 297 [===>----------------------------------------------] 7.07 % 50.32/s 5s "] +[60.012226, "o", "\r22 / 297 [===>----------------------------------------------] 7.41 % 50.21/s 5s "] +[60.031623, "o", "\r23 / 297 [===>----------------------------------------------] 7.74 % 50.26/s 5s "] +[60.048522, "o", "\r24 / 297 [====>---------------------------------------------] 8.08 % 50.58/s 5s "] +[60.066888, "o", "\r25 / 297 [====>---------------------------------------------] 8.42 % 50.72/s 5s "] +[60.085659, "o", "\r26 / 297 [====>---------------------------------------------] 8.75 % 50.82/s 5s "] +[60.105009, "o", "\r27 / 297 [====>---------------------------------------------] 9.09 % 50.85/s 5s "] +[60.123154, "o", "\r28 / 297 [====>---------------------------------------------] 9.43 % 50.99/s 5s "] +[60.141409, "o", "\r29 / 297 [====>---------------------------------------------] 9.76 % 51.11/s 5s "] +[60.159736, "o", "\r30 / 297 [====>--------------------------------------------] 10.10 % 51.22/s 5s "] +[60.178152, "o", "\r31 / 297 [=====>-------------------------------------------] 10.44 % 51.31/s 5s "] +[60.196673, "o", "\r32 / 297 [=====>-------------------------------------------] 10.77 % 51.39/s 5s "] +[60.215183, "o", "\r33 / 297 [=====>-------------------------------------------] 11.11 % 51.47/s 5s "] +[60.234021, "o", "\r34 / 297 [=====>-------------------------------------------] 11.45 % 51.52/s 5s "] +[60.253031, "o", "\r35 / 297 [=====>-------------------------------------------] 11.78 % 51.55/s 5s "] +[60.271404, "o", "\r36 / 297 [=====>-------------------------------------------] 12.12 % 51.62/s 5s "] +[60.292159, "o", "\r37 / 297 [======>------------------------------------------] 12.46 % 51.52/s 5s "] +[60.31406, "o", "\r38 / 297 [======>------------------------------------------] 12.79 % 51.35/s 5s "] +[60.333113, "o", "\r39 / 297 [======>------------------------------------------] 13.13 % 51.38/s 5s "] +[60.351397, "o", "\r40 / 297 [======>------------------------------------------] 13.47 % 51.46/s 5s "] +[60.370894, "o", "\r41 / 297 [======>------------------------------------------] 13.80 % 51.45/s 5s "] +[60.390547, "o", "\r42 / 297 [======>------------------------------------------] 14.14 % 51.44/s 5s "] +[60.409937, "o", "\r43 / 297 [=======>-----------------------------------------] 14.48 % 51.44/s 5s "] +[60.441005, "o", "\r44 / 297 [=======>-----------------------------------------] 14.81 % 50.75/s 5s "] +[60.477423, "o", "\r45 / 297 [=======>-----------------------------------------] 15.15 % 49.81/s 5s "] +[60.510963, "o", "\r46 / 297 [=======>-----------------------------------------] 15.49 % 49.10/s 5s "] +[60.542479, "o", "\r47 / 297 [=======>-----------------------------------------] 15.82 % 48.53/s 5s "] +[60.572926, "o", "\r48 / 297 [=======>-----------------------------------------] 16.16 % 48.05/s 5s "] +[60.60393, "o", "\r49 / 297 [========>----------------------------------------] 16.50 % 47.58/s 5s "] +[60.635284, "o", "\r50 / 297 [========>----------------------------------------] 16.84 % 47.11/s 5s "] +[61.673067, "o", "\r51 / 297 [========>---------------------------------------] 17.17 % 24.30/s 10s "] +[61.714104, "o", "\r52 / 297 [========>---------------------------------------] 17.51 % 24.30/s 10s \r53 / 297 [========>---------------------------------------] 17.85 % 24.77/s 10s \r54 / 297 [========>---------------------------------------] 18.18 % 25.23/s 10s \r55 / 297 [=========>---------------------------------------] 18.52 % 25.70/s 9s \r56 / 297 [=========>---------------------------------------] 18.86 % 26.17/s 9s \r57 / 297 [=========>---------------------------------------] 19.19 % 26.63/s 9s \r58 / 297 [=========>---------------------------------------] 19.53 % 27.10/s 9s "] +[61.71417, "o", "\r59 / 297 [=========>---------------------------------------] 19.87 % 27.57/s 9s \r60 / 297 [=========>---------------------------------------] 20.20 % 28.04/s 8s \r61 / 297 [==========>--------------------------------------] 20.54 % 28.50/s 8s \r62 / 297 [==========>--------------------------------------] 20.88 % 28.97/s 8s \r63 / 297 [==========>--------------------------------------] 21.21 % 29.44/s 8s \r64 / 297 [==========>--------------------------------------] 21.55 % 29.91/s 8s \r65 / 297 [==========>--------------------------------------] 21.89 % 30.37/s 8s \r66 / 297 [==========>--------------------------------------] 22.22 % 30.84/s 7s \r67 / 297 [===========>-------------------------------------] 22.56 % 31.31/s 7s \r68 / 297 [===========>-------------------------------------] 22.90 % 31.77/s 7s \r69 / 297 [===========>-------------------------------------] 23.23 % 32.24/s 7s \r70 / 297 [===========>-------------------------------------] 23.57 % 32.71/s 7s \r71 / 297 [===========>-----------------------------"] +[61.714208, "o", "--------] 23.91 % 33.18/s 7s \r72 / 297 [===========>-------------------------------------] 24.24 % 33.64/s 7s \r73 / 297 [============>------------------------------------] 24.58 % 34.11/s 7s \r74 / 297 [============>------------------------------------] 24.92 % 34.58/s 6s \r75 / 297 [============>------------------------------------] 25.25 % 35.04/s 6s \r76 / 297 [============>------------------------------------] 25.59 % 35.51/s 6s \r77 / 297 [============>------------------------------------] 25.93 % 35.98/s 6s \r78 / 297 [============>------------------------------------] 26.26 % 36.45/s 6s \r79 / 297 [=============>-----------------------------------] 26.60 % 36.91/s 6s \r80 / 297 [=============>-----------------------------------] 26.94 % 37.38/s 6s \r81 / 297 [=============>-----------------------------------] 27.27 % 37.85/s 6s \r82 / 297 [=============>-----------------------------------] 27.61 % 38.32/s 6s \r83 / 297 [=============>-----------------------------------] 27.95 % 38.78/s 6s "] +[61.755192, "o", "\r84 / 297 [=============>-----------------------------------] 28.28 % 38.51/s 6s "] +[61.797524, "o", "\r85 / 297 [==============>----------------------------------] 28.62 % 38.23/s 6s "] +[61.839374, "o", "\r86 / 297 [==============>----------------------------------] 28.96 % 37.96/s 6s "] +[61.882034, "o", "\r87 / 297 [==============>----------------------------------] 29.29 % 37.69/s 6s "] +[61.92071, "o", "\r88 / 297 [==============>----------------------------------] 29.63 % 37.50/s 6s "] +[61.967379, "o", "\r89 / 297 [==============>----------------------------------] 29.97 % 37.19/s 6s "] +[62.015688, "o", "\r90 / 297 [==============>----------------------------------] 30.30 % 36.86/s 6s "] +[62.057889, "o", "\r91 / 297 [===============>---------------------------------] 30.64 % 36.64/s 6s "] +[62.099585, "o", "\r92 / 297 [===============>---------------------------------] 30.98 % 36.43/s 6s "] +[62.143302, "o", "\r93 / 297 [===============>---------------------------------] 31.31 % 36.20/s 6s "] +[62.184489, "o", "\r94 / 297 [===============>---------------------------------] 31.65 % 36.01/s 6s "] +[62.221636, "o", "\r95 / 297 [===============>---------------------------------] 31.99 % 35.88/s 6s "] +[62.257853, "o", "\r96 / 297 [===============>---------------------------------] 32.32 % 35.77/s 6s "] +[62.295682, "o", "\r97 / 297 [================>--------------------------------] 32.66 % 35.64/s 6s "] +[62.327613, "o", "\r98 / 297 [================>--------------------------------] 33.00 % 35.59/s 6s "] +[62.350428, "o", "\r99 / 297 [================>--------------------------------] 33.33 % 35.66/s 6s "] +[62.37326, "o", "\r100 / 297 [================>-------------------------------] 33.67 % 35.72/s 6s "] +[62.398265, "o", "\r101 / 297 [================>-------------------------------] 34.01 % 35.76/s 5s "] +[62.423006, "o", "\r102 / 297 [================>-------------------------------] 34.34 % 35.80/s 5s "] +[62.448487, "o", "\r103 / 297 [================>-------------------------------] 34.68 % 35.83/s 5s "] +[62.476248, "o", "\r104 / 297 [================>-------------------------------] 35.02 % 35.83/s 5s "] +[62.501704, "o", "\r105 / 297 [================>-------------------------------] 35.35 % 35.86/s 5s "] +[62.525696, "o", "\r106 / 297 [=================>------------------------------] 35.69 % 35.91/s 5s "] +[62.549166, "o", "\r107 / 297 [=================>------------------------------] 36.03 % 35.96/s 5s "] +[62.571544, "o", "\r108 / 297 [=================>------------------------------] 36.36 % 36.03/s 5s "] +[62.59476, "o", "\r109 / 297 [=================>------------------------------] 36.70 % 36.08/s 5s "] +[62.617714, "o", "\r110 / 297 [=================>------------------------------] 37.04 % 36.14/s 5s "] +[62.64107, "o", "\r111 / 297 [=================>------------------------------] 37.37 % 36.19/s 5s "] +[62.663871, "o", "\r112 / 297 [==================>-----------------------------] 37.71 % 36.25/s 5s "] +[62.682017, "o", "\r113 / 297 [==================>-----------------------------] 38.05 % 36.36/s 5s "] +[62.700137, "o", "\r114 / 297 [==================>-----------------------------] 38.38 % 36.47/s 5s "] +[62.717928, "o", "\r115 / 297 [==================>-----------------------------] 38.72 % 36.58/s 5s "] +[62.73578, "o", "\r116 / 297 [==================>-----------------------------] 39.06 % 36.69/s 5s "] +[62.753234, "o", "\r117 / 297 [==================>-----------------------------] 39.39 % 36.80/s 5s "] +[62.771402, "o", "\r118 / 297 [===================>----------------------------] 39.73 % 36.91/s 5s "] +[62.789713, "o", "\r119 / 297 [===================>----------------------------] 40.07 % 37.01/s 5s "] +[62.812732, "o", "\r120 / 297 [===================>----------------------------] 40.40 % 37.05/s 5s "] +[62.837281, "o", "\r121 / 297 [===================>----------------------------] 40.74 % 37.08/s 5s "] +[62.861999, "o", "\r122 / 297 [===================>----------------------------] 41.08 % 37.11/s 5s "] +[62.887118, "o", "\r123 / 297 [===================>----------------------------] 41.41 % 37.13/s 5s "] +[62.912851, "o", "\r124 / 297 [====================>---------------------------] 41.75 % 37.14/s 5s "] +[62.941416, "o", "\r125 / 297 [====================>---------------------------] 42.09 % 37.12/s 5s "] +[62.969429, "o", "\r126 / 297 [====================>---------------------------] 42.42 % 37.11/s 5s "] +[63.003766, "o", "\r127 / 297 [====================>---------------------------] 42.76 % 37.03/s 5s "] +[63.036892, "o", "\r128 / 297 [====================>---------------------------] 43.10 % 36.96/s 5s "] +[63.070352, "o", "\r129 / 297 [====================>---------------------------] 43.43 % 36.90/s 5s "] +[63.105427, "o", "\r130 / 297 [=====================>--------------------------] 43.77 % 36.81/s 5s "] +[63.142789, "o", "\r131 / 297 [=====================>--------------------------] 44.11 % 36.71/s 5s "] +[63.179078, "o", "\r132 / 297 [=====================>--------------------------] 44.44 % 36.62/s 5s "] +[63.21214, "o", "\r133 / 297 [=====================>--------------------------] 44.78 % 36.56/s 4s "] +[63.242148, "o", "\r134 / 297 [=====================>--------------------------] 45.12 % 36.53/s 4s "] +[63.273272, "o", "\r135 / 297 [=====================>--------------------------] 45.45 % 36.49/s 4s "] +[63.304223, "o", "\r136 / 297 [=====================>--------------------------] 45.79 % 36.46/s 4s "] +[63.335266, "o", "\r137 / 297 [======================>-------------------------] 46.13 % 36.42/s 4s "] +[63.366699, "o", "\r138 / 297 [======================>-------------------------] 46.46 % 36.39/s 4s "] +[63.397695, "o", "\r139 / 297 [======================>-------------------------] 46.80 % 36.35/s 4s "] +[63.429846, "o", "\r140 / 297 [======================>-------------------------] 47.14 % 36.31/s 4s "] +[63.461976, "o", "\r141 / 297 [======================>-------------------------] 47.47 % 36.27/s 4s "] +[63.495263, "o", "\r142 / 297 [======================>-------------------------] 47.81 % 36.21/s 4s "] +[63.528379, "o", "\r143 / 297 [=======================>------------------------] 48.15 % 36.16/s 4s "] +[63.561349, "o", "\r144 / 297 [=======================>------------------------] 48.48 % 36.11/s 4s "] +[63.594415, "o", "\r145 / 297 [=======================>------------------------] 48.82 % 36.07/s 4s "] +[63.626455, "o", "\r146 / 297 [=======================>------------------------] 49.16 % 36.03/s 4s "] +[63.65966, "o", "\r147 / 297 [=======================>------------------------] 49.49 % 35.98/s 4s "] +[63.694107, "o", "\r148 / 297 [=======================>------------------------] 49.83 % 35.92/s 4s "] +[63.727809, "o", "\r149 / 297 [========================>-----------------------] 50.17 % 35.87/s 4s "] +[63.760557, "o", "\r150 / 297 [========================>-----------------------] 50.51 % 35.83/s 4s "] +[63.79383, "o", "\r151 / 297 [========================>-----------------------] 50.84 % 35.78/s 4s "] +[63.826785, "o", "\r152 / 297 [========================>-----------------------] 51.18 % 35.74/s 4s "] +[63.859441, "o", "\r153 / 297 [========================>-----------------------] 51.52 % 35.70/s 4s "] +[63.892514, "o", "\r154 / 297 [========================>-----------------------] 51.85 % 35.66/s 4s "] +[63.926038, "o", "\r155 / 297 [=========================>----------------------] 52.19 % 35.62/s 4s "] +[63.959359, "o", "\r156 / 297 [=========================>----------------------] 52.53 % 35.57/s 4s "] +[63.992032, "o", "\r157 / 297 [=========================>----------------------] 52.86 % 35.54/s 4s "] +[64.033486, "o", "\r158 / 297 [=========================>----------------------] 53.20 % 35.43/s 4s "] +[64.068638, "o", "\r159 / 297 [=========================>----------------------] 53.54 % 35.38/s 4s "] +[64.104521, "o", "\r160 / 297 [=========================>----------------------] 53.87 % 35.32/s 4s "] +[64.13808, "o", "\r161 / 297 [==========================>---------------------] 54.21 % 35.28/s 4s "] +[64.172531, "o", "\r162 / 297 [==========================>---------------------] 54.55 % 35.23/s 4s "] +[64.206461, "o", "\r163 / 297 [==========================>---------------------] 54.88 % 35.19/s 4s "] +[64.240466, "o", "\r164 / 297 [==========================>---------------------] 55.22 % 35.14/s 4s "] +[64.274531, "o", "\r165 / 297 [==========================>---------------------] 55.56 % 35.10/s 4s "] +[64.307963, "o", "\r166 / 297 [==========================>---------------------] 55.89 % 35.07/s 4s "] +[64.341276, "o", "\r167 / 297 [==========================>---------------------] 56.23 % 35.03/s 4s "] +[64.375261, "o", "\r168 / 297 [===========================>--------------------] 56.57 % 34.99/s 4s "] +[64.409093, "o", "\r169 / 297 [===========================>--------------------] 56.90 % 34.95/s 4s "] +[64.443454, "o", "\r170 / 297 [===========================>--------------------] 57.24 % 34.91/s 4s "] +[64.47738, "o", "\r171 / 297 [===========================>--------------------] 57.58 % 34.87/s 4s "] +[64.511901, "o", "\r172 / 297 [===========================>--------------------] 57.91 % 34.83/s 4s "] +[64.546075, "o", "\r173 / 297 [===========================>--------------------] 58.25 % 34.79/s 4s "] +[64.584327, "o", "\r174 / 297 [============================>-------------------] 58.59 % 34.73/s 4s "] +[64.622522, "o", "\r175 / 297 [============================>-------------------] 58.92 % 34.66/s 4s "] +[64.65649, "o", "\r176 / 297 [============================>-------------------] 59.26 % 34.63/s 3s "] +[64.689365, "o", "\r177 / 297 [============================>-------------------] 59.60 % 34.60/s 3s "] +[64.722432, "o", "\r178 / 297 [============================>-------------------] 59.93 % 34.57/s 3s "] +[64.756159, "o", "\r179 / 297 [============================>-------------------] 60.27 % 34.54/s 3s "] +[64.789359, "o", "\r180 / 297 [=============================>------------------] 60.61 % 34.51/s 3s "] +[64.820614, "o", "\r181 / 297 [=============================>------------------] 60.94 % 34.50/s 3s "] +[64.857726, "o", "\r182 / 297 [=============================>------------------] 61.28 % 34.45/s 3s "] +[64.894922, "o", "\r183 / 297 [=============================>------------------] 61.62 % 34.39/s 3s "] +[64.931654, "o", "\r184 / 297 [=============================>------------------] 61.95 % 34.34/s 3s "] +[64.968745, "o", "\r185 / 297 [=============================>------------------] 62.29 % 34.29/s 3s "] +[65.005976, "o", "\r186 / 297 [==============================>-----------------] 62.63 % 34.24/s 3s "] +[65.042676, "o", "\r187 / 297 [==============================>-----------------] 62.96 % 34.19/s 3s "] +[65.081017, "o", "\r188 / 297 [==============================>-----------------] 63.30 % 34.14/s 3s "] +[65.116496, "o", "\r189 / 297 [==============================>-----------------] 63.64 % 34.10/s 3s "] +[65.153071, "o", "\r190 / 297 [==============================>-----------------] 63.97 % 34.06/s 3s "] +[65.189859, "o", "\r191 / 297 [==============================>-----------------] 64.31 % 34.01/s 3s "] +[65.227084, "o", "\r192 / 297 [===============================>----------------] 64.65 % 33.96/s 3s "] +[65.264077, "o", "\r193 / 297 [===============================>----------------] 64.98 % 33.92/s 3s "] +[65.300446, "o", "\r194 / 297 [===============================>----------------] 65.32 % 33.88/s 3s "] +[65.336927, "o", "\r195 / 297 [===============================>----------------] 65.66 % 33.84/s 3s "] +[65.373232, "o", "\r196 / 297 [===============================>----------------] 65.99 % 33.80/s 3s "] +[65.40892, "o", "\r197 / 297 [===============================>----------------] 66.33 % 33.76/s 3s "] +[65.446345, "o", "\r198 / 297 [===============================>----------------] 66.67 % 33.72/s 3s "] +[65.483593, "o", "\r199 / 297 [================================>---------------] 67.00 % 33.67/s 3s "] +[65.52095, "o", "\r200 / 297 [================================>---------------] 67.34 % 33.63/s 3s "] +[65.557599, "o", "\r201 / 297 [================================>---------------] 67.68 % 33.59/s 3s "] +[65.594371, "o", "\r202 / 297 [================================>---------------] 68.01 % 33.55/s 3s "] +[65.630351, "o", "\r203 / 297 [================================>---------------] 68.35 % 33.52/s 3s "] +[65.667266, "o", "\r204 / 297 [================================>---------------] 68.69 % 33.48/s 3s "] +[65.705418, "o", "\r205 / 297 [=================================>--------------] 69.02 % 33.43/s 3s "] +[65.742507, "o", "\r206 / 297 [=================================>--------------] 69.36 % 33.40/s 3s "] +[65.78337, "o", "\r207 / 297 [=================================>--------------] 69.70 % 33.34/s 3s "] +[65.825589, "o", "\r208 / 297 [=================================>--------------] 70.03 % 33.27/s 3s "] +[65.867014, "o", "\r209 / 297 [=================================>--------------] 70.37 % 33.21/s 3s "] +[65.911277, "o", "\r210 / 297 [=================================>--------------] 70.71 % 33.14/s 3s "] +[65.955155, "o", "\r211 / 297 [==================================>-------------] 71.04 % 33.07/s 3s "] +[65.991233, "o", "\r212 / 297 [==================================>-------------] 71.38 % 33.04/s 3s "] +[66.029424, "o", "\r213 / 297 [==================================>-------------] 71.72 % 33.00/s 3s "] +[66.068666, "o", "\r214 / 297 [==================================>-------------] 72.05 % 32.95/s 3s "] +[66.106598, "o", "\r215 / 297 [==================================>-------------] 72.39 % 32.91/s 2s "] +[66.144754, "o", "\r216 / 297 [==================================>-------------] 72.73 % 32.87/s 2s "] +[66.181134, "o", "\r217 / 297 [===================================>------------] 73.06 % 32.84/s 2s "] +[66.218058, "o", "\r218 / 297 [===================================>------------] 73.40 % 32.81/s 2s "] +[66.25573, "o", "\r219 / 297 [===================================>------------] 73.74 % 32.78/s 2s "] +[66.293322, "o", "\r220 / 297 [===================================>------------] 74.07 % 32.74/s 2s "] +[66.331408, "o", "\r221 / 297 [===================================>------------] 74.41 % 32.71/s 2s "] +[66.369715, "o", "\r222 / 297 [===================================>------------] 74.75 % 32.67/s 2s "] +[66.405852, "o", "\r223 / 297 [====================================>-----------] 75.08 % 32.64/s 2s "] +[66.445497, "o", "\r224 / 297 [====================================>-----------] 75.42 % 32.60/s 2s "] +[66.484597, "o", "\r225 / 297 [====================================>-----------] 75.76 % 32.56/s 2s "] +[66.522573, "o", "\r226 / 297 [====================================>-----------] 76.09 % 32.52/s 2s "] +[66.55924, "o", "\r227 / 297 [====================================>-----------] 76.43 % 32.50/s 2s "] +[66.594507, "o", "\r228 / 297 [====================================>-----------] 76.77 % 32.48/s 2s "] +[66.632462, "o", "\r229 / 297 [=====================================>----------] 77.10 % 32.44/s 2s "] +[66.671432, "o", "\r230 / 297 [=====================================>----------] 77.44 % 32.41/s 2s "] +[66.713638, "o", "\r231 / 297 [=====================================>----------] 77.78 % 32.35/s 2s "] +[66.755274, "o", "\r232 / 297 [=====================================>----------] 78.11 % 32.31/s 2s "] +[66.791615, "o", "\r233 / 297 [=====================================>----------] 78.45 % 32.28/s 2s "] +[66.828132, "o", "\r234 / 297 [=====================================>----------] 78.79 % 32.26/s 2s "] +[66.864204, "o", "\r235 / 297 [=====================================>----------] 79.12 % 32.24/s 2s "] +[66.905043, "o", "\r236 / 297 [======================================>---------] 79.46 % 32.19/s 2s "] +[66.943302, "o", "\r237 / 297 [======================================>---------] 79.80 % 32.16/s 2s "] +[66.98161, "o", "\r238 / 297 [======================================>---------] 80.13 % 32.13/s 2s "] +[67.019799, "o", "\r239 / 297 [======================================>---------] 80.47 % 32.10/s 2s "] +[67.05774, "o", "\r240 / 297 [======================================>---------] 80.81 % 32.07/s 2s "] +[67.096469, "o", "\r241 / 297 [======================================>---------] 81.14 % 32.04/s 2s "] +[67.135092, "o", "\r242 / 297 [=======================================>--------] 81.48 % 32.01/s 2s "] +[67.172907, "o", "\r243 / 297 [=======================================>--------] 81.82 % 31.98/s 2s "] +[67.210735, "o", "\r244 / 297 [=======================================>--------] 82.15 % 31.95/s 2s "] +[67.248164, "o", "\r245 / 297 [=======================================>--------] 82.49 % 31.93/s 2s "] +[67.286464, "o", "\r246 / 297 [=======================================>--------] 82.83 % 31.90/s 2s "] +[67.323783, "o", "\r247 / 297 [=======================================>--------] 83.16 % 31.87/s 2s "] +[67.362106, "o", "\r248 / 297 [========================================>-------] 83.50 % 31.84/s 2s "] +[67.398585, "o", "\r249 / 297 [========================================>-------] 83.84 % 31.82/s 2s "] +[67.436073, "o", "\r250 / 297 [========================================>-------] 84.18 % 31.80/s 1s "] +[67.473439, "o", "\r251 / 297 [========================================>-------] 84.51 % 31.77/s 1s "] +[67.51071, "o", "\r252 / 297 [========================================>-------] 84.85 % 31.75/s 1s "] +[67.546109, "o", "\r253 / 297 [========================================>-------] 85.19 % 31.74/s 1s "] +[67.581724, "o", "\r254 / 297 [=========================================>------] 85.52 % 31.72/s 1s "] +[67.616624, "o", "\r255 / 297 [=========================================>------] 85.86 % 31.71/s 1s "] +[67.655098, "o", "\r256 / 297 [=========================================>------] 86.20 % 31.68/s 1s "] +[67.693926, "o", "\r257 / 297 [=========================================>------] 86.53 % 31.65/s 1s "] +[67.731768, "o", "\r258 / 297 [=========================================>------] 86.87 % 31.63/s 1s "] +[67.770136, "o", "\r259 / 297 [=========================================>------] 87.21 % 31.60/s 1s "] +[67.807098, "o", "\r260 / 297 [==========================================>-----] 87.54 % 31.58/s 1s "] +[67.845272, "o", "\r261 / 297 [==========================================>-----] 87.88 % 31.56/s 1s "] +[67.882545, "o", "\r262 / 297 [==========================================>-----] 88.22 % 31.53/s 1s "] +[67.9196, "o", "\r263 / 297 [==========================================>-----] 88.55 % 31.51/s 1s "] +[67.955913, "o", "\r264 / 297 [==========================================>-----] 88.89 % 31.50/s 1s "] +[67.991326, "o", "\r265 / 297 [==========================================>-----] 89.23 % 31.48/s 1s "] +[68.030224, "o", "\r266 / 297 [==========================================>-----] 89.56 % 31.46/s 1s "] +[68.06889, "o", "\r267 / 297 [===========================================>----] 89.90 % 31.43/s 1s "] +[68.108057, "o", "\r268 / 297 [===========================================>----] 90.24 % 31.40/s 1s "] +[68.146507, "o", "\r269 / 297 [===========================================>----] 90.57 % 31.38/s 1s "] +[68.185144, "o", "\r270 / 297 [===========================================>----] 90.91 % 31.35/s 1s "] +[68.223278, "o", "\r271 / 297 [===========================================>----] 91.25 % 31.33/s 1s "] +[68.261787, "o", "\r272 / 297 [===========================================>----] 91.58 % 31.31/s 1s "] +[68.299819, "o", "\r273 / 297 [============================================>---] 91.92 % 31.29/s 1s "] +[68.337703, "o", "\r274 / 297 [============================================>---] 92.26 % 31.27/s 1s "] +[68.375564, "o", "\r275 / 297 [============================================>---] 92.59 % 31.24/s 1s "] +[68.412598, "o", "\r276 / 297 [============================================>---] 92.93 % 31.23/s 1s "] +[68.450835, "o", "\r277 / 297 [============================================>---] 93.27 % 31.20/s 1s "] +[68.487793, "o", "\r278 / 297 [============================================>---] 93.60 % 31.19/s 1s "] +[68.525715, "o", "\r279 / 297 [=============================================>--] 93.94 % 31.17/s 1s "] +[68.56181, "o", "\r280 / 297 [=============================================>--] 94.28 % 31.15/s 1s "] +[68.598297, "o", "\r281 / 297 [=============================================>--] 94.61 % 31.14/s 1s "] +[68.634923, "o", "\r282 / 297 [=============================================>--] 94.95 % 31.12/s 0s "] +[68.672476, "o", "\r283 / 297 [=============================================>--] 95.29 % 31.10/s 0s "] +[68.707611, "o", "\r284 / 297 [=============================================>--] 95.62 % 31.09/s 0s "] +[68.745113, "o", "\r285 / 297 [==============================================>-] 95.96 % 31.08/s 0s "] +[68.779466, "o", "\r286 / 297 [==============================================>-] 96.30 % 31.07/s 0s "] +[68.785099, "o", "\r287 / 297 [==============================================>-] 96.63 % 31.16/s 0s "] +[68.786735, "o", "\r288 / 297 [==============================================>-] 96.97 % 31.26/s 0s "] +[68.788319, "o", "\r289 / 297 [==============================================>-] 97.31 % 31.36/s 0s "] +[68.790184, "o", "\r290 / 297 [==============================================>-] 97.64 % 31.47/s 0s "] +[68.791872, "o", "\r291 / 297 [================================================] 97.98 % 31.57/s 0s "] +[68.793683, "o", "\r292 / 297 [================================================] 98.32 % 31.67/s 0s "] +[68.797074, "o", "\r293 / 297 [================================================] 98.65 % 31.77/s 0s "] +[68.797243, "o", "\r297 / 297 [==================================================] 100.00 % 32.20/s \r\n"] +[68.848272, "o", "\u001b[?2004h\r\n\u001b[1m\u001b[34mscratch/demo/recording\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m "] +[109.435138, "o", "o"] +[109.608119, "o", "e"] +[109.691791, "o", "n"] +[109.778275, "o", " "] +[110.081676, "o", "\b\u001b[K"] +[110.222771, "o", "\b\u001b[K"] +[110.337042, "o", "\b\u001b[K"] +[110.503913, "o", "p"] +[110.595737, "o", "e"] +[110.718684, "o", " "] +[110.725438, "o", "n"] +[111.217373, "o", "\b\u001b[K"] +[111.352541, "o", "\b\u001b[K"] +[111.491284, "o", "n"] +[111.61368, "o", " "] +[111.851399, "o", "."] +[115.917676, "o", "\r\n"] +[115.918091, "o", "\u001b[?2004l\r"] +[116.075051, "o", "\u001b[?2004h\r\n\u001b[1m\u001b[34mscratch/demo/recording\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m "] diff --git a/docs/casts/attach-file-action/attach-file-action.gif b/docs/casts/attach-file-action/attach-file-action.gif new file mode 100644 index 0000000..788b7ea Binary files /dev/null and b/docs/casts/attach-file-action/attach-file-action.gif differ diff --git a/docs/casts/attach-file-action/attach-file-action.svg b/docs/casts/attach-file-action/attach-file-action.svg new file mode 100644 index 0000000..ddd3a52 --- /dev/null +++ b/docs/casts/attach-file-action/attach-file-action.svg @@ -0,0 +1 @@ +Dave_Kerr/scratch/democonda/base$$ai?chat:<Enter>Menuopenai:gpt-4o-2024-08-06chat:?chat:(Usearrowkeys)ChatChat(Fullscreen)AttachFileChangeModelQuitChatChat(Fullscreen)AttachFilechat:AttachFile?Filepath:/Users/Dave_Kerr/scratch/demo/├──recording/├──animal.jpg└──package.json━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━↑↓navigate,<enter>select<space>opendirectory,<backspace>goback├──recording/├──animal.jpg└──package.jsonFilepath:/Users/Dave_Kerr/scratch/demo/package.json?Fileprocessingmode:(Usearrowkeys)TextImageProcessastext.Idealforcode,documents,etc.?Fileprocessingmode:TextImageVisionprocessing(modeldependent).Enablesimagerecognition,etc.Fileprocessingmode:TextFilepath:/Users/Dave_Kerr/scratch/demo/animal.jpgFileprocessingmode:Image?chat:w?chat:wh?chat:wha?chat:what?chat:whata?chat:whatar?chat:whatare?chat:whataret?chat:whatareth?chat:whatarethe?chat:whatarethes?chat:whatarethese?chat:whatarethesef?chat:whatarethesefi?chat:whatarethesefil?chat:whatarethesefile?chat:whatarethesefiles?chat:whatarethesefiles?chat:whatarethesefiles?(uploading:/Users/Dave_Kerr/scratch/demo/package.json...)(uploadingimage:/Users/Dave_Kerr/scratch/demo/animal.jpg...)openai:1.**package.json**:AJSONfileforaNode.jsproject,detailingconfigurations,scripts,anddependencies.2.**Image**:Anillustrationofafish.Goodbye!$e$s$sv$svg$c$cd$cdrecording/scratch/demo/recordingconda/base$lsattach-file-action.cast$ca$cassvg-termsvgtopamcaffeinatecallercaptoinfocatimgcairo-tracecameratopamcasecalcancelcast_to_svg_gifcalendarcap_mkdbcat$cast_to_svg_gifattach-file-action.cast$a$ex$cdr$cdre$l$cs$cast$cast_to_svg_gif \ No newline at end of file diff --git a/docs/casts/image-files/image-file-default.gif b/docs/casts/image-files/image-file-default.gif new file mode 100644 index 0000000..ade6e85 Binary files /dev/null and b/docs/casts/image-files/image-file-default.gif differ diff --git a/docs/casts/image-files/image-file-github-dark.gif b/docs/casts/image-files/image-file-github-dark.gif new file mode 100644 index 0000000..4957272 Binary files /dev/null and b/docs/casts/image-files/image-file-github-dark.gif differ diff --git a/docs/casts/image-files/image-file.cast b/docs/casts/image-files/image-file.cast new file mode 100644 index 0000000..e652459 --- /dev/null +++ b/docs/casts/image-files/image-file.cast @@ -0,0 +1,163 @@ +{"version": 2, "width": 80, "height": 15, "timestamp": 1744018602, "env": {"SHELL": "/usr/local/bin/bash", "TERM": "xterm-256color"}, "title": "Terminal AI"} +[1.274873, "o", "\u001b[?2004h\r\n\u001b[1m\u001b[34mgithub/dwmkerr/terminal-ai\u001b(B\u001b[m \u001b[32m\u001b[4mmain\u001b(B\u001b[m \u001b[31m!\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m "] +[2.111344, "o", "i"] +[2.213877, "o", "m"] +[2.391691, "o", "g"] +[2.88165, "o", "c"] +[2.971737, "o", "a"] +[3.174772, "o", "t"] +[3.239301, "o", " "] +[3.441868, "o", "a"] +[3.55539, "o", "n"] +[3.723647, "o", "imal.jpg "] +[4.224106, "o", "\r\n"] +[4.224215, "o", "\u001b[?2004l\r"] +[4.246047, "o", "\u001b[?25l\r\n\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;253;253;253m▄\u001b[48;2;255;255;255m\u001b[38;2;251;251;251m▄\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;248;248;248m▄\u001b[48;2;254;254;253m\u001b[38;2;138;137;129m▄\u001b[48;2;243;243;243m\u001b[38;2;142;135;115m▄\u001b[48;2;255;255;255m\u001b[38;2;242;238;232m▄\u001b[48;2;253;253;253m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;253;252;252m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;253m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;25"] +[4.246214, "o", "4;254m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;253;253;253m▄\u001b[48;2;253;253;253m\u001b[38;2;255;255;255m▄\u001b[48;2;253;253;253m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[0m\r\n\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;252;252;252m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;254;254;254m\u001b[38;2"] +[4.246245, "o", ";255;255;255m▄\u001b[48;2;252;252;252m\u001b[38;2;255;255;255m▄\u001b[48;2;252;252;252m\u001b[38;2;255;255;255m▄\u001b[48;2;255;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;243;244;244m▄\u001b[48;2;255;255;255m\u001b[38;2;225;225;226m▄\u001b[48;2;255;255;255m\u001b[38;2;207;207;208m▄\u001b[48;2;255;255;255m\u001b[38;2;174;173;175m▄\u001b[48;2;245;245;245m\u001b[38;2;89;89;90m▄\u001b[48;2;121;121;121m\u001b[38;2;58;58;55m▄\u001b[48;2;73;72;68m\u001b[38;2;76;74;69m▄\u001b[48;2;107;99;81m\u001b[38;2;82;79;74m▄\u001b[48;2;144;133;113m\u001b[38;2;85;80;71m▄\u001b[48;2;224;221;216m\u001b[38;2;127;121;112m▄\u001b[48;2;255;255;255m\u001b[38;2;210;209;207m▄\u001b[48;2;255;255;255m\u001b[38;2;222;221;220m▄\u001b[48;2;255;255;255m\u001b[38;2;233;233;232m▄\u001b[48;2;255;255;255m\u001b[38;2;244;244;243m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;253;253;252m\u001b[38;2;255;255;255m▄\u001b[48;2;252;252;252m\u001b[38;2;255;255;255m▄\u001b[48;2;253;253;253m\u001b[38;2;255;255;255m▄\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;253;253;253m▄\u001b[4"] +[4.24633, "o", "8;2;255;255;255m\u001b[38;2;253;253;252m▄\u001b[48;2;255;255;255m\u001b[38;2;253;253;252m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;253;253;253m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;232;231;228m▄\u001b[48;2;255;255;255m\u001b[38;2;164;160;148m▄\u001b[48;2;225;225;224m\u001b[38;2;81;79;72m▄\u001b[48;2;214;214;213m\u001b[38;2;165;165;165m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[0m\r\n\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;253;253;253m\u001b[38;2;255;255;255m▄\u001b[48;2;253;253;253m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;232;232;232m▄\u001b[48;2;255;255;255m\u001b[38;2;181;182;182m▄\u001b[48;2;255;255;255m\u001b[38;2;122;124;127m▄\u001b[48;2;226;225;226m\u001b[38;2;90;93;97m▄\u001b[48;2;186;187;186m\u001b[38;2;84;84;85m▄\u001b[48;2;146;146;146m\u001b[38;2;90;90;92m▄\u001b[48;2;117;117;116m\u001b[38;2;99;100;100m▄\u001b[48;2;98;98;97m\u001b[38;2;108;107;103m▄\u001b[48;2;85;85;84m\u001b[38;2;115;113;108m▄\u001b[48;2;80;80;79m\u001b[38;2;119;117;111m▄\u001b[48;2;76;76;76m\u001b[38;2;123;120;112m▄\u001b[48;2;81;81;77m\u001b[38;2;120;116;106m▄\u001b[48;2;91;89;83m\u001b[38;2;1"] +[4.246414, "o", "18;112;100m▄\u001b[48;2;89;87;79m\u001b[38;2;119;114;101m▄\u001b[48;2;89;86;77m\u001b[38;2;120;113;99m▄\u001b[48;2;88;85;77m\u001b[38;2;119;113;100m▄\u001b[48;2;90;88;80m\u001b[38;2;120;115;102m▄\u001b[48;2;85;82;73m\u001b[38;2;120;115;101m▄\u001b[48;2;87;87;80m\u001b[38;2;118;115;102m▄\u001b[48;2;90;89;84m\u001b[38;2;112;109;95m▄\u001b[48;2;100;99;93m\u001b[38;2;109;105;93m▄\u001b[48;2;112;110;102m\u001b[38;2;104;101;90m▄\u001b[48;2;129;127;120m\u001b[38;2;99;96;84m▄\u001b[48;2;151;150;145m\u001b[38;2;95;94;85m▄\u001b[48;2;170;169;167m\u001b[38;2;88;86;77m▄\u001b[48;2;128;127;122m\u001b[38;2;86;84;74m▄\u001b[48;2;131;127;118m\u001b[38;2;97;95;85m▄\u001b[48;2;245;244;242m\u001b[38;2;130;127;118m▄\u001b[48;2;255;255;255m\u001b[38;2;159;156;147m▄\u001b[48;2;255;255;255m\u001b[38;2;190;188;181m▄\u001b[48;2;255;255;255m\u001b[38;2;179;177;171m▄\u001b[48;2;251;251;251m\u001b[38;2;131;129;124m▄\u001b[48;2;182;181;177m\u001b[38;2;95;95;91m▄\u001b[48;2;111;107;93m\u001b[38;2;105;103;90m▄\u001b[48;2;111;101;80m\u001b[38;2;116;108;88m▄\u001b[48;2;105;100;91m\u001b[38;2;126;124;117m▄\u001b[48;2;227;228;229m\u001b[38;2;252;253;253m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[0m\r\n\u001b[48;2;254;254;254m\u001b[38;2;254"] +[4.246496, "o", ";254;254m▄\u001b[48;2;253;253;253m\u001b[38;2;178;179;180m▄\u001b[48;2;209;210;212m\u001b[38;2;90;93;96m▄\u001b[48;2;139;141;144m\u001b[38;2;86;88;82m▄\u001b[48;2;90;93;94m\u001b[38;2;97;93;76m▄\u001b[48;2;87;90;89m\u001b[38;2;111;108;100m▄\u001b[48;2;101;102;99m\u001b[38;2;127;124;110m▄\u001b[48;2;117;121;124m\u001b[38;2;114;110;99m▄\u001b[48;2;125;127;128m\u001b[38;2;126;121;108m▄\u001b[48;2;125;122;114m\u001b[38;2;132;123;98m▄\u001b[48;2;126;123;113m\u001b[38;2;136;124;97m▄\u001b[48;2;128;122;109m\u001b[38;2;144;132;104m▄\u001b[48;2;131;124;109m\u001b[38;2;148;136;106m▄\u001b[48;2;133;127;111m\u001b[38;2;152;138;108m▄\u001b[48;2;131;122;104m\u001b[38;2;152;136;104m▄\u001b[48;2;134;126;107m\u001b[38;2;153;136;103m▄\u001b[48;2;134;124;104m\u001b[38;2;154;138;105m▄\u001b[48;2;133;123;102m\u001b[38;2;154;138;105m▄\u001b[48;2;136;126;105m\u001b[38;2;156;139;106m▄\u001b[48;2;139;129;107m\u001b[38;2;161;144;111m▄\u001b[48;2;138;129;107m\u001b[38;2;163;147;113m▄\u001b[48;2;140;133;112m\u001b[38;2;166;151;117m▄\u001b[48;2;142;136;114m\u001b[38;2;166;152;119m▄\u001b[48;2;139;133;110m\u001b[38;2;163;148;114m▄\u001b[48;2;140;134;112m\u001b[38;2;162;148;118m▄\u001b[48;2;141;136;116m\u001b[38;2;166;155;126m▄\u001b[48;2"] +[4.246575, "o", ";140;136;117m\u001b[38;2;162;150;123m▄\u001b[48;2;137;135;120m\u001b[38;2;160;149;125m▄\u001b[48;2;136;135;123m\u001b[38;2;159;150;128m▄\u001b[48;2;133;131;117m\u001b[38;2;160;151;129m▄\u001b[48;2;130;128;114m\u001b[38;2;160;151;128m▄\u001b[48;2;123;120;105m\u001b[38;2;157;146;120m▄\u001b[48;2;116;111;92m\u001b[38;2;157;143;114m▄\u001b[48;2;112;105;85m\u001b[38;2;156;143;111m▄\u001b[48;2;106;100;81m\u001b[38;2;142;127;95m▄\u001b[48;2;108;100;83m\u001b[38;2;135;122;97m▄\u001b[48;2;117;116;111m\u001b[38;2;125;122;112m▄\u001b[48;2;113;110;98m\u001b[38;2;117;113;99m▄\u001b[48;2;99;93;78m\u001b[38;2;96;91;77m▄\u001b[48;2;159;160;157m\u001b[38;2;157;156;152m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;252;252;252m\u001b[38;2;253;252;252m▄\u001b[0m\r\n\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;205;203;199m\u001b[38;2;254;253;253m▄\u001b[48;2;180;180;174m\u001b[38;2;232;232;231m▄\u001b[48;2;147;147;142m\u001b[38;2;211;211;205m▄\u001b[48;2;129;119;100m\u001b[38;2;179;175;164m▄\u001b[48;2;127;115;91m\u001b[38;2;173;167;152m▄\u001b[48;2;135;122;95m\u001b[38;2;159;148;126m▄\u001b[48;2;126;116;98m\u001b[38;2;163;152;137m▄\u001b[48;2;137;128;113m\u001b[38;2;162;154;144m▄\u001b[48;2;143;126;9"] +[4.246645, "o", "7m\u001b[38;2;128;119;95m▄\u001b[48;2;146;129;96m\u001b[38;2;134;123;99m▄\u001b[48;2;149;134;100m\u001b[38;2;140;122;94m▄\u001b[48;2;150;132;95m\u001b[38;2;153;131;96m▄\u001b[48;2;156;135;95m\u001b[38;2;165;143;104m▄\u001b[48;2;158;136;94m\u001b[38;2;164;140;101m▄\u001b[48;2;162;139;98m\u001b[38;2;169;145;105m▄\u001b[48;2;164;141;100m\u001b[38;2;172;148;108m▄\u001b[48;2;164;141;100m\u001b[38;2;175;151;110m▄\u001b[48;2;171;148;108m\u001b[38;2;179;156;117m▄\u001b[48;2;175;152;112m\u001b[38;2;180;156;117m▄\u001b[48;2;176;153;111m\u001b[38;2;184;158;117m▄\u001b[48;2;177;152;111m\u001b[38;2;189;162;116m▄\u001b[48;2;178;153;111m\u001b[38;2;195;167;119m▄\u001b[48;2;179;155;116m\u001b[38;2;196;166;119m▄\u001b[48;2;172;147;111m\u001b[38;2;197;167;120m▄\u001b[48;2;174;150;115m\u001b[38;2;200;171;128m▄\u001b[48;2;177;154;119m\u001b[38;2;197;175;144m▄\u001b[48;2;177;155;128m\u001b[38;2;181;164;144m▄\u001b[48;2;169;149;123m\u001b[38;2;165;150;129m▄\u001b[48;2;163;147;125m\u001b[38;2;156;142;120m▄\u001b[48;2;166;155;138m\u001b[38;2;164;151;126m▄\u001b[48;2;181;172;155m\u001b[38;2;234;231;227m▄\u001b[48;2;191;183;167m\u001b[38;2;255;255;255m▄\u001b[48;2;191;184;168m\u001b[38;2;255;255;255m▄\u001b[48;2;174;165;144m\u001b[38;2"] +[4.246767, "o", ";255;255;255m▄\u001b[48;2;144;137;123m\u001b[38;2;234;235;235m▄\u001b[48;2;111;111;105m\u001b[38;2;177;176;173m▄\u001b[48;2;108;106;94m\u001b[38;2;109;107;95m▄\u001b[48;2;107;101;87m\u001b[38;2;103;96;80m▄\u001b[48;2;107;106;104m\u001b[38;2;87;86;82m▄\u001b[48;2;253;253;253m\u001b[38;2;221;222;224m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[0m\r\n\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;252;252;249m\u001b[38;2;255;255;255m▄\u001b[48;2;244;244;241m\u001b[38;2;255;255;255m▄\u001b[48;2;235;236;230m\u001b[38;2;255;255;255m▄\u001b[48;2;229;227;219m\u001b[38;2;255;255;255m▄\u001b[48;2;217;219;217m\u001b[38;2;255;255;254m▄\u001b[48;2;165;161;146m\u001b[38;2;255;255;253m▄\u001b[48;2;151;138;116m\u001b[38;2;246;246;242m▄\u001b[48;2;170;152;131m\u001b[38;2;242;244;240m▄\u001b[48;2;191;178;156m\u001b[38;2;240;242;237m▄\u001b[48;2;192;176;147m\u001b[38;2;236;237;230m▄\u001b[48;2;193;173;139m\u001b[38;2;234;233;221m▄\u001b[48;2;193;174;142m\u001b[38;2;232;231;218m▄\u001b[48;2;196;180;153m\u001b[38;2;235;234;227m▄\u001b[48;2;196;181;159m\u001b[38;2;"] +[4.246882, "o", "215;217;217m▄\u001b[48;2;199;181;152m\u001b[38;2;180;170;153m▄\u001b[48;2;206;188;157m\u001b[38;2;175;158;123m▄\u001b[48;2;207;188;156m\u001b[38;2;218;212;191m▄\u001b[48;2;209;188;148m\u001b[38;2;241;239;227m▄\u001b[48;2;214;194;150m\u001b[38;2;244;244;235m▄\u001b[48;2;217;198;155m\u001b[38;2;249;250;246m▄\u001b[48;2;222;204;164m\u001b[38;2;254;255;255m▄\u001b[48;2;233;224;200m\u001b[38;2;255;255;255m▄\u001b[48;2;222;219;212m\u001b[38;2;255;255;255m▄\u001b[48;2;171;166;157m\u001b[38;2;255;255;255m▄\u001b[48;2;138;127;108m\u001b[38;2;228;225;221m▄\u001b[48;2;140;126;110m\u001b[38;2;195;185;178m▄\u001b[48;2;186;172;158m\u001b[38;2;235;231;229m▄\u001b[48;2;251;250;250m\u001b[38;2;255;255;255m▄\u001b[48;2;253;253;252m\u001b[38;2;254;254;254m▄\u001b[48;2;253;253;253m\u001b[38;2;255;255;255m▄\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;253;253;253m▄\u001b[48;2;235;234;232m\u001b[38;2;255;255;255m▄\u001b[48;2;174;171;163m\u001b[38;2;255;255;255m▄\u001b[48;2;95;91;84m\u001b[38;2;242;242;240m▄\u001b[48;2;161;158;154m\u001b[38;2;231;230;227m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[0m\r\n\u001b[48;2;255;255;255m\u001b[3"] +[4.24711, "o", "8;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;241;241;238m\u001b[38;2;255;255;255m▄\u001b[48;2;201;194;177m\u001b[38;2;255;255;255m▄\u001b[48;2;195;187;171m\u001b[38;2;255;255;255m▄\u001b[48;2;254;254;255m\u001b[38;2;254;253;253m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;254m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;254m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;254;254m\u001b["] +[4.247169, "o", "38;2;255;255;255m▄\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;254;253;253m▄\u001b[48;2;255;255;255m\u001b[38;2;253;253;253m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[48;2;254;254;254m\u001b[38;2;255;255;255m▄\u001b[48;2;253;253;253m\u001b[38;2;255;255;255m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;254;254;254m▄\u001b[48;2;255;255;255m\u001b[38;2;255;255;255m▄\u001b[0m\r\n\u001b[?25h"] +[4.315695, "o", "\u001b[?2004h\r\n\u001b[1m\u001b[34mgithub/dwmkerr/terminal-ai\u001b(B\u001b[m \u001b[32m\u001b[4mmain\u001b(B\u001b[m \u001b[31m!\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m "] +[5.079797, "o", "a"] +[5.18642, "o", "i"] +[5.317855, "o", " "] +[5.759029, "o", "-"] +[5.940887, "o", "-"] +[6.084394, "o", " "] +[6.541384, "o", "\b\u001b[K"] +[6.713334, "o", "i"] +[6.753237, "o", "m"] +[6.894108, "o", "a"] +[6.965782, "o", "g"] +[7.029848, "o", "e"] +[7.157592, "o", "-"] +[7.267238, "o", "f"] +[7.373055, "o", "i"] +[7.429546, "o", "l"] +[7.567648, "o", "\u0007"] +[8.247217, "o", "e"] +[8.369882, "o", " "] +[8.503776, "o", "a"] +[8.574555, "o", "n"] +[8.706206, "o", "i"] +[8.812518, "o", "m"] +[8.893717, "o", "al.jpg "] +[9.325319, "o", "\r\n"] +[9.325822, "o", "\u001b[?2004l\r"] +[9.642787, "o", "\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n\u001b[90m\u001b[90m Menu openai: gpt-4o-2024-08-06\u001b[39m\u001b[90m\u001b[39m\u001b[1A\u001b[9G"] +[10.325701, "o", "\u001b[10G"] +[10.326806, "o", "\u001b[1B\u001b[2K\u001b[1A\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m w\u001b[10G"] +[10.466006, "o", "\u001b[11G"] +[10.466677, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m wh\u001b[11G"] +[10.577529, "o", "\u001b[12G"] +[10.578667, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m wha\u001b[12G"] +[10.653586, "o", "\u001b[13G"] +[10.654842, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what\u001b[13G"] +[10.74584, "o", "\u001b[14G"] +[10.746447, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what\u001b[14G"] +[10.804418, "o", "\u001b[15G"] +[10.804704, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what i\u001b[15G"] +[10.993598, "o", "\u001b[16G"] +[10.993836, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is\u001b[16G"] +[11.09838, "o", "\u001b[17G"] +[11.099638, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is\u001b[17G"] +[11.243223, "o", "\u001b[18G"] +[11.244346, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is t\u001b[18G"] +[11.345842, "o", "\u001b[19G"] +[11.34648, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is th\u001b[19G"] +[11.381994, "o", "\u001b[20G"] +[11.382246, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is thi\u001b[20G"] +[11.489978, "o", "\u001b[21G"] +[11.490416, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this\u001b[21G"] +[11.533358, "o", "\u001b[22G"] +[11.533661, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this\u001b[22G"] +[11.742584, "o", "\u001b[23G"] +[11.743441, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a\u001b[23G"] +[11.919535, "o", "\u001b[24G"] +[11.920521, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a\u001b[24G"] +[12.70164, "o", "\u001b[25G"] +[12.702006, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a p\u001b[25G"] +[12.853338, "o", "\u001b[26G"] +[12.854235, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a pi\u001b[26G"] +[13.000378, "o", "\u001b[27G"] +[13.000866, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a pic\u001b[27G"] +[13.174204, "o", "\u001b[28G"] +[13.174576, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a pict\u001b[28G"] +[13.231654, "o", "\u001b[29G"] +[13.232036, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a pictu\u001b[29G"] +[13.341789, "o", "\u001b[30G"] +[13.342537, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a pictur\u001b[30G"] +[13.392819, "o", "\u001b[31G"] +[13.393092, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a picture\u001b[31G"] +[13.428237, "o", "\u001b[32G"] +[13.428525, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a picture\u001b[32G"] +[13.557723, "o", "\u001b[33G"] +[13.558571, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a picture o\u001b[33G"] +[13.653931, "o", "\u001b[34G"] +[13.654509, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a picture of\u001b[34G"] +[14.063255, "o", "\u001b[9G"] +[14.063956, "o", "\u001b[2K\u001b[G\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m what is this a picture of\u001b[34G"] +[14.067347, "o", "\u001b[2K\u001b[G\u001b[32m✔\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m \u001b[34mwhat is this a picture of\u001b[39m\u001b[34G"] +[14.069896, "o", "\r\n\u001b[?25h"] +[14.076947, "o", "\u001b[90m(uploading image: animal.jpg...)\u001b[39m\r\n"] +[14.113962, "o", "\u001b[?25l"] +[14.114093, "o", "\u001b[1G\u001b[1G"] +[14.114233, "o", "\u001b[36m⠋\u001b[39m "] +[14.195357, "o", "\u001b[1G"] +[14.195409, "o", "\u001b[0K\u001b[36m⠙\u001b[39m "] +[14.27588, "o", "\u001b[1G\u001b[0K\u001b[36m⠹\u001b[39m "] +[14.35759, "o", "\u001b[1G\u001b[0K\u001b[36m⠸\u001b[39m "] +[14.438315, "o", "\u001b[1G\u001b[0K\u001b[36m⠼\u001b[39m "] +[14.519407, "o", "\u001b[1G\u001b[0K"] +[14.519627, "o", "\u001b[36m⠴\u001b[39m "] +[14.600152, "o", "\u001b[1G\u001b[0K"] +[14.6003, "o", "\u001b[36m⠦\u001b[39m "] +[14.681377, "o", "\u001b[1G\u001b[0K"] +[14.681744, "o", "\u001b[36m⠧\u001b[39m "] +[14.762772, "o", "\u001b[1G\u001b[0K"] +[14.763391, "o", "\u001b[36m⠇\u001b[39m "] +[14.844638, "o", "\u001b[1G\u001b[0K"] +[14.844909, "o", "\u001b[36m⠏\u001b[39m "] +[14.925112, "o", "\u001b[1G\u001b[0K\u001b[36m⠋\u001b[39m "] +[15.005366, "o", "\u001b[1G\u001b[0K"] +[15.005515, "o", "\u001b[36m⠙\u001b[39m "] +[15.086829, "o", "\u001b[1G\u001b[0K"] +[15.087167, "o", "\u001b[36m⠹\u001b[39m "] +[15.167623, "o", "\u001b[1G\u001b[0K\u001b[36m⠸\u001b[39m "] +[15.247846, "o", "\u001b[1G\u001b[0K\u001b[36m⠼\u001b[39m "] +[15.329268, "o", "\u001b[1G\u001b[0K"] +[15.32962, "o", "\u001b[36m⠴\u001b[39m "] +[15.410427, "o", "\u001b[1G\u001b[0K\u001b[36m⠦\u001b[39m "] +[15.49173, "o", "\u001b[1G\u001b[0K"] +[15.492052, "o", "\u001b[36m⠧\u001b[39m "] +[15.572048, "o", "\u001b[1G\u001b[0K"] +[15.572376, "o", "\u001b[36m⠇\u001b[39m "] +[15.653299, "o", "\u001b[1G\u001b[0K\u001b[36m⠏\u001b[39m "] +[15.734664, "o", "\u001b[1G\u001b[0K"] +[15.73505, "o", "\u001b[36m⠋\u001b[39m "] +[15.814765, "o", "\u001b[1G\u001b[0K"] +[15.815184, "o", "\u001b[36m⠙\u001b[39m "] +[15.895798, "o", "\u001b[1G\u001b[0K"] +[15.896099, "o", "\u001b[36m⠹\u001b[39m "] +[15.976191, "o", "\u001b[1G\u001b[0K"] +[15.976529, "o", "\u001b[36m⠸\u001b[39m "] +[16.057494, "o", "\u001b[1G\u001b[0K\u001b[36m⠼\u001b[39m "] +[16.137871, "o", "\u001b[1G\u001b[0K\u001b[36m⠴\u001b[39m "] +[16.219189, "o", "\u001b[1G\u001b[0K\u001b[36m⠦\u001b[39m "] +[16.238978, "o", "\u001b[1G\u001b[0K"] +[16.239099, "o", "\u001b[?25h"] +[16.253742, "o", "\u001b[37m\u001b[1mopenai:\u001b[22m\u001b[39m \u001b[0mThis is an illustration of a fish, possibly a salmon or trout.\u001b[0m\r\n"] +[16.254607, "o", "\u001b[34m?\u001b[39m \u001b[1m\u001b[37m\u001b[1mchat:\u001b[1m\u001b[39m\u001b[22m\r\n\u001b[90m\u001b[90m Menu openai: gpt-4o-2024-08-06\u001b[39m\u001b[90m\u001b[39m\u001b[1A\u001b[9G"] +[18.317133, "o", "\u001b[?25h"] +[18.317738, "o", "\u001b[1B\r\n\u001b[?25h"] +[18.318708, "o", "Goodbye!\r\n"] +[18.399546, "o", "\u001b[?2004h\r\n\u001b[1m\u001b[34mgithub/dwmkerr/terminal-ai\u001b(B\u001b[m \u001b[32m\u001b[4mmain\u001b(B\u001b[m \u001b[31m!\u001b(B\u001b[m \u001b[35mconda/\u001b[1mbase\u001b[0m\u001b(B\u001b[m \r\n\u001b[1m\u001b[37m$\u001b(B\u001b[m "] +[18.957072, "o", "\u001b[?2004l\r\r\n"] +[18.957119, "o", "exit\r\n"] diff --git a/docs/casts/image-files/image-file.gif b/docs/casts/image-files/image-file.gif new file mode 100644 index 0000000..5e9fd47 Binary files /dev/null and b/docs/casts/image-files/image-file.gif differ diff --git a/docs/casts/image-files/image-file.svg b/docs/casts/image-files/image-file.svg new file mode 100644 index 0000000..8907beb --- /dev/null +++ b/docs/casts/image-files/image-file.svg @@ -0,0 +1 @@ +github/dwmkerr/terminal-aimain!conda/base$$imgcat$imgcatanimal.jpg▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄$ai$ai--$ai--image-fil$ai--image-file$ai--image-fileanimal.jpg?chat:<Enter>Menuopenai:gpt-4o-2024-08-06?chat:w?chat:wh?chat:wha?chat:what?chat:whati?chat:whatis?chat:whatist?chat:whatisth?chat:whatisthi?chat:whatisthis?chat:whatisthisa?chat:whatisthisap?chat:whatisthisapi?chat:whatisthisapic?chat:whatisthisapict?chat:whatisthisapictu?chat:whatisthisapictur?chat:whatisthisapicture?chat:whatisthisapictureo?chat:whatisthisapictureofchat:whatisthisapictureof(uploadingimage:animal.jpg...)openai:Thisisanillustrationofafish,possiblyasalmonortrout.Goodbye!$i$im$img$imgc$imgca$imgcata$imgcatan▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄$a$ai-$ai--i$ai--im$ai--ima$ai--imag$ai--image$ai--image-$ai--image-f$ai--image-fi$ai--image-filea$ai--image-filean$ai--image-fileani$ai--image-fileanimexit \ No newline at end of file diff --git a/package.json b/package.json index 6c35110..55174d5 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "colors": "^1.4.0", "commander": "^11.1.0", "debug": "^4.3.4", + "inquirer-file-selector": "^0.6.2", "isbinaryfile": "^5.0.4", "js-yaml": "^4.1.0", "langfuse": "^3.36.0", diff --git a/src/chat-actions/AttachFileAction.ts b/src/chat-actions/AttachFileAction.ts new file mode 100644 index 0000000..ea5eee1 --- /dev/null +++ b/src/chat-actions/AttachFileAction.ts @@ -0,0 +1,50 @@ +import { select } from "@inquirer/prompts"; +import { ChatPipelineParameters } from "../chat-pipeline/ChatPipelineParameters"; +import { ChatAction } from "./ChatAction"; +import { ErrorCode, TerminalAIError } from "../lib/errors"; + +export const AttachFileAction: ChatAction = { + id: "attach_file", + displayNameInitial: "Attach File", + displayNameReply: "Attach File", + isInitialInteractionAction: true, + isDebugAction: false, + weight: 0, + execute: async ( + params: ChatPipelineParameters, + ): Promise => { + const fileSelector = (await import("inquirer-file-selector")).default; + const path = await fileSelector({ + message: "File path:", + type: "file", + }); + const fileType = await select({ + message: "File processing mode:", + choices: [ + { + name: "Text", + value: "text", + description: "Process as text. Ideal for code, documents, etc.", + }, + { + name: "Image", + value: "image", + description: + "Vision processing (model dependent). Enables image recognition, etc.", + }, + ], + }); + if (fileType === "text") { + params.chatContext.filePathsOutbox.push(path); + } else if (fileType === "image") { + params.chatContext.imageFilePathsOutbox.push(path); + } else { + throw new TerminalAIError( + ErrorCode.InvalidOperation, + "unknown file processing '${fileType}'", + ); + } + + return undefined; + }, +}; diff --git a/src/chat-actions/UploadFileAction.ts b/src/chat-actions/UploadFileAction.ts deleted file mode 100644 index 7dacc00..0000000 --- a/src/chat-actions/UploadFileAction.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { ChatPipelineParameters } from "../chat-pipeline/ChatPipelineParameters"; -import { ChatAction } from "./ChatAction"; -import { selectModel } from "../commands/init/select/select-model"; -import { updateConfigurationFile } from "../configuration/update-configuration-file"; - -export const ChangeModelAction: ChatAction = { - id: "change_model", - displayNameInitial: "Change Model", - displayNameReply: "Change Model", - isInitialInteractionAction: true, - isDebugAction: false, - weight: 0, - execute: async ( - params: ChatPipelineParameters, - ): Promise => { - // Choose the model, update the context. - const executionContext = params.executionContext; - const provider = params.executionContext.provider; - const model = await selectModel(provider.model, provider.type); - provider.model = model; - - // Save the model. It's either a named provider or the root provider. - if (provider.name !== "") { - updateConfigurationFile(executionContext.configFilePath, { - [`providers.${provider.name}.model`]: model, - }); - } else { - updateConfigurationFile(executionContext.configFilePath, { - [`model`]: model, - }); - } - - return undefined; - }, -}; diff --git a/src/chat-actions/index.ts b/src/chat-actions/index.ts index 044bb71..ddfcb7c 100644 --- a/src/chat-actions/index.ts +++ b/src/chat-actions/index.ts @@ -7,10 +7,12 @@ import { QuitAction } from "./QuitAction"; import { ReplyAction } from "./ReplyAction"; import { SaveResponseAction } from "./SaveResponseAction"; import { ChangeModelAction } from "./ChangeModelAction"; +import { AttachFileAction } from "./AttachFileAction"; export const ChatActions: ChatAction[] = [ ReplyAction, FullscreenInputAction, + AttachFileAction, ChangeModelAction, CopyResponseAction, SaveResponseAction,