Package ai.confiqure

Annotation Type Confiqure


@Target(TYPE) @Retention(RUNTIME) public @interface Confiqure
Marks a class as a confiqure.ai configuration target. The confiqure CLI scans source files for this annotation and uploads them; the confiqure backend AI parses the annotated class and generates the chat playbook.
 @Confiqure(
     end      = "/notifications",
     type     = Confiqure.Type.SINGLE,
     scope    = Confiqure.Scope.LIMITED,
     tools    = {"SEND_TEST_NOTIFICATION"}
 )
 public class Notifications { ... }
 

Tools come in two kinds, both declared once as a Confiqure.Tool-annotated method and referenced by name in tools():

  • Server-side (serverSide=true, the default) — a real controller method confiqure invokes over HTTP. Returns data or performs a backend action; no UI.
  • Frontend (serverSide=false) — a contract-stub method (body never runs on the backend) whose handler runs in the host's browser via the embed SDK. Use for anything needing a UI (OAuth, a picker, rendering a view). The method signature still carries the I/O contract: its @RequestBody DTO is the input, its return type the output. Example:
           @Confiqure.Tool(name = "show_report", serverSide = false)
           public String showReport(@RequestBody StockFilterData filter) { return null; }
           
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    Verbatim, auditable consent capture on a Boolean field.
    static @interface 
    Marks a controller method as the workspace's default callback hook.
    static @interface 
    Declarative flow gate on a single field: the confiqure conversation may only WRITE this field when the Confiqure.Gate.requires() predicate is true over the root instance's current values.
    static @interface 
    Opts a type = MULTI configuration class OUT of chat deletion.
    static enum 
     
    static @interface 
    Classifies a String field as a secret (password, API token, TOTP seed, …).
    static enum 
    The kinds of secret a Confiqure.Secret field can hold.
    static @interface 
    Declarative flow gate on a whole nested section: ANY write at or under this field's path is only permitted while the Confiqure.SectionGate.requires() predicate is true over the root instance's current values.
    static @interface 
    Marks a field as engine- or tool-populated ONLY: every conversation-proposed write to it (or to any field beneath it) is rejected.
    static @interface 
    Marks a method as a tool the chat agent can invoke during a session.
    static @interface 
    Declarative flow gate on a host tool, declared on the endpoint (root) class: the named tool is only dispatchable while the Confiqure.ToolGate.requires() predicate is true over the bound instance's current values.
    static @interface 
    Container for repeated Confiqure.ToolGate declarations on one endpoint class.
    static enum 
     
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Chat endpoint segment.
    Chat context scope: LIMITED (this endpoint only) or UNLIMITED (can navigate all endpoints).
    Names of @Confiqure.Tool methods this endpoint can invoke during chat.
    Configuration shape: SINGLE (one record per user) or MULTI (table of records).
  • Element Details

    • end

      String end
      Chat endpoint segment. Defaults to snake_case of the class name when blank.
      Default:
      ""
    • type

      Configuration shape: SINGLE (one record per user) or MULTI (table of records).
      Default:
      SINGLE
    • scope

      Chat context scope: LIMITED (this endpoint only) or UNLIMITED (can navigate all endpoints).
      Default:
      LIMITED
    • tools

      String[] tools
      Names of @Confiqure.Tool methods this endpoint can invoke during chat.
      Default:
      {}