Record Class UserPromptSubmittedHookOutput

java.lang.Object
java.lang.Record
com.github.copilot.rpc.UserPromptSubmittedHookOutput
Record Components:
modifiedPrompt - the modified prompt to use instead of the original, or null to use the original
additionalContext - additional context to be added to the prompt, or null
suppressOutput - true to suppress output, or null
decision - "block" to refuse the prompt, or null
reason - why the prompt was blocked, carried by the session.warning, or null

public record UserPromptSubmittedHookOutput(String modifiedPrompt, String additionalContext, Boolean suppressOutput, String decision, String reason) extends Record
Output for a user-prompt-submitted hook.

Allows modifying the user's prompt before processing, or blocking it: a decision of "block" refuses the prompt, so no model turn runs, no user message is recorded, and the session emits an ephemeral session.warning (warningType: "policy_blocked") carrying the reason.

Since:
1.0.7
  • Constructor Details

    • UserPromptSubmittedHookOutput

      public UserPromptSubmittedHookOutput(String modifiedPrompt, String additionalContext, Boolean suppressOutput)
      Creates an output without a block decision.

      Provided for source and binary compatibility with callers written or compiled before the decision and reason components were added. Delegates to the canonical constructor with both set to null.

      Parameters:
      modifiedPrompt - the modified prompt to use instead of the original, or null to use the original
      additionalContext - additional context to be added to the prompt, or null
      suppressOutput - true to suppress output, or null
    • UserPromptSubmittedHookOutput

      public UserPromptSubmittedHookOutput(String modifiedPrompt, String additionalContext, Boolean suppressOutput, String decision, String reason)
      Creates an instance of a UserPromptSubmittedHookOutput record class.
      Parameters:
      modifiedPrompt - the value for the modifiedPrompt record component
      additionalContext - the value for the additionalContext record component
      suppressOutput - the value for the suppressOutput record component
      decision - the value for the decision record component
      reason - the value for the reason record component
  • Method Details

    • block

      public static UserPromptSubmittedHookOutput block(String reason)
      Creates an output that blocks the prompt.
      Parameters:
      reason - why the prompt was blocked, carried by the session.warning
      Returns:
      a new output with decision "block"
      Throws:
      NullPointerException - if reason is null
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • modifiedPrompt

      public String modifiedPrompt()
      Returns the value of the modifiedPrompt record component.
      Returns:
      the value of the modifiedPrompt record component
    • additionalContext

      public String additionalContext()
      Returns the value of the additionalContext record component.
      Returns:
      the value of the additionalContext record component
    • suppressOutput

      public Boolean suppressOutput()
      Returns the value of the suppressOutput record component.
      Returns:
      the value of the suppressOutput record component
    • decision

      public String decision()
      Returns the value of the decision record component.
      Returns:
      the value of the decision record component
    • reason

      public String reason()
      Returns the value of the reason record component.
      Returns:
      the value of the reason record component