(plugin: PluginSource, skill: SkillSource)
| 152 | |
| 153 | |
| 154 | def _opencode_skill_id(plugin: PluginSource, skill: SkillSource) -> str: |
| 155 | skill_id = f"{plugin.name}-{skill.name}" |
| 156 | if len(skill_id) > _OPENCODE_SKILL_NAME_MAX: |
| 157 | raise ValueError( |
| 158 | f"OpenCode skill id `{skill_id}` is {len(skill_id)} chars; " |
| 159 | f"limit is {_OPENCODE_SKILL_NAME_MAX}" |
| 160 | ) |
| 161 | if not _OPENCODE_SKILL_NAME_RE.fullmatch(skill_id): |
| 162 | raise ValueError( |
| 163 | f"OpenCode skill id `{skill_id}` must match {_OPENCODE_SKILL_NAME_RE.pattern}" |
| 164 | ) |
| 165 | return skill_id |
| 166 | |
| 167 | |
| 168 | class OpenCodeAdapter(HarnessAdapter): |
no outgoing calls