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.
- {apm_cli-0.7.6/src/apm_cli.egg-info → apm_cli-0.7.7}/PKG-INFO +5 -3
- {apm_cli-0.7.6 → apm_cli-0.7.7}/README.md +4 -2
- {apm_cli-0.7.6 → apm_cli-0.7.7}/pyproject.toml +1 -1
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/bundle/packer.py +2 -1
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/cli.py +2 -2
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/commands/pack.py +2 -2
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/target_detection.py +17 -7
- {apm_cli-0.7.6 → apm_cli-0.7.7/src/apm_cli.egg-info}/PKG-INFO +5 -3
- {apm_cli-0.7.6 → apm_cli-0.7.7}/AUTHORS +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/LICENSE +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/setup.cfg +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/base.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/codex.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/copilot.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/client/vscode.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/package_manager/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/package_manager/base.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/adapters/package_manager/default_manager.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/bundle/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/bundle/lockfile_enrichment.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/bundle/unpacker.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/commands/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/commands/deps.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/agents_compiler.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/claude_formatter.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/constants.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/constitution.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/constitution_block.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/context_optimizer.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/distributed_compiler.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/injector.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/link_resolver.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/compilation/template_builder.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/config.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/conflict_detector.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/docker_args.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/operations.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/safe_installer.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/script_runner.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/core/token_manager.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/aggregator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/apm_resolver.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/collection_parser.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/dependency_graph.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/github_downloader.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/lockfile.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/package_validator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/plugin_parser.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/deps/verifier.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/factory.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/agent_integrator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/base_integrator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/command_integrator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/hook_integrator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/instruction_integrator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/mcp_integrator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/prompt_integrator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/skill_integrator.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/skill_transformer.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/integration/utils.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/models/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/models/apm_package.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/models/plugin.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/output/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/output/formatters.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/output/models.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/output/script_formatters.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/primitives/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/primitives/discovery.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/primitives/models.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/primitives/parser.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/registry/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/registry/client.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/registry/integration.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/registry/operations.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/base.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/codex_runtime.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/copilot_runtime.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/factory.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/llm_runtime.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/runtime/manager.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/console.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/github_host.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/helpers.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/utils/version_checker.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/version.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/workflow/__init__.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/workflow/discovery.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/workflow/parser.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli/workflow/runner.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/SOURCES.txt +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/dependency_links.txt +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/entry_points.txt +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/requires.txt +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/src/apm_cli.egg-info/top_level.txt +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_apm_package_models.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_apm_resolver.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_codex_docker_args_fix.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_codex_empty_string_and_defaults.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_collision_integration.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_console.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_distributed_compilation.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_empty_string_and_defaults.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_enhanced_discovery.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_github_downloader.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_github_downloader_token_precedence.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_lockfile.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_runnable_prompts.py +0 -0
- {apm_cli-0.7.6 → apm_cli-0.7.7}/tests/test_runtime_manager_token_precedence.py +0 -0
- {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.
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
161
|
+
|
|
162
|
+
→ [Full CLI Reference](docs/cli-reference.md)
|
|
161
163
|
|
|
162
164
|
## Configuration
|
|
163
165
|
|
|
@@ -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:
|
|
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:
|
|
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(
|
|
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.
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|