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.
Files changed (18) hide show
  1. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/PKG-INFO +2 -2
  2. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/pyproject.toml +2 -2
  3. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/PKG-INFO +2 -2
  4. pactkit_opencode-2.7.0/src/pactkit_opencode.egg-info/requires.txt +1 -0
  5. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story069_opencode_format.py +7 -2
  6. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story070_opencode_compliance.py +6 -4
  7. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story073_command_model_routing.py +3 -2
  8. pactkit_opencode-2.6.0/src/pactkit_opencode.egg-info/requires.txt +0 -1
  9. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/setup.cfg +0 -0
  10. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode/__init__.py +0 -0
  11. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode/deployer.py +0 -0
  12. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/SOURCES.txt +0 -0
  13. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/dependency_links.txt +0 -0
  14. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/entry_points.txt +0 -0
  15. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/src/pactkit_opencode.egg-info/top_level.txt +0 -0
  16. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_bug035_opencode_dual_layer.py +0 -0
  17. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_deploy_opencode_parity.py +0 -0
  18. {pactkit_opencode-2.6.0 → pactkit_opencode-2.7.0}/tests/test_story071_opencode_config_parity.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pactkit-opencode
3
- Version: 2.6.0
3
+ Version: 2.7.0
4
4
  Summary: PactKit adapter for OpenCode IDE
5
5
  License-Expression: MIT
6
6
  Requires-Python: >=3.10
7
- Requires-Dist: pactkit>=2.6.0
7
+ Requires-Dist: pactkit>=2.7.0
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pactkit-opencode"
7
- version = "2.6.0"
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.6.0",
12
+ "pactkit>=2.7.0",
13
13
  ]
14
14
 
15
15
  [project.entry-points."pactkit.deployers"]
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pactkit-opencode
3
- Version: 2.6.0
3
+ Version: 2.7.0
4
4
  Summary: PactKit adapter for OpenCode IDE
5
5
  License-Expression: MIT
6
6
  Requires-Python: >=3.10
7
- Requires-Dist: pactkit>=2.6.0
7
+ Requires-Dist: 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 == VALID_SKILLS
91
+ assert deployed == _EMBEDDED_SKILLS
87
92
 
88
93
 
89
94
  # ===========================================================================
@@ -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 / "commands" / "project-plan.md").read_text()
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 / "commands" / "project-act.md").read_text()
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):
@@ -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 / "commands" / "project-act.md").read_text()
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