ai-forge-cli 0.1.2__tar.gz → 0.1.3__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.
- {ai_forge_cli-0.1.2/src/ai_forge_cli.egg-info → ai_forge_cli-0.1.3}/PKG-INFO +1 -1
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/pyproject.toml +1 -1
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3/src/ai_forge_cli.egg-info}/PKG-INFO +1 -1
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/__init__.py +1 -1
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/commands/init.py +1 -1
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/forge.py +1 -1
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/tests/test_cli.py +17 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/tests/test_init.py +15 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/LICENSE +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/README.md +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/setup.cfg +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/ai_forge_cli.egg-info/SOURCES.txt +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/ai_forge_cli.egg-info/dependency_links.txt +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/ai_forge_cli.egg-info/entry_points.txt +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/ai_forge_cli.egg-info/requires.txt +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/ai_forge_cli.egg-info/top_level.txt +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/__main__.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/bundle.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/commands/__init__.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/commands/base.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/commands/context.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/commands/find.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/commands/inspect.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/commands/list_cmd.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/commands/update.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/common.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/index.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/src/cli/walker.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/tests/test_find.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/tests/test_index.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/tests/test_update.py +0 -0
- {ai_forge_cli-0.1.2 → ai_forge_cli-0.1.3}/tests/test_walker.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""Forge CLI — context walker for the L0-L5 spec system."""
|
|
2
|
-
__version__ = "0.1.
|
|
2
|
+
__version__ = "0.1.3"
|
|
@@ -158,7 +158,7 @@ _FORGE_GITHUB_ARCHIVE = "https://codeload.github.com/GreyFlames07/forge/tar.gz/r
|
|
|
158
158
|
|
|
159
159
|
def _installed_cli_version() -> str | None:
|
|
160
160
|
"""Return the installed distribution version for this CLI."""
|
|
161
|
-
for dist_name in ("forge-ai-cli", "forge-cli"):
|
|
161
|
+
for dist_name in ("ai-forge-cli", "forge-ai-cli", "forge-cli"):
|
|
162
162
|
try:
|
|
163
163
|
return metadata.version(dist_name)
|
|
164
164
|
except metadata.PackageNotFoundError:
|
|
@@ -17,7 +17,7 @@ from cli.commands import ALL_COMMANDS
|
|
|
17
17
|
|
|
18
18
|
def _version_string() -> str:
|
|
19
19
|
"""Return the installed forge-cli package version."""
|
|
20
|
-
for dist_name in ("forge-ai-cli", "forge-cli"):
|
|
20
|
+
for dist_name in ("ai-forge-cli", "forge-ai-cli", "forge-cli"):
|
|
21
21
|
try:
|
|
22
22
|
return metadata.version(dist_name)
|
|
23
23
|
except metadata.PackageNotFoundError:
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
import io
|
|
4
4
|
import sys
|
|
5
5
|
from contextlib import redirect_stderr, redirect_stdout
|
|
6
|
+
from importlib import metadata
|
|
6
7
|
from pathlib import Path
|
|
7
8
|
|
|
8
9
|
import pytest
|
|
9
10
|
|
|
11
|
+
from cli import forge as forge_mod
|
|
10
12
|
from cli.forge import main
|
|
11
13
|
|
|
12
14
|
EXAMPLE = str(Path(__file__).resolve().parent.parent / "src" / "example")
|
|
@@ -28,6 +30,21 @@ def test_version_flag_prints_version_and_exits_0():
|
|
|
28
30
|
assert err.getvalue() == ""
|
|
29
31
|
|
|
30
32
|
|
|
33
|
+
def test_version_string_prefers_ai_forge_cli_distribution(monkeypatch):
|
|
34
|
+
versions = {
|
|
35
|
+
"ai-forge-cli": "0.1.3",
|
|
36
|
+
"forge-ai-cli": "0.1.1",
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
def fake_version(name: str) -> str:
|
|
40
|
+
if name in versions:
|
|
41
|
+
return versions[name]
|
|
42
|
+
raise metadata.PackageNotFoundError
|
|
43
|
+
|
|
44
|
+
monkeypatch.setattr(forge_mod.metadata, "version", fake_version)
|
|
45
|
+
assert forge_mod._version_string() == "0.1.3"
|
|
46
|
+
|
|
47
|
+
|
|
31
48
|
# ---------- context ----------
|
|
32
49
|
|
|
33
50
|
def test_context_success_rc0_for_fully_resolved_module():
|
|
@@ -139,3 +139,18 @@ def test_resolve_forge_sources_uses_cached_repo_when_local_skills_missing(monkey
|
|
|
139
139
|
repo, skills = init_cmd._resolve_forge_sources()
|
|
140
140
|
assert repo == cached_repo
|
|
141
141
|
assert skills == cached_skills
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def test_installed_cli_version_prefers_ai_forge_cli_distribution(monkeypatch):
|
|
145
|
+
versions = {
|
|
146
|
+
"ai-forge-cli": "0.1.3",
|
|
147
|
+
"forge-ai-cli": "0.1.1",
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
def fake_version(name: str) -> str:
|
|
151
|
+
if name in versions:
|
|
152
|
+
return versions[name]
|
|
153
|
+
raise init_cmd.metadata.PackageNotFoundError
|
|
154
|
+
|
|
155
|
+
monkeypatch.setattr(init_cmd.metadata, "version", fake_version)
|
|
156
|
+
assert init_cmd._installed_cli_version() == "0.1.3"
|
|
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
|