Skip to content

feat(binding-llm): module scaffold with Incubating LlmBindingInfo - #2552

Open
jfallows wants to merge 2 commits into
developfrom
claude/issue-2477-h1b9ia
Open

feat(binding-llm): module scaffold with Incubating LlmBindingInfo#2552
jfallows wants to merge 2 commits into
developfrom
claude/issue-2477-h1b9ia

Conversation

@jfallows

@jfallows jfallows commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Description

Scaffolds incubator/binding-llm (runtime) and incubator/binding-llm.conf, modelled on binding-mcp's SERVER/CLIENT BindingContext structure, per the incubator layout used by binding-pgsql/binding-risingwave (spec/conf/runtime co-located under incubator/, Aklivity Community License).

  • incubator/binding-llm: LlmBinding, LlmBindingContext (SERVER/CLIENT-keyed dispatch map; no stream factories wired up yet), LlmBindingFactorySpi, LlmConfiguration.
  • incubator/binding-llm.conf: LlmBindingInfo implements BindingInfo, TYPE = "llm", annotated @io.aklivity.zilla.runtime.common.feature.Incubating — the mechanism FeatureFilter reads to gate type: llm recognition behind ZILLA_INCUBATOR_ENABLED, matching the AmqpBindingInfo/PgsqlBindingInfo/RisingwaveBindingInfo precedent — plus a schema patch adding type: llm with kind: client|server.
  • Both new modules include the standard scaffolding (COPYRIGHT/LICENSE/NOTICE/NOTICE.template/mvnw/mvnw.cmd) and are registered in incubator/pom.xml.

This branch is built on top of binding-llm.spec (llm.idl) from #2505 so it can carry that work forward as a baseline; it will be rebased onto develop once #2505 merges.

Verified ./mvnw clean install -pl incubator/binding-llm.conf,incubator/binding-llm passes end-to-end: checkstyle, license headers, NOTICE, and all unit tests pass with full jacoco coverage. With ZILLA_INCUBATOR_ENABLED unset, type: llm fails config loading as unrecognized; with it set, type: llm is recognized — reusing the same FeatureFilter/@Incubating gating already proven by binding-pgsql/binding-risingwave.

Fixes #2477

🤖 Generated with Claude Code

https://claude.ai/code/session_0142buJWS7C89AKr9uDJtSy4


Generated by Claude Code

Scaffold incubator/binding-llm.spec per AGENTS.md conventions and define
LlmBeginEx, LlmDataEx, and the LlmFlushEx union, modelled on
binding-mcp.spec's idl.

LlmBeginEx carries dialect only; model routing is deferred. LlmDataEx has
no fields: content flows through the DATA frame's own payload octets and
INIT/FIN through its existing flags, so nothing survives in the extension
once block identity moves to the FLUSH plane. LlmFlushEx is a 7-case union
covering message start, block start/end, finish, usage, keepalive, and an
opaque native/raw case for re-encoding events a same-dialect route doesn't
recognize.

Fixes #2476

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AuZoMsETwEczJx3cbkb8EJ
Scaffolds incubator/binding-llm and incubator/binding-llm.conf, modelled
on binding-mcp's SERVER/CLIENT BindingContext structure. LlmBindingInfo
is annotated @Incubating so type: llm config loading is gated behind
ZILLA_INCUBATOR_ENABLED via FeatureFilter, matching the AmqpBindingInfo/
PgsqlBindingInfo/RisingwaveBindingInfo precedent.

Fixes #2477

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0142buJWS7C89AKr9uDJtSy4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

binding-llm: module scaffold (incubator, @Incubating LlmBindingInfo)

2 participants