indusagi-coding-agent 0.1.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 (240) hide show
  1. package/CHANGELOG.md +2249 -0
  2. package/README.md +546 -0
  3. package/dist/cli/args.js +282 -0
  4. package/dist/cli/config-selector.js +30 -0
  5. package/dist/cli/file-processor.js +78 -0
  6. package/dist/cli/list-models.js +91 -0
  7. package/dist/cli/session-picker.js +31 -0
  8. package/dist/cli.js +10 -0
  9. package/dist/config.js +158 -0
  10. package/dist/core/agent-session.js +2097 -0
  11. package/dist/core/auth-storage.js +278 -0
  12. package/dist/core/bash-executor.js +211 -0
  13. package/dist/core/compaction/branch-summarization.js +241 -0
  14. package/dist/core/compaction/compaction.js +606 -0
  15. package/dist/core/compaction/index.js +6 -0
  16. package/dist/core/compaction/utils.js +137 -0
  17. package/dist/core/diagnostics.js +1 -0
  18. package/dist/core/event-bus.js +24 -0
  19. package/dist/core/exec.js +70 -0
  20. package/dist/core/export-html/ansi-to-html.js +248 -0
  21. package/dist/core/export-html/index.js +221 -0
  22. package/dist/core/export-html/template.css +905 -0
  23. package/dist/core/export-html/template.html +54 -0
  24. package/dist/core/export-html/template.js +1549 -0
  25. package/dist/core/export-html/tool-renderer.js +56 -0
  26. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  27. package/dist/core/export-html/vendor/marked.min.js +6 -0
  28. package/dist/core/extensions/index.js +8 -0
  29. package/dist/core/extensions/loader.js +395 -0
  30. package/dist/core/extensions/runner.js +499 -0
  31. package/dist/core/extensions/types.js +31 -0
  32. package/dist/core/extensions/wrapper.js +101 -0
  33. package/dist/core/footer-data-provider.js +133 -0
  34. package/dist/core/index.js +8 -0
  35. package/dist/core/keybindings.js +140 -0
  36. package/dist/core/messages.js +122 -0
  37. package/dist/core/model-registry.js +454 -0
  38. package/dist/core/model-resolver.js +309 -0
  39. package/dist/core/package-manager.js +1142 -0
  40. package/dist/core/prompt-templates.js +250 -0
  41. package/dist/core/resource-loader.js +569 -0
  42. package/dist/core/sdk.js +225 -0
  43. package/dist/core/session-manager.js +1078 -0
  44. package/dist/core/settings-manager.js +430 -0
  45. package/dist/core/skills.js +339 -0
  46. package/dist/core/system-prompt.js +136 -0
  47. package/dist/core/timings.js +24 -0
  48. package/dist/core/tools/bash.js +226 -0
  49. package/dist/core/tools/edit-diff.js +242 -0
  50. package/dist/core/tools/edit.js +145 -0
  51. package/dist/core/tools/find.js +205 -0
  52. package/dist/core/tools/grep.js +238 -0
  53. package/dist/core/tools/index.js +60 -0
  54. package/dist/core/tools/ls.js +117 -0
  55. package/dist/core/tools/path-utils.js +52 -0
  56. package/dist/core/tools/read.js +165 -0
  57. package/dist/core/tools/truncate.js +204 -0
  58. package/dist/core/tools/write.js +77 -0
  59. package/dist/index.js +41 -0
  60. package/dist/main.js +565 -0
  61. package/dist/migrations.js +260 -0
  62. package/dist/modes/index.js +7 -0
  63. package/dist/modes/interactive/components/armin.js +328 -0
  64. package/dist/modes/interactive/components/assistant-message.js +86 -0
  65. package/dist/modes/interactive/components/bash-execution.js +155 -0
  66. package/dist/modes/interactive/components/bordered-loader.js +47 -0
  67. package/dist/modes/interactive/components/branch-summary-message.js +41 -0
  68. package/dist/modes/interactive/components/compaction-summary-message.js +42 -0
  69. package/dist/modes/interactive/components/config-selector.js +458 -0
  70. package/dist/modes/interactive/components/countdown-timer.js +27 -0
  71. package/dist/modes/interactive/components/custom-editor.js +61 -0
  72. package/dist/modes/interactive/components/custom-message.js +80 -0
  73. package/dist/modes/interactive/components/diff.js +132 -0
  74. package/dist/modes/interactive/components/dynamic-border.js +19 -0
  75. package/dist/modes/interactive/components/extension-editor.js +96 -0
  76. package/dist/modes/interactive/components/extension-input.js +54 -0
  77. package/dist/modes/interactive/components/extension-selector.js +70 -0
  78. package/dist/modes/interactive/components/footer.js +213 -0
  79. package/dist/modes/interactive/components/index.js +31 -0
  80. package/dist/modes/interactive/components/keybinding-hints.js +60 -0
  81. package/dist/modes/interactive/components/login-dialog.js +138 -0
  82. package/dist/modes/interactive/components/model-selector.js +253 -0
  83. package/dist/modes/interactive/components/oauth-selector.js +91 -0
  84. package/dist/modes/interactive/components/scoped-models-selector.js +262 -0
  85. package/dist/modes/interactive/components/session-selector-search.js +145 -0
  86. package/dist/modes/interactive/components/session-selector.js +698 -0
  87. package/dist/modes/interactive/components/settings-selector.js +250 -0
  88. package/dist/modes/interactive/components/show-images-selector.js +33 -0
  89. package/dist/modes/interactive/components/skill-invocation-message.js +44 -0
  90. package/dist/modes/interactive/components/theme-selector.js +43 -0
  91. package/dist/modes/interactive/components/thinking-selector.js +45 -0
  92. package/dist/modes/interactive/components/tool-execution.js +608 -0
  93. package/dist/modes/interactive/components/tree-selector.js +892 -0
  94. package/dist/modes/interactive/components/user-message-selector.js +109 -0
  95. package/dist/modes/interactive/components/user-message.js +15 -0
  96. package/dist/modes/interactive/components/visual-truncate.js +32 -0
  97. package/dist/modes/interactive/interactive-mode.js +3576 -0
  98. package/dist/modes/interactive/theme/dark.json +85 -0
  99. package/dist/modes/interactive/theme/light.json +84 -0
  100. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  101. package/dist/modes/interactive/theme/theme.js +938 -0
  102. package/dist/modes/print-mode.js +96 -0
  103. package/dist/modes/rpc/rpc-client.js +390 -0
  104. package/dist/modes/rpc/rpc-mode.js +448 -0
  105. package/dist/modes/rpc/rpc-types.js +7 -0
  106. package/dist/utils/changelog.js +86 -0
  107. package/dist/utils/clipboard-image.js +116 -0
  108. package/dist/utils/clipboard.js +58 -0
  109. package/dist/utils/frontmatter.js +25 -0
  110. package/dist/utils/git.js +5 -0
  111. package/dist/utils/image-convert.js +34 -0
  112. package/dist/utils/image-resize.js +180 -0
  113. package/dist/utils/mime.js +25 -0
  114. package/dist/utils/photon.js +120 -0
  115. package/dist/utils/shell.js +164 -0
  116. package/dist/utils/sleep.js +16 -0
  117. package/dist/utils/tools-manager.js +186 -0
  118. package/docs/compaction.md +390 -0
  119. package/docs/custom-provider.md +538 -0
  120. package/docs/development.md +69 -0
  121. package/docs/extensions.md +1733 -0
  122. package/docs/images/doom-extension.png +0 -0
  123. package/docs/images/interactive-mode.png +0 -0
  124. package/docs/images/tree-view.png +0 -0
  125. package/docs/json.md +79 -0
  126. package/docs/keybindings.md +162 -0
  127. package/docs/models.md +193 -0
  128. package/docs/packages.md +163 -0
  129. package/docs/prompt-templates.md +67 -0
  130. package/docs/providers.md +147 -0
  131. package/docs/rpc.md +1048 -0
  132. package/docs/sdk.md +957 -0
  133. package/docs/session.md +412 -0
  134. package/docs/settings.md +216 -0
  135. package/docs/shell-aliases.md +13 -0
  136. package/docs/skills.md +226 -0
  137. package/docs/terminal-setup.md +65 -0
  138. package/docs/themes.md +295 -0
  139. package/docs/tree.md +219 -0
  140. package/docs/tui.md +887 -0
  141. package/docs/windows.md +17 -0
  142. package/examples/README.md +25 -0
  143. package/examples/extensions/README.md +192 -0
  144. package/examples/extensions/antigravity-image-gen.ts +414 -0
  145. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  146. package/examples/extensions/bookmark.ts +50 -0
  147. package/examples/extensions/claude-rules.ts +86 -0
  148. package/examples/extensions/confirm-destructive.ts +59 -0
  149. package/examples/extensions/custom-compaction.ts +115 -0
  150. package/examples/extensions/custom-footer.ts +65 -0
  151. package/examples/extensions/custom-header.ts +73 -0
  152. package/examples/extensions/custom-provider-anthropic/index.ts +605 -0
  153. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  154. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  155. package/examples/extensions/custom-provider-gitlab-duo/index.ts +350 -0
  156. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  157. package/examples/extensions/custom-provider-gitlab-duo/test.ts +83 -0
  158. package/examples/extensions/dirty-repo-guard.ts +56 -0
  159. package/examples/extensions/doom-overlay/README.md +46 -0
  160. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  161. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  162. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  163. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  164. package/examples/extensions/doom-overlay/doom-component.ts +133 -0
  165. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  166. package/examples/extensions/doom-overlay/doom-keys.ts +105 -0
  167. package/examples/extensions/doom-overlay/index.ts +74 -0
  168. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  169. package/examples/extensions/event-bus.ts +43 -0
  170. package/examples/extensions/file-trigger.ts +41 -0
  171. package/examples/extensions/git-checkpoint.ts +53 -0
  172. package/examples/extensions/handoff.ts +151 -0
  173. package/examples/extensions/hello.ts +25 -0
  174. package/examples/extensions/inline-bash.ts +94 -0
  175. package/examples/extensions/input-transform.ts +43 -0
  176. package/examples/extensions/interactive-shell.ts +196 -0
  177. package/examples/extensions/mac-system-theme.ts +47 -0
  178. package/examples/extensions/message-renderer.ts +60 -0
  179. package/examples/extensions/modal-editor.ts +86 -0
  180. package/examples/extensions/model-status.ts +31 -0
  181. package/examples/extensions/notify.ts +25 -0
  182. package/examples/extensions/overlay-qa-tests.ts +882 -0
  183. package/examples/extensions/overlay-test.ts +151 -0
  184. package/examples/extensions/permission-gate.ts +34 -0
  185. package/examples/extensions/pirate.ts +47 -0
  186. package/examples/extensions/plan-mode/README.md +65 -0
  187. package/examples/extensions/plan-mode/index.ts +341 -0
  188. package/examples/extensions/plan-mode/utils.ts +168 -0
  189. package/examples/extensions/preset.ts +399 -0
  190. package/examples/extensions/protected-paths.ts +30 -0
  191. package/examples/extensions/qna.ts +120 -0
  192. package/examples/extensions/question.ts +265 -0
  193. package/examples/extensions/questionnaire.ts +428 -0
  194. package/examples/extensions/rainbow-editor.ts +88 -0
  195. package/examples/extensions/sandbox/index.ts +318 -0
  196. package/examples/extensions/sandbox/package-lock.json +92 -0
  197. package/examples/extensions/sandbox/package.json +19 -0
  198. package/examples/extensions/send-user-message.ts +97 -0
  199. package/examples/extensions/session-name.ts +27 -0
  200. package/examples/extensions/shutdown-command.ts +63 -0
  201. package/examples/extensions/snake.ts +344 -0
  202. package/examples/extensions/space-invaders.ts +561 -0
  203. package/examples/extensions/ssh.ts +220 -0
  204. package/examples/extensions/status-line.ts +40 -0
  205. package/examples/extensions/subagent/README.md +172 -0
  206. package/examples/extensions/subagent/agents/planner.md +37 -0
  207. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  208. package/examples/extensions/subagent/agents/scout.md +50 -0
  209. package/examples/extensions/subagent/agents/worker.md +24 -0
  210. package/examples/extensions/subagent/agents.ts +127 -0
  211. package/examples/extensions/subagent/index.ts +964 -0
  212. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  213. package/examples/extensions/subagent/prompts/implement.md +10 -0
  214. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  215. package/examples/extensions/summarize.ts +196 -0
  216. package/examples/extensions/timed-confirm.ts +70 -0
  217. package/examples/extensions/todo.ts +300 -0
  218. package/examples/extensions/tool-override.ts +144 -0
  219. package/examples/extensions/tools.ts +147 -0
  220. package/examples/extensions/trigger-compact.ts +40 -0
  221. package/examples/extensions/truncated-tool.ts +193 -0
  222. package/examples/extensions/widget-placement.ts +17 -0
  223. package/examples/extensions/with-deps/index.ts +36 -0
  224. package/examples/extensions/with-deps/package-lock.json +31 -0
  225. package/examples/extensions/with-deps/package.json +22 -0
  226. package/examples/sdk/01-minimal.ts +22 -0
  227. package/examples/sdk/02-custom-model.ts +50 -0
  228. package/examples/sdk/03-custom-prompt.ts +55 -0
  229. package/examples/sdk/04-skills.ts +46 -0
  230. package/examples/sdk/05-tools.ts +56 -0
  231. package/examples/sdk/06-extensions.ts +88 -0
  232. package/examples/sdk/07-context-files.ts +40 -0
  233. package/examples/sdk/08-prompt-templates.ts +47 -0
  234. package/examples/sdk/09-api-keys-and-oauth.ts +48 -0
  235. package/examples/sdk/10-settings.ts +38 -0
  236. package/examples/sdk/11-sessions.ts +48 -0
  237. package/examples/sdk/12-full-control.ts +82 -0
  238. package/examples/sdk/13-codex-oauth.ts +37 -0
  239. package/examples/sdk/README.md +144 -0
  240. package/package.json +85 -0
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/badlogic/indusagi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
+ "name": "dark",
4
+ "vars": {
5
+ "cyan": "#00d7ff",
6
+ "blue": "#5f87ff",
7
+ "green": "#b5bd68",
8
+ "red": "#cc6666",
9
+ "yellow": "#ffff00",
10
+ "gray": "#808080",
11
+ "dimGray": "#666666",
12
+ "darkGray": "#505050",
13
+ "accent": "#8abeb7",
14
+ "selectedBg": "#3a3a4a",
15
+ "userMsgBg": "#343541",
16
+ "toolPendingBg": "#282832",
17
+ "toolSuccessBg": "#283228",
18
+ "toolErrorBg": "#3c2828",
19
+ "customMsgBg": "#2d2838"
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": "#9575cd",
40
+ "toolPendingBg": "toolPendingBg",
41
+ "toolSuccessBg": "toolSuccessBg",
42
+ "toolErrorBg": "toolErrorBg",
43
+ "toolTitle": "",
44
+ "toolOutput": "gray",
45
+
46
+ "mdHeading": "#f0c674",
47
+ "mdLink": "#81a2be",
48
+ "mdLinkUrl": "dimGray",
49
+ "mdCode": "accent",
50
+ "mdCodeBlock": "green",
51
+ "mdCodeBlockBorder": "gray",
52
+ "mdQuote": "gray",
53
+ "mdQuoteBorder": "gray",
54
+ "mdHr": "gray",
55
+ "mdListBullet": "accent",
56
+
57
+ "toolDiffAdded": "green",
58
+ "toolDiffRemoved": "red",
59
+ "toolDiffContext": "gray",
60
+
61
+ "syntaxComment": "#6A9955",
62
+ "syntaxKeyword": "#569CD6",
63
+ "syntaxFunction": "#DCDCAA",
64
+ "syntaxVariable": "#9CDCFE",
65
+ "syntaxString": "#CE9178",
66
+ "syntaxNumber": "#B5CEA8",
67
+ "syntaxType": "#4EC9B0",
68
+ "syntaxOperator": "#D4D4D4",
69
+ "syntaxPunctuation": "#D4D4D4",
70
+
71
+ "thinkingOff": "darkGray",
72
+ "thinkingMinimal": "#6e6e6e",
73
+ "thinkingLow": "#5f87af",
74
+ "thinkingMedium": "#81a2be",
75
+ "thinkingHigh": "#b294bb",
76
+ "thinkingXhigh": "#d183e8",
77
+
78
+ "bashMode": "green"
79
+ },
80
+ "export": {
81
+ "pageBg": "#18181e",
82
+ "cardBg": "#1e1e24",
83
+ "infoBg": "#3c3728"
84
+ }
85
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/badlogic/indusagi-mono/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
+ "mediumGray": "#6c6c6c",
11
+ "dimGray": "#767676",
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": "#767676",
72
+ "thinkingLow": "blue",
73
+ "thinkingMedium": "teal",
74
+ "thinkingHigh": "#875f87",
75
+ "thinkingXhigh": "#8b008b",
76
+
77
+ "bashMode": "green"
78
+ },
79
+ "export": {
80
+ "pageBg": "#f8f8f8",
81
+ "cardBg": "#ffffff",
82
+ "infoBg": "#fffae6"
83
+ }
84
+ }
@@ -0,0 +1,335 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Indusagi Coding Agent Theme",
4
+ "description": "Theme schema for Indusagi 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
+ "thinkingText",
49
+ "selectedBg",
50
+ "userMessageBg",
51
+ "userMessageText",
52
+ "customMessageBg",
53
+ "customMessageText",
54
+ "customMessageLabel",
55
+ "toolPendingBg",
56
+ "toolSuccessBg",
57
+ "toolErrorBg",
58
+ "toolTitle",
59
+ "toolOutput",
60
+ "mdHeading",
61
+ "mdLink",
62
+ "mdLinkUrl",
63
+ "mdCode",
64
+ "mdCodeBlock",
65
+ "mdCodeBlockBorder",
66
+ "mdQuote",
67
+ "mdQuoteBorder",
68
+ "mdHr",
69
+ "mdListBullet",
70
+ "toolDiffAdded",
71
+ "toolDiffRemoved",
72
+ "toolDiffContext",
73
+ "syntaxComment",
74
+ "syntaxKeyword",
75
+ "syntaxFunction",
76
+ "syntaxVariable",
77
+ "syntaxString",
78
+ "syntaxNumber",
79
+ "syntaxType",
80
+ "syntaxOperator",
81
+ "syntaxPunctuation",
82
+ "thinkingOff",
83
+ "thinkingMinimal",
84
+ "thinkingLow",
85
+ "thinkingMedium",
86
+ "thinkingHigh",
87
+ "thinkingXhigh",
88
+ "bashMode"
89
+ ],
90
+ "properties": {
91
+ "accent": {
92
+ "$ref": "#/$defs/colorValue",
93
+ "description": "Primary accent color (logo, selected items, cursor)"
94
+ },
95
+ "border": {
96
+ "$ref": "#/$defs/colorValue",
97
+ "description": "Normal borders"
98
+ },
99
+ "borderAccent": {
100
+ "$ref": "#/$defs/colorValue",
101
+ "description": "Highlighted borders"
102
+ },
103
+ "borderMuted": {
104
+ "$ref": "#/$defs/colorValue",
105
+ "description": "Subtle borders"
106
+ },
107
+ "success": {
108
+ "$ref": "#/$defs/colorValue",
109
+ "description": "Success states"
110
+ },
111
+ "error": {
112
+ "$ref": "#/$defs/colorValue",
113
+ "description": "Error states"
114
+ },
115
+ "warning": {
116
+ "$ref": "#/$defs/colorValue",
117
+ "description": "Warning states"
118
+ },
119
+ "muted": {
120
+ "$ref": "#/$defs/colorValue",
121
+ "description": "Secondary/dimmed text"
122
+ },
123
+ "dim": {
124
+ "$ref": "#/$defs/colorValue",
125
+ "description": "Very dimmed text (more subtle than muted)"
126
+ },
127
+ "text": {
128
+ "$ref": "#/$defs/colorValue",
129
+ "description": "Default text color (usually empty string)"
130
+ },
131
+ "thinkingText": {
132
+ "$ref": "#/$defs/colorValue",
133
+ "description": "Thinking block text color"
134
+ },
135
+ "selectedBg": {
136
+ "$ref": "#/$defs/colorValue",
137
+ "description": "Selected item background"
138
+ },
139
+ "userMessageBg": {
140
+ "$ref": "#/$defs/colorValue",
141
+ "description": "User message background"
142
+ },
143
+ "userMessageText": {
144
+ "$ref": "#/$defs/colorValue",
145
+ "description": "User message text color"
146
+ },
147
+ "customMessageBg": {
148
+ "$ref": "#/$defs/colorValue",
149
+ "description": "Custom message background (hook-injected messages)"
150
+ },
151
+ "customMessageText": {
152
+ "$ref": "#/$defs/colorValue",
153
+ "description": "Custom message text color"
154
+ },
155
+ "customMessageLabel": {
156
+ "$ref": "#/$defs/colorValue",
157
+ "description": "Custom message type label color"
158
+ },
159
+ "toolPendingBg": {
160
+ "$ref": "#/$defs/colorValue",
161
+ "description": "Tool execution box (pending state)"
162
+ },
163
+ "toolSuccessBg": {
164
+ "$ref": "#/$defs/colorValue",
165
+ "description": "Tool execution box (success state)"
166
+ },
167
+ "toolErrorBg": {
168
+ "$ref": "#/$defs/colorValue",
169
+ "description": "Tool execution box (error state)"
170
+ },
171
+ "toolTitle": {
172
+ "$ref": "#/$defs/colorValue",
173
+ "description": "Tool execution box title color"
174
+ },
175
+ "toolOutput": {
176
+ "$ref": "#/$defs/colorValue",
177
+ "description": "Tool execution box output text color"
178
+ },
179
+ "mdHeading": {
180
+ "$ref": "#/$defs/colorValue",
181
+ "description": "Markdown heading text"
182
+ },
183
+ "mdLink": {
184
+ "$ref": "#/$defs/colorValue",
185
+ "description": "Markdown link text"
186
+ },
187
+ "mdLinkUrl": {
188
+ "$ref": "#/$defs/colorValue",
189
+ "description": "Markdown link URL"
190
+ },
191
+ "mdCode": {
192
+ "$ref": "#/$defs/colorValue",
193
+ "description": "Markdown inline code"
194
+ },
195
+ "mdCodeBlock": {
196
+ "$ref": "#/$defs/colorValue",
197
+ "description": "Markdown code block content"
198
+ },
199
+ "mdCodeBlockBorder": {
200
+ "$ref": "#/$defs/colorValue",
201
+ "description": "Markdown code block fences"
202
+ },
203
+ "mdQuote": {
204
+ "$ref": "#/$defs/colorValue",
205
+ "description": "Markdown blockquote text"
206
+ },
207
+ "mdQuoteBorder": {
208
+ "$ref": "#/$defs/colorValue",
209
+ "description": "Markdown blockquote border"
210
+ },
211
+ "mdHr": {
212
+ "$ref": "#/$defs/colorValue",
213
+ "description": "Markdown horizontal rule"
214
+ },
215
+ "mdListBullet": {
216
+ "$ref": "#/$defs/colorValue",
217
+ "description": "Markdown list bullets/numbers"
218
+ },
219
+ "toolDiffAdded": {
220
+ "$ref": "#/$defs/colorValue",
221
+ "description": "Added lines in tool diffs"
222
+ },
223
+ "toolDiffRemoved": {
224
+ "$ref": "#/$defs/colorValue",
225
+ "description": "Removed lines in tool diffs"
226
+ },
227
+ "toolDiffContext": {
228
+ "$ref": "#/$defs/colorValue",
229
+ "description": "Context lines in tool diffs"
230
+ },
231
+ "syntaxComment": {
232
+ "$ref": "#/$defs/colorValue",
233
+ "description": "Syntax highlighting: comments"
234
+ },
235
+ "syntaxKeyword": {
236
+ "$ref": "#/$defs/colorValue",
237
+ "description": "Syntax highlighting: keywords"
238
+ },
239
+ "syntaxFunction": {
240
+ "$ref": "#/$defs/colorValue",
241
+ "description": "Syntax highlighting: function names"
242
+ },
243
+ "syntaxVariable": {
244
+ "$ref": "#/$defs/colorValue",
245
+ "description": "Syntax highlighting: variable names"
246
+ },
247
+ "syntaxString": {
248
+ "$ref": "#/$defs/colorValue",
249
+ "description": "Syntax highlighting: string literals"
250
+ },
251
+ "syntaxNumber": {
252
+ "$ref": "#/$defs/colorValue",
253
+ "description": "Syntax highlighting: number literals"
254
+ },
255
+ "syntaxType": {
256
+ "$ref": "#/$defs/colorValue",
257
+ "description": "Syntax highlighting: type names"
258
+ },
259
+ "syntaxOperator": {
260
+ "$ref": "#/$defs/colorValue",
261
+ "description": "Syntax highlighting: operators"
262
+ },
263
+ "syntaxPunctuation": {
264
+ "$ref": "#/$defs/colorValue",
265
+ "description": "Syntax highlighting: punctuation"
266
+ },
267
+ "thinkingOff": {
268
+ "$ref": "#/$defs/colorValue",
269
+ "description": "Thinking level border: off"
270
+ },
271
+ "thinkingMinimal": {
272
+ "$ref": "#/$defs/colorValue",
273
+ "description": "Thinking level border: minimal"
274
+ },
275
+ "thinkingLow": {
276
+ "$ref": "#/$defs/colorValue",
277
+ "description": "Thinking level border: low"
278
+ },
279
+ "thinkingMedium": {
280
+ "$ref": "#/$defs/colorValue",
281
+ "description": "Thinking level border: medium"
282
+ },
283
+ "thinkingHigh": {
284
+ "$ref": "#/$defs/colorValue",
285
+ "description": "Thinking level border: high"
286
+ },
287
+ "thinkingXhigh": {
288
+ "$ref": "#/$defs/colorValue",
289
+ "description": "Thinking level border: xhigh (OpenAI codex-max only)"
290
+ },
291
+ "bashMode": {
292
+ "$ref": "#/$defs/colorValue",
293
+ "description": "Editor border color in bash mode"
294
+ }
295
+ },
296
+ "additionalProperties": false
297
+ },
298
+ "export": {
299
+ "type": "object",
300
+ "description": "Optional colors for HTML export (defaults derived from userMessageBg if not specified)",
301
+ "properties": {
302
+ "pageBg": {
303
+ "$ref": "#/$defs/colorValue",
304
+ "description": "Page background color"
305
+ },
306
+ "cardBg": {
307
+ "$ref": "#/$defs/colorValue",
308
+ "description": "Card/container background color"
309
+ },
310
+ "infoBg": {
311
+ "$ref": "#/$defs/colorValue",
312
+ "description": "Info sections background (system prompt, notices)"
313
+ }
314
+ },
315
+ "additionalProperties": false
316
+ }
317
+ },
318
+ "additionalProperties": false,
319
+ "$defs": {
320
+ "colorValue": {
321
+ "oneOf": [
322
+ {
323
+ "type": "string",
324
+ "description": "Hex color (#RRGGBB), variable reference, or empty string for terminal default"
325
+ },
326
+ {
327
+ "type": "integer",
328
+ "minimum": 0,
329
+ "maximum": 255,
330
+ "description": "256-color palette index (0-255)"
331
+ }
332
+ ]
333
+ }
334
+ }
335
+ }