orch-cli 0.1.0__tar.gz → 0.1.1__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 (468) hide show
  1. {orch_cli-0.1.0 → orch_cli-0.1.1}/.gitignore +2 -0
  2. {orch_cli-0.1.0 → orch_cli-0.1.1}/PKG-INFO +4 -4
  3. {orch_cli-0.1.0 → orch_cli-0.1.1}/README.md +3 -3
  4. orch_cli-0.1.1/docs/SUMMARY-EN.md +107 -0
  5. orch_cli-0.1.1/orch/__init__.py +1 -0
  6. {orch_cli-0.1.0 → orch_cli-0.1.1}/pyproject.toml +1 -1
  7. {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/orch.yml +2 -0
  8. orch_cli-0.1.0/cli_orchestrator_design.md +0 -247
  9. orch_cli-0.1.0/implementation_plan.md +0 -99
  10. orch_cli-0.1.0/orch/__init__.py +0 -1
  11. orch_cli-0.1.0/task.md +0 -8
  12. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/__init__.py +0 -13
  13. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/__main__.py +0 -24
  14. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/__pip-runner__.py +0 -50
  15. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/__init__.py +0 -18
  16. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/build_env.py +0 -319
  17. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cache.py +0 -290
  18. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/__init__.py +0 -4
  19. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/autocompletion.py +0 -176
  20. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/base_command.py +0 -231
  21. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/cmdoptions.py +0 -1075
  22. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/command_context.py +0 -27
  23. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/index_command.py +0 -170
  24. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/main.py +0 -80
  25. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/main_parser.py +0 -134
  26. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/parser.py +0 -294
  27. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/progress_bars.py +0 -94
  28. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/req_command.py +0 -329
  29. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/spinners.py +0 -159
  30. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/status_codes.py +0 -6
  31. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/__init__.py +0 -132
  32. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/cache.py +0 -225
  33. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/check.py +0 -67
  34. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/completion.py +0 -130
  35. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/configuration.py +0 -280
  36. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/debug.py +0 -201
  37. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/download.py +0 -146
  38. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/freeze.py +0 -109
  39. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/hash.py +0 -59
  40. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/help.py +0 -41
  41. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/index.py +0 -139
  42. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/inspect.py +0 -92
  43. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/install.py +0 -783
  44. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/list.py +0 -375
  45. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/search.py +0 -172
  46. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/show.py +0 -217
  47. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/uninstall.py +0 -114
  48. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/wheel.py +0 -182
  49. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/configuration.py +0 -383
  50. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/__init__.py +0 -21
  51. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/base.py +0 -53
  52. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/installed.py +0 -29
  53. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/sdist.py +0 -158
  54. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/wheel.py +0 -42
  55. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/exceptions.py +0 -809
  56. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/__init__.py +0 -2
  57. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/collector.py +0 -494
  58. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/package_finder.py +0 -1020
  59. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/sources.py +0 -284
  60. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/__init__.py +0 -456
  61. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/_distutils.py +0 -172
  62. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/_sysconfig.py +0 -214
  63. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/base.py +0 -81
  64. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/main.py +0 -12
  65. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/__init__.py +0 -128
  66. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/_json.py +0 -84
  67. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/base.py +0 -688
  68. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -6
  69. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -85
  70. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -221
  71. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -189
  72. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +0 -301
  73. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/__init__.py +0 -2
  74. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/candidate.py +0 -25
  75. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/direct_url.py +0 -224
  76. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/format_control.py +0 -78
  77. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/index.py +0 -28
  78. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/installation_report.py +0 -56
  79. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/link.py +0 -590
  80. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/scheme.py +0 -25
  81. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/search_scope.py +0 -127
  82. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/selection_prefs.py +0 -53
  83. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/target_python.py +0 -121
  84. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/wheel.py +0 -118
  85. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/__init__.py +0 -2
  86. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/auth.py +0 -566
  87. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/cache.py +0 -106
  88. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/download.py +0 -187
  89. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/lazy_wheel.py +0 -210
  90. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/session.py +0 -522
  91. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/utils.py +0 -98
  92. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/xmlrpc.py +0 -62
  93. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  94. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/check.py +0 -181
  95. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/freeze.py +0 -258
  96. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/install/__init__.py +0 -2
  97. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -47
  98. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/install/wheel.py +0 -741
  99. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/prepare.py +0 -732
  100. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/pyproject.py +0 -185
  101. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/__init__.py +0 -90
  102. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/constructors.py +0 -560
  103. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_file.py +0 -574
  104. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_install.py +0 -934
  105. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_set.py +0 -82
  106. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_uninstall.py +0 -633
  107. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  108. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/base.py +0 -20
  109. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  110. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -597
  111. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  112. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -139
  113. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -574
  114. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -823
  115. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -174
  116. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -258
  117. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -81
  118. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -245
  119. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -317
  120. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/self_outdated_check.py +0 -244
  121. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  122. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +0 -109
  123. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/_log.py +0 -38
  124. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/appdirs.py +0 -52
  125. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/compat.py +0 -79
  126. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +0 -188
  127. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/datetime.py +0 -11
  128. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/deprecation.py +0 -124
  129. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
  130. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/egg_link.py +0 -80
  131. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/encoding.py +0 -36
  132. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/entrypoints.py +0 -84
  133. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/filesystem.py +0 -149
  134. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/filetypes.py +0 -27
  135. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/glibc.py +0 -101
  136. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/hashes.py +0 -147
  137. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/logging.py +0 -347
  138. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/misc.py +0 -772
  139. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/packaging.py +0 -57
  140. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/retry.py +0 -42
  141. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/setuptools_build.py +0 -146
  142. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/subprocess.py +0 -245
  143. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/temp_dir.py +0 -296
  144. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/unpacking.py +0 -337
  145. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/urls.py +0 -55
  146. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/virtualenv.py +0 -104
  147. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/wheel.py +0 -134
  148. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/__init__.py +0 -15
  149. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/bazaar.py +0 -112
  150. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/git.py +0 -527
  151. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/mercurial.py +0 -163
  152. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/subversion.py +0 -324
  153. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +0 -688
  154. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/wheel_builder.py +0 -354
  155. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/__init__.py +0 -116
  156. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -28
  157. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -70
  158. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -161
  159. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +0 -74
  160. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -8
  161. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -182
  162. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -48
  163. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +0 -499
  164. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -119
  165. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -154
  166. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  167. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -146
  168. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -43
  169. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/__init__.py +0 -4
  170. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/__main__.py +0 -12
  171. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/cacert.pem +0 -4929
  172. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/core.py +0 -114
  173. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  174. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/__init__.py +0 -33
  175. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/compat.py +0 -1137
  176. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/database.py +0 -1329
  177. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/index.py +0 -508
  178. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/locators.py +0 -1295
  179. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/manifest.py +0 -384
  180. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/markers.py +0 -162
  181. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/metadata.py +0 -1031
  182. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/resources.py +0 -358
  183. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/scripts.py +0 -447
  184. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  185. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
  186. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  187. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/util.py +0 -1984
  188. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/version.py +0 -750
  189. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  190. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
  191. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  192. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/wheel.py +0 -1100
  193. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/__init__.py +0 -54
  194. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/__main__.py +0 -4
  195. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/distro.py +0 -1403
  196. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  197. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/__init__.py +0 -44
  198. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/codec.py +0 -118
  199. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/compat.py +0 -13
  200. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/core.py +0 -395
  201. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/idnadata.py +0 -4245
  202. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/intranges.py +0 -54
  203. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/package_data.py +0 -2
  204. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  205. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/uts46data.py +0 -8598
  206. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/__init__.py +0 -55
  207. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
  208. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/ext.py +0 -168
  209. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/fallback.py +0 -951
  210. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/__init__.py +0 -15
  211. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_elffile.py +0 -110
  212. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +0 -262
  213. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +0 -85
  214. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_parser.py +0 -354
  215. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_structures.py +0 -61
  216. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_tokenizer.py +0 -194
  217. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/markers.py +0 -325
  218. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/metadata.py +0 -804
  219. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  220. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/requirements.py +0 -91
  221. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/specifiers.py +0 -1009
  222. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/tags.py +0 -627
  223. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/utils.py +0 -174
  224. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/version.py +0 -563
  225. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3676
  226. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +0 -627
  227. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +0 -55
  228. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/android.py +0 -249
  229. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/api.py +0 -292
  230. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/macos.py +0 -130
  231. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  232. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/unix.py +0 -275
  233. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/version.py +0 -16
  234. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/windows.py +0 -272
  235. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/__init__.py +0 -82
  236. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/__main__.py +0 -17
  237. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/cmdline.py +0 -668
  238. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/console.py +0 -70
  239. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/filter.py +0 -70
  240. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -940
  241. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatter.py +0 -129
  242. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -157
  243. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -23
  244. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +0 -108
  245. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +0 -170
  246. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +0 -987
  247. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +0 -685
  248. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +0 -154
  249. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +0 -518
  250. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +0 -160
  251. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +0 -83
  252. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +0 -349
  253. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +0 -185
  254. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +0 -127
  255. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +0 -338
  256. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexer.py +0 -963
  257. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -362
  258. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -589
  259. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +0 -1198
  260. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/modeline.py +0 -43
  261. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/plugin.py +0 -72
  262. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/regexopt.py +0 -91
  263. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/scanner.py +0 -104
  264. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +0 -247
  265. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/style.py +0 -203
  266. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -61
  267. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/styles/_mapping.py +0 -54
  268. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/token.py +0 -214
  269. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/unistring.py +0 -153
  270. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/util.py +0 -324
  271. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +0 -23
  272. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_compat.py +0 -8
  273. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +0 -330
  274. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -18
  275. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -353
  276. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/__init__.py +0 -179
  277. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/__version__.py +0 -14
  278. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +0 -50
  279. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/adapters.py +0 -719
  280. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/api.py +0 -157
  281. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/auth.py +0 -314
  282. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/certs.py +0 -24
  283. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/compat.py +0 -78
  284. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/cookies.py +0 -561
  285. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/exceptions.py +0 -151
  286. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/help.py +0 -127
  287. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/hooks.py +0 -33
  288. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/models.py +0 -1037
  289. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/packages.py +0 -25
  290. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/sessions.py +0 -831
  291. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/status_codes.py +0 -128
  292. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/structures.py +0 -99
  293. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/utils.py +0 -1096
  294. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +0 -26
  295. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  296. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -6
  297. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/providers.py +0 -133
  298. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  299. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +0 -43
  300. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -547
  301. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/structs.py +0 -170
  302. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/__init__.py +0 -177
  303. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/__main__.py +0 -273
  304. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +0 -454
  305. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -3610
  306. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -32
  307. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_export_format.py +0 -76
  308. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_extension.py +0 -10
  309. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_fileno.py +0 -24
  310. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_inspect.py +0 -270
  311. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_log_render.py +0 -94
  312. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_loop.py +0 -43
  313. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_null_file.py +0 -69
  314. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_palettes.py +0 -309
  315. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_pick.py +0 -17
  316. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_ratio.py +0 -159
  317. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_spinners.py +0 -482
  318. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_stack.py +0 -16
  319. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_timer.py +0 -19
  320. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_win32_console.py +0 -662
  321. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_windows.py +0 -71
  322. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -56
  323. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_wrap.py +0 -93
  324. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/abc.py +0 -33
  325. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/align.py +0 -311
  326. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/ansi.py +0 -240
  327. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/bar.py +0 -93
  328. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/box.py +0 -480
  329. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/cells.py +0 -167
  330. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/color.py +0 -621
  331. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/color_triplet.py +0 -38
  332. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/columns.py +0 -187
  333. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/console.py +0 -2633
  334. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/constrain.py +0 -37
  335. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/containers.py +0 -167
  336. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/control.py +0 -225
  337. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/default_styles.py +0 -190
  338. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/diagnose.py +0 -37
  339. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/emoji.py +0 -96
  340. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/errors.py +0 -34
  341. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/file_proxy.py +0 -57
  342. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/filesize.py +0 -89
  343. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/highlighter.py +0 -232
  344. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/json.py +0 -139
  345. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/jupyter.py +0 -101
  346. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/layout.py +0 -442
  347. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/live.py +0 -375
  348. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/live_render.py +0 -112
  349. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/logging.py +0 -289
  350. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/markup.py +0 -251
  351. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/measure.py +0 -151
  352. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/padding.py +0 -141
  353. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/pager.py +0 -34
  354. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/palette.py +0 -100
  355. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/panel.py +0 -312
  356. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/pretty.py +0 -995
  357. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/progress.py +0 -1699
  358. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/progress_bar.py +0 -223
  359. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/prompt.py +0 -375
  360. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/protocol.py +0 -42
  361. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  362. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/region.py +0 -10
  363. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/repr.py +0 -149
  364. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/rule.py +0 -130
  365. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/scope.py +0 -86
  366. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/screen.py +0 -54
  367. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/segment.py +0 -738
  368. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/spinner.py +0 -137
  369. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/status.py +0 -131
  370. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/style.py +0 -796
  371. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/styled.py +0 -42
  372. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/syntax.py +0 -958
  373. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/table.py +0 -1000
  374. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +0 -153
  375. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/text.py +0 -1357
  376. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/theme.py +0 -115
  377. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/themes.py +0 -5
  378. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/traceback.py +0 -753
  379. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/tree.py +0 -249
  380. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/__init__.py +0 -11
  381. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/_parser.py +0 -691
  382. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/_re.py +0 -107
  383. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/_types.py +0 -10
  384. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/py.typed +0 -1
  385. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/__init__.py +0 -36
  386. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_api.py +0 -316
  387. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_macos.py +0 -571
  388. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_openssl.py +0 -66
  389. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +0 -31
  390. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_windows.py +0 -567
  391. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  392. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/typing_extensions.py +0 -3641
  393. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/__init__.py +0 -102
  394. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -355
  395. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/_version.py +0 -2
  396. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/connection.py +0 -572
  397. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1140
  398. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  399. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
  400. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  401. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
  402. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
  403. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
  404. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
  405. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -518
  406. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -920
  407. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
  408. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
  409. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/fields.py +0 -274
  410. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
  411. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  412. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  413. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
  414. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -155
  415. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1076
  416. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -540
  417. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/request.py +0 -191
  418. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/response.py +0 -879
  419. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
  420. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +0 -149
  421. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
  422. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
  423. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/request.py +0 -137
  424. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
  425. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +0 -622
  426. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -504
  427. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -159
  428. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
  429. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -271
  430. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/url.py +0 -435
  431. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +0 -152
  432. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/vendor.txt +0 -18
  433. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/py.typed +0 -4
  434. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/AUTHORS.txt +0 -799
  435. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/INSTALLER +0 -1
  436. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/LICENSE.txt +0 -20
  437. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/METADATA +0 -90
  438. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/RECORD +0 -853
  439. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/REQUESTED +0 -0
  440. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/WHEEL +0 -5
  441. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/entry_points.txt +0 -3
  442. orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/top_level.txt +0 -1
  443. orch_cli-0.1.0/test-project/venv-mock/Scripts/Activate.ps1 +0 -528
  444. orch_cli-0.1.0/test-project/venv-mock/Scripts/activate +0 -71
  445. orch_cli-0.1.0/test-project/venv-mock/Scripts/activate.bat +0 -34
  446. orch_cli-0.1.0/test-project/venv-mock/Scripts/deactivate.bat +0 -22
  447. orch_cli-0.1.0/test-project/venv-mock/Scripts/pip.exe +0 -0
  448. orch_cli-0.1.0/test-project/venv-mock/Scripts/pip3.12.exe +0 -0
  449. orch_cli-0.1.0/test-project/venv-mock/Scripts/pip3.exe +0 -0
  450. orch_cli-0.1.0/test-project/venv-mock/Scripts/python.exe +0 -0
  451. orch_cli-0.1.0/test-project/venv-mock/Scripts/pythonw.exe +0 -0
  452. orch_cli-0.1.0/test-project/venv-mock/pyvenv.cfg +0 -5
  453. orch_cli-0.1.0/walkthrough.md +0 -50
  454. orch_cli-0.1.0/walkthrough_1.md +0 -30
  455. {orch_cli-0.1.0 → orch_cli-0.1.1}/.github/workflows/ci.yml +0 -0
  456. {orch_cli-0.1.0 → orch_cli-0.1.1}/.github/workflows/publish.yml +0 -0
  457. {orch_cli-0.1.0 → orch_cli-0.1.1}/LICENSE +0 -0
  458. /orch_cli-0.1.0/RESUMEN.md → /orch_cli-0.1.1/docs/RESUMEN-ES.md +0 -0
  459. {orch_cli-0.1.0 → orch_cli-0.1.1}/orch/cli.py +0 -0
  460. {orch_cli-0.1.0 → orch_cli-0.1.1}/orch/config.py +0 -0
  461. {orch_cli-0.1.0 → orch_cli-0.1.1}/orch/manager.py +0 -0
  462. {orch_cli-0.1.0 → orch_cli-0.1.1}/orch/state.py +0 -0
  463. {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/backend/app.py +0 -0
  464. {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/backend/test_running.txt +0 -0
  465. {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/ui/package.json +0 -0
  466. {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/ui/server.js +0 -0
  467. {orch_cli-0.1.0 → orch_cli-0.1.1}/tests/test_config.py +0 -0
  468. {orch_cli-0.1.0 → orch_cli-0.1.1}/tests/test_state.py +0 -0
@@ -115,6 +115,8 @@ venv/
115
115
  ENV/
116
116
  env.bak/
117
117
  venv.bak/
118
+ venv-*/
119
+ venv-mock/
118
120
 
119
121
  # Spyder project settings
120
122
  .spyderproject
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orch-cli
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: A local development process orchestrator and venv-aware runner
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -15,7 +15,7 @@ Description-Content-Type: text/markdown
15
15
 
16
16
  [![PyPI version](https://img.shields.io/pypi/v/orch-cli.svg)](https://pypi.org/project/orch-cli/)
17
17
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
18
- [![Build Status](https://github.com/EASYLIFECODE/orch/workflows/CI/badge.svg)](https://github.com/EASYLIFECODE/orch/actions)
18
+ [![Build Status](https://github.com/EASYLIFECODE/orch-cli/workflows/CI/badge.svg)](https://github.com/EASYLIFECODE/orch-cli/actions)
19
19
 
20
20
  **Orch** is a lightweight, **daemon-less** command-line interface (CLI) tool designed to simplify local development of client-server or multi-service architectures.
21
21
 
@@ -47,8 +47,8 @@ pip install orch-cli
47
47
 
48
48
  1. Clone the repository:
49
49
  ```bash
50
- git clone https://github.com/EASYLIFECODE/orch.git
51
- cd orch
50
+ git clone https://github.com/EASYLIFECODE/orch-cli.git
51
+ cd orch-cli
52
52
  ```
53
53
 
54
54
  2. Install in editable development mode:
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![PyPI version](https://img.shields.io/pypi/v/orch-cli.svg)](https://pypi.org/project/orch-cli/)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Build Status](https://github.com/EASYLIFECODE/orch/workflows/CI/badge.svg)](https://github.com/EASYLIFECODE/orch/actions)
5
+ [![Build Status](https://github.com/EASYLIFECODE/orch-cli/workflows/CI/badge.svg)](https://github.com/EASYLIFECODE/orch-cli/actions)
6
6
 
7
7
  **Orch** is a lightweight, **daemon-less** command-line interface (CLI) tool designed to simplify local development of client-server or multi-service architectures.
8
8
 
@@ -34,8 +34,8 @@ pip install orch-cli
34
34
 
35
35
  1. Clone the repository:
36
36
  ```bash
37
- git clone https://github.com/EASYLIFECODE/orch.git
38
- cd orch
37
+ git clone https://github.com/EASYLIFECODE/orch-cli.git
38
+ cd orch-cli
39
39
  ```
40
40
 
41
41
  2. Install in editable development mode:
@@ -0,0 +1,107 @@
1
+ # Project Summary: CLI Local Orchestrator (`orch`)
2
+
3
+ This document contains a comprehensive summary of the discussions, design decisions, internal architecture, commands, and workflows of **`orch`**, the local orchestration CLI tool designed for developers.
4
+
5
+ ---
6
+
7
+ ## 1. Purpose and Context
8
+ `orch` is a lightweight terminal tool designed to orchestrate the execution of multiple local services (backends, frontends, agents, watchers) under a client-server architecture, without requiring containerization (like Docker) or persistent background daemon services.
9
+
10
+ ### Problems it solves:
11
+ * **Multiple terminals**: Avoids having to open multiple PowerShell, CMD, or Bash windows for a single project.
12
+ * **Virtualenv activation**: Automatically and transparently activates the Python virtual environment (`venv`) corresponding to the project.
13
+ * **Centralized logs**: Unifies the outputs of all processes in real-time with colored, readable prefixes.
14
+ * **Background persistence**: Allows running decoupled services in the background of the operating system, freeing up the current console.
15
+
16
+ ---
17
+
18
+ ## 2. Configuration Model (`orch.yml`)
19
+ The project behavior is defined through a minimalist YAML configuration file located at the project root.
20
+
21
+ ```yaml
22
+ project: Windows_Monitor
23
+
24
+ # Global environment configuration
25
+ env:
26
+ type: venv
27
+ path: ./venv-wind_monitor
28
+ variables:
29
+ GLOBAL_TEST_VAR: "orch-is-working"
30
+
31
+ services:
32
+ backend:
33
+ path: ./backend
34
+ command: python app.py
35
+ env:
36
+ BACKEND_PORT: "8000"
37
+
38
+ ui:
39
+ path: ./ui
40
+ command: npm run dev
41
+
42
+ agent:
43
+ path: ./agent
44
+ command: python agent.py
45
+ ```
46
+
47
+ ---
48
+
49
+ ## 3. Commands and User Experience (UX)
50
+ The project lifecycle is managed through two main workflows:
51
+
52
+ ### Workflow A: Active & Interactive Development (Foreground)
53
+ * **Command**: `orch up`
54
+ * **Behavior**: Starts all services sequentially in the current console. Multiplexes the text outputs of all processes in real-time using individual background threads.
55
+ * **Termination**: When pressing `Ctrl+C`, `orch` intercepts the signal and cleanly and recursively terminates all created processes (including Node/Vite sub-processes).
56
+
57
+ ### Workflow B: Background Execution (Background / Detached)
58
+ * **Start**: `orch start`
59
+ Spawns sub-processes completely decoupled from the current terminal, silently redirecting their output to `.log` files in `.orch/logs/` and releasing the terminal immediately.
60
+ * **Monitor**: `orch status`
61
+ Queries the local state database and checks the operating system to see if the services are still active, showing a resource table:
62
+ ```text
63
+ Project: Windows_Monitor (Services Status)
64
+ ┌─────────┬─────────┬───────┬───────┬─────────────┬──────────┐
65
+ │ Service │ Status │ PID │ CPU % │ Memory (MB) │ Uptime │
66
+ ├─────────┼─────────┼───────┼───────┼─────────────┼──────────┐
67
+ │ backend │ RUNNING │ 33284 │ 0.0% │ 162.1 MB │ 00:00:06 │
68
+ │ ui │ RUNNING │ 16984 │ 0.0% │ 178.2 MB │ 00:00:06 │
69
+ │ agent │ RUNNING │ 20392 │ 0.0% │ 56.7 MB │ 00:00:06 │
70
+ └─────────┴─────────┴───────┴───────┴─────────────┴──────────┘
71
+ ```
72
+ * **Check Logs**: `orch logs` / `orch logs -f`
73
+ Allows reading the last log lines or following them in real-time (multiplexing the queue of multiple log files at once).
74
+ * **Stop**: `orch stop`
75
+ Sends termination OS signals to all background services and cleans up their state registry.
76
+ * **Clean**: `orch clean`
77
+ Stops active services, truncates all log files in the `.orch/logs/` folder to 0 bytes, and resets the state database.
78
+
79
+ ---
80
+
81
+ ## 4. Internal Architecture (Daemon-less)
82
+
83
+ The design of `orch` stands out for being lightweight and reliable thanks to the following technical solutions:
84
+
85
+ ### Dynamic Virtual Environment Activation (`venv`)
86
+ `orch` does not execute traditional activation scripts (like `activate.bat` or `activate.sh`). Instead, it calculates the absolute path of the `venv` executables (e.g., `venv/Scripts` on Windows or `venv/bin` on Linux) and **injects it at the beginning of the `PATH` environment variable** of the sub-process. Thus, when the command calls `python`, the operating system naturally and automatically resolves and uses the Python executable from the virtual environment.
87
+
88
+ ### Multiplatform Background Persistency (Windows / Linux)
89
+ To ensure processes survive the closing of the developer's terminal independently without requiring a persistent daemon running in the background:
90
+ * **On Windows**: Spawns sub-processes in a decoupled manner using native Windows API flags in `subprocess.Popen`:
91
+ - `CREATE_NEW_CONSOLE (0x00000010)`: Assigns an exclusive console to prevent the process from depending on the parent console.
92
+ - `CREATE_NO_WINDOW (0x08000000)`: Hides the new console to prevent pop-up windows from bothering the user.
93
+ - `CREATE_BREAKAWAY_FROM_JOB (0x01000000)`: Allows the sub-process to escape the limits of the job group of the calling task.
94
+ * **On Linux/macOS**: Uses `start_new_session=True` to decouple the process from the current terminal session.
95
+ * Redirects standard input to `/dev/null` (`DEVNULL`) and diagnostics outputs directly to local log files.
96
+
97
+ ### Recycled PID Conflict Prevention
98
+ The `.orch/state.json` file records not only the PID number but also the exact operating system process creation timestamp (`create_time` using the `psutil` library). When running control commands like `status` or `stop`, the current OS process PID is compared with this creation timestamp. If the PID was reassigned to a completely different program after the service closed, `orch` detects it instantly and avoids sending kill signals to the wrong system processes.
99
+
100
+ ### State Management
101
+ The state of each service passes through one of the following stages:
102
+ * **`RUNNING`**: The process was started, its PID exists and matches in the system.
103
+ * **`CRASHED`**: The process finished unexpectedly (its PID does not exist in the system, but the user did not run a `stop` command).
104
+ * **`STOPPED`**: The process was terminated intentionally through a stop command (`stop` / `clean`).
105
+
106
+ ### Terminal Output Escaping (Rich Markup)
107
+ To prevent terminal outputs from common tools like Vite or Flask (which usually use square brackets and ANSI color codes) from interfering with the formatting engine of `Rich`, all log messages are processed using the `rich.markup.escape()` function. Additionally, the square brackets of the prefixes are protected with escape characters (`\\[`), allowing the colored format of service names to render correctly in any development terminal.
@@ -0,0 +1 @@
1
+ __version__ = "0.1.1"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "orch-cli"
7
- version = "0.1.0"
7
+ version = "0.1.1"
8
8
  description = "A local development process orchestrator and venv-aware runner"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -2,6 +2,8 @@ project: test-project
2
2
 
3
3
  env:
4
4
  type: venv
5
+ # Note: ./venv-mock is ignored by git.
6
+ # To test local venv injection, create it first using: python -m venv venv-mock
5
7
  path: ./venv-mock
6
8
  variables:
7
9
  GLOBAL_TEST_VAR: "orch-is-working"
@@ -1,247 +0,0 @@
1
- # Propuesta de Diseño: CLI Local Orchestrator (`orch`)
2
-
3
- Esta propuesta de diseño detalla la arquitectura, el stack tecnológico y el flujo de experiencia de usuario (UX) para **`orch`**, una herramienta de terminal (CLI) diseñada para simplificar el desarrollo local de arquitecturas cliente-servidor y multiservicio sin la sobrecarga de contenedores (Docker).
4
-
5
- ---
6
-
7
- ## 1. Arquitectura Interna
8
-
9
- Para mantener la herramienta ligera, predecible y fácil de instalar, se propone un diseño **sin demonios (daemonless)**. En lugar de un proceso en segundo plano persistente, la CLI utiliza el sistema de archivos local (`.orch/`) para guardar el estado y orquestar los procesos.
10
-
11
- ```mermaid
12
- graph TD
13
- CLI[CLI Command / orch] --> Config[Configuration Loader]
14
- Config --> Validate[YAML Schema Validator]
15
- Validate --> Run[Execution Engine]
16
-
17
- subgraph "Execution & Management"
18
- Run --> PM[Process Manager]
19
- PM --> Env[Environment Injector venv/node]
20
- PM --> ProcTree[Child Process Tree]
21
- end
22
-
23
- subgraph "State & Output"
24
- ProcTree --> LogRouter[Log Router]
25
- LogRouter --> Console[Console Output foreground]
26
- LogRouter --> LogFile[Log Files .orch/logs/]
27
- PM --> StateFile[State Registry .orch/state.json]
28
- end
29
- ```
30
-
31
- ### Componentes Core:
32
- 1. **CLI Parser (Interfaz de Usuario)**: Define la gramática de comandos (`up`, `start`, `stop`, `status`, `logs`, `restart`).
33
- 2. **Configuration Loader & Environment Injector**:
34
- - Detecta y valida el archivo `orch.yml` en la raíz del proyecto.
35
- - Si se define un entorno virtual (`venv`), calcula la ruta absoluta del ejecutable de Python (p. ej., `venv/Scripts/python.exe` en Windows o `venv/bin/python` en Unix/Linux) e inyecta la carpeta del venv al inicio del `PATH` del subproceso.
36
- 3. **Process Manager (Multiplataforma)**:
37
- - Lanza los subprocesos de forma no bloqueante utilizando APIs del sistema operativo.
38
- - En Windows, arranca los procesos con banderas específicas (como `CREATE_NEW_PROCESS_GROUP`) para asegurar que podamos detenerlos limpiamente a ellos y a sus subprocesos hijos.
39
- - Mantiene un registro de los PIDs activos en `.orch/state.json`.
40
- 4. **Log Router (Enrutador de Logs)**:
41
- - Redirige `stdout` y `stderr` de cada servicio.
42
- - **Modo Foreground (`orch up`)**: Intercala logs en tiempo real prefijándolos con el nombre del servicio en colores y enviándolos a la consola.
43
- - **Modo Background (`orch start`)**: Escribe la salida en archivos separados en `.orch/logs/<servicio>.log`.
44
- 5. **State Registry (`.orch/state.json`)**:
45
- - Guarda metadatos sobre los procesos en ejecución: PID, comando, fecha de inicio y estado. Esto permite que comandos como `orch stop` o `orch status` consulten qué procesos están activos sin necesitar un servicio en segundo plano corriendo continuamente.
46
-
47
- ---
48
-
49
- ## 2. Stack Tecnológico Recomendado
50
-
51
- Considerando que el desarrollador trabaja principalmente con **Python** y **Node.js**, existen tres stacks viables. Recomendamos **Python** o **Node.js** para facilitar la extensibilidad por parte del propio usuario.
52
-
53
- | Criterio | Opción A: Python (Recomendada) | Opción B: Node.js (TypeScript) | Opción C: Rust / Go |
54
- | :--- | :--- | :--- | :--- |
55
- | **Tecnología** | Python 3.8+ + `typer` + `rich` | Node.js + `commander` + `execa` | Rust + `clap` + `tokio` |
56
- | **Binario único** | No (requiere Python instalado) | No (requiere Node/npm) | **Sí** (Binario compilado nativo) |
57
- | **Gestión de Streams** | Buena | **Excelente** (Async por naturaleza) | Excelente |
58
- | **Manejo de Windows** | Excelente (con `psutil`) | Bueno (con `tree-kill`) | Complejo pero muy eficiente |
59
- | **Curva de desarrollo** | **Muy baja** (Fácil de modificar) | Baja | Alta |
60
-
61
- ### Detalle del Stack Recomendado (Python):
62
- - **CLI Framework**: [Typer](https://typer.tiangolo.com/) (rápido, basado en anotaciones de tipo) o [Click](https://click.palletsprojects.com/).
63
- - **Visualización de Terminal**: [Rich](https://rich.readthedocs.io/) (para crear tablas de estado hermosas, colores consistentes en logs y spinners).
64
- - **Procesamiento y Control**: [psutil](https://github.com/giampaolo/psutil) (indispensable para matar árboles de procesos de forma cross-platform en Windows y Linux).
65
- - **Serialización**: `PyYAML` o `ruamel.yaml` para leer configuraciones YAML.
66
-
67
- ---
68
-
69
- ## 3. Estructura del Archivo de Configuración (`orch.yml`)
70
-
71
- El archivo se estructurará de manera que sea minimalista pero extensible. Soportará variables de entorno comunes a todos los servicios y configuraciones de venv autodetectadas.
72
-
73
- ```yaml
74
- # orch.yml
75
- project: control-house
76
-
77
- # Configuración global del entorno
78
- env:
79
- type: venv
80
- path: ./venv-control-house
81
- variables:
82
- DEBUG: "true"
83
- DATABASE_URL: "sqlite:///./db.sqlite3"
84
-
85
- services:
86
- backend:
87
- path: ./backend
88
- # La CLI detecta que es python y usa automáticamente el venv configurado globalmente
89
- command: python app.py
90
- env:
91
- PORT: 8000
92
-
93
- ui:
94
- path: ./ui
95
- # Para Node, hereda las variables del sistema y las globales
96
- command: npm run dev
97
- env:
98
- VITE_API_URL: "http://localhost:8000"
99
-
100
- agent:
101
- path: ./agent
102
- command: python agent.py
103
- # Opción para reiniciar automáticamente si falla
104
- restart: on-failure
105
- ```
106
-
107
- ---
108
-
109
- ## 4. Experiencia de Usuario (UX) e Interfaz CLI
110
-
111
- El flujo de trabajo se divide en dos paradigmas: ejecución interactiva (foreground) y ejecución en segundo plano (background).
112
-
113
- ### Comandos Principales
114
-
115
- #### 1. Ejecución Interactiva (Estilo `docker-compose up`)
116
- Muestra los logs de todos los servicios intercalados en tiempo real en la consola activa. Al presionar `Ctrl+C` se detienen todos los servicios de forma segura.
117
-
118
- ```bash
119
- $ orch up
120
- ```
121
- *Visualización conceptual:*
122
- ```text
123
- [backend] INFO: Started server process [12452]
124
- [ui] VITE v5.2.11 ready in 254 ms
125
- [agent] Connecting to broker...
126
- [backend] GET /api/status - 200 OK
127
- [agent] Broker connected. Listening to events...
128
- ^C
129
- Stopping services...
130
- [backend] Stopped (PID 12452)
131
- [ui] Stopped (PID 12459)
132
- [agent] Stopped (PID 12461)
133
- Orch: All services terminated cleanly.
134
- ```
135
-
136
- #### 2. Ejecución en Segundo Plano (Estilo daemon-less)
137
- Inicia los servicios de forma asíncrona, liberando la terminal de inmediato.
138
-
139
- ```bash
140
- $ orch start
141
- ```
142
- *Visualización conceptual:*
143
- ```text
144
- ✔ Starting control-house services...
145
- ✔ backend [PID 12452] - Started
146
- ✔ ui [PID 12459] - Started
147
- ✔ agent [PID 12461] - Started
148
- Run `orch status` to check active processes or `orch logs -f` to tail logs.
149
- ```
150
-
151
- #### 3. Verificación de Estado
152
- Consulta el archivo `.orch/state.json` y valida si los PIDs siguen activos en el sistema operativo.
153
-
154
- ```bash
155
- $ orch status
156
- ```
157
- *Visualización conceptual:*
158
- ```text
159
- Project: control-house
160
- Status: Running (3/3 services active)
161
-
162
- SERVICE STATUS PID CPU MEM UPTIME
163
- backend RUNNING 12452 0.2% 45 MB 00:12:30
164
- ui RUNNING 12459 0.0% 82 MB 00:12:30
165
- agent RUNNING 12461 1.5% 32 MB 00:12:28
166
- ```
167
-
168
- #### 4. Consulta de Logs en Segundo Plano
169
- Muestra los logs guardados en archivo con opción de seguimiento en tiempo real (`-f`).
170
-
171
- ```bash
172
- $ orch logs backend -f
173
- # O para ver todos a la vez:
174
- $ orch logs -f
175
- ```
176
-
177
- #### 5. Detención de Servicios
178
- Lee `.orch/state.json`, envía señales de terminación a los PIDs registrados (y a sus hijos) y limpia el estado.
179
-
180
- ```bash
181
- $ orch stop
182
- ```
183
-
184
- ---
185
-
186
- ## 5. Comparativa con Alternativas Existentes
187
-
188
- | Herramienta | venv Automático | Windows Nativo | Modo Background Integrado | Fácil de Extender (YAML) |
189
- | :--- | :--- | :--- | :--- | :--- |
190
- | **`orch` (Propuesta)** | **Sí** (Inyección transparente) | **Sí** (Manejo robusto con psutil) | **Sí** (Vía registro PID local) | **Sí** (Configuración YAML simple) |
191
- | **PM2** | No (Requiere scripts wrappers) | Parcial (Problemas con bash/cmd) | Sí (Tiene daemon propio) | No (JS/JSON, complejo para Python) |
192
- | **Foreman / Honcho** | Parcial (Honcho lo soporta a medias)| Regular (Soporte Windows limitado) | No (Principalmente foreground) | No (Usa formato Procfile plano) |
193
- | **Docker Compose** | No aplica | Sí (Vía WSL2/HyperV) | Sí | Sí |
194
-
195
- > [!NOTE]
196
- > La principal ventaja de **`orch`** frente a PM2 o Foreman es su alineación exacta con el ecosistema de Python y Node local. Al inyectar el entorno virtual de forma transparente en el `PATH` de ejecución, evita la necesidad de configurar scripts de activación (`activate.bat` o `activate.sh`) en cada comando de servicio.
197
-
198
- ---
199
-
200
- ## 6. Roadmap de Evolución (Sin Sobreingeniería)
201
-
202
- Para lograr una entrega iterativa y evitar la parálisis por análisis, sugerimos estructurar el desarrollo en 4 fases rápidas:
203
-
204
- ```mermaid
205
- gantt
206
- title Roadmap de Desarrollo orch
207
- dateFormat YYYY-MM-DD
208
- section Fase 1: Core MVP
209
- Core Execution (Foreground) :active, f1, 2026-06-22, 5d
210
- venv Ingestion :active, f1_venv, after f1, 3d
211
- section Fase 2: Background Ops
212
- State File Management (.orch) : f2_state, after f1_venv, 4d
213
- start/stop/status commands : f2_cmds, after f2_state, 4d
214
- section Fase 3: UX & TUI
215
- Rich Logs Formatting : f3_logs, after f2_cmds, 3d
216
- Interactive Dashboard (TUI) : f3_dashboard, after f3_logs, 5d
217
- section Fase 4: Control Avanzado
218
- Dependency Checks (ports) : f4, after f3_dashboard, 4d
219
- ```
220
-
221
- ### Fase 1: Core MVP (Visualización Interactiva en Primer Plano)
222
- * **Objetivo**: Poder ejecutar `orch up` y ver todos los servicios corriendo, respetando el entorno virtual de Python.
223
- * **Entregables**:
224
- - Lector del archivo `orch.yml`.
225
- - Inyector de variables de entorno y venv.
226
- - Ejecutor concurrente de hilos de lectura para `stdout`/`stderr`.
227
- - Manejador de señal `SIGINT` (Ctrl+C) que mate todos los procesos activos usando `psutil`.
228
-
229
- ### Fase 2: Ejecución en Segundo Plano (Daemon-less)
230
- * **Objetivo**: Permitir desvincular los procesos de la terminal actual escribiendo el estado en un registro local.
231
- * **Entregables**:
232
- - Creación de la carpeta oculta `.orch/` en la raíz del proyecto.
233
- - Implementación del comando `start`: arranca procesos de forma desvinculada (detached) y guarda los PIDs en `.orch/state.json`.
234
- - Redirección de logs a `.orch/logs/<service>.log`.
235
- - Comandos `status` (chequea si los PIDs viven), `logs` (lectura estática o tailing con `tail -f` simulado), y `stop` (envía señal de muerte a los PIDs).
236
-
237
- ### Fase 3: UX Avanzada & Dashboard Interactivo (TUI)
238
- * **Objetivo**: Darle un aspecto profesional con reportes tabulares y un panel de control interactivo simple.
239
- * **Entregables**:
240
- - Formateo de logs con marcas de tiempo y colores consistentes usando la librería `rich`.
241
- - Pantalla interactiva opcional `orch dashboard` que muestre el estado de los recursos de forma dinámica utilizando `Textual` (TUI de Python).
242
-
243
- ### Fase 4: Control de Dependencias y Healthchecks
244
- * **Objetivo**: Evitar errores de conexión esperando a que un servicio esté listo antes de arrancar el siguiente.
245
- * **Entregables**:
246
- - Propiedad `depends_on` en la configuración (p. ej., `ui` depende de `backend`).
247
- - Verificaciones de puertos locales: si el backend levanta en el puerto 8000, la CLI espera a que ese puerto esté abierto antes de iniciar el comando del frontend.
@@ -1,99 +0,0 @@
1
- # Plan de Implementación: CLI Local Orchestrator (`orch`)
2
-
3
- Este documento describe el plan para desarrollar la herramienta CLI `orch` en Python utilizando un enfoque daemonless con archivos de estado locales.
4
-
5
- ---
6
-
7
- ## 1. Stack de Desarrollo y Dependencias
8
-
9
- El proyecto se estructurará como un paquete instalable de Python usando `pyproject.toml` para que pueda registrarse como un comando global (`orch`) en el sistema del usuario.
10
-
11
- ### Dependencias Principales:
12
- * **`typer[all]`**: Framework moderno para crear la CLI.
13
- * **`pyyaml`**: Lector de configuración `orch.yml`.
14
- * **`psutil`**: Gestión multiplataforma de PIDs, monitoreo de CPU/memoria y eliminación de árboles de subprocesos.
15
- * **`rich`**: Formateo estético de tablas, logs en color y visualización de estados en consola.
16
-
17
- ---
18
-
19
- ## 2. Estructura del Código Propuesta
20
-
21
- Crearemos el proyecto en la carpeta raíz del workspace:
22
-
23
- ```text
24
- EASYLIFECODE/
25
- ├── pyproject.toml # Configuración del paquete y dependencias
26
- ├── README.md # Documentación básica
27
- ├── orch/
28
- │ ├── __init__.py
29
- │ ├── cli.py # Definición de comandos Typer (up, start, stop, etc.)
30
- │ ├── config.py # Lector y validador de config (orch.yml)
31
- │ ├── manager.py # Orquestador de procesos (foreground/background)
32
- │ └── state.py # Gestor de base de datos local (.orch/state.json)
33
- ```
34
-
35
- ---
36
-
37
- ## 3. Cambios Propuestos por Archivo
38
-
39
- ### [NEW] [pyproject.toml](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/pyproject.toml)
40
- Configuración del proyecto con Hatchling como backend de empaquetado, dependencias y registro del script de consola `orch`.
41
-
42
- ### [NEW] [config.py](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/orch/config.py)
43
- * Carga del archivo `orch.yml`.
44
- * Resolución de rutas relativas basadas en la ubicación de `orch.yml`.
45
- * Detección y activación del entorno virtual de Python:
46
- - En Windows: añade `path/to/venv/Scripts` al inicio de `PATH` y define `VIRTUAL_ENV`.
47
- - En Linux/macOS: añade `path/to/venv/bin` al inicio de `PATH` y define `VIRTUAL_ENV`.
48
-
49
- ### [NEW] [state.py](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/orch/state.py)
50
- * Creación y lectura de la carpeta `.orch/`.
51
- * Serialización del estado de procesos activos en `.orch/state.json` (estructura JSON con PID, hora de inicio, nombre del servicio, ruta de logs).
52
- * Verificación en tiempo real si los PIDs registrados siguen activos en el sistema operativo usando `psutil`.
53
-
54
- ### [NEW] [manager.py](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/orch/manager.py)
55
- * **`run_foreground`**:
56
- - Inicia todos los servicios secuencialmente.
57
- - Captura `stdout`/`stderr` de manera asíncrona usando hilos (`threading.Thread`) o colas para evitar bloqueos.
58
- - Asigna un color único de `rich` a cada servicio para imprimir los logs de forma intercalada y legible.
59
- - Escucha la señal `SIGINT` (Ctrl+C) y detiene todos los procesos creados y sus procesos hijos.
60
- * **`run_background`**:
61
- - Arranca procesos desacoplados (`subprocess.Popen` con banderas para crear un nuevo grupo de procesos).
62
- - Redirige la salida a archivos `.orch/logs/<service>.log`.
63
- - Registra los PIDs en `state.py`.
64
- * **`stop_services`**:
65
- - Lee el estado, localiza los PIDs activos y utiliza `psutil.Process(pid).terminate()` o `.kill()` en cascada sobre los hijos del proceso (útil para comandos que abren otros subprocesos como `npm run dev`).
66
-
67
- ### [NEW] [cli.py](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/orch/cli.py)
68
- Entrada principal de la CLI con los siguientes subcomandos:
69
- * `up`: Levanta todos los servicios en primer plano.
70
- * `start`: Levanta todos los servicios en segundo plano.
71
- * `stop`: Detiene todos los servicios en segundo plano.
72
- * `status`: Muestra el estado actual y estadísticas de recursos (CPU, Memoria) de los procesos activos.
73
- * `logs [service] [-f/--follow]`: Muestra logs locales e implementa tailing en tiempo real.
74
- * `restart [service]`: Detiene y vuelve a iniciar uno o todos los servicios.
75
-
76
- ---
77
-
78
- ## 4. Plan de Verificación
79
-
80
- ### Pruebas Automatizadas
81
- * Validaremos la sintaxis del CLI invocando comandos de ayuda.
82
- * Comprobaremos que el paquete se puede instalar localmente en modo desarrollo:
83
- ```bash
84
- pip install -e .
85
- ```
86
-
87
- ### Verificación Manual (Escenario de prueba)
88
- Crearemos un proyecto ficticio de prueba dentro de `EASYLIFECODE/test-project/` con:
89
- * Un backend mock en Python (`app.py` que imprima logs periódicamente).
90
- * Un frontend mock en Node (`package.json` con un script mock).
91
- * Un entorno virtual de Python (`venv`).
92
- * Archivo `orch.yml`.
93
-
94
- Verificaremos:
95
- 1. `orch up` funciona, intercala logs y detiene todo con `Ctrl+C`.
96
- 2. `orch start` inicia los servicios silenciosamente.
97
- 3. `orch status` muestra los servicios activos con sus respectivos PIDs y consumo de memoria/CPU.
98
- 4. `orch logs -f` muestra la salida unificada.
99
- 5. `orch stop` limpia el estado y termina todos los procesos.
@@ -1 +0,0 @@
1
- __version__ = "0.1.0"
orch_cli-0.1.0/task.md DELETED
@@ -1,8 +0,0 @@
1
- # Tareas: Implementación de la CLI `orch`
2
-
3
- - `[x]` Crear la estructura del proyecto y `pyproject.toml`
4
- - `[x]` Implementar el cargador de configuración (`orch/config.py`)
5
- - `[x]` Implementar el gestor de estado local (`orch/state.py`)
6
- - `[x]` Implementar el gestor de procesos (`orch/manager.py`)
7
- - `[x]` Implementar la interfaz CLI con Typer (`orch/cli.py`)
8
- - `[x]` Crear un proyecto de prueba y verificar el funcionamiento
@@ -1,13 +0,0 @@
1
- from typing import List, Optional
2
-
3
- __version__ = "24.3.1"
4
-
5
-
6
- def main(args: Optional[List[str]] = None) -> int:
7
- """This is an internal API only meant for use by pip's own console scripts.
8
-
9
- For additional details, see https://github.com/pypa/pip/issues/7498.
10
- """
11
- from pip._internal.utils.entrypoints import _wrapper
12
-
13
- return _wrapper(args)
@@ -1,24 +0,0 @@
1
- import os
2
- import sys
3
-
4
- # Remove '' and current working directory from the first entry
5
- # of sys.path, if present to avoid using current directory
6
- # in pip commands check, freeze, install, list and show,
7
- # when invoked as python -m pip <command>
8
- if sys.path[0] in ("", os.getcwd()):
9
- sys.path.pop(0)
10
-
11
- # If we are running from a wheel, add the wheel to sys.path
12
- # This allows the usage python pip-*.whl/pip install pip-*.whl
13
- if __package__ == "":
14
- # __file__ is pip-*.whl/pip/__main__.py
15
- # first dirname call strips of '/__main__.py', second strips off '/pip'
16
- # Resulting path is the name of the wheel itself
17
- # Add that to sys.path so we can import pip
18
- path = os.path.dirname(os.path.dirname(__file__))
19
- sys.path.insert(0, path)
20
-
21
- if __name__ == "__main__":
22
- from pip._internal.cli.main import main as _main
23
-
24
- sys.exit(_main())
@@ -1,50 +0,0 @@
1
- """Execute exactly this copy of pip, within a different environment.
2
-
3
- This file is named as it is, to ensure that this module can't be imported via
4
- an import statement.
5
- """
6
-
7
- # /!\ This version compatibility check section must be Python 2 compatible. /!\
8
-
9
- import sys
10
-
11
- # Copied from pyproject.toml
12
- PYTHON_REQUIRES = (3, 8)
13
-
14
-
15
- def version_str(version): # type: ignore
16
- return ".".join(str(v) for v in version)
17
-
18
-
19
- if sys.version_info[:2] < PYTHON_REQUIRES:
20
- raise SystemExit(
21
- "This version of pip does not support python {} (requires >={}).".format(
22
- version_str(sys.version_info[:2]), version_str(PYTHON_REQUIRES)
23
- )
24
- )
25
-
26
- # From here on, we can use Python 3 features, but the syntax must remain
27
- # Python 2 compatible.
28
-
29
- import runpy # noqa: E402
30
- from importlib.machinery import PathFinder # noqa: E402
31
- from os.path import dirname # noqa: E402
32
-
33
- PIP_SOURCES_ROOT = dirname(dirname(__file__))
34
-
35
-
36
- class PipImportRedirectingFinder:
37
- @classmethod
38
- def find_spec(self, fullname, path=None, target=None): # type: ignore
39
- if fullname != "pip":
40
- return None
41
-
42
- spec = PathFinder.find_spec(fullname, [PIP_SOURCES_ROOT], target)
43
- assert spec, (PIP_SOURCES_ROOT, fullname)
44
- return spec
45
-
46
-
47
- sys.meta_path.insert(0, PipImportRedirectingFinder())
48
-
49
- assert __name__ == "__main__", "Cannot run __pip-runner__.py as a non-main module"
50
- runpy.run_module("pip", run_name="__main__", alter_sys=True)
@@ -1,18 +0,0 @@
1
- from typing import List, Optional
2
-
3
- from pip._internal.utils import _log
4
-
5
- # init_logging() must be called before any call to logging.getLogger()
6
- # which happens at import of most modules.
7
- _log.init_logging()
8
-
9
-
10
- def main(args: Optional[List[str]] = None) -> int:
11
- """This is preserved for old console scripts that may still be referencing
12
- it.
13
-
14
- For additional details, see https://github.com/pypa/pip/issues/7498.
15
- """
16
- from pip._internal.utils.entrypoints import _wrapper
17
-
18
- return _wrapper(args)