Files
llm-connect/workplans/llm-connect-WP-0003-functional-extensions.md
tegwick a27945101c
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
Adaptive routing initial version
2026-05-18 11:38:12 +02:00

4.7 KiB

id, type, title, domain, status, owner, created, repo, planning_priority, planning_order, state_hub_workstream_id
id type title domain status owner created repo planning_priority planning_order state_hub_workstream_id
LLM-WP-0003 workplan llm-connect — Functional Extensions (FR-2 RoutingPolicy + FR-1 HTTP server) custodian completed llm-connect 2026-04-01 llm-connect high 3 7b463cdc-40a2-4cc5-8b55-b59cc5ae3443

LLM-WP-0003 — Functional Extensions (FR-2 + FR-1)

status: completed owner: llm-connect
repo: llm-connect
created: 2026-04-01
depends-on: LLM-WP-0001 (test infrastructure must exist)

Purpose

Implement the two IHF feature requests that add new Functional-layer modules. Neither touches Core. Both can be developed independently of WP-0002.

Origin: IHUB-WP-0012 Phase 11 — Advanced AI Federation (completed 2026-04-01).

GAAF notes

Both additions are Functional-layer under GAAF-2026:

  • Demand signal is explicit: IHF (inter-hub) is the primary consumer for both.
  • Each gets its own functional contract doc in /contracts/functional/.
  • Maturity on release: Beta (single known consumer, interface not yet stabilised).

Tasks

id: T01
title: 'RoutingPolicy data model: rules list with task_type, prefer, max_cost_per_1k, fallback'
priority: high
status: done
state_hub_task_id: "85cf92fd-cddd-4e19-8782-970f6480a37f"
id: T02
title: 'policy.resolve(task_type) returns configured LLMAdapter'
priority: high
status: done
state_hub_task_id: "352701ce-4b21-4f5d-a22e-462136e58fd2"
id: T03
title: 'Export RoutingPolicy from llm_connect.__init__ and update __all__'
priority: medium
status: done
state_hub_task_id: "baeb9b39-7fee-4f2b-86cc-ce64ff9e9b95"
id: T04
title: 'Functional contract doc for RoutingPolicy'
priority: medium
status: done
state_hub_task_id: "aa4488c6-950e-4cea-99b1-89defa4677ce"
id: T05
title: 'Tests: rule match, cost-cap fallback, unknown task_type fallback, no-match default'
priority: high
status: done
state_hub_task_id: "a4ad9c9e-64a4-44f0-85f3-b9cfe9ef59f7"
id: T06
title: 'Design /execute JSON schema (request: provider, model, prompt, config; response: LLMResponse)'
priority: high
status: done
state_hub_task_id: "cf79bce2-8d1a-4708-90b2-5e6569908b14"
id: T07
title: 'Implement llm_connect/server.py: POST /execute, GET /health'
priority: high
status: done
state_hub_task_id: "c91964ab-7366-4b34-acd4-1ee12f96881e"
id: T08
title: 'python -m llm_connect.server --port N --provider X --model Y CLI entry point'
priority: high
status: done
state_hub_task_id: "e3115bb4-cf3b-4ca0-9992-136e317068ac"
id: T09
title: 'Add server optional dep (httpx or aiohttp) to pyproject.toml'
priority: medium
status: done
state_hub_task_id: "2caf5531-8e10-40e9-a595-8652882a10e0"
id: T10
title: 'Functional contract doc: HTTP API schema (request/response shapes, error codes)'
priority: medium
status: done
state_hub_task_id: "dc3c81c2-698d-4fee-b1dd-1af156a4276f"
id: T11
title: 'Tests: server POST round-trip (MockAdapter), GET /health, error responses'
priority: high
status: done
state_hub_task_id: "848a1622-abdd-4938-8bb4-3da27f5f9867"

FR-2 — RoutingPolicy

ID Title Priority Status
T01 RoutingPolicy data model: rules list with task_type, prefer, max_cost_per_1k, fallback high done
T02 policy.resolve(task_type) → returns configured LLMAdapter high done
T03 Export from llm_connect.__init__ and update __all__ medium done
T04 Functional contract doc for RoutingPolicy medium done
T05 Tests: rule match, cost-cap fallback, unknown task_type fallback, no-match default high done

FR-1 — HTTP serve mode

ID Title Priority Status
T06 Design /execute JSON schema (request: provider, model, prompt, config; response: LLMResponse fields) high done
T07 Implement llm_connect/server.py — minimal HTTP server, POST /execute, GET /health high done
T08 python -m llm_connect.server --port N --provider X --model Y CLI entry point high done
T09 Add httpx or aiohttp server dep under [project.optional-dependencies] server medium done
T10 Functional contract doc (API schema — request/response shapes, error codes) medium done
T11 Tests: spin up server in subprocess or via TestClient, POST round-trip (MockAdapter), error responses high done

Exit criteria

  • RoutingPolicy.resolve("triage") returns the correct adapter per rules in tests
  • python -m llm_connect.server --port 9999 starts and responds to POST /execute
  • GET /health returns 200
  • All functional contract docs present in /contracts/functional/