├── .gitignore ├── .vscode └── launch.json ├── LICENSE ├── doc ├── anim1.gif ├── anim2.gif ├── anim3.gif ├── anim4.gif ├── anim5.gif ├── anim6.gif ├── anim7.gif ├── anim_macos.gif ├── anim_neu_1.gif ├── anim_neu_2.gif ├── glossary.gif ├── gource.md ├── log.png ├── log_files.png ├── macos_automator.png ├── macos_mindmanager.png ├── macos_services.png ├── mermaid.png ├── prompt.png ├── tab_action.png ├── tab_agent.png ├── tab_configuration.png ├── tab_freetext.png ├── tab_image.png ├── tab_translation.png ├── ui_freetext.gif ├── vscode.png ├── windows_macroeditor.png ├── windows_mindmanager.png └── windows_registry.png ├── macos └── automator │ ├── Capex_Opex.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Cluster.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Complexity_1.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Complexity_2.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Complexity_3.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Examples.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Expertise.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Expertise_Project_Process_Organization.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Generate Glossary.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ ├── Thumbnail copy.png │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Generate Image.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Process_Organization.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Project_Organization.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Project_Process_Organization.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Refine_Development.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Refine_General.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Translate_DE.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ ├── Translate_EN.workflow │ └── Contents │ │ ├── Info.plist │ │ ├── QuickLook │ │ └── Thumbnail.png │ │ └── document.wflow │ └── copy_to_services.sh ├── readme.md ├── src ├── ai │ ├── __init__.py │ ├── agents │ │ ├── __init__.py │ │ ├── agno_financial_v1.py │ │ ├── autogen_financial_v1.py │ │ ├── crewai_financial_v1.py │ │ └── llms │ │ │ ├── __init__.py │ │ │ ├── agno.py │ │ │ ├── autogen.py │ │ │ └── crewai.py │ ├── ai_agent.py │ ├── ai_aws.py │ ├── ai_azure_entra.py │ ├── ai_gcp.py │ ├── ai_image.py │ ├── ai_image_mlx.py │ ├── ai_llm.py │ ├── ai_translation.py │ └── prompts.py ├── app_gradio.py ├── app_tkinter.py ├── config │ ├── alibabacloud.env.example │ ├── anthropic.env.example │ ├── azure.env.example │ ├── bedrock.env.example │ ├── bfl.env.example │ ├── deepl.env.example │ ├── deepseek.env.example │ ├── fireworks.env.example │ ├── gemini.env.example │ ├── github.env.example │ ├── gpt4all.env │ ├── groq.env.example │ ├── hf.env.example │ ├── ideogramai.env.example │ ├── lmstudio.env │ ├── mistral.env.example │ ├── mlx.env │ ├── ollama.env │ ├── openai.env.example │ ├── openrouter.env.example │ ├── perplexity.env.example │ ├── recraftai.env.example │ ├── stabilityai.env.example │ ├── vertexai.env.example │ └── xai.env.example ├── config_image.py ├── config_llm.py ├── config_translate.py ├── constraints_agents.txt ├── file_helper.py ├── input_helper.py ├── mermaid │ ├── __init__.py │ └── mermaid_helper.py ├── process.py ├── requirements.txt ├── requirements_agents.txt ├── requirements_auth.txt ├── requirements_auth_aws.txt ├── requirements_mac_mlx.txt ├── templates │ ├── argumentation.html │ ├── glossary.html │ ├── markmap.html │ └── mermaid.html └── text_helper.py ├── test └── test.py └── windows ├── capex_opex.mmbas ├── cluster.mmbas ├── complexity_1.mmbas ├── complexity_2.mmbas ├── complexity_3.mmbas ├── examples.mmbas ├── exp.mmbas ├── exp_prj_prc_org.mmbas ├── generate_glossary.mmbas ├── generate_image.mmbas ├── install.bat ├── macro_registration.ps1 ├── prc_org.mmbas ├── prj_org.mmbas ├── prj_prc_org.mmbas ├── refine.mmbas ├── refine_dev.mmbas ├── translate_de.mmbas └── translate_en.mmbas /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | src/log/** 3 | src/images/** 4 | src/docs/** 5 | src/input/pdf/** 6 | src/input/md/** 7 | src/input/mermaid/** 8 | src/archive/** 9 | .DS_Store 10 | macos/automator/.DS_Store 11 | token_cache.json 12 | **.mp4 13 | .aider* 14 | test/~$Test_DOM.mmap.~$lock 15 | src/import/** 16 | **.cpython-312.pyc 17 | settings.json 18 | .env 19 | src/config/*.env 20 | !src/config/gpt4all.env 21 | !src/config/lmstudio.env 22 | !src/config/mlx.env 23 | !src/config/ollama.env 24 | CLAUDE.md -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Python: Current File", 5 | "type": "python", 6 | "request": "launch", 7 | "program": "${file}", 8 | "console": "integratedTerminal", 9 | "justMyCode": true 10 | }, 11 | { 12 | "name": "Tkinter UI", 13 | "type": "python", 14 | "request": "launch", 15 | "program": "${workspaceFolder}/src/app_tkinter.py", 16 | "args": [], 17 | "console": "integratedTerminal", 18 | "justMyCode": true 19 | }, 20 | { 21 | "name": "Python: process.py -> Refine", 22 | "type": "python", 23 | "request": "launch", 24 | "program": "${workspaceFolder}/src/process.py", 25 | "args": ["refine"], 26 | "console": "integratedTerminal", 27 | "justMyCode": true 28 | }, 29 | { 30 | "name": "Python: process.py -> Cluster", 31 | "type": "python", 32 | "request": "launch", 33 | "program": "${workspaceFolder}/src/process.py", 34 | "args": ["cluster"], 35 | "console": "integratedTerminal", 36 | "justMyCode": true 37 | }, 38 | { 39 | "name": "Python: process.py -> Examples", 40 | "type": "python", 41 | "request": "launch", 42 | "program": "${workspaceFolder}/src/process.py", 43 | "args": ["examples"], 44 | "console": "integratedTerminal", 45 | "justMyCode": true 46 | }, 47 | { 48 | "name": "Python: process.py -> Image", 49 | "type": "python", 50 | "request": "launch", 51 | "program": "${workspaceFolder}/src/process.py", 52 | "args": ["image"], 53 | "console": "integratedTerminal", 54 | "justMyCode": true 55 | }, 56 | { 57 | "name": "Python: process.py -> Images (5)", 58 | "type": "python", 59 | "request": "launch", 60 | "program": "${workspaceFolder}/src/process.py", 61 | "args": ["image_5"], 62 | "console": "integratedTerminal", 63 | "justMyCode": true 64 | }, 65 | { 66 | "name": "Python: process.py -> Translate -> German", 67 | "type": "python", 68 | "request": "launch", 69 | "program": "${workspaceFolder}/src/process.py", 70 | "args": ["translate_deepl+DE"], 71 | "console": "integratedTerminal", 72 | "justMyCode": true 73 | }, 74 | { 75 | "name": "Python: process.py -> Translate -> English", 76 | "type": "python", 77 | "request": "launch", 78 | "program": "${workspaceFolder}/src/process.py", 79 | "args": ["translate_deepl+EN-US"], 80 | "console": "integratedTerminal", 81 | "justMyCode": true 82 | }, 83 | { 84 | "name": "Python: process.py -> Glossary", 85 | "type": "python", 86 | "request": "launch", 87 | "program": "${workspaceFolder}/src/process.py", 88 | "args": ["glossary"], 89 | "console": "integratedTerminal", 90 | "justMyCode": true 91 | }, 92 | { 93 | "name": "Python: process.py -> Argumentation", 94 | "type": "python", 95 | "request": "launch", 96 | "program": "${workspaceFolder}/src/process.py", 97 | "args": ["argumentation"], 98 | "console": "integratedTerminal", 99 | "justMyCode": true 100 | }, 101 | { 102 | "name": "Python: process.py -> Export Markmap", 103 | "type": "python", 104 | "request": "launch", 105 | "program": "${workspaceFolder}/src/process.py", 106 | "args": ["export_markmap"], 107 | "console": "integratedTerminal", 108 | "justMyCode": true 109 | }, 110 | { 111 | "name": "Python: process.py -> Export Mermaid", 112 | "type": "python", 113 | "request": "launch", 114 | "program": "${workspaceFolder}/src/process.py", 115 | "args": ["export_mermaid"], 116 | "console": "integratedTerminal", 117 | "justMyCode": true 118 | }, 119 | { 120 | "name": "Python: process.py -> Import Markdown", 121 | "type": "python", 122 | "request": "launch", 123 | "program": "${workspaceFolder}/src/process.py", 124 | "args": ["import_md", "orgchart"], 125 | "console": "integratedTerminal", 126 | "justMyCode": true 127 | }, 128 | { 129 | "name": "Python: process.py -> PDF to Mindmap", 130 | "type": "python", 131 | "request": "launch", 132 | "program": "${workspaceFolder}/src/process.py", 133 | "args": ["pdf_mindmap"], 134 | "console": "integratedTerminal", 135 | "justMyCode": true 136 | }, 137 | { 138 | "name": "Python: process.py -> PDF to Mindmap (multimodal)", 139 | "type": "python", 140 | "request": "launch", 141 | "program": "${workspaceFolder}/src/process.py", 142 | "args": ["pdfsimple_mindmap", "orgchart"], 143 | "console": "integratedTerminal", 144 | "justMyCode": true 145 | }, 146 | { 147 | "name": "Python: process.py -> PDF to Mindmap by Knowledge Graph", 148 | "type": "python", 149 | "request": "launch", 150 | "program": "${workspaceFolder}/src/process.py", 151 | "args": ["pdf_knowledgegraph"], 152 | "console": "integratedTerminal", 153 | "justMyCode": true 154 | }, 155 | { 156 | "name": "Python: process.py -> News", 157 | "type": "python", 158 | "request": "launch", 159 | "program": "${workspaceFolder}/src/process.py", 160 | "args": ["news"], 161 | "console": "integratedTerminal", 162 | "justMyCode": true 163 | }, 164 | { 165 | "name": "Python: process.py -> Radial Map", 166 | "type": "python", 167 | "request": "launch", 168 | "program": "${workspaceFolder}/src/process.py", 169 | "args": ["finalize", "radial"], 170 | "console": "integratedTerminal", 171 | "justMyCode": true 172 | }, 173 | { 174 | "name": "Python: process.py -> Orgchart", 175 | "type": "python", 176 | "request": "launch", 177 | "program": "${workspaceFolder}/src/process.py", 178 | "args": ["finalize", "orgchart"], 179 | "console": "integratedTerminal", 180 | "justMyCode": true 181 | } 182 | ] 183 | } 184 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Robert Zaufall 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /doc/anim1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim1.gif -------------------------------------------------------------------------------- /doc/anim2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim2.gif -------------------------------------------------------------------------------- /doc/anim3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim3.gif -------------------------------------------------------------------------------- /doc/anim4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim4.gif -------------------------------------------------------------------------------- /doc/anim5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim5.gif -------------------------------------------------------------------------------- /doc/anim6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim6.gif -------------------------------------------------------------------------------- /doc/anim7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim7.gif -------------------------------------------------------------------------------- /doc/anim_macos.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim_macos.gif -------------------------------------------------------------------------------- /doc/anim_neu_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim_neu_1.gif -------------------------------------------------------------------------------- /doc/anim_neu_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/anim_neu_2.gif -------------------------------------------------------------------------------- /doc/glossary.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/glossary.gif -------------------------------------------------------------------------------- /doc/gource.md: -------------------------------------------------------------------------------- 1 | # Visualizing git repo 2 | ## Installation (macOS) 3 | Install gource, ffmpeg 4 | ``` 5 | brew install gource 6 | brew install ffmpeg 7 | ``` 8 | ## Create video using Gource 9 | Use the parameters as desired. 10 | ``` 11 | # bigger size 12 | gource -1280x720 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource.mp4 13 | 14 | # smaller size 15 | gource -854x480 --file-idle-time 0 --auto-skip-seconds 1 --seconds-per-day 3 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource_small.mp4 16 | ``` 17 | -------------------------------------------------------------------------------- /doc/log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/log.png -------------------------------------------------------------------------------- /doc/log_files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/log_files.png -------------------------------------------------------------------------------- /doc/macos_automator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/macos_automator.png -------------------------------------------------------------------------------- /doc/macos_mindmanager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/macos_mindmanager.png -------------------------------------------------------------------------------- /doc/macos_services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/macos_services.png -------------------------------------------------------------------------------- /doc/mermaid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/mermaid.png -------------------------------------------------------------------------------- /doc/prompt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/prompt.png -------------------------------------------------------------------------------- /doc/tab_action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/tab_action.png -------------------------------------------------------------------------------- /doc/tab_agent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/tab_agent.png -------------------------------------------------------------------------------- /doc/tab_configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/tab_configuration.png -------------------------------------------------------------------------------- /doc/tab_freetext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/tab_freetext.png -------------------------------------------------------------------------------- /doc/tab_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/tab_image.png -------------------------------------------------------------------------------- /doc/tab_translation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/tab_translation.png -------------------------------------------------------------------------------- /doc/ui_freetext.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/ui_freetext.gif -------------------------------------------------------------------------------- /doc/vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/vscode.png -------------------------------------------------------------------------------- /doc/windows_macroeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/windows_macroeditor.png -------------------------------------------------------------------------------- /doc/windows_mindmanager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/windows_mindmanager.png -------------------------------------------------------------------------------- /doc/windows_registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/doc/windows_registry.png -------------------------------------------------------------------------------- /macos/automator/Capex_Opex.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Capex_Opex 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Capex_Opex.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Capex_Opex.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Capex_Opex.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py capex_opex 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | 74759027-384E-48A0-B27A-4BBE8B2A29E0 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 9F0D18E1-FC7A-4E6D-9999-BC57E1F98354 99 | UUID 100 | 8AACD44B-C485-4C79-A4EC-D3052A71046D 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | conversionLabel 174 | 0 175 | isViewVisible 176 | 1 177 | location 178 | 309.000000:305.000000 179 | nibPath 180 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 181 | 182 | isViewVisible 183 | 1 184 | 185 | 186 | connectors 187 | 188 | workflowMetaData 189 | 190 | applicationBundleID 191 | com.mindjet.mindmanager.23 192 | applicationBundleIDsByPath 193 | 194 | /Applications/MindManager.app 195 | com.mindjet.mindmanager.23 196 | 197 | applicationPath 198 | /Applications/MindManager.app 199 | applicationPaths 200 | 201 | /Applications/MindManager.app 202 | 203 | inputTypeIdentifier 204 | com.apple.Automator.nothing 205 | outputTypeIdentifier 206 | com.apple.Automator.nothing 207 | presentationMode 208 | 11 209 | processesInput 210 | 211 | serviceApplicationBundleID 212 | com.mindjet.mindmanager.23 213 | serviceApplicationPath 214 | /Applications/MindManager.app 215 | serviceInputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceOutputTypeIdentifier 218 | com.apple.Automator.nothing 219 | serviceProcessesInput 220 | 221 | systemImageName 222 | NSTouchBarGlobe 223 | useAutomaticInputType 224 | 225 | workflowTypeIdentifier 226 | com.apple.Automator.servicesMenu 227 | 228 | 229 | 230 | -------------------------------------------------------------------------------- /macos/automator/Cluster.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Cluster 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Cluster.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Cluster.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Cluster.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py cluster 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | D24D76EE-DADE-4F75-8FF9-35DF74390309 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 24DB70A7-5A8E-464A-AF09-14A89B9C2F65 99 | UUID 100 | 3F099403-9B11-4274-A7EC-51B363C5719C 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | conversionLabel 174 | 0 175 | isViewVisible 176 | 1 177 | location 178 | 309.000000:305.000000 179 | nibPath 180 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 181 | 182 | isViewVisible 183 | 1 184 | 185 | 186 | connectors 187 | 188 | workflowMetaData 189 | 190 | applicationBundleID 191 | com.mindjet.mindmanager.23 192 | applicationBundleIDsByPath 193 | 194 | /Applications/MindManager.app 195 | com.mindjet.mindmanager.23 196 | 197 | applicationPath 198 | /Applications/MindManager.app 199 | applicationPaths 200 | 201 | /Applications/MindManager.app 202 | 203 | inputTypeIdentifier 204 | com.apple.Automator.nothing 205 | outputTypeIdentifier 206 | com.apple.Automator.nothing 207 | presentationMode 208 | 11 209 | processesInput 210 | 211 | serviceApplicationBundleID 212 | com.mindjet.mindmanager.23 213 | serviceApplicationPath 214 | /Applications/MindManager.app 215 | serviceInputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceOutputTypeIdentifier 218 | com.apple.Automator.nothing 219 | serviceProcessesInput 220 | 221 | systemImageName 222 | NSTouchBarGlobe 223 | useAutomaticInputType 224 | 225 | workflowTypeIdentifier 226 | com.apple.Automator.servicesMenu 227 | 228 | 229 | 230 | -------------------------------------------------------------------------------- /macos/automator/Complexity_1.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Complexity_1 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Complexity_1.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Complexity_1.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Complexity_1.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py complexity_1 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | 24268600-E8A3-48C3-926D-A7F55A843DE1 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 6EA0A5EE-DB29-40A2-AEFC-B29117939C66 99 | UUID 100 | 54D5341B-3404-42D4-BA4C-9DA404B3FD8E 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Complexity_2.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Complexity_2 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Complexity_2.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Complexity_2.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Complexity_2.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py complexity_2 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | 24268600-E8A3-48C3-926D-A7F55A843DE1 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 6EA0A5EE-DB29-40A2-AEFC-B29117939C66 99 | UUID 100 | 54D5341B-3404-42D4-BA4C-9DA404B3FD8E 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Complexity_3.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Complexity_3 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Complexity_3.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Complexity_3.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Complexity_3.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py complexity_3 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | B1A49491-12BB-4C20-A21B-469C2211677D 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | ACA437BB-7431-418D-B256-0D3DC76E212E 99 | UUID 100 | 64D494AB-595D-43F2-A801-4CFED9AE6ADE 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Examples.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Examples 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Examples.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Examples.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Examples.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py examples 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | 5304B204-3CDD-47E2-BE0A-C59327589F00 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | A28A961B-C4A7-4C70-A51C-021EE02CA923 99 | UUID 100 | 9D200C28-A36F-406C-BCD5-78F8824B9175 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | conversionLabel 174 | 0 175 | isViewVisible 176 | 1 177 | location 178 | 309.000000:305.000000 179 | nibPath 180 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 181 | 182 | isViewVisible 183 | 1 184 | 185 | 186 | connectors 187 | 188 | workflowMetaData 189 | 190 | applicationBundleID 191 | com.mindjet.mindmanager.23 192 | applicationBundleIDsByPath 193 | 194 | /Applications/MindManager.app 195 | com.mindjet.mindmanager.23 196 | 197 | applicationPath 198 | /Applications/MindManager.app 199 | applicationPaths 200 | 201 | /Applications/MindManager.app 202 | 203 | inputTypeIdentifier 204 | com.apple.Automator.nothing 205 | outputTypeIdentifier 206 | com.apple.Automator.nothing 207 | presentationMode 208 | 11 209 | processesInput 210 | 211 | serviceApplicationBundleID 212 | com.mindjet.mindmanager.23 213 | serviceApplicationPath 214 | /Applications/MindManager.app 215 | serviceInputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceOutputTypeIdentifier 218 | com.apple.Automator.nothing 219 | serviceProcessesInput 220 | 221 | systemImageName 222 | NSTouchBarGlobe 223 | useAutomaticInputType 224 | 225 | workflowTypeIdentifier 226 | com.apple.Automator.servicesMenu 227 | 228 | 229 | 230 | -------------------------------------------------------------------------------- /macos/automator/Expertise.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Expertise 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Expertise.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Expertise.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Expertise.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py exp 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | EEEDB769-0462-44A1-8F8F-70964CF4D434 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 7D4C15C9-CE55-456F-B86D-335068C532FB 99 | UUID 100 | 15679851-B9D7-441D-A963-3D4AABEB6A6D 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Expertise_Project_Process_Organization.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Expertise_Project_Process_Organization 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Expertise_Project_Process_Organization.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Expertise_Project_Process_Organization.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Expertise_Project_Process_Organization.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py exp_prj_prc_org 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | EEEDB769-0462-44A1-8F8F-70964CF4D434 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 7D4C15C9-CE55-456F-B86D-335068C532FB 99 | UUID 100 | 15679851-B9D7-441D-A963-3D4AABEB6A6D 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Generate Glossary.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Generate Glossary 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Generate Glossary.workflow/Contents/QuickLook/Thumbnail copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Generate Glossary.workflow/Contents/QuickLook/Thumbnail copy.png -------------------------------------------------------------------------------- /macos/automator/Generate Glossary.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Generate Glossary.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Generate Glossary.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py glossary 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | EEEDB769-0462-44A1-8F8F-70964CF4D434 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 7D4C15C9-CE55-456F-B86D-335068C532FB 99 | UUID 100 | 15679851-B9D7-441D-A963-3D4AABEB6A6D 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Generate Image.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarColorPickerWheel 12 | NSMenuItem 13 | 14 | default 15 | Generate Image 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Generate Image.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Generate Image.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Generate Image.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py image 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | 5304B204-3CDD-47E2-BE0A-C59327589F00 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | A28A961B-C4A7-4C70-A51C-021EE02CA923 99 | UUID 100 | 9D200C28-A36F-406C-BCD5-78F8824B9175 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 283.500000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarColorPickerWheel 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Process_Organization.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Process_Organization 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Process_Organization.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Process_Organization.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Process_Organization.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py prc_org 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | EEEDB769-0462-44A1-8F8F-70964CF4D434 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 7D4C15C9-CE55-456F-B86D-335068C532FB 99 | UUID 100 | 15679851-B9D7-441D-A963-3D4AABEB6A6D 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Project_Organization.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Project_Organization 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Project_Organization.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Project_Organization.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Project_Organization.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py prj_org 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | EEEDB769-0462-44A1-8F8F-70964CF4D434 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 7D4C15C9-CE55-456F-B86D-335068C532FB 99 | UUID 100 | 15679851-B9D7-441D-A963-3D4AABEB6A6D 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Project_Process_Organization.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Project_Process_Organization 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Project_Process_Organization.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Project_Process_Organization.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Project_Process_Organization.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py prj_prc_org 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | EEEDB769-0462-44A1-8F8F-70964CF4D434 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | 7D4C15C9-CE55-456F-B86D-335068C532FB 99 | UUID 100 | 15679851-B9D7-441D-A963-3D4AABEB6A6D 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Refine_Development.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Refine_Dev 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Refine_Development.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Refine_Development.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Refine_Development.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 523 7 | AMApplicationVersion 8 | 2.10 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | source $HOME/.zshrc 63 | python3 ~/git/mindmanager_ai/src/process.py refine_dev 64 | CheckedForUserDefaultShell 65 | 66 | inputMethod 67 | 0 68 | shell 69 | /bin/zsh 70 | source 71 | 72 | 73 | BundleIdentifier 74 | com.apple.RunShellScript 75 | CFBundleVersion 76 | 2.0.3 77 | CanShowSelectedItemsWhenRun 78 | 79 | CanShowWhenRun 80 | 81 | Category 82 | 83 | AMCategoryUtilities 84 | 85 | Class Name 86 | RunShellScriptAction 87 | InputUUID 88 | B1A49491-12BB-4C20-A21B-469C2211677D 89 | Keywords 90 | 91 | Shell 92 | Script 93 | Command 94 | Run 95 | Unix 96 | 97 | OutputUUID 98 | ACA437BB-7431-418D-B256-0D3DC76E212E 99 | UUID 100 | 64D494AB-595D-43F2-A801-4CFED9AE6ADE 101 | UnlocalizedApplications 102 | 103 | Automator 104 | 105 | arguments 106 | 107 | 0 108 | 109 | default value 110 | 0 111 | name 112 | inputMethod 113 | required 114 | 0 115 | type 116 | 0 117 | uuid 118 | 0 119 | 120 | 1 121 | 122 | default value 123 | 124 | name 125 | CheckedForUserDefaultShell 126 | required 127 | 0 128 | type 129 | 0 130 | uuid 131 | 1 132 | 133 | 2 134 | 135 | default value 136 | 137 | name 138 | source 139 | required 140 | 0 141 | type 142 | 0 143 | uuid 144 | 2 145 | 146 | 3 147 | 148 | default value 149 | 150 | name 151 | COMMAND_STRING 152 | required 153 | 0 154 | type 155 | 0 156 | uuid 157 | 3 158 | 159 | 4 160 | 161 | default value 162 | /bin/sh 163 | name 164 | shell 165 | required 166 | 0 167 | type 168 | 0 169 | uuid 170 | 4 171 | 172 | 173 | isViewVisible 174 | 1 175 | location 176 | 309.000000:305.000000 177 | nibPath 178 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib 179 | 180 | isViewVisible 181 | 1 182 | 183 | 184 | connectors 185 | 186 | workflowMetaData 187 | 188 | applicationBundleID 189 | com.mindjet.mindmanager.23 190 | applicationBundleIDsByPath 191 | 192 | /Applications/MindManager.app 193 | com.mindjet.mindmanager.23 194 | 195 | applicationPath 196 | /Applications/MindManager.app 197 | applicationPaths 198 | 199 | /Applications/MindManager.app 200 | 201 | inputTypeIdentifier 202 | com.apple.Automator.nothing 203 | outputTypeIdentifier 204 | com.apple.Automator.nothing 205 | presentationMode 206 | 11 207 | processesInput 208 | 209 | serviceApplicationBundleID 210 | com.mindjet.mindmanager.23 211 | serviceApplicationPath 212 | /Applications/MindManager.app 213 | serviceInputTypeIdentifier 214 | com.apple.Automator.nothing 215 | serviceOutputTypeIdentifier 216 | com.apple.Automator.nothing 217 | serviceProcessesInput 218 | 219 | systemImageName 220 | NSTouchBarGlobe 221 | useAutomaticInputType 222 | 223 | workflowTypeIdentifier 224 | com.apple.Automator.servicesMenu 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /macos/automator/Refine_General.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Refine 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Refine_General.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Refine_General.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Translate_DE.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Translate DE 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Translate_DE.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Translate_DE.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/Translate_EN.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSBackgroundColorName 9 | background 10 | NSIconName 11 | NSTouchBarGlobe 12 | NSMenuItem 13 | 14 | default 15 | Translate EN 16 | 17 | NSMessage 18 | runWorkflowAsService 19 | NSRequiredContext 20 | 21 | NSApplicationIdentifier 22 | com.mindjet.mindmanager.23 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /macos/automator/Translate_EN.workflow/Contents/QuickLook/Thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/macos/automator/Translate_EN.workflow/Contents/QuickLook/Thumbnail.png -------------------------------------------------------------------------------- /macos/automator/copy_to_services.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DESTINATION=~/Library/Services 4 | 5 | # Create the destination directory if it doesn't exist 6 | if [ ! -d "$DESTINATION" ]; then 7 | echo "Destination directory does not exist. Creating it now." 8 | mkdir -p "$DESTINATION" 9 | fi 10 | 11 | # Function to delete directories in destination that exist in source 12 | delete_overlap() { 13 | for dir in $(ls -d */); do 14 | if [ -d "$DESTINATION/${dir}" ]; then 15 | echo "Deleting overlapping directory: $dir" 16 | rm -rf "$DESTINATION/${dir}" 17 | fi 18 | done 19 | } 20 | 21 | # Function to copy from source to destination 22 | copy_to_destination() { 23 | rsync -av . "$DESTINATION" 24 | } 25 | 26 | # Delete the script from the destination after execution 27 | delete_script() { 28 | rm -f "$DESTINATION/$(basename $0)" 29 | } 30 | 31 | # Main execution 32 | delete_overlap 33 | copy_to_destination 34 | delete_script 35 | 36 | echo "Copy completed." 37 | -------------------------------------------------------------------------------- /src/ai/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/src/ai/__init__.py -------------------------------------------------------------------------------- /src/ai/agents/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/src/ai/agents/__init__.py -------------------------------------------------------------------------------- /src/ai/agents/agno_financial_v1.py: -------------------------------------------------------------------------------- 1 | from agno.agent import Agent 2 | from agno.tools.duckduckgo import DuckDuckGoTools 3 | from agno.tools.yfinance import YFinanceTools 4 | 5 | import llms.agno as ai 6 | 7 | CLOUD_TYPE = 'AZURE+gpt-4o-mini' 8 | # CLOUD_TYPE = 'OPENAI+gpt-4o-mini' 9 | # CLOUD_TYPE = 'OLLAMA+llama3.2:3b' 10 | # CLOUD_TYPE = 'XAI+grok-2-1212' 11 | # CLOUD_TYPE = 'DEEPSEEK+deepseek-chat' 12 | 13 | class MAgent: 14 | def __init__(self, cloud_type: str = CLOUD_TYPE, secondary_cloud_type: str = CLOUD_TYPE): 15 | self.llms = ai.load_models([cloud_type, secondary_cloud_type]) 16 | if len(self.llms) == 0: 17 | raise ValueError("No models loaded") 18 | 19 | def execute(self, argument: str = 'NVDA', simple_result: bool = True, show_tool_calls: bool = False) -> str: 20 | web_agent = Agent( 21 | name="Web Agent", 22 | role="Search the web for information", 23 | model=self.llms[0], 24 | tools=[DuckDuckGoTools()], 25 | #instructions=["Always include sources"], 26 | show_tool_calls=show_tool_calls, 27 | markdown=True, 28 | ) 29 | 30 | finance_agent = Agent( 31 | name="Finance Agent", 32 | role="Get financial data", 33 | model=self.llms[0], 34 | tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, company_info=True)], 35 | #instructions=["Use tables to display data"], 36 | show_tool_calls=show_tool_calls, 37 | markdown=True, 38 | ) 39 | 40 | agent_team = Agent( 41 | team=[web_agent, finance_agent], 42 | model=self.llms[0], 43 | #instructions=["Always include sources", "Use tables to display data"], 44 | show_tool_calls=show_tool_calls, 45 | markdown=True, 46 | ) 47 | 48 | strTopic = f"Summarize analyst recommendations and share the latest news for {argument}" 49 | if simple_result: 50 | response = agent_team.run(strTopic, stream=False) 51 | return response.content 52 | else: 53 | agent_team.print_response(strTopic, stream=True) 54 | return 55 | 56 | def main(): 57 | m_agent = MAgent() 58 | results = m_agent.execute(simple_result=False, show_tool_calls=True) 59 | print(results) 60 | 61 | if __name__ == "__main__": 62 | main() 63 | -------------------------------------------------------------------------------- /src/ai/agents/autogen_financial_v1.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | from datetime import datetime, timedelta 4 | import asyncio 5 | 6 | import yfinance as yf 7 | from autogen_agentchat.agents import AssistantAgent, UserProxyAgent 8 | from autogen_agentchat.conditions import TextMentionTermination 9 | from autogen_agentchat.teams import RoundRobinGroupChat 10 | from autogen_agentchat.ui import Console 11 | from autogen_ext.models.openai import OpenAIChatCompletionClient 12 | from autogen_ext.models.openai import AzureOpenAIChatCompletionClient 13 | 14 | import llms.autogen as ai 15 | 16 | sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))) 17 | import file_helper as fh 18 | 19 | CLOUD_TYPE = 'AZURE+gpt-4o-mini' 20 | # CLOUD_TYPE = 'OPENAI+gpt-4o-mini' 21 | # CLOUD_TYPE = 'OLLAMA+llama3.2:3b' 22 | # CLOUD_TYPE = 'XAI+grok-2-1212' 23 | # CLOUD_TYPE = 'DEEPSEEK+deepseek-chat' 24 | 25 | class MAgent: 26 | def __init__(self, cloud_type: str = CLOUD_TYPE, secondary_cloud_type: str = CLOUD_TYPE): 27 | self.llms = ai.load_models([cloud_type, secondary_cloud_type]) 28 | if len(self.llms) == 0: 29 | raise ValueError("No models loaded") 30 | 31 | def analyze_stock(self, ticker: str) -> dict: 32 | # Create a yfinance Ticker object 33 | stock = yf.Ticker(ticker) 34 | 35 | # Get historical data for the past 30 days 36 | end_date = datetime.now() 37 | start_date = end_date - timedelta(days=30) 38 | hist = stock.history(start=start_date, end=end_date) 39 | 40 | if hist.empty: 41 | return {"error": f"No historical data available for ticker '{ticker}'."} 42 | 43 | # Compute the starting and current (latest) closing prices 44 | start_price = hist["Close"].iloc[0] 45 | current_price = hist["Close"].iloc[-1] 46 | 47 | # Calculate the percentage change over the period 48 | pct_change = ((current_price - start_price) / start_price) * 100 49 | 50 | # Return the analysis results in a dictionary 51 | return { 52 | "ticker": ticker, 53 | "start_price": start_price, 54 | "current_price": current_price, 55 | "pct_change": pct_change 56 | } 57 | 58 | # Define the asynchronous financial analyst function using AutoGen AgentChat. 59 | async def financial_analyst(self, ticker: str) -> str: 60 | model_client = self.llms[0] 61 | analyst_agent = AssistantAgent("FinancialAnalyst", model_client) 62 | 63 | # Use the tool function to fetch stock data and perform basic analysis. 64 | stock_info = self.analyze_stock(ticker) 65 | if "error" in stock_info: 66 | return stock_info["error"] 67 | 68 | # Construct a report message that includes the key figures and plot path. 69 | report = ( 70 | f"Financial Analysis for {stock_info['ticker']}:\n\n" 71 | f"Starting Price (30 days ago): ${stock_info['start_price']:.2f}\n" 72 | f"Current Price: ${stock_info['current_price']:.2f}\n" 73 | f"Percentage Change: {stock_info['pct_change']:.2f}%\n\n" 74 | "Please provide a brief commentary on these figures." 75 | ) 76 | 77 | # Have the agent process the report message (this call may augment or rephrase the analysis). 78 | analysis_response = await analyst_agent.run(task=report) 79 | 80 | result = analysis_response.messages[-1].content 81 | return result 82 | 83 | async def run(self, argument: str = 'NVDA'): 84 | result = await self.financial_analyst(argument) 85 | return result 86 | 87 | def execute(self, argument: str = 'NVDA'): 88 | result = asyncio.run(self.run()) 89 | return result.replace("TERMINATE", "").strip() 90 | 91 | def main(): 92 | m_agent = MAgent() 93 | results = m_agent.execute() 94 | print(results) 95 | 96 | if __name__ == "__main__": 97 | main() 98 | -------------------------------------------------------------------------------- /src/ai/agents/llms/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/src/ai/agents/llms/__init__.py -------------------------------------------------------------------------------- /src/ai/agents/llms/agno.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | from agno.models.azure import AzureOpenAI 5 | from agno.models.openai import OpenAIChat 6 | from agno.models.ollama import Ollama 7 | from agno.models.xai import xAI 8 | from agno.models.deepseek import DeepSeek 9 | 10 | sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..'))) 11 | import file_helper as fh 12 | 13 | def load_model(cloud_type: str): 14 | system = cloud_type.split("+")[0] 15 | model = cloud_type.split("+")[-1] 16 | llm = None 17 | if system.lower() == "azure": 18 | llm = AzureOpenAI( 19 | id = f"{system.lower()}/{model.lower()}", 20 | api_version = os.getenv('AZURE_API_VERSION'), 21 | api_key = os.getenv('AZURE_API_KEY'), 22 | azure_endpoint = os.getenv('AZURE_API_URL'), 23 | azure_deployment = model, 24 | ) 25 | elif system.lower() == "openai": 26 | llm = OpenAIChat( 27 | id = model, 28 | api_key = os.getenv('OPENAI_API_KEY') 29 | ) 30 | elif system.lower() == "ollama": 31 | llm = Ollama( 32 | id = model, 33 | host = os.getenv('OLLAMA_API_URL').replace("/v1/chat/completions", "") 34 | ) 35 | elif system.lower() == "xai": 36 | llm = xAI( 37 | id = model, 38 | api_key = os.getenv('XAI_API_KEY'), 39 | base_url = os.getenv('XAI_API_URL').replace("/chat/completions", "") 40 | ) 41 | elif system.lower() == "deepseek": 42 | llm = DeepSeek( 43 | id = model, 44 | api_key = os.getenv('DEEPSEEK_API_KEY'), 45 | base_url = os.getenv('DEEPSEEK_API_URL').replace("/beta/chat/completions", "") 46 | ) 47 | else: 48 | raise ValueError("Invalid system specified.") 49 | return llm 50 | 51 | def load_models(cloud_types: list[str]): 52 | os.environ["OTEL_SDK_DISABLED"] = "true" 53 | llms = [] 54 | for cloud_type in cloud_types: 55 | system = cloud_type.split("+")[0] 56 | fh.load_env(system) 57 | llms.append(load_model(cloud_type)) 58 | return llms 59 | -------------------------------------------------------------------------------- /src/ai/agents/llms/autogen.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | from autogen_ext.models.openai import OpenAIChatCompletionClient 5 | from autogen_ext.models.openai import AzureOpenAIChatCompletionClient 6 | 7 | sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..'))) 8 | import file_helper as fh 9 | 10 | def load_model(cloud_type: str): 11 | system = cloud_type.split("+")[0] 12 | model = cloud_type.split("+")[-1] 13 | llm = None 14 | if system.lower() == "azure": 15 | llm = AzureOpenAIChatCompletionClient( 16 | azure_deployment = model, 17 | model = model, 18 | api_version = os.getenv('AZURE_API_VERSION'), 19 | azure_endpoint = os.getenv('AZURE_API_URL'), 20 | api_key = os.getenv('AZURE_API_KEY'), 21 | ) 22 | elif system.lower() == "openai": 23 | llm = OpenAIChatCompletionClient( 24 | model = model, 25 | api_key = os.getenv('OPENAI_API_KEY') 26 | ) 27 | elif system.lower() == "ollama": 28 | llm = OpenAIChatCompletionClient( 29 | model = model, 30 | base_url = os.getenv('OLLAMA_API_URL').replace("/chat/completions", ""), 31 | api_key = "placeholder", 32 | model_info = { 33 | "vision": False, 34 | "function_calling": True, 35 | "json_output": False, 36 | "family": "unknown", 37 | }, 38 | ) 39 | elif system.lower() == "xai": 40 | llm = OpenAIChatCompletionClient( 41 | model = model, 42 | base_url = os.getenv('XAI_API_URL').replace("/chat/completions", ""), 43 | api_key = os.getenv('XAI_API_KEY'), 44 | model_info = { 45 | "vision": False, 46 | "function_calling": True, 47 | "json_output": False, 48 | "family": "unknown", 49 | }, 50 | ) 51 | elif system.lower() == "deepseek": 52 | llm = OpenAIChatCompletionClient( 53 | model = model, 54 | base_url = os.getenv('DEEPSEEK_API_URL').replace("/beta/chat/completions", ""), 55 | api_key = os.getenv('DEEPSEEK_API_KEY'), 56 | model_info = { 57 | "vision": False, 58 | "function_calling": True, 59 | "json_output": False, 60 | "family": "unknown", 61 | }, 62 | ) 63 | else: 64 | raise ValueError("Invalid system specified.") 65 | return llm 66 | 67 | def load_models(cloud_types: list[str]): 68 | os.environ["OTEL_SDK_DISABLED"] = "true" 69 | llms = [] 70 | for cloud_type in cloud_types: 71 | system = cloud_type.split("+")[0] 72 | fh.load_env(system) 73 | llms.append(load_model(cloud_type)) 74 | return llms 75 | -------------------------------------------------------------------------------- /src/ai/agents/llms/crewai.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | from crewai import LLM 5 | from langchain.llms import Ollama 6 | 7 | sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..'))) 8 | import file_helper as fh 9 | 10 | def load_model(cloud_type: str): 11 | system = cloud_type.split("+")[0] 12 | model = cloud_type.split("+")[-1] 13 | llm = None 14 | if system.lower() == "azure": 15 | llm = LLM( 16 | model = f"{system.lower()}/{model.lower()}", 17 | api_version = os.getenv('AZURE_API_VERSION'), 18 | api_key = os.getenv('AZURE_API_KEY'), 19 | base_url = os.getenv('AZURE_API_URL') 20 | ) 21 | elif system.lower() == "openai": 22 | llm = LLM( 23 | model = f"{system.lower()}/{model.lower()}", 24 | api_key = os.getenv('OPENAI_API_KEY') 25 | ) 26 | elif system.lower() == "ollama": 27 | llm = LLM( 28 | model = f"{system.lower()}/{model.lower()}", 29 | base_url = os.getenv('OLLAMA_API_URL').replace("/v1/chat/completions", "") 30 | ) 31 | elif system.lower() == "xai": 32 | llm = LLM( 33 | model = f"{system.lower()}/{model.lower()}", 34 | api_key = os.getenv('XAI_API_KEY'), 35 | base_url = os.getenv('XAI_API_URL').replace("/chat/completions", "") 36 | ) 37 | elif system.lower() == "deepseek": 38 | llm = LLM( 39 | model = f"{system.lower()}/{model.lower()}", 40 | api_key = os.getenv('DEEPSEEK_API_KEY'), 41 | base_url = os.getenv('DEEPSEEK_API_URL').replace("/beta/chat/completions", "") 42 | ) 43 | else: 44 | raise ValueError("Invalid system specified.") 45 | return llm 46 | 47 | def load_models(cloud_types: list[str]): 48 | os.environ["OTEL_SDK_DISABLED"] = "true" 49 | llms = [] 50 | for cloud_type in cloud_types: 51 | system = cloud_type.split("+")[0] 52 | fh.load_env(system) 53 | llms.append(load_model(cloud_type)) 54 | return llms 55 | -------------------------------------------------------------------------------- /src/ai/ai_agent.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))) 5 | import ai.ai_llm as ai_llm 6 | 7 | sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) 8 | import file_helper as fh 9 | 10 | def call_agent(agent_file, argument, model, secondary_model): 11 | agent_path = os.path.join(os.path.dirname(__file__), 'agents', agent_file) 12 | if not os.path.exists(agent_path): 13 | raise Exception(f"Error: {agent_file} does not exist.") 14 | module = fh.load_module_from_path(agent_path, "magent") 15 | agent = module.MAgent(model, secondary_model) 16 | result = agent.execute(argument) 17 | 18 | # todo: remove this step - get mermaid from markdown result by calling the LLM model again 19 | mermaid = ai_llm.call_llm_sequence(model=model, prompts_list=["md2mindmap"], input=result, topic_texts=argument) 20 | return mermaid -------------------------------------------------------------------------------- /src/ai/ai_aws.py: -------------------------------------------------------------------------------- 1 | import config_llm as cfg 2 | import json 3 | import boto3 4 | from types import SimpleNamespace 5 | import text_helper 6 | 7 | def call_llm(model, str_user, data, mimeType): 8 | 9 | config = cfg.get_config(model) 10 | 11 | if data != "" and config.MULTIMODAL == False: 12 | raise Exception(f"Error: {config.CLOUD_TYPE} does not support multimodal actions.") 13 | 14 | result = "" 15 | model_id = config.MODEL_ID 16 | str_system = config.SYSTEM_PROMPT 17 | 18 | bedrock_client = boto3.client( 19 | service_name=config.AWS_SERVICE_NAME, 20 | region_name=config.AWS_REGION, 21 | aws_access_key_id=config.AWS_ACCESS_KEY, 22 | aws_secret_access_key=config.AWS_SECRET_KEY 23 | ) 24 | 25 | if model_id.startswith("amazon."): 26 | payload = [{"role": "user", "content": [{"text": str_user}]}] 27 | 28 | response = bedrock_client.converse( 29 | modelId=model_id, 30 | messages=payload, 31 | inferenceConfig={ "maxTokens": config.MAX_TOKENS, "stopSequences":[], "temperature": config.LLM_TEMPERATURE, "topP": 0.9}, 32 | additionalModelRequestFields={} 33 | ) 34 | 35 | parsed_json = response 36 | response_status = parsed_json["ResponseMetadata"]["HTTPStatusCode"] 37 | usage = parsed_json.get("usage", {}) 38 | result = response["output"]["message"]["content"][0]["text"] 39 | result = text_helper.clean_result(result) 40 | 41 | elif model_id.startswith("anthropic."): 42 | payload = { 43 | config.AWS_MODEL_VERSION_KEY: config.AWS_MODEL_VERSION_TEXT, 44 | "max_tokens": config.MAX_TOKENS, 45 | "temperature": config.LLM_TEMPERATURE, 46 | "messages": [ 47 | ] 48 | } 49 | payload["messages"].append({ "role": "user", "content": "Hello, Claude." }) 50 | payload["messages"].append({ "role": "assistant", "content": str_system.replace("You are ", "Hi, I'm Claude, ") }) 51 | payload["messages"].append({ "role": "user", "content": str_user }) 52 | 53 | response = bedrock_client.invoke_model(modelId=model_id, body=json.dumps(payload)) 54 | response_status = response["ResponseMetadata"]["HTTPStatusCode"] 55 | response_text = response["body"].read().decode("utf-8") 56 | if response_status != 200: 57 | raise Exception(f"Error: {response_status} - {response_text}") 58 | 59 | parsed_json = json.loads(response_text) 60 | usage = parsed_json.get("usage", {}) 61 | result = parsed_json["content"][0]["text"] 62 | result = text_helper.clean_result(result) 63 | 64 | elif model_id.startswith("mistral."): 65 | payload = { 66 | "max_tokens": config.MAX_TOKENS, 67 | "temperature": config.LLM_TEMPERATURE, 68 | "messages": [ 69 | ] 70 | } 71 | payload["messages"].append({ "role": "system", "content": str_system }) 72 | payload["messages"].append({ "role": "user", "content": str_user }) 73 | 74 | response = bedrock_client.invoke_model(modelId=model_id, body=json.dumps(payload)) 75 | response_status = response["ResponseMetadata"]["HTTPStatusCode"] 76 | response_text = response["body"].read().decode("utf-8") 77 | if response_status != 200: 78 | raise Exception(f"Error: {response_status} - {response_text}") 79 | 80 | parsed_json = json.loads(response_text) 81 | usage = parsed_json.get("usage", {}) 82 | result = parsed_json["choices"][0]["message"]["content"] 83 | result = text_helper.clean_result(result) 84 | 85 | else: 86 | raise Exception(f"Error: {model_id} not supported.") 87 | 88 | if len(usage) > 0: 89 | print("usage: " + json.dumps(usage)) 90 | 91 | return result 92 | -------------------------------------------------------------------------------- /src/ai/ai_azure_entra.py: -------------------------------------------------------------------------------- 1 | import input_helper 2 | import config_llm as cfg 3 | import config_image as cfg_image 4 | import json 5 | import os 6 | import requests 7 | from openai import AzureOpenAI 8 | from azure.identity import InteractiveBrowserCredential 9 | from datetime import datetime, timedelta 10 | from types import SimpleNamespace 11 | 12 | TOKEN_CACHE_FILE = "token_cache.json" 13 | TOKEN_PROVIDER_NS = "https://cognitiveservices.azure.com/.default" 14 | 15 | # Azure Entra Roles needed: 16 | # - Cognitive Services OpenAI User 17 | # - Cognitive Services OpenAI Contributor 18 | 19 | def load_token_cache(): 20 | if os.path.exists(TOKEN_CACHE_FILE): 21 | with open(TOKEN_CACHE_FILE, "r") as f: 22 | return json.load(f) 23 | return {} 24 | 25 | def save_token_cache(cache): 26 | with open(TOKEN_CACHE_FILE, "w") as f: 27 | json.dump(cache, f) 28 | 29 | class CachedTokenProvider: 30 | def __init__(self, credential, scope): 31 | self._credential = credential 32 | self._scope = scope 33 | self._token_cache = load_token_cache() 34 | 35 | def get_token(self): 36 | # Check if token is cached and not expired 37 | if 'access_token' in self._token_cache: 38 | token_expiry = datetime.fromisoformat(self._token_cache['expires_on']) 39 | if token_expiry > datetime.utcnow(): 40 | return self._token_cache['access_token'] 41 | 42 | # Otherwise, get a new token 43 | token = self._credential.get_token(self._scope) 44 | 45 | # Cache the new token 46 | self._token_cache = { 47 | 'access_token': token.token, 48 | 'expires_on': datetime.utcfromtimestamp(token.expires_on).isoformat() 49 | } 50 | save_token_cache(self._token_cache) 51 | 52 | return token.token 53 | 54 | def call_llm_azure_entra(model, str_user, data, mimeType): 55 | 56 | config = cfg.get_config(model) 57 | 58 | if data != "" and config.MULTIMODAL == False: 59 | raise Exception(f"Error: {config.CLOUD_TYPE} does not support multimodal actions.") 60 | 61 | interactive_browser_credential = InteractiveBrowserCredential() 62 | token_provider = CachedTokenProvider(interactive_browser_credential, TOKEN_PROVIDER_NS) 63 | 64 | client = AzureOpenAI( 65 | azure_endpoint=config.API_URL, 66 | azure_ad_token_provider=token_provider.get_token, 67 | api_version=config.API_VERSION 68 | ) 69 | 70 | str_system = config.SYSTEM_PROMPT 71 | 72 | if data == "": 73 | messages = [ 74 | {"role": "system", "content": str_system}, 75 | {"role": "user", "content": str_user} 76 | ] 77 | elif mimeType == "image/png": 78 | messages = [{"role": "system", "content": str_system}] 79 | number_tokens = 0 80 | for image in data: 81 | number_tokens = number_tokens + input_helper.calculate_image_tokens(image) 82 | if number_tokens > config.MAX_TOKENS: 83 | break 84 | messages.append({ 85 | "role": "user", 86 | "content": [{ 87 | "type": "image_url", 88 | "image_url": { 89 | "url": f"data:image/jpeg;base64,{image}", 90 | "detail": "high" 91 | } 92 | }] 93 | }) 94 | messages.append({ "role": "user", "content": str_user }) 95 | else: 96 | raise Exception(f"Error: {mimeType} not supported by {config.CLOUD_TYPE}") 97 | 98 | response = client.chat.completions.create( 99 | model=config.AZURE_DEPLOYMENT, 100 | temperature=config.LLM_TEMPERATURE, 101 | max_tokens=config.MAX_TOKENS, 102 | messages=messages 103 | ) 104 | result = response.choices[0].message.content.replace("```mermaid", "").replace("```", "").lstrip("\n") 105 | return result 106 | 107 | def call_image_ai(model, str_user, image_paths, n_count = 1): 108 | from PIL import Image 109 | 110 | config = cfg_image.get_image_config(model) 111 | 112 | interactive_browser_credential = InteractiveBrowserCredential() 113 | token_provider = CachedTokenProvider(interactive_browser_credential, TOKEN_PROVIDER_NS) 114 | 115 | client = AzureOpenAI( 116 | azure_endpoint=config.IMAGE_API_URL, 117 | azure_ad_token_provider=token_provider.get_token, 118 | api_version=config.IMAGE_API_VERSION 119 | ) 120 | 121 | response = client.images.generate( 122 | model = config.AZURE_DEPLOYMENT_IMAGE, 123 | prompt = str_user, 124 | n = n_count, 125 | quality = config.IMAGE_QUALITY, 126 | style = config.IMAGE_STYLE, 127 | size = "1024x1024" 128 | ) 129 | 130 | json_response = json.loads(response.model_dump_json()) 131 | 132 | n = 1 133 | for item in json_response["data"]: 134 | image_url = item["url"] 135 | generated_image = requests.get(image_url).content 136 | for image_path in image_paths: 137 | image_path = image_path.replace(".png", f"_{n}.png") if n_count > 1 else image_path 138 | with open(image_path, "wb") as image_file: 139 | image_file.write(generated_image) 140 | 141 | if config.RESIZE_IMAGE: 142 | image = Image.open(image_path) # Assuming PIL or Pillow for image handling 143 | image = image.resize((config.RESIZE_IMAGE_WIDTH, config.RESIZE_IMAGE_HEIGHT)) 144 | image.save(image_path) 145 | n+=1 146 | 147 | return image_paths # path of last generated image 148 | -------------------------------------------------------------------------------- /src/ai/ai_image_mlx.py: -------------------------------------------------------------------------------- 1 | import random 2 | import config_image as cfg 3 | from types import SimpleNamespace 4 | from PIL import Image 5 | 6 | def generate_image(model, prompt, negative_prompt, n_images, outputs, seed): 7 | from mflux import Flux1, Config 8 | 9 | config = cfg.get_image_config(model) 10 | 11 | if "-flux1" in config.IMAGE_MODEL_ID: 12 | flux = Flux1.from_alias( 13 | alias = config.IMAGE_MODEL_VERSION, 14 | quantize = config.IMAGE_MODEL_QUANTIZATION, 15 | ) 16 | for i in range(n_images): 17 | image = flux.generate_image( 18 | seed=seed, 19 | prompt=prompt, 20 | config=Config( 21 | num_inference_steps=config.IMAGE_NUM_STEPS, # "schnell" works well with 2-4 steps, "dev" works well with 20-25 steps 22 | height=config.IMAGE_HEIGHT, 23 | width=config.IMAGE_WIDTH) 24 | ) 25 | seed = random.randint(0, 2**32 - 1) 26 | for i in range(len(outputs)): 27 | outputs[i] = outputs[i].replace(".png", f"_{i}_{seed}.png") 28 | image.save(outputs[i]) 29 | 30 | if n_images > 1 and i < n_images - 1: 31 | pimage = Image.open(outputs[0]) 32 | pimage.show() 33 | return outputs 34 | else: 35 | raise ValueError("Only FLUX model is supported") 36 | -------------------------------------------------------------------------------- /src/ai/ai_translation.py: -------------------------------------------------------------------------------- 1 | import config_translate as cfg 2 | from types import SimpleNamespace 3 | import requests 4 | import json 5 | 6 | def call_translation_ai(text, language): 7 | 8 | config = cfg.get_translation_config() 9 | 10 | if config.CLOUD_TYPE_TRANSLATION != "": 11 | 12 | # DeepL 13 | if "DEEPL" in config.CLOUD_TYPE_TRANSLATION: 14 | 15 | payload = { 16 | "text": [ 17 | text 18 | ], 19 | "target_lang": language, 20 | "preserve_formatting": True, 21 | #"formality": "more" # only supported for source language EN? 22 | } 23 | 24 | response = requests.post( 25 | config.DEEPL_BASE_URL, 26 | headers=config.TRANSLATION_HEADERS, 27 | data=json.dumps(payload) 28 | ) 29 | response_text = response.text 30 | response_status = response.status_code 31 | 32 | if response_status != 200: 33 | raise Exception(f"Error: {response_status} - {response_text}") 34 | 35 | parsed_json = json.loads(response_text) 36 | result = parsed_json['translations'][0]['text'] 37 | 38 | return result 39 | -------------------------------------------------------------------------------- /src/app_gradio.py: -------------------------------------------------------------------------------- 1 | import gradio as gr 2 | import process 3 | 4 | ACTION_MAP = { 5 | "Refine": "refine", 6 | "Refine (Dev)": "refine_dev", 7 | "Examples": "examples", 8 | "Cluster": "cluster", 9 | 10 | "Glossary": "glossary", 11 | "Argumentation": "argumentation", 12 | 13 | "Translate to German": "translate_deepl+DE", 14 | "Translate to English": "translate_deepl+EN", 15 | 16 | "Image": "image", 17 | 18 | "Export markmap": "export_markmap", 19 | "Export mermaid": "export_mermaid", 20 | 21 | "Pdf to mindmap": "pdf_mindmap", 22 | "Pdf to mindmap (via knowledge graph)": "pdf_knowledgegraph", 23 | "Pdf simple (by image)": "pdfsimple_mindmap", 24 | "Import MD": "import_md" 25 | } 26 | 27 | # Placeholder for the external function call 28 | def process_action(user_choice): 29 | real_action = ACTION_MAP[user_choice] 30 | charttype = "auto" 31 | process.main(real_action, charttype) 32 | return f"Executed action: {real_action}" 33 | 34 | def launch_app(): 35 | with gr.Blocks() as demo: 36 | action_dropdown = gr.Dropdown( 37 | label="Choose an action", 38 | choices=list(ACTION_MAP.keys()), 39 | value="Refine" 40 | ) 41 | 42 | output_box = gr.Textbox( 43 | label="Result", 44 | lines=2 45 | ) 46 | 47 | submit_button = gr.Button("Submit") 48 | 49 | submit_button.click( 50 | fn=process_action, 51 | inputs=action_dropdown, 52 | outputs=output_box 53 | ) 54 | 55 | demo.launch() 56 | 57 | if __name__ == "__main__": 58 | launch_app() 59 | -------------------------------------------------------------------------------- /src/config/alibabacloud.env.example: -------------------------------------------------------------------------------- 1 | ALIBABACLOUD_API_KEY= 2 | ALIBABACLOUD_API_URL=https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions 3 | -------------------------------------------------------------------------------- /src/config/anthropic.env.example: -------------------------------------------------------------------------------- 1 | ANTHROPIC_API_KEY= 2 | ANTHROPIC_VERSION=2023-06-01 3 | ANTHROPIC_API_URL=https://api.anthropic.com/v1/messages 4 | -------------------------------------------------------------------------------- /src/config/azure.env.example: -------------------------------------------------------------------------------- 1 | AZURE_API_KEY= 2 | AZURE_API_URL=https://.openai.azure.com/ 3 | AZURE_API_VERSION=2023-05-15 4 | AZURE_ENTRA_AUTH=False 5 | 6 | AZURE_API_KEY_IMAGE= 7 | AZURE_API_URL_IMAGE=https://.openai.azure.com/ 8 | AZURE_API_VERSION_IMAGE=2024-02-01 9 | AZURE_ENTRA_AUTH_IMAGE=False 10 | -------------------------------------------------------------------------------- /src/config/bedrock.env.example: -------------------------------------------------------------------------------- 1 | BEDROCK_ACCESS_KEY= 2 | BEDROCK_SECRET_KEY= -------------------------------------------------------------------------------- /src/config/bfl.env.example: -------------------------------------------------------------------------------- 1 | BFL_API_KEY= 2 | BFL_API_URL=https://api.bfl.ml/v1/ 3 | -------------------------------------------------------------------------------- /src/config/deepl.env.example: -------------------------------------------------------------------------------- 1 | DEEPL_API_KEY= 2 | DEEPL_API_URL=https://api-free.deepl.com/v2/translate 3 | -------------------------------------------------------------------------------- /src/config/deepseek.env.example: -------------------------------------------------------------------------------- 1 | DEEPSEEK_API_KEY= 2 | DEEPSEEK_API_URL=https://api.deepseek.com/beta/chat/completions -------------------------------------------------------------------------------- /src/config/fireworks.env.example: -------------------------------------------------------------------------------- 1 | FIREWORKS_API_KEY= 2 | FIREWORKS_API_URL=https://api.fireworks.ai/inference/v1/chat/completions 3 | -------------------------------------------------------------------------------- /src/config/gemini.env.example: -------------------------------------------------------------------------------- 1 | GEMINI_API_KEY= 2 | GEMINI_API_URL=https://generativelanguage.googleapis.com/v1beta/models/ -------------------------------------------------------------------------------- /src/config/github.env.example: -------------------------------------------------------------------------------- 1 | GITHUB_MODELS_TOKEN= 2 | GITHUB_MODELS_API_URL=https://models.inference.ai.azure.com/chat/completions -------------------------------------------------------------------------------- /src/config/gpt4all.env: -------------------------------------------------------------------------------- 1 | GPT4ALL_MODEL_PATH_WINDOWS=%LOCALAPPDATA%\nomic.ai\GPT4All -------------------------------------------------------------------------------- /src/config/groq.env.example: -------------------------------------------------------------------------------- 1 | GROQ_API_KEY= 2 | GROQ_API_URL=https://api.groq.com/openai/v1/chat/completions -------------------------------------------------------------------------------- /src/config/hf.env.example: -------------------------------------------------------------------------------- 1 | HF_API_KEY= 2 | HF_API_URL=https://api-inference.huggingface.co/models/ 3 | -------------------------------------------------------------------------------- /src/config/ideogramai.env.example: -------------------------------------------------------------------------------- 1 | IDEOGRAMAI_API_KEY= 2 | IDEOGRAMAI_API_URL=https://api.ideogram.ai/generate 3 | IDEOGRAMAI_API_V3_URL=https://api.ideogram.ai/v1/ideogram-v3/generate 4 | -------------------------------------------------------------------------------- /src/config/lmstudio.env: -------------------------------------------------------------------------------- 1 | LMSTUDIO_API_URL=http://localhost:1234/v1/chat/completions -------------------------------------------------------------------------------- /src/config/mistral.env.example: -------------------------------------------------------------------------------- 1 | MISTRAL_API_KEY= 2 | MISTRAL_API_URL=https://api.mistral.ai/v1/chat/completions -------------------------------------------------------------------------------- /src/config/mlx.env: -------------------------------------------------------------------------------- 1 | MLX_API_URL=http://localhost:8080/v1/chat/completions -------------------------------------------------------------------------------- /src/config/ollama.env: -------------------------------------------------------------------------------- 1 | OLLAMA_API_URL=http://localhost:11434/v1/chat/completions -------------------------------------------------------------------------------- /src/config/openai.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | OPENAI_API_URL=https://api.openai.com/v1/chat/completions 3 | 4 | OPENAI_API_KEY_IMAGE= 5 | OPENAI_API_URL_IMAGE=https://api.openai.com/v1/images/generations 6 | -------------------------------------------------------------------------------- /src/config/openrouter.env.example: -------------------------------------------------------------------------------- 1 | OPENROUTER_API_KEY= 2 | OPENROUTER_API_URL=https://openrouter.ai/api/v1/chat/completions -------------------------------------------------------------------------------- /src/config/perplexity.env.example: -------------------------------------------------------------------------------- 1 | PERPLEXITY_API_KEY= 2 | PERPLEXITY_API_URL=https://api.perplexity.ai/chat/completions -------------------------------------------------------------------------------- /src/config/recraftai.env.example: -------------------------------------------------------------------------------- 1 | RECRAFT_API_TOKEN= 2 | RECRAFT_API_URL=https://external.api.recraft.ai/v1/images/generations 3 | -------------------------------------------------------------------------------- /src/config/stabilityai.env.example: -------------------------------------------------------------------------------- 1 | STABILITYAI_API_KEY= 2 | STABILITYAI_API_URL=https://api.stability.ai/v2beta/stable-image/generate/ 3 | -------------------------------------------------------------------------------- /src/config/vertexai.env.example: -------------------------------------------------------------------------------- 1 | GCP_CLIENT_ID= 2 | GCP_CLIENT_SECRET= 3 | 4 | VERTEXAI_ACCESS_TOKEN= 5 | 6 | VERTEXAI_PROJECT_ID= 7 | VERTEXAI_API_ENDPOINT=us-central1-aiplatform.googleapis.com 8 | VERTEXAI_LOCATION_ID=us-central1 9 | 10 | VERTEXAI_PROJECT_ID_IMAGE= 11 | VERTEXAI_API_ENDPOINT_IMAGE=us-central1-aiplatform.googleapis.com 12 | VERTEXAI_LOCATION_ID_IMAGE=us-central1 13 | -------------------------------------------------------------------------------- /src/config/xai.env.example: -------------------------------------------------------------------------------- 1 | XAI_API_KEY= 2 | XAI_API_URL=https://api.x.ai/v1/chat/completions 3 | -------------------------------------------------------------------------------- /src/config_translate.py: -------------------------------------------------------------------------------- 1 | import os 2 | from types import SimpleNamespace 3 | from file_helper import load_env 4 | 5 | CLOUD_TYPE_TRANSLATION = 'DEEPL' 6 | 7 | def get_translation_config(CLOUD_TYPE_TRANSLATION: str = CLOUD_TYPE_TRANSLATION) -> SimpleNamespace: 8 | 9 | config = SimpleNamespace( 10 | CLOUD_TYPE_TRANSLATION=CLOUD_TYPE_TRANSLATION 11 | ) 12 | 13 | config.LOG = True 14 | config.TURBO_MODE = True # just generate text topics 15 | config.TRANSLATION_HEADERS = {"Content-Type": "application/json"} 16 | 17 | load_env(CLOUD_TYPE_TRANSLATION.split("+")[0]) 18 | 19 | if "DEEPL" in CLOUD_TYPE_TRANSLATION: 20 | # config.DEEPL_BASE_URL = "https://api.deepl.com/v2/translate" # paid version 21 | config.DEEPL_BASE_URL = os.getenv('DEEPL_API_URL') # free version 22 | config.TRANSLATION_HEADERS = {**config.TRANSLATION_HEADERS, "Authorization": "DeepL-Auth-Key " + (os.getenv('DEEPL_API_KEY') or "")} 23 | 24 | else: 25 | raise Exception("Error: Unknown CLOUD_TYPE_TRANSLATION") 26 | 27 | return config 28 | -------------------------------------------------------------------------------- /src/constraints_agents.txt: -------------------------------------------------------------------------------- 1 | chroma-hnswlib==999.999.999 -------------------------------------------------------------------------------- /src/file_helper.py: -------------------------------------------------------------------------------- 1 | import re 2 | import os 3 | import sys 4 | 5 | from dotenv import load_dotenv 6 | from importlib import import_module 7 | import importlib.util as import_util 8 | 9 | MARKMAP_TEMPLATE = """ 10 |
11 | 19 |
20 | """ 21 | 22 | MERMAID_TEMPLATE= """ 23 |
24 | %%{init: {"theme": "dark"}}%% 25 | {{mermaid}} 26 |
27 | """ 28 | 29 | 30 | if sys.platform.startswith('win'): 31 | platform = "win" 32 | elif sys.platform.startswith('darwin'): 33 | platform = "darwin" 34 | 35 | def sanitize_folder_name(folder_name): 36 | folder_name = re.sub(r'[<>:"/\\|?*]', '', folder_name) 37 | folder_name = folder_name.strip('. ') 38 | folder_name = re.sub(r'[ .]', '_', folder_name) 39 | if not folder_name: 40 | folder_name = "unnamed_folder" 41 | folder_name = folder_name[:255] 42 | reserved_names = ["CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9"] 43 | if folder_name.upper() in reserved_names: 44 | folder_name = "_" + folder_name 45 | return folder_name 46 | 47 | def create_folder_if_not_exists(root_path, central_topic_text): 48 | folder_path = os.path.join(root_path, f"⚡️{sanitize_folder_name(central_topic_text)}") 49 | if not os.path.exists(folder_path): os.makedirs(folder_path) 50 | return folder_path 51 | 52 | def open_file(file_path, platform): 53 | if platform == "darwin": 54 | os.system(f"open {file_path}") 55 | if platform == "win": 56 | import subprocess 57 | subprocess.Popen(f'cmd /k start explorer.exe "{file_path}"', shell=False) 58 | 59 | def get_new_file_paths(folder_name, guid): 60 | doc_folder_path = os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), folder_name) 61 | if not os.path.exists(doc_folder_path): os.makedirs(doc_folder_path) 62 | file_name = f"{guid}.html" 63 | file_path = os.path.join(doc_folder_path, file_name) 64 | return file_path 65 | 66 | def generate_glossary_html(content, guid): 67 | file_path = get_new_file_paths("docs", guid) 68 | try: 69 | import markdown 70 | html_fragment = markdown.markdown(content) 71 | except Exception as e: 72 | with open(file_path + ".error", 'w') as f: 73 | f.write(f'caught {str(e)}: e') 74 | raise 75 | template = get_template_content("glossary.html") 76 | html = template.replace("{{title}}", "Glossary").replace("{{body}}", html_fragment.replace("", "
")) 77 | with open(file_path, 'w') as f: 78 | f.write(html) 79 | open_file(file_path, platform) 80 | 81 | def generate_argumentation_html(content, guid): 82 | file_path = get_new_file_paths("docs", guid) 83 | try: 84 | import markdown 85 | html_fragment = markdown.markdown(content) 86 | except Exception as e: 87 | with open(file_path + ".error", 'w') as f: 88 | f.write(f'caught {str(e)}: e') 89 | raise 90 | template = get_template_content("argumentation.html") 91 | html = template.replace("{{title}}", "Notes").replace("{{body}}", html_fragment.replace("", "
")) 92 | with open(file_path, 'w') as f: 93 | f.write(html) 94 | open_file(file_path, platform) 95 | 96 | def generate_markmap_html(content, max_topic_level, guid): 97 | file_path = get_new_file_paths("docs", guid) 98 | this_content = MARKMAP_TEMPLATE.replace("{{colorFreezeLevel}}", str(max_topic_level)).replace("{{markmap}}", content) 99 | template = get_template_content("markmap.html") 100 | html = template.replace("{{body}}", this_content).replace("{{title}}", "Markmap") 101 | with open(file_path, 'w') as f: 102 | f.write(html) 103 | open_file(file_path, platform) 104 | 105 | def generate_mermaid_html(content, max_topic_level, guid, do_open_file = True): 106 | file_path = get_new_file_paths("docs", guid) 107 | this_content = MERMAID_TEMPLATE.replace("{{mermaid}}", content) 108 | template = get_template_content("mermaid.html") 109 | html = template.replace("{{body}}", this_content).replace("{{title}}", "Mermaid") 110 | with open(file_path, 'w') as f: 111 | f.write(html) 112 | if do_open_file: 113 | open_file(file_path, platform) 114 | 115 | def get_template_content(template_name): 116 | templates_folder_path = os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "templates") 117 | with open(os.path.join(templates_folder_path, template_name), 'r') as f: 118 | template = f.read() 119 | return template 120 | 121 | def log_input_output(input, output, prompt): 122 | try: 123 | folder_path = os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "log") 124 | if not os.path.exists(folder_path): os.makedirs(folder_path) 125 | with open(folder_path + "/input.txt", "w", encoding='utf-8', errors='ignore') as file: 126 | file.write(input) 127 | with open(folder_path + "/output.txt", "w", encoding='utf-8') as file: 128 | file.write(output) 129 | with open(folder_path + "/prompt.txt", "w", encoding='utf-8') as file: 130 | file.write(prompt) 131 | except Exception as e: 132 | print(f"Error writing log files: {str(e)}") 133 | 134 | def get_image_file_paths(library_folder, top_most_topic, guid): 135 | folder_path_images = create_folder_if_not_exists(root_path=os.path.join(library_folder, "Images"), central_topic_text=top_most_topic) 136 | folder_path_background_images = create_folder_if_not_exists(root_path=os.path.join(library_folder, "Background Images"), central_topic_text=top_most_topic) 137 | file_name = f"{guid}.png" 138 | file_paths = [os.path.join(folder_path_images, file_name), os.path.join(folder_path_background_images, file_name)] 139 | return file_paths 140 | 141 | def load_env(env_name: str): 142 | env_path = os.path.join(os.path.dirname(__file__), 'config', f"{env_name.lower()}.env") 143 | if os.path.exists(env_path): 144 | load_dotenv(dotenv_path=env_path, override=True) 145 | 146 | def load_class(module_name, class_name): 147 | mod = import_module(module_name) 148 | cls = getattr(mod, class_name) 149 | return cls 150 | 151 | def load_module_from_path(path, name): 152 | spec = import_util.spec_from_file_location(name, path) 153 | module = import_util.module_from_spec(spec) 154 | sys.modules[name] = module 155 | spec.loader.exec_module(module) 156 | return module -------------------------------------------------------------------------------- /src/input_helper.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pymupdf4llm 4 | import pymupdf 5 | import pathlib 6 | import text_helper 7 | import base64 8 | from math import ceil 9 | from PIL import Image 10 | import io 11 | 12 | def load_pdf_files(optimization_level=2, as_images=False, as_images_dpi=200, mime_type="image/png", as_base64=False): 13 | docs = {} 14 | input_folder_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "input"), "pdf") 15 | if os.path.exists(input_folder_path): 16 | for root, dirs, files in os.walk(input_folder_path): 17 | for filename in files: 18 | if filename.endswith('.pdf'): 19 | input_file_path = os.path.join(root, filename) 20 | 21 | if not as_images: 22 | output_file_path = input_file_path.lower().replace(".pdf", ".md") 23 | if not os.path.exists(output_file_path): 24 | doc = pymupdf4llm.to_markdown(input_file_path) #, page_chunks=True) 25 | extract_and_optimize(optimization_level, output_file_path, doc) 26 | if as_base64: 27 | docs[filename] = load_file_as_base64(output_file_path) 28 | else: 29 | with open(output_file_path, 'r') as file: 30 | docs[filename] = file.read() 31 | else: 32 | images = [] 33 | for page in pymupdf.open(input_file_path): 34 | pix = page.get_pixmap(dpi=as_images_dpi) 35 | output_file_path = input_file_path.lower().replace(".pdf", ("-page-%i.png" % page.number)) 36 | if not os.path.exists(output_file_path): 37 | pix.save(output_file_path) 38 | if as_base64: 39 | images.append(load_file_as_base64(output_file_path)) 40 | else: 41 | with open(output_file_path, 'rb') as file: 42 | images.append(file.read()) 43 | docs[filename] = images 44 | return docs 45 | 46 | def extract_and_optimize(optimization_level, output_file_path, md_text): 47 | token_count = text_helper.num_tokens_from_string(md_text, "cl100k_base") 48 | if optimization_level > 0: 49 | pathlib.Path(output_file_path.replace(".md", "_original.md")).write_bytes(md_text.encode()) 50 | 51 | if optimization_level > 0: 52 | md_text = text_helper.remove_section(md_text, "Introduction") 53 | md_text = text_helper.remove_section(md_text, "Conclusion") 54 | md_text = text_helper.remove_section(md_text, "References") 55 | 56 | if optimization_level > 1: 57 | md_text = text_helper.cleanse_markdown(md_text, optimization_level) 58 | 59 | pathlib.Path(output_file_path).write_bytes(md_text.encode()) 60 | 61 | token_count_cleaned = text_helper.num_tokens_from_string(md_text, "cl100k_base") 62 | print(f"Token count: {token_count} -> {token_count_cleaned} @ level {optimization_level}") 63 | else: 64 | pathlib.Path(output_file_path).write_bytes(md_text.encode()) 65 | 66 | def load_pdfsimple_files(): 67 | docs_base64 = {} 68 | input_folder_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "input"), "pdf") 69 | if os.path.exists(input_folder_path): 70 | for root, dirs, files in os.walk(input_folder_path): 71 | for filename in files: 72 | if filename.endswith('.pdf'): 73 | input_file_path = os.path.join(root, filename) 74 | docs_base64[filename] = load_file_as_base64(input_file_path) 75 | return docs_base64 76 | 77 | def load_file_as_base64(file_path): 78 | if os.path.exists(file_path): 79 | with open(file_path, 'rb') as file: 80 | binary_data = file.read() 81 | base64_encoded = base64.b64encode(binary_data) 82 | base64_string = base64_encoded.decode('utf-8') 83 | return base64_string 84 | 85 | def load_text_files(format="md"): 86 | md_texts = {} 87 | input_folder_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "input"), format) 88 | if os.path.exists(input_folder_path): 89 | for root, dirs, files in os.walk(input_folder_path): 90 | for filename in files: 91 | if filename.endswith("." + format): 92 | input_file_path = os.path.join(root, filename) 93 | with open(input_file_path, 'r') as file: 94 | md_texts[filename] = file.read() 95 | return md_texts 96 | 97 | def calculate_image_tokens(base64_image: str) -> int: 98 | image_data = base64.b64decode(base64_image) 99 | image = Image.open(io.BytesIO(image_data)) 100 | width, height = image.size 101 | 102 | if width > 2048 or height > 2048: 103 | aspect_ratio = width / height 104 | if aspect_ratio > 1: 105 | width, height = 2048, int(2048 / aspect_ratio) 106 | else: 107 | width, height = int(2048 * aspect_ratio), 2048 108 | 109 | if width >= height and height > 768: 110 | width, height = int((768 / height) * width), 768 111 | elif height > width and width > 768: 112 | width, height = 768, int((768 / width) * height) 113 | 114 | tiles_width = ceil(width / 512) 115 | tiles_height = ceil(height / 512) 116 | 117 | total_tokens = 85 + 170 * (tiles_width * tiles_height) 118 | return total_tokens 119 | -------------------------------------------------------------------------------- /src/mermaid/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robertZaufall/mindmanager_ai/e018469aac9986b736877484df271529f43e1940/src/mermaid/__init__.py -------------------------------------------------------------------------------- /src/mermaid/mermaid_helper.py: -------------------------------------------------------------------------------- 1 | import re 2 | import os 3 | import sys 4 | 5 | sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) 6 | from mindmap.mindmap import MindmapTopic 7 | 8 | INDENT_SIZE = 2 9 | LINE_SEPARATOR = "\n" 10 | 11 | line_separator = LINE_SEPARATOR 12 | indent_size = INDENT_SIZE 13 | use_round = False 14 | use_root = True 15 | 16 | class MermaidTopic: 17 | def __init__(self, text='', level=0): 18 | self.text = text 19 | self.level = level 20 | 21 | class MermaidMindmap: 22 | def __init__(self, mermaid_mindmap: str=''): 23 | self.mermaid_mindmap = mermaid_mindmap 24 | 25 | if self.mermaid_mindmap: 26 | if validate_mermaid(mermaid_mindmap): 27 | raise ValueError("The Mermaid mindmap is not valid.") 28 | self.mermaid_topics: list['MermaidTopic'] = self.parse_mermaid(mermaid_mindmap) 29 | self.max_topic_level: int = max(topic.level for topic in self.mermaid_topics) 30 | else: 31 | self.mermaid_topics = [] 32 | self.max_topic_level = 0 33 | 34 | def parse_mermaid(self, mermaid): 35 | mermaid_topics = [] 36 | mermaid_lines_array = mermaid.split(line_separator) 37 | if len(mermaid_lines_array) > 1: 38 | for mermaid_line in mermaid_lines_array[1:]: 39 | if mermaid_line.strip(): 40 | indent_level = (len(mermaid_line) - len(mermaid_line.lstrip())) // indent_size 41 | mermaid_topic = MermaidTopic(mermaid_line.strip(), indent_level - 1) 42 | mermaid_topics.append(mermaid_topic) 43 | return mermaid_topics 44 | 45 | def export_to_markmap(self): 46 | max_topic_level = 1 47 | lines = self.mermaid_mindmap.split(line_separator) 48 | for i in range(1, len(lines)): 49 | level = (len(lines[i]) - len(lines[i].lstrip())) // indent_size 50 | if level > max_topic_level: 51 | max_topic_level = level 52 | if i < len(lines) - 1: 53 | next_level = (len(lines[i+1]) - len(lines[i+1].lstrip())) // indent_size 54 | if next_level > level: 55 | lines[i] = "#" * int(level) + " " + lines[i].lstrip() 56 | else: 57 | lines[i] = "- " + lines[i].lstrip() 58 | else: 59 | lines[i] = "#" * int(level) + " " + lines[i].lstrip() 60 | return line_separator.join(lines[1:]), max_topic_level - 1 61 | 62 | def export_to_mermaid(self, replacements=True): 63 | mermaid = self.mermaid_mindmap 64 | if replacements: 65 | mermaid = mermaid \ 66 | .replace("(", "#40;").replace(")", "#41;") \ 67 | .replace("{", "#123;").replace("}", "#125;") \ 68 | .replace("[", "#91;").replace("]", "#93;") 69 | max_topic_level = 1 70 | lines = mermaid.split(line_separator) 71 | for i in range(1, len(lines)): 72 | level = (len(lines[i]) - len(lines[i].lstrip())) // indent_size 73 | if level > max_topic_level: 74 | max_topic_level = level 75 | if i < len(lines) - 1: 76 | next_level = (len(lines[i+1]) - len(lines[i+1].lstrip())) // indent_size 77 | if next_level > level: 78 | lines[i] = " " * indent_size * int(level) + "(" + lines[i].lstrip() + ")" 79 | else: 80 | lines[i] = " " * indent_size * int(level) + lines[i].lstrip() 81 | else: 82 | if len(lines[i].strip()) > 0: 83 | lines[i] = " " * indent_size * int(level) + "(" + lines[i].lstrip() + ")" 84 | return line_separator.join(lines), max_topic_level - 1 85 | 86 | def create_mindmap_from_mermaid(self) -> MindmapTopic: 87 | mindmap_nodes = [MindmapTopic(text=mt.text, level=mt.level) for mt in self.mermaid_topics] 88 | root = mindmap_nodes[0] 89 | for i in range(1, len(mindmap_nodes)): 90 | curr_node = mindmap_nodes[i] 91 | prev_node = mindmap_nodes[i - 1] 92 | if curr_node.level > prev_node.level: 93 | curr_node.parent = prev_node 94 | prev_node.subtopics.append(curr_node) 95 | elif curr_node.level == prev_node.level: 96 | parent = prev_node.parent 97 | curr_node.parent = parent 98 | if parent: 99 | parent.subtopics.append(curr_node) 100 | else: 101 | target_level = curr_node.level - 1 102 | j = i - 1 103 | while j >= 0 and mindmap_nodes[j].level != target_level: 104 | j -= 1 105 | if j >= 0: 106 | parent = mindmap_nodes[j] 107 | curr_node.parent = parent 108 | parent.subtopics.append(curr_node) 109 | return root 110 | 111 | def get_root(): return "root" if use_root and use_round else "" 112 | def get_left_round(): return "(" if use_round else "" 113 | def get_right_round(): return ")" if use_round else "" 114 | def get_space_string(level): return ' ' * level * indent_size 115 | 116 | def validate_mermaid(mermaid_mindmap): 117 | pattern_text = r"^(?:\s{" + str(indent_size) + r"})*\S.*" 118 | pattern = re.compile(pattern_text, re.MULTILINE) 119 | matches = pattern.findall(mermaid_mindmap) 120 | non_empty_lines = [line for line in mermaid_mindmap.split(line_separator) if line.strip() and not line.strip().startswith('//')] 121 | if len(matches) == len(non_empty_lines): 122 | return False # All lines match the pattern 123 | else: 124 | return True # Some lines do not match the pattern 125 | 126 | def get_mermaid_from_mindmap(mindmap): 127 | 128 | def get_mermaid_line(level, topic): 129 | if level == 0: 130 | return ( 131 | f"mindmap{line_separator}" 132 | f"{get_space_string(1)}{get_root()}{get_left_round()}{topic}{get_right_round()}{line_separator}" 133 | ) 134 | if level > 1: 135 | return f"{get_space_string(level)}{get_left_round()}{topic}{get_right_round()}{line_separator}" 136 | 137 | def recurse_topics(mermaid_mindmap, this_topic, level): 138 | this_topic_text = this_topic.text 139 | if level == 0: 140 | top_level = get_mermaid_line(0, this_topic_text) 141 | mermaid_mindmap = recurse_topics(top_level, this_topic, 1) 142 | return mermaid_mindmap 143 | if level > 1: 144 | mermaid_mindmap += get_mermaid_line(level, this_topic_text) 145 | for child_topic in this_topic.subtopics: 146 | mermaid_mindmap = recurse_topics(mermaid_mindmap, child_topic, level + 1) 147 | return mermaid_mindmap 148 | return recurse_topics("", mindmap, 0) 149 | -------------------------------------------------------------------------------- /src/requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | httpx 3 | regex 4 | markdown 5 | markdown-it-py 6 | Pillow 7 | tiktoken 8 | pymupdf4llm 9 | gpt4all 10 | sv_ttk 11 | ollama 12 | python-dotenv 13 | nltk 14 | mindm -------------------------------------------------------------------------------- /src/requirements_agents.txt: -------------------------------------------------------------------------------- 1 | openai 2 | duckduckgo-search 3 | yfinance 4 | langchain 5 | langchain-community 6 | agno 7 | autogen-core 8 | autogen-agentchat 9 | autogen-ext[openai,azure] -------------------------------------------------------------------------------- /src/requirements_auth.txt: -------------------------------------------------------------------------------- 1 | openai 2 | azure.identity 3 | google-auth 4 | google-auth-oauthlib 5 | google-auth-httplib2 6 | google-api-python-client 7 | google-cloud-aiplatform 8 | google-auth -------------------------------------------------------------------------------- /src/requirements_auth_aws.txt: -------------------------------------------------------------------------------- 1 | boto3 2 | -------------------------------------------------------------------------------- /src/requirements_mac_mlx.txt: -------------------------------------------------------------------------------- 1 | mlx>=0.11 2 | mlx-lm 3 | mlxserver 4 | huggingface-hub 5 | numpy 6 | tqdm 7 | torch==2.3.1 8 | torchaudio==2.3.1 9 | torchvision==0.18.1 10 | mflux 11 | 12 | -------------------------------------------------------------------------------- /src/templates/argumentation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{title}} 5 | 9 | 10 | 11 | {{body}} 12 | 13 | -------------------------------------------------------------------------------- /src/templates/glossary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{title}} 5 | 11 | 12 | {{body}} 13 | 14 | -------------------------------------------------------------------------------- /src/templates/markmap.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{title}} 5 | 8 | 9 | 10 | {{body}} 11 | 12 | -------------------------------------------------------------------------------- /src/templates/mermaid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{title}} 5 | 8 | 9 | 10 | 11 | {{body}} 12 | 13 | -------------------------------------------------------------------------------- /src/text_helper.py: -------------------------------------------------------------------------------- 1 | import tiktoken 2 | import markdown_it 3 | import re 4 | import nltk 5 | from nltk.corpus import stopwords 6 | from nltk.tokenize import word_tokenize, sent_tokenize 7 | from nltk.stem import SnowballStemmer 8 | import string 9 | import heapq 10 | 11 | def num_tokens_from_string(string: str, encoding_name: str) -> int: 12 | encoding = tiktoken.get_encoding(encoding_name) 13 | num_tokens = len(encoding.encode(string)) 14 | return num_tokens 15 | 16 | def remove_section(markdown_content, section_title): 17 | escaped_title = re.escape(section_title) 18 | pattern = rf'(?:^|\n)(?P#{1,3}|\*\*)\s*{escaped_title}\s*(\*\*)?\n(.*?)(?=\n((?P=level)#|\*\*)|\Z)' 19 | cleaned_content = re.sub(pattern, '', markdown_content, flags=re.DOTALL | re.MULTILINE) 20 | cleaned_content = cleaned_content.rstrip() + '\n' 21 | return cleaned_content 22 | 23 | def guess_language(text): 24 | sample_text = text[:1000].lower() 25 | tokens = word_tokenize(sample_text) 26 | supported_languages = {lang for lang in SnowballStemmer.languages if lang != "porter"} 27 | available_languages = [lang for lang in stopwords.fileids() if lang in supported_languages] 28 | stopword_counts = {} 29 | for lang in available_languages: 30 | sw = set(stopwords.words(lang)) 31 | count = sum(1 for token in tokens if token in sw) 32 | stopword_counts[lang] = count 33 | max_count = max(stopword_counts.values(), default=0) 34 | candidate_languages = [lang for lang, count in stopword_counts.items() if count == max_count] 35 | if not candidate_languages: 36 | return "unknown" 37 | priority = [lang for lang in SnowballStemmer.languages if lang != "porter"] 38 | for lang in priority: 39 | if lang in candidate_languages: 40 | return lang 41 | return candidate_languages[0] 42 | 43 | def nltk_summarize(text, language='english', reduction_ratio=0.5): 44 | sentences = sent_tokenize(text) 45 | if len(sentences) < 2: 46 | return text 47 | stop_words = set(stopwords.words(language)) 48 | words = word_tokenize(text.lower()) 49 | freq_table = {} 50 | for word in words: 51 | if word in stop_words or word in string.punctuation: 52 | continue 53 | freq_table[word] = freq_table.get(word, 0) + 1 54 | sentence_scores = {} 55 | for sentence in sentences: 56 | sentence_words = word_tokenize(sentence.lower()) 57 | sentence_length = len(sentence_words) 58 | for word in sentence_words: 59 | if word in freq_table: 60 | sentence_scores[sentence] = sentence_scores.get(sentence, 0) + freq_table[word] 61 | if sentence in sentence_scores and sentence_length > 0: 62 | sentence_scores[sentence] /= sentence_length 63 | num_sentences = max(1, int(len(sentences) * reduction_ratio)) 64 | summary_sentences = heapq.nlargest(num_sentences, sentence_scores, key=sentence_scores.get) 65 | summary_sentences = [sentence for sentence in sentences if sentence in summary_sentences] 66 | return " ".join(summary_sentences) 67 | 68 | def summarize_and_stem(text, language='english', reduction_ratio=0.5): 69 | summary = nltk_summarize(text, language, reduction_ratio) 70 | sentences = sent_tokenize(summary) 71 | stemmed_sentences = [] 72 | for i, sentence in enumerate(sentences): 73 | tokens = word_tokenize(sentence) 74 | tokens = [token for token in tokens if token not in string.punctuation] 75 | stemmer = SnowballStemmer(language.lower()) 76 | stemmed_tokens = [stemmer.stem(token) for token in tokens] 77 | stemmed_sentences.append(" ".join(stemmed_tokens)) 78 | result = ". ".join([s.strip() for s in stemmed_sentences]) + "." 79 | return result.strip() 80 | 81 | def cleanse_markdown(markdown_text, optimization_level = 1): 82 | def clean_line(line): 83 | # Remove special characters (except #, -, *, and .) 84 | line = re.sub(r'[^\w\s#\-*.]', '', line) 85 | 86 | # Convert to lowercase 87 | line = line.lower() 88 | 89 | # Remove common stop words (expand this list as needed) 90 | stop_words = set(['the', 'a', 'an', 'in', 'on', 'at', 'to', 'for', 'of', 'and', 'or', 'but']) 91 | words = line.split() 92 | line = ' '.join([word for word in words if word not in stop_words]) 93 | 94 | # Remove URLs 95 | line = re.sub(r'http\S+', '', line) 96 | 97 | # Remove extra spaces 98 | line = ' '.join(line.split()) 99 | 100 | return line 101 | 102 | # Remove code blocks 103 | markdown_text = re.sub(r'```[\s\S]*?```', '', markdown_text) 104 | 105 | # Remove tables 106 | markdown_text = re.sub(r'\|.*\|', '', markdown_text) # Remove table rows 107 | markdown_text = re.sub(r'^\s*[-:]+\s*\|', '', markdown_text, flags=re.MULTILINE) # Remove table headers 108 | 109 | # Split the markdown into lines 110 | lines = markdown_text.split('\n') 111 | 112 | # Clean each line while preserving structure 113 | cleaned_lines = [] 114 | for line in lines: 115 | if line.strip() and not line.strip().startswith('|'): # Additional check to remove any remaining table lines 116 | cleaned_lines.append(clean_line(line)) 117 | 118 | # Join the cleaned lines back together 119 | result = '\n'.join(cleaned_lines) 120 | 121 | if optimization_level > 1: 122 | nltk.download('punkt') 123 | nltk.download('stopwords') 124 | nltk.download('punkt_tab') 125 | language = guess_language(result) 126 | result = summarize_and_stem(result, language=language, reduction_ratio=0.75) 127 | 128 | return result 129 | 130 | def cleanse_title(text): 131 | return text.replace(".pdf", "").replace(".md", "").replace("_", " ").replace("-", " ") 132 | 133 | def clean_result(input): 134 | result = input \ 135 | .replace("```mermaid", "") \ 136 | .replace("Here is the refined mindmap:\n\n", "") \ 137 | .replace("Here is the refined mind map:\n\n", "") \ 138 | .replace("Here is the refined mindmap data:", "") \ 139 | .replace("Here is the refined mindmap in Mermaid syntax:", "") \ 140 | .replace("Here is the refined mind map in Mermaid syntax:", "") \ 141 | .replace("Here is the mindmap in Mermaid syntax based on the summary:", "") \ 142 | .replace("mermaid mindmap\n", "") \ 143 | .replace("mermaid\n", "") \ 144 | .replace("2 space", "") \ 145 | .replace("```", "") \ 146 | .lstrip("\n") \ 147 | .lstrip() 148 | 149 | lines = result.split("\n") 150 | if lines[0].startswith(" "): 151 | result = "\n".join(line[2:] for line in lines) 152 | return result.lstrip("\n").lstrip() 153 | -------------------------------------------------------------------------------- /windows/capex_opex.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "capex_opex" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/cluster.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "cluster" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/complexity_1.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "complexity_1" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/complexity_2.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "complexity_2" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/complexity_3.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "complexity_3" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/examples.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "examples" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/exp.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "exp" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/exp_prj_prc_org.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "exp_prj_prc_org" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/generate_glossary.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "glossary" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/generate_image.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "image" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/install.bat: -------------------------------------------------------------------------------- 1 | choco install python3 2 | 3 | pip install -r .\..\src\requirements.txt 4 | pip install -r .\..\src\requirements_win.txt 5 | pip install -r .\..\src\requirements_auth.txt 6 | 7 | powershell -ExecutionPolicy Bypass -File .\macro_registration.ps1 8 | pause 9 | -------------------------------------------------------------------------------- /windows/macro_registration.ps1: -------------------------------------------------------------------------------- 1 | $mindManagerVersion = $null 2 | 3 | if (Test-Path "HKCU:\Software\Mindjet\MindManager\23\AddIns") { 4 | $mindManagerVersion = "23" 5 | } 6 | elseif (Test-Path "HKCU:\Software\Mindjet\MindManager\24\AddIns") { 7 | $mindManagerVersion = "24" 8 | } 9 | elseif (Test-Path "HKCU:\Software\Mindjet\MindManager\25\AddIns") { 10 | $mindManagerVersion = "25" 11 | } 12 | elseif (Test-Path "HKCU:\Software\Mindjet\MindManager\26\AddIns") { 13 | $mindManagerVersion = "26" 14 | } 15 | 16 | if ($null -eq $mindManagerVersion) { 17 | Write-Output "No MindManager version registry keys found." 18 | exit 1 19 | } 20 | else { 21 | Write-Output "Using MindManager version $mindManagerVersion." 22 | } 23 | 24 | $localAppDataPath = [System.Environment]::GetFolderPath('LocalApplicationData') 25 | $baseRegistryPath = "HKCU:\Software\Mindjet\MindManager\$mindManagerVersion\Macro" 26 | $appMacrosPath = (Join-Path $localAppDataPath "Mindjet\MindManager\$mindManagerVersion\macros\windows") 27 | 28 | # Define the macros with their respective GUIDs, names, and file paths 29 | $macros = @( 30 | @{ GUID = "{04d9db3e-16b7-4bd8-aa47-00ebfabb2693}"; Name = "Translate to EN"; Path = "translate_en.mmbas" }, 31 | @{ GUID = "{056ff458-4156-48c0-a051-0510da9aa1aa}"; Name = "Translate to DE"; Path = "translate_de.mmbas" }, 32 | @{ GUID = "{07815d9b-2bd4-4dee-acee-15908829985f}"; Name = "Cluster"; Path = "cluster.mmbas" }, 33 | @{ GUID = "{1ca2390b-fbfe-4bb5-b526-6b3deadf2ba3}"; Name = "Examples"; Path = "examples.mmbas" }, 34 | @{ GUID = "{2472b281-2c60-4b2a-9ee0-8b360678fcfd}"; Name = "Refine"; Path = "refine.mmbas" }, 35 | @{ GUID = "{24cb6b18-fcb3-4b01-afab-614c1738d507}"; Name = "Refine Development"; Path = "refine_dev.mmbas" }, 36 | @{ GUID = "{3f7f8343-ab71-45d3-8abf-c687f61dc7ec}"; Name = "CAPEX_OPEX"; Path = "capex_opex.mmbas" }, 37 | @{ GUID = "{45e93099-cb4e-41e7-8698-2e36d3954dde}"; Name = "Expertise"; Path = "exp.mmbas" }, 38 | @{ GUID = "{4aed2571-e766-432a-b08e-81ffb94b7e8b}"; Name = "Project_Organization"; Path = "prj_org.mmbas" }, 39 | @{ GUID = "{559A2618-399D-4D21-B96E-5919F83F1C4C}"; Name = "Process_Organization"; Path = "prc_org.mmbas" }, 40 | @{ GUID = "{6591ca0c-3410-48a8-a00a-d6d1ee3c51a1}"; Name = "Project_Process_Organization"; Path = "prj_prc_org.mmbas" }, 41 | @{ GUID = "{6fd5b0b5-c373-4c6b-9793-2b10d8442ca7}"; Name = "Expertise_Project_Process_Organization"; Path = "exp_prj_prc_org.mmbas" }, 42 | @{ GUID = "{8133688c-2aa4-4faa-ab9c-07b8cde5d5bf}"; Name = "Complexity_1"; Path = "complexity_1.mmbas" }, 43 | @{ GUID = "{875aed98-dd01-4667-a3ef-2a87d3fb00b7}"; Name = "Complexity_2"; Path = "complexity_2.mmbas" }, 44 | @{ GUID = "{e53fe7fc-645d-437a-a8c2-92226dfb5a65}"; Name = "Complexity_3"; Path = "complexity_3.mmbas" }, 45 | @{ GUID = "{e9e5ac24-228c-46e0-867b-9df3bb2c372a}"; Name = "Generate Image"; Path = "generate_image.mmbas" } , 46 | @{ GUID = "{eca7391c-87c7-4ba2-be26-5ce7db82f457}"; Name = "Generate Glossary"; Path = "generate_glossary.mmbas" } 47 | ) 48 | 49 | # Loop through each macro and process it 50 | foreach ($macro in $macros) { 51 | # Construct the full registry path for the current macro 52 | $registryPath = Join-Path $baseRegistryPath $macro.GUID 53 | 54 | # Check if the registry key exists and delete it if it does 55 | if (Test-Path $registryPath) { 56 | Remove-Item -Path $registryPath -Recurse 57 | } 58 | 59 | # Create the registry key 60 | New-Item -Path $registryPath -Force 61 | 62 | # Set the required registry values 63 | Set-ItemProperty -Path $registryPath -Name "Name" -Value $macro.Name 64 | Set-ItemProperty -Path $registryPath -Name "Path" -Value (Join-Path $appMacrosPath $macro.Path) 65 | Set-ItemProperty -Path $registryPath -Name "Description" -Value "" 66 | Set-ItemProperty -Path $registryPath -Name "Menu" -Value 17 # 0x11 in hexadecimal 67 | 68 | # Update version references inside the .mmbas file 69 | $filePath = Join-Path $appMacrosPath $macro.Path 70 | if (Test-Path $filePath) { 71 | $fileContent = Get-Content $filePath -Raw 72 | # Replace any existing digit(s) after 'MindManager\' with the configured version 73 | $updatedContent = $fileContent -replace '(?<=MindManager\\)\d+', $mindManagerVersion 74 | 75 | # Trim trailing newlines 76 | $updatedContent = $updatedContent.TrimEnd("`r","`n") 77 | 78 | # Write back without adding extra newlines 79 | [System.IO.File]::WriteAllText($filePath, $updatedContent, [System.Text.Encoding]::UTF8) 80 | } 81 | } 82 | 83 | Write-Output "Registry keys have been successfully created or updated." 84 | -------------------------------------------------------------------------------- /windows/prc_org.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "prc_org" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/prj_org.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "prj_org" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/prj_prc_org.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "prj_prc_org" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/refine.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "refine" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/refine_dev.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "refine_def" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/translate_de.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "translate_deepl+DE" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub -------------------------------------------------------------------------------- /windows/translate_en.mmbas: -------------------------------------------------------------------------------- 1 | '#Reference {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}#1.0#0#C:\Windows\System32\wshom.ocx#Windows Script Host Object Model#IWshRuntimeLibrary 2 | '#Language "WWB-COM" 3 | 4 | Option Explicit 5 | 6 | Sub Main 7 | Dim wsh, scriptPath, action 8 | Set wsh = CreateObject("WScript.Shell") 9 | 10 | scriptPath = wsh.ExpandEnvironmentStrings("%LOCALAPPDATA%") + "\Mindjet\MindManager\23\macros\src" 11 | 12 | action = "translate_deepl+EN-US" 13 | 14 | wsh.Run "cmd /c python " + scriptPath + "\process.py " + action, 0, True 15 | End Sub --------------------------------------------------------------------------------