apm-cli 0.25.0__tar.gz → 0.27.0__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 (463) hide show
  1. {apm_cli-0.25.0 → apm_cli-0.27.0}/NOTICE +37 -0
  2. {apm_cli-0.25.0/src/apm_cli.egg-info → apm_cli-0.27.0}/PKG-INFO +4 -1
  3. {apm_cli-0.25.0 → apm_cli-0.27.0}/pyproject.toml +51 -2
  4. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/base.py +574 -6
  5. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/codex.py +24 -7
  6. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/copilot.py +54 -17
  7. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/gemini.py +5 -7
  8. apm_cli-0.27.0/src/apm_cli/adapters/client/intellij.py +281 -0
  9. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/vscode.py +411 -124
  10. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/bundle/plugin_exporter.py +2 -1
  11. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/cache/url_normalize.py +2 -5
  12. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/cli.py +9 -1
  13. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/approve.py +56 -31
  14. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/audit.py +109 -18
  15. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/doctor.py +2 -2
  16. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/install.py +104 -65
  17. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/lock.py +7 -6
  18. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/check.py +7 -0
  19. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/doctor.py +6 -3
  20. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/outdated.py +5 -1
  21. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/policy.py +18 -18
  22. apm_cli-0.27.0/src/apm_cli/commands/prune.py +354 -0
  23. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/self_update.py +90 -40
  24. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/uninstall/cli.py +146 -40
  25. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/uninstall/engine.py +608 -93
  26. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/uninstall/lockfile_state.py +16 -2
  27. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/update.py +150 -25
  28. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/link_resolver.py +30 -31
  29. apm_cli-0.27.0/src/apm_cli/core/_child_tls/__init__.py +15 -0
  30. apm_cli-0.27.0/src/apm_cli/core/_child_tls/_apm_tls.pth +1 -0
  31. apm_cli-0.27.0/src/apm_cli/core/_child_tls/_apm_tls_bootstrap.py +59 -0
  32. apm_cli-0.27.0/src/apm_cli/core/apm_yml.py +160 -0
  33. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/auth.py +448 -64
  34. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/deployment_ledger.py +319 -13
  35. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/deployment_state.py +75 -4
  36. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/host_providers.py +22 -3
  37. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/operations.py +8 -1
  38. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/safe_installer.py +3 -1
  39. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/scope.py +5 -0
  40. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/target_detection.py +178 -0
  41. apm_cli-0.27.0/src/apm_cli/core/tls_trust.py +343 -0
  42. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/apm_resolver.py +71 -11
  43. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/bare_cache.py +64 -0
  44. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/clone_engine.py +127 -30
  45. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/dependency_graph.py +9 -9
  46. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/download_strategies.py +397 -117
  47. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/git_auth_env.py +32 -15
  48. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/git_file_transport.py +38 -3
  49. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/git_reference_resolver.py +174 -37
  50. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/git_semver_resolver.py +7 -1
  51. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/github_downloader.py +179 -30
  52. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/github_downloader_validation.py +176 -29
  53. apm_cli-0.27.0/src/apm_cli/deps/github_rate_limit.py +77 -0
  54. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/host_backends.py +6 -4
  55. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/lockfile.py +94 -33
  56. apm_cli-0.27.0/src/apm_cli/deps/reachability.py +245 -0
  57. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/shared_clone_cache.py +57 -35
  58. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/tiered_ref_resolver.py +118 -17
  59. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/drift.py +31 -0
  60. apm_cli-0.27.0/src/apm_cli/install/audit_replay.py +112 -0
  61. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/context.py +11 -1
  62. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/drift.py +277 -149
  63. apm_cli-0.27.0/src/apm_cli/install/drift_render.py +100 -0
  64. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/errors.py +4 -0
  65. apm_cli-0.27.0/src/apm_cli/install/helpers/no_work.py +34 -0
  66. apm_cli-0.27.0/src/apm_cli/install/helpers/ref_reuse.py +272 -0
  67. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/helpers/ref_seed.py +11 -11
  68. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/integrity.py +10 -0
  69. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/local_bundle_handler.py +80 -45
  70. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/lsp/integration.py +36 -4
  71. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/manifest_reconcile.py +310 -21
  72. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/command.py +75 -7
  73. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/integration.py +78 -16
  74. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/ownership.py +22 -2
  75. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/outcome.py +1 -0
  76. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/cleanup.py +41 -11
  77. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/finalize.py +125 -19
  78. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/lockfile.py +152 -8
  79. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/post_deps_local.py +28 -47
  80. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/resolve.py +176 -176
  81. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/targets.py +27 -36
  82. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/pipeline.py +71 -67
  83. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/plan.py +39 -0
  84. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/request.py +4 -1
  85. apm_cli-0.27.0/src/apm_cli/install/resolution_staging.py +126 -0
  86. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/service.py +64 -5
  87. apm_cli-0.27.0/src/apm_cli/install/service_integration.py +126 -0
  88. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/services.py +62 -21
  89. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/sources.py +10 -2
  90. apm_cli-0.27.0/src/apm_cli/install/target_filter.py +131 -0
  91. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/validation.py +116 -64
  92. apm_cli-0.27.0/src/apm_cli/integration/_hook_dropped_targets.py +129 -0
  93. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/agent_integrator.py +85 -7
  94. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/base_integrator.py +11 -4
  95. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/cleanup.py +23 -2
  96. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/hook_bundle.py +23 -1
  97. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/hook_integrator.py +378 -295
  98. apm_cli-0.27.0/src/apm_cli/integration/hook_ownership.py +296 -0
  99. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/kiro_hook_integrator.py +11 -10
  100. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/lsp_integrator.py +69 -10
  101. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/mcp_config_view.py +105 -7
  102. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/mcp_integrator.py +140 -47
  103. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/mcp_integrator_install.py +365 -89
  104. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/opencode_frontmatter.py +4 -18
  105. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/skill_integrator.py +83 -36
  106. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/targets.py +25 -2
  107. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/auth_helpers.py +1 -1
  108. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/builder.py +30 -2
  109. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/client.py +45 -12
  110. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/models.py +29 -0
  111. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/output_mappers.py +14 -0
  112. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/ref_resolver.py +200 -34
  113. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/resolver.py +121 -81
  114. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/tag_pattern.py +33 -0
  115. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/version_resolver.py +15 -4
  116. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/yml_schema.py +11 -10
  117. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/apm_package.py +99 -18
  118. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/dependency/identity.py +44 -9
  119. apm_cli-0.27.0/src/apm_cli/models/dependency/materialization.py +351 -0
  120. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/dependency/object_fields.py +31 -1
  121. apm_cli-0.27.0/src/apm_cli/models/dependency/provider_coordinates.py +54 -0
  122. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/dependency/reference.py +100 -154
  123. apm_cli-0.27.0/src/apm_cli/models/dependency/selection.py +105 -0
  124. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/dependency/subsets.py +28 -0
  125. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/results.py +7 -0
  126. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/validation.py +2 -6
  127. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/ci_checks.py +164 -55
  128. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/discovery.py +556 -101
  129. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/install_preflight.py +6 -1
  130. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/models.py +1 -0
  131. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/outcome_routing.py +13 -0
  132. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/parser.py +5 -1
  133. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/policy_checks.py +62 -0
  134. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/registry/operations.py +46 -19
  135. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/runtime/base.py +10 -0
  136. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/runtime/llm_runtime.py +15 -2
  137. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/runtime/manager.py +38 -0
  138. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/audit_report.py +139 -23
  139. apm_cli-0.27.0/src/apm_cli/security/file_scanner.py +238 -0
  140. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/gate.py +22 -6
  141. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/atomic_io.py +8 -1
  142. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/diagnostics.py +40 -0
  143. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/git_env.py +10 -15
  144. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/github_host.py +220 -9
  145. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/paths.py +16 -0
  146. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/version_checker.py +1 -4
  147. {apm_cli-0.25.0 → apm_cli-0.27.0/src/apm_cli.egg-info}/PKG-INFO +4 -1
  148. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli.egg-info/SOURCES.txt +15 -0
  149. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli.egg-info/requires.txt +3 -0
  150. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_apm_package_models.py +6 -5
  151. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_codex_docker_args_fix.py +13 -7
  152. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_github_downloader.py +75 -0
  153. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_gitlab_git_transport.py +121 -21
  154. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_lockfile.py +5 -0
  155. apm_cli-0.25.0/src/apm_cli/adapters/client/intellij.py +0 -104
  156. apm_cli-0.25.0/src/apm_cli/commands/prune.py +0 -168
  157. apm_cli-0.25.0/src/apm_cli/core/apm_yml.py +0 -98
  158. apm_cli-0.25.0/src/apm_cli/install/helpers/ref_reuse.py +0 -119
  159. apm_cli-0.25.0/src/apm_cli/install/resolution_staging.py +0 -59
  160. apm_cli-0.25.0/src/apm_cli/install/target_filter.py +0 -33
  161. apm_cli-0.25.0/src/apm_cli/security/file_scanner.py +0 -84
  162. {apm_cli-0.25.0 → apm_cli-0.27.0}/AUTHORS +0 -0
  163. {apm_cli-0.25.0 → apm_cli-0.27.0}/LICENSE +0 -0
  164. {apm_cli-0.25.0 → apm_cli-0.27.0}/README.md +0 -0
  165. {apm_cli-0.25.0 → apm_cli-0.27.0}/setup.cfg +0 -0
  166. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/__init__.py +0 -0
  167. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/__init__.py +0 -0
  168. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/__init__.py +0 -0
  169. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/_mcp_runtime_args.py +0 -0
  170. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/antigravity.py +0 -0
  171. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/claude.py +0 -0
  172. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/cursor.py +0 -0
  173. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/hermes.py +0 -0
  174. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/kiro.py +0 -0
  175. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/opencode.py +0 -0
  176. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/client/windsurf.py +0 -0
  177. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/package_manager/__init__.py +0 -0
  178. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/package_manager/base.py +0 -0
  179. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/adapters/package_manager/default_manager.py +0 -0
  180. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/bootstrap_mirror.py +0 -0
  181. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/bundle/__init__.py +0 -0
  182. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/bundle/attest.py +0 -0
  183. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/bundle/local_bundle.py +0 -0
  184. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/bundle/lockfile_enrichment.py +0 -0
  185. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/bundle/packer.py +0 -0
  186. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/bundle/plugin_layout.py +0 -0
  187. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/bundle/unpacker.py +0 -0
  188. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/cache/__init__.py +0 -0
  189. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/cache/git_cache.py +0 -0
  190. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/cache/http_cache.py +0 -0
  191. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/cache/integrity.py +0 -0
  192. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/cache/locking.py +0 -0
  193. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/cache/paths.py +0 -0
  194. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/__init__.py +0 -0
  195. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/_apm_yml_writer.py +0 -0
  196. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/_helpers.py +0 -0
  197. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/cache.py +0 -0
  198. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/compile/__init__.py +0 -0
  199. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/compile/cli.py +0 -0
  200. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/compile/watcher.py +0 -0
  201. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/config.py +0 -0
  202. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/deps/__init__.py +0 -0
  203. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/deps/_utils.py +0 -0
  204. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/deps/cli.py +0 -0
  205. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/deps/why.py +0 -0
  206. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/experimental.py +0 -0
  207. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/find.py +0 -0
  208. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/init.py +0 -0
  209. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/lifecycle.py +0 -0
  210. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/list_cmd.py +0 -0
  211. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/__init__.py +0 -0
  212. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/audit.py +0 -0
  213. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/init.py +0 -0
  214. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/migrate.py +0 -0
  215. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/outdated.py +0 -0
  216. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/plugin/__init__.py +0 -0
  217. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/plugin/add.py +0 -0
  218. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/plugin/remove.py +0 -0
  219. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/plugin/set.py +0 -0
  220. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/marketplace/validate.py +0 -0
  221. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/mcp.py +0 -0
  222. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/pack.py +0 -0
  223. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/plugin/__init__.py +0 -0
  224. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/plugin/init.py +0 -0
  225. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/publish.py +0 -0
  226. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/run.py +0 -0
  227. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/runtime.py +0 -0
  228. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/targets.py +0 -0
  229. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/uninstall/__init__.py +0 -0
  230. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/commands/view.py +0 -0
  231. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/__init__.py +0 -0
  232. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/agents_compiler.py +0 -0
  233. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/build_id.py +0 -0
  234. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/claude_formatter.py +0 -0
  235. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/constants.py +0 -0
  236. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/constitution.py +0 -0
  237. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/constitution_block.py +0 -0
  238. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/context_optimizer.py +0 -0
  239. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/distributed_compiler.py +0 -0
  240. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/gemini_formatter.py +0 -0
  241. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/injector.py +0 -0
  242. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/managed_section.py +0 -0
  243. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/output_writer.py +0 -0
  244. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/template_builder.py +0 -0
  245. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/compilation/user_root_context.py +0 -0
  246. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/config.py +0 -0
  247. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/constants.py +0 -0
  248. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/__init__.py +0 -0
  249. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/azure_cli.py +0 -0
  250. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/build_orchestrator.py +0 -0
  251. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/command_logger.py +0 -0
  252. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/conflict_detector.py +0 -0
  253. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/docker_args.py +0 -0
  254. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/errors.py +0 -0
  255. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/experimental.py +0 -0
  256. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/install_audit.py +0 -0
  257. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/lifecycle_scripts.py +0 -0
  258. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/null_logger.py +0 -0
  259. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/output_mode.py +0 -0
  260. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/plugin_manifest.py +0 -0
  261. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/script_executors.py +0 -0
  262. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/script_runner.py +0 -0
  263. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/script_trust.py +0 -0
  264. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/target_catalog.py +0 -0
  265. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/core/token_manager.py +0 -0
  266. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/__init__.py +0 -0
  267. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/_shared.py +0 -0
  268. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/aggregator.py +0 -0
  269. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/artifactory_entry.py +0 -0
  270. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/artifactory_orchestrator.py +0 -0
  271. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/git_remote_ops.py +0 -0
  272. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/installed_package.py +0 -0
  273. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/outdated_ref_cache.py +0 -0
  274. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/outdated_row.py +0 -0
  275. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/package_validator.py +0 -0
  276. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/path_anchoring.py +0 -0
  277. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/plugin_parser.py +0 -0
  278. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry/__init__.py +0 -0
  279. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry/auth.py +0 -0
  280. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry/client.py +0 -0
  281. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry/config_loader.py +0 -0
  282. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry/extractor.py +0 -0
  283. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry/feature_gate.py +0 -0
  284. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry/outdated.py +0 -0
  285. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry/resolver.py +0 -0
  286. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry/semver.py +0 -0
  287. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/registry_proxy.py +0 -0
  288. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/revision_pins.py +0 -0
  289. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/transport_selection.py +0 -0
  290. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/verifier.py +0 -0
  291. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/deps/why_walker.py +0 -0
  292. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/export/__init__.py +0 -0
  293. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/export/authoring.py +0 -0
  294. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/export/declared_license.py +0 -0
  295. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/export/formats.py +0 -0
  296. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/export/purl.py +0 -0
  297. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/export/sbom.py +0 -0
  298. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/export/spdx.py +0 -0
  299. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/export/spdx_data.py +0 -0
  300. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/factory.py +0 -0
  301. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/__init__.py +0 -0
  302. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/artifactory_resolver.py +0 -0
  303. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/cache_pin.py +0 -0
  304. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/deployed_paths.py +0 -0
  305. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/exec_gate.py +0 -0
  306. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/gitlab_resolver.py +0 -0
  307. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/heals/__init__.py +0 -0
  308. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/heals/base.py +0 -0
  309. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/heals/branch_ref_drift.py +0 -0
  310. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/heals/buggy_lockfile_recovery.py +0 -0
  311. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/helpers/__init__.py +0 -0
  312. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/helpers/security_scan.py +0 -0
  313. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/insecure_policy.py +0 -0
  314. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/lsp/__init__.py +0 -0
  315. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/__init__.py +0 -0
  316. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/args.py +0 -0
  317. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/conflicts.py +0 -0
  318. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/entry.py +0 -0
  319. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/registry.py +0 -0
  320. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/warnings.py +0 -0
  321. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/mcp/writer.py +0 -0
  322. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/package_resolution.py +0 -0
  323. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/package_selection.py +0 -0
  324. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/__init__.py +0 -0
  325. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/_redownload.py +0 -0
  326. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/_skip_logic.py +0 -0
  327. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/audit.py +0 -0
  328. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/download.py +0 -0
  329. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/heal.py +0 -0
  330. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/integrate.py +0 -0
  331. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/local_content.py +0 -0
  332. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/policy_gate.py +0 -0
  333. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/phases/policy_target_check.py +0 -0
  334. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/presentation/__init__.py +0 -0
  335. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/presentation/dry_run.py +0 -0
  336. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/registry_wiring.py +0 -0
  337. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/root_redirect.py +0 -0
  338. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/skill_path_migration.py +0 -0
  339. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/summary.py +0 -0
  340. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/target_warnings.py +0 -0
  341. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/template.py +0 -0
  342. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/install/transaction.py +0 -0
  343. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/__init__.py +0 -0
  344. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/_shared.py +0 -0
  345. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/canvas_integrator.py +0 -0
  346. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/command_integrator.py +0 -0
  347. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/copilot_app_db.py +0 -0
  348. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/copilot_app_project.py +0 -0
  349. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/copilot_app_workflow_integrator.py +0 -0
  350. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/copilot_app_ws.py +0 -0
  351. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/copilot_cowork_paths.py +0 -0
  352. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/coverage.py +0 -0
  353. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/dispatch.py +0 -0
  354. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/hook_file_routing.py +0 -0
  355. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/hook_ir.py +0 -0
  356. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/hook_native_formats.py +0 -0
  357. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/instruction_integrator.py +0 -0
  358. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/prompt_integrator.py +0 -0
  359. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/skill_transformer.py +0 -0
  360. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/integration/utils.py +0 -0
  361. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/__init__.py +0 -0
  362. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/_git_utils.py +0 -0
  363. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/_io.py +0 -0
  364. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/_shared.py +0 -0
  365. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/audit.py +0 -0
  366. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/diagnostics.py +0 -0
  367. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/drift_check.py +0 -0
  368. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/errors.py +0 -0
  369. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/git_stderr.py +0 -0
  370. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/init_template.py +0 -0
  371. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/migration.py +0 -0
  372. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/output_profiles.py +0 -0
  373. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/registry.py +0 -0
  374. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/semver.py +0 -0
  375. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/shadow_detector.py +0 -0
  376. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/validator.py +0 -0
  377. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/version_check.py +0 -0
  378. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/version_pins.py +0 -0
  379. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/marketplace/yml_editor.py +0 -0
  380. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/__init__.py +0 -0
  381. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/dependency/__init__.py +0 -0
  382. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/dependency/lsp.py +0 -0
  383. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/dependency/mcp.py +0 -0
  384. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/dependency/types.py +0 -0
  385. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/format_detection.py +0 -0
  386. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/manifest_contract.py +0 -0
  387. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/models/plugin.py +0 -0
  388. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/output/__init__.py +0 -0
  389. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/output/formatters.py +0 -0
  390. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/output/models.py +0 -0
  391. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/output/script_formatters.py +0 -0
  392. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/__init__.py +0 -0
  393. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/_constraint_pinning.py +0 -0
  394. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/_help_text.py +0 -0
  395. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/_shared.py +0 -0
  396. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/inheritance.py +0 -0
  397. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/matcher.py +0 -0
  398. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/project_config.py +0 -0
  399. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/policy/schema.py +0 -0
  400. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/primitives/__init__.py +0 -0
  401. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/primitives/discovery.py +0 -0
  402. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/primitives/models.py +0 -0
  403. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/primitives/parser.py +0 -0
  404. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/registry/__init__.py +0 -0
  405. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/registry/client.py +0 -0
  406. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/registry/integration.py +0 -0
  407. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/runtime/__init__.py +0 -0
  408. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/runtime/codex_runtime.py +0 -0
  409. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/runtime/copilot_runtime.py +0 -0
  410. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/runtime/factory.py +0 -0
  411. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/runtime/registry.py +0 -0
  412. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/runtime/utils.py +0 -0
  413. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/__init__.py +0 -0
  414. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/content_scanner.py +0 -0
  415. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/executables.py +0 -0
  416. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/external/__init__.py +0 -0
  417. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/external/base.py +0 -0
  418. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/external/gate.py +0 -0
  419. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/external/generic_sarif.py +0 -0
  420. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/external/options.py +0 -0
  421. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/external/registry.py +0 -0
  422. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/external/runner.py +0 -0
  423. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/external/sarif_ingest.py +0 -0
  424. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/security/external/skillspector.py +0 -0
  425. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/update_policy.py +0 -0
  426. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/__init__.py +0 -0
  427. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/archive.py +0 -0
  428. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/console.py +0 -0
  429. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/content_hash.py +0 -0
  430. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/exclude.py +0 -0
  431. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/file_ops.py +0 -0
  432. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/git_sparse.py +0 -0
  433. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/guards.py +0 -0
  434. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/helpers.py +0 -0
  435. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/install_tui.py +0 -0
  436. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/normalization.py +0 -0
  437. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/path_security.py +0 -0
  438. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/patterns.py +0 -0
  439. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/perf_stats.py +0 -0
  440. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/reflink.py +0 -0
  441. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/short_sha.py +0 -0
  442. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/subprocess_env.py +0 -0
  443. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/utils/yaml_io.py +0 -0
  444. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/version.py +0 -0
  445. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/workflow/__init__.py +0 -0
  446. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/workflow/discovery.py +0 -0
  447. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/workflow/parser.py +0 -0
  448. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli/workflow/runner.py +0 -0
  449. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli.egg-info/dependency_links.txt +0 -0
  450. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli.egg-info/entry_points.txt +0 -0
  451. {apm_cli-0.25.0 → apm_cli-0.27.0}/src/apm_cli.egg-info/top_level.txt +0 -0
  452. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_apm_resolver.py +0 -0
  453. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_codex_empty_string_and_defaults.py +0 -0
  454. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_collision_integration.py +0 -0
  455. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_console.py +0 -0
  456. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_distributed_compilation.py +0 -0
  457. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_empty_string_and_defaults.py +0 -0
  458. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_enhanced_discovery.py +0 -0
  459. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_github_downloader_token_precedence.py +0 -0
  460. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_runnable_prompts.py +0 -0
  461. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_runtime_manager_token_precedence.py +0 -0
  462. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_token_manager.py +0 -0
  463. {apm_cli-0.25.0 → apm_cli-0.27.0}/tests/test_virtual_package_multi_install.py +0 -0
