stackops 26.6.1__tar.gz → 26.6.3__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.3/PKG-INFO +118 -0
- stackops-26.6.3/pyproject.toml +163 -0
- stackops-26.6.3/src/manual/test_secrets_schema.py +47 -0
- stackops-26.6.3/src/manual/test_stackops_versioning.py +42 -0
- stackops-26.6.3/src/stackops/architecture_graph/__main__.py +5 -0
- stackops-26.6.3/src/stackops/architecture_graph/cli.py +70 -0
- stackops-26.6.3/src/stackops/architecture_graph/graph.py +148 -0
- stackops-26.6.3/src/stackops/architecture_graph/graph_css.txt +193 -0
- stackops-26.6.3/src/stackops/architecture_graph/graph_css_continued.txt +288 -0
- stackops-26.6.3/src/stackops/architecture_graph/graph_js.txt +244 -0
- stackops-26.6.3/src/stackops/architecture_graph/graph_js_continued.txt +479 -0
- stackops-26.6.3/src/stackops/architecture_graph/models.py +54 -0
- stackops-26.6.3/src/stackops/architecture_graph/renderer.py +90 -0
- stackops-26.6.3/src/stackops/architecture_graph/scanner.py +106 -0
- stackops-26.6.3/src/stackops/cluster/remote/cloud_manager.py +371 -0
- stackops-26.6.3/src/stackops/cluster/remote/data_transfer.py +45 -0
- stackops-26.6.3/src/stackops/cluster/remote/distribute.py +302 -0
- stackops-26.6.3/src/stackops/cluster/remote/notification.py +32 -0
- stackops-26.6.3/src/stackops/cluster/remote/notifications.py +189 -0
- stackops-26.6.3/src/stackops/cluster/remote/remote_machine.py +274 -0
- stackops-26.6.3/src/stackops/cluster/sessions_managers/tmux/tmux_local_manager.py +183 -0
- stackops-26.6.3/src/stackops/cluster/sessions_managers/windows_terminal/wt_local.py +251 -0
- stackops-26.6.3/src/stackops/cluster/sessions_managers/windows_terminal/wt_local_manager.py +366 -0
- stackops-26.6.3/src/stackops/cluster/sessions_managers/windows_terminal/wt_remote_manager.py +314 -0
- stackops-26.6.3/src/stackops/cluster/sessions_managers/zellij/zellij_local_manager.py +447 -0
- stackops-26.6.3/src/stackops/cluster/sessions_managers/zellij/zellij_remote_manager.py +196 -0
- stackops-26.6.3/src/stackops/jobs/installer/checks/install_utils.py +159 -0
- stackops-26.6.3/src/stackops/jobs/installer/checks/vt_utils.py +179 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/alacritty.py +92 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/boxes.py +68 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/brave.py +94 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/bypass_paywall.py +84 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/cloudflare_warp_cli.py +34 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/code.py +76 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/cursor.py +124 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/docker.py +191 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/dubdb_adbc.py +39 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/espanso.py +174 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/hx.py +234 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/lvim.py +95 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/nerdfont.py +364 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/orca.py +148 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/poppler.py +68 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/redis.py +83 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/rmpc.py +474 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/sysabc.py +51 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/termusic.py +351 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/wezterm.py +83 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/winget.py +182 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/yazi.py +114 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/youtube_tui.py +357 -0
- stackops-26.6.3/src/stackops/jobs/installer/python_scripts/ytui_music.py +412 -0
- stackops-26.6.3/src/stackops/paths.py +7 -0
- stackops-26.6.3/src/stackops/profile/create_helper.py +70 -0
- stackops-26.6.3/src/stackops/profile/create_links.py +469 -0
- stackops-26.6.3/src/stackops/profile/create_links_export.py +97 -0
- stackops-26.6.3/src/stackops/profile/linking/conflict.py +33 -0
- stackops-26.6.3/src/stackops/profile/linking/operations.py +364 -0
- stackops-26.6.3/src/stackops/profile/linking/options.py +50 -0
- stackops-26.6.3/src/stackops/scripts/python/agents.py +402 -0
- stackops-26.6.3/src/stackops/scripts/python/agents_browser.py +83 -0
- stackops-26.6.3/src/stackops/scripts/python/agents_parallel.py +61 -0
- stackops-26.6.3/src/stackops/scripts/python/agents_parallel_commands.py +220 -0
- stackops-26.6.3/src/stackops/scripts/python/agents_parallel_run_command.py +111 -0
- stackops-26.6.3/src/stackops/scripts/python/agents_test_runtime.py +180 -0
- stackops-26.6.3/src/stackops/scripts/python/agents_type_fix.py +71 -0
- stackops-26.6.3/src/stackops/scripts/python/ai/initai.py +188 -0
- stackops-26.6.3/src/stackops/scripts/python/ai/scripts/models.py +175 -0
- stackops-26.6.3/src/stackops/scripts/python/ai/scripts/models_config.py +329 -0
- stackops-26.6.3/src/stackops/scripts/python/ai/scripts/models_core.py +36 -0
- stackops-26.6.3/src/stackops/scripts/python/ai/scripts/models_reports.py +186 -0
- stackops-26.6.3/src/stackops/scripts/python/ai/utils/generic.instructions.md +91 -0
- stackops-26.6.3/src/stackops/scripts/python/ai/utils/shared.py +15 -0
- stackops-26.6.3/src/stackops/scripts/python/cloud.py +120 -0
- stackops-26.6.3/src/stackops/scripts/python/devops.py +194 -0
- stackops-26.6.3/src/stackops/scripts/python/fire_jobs.py +82 -0
- stackops-26.6.3/src/stackops/scripts/python/graph/cli_graph.json +24484 -0
- stackops-26.6.3/src/stackops/scripts/python/graph/visualize/helpers_navigator/devops_navigator.py +20 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/common.py +197 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/create_options.py +413 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/main.py +226 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_codex.py +40 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_copilot.py +32 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.py +41 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_cursor_agents.py +18 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_pi.py +44 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_qwen.py +27 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_ask_impl.py +171 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_constants.py +19 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_guides.py +65 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_impl.py +181 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_create_artifacts.py +327 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_create_inputs.py +218 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_impl.py +498 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_mcp_impl.py +115 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_config.py +203 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_impl.py +179 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_yaml.py +263 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_yaml_defaults.py +56 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_rich_output.py +180 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_run_context.py +363 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_run_impl.py +258 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_skill_impl.py +110 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agents_yaml_schemas.py +28 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/__init__.py +13 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-cli.md +26 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_help_launch.py +281 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/mcp_catalog.py +350 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/mcp_install.py +637 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/mcp_types.py +46 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/reasoning_capabilities.py +91 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_cloud/backup_config.py +323 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_cloud/backup_registration.py +118 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_cloud/cloud_copy.py +488 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_cloud/cloud_mount.py +197 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_cloud/cloud_path_resolver.py +91 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_cloud/cloud_sync.py +78 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_backup_retrieve.py +335 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_config.py +418 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_config_dotfile_mapper.py +456 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_config_dotfile_transfer.py +217 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets.py +314 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_actions.py +574 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_candidates.py +309 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_support.py +484 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_data.py +309 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_device.py +234 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_nw.py +159 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_nw_vscode_share.py +159 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_repos.py +420 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_self.py +635 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/__init__.py +1 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/update_docs.py +184 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/update_installer.py +175 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/update_logic.py +253 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/update_test.py +186 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/workflow_capture.py +99 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_self_docker.py +250 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_self_docs.py +167 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_share_file.py +220 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_share_server.py +167 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/cli_share_terminal.py +217 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/devops_status.py +127 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/devops_status_checks.py +223 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/interactive.py +247 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/selection.py +49 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/run_script.py +279 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_wezterm_theme.py +112 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_devops/vault.py +580 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_env/env_manager_tui.py +227 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_env/path_manager_tui.py +250 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_fire_command/file_wrangler.py +101 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_args_helper.py +145 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +321 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_route_helper.py +103 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_network/address_switch.py +138 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_network/ftpx_impl.py +277 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_add_ssh_key.py +229 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_deploy_key_remote.py +311 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_network/wifi_conn.py +176 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_preview/preview_impl.py +329 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_preview/start_slidev.py +125 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_repos/cloud_repo_sync.py +460 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_repos/sync.py +94 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_search/script_help.py +71 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/_attach_common.py +105 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/_herdr_backend.py +445 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend.py +236 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_options.py +194 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_preview.py +322 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/_zellij_backend.py +276 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/attach_impl.py +130 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/kill_impl.py +24 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_tmux.py +218 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/sessions_impl.py +225 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/sessions_multiprocess.py +61 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_sessions/utils.py +100 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_utils/file_utils_app.py +290 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_utils/machine_utils_app.py +143 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_utils/path_helper.py +192 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_utils/processes.py +274 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_app.py +417 -0
- stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_utils/python.py +265 -0
- stackops-26.6.3/src/stackops/scripts/python/preview.py +104 -0
- stackops-26.6.3/src/stackops/scripts/python/stackops_entry.py +152 -0
- stackops-26.6.3/src/stackops/scripts/python/terminal.py +530 -0
- stackops-26.6.3/src/stackops/scripts/setup/linux/interactive.sh +31 -0
- stackops-26.6.3/src/stackops/scripts/setup/windows/interactive.ps1 +33 -0
- stackops-26.6.3/src/stackops/scripts/windows/__init__.py +1 -0
- stackops-26.6.3/src/stackops/secrets/__init__.py +1 -0
- stackops-26.6.3/src/stackops/secrets/loader.py +227 -0
- stackops-26.6.3/src/stackops/secrets/paths.py +5 -0
- stackops-26.6.3/src/stackops/secrets/readers.py +63 -0
- stackops-26.6.3/src/stackops/secrets/search.py +152 -0
- stackops-26.6.3/src/stackops/settings/ollama/__init__.py +1 -0
- stackops-26.6.3/src/stackops/settings/psmux/__init__.py +1 -0
- stackops-26.6.3/src/stackops/settings/yazi/scripts/serve_browser_file.py +251 -0
- stackops-26.6.3/src/stackops/utils/cli_utils/command_lookup.py +36 -0
- stackops-26.6.3/src/stackops/utils/cli_utils/hierarchy.py +1397 -0
- stackops-26.6.3/src/stackops/utils/cli_utils/hierarchy_types.py +1659 -0
- stackops-26.6.3/src/stackops/utils/cloud/defaults.py +31 -0
- stackops-26.6.3/src/stackops/utils/cloud/encryption.py +19 -0
- stackops-26.6.3/src/stackops/utils/cloud/rclone.py +315 -0
- stackops-26.6.3/src/stackops/utils/cloud/rclone_wrapper.py +171 -0
- stackops-26.6.3/src/stackops/utils/code.py +209 -0
- stackops-26.6.3/src/stackops/utils/files/headers.py +69 -0
- stackops-26.6.3/src/stackops/utils/files/read.py +202 -0
- stackops-26.6.3/src/stackops/utils/installer_utils/install_from_url.py +259 -0
- stackops-26.6.3/src/stackops/utils/installer_utils/install_request_logic.py +103 -0
- stackops-26.6.3/src/stackops/utils/installer_utils/installer_class.py +391 -0
- stackops-26.6.3/src/stackops/utils/installer_utils/installer_cli.py +260 -0
- stackops-26.6.3/src/stackops/utils/installer_utils/installer_explore.py +252 -0
- stackops-26.6.3/src/stackops/utils/installer_utils/installer_helper.py +175 -0
- stackops-26.6.3/src/stackops/utils/installer_utils/installer_offline_constants.py +73 -0
- stackops-26.6.3/src/stackops/utils/installer_utils/installer_offline_publish.py +103 -0
- stackops-26.6.3/src/stackops/utils/installer_utils/installer_runner.py +178 -0
- stackops-26.6.3/src/stackops/utils/io.py +318 -0
- stackops-26.6.3/src/stackops/utils/machine/__init__.py +1 -0
- stackops-26.6.3/src/stackops/utils/machine/specs.py +55 -0
- stackops-26.6.3/src/stackops/utils/meta.py +278 -0
- stackops-26.6.3/src/stackops/utils/network/__init__.py +1 -0
- stackops-26.6.3/src/stackops/utils/options_utils/options.py +322 -0
- stackops-26.6.3/src/stackops/utils/options_utils/textual_options_form.py +421 -0
- stackops-26.6.3/src/stackops/utils/options_utils/textual_options_form_types.py +22 -0
- stackops-26.6.3/src/stackops/utils/python/__init__.py +1 -0
- stackops-26.6.3/src/stackops/utils/python/imports.py +39 -0
- stackops-26.6.3/src/stackops/utils/repos/__init__.py +1 -0
- stackops-26.6.3/src/stackops/utils/repos/stackops_paths.py +39 -0
- stackops-26.6.3/src/stackops/utils/schemas/__init__.py +1 -0
- stackops-26.6.3/src/stackops/utils/schemas/fire_agents/fire_agents_input.py +61 -0
- stackops-26.6.3/src/stackops/utils/schemas/fire_agents/fire_agents_types.py +66 -0
- stackops-26.6.3/src/stackops/utils/schemas/installer/installer_data.json +6064 -0
- stackops-26.6.3/src/stackops/utils/schemas/installer/package_groups.py +311 -0
- stackops-26.6.3/src/stackops/utils/schemas/layouts/layout_types.py +94 -0
- stackops-26.6.3/src/stackops/utils/source_of_truth.py +135 -0
- stackops-26.6.3/src/stackops/utils/ssh_utils/abc.py +28 -0
- stackops-26.6.3/src/stackops/utils/ssh_utils/ssh.py +888 -0
- stackops-26.6.3/src/stackops/version.py +21 -0
- stackops-26.6.3/src/stackops.egg-info/PKG-INFO +118 -0
- stackops-26.6.3/src/stackops.egg-info/SOURCES.txt +952 -0
- stackops-26.6.1/PKG-INFO +0 -118
- stackops-26.6.1/pyproject.toml +0 -163
- stackops-26.6.1/src/manual/test_secrets_schema.py +0 -47
- stackops-26.6.1/src/manual/test_stackops_versioning.py +0 -42
- stackops-26.6.1/src/stackops/cluster/remote/cloud_manager.py +0 -371
- stackops-26.6.1/src/stackops/cluster/remote/data_transfer.py +0 -45
- stackops-26.6.1/src/stackops/cluster/remote/distribute.py +0 -302
- stackops-26.6.1/src/stackops/cluster/remote/notification.py +0 -32
- stackops-26.6.1/src/stackops/cluster/remote/remote_machine.py +0 -274
- stackops-26.6.1/src/stackops/cluster/sessions_managers/tmux/tmux_local_manager.py +0 -183
- stackops-26.6.1/src/stackops/cluster/sessions_managers/windows_terminal/wt_local.py +0 -253
- stackops-26.6.1/src/stackops/cluster/sessions_managers/windows_terminal/wt_local_manager.py +0 -371
- stackops-26.6.1/src/stackops/cluster/sessions_managers/windows_terminal/wt_remote_manager.py +0 -314
- stackops-26.6.1/src/stackops/cluster/sessions_managers/zellij/zellij_local_manager.py +0 -447
- stackops-26.6.1/src/stackops/cluster/sessions_managers/zellij/zellij_remote_manager.py +0 -196
- stackops-26.6.1/src/stackops/jobs/installer/checks/install_utils.py +0 -158
- stackops-26.6.1/src/stackops/jobs/installer/checks/vt_utils.py +0 -179
- stackops-26.6.1/src/stackops/jobs/installer/package_groups.py +0 -310
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/alacritty.py +0 -92
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/boxes.py +0 -68
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/brave.py +0 -93
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/bypass_paywall.py +0 -84
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/cloudflare_warp_cli.py +0 -34
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/code.py +0 -76
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/cursor.py +0 -124
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/docker.py +0 -190
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/dubdb_adbc.py +0 -39
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/espanso.py +0 -174
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/hx.py +0 -234
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/lvim.py +0 -95
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/nerdfont.py +0 -364
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/orca.py +0 -148
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/poppler.py +0 -68
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/redis.py +0 -83
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/rmpc.py +0 -474
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/sysabc.py +0 -50
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/termusic.py +0 -351
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/wezterm.py +0 -83
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/winget.py +0 -182
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/yazi.py +0 -114
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/youtube_tui.py +0 -356
- stackops-26.6.1/src/stackops/jobs/installer/python_scripts/ytui_music.py +0 -412
- stackops-26.6.1/src/stackops/profile/create_helper.py +0 -75
- stackops-26.6.1/src/stackops/profile/create_links.py +0 -468
- stackops-26.6.1/src/stackops/profile/create_links_export.py +0 -155
- stackops-26.6.1/src/stackops/scripts/linux/__init__.py +0 -1
- stackops-26.6.1/src/stackops/scripts/nu/__init__.py +0 -1
- stackops-26.6.1/src/stackops/scripts/python/agents.py +0 -325
- stackops-26.6.1/src/stackops/scripts/python/agents_browser.py +0 -83
- stackops-26.6.1/src/stackops/scripts/python/agents_parallel.py +0 -61
- stackops-26.6.1/src/stackops/scripts/python/agents_parallel_commands.py +0 -194
- stackops-26.6.1/src/stackops/scripts/python/agents_parallel_run_command.py +0 -110
- stackops-26.6.1/src/stackops/scripts/python/ai/initai.py +0 -188
- stackops-26.6.1/src/stackops/scripts/python/ai/scripts/models.py +0 -186
- stackops-26.6.1/src/stackops/scripts/python/ai/scripts/models_config.py +0 -329
- stackops-26.6.1/src/stackops/scripts/python/ai/scripts/models_reports.py +0 -186
- stackops-26.6.1/src/stackops/scripts/python/ai/utils/shared.py +0 -18
- stackops-26.6.1/src/stackops/scripts/python/cloud.py +0 -117
- stackops-26.6.1/src/stackops/scripts/python/devops.py +0 -177
- stackops-26.6.1/src/stackops/scripts/python/fire_jobs.py +0 -80
- stackops-26.6.1/src/stackops/scripts/python/graph/cli_graph.json +0 -24162
- stackops-26.6.1/src/stackops/scripts/python/graph/visualize/helpers_navigator/devops_navigator.py +0 -20
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/common.py +0 -197
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/create_options.py +0 -413
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/main.py +0 -226
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_codex.py +0 -40
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_copilot.py +0 -32
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.py +0 -41
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_cursor_agents.py +0 -18
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_pi.py +0 -44
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_qwen.py +0 -27
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_ask_impl.py +0 -171
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_constants.py +0 -17
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_guides.py +0 -61
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_impl.py +0 -158
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_create_artifacts.py +0 -327
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_create_inputs.py +0 -218
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_impl.py +0 -521
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_mcp_impl.py +0 -115
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_config.py +0 -203
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_impl.py +0 -175
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_yaml.py +0 -263
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_yaml_defaults.py +0 -56
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_rich_output.py +0 -180
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_run_context.py +0 -363
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_run_impl.py +0 -252
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_skill_impl.py +0 -110
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agents_yaml_schemas.py +0 -28
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/__init__.py +0 -12
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_help_launch.py +0 -281
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_helper_types.py +0 -83
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/mcp_catalog.py +0 -350
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/mcp_install.py +0 -637
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/mcp_types.py +0 -46
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/reasoning_capabilities.py +0 -91
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_cloud/cloud_copy.py +0 -452
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_cloud/cloud_mount.py +0 -197
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_cloud/cloud_path_resolver.py +0 -91
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_cloud/cloud_sync.py +0 -78
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/backup_config.py +0 -323
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_backup_retrieve.py +0 -438
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_config.py +0 -418
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_config_dotfile_mapper.py +0 -454
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_config_dotfile_transfer.py +0 -217
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets.py +0 -308
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_actions.py +0 -506
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_candidates.py +0 -309
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_support.py +0 -484
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_data.py +0 -309
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_device.py +0 -232
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_nw.py +0 -158
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_nw_vscode_share.py +0 -159
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_repos.py +0 -420
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_self.py +0 -600
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/update_docs.py +0 -184
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/update_installer.py +0 -175
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/update_logic.py +0 -253
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/update_test.py +0 -186
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/workflow_capture.py +0 -99
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_self_docker.py +0 -249
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_self_docs.py +0 -167
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_share_file.py +0 -218
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_share_server.py +0 -167
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_share_terminal.py +0 -216
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/devops_status.py +0 -127
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/devops_status_checks.py +0 -223
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/interactive.py +0 -247
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/selection.py +0 -49
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/run_script.py +0 -238
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_wezterm_theme.py +0 -112
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/vault.py +0 -579
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_env/env_manager_tui.py +0 -227
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_env/path_manager_tui.py +0 -250
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_fire_command/file_wrangler.py +0 -151
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_args_helper.py +0 -144
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +0 -293
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_route_helper.py +0 -103
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_network/address_switch.py +0 -138
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_network/ftpx_impl.py +0 -277
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_add_ssh_key.py +0 -229
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_deploy_key_remote.py +0 -311
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_network/wifi_conn.py +0 -175
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_preview/preview_impl.py +0 -329
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_preview/start_slidev.py +0 -125
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_repos/cloud_repo_sync.py +0 -459
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_repos/sync.py +0 -93
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_search/script_help.py +0 -70
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/_herdr_backend.py +0 -446
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend.py +0 -207
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_options.py +0 -143
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_preview.py +0 -204
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/_zellij_backend.py +0 -277
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/attach_impl.py +0 -130
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/kill_impl.py +0 -23
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_tmux.py +0 -218
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/sessions_impl.py +0 -225
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/sessions_multiprocess.py +0 -61
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_sessions/utils.py +0 -100
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_utils/file_utils_app.py +0 -290
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_utils/machine_utils_app.py +0 -139
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_app.py +0 -419
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_utils/python.py +0 -325
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_utils/test_runtime.py +0 -180
- stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_utils/type_fix.py +0 -71
- stackops-26.6.1/src/stackops/scripts/python/preview.py +0 -104
- stackops-26.6.1/src/stackops/scripts/python/stackops_entry.py +0 -151
- stackops-26.6.1/src/stackops/scripts/python/terminal.py +0 -520
- stackops-26.6.1/src/stackops/scripts/setup/linux/interactive.sh +0 -31
- stackops-26.6.1/src/stackops/scripts/setup/windows/interactive.ps1 +0 -33
- stackops-26.6.1/src/stackops/scripts/windows/__init__.py +0 -1
- stackops-26.6.1/src/stackops/secrets.py +0 -165
- stackops-26.6.1/src/stackops/settings/yazi/scripts/serve_browser_file.py +0 -251
- stackops-26.6.1/src/stackops/utils/cli_utils/hierarchy.py +0 -1388
- stackops-26.6.1/src/stackops/utils/cli_utils/hierarchy_types.py +0 -1648
- stackops-26.6.1/src/stackops/utils/cloud_defaults.py +0 -31
- stackops-26.6.1/src/stackops/utils/code.py +0 -231
- stackops-26.6.1/src/stackops/utils/encryption.py +0 -14
- stackops-26.6.1/src/stackops/utils/files/headers.py +0 -69
- stackops-26.6.1/src/stackops/utils/files/read.py +0 -148
- stackops-26.6.1/src/stackops/utils/installer_utils/install_from_url.py +0 -259
- stackops-26.6.1/src/stackops/utils/installer_utils/install_request_logic.py +0 -86
- stackops-26.6.1/src/stackops/utils/installer_utils/installer_class.py +0 -392
- stackops-26.6.1/src/stackops/utils/installer_utils/installer_cli.py +0 -260
- stackops-26.6.1/src/stackops/utils/installer_utils/installer_explore.py +0 -252
- stackops-26.6.1/src/stackops/utils/installer_utils/installer_helper.py +0 -175
- stackops-26.6.1/src/stackops/utils/installer_utils/installer_offline_constants.py +0 -72
- stackops-26.6.1/src/stackops/utils/installer_utils/installer_offline_publish.py +0 -107
- stackops-26.6.1/src/stackops/utils/installer_utils/installer_runner.py +0 -198
- stackops-26.6.1/src/stackops/utils/io.py +0 -373
- stackops-26.6.1/src/stackops/utils/links.py +0 -364
- stackops-26.6.1/src/stackops/utils/meta.py +0 -258
- stackops-26.6.1/src/stackops/utils/notifications.py +0 -188
- stackops-26.6.1/src/stackops/utils/options.py +0 -324
- stackops-26.6.1/src/stackops/utils/options_utils/__init__.py +0 -0
- stackops-26.6.1/src/stackops/utils/options_utils/textual_options_form.py +0 -338
- stackops-26.6.1/src/stackops/utils/options_utils/textual_options_form_types.py +0 -109
- stackops-26.6.1/src/stackops/utils/path_helper.py +0 -192
- stackops-26.6.1/src/stackops/utils/procs.py +0 -274
- stackops-26.6.1/src/stackops/utils/rclone.py +0 -177
- stackops-26.6.1/src/stackops/utils/rclone_wrapper.py +0 -165
- stackops-26.6.1/src/stackops/utils/repo_stackops.py +0 -39
- stackops-26.6.1/src/stackops/utils/schemas/fire_agents/fire_agents_input.py +0 -63
- stackops-26.6.1/src/stackops/utils/schemas/installer/installer_data.json +0 -6001
- stackops-26.6.1/src/stackops/utils/schemas/layouts/layout_types.py +0 -70
- stackops-26.6.1/src/stackops/utils/schemas/secrets/secrets.example.json +0 -49
- stackops-26.6.1/src/stackops/utils/schemas/secrets/secrets.schema.json +0 -182
- stackops-26.6.1/src/stackops/utils/schemas/secrets/secrets_loader.py +0 -227
- stackops-26.6.1/src/stackops/utils/source_of_truth.py +0 -207
- stackops-26.6.1/src/stackops/utils/ssh.py +0 -468
- stackops-26.6.1/src/stackops/utils/ssh_utils/abc.py +0 -5
- stackops-26.6.1/src/stackops/utils/ssh_utils/copy_from_here.py +0 -158
- stackops-26.6.1/src/stackops/utils/ssh_utils/copy_to_here.py +0 -300
- stackops-26.6.1/src/stackops/utils/ssh_utils/utils.py +0 -133
- stackops-26.6.1/src/stackops.egg-info/PKG-INFO +0 -118
- stackops-26.6.1/src/stackops.egg-info/SOURCES.txt +0 -927
- {stackops-26.6.1 → stackops-26.6.3}/MANIFEST.in +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/README.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/setup.cfg +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/manual/test_path_references.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/manual/test_stackops_skill_refs.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/__init__.py +0 -0
- {stackops-26.6.1/src/stackops/cluster/sessions_managers/utils → stackops-26.6.3/src/stackops/architecture_graph}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/remote/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/remote/execution_script.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/remote/file_manager.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/remote/job_params.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/remote/models.py +0 -0
- {stackops-26.6.1/src/stackops/utils → stackops-26.6.3/src/stackops/cluster}/scheduler.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/helpers/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/session_conflict.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/session_exit_mode.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/tmux/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/tmux/tmux_local.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_common.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_execution.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_layout.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_status.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/ai/solutions/antigravity → stackops-26.6.3/src/stackops/cluster/sessions_managers/utils}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/utils/load_balancer.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/utils/maker.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/__init__.py +0 -0
- {stackops-26.6.1/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/examples → stackops-26.6.3/src/stackops/cluster/sessions_managers/windows_terminal}/wt_local_manager_demo.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_remote.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/examples/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/layout_generator.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/local_monitoring.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/manager_persistence.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/monitoring_helpers.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/process_monitor.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/remote_executor.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/session_manager.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/status_reporter.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/status_reporting.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/windows_terminal/wt_utils/wt_helpers.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_local.py +0 -0
- {stackops-26.6.1/src/stackops/cluster/sessions_managers/zellij/zellij_utils → stackops-26.6.3/src/stackops/cluster/sessions_managers/zellij}/zellij_local_manager_helper.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_remote.py +0 -0
- /stackops-26.6.1/src/stackops/cluster/sessions_managers/zellij/zellij_utils/example_usage.py → /stackops-26.6.3/src/stackops/cluster/sessions_managers/zellij/zellij_remote_example.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/layout_generator.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/monitoring_types.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/process_monitor.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/remote_executor.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/session_manager.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/status_reporter.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/zellij_local_helper.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/zellij_local_helper_restart.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/cluster/sessions_managers/zellij/zellij_utils/zellij_local_helper_with_panes.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/agents/mcps/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/agents/mcps/mcp.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/agents/mcps/mcp.schema.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/checks/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/checks/check_installations.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/checks/report_utils.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/checks/security_cli.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/checks/security_helper.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/brave.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/cloudflare_warp_cli.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/edge.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/network.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/ngrok.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/oz.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/q.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/redis.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/sysabc_macos.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/sysabc_ubuntu.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/vscode.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/linux_scripts/wezterm.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/macos_scripts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/powershell_scripts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/powershell_scripts/nerdfonts.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/powershell_scripts/sysabc.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/powershell_scripts/texlive.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/python_scripts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/python_scripts/goes.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/installer/todo.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts/bash_scripts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts/bash_scripts/hollywood.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts/bash_scripts/lid.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts/bash_scripts/weather +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts/powershell_scripts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts/powershell_scripts/cmatrix.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts/powershell_scripts/weather.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts_dynamic/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts_dynamic/download_stackops_offline_installer.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts_dynamic/download_stackops_offline_installer.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/jobs/scripts_dynamic/system_compute_analyzer.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/logger.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/profile/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/profile/create_shell_profile.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/profile/dotfiles_mapper.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/ai/solutions/forge → stackops-26.6.3/src/stackops/profile/linking}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/__init__.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/ai/solutions/oz → stackops-26.6.3/src/stackops/scripts/linux}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/linux/wrap_stackops +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/ai/solutions/pi → stackops-26.6.3/src/stackops/scripts/nu}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/nu/wrap_stackops.nu +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/scripts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/scripts/command_runner.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/scripts/command_runner.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/scripts/dashboard.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/scripts/lint_and_type_check.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/scripts/models_diagnostics.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/scripts/models_json.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/scripts/paths.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/__init__.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive → stackops-26.6.3/src/stackops/scripts/python/ai/solutions/antigravity}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/antigravity/antigravity.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/auggie/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/auggie/auggie.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/claude/claude.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/cline/cline.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/codex/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/codex/codex.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/codex/config.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/agents/Thinking-Beast-Mode.agent.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/agents/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/agents/deepResearch.agent.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/instructions/archive/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/instructions/archive/watch_exec.prompt.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/instructions/python/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/prompts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/crush/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/crush/crush.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/crush/crush.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/crush/privacy.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/cursor/cursors.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/droid/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/droid/droid.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/auggie → stackops-26.6.3/src/stackops/scripts/python/ai/solutions/forge}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/forge/forge.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/kilocode/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/kilocode/kilocode.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/opencode/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/opencode/opencode.jsonc +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/opencode/opencode.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/chatgpt → stackops-26.6.3/src/stackops/scripts/python/ai/solutions/oz}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/oz/oz.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cline → stackops-26.6.3/src/stackops/scripts/python/ai/solutions/pi}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/pi/pi.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/q/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/q/amazon_q.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/qwen_code/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/qwen_code/qwen_code.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/warp/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/solutions/warp/warp.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/utils/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/utils/generate_files.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/utils/generic.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ai/utils/vscode_tasks.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/enums.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/ftpx.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_apps.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_eval.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_node_utils.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_nodes.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_registration.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_resolver.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_shared.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_signature.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_targets.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_tree.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/cli_graph_values.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/generate_cli_graph.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/cli_graph_app.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/cli_graph_search.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/cli_graph_typer_app.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/dot_export.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/graph_data.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/graph_paths.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/helpers_navigator/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/helpers_navigator/cli_graph_loader.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/helpers_navigator/command_builder.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/helpers_navigator/command_detail.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/helpers_navigator/command_tree.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/helpers_navigator/data_models.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/helpers_navigator/main_app.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/helpers_navigator/search_bar.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/plotly_browser.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/plotly_views.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/graph/visualize/rich_tree.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/__init__.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/codex → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_resolution.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_add_entry.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/agents_shell.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/agent-browser.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/chrome-devtools-mcp-browser-url.mcp.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/chrome-devtools-mcp.mcp.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/chrome-devtools-mcp.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-cdp.mcp.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-extension.mcp.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-storage-state.mcp.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-user-data-dir.mcp.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp.mcp.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_help_search.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_load_balancer.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/aichat/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/aichat/config.yaml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/aider/.aider.conf.yml +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cursor → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/auggie}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/auggie/auggie_privacy.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/droid → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/chatgpt}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/chatgpt/chatgpt_privacy.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/kilocode → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cline}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cline/cline_privacy.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/mods → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/codex}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/codex/codex_privacy.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/common/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/common/privacy_orchestrator.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/copilot/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/copilot/config.yml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/crush/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/crush/crush.json +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/q → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cursor}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cursor/cursor_privacy.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/qwen → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/droid}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/droid/droid_privacy.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/kilocode}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/kilocode/kilocode_privacy.py +0 -0
- {stackops-26.6.1/src/stackops/settings/ollama → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/mods}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/mods/mods_privacy.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/opencode/__init__.py +0 -0
- {stackops-26.6.1/src/stackops/settings/psmux → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/q}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/q/q_privacy.py +0 -0
- {stackops-26.6.1/src/stackops/utils/schemas → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/qwen}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/qwen/qwen_privacy.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/privacy/privacy.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/templates/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/templates/prompt.txt +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/templates/template.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_agents/templates/template.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_cloud/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_helpers.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_mount_tmux.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_mount_zellij.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_mount.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_interactive.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_terminal.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_tmux.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/app.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_ai/workflows_yaml.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_assets.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_share_temp.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_ssh.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/cli_vault.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/devops_status_display.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/devops_update_repos.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/commands.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/device_entry.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/devices.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/linux.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/macos.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/utils.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/windows.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/register_interactive.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/stackops_skill_refs.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/themes/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_pwsh_theme.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_windows_terminal_theme.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_env/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_env/path_manager_backend.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_fire_command/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_fire_command/cloud_manager.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_fire_command/f.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/onetimeshare.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/ssh/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_add_key_windows.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_cloud_init.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_darwin.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_darwin_utils.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_linux.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_linux_utils.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_windows.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_windows_utils.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/common.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/darwin.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/linux.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/unsupported.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/windows.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_preview/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_preview/pomodoro.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_preview/preview_read.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_preview/scheduler.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_preview/viewer.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_preview/viewer_template.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/action.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/action_helper.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/clone.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/cloud_repo_sync_conflicts.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/grource.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/record.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/repo_analyzer_1.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/repo_analyzer_2.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/spec_store.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_repos/update.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_search/ast_search.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_search/qr_code.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_search/repo_rag.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_search/semantic_search.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_seek/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_seek/scripts_linux/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_seek/scripts_linux/fzfg +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_seek/scripts_linux/search_with_context.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_seek/scripts_macos/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_seek/scripts_macos/fzfg +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_seek/scripts_windows/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_seek/scripts_windows/fzfg.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_seek/seek_impl.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_processes.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/_zellij_backend_focus.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/_zellij_backend_layout.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/_zellij_backend_metadata.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/_zellij_backend_options.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/_zellij_backend_preview.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_zellij.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_aoe_impl.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_common.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_run.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_run_all.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_run_aoe.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic_display.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic_tmux.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic_zellij.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_layout_source.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_test_layouts.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_trace.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_utils/path_reference_validation.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_utils/pdf.py +0 -0
- {stackops-26.6.1/src/stackops/utils → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_utils}/python_env.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_utils/read_db_cli_tui.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_utils/read_db_cli_tui_backend.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_utils/scrape.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_utils/specs.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/helpers/helpers_utils/surya.py +0 -0
- {stackops-26.6.1/src/stackops/utils → stackops-26.6.3/src/stackops/scripts/python/helpers/helpers_utils}/upgrade_packages.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/seek.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/python/utils.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/linux/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/linux/apps_desktop.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/linux/live_from_github.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/linux/uv.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/macos/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/macos/uv.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/windows/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/windows/live_from_github.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/windows/quick_init.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/setup/windows/uv.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/scripts/windows/wrap_stackops.ps1 +0 -0
- /stackops-26.6.1/src/stackops/utils/schemas/secrets/__init__.py → /stackops-26.6.3/src/stackops/secrets/assets.py +0 -0
- /stackops-26.6.1/src/stackops/utils/schemas/secrets/secrets_types.py → /stackops-26.6.3/src/stackops/secrets/models.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/atuin/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/atuin/config.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/atuin/themes/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/atuin/themes/catppuccin-mocha-mauve.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/broot/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/broot/br.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/broot/brootcd.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/broot/conf.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/glow/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/glow/glow.yml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/gromit-mpx/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/gromit-mpx/gromit-mpx.cfg +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/helix/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/helix/config.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/helix/languages.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/helix/yazi-picker.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/keras/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/keras/keras.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/keyboard/espanso/config/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/keyboard/espanso/config/default.yml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/keyboard/espanso/match/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/keyboard/espanso/match/base.yml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/keyboard/kanata/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/keyboard/kanata/kanata.kbd +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/autocall/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/autocall/delete.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/autocall/on-cd.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/autocall/on-quit.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/autocall/open.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/autocall/paste.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/autocall/pre-cd.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/autocall/rename.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/colors +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/exe/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/exe/cleaner.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/exe/lfcd.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/exe/previewer.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/exe/previewer_archive.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/icons +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/linux/lfrc +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/autocall/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/autocall/delete.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/autocall/open.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/autocall/paste.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/autocall/rename.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/cd_tere.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/cd_zoxide.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/cd_zoxide2.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/colors +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/icons +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/leftpane_previewer.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/lfcd.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/lfrc +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/mkdir.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/mkfile.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lf/windows/previewer.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/linters/.flake8 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/linters/.mypy.ini +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/linters/.pylintrc +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/linters/.ruff.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/linters/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/linters/pyrefly.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/linters/ty.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lvim/linux/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lvim/linux/config.lua +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lvim/windows/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lvim/windows/archive/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lvim/windows/archive/config_additional.lua +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lvim/windows/config.lua +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lvim/windows/lua/user/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/lvim/windows/lua/user/custom_config.lua +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/marimo/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/marimo/marimo.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/marimo/snippets/globalize.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/mprocs/windows/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/mprocs/windows/mprocs.yaml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/mprocs/windows/other +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/ollama/server.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/pistol/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/pistol/pistol.conf +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/presenterm/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/presenterm/config.yaml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/procs/.procs.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/psmux/description.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/psmux/install-ppm.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/psmux/psmux.bindings.conf +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/psmux/psmux.conf +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/psmux/psmux.local.conf +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/psmux/psmux.plugins.conf +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/psmux/psmux.powerline.conf +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/psmux/psmux.theme.conf +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/pudb/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/pudb/pudb.cfg +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/rofi/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/rofi/config.rasi +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/rofi/config_default.rasi +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/alacritty/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/alacritty/alacritty.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/alacritty/alacritty.yml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/bash/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/bash/init.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/ghostty/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/ghostty/config +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/hyper/.hyper.js +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/ipy/profiles/default/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/kitty/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/kitty/kitty.conf +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/nushell/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/nushell/config.nu +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/nushell/env.nu +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/nushell/init.nu +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/pwsh/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/pwsh/init.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/pwsh/search_pwsh_history.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/starship/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/starship/starship.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/vtm/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/vtm/settings.xml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/wezterm/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/wezterm/wezterm.lua +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/wt/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/wt/settings.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/zsh/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/shells/zsh/init.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/streamlit/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/streamlit/config.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/svim/linux/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/svim/linux/init.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/svim/windows/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/svim/windows/init.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/alias.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/apt-packages.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/aws-buckets.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/aws-instances.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/bash-history.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/brew-packages.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/channels.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/dirs.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/diskutil.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/distrobox-list.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/docker-images.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/dotfiles.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/downloads.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/env.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/figlet-fonts.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/files.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/fish-history.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/fonts.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/git-branch.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/git-diff.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/git-files.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/git-log.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/git-reflog.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/git-repos.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/git-tags.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/git-worktrees.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/guix.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/images.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/just-recipes.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/k8s-deployments.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/k8s-pods.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/k8s-services.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/linux-disks.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/man-pages.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/mounts.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/npm-packages.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/nu-history.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/path.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/ports.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/procs.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/python-venvs.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/recent-files.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/sesh.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/text.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/tldr.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/tmux-sessions.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/tmux-windows.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/todo-comments.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/trash.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/unicode.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/wifi.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/zoxide.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_unix/zsh-history.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/alias.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/dirs.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/docker-images.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/dotfiles.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/env.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/files.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/git-branch.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/git-diff.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/git-log.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/git-reflog.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/git-repos.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/nu-history.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/pwsh-history.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/television/cable_windows/text.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/tere/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/tere/terecd.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/tere/terecd.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/tmux/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/tmux/tmux.conf.local +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/tv/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/tv/config.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/tv/themes/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/tv/themes/catppuccin-mocha-sky.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/wsl/.wslconfig +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/wt/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/wt/set_wt_settings.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/init.lua +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/keymap_darwin.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/keymap_linux.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/keymap_windows.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/scripts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/scripts/compress_selected.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/scripts/copy_file_content.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/scripts/fullscreen_preview.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/scripts/interactive_view.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/scripts/open_db_readonly.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/scripts/open_default_app.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/shell/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/shell/yazi_cd.ps1 +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/shell/yazi_cd.sh +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/theme.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/yazi_darwin.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/yazi_linux.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/yazi/yazi_windows.toml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zed/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zed/settings.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/commands/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/commands/monitor +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/commands/standard_panes +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/config.kdl +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/layouts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/layouts/hist +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/layouts/panes.kdl +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/layouts/st.kdl +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/layouts/st2.kdl +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/settings/zellij/layouts/stacked_panes.kdl +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/accessories.py +0 -0
- {stackops-26.6.1/src/stackops/utils/ai → stackops-26.6.3/src/stackops/utils/cli_utils}/__init__.py +0 -0
- {stackops-26.6.1/src/stackops/utils → stackops-26.6.3/src/stackops/utils/cli_utils}/terminal.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/cloud/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/cloud/onedrive/README.md +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/cloud/onedrive/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/cloud/onedrive/auth.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/cloud/onedrive/file_ops.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/cloud/onedrive/setup_oauth.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/art/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/art/fat_croco.txt +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/art/halfwit_croco.txt +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/art/happy_croco.txt +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/art/water_croco.txt +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/ascii_art.py +0 -0
- /stackops-26.6.1/src/stackops/utils/path_compression.py → /stackops-26.6.3/src/stackops/utils/files/compression.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/dbms.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_utils → stackops-26.6.3/src/stackops/utils/files}/download.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/f.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/notebook.py +0 -0
- {stackops-26.6.1/src/stackops/utils/cli_utils → stackops-26.6.3/src/stackops/utils/files/ouch}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/files/ouch/decompress.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/github_release_bulk.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/github_release_scraper.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/installer_locator_utils.py +0 -0
- /stackops-26.6.1/src/stackops/jobs/installer/python_scripts/main_protocol.py → /stackops-26.6.3/src/stackops/utils/installer_utils/installer_main_protocol.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/installer_offline.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/installer_offline_models.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/installer_offline_render.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/installer_offline_scripts.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/installer_offline_steps.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/installer_offline_uv.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/installer_utils/installer_summary.py +0 -0
- {stackops-26.6.1/src/stackops/scripts/python/helpers/helpers_network → stackops-26.6.3/src/stackops/utils/network}/address.py +0 -0
- {stackops-26.6.1/src/stackops/utils/files/ouch → stackops-26.6.3/src/stackops/utils/options_utils}/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/options_utils/options_tv_linux.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/options_utils/options_tv_windows.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/options_utils/tv_options.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/path_core.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/path_reference.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/agents/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/agents/parallel.schema.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/agents/prompts.schema.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/config/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/config/config.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/config/config.schema.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/config/config_types.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/fire_agents/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/installer/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/installer/installer_type.schema.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/installer/installer_types.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/layouts/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/layouts/layout.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/layouts/layout.schema.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/mapper/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/mapper/data.schema.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/mapper/data.yaml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/mapper/dotfiles.schema.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/mapper/dotfiles.yaml +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/repos/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/repos/repos_schema.json +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/schemas/repos/repos_types.py +0 -0
- {stackops-26.6.1/src/stackops/utils → stackops-26.6.3/src/stackops/utils/schemas}/yaml_schema.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/ssh_utils/__init__.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/ssh_utils/wsl.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops/utils/ssh_utils/wsl_helper.py +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops.egg-info/dependency_links.txt +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops.egg-info/entry_points.txt +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops.egg-info/requires.txt +0 -0
- {stackops-26.6.1 → stackops-26.6.3}/src/stackops.egg-info/top_level.txt +0 -0
stackops-26.6.3/PKG-INFO
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: stackops
|
|
3
|
+
Version: 26.6.3
|
|
4
|
+
Summary: Developer Stack Manager
|
|
5
|
+
Author-email: Alex Al-Saffar <programmer@usa.com>
|
|
6
|
+
License: Apache 2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/thisismygitrepo/stackops
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/thisismygitrepo/stackops/issues
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Requires-Python: >=3.13
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
Requires-Dist: fire>=0.7.1
|
|
15
|
+
Requires-Dist: gitpython>=3.1.46
|
|
16
|
+
Requires-Dist: joblib>=1.5.3
|
|
17
|
+
Requires-Dist: paramiko>=4.0.0
|
|
18
|
+
Requires-Dist: psutil>=7.2.2
|
|
19
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
20
|
+
Requires-Dist: questionary>=2.1.1
|
|
21
|
+
Requires-Dist: randomname>=0.2.1
|
|
22
|
+
Requires-Dist: requests>=2.32.5
|
|
23
|
+
Requires-Dist: rich>=14.3.3
|
|
24
|
+
Requires-Dist: tenacity>=9.1.4
|
|
25
|
+
Requires-Dist: typer>=0.24.1
|
|
26
|
+
Provides-Extra: windows
|
|
27
|
+
Provides-Extra: plot
|
|
28
|
+
|
|
29
|
+
<div align="center">
|
|
30
|
+
|
|
31
|
+
<h1>🗜 StackOps</h1>
|
|
32
|
+
|
|
33
|
+
<strong>Digital Life Manager.</strong>
|
|
34
|
+
|
|
35
|
+
<p>
|
|
36
|
+
<a href="https://thisismygitrepo.github.io/stackops/"><img alt="Docs" src="https://img.shields.io/badge/docs-online-2f6f6f"></a>
|
|
37
|
+
<a href="https://pypi.org/project/stackops/"><img alt="PyPI package" src="https://img.shields.io/pypi/v/stackops?color=2f6f6f"></a>
|
|
38
|
+
<img alt="Python 3.13+" src="https://img.shields.io/badge/python-3.13%2B-3776AB">
|
|
39
|
+
<img alt="Installed with uv" src="https://img.shields.io/badge/install-uv-f05d23">
|
|
40
|
+
</p>
|
|
41
|
+
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
StackOps is a cross-platform CLI for managing your development stack. It is package installer, configurator, dotfile/secrets manager, data and code sync solution, command launcher, processes orchestator (is there anything else?) all wrapped into one solution. As such, it should take a few minutes to make a fresh new machine to look like the machine you were customizing for 10 years.
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
| Before | After |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
|  |  |
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
See the [online docs](https://thisismygitrepo.github.io/stackops/) for full usage and reference material.
|
|
53
|
+
|
|
54
|
+
## Install
|
|
55
|
+
|
|
56
|
+
Choose your platform and expand only the commands you need.
|
|
57
|
+
|
|
58
|
+
<details>
|
|
59
|
+
<summary><strong>Linux</strong></summary>
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
63
|
+
uv tool install --upgrade --python 3.14 stackops
|
|
64
|
+
stackops --help
|
|
65
|
+
# OR: . < (curl -L https://bit.ly/sopsu)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
</details>
|
|
69
|
+
|
|
70
|
+
<details>
|
|
71
|
+
<summary><strong>macOS</strong></summary>
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
75
|
+
uv tool install --upgrade --python 3.14 stackops
|
|
76
|
+
stackops --help
|
|
77
|
+
# OR: . < (curl -L https://bit.ly/sopsu)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
</details>
|
|
81
|
+
|
|
82
|
+
<details>
|
|
83
|
+
<summary><strong>Windows PowerShell</strong></summary>
|
|
84
|
+
|
|
85
|
+
```powershell
|
|
86
|
+
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
87
|
+
uv tool install --upgrade --python 3.14 stackops
|
|
88
|
+
stackops --help
|
|
89
|
+
# OR: irm bit.ly/sopsw | iex
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
</details>
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
## Quick Init
|
|
96
|
+
|
|
97
|
+
Run these once StackOps is installed.
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
devops install --group sysabc
|
|
101
|
+
devops config copy-assets all
|
|
102
|
+
devops config sync down \
|
|
103
|
+
--sensitivity public \
|
|
104
|
+
--method copy \
|
|
105
|
+
--on-conflict overwrite-default-path \
|
|
106
|
+
--which all
|
|
107
|
+
devops config terminal config-shell --which default
|
|
108
|
+
devops install --group termabc
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
## Author
|
|
113
|
+
|
|
114
|
+
Alex Al-Saffar. [email](mailto:programmer@usa.com)
|
|
115
|
+
|
|
116
|
+
## Contributor
|
|
117
|
+
|
|
118
|
+
Ruby Chan. [email](mailto:ruby.chan@sa.gov.au)
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=80", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
# requires = ["hatchling"]
|
|
5
|
+
# build-backend = "hatchling.build"
|
|
6
|
+
|
|
7
|
+
[project]
|
|
8
|
+
name = "stackops"
|
|
9
|
+
version = "26.6.3"
|
|
10
|
+
description = "Developer Stack Manager"
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
license = {text = "Apache 2.0"}
|
|
13
|
+
authors = [
|
|
14
|
+
{name = "Alex Al-Saffar", email = "programmer@usa.com"},
|
|
15
|
+
]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"License :: OSI Approved :: Apache Software License",
|
|
19
|
+
"Operating System :: OS Independent",
|
|
20
|
+
]
|
|
21
|
+
requires-python = ">=3.13"
|
|
22
|
+
dependencies = [
|
|
23
|
+
"fire>=0.7.1",
|
|
24
|
+
"gitpython>=3.1.46",
|
|
25
|
+
"joblib>=1.5.3",
|
|
26
|
+
"paramiko>=4.0.0",
|
|
27
|
+
"psutil>=7.2.2",
|
|
28
|
+
"pyyaml>=6.0.3",
|
|
29
|
+
"questionary>=2.1.1",
|
|
30
|
+
"randomname>=0.2.1",
|
|
31
|
+
"requests>=2.32.5",
|
|
32
|
+
"rich>=14.3.3",
|
|
33
|
+
"tenacity>=9.1.4",
|
|
34
|
+
"typer>=0.24.1",
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
[project.optional-dependencies]
|
|
38
|
+
windows = []
|
|
39
|
+
plot = [
|
|
40
|
+
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
[project.urls]
|
|
45
|
+
"Homepage" = "https://github.com/thisismygitrepo/stackops"
|
|
46
|
+
"Bug Tracker" = "https://github.com/thisismygitrepo/stackops/issues"
|
|
47
|
+
|
|
48
|
+
[project.scripts]
|
|
49
|
+
devops = "stackops.scripts.python.devops:main"
|
|
50
|
+
cloud = "stackops.scripts.python.cloud:main"
|
|
51
|
+
fire = "stackops.scripts.python.fire_jobs:main"
|
|
52
|
+
agents = "stackops.scripts.python.agents:main"
|
|
53
|
+
terminal = "stackops.scripts.python.terminal:main"
|
|
54
|
+
preview = "stackops.scripts.python.preview:main"
|
|
55
|
+
utils = "stackops.scripts.python.utils:main"
|
|
56
|
+
stackops = "stackops.scripts.python.stackops_entry:main"
|
|
57
|
+
seek = "stackops.scripts.python.seek:main"
|
|
58
|
+
|
|
59
|
+
[tool.setuptools]
|
|
60
|
+
package-dir = {"" = "src"}
|
|
61
|
+
include-package-data = true
|
|
62
|
+
license-files = []
|
|
63
|
+
|
|
64
|
+
[tool.setuptools.packages.find]
|
|
65
|
+
where = ["src"]
|
|
66
|
+
|
|
67
|
+
[tool.setuptools.package-data]
|
|
68
|
+
stackops = ["**/*.toml", "**/*.md", "**/*.sh", "**/*.ps1", "**/*.txt", "utils/schemas/**/*.json", "utils/schemas/**/*.yaml"]
|
|
69
|
+
|
|
70
|
+
[dependency-groups]
|
|
71
|
+
dev = [
|
|
72
|
+
"aider>=0.2.6",
|
|
73
|
+
"build>=1.4.1",
|
|
74
|
+
"cleanpy>=0.5.1",
|
|
75
|
+
"cowsay>=6.1",
|
|
76
|
+
"duckdb>=1.5.1",
|
|
77
|
+
"gdown>=5.2.1",
|
|
78
|
+
"griffe>=2.0.2",
|
|
79
|
+
"ipdb>=0.13.13",
|
|
80
|
+
"ipykernel>=7.2.0",
|
|
81
|
+
"ipython>=9.11.0",
|
|
82
|
+
"kaleido>=1.2.0",
|
|
83
|
+
"marimo>=0.21.1",
|
|
84
|
+
"matplotlib>=3.10.8",
|
|
85
|
+
"mkdocstrings>=1.0.3",
|
|
86
|
+
"mkdocstrings-python>=2.0.3",
|
|
87
|
+
"mypy>=1.19.1",
|
|
88
|
+
"numpy>=2.4.3",
|
|
89
|
+
"pandas>=3.0.1",
|
|
90
|
+
"plotly>=6.6.0",
|
|
91
|
+
"polars>=1.39.3",
|
|
92
|
+
"pre-commit>=4.5.1",
|
|
93
|
+
"pudb>=2025.1.5",
|
|
94
|
+
"py7zr>=1.1.0",
|
|
95
|
+
"pydantic>=2.12.5",
|
|
96
|
+
"pydeps>=3.0.2",
|
|
97
|
+
"pyinstaller>=6.19.0",
|
|
98
|
+
"pylint>=4.0.5",
|
|
99
|
+
"pylsp-mypy>=0.7.1",
|
|
100
|
+
"pymupdf>=1.27.2.2",
|
|
101
|
+
"pypdf>=6.9.2",
|
|
102
|
+
"pyrefly>=0.58.0",
|
|
103
|
+
"pyright>=1.1.408",
|
|
104
|
+
"pytest>=9.0.2",
|
|
105
|
+
"python-lsp-server[mypy]>=1.14.0",
|
|
106
|
+
"qrcode>=8.2",
|
|
107
|
+
"ruff>=0.15.7",
|
|
108
|
+
"ruff-lsp>=0.0.62",
|
|
109
|
+
"sqlalchemy>=2.0.48",
|
|
110
|
+
"textual>=8.1.1",
|
|
111
|
+
"trogon>=0.6.0",
|
|
112
|
+
"ty>=0.0.25",
|
|
113
|
+
"types-mysqlclient>=2.2.0.20250915",
|
|
114
|
+
"types-paramiko>=4.0.0.20260322",
|
|
115
|
+
"types-pytz>=2026.1.1.20260304",
|
|
116
|
+
"types-pyyaml>=6.0.12.20250915",
|
|
117
|
+
"types-requests>=2.32.4.20260324",
|
|
118
|
+
"types-sqlalchemy>=1.4.53.38",
|
|
119
|
+
"types-toml>=0.10.8.20240310",
|
|
120
|
+
"types-urllib3>=1.26.25.14",
|
|
121
|
+
"vt-py>=0.22.0",
|
|
122
|
+
"yapf>=0.43.0",
|
|
123
|
+
"zensical>=0.0.29",
|
|
124
|
+
]
|
|
125
|
+
other = [
|
|
126
|
+
"duckdb-engine>=0.17.0",
|
|
127
|
+
"pycrucible>=0.4.6",
|
|
128
|
+
"vt-py>=0.22.0",
|
|
129
|
+
]
|
|
130
|
+
plot = [
|
|
131
|
+
"duckdb>=1.5.1",
|
|
132
|
+
"ipykernel>=7.2.0",
|
|
133
|
+
"ipython>=9.11.0",
|
|
134
|
+
"jupyterlab>=4.5.6",
|
|
135
|
+
"kaleido>=1.2.0",
|
|
136
|
+
"matplotlib>=3.10.8",
|
|
137
|
+
"nbformat>=5.10.4",
|
|
138
|
+
"numpy>=2.4.3",
|
|
139
|
+
"plotly>=6.6.0",
|
|
140
|
+
"polars>=1.39.3",
|
|
141
|
+
"python-magic>=0.4.27",
|
|
142
|
+
"sqlalchemy>=2.0.48",
|
|
143
|
+
]
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
[tool.pycrucible]
|
|
147
|
+
entry = "src/stackops/scripts/python/devops.py"
|
|
148
|
+
[tool.pycrucible.options]
|
|
149
|
+
debug = false
|
|
150
|
+
extract_to_temp = false
|
|
151
|
+
delete_after_run = false
|
|
152
|
+
offline_mode = false
|
|
153
|
+
|
|
154
|
+
[tool.pycrucible.patterns]
|
|
155
|
+
include = [
|
|
156
|
+
"**/*.py",
|
|
157
|
+
"**/*.ps1",
|
|
158
|
+
"**/*.sh",
|
|
159
|
+
"**/*.md",
|
|
160
|
+
]
|
|
161
|
+
exclude = [
|
|
162
|
+
"**/__pycache__/**",
|
|
163
|
+
]
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
import pytest
|
|
5
|
+
|
|
6
|
+
from stackops.secrets.loader import SecretsSchemaError, load_secrets_file
|
|
7
|
+
from stackops.secrets.models import SecretRecord
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
REPO_ROOT = Path(__file__).resolve().parents[2]
|
|
11
|
+
SECRETS_SCHEMA_PATH = REPO_ROOT / "src" / "stackops" / "secrets" / "secrets.schema.json"
|
|
12
|
+
SECRETS_EXAMPLE_PATH = REPO_ROOT / "src" / "stackops" / "secrets" / "secrets.example.json"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def test_loader_requires_secret_name(tmp_path: Path) -> None:
|
|
16
|
+
secrets_path = tmp_path / "secrets.json"
|
|
17
|
+
secrets_path.write_text(
|
|
18
|
+
json.dumps({"version": "0.5", "entries": [{"name": "service", "secrets": [{"keyValues": {"TOKEN": "redacted"}}]}]}), encoding="utf-8"
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
with pytest.raises(SecretsSchemaError, match=r"entries\[0\]\.secrets\[0\]\.name must be a non-empty string"):
|
|
22
|
+
load_secrets_file(secrets_path)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def test_loaded_secret_name_is_required_type(tmp_path: Path) -> None:
|
|
26
|
+
secrets_path = tmp_path / "secrets.json"
|
|
27
|
+
secrets_path.write_text(
|
|
28
|
+
json.dumps({"version": "0.5", "entries": [{"name": "service", "secrets": [{"name": "api-token", "keyValues": {"TOKEN": "redacted"}}]}]}),
|
|
29
|
+
encoding="utf-8",
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
loaded = load_secrets_file(secrets_path)
|
|
33
|
+
secret: SecretRecord = loaded["entries"][0]["secrets"][0]
|
|
34
|
+
|
|
35
|
+
assert secret["name"] == "api-token"
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def test_schema_requires_secret_name() -> None:
|
|
39
|
+
schema = json.loads(SECRETS_SCHEMA_PATH.read_text(encoding="utf-8"))
|
|
40
|
+
|
|
41
|
+
assert schema["definitions"]["secret"]["required"] == ["name", "keyValues"]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def test_packaged_example_secret_entries_have_names() -> None:
|
|
45
|
+
example = json.loads(SECRETS_EXAMPLE_PATH.read_text(encoding="utf-8"))
|
|
46
|
+
|
|
47
|
+
assert all("name" in secret for entry in example["entries"] for secret in entry["secrets"])
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from datetime import date
|
|
2
|
+
|
|
3
|
+
import pytest
|
|
4
|
+
|
|
5
|
+
from stackops.scripts.python.helpers.helpers_utils.upgrade_packages import (
|
|
6
|
+
format_stackops_display_version,
|
|
7
|
+
get_next_stackops_version,
|
|
8
|
+
parse_stackops_calver,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def test_legacy_version_migrates_to_current_calver_month() -> None:
|
|
13
|
+
assert get_next_stackops_version("8.104", today=date(2026, 6, 9)) == "26.6"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def test_same_month_releases_increment_unbounded_release_number() -> None:
|
|
17
|
+
assert get_next_stackops_version("26.6", today=date(2026, 6, 9)) == "26.6.1"
|
|
18
|
+
assert get_next_stackops_version("26.6.500", today=date(2026, 6, 9)) == "26.6.501"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def test_new_month_release_resets_to_month_base_version() -> None:
|
|
22
|
+
assert get_next_stackops_version("26.6.500", today=date(2026, 7, 1)) == "26.7"
|
|
23
|
+
assert get_next_stackops_version("25.12.4", today=date(2026, 1, 1)) == "26.1"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def test_future_month_version_is_rejected_to_avoid_downgrade() -> None:
|
|
27
|
+
with pytest.raises(ValueError, match="later than today's release month"):
|
|
28
|
+
get_next_stackops_version("26.7", today=date(2026, 6, 9))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def test_display_version_keeps_v_prefix_and_canonical_month() -> None:
|
|
32
|
+
assert format_stackops_display_version("26.6") == "v26.6"
|
|
33
|
+
assert format_stackops_display_version("26.6.1") == "v26.6.1"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def test_calver_parser_accepts_tag_style_and_rejects_invalid_months() -> None:
|
|
37
|
+
parsed = parse_stackops_calver("v26.6.500")
|
|
38
|
+
assert parsed is not None
|
|
39
|
+
assert parsed.year == 26
|
|
40
|
+
assert parsed.month == 6
|
|
41
|
+
assert parsed.release == 500
|
|
42
|
+
assert parse_stackops_calver("8.104") is None
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from typing import cast
|
|
5
|
+
|
|
6
|
+
from stackops.architecture_graph.graph import build_graph_page_payload
|
|
7
|
+
from stackops.architecture_graph.renderer import write_html
|
|
8
|
+
|
|
9
|
+
DEFAULT_DEPTH = 1
|
|
10
|
+
DEFAULT_MAX_DEPTH = 3
|
|
11
|
+
DEFAULT_OUTPUT_PATH = Path(".ai/architecture_dependencies.html")
|
|
12
|
+
DEFAULT_PACKAGE_NAME = "stackops"
|
|
13
|
+
DEFAULT_SOURCE_ROOT = Path("src/stackops")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@dataclass(frozen=True, slots=True)
|
|
17
|
+
class CliArgs:
|
|
18
|
+
source_root: Path
|
|
19
|
+
package_name: str
|
|
20
|
+
output_path: Path
|
|
21
|
+
depth: int
|
|
22
|
+
max_depth: int
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def main() -> None:
|
|
26
|
+
args = parse_cli_args()
|
|
27
|
+
if not args.source_root.exists():
|
|
28
|
+
raise SystemExit(f"source root does not exist: {args.source_root}")
|
|
29
|
+
payload = build_graph_page_payload(
|
|
30
|
+
source_root=args.source_root,
|
|
31
|
+
package_name=args.package_name,
|
|
32
|
+
initial_depth=args.depth,
|
|
33
|
+
max_depth=args.max_depth,
|
|
34
|
+
)
|
|
35
|
+
output_path = write_html(payload=payload, output_path=args.output_path)
|
|
36
|
+
print(f"Wrote {output_path}")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def parse_cli_args() -> CliArgs:
|
|
40
|
+
parser = build_parser()
|
|
41
|
+
namespace = parser.parse_args()
|
|
42
|
+
source_root = cast(Path, getattr(namespace, "source_root"))
|
|
43
|
+
package_name = cast(str, getattr(namespace, "package_name"))
|
|
44
|
+
output_path = cast(Path, getattr(namespace, "output_path"))
|
|
45
|
+
depth = cast(int, getattr(namespace, "depth"))
|
|
46
|
+
max_depth = cast(int, getattr(namespace, "max_depth"))
|
|
47
|
+
if depth < 0:
|
|
48
|
+
raise SystemExit("--depth must be zero or greater")
|
|
49
|
+
if max_depth < depth:
|
|
50
|
+
raise SystemExit("--max-depth must be greater than or equal to --depth")
|
|
51
|
+
return CliArgs(
|
|
52
|
+
source_root=source_root,
|
|
53
|
+
package_name=package_name,
|
|
54
|
+
output_path=output_path,
|
|
55
|
+
depth=depth,
|
|
56
|
+
max_depth=max_depth,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def build_parser() -> argparse.ArgumentParser:
|
|
61
|
+
parser = argparse.ArgumentParser(
|
|
62
|
+
prog="python -m stackops.architecture_graph",
|
|
63
|
+
description="Generate an interactive HTML dependency graph for StackOps.",
|
|
64
|
+
)
|
|
65
|
+
parser.add_argument("--source-root", type=Path, default=DEFAULT_SOURCE_ROOT)
|
|
66
|
+
parser.add_argument("--package-name", default=DEFAULT_PACKAGE_NAME)
|
|
67
|
+
parser.add_argument("--output", dest="output_path", type=Path, default=DEFAULT_OUTPUT_PATH)
|
|
68
|
+
parser.add_argument("--depth", type=int, default=DEFAULT_DEPTH)
|
|
69
|
+
parser.add_argument("--max-depth", type=int, default=DEFAULT_MAX_DEPTH)
|
|
70
|
+
return parser
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
from collections import Counter
|
|
2
|
+
from datetime import UTC, datetime
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
from stackops.architecture_graph.models import (
|
|
6
|
+
EdgePayload,
|
|
7
|
+
GraphPagePayload,
|
|
8
|
+
GraphPayload,
|
|
9
|
+
InternalImport,
|
|
10
|
+
NodeId,
|
|
11
|
+
NodePayload,
|
|
12
|
+
PythonModule,
|
|
13
|
+
)
|
|
14
|
+
from stackops.architecture_graph.scanner import collect_internal_imports, discover_python_modules
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def build_graph_page_payload(
|
|
18
|
+
source_root: Path,
|
|
19
|
+
package_name: str,
|
|
20
|
+
initial_depth: int,
|
|
21
|
+
max_depth: int,
|
|
22
|
+
) -> GraphPagePayload:
|
|
23
|
+
if initial_depth < 0:
|
|
24
|
+
raise ValueError("initial_depth must be zero or greater")
|
|
25
|
+
if max_depth < initial_depth:
|
|
26
|
+
raise ValueError("max_depth must be greater than or equal to initial_depth")
|
|
27
|
+
modules = discover_python_modules(source_root=source_root, package_name=package_name)
|
|
28
|
+
imports = collect_internal_imports(modules=modules, package_name=package_name)
|
|
29
|
+
generated_at = datetime.now(UTC).isoformat(timespec="seconds")
|
|
30
|
+
depths = {
|
|
31
|
+
str(depth): graph_payload_from_imports(
|
|
32
|
+
source_root=source_root,
|
|
33
|
+
package_name=package_name,
|
|
34
|
+
depth=depth,
|
|
35
|
+
generated_at=generated_at,
|
|
36
|
+
modules=modules,
|
|
37
|
+
imports=imports,
|
|
38
|
+
)
|
|
39
|
+
for depth in range(max_depth + 1)
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
"packageName": package_name,
|
|
43
|
+
"sourceRoot": str(source_root),
|
|
44
|
+
"generatedAt": generated_at,
|
|
45
|
+
"initialDepth": initial_depth,
|
|
46
|
+
"maxDepth": max_depth,
|
|
47
|
+
"depths": depths,
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def build_graph_payload(source_root: Path, package_name: str, depth: int) -> GraphPayload:
|
|
52
|
+
if depth < 0:
|
|
53
|
+
raise ValueError("depth must be zero or greater")
|
|
54
|
+
modules = discover_python_modules(source_root=source_root, package_name=package_name)
|
|
55
|
+
imports = collect_internal_imports(modules=modules, package_name=package_name)
|
|
56
|
+
generated_at = datetime.now(UTC).isoformat(timespec="seconds")
|
|
57
|
+
return graph_payload_from_imports(
|
|
58
|
+
source_root=source_root,
|
|
59
|
+
package_name=package_name,
|
|
60
|
+
depth=depth,
|
|
61
|
+
generated_at=generated_at,
|
|
62
|
+
modules=modules,
|
|
63
|
+
imports=imports,
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def graph_payload_from_imports(
|
|
68
|
+
source_root: Path,
|
|
69
|
+
package_name: str,
|
|
70
|
+
depth: int,
|
|
71
|
+
generated_at: str,
|
|
72
|
+
modules: list[PythonModule],
|
|
73
|
+
imports: list[InternalImport],
|
|
74
|
+
) -> GraphPayload:
|
|
75
|
+
module_nodes = {
|
|
76
|
+
module.name: aggregate_module_name(module.name, package_name, depth)
|
|
77
|
+
for module in modules
|
|
78
|
+
}
|
|
79
|
+
node_module_counts: Counter[NodeId] = Counter(module_nodes.values())
|
|
80
|
+
node_file_counts: Counter[NodeId] = Counter(module_nodes[module.name] for module in modules)
|
|
81
|
+
edge_counts: Counter[tuple[NodeId, NodeId]] = Counter()
|
|
82
|
+
|
|
83
|
+
for internal_import in imports:
|
|
84
|
+
source = module_nodes[internal_import.importer]
|
|
85
|
+
target = module_nodes[internal_import.imported]
|
|
86
|
+
if source != target:
|
|
87
|
+
edge_counts[(source, target)] += 1
|
|
88
|
+
|
|
89
|
+
return {
|
|
90
|
+
"packageName": package_name,
|
|
91
|
+
"sourceRoot": str(source_root),
|
|
92
|
+
"depth": depth,
|
|
93
|
+
"generatedAt": generated_at,
|
|
94
|
+
"moduleCount": len(modules),
|
|
95
|
+
"importCount": len(imports),
|
|
96
|
+
"nodes": node_payloads(node_module_counts, node_file_counts, package_name),
|
|
97
|
+
"edges": edge_payloads(edge_counts),
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def aggregate_module_name(module_name: str, package_name: str, depth: int) -> NodeId:
|
|
102
|
+
package_parts = package_name.split(".")
|
|
103
|
+
module_parts = module_name.split(".")
|
|
104
|
+
keep_count = len(package_parts) + depth
|
|
105
|
+
if len(module_parts) <= keep_count:
|
|
106
|
+
return module_name
|
|
107
|
+
return ".".join(module_parts[:keep_count])
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def node_payloads(
|
|
111
|
+
module_counts: Counter[NodeId],
|
|
112
|
+
file_counts: Counter[NodeId],
|
|
113
|
+
package_name: str,
|
|
114
|
+
) -> list[NodePayload]:
|
|
115
|
+
return [
|
|
116
|
+
{
|
|
117
|
+
"id": node_id,
|
|
118
|
+
"label": node_label(node_id, package_name),
|
|
119
|
+
"group": node_group(node_id, package_name),
|
|
120
|
+
"moduleCount": module_counts[node_id],
|
|
121
|
+
"fileCount": file_counts[node_id],
|
|
122
|
+
}
|
|
123
|
+
for node_id in sorted(module_counts)
|
|
124
|
+
]
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
def edge_payloads(edge_counts: Counter[tuple[NodeId, NodeId]]) -> list[EdgePayload]:
|
|
128
|
+
return [
|
|
129
|
+
{"source": source, "target": target, "count": count}
|
|
130
|
+
for (source, target), count in sorted(edge_counts.items())
|
|
131
|
+
]
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def node_label(node_id: NodeId, package_name: str) -> str:
|
|
135
|
+
if node_id == package_name:
|
|
136
|
+
return package_name
|
|
137
|
+
suffix = node_id.removeprefix(f"{package_name}.")
|
|
138
|
+
suffix_parts = suffix.split(".")
|
|
139
|
+
if len(suffix_parts) == 1:
|
|
140
|
+
return suffix
|
|
141
|
+
return "/".join(suffix_parts[-2:])
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def node_group(node_id: NodeId, package_name: str) -> str:
|
|
145
|
+
if node_id == package_name:
|
|
146
|
+
return package_name
|
|
147
|
+
suffix = node_id.removeprefix(f"{package_name}.")
|
|
148
|
+
return suffix.split(".")[0]
|