feat(handoffs): publish owner task interfaces

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a023c0-a0a3-7c03-b395-5a0d2757214d
This commit is contained in:
tegwick 2026-08-22 14:15:48 +02:00
parent a3952113d5
commit 890f3b05b5
12 changed files with 754 additions and 38 deletions

View file

@ -382,6 +382,21 @@ def main(argv: list[str] | None = None) -> int:
p_workload_resolve.add_argument("--name", required=True)
p_workload_resolve.add_argument("--deployable", default=None)
p_owner_interface = sub.add_parser(
"owner-interface",
help="Inspect validated owner-consumable task interfaces",
)
owner_interface_sub = p_owner_interface.add_subparsers(dest="owner_interface_command")
p_owner_interface_validate = owner_interface_sub.add_parser(
"validate", help="Validate and return owner task interfaces"
)
p_owner_interface_validate.add_argument(
"--path", default="interfaces", help="One interface YAML or an interface directory"
)
p_owner_interface_validate.add_argument(
"--owner", default=None, help="Return interfaces for this target repo or owner agent"
)
args = parser.parse_args(argv)
if args.version or args.command in (None, "version"):
@ -847,6 +862,16 @@ def main(argv: list[str] | None = None) -> int:
print(json.dumps(result, indent=2))
return 0 if result.get("ok") else 1
if args.command == "owner-interface":
if not args.owner_interface_command:
p_owner_interface.print_help()
return 2
from repo_manager.owner_interfaces import validate_owner_interfaces
result = validate_owner_interfaces(Path(args.path), owner=args.owner)
print(json.dumps(result, indent=2))
return 0 if result.get("ok") else 1
parser.print_help()
return 0