apm-cli 0.7.6__tar.gz → 0.7.7__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 (119) hide show
  1. {apm_cli-0.7.6/src/apm_cli.egg-info → apm_cli-0.7.7}/PKG-INFO +5 -3
  2. {apm_cli-0.7.6 → apm_cli-0.7.7}/README.md +4 -2
  3. {apm_cli-0.7.6 → apm_cli-0.7.7}/pyproject.toml +1 -1
  4. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/bundle/packer.py +2 -1
  5. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/cli.py +2 -2
  6. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/commands/pack.py +2 -2
  7. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/target_detection.py +17 -7
  8. {apm_cli-0.7.6 → apm_cli-0.7.7/src/apm_cli.egg-info}/PKG-INFO +5 -3
  9. {apm_cli-0.7.6 → apm_cli-0.7.7}/AUTHORS +0 -0
  10. {apm_cli-0.7.6 → apm_cli-0.7.7}/LICENSE +0 -0
  11. {apm_cli-0.7.6 → apm_cli-0.7.7}/setup.cfg +0 -0
  12. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/__init__.py +0 -0
  13. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/__init__.py +0 -0
  14. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/__init__.py +0 -0
  15. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/base.py +0 -0
  16. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/codex.py +0 -0
  17. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/copilot.py +0 -0
  18. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/vscode.py +0 -0
  19. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/package_manager/__init__.py +0 -0
  20. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/package_manager/base.py +0 -0
  21. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/package_manager/default_manager.py +0 -0
  22. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/bundle/__init__.py +0 -0
  23. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/bundle/lockfile_enrichment.py +0 -0
  24. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/bundle/unpacker.py +0 -0
  25. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/commands/__init__.py +0 -0
  26. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/commands/deps.py +0 -0
  27. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/__init__.py +0 -0
  28. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/agents_compiler.py +0 -0
  29. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/claude_formatter.py +0 -0
  30. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/constants.py +0 -0
  31. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/constitution.py +0 -0
  32. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/constitution_block.py +0 -0
  33. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/context_optimizer.py +0 -0
  34. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/distributed_compiler.py +0 -0
  35. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/injector.py +0 -0
  36. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/link_resolver.py +0 -0
  37. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/template_builder.py +0 -0
  38. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/config.py +0 -0
  39. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/__init__.py +0 -0
  40. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/conflict_detector.py +0 -0
  41. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/docker_args.py +0 -0
  42. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/operations.py +0 -0
  43. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/safe_installer.py +0 -0
  44. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/script_runner.py +0 -0
  45. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/token_manager.py +0 -0
  46. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/__init__.py +0 -0
  47. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/aggregator.py +0 -0
  48. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/apm_resolver.py +0 -0
  49. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/collection_parser.py +0 -0
  50. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/dependency_graph.py +0 -0
  51. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/github_downloader.py +0 -0
  52. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/lockfile.py +0 -0
  53. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/package_validator.py +0 -0
  54. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/plugin_parser.py +0 -0
  55. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/verifier.py +0 -0
  56. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/factory.py +0 -0
  57. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/__init__.py +0 -0
  58. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/agent_integrator.py +0 -0
  59. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/base_integrator.py +0 -0
  60. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/command_integrator.py +0 -0
  61. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/hook_integrator.py +0 -0
  62. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/instruction_integrator.py +0 -0
  63. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/mcp_integrator.py +0 -0
  64. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/prompt_integrator.py +0 -0
  65. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/skill_integrator.py +0 -0
  66. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/skill_transformer.py +0 -0
  67. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/utils.py +0 -0
  68. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/models/__init__.py +0 -0
  69. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/models/apm_package.py +0 -0
  70. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/models/plugin.py +0 -0
  71. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/output/__init__.py +0 -0
  72. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/output/formatters.py +0 -0
  73. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/output/models.py +0 -0
  74. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/output/script_formatters.py +0 -0
  75. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/primitives/__init__.py +0 -0
  76. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/primitives/discovery.py +0 -0
  77. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/primitives/models.py +0 -0
  78. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/primitives/parser.py +0 -0
  79. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/registry/__init__.py +0 -0
  80. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/registry/client.py +0 -0
  81. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/registry/integration.py +0 -0
  82. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/registry/operations.py +0 -0
  83. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/__init__.py +0 -0
  84. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/base.py +0 -0
  85. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/codex_runtime.py +0 -0
  86. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/copilot_runtime.py +0 -0
  87. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/factory.py +0 -0
  88. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/llm_runtime.py +0 -0
  89. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/manager.py +0 -0
  90. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/__init__.py +0 -0
  91. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/console.py +0 -0
  92. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/github_host.py +0 -0
  93. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/helpers.py +0 -0
  94. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/version_checker.py +0 -0
  95. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/version.py +0 -0
  96. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/workflow/__init__.py +0 -0
  97. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/workflow/discovery.py +0 -0
  98. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/workflow/parser.py +0 -0
  99. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/workflow/runner.py +0 -0
  100. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/SOURCES.txt +0 -0
  101. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/dependency_links.txt +0 -0
  102. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/entry_points.txt +0 -0
  103. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/requires.txt +0 -0
  104. {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/top_level.txt +0 -0
  105. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_apm_package_models.py +0 -0
  106. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_apm_resolver.py +0 -0
  107. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_codex_docker_args_fix.py +0 -0
  108. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_codex_empty_string_and_defaults.py +0 -0
  109. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_collision_integration.py +0 -0
  110. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_console.py +0 -0
  111. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_distributed_compilation.py +0 -0
  112. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_empty_string_and_defaults.py +0 -0
  113. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_enhanced_discovery.py +0 -0
  114. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_github_downloader.py +0 -0
  115. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_github_downloader_token_precedence.py +0 -0
  116. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_lockfile.py +0 -0
  117. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_runnable_prompts.py +0 -0
  118. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_runtime_manager_token_precedence.py +0 -0
  119. {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_virtual_package_multi_install.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apm-cli
3
- Version: 0.7.6
3
+ Version: 0.7.7
4
4
  Summary: MCP configuration tool
5
5
  Author-email: Daniel Meppiel <user@example.com>
6
6
  License: MIT License
@@ -208,7 +208,7 @@ git add . && git commit -m "Initial standards" && git push
208
208
 
209
209
  Anyone can now `apm install you/my-standards`.
210
210
 
211
- ## All Commands
211
+ ## Key Commands
212
212
 
213
213
  | Command | What it does |
214
214
  |---------|--------------|
@@ -217,8 +217,10 @@ Anyone can now `apm install you/my-standards`.
217
217
  | `apm init [name]` | Scaffold a new APM project or package |
218
218
  | `apm run <prompt>` | Execute a prompt workflow via AI runtime |
219
219
  | `apm uninstall <pkg>` | Remove a package from apm.yml and clean up its files |
220
+ | `apm pack` | Bundle resolved dependencies for offline distribution |
220
221
  | `apm deps list` | Show installed packages and versions |
221
- | `apm compile --target` | Target a specific agent (`vscode`, `claude`, `all`) |
222
+
223
+ → [Full CLI Reference](docs/cli-reference.md)
222
224
 
223
225
  ## Configuration
224
226
 
@@ -147,7 +147,7 @@ git add . && git commit -m "Initial standards" && git push
147
147
 
148
148
  Anyone can now `apm install you/my-standards`.
149
149
 
150
- ## All Commands
150
+ ## Key Commands
151
151
 
152
152
  | Command | What it does |
153
153
  |---------|--------------|
@@ -156,8 +156,10 @@ Anyone can now `apm install you/my-standards`.
156
156
  | `apm init [name]` | Scaffold a new APM project or package |
157
157
  | `apm run <prompt>` | Execute a prompt workflow via AI runtime |
158
158
  | `apm uninstall <pkg>` | Remove a package from apm.yml and clean up its files |
159
+ | `apm pack` | Bundle resolved dependencies for offline distribution |
159
160
  | `apm deps list` | Show installed packages and versions |
160
- | `apm compile --target` | Target a specific agent (`vscode`, `claude`, `all`) |
161
+
162
+ → [Full CLI Reference](docs/cli-reference.md)
161
163
 
162
164
  ## Configuration
163
165
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "apm-cli"
7
- version = "0.7.6"
7
+ version = "0.7.7"
8
8
  description = "MCP configuration tool"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -12,8 +12,9 @@ from ..core.target_detection import detect_target
12
12
  from .lockfile_enrichment import enrich_lockfile_for_pack
13
13
 
14
14
 
15
- # Target prefix mapping
15
+ # Target prefix mapping ("copilot" and "vscode" both map to .github/)
16
16
  _TARGET_PREFIXES = {
17
+ "copilot": [".github/"],
17
18
  "vscode": [".github/"],
18
19
  "claude": [".claude/"],
19
20
  "all": [".github/", ".claude/"],
@@ -3176,9 +3176,9 @@ def _watch_mode(output, chatmode, no_links, dry_run):
3176
3176
  @click.option(
3177
3177
  "--target",
3178
3178
  "-t",
3179
- type=click.Choice(["vscode", "agents", "claude", "all"]),
3179
+ type=click.Choice(["copilot", "vscode", "agents", "claude", "all"]),
3180
3180
  default=None,
3181
- help="Target platform: vscode/agents (AGENTS.md), claude (CLAUDE.md), or all. Auto-detects if not specified.",
3181
+ help="Target platform: copilot (AGENTS.md + .github/), claude (CLAUDE.md), or all. 'vscode' and 'agents' are aliases for 'copilot'. Auto-detects if not specified.",
3182
3182
  )
3183
3183
  @click.option(
3184
3184
  "--dry-run",
@@ -21,9 +21,9 @@ from ..utils.console import _rich_success, _rich_error, _rich_info, _rich_warnin
21
21
  @click.option(
22
22
  "--target",
23
23
  "-t",
24
- type=click.Choice(["vscode", "claude", "all"]),
24
+ type=click.Choice(["copilot", "vscode", "claude", "all"]),
25
25
  default=None,
26
- help="Filter files by target (default: auto-detect).",
26
+ help="Filter files by target (default: auto-detect). 'vscode' is an alias for 'copilot'.",
27
27
  )
28
28
  @click.option("--archive", is_flag=True, default=False, help="Produce a .tar.gz archive.")
29
29
  @click.option(
@@ -8,18 +8,24 @@ Detection priority (highest to lowest):
8
8
  1. Explicit --target flag (always wins)
9
9
  2. apm.yml target setting (top-level field)
10
10
  3. Auto-detect from existing folders:
11
- - .github/ exists AND .claude/ doesn't → vscode
11
+ - .github/ exists AND .claude/ doesn't → copilot (internal: "vscode")
12
12
  - .claude/ exists AND .github/ doesn't → claude
13
13
  - Both exist → all
14
14
  - Neither exists → minimal (AGENTS.md only, no folder integration)
15
+
16
+ "copilot" is the recommended user-facing target name. "vscode" and "agents"
17
+ are accepted as aliases and map to the same internal value.
15
18
  """
16
19
 
17
20
  from pathlib import Path
18
21
  from typing import Literal, Optional, Tuple
19
22
 
20
- # Valid target values
23
+ # Valid target values (internal canonical form)
21
24
  TargetType = Literal["vscode", "claude", "all", "minimal"]
22
25
 
26
+ # User-facing target values (includes aliases accepted by CLI)
27
+ UserTargetType = Literal["copilot", "vscode", "agents", "claude", "all", "minimal"]
28
+
23
29
 
24
30
  def detect_target(
25
31
  project_root: Path,
@@ -40,7 +46,7 @@ def detect_target(
40
46
  """
41
47
  # Priority 1: Explicit --target flag
42
48
  if explicit_target:
43
- if explicit_target in ("vscode", "agents"):
49
+ if explicit_target in ("copilot", "vscode", "agents"):
44
50
  return "vscode", "explicit --target flag"
45
51
  elif explicit_target == "claude":
46
52
  return "claude", "explicit --target flag"
@@ -49,7 +55,7 @@ def detect_target(
49
55
 
50
56
  # Priority 2: apm.yml target setting
51
57
  if config_target:
52
- if config_target in ("vscode", "agents"):
58
+ if config_target in ("copilot", "vscode", "agents"):
53
59
  return "vscode", "apm.yml target"
54
60
  elif config_target == "claude":
55
61
  return "claude", "apm.yml target"
@@ -122,19 +128,23 @@ def should_compile_claude_md(target: TargetType) -> bool:
122
128
  return target in ("claude", "all")
123
129
 
124
130
 
125
- def get_target_description(target: TargetType) -> str:
131
+ def get_target_description(target: UserTargetType) -> str:
126
132
  """Get a human-readable description of what will be generated for a target.
127
133
 
134
+ Accepts both internal target types and user-facing aliases.
135
+
128
136
  Args:
129
- target: The target type
137
+ target: The target type (internal or user-facing alias)
130
138
 
131
139
  Returns:
132
140
  str: Description of output files
133
141
  """
142
+ # Normalize aliases to internal value for lookup
143
+ normalized = "vscode" if target in ("copilot", "agents") else target
134
144
  descriptions = {
135
145
  "vscode": "AGENTS.md + .github/prompts/ + .github/agents/",
136
146
  "claude": "CLAUDE.md + .claude/commands/ + .claude/agents/ + .claude/skills/",
137
147
  "all": "AGENTS.md + CLAUDE.md + .github/ + .claude/",
138
148
  "minimal": "AGENTS.md only (create .github/ or .claude/ for full integration)",
139
149
  }
140
- return descriptions.get(target, "unknown target")
150
+ return descriptions.get(normalized, "unknown target")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apm-cli
3
- Version: 0.7.6
3
+ Version: 0.7.7
4
4
  Summary: MCP configuration tool
5
5
  Author-email: Daniel Meppiel <user@example.com>
6
6
  License: MIT License
@@ -208,7 +208,7 @@ git add . && git commit -m "Initial standards" && git push
208
208
 
209
209
  Anyone can now `apm install you/my-standards`.
210
210
 
211
- ## All Commands
211
+ ## Key Commands
212
212
 
213
213
  | Command | What it does |
214
214
  |---------|--------------|
@@ -217,8 +217,10 @@ Anyone can now `apm install you/my-standards`.
217
217
  | `apm init [name]` | Scaffold a new APM project or package |
218
218
  | `apm run <prompt>` | Execute a prompt workflow via AI runtime |
219
219
  | `apm uninstall <pkg>` | Remove a package from apm.yml and clean up its files |
220
+ | `apm pack` | Bundle resolved dependencies for offline distribution |
220
221
  | `apm deps list` | Show installed packages and versions |
221
- | `apm compile --target` | Target a specific agent (`vscode`, `claude`, `all`) |
222
+
223
+ → [Full CLI Reference](docs/cli-reference.md)
222
224
 
223
225
  ## Configuration
224
226
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes