reasonix 0.51.0 → 0.52.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 (143) hide show
  1. package/dashboard/dist/app.css +1 -1
  2. package/dashboard/dist/app.js +3 -3
  3. package/dashboard/dist/app.js.map +1 -1
  4. package/dist/cli/{acp-XEUHGG7X.js → acp-NEUYWGUU.js} +26 -26
  5. package/dist/cli/chat-QA6IVFJD.js +49 -0
  6. package/dist/cli/{chunk-HGK57NBN.js → chunk-2W4F3RIZ.js} +2 -2
  7. package/dist/cli/{chunk-UO6E7FN3.js → chunk-3OXD5CBM.js} +32756 -31192
  8. package/dist/cli/chunk-3OXD5CBM.js.map +1 -0
  9. package/dist/cli/{chunk-UMZ6KHTS.js → chunk-5YLEKX2V.js} +2 -2
  10. package/dist/cli/{chunk-BA5R6BAE.js → chunk-6QBUXA73.js} +2 -2
  11. package/dist/cli/chunk-77JIQ7SL.js +40 -0
  12. package/dist/cli/chunk-77JIQ7SL.js.map +1 -0
  13. package/dist/cli/{chunk-6XWXIVQ3.js → chunk-AMSK3ZLB.js} +2 -2
  14. package/dist/cli/chunk-AMSK3ZLB.js.map +1 -0
  15. package/dist/cli/{chunk-A5PBEIJ7.js → chunk-AOYUW3HR.js} +37 -4
  16. package/dist/cli/chunk-AOYUW3HR.js.map +1 -0
  17. package/dist/cli/{chunk-3YRTIWFX.js → chunk-ARBGTNHM.js} +2 -2
  18. package/dist/cli/{chunk-3BTK5BHI.js → chunk-B4MOGWHW.js} +2 -2
  19. package/dist/cli/{chunk-5AIDYVH2.js → chunk-CFJY64UA.js} +2 -2
  20. package/dist/cli/{chunk-SBHF5NWD.js → chunk-CGVW5W7N.js} +14 -14
  21. package/dist/cli/{chunk-SBHF5NWD.js.map → chunk-CGVW5W7N.js.map} +1 -1
  22. package/dist/cli/{chunk-DVD67FXQ.js → chunk-CLHMV6OL.js} +568 -66
  23. package/dist/cli/chunk-CLHMV6OL.js.map +1 -0
  24. package/dist/cli/{chunk-2WUEAI2I.js → chunk-CPCUMMSR.js} +3 -3
  25. package/dist/cli/{chunk-JHWQDJZA.js → chunk-CTRM32BP.js} +2 -2
  26. package/dist/cli/{chunk-544J4PXD.js → chunk-D6WRFR6V.js} +5 -5
  27. package/dist/cli/{chunk-N4SEBLU4.js → chunk-DLTE4GBY.js} +3 -3
  28. package/dist/cli/{chunk-NRROJXXT.js → chunk-FY5UERSG.js} +9 -9
  29. package/dist/cli/{chunk-C2MRSJTV.js → chunk-GFJJEW3Z.js} +18 -10
  30. package/dist/cli/chunk-GFJJEW3Z.js.map +1 -0
  31. package/dist/cli/{chunk-R6KIHEF3.js → chunk-GNRKXRRE.js} +743 -660
  32. package/dist/cli/chunk-GNRKXRRE.js.map +1 -0
  33. package/dist/cli/{chunk-SXSAWOB7.js → chunk-HI6THNAZ.js} +19 -17
  34. package/dist/cli/chunk-HI6THNAZ.js.map +1 -0
  35. package/dist/cli/{chunk-K4YQFULP.js → chunk-HNZ4727T.js} +15 -15
  36. package/dist/cli/chunk-I3NE5S63.js +54 -0
  37. package/dist/cli/{chunk-EAMXOWUW.js.map → chunk-I3NE5S63.js.map} +1 -1
  38. package/dist/cli/{chunk-FEZK652I.js → chunk-MVLPXZAA.js} +834 -10
  39. package/dist/cli/chunk-MVLPXZAA.js.map +1 -0
  40. package/dist/cli/{chunk-36BM7INR.js → chunk-MW64SQUE.js} +2 -2
  41. package/dist/cli/{chunk-Z3MKG7MQ.js → chunk-OMNRXZNA.js} +2 -2
  42. package/dist/cli/{chunk-7YPMTE3U.js → chunk-RCC73DWQ.js} +5 -9
  43. package/dist/cli/chunk-RCC73DWQ.js.map +1 -0
  44. package/dist/cli/{chunk-2HVTBFCI.js → chunk-RHQOGG43.js} +5 -3
  45. package/dist/cli/chunk-RHQOGG43.js.map +1 -0
  46. package/dist/cli/{chunk-EWVFGYT6.js → chunk-VVPV5HU6.js} +2 -2
  47. package/dist/cli/{chunk-7YB26OQO.js → chunk-WPY7AFS6.js} +2 -2
  48. package/dist/cli/{chunk-BM6BBFAV.js → chunk-XBYHNZ5Z.js} +2 -2
  49. package/dist/cli/{chunk-WPOKBW5E.js → chunk-XNMXVL6C.js} +2 -2
  50. package/dist/cli/{chunk-SVD4UPRQ.js → chunk-XUZHBQSM.js} +2 -2
  51. package/dist/cli/{chunk-Q46B3Z7H.js → chunk-YMYX6QTC.js} +8 -5
  52. package/dist/cli/{chunk-Q46B3Z7H.js.map → chunk-YMYX6QTC.js.map} +1 -1
  53. package/dist/cli/{chunk-K3QJ3GKI.js → chunk-Z663GVUB.js} +3 -3
  54. package/dist/cli/{code-BMXLBC7D.js → code-WN6D4VZO.js} +35 -36
  55. package/dist/cli/{code-BMXLBC7D.js.map → code-WN6D4VZO.js.map} +1 -1
  56. package/dist/cli/{commands-E4RZXMF6.js → commands-DHETOY7O.js} +4 -4
  57. package/dist/cli/{commit-KSRQ64IL.js → commit-BBUYAKZV.js} +3 -3
  58. package/dist/cli/{config-QNDONOTU.js → config-KV7VV5LG.js} +4 -2
  59. package/dist/cli/{desktop-H3ZHIMDA.js → desktop-LJVXWXNF.js} +557 -70
  60. package/dist/cli/desktop-LJVXWXNF.js.map +1 -0
  61. package/dist/cli/diff-2JHMQAHI.js +165 -0
  62. package/dist/cli/{diff-I4PYI43W.js.map → diff-2JHMQAHI.js.map} +1 -1
  63. package/dist/cli/{doctor-Y2E4MY2F.js → doctor-GI5LOEZL.js} +11 -11
  64. package/dist/cli/{events-47HOT7ZA.js → events-LBKMLFM4.js} +5 -5
  65. package/dist/cli/index.js +40 -39
  66. package/dist/cli/index.js.map +1 -1
  67. package/dist/cli/{mcp-76DK63ZB.js → mcp-DKEJK5ND.js} +3 -3
  68. package/dist/cli/{mcp-browse-SDNUGO74.js → mcp-browse-V7KWDY32.js} +15 -15
  69. package/dist/cli/{mcp-browse-SDNUGO74.js.map → mcp-browse-V7KWDY32.js.map} +1 -1
  70. package/dist/cli/{mcp-inspect-BL5DEO5M.js → mcp-inspect-MTABNHVM.js} +5 -5
  71. package/dist/cli/{prompt-JLATI3P7.js → prompt-ATI7DKHF.js} +5 -5
  72. package/dist/cli/{prune-sessions-WHZDFUKD.js → prune-sessions-YQQSZTZS.js} +4 -4
  73. package/dist/cli/{replay-MHXS7C7Z.js → replay-ZJQ4I4CJ.js} +30 -30
  74. package/dist/cli/{replay-MHXS7C7Z.js.map → replay-ZJQ4I4CJ.js.map} +1 -1
  75. package/dist/cli/{run-SXNCPRJE.js → run-HFPRNWJY.js} +22 -22
  76. package/dist/cli/{server-GEHOE6CO.js → server-UHKO2VVM.js} +23 -23
  77. package/dist/cli/{sessions-EPBFYISL.js → sessions-IQEWWUH3.js} +16 -16
  78. package/dist/cli/setup-5BYKCL62.js +502 -0
  79. package/dist/cli/setup-5BYKCL62.js.map +1 -0
  80. package/dist/cli/{stats-4WB4XHBP.js → stats-OFCGOQMZ.js} +6 -6
  81. package/dist/cli/{version-4SP3DLLH.js → version-EODUFAAI.js} +16 -16
  82. package/dist/index.d.ts +12 -1
  83. package/dist/index.js +613 -78
  84. package/dist/index.js.map +1 -1
  85. package/package.json +21 -3
  86. package/dist/cli/chat-NJ2Q5KHG.js +0 -50
  87. package/dist/cli/chunk-2HVTBFCI.js.map +0 -1
  88. package/dist/cli/chunk-5BBC6YMV.js +0 -832
  89. package/dist/cli/chunk-5BBC6YMV.js.map +0 -1
  90. package/dist/cli/chunk-6XWXIVQ3.js.map +0 -1
  91. package/dist/cli/chunk-7YPMTE3U.js.map +0 -1
  92. package/dist/cli/chunk-A5PBEIJ7.js.map +0 -1
  93. package/dist/cli/chunk-C2MRSJTV.js.map +0 -1
  94. package/dist/cli/chunk-DVD67FXQ.js.map +0 -1
  95. package/dist/cli/chunk-EAMXOWUW.js +0 -54
  96. package/dist/cli/chunk-FEZK652I.js.map +0 -1
  97. package/dist/cli/chunk-R6KIHEF3.js.map +0 -1
  98. package/dist/cli/chunk-SXSAWOB7.js.map +0 -1
  99. package/dist/cli/chunk-UO6E7FN3.js.map +0 -1
  100. package/dist/cli/chunk-UPW544V3.js +0 -96
  101. package/dist/cli/chunk-UPW544V3.js.map +0 -1
  102. package/dist/cli/desktop-H3ZHIMDA.js.map +0 -1
  103. package/dist/cli/devtools-HW3WDT3Q.js +0 -91
  104. package/dist/cli/devtools-HW3WDT3Q.js.map +0 -1
  105. package/dist/cli/diff-I4PYI43W.js +0 -165
  106. package/dist/cli/setup-IW2XR5XI.js +0 -593
  107. package/dist/cli/setup-IW2XR5XI.js.map +0 -1
  108. /package/dist/cli/{acp-XEUHGG7X.js.map → acp-NEUYWGUU.js.map} +0 -0
  109. /package/dist/cli/{chat-NJ2Q5KHG.js.map → chat-QA6IVFJD.js.map} +0 -0
  110. /package/dist/cli/{chunk-HGK57NBN.js.map → chunk-2W4F3RIZ.js.map} +0 -0
  111. /package/dist/cli/{chunk-UMZ6KHTS.js.map → chunk-5YLEKX2V.js.map} +0 -0
  112. /package/dist/cli/{chunk-BA5R6BAE.js.map → chunk-6QBUXA73.js.map} +0 -0
  113. /package/dist/cli/{chunk-3YRTIWFX.js.map → chunk-ARBGTNHM.js.map} +0 -0
  114. /package/dist/cli/{chunk-3BTK5BHI.js.map → chunk-B4MOGWHW.js.map} +0 -0
  115. /package/dist/cli/{chunk-5AIDYVH2.js.map → chunk-CFJY64UA.js.map} +0 -0
  116. /package/dist/cli/{chunk-2WUEAI2I.js.map → chunk-CPCUMMSR.js.map} +0 -0
  117. /package/dist/cli/{chunk-JHWQDJZA.js.map → chunk-CTRM32BP.js.map} +0 -0
  118. /package/dist/cli/{chunk-544J4PXD.js.map → chunk-D6WRFR6V.js.map} +0 -0
  119. /package/dist/cli/{chunk-N4SEBLU4.js.map → chunk-DLTE4GBY.js.map} +0 -0
  120. /package/dist/cli/{chunk-NRROJXXT.js.map → chunk-FY5UERSG.js.map} +0 -0
  121. /package/dist/cli/{chunk-K4YQFULP.js.map → chunk-HNZ4727T.js.map} +0 -0
  122. /package/dist/cli/{chunk-36BM7INR.js.map → chunk-MW64SQUE.js.map} +0 -0
  123. /package/dist/cli/{chunk-Z3MKG7MQ.js.map → chunk-OMNRXZNA.js.map} +0 -0
  124. /package/dist/cli/{chunk-EWVFGYT6.js.map → chunk-VVPV5HU6.js.map} +0 -0
  125. /package/dist/cli/{chunk-7YB26OQO.js.map → chunk-WPY7AFS6.js.map} +0 -0
  126. /package/dist/cli/{chunk-BM6BBFAV.js.map → chunk-XBYHNZ5Z.js.map} +0 -0
  127. /package/dist/cli/{chunk-WPOKBW5E.js.map → chunk-XNMXVL6C.js.map} +0 -0
  128. /package/dist/cli/{chunk-SVD4UPRQ.js.map → chunk-XUZHBQSM.js.map} +0 -0
  129. /package/dist/cli/{chunk-K3QJ3GKI.js.map → chunk-Z663GVUB.js.map} +0 -0
  130. /package/dist/cli/{commands-E4RZXMF6.js.map → commands-DHETOY7O.js.map} +0 -0
  131. /package/dist/cli/{commit-KSRQ64IL.js.map → commit-BBUYAKZV.js.map} +0 -0
  132. /package/dist/cli/{config-QNDONOTU.js.map → config-KV7VV5LG.js.map} +0 -0
  133. /package/dist/cli/{doctor-Y2E4MY2F.js.map → doctor-GI5LOEZL.js.map} +0 -0
  134. /package/dist/cli/{events-47HOT7ZA.js.map → events-LBKMLFM4.js.map} +0 -0
  135. /package/dist/cli/{mcp-76DK63ZB.js.map → mcp-DKEJK5ND.js.map} +0 -0
  136. /package/dist/cli/{mcp-inspect-BL5DEO5M.js.map → mcp-inspect-MTABNHVM.js.map} +0 -0
  137. /package/dist/cli/{prompt-JLATI3P7.js.map → prompt-ATI7DKHF.js.map} +0 -0
  138. /package/dist/cli/{prune-sessions-WHZDFUKD.js.map → prune-sessions-YQQSZTZS.js.map} +0 -0
  139. /package/dist/cli/{run-SXNCPRJE.js.map → run-HFPRNWJY.js.map} +0 -0
  140. /package/dist/cli/{server-GEHOE6CO.js.map → server-UHKO2VVM.js.map} +0 -0
  141. /package/dist/cli/{sessions-EPBFYISL.js.map → sessions-IQEWWUH3.js.map} +0 -0
  142. /package/dist/cli/{stats-4WB4XHBP.js.map → stats-OFCGOQMZ.js.map} +0 -0
  143. /package/dist/cli/{version-4SP3DLLH.js.map → version-EODUFAAI.js.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reasonix",
3
- "version": "0.51.0",
3
+ "version": "0.52.0",
4
4
  "description": "DeepSeek-native coding agent: cache-first loop, flash-first cost control, tool-call repair.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -76,20 +76,38 @@
76
76
  "node": ">=22"
77
77
  },
