Skip to content

API surface: decide what the DSL means, remove dead code #7

Description

@Ugbot

Before a 1.0 the public surface has to be intentional.

  • ~20 of 48 AgentBuilder.withX() methods set fields nothing reads. 21 of Agents ~50 getters have no read sites outside dsl/ — including every memory, storage, vector, guardrail, MCP, embedding, context and task-list option. The sharpest case: the headline example in CLAUDE.md uses four methods that nothing in the repo reads or tests. Silent no-ops in a public API are the worst of the three options — wire them, delete them, or make them throw.
  • dsl/ has no test directory at all, covering the two largest files in the repo.
  • Seven overlapping agent-execution paths, including two public classes both named AgentExecutionFunction. The best-designed path has zero production call sites; the de-facto real one has no Flink state and parses tool calls with a hand-rolled string-splitting parser while Jackson is already on the classpath.
  • ~2,600 LOC unreachable (CEP pattern builders, a duplicate memory lineage, a 260-line store interface with no impls, several orphaned functions). Saga compensation is emitted to a side output that nothing consumes, so rollback never runs.
  • Dead root-level files: sql/schema.sql defines five tables no code references and is mounted as a Postgres initdb script; config/*.yaml describe a config format with no loader; run-demo.sh is a pre-rename relic.
  • 396 of 403 public types are public with no @Public/@Internal markers, and there are zero @Deprecated annotations despite a documented deprecated path.

Roadmap epic. Detailed findings, file:line citations and sub-tasks live in the AI-grind tracker (project AGS), which is the source of truth for this work. Local dev — build, test, tracking, profiling — is managed with AI-grind.


Tracked as AGS-7 in the devtools-mcp tracker.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions