Skip to content

Phase 5b: core/router #15

@cjimti

Description

@cjimti

Part of #1 and #6 (project bootstrap, v0.1, phase 5 split). Blocked by 5a.

Deliverables

core/router/

  • Router interface — Narrow(ctx, userMessage, *mcp.Catalog) ([]mcp.Tool, error).
  • PassThrough — returns the full catalog; useful for small MCPs and large models.
  • ToolkitClassifier — first-pass call against the same provider.Provider asking "which toolkits are likely needed?" then returns those toolkits' tools. Plexara's datahub_* / trino_* / s3_* / memory_* namespaces map cleanly via mcp.Catalog.Toolkits().
  • The classifier prompt and toolkit definitions land under docs/prompts/ so they're reviewable and version-controlled.

Tests

  • PassThrough correctness (returns input verbatim).
  • ToolkitClassifier against provider.FakeProvider with scripted responses for various user messages.
  • Edge cases: empty catalog, classifier returns "all", classifier returns unknown toolkit name.

Out of scope

  • core/loop (phase 5c)

Branch

feat/bootstrap-router (off main after 5a merges)

Spec: §6.6 of the bootstrap spec in #1.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions