@letrquan/book 0.2.0 → 0.4.0-beta.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 (177) hide show
  1. package/CHANGELOG.md +3771 -40
  2. package/README.md +135 -1311
  3. package/dist/additional-roots-VAWRQ625.js +32 -0
  4. package/dist/{app-MOXXWEOY.js → app-J7BVPSUH.js} +9648 -5509
  5. package/dist/app-J7BVPSUH.js.map +1 -0
  6. package/dist/chunk-2AAOF5B5.js +28 -0
  7. package/dist/chunk-2AAOF5B5.js.map +1 -0
  8. package/dist/chunk-32WBCUAN.js +660 -0
  9. package/dist/chunk-32WBCUAN.js.map +1 -0
  10. package/dist/chunk-4DKHLZRI.js +120 -0
  11. package/dist/chunk-4DKHLZRI.js.map +1 -0
  12. package/dist/{chunk-CAGOB2N4.js → chunk-62EEAUID.js} +6 -4
  13. package/dist/chunk-62EEAUID.js.map +1 -0
  14. package/dist/chunk-AHC7OU75.js +1124 -0
  15. package/dist/chunk-AHC7OU75.js.map +1 -0
  16. package/dist/{chunk-E75IPST5.js → chunk-AJZWLKLQ.js} +73 -70
  17. package/dist/chunk-AJZWLKLQ.js.map +1 -0
  18. package/dist/chunk-B5FC3MYZ.js +395 -0
  19. package/dist/chunk-B5FC3MYZ.js.map +1 -0
  20. package/dist/{chunk-KWHQ2XXL.js → chunk-DNFQTSMJ.js} +55 -13
  21. package/dist/chunk-DNFQTSMJ.js.map +1 -0
  22. package/dist/{chunk-J7MIZ5CA.js → chunk-E5WLQSKA.js} +719 -89
  23. package/dist/chunk-E5WLQSKA.js.map +1 -0
  24. package/dist/chunk-ECLC4CIJ.js +1181 -0
  25. package/dist/chunk-ECLC4CIJ.js.map +1 -0
  26. package/dist/chunk-EEX6QNXV.js +127 -0
  27. package/dist/chunk-EEX6QNXV.js.map +1 -0
  28. package/dist/chunk-EFXVSQ5J.js +931 -0
  29. package/dist/chunk-EFXVSQ5J.js.map +1 -0
  30. package/dist/{chunk-V4BOYR52.js → chunk-ENLB7NYV.js} +1304 -326
  31. package/dist/chunk-ENLB7NYV.js.map +1 -0
  32. package/dist/chunk-FPR7SKIE.js +6926 -0
  33. package/dist/chunk-FPR7SKIE.js.map +1 -0
  34. package/dist/{chunk-DGMQEI6Y.js → chunk-HFB74CLM.js} +30 -9
  35. package/dist/chunk-HFB74CLM.js.map +1 -0
  36. package/dist/{chunk-5RDRAO4B.js → chunk-HOZXKOE3.js} +37 -1
  37. package/dist/chunk-HOZXKOE3.js.map +1 -0
  38. package/dist/chunk-IDYWN37T.js +36 -0
  39. package/dist/chunk-IDYWN37T.js.map +1 -0
  40. package/dist/chunk-J4F2QLM2.js +273 -0
  41. package/dist/chunk-J4F2QLM2.js.map +1 -0
  42. package/dist/chunk-JGF5HLSI.js +1065 -0
  43. package/dist/chunk-JGF5HLSI.js.map +1 -0
  44. package/dist/{chunk-XIFFTATU.js → chunk-KDNWMKXV.js} +7166 -4237
  45. package/dist/chunk-KDNWMKXV.js.map +1 -0
  46. package/dist/chunk-KXAYUIKP.js +90 -0
  47. package/dist/chunk-KXAYUIKP.js.map +1 -0
  48. package/dist/{chunk-3U5IBM24.js → chunk-MEOB2DZA.js} +12 -2
  49. package/dist/chunk-MEOB2DZA.js.map +1 -0
  50. package/dist/{chunk-WKBO5R4O.js → chunk-MV5PQNIA.js} +2 -2
  51. package/dist/chunk-MV5PQNIA.js.map +1 -0
  52. package/dist/chunk-N2G4Q7ME.js +2672 -0
  53. package/dist/chunk-N2G4Q7ME.js.map +1 -0
  54. package/dist/chunk-OJBMDM5H.js +299 -0
  55. package/dist/chunk-OJBMDM5H.js.map +1 -0
  56. package/dist/{chunk-URLQAXTR.js → chunk-PTDC7ZUP.js} +2 -2
  57. package/dist/chunk-PTDC7ZUP.js.map +1 -0
  58. package/dist/{chunk-574C6MQR.js → chunk-REASC2QG.js} +173 -64
  59. package/dist/chunk-REASC2QG.js.map +1 -0
  60. package/dist/{chunk-7N4J557C.js → chunk-RT5SATF7.js} +1 -1
  61. package/dist/chunk-RT5SATF7.js.map +1 -0
  62. package/dist/chunk-SBTU5BEC.js +114 -0
  63. package/dist/chunk-SBTU5BEC.js.map +1 -0
  64. package/dist/{chunk-5KLVH3PY.js → chunk-SWPDKLNM.js} +5 -3
  65. package/dist/chunk-SWPDKLNM.js.map +1 -0
  66. package/dist/chunk-UCFJ43OS.js +520 -0
  67. package/dist/chunk-UCFJ43OS.js.map +1 -0
  68. package/dist/{chunk-VZQXX3WW.js → chunk-W7SLYS3M.js} +80 -16
  69. package/dist/chunk-W7SLYS3M.js.map +1 -0
  70. package/dist/{chunk-ANSJPYGI.js → chunk-WV3O5PGX.js} +3 -3
  71. package/dist/chunk-WV3O5PGX.js.map +1 -0
  72. package/dist/chunk-XHAO3K7I.js +18 -0
  73. package/dist/chunk-XHAO3K7I.js.map +1 -0
  74. package/dist/chunk-XJRJVXJR.js +1050 -0
  75. package/dist/chunk-XJRJVXJR.js.map +1 -0
  76. package/dist/chunk-YIL6HTJX.js +663 -0
  77. package/dist/chunk-YIL6HTJX.js.map +1 -0
  78. package/dist/{chunk-24AXE6SP.js → chunk-ZPSZZUWF.js} +1 -1
  79. package/dist/chunk-ZPSZZUWF.js.map +1 -0
  80. package/dist/{command-approvals-6Y57VCWZ.js → command-approvals-ZRY66LCW.js} +7 -5
  81. package/dist/context-C3RAP6K5.js +41 -0
  82. package/dist/{hook-approvals-CTUFKEJT.js → hook-approvals-DPQD5H65.js} +6 -5
  83. package/dist/index.js +947 -203
  84. package/dist/index.js.map +1 -1
  85. package/dist/{interactive-assets-CCAAWVKH.js → interactive-assets-73AQO5WP.js} +18 -9
  86. package/dist/interactive-assets-73AQO5WP.js.map +1 -0
  87. package/dist/job-runner.js +166 -111
  88. package/dist/job-runner.js.map +1 -1
  89. package/dist/job-supervisor.d.ts +2 -0
  90. package/dist/job-supervisor.js +121 -0
  91. package/dist/job-supervisor.js.map +1 -0
  92. package/dist/loader-DQNPDKOX.js +27 -0
  93. package/dist/{mcp-approvals-WNPH65BK.js → mcp-approvals-27LJYADQ.js} +6 -5
  94. package/dist/{mcp-config-YIJIES2C.js → mcp-config-GXSODNCM.js} +4 -3
  95. package/dist/memory-store-I6Z54VUN.js +51 -0
  96. package/dist/{model-window-store-YFVNXCIP.js → model-window-store-6VKXXTPJ.js} +9 -4
  97. package/dist/openai-compatible-IPUNBJ53.js +16 -0
  98. package/dist/permission-approvals-Q5IMFEZI.js +15 -0
  99. package/dist/permissions-7Y35X6HZ.js +62 -0
  100. package/dist/provider-approvals-5AGH3RVT.js +76 -0
  101. package/dist/sandbox-N2RY72GN.js +42 -0
  102. package/dist/{scrollback-LUKLIBVI.js → scrollback-GD76GNM4.js} +44 -26
  103. package/dist/scrollback-GD76GNM4.js.map +1 -0
  104. package/dist/sdk.d.ts +2739 -2069
  105. package/dist/sdk.js +77 -42
  106. package/dist/sdk.js.map +1 -1
  107. package/dist/settings-loader-KDBH45AQ.js +43 -0
  108. package/dist/settings-loader-KDBH45AQ.js.map +1 -0
  109. package/dist/{settings-removed-JWWPT4WA.js → settings-removed-3ATWJEF3.js} +2 -2
  110. package/dist/settings-removed-3ATWJEF3.js.map +1 -0
  111. package/dist/shell-selection-Z5WORZU4.js +31 -0
  112. package/dist/shell-selection-Z5WORZU4.js.map +1 -0
  113. package/package.json +25 -24
  114. package/dist/app-MOXXWEOY.js.map +0 -1
  115. package/dist/chunk-24AXE6SP.js.map +0 -1
  116. package/dist/chunk-3U5IBM24.js.map +0 -1
  117. package/dist/chunk-574C6MQR.js.map +0 -1
  118. package/dist/chunk-5GDZ22YP.js +0 -449
  119. package/dist/chunk-5GDZ22YP.js.map +0 -1
  120. package/dist/chunk-5KLVH3PY.js.map +0 -1
  121. package/dist/chunk-5RDRAO4B.js.map +0 -1
  122. package/dist/chunk-7N4J557C.js.map +0 -1
  123. package/dist/chunk-A7JLBK2Y.js +0 -3506
  124. package/dist/chunk-A7JLBK2Y.js.map +0 -1
  125. package/dist/chunk-ANSJPYGI.js.map +0 -1
  126. package/dist/chunk-BTZZUCLI.js +0 -264
  127. package/dist/chunk-BTZZUCLI.js.map +0 -1
  128. package/dist/chunk-C7D4NJ2D.js +0 -217
  129. package/dist/chunk-C7D4NJ2D.js.map +0 -1
  130. package/dist/chunk-CAGOB2N4.js.map +0 -1
  131. package/dist/chunk-DGMQEI6Y.js.map +0 -1
  132. package/dist/chunk-E75IPST5.js.map +0 -1
  133. package/dist/chunk-EYGD6X2T.js +0 -180
  134. package/dist/chunk-EYGD6X2T.js.map +0 -1
  135. package/dist/chunk-GTVB4HEM.js +0 -765
  136. package/dist/chunk-GTVB4HEM.js.map +0 -1
  137. package/dist/chunk-J7MIZ5CA.js.map +0 -1
  138. package/dist/chunk-KWHQ2XXL.js.map +0 -1
  139. package/dist/chunk-L6LK2QIQ.js +0 -657
  140. package/dist/chunk-L6LK2QIQ.js.map +0 -1
  141. package/dist/chunk-MAQXCUR4.js +0 -1007
  142. package/dist/chunk-MAQXCUR4.js.map +0 -1
  143. package/dist/chunk-S4XL7HOM.js +0 -402
  144. package/dist/chunk-S4XL7HOM.js.map +0 -1
  145. package/dist/chunk-URLQAXTR.js.map +0 -1
  146. package/dist/chunk-V4BOYR52.js.map +0 -1
  147. package/dist/chunk-VZQXX3WW.js.map +0 -1
  148. package/dist/chunk-WKBO5R4O.js.map +0 -1
  149. package/dist/chunk-XIFFTATU.js.map +0 -1
  150. package/dist/context-ZC5IFEAX.js +0 -25
  151. package/dist/interactive-assets-CCAAWVKH.js.map +0 -1
  152. package/dist/loader-4IDS2RIE.js +0 -15
  153. package/dist/openai-compatible-RHZUBHV6.js +0 -10
  154. package/dist/permission-approvals-76PVREFD.js +0 -14
  155. package/dist/permissions-CHCKTFQQ.js +0 -28
  156. package/dist/sandbox-CNVAQDA7.js +0 -23
  157. package/dist/scrollback-LUKLIBVI.js.map +0 -1
  158. package/dist/settings-loader-M2QP5TX2.js +0 -21
  159. package/dist/shell-selection-V6QAYXPX.js +0 -17
  160. package/patches/ink+6.8.0.patch +0 -13
  161. package/scripts/apply-ink-patch.mjs +0 -29
  162. package/scripts/ink-patch.mjs +0 -59
  163. package/scripts/verify-ink-patch.mjs +0 -11
  164. /package/dist/{command-approvals-6Y57VCWZ.js.map → additional-roots-VAWRQ625.js.map} +0 -0
  165. /package/dist/{context-ZC5IFEAX.js.map → command-approvals-ZRY66LCW.js.map} +0 -0
  166. /package/dist/{hook-approvals-CTUFKEJT.js.map → context-C3RAP6K5.js.map} +0 -0
  167. /package/dist/{loader-4IDS2RIE.js.map → hook-approvals-DPQD5H65.js.map} +0 -0
  168. /package/dist/{mcp-approvals-WNPH65BK.js.map → loader-DQNPDKOX.js.map} +0 -0
  169. /package/dist/{mcp-config-YIJIES2C.js.map → mcp-approvals-27LJYADQ.js.map} +0 -0
  170. /package/dist/{model-window-store-YFVNXCIP.js.map → mcp-config-GXSODNCM.js.map} +0 -0
  171. /package/dist/{openai-compatible-RHZUBHV6.js.map → memory-store-I6Z54VUN.js.map} +0 -0
  172. /package/dist/{permission-approvals-76PVREFD.js.map → model-window-store-6VKXXTPJ.js.map} +0 -0
  173. /package/dist/{permissions-CHCKTFQQ.js.map → openai-compatible-IPUNBJ53.js.map} +0 -0
  174. /package/dist/{sandbox-CNVAQDA7.js.map → permission-approvals-Q5IMFEZI.js.map} +0 -0
  175. /package/dist/{settings-loader-M2QP5TX2.js.map → permissions-7Y35X6HZ.js.map} +0 -0
  176. /package/dist/{settings-removed-JWWPT4WA.js.map → provider-approvals-5AGH3RVT.js.map} +0 -0
  177. /package/dist/{shell-selection-V6QAYXPX.js.map → sandbox-N2RY72GN.js.map} +0 -0
