@pentoshi/clai 4.11.2 → 4.11.4

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 (101) hide show
  1. package/dist/agent/runner.js +37 -6
  2. package/dist/agent/runner.js.map +1 -1
  3. package/dist/agent/tool-history.js +4 -2
  4. package/dist/agent/tool-history.js.map +1 -1
  5. package/dist/app/controllers/session-prompt-queue.d.ts +6 -7
  6. package/dist/app/controllers/session-prompt-queue.js +80 -85
  7. package/dist/app/controllers/session-prompt-queue.js.map +1 -1
  8. package/dist/app/controllers/turn-continuation.js +3 -0
  9. package/dist/app/controllers/turn-continuation.js.map +1 -1
  10. package/dist/classic/input/terminal-sequences.d.ts +1 -3
  11. package/dist/classic/input/terminal-sequences.js +1 -3
  12. package/dist/classic/input/terminal-sequences.js.map +1 -1
  13. package/dist/llm/token-estimate-calibration.d.ts +0 -1
  14. package/dist/llm/token-estimate-calibration.js +3 -3
  15. package/dist/llm/token-estimate-calibration.js.map +1 -1
  16. package/dist/llm/tool-protocol.d.ts +1 -0
  17. package/dist/llm/tool-protocol.js +29 -7
  18. package/dist/llm/tool-protocol.js.map +1 -1
  19. package/dist/prompts/embedded.js +1 -1
  20. package/dist/prompts/embedded.js.map +1 -1
  21. package/dist/prompts/system.agent.md +7 -7
  22. package/dist/session-runtime/binding.d.ts +1 -1
  23. package/dist/session-runtime/binding.js +3 -1
  24. package/dist/session-runtime/binding.js.map +1 -1
  25. package/dist/session-runtime/child-bridge.d.ts +7 -2
  26. package/dist/session-runtime/child-bridge.js +55 -4
  27. package/dist/session-runtime/child-bridge.js.map +1 -1
  28. package/dist/session-runtime/client.d.ts +5 -0
  29. package/dist/session-runtime/client.js +13 -5
  30. package/dist/session-runtime/client.js.map +1 -1
  31. package/dist/session-runtime/host.d.ts +7 -0
  32. package/dist/session-runtime/host.js +112 -19
  33. package/dist/session-runtime/host.js.map +1 -1
  34. package/dist/session-runtime/types.d.ts +10 -0
  35. package/dist/tools/definitions.js +2 -2
  36. package/dist/tools/definitions.js.map +1 -1
  37. package/dist/tools/fs.d.ts +0 -5
  38. package/dist/tools/fs.js +363 -272
  39. package/dist/tools/fs.js.map +1 -1
  40. package/dist/tools/shell.d.ts +5 -2
  41. package/dist/tools/shell.js +313 -20
  42. package/dist/tools/shell.js.map +1 -1
  43. package/dist/tui-v2/app/App.js +67 -61
  44. package/dist/tui-v2/app/App.js.map +1 -1
  45. package/dist/tui-v2/app/layout-widths.d.ts +21 -0
  46. package/dist/tui-v2/app/layout-widths.js +50 -0
  47. package/dist/tui-v2/app/layout-widths.js.map +1 -0
  48. package/dist/tui-v2/bootstrap/resize-repaint.d.ts +8 -1
  49. package/dist/tui-v2/bootstrap/resize-repaint.js +8 -0
  50. package/dist/tui-v2/bootstrap/resize-repaint.js.map +1 -1
  51. package/dist/tui-v2/bootstrap/start-tui-v2.js +22 -7
  52. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  53. package/dist/tui-v2/components/modal/secret-modal.js +10 -10
  54. package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
  55. package/dist/tui-v2/components/pager/pager.js +6 -1
  56. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  57. package/dist/tui-v2/components/transcript/assistant-message.d.ts +2 -0
  58. package/dist/tui-v2/components/transcript/assistant-message.js +4 -2
  59. package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
  60. package/dist/tui-v2/components/transcript/compacted-row.js +4 -1
  61. package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
  62. package/dist/tui-v2/components/transcript/tool-card.js +4 -1
  63. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  64. package/dist/tui-v2/components/transcript/transcript-row.js +1 -1
  65. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  66. package/dist/tui-v2/input/chord-from-opentui-key.d.ts +6 -0
  67. package/dist/tui-v2/input/chord-from-opentui-key.js +32 -6
  68. package/dist/tui-v2/input/chord-from-opentui-key.js.map +1 -1
  69. package/dist/tui-v2/input/escape-cancellation.d.ts +7 -0
  70. package/dist/tui-v2/input/escape-cancellation.js +11 -0
  71. package/dist/tui-v2/input/escape-cancellation.js.map +1 -0
  72. package/dist/tui-v2/rendering/pager-markdown.d.ts +4 -0
  73. package/dist/tui-v2/rendering/pager-markdown.js +2 -0
  74. package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
  75. package/dist/ui-core/actions/cancel-timing.d.ts +6 -0
  76. package/dist/ui-core/actions/cancel-timing.js +7 -0
  77. package/dist/ui-core/actions/cancel-timing.js.map +1 -0
  78. package/dist/ui-core/actions/chord.d.ts +4 -0
  79. package/dist/ui-core/actions/chord.js.map +1 -1
  80. package/dist/ui-core/bootstrap/capabilities.d.ts +6 -0
  81. package/dist/ui-core/bootstrap/capabilities.js +51 -4
  82. package/dist/ui-core/bootstrap/capabilities.js.map +1 -1
  83. package/dist/ui-core/react/use-session-state.d.ts +9 -2
  84. package/dist/ui-core/react/use-session-state.js +35 -4
  85. package/dist/ui-core/react/use-session-state.js.map +1 -1
  86. package/dist/ui-core/rendering/code-block.d.ts +10 -5
  87. package/dist/ui-core/rendering/code-block.js +68 -40
  88. package/dist/ui-core/rendering/code-block.js.map +1 -1
  89. package/dist/ui-core/rendering/markdown.d.ts +6 -3
  90. package/dist/ui-core/rendering/markdown.js +92 -71
  91. package/dist/ui-core/rendering/markdown.js.map +1 -1
  92. package/dist/ui-core/rendering/render-markdown-lines.d.ts +4 -0
  93. package/dist/ui-core/rendering/render-markdown-lines.js +4 -1
  94. package/dist/ui-core/rendering/render-markdown-lines.js.map +1 -1
  95. package/dist/ui-core/rendering/streaming-markdown.js +14 -1
  96. package/dist/ui-core/rendering/streaming-markdown.js.map +1 -1
  97. package/dist/ui-core/rendering/tool-presenter.js +6 -2
  98. package/dist/ui-core/rendering/tool-presenter.js.map +1 -1
  99. package/dist/version.generated.d.ts +2 -2
  100. package/dist/version.generated.js +2 -2
  101. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../src/ui-core/rendering/code-block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../src/ui-core/rendering/code-block.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,KAAK,EAAsB,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,UAAU,EACV,oBAAoB,GAIrB,MAAM,uBAAuB,CAAC;AAE/B,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,8EAA8E;AAC9E,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,SAAS,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAC/C,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,qEAAqE;AACrE,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;IACvD,WAAW,EAAE,UAAU;CACxB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAqC;IACpD,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;CACb,CAAC;AAgBF,MAAM,aAAa,GAAG,IAAI,OAAO,EAAsC,CAAC;AACxE,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAiB,CAAC;AACtD,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B,SAAS,aAAa,CAAC,KAAY;IACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC;IACnC,iBAAiB,IAAI,CAAC,CAAC;IACvB,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAY,EAAE,KAAoB;IACtD,MAAM,KAAK,GAAkB,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,OAAO;QACL,QAAQ,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE;QAC5C,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;QACnC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;QAC7B,MAAM,EAAE;YACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YAClC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YACpC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YAClC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YACpC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YAClC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YACtC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;YAC9B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YACtC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YACtC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YACnC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;SACjC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,UAAgC;IAC/C,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GACT,UAAU,EAAE,SAAS,KAAK,SAAS;QACjC,CAAC,CAAC,KAAK,CAAC,KAAK;QACb,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+DAA+D;AAC/D,MAAM,cAAc,GAA2B;IAC7C,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,GAAG;IACT,aAAa,EAAE,GAAG;IAClB,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,KAAK;IACjB,KAAK,EAAE,KAAK;IACZ,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,KAAK;CACZ,CAAC;AAEF,6DAA6D;AAC7D,MAAM,UAAU,GAA2B;IACzC,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,OAAO;IACX,GAAG,EAAE,MAAM;IACX,EAAE,EAAE,UAAU;IACd,GAAG,EAAE,YAAY;IACjB,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,OAAO;IACX,GAAG,EAAE,SAAS;IACd,EAAE,EAAE,WAAW;CAChB,CAAC;AAcF,MAAM,aAAa,GAAG,8BAA8B,CAAC;AAErD,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAChC,IAAY;IAEZ,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9D,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAc;IAC3D,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACtB,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAY;IACxD,sEAAsE;IACtE,gEAAgE;IAChE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEhC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IAC1F,CAAC;IACD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAC7C,OAAO;QACL,MAAM;QACN,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC;QACzC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU;QACtD,KAAK,EAAE,UAAU,EAAE;QACnB,aAAa,EAAE,CAAC;KACjB,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,iBAAiB,CAAC,KAAwB;IACxD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,OAAO,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;IACpE,OAAO,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,GAAG,IAAI,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAwB,EACxB,KAAa,EACb,SAAiB;IAEjB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,GAAG,MAAM;YAAE,MAAM,GAAG,KAAK,CAAC;IACrC,CAAC;IACD,4DAA4D;IAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAChE,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,QAAgB;IACpD,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,KAAK,GAAG,YAAY,GAAG,QAAQ;YAAE,MAAM;QAC3C,IAAI,IAAI,OAAO,CAAC;QAChB,KAAK,IAAI,YAAY,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,KAAa,EACb,UAAgC;IAEhC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;IACtB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,IAAI,GACR,IAAI,GAAG,CAAC;QACN,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,UAAU,IAAI,IAAI;YAClB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,CACL,MAAM,CAAC,IAAI,CAAC;QACZ,UAAU,CAAC,IAAI,IAAI,GAAG,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,UAAgC;IAEhC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAAY,EACZ,SAAiB,EACjB,KAAa,EACb,QAAiB;IAEjB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC;IACxD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,SAAiB,EACjB,KAAa,EACb,UAAgC;IAEhC,OAAO,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9E,CAAC;AAQD,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,KAAK,CAAC,IAAI,CACf,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAChC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CACzB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;YAC1C,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,GAAG,IAAI,GAAG,CAAC;YACX,SAAS;QACX,CAAC;QACD,GAAG,IAAI,EAAE,CAAC;QACV,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,KAA4B;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO;YAC7B,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gFAAgF;AAChF,SAAS,WAAW,CAAC,EAAU;IAC7B,OAAO,EAAE,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,KAAa,EAAE,WAAmB,EAAE,UAAkB;IACvE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,GAAG,gBAAgB,CAAC;QACxC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;QACd,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;YAC5D,IAAI,IAAI,KAAK,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC;YACtB,GAAG,IAAI,CAAC,CAAC;YACT,IAAI,IAAI,IAAI,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC;gBAAE,IAAI,GAAG,GAAG,CAAC;QACnE,CAAC;QACD,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACnC,KAAK,GAAG,GAAG,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CACjB,KAAsB,EACtB,QAAiB;IAEjB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAC5B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,GAAe,OAAO,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG;gBAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnC,GAAG,GAAG,EAAE,CAAC;YACT,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;QACf,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,GAAG;QAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8D,CAAC;AACxF,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,SAAS,QAAQ,CAAC,KAAqB;IACrC,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;AACpG,CAAC;AAED,SAAS,aAAa,CAAC,KAAqB;IAC1C,OAAO;QACL,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,MAAsB,EAAE,MAAsB;IAClE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC9C,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC9C,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,IAAuB,EAAE,KAAqB;IAC5E,IAAI,SAAS,CAAC,IAAI,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,KAAqB,EACrB,KAAa,EACb,UAAgC;IAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,GAAG,iBAAiB,CAAC;IACxC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAEpD,6EAA6E;IAC7E,yDAAyD;IACzD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;IAExB,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,QAAQ,SAAS,KAAK,SAAS,KAAK,CAAC,QAAQ,SAAS,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IACnH,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,MAAM,EAAE,CAAC;QACX,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,aAAa,CAAC,IAAI,CAAC,GAAG,cAAc,EACpC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EACrB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,CAC9B,CAAC;IACF,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,OAAO,uBAAuB,CAC5B,MAAM,GAAG,IAAI,EACb,MAAM,CAAC,MAAM,GAAG,SAAS,EACzB,KAAK,EACL,QAAQ,CACT,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,4 +1,7 @@
