tasq/node_modules/@anthropic-ai/claude-agent-sdk/sdk-tools.d.ts

1498 lines
64 KiB
TypeScript

/* eslint-disable */
/**
* This file was automatically generated by json-schema-to-typescript.
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and run json-schema-to-typescript to regenerate this file.
*/
/**
* JSON Schema definitions for Claude CLI tool inputs
*/
export type ToolInputSchemas =
| AgentInput
| BashInput
| TaskOutputInput
| ExitPlanModeInput
| FileEditInput
| FileReadInput
| FileWriteInput
| GlobInput
| GrepInput
| KillShellInput
| ListMcpResourcesInput
| McpInput
| NotebookEditInput
| ReadMcpResourceInput
| TodoWriteInput
| WebFetchInput
| WebSearchInput
| AskUserQuestionInput
| ConfigInput;
export interface AgentInput {
/**
* A short (3-5 word) description of the task
*/
description: string;
/**
* The task for the agent to perform
*/
prompt: string;
/**
* The type of specialized agent to use for this task
*/
subagent_type: string;
/**
* Optional model to use for this agent. If not specified, inherits from parent. Prefer haiku for quick, straightforward tasks to minimize cost and latency.
*/
model?: "sonnet" | "opus" | "haiku";
/**
* Optional agent ID to resume from. If provided, the agent will continue from the previous execution transcript.
*/
resume?: string;
/**
* Set to true to run this agent in the background. The tool result will include an output_file path - use Read tool or Bash tail to check on output.
*/
run_in_background?: boolean;
}
export interface BashInput {
/**
* The command to execute
*/
command: string;
/**
* Optional timeout in milliseconds (max 600000)
*/
timeout?: number;
/**
* Clear, concise description of what this command does in 5-10 words, in active voice. Examples:
* Input: ls
* Output: List files in current directory
*
* Input: git status
* Output: Show working tree status
*
* Input: npm install
* Output: Install package dependencies
*
* Input: mkdir foo
* Output: Create directory 'foo'
*/
description?: string;
/**
* Set to true to run this command in the background. Use TaskOutput to read the output later.
*/
run_in_background?: boolean;
/**
* Set this to true to dangerously override sandbox mode and run commands without sandboxing.
*/
dangerouslyDisableSandbox?: boolean;
}
export interface TaskOutputInput {
/**
* The task ID to get output from
*/
task_id: string;
/**
* Whether to wait for completion
*/
block: boolean;
/**
* Max wait time in ms
*/
timeout: number;
}
export interface ExitPlanModeInput {
[k: string]: unknown;
}
export interface FileEditInput {
/**
* The absolute path to the file to modify
*/
file_path: string;
/**
* The text to replace
*/
old_string: string;
/**
* The text to replace it with (must be different from old_string)
*/
new_string: string;
/**
* Replace all occurences of old_string (default false)
*/
replace_all?: boolean;
}
export interface FileReadInput {
/**
* The absolute path to the file to read
*/
file_path: string;
/**
* The line number to start reading from. Only provide if the file is too large to read at once
*/
offset?: number;
/**
* The number of lines to read. Only provide if the file is too large to read at once.
*/
limit?: number;
}
export interface FileWriteInput {
/**
* The absolute path to the file to write (must be absolute, not relative)
*/
file_path: string;
/**
* The content to write to the file
*/
content: string;
}
export interface GlobInput {
/**
* The glob pattern to match files against
*/
pattern: string;
/**
* The directory to search in. If not specified, the current working directory will be used. IMPORTANT: Omit this field to use the default directory. DO NOT enter "undefined" or "null" - simply omit it for the default behavior. Must be a valid directory path if provided.
*/
path?: string;
}
export interface GrepInput {
/**
* The regular expression pattern to search for in file contents
*/
pattern: string;
/**
* File or directory to search in (rg PATH). Defaults to current working directory.
*/
path?: string;
/**
* Glob pattern to filter files (e.g. "*.js", "*.{ts,tsx}") - maps to rg --glob
*/
glob?: string;
/**
* Output mode: "content" shows matching lines (supports -A/-B/-C context, -n line numbers, head_limit), "files_with_matches" shows file paths (supports head_limit), "count" shows match counts (supports head_limit). Defaults to "files_with_matches".
*/
output_mode?: "content" | "files_with_matches" | "count";
/**
* Number of lines to show before each match (rg -B). Requires output_mode: "content", ignored otherwise.
*/
"-B"?: number;
/**
* Number of lines to show after each match (rg -A). Requires output_mode: "content", ignored otherwise.
*/
"-A"?: number;
/**
* Number of lines to show before and after each match (rg -C). Requires output_mode: "content", ignored otherwise.
*/
"-C"?: number;
/**
* Show line numbers in output (rg -n). Requires output_mode: "content", ignored otherwise. Defaults to true.
*/
"-n"?: boolean;
/**
* Case insensitive search (rg -i)
*/
"-i"?: boolean;
/**
* File type to search (rg --type). Common types: js, py, rust, go, java, etc. More efficient than include for standard file types.
*/
type?: string;
/**
* Limit output to first N lines/entries, equivalent to "| head -N". Works across all output modes: content (limits output lines), files_with_matches (limits file paths), count (limits count entries). Defaults to 0 (unlimited).
*/
head_limit?: number;
/**
* Skip first N lines/entries before applying head_limit, equivalent to "| tail -n +N | head -N". Works across all output modes. Defaults to 0.
*/
offset?: number;
/**
* Enable multiline mode where . matches newlines and patterns can span lines (rg -U --multiline-dotall). Default: false.
*/
multiline?: boolean;
}
export interface KillShellInput {
/**
* The ID of the background shell to kill
*/
shell_id: string;
}
export interface ListMcpResourcesInput {
/**
* Optional server name to filter resources by
*/
server?: string;
}
export interface McpInput {
[k: string]: unknown;
}
export interface NotebookEditInput {
/**
* The absolute path to the Jupyter notebook file to edit (must be absolute, not relative)
*/
notebook_path: string;
/**
* The ID of the cell to edit. When inserting a new cell, the new cell will be inserted after the cell with this ID, or at the beginning if not specified.
*/
cell_id?: string;
/**
* The new source for the cell
*/
new_source: string;
/**
* The type of the cell (code or markdown). If not specified, it defaults to the current cell type. If using edit_mode=insert, this is required.
*/
cell_type?: "code" | "markdown";
/**
* The type of edit to make (replace, insert, delete). Defaults to replace.
*/
edit_mode?: "replace" | "insert" | "delete";
}
export interface ReadMcpResourceInput {
/**
* The MCP server name
*/
server: string;
/**
* The resource URI to read
*/
uri: string;
}
export interface TodoWriteInput {
/**
* The updated todo list
*/
todos: {
content: string;
status: "pending" | "in_progress" | "completed";
activeForm: string;
}[];
}
export interface WebFetchInput {
/**
* The URL to fetch content from
*/
url: string;
/**
* The prompt to run on the fetched content
*/
prompt: string;
}
export interface WebSearchInput {
/**
* The search query to use
*/
query: string;
/**
* Only include search results from these domains
*/
allowed_domains?: string[];
/**
* Never include search results from these domains
*/
blocked_domains?: string[];
}
export interface AskUserQuestionInput {
/**
* Questions to ask the user (1-4 questions)
*
* @minItems 1
* @maxItems 4
*/
questions:
| [
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
}
]
| [
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
},
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
}
]
| [
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
},
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
},
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
}
]
| [
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
},
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
},
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
},
{
/**
* The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"
*/
question: string;
/**
* Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".
*/
header: string;
/**
* The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.
*
* @minItems 2
* @maxItems 4
*/
options:
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
]
| [
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
},
{
/**
* The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.
*/
label: string;
/**
* Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.
*/
description: string;
}
];
/**
* Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.
*/
multiSelect: boolean;
}
];
/**
* User answers collected by the permission component
*/
answers?: {
[k: string]: string;
};
}
export interface ConfigInput {
/**
* The setting key (e.g., "theme", "model", "permissions.defaultMode")
*/
setting: string;
/**
* The new value. Omit to get current value.
*/
value?: string | boolean | number;
}