66 """Attach registry-native queue subcommands."""
68 queue_parser.set_defaults(handler=_cmd_queue_group, queue_parser=queue_parser)
69 subcommands = queue_parser.add_subparsers(dest=
"queue_command")
71 enqueue = subcommands.add_parser(
"enqueue", help=
"Emit queue.enqueue")
73 enqueue.add_argument(
"plan_id")
74 enqueue.add_argument(
"--slot", required=
True)
75 enqueue.add_argument(
"--position", required=
True, type=int)
81 "promoted_from_partial",
82 "restored_from_aborted_round",
85 enqueue.set_defaults(handler=_cmd_enqueue)
87 move = subcommands.add_parser(
"move", help=
"Emit queue.move")
89 move.add_argument(
"plan_id")
90 move.add_argument(
"--from-slot", required=
True)
91 move.add_argument(
"--to-slot", required=
True)
92 move.add_argument(
"--from-position", required=
True, type=int)
93 move.add_argument(
"--to-position", required=
True, type=int)
94 move.add_argument(
"--reason", required=
True)
95 move.set_defaults(handler=_cmd_move)
97 dequeue = subcommands.add_parser(
"dequeue", help=
"Emit queue.dequeue")
99 dequeue.add_argument(
"plan_id")
100 dequeue.add_argument(
"--slot", required=
True)
101 dequeue.add_argument(
"--position", required=
True, type=int)
102 dequeue.add_argument(
106 "transition_to_failed",
107 "transition_to_integrating",
111 dequeue.set_defaults(handler=_cmd_dequeue)
113 complete = subcommands.add_parser(
"complete", help=
"Emit queue.complete")
115 complete.add_argument(
"plan_id")
116 complete.add_argument(
"--round-no", required=
True, type=int)
117 complete.add_argument(
"--merge-commit-sha", required=
True)
118 complete.set_defaults(handler=_cmd_complete)
120 history = subcommands.add_parser(
"history", help=
"Show queue history")
121 history.add_argument(
"plan_id")
122 history.add_argument(
"--registry", help=
"Registry SQLite path.")
123 history.add_argument(
"--json", action=
"store_true")
124 history.set_defaults(handler=_cmd_history)
152 lambda registry, actor_slot: queue_move(
154 plan_id=args.plan_id,
155 from_slot=args.from_slot,
156 to_slot=args.to_slot,
157 from_position=args.from_position,
158 to_position=args.to_position,
160 actor_slot=actor_slot,
161 actor_type=
"human_operator",
162 command=
"queue move",
199 registry, _backend =
_registry(args.registry)
200 events = queue_history(registry, args.plan_id)
202 print(json.dumps([event.__dict__
for event
in events], indent=2, sort_keys=
True))
206 f
"{event.state_version}: {event.operation_type} "
207 f
"{dict(event.payload)}"
213 args: argparse.Namespace,
214 emit: Callable[[Registry, str], object],
216 registry, backend =
_registry(args.registry)
217 actor_slot = args.actor_slot
or backend.active_operator_slot()
218 if actor_slot
is None:
219 print(
"no active operator slot found")
221 row = emit(registry, actor_slot)
222 print(f
"operation {getattr(row, 'id')} state_version={getattr(row, 'state_version')}")