78
78
  "dependencies": {
79
+ "@alcalzone/ansi-tokenize": "^0.3.0",
80
+ "auto-bind": "^5.0.1",
81
+ "bidi-js": "^1.0.3",
82
+ "chalk": "^5.3.0",
83
+ "cli-boxes": "^4.0.1",
79
84
  "cli-highlight": "^2.1.11",
85
+ "code-excerpt": "^4.0.0",
80
86
  "commander": "^12.1.0",
87
+ "emoji-regex": "^10.4.0",
81
88
  "eventsource-parser": "^3.0.0",
89
+ "get-east-asian-width": "^1.3.0",
82
90
  "iconv-lite": "^0.7.2",
83
91
  "ignore": "^7.0.5",
84
- "ink": "^7.0.4",
85
- "ink-text-input": "^6.0.0",
92
+ "indent-string": "^5.0.0",
93
+ "lodash-es": "^4.17.21",
86
94
  "node-html-parser": "^7.1.0",
87
95
  "picomatch": "^4.0.4",
88
96
  "react": "^19.2.6",
97
+ "react-reconciler": "^0.32.0",
98
+ "semver": "^7.6.3",
99
+ "signal-exit": "^4.1.0",
100
+ "slice-ansi": "^7.1.0",
101
+ "stack-utils": "^2.0.6",
89
102
  "string-width": "^7.2.0",
103
+ "strip-ansi": "^7.1.0",
104
+ "supports-hyperlinks": "^4.0.0",
90
105
  "undici": "^8.2.0",
106
+ "usehooks-ts": "^3.1.0",
91
107
  "web-tree-sitter": "^0.26.9",
108
+ "wrap-ansi": "^9.0.0",
92
109
  "ws": "^8.20.1",
110
+ "yoga-layout": "^3.2.1",
93
111
  "zod": "^4.4.1"
94
112
  },