@@ -334,6 +334,43 @@ Copyright 2019 Kenneth Reitz
334
334
 
335
335
  ---
336
336
 
337
+ ## Component. truststore
338
+
339
+ - Version requirement: `>=0.10.0`
340
+ - Upstream: https://github.com/sethmlarson/truststore
341
+ - SPDX: `MIT`
342
+ - Notes: Verifies HTTPS against the operating-system trust store by default so `apm` works behind a corporate CA / TLS-inspecting proxy.
343
+
344
+ ### Open Source License/Copyright Notice.
345
+
346
+ _Copyright (c) 2022 Seth Michael Larson_
347
+
348
+ ```
349
+ The MIT License (MIT)
350
+
351
+ Copyright (c) 2022 Seth Michael Larson
352
+
353
+ Permission is hereby granted, free of charge, to any person obtaining a copy
354
+ of this software and associated documentation files (the "Software"), to deal
355
+ in the Software without restriction, including without limitation the rights
356
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
357
+ copies of the Software, and to permit persons to whom the Software is
358
+ furnished to do so, subject to the following conditions:
359
+
360
+ The above copyright notice and this permission notice shall be included in
361
+ all copies or substantial portions of the Software.
362
+
363
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
364
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
365
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
366
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
367
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
368
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
369
+ THE SOFTWARE.
370
+ ```
371
+
372
+ ---
373
+
337
374
  ## Component. python-frontmatter
