Luigi De Masi created CAMEL-25668:
-------------------------------------
Summary: camel-semantic: Extract TypeSafe adapter and rename Wolf
Defender module
Key: CAMEL-25668
URL: https://issues.apache.org/jira/browse/CAMEL-25668
Project: Camel
Issue Type: Task
Components: camel-ai
Reporter: Luigi De Masi
Assignee: Luigi De Masi
h2. Purpose
Give the existing Semantic experts consistent, explicit artifact names while
keeping the TypeSafe AI component independently usable without a dependency on
camel-semantic.
This task covers two different packaging changes:
* Extract the TypeSafe AI semantic adapter from camel-typesafe-ai into a new
camel-semantic-typesafe-ai module.
* Rename the existing camel-wolf-defender module/artifact to
camel-semantic-wolf-defender. Wolf Defender is already a Semantic expert
module, with its local inference implementation and supporting exception; it
has no separate Camel routing endpoint. This is a module rename, not an
adapter/backend split.
h2. TypeSafe AI: extract the adapter
* Add components/camel-ai/camel-semantic-typesafe-ai, depending on
camel-semantic and camel-typesafe-ai.
* Move TypeSafeAiSemanticAdapter and the applicable Semantic-specific tests to
the new module.
* Keep the component, endpoints, producer, client configuration and managed
transport in camel-typesafe-ai. Reuse that transport from the extracted adapter.
* Remove camel-typesafe-ai's dependency on camel-semantic. Do not introduce a
reverse dependency from the component to the new adapter module.
* Preserve existing operations, accepted inputs, parameters, batching, typed
results, provider uncertainty, exceptions and lifecycle behavior.
h2. Wolf Defender: rename the module
* Rename components/camel-ai/camel-wolf-defender and its Maven artifact to
camel-semantic-wolf-defender.
* Keep the adapter, inference implementation, supporting exception and tests
together. Preserve their Java packages and class names; no inference API
extraction or new routing component is required.
* Keep the existing model provisioning, native dependencies, resource limits,
concurrency, lifecycle, failure behavior and expert semantics unchanged.
h2. Build, metadata and migration
* Update reactor modules, dependency management/BOM entries, relevant
dependency declarations, generated catalog metadata and documentation mirrors.
* Update expert artifact identity to the module that contains each adapter,
preserving provider identity and operation meaning.
* Update documentation, examples and applicable Camel JBang dependency
resolution/usage references to use the new artifacts. Preserve explicit named
expert selection and the existing runtime metadata/tooling contract.
* Document the migration in the appropriate upgrade guide: TypeSafe Semantic
users add camel-semantic-typesafe-ai; direct TypeSafe component users continue
using camel-typesafe-ai; Wolf Defender users replace camel-wolf-defender with
camel-semantic-wolf-defender.
* Preserve existing Java adapter class names where practical. Document any
necessary TypeSafe bean-class or import changes explicitly rather than silently
changing route behavior.
h2. Acceptance criteria
# camel-typesafe-ai can build and execute its component functionality without
camel-semantic or camel-semantic-typesafe-ai on the application's classpath.
# camel-semantic-typesafe-ai supplies the existing TypeSafe expert using the
component's configured transport, including custom endpoint/client settings and
batching.
# camel-semantic-wolf-defender supplies the same Wolf Defender expert and local
inference implementation under the renamed artifact, without introducing a
separate backend module or changing the Java API.
# Dependency graphs are acyclic, and the provider component does not depend on
its Semantic adapter module.
# Existing Semantic behavior remains covered by the moved/adapted tests:
explicit registry references, capability inspection, supported inputs and
operations, result types and probabilities, validation, exceptions and service
lifecycle. Metadata inspection must not load the Wolf model or perform
inference.
# Relevant Java/XML/YAML examples and Camel JBang usage resolve the new
artifacts. Existing audit/result rendering continues to use the common Semantic
contracts.
# Build metadata, generated artifacts, documentation and upgrade guidance
consistently reflect the new artifact names.
h2. Scope boundary
The OpenAI Decisions integration and camel-semantic-openai belong in a separate
issue. This refactoring does not add OpenAI support, multimodal inputs, image
audit rendering, a Semantic API/runtime split, or new inference behavior.
h2. References
* [TypeSafe AI module at the merged Semantic
baseline|https://github.com/apache/camel/tree/12e8bdcdf1affa19b3d62786d4a4001db936b164/components/camel-ai/camel-typesafe-ai]
* [Wolf Defender module at the same
baseline|https://github.com/apache/camel/tree/12e8bdcdf1affa19b3d62786d4a4001db936b164/components/camel-ai/camel-wolf-defender]
* [Merged explicit-expert and audit changes, PR
27791|https://github.com/apache/camel/pull/27791]
_AI-generated by Codex on behalf of luigidemasi (Luigi De Masi)._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)