95
113
  "devDependencies": {
@@ -1,50 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __cr } from 'node:module'; if (typeof globalThis.require === 'undefined') { globalThis.require = __cr(import.meta.url); }
3
- import {
4
- chatCommand
5
- } from "./chunk-R6KIHEF3.js";
6
- import "./chunk-UPW544V3.js";
7
- import "./chunk-JMBMLOBP.js";
8
- import "./chunk-K3QJ3GKI.js";
9
- import "./chunk-SZ5XES2N.js";
10
- import "./chunk-3BTK5BHI.js";
11
- import "./chunk-WPOKBW5E.js";
12
- import "./chunk-XJXDHAES.js";
13
- import "./chunk-5BBC6YMV.js";
14
- import "./chunk-BM6BBFAV.js";
15
- import "./chunk-5AIDYVH2.js";
16
- import "./chunk-SVD4UPRQ.js";
17
- import "./chunk-ZZM6QJ4W.js";
18
- import "./chunk-K4YQFULP.js";
19
- import "./chunk-7YPMTE3U.js";
20
- import "./chunk-36BM7INR.js";
21
- import "./chunk-544J4PXD.js";
22
- import "./chunk-UMZ6KHTS.js";
23
- import "./chunk-3YRTIWFX.js";
24
- import "./chunk-BA5R6BAE.js";
25
- import "./chunk-HGK57NBN.js";
26
- import "./chunk-N4SEBLU4.js";
27
- import "./chunk-FEZK652I.js";
28
- import "./chunk-SBHF5NWD.js";
29
- import "./chunk-2HVTBFCI.js";
30
- import "./chunk-UO6E7FN3.js";
31
- import "./chunk-PLHAZOLZ.js";
32
- import "./chunk-SXSAWOB7.js";
33
- import "./chunk-EWVFGYT6.js";
34
- import "./chunk-7YB26OQO.js";
35
- import "./chunk-Q46B3Z7H.js";
36
- import "./chunk-BOWSNGQC.js";
37
- import "./chunk-C2MRSJTV.js";
38
- import "./chunk-25T6CVUP.js";
39
- import "./chunk-2WUEAI2I.js";
40
- import "./chunk-6UNHNVJR.js";
41
- import "./chunk-6XWXIVQ3.js";
42
- import "./chunk-XXC2BYTV.js";
43
- import "./chunk-2UQP6H6T.js";
44
- import "./chunk-DVD67FXQ.js";
45
- import "./chunk-A5PBEIJ7.js";
46
- import "./chunk-TUK7OWJA.js";
47
- export {
48
- chatCommand
49
- };
50
- //# sourceMappingURL=chat-NJ2Q5KHG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/cli/ui/theme/context.tsx","../../src/cli/ui/theme.ts"],"sourcesContent":["import React from \"react\";\nimport {\n DEFAULT_THEME_NAME,\n THEMES,\n type ThemeName,\n type ThemeTokens,\n resolveThemeName,\n setActiveTheme,\n} from \"./tokens.js\";\n\nconst ThemeContext = React.createContext<ThemeTokens>(THEMES[DEFAULT_THEME_NAME]);\n\nexport function ThemeProvider({\n children,\n name,\n}: {\n children: React.ReactNode;\n name?: string | null;\n}): React.ReactElement {\n const theme = THEMES[resolveThemeName(name)];\n const restoreActiveTheme = setActiveTheme(theme);\n\n React.useLayoutEffect(() => restoreActiveTheme, [restoreActiveTheme]);\n\n return <ThemeContext.Provider value={theme}>{children}</ThemeContext.Provider>;\n}\n\nexport function useThemeTokens(): ThemeTokens {\n return React.useContext(ThemeContext);\n}\n\nexport function useTheme(): ThemeTokens {\n return useThemeTokens();\n}\n\nexport type { ThemeName, ThemeTokens };\n","import React from \"react\";\nimport { useThemeTokens } from \"./theme/context.js\";\nimport {\n CARD,\n FG as TOKEN_FG,\n SURFACE as TOKEN_SURFACE,\n TONE,\n TONE_ACTIVE,\n type ThemeTokens,\n} from \"./theme/tokens.js\";\n\nexport type UiColor = ReturnType<typeof colorFromTheme>;\nexport type UiGradient = ReturnType<typeof gradientFromTheme>;\nexport type UiSurface = ReturnType<typeof surfaceFromTheme>;\nexport type UiFg = ReturnType<typeof fgFromTheme>;\n\nexport function gradientFromTheme(theme: ThemeTokens): ReadonlyArray<string> {\n return [\n theme.tone.ok,\n theme.tone.brand,\n theme.tone.info,\n theme.toneActive.brand,\n theme.toneActive.violet,\n theme.tone.accent,\n theme.toneActive.accent,\n theme.tone.err,\n ];\n}\n\nexport function colorFromTheme(theme: ThemeTokens) {\n return {\n primary: theme.tone.brand,\n accent: theme.tone.accent,\n brand: theme.tone.ok,\n\n user: theme.tone.brand,\n assistant: theme.tone.ok,\n tool: theme.tone.warn,\n toolErr: theme.tone.err,\n info: theme.fg.sub,\n warn: theme.tone.warn,\n err: theme.tone.err,\n ok: theme.tone.ok,\n } as const;\n}\n\nexport function surfaceFromTheme(theme: ThemeTokens) {\n return {\n canvas: theme.surface.bg,\n shell: theme.surface.bgInput,\n card: theme.surface.bgElev,\n elev: theme.surface.bgElev,\n sel: theme.surface.bgInput,\n line: theme.fg.faint,\n lineSoft: theme.fg.meta,\n } as const;\n}\n\nexport function fgFromTheme(theme: ThemeTokens) {\n return {\n strong: theme.fg.strong,\n default: theme.fg.body,\n dim: theme.fg.sub,\n faint: theme.fg.meta,\n ghost: theme.fg.faint,\n } as const;\n}\n\nfunction proxyThemeValue<T extends object>(build: () => T): T {\n const target = build();\n return new Proxy(target, {\n get(_target, prop: string | symbol) {\n return build()[prop as keyof T];\n },\n getOwnPropertyDescriptor(_target, prop: string | symbol) {\n return Reflect.getOwnPropertyDescriptor(build(), prop);\n },\n has(_target, prop: string | symbol) {\n return prop in build();\n },\n ownKeys() {\n return Reflect.ownKeys(build());\n },\n });\n}\n\nfunction currentTheme(): ThemeTokens {\n return {\n fg: TOKEN_FG,\n tone: TONE,\n toneActive: TONE_ACTIVE,\n surface: TOKEN_SURFACE,\n card: CARD,\n };\n}\n\nexport function useGradient(): UiGradient {\n const theme = useThemeTokens();\n return React.useMemo(() => gradientFromTheme(theme), [theme]);\n}\n\nexport function useColor(): UiColor {\n const theme = useThemeTokens();\n return React.useMemo(() => colorFromTheme(theme), [theme]);\n}\n\nexport function useUiSurface(): UiSurface {\n const theme = useThemeTokens();\n return React.useMemo(() => surfaceFromTheme(theme), [theme]);\n}\n\nexport function useUiFg(): UiFg {\n const theme = useThemeTokens();\n return React.useMemo(() => fgFromTheme(theme), [theme]);\n}\n\nexport const GRADIENT = proxyThemeValue(() => gradientFromTheme(currentTheme()));\nexport const COLOR = proxyThemeValue(() => colorFromTheme(currentTheme()));\n\nexport const GLYPH = {\n brand: \"●\",\n user: \"●\",\n assistant: \"●\",\n toolOk: \"✓\",\n toolErr: \"✗\",\n warn: \"⚠\",\n err: \"✗\",\n arrow: \"▸\",\n bullet: \"·\",\n bar: \"│\",\n thinBar: \"│\",\n block: \"█\",\n shade1: \"░\",\n shade2: \"▒\",\n shade3: \"▓\",\n\n done: \"✓\",\n cur: \"▸\",\n pending: \"○\",\n fail: \"✗\",\n running: \"●\",\n\n branch: \"├\",\n branchEnd: \"└\",\n branchStub: \"│\",\n rule: \"─\",\n\n spinFrames: [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\"] as readonly string[],\n} as const;\n\nexport const SURFACE = proxyThemeValue(() => surfaceFromTheme(currentTheme()));\nexport const FG = proxyThemeValue(() => fgFromTheme(currentTheme()));\n\nexport function gradientCells(\n width: number,\n glyph: string = GLYPH.block,\n gradient: ReadonlyArray<string> = GRADIENT,\n): Array<{ ch: string; color: string }> {\n const cells: Array<{ ch: string; color: string }> = [];\n if (width <= 0) return cells;\n const last = gradient.length - 1;\n for (let i = 0; i < width; i++) {\n if (last <= 0) {\n cells.push({ ch: glyph, color: gradient[0] ?? COLOR.primary });\n continue;\n }\n const t = width === 1 ? 0 : (i * last) / (width - 1);\n const lo = Math.floor(t);\n const hi = Math.min(last, lo + 1);\n const color = t - lo < 0.5 ? gradient[lo]! : gradient[hi]!;\n cells.push({ ch: glyph, color });\n }\n return cells;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,mBAAkB;AAUlB,IAAM,eAAe,aAAAA,QAAM,cAA2B,OAAO,kBAAkB,CAAC;AAEzE,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AACF,GAGuB;AACrB,QAAM,QAAQ,OAAO,iBAAiB,IAAI,CAAC;AAC3C,QAAM,qBAAqB,eAAe,KAAK;AAE/C,eAAAA,QAAM,gBAAgB,MAAM,oBAAoB,CAAC,kBAAkB,CAAC;AAEpE,SAAO,6BAAAA,QAAA,cAAC,aAAa,UAAb,EAAsB,OAAO,SAAQ,QAAS;AACxD;AAEO,SAAS,iBAA8B;AAC5C,SAAO,aAAAA,QAAM,WAAW,YAAY;AACtC;AAEO,SAAS,WAAwB;AACtC,SAAO,eAAe;AACxB;;;ACjCA,IAAAC,gBAAkB;AAgBX,SAAS,kBAAkB,OAA2C;AAC3E,SAAO;AAAA,IACL,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,IACX,MAAM,WAAW;AAAA,IACjB,MAAM,WAAW;AAAA,IACjB,MAAM,KAAK;AAAA,IACX,MAAM,WAAW;AAAA,IACjB,MAAM,KAAK;AAAA,EACb;AACF;AAEO,SAAS,eAAe,OAAoB;AACjD,SAAO;AAAA,IACL,SAAS,MAAM,KAAK;AAAA,IACpB,QAAQ,MAAM,KAAK;AAAA,IACnB,OAAO,MAAM,KAAK;AAAA,IAElB,MAAM,MAAM,KAAK;AAAA,IACjB,WAAW,MAAM,KAAK;AAAA,IACtB,MAAM,MAAM,KAAK;AAAA,IACjB,SAAS,MAAM,KAAK;AAAA,IACpB,MAAM,MAAM,GAAG;AAAA,IACf,MAAM,MAAM,KAAK;AAAA,IACjB,KAAK,MAAM,KAAK;AAAA,IAChB,IAAI,MAAM,KAAK;AAAA,EACjB;AACF;AAEO,SAAS,iBAAiB,OAAoB;AACnD,SAAO;AAAA,IACL,QAAQ,MAAM,QAAQ;AAAA,IACtB,OAAO,MAAM,QAAQ;AAAA,IACrB,MAAM,MAAM,QAAQ;AAAA,IACpB,MAAM,MAAM,QAAQ;AAAA,IACpB,KAAK,MAAM,QAAQ;AAAA,IACnB,MAAM,MAAM,GAAG;AAAA,IACf,UAAU,MAAM,GAAG;AAAA,EACrB;AACF;AAEO,SAAS,YAAY,OAAoB;AAC9C,SAAO;AAAA,IACL,QAAQ,MAAM,GAAG;AAAA,IACjB,SAAS,MAAM,GAAG;AAAA,IAClB,KAAK,MAAM,GAAG;AAAA,IACd,OAAO,MAAM,GAAG;AAAA,IAChB,OAAO,MAAM,GAAG;AAAA,EAClB;AACF;AAEA,SAAS,gBAAkC,OAAmB;AAC5D,QAAM,SAAS,MAAM;AACrB,SAAO,IAAI,MAAM,QAAQ;AAAA,IACvB,IAAI,SAAS,MAAuB;AAClC,aAAO,MAAM,EAAE,IAAe;AAAA,IAChC;AAAA,IACA,yBAAyB,SAAS,MAAuB;AACvD,aAAO,QAAQ,yBAAyB,MAAM,GAAG,IAAI;AAAA,IACvD;AAAA,IACA,IAAI,SAAS,MAAuB;AAClC,aAAO,QAAQ,MAAM;AAAA,IACvB;AAAA,IACA,UAAU;AACR,aAAO,QAAQ,QAAQ,MAAM,CAAC;AAAA,IAChC;AAAA,EACF,CAAC;AACH;AAEA,SAAS,eAA4B;AACnC,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACF;AAOO,SAAS,WAAoB;AAClC,QAAM,QAAQ,eAAe;AAC7B,SAAO,cAAAC,QAAM,QAAQ,MAAM,eAAe,KAAK,GAAG,CAAC,KAAK,CAAC;AAC3D;AAYO,IAAM,WAAW,gBAAgB,MAAM,kBAAkB,aAAa,CAAC,CAAC;AACxE,IAAM,QAAQ,gBAAgB,MAAM,eAAe,aAAa,CAAC,CAAC;AAElE,IAAM,QAAQ;AAAA,EACnB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EAET,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,MAAM;AAAA,EAEN,YAAY,CAAC,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,QAAG;AACrD;AAEO,IAAMC,WAAU,gBAAgB,MAAM,iBAAiB,aAAa,CAAC,CAAC;AACtE,IAAMC,MAAK,gBAAgB,MAAM,YAAY,aAAa,CAAC,CAAC;","names":["React","import_react","React","SURFACE","FG"]}