338
375
 
339
376
  - Version requirement: `>=1.0.0`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apm-cli
3
- Version: 0.25.0
3
+ Version: 0.27.0
4
4
  Summary: MCP configuration tool
5
5
  Author-email: Daniel Meppiel <user@example.com>
6
6
  License: MIT License
@@ -41,6 +41,7 @@ Requires-Dist: click>=8.0.0
41
41
  Requires-Dist: colorama>=0.4.6
42
42
  Requires-Dist: pyyaml>=6.0.0
43
43
  Requires-Dist: requests>=2.31.0
44
+ Requires-Dist: truststore>=0.10.0
44
45
  Requires-Dist: python-frontmatter>=1.0.0
45
46
  Requires-Dist: llm>=0.28
46
47
  Requires-Dist: llm-github-models>=0.18.0
@@ -63,6 +64,8 @@ Requires-Dist: ruff>=0.11.0; extra == "dev"
63
64
  Requires-Dist: mypy>=1.0.0; extra == "dev"
64
65
  Requires-Dist: jsonschema>=4.0.0; extra == "dev"
65
66
  Requires-Dist: pylint>=3.0.0; extra == "dev"
67
+ Requires-Dist: hypothesis>=6.0.0; extra == "dev"
68
+ Requires-Dist: mutmut==3.6.0; extra == "dev"
66
69
  Provides-Extra: build
