@pilllesss/yorn 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -0
- package/dist/modes/interactive/theme/dark.json +90 -0
- package/dist/modes/interactive/theme/light.json +89 -0
- package/dist/modes/interactive/theme/theme-schema.json +352 -0
- package/dist/providers/data/.manifest.json +1 -0
- package/dist/providers/data/amazon-bedrock.json +1 -0
- package/dist/providers/data/ant-ling.json +1 -0
- package/dist/providers/data/anthropic.json +1 -0
- package/dist/providers/data/azure-openai-responses.json +1 -0
- package/dist/providers/data/baseten.json +1 -0
- package/dist/providers/data/cerebras.json +1 -0
- package/dist/providers/data/cloudflare-ai-gateway.json +1 -0
- package/dist/providers/data/cloudflare-workers-ai.json +1 -0
- package/dist/providers/data/deepseek.json +1 -0
- package/dist/providers/data/fireworks.json +1 -0
- package/dist/providers/data/github-copilot.json +1 -0
- package/dist/providers/data/google-vertex.json +1 -0
- package/dist/providers/data/google.json +1 -0
- package/dist/providers/data/groq.json +1 -0
- package/dist/providers/data/huggingface.json +1 -0
- package/dist/providers/data/kimi-coding.json +1 -0
- package/dist/providers/data/minimax-cn.json +1 -0
- package/dist/providers/data/minimax.json +1 -0
- package/dist/providers/data/mistral.json +1 -0
- package/dist/providers/data/moonshotai-cn.json +1 -0
- package/dist/providers/data/moonshotai.json +1 -0
- package/dist/providers/data/nvidia.json +1 -0
- package/dist/providers/data/openai-codex.json +1 -0
- package/dist/providers/data/openai.json +1 -0
- package/dist/providers/data/opencode-go.json +1 -0
- package/dist/providers/data/opencode.json +1 -0
- package/dist/providers/data/openrouter.json +1 -0
- package/dist/providers/data/qwen-token-plan-cn.json +1 -0
- package/dist/providers/data/qwen-token-plan-individual.json +1 -0
- package/dist/providers/data/qwen-token-plan.json +1 -0
- package/dist/providers/data/together.json +1 -0
- package/dist/providers/data/vercel-ai-gateway.json +1 -0
- package/dist/providers/data/xai.json +1 -0
- package/dist/providers/data/xiaomi-token-plan-ams.json +1 -0
- package/dist/providers/data/xiaomi-token-plan-cn.json +1 -0
- package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -0
- package/dist/providers/data/xiaomi.json +1 -0
- package/dist/providers/data/zai-coding-cn.json +1 -0
- package/dist/providers/data/zai.json +1 -0
- package/dist/skills/add-provider/SKILL.md +151 -0
- package/dist/skills/agent-browser/SKILL.md +51 -0
- package/dist/skills/frontend-design/LICENSE.txt +177 -0
- package/dist/skills/frontend-design/SKILL.md +55 -0
- package/dist/skills/goal/SKILL.md +44 -0
- package/dist/skills/goal/pyproject.toml +17 -0
- package/dist/skills/goal/src/goal/__init__.py +52 -0
- package/dist/skills/graphify/SKILL.md +710 -0
- package/dist/skills/graphify/references/add-watch.md +56 -0
- package/dist/skills/graphify/references/exports.md +87 -0
- package/dist/skills/graphify/references/extraction-spec.md +70 -0
- package/dist/skills/graphify/references/github-and-merge.md +46 -0
- package/dist/skills/graphify/references/hooks.md +33 -0
- package/dist/skills/graphify/references/query.md +311 -0
- package/dist/skills/graphify/references/transcribe.md +52 -0
- package/dist/skills/graphify/references/update.md +210 -0
- package/dist/skills/screenshot/SKILL.md +267 -0
- package/dist/skills/screenshot/scripts/ensure_macos_permissions.sh +54 -0
- package/dist/skills/screenshot/scripts/macos_display_info.swift +22 -0
- package/dist/skills/screenshot/scripts/macos_permissions.swift +40 -0
- package/dist/skills/screenshot/scripts/macos_window_info.swift +126 -0
- package/dist/skills/screenshot/scripts/take_screenshot.ps1 +163 -0
- package/dist/skills/screenshot/scripts/take_screenshot.py +585 -0
- package/dist/skills/security-best-practices/LICENSE.txt +201 -0
- package/dist/skills/security-best-practices/SKILL.md +86 -0
- package/dist/skills/security-best-practices/agents/openai.yaml +4 -0
- package/dist/skills/security-best-practices/references/golang-general-backend-security.md +826 -0
- package/dist/skills/security-best-practices/references/javascript-express-web-server-security.md +1158 -0
- package/dist/skills/security-best-practices/references/javascript-general-web-frontend-security.md +747 -0
- package/dist/skills/security-best-practices/references/javascript-jquery-web-frontend-security.md +678 -0
- package/dist/skills/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1144 -0
- package/dist/skills/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +990 -0
- package/dist/skills/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +791 -0
- package/dist/skills/security-best-practices/references/python-django-web-server-security.md +882 -0
- package/dist/skills/security-best-practices/references/python-fastapi-web-server-security.md +1036 -0
- package/dist/skills/security-best-practices/references/python-flask-web-server-security.md +705 -0
- package/dist/skills/theme-factory/LICENSE.txt +202 -0
- package/dist/skills/theme-factory/SKILL.md +59 -0
- package/dist/skills/theme-factory/theme-showcase.pdf +0 -0
- package/dist/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/dist/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/dist/skills/theme-factory/themes/desert-rose.md +19 -0
- package/dist/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/dist/skills/theme-factory/themes/golden-hour.md +19 -0
- package/dist/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/dist/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/dist/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/dist/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/dist/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/dist/yorn.cjs +1773 -0
- package/package.json +86 -0
package/README.md
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Yorn
|
|
2
|
+
|
|
3
|
+
Yorn is a terminal AI coding agent. It runs in your terminal, reads and edits your files, executes commands, and helps you get real work done in your codebase.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npm install -g @pilllesss/yorn
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
This installs the global `yorn` command, usable from any directory.
|
|
12
|
+
|
|
13
|
+
## Quick start
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
# Interactive mode in the current directory
|
|
17
|
+
yorn
|
|
18
|
+
|
|
19
|
+
# One-shot (print) mode
|
|
20
|
+
yorn -p "explain this project"
|
|
21
|
+
|
|
22
|
+
# Show version
|
|
23
|
+
yorn --version
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
On first run, yorn walks you through picking a theme and configuring a model provider. API keys are stored in `~/.yorn/agent/auth.json`.
|
|
27
|
+
|
|
28
|
+
## Commands
|
|
29
|
+
|
|
30
|
+
| Command | Description |
|
|
31
|
+
| --- | --- |
|
|
32
|
+
| `yorn` | Start the interactive TUI |
|
|
33
|
+
| `yorn -p "<message>"` | Print mode (single response, scriptable) |
|
|
34
|
+
| `yorn --list-models` | List available models |
|
|
35
|
+
| `yorn auth <command>` | Print credentials or check provider readiness |
|
|
36
|
+
| `yorn update` | Update yorn itself from npm |
|
|
37
|
+
| `yorn update --models` | Refresh model catalogs |
|
|
38
|
+
| `yorn config` | Resource configuration TUI |
|
|
39
|
+
|
|
40
|
+
Run `yorn --help` for the full reference.
|
|
41
|
+
|
|
42
|
+
## Self-update
|
|
43
|
+
|
|
44
|
+
Every interactive start, yorn compares its own version with the latest published version of `@siwatfa/yorn` on the npm registry. When a newer version exists, yorn opens a new terminal window that runs the global install (for example `npm install -g @pilllesss/yorn@latest`) and exits the outdated instance. Once the install finishes, start `yorn` again.
|
|
45
|
+
|
|
46
|
+
You can also update manually at any time:
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
yorn update # or: npm install -g @pilllesss/yorn@latest
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Set `YORN_OFFLINE=1` or `YORN_SKIP_VERSION_CHECK=1` to disable all update checks.
|
|
53
|
+
|
|
54
|
+
## Configuration
|
|
55
|
+
|
|
56
|
+
User configuration lives in `~/.yorn/agent/`:
|
|
57
|
+
|
|
58
|
+
- `settings.json` — global settings (theme, model defaults, package lists)
|
|
59
|
+
- `auth.json` — provider API keys and OAuth tokens
|
|
60
|
+
- `models.json` — custom provider/model definitions
|
|
61
|
+
- `sessions/` — session transcripts
|
|
62
|
+
- `themes/` — custom themes
|
|
63
|
+
- `skills/`, `tools/`, `prompts/` — user resources
|
|
64
|
+
|
|
65
|
+
Project-local overrides live in `.yorn/settings.json` inside a trusted project.
|
|
66
|
+
|
|
67
|
+
## Environment variables
|
|
68
|
+
|
|
69
|
+
- `YORN_CODING_AGENT_DIR` — override the agent config directory (default: `~/.yorn/agent`)
|
|
70
|
+
- `YORN_OFFLINE` — disable all network checks (model refresh, version check)
|
|
71
|
+
- `YORN_SKIP_VERSION_CHECK` — disable the startup version check
|
|
72
|
+
- `YORN_MODEL` — default model selection (or use `--model` / interactive model picker)
|
|
73
|
+
|
|
74
|
+
## Development
|
|
75
|
+
|
|
76
|
+
```sh
|
|
77
|
+
npm install
|
|
78
|
+
npm run build # generate models and bundle the CLI to dist/yorn.cjs
|
|
79
|
+
npm run yorn # run from source with tsx
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## License
|
|
83
|
+
|
|
84
|
+
MIT
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/siwat/yorn/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "dark",
|
|
4
|
+
"vars": {
|
|
5
|
+
"cyan": "#ffaa00",
|
|
6
|
+
"blue": "#ff5500",
|
|
7
|
+
"green": "#9ece6a",
|
|
8
|
+
"red": "#f7768e",
|
|
9
|
+
"yellow": "#ffb703",
|
|
10
|
+
"text": "#f1f5f9",
|
|
11
|
+
"gray": "#94a3b8",
|
|
12
|
+
"dimGray": "#64748b",
|
|
13
|
+
"darkGray": "#334155",
|
|
14
|
+
"accent": "#ff6a00",
|
|
15
|
+
"selectedBg": "#3c1b06",
|
|
16
|
+
"userMsgBg": "#221206",
|
|
17
|
+
"toolPendingBg": "#2b1607",
|
|
18
|
+
"toolSuccessBg": "#122917",
|
|
19
|
+
"toolErrorBg": "#371616",
|
|
20
|
+
"customMsgBg": "#281407"
|
|
21
|
+
},
|
|
22
|
+
"colors": {
|
|
23
|
+
"accent": "accent",
|
|
24
|
+
"border": "blue",
|
|
25
|
+
"borderAccent": "cyan",
|
|
26
|
+
"borderMuted": "darkGray",
|
|
27
|
+
"success": "green",
|
|
28
|
+
"error": "red",
|
|
29
|
+
"warning": "yellow",
|
|
30
|
+
"muted": "gray",
|
|
31
|
+
"dim": "dimGray",
|
|
32
|
+
"text": "text",
|
|
33
|
+
"thinkingText": "gray",
|
|
34
|
+
|
|
35
|
+
"selectedBg": "selectedBg",
|
|
36
|
+
"scrollbarThumb": "selectedBg",
|
|
37
|
+
"searchMatchBg": "selectedBg",
|
|
38
|
+
"searchMatchText": "text",
|
|
39
|
+
"userMessageBg": "userMsgBg",
|
|
40
|
+
"userMessageText": "text",
|
|
41
|
+
"customMessageBg": "customMsgBg",
|
|
42
|
+
"customMessageText": "text",
|
|
43
|
+
"customMessageLabel": "#9575cd",
|
|
44
|
+
"toolPendingBg": "toolPendingBg",
|
|
45
|
+
"toolSuccessBg": "toolSuccessBg",
|
|
46
|
+
"toolErrorBg": "toolErrorBg",
|
|
47
|
+
"toolTitle": "text",
|
|
48
|
+
"toolOutput": "gray",
|
|
49
|
+
|
|
50
|
+
"mdHeading": "#f0c674",
|
|
51
|
+
"mdLink": "#81a2be",
|
|
52
|
+
"mdLinkUrl": "dimGray",
|
|
53
|
+
"mdCode": "accent",
|
|
54
|
+
"mdCodeBlock": "green",
|
|
55
|
+
"mdCodeBlockBorder": "gray",
|
|
56
|
+
"mdQuote": "gray",
|
|
57
|
+
"mdQuoteBorder": "gray",
|
|
58
|
+
"mdHr": "gray",
|
|
59
|
+
"mdListBullet": "accent",
|
|
60
|
+
|
|
61
|
+
"toolDiffAdded": "green",
|
|
62
|
+
"toolDiffRemoved": "red",
|
|
63
|
+
"toolDiffContext": "gray",
|
|
64
|
+
|
|
65
|
+
"syntaxComment": "#6A9955",
|
|
66
|
+
"syntaxKeyword": "#569CD6",
|
|
67
|
+
"syntaxFunction": "#DCDCAA",
|
|
68
|
+
"syntaxVariable": "#9CDCFE",
|
|
69
|
+
"syntaxString": "#CE9178",
|
|
70
|
+
"syntaxNumber": "#B5CEA8",
|
|
71
|
+
"syntaxType": "#4EC9B0",
|
|
72
|
+
"syntaxOperator": "#D4D4D4",
|
|
73
|
+
"syntaxPunctuation": "#D4D4D4",
|
|
74
|
+
|
|
75
|
+
"thinkingOff": "darkGray",
|
|
76
|
+
"thinkingMinimal": "#6e6e6e",
|
|
77
|
+
"thinkingLow": "#5f87af",
|
|
78
|
+
"thinkingMedium": "#81a2be",
|
|
79
|
+
"thinkingHigh": "#b294bb",
|
|
80
|
+
"thinkingXhigh": "#d183e8",
|
|
81
|
+
"thinkingMax": "#ff5fff",
|
|
82
|
+
|
|
83
|
+
"bashMode": "green"
|
|
84
|
+
},
|
|
85
|
+
"export": {
|
|
86
|
+
"pageBg": "#18181e",
|
|
87
|
+
"cardBg": "#1e1e24",
|
|
88
|
+
"infoBg": "#3c3728"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/siwat/yorn/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "light",
|
|
4
|
+
"vars": {
|
|
5
|
+
"teal": "#5a8080",
|
|
6
|
+
"blue": "#547da7",
|
|
7
|
+
"green": "#588458",
|
|
8
|
+
"red": "#aa5555",
|
|
9
|
+
"yellow": "#9a7326",
|
|
10
|
+
"text": "#1f2328",
|
|
11
|
+
"mediumGray": "#6c6c6c",
|
|
12
|
+
"dimGray": "#767676",
|
|
13
|
+
"lightGray": "#b0b0b0",
|
|
14
|
+
"selectedBg": "#d0d0e0",
|
|
15
|
+
"userMsgBg": "#e8e8e8",
|
|
16
|
+
"toolPendingBg": "#e8e8f0",
|
|
17
|
+
"toolSuccessBg": "#e8f0e8",
|
|
18
|
+
"toolErrorBg": "#f0e8e8",
|
|
19
|
+
"customMsgBg": "#ede7f6"
|
|
20
|
+
},
|
|
21
|
+
"colors": {
|
|
22
|
+
"accent": "teal",
|
|
23
|
+
"border": "blue",
|
|
24
|
+
"borderAccent": "teal",
|
|
25
|
+
"borderMuted": "lightGray",
|
|
26
|
+
"success": "green",
|
|
27
|
+
"error": "red",
|
|
28
|
+
"warning": "yellow",
|
|
29
|
+
"muted": "mediumGray",
|
|
30
|
+
"dim": "dimGray",
|
|
31
|
+
"text": "text",
|
|
32
|
+
"thinkingText": "mediumGray",
|
|
33
|
+
|
|
34
|
+
"selectedBg": "selectedBg",
|
|
35
|
+
"scrollbarThumb": "selectedBg",
|
|
36
|
+
"searchMatchBg": "selectedBg",
|
|
37
|
+
"searchMatchText": "text",
|
|
38
|
+
"userMessageBg": "userMsgBg",
|
|
39
|
+
"userMessageText": "text",
|
|
40
|
+
"customMessageBg": "customMsgBg",
|
|
41
|
+
"customMessageText": "text",
|
|
42
|
+
"customMessageLabel": "#7e57c2",
|
|
43
|
+
"toolPendingBg": "toolPendingBg",
|
|
44
|
+
"toolSuccessBg": "toolSuccessBg",
|
|
45
|
+
"toolErrorBg": "toolErrorBg",
|
|
46
|
+
"toolTitle": "text",
|
|
47
|
+
"toolOutput": "mediumGray",
|
|
48
|
+
|
|
49
|
+
"mdHeading": "yellow",
|
|
50
|
+
"mdLink": "blue",
|
|
51
|
+
"mdLinkUrl": "dimGray",
|
|
52
|
+
"mdCode": "teal",
|
|
53
|
+
"mdCodeBlock": "green",
|
|
54
|
+
"mdCodeBlockBorder": "mediumGray",
|
|
55
|
+
"mdQuote": "mediumGray",
|
|
56
|
+
"mdQuoteBorder": "mediumGray",
|
|
57
|
+
"mdHr": "mediumGray",
|
|
58
|
+
"mdListBullet": "green",
|
|
59
|
+
|
|
60
|
+
"toolDiffAdded": "green",
|
|
61
|
+
"toolDiffRemoved": "red",
|
|
62
|
+
"toolDiffContext": "mediumGray",
|
|
63
|
+
|
|
64
|
+
"syntaxComment": "#008000",
|
|
65
|
+
"syntaxKeyword": "#0000FF",
|
|
66
|
+
"syntaxFunction": "#795E26",
|
|
67
|
+
"syntaxVariable": "#001080",
|
|
68
|
+
"syntaxString": "#A31515",
|
|
69
|
+
"syntaxNumber": "#098658",
|
|
70
|
+
"syntaxType": "#267F99",
|
|
71
|
+
"syntaxOperator": "#000000",
|
|
72
|
+
"syntaxPunctuation": "#000000",
|
|
73
|
+
|
|
74
|
+
"thinkingOff": "lightGray",
|
|
75
|
+
"thinkingMinimal": "#767676",
|
|
76
|
+
"thinkingLow": "blue",
|
|
77
|
+
"thinkingMedium": "teal",
|
|
78
|
+
"thinkingHigh": "#875f87",
|
|
79
|
+
"thinkingXhigh": "#8b008b",
|
|
80
|
+
"thinkingMax": "#af005f",
|
|
81
|
+
|
|
82
|
+
"bashMode": "green"
|
|
83
|
+
},
|
|
84
|
+
"export": {
|
|
85
|
+
"pageBg": "#f8f8f8",
|
|
86
|
+
"cardBg": "#ffffff",
|
|
87
|
+
"infoBg": "#fffae6"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Yorn Coding Agent Theme",
|
|
4
|
+
"description": "Theme schema for Yorn coding agent",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["name", "colors"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"$schema": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "JSON schema reference"
|
|
11
|
+
},
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"pattern": "^[^/]+$",
|
|
15
|
+
"description": "Theme name. Must not contain '/' because it is reserved for automatic light/dark theme settings."
|
|
16
|
+
},
|
|
17
|
+
"vars": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"description": "Reusable color variables",
|
|
20
|
+
"additionalProperties": {
|
|
21
|
+
"oneOf": [
|
|
22
|
+
{
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "integer",
|
|
28
|
+
"minimum": 0,
|
|
29
|
+
"maximum": 255,
|
|
30
|
+
"description": "256-color palette index (0-255)"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"colors": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"description": "Theme color definitions (thinkingMax, scrollbarThumb, and search highlight colors are optional and use compatible fallbacks)",
|
|
38
|
+
"required": [
|
|
39
|
+
"accent",
|
|
40
|
+
"border",
|
|
41
|
+
"borderAccent",
|
|
42
|
+
"borderMuted",
|
|
43
|
+
"success",
|
|
44
|
+
"error",
|
|
45
|
+
"warning",
|
|
46
|
+
"muted",
|
|
47
|
+
"dim",
|
|
48
|
+
"text",
|
|
49
|
+
"thinkingText",
|
|
50
|
+
"selectedBg",
|
|
51
|
+
"userMessageBg",
|
|
52
|
+
"userMessageText",
|
|
53
|
+
"customMessageBg",
|
|
54
|
+
"customMessageText",
|
|
55
|
+
"customMessageLabel",
|
|
56
|
+
"toolPendingBg",
|
|
57
|
+
"toolSuccessBg",
|
|
58
|
+
"toolErrorBg",
|
|
59
|
+
"toolTitle",
|
|
60
|
+
"toolOutput",
|
|
61
|
+
"mdHeading",
|
|
62
|
+
"mdLink",
|
|
63
|
+
"mdLinkUrl",
|
|
64
|
+
"mdCode",
|
|
65
|
+
"mdCodeBlock",
|
|
66
|
+
"mdCodeBlockBorder",
|
|
67
|
+
"mdQuote",
|
|
68
|
+
"mdQuoteBorder",
|
|
69
|
+
"mdHr",
|
|
70
|
+
"mdListBullet",
|
|
71
|
+
"toolDiffAdded",
|
|
72
|
+
"toolDiffRemoved",
|
|
73
|
+
"toolDiffContext",
|
|
74
|
+
"syntaxComment",
|
|
75
|
+
"syntaxKeyword",
|
|
76
|
+
"syntaxFunction",
|
|
77
|
+
"syntaxVariable",
|
|
78
|
+
"syntaxString",
|
|
79
|
+
"syntaxNumber",
|
|
80
|
+
"syntaxType",
|
|
81
|
+
"syntaxOperator",
|
|
82
|
+
"syntaxPunctuation",
|
|
83
|
+
"thinkingOff",
|
|
84
|
+
"thinkingMinimal",
|
|
85
|
+
"thinkingLow",
|
|
86
|
+
"thinkingMedium",
|
|
87
|
+
"thinkingHigh",
|
|
88
|
+
"thinkingXhigh",
|
|
89
|
+
"bashMode"
|
|
90
|
+
],
|
|
91
|
+
"properties": {
|
|
92
|
+
"accent": {
|
|
93
|
+
"$ref": "#/$defs/colorValue",
|
|
94
|
+
"description": "Primary accent color (logo, selected items, cursor)"
|
|
95
|
+
},
|
|
96
|
+
"border": {
|
|
97
|
+
"$ref": "#/$defs/colorValue",
|
|
98
|
+
"description": "Normal borders"
|
|
99
|
+
},
|
|
100
|
+
"borderAccent": {
|
|
101
|
+
"$ref": "#/$defs/colorValue",
|
|
102
|
+
"description": "Highlighted borders"
|
|
103
|
+
},
|
|
104
|
+
"borderMuted": {
|
|
105
|
+
"$ref": "#/$defs/colorValue",
|
|
106
|
+
"description": "Subtle borders"
|
|
107
|
+
},
|
|
108
|
+
"success": {
|
|
109
|
+
"$ref": "#/$defs/colorValue",
|
|
110
|
+
"description": "Success states"
|
|
111
|
+
},
|
|
112
|
+
"error": {
|
|
113
|
+
"$ref": "#/$defs/colorValue",
|
|
114
|
+
"description": "Error states"
|
|
115
|
+
},
|
|
116
|
+
"warning": {
|
|
117
|
+
"$ref": "#/$defs/colorValue",
|
|
118
|
+
"description": "Warning states"
|
|
119
|
+
},
|
|
120
|
+
"muted": {
|
|
121
|
+
"$ref": "#/$defs/colorValue",
|
|
122
|
+
"description": "Secondary/dimmed text"
|
|
123
|
+
},
|
|
124
|
+
"dim": {
|
|
125
|
+
"$ref": "#/$defs/colorValue",
|
|
126
|
+
"description": "Very dimmed text (more subtle than muted)"
|
|
127
|
+
},
|
|
128
|
+
"text": {
|
|
129
|
+
"$ref": "#/$defs/colorValue",
|
|
130
|
+
"description": "Default text color (usually empty string)"
|
|
131
|
+
},
|
|
132
|
+
"thinkingText": {
|
|
133
|
+
"$ref": "#/$defs/colorValue",
|
|
134
|
+
"description": "Thinking block text color"
|
|
135
|
+
},
|
|
136
|
+
"selectedBg": {
|
|
137
|
+
"$ref": "#/$defs/colorValue",
|
|
138
|
+
"description": "Selected item background"
|
|
139
|
+
},
|
|
140
|
+
"scrollbarThumb": {
|
|
141
|
+
"$ref": "#/$defs/colorValue",
|
|
142
|
+
"description": "Fullscreen scrollbar thumb background (falls back to selectedBg when omitted)"
|
|
143
|
+
},
|
|
144
|
+
"searchMatchBg": {
|
|
145
|
+
"$ref": "#/$defs/colorValue",
|
|
146
|
+
"description": "Transcript search match background and current-match text (falls back to selectedBg when omitted)"
|
|
147
|
+
},
|
|
148
|
+
"searchMatchText": {
|
|
149
|
+
"$ref": "#/$defs/colorValue",
|
|
150
|
+
"description": "Transcript search match text and current-match background (falls back to text when omitted)"
|
|
151
|
+
},
|
|
152
|
+
"userMessageBg": {
|
|
153
|
+
"$ref": "#/$defs/colorValue",
|
|
154
|
+
"description": "User message background"
|
|
155
|
+
},
|
|
156
|
+
"userMessageText": {
|
|
157
|
+
"$ref": "#/$defs/colorValue",
|
|
158
|
+
"description": "User message text color"
|
|
159
|
+
},
|
|
160
|
+
"customMessageBg": {
|
|
161
|
+
"$ref": "#/$defs/colorValue",
|
|
162
|
+
"description": "Custom message background (hook-injected messages)"
|
|
163
|
+
},
|
|
164
|
+
"customMessageText": {
|
|
165
|
+
"$ref": "#/$defs/colorValue",
|
|
166
|
+
"description": "Custom message text color"
|
|
167
|
+
},
|
|
168
|
+
"customMessageLabel": {
|
|
169
|
+
"$ref": "#/$defs/colorValue",
|
|
170
|
+
"description": "Custom message type label color"
|
|
171
|
+
},
|
|
172
|
+
"toolPendingBg": {
|
|
173
|
+
"$ref": "#/$defs/colorValue",
|
|
174
|
+
"description": "Tool execution box (pending state)"
|
|
175
|
+
},
|
|
176
|
+
"toolSuccessBg": {
|
|
177
|
+
"$ref": "#/$defs/colorValue",
|
|
178
|
+
"description": "Tool execution box (success state)"
|
|
179
|
+
},
|
|
180
|
+
"toolErrorBg": {
|
|
181
|
+
"$ref": "#/$defs/colorValue",
|
|
182
|
+
"description": "Tool execution box (error state)"
|
|
183
|
+
},
|
|
184
|
+
"toolTitle": {
|
|
185
|
+
"$ref": "#/$defs/colorValue",
|
|
186
|
+
"description": "Tool execution box title color"
|
|
187
|
+
},
|
|
188
|
+
"toolOutput": {
|
|
189
|
+
"$ref": "#/$defs/colorValue",
|
|
190
|
+
"description": "Tool execution box output text color"
|
|
191
|
+
},
|
|
192
|
+
"mdHeading": {
|
|
193
|
+
"$ref": "#/$defs/colorValue",
|
|
194
|
+
"description": "Markdown heading text"
|
|
195
|
+
},
|
|
196
|
+
"mdLink": {
|
|
197
|
+
"$ref": "#/$defs/colorValue",
|
|
198
|
+
"description": "Markdown link text"
|
|
199
|
+
},
|
|
200
|
+
"mdLinkUrl": {
|
|
201
|
+
"$ref": "#/$defs/colorValue",
|
|
202
|
+
"description": "Markdown link URL"
|
|
203
|
+
},
|
|
204
|
+
"mdCode": {
|
|
205
|
+
"$ref": "#/$defs/colorValue",
|
|
206
|
+
"description": "Markdown inline code"
|
|
207
|
+
},
|
|
208
|
+
"mdCodeBlock": {
|
|
209
|
+
"$ref": "#/$defs/colorValue",
|
|
210
|
+
"description": "Markdown code block content"
|
|
211
|
+
},
|
|
212
|
+
"mdCodeBlockBorder": {
|
|
213
|
+
"$ref": "#/$defs/colorValue",
|
|
214
|
+
"description": "Markdown code block fences"
|
|
215
|
+
},
|
|
216
|
+
"mdQuote": {
|
|
217
|
+
"$ref": "#/$defs/colorValue",
|
|
218
|
+
"description": "Markdown blockquote text"
|
|
219
|
+
},
|
|
220
|
+
"mdQuoteBorder": {
|
|
221
|
+
"$ref": "#/$defs/colorValue",
|
|
222
|
+
"description": "Markdown blockquote border"
|
|
223
|
+
},
|
|
224
|
+
"mdHr": {
|
|
225
|
+
"$ref": "#/$defs/colorValue",
|
|
226
|
+
"description": "Markdown horizontal rule"
|
|
227
|
+
},
|
|
228
|
+
"mdListBullet": {
|
|
229
|
+
"$ref": "#/$defs/colorValue",
|
|
230
|
+
"description": "Markdown list bullets/numbers"
|
|
231
|
+
},
|
|
232
|
+
"toolDiffAdded": {
|
|
233
|
+
"$ref": "#/$defs/colorValue",
|
|
234
|
+
"description": "Added lines in tool diffs"
|
|
235
|
+
},
|
|
236
|
+
"toolDiffRemoved": {
|
|
237
|
+
"$ref": "#/$defs/colorValue",
|
|
238
|
+
"description": "Removed lines in tool diffs"
|
|
239
|
+
},
|
|
240
|
+
"toolDiffContext": {
|
|
241
|
+
"$ref": "#/$defs/colorValue",
|
|
242
|
+
"description": "Context lines in tool diffs"
|
|
243
|
+
},
|
|
244
|
+
"syntaxComment": {
|
|
245
|
+
"$ref": "#/$defs/colorValue",
|
|
246
|
+
"description": "Syntax highlighting: comments"
|
|
247
|
+
},
|
|
248
|
+
"syntaxKeyword": {
|
|
249
|
+
"$ref": "#/$defs/colorValue",
|
|
250
|
+
"description": "Syntax highlighting: keywords"
|
|
251
|
+
},
|
|
252
|
+
"syntaxFunction": {
|
|
253
|
+
"$ref": "#/$defs/colorValue",
|
|
254
|
+
"description": "Syntax highlighting: function names"
|
|
255
|
+
},
|
|
256
|
+
"syntaxVariable": {
|
|
257
|
+
"$ref": "#/$defs/colorValue",
|
|
258
|
+
"description": "Syntax highlighting: variable names"
|
|
259
|
+
},
|
|
260
|
+
"syntaxString": {
|
|
261
|
+
"$ref": "#/$defs/colorValue",
|
|
262
|
+
"description": "Syntax highlighting: string literals"
|
|
263
|
+
},
|
|
264
|
+
"syntaxNumber": {
|
|
265
|
+
"$ref": "#/$defs/colorValue",
|
|
266
|
+
"description": "Syntax highlighting: number literals"
|
|
267
|
+
},
|
|
268
|
+
"syntaxType": {
|
|
269
|
+
"$ref": "#/$defs/colorValue",
|
|
270
|
+
"description": "Syntax highlighting: type names"
|
|
271
|
+
},
|
|
272
|
+
"syntaxOperator": {
|
|
273
|
+
"$ref": "#/$defs/colorValue",
|
|
274
|
+
"description": "Syntax highlighting: operators"
|
|
275
|
+
},
|
|
276
|
+
"syntaxPunctuation": {
|
|
277
|
+
"$ref": "#/$defs/colorValue",
|
|
278
|
+
"description": "Syntax highlighting: punctuation"
|
|
279
|
+
},
|
|
280
|
+
"thinkingOff": {
|
|
281
|
+
"$ref": "#/$defs/colorValue",
|
|
282
|
+
"description": "Thinking level border: off"
|
|
283
|
+
},
|
|
284
|
+
"thinkingMinimal": {
|
|
285
|
+
"$ref": "#/$defs/colorValue",
|
|
286
|
+
"description": "Thinking level border: minimal"
|
|
287
|
+
},
|
|
288
|
+
"thinkingLow": {
|
|
289
|
+
"$ref": "#/$defs/colorValue",
|
|
290
|
+
"description": "Thinking level border: low"
|
|
291
|
+
},
|
|
292
|
+
"thinkingMedium": {
|
|
293
|
+
"$ref": "#/$defs/colorValue",
|
|
294
|
+
"description": "Thinking level border: medium"
|
|
295
|
+
},
|
|
296
|
+
"thinkingHigh": {
|
|
297
|
+
"$ref": "#/$defs/colorValue",
|
|
298
|
+
"description": "Thinking level border: high"
|
|
299
|
+
},
|
|
300
|
+
"thinkingXhigh": {
|
|
301
|
+
"$ref": "#/$defs/colorValue",
|
|
302
|
+
"description": "Thinking level border: xhigh"
|
|
303
|
+
},
|
|
304
|
+
"thinkingMax": {
|
|
305
|
+
"$ref": "#/$defs/colorValue",
|
|
306
|
+
"description": "Thinking level border: max (falls back to thinkingXhigh when omitted)"
|
|
307
|
+
},
|
|
308
|
+
"bashMode": {
|
|
309
|
+
"$ref": "#/$defs/colorValue",
|
|
310
|
+
"description": "Editor border color in bash mode"
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"additionalProperties": false
|
|
314
|
+
},
|
|
315
|
+
"export": {
|
|
316
|
+
"type": "object",
|
|
317
|
+
"description": "Optional colors for HTML export (defaults derived from userMessageBg if not specified)",
|
|
318
|
+
"properties": {
|
|
319
|
+
"pageBg": {
|
|
320
|
+
"$ref": "#/$defs/colorValue",
|
|
321
|
+
"description": "Page background color"
|
|
322
|
+
},
|
|
323
|
+
"cardBg": {
|
|
324
|
+
"$ref": "#/$defs/colorValue",
|
|
325
|
+
"description": "Card/container background color"
|
|
326
|
+
},
|
|
327
|
+
"infoBg": {
|
|
328
|
+
"$ref": "#/$defs/colorValue",
|
|
329
|
+
"description": "Info sections background (system prompt, notices)"
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
"additionalProperties": false
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
"additionalProperties": false,
|
|
336
|
+
"$defs": {
|
|
337
|
+
"colorValue": {
|
|
338
|
+
"oneOf": [
|
|
339
|
+
{
|
|
340
|
+
"type": "string",
|
|
341
|
+
"description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"type": "integer",
|
|
345
|
+
"minimum": 0,
|
|
346
|
+
"maximum": 255,
|
|
347
|
+
"description": "256-color palette index (0-255)"
|
|
348
|
+
}
|
|
349
|
+
]
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schemaVersion":3,"generatedAt":"2026-08-20T15:14:02.982Z","structureHash":"cd67987c6d043ddcad3c73389e71154baf189e8460528074eb889921f1c8872e","files":{"amazon-bedrock.json":"71441520503c82d14c788a16fdbd5314adc5b7b34abd65a3f260b96f493c2e90","ant-ling.json":"4979fe79d99ed97382d7ce40170c6132e932e77906de1eb54464c042e7d63633","anthropic.json":"e22c277e3a1ffddc3d2701b72787c9e0bd67b835de6b4cb806677b6b6a89a2f7","azure-openai-responses.json":"5315b6a2299fefbdbb6cc13a720544077c9498132ad5e3a7d76a8c1daa8e9335","baseten.json":"950433e7fcf9357ae3423b27fc0d32568b6e0990bb35c6e961dcb9740a6bba1b","cerebras.json":"38272a7525d6680c71bb4bb3c4085e871768b400832e2013b0e7fd92f8fd4f05","cloudflare-ai-gateway.json":"f8d54b2d4c8583194d87b48e31d85adc97156cc861db198ea173414fc835231a","cloudflare-workers-ai.json":"89e63a18886ecedd1d995cc90e4bfe06f73e2a79117b2f54f58fe60cdcf63df5","deepseek.json":"e3106724723fd82d48a3ff685da9908a3a7b7b4fd84cc3cfe97a6a23067b6029","fireworks.json":"2c85d89cd04288b15ff8a23af5eba72779cae9221f4bcfed1720ce6d41629fcc","github-copilot.json":"18f7c5ebf0fc29f14754615057c19b366e2c5f0f1e2828466fd2624362822825","google-vertex.json":"1f2fb67e61815616f5a243912622b373cb61fe1310c63e620c17b8e86899ce18","google.json":"c6d9822f7eda23cfeb7d29caee0baa7d2fa7bf3561252734a17428937fbcbfd1","groq.json":"f1eb899453e70b5e4479fe6eb78869ee99121fa6d4a019a5a05ab42d2ada8992","huggingface.json":"b2f15353177738beb5c0865ffcd92cc470e1c8ba6b6a4d2707cda12212a6043b","kimi-coding.json":"ba42a26a69e5cb2122c0b384ba572efae93f42239ad86f26c2b7320a14aa75a1","minimax-cn.json":"8ccd71ff838f4b78bb88809babb0dc32a4fcfaec2bc4f4083841000428df4f77","minimax.json":"253edd4c910a41c8bb252400ba099f3a4de0a8900ce154319288ab091b372987","mistral.json":"4f9d84bf1ba10cb14ff2c9e23e77d63441756ef3500375dd4ad10094614b215b","moonshotai-cn.json":"1e6146ff3477883636448c0f44222f0a52b3c4562ef8f4eecf7e941cdd59d12e","moonshotai.json":"d8d5209873058ddccd37c1f026833e2ea3f9476c3dc9628b4a940d407acc0b2e","nvidia.json":"3a550a8698ffe2cec3ebbfcd86ee21503c4a80d6af9419e5b41a52eabfa76b9a","openai-codex.json":"2712c2924a4a75213dddc743c0e5f08d50a781fe807f16d5afb5fb65b41c64c7","openai.json":"47746dfe79d92a7da58d7fae2c02a5d481b2eba2f5a914a42792552940b78b78","opencode-go.json":"08bfd78ca86621cf93b3e7811be6fd849d6e121b7120607a0231bab43fafaac6","opencode.json":"c148e42fe954c62d6de9cf8d815613ef659cc21d4a8dfd453d358548994df92f","openrouter.json":"bf785e67b0400cb22e72a128d0235a79b025e00adc8f8ee7888b518ba9e6b061","qwen-token-plan-cn.json":"700cb41cdee4c0ae2a5159eb3ab43f4cedc9d43e87c6fd1bcd410d71431f9856","qwen-token-plan-individual.json":"0e1578a5c0e11d65644bb42d1d6efee5af97a55a4881d0421ab68bd970d4d4ef","qwen-token-plan.json":"f85715f7f2023a162c47d1a84ba73747e2580d0a9aa33799b3232ce19527c1ab","together.json":"f7c9ba0441c1cbb8af41aaea3cfaa12559e1235a7335898e705d5918dc308c97","vercel-ai-gateway.json":"1e54819ea7eb4ed1fdb5d32bd8c4b81c356e0a69c20ba23c204ffa09919e4ea3","xai.json":"282838b0546d63106c81f1703cdf5ed31ebfe0c5f13a4bec0d590472cbbe03f2","xiaomi-token-plan-ams.json":"7ce8ed244672c45737d286ff3ca9c3a2686a5d4b2f0c5f71ab9348c14b14daf3","xiaomi-token-plan-cn.json":"684892b5fe6fa371d6040d2011c0fa33facd650d2eaf19f5dbee8efb33016200","xiaomi-token-plan-sgp.json":"b19e79b82ac4fdcb080e6d220106797504c885ed70b27fc2b3c1aa4810f32963","xiaomi.json":"810368d3828c8bb9498012a0d48639030c0c216b8c13e79da02daa515aa23448","zai-coding-cn.json":"663466fef5cca84909b9929671a48fefb3721c0990c61bbec05d8b1692247310","zai.json":"fd81b25003c3e653ee319c2ba0ce353a4f02df1a409246c8d0f96d13dd0ec592"}}
|