first
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
"""ASF Worker job handlers — pluggable async handlers called from the generic consumer loop.
|
||||
|
||||
New capabilities are registered in ``REGISTRY`` below: mapping of ``job_type`` string
|
||||
to a ``JobHandlerFn``. The worker will route incoming messages by matching
|
||||
``JobRequestEnvelope.job_type`` against keys in ``REGISTRY``.
|
||||
|
||||
Currently stubbed; individual handler modules are added incrementally as features
|
||||
are plugged in (see bootstrap prompt §16).
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from asf_events.base import JobRequestEnvelope
|
||||
|
||||
from ..handlers import HandlerResult, WorkerDependencies
|
||||
from ..worker import JobHandlerFn
|
||||
|
||||
REGISTRY: dict[str, JobHandlerFn] = {
|
||||
# "ai.analyze_code": run_analyze_code,
|
||||
# "ai.generate_tests": run_generate_tests,
|
||||
# "ai.decompose_requirements": run_decompose_requirements,
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
"""AI-related job handlers stubbed out for smoke import.
|
||||
|
||||
Actual execution routes through asf-ai.AIGateway once it is wired. The handler
|
||||
below produces a stable HandlerResult.ok(...) carrying a placeholder payload so
|
||||
that consumer-loop smoke tests do not need a live LLM.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from asf_events.base import JobRequestEnvelope
|
||||
|
||||
from ..handlers import HandlerResult
|
||||
from ..worker import WorkerDependencies
|
||||
|
||||
|
||||
async def run_ai_job(req: JobRequestEnvelope, deps: WorkerDependencies) -> HandlerResult:
|
||||
del deps
|
||||
payload = req.payload or {}
|
||||
handler = payload.get("handler") if isinstance(payload, dict) else None
|
||||
return HandlerResult.ok(job_id=req.job_id, output={"handler": handler or "ai.stub", "status": "ok"})
|
||||
Reference in New Issue
Block a user