@oh-my-pi/pi-coding-agent 1.337.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.
Files changed (224) hide show
  1. package/CHANGELOG.md +1228 -0
  2. package/README.md +1041 -0
  3. package/docs/compaction.md +403 -0
  4. package/docs/custom-tools.md +541 -0
  5. package/docs/extension-loading.md +1004 -0
  6. package/docs/hooks.md +867 -0
  7. package/docs/rpc.md +1040 -0
  8. package/docs/sdk.md +994 -0
  9. package/docs/session-tree-plan.md +441 -0
  10. package/docs/session.md +240 -0
  11. package/docs/skills.md +290 -0
  12. package/docs/theme.md +637 -0
  13. package/docs/tree.md +197 -0
  14. package/docs/tui.md +341 -0
  15. package/examples/README.md +21 -0
  16. package/examples/custom-tools/README.md +124 -0
  17. package/examples/custom-tools/hello/index.ts +20 -0
  18. package/examples/custom-tools/question/index.ts +84 -0
  19. package/examples/custom-tools/subagent/README.md +172 -0
  20. package/examples/custom-tools/subagent/agents/planner.md +37 -0
  21. package/examples/custom-tools/subagent/agents/reviewer.md +35 -0
  22. package/examples/custom-tools/subagent/agents/scout.md +50 -0
  23. package/examples/custom-tools/subagent/agents/worker.md +24 -0
  24. package/examples/custom-tools/subagent/agents.ts +156 -0
  25. package/examples/custom-tools/subagent/commands/implement-and-review.md +10 -0
  26. package/examples/custom-tools/subagent/commands/implement.md +10 -0
  27. package/examples/custom-tools/subagent/commands/scout-and-plan.md +9 -0
  28. package/examples/custom-tools/subagent/index.ts +1002 -0
  29. package/examples/custom-tools/todo/index.ts +212 -0
  30. package/examples/hooks/README.md +56 -0
  31. package/examples/hooks/auto-commit-on-exit.ts +49 -0
  32. package/examples/hooks/confirm-destructive.ts +59 -0
  33. package/examples/hooks/custom-compaction.ts +116 -0
  34. package/examples/hooks/dirty-repo-guard.ts +52 -0
  35. package/examples/hooks/file-trigger.ts +41 -0
  36. package/examples/hooks/git-checkpoint.ts +53 -0
  37. package/examples/hooks/handoff.ts +150 -0
  38. package/examples/hooks/permission-gate.ts +34 -0
  39. package/examples/hooks/protected-paths.ts +30 -0
  40. package/examples/hooks/qna.ts +119 -0
  41. package/examples/hooks/snake.ts +343 -0
  42. package/examples/hooks/status-line.ts +40 -0
  43. package/examples/sdk/01-minimal.ts +22 -0
  44. package/examples/sdk/02-custom-model.ts +49 -0
  45. package/examples/sdk/03-custom-prompt.ts +44 -0
  46. package/examples/sdk/04-skills.ts +44 -0
  47. package/examples/sdk/05-tools.ts +90 -0
  48. package/examples/sdk/06-hooks.ts +61 -0
  49. package/examples/sdk/07-context-files.ts +36 -0
  50. package/examples/sdk/08-slash-commands.ts +42 -0
  51. package/examples/sdk/09-api-keys-and-oauth.ts +55 -0
  52. package/examples/sdk/10-settings.ts +38 -0
  53. package/examples/sdk/11-sessions.ts +48 -0
  54. package/examples/sdk/12-full-control.ts +95 -0
  55. package/examples/sdk/README.md +154 -0
  56. package/package.json +81 -0
  57. package/src/cli/args.ts +246 -0
  58. package/src/cli/file-processor.ts +72 -0
  59. package/src/cli/list-models.ts +104 -0
  60. package/src/cli/plugin-cli.ts +650 -0
  61. package/src/cli/session-picker.ts +41 -0
  62. package/src/cli.ts +10 -0
  63. package/src/commands/init.md +20 -0
  64. package/src/config.ts +159 -0
  65. package/src/core/agent-session.ts +1900 -0
  66. package/src/core/auth-storage.ts +236 -0
  67. package/src/core/bash-executor.ts +196 -0
  68. package/src/core/compaction/branch-summarization.ts +343 -0
  69. package/src/core/compaction/compaction.ts +742 -0
  70. package/src/core/compaction/index.ts +7 -0
  71. package/src/core/compaction/utils.ts +154 -0
  72. package/src/core/custom-tools/index.ts +21 -0
  73. package/src/core/custom-tools/loader.ts +248 -0
  74. package/src/core/custom-tools/types.ts +169 -0
  75. package/src/core/custom-tools/wrapper.ts +28 -0
  76. package/src/core/exec.ts +129 -0
  77. package/src/core/export-html/index.ts +211 -0
  78. package/src/core/export-html/template.css +781 -0
  79. package/src/core/export-html/template.html +54 -0
  80. package/src/core/export-html/template.js +1185 -0
  81. package/src/core/export-html/vendor/highlight.min.js +1213 -0
  82. package/src/core/export-html/vendor/marked.min.js +6 -0
  83. package/src/core/hooks/index.ts +16 -0
  84. package/src/core/hooks/loader.ts +312 -0
  85. package/src/core/hooks/runner.ts +434 -0
  86. package/src/core/hooks/tool-wrapper.ts +99 -0
  87. package/src/core/hooks/types.ts +773 -0
  88. package/src/core/index.ts +52 -0
  89. package/src/core/mcp/client.ts +158 -0
  90. package/src/core/mcp/config.ts +154 -0
  91. package/src/core/mcp/index.ts +45 -0
  92. package/src/core/mcp/loader.ts +68 -0
  93. package/src/core/mcp/manager.ts +181 -0
  94. package/src/core/mcp/tool-bridge.ts +148 -0
  95. package/src/core/mcp/transports/http.ts +316 -0
  96. package/src/core/mcp/transports/index.ts +6 -0
  97. package/src/core/mcp/transports/stdio.ts +252 -0
  98. package/src/core/mcp/types.ts +220 -0
  99. package/src/core/messages.ts +189 -0
  100. package/src/core/model-registry.ts +317 -0
  101. package/src/core/model-resolver.ts +393 -0
  102. package/src/core/plugins/doctor.ts +59 -0
  103. package/src/core/plugins/index.ts +38 -0
  104. package/src/core/plugins/installer.ts +189 -0
  105. package/src/core/plugins/loader.ts +338 -0
  106. package/src/core/plugins/manager.ts +672 -0
  107. package/src/core/plugins/parser.ts +105 -0
  108. package/src/core/plugins/paths.ts +32 -0
  109. package/src/core/plugins/types.ts +190 -0
  110. package/src/core/sdk.ts +760 -0
  111. package/src/core/session-manager.ts +1128 -0
  112. package/src/core/settings-manager.ts +443 -0
  113. package/src/core/skills.ts +437 -0
  114. package/src/core/slash-commands.ts +248 -0
  115. package/src/core/system-prompt.ts +439 -0
  116. package/src/core/timings.ts +25 -0
  117. package/src/core/tools/ask.ts +211 -0
  118. package/src/core/tools/bash-interceptor.ts +120 -0
  119. package/src/core/tools/bash.ts +250 -0
  120. package/src/core/tools/context.ts +32 -0
  121. package/src/core/tools/edit-diff.ts +475 -0
  122. package/src/core/tools/edit.ts +208 -0
  123. package/src/core/tools/exa/company.ts +59 -0
  124. package/src/core/tools/exa/index.ts +64 -0
  125. package/src/core/tools/exa/linkedin.ts +59 -0
  126. package/src/core/tools/exa/logger.ts +56 -0
  127. package/src/core/tools/exa/mcp-client.ts +368 -0
  128. package/src/core/tools/exa/render.ts +196 -0
  129. package/src/core/tools/exa/researcher.ts +90 -0
  130. package/src/core/tools/exa/search.ts +337 -0
  131. package/src/core/tools/exa/types.ts +168 -0
  132. package/src/core/tools/exa/websets.ts +248 -0
  133. package/src/core/tools/find.ts +261 -0
  134. package/src/core/tools/grep.ts +555 -0
  135. package/src/core/tools/index.ts +202 -0
  136. package/src/core/tools/ls.ts +140 -0
  137. package/src/core/tools/lsp/client.ts +605 -0
  138. package/src/core/tools/lsp/config.ts +147 -0
  139. package/src/core/tools/lsp/edits.ts +101 -0
  140. package/src/core/tools/lsp/index.ts +804 -0
  141. package/src/core/tools/lsp/render.ts +447 -0
  142. package/src/core/tools/lsp/rust-analyzer.ts +145 -0
  143. package/src/core/tools/lsp/types.ts +463 -0
  144. package/src/core/tools/lsp/utils.ts +486 -0
  145. package/src/core/tools/notebook.ts +229 -0
  146. package/src/core/tools/path-utils.ts +61 -0
  147. package/src/core/tools/read.ts +240 -0
  148. package/src/core/tools/renderers.ts +540 -0
  149. package/src/core/tools/task/agents.ts +153 -0
  150. package/src/core/tools/task/artifacts.ts +114 -0
  151. package/src/core/tools/task/bundled-agents/browser.md +71 -0
  152. package/src/core/tools/task/bundled-agents/explore.md +82 -0
  153. package/src/core/tools/task/bundled-agents/plan.md +54 -0
  154. package/src/core/tools/task/bundled-agents/reviewer.md +59 -0
  155. package/src/core/tools/task/bundled-agents/task.md +53 -0
  156. package/src/core/tools/task/bundled-commands/architect-plan.md +10 -0
  157. package/src/core/tools/task/bundled-commands/implement-with-critic.md +11 -0
  158. package/src/core/tools/task/bundled-commands/implement.md +11 -0
  159. package/src/core/tools/task/commands.ts +213 -0
  160. package/src/core/tools/task/discovery.ts +208 -0
  161. package/src/core/tools/task/executor.ts +367 -0
  162. package/src/core/tools/task/index.ts +388 -0
  163. package/src/core/tools/task/model-resolver.ts +115 -0
  164. package/src/core/tools/task/parallel.ts +38 -0
  165. package/src/core/tools/task/render.ts +232 -0
  166. package/src/core/tools/task/types.ts +99 -0
  167. package/src/core/tools/truncate.ts +265 -0
  168. package/src/core/tools/web-fetch.ts +2370 -0
  169. package/src/core/tools/web-search/auth.ts +193 -0
  170. package/src/core/tools/web-search/index.ts +537 -0
  171. package/src/core/tools/web-search/providers/anthropic.ts +198 -0
  172. package/src/core/tools/web-search/providers/exa.ts +302 -0
  173. package/src/core/tools/web-search/providers/perplexity.ts +195 -0
  174. package/src/core/tools/web-search/render.ts +182 -0
  175. package/src/core/tools/web-search/types.ts +180 -0
  176. package/src/core/tools/write.ts +99 -0
  177. package/src/index.ts +176 -0
  178. package/src/main.ts +464 -0
  179. package/src/migrations.ts +135 -0
  180. package/src/modes/index.ts +43 -0
  181. package/src/modes/interactive/components/armin.ts +382 -0
  182. package/src/modes/interactive/components/assistant-message.ts +86 -0
  183. package/src/modes/interactive/components/bash-execution.ts +196 -0
  184. package/src/modes/interactive/components/bordered-loader.ts +41 -0
  185. package/src/modes/interactive/components/branch-summary-message.ts +42 -0
  186. package/src/modes/interactive/components/compaction-summary-message.ts +45 -0
  187. package/src/modes/interactive/components/custom-editor.ts +122 -0
  188. package/src/modes/interactive/components/diff.ts +147 -0
  189. package/src/modes/interactive/components/dynamic-border.ts +25 -0
  190. package/src/modes/interactive/components/footer.ts +381 -0
  191. package/src/modes/interactive/components/hook-editor.ts +117 -0
  192. package/src/modes/interactive/components/hook-input.ts +64 -0
  193. package/src/modes/interactive/components/hook-message.ts +96 -0
  194. package/src/modes/interactive/components/hook-selector.ts +91 -0
  195. package/src/modes/interactive/components/model-selector.ts +247 -0
  196. package/src/modes/interactive/components/oauth-selector.ts +120 -0
  197. package/src/modes/interactive/components/plugin-settings.ts +479 -0
  198. package/src/modes/interactive/components/queue-mode-selector.ts +56 -0
  199. package/src/modes/interactive/components/session-selector.ts +204 -0
  200. package/src/modes/interactive/components/settings-selector.ts +453 -0
  201. package/src/modes/interactive/components/show-images-selector.ts +45 -0
  202. package/src/modes/interactive/components/theme-selector.ts +62 -0
  203. package/src/modes/interactive/components/thinking-selector.ts +64 -0
  204. package/src/modes/interactive/components/tool-execution.ts +675 -0
  205. package/src/modes/interactive/components/tree-selector.ts +866 -0
  206. package/src/modes/interactive/components/user-message-selector.ts +159 -0
  207. package/src/modes/interactive/components/user-message.ts +18 -0
  208. package/src/modes/interactive/components/visual-truncate.ts +50 -0
  209. package/src/modes/interactive/components/welcome.ts +183 -0
  210. package/src/modes/interactive/interactive-mode.ts +2516 -0
  211. package/src/modes/interactive/theme/dark.json +101 -0
  212. package/src/modes/interactive/theme/light.json +98 -0
  213. package/src/modes/interactive/theme/theme-schema.json +308 -0
  214. package/src/modes/interactive/theme/theme.ts +998 -0
  215. package/src/modes/print-mode.ts +128 -0
  216. package/src/modes/rpc/rpc-client.ts +527 -0
  217. package/src/modes/rpc/rpc-mode.ts +483 -0
  218. package/src/modes/rpc/rpc-types.ts +203 -0
  219. package/src/utils/changelog.ts +99 -0
  220. package/src/utils/clipboard.ts +265 -0
  221. package/src/utils/fuzzy.ts +108 -0
  222. package/src/utils/mime.ts +30 -0
  223. package/src/utils/shell.ts +276 -0
  224. package/src/utils/tools-manager.ts +274 -0