67
70
  Requires-Dist: pyinstaller>=6.0.0; extra == "build"
68
71
  Dynamic: license-file
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "apm-cli"
7
- version = "0.25.0"
7
+ version = "0.27.0"
8
8
  description = "MCP configuration tool"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -26,6 +26,7 @@ dependencies = [
26
26
  "colorama>=0.4.6",
27
27
  "pyyaml>=6.0.0",
28
28
  "requests>=2.31.0",
29
+ "truststore>=0.10.0",
29
30
  "python-frontmatter>=1.0.0",
30
31
  "llm>=0.28",
31
32
  "llm-github-models>=0.18.0",
@@ -51,6 +52,8 @@ dev = [
51
52
  "mypy>=1.0.0",
52
53
  "jsonschema>=4.0.0",
53
54
  "pylint>=3.0.0",
55
+ "hypothesis>=6.0.0",
56
+ "mutmut==3.6.0",
54
57
  ]
55
58
  build = [
56
59
  "pyinstaller>=6.0.0",
@@ -63,6 +66,12 @@ apm = "apm_cli.cli:main"
63
66
  where = ["src"]
64
67
  include = ["apm_cli*"]
65
68
 
69
+ [tool.setuptools.package-data]
70
+ # Belt-and-suspenders: ship the child-TLS .pth alongside the bootstrap module.
71
+ # Delivery no longer depends on this (ensure_child_tls_bootstrap generates the
72
+ # .pth inline), but packaging it keeps the source tree and wheel in sync.
73
+ "apm_cli.core._child_tls" = ["*.pth"]
74
+
66
75
  [tool.ruff]
67
76
  line-length = 100
68
77
  target-version = "py310"
@@ -152,22 +161,62 @@ exclude_lines = [
152
161
  "@overload",
153
162
  ]
154
163
 
164
+ [tool.mutmut]
165
+ source_paths = ["src/"]
166
+ only_mutate = [
167
+ "src/apm_cli/models/dependency/subsets.py",
168
+ "src/apm_cli/install/plan.py",
169
+ "src/apm_cli/policy/discovery.py",
170
+ "src/apm_cli/compilation/link_resolver.py",
171
+ "src/apm_cli/deps/lockfile.py",
172
+ ]
173
+ pytest_add_cli_args = [
174
+ "-n0",
175
+ "-p",
176
+ "no:cacheprovider",
177
+ "-o",
178
+ "addopts=",
179
+ ]
180
+ pytest_add_cli_args_test_selection = [
181
+ "tests/unit/test_skill_subset_persistence.py",
182
+ "tests/unit/test_dep_targets_persistence.py",
183
+ "tests/unit/install/test_plan.py",
184
+ "tests/unit/policy/test_cache_merged_effective.py::test_policy_serializer_covers_every_dataclass_leaf",
185
+ "tests/unit/policy/test_cache_merged_effective.py::test_policy_serializer_preserves_sparse_bin_deploy_shapes",
186
+ "tests/unit/policy/test_cache_merged_effective.py::TestPolicyRoundTrip::test_all_effective_policy_fields_survive_cache_round_trip",
187
+ "tests/unit/compilation/test_link_resolver.py",
188
+ "tests/unit/compilation/test_link_resolver_phase3.py",
189
+ "tests/unit/compilation/test_link_resolver_resolution.py",
190
+ "tests/unit/deps/test_lockfile_field_properties.py",
191
+ ]
192
+ timeout_constant = 1.0
193
+ timeout_multiplier = 5.0
194
+ use_setproctitle = false
195
+
155
196
  [tool.pytest.ini_options]
156
- addopts = "-m 'not benchmark and not live'"
197
+ addopts = "-m 'not benchmark and not live' --strict-markers"
198
+ testpaths = ["tests"]
157
199
  markers = [
200
+ "unit: pure logic with no filesystem and no CLI",
201
+ "component: in-process behavior that touches a filesystem or one command boundary",
202
+ "e2e: a real installed CLI crossing at least one command boundary",
158
203
  "integration: marks tests as integration tests that may require network access",
159
204
  "live: marks tests that hit real GitHub repos (requires network + optional GITHUB_TOKEN)",
160
205
  "slow: marks tests as slow running tests",
161
206
  "benchmark: marks performance benchmark tests (deselected by default, run with -m benchmark)",
207
+ "windows_compat: load-bearing cross-platform regression contract family (CRLF-safe atomic writes, portable path formatting, git-executable resolution, socket/thread shutdown); runs on every OS and is additionally selected by the PR-time Windows Compatibility Gate -- NOT a requires_windows skip-gate, do not use requires_windows for this",
162
208
  "requires_e2e_mode: requires APM_E2E_TESTS=1",
163
209
  "requires_github_token: requires GITHUB_APM_PAT or GITHUB_TOKEN",
164
210
  "requires_ado_pat: requires ADO_APM_PAT",
165
211
  "requires_ado_bearer: requires az CLI logged in + APM_TEST_ADO_BEARER=1",
166
212
  "requires_network_integration: requires APM_RUN_INTEGRATION_TESTS=1",
213
+ "requires_windows: requires a Windows host",
167
214
  "requires_apm_binary: requires built apm binary on PATH (or APM_BINARY_PATH)",
168
215
  "requires_runtime_codex: requires codex runtime installed",
169
216
  "requires_runtime_copilot: requires GitHub Copilot CLI runtime installed",
170
217
  "requires_runtime_llm: requires llm runtime installed",
171
218
  "requires_inference: requires APM_RUN_INFERENCE_TESTS=1 + model API access",
172
219
  "req: binds a test to one or more OpenAPM req-XXX ids (spec-conformance suite)",
220
+ "lifecycle_smoke: promoted to the required PR-time Lifecycle Smoke (Linux) job -- see ci.yml's lifecycle-smoke job and docs/src/content/docs/contributing/integration-testing.md",
221
+ "lifecycle_merge_group: unique lifecycle contracts retained in the full merge-group integration suite",
173
222
  ]