mirror of
https://github.com/github/spec-kit.git
synced 2026-08-15 14:02:04 +02:00
* fix(integrations): declare OmpIntegration multi_install_safe OmpIntegration is a plain MarkdownIntegration whose files live only under its isolated, static root .omp/commands/, disjoint from every other integration. But it never declared multi_install_safe, so it inherited the IntegrationBase default False — leaving `specify integration status` in a permanent unsafe-multi-install ERROR state whenever omp is co-installed alongside another agent, with no acknowledgment path. Add `multi_install_safe = True`, mirroring the isolated MarkdownIntegration cohort (qwen, shai, qodercli, junie, kilocode) and the kiro-cli #3471 fix. The parametrized registry isolation contracts auto-include omp once the flag is set and pass (.omp/commands is isolated and its manifest disjoint). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(integrations): list omp in the multi-install-safe reference table Declaring OmpIntegration multi_install_safe means the reference table in docs/reference/integrations.md (which states it lists all currently declared multi-install-safe integrations) should include it. Add the alphabetized omp row with its .omp/commands isolation path. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
"""Oh My Pi (omp) coding agent integration."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from ..base import MarkdownIntegration
|
|
|
|
|
|
class OmpIntegration(MarkdownIntegration):
|
|
key = "omp"
|
|
config = {
|
|
"name": "Oh My Pi",
|
|
"folder": ".omp/",
|
|
"commands_subdir": "commands",
|
|
"install_url": "https://www.npmjs.com/package/@oh-my-pi/pi-coding-agent",
|
|
"requires_cli": True,
|
|
}
|
|
registrar_config = {
|
|
"dir": ".omp/commands",
|
|
"format": "markdown",
|
|
"args": "$ARGUMENTS",
|
|
"extension": ".md",
|
|
}
|
|
multi_install_safe = True
|
|
|
|
def build_exec_args(
|
|
self,
|
|
prompt: str,
|
|
*,
|
|
model: str | None = None,
|
|
output_json: bool = True,
|
|
) -> list[str] | None:
|
|
# Diverges from MarkdownIntegration.build_exec_args because OMP's
|
|
# CLI parser treats `-p`/`--print` as a boolean (one-shot mode) and
|
|
# consumes the prompt as a positional argument — see args.ts in
|
|
# can1357/oh-my-pi. JSON output is selected via `--mode json`.
|
|
if not self.config or not self.config.get("requires_cli"):
|
|
return None
|
|
args = [self._resolve_executable(), "--print"]
|
|
self._apply_extra_args_env_var(args)
|
|
if model:
|
|
args.extend(["--model", model])
|
|
if output_json:
|
|
args.extend(["--mode", "json"])
|
|
args.append(prompt)
|
|
return args
|