@@ -0,0 +1,101 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/theme-schema.json",
3
+ "name": "dark",
4
+ "vars": {
5
+ "cyan": "#0088fa",
6
+ "blue": "#178fb9",
7
+ "green": "#89d281",
8
+ "red": "#fc3a4b",
9
+ "yellow": "#e4c00f",
10
+ "gray": "#777d88",
11
+ "dimGray": "#5f6673",
12
+ "darkGray": "#3d424a",
13
+ "accent": "#febc38",
14
+ "selectedBg": "#31363f",
15
+ "userMsgBg": "#221d1a",
16
+ "toolPendingBg": "#1d2129",
17
+ "toolSuccessBg": "#161a1f",
18
+ "toolErrorBg": "#291d1d",
19
+ "customMsgBg": "#2a2530"
20
+ },
21
+ "colors": {
22
+ "accent": "accent",
23
+ "border": "blue",
24
+ "borderAccent": "cyan",
25
+ "borderMuted": "darkGray",
26
+ "success": "green",
27
+ "error": "red",
28
+ "warning": "yellow",
29
+ "muted": "gray",
30
+ "dim": "dimGray",
31
+ "text": "",
32
+ "thinkingText": "gray",
33
+
34
+ "selectedBg": "selectedBg",
35
+ "userMessageBg": "userMsgBg",
36
+ "userMessageText": "",
37
+ "customMessageBg": "customMsgBg",
38
+ "customMessageText": "",
39
+ "customMessageLabel": "#b281d6",
40
+ "toolPendingBg": "toolPendingBg",
41
+ "toolSuccessBg": "toolSuccessBg",
42
+ "toolErrorBg": "toolErrorBg",
43
+ "toolTitle": "",
44
+ "toolOutput": "gray",
45
+
46
+ "mdHeading": "#febc38",
47
+ "mdLink": "#0088fa",
48
+ "mdLinkUrl": "dimGray",
49
+ "mdCode": "#e5c1ff",
50
+ "mdCodeBlock": "#9CDCFE",
51
+ "mdCodeBlockBorder": "darkGray",
52
+ "mdQuote": "gray",
53
+ "mdQuoteBorder": "darkGray",
54
+ "mdHr": "darkGray",
55
+ "mdListBullet": "accent",
56
+
57
+ "toolDiffAdded": "green",
58
+ "toolDiffRemoved": "red",
59
+ "toolDiffContext": "gray",
60
+
61
+ "link": "#0088fa",
62
+
63
+ "syntaxComment": "#6A9955",
64
+ "syntaxKeyword": "#569CD6",
65
+ "syntaxFunction": "#DCDCAA",
66
+ "syntaxVariable": "#9CDCFE",
67
+ "syntaxString": "#CE9178",
68
+ "syntaxNumber": "#B5CEA8",
69
+ "syntaxType": "#4EC9B0",
70
+ "syntaxOperator": "#D4D4D4",
71
+ "syntaxPunctuation": "#D4D4D4",
72
+
73
+ "thinkingOff": "darkGray",
74
+ "thinkingMinimal": "dimGray",
75
+ "thinkingLow": "#178fb9",
76
+ "thinkingMedium": "#0088fa",
77
+ "thinkingHigh": "#b281d6",
78
+ "thinkingXhigh": "#e5c1ff",
79
+
80
+ "bashMode": "cyan",
81
+
82
+ "footerIcon": 39,
83
+ "footerSep": 244,
84
+ "footerModel": 255,
85
+ "footerPath": 39,
86
+ "footerBranch": 76,
87
+ "footerStaged": 70,
88
+ "footerDirty": 178,
89
+ "footerUntracked": 39,
90
+ "footerInput": 76,
91
+ "footerOutput": 205,
92
+ "footerCacheRead": 76,
93
+ "footerCacheWrite": 76,
94
+ "footerCost": 205
95
+ },
96
+ "export": {
97
+ "pageBg": "#18181e",
98
+ "cardBg": "#1e1e24",
99
+ "infoBg": "#3c3728"
100
+ }
101
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/theme-schema.json",
3
+ "name": "light",
4
+ "vars": {
5
+ "teal": "#5f8787",
6
+ "blue": "#5f87af",
7
+ "green": "#87af87",
8
+ "red": "#af5f5f",
9
+ "yellow": "#d7af5f",
10
+ "mediumGray": "#6c6c6c",
11
+ "dimGray": "#8a8a8a",
12
+ "lightGray": "#b0b0b0",
13
+ "selectedBg": "#d0d0e0",
14
+ "userMsgBg": "#e8e8e8",
15
+ "toolPendingBg": "#e8e8f0",
16
+ "toolSuccessBg": "#e8f0e8",
17
+ "toolErrorBg": "#f0e8e8",
18
+ "customMsgBg": "#ede7f6"
19
+ },
20
+ "colors": {
21
+ "accent": "teal",
22
+ "border": "blue",
23
+ "borderAccent": "teal",
24
+ "borderMuted": "lightGray",
25
+ "success": "green",
26
+ "error": "red",
27
+ "warning": "yellow",
28
+ "muted": "mediumGray",
29
+ "dim": "dimGray",
30
+ "text": "",
31
+ "thinkingText": "mediumGray",
32
+
33
+ "selectedBg": "selectedBg",
34
+ "userMessageBg": "userMsgBg",
35
+ "userMessageText": "",
36
+ "customMessageBg": "customMsgBg",
37
+ "customMessageText": "",
38
+ "customMessageLabel": "#7e57c2",
39
+ "toolPendingBg": "toolPendingBg",
40
+ "toolSuccessBg": "toolSuccessBg",
41
+ "toolErrorBg": "toolErrorBg",
42
+ "toolTitle": "",
43
+ "toolOutput": "mediumGray",
44
+
45
+ "mdHeading": "yellow",
46
+ "mdLink": "blue",
47
+ "mdLinkUrl": "dimGray",
48
+ "mdCode": "teal",
49
+ "mdCodeBlock": "green",
50
+ "mdCodeBlockBorder": "mediumGray",
51
+ "mdQuote": "mediumGray",
52
+ "mdQuoteBorder": "mediumGray",
53
+ "mdHr": "mediumGray",
54
+ "mdListBullet": "green",
55
+
56
+ "toolDiffAdded": "green",
57
+ "toolDiffRemoved": "red",
58
+ "toolDiffContext": "mediumGray",
59
+
60
+ "syntaxComment": "#008000",
61
+ "syntaxKeyword": "#0000FF",
62
+ "syntaxFunction": "#795E26",
63
+ "syntaxVariable": "#001080",
64
+ "syntaxString": "#A31515",
65
+ "syntaxNumber": "#098658",
66
+ "syntaxType": "#267F99",
67
+ "syntaxOperator": "#000000",
68
+ "syntaxPunctuation": "#000000",
69
+
70
+ "thinkingOff": "lightGray",
71
+ "thinkingMinimal": "#9e9e9e",
72
+ "thinkingLow": "#5f87af",
73
+ "thinkingMedium": "#5f8787",
74
+ "thinkingHigh": "#875f87",
75
+ "thinkingXhigh": "#8b008b",
76
+
77
+ "bashMode": "green",
78
+
79
+ "footerIcon": 31,
80
+ "footerSep": 246,
81
+ "footerModel": 236,
82
+ "footerPath": 31,
83
+ "footerBranch": 28,
84
+ "footerStaged": 28,
85
+ "footerDirty": 136,
86
+ "footerUntracked": 31,
87
+ "footerInput": 28,
88
+ "footerOutput": 133,
89
+ "footerCacheRead": 28,
90
+ "footerCacheWrite": 28,
91
+ "footerCost": 133
92
+ },
93
+ "export": {
94
+ "pageBg": "#f8f8f8",
95
+ "cardBg": "#ffffff",
96
+ "infoBg": "#fffae6"
97
+ }
98
+ }
@@ -0,0 +1,308 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Pi Coding Agent Theme",
4
+ "description": "Theme schema for Pi 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
+ "description": "Theme name"
15
+ },
16
+ "vars": {
17
+ "type": "object",
18
+ "description": "Reusable color variables",
19
+ "additionalProperties": {
20
+ "oneOf": [
21
+ {
22
+ "type": "string",
23
+ "description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
24
+ },
25
+ {
26
+ "type": "integer",
27
+ "minimum": 0,
28
+ "maximum": 255,
29
+ "description": "256-color palette index (0-255)"
30
+ }
31
+ ]
32
+ }
33
+ },
34
+ "colors": {
35
+ "type": "object",
36
+ "description": "Theme color definitions (all required)",
37
+ "required": [
38
+ "accent",
39
+ "border",
40
+ "borderAccent",
41
+ "borderMuted",
42
+ "success",
43
+ "error",
44
+ "warning",
45
+ "muted",
46
+ "dim",
47
+ "text",
48
+ "userMessageBg",
49
+ "userMessageText",
50
+ "customMessageBg",
51
+ "customMessageText",
52
+ "customMessageLabel",
53
+ "toolPendingBg",
54
+ "toolSuccessBg",
55
+ "toolErrorBg",
56
+ "toolText",
57
+ "mdHeading",
58
+ "mdLink",
59
+ "mdCode",
60
+ "mdCodeBlock",
61
+ "mdCodeBlockBorder",
62
+ "mdQuote",
63
+ "mdQuoteBorder",
64
+ "mdHr",
65
+ "mdListBullet",
66
+ "toolDiffAdded",
67
+ "toolDiffRemoved",
68
+ "toolDiffContext",
69
+ "syntaxComment",
70
+ "syntaxKeyword",
71
+ "syntaxFunction",
72
+ "syntaxVariable",
73
+ "syntaxString",
74
+ "syntaxNumber",
75
+ "syntaxType",
76
+ "syntaxOperator",
77
+ "syntaxPunctuation"
78
+ ],
79
+ "properties": {
80
+ "accent": {
81
+ "$ref": "#/$defs/colorValue",
82
+ "description": "Primary accent color (logo, selected items, cursor)"
83
+ },
84
+ "border": {
85
+ "$ref": "#/$defs/colorValue",
86
+ "description": "Normal borders"
87
+ },
88
+ "borderAccent": {
89
+ "$ref": "#/$defs/colorValue",
90
+ "description": "Highlighted borders"
91
+ },
92
+ "borderMuted": {
93
+ "$ref": "#/$defs/colorValue",
94
+ "description": "Subtle borders"
95
+ },
96
+ "success": {
97
+ "$ref": "#/$defs/colorValue",
98
+ "description": "Success states"
99
+ },
100
+ "error": {
101
+ "$ref": "#/$defs/colorValue",
102
+ "description": "Error states"
103
+ },
104
+ "warning": {
105
+ "$ref": "#/$defs/colorValue",
106
+ "description": "Warning states"
107
+ },
108
+ "muted": {
109
+ "$ref": "#/$defs/colorValue",
110
+ "description": "Secondary/dimmed text"
111
+ },
112
+ "dim": {
113
+ "$ref": "#/$defs/colorValue",
114
+ "description": "Very dimmed text (more subtle than muted)"
115
+ },
116
+ "text": {
117
+ "$ref": "#/$defs/colorValue",
118
+ "description": "Default text color (usually empty string)"
119
+ },
120
+ "userMessageBg": {
121
+ "$ref": "#/$defs/colorValue",
122
+ "description": "User message background"
123
+ },
124
+ "userMessageText": {
125
+ "$ref": "#/$defs/colorValue",
126
+ "description": "User message text color"
127
+ },
128
+ "customMessageBg": {
129
+ "$ref": "#/$defs/colorValue",
130
+ "description": "Custom message background (hook-injected messages)"
131
+ },
132
+ "customMessageText": {
133
+ "$ref": "#/$defs/colorValue",
134
+ "description": "Custom message text color"
135
+ },
136
+ "customMessageLabel": {
137
+ "$ref": "#/$defs/colorValue",
138
+ "description": "Custom message type label color"
139
+ },
140
+ "toolPendingBg": {
141
+ "$ref": "#/$defs/colorValue",
142
+ "description": "Tool execution box (pending state)"
143
+ },
144
+ "toolSuccessBg": {
145
+ "$ref": "#/$defs/colorValue",
146
+ "description": "Tool execution box (success state)"
147
+ },
148
+ "toolErrorBg": {
149
+ "$ref": "#/$defs/colorValue",
150
+ "description": "Tool execution box (error state)"
151
+ },
152
+ "toolText": {
153
+ "$ref": "#/$defs/colorValue",
154
+ "description": "Tool execution box text color"
155
+ },
156
+ "mdHeading": {
157
+ "$ref": "#/$defs/colorValue",
158
+ "description": "Markdown heading text"
159
+ },
160
+ "mdLink": {
161
+ "$ref": "#/$defs/colorValue",
162
+ "description": "Markdown link text"
163
+ },
164
+ "mdCode": {
165
+ "$ref": "#/$defs/colorValue",
166
+ "description": "Markdown inline code"
167
+ },
168
+ "mdCodeBlock": {
169
+ "$ref": "#/$defs/colorValue",
170
+ "description": "Markdown code block content"
171
+ },
172
+ "mdCodeBlockBorder": {
173
+ "$ref": "#/$defs/colorValue",
174
+ "description": "Markdown code block fences"
175
+ },
176
+ "mdQuote": {
177
+ "$ref": "#/$defs/colorValue",
178
+ "description": "Markdown blockquote text"
179
+ },
180
+ "mdQuoteBorder": {
181
+ "$ref": "#/$defs/colorValue",
182
+ "description": "Markdown blockquote border"
183
+ },
184
+ "mdHr": {
185
+ "$ref": "#/$defs/colorValue",
186
+ "description": "Markdown horizontal rule"
187
+ },
188
+ "mdListBullet": {
189
+ "$ref": "#/$defs/colorValue",
190
+ "description": "Markdown list bullets/numbers"
191
+ },
192
+ "toolDiffAdded": {
193
+ "$ref": "#/$defs/colorValue",
194
+ "description": "Added lines in tool diffs"
195
+ },
196
+ "toolDiffRemoved": {
197
+ "$ref": "#/$defs/colorValue",
198
+ "description": "Removed lines in tool diffs"
199
+ },
200
+ "toolDiffContext": {
201
+ "$ref": "#/$defs/colorValue",
202
+ "description": "Context lines in tool diffs"
203
+ },
204
+ "syntaxComment": {
205
+ "$ref": "#/$defs/colorValue",
206
+ "description": "Syntax highlighting: comments"
207
+ },
208
+ "syntaxKeyword": {
209
+ "$ref": "#/$defs/colorValue",
210
+ "description": "Syntax highlighting: keywords"
211
+ },
212
+ "syntaxFunction": {
213
+ "$ref": "#/$defs/colorValue",
214
+ "description": "Syntax highlighting: function names"
215
+ },
216
+ "syntaxVariable": {
217
+ "$ref": "#/$defs/colorValue",
218
+ "description": "Syntax highlighting: variable names"
219
+ },
220
+ "syntaxString": {
221
+ "$ref": "#/$defs/colorValue",
222
+ "description": "Syntax highlighting: string literals"
223
+ },
224
+ "syntaxNumber": {
225
+ "$ref": "#/$defs/colorValue",
226
+ "description": "Syntax highlighting: number literals"
227
+ },
228
+ "syntaxType": {
229
+ "$ref": "#/$defs/colorValue",
230
+ "description": "Syntax highlighting: type names"
231
+ },
232
+ "syntaxOperator": {
233
+ "$ref": "#/$defs/colorValue",
234
+ "description": "Syntax highlighting: operators"
235
+ },
236
+ "syntaxPunctuation": {
237
+ "$ref": "#/$defs/colorValue",
238
+ "description": "Syntax highlighting: punctuation"
239
+ },
240
+ "thinkingOff": {
241
+ "$ref": "#/$defs/colorValue",
242
+ "description": "Thinking level border: off"
243
+ },
244
+ "thinkingMinimal": {
245
+ "$ref": "#/$defs/colorValue",
246
+ "description": "Thinking level border: minimal"
247
+ },
248
+ "thinkingLow": {
249
+ "$ref": "#/$defs/colorValue",
250
+ "description": "Thinking level border: low"
251
+ },
252
+ "thinkingMedium": {
253
+ "$ref": "#/$defs/colorValue",
254
+ "description": "Thinking level border: medium"
255
+ },
256
+ "thinkingHigh": {
257
+ "$ref": "#/$defs/colorValue",
258
+ "description": "Thinking level border: high"
259
+ },
260
+ "thinkingXhigh": {
261
+ "$ref": "#/$defs/colorValue",
262
+ "description": "Thinking level border: xhigh (OpenAI codex-max only)"
263
+ },
264
+ "bashMode": {
265
+ "$ref": "#/$defs/colorValue",
266
+ "description": "Editor border color in bash mode"
267
+ }
268
+ },
269
+ "additionalProperties": false
270
+ },
271
+ "export": {
272
+ "type": "object",
273
+ "description": "Optional colors for HTML export (defaults derived from userMessageBg if not specified)",
274
+ "properties": {
275
+ "pageBg": {
276
+ "$ref": "#/$defs/colorValue",
277
+ "description": "Page background color"
278
+ },
279
+ "cardBg": {
280
+ "$ref": "#/$defs/colorValue",
281
+ "description": "Card/container background color"
282
+ },
283
+ "infoBg": {
284
+ "$ref": "#/$defs/colorValue",
285
+ "description": "Info sections background (system prompt, notices)"
286
+ }
287
+ },
288
+ "additionalProperties": false
289
+ }
290
+ },
291
+ "additionalProperties": false,
292
+ "$defs": {
293
+ "colorValue": {
294
+ "oneOf": [
295
+ {
296
+ "type": "string",
297
+ "description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
298
+ },
299
+ {
300
+ "type": "integer",
301
+ "minimum": 0,
302
+ "maximum": 255,
303
+ "description": "256-color palette index (0-255)"
304
+ }
305
+ ]
306
+ }
307
+ }
308
+ }