stackops 26.6.5__tar.gz → 26.6.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. {stackops-26.6.5/src/stackops.egg-info → stackops-26.6.6}/PKG-INFO +1 -1
  2. {stackops-26.6.5 → stackops-26.6.6}/pyproject.toml +1 -1
  3. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents.py +5 -2
  4. stackops-26.6.6/src/stackops/scripts/python/agents_iter.py +34 -0
  5. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph.json +131 -3
  6. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/devops_navigator.py +1 -1
  7. stackops-26.6.6/src/stackops/scripts/python/helpers/helpers_agents/agents_iter_impl.py +389 -0
  8. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_env/env_manager_tui.py +1 -1
  9. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_env/path_manager_tui.py +1 -1
  10. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/preview_impl.py +3 -3
  11. stackops-26.6.6/src/stackops/scripts/python/helpers/helpers_preview/preview_read.py +64 -0
  12. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/interactive.sh +8 -8
  13. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/interactive.ps1 +9 -9
  14. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/herdr/config.toml +1 -1
  15. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/abc.py +1 -1
  16. {stackops-26.6.5 → stackops-26.6.6/src/stackops.egg-info}/PKG-INFO +1 -1
  17. {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/SOURCES.txt +2 -0
  18. stackops-26.6.5/src/stackops/scripts/python/helpers/helpers_preview/preview_read.py +0 -39
  19. {stackops-26.6.5 → stackops-26.6.6}/MANIFEST.in +0 -0
  20. {stackops-26.6.5 → stackops-26.6.6}/README.md +0 -0
  21. {stackops-26.6.5 → stackops-26.6.6}/setup.cfg +0 -0
  22. {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_dotfile_mapper_assets.py +0 -0
  23. {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_path_references.py +0 -0
  24. {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_secrets_schema.py +0 -0
  25. {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_stackops_skill_refs.py +0 -0
  26. {stackops-26.6.5 → stackops-26.6.6}/src/manual/test_stackops_versioning.py +0 -0
  27. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/__init__.py +0 -0
  28. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/__init__.py +0 -0
  29. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/__main__.py +0 -0
  30. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/cli.py +0 -0
  31. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph.py +0 -0
  32. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph_css.txt +0 -0
  33. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph_css_continued.txt +0 -0
  34. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph_js.txt +0 -0
  35. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/graph_js_continued.txt +0 -0
  36. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/models.py +0 -0
  37. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/renderer.py +0 -0
  38. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/architecture_graph/scanner.py +0 -0
  39. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/__init__.py +0 -0
  40. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/__init__.py +0 -0
  41. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/cloud_manager.py +0 -0
  42. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/data_transfer.py +0 -0
  43. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/distribute.py +0 -0
  44. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/execution_script.py +0 -0
  45. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/file_manager.py +0 -0
  46. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/job_params.py +0 -0
  47. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/models.py +0 -0
  48. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/notification.py +0 -0
  49. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/notifications.py +0 -0
  50. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/remote/remote_machine.py +0 -0
  51. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/scheduler.py +0 -0
  52. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/__init__.py +0 -0
  53. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/helpers/__init__.py +0 -0
  54. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/helpers/enhanced_command_runner.py +0 -0
  55. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/helpers/load_balancer_helper.py +0 -0
  56. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/monitoring_types.py +0 -0
  57. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/session_conflict.py +0 -0
  58. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/session_exit_mode.py +0 -0
  59. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/status_reporting.py +0 -0
  60. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/__init__.py +0 -0
  61. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_local.py +0 -0
  62. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_local_manager.py +0 -0
  63. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/__init__.py +0 -0
  64. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_common.py +0 -0
  65. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_execution.py +0 -0
  66. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_layout.py +0 -0
  67. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/tmux/tmux_utils/tmux_status.py +0 -0
  68. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/utils/__init__.py +0 -0
  69. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/utils/load_balancer.py +0 -0
  70. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/cluster/sessions_managers/utils/maker.py +0 -0
  71. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/__init__.py +0 -0
  72. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/agents/mcps/__init__.py +0 -0
  73. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/agents/mcps/mcp.json +0 -0
  74. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/agents/mcps/mcp.schema.json +0 -0
  75. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/__init__.py +0 -0
  76. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/__init__.py +0 -0
  77. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/check_installations.py +0 -0
  78. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/install_utils.py +0 -0
  79. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/report_utils.py +0 -0
  80. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/security_cli.py +0 -0
  81. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/security_helper.py +0 -0
  82. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/checks/vt_utils.py +0 -0
  83. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/__init__.py +0 -0
  84. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/brave.sh +0 -0
  85. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/cloudflare_warp_cli.sh +0 -0
  86. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/edge.sh +0 -0
  87. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/network.sh +0 -0
  88. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/ngrok.sh +0 -0
  89. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/oz.sh +0 -0
  90. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/q.sh +0 -0
  91. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/redis.sh +0 -0
  92. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/sysabc_macos.sh +0 -0
  93. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/sysabc_ubuntu.sh +0 -0
  94. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/vscode.sh +0 -0
  95. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/linux_scripts/wezterm.sh +0 -0
  96. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/macos_scripts/__init__.py +0 -0
  97. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/powershell_scripts/__init__.py +0 -0
  98. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/powershell_scripts/nerdfonts.ps1 +0 -0
  99. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/powershell_scripts/sysabc.ps1 +0 -0
  100. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/powershell_scripts/texlive.ps1 +0 -0
  101. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/__init__.py +0 -0
  102. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/alacritty.py +0 -0
  103. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/boxes.py +0 -0
  104. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/brave.py +0 -0
  105. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/bypass_paywall.py +0 -0
  106. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/cloudflare_warp_cli.py +0 -0
  107. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/code.py +0 -0
  108. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/cursor.py +0 -0
  109. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/docker.py +0 -0
  110. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/dubdb_adbc.py +0 -0
  111. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/espanso.py +0 -0
  112. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/goes.py +0 -0
  113. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/hx.py +0 -0
  114. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/lvim.py +0 -0
  115. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/nerdfont.py +0 -0
  116. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/orca.py +0 -0
  117. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/poppler.py +0 -0
  118. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/redis.py +0 -0
  119. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/rmpc.py +0 -0
  120. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/sysabc.py +0 -0
  121. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/termusic.py +0 -0
  122. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/wezterm.py +0 -0
  123. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/winget.py +0 -0
  124. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/yazi.py +0 -0
  125. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/youtube_tui.py +0 -0
  126. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/python_scripts/ytui_music.py +0 -0
  127. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/installer/todo.md +0 -0
  128. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/bash_scripts/__init__.py +0 -0
  129. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/bash_scripts/hollywood.sh +0 -0
  130. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/bash_scripts/lid.sh +0 -0
  131. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/bash_scripts/weather +0 -0
  132. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/powershell_scripts/__init__.py +0 -0
  133. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/powershell_scripts/cmatrix.ps1 +0 -0
  134. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts/powershell_scripts/weather.ps1 +0 -0
  135. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts_dynamic/__init__.py +0 -0
  136. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts_dynamic/download_stackops_offline_installer.json +0 -0
  137. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts_dynamic/download_stackops_offline_installer.py +0 -0
  138. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/jobs/scripts_dynamic/system_compute_analyzer.py +0 -0
  139. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/logger.py +0 -0
  140. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/paths.py +0 -0
  141. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/__init__.py +0 -0
  142. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/create_helper.py +0 -0
  143. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/create_links.py +0 -0
  144. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/create_links_export.py +0 -0
  145. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/create_shell_profile.py +0 -0
  146. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/dotfiles_mapper.py +0 -0
  147. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/linking/__init__.py +0 -0
  148. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/linking/conflict.py +0 -0
  149. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/linking/operations.py +0 -0
  150. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/profile/linking/options.py +0 -0
  151. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/__init__.py +0 -0
  152. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/linux/__init__.py +0 -0
  153. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/linux/wrap_stackops +0 -0
  154. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/nu/__init__.py +0 -0
  155. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/nu/wrap_stackops.nu +0 -0
  156. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/__init__.py +0 -0
  157. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_browser.py +0 -0
  158. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_parallel.py +0 -0
  159. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_parallel_commands.py +0 -0
  160. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_parallel_run_command.py +0 -0
  161. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_test_runtime.py +0 -0
  162. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/agents_type_fix.py +0 -0
  163. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/__init__.py +0 -0
  164. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/initai.py +0 -0
  165. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/initai_frameworks.py +0 -0
  166. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/initai_models.py +0 -0
  167. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/initai_rich_output.py +0 -0
  168. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/__init__.py +0 -0
  169. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/command_runner.ps1 +0 -0
  170. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/command_runner.sh +0 -0
  171. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/dashboard.py +0 -0
  172. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/lint_and_type_check.py +0 -0
  173. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models.py +0 -0
  174. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_config.py +0 -0
  175. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_core.py +0 -0
  176. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_diagnostics.py +0 -0
  177. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_json.py +0 -0
  178. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/models_reports.py +0 -0
  179. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/scripts/paths.py +0 -0
  180. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/__init__.py +0 -0
  181. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/antigravity/__init__.py +0 -0
  182. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/antigravity/antigravity.py +0 -0
  183. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/auggie/__init__.py +0 -0
  184. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/auggie/auggie.py +0 -0
  185. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/claude/claude.py +0 -0
  186. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/cline/cline.py +0 -0
  187. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/codex/__init__.py +0 -0
  188. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/codex/codex.py +0 -0
  189. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/codex/config.toml +0 -0
  190. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/__init__.py +0 -0
  191. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/agents/Thinking-Beast-Mode.agent.md +0 -0
  192. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md +0 -0
  193. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/agents/__init__.py +0 -0
  194. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/agents/deepResearch.agent.md +0 -0
  195. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
  196. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/instructions/archive/__init__.py +0 -0
  197. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/instructions/archive/watch_exec.prompt.md +0 -0
  198. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/instructions/python/__init__.py +0 -0
  199. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
  200. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/prompts/__init__.py +0 -0
  201. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +0 -0
  202. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
  203. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/crush/__init__.py +0 -0
  204. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/crush/crush.json +0 -0
  205. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/crush/crush.py +0 -0
  206. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/crush/privacy.md +0 -0
  207. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/cursor/cursors.py +0 -0
  208. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/droid/__init__.py +0 -0
  209. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/droid/droid.py +0 -0
  210. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/forge/__init__.py +0 -0
  211. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/forge/forge.py +0 -0
  212. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/kilocode/__init__.py +0 -0
  213. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/kilocode/kilocode.py +0 -0
  214. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
  215. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/opencode/__init__.py +0 -0
  216. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/opencode/opencode.jsonc +0 -0
  217. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/opencode/opencode.py +0 -0
  218. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/oz/__init__.py +0 -0
  219. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/oz/oz.py +0 -0
  220. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/pi/__init__.py +0 -0
  221. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/pi/pi.py +0 -0
  222. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/q/__init__.py +0 -0
  223. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/q/amazon_q.py +0 -0
  224. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/qwen_code/__init__.py +0 -0
  225. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/qwen_code/qwen_code.py +0 -0
  226. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/warp/__init__.py +0 -0
  227. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/solutions/warp/warp.py +0 -0
  228. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/__init__.py +0 -0
  229. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generate_files.py +0 -0
  230. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generate_files_content.py +0 -0
  231. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generate_files_utils.py +0 -0
  232. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generic.instructions.md +0 -0
  233. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/generic.py +0 -0
  234. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/shared.py +0 -0
  235. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ai/utils/vscode_tasks.py +0 -0
  236. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/cloud.py +0 -0
  237. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/devops.py +0 -0
  238. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/enums.py +0 -0
  239. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/fire_jobs.py +0 -0
  240. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/ftpx.py +0 -0
  241. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/__init__.py +0 -0
  242. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_apps.py +0 -0
  243. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_eval.py +0 -0
  244. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_node_utils.py +0 -0
  245. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_nodes.py +0 -0
  246. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_registration.py +0 -0
  247. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_resolver.py +0 -0
  248. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_shared.py +0 -0
  249. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_signature.py +0 -0
  250. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_targets.py +0 -0
  251. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_tree.py +0 -0
  252. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/cli_graph_values.py +0 -0
  253. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/generate_cli_graph.py +0 -0
  254. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/python_api_graph.py +0 -0
  255. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/__init__.py +0 -0
  256. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/cli_graph_app.py +0 -0
  257. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/cli_graph_search.py +0 -0
  258. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/cli_graph_typer_app.py +0 -0
  259. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/dot_export.py +0 -0
  260. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/graph_data.py +0 -0
  261. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/graph_paths.py +0 -0
  262. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/__init__.py +0 -0
  263. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/cli_graph_loader.py +0 -0
  264. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/command_builder.py +0 -0
  265. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/command_detail.py +0 -0
  266. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/command_tree.py +0 -0
  267. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/data_models.py +0 -0
  268. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/main_app.py +0 -0
  269. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/helpers_navigator/search_bar.py +0 -0
  270. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/plotly_browser.py +0 -0
  271. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/plotly_views.py +0 -0
  272. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/python_api_graph_app.py +0 -0
  273. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/python_api_graph_search.py +0 -0
  274. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/graph/visualize/rich_tree.py +0 -0
  275. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/__init__.py +0 -0
  276. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/__init__.py +0 -0
  277. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/__init__.py +0 -0
  278. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/common.py +0 -0
  279. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/create_options.py +0 -0
  280. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agent_impl_interactive/main.py +0 -0
  281. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/__init__.py +0 -0
  282. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_codex.py +0 -0
  283. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_copilot.py +0 -0
  284. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.json +0 -0
  285. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.py +0 -0
  286. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_cursor_agents.py +0 -0
  287. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_pi.py +0 -0
  288. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_qwen.py +0 -0
  289. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_ask_impl.py +0 -0
  290. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_constants.py +0 -0
  291. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_guides.py +0 -0
  292. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_impl.py +0 -0
  293. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_browser_resolution.py +0 -0
  294. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_create_artifacts.py +0 -0
  295. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_create_inputs.py +0 -0
  296. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_impl.py +0 -0
  297. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_mcp_impl.py +0 -0
  298. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_add_entry.py +0 -0
  299. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_aoe_backend.py +0 -0
  300. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_backend.py +0 -0
  301. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_layouts.py +0 -0
  302. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_config.py +0 -0
  303. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_impl.py +0 -0
  304. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_run_yaml.py +0 -0
  305. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_parallel_yaml_defaults.py +0 -0
  306. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_rich_output.py +0 -0
  307. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_run_context.py +0 -0
  308. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_run_impl.py +0 -0
  309. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_run_types.py +0 -0
  310. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_shell.py +0 -0
  311. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_skill_impl.py +0 -0
  312. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_skill_stackops_backend.py +0 -0
  313. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_skill_types.py +0 -0
  314. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/agents_yaml_schemas.py +0 -0
  315. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/__init__.py +0 -0
  316. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/agent-browser.md +0 -0
  317. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/chrome-devtools-mcp-browser-url.mcp.json +0 -0
  318. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/chrome-devtools-mcp.mcp.json +0 -0
  319. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/chrome-devtools-mcp.md +0 -0
  320. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-cli.md +0 -0
  321. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-cdp.mcp.json +0 -0
  322. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-extension.mcp.json +0 -0
  323. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-storage-state.mcp.json +0 -0
  324. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp-user-data-dir.mcp.json +0 -0
  325. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp.mcp.json +0 -0
  326. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/browser_guides/playwright-mcp.md +0 -0
  327. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_help_launch.py +0 -0
  328. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_help_search.py +0 -0
  329. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/fire_agents_load_balancer.py +0 -0
  330. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/mcp_catalog.py +0 -0
  331. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/mcp_install.py +0 -0
  332. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/mcp_types.py +0 -0
  333. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/aichat/__init__.py +0 -0
  334. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/aichat/config.yaml +0 -0
  335. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/aider/.aider.conf.yml +0 -0
  336. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/auggie/__init__.py +0 -0
  337. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/auggie/auggie_privacy.py +0 -0
  338. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/chatgpt/__init__.py +0 -0
  339. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/chatgpt/chatgpt_privacy.py +0 -0
  340. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cline/__init__.py +0 -0
  341. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cline/cline_privacy.py +0 -0
  342. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/codex/__init__.py +0 -0
  343. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/codex/codex_privacy.py +0 -0
  344. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/common/__init__.py +0 -0
  345. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/common/privacy_orchestrator.py +0 -0
  346. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/copilot/__init__.py +0 -0
  347. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/copilot/config.yml +0 -0
  348. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/crush/__init__.py +0 -0
  349. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/crush/crush.json +0 -0
  350. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cursor/__init__.py +0 -0
  351. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/cursor/cursor_privacy.py +0 -0
  352. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/droid/__init__.py +0 -0
  353. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/droid/droid_privacy.py +0 -0
  354. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/kilocode/__init__.py +0 -0
  355. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/kilocode/kilocode_privacy.py +0 -0
  356. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/mods/__init__.py +0 -0
  357. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/mods/mods_privacy.py +0 -0
  358. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/opencode/__init__.py +0 -0
  359. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/q/__init__.py +0 -0
  360. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/q/q_privacy.py +0 -0
  361. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/qwen/__init__.py +0 -0
  362. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/configs/qwen/qwen_privacy.py +0 -0
  363. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/privacy/privacy.py +0 -0
  364. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/reasoning_capabilities.py +0 -0
  365. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/templates/__init__.py +0 -0
  366. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/templates/prompt.txt +0 -0
  367. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/templates/template.ps1 +0 -0
  368. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_agents/templates/template.sh +0 -0
  369. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/__init__.py +0 -0
  370. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/backup_config.py +0 -0
  371. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/backup_registration.py +0 -0
  372. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_copy.py +0 -0
  373. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_helpers.py +0 -0
  374. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_mount.py +0 -0
  375. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_mount_tmux.py +0 -0
  376. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_path_resolver.py +0 -0
  377. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_cloud/cloud_sync.py +0 -0
  378. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/__init__.py +0 -0
  379. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_backup_retrieve.py +0 -0
  380. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config.py +0 -0
  381. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_dotfile_mapper.py +0 -0
  382. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_dotfile_transfer.py +0 -0
  383. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_mount.py +0 -0
  384. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets.py +0 -0
  385. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_actions.py +0 -0
  386. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_candidates.py +0 -0
  387. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_interactive.py +0 -0
  388. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_prompts.py +0 -0
  389. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_secrets_support.py +0 -0
  390. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_terminal.py +0 -0
  391. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_config_tmux.py +0 -0
  392. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_data.py +0 -0
  393. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_device.py +0 -0
  394. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_nw.py +0 -0
  395. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_nw_vscode_share.py +0 -0
  396. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_repos.py +0 -0
  397. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_repos_viz.py +0 -0
  398. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self.py +0 -0
  399. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_assets.py +0 -0
  400. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_clone.py +0 -0
  401. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_docker.py +0 -0
  402. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_docs.py +0 -0
  403. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_export.py +0 -0
  404. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_self_info.py +0 -0
  405. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_share_file.py +0 -0
  406. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_share_server.py +0 -0
  407. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_share_temp.py +0 -0
  408. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_share_terminal.py +0 -0
  409. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_ssh.py +0 -0
  410. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/cli_vault.py +0 -0
  411. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/devops_status.py +0 -0
  412. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/devops_status_checks.py +0 -0
  413. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/devops_status_display.py +0 -0
  414. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/devops_update_repos.py +0 -0
  415. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/interactive.py +0 -0
  416. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/__init__.py +0 -0
  417. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/commands.py +0 -0
  418. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/device_entry.py +0 -0
  419. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/devices.py +0 -0
  420. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/linux.py +0 -0
  421. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/macos.py +0 -0
  422. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/selection.py +0 -0
  423. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/utils.py +0 -0
  424. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/mount_helpers/windows.py +0 -0
  425. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/register_interactive.py +0 -0
  426. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/run_script.py +0 -0
  427. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/stackops_skill_refs.py +0 -0
  428. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/__init__.py +0 -0
  429. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_pwsh_theme.ps1 +0 -0
  430. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.ps1 +0 -0
  431. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.sh +0 -0
  432. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_wezterm_theme.py +0 -0
  433. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/themes/choose_windows_terminal_theme.ps1 +0 -0
  434. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_devops/vault.py +0 -0
  435. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_env/__init__.py +0 -0
  436. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_env/path_manager_backend.py +0 -0
  437. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/__init__.py +0 -0
  438. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/cloud_manager.py +0 -0
  439. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/f.py +0 -0
  440. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/file_wrangler.py +0 -0
  441. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_args_helper.py +0 -0
  442. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +0 -0
  443. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_route_helper.py +0 -0
  444. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  445. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/__init__.py +0 -0
  446. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/address_switch.py +0 -0
  447. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ftpx_impl.py +0 -0
  448. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/onetimeshare.py +0 -0
  449. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/__init__.py +0 -0
  450. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_add_key_windows.py +0 -0
  451. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_add_ssh_key.py +0 -0
  452. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_cloud_init.py +0 -0
  453. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_darwin.py +0 -0
  454. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_darwin_utils.py +0 -0
  455. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_linux.py +0 -0
  456. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_linux_utils.py +0 -0
  457. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_windows.py +0 -0
  458. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_debug_windows_utils.py +0 -0
  459. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/ssh/ssh_deploy_key_remote.py +0 -0
  460. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn.py +0 -0
  461. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/common.py +0 -0
  462. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/darwin.py +0 -0
  463. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/linux.py +0 -0
  464. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/unsupported.py +0 -0
  465. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_network/wifi_conn_platforms/windows.py +0 -0
  466. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/__init__.py +0 -0
  467. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/pomodoro.py +0 -0
  468. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/scheduler.py +0 -0
  469. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/start_slidev.py +0 -0
  470. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/viewer.py +0 -0
  471. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_preview/viewer_template.py +0 -0
  472. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/action.py +0 -0
  473. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/action_helper.py +0 -0
  474. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/clone.py +0 -0
  475. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/cloud_repo_sync.py +0 -0
  476. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/cloud_repo_sync_conflicts.py +0 -0
  477. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/grource.py +0 -0
  478. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/record.py +0 -0
  479. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/repo_analyzer_1.py +0 -0
  480. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/repo_analyzer_2.py +0 -0
  481. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/spec_store.py +0 -0
  482. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/sync.py +0 -0
  483. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_repos/update.py +0 -0
  484. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/ast_search.py +0 -0
  485. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/qr_code.py +0 -0
  486. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/repo_rag.py +0 -0
  487. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/script_help.py +0 -0
  488. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_search/semantic_search.py +0 -0
  489. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/__init__.py +0 -0
  490. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_linux/__init__.py +0 -0
  491. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_linux/fzfg +0 -0
  492. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_linux/search_with_context.sh +0 -0
  493. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_macos/__init__.py +0 -0
  494. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_macos/fzfg +0 -0
  495. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_windows/__init__.py +0 -0
  496. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/scripts_windows/fzfg.ps1 +0 -0
  497. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_seek/seek_impl.py +0 -0
  498. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/__init__.py +0 -0
  499. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_aoe_backend.py +0 -0
  500. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_attach_common.py +0 -0
  501. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_herdr_backend.py +0 -0
  502. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend.py +0 -0
  503. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_options.py +0 -0
  504. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_preview.py +0 -0
  505. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/_tmux_backend_processes.py +0 -0
  506. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/attach_impl.py +0 -0
  507. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/kill_impl.py +0 -0
  508. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_aoe.py +0 -0
  509. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_herdr.py +0 -0
  510. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_models.py +0 -0
  511. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/session_trace_tmux.py +0 -0
  512. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_aoe_impl.py +0 -0
  513. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_common.py +0 -0
  514. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_run.py +0 -0
  515. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_cli_run_all.py +0 -0
  516. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic.py +0 -0
  517. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic_display.py +0 -0
  518. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_dynamic_tmux.py +0 -0
  519. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_herdr.py +0 -0
  520. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_impl.py +0 -0
  521. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_layout_source.py +0 -0
  522. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_multiprocess.py +0 -0
  523. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_test_layouts.py +0 -0
  524. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_trace.py +0 -0
  525. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/sessions_trace_render.py +0 -0
  526. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/terminal_cli_helpers.py +0 -0
  527. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_sessions/utils.py +0 -0
  528. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/file_utils_app.py +0 -0
  529. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/machine_utils_app.py +0 -0
  530. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/path_helper.py +0 -0
  531. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/path_reference_validation.py +0 -0
  532. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pdf.py +0 -0
  533. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/processes.py +0 -0
  534. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_app.py +0 -0
  535. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_commands_check.py +0 -0
  536. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_commands_setup.py +0 -0
  537. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/pyproject_utils_helpers.py +0 -0
  538. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/python.py +0 -0
  539. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/python_env.py +0 -0
  540. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/python_init.py +0 -0
  541. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/read_db_cli_tui.py +0 -0
  542. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/read_db_cli_tui_backend.py +0 -0
  543. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/scrape.py +0 -0
  544. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/specs.py +0 -0
  545. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/surya.py +0 -0
  546. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/helpers/helpers_utils/upgrade_packages.py +0 -0
  547. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/preview.py +0 -0
  548. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/seek.py +0 -0
  549. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/stackops_entry.py +0 -0
  550. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/terminal.py +0 -0
  551. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/terminal_summarize.py +0 -0
  552. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/terminal_summary.py +0 -0
  553. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/python/utils.py +0 -0
  554. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/__init__.py +0 -0
  555. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/apps_desktop.sh +0 -0
  556. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/live_from_github.sh +0 -0
  557. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/linux/uv.sh +0 -0
  558. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/macos/__init__.py +0 -0
  559. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/macos/uv.sh +0 -0
  560. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/__init__.py +0 -0
  561. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/live_from_github.ps1 +0 -0
  562. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/quick_init.ps1 +0 -0
  563. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/setup/windows/uv.ps1 +0 -0
  564. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/windows/__init__.py +0 -0
  565. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/scripts/windows/wrap_stackops.ps1 +0 -0
  566. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/__init__.py +0 -0
  567. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/assets.py +0 -0
  568. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/loader.py +0 -0
  569. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/models.py +0 -0
  570. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/paths.py +0 -0
  571. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/readers.py +0 -0
  572. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/secrets/search.py +0 -0
  573. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/__init__.py +0 -0
  574. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/atuin/__init__.py +0 -0
  575. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/atuin/config.toml +0 -0
  576. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/atuin/themes/__init__.py +0 -0
  577. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/atuin/themes/catppuccin-mocha-mauve.toml +0 -0
  578. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/broot/__init__.py +0 -0
  579. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/broot/br.sh +0 -0
  580. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/broot/brootcd.ps1 +0 -0
  581. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/broot/conf.toml +0 -0
  582. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/glow/__init__.py +0 -0
  583. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/glow/glow.yml +0 -0
  584. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/gromit-mpx/__init__.py +0 -0
  585. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/gromit-mpx/gromit-mpx.cfg +0 -0
  586. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/helix/__init__.py +0 -0
  587. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/helix/config.toml +0 -0
  588. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/helix/languages.toml +0 -0
  589. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/helix/yazi-picker.sh +0 -0
  590. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/herdr/__init__.py +0 -0
  591. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keras/__init__.py +0 -0
  592. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keras/keras.json +0 -0
  593. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/espanso/config/__init__.py +0 -0
  594. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/espanso/config/default.yml +0 -0
  595. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/espanso/match/__init__.py +0 -0
  596. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/espanso/match/base.yml +0 -0
  597. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/kanata/__init__.py +0 -0
  598. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/keyboard/kanata/kanata.kbd +0 -0
  599. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/__init__.py +0 -0
  600. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/__init__.py +0 -0
  601. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/delete.sh +0 -0
  602. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/on-cd.sh +0 -0
  603. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/on-quit.sh +0 -0
  604. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/open.sh +0 -0
  605. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/paste.sh +0 -0
  606. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/pre-cd.sh +0 -0
  607. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/autocall/rename.sh +0 -0
  608. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/colors +0 -0
  609. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/__init__.py +0 -0
  610. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/cleaner.sh +0 -0
  611. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
  612. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/lfcd.sh +0 -0
  613. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/previewer.sh +0 -0
  614. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/exe/previewer_archive.sh +0 -0
  615. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/icons +0 -0
  616. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/linux/lfrc +0 -0
  617. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/__init__.py +0 -0
  618. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/__init__.py +0 -0
  619. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/delete.ps1 +0 -0
  620. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  621. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  622. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/open.ps1 +0 -0
  623. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/paste.ps1 +0 -0
  624. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  625. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/autocall/rename.ps1 +0 -0
  626. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/cd_tere.ps1 +0 -0
  627. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/cd_zoxide.ps1 +0 -0
  628. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/cd_zoxide2.ps1 +0 -0
  629. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/colors +0 -0
  630. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/icons +0 -0
  631. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/leftpane_previewer.ps1 +0 -0
  632. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/lfcd.ps1 +0 -0
  633. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/lfrc +0 -0
  634. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/mkdir.ps1 +0 -0
  635. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/mkfile.ps1 +0 -0
  636. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lf/windows/previewer.ps1 +0 -0
  637. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/.flake8 +0 -0
  638. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/.mypy.ini +0 -0
  639. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/.pylintrc +0 -0
  640. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/.ruff.toml +0 -0
  641. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/__init__.py +0 -0
  642. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/pyrefly.toml +0 -0
  643. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/linters/ty.toml +0 -0
  644. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/linux/__init__.py +0 -0
  645. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/linux/config.lua +0 -0
  646. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/__init__.py +0 -0
  647. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/archive/__init__.py +0 -0
  648. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/archive/config_additional.lua +0 -0
  649. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/config.lua +0 -0
  650. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/lua/user/__init__.py +0 -0
  651. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/lvim/windows/lua/user/custom_config.lua +0 -0
  652. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/marimo/__init__.py +0 -0
  653. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/marimo/marimo.toml +0 -0
  654. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/marimo/snippets/globalize.py +0 -0
  655. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/mprocs/windows/__init__.py +0 -0
  656. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/mprocs/windows/mprocs.yaml +0 -0
  657. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/mprocs/windows/other +0 -0
  658. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/ollama/__init__.py +0 -0
  659. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/ollama/server.json +0 -0
  660. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/pistol/__init__.py +0 -0
  661. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/pistol/pistol.conf +0 -0
  662. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/presenterm/__init__.py +0 -0
  663. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/presenterm/config.yaml +0 -0
  664. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/procs/.procs.toml +0 -0
  665. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/__init__.py +0 -0
  666. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/description.md +0 -0
  667. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/install-ppm.ps1 +0 -0
  668. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.bindings.conf +0 -0
  669. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.conf +0 -0
  670. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.local.conf +0 -0
  671. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.plugins.conf +0 -0
  672. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.powerline.conf +0 -0
  673. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/psmux/psmux.theme.conf +0 -0
  674. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/pudb/__init__.py +0 -0
  675. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/pudb/pudb.cfg +0 -0
  676. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/rofi/__init__.py +0 -0
  677. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/rofi/config.rasi +0 -0
  678. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/rofi/config_default.rasi +0 -0
  679. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/alacritty/__init__.py +0 -0
  680. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/alacritty/alacritty.toml +0 -0
  681. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/alacritty/alacritty.yml +0 -0
  682. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/bash/__init__.py +0 -0
  683. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/bash/init.sh +0 -0
  684. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ghostty/__init__.py +0 -0
  685. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ghostty/config +0 -0
  686. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/hyper/.hyper.js +0 -0
  687. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ipy/profiles/default/__init__.py +0 -0
  688. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  689. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
  690. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/kitty/__init__.py +0 -0
  691. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/kitty/kitty.conf +0 -0
  692. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/nushell/__init__.py +0 -0
  693. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/nushell/config.nu +0 -0
  694. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/nushell/env.nu +0 -0
  695. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/nushell/init.nu +0 -0
  696. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/pwsh/__init__.py +0 -0
  697. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/pwsh/init.ps1 +0 -0
  698. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/pwsh/search_pwsh_history.ps1 +0 -0
  699. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/starship/__init__.py +0 -0
  700. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/starship/starship.toml +0 -0
  701. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/vtm/__init__.py +0 -0
  702. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/vtm/settings.xml +0 -0
  703. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/wezterm/__init__.py +0 -0
  704. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/wezterm/wezterm.lua +0 -0
  705. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/wt/__init__.py +0 -0
  706. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/wt/settings.json +0 -0
  707. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/zsh/__init__.py +0 -0
  708. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/shells/zsh/init.sh +0 -0
  709. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/streamlit/__init__.py +0 -0
  710. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/streamlit/config.toml +0 -0
  711. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/svim/linux/__init__.py +0 -0
  712. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/svim/linux/init.toml +0 -0
  713. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/svim/windows/__init__.py +0 -0
  714. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/svim/windows/init.toml +0 -0
  715. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/__init__.py +0 -0
  716. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/alias.toml +0 -0
  717. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/apt-packages.toml +0 -0
  718. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/aws-buckets.toml +0 -0
  719. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/aws-instances.toml +0 -0
  720. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/bash-history.toml +0 -0
  721. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/brew-packages.toml +0 -0
  722. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/channels.toml +0 -0
  723. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/dirs.toml +0 -0
  724. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/diskutil.toml +0 -0
  725. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/distrobox-list.toml +0 -0
  726. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/docker-images.toml +0 -0
  727. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/dotfiles.toml +0 -0
  728. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/downloads.toml +0 -0
  729. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/env.toml +0 -0
  730. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/figlet-fonts.toml +0 -0
  731. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/files.toml +0 -0
  732. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/fish-history.toml +0 -0
  733. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/fonts.toml +0 -0
  734. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-branch.toml +0 -0
  735. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-diff.toml +0 -0
  736. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-files.toml +0 -0
  737. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-log.toml +0 -0
  738. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-reflog.toml +0 -0
  739. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-repos.toml +0 -0
  740. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-tags.toml +0 -0
  741. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/git-worktrees.toml +0 -0
  742. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/guix.toml +0 -0
  743. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/images.toml +0 -0
  744. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/just-recipes.toml +0 -0
  745. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/k8s-deployments.toml +0 -0
  746. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/k8s-pods.toml +0 -0
  747. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/k8s-services.toml +0 -0
  748. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/linux-disks.toml +0 -0
  749. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/man-pages.toml +0 -0
  750. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/mounts.toml +0 -0
  751. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/npm-packages.toml +0 -0
  752. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/nu-history.toml +0 -0
  753. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/path.toml +0 -0
  754. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/ports.toml +0 -0
  755. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/procs.toml +0 -0
  756. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/python-venvs.toml +0 -0
  757. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/recent-files.toml +0 -0
  758. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/sesh.toml +0 -0
  759. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/text.toml +0 -0
  760. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/tldr.toml +0 -0
  761. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/tmux-sessions.toml +0 -0
  762. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/tmux-windows.toml +0 -0
  763. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/todo-comments.toml +0 -0
  764. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/trash.toml +0 -0
  765. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/unicode.toml +0 -0
  766. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/wifi.toml +0 -0
  767. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/zoxide.toml +0 -0
  768. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_unix/zsh-history.toml +0 -0
  769. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/__init__.py +0 -0
  770. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/alias.toml +0 -0
  771. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/dirs.toml +0 -0
  772. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/docker-images.toml +0 -0
  773. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/dotfiles.toml +0 -0
  774. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/env.toml +0 -0
  775. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/files.toml +0 -0
  776. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-branch.toml +0 -0
  777. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-diff.toml +0 -0
  778. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-log.toml +0 -0
  779. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-reflog.toml +0 -0
  780. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/git-repos.toml +0 -0
  781. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/nu-history.toml +0 -0
  782. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/pwsh-history.toml +0 -0
  783. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/television/cable_windows/text.toml +0 -0
  784. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tere/__init__.py +0 -0
  785. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tere/terecd.ps1 +0 -0
  786. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tere/terecd.sh +0 -0
  787. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tmux/__init__.py +0 -0
  788. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tmux/tmux.conf.local +0 -0
  789. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tv/__init__.py +0 -0
  790. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tv/config.toml +0 -0
  791. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tv/themes/__init__.py +0 -0
  792. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/tv/themes/catppuccin-mocha-sky.toml +0 -0
  793. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/wsl/.wslconfig +0 -0
  794. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/wt/__init__.py +0 -0
  795. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/wt/set_wt_settings.py +0 -0
  796. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/__init__.py +0 -0
  797. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/init.lua +0 -0
  798. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/keymap_darwin.toml +0 -0
  799. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/keymap_linux.toml +0 -0
  800. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/keymap_windows.toml +0 -0
  801. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/__init__.py +0 -0
  802. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/compress_selected.py +0 -0
  803. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/copy_file_content.py +0 -0
  804. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/fullscreen_preview.py +0 -0
  805. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/interactive_view.py +0 -0
  806. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/open_db_readonly.py +0 -0
  807. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/open_default_app.py +0 -0
  808. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/scripts/serve_browser_file.py +0 -0
  809. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/shell/__init__.py +0 -0
  810. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/shell/yazi_cd.ps1 +0 -0
  811. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/shell/yazi_cd.sh +0 -0
  812. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/theme.toml +0 -0
  813. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/yazi_darwin.toml +0 -0
  814. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/yazi_linux.toml +0 -0
  815. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/yazi/yazi_windows.toml +0 -0
  816. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/zed/__init__.py +0 -0
  817. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/settings/zed/settings.json +0 -0
  818. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/__init__.py +0 -0
  819. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/accessories.py +0 -0
  820. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/__init__.py +0 -0
  821. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/alias_markers.py +0 -0
  822. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/command_lookup.py +0 -0
  823. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/hierarchy.py +0 -0
  824. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/hierarchy_types.py +0 -0
  825. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cli_utils/terminal.py +0 -0
  826. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/__init__.py +0 -0
  827. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/defaults.py +0 -0
  828. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/encryption.py +0 -0
  829. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/README.md +0 -0
  830. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/__init__.py +0 -0
  831. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/auth.py +0 -0
  832. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/file_ops.py +0 -0
  833. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/onedrive/setup_oauth.py +0 -0
  834. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/rclone.py +0 -0
  835. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/cloud/rclone_wrapper.py +0 -0
  836. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/code.py +0 -0
  837. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/__init__.py +0 -0
  838. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/__init__.py +0 -0
  839. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/fat_croco.txt +0 -0
  840. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/halfwit_croco.txt +0 -0
  841. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/happy_croco.txt +0 -0
  842. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/art/water_croco.txt +0 -0
  843. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/ascii_art.py +0 -0
  844. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/compression.py +0 -0
  845. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/dbms.py +0 -0
  846. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/download.py +0 -0
  847. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/f.py +0 -0
  848. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/headers.py +0 -0
  849. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/notebook.py +0 -0
  850. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/ouch/__init__.py +0 -0
  851. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/ouch/decompress.py +0 -0
  852. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/files/read.py +0 -0
  853. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/__init__.py +0 -0
  854. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/github_release_bulk.py +0 -0
  855. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/github_release_scraper.py +0 -0
  856. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/install_from_url.py +0 -0
  857. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/install_request_logic.py +0 -0
  858. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_class.py +0 -0
  859. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_cli.py +0 -0
  860. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_explore.py +0 -0
  861. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_helper.py +0 -0
  862. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_locator_utils.py +0 -0
  863. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_main_protocol.py +0 -0
  864. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline.py +0 -0
  865. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_constants.py +0 -0
  866. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_models.py +0 -0
  867. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_publish.py +0 -0
  868. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_render.py +0 -0
  869. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_scripts.py +0 -0
  870. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_steps.py +0 -0
  871. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_offline_uv.py +0 -0
  872. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_runner.py +0 -0
  873. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/installer_utils/installer_summary.py +0 -0
  874. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/io.py +0 -0
  875. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/machine/__init__.py +0 -0
  876. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/machine/specs.py +0 -0
  877. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/meta.py +0 -0
  878. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/network/__init__.py +0 -0
  879. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/network/address.py +0 -0
  880. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/optional_dependencies.py +0 -0
  881. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/__init__.py +0 -0
  882. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/options.py +0 -0
  883. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/options_tv_linux.py +0 -0
  884. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/options_tv_windows.py +0 -0
  885. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/textual_options_form.py +0 -0
  886. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/textual_options_form_types.py +0 -0
  887. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/options_utils/tv_options.py +0 -0
  888. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/path_core.py +0 -0
  889. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/path_reference.py +0 -0
  890. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/python/__init__.py +0 -0
  891. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/python/imports.py +0 -0
  892. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/repos/__init__.py +0 -0
  893. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/repos/stackops_paths.py +0 -0
  894. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/__init__.py +0 -0
  895. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/agents/__init__.py +0 -0
  896. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/agents/parallel.schema.json +0 -0
  897. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/agents/prompts.schema.json +0 -0
  898. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/config/__init__.py +0 -0
  899. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/config/config.json +0 -0
  900. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/config/config.schema.json +0 -0
  901. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/config/config_types.py +0 -0
  902. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/fire_agents/__init__.py +0 -0
  903. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/fire_agents/fire_agents_input.py +0 -0
  904. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/fire_agents/fire_agents_types.py +0 -0
  905. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/__init__.py +0 -0
  906. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/installer_data.json +0 -0
  907. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/installer_type.schema.json +0 -0
  908. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/installer_types.py +0 -0
  909. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/installer/package_groups.py +0 -0
  910. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/layouts/__init__.py +0 -0
  911. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/layouts/layout.json +0 -0
  912. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/layouts/layout.schema.json +0 -0
  913. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/layouts/layout_types.py +0 -0
  914. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/__init__.py +0 -0
  915. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/data.schema.json +0 -0
  916. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/data.yaml +0 -0
  917. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/dotfiles.schema.json +0 -0
  918. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/mapper/dotfiles.yaml +0 -0
  919. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/repos/__init__.py +0 -0
  920. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/repos/repos_schema.json +0 -0
  921. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/repos/repos_types.py +0 -0
  922. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/schemas/yaml_schema.py +0 -0
  923. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/source_of_truth.py +0 -0
  924. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/__init__.py +0 -0
  925. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/ssh.py +0 -0
  926. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/wsl.py +0 -0
  927. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/utils/ssh_utils/wsl_helper.py +0 -0
  928. {stackops-26.6.5 → stackops-26.6.6}/src/stackops/version.py +0 -0
  929. {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/dependency_links.txt +0 -0
  930. {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/entry_points.txt +0 -0
  931. {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/requires.txt +0 -0
  932. {stackops-26.6.5 → stackops-26.6.6}/src/stackops.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stackops
3
- Version: 26.6.5
3
+ Version: 26.6.6
4
4
  Summary: Developer Stack Manager
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "stackops"
9
- version = "26.6.5"
9
+ version = "26.6.6"
10
10
  description = "Developer Stack Manager"
11
11
  readme = "README.md"
12
12
  license = {text = "Apache 2.0"}
@@ -389,6 +389,7 @@ def add_skill(
389
389
 
390
390
  def get_app() -> typer.Typer:
391
391
  from stackops.scripts.python.agents_browser import get_app as get_browser_app
392
+ from stackops.scripts.python.agents_iter import get_app as get_iter_app
392
393
  from stackops.scripts.python.agents_parallel import get_app as get_parallel_app
393
394
 
394
395
  agents_app = typer.Typer(help="🤖 AI Agents management subcommands", no_args_is_help=True, add_help_option=True, add_completion=False)
@@ -400,6 +401,8 @@ def get_app() -> typer.Typer:
400
401
  get_browser_app(), name="browser", help="🌐 <b> Browser automation for agent CLIs and MCP", short_help="<b> Browser automation for agent CLIs/MCP"
401
402
  )
402
403
  agents_app.add_typer(get_browser_app(), name="b", help="Browser automation for agent CLIs and MCP", hidden=True)
404
+ agents_app.add_typer(get_iter_app(), name="iter", help="🔁 <I> Iter workflow maintenance commands", short_help="<I> Iter workflow maintenance")
405
+ agents_app.add_typer(get_iter_app(), name="I", help="Iter workflow maintenance commands", hidden=True)
403
406
 
404
407
  agents_app.command(name="add-mcp", short_help="<m> Resolve catalog MCP entries or supported skills")(add_mcp)
405
408
  agents_app.command(name="m", hidden=True)(add_mcp)
@@ -409,10 +412,10 @@ def get_app() -> typer.Typer:
409
412
  make_todo_files
410
413
  )
411
414
  agents_app.command("d", no_args_is_help=True, hidden=True)(make_todo_files)
412
- agents_app.command(name="add-symlinks", no_args_is_help=True, short_help="<l> Create symlinks to the current repo in ~/code_copies/")(
415
+ agents_app.command(name="add-symlinks", no_args_is_help=True, short_help="<L> Create symlinks to the current repo in ~/code_copies/")(
413
416
  create_symlink_command
414
417
  )
415
- agents_app.command(name="l", no_args_is_help=True, hidden=True)(create_symlink_command)
418
+ agents_app.command(name="L", no_args_is_help=True, hidden=True)(create_symlink_command)
416
419
  agents_app.command(
417
420
  "add-config", no_args_is_help=True, help=init_config.__doc__, short_help="<c> Initialize AI configurations in the current repository"
418
421
  )(init_config)
@@ -0,0 +1,34 @@
1
+ from typing import Annotated
2
+
3
+ import typer
4
+
5
+
6
+ def clean(continuous: Annotated[bool, typer.Option("--loop", "-l", help="Repeat cleanup every 5 minutes.")] = False) -> None:
7
+ """Close old Herdr tabs in iter workspaces, keeping the last 3 tabs per workspace."""
8
+ try:
9
+ from stackops.scripts.python.helpers.helpers_agents.agents_iter_impl import clean_iter_workspaces_loop
10
+
11
+ clean_iter_workspaces_loop(continuous=continuous, report=typer.echo)
12
+ except RuntimeError as error:
13
+ typer.echo(str(error), err=True)
14
+ raise typer.Exit(code=1) from error
15
+
16
+
17
+ def status() -> None:
18
+ """Show each iter loop's latest iteration agent and live Herdr status."""
19
+ try:
20
+ from stackops.scripts.python.helpers.helpers_agents.agents_iter_impl import show_iter_status
21
+
22
+ show_iter_status()
23
+ except RuntimeError as error:
24
+ typer.echo(str(error), err=True)
25
+ raise typer.Exit(code=1) from error
26
+
27
+
28
+ def get_app() -> typer.Typer:
29
+ iter_app = typer.Typer(help="🔁 <c> Iter workflow maintenance commands", no_args_is_help=True, add_help_option=True, add_completion=False)
30
+ iter_app.command(name="clean", no_args_is_help=False, short_help="<c> Clean old Herdr tabs from iter workspaces")(clean)
31
+ iter_app.command(name="c", no_args_is_help=False, hidden=True)(clean)
32
+ iter_app.command(name="status", no_args_is_help=False, short_help="<s> Show iter workspace status")(status)
33
+ iter_app.command(name="s", no_args_is_help=False, hidden=True)(status)
34
+ return iter_app
@@ -15448,6 +15448,134 @@
15448
15448
  }
15449
15449
  ]
15450
15450
  },
15451
+ {
15452
+ "kind": "group",
15453
+ "name": "iter",
15454
+ "fullPath": "agents iter",
15455
+ "shortPath": "a I",
15456
+ "help": "🔁 <I> Iter workflow maintenance commands",
15457
+ "source": {
15458
+ "file": "src/stackops/scripts/python/agents.py",
15459
+ "module": "stackops.scripts.python.agents",
15460
+ "dispatches_to": "stackops.scripts.python.agents_iter.get_app"
15461
+ },
15462
+ "app": {
15463
+ "help": "🔁 <c> Iter workflow maintenance commands",
15464
+ "no_args_is_help": true,
15465
+ "add_help_option": true,
15466
+ "add_completion": false
15467
+ },
15468
+ "children": [
15469
+ {
15470
+ "kind": "command",
15471
+ "name": "clean",
15472
+ "fullPath": "agents iter clean",
15473
+ "shortPath": "a I c",
15474
+ "help": "Close old Herdr tabs in iter workspaces, keeping the last 3 tabs per workspace.",
15475
+ "source": {
15476
+ "file": "src/stackops/scripts/python/agents_iter.py",
15477
+ "module": "stackops.scripts.python.agents_iter",
15478
+ "callable": "clean"
15479
+ },
15480
+ "signature": {
15481
+ "raw_lines": [
15482
+ "def clean(continuous: Annotated[bool, typer.Option(\"--loop\", \"-l\", help=\"Repeat cleanup every 5 minutes.\")] = False) -> None:",
15483
+ " \"\"\"Close old Herdr tabs in iter workspaces, keeping the last 3 tabs per workspace.\"\"\"",
15484
+ " try:",
15485
+ " from stackops.scripts.python.helpers.helpers_agents.agents_iter_impl import clean_iter_workspaces_loop",
15486
+ "",
15487
+ " clean_iter_workspaces_loop(continuous=continuous, report=typer.echo)",
15488
+ " except RuntimeError as error:",
15489
+ " typer.echo(str(error), err=True)",
15490
+ " raise typer.Exit(code=1) from error"
15491
+ ],
15492
+ "name": "clean",
15493
+ "parameters": [
15494
+ {
15495
+ "name": "continuous",
15496
+ "kind": "positional_or_keyword",
15497
+ "type": "bool",
15498
+ "default": false,
15499
+ "required": false,
15500
+ "annotation_raw": "Annotated[bool, typer.Option('--loop', '-l', help='Repeat cleanup every 5 minutes.')]",
15501
+ "typer": {
15502
+ "kind": "option",
15503
+ "param_decls": [
15504
+ "--loop",
15505
+ "-l"
15506
+ ],
15507
+ "long_flags": [
15508
+ "--loop"
15509
+ ],
15510
+ "short_flags": [
15511
+ "-l"
15512
+ ],
15513
+ "help": "Repeat cleanup every 5 minutes."
15514
+ }
15515
+ }
15516
+ ],
15517
+ "return": "None"
15518
+ },
15519
+ "short_help": "<c> Clean old Herdr tabs from iter workspaces",
15520
+ "typer": {
15521
+ "no_args_is_help": false
15522
+ },
15523
+ "doc": "Close old Herdr tabs in iter workspaces, keeping the last 3 tabs per workspace.",
15524
+ "aliases": [
15525
+ {
15526
+ "name": "c",
15527
+ "hidden": true
15528
+ }
15529
+ ]
15530
+ },
15531
+ {
15532
+ "kind": "command",
15533
+ "name": "status",
15534
+ "fullPath": "agents iter status",
15535
+ "shortPath": "a I s",
15536
+ "help": "Show each iter loop's latest iteration agent and live Herdr status.",
15537
+ "source": {
15538
+ "file": "src/stackops/scripts/python/agents_iter.py",
15539
+ "module": "stackops.scripts.python.agents_iter",
15540
+ "callable": "status"
15541
+ },
15542
+ "signature": {
15543
+ "raw_lines": [
15544
+ "def status() -> None:",
15545
+ " \"\"\"Show each iter loop's latest iteration agent and live Herdr status.\"\"\"",
15546
+ " try:",
15547
+ " from stackops.scripts.python.helpers.helpers_agents.agents_iter_impl import show_iter_status",
15548
+ "",
15549
+ " show_iter_status()",
15550
+ " except RuntimeError as error:",
15551
+ " typer.echo(str(error), err=True)",
15552
+ " raise typer.Exit(code=1) from error"
15553
+ ],
15554
+ "name": "status",
15555
+ "parameters": [],
15556
+ "return": "None"
15557
+ },
15558
+ "short_help": "<s> Show iter workspace status",
15559
+ "typer": {
15560
+ "no_args_is_help": false
15561
+ },
15562
+ "doc": "Show each iter loop's latest iteration agent and live Herdr status.",
15563
+ "aliases": [
15564
+ {
15565
+ "name": "s",
15566
+ "hidden": true
15567
+ }
15568
+ ]
15569
+ }
15570
+ ],
15571
+ "aliases": [
15572
+ {
15573
+ "name": "I",
15574
+ "hidden": true,
15575
+ "help": "Iter workflow maintenance commands"
15576
+ }
15577
+ ]
15578
+ },
15451
15579
  {
15452
15580
  "kind": "command",
15453
15581
  "name": "add-mcp",
@@ -16051,7 +16179,7 @@
16051
16179
  "kind": "command",
16052
16180
  "name": "add-symlinks",
16053
16181
  "fullPath": "agents add-symlinks",
16054
- "shortPath": "a l",
16182
+ "shortPath": "a L",
16055
16183
  "help": "Create symlinks to repo_root at ~/code_copies/${repo_name}_copy_{i}.",
16056
16184
  "source": {
16057
16185
  "file": "src/stackops/scripts/python/agents.py",
@@ -16086,14 +16214,14 @@
16086
16214
  ],
16087
16215
  "return": "None"
16088
16216
  },
16089
- "short_help": "<l> Create symlinks to the current repo in ~/code_copies/",
16217
+ "short_help": "<L> Create symlinks to the current repo in ~/code_copies/",
16090
16218
  "typer": {
16091
16219
  "no_args_is_help": true
16092
16220
  },
16093
16221
  "doc": "Create symlinks to repo_root at ~/code_copies/${repo_name}_copy_{i}.",
16094
16222
  "aliases": [
16095
16223
  {
16096
- "name": "l",
16224
+ "name": "L",
16097
16225
  "hidden": true
16098
16226
  }
16099
16227
  ]
@@ -2,7 +2,7 @@
2
2
  # /// script
3
3
  # requires-python = ">=3.13"
4
4
  # dependencies = [
5
- # "stackops>=26.6.5",
5
+ # "stackops>=26.6.6",
6
6
  # "textual",
7
7
  # ]
8
8
  # ///
@@ -0,0 +1,389 @@
1
+ import json
2
+ import re
3
+ import shlex
4
+ import subprocess
5
+ from collections.abc import Callable
6
+ from dataclasses import dataclass
7
+ from time import sleep
8
+ from typing import Final, TypeAlias, cast
9
+
10
+ from rich import box
11
+ from rich.console import Console
12
+ from rich.table import Table
13
+
14
+
15
+ JsonObject: TypeAlias = dict[str, object]
16
+ KEEP_RECENT_TABS: Final[int] = 3
17
+ LOOP_INTERVAL_SECONDS: Final[int] = 300
18
+ ITER_WORKSPACE_PREFIX: Final[str] = "iter"
19
+ ITER_AGENT_LABEL_PATTERN: Final[re.Pattern[str]] = re.compile(r"^iter-.+-(?P<iteration>[0-9]{3})$")
20
+ _CONSOLE: Final[Console] = Console()
21
+
22
+
23
+ @dataclass(frozen=True, slots=True)
24
+ class HerdrWorkspace:
25
+ workspace_id: str
26
+ label: str
27
+ number: int
28
+ active_tab_id: str
29
+ agent_status: str
30
+ focused: bool
31
+ pane_count: int
32
+ tab_count: int
33
+
34
+
35
+ @dataclass(frozen=True, slots=True)
36
+ class HerdrTab:
37
+ tab_id: str
38
+ workspace_id: str
39
+ label: str
40
+ number: int
41
+ agent_status: str
42
+ focused: bool
43
+ pane_count: int
44
+
45
+
46
+ @dataclass(frozen=True, slots=True)
47
+ class HerdrAgent:
48
+ agent: str
49
+ agent_status: str
50
+ workspace_id: str
51
+ tab_id: str
52
+ pane_id: str
53
+ cwd: str
54
+ foreground_cwd: str
55
+ focused: bool
56
+ name: str | None
57
+
58
+
59
+ @dataclass(frozen=True, slots=True)
60
+ class IterWorkspaceCleanup:
61
+ workspace: HerdrWorkspace
62
+ kept_tabs: tuple[HerdrTab, ...]
63
+ closed_tabs: tuple[HerdrTab, ...]
64
+
65
+
66
+ @dataclass(frozen=True, slots=True)
67
+ class IterWorkspaceStatus:
68
+ workspace: HerdrWorkspace
69
+ tabs: tuple[HerdrTab, ...]
70
+ kept_tabs: tuple[HerdrTab, ...]
71
+ closable_tabs: tuple[HerdrTab, ...]
72
+ latest_iteration: int | None
73
+ latest_agent: HerdrAgent | None
74
+ latest_agent_tab: HerdrTab | None
75
+
76
+
77
+ def clean_iter_workspaces_loop(*, continuous: bool, report: Callable[[str], None]) -> None:
78
+ while True:
79
+ summaries = clean_iter_workspaces()
80
+ _report_summaries(summaries=summaries, report=report)
81
+ if not continuous:
82
+ return
83
+ sleep(LOOP_INTERVAL_SECONDS)
84
+
85
+
86
+ def show_iter_status() -> None:
87
+ _CONSOLE.print(build_iter_status_table(statuses=get_iter_workspace_statuses()))
88
+
89
+
90
+ def get_iter_workspace_statuses() -> tuple[IterWorkspaceStatus, ...]:
91
+ workspaces = _iter_workspaces(workspaces=_list_workspaces())
92
+ tabs_by_workspace_id = _tabs_by_workspace_id(tabs=_list_tabs())
93
+ agents_by_workspace_id = _agents_by_workspace_id(agents=_list_agents())
94
+ statuses: list[IterWorkspaceStatus] = []
95
+ for workspace in workspaces:
96
+ tabs = tuple(sorted(tabs_by_workspace_id.get(workspace.workspace_id, ()), key=lambda tab: tab.number))
97
+ latest_agent = _latest_iter_agent(agents=agents_by_workspace_id.get(workspace.workspace_id, ()))
98
+ kept_tabs = _kept_tabs(tabs=tabs)
99
+ closable_tabs = _closable_tabs(tabs=tabs, kept_tabs=kept_tabs)
100
+ statuses.append(
101
+ IterWorkspaceStatus(
102
+ workspace=workspace,
103
+ tabs=tabs,
104
+ kept_tabs=kept_tabs,
105
+ closable_tabs=closable_tabs,
106
+ latest_iteration=_latest_iteration(agent=latest_agent),
107
+ latest_agent=latest_agent,
108
+ latest_agent_tab=_find_tab(tabs=tabs, tab_id=latest_agent.tab_id) if latest_agent is not None else None,
109
+ )
110
+ )
111
+ return tuple(statuses)
112
+
113
+
114
+ def build_iter_status_table(*, statuses: tuple[IterWorkspaceStatus, ...]) -> Table:
115
+ table = Table(title=f"Iter Status ({len(statuses)})", box=box.SIMPLE_HEAVY, expand=True)
116
+ table.add_column("Loop", style="bold", overflow="fold", ratio=3)
117
+ table.add_column("Iter", justify="right", no_wrap=True)
118
+ table.add_column("Agent", no_wrap=True)
119
+ table.add_column("Status", no_wrap=True)
120
+ table.add_column("Where", overflow="fold", ratio=2)
121
+ table.add_column("Tabs", no_wrap=True)
122
+ for status in statuses:
123
+ table.add_row(
124
+ status.workspace.label,
125
+ _format_iteration(iteration=status.latest_iteration),
126
+ _format_agent(agent=status.latest_agent),
127
+ _format_agent_status(status=status),
128
+ _format_agent_where(tab=status.latest_agent_tab, agent=status.latest_agent),
129
+ _format_tab_counts(status=status),
130
+ )
131
+ return table
132
+
133
+
134
+ def clean_iter_workspaces() -> tuple[IterWorkspaceCleanup, ...]:
135
+ workspaces = _iter_workspaces(workspaces=_list_workspaces())
136
+ tabs_by_workspace_id = _tabs_by_workspace_id(tabs=_list_tabs())
137
+ summaries: list[IterWorkspaceCleanup] = []
138
+ for workspace in workspaces:
139
+ tabs = tabs_by_workspace_id.get(workspace.workspace_id, ())
140
+ kept_tabs = _kept_tabs(tabs=tabs)
141
+ closed_tabs = _closable_tabs(tabs=tabs, kept_tabs=kept_tabs)
142
+ for tab in closed_tabs:
143
+ _run_herdr(["herdr", "tab", "close", tab.tab_id])
144
+ summaries.append(IterWorkspaceCleanup(workspace=workspace, kept_tabs=kept_tabs, closed_tabs=closed_tabs))
145
+ return tuple(summaries)
146
+
147
+
148
+ def _report_summaries(*, summaries: tuple[IterWorkspaceCleanup, ...], report: Callable[[str], None]) -> None:
149
+ if len(summaries) == 0:
150
+ report("No iter workspaces found.")
151
+ return
152
+ total_closed = sum(len(summary.closed_tabs) for summary in summaries)
153
+ report(f"Closed {total_closed} tab(s) across {len(summaries)} iter workspace(s).")
154
+ for summary in summaries:
155
+ report(
156
+ f"- {summary.workspace.label}: closed={len(summary.closed_tabs)} kept={len(summary.kept_tabs)} "
157
+ f"workspace={summary.workspace.workspace_id}"
158
+ )
159
+
160
+
161
+ def _iter_workspaces(*, workspaces: tuple[HerdrWorkspace, ...]) -> tuple[HerdrWorkspace, ...]:
162
+ return tuple(workspace for workspace in workspaces if workspace.label.startswith(ITER_WORKSPACE_PREFIX))
163
+
164
+
165
+ def _kept_tabs(*, tabs: tuple[HerdrTab, ...]) -> tuple[HerdrTab, ...]:
166
+ return tuple(sorted(tabs, key=lambda tab: tab.number, reverse=True)[:KEEP_RECENT_TABS])
167
+
168
+
169
+ def _closable_tabs(*, tabs: tuple[HerdrTab, ...], kept_tabs: tuple[HerdrTab, ...]) -> tuple[HerdrTab, ...]:
170
+ kept_tab_ids = {tab.tab_id for tab in kept_tabs}
171
+ return tuple(tab for tab in sorted(tabs, key=lambda tab: tab.number) if tab.tab_id not in kept_tab_ids)
172
+
173
+
174
+ def _tabs_by_workspace_id(*, tabs: tuple[HerdrTab, ...]) -> dict[str, tuple[HerdrTab, ...]]:
175
+ grouped: dict[str, list[HerdrTab]] = {}
176
+ for tab in tabs:
177
+ grouped.setdefault(tab.workspace_id, []).append(tab)
178
+ return {workspace_id: tuple(workspace_tabs) for workspace_id, workspace_tabs in grouped.items()}
179
+
180
+
181
+ def _agents_by_workspace_id(*, agents: tuple[HerdrAgent, ...]) -> dict[str, tuple[HerdrAgent, ...]]:
182
+ grouped: dict[str, list[HerdrAgent]] = {}
183
+ for agent in agents:
184
+ grouped.setdefault(agent.workspace_id, []).append(agent)
185
+ return {workspace_id: tuple(workspace_agents) for workspace_id, workspace_agents in grouped.items()}
186
+
187
+
188
+ def _latest_iter_agent(*, agents: tuple[HerdrAgent, ...]) -> HerdrAgent | None:
189
+ latest_agent: HerdrAgent | None = None
190
+ latest_iteration: int | None = None
191
+ for agent in agents:
192
+ if agent.name is None:
193
+ continue
194
+ iteration = _iteration_from_label(label=agent.name)
195
+ if iteration is None:
196
+ continue
197
+ if latest_iteration is None or iteration > latest_iteration:
198
+ latest_iteration = iteration
199
+ latest_agent = agent
200
+ return latest_agent
201
+
202
+
203
+ def _list_workspaces() -> tuple[HerdrWorkspace, ...]:
204
+ payload = _run_herdr_json(["herdr", "workspace", "list"])
205
+ result = _result_object(payload=payload)
206
+ workspaces_value = result.get("workspaces")
207
+ if not isinstance(workspaces_value, list):
208
+ raise RuntimeError("Herdr workspace list response did not include result.workspaces.")
209
+ return tuple(_parse_workspace(value=value) for value in workspaces_value)
210
+
211
+
212
+ def _list_tabs() -> tuple[HerdrTab, ...]:
213
+ payload = _run_herdr_json(["herdr", "tab", "list"])
214
+ result = _result_object(payload=payload)
215
+ tabs_value = result.get("tabs")
216
+ if not isinstance(tabs_value, list):
217
+ raise RuntimeError("Herdr tab list response did not include result.tabs.")
218
+ return tuple(_parse_tab(value=value) for value in tabs_value)
219
+
220
+
221
+ def _list_agents() -> tuple[HerdrAgent, ...]:
222
+ payload = _run_herdr_json(["herdr", "agent", "list"])
223
+ result = _result_object(payload=payload)
224
+ agents_value = result.get("agents")
225
+ if not isinstance(agents_value, list):
226
+ raise RuntimeError("Herdr agent list response did not include result.agents.")
227
+ return tuple(_parse_agent(value=value) for value in agents_value)
228
+
229
+
230
+ def _parse_workspace(*, value: object) -> HerdrWorkspace:
231
+ if not isinstance(value, dict):
232
+ raise RuntimeError("Herdr workspace list included a non-object workspace.")
233
+ mapping = cast(JsonObject, value)
234
+ return HerdrWorkspace(
235
+ workspace_id=_required_string(mapping=mapping, key="workspace_id"),
236
+ label=_required_string(mapping=mapping, key="label"),
237
+ number=_required_int(mapping=mapping, key="number"),
238
+ active_tab_id=_required_string(mapping=mapping, key="active_tab_id"),
239
+ agent_status=_required_string(mapping=mapping, key="agent_status"),
240
+ focused=_required_bool(mapping=mapping, key="focused"),
241
+ pane_count=_required_int(mapping=mapping, key="pane_count"),
242
+ tab_count=_required_int(mapping=mapping, key="tab_count"),
243
+ )
244
+
245
+
246
+ def _parse_tab(*, value: object) -> HerdrTab:
247
+ if not isinstance(value, dict):
248
+ raise RuntimeError("Herdr tab list included a non-object tab.")
249
+ mapping = cast(JsonObject, value)
250
+ return HerdrTab(
251
+ tab_id=_required_string(mapping=mapping, key="tab_id"),
252
+ workspace_id=_required_string(mapping=mapping, key="workspace_id"),
253
+ label=_required_string(mapping=mapping, key="label"),
254
+ number=_required_int(mapping=mapping, key="number"),
255
+ agent_status=_required_string(mapping=mapping, key="agent_status"),
256
+ focused=_required_bool(mapping=mapping, key="focused"),
257
+ pane_count=_required_int(mapping=mapping, key="pane_count"),
258
+ )
259
+
260
+
261
+ def _parse_agent(*, value: object) -> HerdrAgent:
262
+ if not isinstance(value, dict):
263
+ raise RuntimeError("Herdr agent list included a non-object agent.")
264
+ mapping = cast(JsonObject, value)
265
+ return HerdrAgent(
266
+ agent=_required_string(mapping=mapping, key="agent"),
267
+ agent_status=_required_string(mapping=mapping, key="agent_status"),
268
+ workspace_id=_required_string(mapping=mapping, key="workspace_id"),
269
+ tab_id=_required_string(mapping=mapping, key="tab_id"),
270
+ pane_id=_required_string(mapping=mapping, key="pane_id"),
271
+ cwd=_required_string(mapping=mapping, key="cwd"),
272
+ foreground_cwd=_required_string(mapping=mapping, key="foreground_cwd"),
273
+ focused=_required_bool(mapping=mapping, key="focused"),
274
+ name=_optional_string(mapping=mapping, key="name"),
275
+ )
276
+
277
+
278
+ def _find_tab(*, tabs: tuple[HerdrTab, ...], tab_id: str) -> HerdrTab | None:
279
+ for tab in tabs:
280
+ if tab.tab_id == tab_id:
281
+ return tab
282
+ return None
283
+
284
+
285
+ def _latest_iteration(*, agent: HerdrAgent | None) -> int | None:
286
+ if agent is None or agent.name is None:
287
+ return None
288
+ return _iteration_from_label(label=agent.name)
289
+
290
+
291
+ def _iteration_from_label(*, label: str) -> int | None:
292
+ match = ITER_AGENT_LABEL_PATTERN.match(label)
293
+ if match is None:
294
+ return None
295
+ return int(match.group("iteration"))
296
+
297
+
298
+ def _format_iteration(*, iteration: int | None) -> str:
299
+ if iteration is None:
300
+ return "-"
301
+ return f"{iteration:03d}"
302
+
303
+
304
+ def _format_agent(*, agent: HerdrAgent | None) -> str:
305
+ if agent is None:
306
+ return "-"
307
+ return agent.agent
308
+
309
+
310
+ def _format_agent_status(*, status: IterWorkspaceStatus) -> str:
311
+ if status.latest_agent is not None:
312
+ return status.latest_agent.agent_status
313
+ return status.workspace.agent_status
314
+
315
+
316
+ def _format_agent_where(*, tab: HerdrTab | None, agent: HerdrAgent | None) -> str:
317
+ if tab is not None:
318
+ tab_label = f"tab #{tab.number} {tab.tab_id}"
319
+ if agent is None:
320
+ return tab_label
321
+ return f"{tab_label}\n{agent.foreground_cwd}"
322
+ if agent is not None:
323
+ return f"{agent.tab_id}\n{agent.foreground_cwd}"
324
+ return "-"
325
+
326
+
327
+ def _format_tab_counts(*, status: IterWorkspaceStatus) -> str:
328
+ return f"{len(status.tabs)} old {len(status.closable_tabs)}"
329
+
330
+
331
+ def _result_object(*, payload: JsonObject) -> JsonObject:
332
+ result = payload.get("result")
333
+ if not isinstance(result, dict):
334
+ raise RuntimeError("Herdr JSON response did not include an object result.")
335
+ return cast(JsonObject, result)
336
+
337
+
338
+ def _required_string(*, mapping: JsonObject, key: str) -> str:
339
+ value = mapping.get(key)
340
+ if not isinstance(value, str) or value == "":
341
+ raise RuntimeError(f"Herdr JSON response did not include a usable {key}.")
342
+ return value
343
+
344
+
345
+ def _optional_string(*, mapping: JsonObject, key: str) -> str | None:
346
+ value = mapping.get(key)
347
+ if value is None:
348
+ return None
349
+ if not isinstance(value, str) or value == "":
350
+ raise RuntimeError(f"Herdr JSON response did not include a usable {key}.")
351
+ return value
352
+
353
+
354
+ def _required_int(*, mapping: JsonObject, key: str) -> int:
355
+ value = mapping.get(key)
356
+ if not isinstance(value, int):
357
+ raise RuntimeError(f"Herdr JSON response did not include a usable {key}.")
358
+ return value
359
+
360
+
361
+ def _required_bool(*, mapping: JsonObject, key: str) -> bool:
362
+ value = mapping.get(key)
363
+ if not isinstance(value, bool):
364
+ raise RuntimeError(f"Herdr JSON response did not include a usable {key}.")
365
+ return value
366
+
367
+
368
+ def _run_herdr(args: list[str]) -> str:
369
+ try:
370
+ result = subprocess.run(args, capture_output=True, check=False, text=True)
371
+ except FileNotFoundError as exc:
372
+ raise RuntimeError("Iter loop requested Herdr, but `herdr` was not found in PATH.") from exc
373
+ if result.returncode == 0:
374
+ return result.stdout
375
+ detail = (result.stderr or result.stdout or "unknown error").strip()
376
+ raise RuntimeError(f"Herdr command failed ({shlex.join(args)}): {detail}")
377
+
378
+
379
+ def _run_herdr_json(args: list[str]) -> JsonObject:
380
+ stdout = _run_herdr(args).strip()
381
+ if stdout == "":
382
+ raise RuntimeError(f"Herdr command did not return JSON: {shlex.join(args)}")
383
+ try:
384
+ payload = json.loads(stdout)
385
+ except json.JSONDecodeError as exc:
386
+ raise RuntimeError(f"Herdr command returned invalid JSON ({shlex.join(args)}): {stdout}") from exc
387
+ if not isinstance(payload, dict):
388
+ raise RuntimeError(f"Herdr command returned non-object JSON ({shlex.join(args)}): {stdout}")
389
+ return cast(JsonObject, payload)
@@ -2,7 +2,7 @@
2
2
  # /// script
3
3
  # requires-python = ">=3.13"
4
4
  # dependencies = [
5
- # "stackops>=26.6.5",
5
+ # "stackops>=26.6.6",
6
6
  # "textual",
7
7
  # "pyperclip",
8
8
  # ]
@@ -2,7 +2,7 @@
2
2
  # /// script
3
3
  # requires-python = ">=3.13"
4
4
  # dependencies = [
5
- # "stackops>=26.6.5",
5
+ # "stackops>=26.6.6",
6
6
  # "textual",
7
7
  # "pyperclip",
8
8
  # ]