pactkit-opencode 2.6.0__tar.gz → 2.7.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.
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/PKG-INFO +2 -2
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/pyproject.toml +2 -2
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/PKG-INFO +2 -2
- pactkit_opencode-2.7.0/src/pactkit_opencode.egg-info/requires.txt +1 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story069_opencode_format.py +7 -2
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story070_opencode_compliance.py +6 -4
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story073_command_model_routing.py +3 -2
- pactkit_opencode-2.6.0/src/pactkit_opencode.egg-info/requires.txt +0 -1
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/setup.cfg +0 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode/__init__.py +0 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode/deployer.py +0 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/SOURCES.txt +0 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/dependency_links.txt +0 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/entry_points.txt +0 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/top_level.txt +0 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_bug035_opencode_dual_layer.py +0 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_deploy_opencode_parity.py +0 -0
- {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story071_opencode_config_parity.py +0 -0
|
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pactkit-opencode"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.7.0"
|
|
8
8
|
description = "PactKit adapter for OpenCode IDE"
|
|
9
9
|
requires-python = ">=3.10"
|
|
10
10
|
license = "MIT"
|
|
11
11
|
dependencies = [
|
|
12
|
-
"pactkit>=2.
|
|
12
|
+
"pactkit>=2.7.0",
|
|
13
13
|
]
|
|
14
14
|
|
|
15
15
|
[project.entry-points."pactkit.deployers"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pactkit>=2.7.0
|
|
@@ -10,6 +10,10 @@ from pactkit.config import VALID_AGENTS, VALID_COMMANDS, VALID_FORMATS, VALID_SK
|
|
|
10
10
|
from pactkit.generators.deployer import deploy
|
|
11
11
|
from pactkit_opencode.deployer import OpenCodeDeployer
|
|
12
12
|
|
|
13
|
+
# In pactkit 2.7.0, commands deploy as skills to skills/{name}/SKILL.md in classic format.
|
|
14
|
+
# For OpenCode format, only embedded (non-command) skills go to skills/.
|
|
15
|
+
_EMBEDDED_SKILLS = VALID_SKILLS - VALID_COMMANDS
|
|
16
|
+
|
|
13
17
|
# ===========================================================================
|
|
14
18
|
# R1: New --format opencode deployment mode
|
|
15
19
|
# ===========================================================================
|
|
@@ -78,12 +82,13 @@ class TestR2GlobalDeployment:
|
|
|
78
82
|
assert deployed == VALID_COMMANDS
|
|
79
83
|
|
|
80
84
|
def test_all_skills_deployed(self, tmp_path):
|
|
81
|
-
"""All skills are deployed.
|
|
85
|
+
"""All embedded skills are deployed to skills/. (pactkit 2.7.0: commands deploy
|
|
86
|
+
to commands/{name}.md in opencode format, not skills/.)"""
|
|
82
87
|
out = tmp_path / "opencode"
|
|
83
88
|
deploy(format="opencode", target=str(out))
|
|
84
89
|
skills_dir = out / "skills"
|
|
85
90
|
deployed = {d.name for d in skills_dir.iterdir() if d.is_dir()}
|
|
86
|
-
assert deployed ==
|
|
91
|
+
assert deployed == _EMBEDDED_SKILLS
|
|
87
92
|
|
|
88
93
|
|
|
89
94
|
# ===========================================================================
|
{pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story070_opencode_compliance.py
RENAMED
|
@@ -67,10 +67,11 @@ class TestAC1CommandFrontmatter:
|
|
|
67
67
|
assert "# Command: Plan" in content
|
|
68
68
|
|
|
69
69
|
def test_classic_format_unchanged(self, tmp_path):
|
|
70
|
-
"""Classic format still uses allowed-tools (not converted).
|
|
70
|
+
"""Classic format still uses allowed-tools (not converted).
|
|
71
|
+
pactkit 2.7.0: commands deploy to skills/{name}/SKILL.md in classic format."""
|
|
71
72
|
out = tmp_path / "classic"
|
|
72
73
|
deploy(format="classic", target=str(out))
|
|
73
|
-
content = (out / "
|
|
74
|
+
content = (out / "skills" / "project-plan" / "SKILL.md").read_text()
|
|
74
75
|
parts = content.split("---", 2)
|
|
75
76
|
frontmatter = parts[1]
|
|
76
77
|
assert "allowed-tools" in frontmatter
|
|
@@ -238,10 +239,11 @@ class TestAC6ClassicRegression:
|
|
|
238
239
|
assert "name: senior-developer" in content
|
|
239
240
|
|
|
240
241
|
def test_classic_commands_have_allowed_tools(self, tmp_path):
|
|
241
|
-
"""Classic commands still have allowed-tools.
|
|
242
|
+
"""Classic commands still have allowed-tools.
|
|
243
|
+
pactkit 2.7.0: commands deploy to skills/{name}/SKILL.md in classic format."""
|
|
242
244
|
out = tmp_path / "classic"
|
|
243
245
|
deploy(format="classic", target=str(out))
|
|
244
|
-
content = (out / "
|
|
246
|
+
content = (out / "skills" / "project-act" / "SKILL.md").read_text()
|
|
245
247
|
assert "allowed-tools" in content
|
|
246
248
|
|
|
247
249
|
def test_classic_agents_have_simple_tools(self, tmp_path):
|
{pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story073_command_model_routing.py
RENAMED
|
@@ -109,10 +109,11 @@ class TestAC3ClassicNoModel:
|
|
|
109
109
|
"""AC3: Classic format commands never have model: field."""
|
|
110
110
|
|
|
111
111
|
def test_classic_no_model(self, tmp_path):
|
|
112
|
-
"""Classic project-act.md has no model: field.
|
|
112
|
+
"""Classic project-act SKILL.md has no model: field.
|
|
113
|
+
pactkit 2.7.0: commands deploy to skills/{name}/SKILL.md in classic format."""
|
|
113
114
|
out = tmp_path / "classic"
|
|
114
115
|
deploy(format="classic", target=str(out))
|
|
115
|
-
content = (out / "
|
|
116
|
+
content = (out / "skills" / "project-act" / "SKILL.md").read_text()
|
|
116
117
|
parts = content.split("---", 2)
|
|
117
118
|
frontmatter = parts[1]
|
|
118
119
|
for line in frontmatter.strip().split("\n"):
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
pactkit>=2.6.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story071_opencode_config_parity.py
RENAMED
|
File without changes
|