chore(vendor): import pi 1.3.0
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: 71023aec1546d6d677a65669c5665c0927ce0dd0
This commit is contained in:
393
third_party/pi/packages/coding-agent/schemas/keybindings.schema.json
vendored
Normal file
393
third_party/pi/packages/coding-agent/schemas/keybindings.schema.json
vendored
Normal file
@@ -0,0 +1,393 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://pi.dev/schemas/keybindings.schema.json",
|
||||
"$comment": "This file is generated from TypeScript source. Do not edit it manually; run npm run generate:schemas.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"tui.editor.cursorUp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move cursor up"
|
||||
},
|
||||
"tui.editor.cursorDown": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move cursor down"
|
||||
},
|
||||
"tui.editor.historyPrevious": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Select previous prompt history entry"
|
||||
},
|
||||
"tui.editor.historyNext": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Select next prompt history entry"
|
||||
},
|
||||
"tui.editor.cursorLeft": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move cursor left"
|
||||
},
|
||||
"tui.editor.cursorRight": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move cursor right"
|
||||
},
|
||||
"tui.editor.cursorWordLeft": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move cursor word left"
|
||||
},
|
||||
"tui.editor.cursorWordRight": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move cursor word right"
|
||||
},
|
||||
"tui.editor.cursorLineStart": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move to line start"
|
||||
},
|
||||
"tui.editor.cursorLineEnd": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move to line end"
|
||||
},
|
||||
"tui.editor.jumpForward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Jump forward to character"
|
||||
},
|
||||
"tui.editor.jumpBackward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Jump backward to character"
|
||||
},
|
||||
"tui.editor.pageUp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Page up"
|
||||
},
|
||||
"tui.editor.pageDown": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Page down"
|
||||
},
|
||||
"tui.editor.deleteCharBackward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Delete character backward"
|
||||
},
|
||||
"tui.editor.deleteCharForward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Delete character forward"
|
||||
},
|
||||
"tui.editor.deleteWordBackward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Delete word backward"
|
||||
},
|
||||
"tui.editor.deleteWordForward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Delete word forward"
|
||||
},
|
||||
"tui.editor.deleteToLineStart": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Delete to line start"
|
||||
},
|
||||
"tui.editor.deleteToLineEnd": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Delete to line end"
|
||||
},
|
||||
"tui.editor.yank": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Yank"
|
||||
},
|
||||
"tui.editor.yankPop": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Yank pop"
|
||||
},
|
||||
"tui.editor.undo": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Undo"
|
||||
},
|
||||
"tui.input.newLine": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Insert newline"
|
||||
},
|
||||
"tui.input.submit": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Submit input"
|
||||
},
|
||||
"tui.input.tab": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Tab / autocomplete"
|
||||
},
|
||||
"tui.input.copy": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Copy selection"
|
||||
},
|
||||
"tui.select.up": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move selection up"
|
||||
},
|
||||
"tui.select.down": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move selection down"
|
||||
},
|
||||
"tui.select.pageUp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Selection page up"
|
||||
},
|
||||
"tui.select.pageDown": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Selection page down"
|
||||
},
|
||||
"tui.select.confirm": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Confirm selection"
|
||||
},
|
||||
"tui.select.cancel": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Cancel selection"
|
||||
},
|
||||
"tui.altScreen.pageUp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Scroll viewport up one page"
|
||||
},
|
||||
"tui.altScreen.pageDown": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Scroll viewport down one page"
|
||||
},
|
||||
"tui.altScreen.halfPageUp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Scroll viewport up half a page"
|
||||
},
|
||||
"tui.altScreen.halfPageDown": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Scroll viewport down half a page"
|
||||
},
|
||||
"tui.altScreen.lineUp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Scroll viewport up one line"
|
||||
},
|
||||
"tui.altScreen.lineDown": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Scroll viewport down one line"
|
||||
},
|
||||
"tui.altScreen.previousPrompt": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Jump to previous semantic prompt"
|
||||
},
|
||||
"tui.altScreen.nextPrompt": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Jump to next semantic prompt"
|
||||
},
|
||||
"tui.altScreen.search": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Search the primary scroll view"
|
||||
},
|
||||
"tui.altScreen.searchNext": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Select the next search match"
|
||||
},
|
||||
"tui.altScreen.searchPrevious": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Select the previous search match"
|
||||
},
|
||||
"tui.altScreen.searchClose": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Close transcript search"
|
||||
},
|
||||
"tui.altScreen.top": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Scroll viewport to top"
|
||||
},
|
||||
"tui.altScreen.bottom": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Scroll viewport to bottom"
|
||||
},
|
||||
"app.interrupt": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Cancel or abort"
|
||||
},
|
||||
"app.clear": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Clear editor"
|
||||
},
|
||||
"app.exit": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Exit when editor is empty"
|
||||
},
|
||||
"app.suspend": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Suspend to background"
|
||||
},
|
||||
"app.thinking.cycle": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Cycle thinking level"
|
||||
},
|
||||
"app.thinking.save": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Save thinking level"
|
||||
},
|
||||
"app.model.cycleForward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Cycle to next model"
|
||||
},
|
||||
"app.model.cycleBackward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Cycle to previous model"
|
||||
},
|
||||
"app.model.select": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Open model selector"
|
||||
},
|
||||
"app.tools.expand": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Toggle tool output"
|
||||
},
|
||||
"app.thinking.toggle": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Toggle thinking blocks"
|
||||
},
|
||||
"app.session.toggleNamedFilter": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Toggle named session filter"
|
||||
},
|
||||
"app.editor.external": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Open external editor"
|
||||
},
|
||||
"app.message.copy": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Copy selection or last assistant message"
|
||||
},
|
||||
"app.message.followUp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Queue follow-up message"
|
||||
},
|
||||
"app.message.dequeue": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Restore queued messages"
|
||||
},
|
||||
"app.clipboard.pasteImage": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Paste files on macOS, images, or text from clipboard"
|
||||
},
|
||||
"app.session.new": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Start a new session"
|
||||
},
|
||||
"app.session.tree": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Open session tree"
|
||||
},
|
||||
"app.session.fork": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Fork current session"
|
||||
},
|
||||
"app.session.resume": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Resume a session"
|
||||
},
|
||||
"app.tree.foldOrUp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Fold tree branch or move up"
|
||||
},
|
||||
"app.tree.unfoldOrDown": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Unfold tree branch or move down"
|
||||
},
|
||||
"app.tree.editLabel": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Edit tree label"
|
||||
},
|
||||
"app.tree.toggleLabelTimestamp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Toggle tree label timestamps"
|
||||
},
|
||||
"app.session.togglePath": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Toggle session path display"
|
||||
},
|
||||
"app.session.toggleSort": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Toggle session sort mode"
|
||||
},
|
||||
"app.session.rename": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Rename session"
|
||||
},
|
||||
"app.session.delete": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Delete session"
|
||||
},
|
||||
"app.session.deleteNoninvasive": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Delete session when query is empty"
|
||||
},
|
||||
"app.models.save": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Save model selection"
|
||||
},
|
||||
"app.models.enableAll": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Enable all models"
|
||||
},
|
||||
"app.models.clearAll": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Clear all models"
|
||||
},
|
||||
"app.models.toggleProvider": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Toggle all models for provider"
|
||||
},
|
||||
"app.models.reorderUp": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move model up in order"
|
||||
},
|
||||
"app.models.reorderDown": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Move model down in order"
|
||||
},
|
||||
"app.tree.filter.default": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Tree filter: default view"
|
||||
},
|
||||
"app.tree.filter.noTools": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Tree filter: hide tool results"
|
||||
},
|
||||
"app.tree.filter.userOnly": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Tree filter: user messages only"
|
||||
},
|
||||
"app.tree.filter.labeledOnly": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Tree filter: labeled entries only"
|
||||
},
|
||||
"app.tree.filter.all": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Tree filter: show all entries"
|
||||
},
|
||||
"app.tree.filter.cycleForward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Tree filter: cycle forward"
|
||||
},
|
||||
"app.tree.filter.cycleBackward": {
|
||||
"$ref": "#/$defs/KeybindingValue",
|
||||
"description": "Tree filter: cycle backward"
|
||||
}
|
||||
},
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/KeybindingValue"
|
||||
},
|
||||
"$defs": {
|
||||
"KeybindingValue": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"pattern": "^(?!.*(?:ctrl\\+.*ctrl\\+|shift\\+.*shift\\+|alt\\+.*alt\\+|super\\+.*super\\+))(?:(?:ctrl|shift|alt|super)\\+){0,4}(?:[a-z0-9]|escape|esc|enter|return|tab|space|backspace|delete|insert|clear|home|end|pageUp|pageDown|up|down|left|right|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|`|-|=|\\[|\\]|\\\\|;|'|,|\\.|/|!|@|#|\\$|%|\\^|&|\\*|\\(|\\)|_|\\+|\\||~|\\{|\\}|:|<|>|\\?)$",
|
||||
"description": "Key identifier with optional ctrl, shift, alt, or super modifiers."
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"pattern": "^(?!.*(?:ctrl\\+.*ctrl\\+|shift\\+.*shift\\+|alt\\+.*alt\\+|super\\+.*super\\+))(?:(?:ctrl|shift|alt|super)\\+){0,4}(?:[a-z0-9]|escape|esc|enter|return|tab|space|backspace|delete|insert|clear|home|end|pageUp|pageDown|up|down|left|right|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|`|-|=|\\[|\\]|\\\\|;|'|,|\\.|/|!|@|#|\\$|%|\\^|&|\\*|\\(|\\)|_|\\+|\\||~|\\{|\\}|:|<|>|\\?)$",
|
||||
"description": "Key identifier with optional ctrl, shift, alt, or super modifiers."
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
1157
third_party/pi/packages/coding-agent/schemas/models.schema.json
vendored
Normal file
1157
third_party/pi/packages/coding-agent/schemas/models.schema.json
vendored
Normal file
File diff suppressed because it is too large
Load Diff
783
third_party/pi/packages/coding-agent/schemas/settings.schema.json
vendored
Normal file
783
third_party/pi/packages/coding-agent/schemas/settings.schema.json
vendored
Normal file
@@ -0,0 +1,783 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://pi.dev/schemas/settings.schema.json",
|
||||
"$comment": "This file is generated from TypeScript source. Do not edit it manually; run npm run generate:schemas.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"type": "string",
|
||||
"description": "JSON Schema reference."
|
||||
},
|
||||
"lastChangelogVersion": {
|
||||
"type": "string"
|
||||
},
|
||||
"defaultProvider": {
|
||||
"type": "string"
|
||||
},
|
||||
"defaultModel": {
|
||||
"type": "string"
|
||||
},
|
||||
"defaultThinkingLevel": {
|
||||
"$ref": "#/$defs/ModelThinkingLevel"
|
||||
},
|
||||
"modelThinkingLevels": {
|
||||
"type": "object",
|
||||
"patternProperties": {
|
||||
"^.*$": {
|
||||
"$ref": "#/$defs/ModelThinkingLevel"
|
||||
}
|
||||
},
|
||||
"description": "Per-model default thinking level overrides keyed by \"provider/modelId\"."
|
||||
},
|
||||
"transport": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "auto"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "sse"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "websocket"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "websocket-cached"
|
||||
}
|
||||
],
|
||||
"default": "auto"
|
||||
},
|
||||
"sessionShareDestination": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "auto"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "gist"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "radius"
|
||||
}
|
||||
],
|
||||
"description": "Destination used by /share. \"auto\" uses Radius when authenticated and otherwise creates a GitHub gist.",
|
||||
"default": "auto"
|
||||
},
|
||||
"steeringMode": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "all"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "one-at-a-time"
|
||||
}
|
||||
],
|
||||
"default": "one-at-a-time"
|
||||
},
|
||||
"followUpMode": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "all"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "one-at-a-time"
|
||||
}
|
||||
],
|
||||
"default": "one-at-a-time"
|
||||
},
|
||||
"theme": {
|
||||
"type": "string"
|
||||
},
|
||||
"compaction": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"reserveTokens": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 9007199254740991,
|
||||
"default": 16384
|
||||
},
|
||||
"keepRecentTokens": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 9007199254740991,
|
||||
"default": 20000
|
||||
},
|
||||
"modelOverrides": {
|
||||
"type": "object",
|
||||
"patternProperties": {
|
||||
"^.*$": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"reserveTokens": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 9007199254740991
|
||||
},
|
||||
"keepRecentTokens": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 9007199254740991
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Per-model overrides keyed by exact \"provider/modelId\" strings."
|
||||
}
|
||||
}
|
||||
},
|
||||
"branchSummary": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"reserveTokens": {
|
||||
"type": "number",
|
||||
"description": "Tokens reserved for the prompt and LLM response.",
|
||||
"default": 16384
|
||||
},
|
||||
"skipPrompt": {
|
||||
"type": "boolean",
|
||||
"description": "When true, skips the \"Summarize branch?\" prompt and defaults to no summary.",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"retry": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"maxRetries": {
|
||||
"type": "number",
|
||||
"default": 3
|
||||
},
|
||||
"baseDelayMs": {
|
||||
"type": "number",
|
||||
"description": "Exponential backoff base delay in milliseconds: 2s, 4s, 8s.",
|
||||
"default": 2000
|
||||
},
|
||||
"maxAgentDelayMs": {
|
||||
"type": "number",
|
||||
"default": 60000
|
||||
},
|
||||
"provider": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"timeoutMs": {
|
||||
"type": "number",
|
||||
"description": "SDK or provider request timeout in milliseconds."
|
||||
},
|
||||
"maxRetries": {
|
||||
"type": "number",
|
||||
"description": "SDK or provider retry attempts."
|
||||
},
|
||||
"maxRetryDelayMs": {
|
||||
"type": "number",
|
||||
"description": "Maximum server-requested delay before failing.",
|
||||
"default": 60000
|
||||
}
|
||||
}
|
||||
},
|
||||
"maxDelayMs": {
|
||||
"type": "number",
|
||||
"description": "Legacy retry delay setting. Use provider.maxRetryDelayMs instead.",
|
||||
"deprecated": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"hideThinkingBlock": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"showCacheMissNotices": {
|
||||
"type": "boolean",
|
||||
"description": "Show cache cost and provider recovery notices.",
|
||||
"default": false
|
||||
},
|
||||
"externalEditor": {
|
||||
"type": "string",
|
||||
"description": "Command for Ctrl+G external editor; takes precedence over VISUAL and EDITOR."
|
||||
},
|
||||
"shellPath": {
|
||||
"type": "string",
|
||||
"description": "Custom shell path, for example for Cygwin on Windows, with support for leading ~ expansion."
|
||||
},
|
||||
"quietStartup": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "header"
|
||||
}
|
||||
],
|
||||
"description": "When true, hide all startup output. When \"header\", keep only the startup header.",
|
||||
"default": false
|
||||
},
|
||||
"defaultProjectTrust": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "ask"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "always"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "never"
|
||||
}
|
||||
],
|
||||
"description": "Global setting only.",
|
||||
"default": "ask"
|
||||
},
|
||||
"shellCommandPrefix": {
|
||||
"type": "string",
|
||||
"description": "Prefix prepended to every bash command, for example to enable shell aliases."
|
||||
},
|
||||
"npmCommand": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Command used for npm package lookup and installation, in argv form such as [\"mise\", \"exec\", \"node@20\", \"--\", \"npm\"]."
|
||||
},
|
||||
"collapseChangelog": {
|
||||
"type": "boolean",
|
||||
"description": "Show the condensed changelog after update; use /changelog for the full changelog.",
|
||||
"default": false
|
||||
},
|
||||
"enableInstallTelemetry": {
|
||||
"type": "boolean",
|
||||
"description": "Send an anonymous version and update ping after changelog-detected updates.",
|
||||
"default": true
|
||||
},
|
||||
"enableAnalytics": {
|
||||
"type": "boolean",
|
||||
"description": "Opt in to analytics data sharing.",
|
||||
"default": false
|
||||
},
|
||||
"trackingId": {
|
||||
"type": "string",
|
||||
"description": "Analytics tracking identifier, generated when analytics is enabled."
|
||||
},
|
||||
"packages": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "Load all resources from the package."
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"source"
|
||||
],
|
||||
"properties": {
|
||||
"source": {
|
||||
"type": "string"
|
||||
},
|
||||
"autoload": {
|
||||
"type": "boolean",
|
||||
"description": "When false, start empty and only apply explicit resource patterns."
|
||||
},
|
||||
"extensions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"skills": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"prompts": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"themes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"description": "Package source for npm or git packages. Use the string form to load all resources or the object form to filter resources."
|
||||
},
|
||||
"description": "npm or git package sources, as strings or objects with resource filtering."
|
||||
},
|
||||
"extensions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Local extension file paths or directories."
|
||||
},
|
||||
"deviceId": {
|
||||
"type": "string",
|
||||
"description": "Stable installation UUID, generated when authentication first needs it. Global only."
|
||||
},
|
||||
"skills": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enableSkillCommands": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"customDirectories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"deprecated": true
|
||||
}
|
||||
],
|
||||
"description": "Local skill file paths or directories."
|
||||
},
|
||||
"prompts": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Local prompt template file paths or directories."
|
||||
},
|
||||
"themes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Local theme file paths or directories."
|
||||
},
|
||||
"enableSkillCommands": {
|
||||
"type": "boolean",
|
||||
"description": "Register skills as /skill:name commands.",
|
||||
"default": true
|
||||
},
|
||||
"terminal": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"showImages": {
|
||||
"type": "boolean",
|
||||
"description": "Show images when the terminal supports them.",
|
||||
"default": true
|
||||
},
|
||||
"imageWidthCells": {
|
||||
"type": "number",
|
||||
"description": "Preferred inline image width in terminal cells.",
|
||||
"default": 60
|
||||
},
|
||||
"clearOnShrink": {
|
||||
"type": "boolean",
|
||||
"description": "Clear empty rows when content shrinks.",
|
||||
"default": false
|
||||
},
|
||||
"showTerminalProgress": {
|
||||
"type": "boolean",
|
||||
"description": "Show OSC 9;4 terminal progress indicators.",
|
||||
"default": false
|
||||
},
|
||||
"hyperlinks": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
"images": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "kitty"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "iterm2"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "auto"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"const": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"trueColor": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"images": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"autoResize": {
|
||||
"type": "boolean",
|
||||
"description": "Resize images to 2000x2000 maximum for better model compatibility.",
|
||||
"default": true
|
||||
},
|
||||
"blockImages": {
|
||||
"type": "boolean",
|
||||
"description": "When true, prevents all images from being sent to LLM providers.",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"enabledModels": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Model patterns for cycling, in the same format as the --models CLI flag."
|
||||
},
|
||||
"defaultTools": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Initial tool selection. Plain names replace the inherited selection; +name and -name entries add or remove tools."
|
||||
},
|
||||
"doubleEscapeAction": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "fork"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "tree"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "none"
|
||||
}
|
||||
],
|
||||
"description": "Action for double-escape with an empty editor.",
|
||||
"default": "tree"
|
||||
},
|
||||
"treeFilterMode": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "default"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "no-tools"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "user-only"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "labeled-only"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "all"
|
||||
}
|
||||
],
|
||||
"description": "Default filter when opening /tree.",
|
||||
"default": "default"
|
||||
},
|
||||
"thinkingBudgets": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"minimal": {
|
||||
"type": "number"
|
||||
},
|
||||
"low": {
|
||||
"type": "number"
|
||||
},
|
||||
"medium": {
|
||||
"type": "number"
|
||||
},
|
||||
"high": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"description": "Custom token budgets for thinking levels."
|
||||
},
|
||||
"editorPaddingX": {
|
||||
"type": "number",
|
||||
"description": "Horizontal padding for the input editor.",
|
||||
"default": 0
|
||||
},
|
||||
"outputPad": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "number",
|
||||
"const": 0
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"const": 1
|
||||
}
|
||||
],
|
||||
"description": "Horizontal padding for transcript content.",
|
||||
"default": 1
|
||||
},
|
||||
"autocompleteMaxVisible": {
|
||||
"type": "number",
|
||||
"description": "Maximum visible items in the autocomplete dropdown.",
|
||||
"default": 5
|
||||
},
|
||||
"showHardwareCursor": {
|
||||
"type": "boolean",
|
||||
"description": "Show the terminal cursor while still positioning it for IME."
|
||||
},
|
||||
"markdown": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"codeBlockIndent": {
|
||||
"type": "string",
|
||||
"default": " "
|
||||
},
|
||||
"mermaid": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "off"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "final"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "streaming"
|
||||
}
|
||||
],
|
||||
"default": "streaming"
|
||||
}
|
||||
}
|
||||
},
|
||||
"warnings": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"anthropicExtraUsage": {
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"codemode": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "on"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "only"
|
||||
}
|
||||
],
|
||||
"description": "How codemode presents tools. \"on\" keeps direct tools declared and annotates tools callable from scripts; codemode lists only tools without direct exposure. \"only\" lists every script-callable tool in codemode and does not declare active direct tools.",
|
||||
"default": "on"
|
||||
},
|
||||
"inlineBudget": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"description": "Estimated tokens available for inline codemode tool declarations.",
|
||||
"default": 3000
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessionDir": {
|
||||
"type": "string",
|
||||
"description": "Custom session storage directory, in the same format as the --session-dir CLI flag."
|
||||
},
|
||||
"httpProxy": {
|
||||
"type": "string",
|
||||
"description": "Proxy URL applied as HTTP_PROXY and HTTPS_PROXY for Pi-managed HTTP clients."
|
||||
},
|
||||
"httpIdleTimeoutMs": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "number",
|
||||
"minimum": 0
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "disabled"
|
||||
}
|
||||
],
|
||||
"description": "HTTP header or body idle timeout in milliseconds; 0 or \"disabled\" disables it."
|
||||
},
|
||||
"cacheWarming": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "off"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "streaming"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "idle"
|
||||
}
|
||||
],
|
||||
"description": "Cache-warming profile. \"idle\" also warms between agent runs. Global only because each refresh costs money.",
|
||||
"default": "streaming"
|
||||
},
|
||||
"websocketConnectTimeoutMs": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "number",
|
||||
"minimum": 0
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "disabled"
|
||||
}
|
||||
],
|
||||
"description": "WebSocket connect or open handshake timeout in milliseconds; 0 or \"disabled\" disables it."
|
||||
},
|
||||
"tuiMode": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "regular"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "fullscreen"
|
||||
}
|
||||
],
|
||||
"default": "fullscreen"
|
||||
},
|
||||
"fullscreenExitOutput": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "transcript"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "resume-hint"
|
||||
}
|
||||
],
|
||||
"description": "No effect in regular TUI mode.",
|
||||
"default": "transcript"
|
||||
},
|
||||
"fullscreenScrollbar": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "auto"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "always"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "hidden"
|
||||
}
|
||||
],
|
||||
"description": "No effect in regular TUI mode.",
|
||||
"default": "auto"
|
||||
},
|
||||
"fullscreenCopyOnSelect": {
|
||||
"type": "boolean",
|
||||
"description": "No effect in regular TUI mode.",
|
||||
"default": true
|
||||
},
|
||||
"fullscreenWheelScrollLines": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "auto"
|
||||
}
|
||||
],
|
||||
"description": "Lines scrolled per wheel event in fullscreen mode; numeric values are clamped from 1 to 100.",
|
||||
"default": "auto"
|
||||
},
|
||||
"queueMode": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "all"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "one-at-a-time"
|
||||
}
|
||||
],
|
||||
"description": "Legacy setting migrated to steeringMode.",
|
||||
"deprecated": true
|
||||
},
|
||||
"websockets": {
|
||||
"type": "boolean",
|
||||
"description": "Legacy setting migrated to transport.",
|
||||
"deprecated": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": true,
|
||||
"$defs": {
|
||||
"ModelThinkingLevel": {
|
||||
"enum": [
|
||||
"off",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
365
third_party/pi/packages/coding-agent/schemas/theme.schema.json
vendored
Normal file
365
third_party/pi/packages/coding-agent/schemas/theme.schema.json
vendored
Normal file
@@ -0,0 +1,365 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://pi.dev/schemas/theme.schema.json",
|
||||
"$comment": "This file is generated from TypeScript source. Do not edit it manually; run npm run generate:schemas.",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"colors"
|
||||
],
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"type": "string",
|
||||
"description": "JSON schema reference"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"pattern": "^[^/]+$",
|
||||
"description": "Theme name. Must not contain '/' because it is reserved for automatic light/dark theme settings."
|
||||
},
|
||||
"appearance": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"const": "dark"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"const": "light"
|
||||
}
|
||||
],
|
||||
"description": "Background the theme is designed for. Detected from the theme colors when omitted."
|
||||
},
|
||||
"vars": {
|
||||
"type": "object",
|
||||
"patternProperties": {
|
||||
"^.*$": {
|
||||
"$ref": "#/$defs/ColorValue"
|
||||
}
|
||||
},
|
||||
"description": "Reusable color variables"
|
||||
},
|
||||
"colors": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"accent",
|
||||
"border",
|
||||
"borderAccent",
|
||||
"borderMuted",
|
||||
"success",
|
||||
"error",
|
||||
"warning",
|
||||
"muted",
|
||||
"dim",
|
||||
"text",
|
||||
"thinkingText",
|
||||
"selectedBg",
|
||||
"userMessageBg",
|
||||
"userMessageText",
|
||||
"customMessageBg",
|
||||
"customMessageText",
|
||||
"customMessageLabel",
|
||||
"toolPendingBg",
|
||||
"toolSuccessBg",
|
||||
"toolErrorBg",
|
||||
"toolTitle",
|
||||
"toolOutput",
|
||||
"mdHeading",
|
||||
"mdLink",
|
||||
"mdLinkUrl",
|
||||
"mdCode",
|
||||
"mdCodeBlock",
|
||||
"mdCodeBlockBorder",
|
||||
"mdQuote",
|
||||
"mdQuoteBorder",
|
||||
"mdHr",
|
||||
"mdListBullet",
|
||||
"toolDiffAdded",
|
||||
"toolDiffRemoved",
|
||||
"toolDiffContext",
|
||||
"syntaxComment",
|
||||
"syntaxKeyword",
|
||||
"syntaxFunction",
|
||||
"syntaxVariable",
|
||||
"syntaxString",
|
||||
"syntaxNumber",
|
||||
"syntaxType",
|
||||
"syntaxOperator",
|
||||
"syntaxPunctuation",
|
||||
"thinkingOff",
|
||||
"thinkingMinimal",
|
||||
"thinkingLow",
|
||||
"thinkingMedium",
|
||||
"thinkingHigh",
|
||||
"thinkingXhigh",
|
||||
"bashMode"
|
||||
],
|
||||
"properties": {
|
||||
"accent": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Primary accent color (logo, selected items, cursor)"
|
||||
},
|
||||
"border": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Normal borders"
|
||||
},
|
||||
"borderAccent": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Highlighted borders"
|
||||
},
|
||||
"borderMuted": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Subtle borders"
|
||||
},
|
||||
"success": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Success states"
|
||||
},
|
||||
"error": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Error states"
|
||||
},
|
||||
"warning": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Warning states"
|
||||
},
|
||||
"muted": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Secondary/dimmed text"
|
||||
},
|
||||
"dim": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Very dimmed text (more subtle than muted)"
|
||||
},
|
||||
"text": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Default text color (usually empty string)"
|
||||
},
|
||||
"thinkingText": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Thinking block text color"
|
||||
},
|
||||
"scrollbarTrack": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Fullscreen scrollbar track foreground (falls back to muted when omitted)"
|
||||
},
|
||||
"scrollbarThumb": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Fullscreen scrollbar thumb foreground (falls back to text when omitted)"
|
||||
},
|
||||
"selectedBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Selected item background"
|
||||
},
|
||||
"searchMatchBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Transcript search match background and current-match text (falls back to selectedBg when omitted)"
|
||||
},
|
||||
"searchMatchText": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Transcript search match text and current-match background (falls back to text when omitted)"
|
||||
},
|
||||
"userMessageBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "User message background"
|
||||
},
|
||||
"userMessageText": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "User message text color"
|
||||
},
|
||||
"customMessageBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Custom message background (hook-injected messages)"
|
||||
},
|
||||
"customMessageText": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Custom message text color"
|
||||
},
|
||||
"customMessageLabel": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Custom message type label color"
|
||||
},
|
||||
"toolPendingBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Tool execution box (pending state)"
|
||||
},
|
||||
"toolSuccessBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Tool execution box (success state)"
|
||||
},
|
||||
"toolErrorBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Tool execution box (error state)"
|
||||
},
|
||||
"toolTitle": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Tool execution box title color"
|
||||
},
|
||||
"toolOutput": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Tool execution box output text color"
|
||||
},
|
||||
"mdHeading": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown heading text"
|
||||
},
|
||||
"mdLink": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown link text"
|
||||
},
|
||||
"mdLinkUrl": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown link URL"
|
||||
},
|
||||
"mdCode": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown inline code"
|
||||
},
|
||||
"mdCodeBlock": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown code block content"
|
||||
},
|
||||
"mdCodeBlockBorder": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown code block fences"
|
||||
},
|
||||
"mdQuote": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown blockquote text"
|
||||
},
|
||||
"mdQuoteBorder": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown blockquote border"
|
||||
},
|
||||
"mdHr": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown horizontal rule"
|
||||
},
|
||||
"mdListBullet": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Markdown list bullets/numbers"
|
||||
},
|
||||
"toolDiffAdded": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Added lines in tool diffs"
|
||||
},
|
||||
"toolDiffRemoved": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Removed lines in tool diffs"
|
||||
},
|
||||
"toolDiffContext": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Context lines in tool diffs"
|
||||
},
|
||||
"syntaxComment": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Syntax highlighting: comments"
|
||||
},
|
||||
"syntaxKeyword": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Syntax highlighting: keywords"
|
||||
},
|
||||
"syntaxFunction": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Syntax highlighting: function names"
|
||||
},
|
||||
"syntaxVariable": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Syntax highlighting: variable names"
|
||||
},
|
||||
"syntaxString": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Syntax highlighting: string literals"
|
||||
},
|
||||
"syntaxNumber": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Syntax highlighting: number literals"
|
||||
},
|
||||
"syntaxType": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Syntax highlighting: type names"
|
||||
},
|
||||
"syntaxOperator": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Syntax highlighting: operators"
|
||||
},
|
||||
"syntaxPunctuation": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Syntax highlighting: punctuation"
|
||||
},
|
||||
"thinkingOff": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Thinking level border: off"
|
||||
},
|
||||
"thinkingMinimal": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Thinking level border: minimal"
|
||||
},
|
||||
"thinkingLow": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Thinking level border: low"
|
||||
},
|
||||
"thinkingMedium": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Thinking level border: medium"
|
||||
},
|
||||
"thinkingHigh": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Thinking level border: high"
|
||||
},
|
||||
"thinkingXhigh": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Thinking level border: xhigh"
|
||||
},
|
||||
"thinkingMax": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Thinking level border: max (falls back to thinkingXhigh when omitted)"
|
||||
},
|
||||
"bashMode": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Editor border color in bash mode"
|
||||
}
|
||||
},
|
||||
"description": "Theme color definitions (scrollbar, thinkingMax, and search highlight colors are optional and use compatible fallbacks)",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"export": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"pageBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Page background color"
|
||||
},
|
||||
"cardBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Card/container background color"
|
||||
},
|
||||
"infoBg": {
|
||||
"$ref": "#/$defs/ColorValue",
|
||||
"description": "Info sections background (system prompt, notices)"
|
||||
}
|
||||
},
|
||||
"description": "Optional colors for HTML export (defaults derived from userMessageBg if not specified)",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"title": "Pi Coding Agent Theme",
|
||||
"description": "Theme schema for Pi coding agent",
|
||||
"additionalProperties": false,
|
||||
"$defs": {
|
||||
"ColorValue": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "Hex color (#RGB or #RRGGBB), OKLCH or OKHSL color, variable reference, or empty string for terminal default"
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255,
|
||||
"description": "256-color palette index (0-255)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user