Tasks: US3 - List All Tools and Their Init Status¶
Feature Branch: 025-tool-init-endpoints
User Story: US3 (P2) - List All Tools and Their Init Status
Date: 2026-03-24
Dependencies¶
US1 foundational work MUST be complete before starting US3. Specifically: -
ToolInfoResponse,ToolListResponseresponse models insrc/holodeck/serve/models.py-ToolInitManagerclass insrc/holodeck/serve/tool_init_manager.py- Tool init router registered insrc/holodeck/serve/server.py-InitJobStateenum insrc/holodeck/serve/models.py
Tasks¶
- T001 [US3] Add parameterless
get_all_tool_statuses() -> list[ToolInfoResponse]method toToolInitManagerinsrc/holodeck/serve/tool_init_manager.py. Iteratesself._agent.toolsinternally, derivessupports_init = type in ("vectorstore", "hierarchical_document")for each tool, and cross-referencesself._jobsforinit_status. Returnsinit_status: nullwhen noInitJobexists for a tool (per data-model.md and openapi.yaml — NOT the spec'snot_started). ImportToolInfoResponsefromholodeck.serve.models. - T002 [P] [US3] Add
GET /toolsroute handler insrc/holodeck/serve/tool_init_routes.py. AccessToolInitManagerviarequest.app.state.tool_init_manager(same DI pattern as US1/US2 handlers). Callmanager.get_all_tool_statuses()and returnToolListResponse(tools=statuses, total=len(statuses))with 200 OK. Ensure thetotalfield is set to the length of the tools list. - T003 [P] [US3] Run
make format && make lint-fixto format and lint all modified files insrc/holodeck/serve/. - T004 [US3] Run
make type-checkand fix any MyPy errors insrc/holodeck/serve/tool_init_manager.pyandsrc/holodeck/serve/tool_init_routes.py. - T005 [US3] Run
make testto verify no regressions across the entire codebase.