1
- export declare function renderInlineMarkdown(text: string): string;
1
+ import { type ChalkInstance } from "chalk";
2
+ import { type CodeBlockAppearance } from "./code-block.js";
3
+ export type MarkdownAppearance = CodeBlockAppearance;
4
+ export declare function renderInlineMarkdown(text: string, paint?: ChalkInstance): string;
2
5
  export declare function visibleWidth(str: string): number;
3
6
  /**
4
7
  * Soft-wrap a line that may contain ANSI SGR styles.
@@ -7,8 +10,8 @@ export declare function visibleWidth(str: string): number;
7
10
  */
8
11
  export declare function wrapAnsiLine(line: string, maxWidth: number): string[];
9
12
  export declare function indentAndWrapText(text: string, indent?: string): string;
10
- export declare function renderMarkdown(text: string, width?: number): string;
11
- export declare function createMarkdownStreamWriter(write: (chunk: string) => void): {
13
+ export declare function renderMarkdown(text: string, width?: number, appearance?: MarkdownAppearance): string;
14
+ export declare function createMarkdownStreamWriter(write: (chunk: string) => void, appearance?: MarkdownAppearance): {
12
15
  push(token: string): void;
13
16
  finish(): void;
14
17
  };
@@ -1,17 +1,31 @@
1
- import chalk from "chalk";
1
+ import chalk, { Chalk } from "chalk";
2
2
  import { renderColumns } from "./text-width.js";
3
3
  import { codeBlockBottom, codeBlockFitWidth, codeBlockRows, codeBlockTop, codeBlockWidth, isCodeFenceClose, matchCodeFenceOpen, openCodeFence, trimCodeBlockBody, } from "./code-block.js";
4
4
  // Lightweight terminal markdown renderer that styles **bold**, *italic*,
5
5
  // `code`, links, headings, lists, blockquotes, hrules, and ```fenced```
6
6
  // code blocks. Designed to work both for one-shot strings and for
7
7
  // token-streaming inputs (line-buffered).
8
+ const CHALK_LEVEL = {
9
+ none: 0,
10
+ "16": 1,
11
+ "256": 2,
12
+ truecolor: 3,
13
+ };
14
+ function renderContext(appearance) {
15
+ return {
16
+ appearance,
17
+ paint: appearance?.colorMode === undefined
18
+ ? chalk
19
+ : new Chalk({ level: CHALK_LEVEL[appearance.colorMode] }),
20
+ };
21
+ }
8
22
  function repeat(char, count) {
9
23
  return char.repeat(Math.max(0, count));
10
24
  }
11
25
  // Walk inline markdown tokens and convert them to ANSI styles. Designed to
12
26
  // handle one logical line at a time (so it can run after a newline arrives
13
27
  // in the token stream).
14
- export function renderInlineMarkdown(text) {
28
+ export function renderInlineMarkdown(text, paint = chalk) {
15
29
  let out = "";
16
30
  let i = 0;
17
31
  while (i < text.length) {
@@ -19,7 +33,7 @@ export function renderInlineMarkdown(text) {
19
33
  if (text.startsWith("``", i)) {
20
34
  const end = text.indexOf("``", i + 2);
21
35
  if (end > i + 2) {
22
- out += chalk.cyan(`\`${text.slice(i + 2, end)}\``);
36
+ out += paint.cyan(`\`${text.slice(i + 2, end)}\``);
23
37
  i = end + 2;
24
38
  continue;
25
39
  }
@@ -28,7 +42,7 @@ export function renderInlineMarkdown(text) {
28
42
  if (text[i] === "`") {
29
43
  const end = text.indexOf("`", i + 1);
30
44
  if (end > i + 1) {
31
- out += chalk.cyan(text.slice(i + 1, end));
45
+ out += paint.cyan(text.slice(i + 1, end));
32
46
  i = end + 1;
33
47
  continue;
34
48
  }
@@ -37,7 +51,7 @@ export function renderInlineMarkdown(text) {
37
51
  if (text.startsWith("***", i)) {
38
52
  const end = text.indexOf("***", i + 3);
39
53
  if (end > i + 3) {
40
- out += chalk.bold.italic(renderInlineMarkdown(text.slice(i + 3, end)));
54
+ out += paint.bold.italic(renderInlineMarkdown(text.slice(i + 3, end), paint));
41
55
  i = end + 3;
42
56
  continue;
43
57
  }
@@ -46,7 +60,7 @@ export function renderInlineMarkdown(text) {
46
60
  if (text.startsWith("**", i)) {
47
61
  const end = text.indexOf("**", i + 2);
48
62
  if (end > i + 2) {
49
- out += chalk.bold(renderInlineMarkdown(text.slice(i + 2, end)));
63
+ out += paint.bold(renderInlineMarkdown(text.slice(i + 2, end), paint));
50
64
  i = end + 2;
51
65
  continue;
52
66
  }
@@ -55,7 +69,7 @@ export function renderInlineMarkdown(text) {
55
69
  if (text.startsWith("__", i)) {
56
70
  const end = text.indexOf("__", i + 2);
57
71
  if (end > i + 2) {
58
- out += chalk.bold(renderInlineMarkdown(text.slice(i + 2, end)));
72
+ out += paint.bold(renderInlineMarkdown(text.slice(i + 2, end), paint));
59
73
  i = end + 2;
60
74
  continue;
61
75
  }
@@ -69,7 +83,7 @@ export function renderInlineMarkdown(text) {
69
83
  if (inner.length > 0 &&
70
84
  !inner.startsWith(" ") &&
71
85
  !inner.endsWith(" ")) {
72
- out += chalk.italic(renderInlineMarkdown(inner));
86
+ out += paint.italic(renderInlineMarkdown(inner, paint));
73
87
  i = end + 1;
74
88
  continue;
75
89
  }
@@ -89,7 +103,7 @@ export function renderInlineMarkdown(text) {
89
103
  inner.length > 0 &&
90
104
  !inner.startsWith(" ") &&
91
105
  !inner.endsWith(" ")) {
92
- out += chalk.italic(renderInlineMarkdown(inner));
106
+ out += paint.italic(renderInlineMarkdown(inner, paint));
93
107
  i = end + 1;
94
108
  continue;
95
109
  }
@@ -100,7 +114,7 @@ export function renderInlineMarkdown(text) {
100
114
  if (text.startsWith("~~", i)) {
101
115
  const end = text.indexOf("~~", i + 2);
102
116
  if (end > i + 2) {
103
- out += chalk.strikethrough(renderInlineMarkdown(text.slice(i + 2, end)));
117
+ out += paint.strikethrough(renderInlineMarkdown(text.slice(i + 2, end), paint));
104
118
  i = end + 2;
105
119
  continue;
106
120
  }
@@ -113,7 +127,7 @@ export function renderInlineMarkdown(text) {
113
127
  if (urlEnd > close + 2) {
114
128
  const label = text.slice(i + 1, close);
115
129
  const url = text.slice(close + 2, urlEnd);
116
- out += chalk.cyan.underline(label) + chalk.dim(`(${url})`);
130
+ out += paint.cyan.underline(label) + paint.dim(`(${url})`);
117
131
  i = urlEnd + 1;
118
132
  continue;
119
133
  }
@@ -128,15 +142,15 @@ const DEFAULT_FENCE_WIDTH = 60;
128
142
  function panelWidth(state) {
129
143
  return codeBlockWidth(state.fenceWidth ?? DEFAULT_FENCE_WIDTH);
130
144
  }
131
- function openFencePanel(state, marker, info) {
145
+ function openFencePanel(state, marker, info, context) {
132
146
  state.inFence = true;
133
147
  state.fence = openCodeFence(marker, info);
134
- return codeBlockTop(state.fence.label, panelWidth(state));
148
+ return codeBlockTop(state.fence.label, panelWidth(state), context.appearance);
135
149
  }
136
- function closeFencePanel(state) {
150
+ function closeFencePanel(state, context) {
137
151
  state.inFence = false;
138
152
  state.fence = undefined;
139
- return codeBlockBottom(panelWidth(state));
153
+ return codeBlockBottom(panelWidth(state), context.appearance);
140
154
  }
141
155
  /**
142
156
  * Render a complete fence as a content-sized panel. Used by the one-shot
@@ -144,49 +158,52 @@ function closeFencePanel(state) {
144
158
  * An unterminated fence still gets a footer so a streaming reply reads as a
145
159
  * finished box.
146
160
  */
147
- function renderCodeBlock(open, bodyLines, wrapWidth) {
161
+ function renderCodeBlock(open, bodyLines, wrapWidth, context) {
148
162
  const fence = openCodeFence(open.marker, open.info);
149
163
  const body = trimCodeBlockBody(bodyLines);
150
164
  const width = codeBlockFitWidth(body, fence.label, wrapWidth);
151
- const out = [codeBlockTop(fence.label, width)];
165
+ const out = [codeBlockTop(fence.label, width, context.appearance)];
152
166
  for (const line of body) {
153
- out.push(...codeBlockRows(line, fence, width));
167
+ out.push(...codeBlockRows(line, fence, width, context.appearance));
154
168
  }
155
- out.push(codeBlockBottom(width));
169
+ out.push(codeBlockBottom(width, context.appearance));
156
170
  return out;
157
171
  }
158
172
  /** Fence lines and code bodies as complete panel rows (may be empty). */
159
- function fencePanelRows(line, state) {
173
+ function fencePanelRows(line, state, context) {
160
174
  if (state.inFence && state.fence) {
161
175
  if (isCodeFenceClose(line, state.fence.marker)) {
162
- return [closeFencePanel(state)];
176
+ return [closeFencePanel(state, context)];
163
177
  }
164
- return codeBlockRows(line, state.fence, panelWidth(state));
178
+ return codeBlockRows(line, state.fence, panelWidth(state), context.appearance);
165
179
  }
166
180
  const open = matchCodeFenceOpen(line);
167
181
  if (!open)
168
182
  return undefined;
169
- return [openFencePanel(state, open.marker, open.info)];
183
+ return [openFencePanel(state, open.marker, open.info, context)];
170
184
  }
171
- function renderBlockLine(line, state) {
185
+ function renderBlockLine(line, state, context) {
186
+ const { paint } = context;
172
187
  // Headings
173
188
  const heading = line.match(/^(#{1,6})\s+(.*)$/);
174
189
  if (heading) {
175
190
  const level = heading[1].length;
176
191
  const body = heading[2].trim();
177
- if (level <= 2)
178
- return chalk.bold.magenta(renderInlineMarkdown(body));
179
- if (level === 3)
180
- return chalk.bold.cyan(renderInlineMarkdown(body));
181
- return chalk.bold(renderInlineMarkdown(body));
192
+ if (level <= 2) {
193
+ return paint.bold.magenta(renderInlineMarkdown(body, paint));
194
+ }
195
+ if (level === 3) {
196
+ return paint.bold.cyan(renderInlineMarkdown(body, paint));
197
+ }
198
+ return paint.bold(renderInlineMarkdown(body, paint));
182
199
  }
183
200
  // Horizontal rule
184
201
  if (/^\s*[-*_]{3,}\s*$/.test(line)) {
185
- return chalk.dim(repeat("─", 60));
202
+ return paint.dim(repeat("─", 60));
186
203
  }
187
204
  // Markdown table separator: | --- | --- |
188
205
  if (/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/.test(line)) {
189
- return chalk.dim(repeat("─", Math.max(20, line.length)));
206
+ return paint.dim(repeat("─", Math.max(20, line.length)));
190
207
  }
191
208
  // Markdown table row: | cell | cell |
192
209
  if (/^\s*\|.*\|\s*$/.test(line)) {
@@ -194,32 +211,33 @@ function renderBlockLine(line, state) {
194
211
  .replace(/^\s*\|/, "")
195
212
  .replace(/\|\s*$/, "")
196
213
  .split("|")
197
- .map((cell) => renderInlineMarkdown(cell.trim()));
198
- return chalk.dim("│ ") + cells.join(chalk.dim(" │ ")) + chalk.dim(" │");
214
+ .map((cell) => renderInlineMarkdown(cell.trim(), paint));
215
+ return (paint.dim("│ ") + cells.join(paint.dim(" │ ")) + paint.dim(" │"));
199
216
  }
200
217
  // Blockquote
201
218
  if (line.startsWith("> ")) {
202
- return (chalk.dim("│ ") + chalk.dim.italic(renderInlineMarkdown(line.slice(2))));
219
+ return (paint.dim("│ ") +
220
+ paint.dim.italic(renderInlineMarkdown(line.slice(2), paint)));
203
221
  }
204
222
  // GitHub-style task list: - [ ] todo / - [x] done
205
223
  const task = line.match(/^(\s*)[-*+]\s+\[([ xX])\]\s+(.*)$/);
206
224
  if (task) {
207
225
  const checked = /[xX]/.test(task[2]);
208
- const box = checked ? chalk.green("☑") : chalk.dim("☐");
209
- const body = renderInlineMarkdown(task[3]);
210
- return `${task[1]}${box} ${checked ? chalk.dim(body) : body}`;
226
+ const box = checked ? paint.green("☑") : paint.dim("☐");
227
+ const body = renderInlineMarkdown(task[3], paint);
228
+ return `${task[1]}${box} ${checked ? paint.dim(body) : body}`;
211
229
  }
212
230
  // Ordered list
213
231
  const ordered = line.match(/^(\s*)(\d+)\.\s+(.*)$/);
214
232
  if (ordered) {
215
- return `${ordered[1]}${chalk.cyan(`${ordered[2]}.`)} ${renderInlineMarkdown(ordered[3])}`;
233
+ return `${ordered[1]}${paint.cyan(`${ordered[2]}.`)} ${renderInlineMarkdown(ordered[3], paint)}`;
216
234
  }
217
235
  // Unordered list
218
236
  const unordered = line.match(/^(\s*)[-*+]\s+(.*)$/);
219
237
  if (unordered) {
220
- return `${unordered[1]}${chalk.cyan("•")} ${renderInlineMarkdown(unordered[2])}`;
238
+ return `${unordered[1]}${paint.cyan("•")} ${renderInlineMarkdown(unordered[2], paint)}`;
221
239
  }
222
- return renderInlineMarkdown(line);
240
+ return renderInlineMarkdown(line, paint);
223
241
  }
224
242
  /** Left margin for all rendered output so text doesn't go edge-to-edge. */
225
243
  const OUTPUT_INDENT = " ";
@@ -574,37 +592,38 @@ export function indentAndWrapText(text, indent = " ") {
574
592
  })
575
593
  .join("\n");
576
594
  }
577
- function wrapMarkdownLine(line, wrapWidth, state) {
595
+ function wrapMarkdownLine(line, wrapWidth, state, context) {
596
+ const { paint } = context;
578
597
  // Keep panel chrome + code within wrapWidth (never truncate with …).
579
598
  state.fenceWidth = wrapWidth;
580
- const fenceRows = fencePanelRows(line, state);
599
+ const fenceRows = fencePanelRows(line, state, context);
581
600
  if (fenceRows)
582
601
  return fenceRows;
583
602
  // If it's a horizontal rule, don't wrap it
584
603
  if (/^\s*[-*_]{3,}\s*$/.test(line)) {
585
- return [renderBlockLine(line, state)];
604
+ return [renderBlockLine(line, state, context)];
586
605
  }
587
606
  // Check if it's a blockquote
588
607
  if (line.startsWith("> ")) {
589
608
  const content = line.slice(2);
590
- const prefix = chalk.dim("│ ");
591
- const renderedContent = renderInlineMarkdown(content);
609
+ const prefix = paint.dim("│ ");
610
+ const renderedContent = renderInlineMarkdown(content, paint);
592
611
  // Wrap the content at wrapWidth - 2 (since prefix is 2 chars)
593
612
  const wrapped = wrapAnsiLine(renderedContent, Math.max(10, wrapWidth - 2));
594
- return wrapped.map((wl) => prefix + chalk.dim.italic(wl));
613
+ return wrapped.map((wl) => prefix + paint.dim.italic(wl));
595
614
  }
596
615
  // Check if it's a task list
597
616
  const task = line.match(/^(\s*)[-*+]\s+\[([ xX])\]\s+(.*)$/);
598
617
  if (task) {
599
618
  const indent = task[1] ?? "";
600
619
  const checked = /[xX]/.test(task[2]);
601
- const box = checked ? chalk.green("☑") : chalk.dim("☐");
620
+ const box = checked ? paint.green("☑") : paint.dim("☐");
602
621
  const content = task[3] ?? "";
603
622
  const prefix = `${indent}${box} `;
604
623
  const prefixLength = indent.length + 2;
605
- let renderedContent = renderInlineMarkdown(content);
624
+ let renderedContent = renderInlineMarkdown(content, paint);
606
625
  if (checked) {
607
- renderedContent = chalk.dim(renderedContent);
626
+ renderedContent = paint.dim(renderedContent);
608
627
  }
609
628
  const wrapped = wrapAnsiLine(renderedContent, Math.max(10, wrapWidth - prefixLength));
610
629
  return wrapped.map((wl, idx) => {
@@ -619,9 +638,9 @@ function wrapMarkdownLine(line, wrapWidth, state) {
619
638
  const indent = ordered[1] ?? "";
620
639
  const num = ordered[2] ?? "";
621
640
  const content = ordered[3] ?? "";
622
- const prefix = `${indent}${chalk.cyan(`${num}.`)} `;
641
+ const prefix = `${indent}${paint.cyan(`${num}.`)} `;
623
642
  const prefixLength = indent.length + num.length + 2;
624
- const renderedContent = renderInlineMarkdown(content);
643
+ const renderedContent = renderInlineMarkdown(content, paint);
625
644
  const wrapped = wrapAnsiLine(renderedContent, Math.max(10, wrapWidth - prefixLength));
626
645
  return wrapped.map((wl, idx) => {
627
646
  if (idx === 0)
@@ -634,9 +653,9 @@ function wrapMarkdownLine(line, wrapWidth, state) {
634
653
  if (unordered) {
635
654
  const indent = unordered[1] ?? "";
636
655
  const content = unordered[2] ?? "";
637
- const prefix = `${indent}${chalk.cyan("•")} `;
656
+ const prefix = `${indent}${paint.cyan("•")} `;
638
657
  const prefixLength = indent.length + 2;
639
- const renderedContent = renderInlineMarkdown(content);
658
+ const renderedContent = renderInlineMarkdown(content, paint);
640
659
  const wrapped = wrapAnsiLine(renderedContent, Math.max(10, wrapWidth - prefixLength));
641
660
  return wrapped.map((wl, idx) => {
642
661
  if (idx === 0)
@@ -645,7 +664,7 @@ function wrapMarkdownLine(line, wrapWidth, state) {
645
664
  });
646
665
  }
647
666
  // Otherwise, treat as a normal paragraph/line
648
- const rendered = renderBlockLine(line, state);
667
+ const rendered = renderBlockLine(line, state, context);
649
668
  return wrapAnsiLine(rendered, wrapWidth);
650
669
  }
651
670
  // Markdown tables
@@ -721,7 +740,7 @@ function padCell(rendered, contentWidth, columnWidth, align) {
721
740
  * `<br>` markers split a cell into stacked lines so multi-line cells
722
741
  * stay inside their column instead of bleeding across the row.
723
742
  */
724
- function renderTableBlock(rawLines, availWidth) {
743
+ function renderTableBlock(rawLines, availWidth, paint) {
725
744
  const separatorIndex = rawLines.findIndex(isTableSeparatorLine);
726
745
  const headerLines = separatorIndex > 0
727
746
  ? rawLines.slice(0, separatorIndex)
@@ -736,17 +755,17 @@ function renderTableBlock(rawLines, availWidth) {
736
755
  const trimmed = part.trim();
737
756
  const bulletMatch = trimmed.match(/^([-\*+])\s+(.*)$/);
738
757
  if (bulletMatch) {
739
- const content = renderInlineMarkdown(bulletMatch[2]);
740
- const rendered = `${chalk.cyan("•")} ${content}`;
758
+ const content = renderInlineMarkdown(bulletMatch[2], paint);
759
+ const rendered = `${paint.cyan("•")} ${content}`;
741
760
  return { rendered, width: visibleWidth(rendered) };
742
761
  }
743
762
  const numberMatch = trimmed.match(/^(\d+)\.\s+(.*)$/);
744
763
  if (numberMatch) {
745
- const content = renderInlineMarkdown(numberMatch[2]);
746
- const rendered = `${chalk.cyan(`${numberMatch[1]}.`)} ${content}`;
764
+ const content = renderInlineMarkdown(numberMatch[2], paint);
765
+ const rendered = `${paint.cyan(`${numberMatch[1]}.`)} ${content}`;
747
766
  return { rendered, width: visibleWidth(rendered) };
748
767
  }
749
- const rendered = renderInlineMarkdown(trimmed);
768
+ const rendered = renderInlineMarkdown(trimmed, paint);
750
769
  return { rendered, width: visibleWidth(rendered) };
751
770
  });
752
771
  const buildRow = (cells) => {
@@ -797,7 +816,7 @@ function renderTableBlock(rawLines, availWidth) {
797
816
  }
798
817
  return out.length > 0 ? out : [{ rendered: "", width: 0 }];
799
818
  };
800
- const dim = chalk.dim;
819
+ const dim = paint.dim;
801
820
  const renderRow = (row, bold) => {
802
821
  const wrapped = row.map((cell, c) => wrapCell(cell, colWidths[c]));
803
822
  const height = Math.max(1, ...wrapped.map((w) => w.length));
@@ -806,7 +825,7 @@ function renderTableBlock(rawLines, availWidth) {
806
825
  let s = dim("│");
807
826
  for (let c = 0; c < columns; c++) {
808
827
  const piece = wrapped[c][h] ?? { rendered: "", width: 0 };
809
- const content = bold && piece.rendered ? chalk.bold(piece.rendered) : piece.rendered;
828
+ const content = bold && piece.rendered ? paint.bold(piece.rendered) : piece.rendered;
810
829
  s +=
811
830
  " " +
812
831
  padCell(content, piece.width, colWidths[c], aligns[c]) +
@@ -841,9 +860,10 @@ function renderTableBlock(rawLines, availWidth) {
841
860
  out.push(border("└", "┴", "┘"));
842
861
  return out;
843
862
  }
844
- export function renderMarkdown(text, width) {
863
+ export function renderMarkdown(text, width, appearance) {
845
864
  if (!text)
846
865
  return text;
866
+ const context = renderContext(appearance);
847
867
  const state = { inFence: false };
848
868
  const lines = text.split("\n");
849
869
  const resultLines = [];
@@ -864,7 +884,7 @@ export function renderMarkdown(text, width) {
864
884
  body.push(lines[j]);
865
885
  j += 1;
866
886
  }
867
- for (const rendered of renderCodeBlock(fenceOpen, body, wrapWidth)) {
887
+ for (const rendered of renderCodeBlock(fenceOpen, body, wrapWidth, context)) {
868
888
  resultLines.push(`${OUTPUT_INDENT}${rendered}`);
869
889
  }
870
890
  i = j < lines.length ? j + 1 : j;
@@ -883,7 +903,7 @@ export function renderMarkdown(text, width) {
883
903
  block.push(lines[j]);
884
904
  j++;
885
905
  }
886
- for (const rendered of renderTableBlock(block, wrapWidth)) {
906
+ for (const rendered of renderTableBlock(block, wrapWidth, context.paint)) {
887
907
  resultLines.push(`${OUTPUT_INDENT}${rendered}`);
888
908
  }
889
909
  i = j;
@@ -892,7 +912,7 @@ export function renderMarkdown(text, width) {
892
912
  // Expand `<br>` into real line breaks outside fences/tables.
893
913
  const pieces = !state.inFence && BR_RE.test(line) ? line.split(BR_RE_GLOBAL) : [line];
894
914
  for (const piece of pieces) {
895
- for (const wl of wrapMarkdownLine(piece, wrapWidth, state)) {
915
+ for (const wl of wrapMarkdownLine(piece, wrapWidth, state, context)) {
896
916
  resultLines.push(`${OUTPUT_INDENT}${wl}`);
897
917
  }
898
918
  }
@@ -901,14 +921,15 @@ export function renderMarkdown(text, width) {
901
921
  // A fence still open at the end means the reply is mid-stream or the model
902
922
  // never closed it — footer it so the panel always reads as a finished box.
903
923
  if (state.inFence) {
904
- resultLines.push(`${OUTPUT_INDENT}${closeFencePanel(state)}`);
924
+ resultLines.push(`${OUTPUT_INDENT}${closeFencePanel(state, context)}`);
905
925
  }
906
926
  return resultLines.join("\n");
907
927
  }
908
928
  // Streaming variant: buffers tokens and emits ANSI-rendered output
909
929
  // whenever a complete line arrives. Fenced code blocks stream as a bordered,
910
930
  // syntax-highlighted panel.
911
- export function createMarkdownStreamWriter(write) {
931
+ export function createMarkdownStreamWriter(write, appearance) {
932
+ const context = renderContext(appearance);
912
933
  const state = { inFence: false };
913
934
  let buffer = "";
914
935
  let outputEndsWithNewline = true;
@@ -928,7 +949,7 @@ export function createMarkdownStreamWriter(write) {
928
949
  for (let p = 0; p < pieces.length; p++) {
929
950
  const piece = pieces[p];
930
951
  const lastPiece = p === pieces.length - 1;
931
- const physical = wrapMarkdownLine(piece, wrapWidth, state);
952
+ const physical = wrapMarkdownLine(piece, wrapWidth, state, context);
932
953
  for (let q = 0; q < physical.length; q++) {
933
954
  emit(`${OUTPUT_INDENT}${physical[q]}`);
934
955
  const isVeryLast = lastPiece && q === physical.length - 1;
@@ -944,7 +965,7 @@ export function createMarkdownStreamWriter(write) {
944
965
  isTableRowLine(tableBuffer[0]) &&
945
966
  isTableSeparatorLine(tableBuffer[1]);
946
967
  if (looksLikeTable) {
947
- for (const rendered of renderTableBlock(tableBuffer, wrapWidth)) {
968
+ for (const rendered of renderTableBlock(tableBuffer, wrapWidth, context.paint)) {
948
969
  emit(`${OUTPUT_INDENT}${rendered}\n`);
949
970
  }
950
971
  }
@@ -987,7 +1008,7 @@ export function createMarkdownStreamWriter(write) {
987
1008
  if (state.inFence) {
988
1009
  // Close the panel without inserting a blank row after completed lines.
989
1010
  const separator = outputEndsWithNewline ? "" : "\n";
990
- emit(`${separator}${OUTPUT_INDENT}${closeFencePanel(state)}`);
1011
+ emit(`${separator}${OUTPUT_INDENT}${closeFencePanel(state, context)}`);
991
1012
  }
992
1013
  },
993
1014
  };