Skip to main content
v1

Java API (Core Contracts)

Entry points

Primary interfaces

TypePackageRole
ConversationalEngineengine.coreMain process method
LlmClientllm.coreLLM adapter contract
EngineStepengine.pipelineStep unit contract
EngineStepHookengine.hookStep interception contract
ConversationalEngine
package: com.github.salilvnair.convengine.engine.core
JAVA
public interface ConversationalEngine {
EngineResult process(EngineContext engineContext);
}
LlmClient
package: com.github.salilvnair.convengine.llm.core
JAVA
public interface LlmClient {
String generateText(String hint, String contextJson);
String generateJson(String hint, String jsonSchema, String contextJson);
float[] generateEmbedding(String input);
}
EngineStepHook
package: com.github.salilvnair.convengine.engine.hook
JAVA
public interface EngineStepHook {
default boolean supports(EngineStep.Name stepName, EngineSession session) { return true; }
default void beforeStep(EngineStep.Name stepName, EngineSession session) {}
default void afterStep(EngineStep.Name stepName, EngineSession session, StepResult result) {}
default void onStepError(EngineStep.Name stepName, EngineSession session, Throwable error) {}
}
EngineStep.Name enum (hook-safe matching)
package: com.github.salilvnair.convengine.engine.pipeline
JAVA
public interface EngineStep {
enum Name {
AuditUserInputStep,
IntentResolutionStep,
AddContainerDataStep,
SchemaExtractionStep,
ResponseResolutionStep,
AutoAdvanceStep,
McpToolStep,
LoadOrCreateConversationStep,
FallbackIntentStateStep,
PersistConversationBootstrapStep,
ResetConversationStep,
PersistConversationStep,
PipelineEndGuardStep,
ResetResolvedIntentStep,
PolicyEnforcementStep,
RulesStep,
Unknown;

public static Name fromStepName(String stepName) { /* ... */ }
public boolean matches(String stepName) { /* ... */ }
}
}

Extension contracts

  • ResponseTransformerHandler
  • ContainerDataTransformerHandler
  • container interceptors
  • rule task execution pathway via SET_TASK