@@ -1,657 +0,0 @@
1
- // src/tui/theme.ts
2
- import { createContext, useContext } from "react";
3
-
4
- // src/types/theme.ts
5
- var DEFAULT_THEME = {
6
- brand: "#D3A17E",
7
- brandShimmer: "#E5BB9B",
8
- text: "#E7E1D4",
9
- inverseText: "#171815",
10
- inactive: "#6D6961",
11
- subtle: "#938E84",
12
- suggestion: "#7E7A72",
13
- permission: "#D1AA6C",
14
- remember: "#C09CAD",
15
- surface: "#20221D",
16
- surfaceActive: "#30362B",
17
- border: "#4B4D45",
18
- selectionText: "#F3EEE4",
19
- userAccent: "#D3A17E",
20
- assistantAccent: "#AFC19D",
21
- toolRail: "#5C6156",
22
- success: "#91B77C",
23
- error: "#D68174",
24
- warning: "#D1AA6C",
25
- merged: "#7FA89C",
26
- promptBorder: "#8C9A86",
27
- planMode: "#C09CAD",
28
- autoAccept: "#91B77C",
29
- bashBorder: "#D1AA6C",
30
- // `default` is the quiet mode: desaturated so the sage of an agent turn never
31
- // reads as a permission-mode signal.
32
- modeDefault: "#8C9A86",
33
- modePlan: "#C09CAD",
34
- modeAcceptEdits: "#91B77C",
35
- modeAuto: "#7FA89C",
36
- modeDontAsk: "#D68174",
37
- modeBypass: "#D1AA6C",
38
- diffAdded: "#243326",
39
- diffRemoved: "#382624",
40
- diffAddedWord: "#36523A",
41
- diffRemovedWord: "#5B3430",
42
- diffAddedDimmed: "#1D2B20",
43
- diffRemovedDimmed: "#302120",
44
- usageMeter: "#7FA89C",
45
- usageMeterHigh: "#D1AA6C",
46
- usageMeterCritical: "#D68174",
47
- // The spinner is the agent speaking, so it keeps the sage identity.
48
- shimmerPair: ["#AFC19D", "#C4D3B5"],
49
- subagentColors: [
50
- "#D68174",
51
- "#7FA89C",
52
- "#91B77C",
53
- "#D1AA6C",
54
- "#C09CAD",
55
- "#D3A17E",
56
- "#B88FA4",
57
- "#AFC19D"
58
- ],
59
- mdCodeBackground: "#1B1D1A",
60
- mdCodeBorder: "#3A3C36",
61
- mdCodeText: "#E7E1D4",
62
- mdCodeKeyword: "#C09CAD",
63
- mdCodeString: "#91B77C",
64
- mdCodeComment: "#6D6961",
65
- mdCodeNumber: "#D1AA6C",
66
- mdCodeFunction: "#7FA89C",
67
- mdCodeLineNumber: "#5C6156",
68
- mdInlineCodeBg: "#2B2C27",
69
- mdInlineCodeText: "#D3A17E",
70
- // A three-step brightness ramp, all bold. Depth is legible only if these
71
- // differ from each other *and* from `text` — otherwise a heading is
72
- // indistinguishable from a bold run in body copy.
73
- mdHeadingH1: "#F7F3EA",
74
- mdHeadingH2: "#EFEADC",
75
- mdHeading: "#B4AE9F",
76
- mdBlockquoteBorder: "#5C6156",
77
- mdBlockquoteText: "#938E84",
78
- mdLink: "#7FA89C",
79
- mdListMarker: "#8C9A86",
80
- mdHr: "#3A3C36",
81
- mdTableBorder: "#3A3C36",
82
- mdThinkBg: "#1E201C",
83
- mdThinkBorder: "#3A3C36",
84
- mdThinkText: "#7E7A72",
85
- mdTurnSeparator: "#4B4D45",
86
- mdCheckboxChecked: "#91B77C",
87
- mdCheckboxUnchecked: "#6D6961",
88
- userBg: "#262220"
89
- };
90
-
91
- // src/tui/theme.ts
92
- import { readFileSync, existsSync, readdirSync } from "fs";
93
- import { join } from "path";
94
- var DARK_THEME = { ...DEFAULT_THEME };
95
- var APPLE_THEME = {
96
- ...DEFAULT_THEME,
97
- brand: "#5E5CE6",
98
- brandShimmer: "#8E8CFF",
99
- text: "#F5F5F7",
100
- inverseText: "#111113",
101
- inactive: "#6E6E73",
102
- subtle: "#98989D",
103
- suggestion: "#8E8E93",
104
- permission: "#FF9F0A",
105
- remember: "#BF5AF2",
106
- surface: "#1C1C1E",
107
- surfaceActive: "#2C2C2E",
108
- border: "#3A3A3C",
109
- selectionText: "#FFFFFF",
110
- userAccent: "#0A84FF",
111
- assistantAccent: "#64D2FF",
112
- toolRail: "#636366",
113
- success: "#30D158",
114
- error: "#FF453A",
115
- warning: "#FF9F0A",
116
- merged: "#66D4CF",
117
- promptBorder: "#0A84FF",
118
- planMode: "#BF5AF2",
119
- autoAccept: "#30D158",
120
- bashBorder: "#FF9F0A",
121
- // `default` is the quiet mode: neutral grey, so an ordinary session carries
122
- // no permission-mode signal at all.
123
- modeDefault: "#98989D",
124
- modePlan: "#BF5AF2",
125
- modeAcceptEdits: "#30D158",
126
- modeAuto: "#66D4CF",
127
- modeDontAsk: "#FF453A",
128
- modeBypass: "#FF9F0A",
129
- diffAdded: "#173A28",
130
- diffRemoved: "#3A1E22",
131
- diffAddedWord: "#24633D",
132
- diffRemovedWord: "#6B2932",
133
- diffAddedDimmed: "#122B1E",
134
- diffRemovedDimmed: "#2B181C",
135
- usageMeter: "#66D4CF",
136
- usageMeterHigh: "#FF9F0A",
137
- usageMeterCritical: "#FF453A",
138
- // The spinner is the agent speaking, so it keeps the cyan identity.
139
- shimmerPair: ["#64D2FF", "#A5E3FF"],
140
- subagentColors: [
141
- "#FF453A",
142
- "#FF9F0A",
143
- "#FFD60A",
144
- "#30D158",
145
- "#64D2FF",
146
- "#0A84FF",
147
- "#BF5AF2",
148
- "#5E5CE6"
149
- ],
150
- mdCodeBackground: "#161618",
151
- mdCodeBorder: "#3A3A3C",
152
- mdCodeText: "#F5F5F7",
153
- mdCodeKeyword: "#BF5AF2",
154
- mdCodeString: "#30D158",
155
- mdCodeComment: "#6E6E73",
156
- mdCodeNumber: "#FF9F0A",
157
- mdCodeFunction: "#64D2FF",
158
- mdCodeLineNumber: "#636366",
159
- mdInlineCodeBg: "#2C2C2E",
160
- mdInlineCodeText: "#66D4CF",
161
- // Three distinct brightness steps, none at `text`, so heading depth stays
162
- // legible without markers.
163
- mdHeadingH1: "#FFFFFF",
164
- mdHeadingH2: "#E5E5EA",
165
- mdHeading: "#AEAEB2",
166
- mdBlockquoteBorder: "#636366",
167
- mdBlockquoteText: "#98989D",
168
- mdLink: "#66D4CF",
169
- mdListMarker: "#0A84FF",
170
- mdHr: "#3A3A3C",
171
- mdTableBorder: "#3A3A3C",
172
- mdThinkBg: "#161618",
173
- mdThinkBorder: "#3A3A3C",
174
- mdThinkText: "#8E8E93",
175
- mdTurnSeparator: "#3A3A3C",
176
- mdCheckboxChecked: "#30D158",
177
- mdCheckboxUnchecked: "#6E6E73",
178
- userBg: "#202022"
179
- };
180
- var LIGHT_THEME = {
181
- ...DEFAULT_THEME,
182
- brand: "#A45F48",
183
- brandShimmer: "#B87458",
184
- text: "#302E2A",
185
- inverseText: "#FBF7EE",
186
- inactive: "#928A7E",
187
- subtle: "#746F66",
188
- suggestion: "#8A8378",
189
- permission: "#94662B",
190
- remember: "#805F6E",
191
- surface: "#EEE8DC",
192
- surfaceActive: "#DDE6D6",
193
- border: "#C9C1B3",
194
- selectionText: "#293126",
195
- userAccent: "#A45F48",
196
- assistantAccent: "#607257",
197
- toolRail: "#A79F91",
198
- success: "#4F7746",
199
- error: "#A54F44",
200
- warning: "#94662B",
201
- merged: "#4F7B71",
202
- promptBorder: "#7C8A76",
203
- planMode: "#805F6E",
204
- autoAccept: "#4F7746",
205
- bashBorder: "#94662B",
206
- modeDefault: "#7C8A76",
207
- modePlan: "#805F6E",
208
- modeAcceptEdits: "#4F7746",
209
- modeAuto: "#4F7B71",
210
- modeDontAsk: "#A54F44",
211
- modeBypass: "#94662B",
212
- usageMeter: "#4F7B71",
213
- usageMeterHigh: "#94662B",
214
- usageMeterCritical: "#A54F44",
215
- diffAdded: "#DFECDC",
216
- diffRemoved: "#F1DDDA",
217
- diffAddedWord: "#BFD8BD",
218
- diffRemovedWord: "#E6BFBA",
219
- diffAddedDimmed: "#EAF3E9",
220
- diffRemovedDimmed: "#F7E9E7",
221
- shimmerPair: ["#607257", "#75886A"],
222
- subagentColors: [
223
- "#A54F44",
224
- "#4F7B71",
225
- "#4F7746",
226
- "#94662B",
227
- "#805F6E",
228
- "#A45F48",
229
- "#8D6277",
230
- "#607257"
231
- ],
232
- mdCodeBackground: "#E7E2D8",
233
- mdCodeBorder: "#CFC7B9",
234
- mdCodeText: "#302E2A",
235
- mdCodeKeyword: "#805F6E",
236
- mdCodeString: "#4F7746",
237
- mdCodeComment: "#8A8378",
238
- mdCodeNumber: "#94662B",
239
- mdCodeFunction: "#4F7B71",
240
- mdCodeLineNumber: "#A79F91",
241
- mdInlineCodeBg: "#E4DED2",
242
- mdInlineCodeText: "#A45F48",
243
- mdHeadingH1: "#14130F",
244
- mdHeadingH2: "#23211D",
245
- mdHeading: "#5F5B51",
246
- mdBlockquoteBorder: "#A79F91",
247
- mdBlockquoteText: "#746F66",
248
- mdLink: "#4F7B71",
249
- mdListMarker: "#7C8A76",
250
- mdHr: "#CFC7B9",
251
- mdTableBorder: "#CFC7B9",
252
- mdThinkBg: "#EEE8DC",
253
- mdThinkBorder: "#CFC7B9",
254
- mdThinkText: "#746F66",
255
- mdTurnSeparator: "#C9C1B3",
256
- mdCheckboxChecked: "#4F7746",
257
- mdCheckboxUnchecked: "#928A7E",
258
- userBg: "#F3E7DE"
259
- };
260
- var CATPPUCCIN_THEME = {
261
- ...DEFAULT_THEME,
262
- brand: "#CBA6F7",
263
- brandShimmer: "#F5C2E7",
264
- text: "#CDD6F4",
265
- inverseText: "#11111B",
266
- inactive: "#6C7086",
267
- subtle: "#A6ADC8",
268
- suggestion: "#7F849C",
269
- permission: "#F9E2AF",
270
- remember: "#F5C2E7",
271
- surface: "#1E1E2E",
272
- surfaceActive: "#313244",
273
- border: "#45475A",
274
- selectionText: "#F5E0DC",
275
- userAccent: "#89B4FA",
276
- assistantAccent: "#B4BEFE",
277
- toolRail: "#585B70",
278
- success: "#A6E3A1",
279
- error: "#F38BA8",
280
- warning: "#F9E2AF",
281
- merged: "#94E2D5",
282
- promptBorder: "#89B4FA",
283
- planMode: "#F5C2E7",
284
- autoAccept: "#A6E3A1",
285
- bashBorder: "#FAB387",
286
- modeDefault: "#89B4FA",
287
- modePlan: "#F5C2E7",
288
- modeAcceptEdits: "#A6E3A1",
289
- modeAuto: "#94E2D5",
290
- modeDontAsk: "#F38BA8",
291
- modeBypass: "#FAB387",
292
- diffAdded: "#23342E",
293
- diffRemoved: "#3B2430",
294
- diffAddedWord: "#315444",
295
- diffRemovedWord: "#5C2C40",
296
- diffAddedDimmed: "#1B2A24",
297
- diffRemovedDimmed: "#2D1D26",
298
- usageMeter: "#94E2D5",
299
- usageMeterHigh: "#FAB387",
300
- usageMeterCritical: "#F38BA8",
301
- shimmerPair: ["#B4BEFE", "#C7CEFF"],
302
- subagentColors: [
303
- "#F38BA8",
304
- "#FAB387",
305
- "#F9E2AF",
306
- "#A6E3A1",
307
- "#94E2D5",
308
- "#89B4FA",
309
- "#CBA6F7",
310
- "#F5C2E7"
311
- ],
312
- mdCodeBackground: "#181825",
313
- mdCodeBorder: "#313244",
314
- mdCodeText: "#CDD6F4",
315
- mdCodeKeyword: "#CBA6F7",
316
- mdCodeString: "#A6E3A1",
317
- mdCodeComment: "#6C7086",
318
- mdCodeNumber: "#FAB387",
319
- mdCodeFunction: "#89B4FA",
320
- mdCodeLineNumber: "#585B70",
321
- mdInlineCodeBg: "#313244",
322
- mdInlineCodeText: "#F5C2E7",
323
- mdHeadingH1: "#F5E0DC",
324
- mdHeadingH2: "#BAC2DE",
325
- mdHeading: "#A6ADC8",
326
- mdBlockquoteBorder: "#585B70",
327
- mdBlockquoteText: "#A6ADC8",
328
- mdLink: "#89DCEB",
329
- mdListMarker: "#89B4FA",
330
- mdHr: "#45475A",
331
- mdTableBorder: "#45475A",
332
- mdThinkBg: "#181825",
333
- mdThinkBorder: "#313244",
334
- mdThinkText: "#7F849C",
335
- mdTurnSeparator: "#45475A",
336
- mdCheckboxChecked: "#A6E3A1",
337
- mdCheckboxUnchecked: "#6C7086",
338
- userBg: "#24273A"
339
- };
340
- var NORD_THEME = {
341
- ...DEFAULT_THEME,
342
- brand: "#88C0D0",
343
- brandShimmer: "#8FBCBB",
344
- text: "#D8DEE9",
345
- inverseText: "#2E3440",
346
- inactive: "#4C566A",
347
- subtle: "#9AA7BC",
348
- suggestion: "#616E88",
349
- permission: "#EBCB8B",
350
- remember: "#B48EAD",
351
- surface: "#2E3440",
352
- surfaceActive: "#3B4252",
353
- border: "#434C5E",
354
- selectionText: "#ECEFF4",
355
- userAccent: "#81A1C1",
356
- assistantAccent: "#8FBCBB",
357
- toolRail: "#4C566A",
358
- success: "#A3BE8C",
359
- error: "#BF616A",
360
- warning: "#EBCB8B",
361
- merged: "#88C0D0",
362
- promptBorder: "#81A1C1",
363
- planMode: "#B48EAD",
364
- autoAccept: "#A3BE8C",
365
- bashBorder: "#D08770",
366
- modeDefault: "#5E81AC",
367
- modePlan: "#B48EAD",
368
- modeAcceptEdits: "#A3BE8C",
369
- modeAuto: "#8FBCBB",
370
- modeDontAsk: "#BF616A",
371
- modeBypass: "#D08770",
372
- diffAdded: "#2A3B35",
373
- diffRemoved: "#3D2930",
374
- diffAddedWord: "#385648",
375
- diffRemovedWord: "#5E353F",
376
- diffAddedDimmed: "#23302B",
377
- diffRemovedDimmed: "#312127",
378
- usageMeter: "#81A1C1",
379
- usageMeterHigh: "#EBCB8B",
380
- usageMeterCritical: "#BF616A",
381
- shimmerPair: ["#8FBCBB", "#A3CECD"],
382
- subagentColors: [
383
- "#BF616A",
384
- "#D08770",
385
- "#EBCB8B",
386
- "#A3BE8C",
387
- "#8FBCBB",
388
- "#88C0D0",
389
- "#81A1C1",
390
- "#B48EAD"
391
- ],
392
- mdCodeBackground: "#242933",
393
- mdCodeBorder: "#3B4252",
394
- mdCodeText: "#D8DEE9",
395
- mdCodeKeyword: "#81A1C1",
396
- mdCodeString: "#A3BE8C",
397
- mdCodeComment: "#616E88",
398
- mdCodeNumber: "#B48EAD",
399
- mdCodeFunction: "#88C0D0",
400
- mdCodeLineNumber: "#4C566A",
401
- mdInlineCodeBg: "#3B4252",
402
- mdInlineCodeText: "#88C0D0",
403
- mdHeadingH1: "#ECEFF4",
404
- mdHeadingH2: "#E5E9F0",
405
- mdHeading: "#9AA7BC",
406
- mdBlockquoteBorder: "#4C566A",
407
- mdBlockquoteText: "#9AA7BC",
408
- mdLink: "#81A1C1",
409
- mdListMarker: "#88C0D0",
410
- mdHr: "#434C5E",
411
- mdTableBorder: "#434C5E",
412
- mdThinkBg: "#242933",
413
- mdThinkBorder: "#3B4252",
414
- mdThinkText: "#616E88",
415
- mdTurnSeparator: "#434C5E",
416
- mdCheckboxChecked: "#A3BE8C",
417
- mdCheckboxUnchecked: "#4C566A",
418
- userBg: "#353C4A"
419
- };
420
- var GRUVBOX_THEME = {
421
- ...DEFAULT_THEME,
422
- brand: "#FE8019",
423
- brandShimmer: "#FABD2F",
424
- text: "#EBDBB2",
425
- inverseText: "#282828",
426
- inactive: "#7C6F64",
427
- subtle: "#A89984",
428
- suggestion: "#928374",
429
- permission: "#FABD2F",
430
- remember: "#D3869B",
431
- surface: "#282828",
432
- surfaceActive: "#3C3836",
433
- border: "#504945",
434
- selectionText: "#FBF1C7",
435
- userAccent: "#FE8019",
436
- assistantAccent: "#8EC07C",
437
- toolRail: "#665C54",
438
- success: "#B8BB26",
439
- error: "#FB4934",
440
- warning: "#FABD2F",
441
- merged: "#83A598",
442
- promptBorder: "#83A598",
443
- planMode: "#D3869B",
444
- autoAccept: "#B8BB26",
445
- bashBorder: "#FABD2F",
446
- modeDefault: "#689D6A",
447
- modePlan: "#D3869B",
448
- modeAcceptEdits: "#B8BB26",
449
- modeAuto: "#8EC07C",
450
- modeDontAsk: "#FB4934",
451
- modeBypass: "#FE8019",
452
- diffAdded: "#2B3322",
453
- diffRemoved: "#3B2320",
454
- diffAddedWord: "#3E522C",
455
- diffRemovedWord: "#5C2B25",
456
- diffAddedDimmed: "#23291C",
457
- diffRemovedDimmed: "#2E1C1A",
458
- usageMeter: "#83A598",
459
- usageMeterHigh: "#FABD2F",
460
- usageMeterCritical: "#FB4934",
461
- shimmerPair: ["#8EC07C", "#B8BB26"],
462
- subagentColors: [
463
- "#FB4934",
464
- "#FE8019",
465
- "#FABD2F",
466
- "#B8BB26",
467
- "#8EC07C",
468
- "#83A598",
469
- "#D3869B",
470
- "#D5C4A1"
471
- ],
472
- mdCodeBackground: "#1D2021",
473
- mdCodeBorder: "#3C3836",
474
- mdCodeText: "#EBDBB2",
475
- mdCodeKeyword: "#FB4934",
476
- mdCodeString: "#B8BB26",
477
- mdCodeComment: "#928374",
478
- mdCodeNumber: "#D3869B",
479
- mdCodeFunction: "#8EC07C",
480
- mdCodeLineNumber: "#665C54",
481
- mdInlineCodeBg: "#3C3836",
482
- mdInlineCodeText: "#FE8019",
483
- mdHeadingH1: "#FBF1C7",
484
- mdHeadingH2: "#F2E5BC",
485
- mdHeading: "#D5C4A1",
486
- mdBlockquoteBorder: "#665C54",
487
- mdBlockquoteText: "#A89984",
488
- mdLink: "#83A598",
489
- mdListMarker: "#FE8019",
490
- mdHr: "#504945",
491
- mdTableBorder: "#504945",
492
- mdThinkBg: "#1D2021",
493
- mdThinkBorder: "#3C3836",
494
- mdThinkText: "#928374",
495
- mdTurnSeparator: "#504945",
496
- mdCheckboxChecked: "#B8BB26",
497
- mdCheckboxUnchecked: "#7C6F64",
498
- userBg: "#32302F"
499
- };
500
- var SOLARIZED_DARK_THEME = {
501
- ...DEFAULT_THEME,
502
- brand: "#268BD2",
503
- brandShimmer: "#2AA198",
504
- text: "#839496",
505
- inverseText: "#002B36",
506
- inactive: "#586E75",
507
- subtle: "#657B83",
508
- suggestion: "#586E75",
509
- permission: "#B58900",
510
- remember: "#D33682",
511
- surface: "#002B36",
512
- surfaceActive: "#073642",
513
- border: "#0E4B5B",
514
- selectionText: "#FDF6E3",
515
- userAccent: "#268BD2",
516
- assistantAccent: "#2AA198",
517
- toolRail: "#586E75",
518
- success: "#859900",
519
- error: "#DC322F",
520
- warning: "#B58900",
521
- merged: "#2AA198",
522
- promptBorder: "#268BD2",
523
- planMode: "#D33682",
524
- autoAccept: "#859900",
525
- bashBorder: "#CB4B16",
526
- modeDefault: "#586E75",
527
- modePlan: "#D33682",
528
- modeAcceptEdits: "#859900",
529
- modeAuto: "#2AA198",
530
- modeDontAsk: "#DC322F",
531
- modeBypass: "#CB4B16",
532
- diffAdded: "#0A3326",
533
- diffRemoved: "#36191E",
534
- diffAddedWord: "#134F3A",
535
- diffRemovedWord: "#54222A",
536
- diffAddedDimmed: "#08291F",
537
- diffRemovedDimmed: "#2B1418",
538
- usageMeter: "#2AA198",
539
- usageMeterHigh: "#B58900",
540
- usageMeterCritical: "#DC322F",
541
- shimmerPair: ["#2AA198", "#859900"],
542
- subagentColors: [
543
- "#DC322F",
544
- "#CB4B16",
545
- "#B58900",
546
- "#859900",
547
- "#2AA198",
548
- "#268BD2",
549
- "#6C71C4",
550
- "#D33682"
551
- ],
552
- mdCodeBackground: "#00212B",
553
- mdCodeBorder: "#073642",
554
- mdCodeText: "#839496",
555
- mdCodeKeyword: "#859900",
556
- mdCodeString: "#2AA198",
557
- mdCodeComment: "#586E75",
558
- mdCodeNumber: "#D33682",
559
- mdCodeFunction: "#268BD2",
560
- mdCodeLineNumber: "#586E75",
561
- mdInlineCodeBg: "#073642",
562
- mdInlineCodeText: "#2AA198",
563
- mdHeadingH1: "#FDF6E3",
564
- mdHeadingH2: "#EEE8D5",
565
- mdHeading: "#93A1A1",
566
- mdBlockquoteBorder: "#586E75",
567
- mdBlockquoteText: "#657B83",
568
- mdLink: "#6C71C4",
569
- mdListMarker: "#2AA198",
570
- mdHr: "#073642",
571
- mdTableBorder: "#073642",
572
- mdThinkBg: "#00212B",
573
- mdThinkBorder: "#073642",
574
- mdThinkText: "#586E75",
575
- mdTurnSeparator: "#073642",
576
- mdCheckboxChecked: "#859900",
577
- mdCheckboxUnchecked: "#586E75",
578
- userBg: "#073642"
579
- };
580
- var CUSTOM_THEME_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
581
- var ThemeContext = createContext(DEFAULT_THEME);
582
- function useTheme() {
583
- return useContext(ThemeContext);
584
- }
585
- function hasLightTerminalBackground(colorFgBg = process.env.COLORFGBG ?? "") {
586
- const background = Number(colorFgBg.split(";").at(-1));
587
- return background === 7 || background === 15;
588
- }
589
- function listCustomThemes(workspace) {
590
- const themesDir = join(workspace, ".book", "themes");
591
- try {
592
- return readdirSync(themesDir, { withFileTypes: true }).filter((entry) => entry.isFile() && entry.name.endsWith(".json")).map((entry) => entry.name.slice(0, -".json".length)).filter((name) => CUSTOM_THEME_NAME.test(name)).sort((a, b) => a.localeCompare(b));
593
- } catch {
594
- return [];
595
- }
596
- }
597
- function loadCustomTheme(workspace, name) {
598
- if (!CUSTOM_THEME_NAME.test(name)) return null;
599
- const themePath = join(workspace, ".book", "themes", `${name}.json`);
600
- if (!existsSync(themePath)) return null;
601
- try {
602
- const raw = readFileSync(themePath, "utf-8");
603
- const parsed = JSON.parse(raw);
604
- return { ...DEFAULT_THEME, ...parsed };
605
- } catch {
606
- return null;
607
- }
608
- }
609
- function resolveTheme(workspace, preference, colorFgBg = process.env.COLORFGBG ?? "") {
610
- const requested = preference.trim();
611
- const builtin = requested.toLowerCase();
612
- if (builtin === "apple" || builtin === "apple-dark") {
613
- return { preference: "apple", resolvedName: "apple", tokens: APPLE_THEME };
614
- }
615
- if (builtin === "dark") {
616
- return { preference: "dark", resolvedName: "dark", tokens: DARK_THEME };
617
- }
618
- if (builtin === "light") {
619
- return { preference: "light", resolvedName: "light", tokens: LIGHT_THEME };
620
- }
621
- if (builtin === "auto") {
622
- const isLight = hasLightTerminalBackground(colorFgBg);
623
- return {
624
- preference: "auto",
625
- resolvedName: isLight ? "light" : "apple",
626
- tokens: isLight ? LIGHT_THEME : APPLE_THEME
627
- };
628
- }
629
- if (builtin === "catppuccin" || builtin === "catppuccin-mocha" || builtin === "mocha") {
630
- return { preference: "catppuccin", resolvedName: "catppuccin", tokens: CATPPUCCIN_THEME };
631
- }
632
- if (builtin === "nord") {
633
- return { preference: "nord", resolvedName: "nord", tokens: NORD_THEME };
634
- }
635
- if (builtin === "gruvbox" || builtin === "gruvbox-dark") {
636
- return { preference: "gruvbox", resolvedName: "gruvbox", tokens: GRUVBOX_THEME };
637
- }
638
- if (builtin === "solarized-dark" || builtin === "solarized") {
639
- return {
640
- preference: "solarized-dark",
641
- resolvedName: "solarized-dark",
642
- tokens: SOLARIZED_DARK_THEME
643
- };
644
- }
645
- if (!requested) return null;
646
- const custom = loadCustomTheme(workspace, requested);
647
- return custom ? { preference: requested, resolvedName: requested, tokens: custom } : null;
648
- }
649
-
650
- export {
651
- APPLE_THEME,
652
- ThemeContext,
653
- useTheme,
654
- listCustomThemes,
655
- resolveTheme
656
- };
657
- //# sourceMappingURL=chunk-L6LK2QIQ.js.map