This commit is contained in:
valenti
2026-09-08 07:21:34 -04:00
commit a4b224da8e
169 changed files with 27483 additions and 0 deletions
+22
View File
@@ -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,
}
+20
View File
@@ -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"})