stackops 26.6.5__tar.gz → 26.6.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {stackops-26.6.5/src/stackops.egg-info → stackops-26.6.6}/PKG-INFO +1 -1
- {stackops-26.6.5 → stackops-26.6.6}/pyproject.toml +1 -1
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents.py +5 -2
- stackops-26.6.6/src/stackops/scripts/python/agents_iter.py +34 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph.json +131 -3
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/devops_navigator.py +1 -1
- stackops-26.6.6/src/stackops/scripts/python/helpers/helpers_agents/agents_iter_impl.py +389 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_env/env_manager_tui.py +1 -1
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_env/path_manager_tui.py +1 -1
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/preview_impl.py +3 -3
- stackops-26.6.6/src/stackops/scripts/python/helpers/helpers_preview/preview_read.py +64 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/interactive.sh +8 -8
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/interactive.ps1 +9 -9
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/herdr/config.toml +1 -1
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/abc.py +1 -1
- {stackops-26.6.5 → stackops-26.6.6/src/stackops.egg-info}/PKG-INFO +1 -1
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/SOURCES.txt +2 -0
- stackops-26.6.5/src/stackops/scripts/python/helpers/helpers_preview/preview_read.py +0 -39
- {stackops-26.6.5 → stackops-26.6.6}/MANIFEST.in +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/README.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/setup.cfg +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_dotfile_mapper_assets.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_path_references.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_secrets_schema.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_stackops_skill_refs.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_stackops_versioning.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/__main__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/cli.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph_css.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph_css_continued.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph_js.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph_js_continued.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/models.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/renderer.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/scanner.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/cloud_manager.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/data_transfer.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/distribute.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/execution_script.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/file_manager.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/job_params.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/models.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/notification.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/notifications.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/remote_machine.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/scheduler.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/helpers/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/monitoring_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/session_conflict.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/session_exit_mode.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/status_reporting.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_local.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_local_manager.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_common.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_execution.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_layout.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_status.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/utils/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/utils/load_balancer.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/utils/maker.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/agents/mcps/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/agents/mcps/mcp.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/agents/mcps/mcp.schema.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/check_installations.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/install_utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/report_utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/security_cli.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/security_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/vt_utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/brave.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/cloudflare_warp_cli.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/edge.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/network.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/ngrok.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/oz.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/q.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/redis.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/sysabc_macos.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/sysabc_ubuntu.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/vscode.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/wezterm.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/macos_scripts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/powershell_scripts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/powershell_scripts/nerdfonts.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/powershell_scripts/sysabc.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/powershell_scripts/texlive.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/alacritty.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/boxes.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/brave.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/bypass_paywall.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/cloudflare_warp_cli.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/code.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/cursor.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/docker.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/dubdb_adbc.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/espanso.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/goes.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/hx.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/lvim.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/nerdfont.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/orca.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/poppler.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/redis.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/rmpc.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/sysabc.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/termusic.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/wezterm.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/winget.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/yazi.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/youtube_tui.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/ytui_music.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/todo.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/bash_scripts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/bash_scripts/hollywood.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/bash_scripts/lid.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/bash_scripts/weather +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/powershell_scripts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/powershell_scripts/cmatrix.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/powershell_scripts/weather.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts_dynamic/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts_dynamic/download_stackops_offline_installer.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts_dynamic/download_stackops_offline_installer.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts_dynamic/system_compute_analyzer.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/logger.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/paths.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/create_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/create_links.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/create_links_export.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/create_shell_profile.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/dotfiles_mapper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/linking/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/linking/conflict.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/linking/operations.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/linking/options.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/linux/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/linux/wrap_stackops +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/nu/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/nu/wrap_stackops.nu +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_browser.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_parallel.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_parallel_commands.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_parallel_run_command.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_test_runtime.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_type_fix.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/initai.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/initai_frameworks.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/initai_models.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/initai_rich_output.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/command_runner.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/command_runner.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/dashboard.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/lint_and_type_check.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_config.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_core.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_diagnostics.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_json.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_reports.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/paths.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/antigravity/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/antigravity/antigravity.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/auggie/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/auggie/auggie.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/claude/claude.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/cline/cline.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/codex/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/codex/codex.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/codex/config.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/agents/Thinking-Beast-Mode.agent.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/agents/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/agents/deepResearch.agent.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/instructions/archive/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/instructions/archive/watch_exec.prompt.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/instructions/python/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/prompts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/crush/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/crush/crush.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/crush/crush.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/crush/privacy.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/cursor/cursors.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/droid/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/droid/droid.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/forge/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/forge/forge.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/kilocode/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/kilocode/kilocode.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/opencode/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/opencode/opencode.jsonc +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/opencode/opencode.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/oz/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/oz/oz.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/pi/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/pi/pi.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/q/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/q/amazon_q.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/qwen_code/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/qwen_code/qwen_code.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/warp/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/warp/warp.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generate_files.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generate_files_content.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generate_files_utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generic.instructions.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generic.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/shared.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/vscode_tasks.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/cloud.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/devops.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/enums.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/fire_jobs.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ftpx.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_apps.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_eval.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_node_utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_nodes.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_registration.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_resolver.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_shared.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_signature.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_targets.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_tree.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_values.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/generate_cli_graph.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/python_api_graph.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/cli_graph_app.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/cli_graph_search.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/cli_graph_typer_app.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/dot_export.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/graph_data.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/graph_paths.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/cli_graph_loader.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/command_builder.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/command_detail.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/command_tree.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/data_models.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/main_app.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/search_bar.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/plotly_browser.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/plotly_views.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/python_api_graph_app.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/python_api_graph_search.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/rich_tree.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/common.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/create_options.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/main.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_codex.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_copilot.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_cursor_agents.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_pi.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_qwen.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_ask_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_constants.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_guides.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_resolution.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_create_artifacts.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_create_inputs.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_mcp_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_add_entry.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_aoe_backend.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_backend.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_layouts.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_config.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_yaml.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_yaml_defaults.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_rich_output.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_run_context.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_run_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_run_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_shell.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_skill_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_skill_stackops_backend.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_skill_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_yaml_schemas.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/agent-browser.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/chrome-devtools-mcp-browser-url.mcp.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/chrome-devtools-mcp.mcp.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/chrome-devtools-mcp.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-cli.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-cdp.mcp.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-extension.mcp.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-storage-state.mcp.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-user-data-dir.mcp.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp.mcp.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_help_launch.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_help_search.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_load_balancer.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/mcp_catalog.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/mcp_install.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/mcp_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/aichat/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/aichat/config.yaml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/aider/.aider.conf.yml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/auggie/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/auggie/auggie_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/chatgpt/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/chatgpt/chatgpt_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cline/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cline/cline_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/codex/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/codex/codex_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/common/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/common/privacy_orchestrator.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/copilot/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/copilot/config.yml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/crush/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/crush/crush.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cursor/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cursor/cursor_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/droid/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/droid/droid_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/kilocode/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/kilocode/kilocode_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/mods/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/mods/mods_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/opencode/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/q/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/q/q_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/qwen/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/qwen/qwen_privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/privacy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/reasoning_capabilities.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/templates/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/templates/prompt.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/templates/template.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/templates/template.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/backup_config.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/backup_registration.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_copy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_helpers.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_mount.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_mount_tmux.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_path_resolver.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_sync.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_backup_retrieve.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_dotfile_mapper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_dotfile_transfer.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_mount.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_actions.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_candidates.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_interactive.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_prompts.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_support.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_terminal.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_tmux.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_data.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_device.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_nw.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_nw_vscode_share.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_repos.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_repos_viz.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_assets.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_clone.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_docker.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_docs.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_export.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_info.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_share_file.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_share_server.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_share_temp.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_share_terminal.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_ssh.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_vault.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/devops_status.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/devops_status_checks.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/devops_status_display.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/devops_update_repos.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/interactive.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/commands.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/device_entry.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/devices.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/linux.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/macos.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/selection.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/windows.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/register_interactive.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/run_script.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/stackops_skill_refs.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_pwsh_theme.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_wezterm_theme.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_windows_terminal_theme.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/vault.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_env/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_env/path_manager_backend.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/cloud_manager.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/f.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/file_wrangler.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_args_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_route_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/address_switch.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ftpx_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/onetimeshare.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_add_key_windows.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_add_ssh_key.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_cloud_init.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_darwin.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_darwin_utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_linux.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_linux_utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_windows.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_windows_utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_deploy_key_remote.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/common.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/darwin.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/linux.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/unsupported.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/windows.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/pomodoro.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/scheduler.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/start_slidev.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/viewer.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/viewer_template.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/action.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/action_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/clone.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/cloud_repo_sync.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/cloud_repo_sync_conflicts.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/grource.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/record.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/repo_analyzer_1.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/repo_analyzer_2.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/spec_store.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/sync.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/update.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/ast_search.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/qr_code.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/repo_rag.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/script_help.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/semantic_search.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_linux/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_linux/fzfg +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_linux/search_with_context.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_macos/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_macos/fzfg +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_windows/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_windows/fzfg.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/seek_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_aoe_backend.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_attach_common.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_herdr_backend.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_options.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_preview.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_processes.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/attach_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/kill_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_aoe.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_herdr.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_models.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_tmux.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_aoe_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_common.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_run.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_run_all.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic_display.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic_tmux.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_herdr.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_impl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_layout_source.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_multiprocess.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_test_layouts.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_trace.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_trace_render.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/terminal_cli_helpers.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/file_utils_app.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/machine_utils_app.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/path_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/path_reference_validation.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pdf.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/processes.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_app.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_commands_check.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_commands_setup.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_helpers.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/python.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/python_env.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/python_init.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/read_db_cli_tui.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/read_db_cli_tui_backend.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/scrape.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/specs.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/surya.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/upgrade_packages.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/preview.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/seek.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/stackops_entry.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/terminal.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/terminal_summarize.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/terminal_summary.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/apps_desktop.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/live_from_github.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/uv.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/macos/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/macos/uv.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/live_from_github.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/quick_init.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/uv.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/windows/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/windows/wrap_stackops.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/assets.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/loader.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/models.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/paths.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/readers.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/search.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/atuin/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/atuin/config.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/atuin/themes/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/atuin/themes/catppuccin-mocha-mauve.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/broot/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/broot/br.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/broot/brootcd.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/broot/conf.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/glow/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/glow/glow.yml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/gromit-mpx/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/gromit-mpx/gromit-mpx.cfg +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/helix/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/helix/config.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/helix/languages.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/helix/yazi-picker.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/herdr/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keras/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keras/keras.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/espanso/config/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/espanso/config/default.yml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/espanso/match/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/espanso/match/base.yml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/kanata/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/kanata/kanata.kbd +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/delete.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/on-cd.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/on-quit.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/open.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/paste.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/pre-cd.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/rename.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/colors +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/cleaner.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/lfcd.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/previewer.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/previewer_archive.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/icons +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/lfrc +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/delete.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/open.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/paste.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/rename.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/cd_tere.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/cd_zoxide.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/cd_zoxide2.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/colors +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/icons +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/leftpane_previewer.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/lfcd.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/lfrc +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/mkdir.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/mkfile.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/previewer.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/.flake8 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/.mypy.ini +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/.pylintrc +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/.ruff.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/pyrefly.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/ty.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/linux/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/linux/config.lua +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/archive/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/archive/config_additional.lua +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/config.lua +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/lua/user/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/lua/user/custom_config.lua +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/marimo/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/marimo/marimo.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/marimo/snippets/globalize.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/mprocs/windows/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/mprocs/windows/mprocs.yaml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/mprocs/windows/other +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/ollama/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/ollama/server.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/pistol/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/pistol/pistol.conf +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/presenterm/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/presenterm/config.yaml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/procs/.procs.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/description.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/install-ppm.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.bindings.conf +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.conf +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.local.conf +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.plugins.conf +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.powerline.conf +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.theme.conf +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/pudb/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/pudb/pudb.cfg +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/rofi/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/rofi/config.rasi +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/rofi/config_default.rasi +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/alacritty/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/alacritty/alacritty.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/alacritty/alacritty.yml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/bash/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/bash/init.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ghostty/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ghostty/config +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/hyper/.hyper.js +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ipy/profiles/default/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/kitty/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/kitty/kitty.conf +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/nushell/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/nushell/config.nu +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/nushell/env.nu +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/nushell/init.nu +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/pwsh/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/pwsh/init.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/pwsh/search_pwsh_history.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/starship/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/starship/starship.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/vtm/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/vtm/settings.xml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/wezterm/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/wezterm/wezterm.lua +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/wt/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/wt/settings.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/zsh/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/zsh/init.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/streamlit/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/streamlit/config.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/svim/linux/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/svim/linux/init.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/svim/windows/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/svim/windows/init.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/alias.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/apt-packages.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/aws-buckets.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/aws-instances.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/bash-history.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/brew-packages.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/channels.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/dirs.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/diskutil.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/distrobox-list.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/docker-images.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/dotfiles.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/downloads.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/env.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/figlet-fonts.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/files.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/fish-history.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/fonts.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-branch.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-diff.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-files.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-log.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-reflog.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-repos.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-tags.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-worktrees.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/guix.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/images.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/just-recipes.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/k8s-deployments.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/k8s-pods.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/k8s-services.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/linux-disks.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/man-pages.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/mounts.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/npm-packages.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/nu-history.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/path.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/ports.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/procs.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/python-venvs.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/recent-files.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/sesh.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/text.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/tldr.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/tmux-sessions.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/tmux-windows.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/todo-comments.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/trash.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/unicode.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/wifi.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/zoxide.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/zsh-history.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/alias.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/dirs.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/docker-images.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/dotfiles.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/env.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/files.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-branch.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-diff.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-log.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-reflog.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-repos.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/nu-history.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/pwsh-history.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/text.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tere/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tere/terecd.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tere/terecd.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tmux/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tmux/tmux.conf.local +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tv/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tv/config.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tv/themes/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tv/themes/catppuccin-mocha-sky.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/wsl/.wslconfig +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/wt/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/wt/set_wt_settings.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/init.lua +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/keymap_darwin.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/keymap_linux.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/keymap_windows.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/compress_selected.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/copy_file_content.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/fullscreen_preview.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/interactive_view.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/open_db_readonly.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/open_default_app.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/serve_browser_file.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/shell/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/shell/yazi_cd.ps1 +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/shell/yazi_cd.sh +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/theme.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/yazi_darwin.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/yazi_linux.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/yazi_windows.toml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/zed/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/zed/settings.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/accessories.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/alias_markers.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/command_lookup.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/hierarchy.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/hierarchy_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/terminal.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/defaults.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/encryption.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/README.md +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/auth.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/file_ops.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/setup_oauth.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/rclone.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/rclone_wrapper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/code.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/fat_croco.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/halfwit_croco.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/happy_croco.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/water_croco.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/ascii_art.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/compression.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/dbms.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/download.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/f.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/headers.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/notebook.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/ouch/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/ouch/decompress.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/read.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/github_release_bulk.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/github_release_scraper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/install_from_url.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/install_request_logic.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_class.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_cli.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_explore.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_locator_utils.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_main_protocol.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_constants.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_models.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_publish.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_render.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_scripts.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_steps.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_uv.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_runner.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_summary.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/io.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/machine/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/machine/specs.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/meta.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/network/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/network/address.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/optional_dependencies.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/options.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/options_tv_linux.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/options_tv_windows.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/textual_options_form.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/textual_options_form_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/tv_options.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/path_core.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/path_reference.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/python/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/python/imports.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/repos/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/repos/stackops_paths.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/agents/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/agents/parallel.schema.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/agents/prompts.schema.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/config/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/config/config.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/config/config.schema.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/config/config_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/fire_agents/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/fire_agents/fire_agents_input.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/fire_agents/fire_agents_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/installer_data.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/installer_type.schema.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/installer_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/package_groups.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/layouts/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/layouts/layout.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/layouts/layout.schema.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/layouts/layout_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/data.schema.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/data.yaml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/dotfiles.schema.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/dotfiles.yaml +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/repos/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/repos/repos_schema.json +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/repos/repos_types.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/yaml_schema.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/source_of_truth.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/__init__.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/ssh.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/wsl.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/wsl_helper.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops/version.py +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/dependency_links.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/entry_points.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/requires.txt +0 -0
- {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/top_level.txt +0 -0
|
@@ -389,6 +389,7 @@ def add_skill(
|
|
|
389
389
|
|
|
390
390
|
def get_app() -> typer.Typer:
|
|
391
391
|
from stackops.scripts.python.agents_browser import get_app as get_browser_app
|
|
392
|
+
from stackops.scripts.python.agents_iter import get_app as get_iter_app
|
|
392
393
|
from stackops.scripts.python.agents_parallel import get_app as get_parallel_app
|
|
393
394
|
|
|
394
395
|
agents_app = typer.Typer(help="🤖 AI Agents management subcommands", no_args_is_help=True, add_help_option=True, add_completion=False)
|
|
@@ -400,6 +401,8 @@ def get_app() -> typer.Typer:
|
|
|
400
401
|
get_browser_app(), name="browser", help="🌐 <b> Browser automation for agent CLIs and MCP", short_help="<b> Browser automation for agent CLIs/MCP"
|
|
401
402
|
)
|
|
402
403
|
agents_app.add_typer(get_browser_app(), name="b", help="Browser automation for agent CLIs and MCP", hidden=True)
|
|
404
|
+
agents_app.add_typer(get_iter_app(), name="iter", help="🔁 <I> Iter workflow maintenance commands", short_help="<I> Iter workflow maintenance")
|
|
405
|
+
agents_app.add_typer(get_iter_app(), name="I", help="Iter workflow maintenance commands", hidden=True)
|
|
403
406
|
|
|
404
407
|
agents_app.command(name="add-mcp", short_help="<m> Resolve catalog MCP entries or supported skills")(add_mcp)
|
|
405
408
|
agents_app.command(name="m", hidden=True)(add_mcp)
|
|
@@ -409,10 +412,10 @@ def get_app() -> typer.Typer:
|
|
|
409
412
|
make_todo_files
|
|
410
413
|
)
|
|
411
414
|
agents_app.command("d", no_args_is_help=True, hidden=True)(make_todo_files)
|
|
412
|
-
agents_app.command(name="add-symlinks", no_args_is_help=True, short_help="<
|
|
415
|
+
agents_app.command(name="add-symlinks", no_args_is_help=True, short_help="<L> Create symlinks to the current repo in ~/code_copies/")(
|
|
413
416
|
create_symlink_command
|
|
414
417
|
)
|
|
415
|
-
agents_app.command(name="
|
|
418
|
+
agents_app.command(name="L", no_args_is_help=True, hidden=True)(create_symlink_command)
|
|
416
419
|
agents_app.command(
|
|
417
420
|
"add-config", no_args_is_help=True, help=init_config.__doc__, short_help="<c> Initialize AI configurations in the current repository"
|
|
418
421
|
)(init_config)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from typing import Annotated
|
|
2
|
+
|
|
3
|
+
import typer
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def clean(continuous: Annotated[bool, typer.Option("--loop", "-l", help="Repeat cleanup every 5 minutes.")] = False) -> None:
|
|
7
|
+
"""Close old Herdr tabs in iter workspaces, keeping the last 3 tabs per workspace."""
|
|
8
|
+
try:
|
|
9
|
+
from stackops.scripts.python.helpers.helpers_agents.agents_iter_impl import clean_iter_workspaces_loop
|
|
10
|
+
|
|
11
|
+
clean_iter_workspaces_loop(continuous=continuous, report=typer.echo)
|
|
12
|
+
except RuntimeError as error:
|
|
13
|
+
typer.echo(str(error), err=True)
|
|
14
|
+
raise typer.Exit(code=1) from error
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def status() -> None:
|
|
18
|
+
"""Show each iter loop's latest iteration agent and live Herdr status."""
|
|
19
|
+
try:
|
|
20
|
+
from stackops.scripts.python.helpers.helpers_agents.agents_iter_impl import show_iter_status
|
|
21
|
+
|
|
22
|
+
show_iter_status()
|
|
23
|
+
except RuntimeError as error:
|
|
24
|
+
typer.echo(str(error), err=True)
|
|
25
|
+
raise typer.Exit(code=1) from error
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def get_app() -> typer.Typer:
|
|
29
|
+
iter_app = typer.Typer(help="🔁 <c> Iter workflow maintenance commands", no_args_is_help=True, add_help_option=True, add_completion=False)
|
|
30
|
+
iter_app.command(name="clean", no_args_is_help=False, short_help="<c> Clean old Herdr tabs from iter workspaces")(clean)
|
|
31
|
+
iter_app.command(name="c", no_args_is_help=False, hidden=True)(clean)
|
|
32
|
+
iter_app.command(name="status", no_args_is_help=False, short_help="<s> Show iter workspace status")(status)
|
|
33
|
+
iter_app.command(name="s", no_args_is_help=False, hidden=True)(status)
|
|
34
|
+
return iter_app
|
|
@@ -15448,6 +15448,134 @@
|
|
|
15448
15448
|
}
|
|
15449
15449
|
]
|
|
15450
15450
|
},
|
|
15451
|
+
{
|
|
15452
|
+
"kind": "group",
|
|
15453
|
+
"name": "iter",
|
|
15454
|
+
"fullPath": "agents iter",
|
|
15455
|
+
"shortPath": "a I",
|
|
15456
|
+
"help": "🔁 <I> Iter workflow maintenance commands",
|
|
15457
|
+
"source": {
|
|
15458
|
+
"file": "src/stackops/scripts/python/agents.py",
|
|
15459
|
+
"module": "stackops.scripts.python.agents",
|
|
15460
|
+
"dispatches_to": "stackops.scripts.python.agents_iter.get_app"
|
|
15461
|
+
},
|
|
15462
|
+
"app": {
|
|
15463
|
+
"help": "🔁 <c> Iter workflow maintenance commands",
|
|
15464
|
+
"no_args_is_help": true,
|
|
15465
|
+
"add_help_option": true,
|
|
15466
|
+
"add_completion": false
|
|
15467
|
+
},
|
|
15468
|
+
"children": [
|
|
15469
|
+
{
|
|
15470
|
+
"kind": "command",
|
|
15471
|
+
"name": "clean",
|
|
15472
|
+
"fullPath": "agents iter clean",
|
|
15473
|
+
"shortPath": "a I c",
|
|
15474
|
+
"help": "Close old Herdr tabs in iter workspaces, keeping the last 3 tabs per workspace.",
|
|
15475
|
+
"source": {
|
|
15476
|
+
"file": "src/stackops/scripts/python/agents_iter.py",
|
|
15477
|
+
"module": "stackops.scripts.python.agents_iter",
|
|
15478
|
+
"callable": "clean"
|
|
15479
|
+
},
|
|
15480
|
+
"signature": {
|
|
15481
|
+
"raw_lines": [
|
|
15482
|
+
"def clean(continuous: Annotated[bool, typer.Option(\"--loop\", \"-l\", help=\"Repeat cleanup every 5 minutes.\")] = False) -> None:",
|
|
15483
|
+
" \"\"\"Close old Herdr tabs in iter workspaces, keeping the last 3 tabs per workspace.\"\"\"",
|
|
15484
|
+
" try:",
|
|
15485
|
+
" from stackops.scripts.python.helpers.helpers_agents.agents_iter_impl import clean_iter_workspaces_loop",
|
|
15486
|
+
"",
|
|
15487
|
+
" clean_iter_workspaces_loop(continuous=continuous, report=typer.echo)",
|
|
15488
|
+
" except RuntimeError as error:",
|
|
15489
|
+
" typer.echo(str(error), err=True)",
|
|
15490
|
+
" raise typer.Exit(code=1) from error"
|
|
15491
|
+
],
|
|
15492
|
+
"name": "clean",
|
|
15493
|
+
"parameters": [
|
|
15494
|
+
{
|
|
15495
|
+
"name": "continuous",
|
|
15496
|
+
"kind": "positional_or_keyword",
|
|
15497
|
+
"type": "bool",
|
|
15498
|
+
"default": false,
|
|
15499
|
+
"required": false,
|
|
15500
|
+
"annotation_raw": "Annotated[bool, typer.Option('--loop', '-l', help='Repeat cleanup every 5 minutes.')]",
|
|
15501
|
+
"typer": {
|
|
15502
|
+
"kind": "option",
|
|
15503
|
+
"param_decls": [
|
|
15504
|
+
"--loop",
|
|
15505
|
+
"-l"
|
|
15506
|
+
],
|
|
15507
|
+
"long_flags": [
|
|
15508
|
+
"--loop"
|
|
15509
|
+
],
|
|
15510
|
+
"short_flags": [
|
|
15511
|
+
"-l"
|
|
15512
|
+
],
|
|
15513
|
+
"help": "Repeat cleanup every 5 minutes."
|
|
15514
|
+
}
|
|
15515
|
+
}
|
|
15516
|
+
],
|
|
15517
|
+
"return": "None"
|
|
15518
|
+
},
|
|
15519
|
+
"short_help": "<c> Clean old Herdr tabs from iter workspaces",
|
|
15520
|
+
"typer": {
|
|
15521
|
+
"no_args_is_help": false
|
|
15522
|
+
},
|
|
15523
|
+
"doc": "Close old Herdr tabs in iter workspaces, keeping the last 3 tabs per workspace.",
|
|
15524
|
+
"aliases": [
|
|
15525
|
+
{
|
|
15526
|
+
"name": "c",
|
|
15527
|
+
"hidden": true
|
|
15528
|
+
}
|
|
15529
|
+
]
|
|
15530
|
+
},
|
|
15531
|
+
{
|
|
15532
|
+
"kind": "command",
|
|
15533
|
+
"name": "status",
|
|
15534
|
+
"fullPath": "agents iter status",
|
|
15535
|
+
"shortPath": "a I s",
|
|
15536
|
+
"help": "Show each iter loop's latest iteration agent and live Herdr status.",
|
|
15537
|
+
"source": {
|
|
15538
|
+
"file": "src/stackops/scripts/python/agents_iter.py",
|
|
15539
|
+
"module": "stackops.scripts.python.agents_iter",
|
|
15540
|
+
"callable": "status"
|
|
15541
|
+
},
|
|
15542
|
+
"signature": {
|
|
15543
|
+
"raw_lines": [
|
|
15544
|
+
"def status() -> None:",
|
|
15545
|
+
" \"\"\"Show each iter loop's latest iteration agent and live Herdr status.\"\"\"",
|
|
15546
|
+
" try:",
|
|
15547
|
+
" from stackops.scripts.python.helpers.helpers_agents.agents_iter_impl import show_iter_status",
|
|
15548
|
+
"",
|
|
15549
|
+
" show_iter_status()",
|
|
15550
|
+
" except RuntimeError as error:",
|
|
15551
|
+
" typer.echo(str(error), err=True)",
|
|
15552
|
+
" raise typer.Exit(code=1) from error"
|
|
15553
|
+
],
|
|
15554
|
+
"name": "status",
|
|
15555
|
+
"parameters": [],
|
|
15556
|
+
"return": "None"
|
|
15557
|
+
},
|
|
15558
|
+
"short_help": "<s> Show iter workspace status",
|
|
15559
|
+
"typer": {
|
|
15560
|
+
"no_args_is_help": false
|
|
15561
|
+
},
|
|
15562
|
+
"doc": "Show each iter loop's latest iteration agent and live Herdr status.",
|
|
15563
|
+
"aliases": [
|
|
15564
|
+
{
|
|
15565
|
+
"name": "s",
|
|
15566
|
+
"hidden": true
|
|
15567
|
+
}
|
|
15568
|
+
]
|
|
15569
|
+
}
|
|
15570
|
+
],
|
|
15571
|
+
"aliases": [
|
|
15572
|
+
{
|
|
15573
|
+
"name": "I",
|
|
15574
|
+
"hidden": true,
|
|
15575
|
+
"help": "Iter workflow maintenance commands"
|
|
15576
|
+
}
|
|
15577
|
+
]
|
|
15578
|
+
},
|
|
15451
15579
|
{
|
|
15452
15580
|
"kind": "command",
|
|
15453
15581
|
"name": "add-mcp",
|
|
@@ -16051,7 +16179,7 @@
|
|
|
16051
16179
|
"kind": "command",
|
|
16052
16180
|
"name": "add-symlinks",
|
|
16053
16181
|
"fullPath": "agents add-symlinks",
|
|
16054
|
-
"shortPath": "a
|
|
16182
|
+
"shortPath": "a L",
|
|
16055
16183
|
"help": "Create symlinks to repo_root at ~/code_copies/${repo_name}_copy_{i}.",
|
|
16056
16184
|
"source": {
|
|
16057
16185
|
"file": "src/stackops/scripts/python/agents.py",
|
|
@@ -16086,14 +16214,14 @@
|
|
|
16086
16214
|
],
|
|
16087
16215
|
"return": "None"
|
|
16088
16216
|
},
|
|
16089
|
-
"short_help": "<
|
|
16217
|
+
"short_help": "<L> Create symlinks to the current repo in ~/code_copies/",
|
|
16090
16218
|
"typer": {
|
|
16091
16219
|
"no_args_is_help": true
|
|
16092
16220
|
},
|
|
16093
16221
|
"doc": "Create symlinks to repo_root at ~/code_copies/${repo_name}_copy_{i}.",
|
|
16094
16222
|
"aliases": [
|
|
16095
16223
|
{
|
|
16096
|
-
"name": "
|
|
16224
|
+
"name": "L",
|
|
16097
16225
|
"hidden": true
|
|
16098
16226
|
}
|
|
16099
16227
|
]
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import re
|
|
3
|
+
import shlex
|
|
4
|
+
import subprocess
|
|
5
|
+
from collections.abc import Callable
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
from time import sleep
|
|
8
|
+
from typing import Final, TypeAlias, cast
|
|
9
|
+
|
|
10
|
+
from rich import box
|
|
11
|
+
from rich.console import Console
|
|
12
|
+
from rich.table import Table
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
JsonObject: TypeAlias = dict[str, object]
|
|
16
|
+
KEEP_RECENT_TABS: Final[int] = 3
|
|
17
|
+
LOOP_INTERVAL_SECONDS: Final[int] = 300
|
|
18
|
+
ITER_WORKSPACE_PREFIX: Final[str] = "iter"
|
|
19
|
+
ITER_AGENT_LABEL_PATTERN: Final[re.Pattern[str]] = re.compile(r"^iter-.+-(?P<iteration>[0-9]{3})$")
|
|
20
|
+
_CONSOLE: Final[Console] = Console()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@dataclass(frozen=True, slots=True)
|
|
24
|
+
class HerdrWorkspace:
|
|
25
|
+
workspace_id: str
|
|
26
|
+
label: str
|
|
27
|
+
number: int
|
|
28
|
+
active_tab_id: str
|
|
29
|
+
agent_status: str
|
|
30
|
+
focused: bool
|
|
31
|
+
pane_count: int
|
|
32
|
+
tab_count: int
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@dataclass(frozen=True, slots=True)
|
|
36
|
+
class HerdrTab:
|
|
37
|
+
tab_id: str
|
|
38
|
+
workspace_id: str
|
|
39
|
+
label: str
|
|
40
|
+
number: int
|
|
41
|
+
agent_status: str
|
|
42
|
+
focused: bool
|
|
43
|
+
pane_count: int
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@dataclass(frozen=True, slots=True)
|
|
47
|
+
class HerdrAgent:
|
|
48
|
+
agent: str
|
|
49
|
+
agent_status: str
|
|
50
|
+
workspace_id: str
|
|
51
|
+
tab_id: str
|
|
52
|
+
pane_id: str
|
|
53
|
+
cwd: str
|
|
54
|
+
foreground_cwd: str
|
|
55
|
+
focused: bool
|
|
56
|
+
name: str | None
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
@dataclass(frozen=True, slots=True)
|
|
60
|
+
class IterWorkspaceCleanup:
|
|
61
|
+
workspace: HerdrWorkspace
|
|
62
|
+
kept_tabs: tuple[HerdrTab, ...]
|
|
63
|
+
closed_tabs: tuple[HerdrTab, ...]
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@dataclass(frozen=True, slots=True)
|
|
67
|
+
class IterWorkspaceStatus:
|
|
68
|
+
workspace: HerdrWorkspace
|
|
69
|
+
tabs: tuple[HerdrTab, ...]
|
|
70
|
+
kept_tabs: tuple[HerdrTab, ...]
|
|
71
|
+
closable_tabs: tuple[HerdrTab, ...]
|
|
72
|
+
latest_iteration: int | None
|
|
73
|
+
latest_agent: HerdrAgent | None
|
|
74
|
+
latest_agent_tab: HerdrTab | None
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def clean_iter_workspaces_loop(*, continuous: bool, report: Callable[[str], None]) -> None:
|
|
78
|
+
while True:
|
|
79
|
+
summaries = clean_iter_workspaces()
|
|
80
|
+
_report_summaries(summaries=summaries, report=report)
|
|
81
|
+
if not continuous:
|
|
82
|
+
return
|
|
83
|
+
sleep(LOOP_INTERVAL_SECONDS)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def show_iter_status() -> None:
|
|
87
|
+
_CONSOLE.print(build_iter_status_table(statuses=get_iter_workspace_statuses()))
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def get_iter_workspace_statuses() -> tuple[IterWorkspaceStatus, ...]:
|
|
91
|
+
workspaces = _iter_workspaces(workspaces=_list_workspaces())
|
|
92
|
+
tabs_by_workspace_id = _tabs_by_workspace_id(tabs=_list_tabs())
|
|
93
|
+
agents_by_workspace_id = _agents_by_workspace_id(agents=_list_agents())
|
|
94
|
+
statuses: list[IterWorkspaceStatus] = []
|
|
95
|
+
for workspace in workspaces:
|
|
96
|
+
tabs = tuple(sorted(tabs_by_workspace_id.get(workspace.workspace_id, ()), key=lambda tab: tab.number))
|
|
97
|
+
latest_agent = _latest_iter_agent(agents=agents_by_workspace_id.get(workspace.workspace_id, ()))
|
|
98
|
+
kept_tabs = _kept_tabs(tabs=tabs)
|
|
99
|
+
closable_tabs = _closable_tabs(tabs=tabs, kept_tabs=kept_tabs)
|
|
100
|
+
statuses.append(
|
|
101
|
+
IterWorkspaceStatus(
|
|
102
|
+
workspace=workspace,
|
|
103
|
+
tabs=tabs,
|
|
104
|
+
kept_tabs=kept_tabs,
|
|
105
|
+
closable_tabs=closable_tabs,
|
|
106
|
+
latest_iteration=_latest_iteration(agent=latest_agent),
|
|
107
|
+
latest_agent=latest_agent,
|
|
108
|
+
latest_agent_tab=_find_tab(tabs=tabs, tab_id=latest_agent.tab_id) if latest_agent is not None else None,
|
|
109
|
+
)
|
|
110
|
+
)
|
|
111
|
+
return tuple(statuses)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def build_iter_status_table(*, statuses: tuple[IterWorkspaceStatus, ...]) -> Table:
|
|
115
|
+
table = Table(title=f"Iter Status ({len(statuses)})", box=box.SIMPLE_HEAVY, expand=True)
|
|
116
|
+
table.add_column("Loop", style="bold", overflow="fold", ratio=3)
|
|
117
|
+
table.add_column("Iter", justify="right", no_wrap=True)
|
|
118
|
+
table.add_column("Agent", no_wrap=True)
|
|
119
|
+
table.add_column("Status", no_wrap=True)
|
|
120
|
+
table.add_column("Where", overflow="fold", ratio=2)
|
|
121
|
+
table.add_column("Tabs", no_wrap=True)
|
|
122
|
+
for status in statuses:
|
|
123
|
+
table.add_row(
|
|
124
|
+
status.workspace.label,
|
|
125
|
+
_format_iteration(iteration=status.latest_iteration),
|
|
126
|
+
_format_agent(agent=status.latest_agent),
|
|
127
|
+
_format_agent_status(status=status),
|
|
128
|
+
_format_agent_where(tab=status.latest_agent_tab, agent=status.latest_agent),
|
|
129
|
+
_format_tab_counts(status=status),
|
|
130
|
+
)
|
|
131
|
+
return table
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def clean_iter_workspaces() -> tuple[IterWorkspaceCleanup, ...]:
|
|
135
|
+
workspaces = _iter_workspaces(workspaces=_list_workspaces())
|
|
136
|
+
tabs_by_workspace_id = _tabs_by_workspace_id(tabs=_list_tabs())
|
|
137
|
+
summaries: list[IterWorkspaceCleanup] = []
|
|
138
|
+
for workspace in workspaces:
|
|
139
|
+
tabs = tabs_by_workspace_id.get(workspace.workspace_id, ())
|
|
140
|
+
kept_tabs = _kept_tabs(tabs=tabs)
|
|
141
|
+
closed_tabs = _closable_tabs(tabs=tabs, kept_tabs=kept_tabs)
|
|
142
|
+
for tab in closed_tabs:
|
|
143
|
+
_run_herdr(["herdr", "tab", "close", tab.tab_id])
|
|
144
|
+
summaries.append(IterWorkspaceCleanup(workspace=workspace, kept_tabs=kept_tabs, closed_tabs=closed_tabs))
|
|
145
|
+
return tuple(summaries)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def _report_summaries(*, summaries: tuple[IterWorkspaceCleanup, ...], report: Callable[[str], None]) -> None:
|
|
149
|
+
if len(summaries) == 0:
|
|
150
|
+
report("No iter workspaces found.")
|
|
151
|
+
return
|
|
152
|
+
total_closed = sum(len(summary.closed_tabs) for summary in summaries)
|
|
153
|
+
report(f"Closed {total_closed} tab(s) across {len(summaries)} iter workspace(s).")
|
|
154
|
+
for summary in summaries:
|
|
155
|
+
report(
|
|
156
|
+
f"- {summary.workspace.label}: closed={len(summary.closed_tabs)} kept={len(summary.kept_tabs)} "
|
|
157
|
+
f"workspace={summary.workspace.workspace_id}"
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
def _iter_workspaces(*, workspaces: tuple[HerdrWorkspace, ...]) -> tuple[HerdrWorkspace, ...]:
|
|
162
|
+
return tuple(workspace for workspace in workspaces if workspace.label.startswith(ITER_WORKSPACE_PREFIX))
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def _kept_tabs(*, tabs: tuple[HerdrTab, ...]) -> tuple[HerdrTab, ...]:
|
|
166
|
+
return tuple(sorted(tabs, key=lambda tab: tab.number, reverse=True)[:KEEP_RECENT_TABS])
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
def _closable_tabs(*, tabs: tuple[HerdrTab, ...], kept_tabs: tuple[HerdrTab, ...]) -> tuple[HerdrTab, ...]:
|
|
170
|
+
kept_tab_ids = {tab.tab_id for tab in kept_tabs}
|
|
171
|
+
return tuple(tab for tab in sorted(tabs, key=lambda tab: tab.number) if tab.tab_id not in kept_tab_ids)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def _tabs_by_workspace_id(*, tabs: tuple[HerdrTab, ...]) -> dict[str, tuple[HerdrTab, ...]]:
|
|
175
|
+
grouped: dict[str, list[HerdrTab]] = {}
|
|
176
|
+
for tab in tabs:
|
|
177
|
+
grouped.setdefault(tab.workspace_id, []).append(tab)
|
|
178
|
+
return {workspace_id: tuple(workspace_tabs) for workspace_id, workspace_tabs in grouped.items()}
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def _agents_by_workspace_id(*, agents: tuple[HerdrAgent, ...]) -> dict[str, tuple[HerdrAgent, ...]]:
|
|
182
|
+
grouped: dict[str, list[HerdrAgent]] = {}
|
|
183
|
+
for agent in agents:
|
|
184
|
+
grouped.setdefault(agent.workspace_id, []).append(agent)
|
|
185
|
+
return {workspace_id: tuple(workspace_agents) for workspace_id, workspace_agents in grouped.items()}
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
def _latest_iter_agent(*, agents: tuple[HerdrAgent, ...]) -> HerdrAgent | None:
|
|
189
|
+
latest_agent: HerdrAgent | None = None
|
|
190
|
+
latest_iteration: int | None = None
|
|
191
|
+
for agent in agents:
|
|
192
|
+
if agent.name is None:
|
|
193
|
+
continue
|
|
194
|
+
iteration = _iteration_from_label(label=agent.name)
|
|
195
|
+
if iteration is None:
|
|
196
|
+
continue
|
|
197
|
+
if latest_iteration is None or iteration > latest_iteration:
|
|
198
|
+
latest_iteration = iteration
|
|
199
|
+
latest_agent = agent
|
|
200
|
+
return latest_agent
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
def _list_workspaces() -> tuple[HerdrWorkspace, ...]:
|
|
204
|
+
payload = _run_herdr_json(["herdr", "workspace", "list"])
|
|
205
|
+
result = _result_object(payload=payload)
|
|
206
|
+
workspaces_value = result.get("workspaces")
|
|
207
|
+
if not isinstance(workspaces_value, list):
|
|
208
|
+
raise RuntimeError("Herdr workspace list response did not include result.workspaces.")
|
|
209
|
+
return tuple(_parse_workspace(value=value) for value in workspaces_value)
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
def _list_tabs() -> tuple[HerdrTab, ...]:
|
|
213
|
+
payload = _run_herdr_json(["herdr", "tab", "list"])
|
|
214
|
+
result = _result_object(payload=payload)
|
|
215
|
+
tabs_value = result.get("tabs")
|
|
216
|
+
if not isinstance(tabs_value, list):
|
|
217
|
+
raise RuntimeError("Herdr tab list response did not include result.tabs.")
|
|
218
|
+
return tuple(_parse_tab(value=value) for value in tabs_value)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def _list_agents() -> tuple[HerdrAgent, ...]:
|
|
222
|
+
payload = _run_herdr_json(["herdr", "agent", "list"])
|
|
223
|
+
result = _result_object(payload=payload)
|
|
224
|
+
agents_value = result.get("agents")
|
|
225
|
+
if not isinstance(agents_value, list):
|
|
226
|
+
raise RuntimeError("Herdr agent list response did not include result.agents.")
|
|
227
|
+
return tuple(_parse_agent(value=value) for value in agents_value)
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
def _parse_workspace(*, value: object) -> HerdrWorkspace:
|
|
231
|
+
if not isinstance(value, dict):
|
|
232
|
+
raise RuntimeError("Herdr workspace list included a non-object workspace.")
|
|
233
|
+
mapping = cast(JsonObject, value)
|
|
234
|
+
return HerdrWorkspace(
|
|
235
|
+
workspace_id=_required_string(mapping=mapping, key="workspace_id"),
|
|
236
|
+
label=_required_string(mapping=mapping, key="label"),
|
|
237
|
+
number=_required_int(mapping=mapping, key="number"),
|
|
238
|
+
active_tab_id=_required_string(mapping=mapping, key="active_tab_id"),
|
|
239
|
+
agent_status=_required_string(mapping=mapping, key="agent_status"),
|
|
240
|
+
focused=_required_bool(mapping=mapping, key="focused"),
|
|
241
|
+
pane_count=_required_int(mapping=mapping, key="pane_count"),
|
|
242
|
+
tab_count=_required_int(mapping=mapping, key="tab_count"),
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
def _parse_tab(*, value: object) -> HerdrTab:
|
|
247
|
+
if not isinstance(value, dict):
|
|
248
|
+
raise RuntimeError("Herdr tab list included a non-object tab.")
|
|
249
|
+
mapping = cast(JsonObject, value)
|
|
250
|
+
return HerdrTab(
|
|
251
|
+
tab_id=_required_string(mapping=mapping, key="tab_id"),
|
|
252
|
+
workspace_id=_required_string(mapping=mapping, key="workspace_id"),
|
|
253
|
+
label=_required_string(mapping=mapping, key="label"),
|
|
254
|
+
number=_required_int(mapping=mapping, key="number"),
|
|
255
|
+
agent_status=_required_string(mapping=mapping, key="agent_status"),
|
|
256
|
+
focused=_required_bool(mapping=mapping, key="focused"),
|
|
257
|
+
pane_count=_required_int(mapping=mapping, key="pane_count"),
|
|
258
|
+
)
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
def _parse_agent(*, value: object) -> HerdrAgent:
|
|
262
|
+
if not isinstance(value, dict):
|
|
263
|
+
raise RuntimeError("Herdr agent list included a non-object agent.")
|
|
264
|
+
mapping = cast(JsonObject, value)
|
|
265
|
+
return HerdrAgent(
|
|
266
|
+
agent=_required_string(mapping=mapping, key="agent"),
|
|
267
|
+
agent_status=_required_string(mapping=mapping, key="agent_status"),
|
|
268
|
+
workspace_id=_required_string(mapping=mapping, key="workspace_id"),
|
|
269
|
+
tab_id=_required_string(mapping=mapping, key="tab_id"),
|
|
270
|
+
pane_id=_required_string(mapping=mapping, key="pane_id"),
|
|
271
|
+
cwd=_required_string(mapping=mapping, key="cwd"),
|
|
272
|
+
foreground_cwd=_required_string(mapping=mapping, key="foreground_cwd"),
|
|
273
|
+
focused=_required_bool(mapping=mapping, key="focused"),
|
|
274
|
+
name=_optional_string(mapping=mapping, key="name"),
|
|
275
|
+
)
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
def _find_tab(*, tabs: tuple[HerdrTab, ...], tab_id: str) -> HerdrTab | None:
|
|
279
|
+
for tab in tabs:
|
|
280
|
+
if tab.tab_id == tab_id:
|
|
281
|
+
return tab
|
|
282
|
+
return None
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
def _latest_iteration(*, agent: HerdrAgent | None) -> int | None:
|
|
286
|
+
if agent is None or agent.name is None:
|
|
287
|
+
return None
|
|
288
|
+
return _iteration_from_label(label=agent.name)
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
def _iteration_from_label(*, label: str) -> int | None:
|
|
292
|
+
match = ITER_AGENT_LABEL_PATTERN.match(label)
|
|
293
|
+
if match is None:
|
|
294
|
+
return None
|
|
295
|
+
return int(match.group("iteration"))
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
def _format_iteration(*, iteration: int | None) -> str:
|
|
299
|
+
if iteration is None:
|
|
300
|
+
return "-"
|
|
301
|
+
return f"{iteration:03d}"
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
def _format_agent(*, agent: HerdrAgent | None) -> str:
|
|
305
|
+
if agent is None:
|
|
306
|
+
return "-"
|
|
307
|
+
return agent.agent
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
def _format_agent_status(*, status: IterWorkspaceStatus) -> str:
|
|
311
|
+
if status.latest_agent is not None:
|
|
312
|
+
return status.latest_agent.agent_status
|
|
313
|
+
return status.workspace.agent_status
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
def _format_agent_where(*, tab: HerdrTab | None, agent: HerdrAgent | None) -> str:
|
|
317
|
+
if tab is not None:
|
|
318
|
+
tab_label = f"tab #{tab.number} {tab.tab_id}"
|
|
319
|
+
if agent is None:
|
|
320
|
+
return tab_label
|
|
321
|
+
return f"{tab_label}\n{agent.foreground_cwd}"
|
|
322
|
+
if agent is not None:
|
|
323
|
+
return f"{agent.tab_id}\n{agent.foreground_cwd}"
|
|
324
|
+
return "-"
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
def _format_tab_counts(*, status: IterWorkspaceStatus) -> str:
|
|
328
|
+
return f"{len(status.tabs)} old {len(status.closable_tabs)}"
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
def _result_object(*, payload: JsonObject) -> JsonObject:
|
|
332
|
+
result = payload.get("result")
|
|
333
|
+
if not isinstance(result, dict):
|
|
334
|
+
raise RuntimeError("Herdr JSON response did not include an object result.")
|
|
335
|
+
return cast(JsonObject, result)
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
def _required_string(*, mapping: JsonObject, key: str) -> str:
|
|
339
|
+
value = mapping.get(key)
|
|
340
|
+
if not isinstance(value, str) or value == "":
|
|
341
|
+
raise RuntimeError(f"Herdr JSON response did not include a usable {key}.")
|
|
342
|
+
return value
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
def _optional_string(*, mapping: JsonObject, key: str) -> str | None:
|
|
346
|
+
value = mapping.get(key)
|
|
347
|
+
if value is None:
|
|
348
|
+
return None
|
|
349
|
+
if not isinstance(value, str) or value == "":
|
|
350
|
+
raise RuntimeError(f"Herdr JSON response did not include a usable {key}.")
|
|
351
|
+
return value
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
def _required_int(*, mapping: JsonObject, key: str) -> int:
|
|
355
|
+
value = mapping.get(key)
|
|
356
|
+
if not isinstance(value, int):
|
|
357
|
+
raise RuntimeError(f"Herdr JSON response did not include a usable {key}.")
|
|
358
|
+
return value
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
def _required_bool(*, mapping: JsonObject, key: str) -> bool:
|
|
362
|
+
value = mapping.get(key)
|
|
363
|
+
if not isinstance(value, bool):
|
|
364
|
+
raise RuntimeError(f"Herdr JSON response did not include a usable {key}.")
|
|
365
|
+
return value
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
def _run_herdr(args: list[str]) -> str:
|
|
369
|
+
try:
|
|
370
|
+
result = subprocess.run(args, capture_output=True, check=False, text=True)
|
|
371
|
+
except FileNotFoundError as exc:
|
|
372
|
+
raise RuntimeError("Iter loop requested Herdr, but `herdr` was not found in PATH.") from exc
|
|
373
|
+
if result.returncode == 0:
|
|
374
|
+
return result.stdout
|
|
375
|
+
detail = (result.stderr or result.stdout or "unknown error").strip()
|
|
376
|
+
raise RuntimeError(f"Herdr command failed ({shlex.join(args)}): {detail}")
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
def _run_herdr_json(args: list[str]) -> JsonObject:
|
|
380
|
+
stdout = _run_herdr(args).strip()
|
|
381
|
+
if stdout == "":
|
|
382
|
+
raise RuntimeError(f"Herdr command did not return JSON: {shlex.join(args)}")
|
|
383
|
+
try:
|
|
384
|
+
payload = json.loads(stdout)
|
|
385
|
+
except json.JSONDecodeError as exc:
|
|
386
|
+
raise RuntimeError(f"Herdr command returned invalid JSON ({shlex.join(args)}): {stdout}") from exc
|
|
387
|
+
if not isinstance(payload, dict):
|
|
388
|
+
raise RuntimeError(f"Herdr command returned non-object JSON ({shlex.join(args)}): {stdout}")
|
|
389
|
+
return cast(JsonObject, payload)
|