neoctl 0.2.0 → 0.2.1

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 (112) hide show
  1. package/README.md +20 -9
  2. package/dist/context/compaction.d.ts +3 -0
  3. package/dist/context/compaction.js +231 -40
  4. package/dist/context/compaction.js.map +1 -1
  5. package/dist/context/prompts.js +4 -4
  6. package/dist/context/prompts.js.map +1 -1
  7. package/dist/core/commands.d.ts +66 -0
  8. package/dist/core/commands.js +151 -0
  9. package/dist/core/commands.js.map +1 -0
  10. package/dist/core/context-metrics.d.ts +5 -2
  11. package/dist/core/context-metrics.js +85 -9
  12. package/dist/core/context-metrics.js.map +1 -1
  13. package/dist/core/image-registry.d.ts +42 -0
  14. package/dist/core/image-registry.js +128 -0
  15. package/dist/core/image-registry.js.map +1 -0
  16. package/dist/core/message-pipeline.d.ts +6 -0
  17. package/dist/core/message-pipeline.js +12 -0
  18. package/dist/core/message-pipeline.js.map +1 -1
  19. package/dist/core/query-engine.d.ts +3 -5
  20. package/dist/core/query-engine.js +35 -48
  21. package/dist/core/query-engine.js.map +1 -1
  22. package/dist/core/query.d.ts +1 -5
  23. package/dist/core/query.js +21 -8
  24. package/dist/core/query.js.map +1 -1
  25. package/dist/core/runtime.d.ts +59 -0
  26. package/dist/core/runtime.js +161 -0
  27. package/dist/core/runtime.js.map +1 -0
  28. package/dist/core/state.d.ts +6 -7
  29. package/dist/core/state.js +2 -0
  30. package/dist/core/state.js.map +1 -1
  31. package/dist/index.d.ts +14 -10
  32. package/dist/index.js +14 -10
  33. package/dist/index.js.map +1 -1
  34. package/dist/model/anthropic-adapter.d.ts +30 -0
  35. package/dist/model/anthropic-adapter.js +106 -0
  36. package/dist/model/anthropic-adapter.js.map +1 -0
  37. package/dist/model/anthropic-mapper.d.ts +13 -0
  38. package/dist/model/anthropic-mapper.js +482 -0
  39. package/dist/model/anthropic-mapper.js.map +1 -0
  40. package/dist/model/config.d.ts +8 -2
  41. package/dist/model/config.js +24 -1
  42. package/dist/model/config.js.map +1 -1
  43. package/dist/model/model-gateway.js +1 -1
  44. package/dist/model/model-gateway.js.map +1 -1
  45. package/dist/model/openai-mappers.js +1 -1
  46. package/dist/model/openai-mappers.js.map +1 -1
  47. package/dist/model/provider-factory.js +17 -0
  48. package/dist/model/provider-factory.js.map +1 -1
  49. package/dist/model/smoke-anthropic-mapper.d.ts +1 -0
  50. package/dist/model/smoke-anthropic-mapper.js +85 -0
  51. package/dist/model/smoke-anthropic-mapper.js.map +1 -0
  52. package/dist/repl/index.js +77 -70
  53. package/dist/repl/index.js.map +1 -1
  54. package/dist/repl/markdown-renderer.d.ts +19 -0
  55. package/dist/repl/markdown-renderer.js +58 -3
  56. package/dist/repl/markdown-renderer.js.map +1 -1
  57. package/dist/repl/transcript-flush.d.ts +6 -0
  58. package/dist/repl/transcript-flush.js +54 -0
  59. package/dist/repl/transcript-flush.js.map +1 -0
  60. package/dist/repl/transcript-format.d.ts +16 -0
  61. package/dist/repl/transcript-format.js +199 -0
  62. package/dist/repl/transcript-format.js.map +1 -0
  63. package/dist/server/agent-manager.d.ts +56 -0
  64. package/dist/server/agent-manager.js +171 -0
  65. package/dist/server/agent-manager.js.map +1 -0
  66. package/dist/server/connection-manager.d.ts +18 -0
  67. package/dist/server/connection-manager.js +52 -0
  68. package/dist/server/connection-manager.js.map +1 -0
  69. package/dist/server/event-mapper.d.ts +4 -0
  70. package/dist/server/event-mapper.js +31 -0
  71. package/dist/server/event-mapper.js.map +1 -0
  72. package/dist/server/query-runtime.d.ts +29 -0
  73. package/dist/server/query-runtime.js +61 -0
  74. package/dist/server/query-runtime.js.map +1 -0
  75. package/dist/server/rpc-router.d.ts +24 -0
  76. package/dist/server/rpc-router.js +165 -0
  77. package/dist/server/rpc-router.js.map +1 -0
  78. package/dist/server/rpc-types.d.ts +92 -0
  79. package/dist/server/rpc-types.js +2 -0
  80. package/dist/server/rpc-types.js.map +1 -0
  81. package/dist/server/ws-server.d.ts +22 -0
  82. package/dist/server/ws-server.js +84 -0
  83. package/dist/server/ws-server.js.map +1 -0
  84. package/dist/session/session-export.d.ts +0 -1
  85. package/dist/session/session-export.js +1 -2
  86. package/dist/session/session-export.js.map +1 -1
  87. package/dist/skills/skill-tool.js +1 -1
  88. package/dist/skills/skill-tool.js.map +1 -1
  89. package/dist/tasks/task-record.d.ts +50 -0
  90. package/dist/tasks/task-record.js +50 -0
  91. package/dist/tasks/task-record.js.map +1 -0
  92. package/dist/tasks/task-store.d.ts +9 -23
  93. package/dist/tasks/task-store.js +2 -37
  94. package/dist/tasks/task-store.js.map +1 -1
  95. package/dist/tasks/task-tools.d.ts +3 -18
  96. package/dist/tasks/task-tools.js +9 -89
  97. package/dist/tasks/task-tools.js.map +1 -1
  98. package/dist/tips.js +6 -6
  99. package/dist/tips.js.map +1 -1
  100. package/dist/tools/builtins/exec-tool.js +2 -2
  101. package/dist/tools/builtins/exec-tool.js.map +1 -1
  102. package/dist/tools/builtins/image-loader-tool.d.ts +22 -0
  103. package/dist/tools/builtins/image-loader-tool.js +235 -0
  104. package/dist/tools/builtins/image-loader-tool.js.map +1 -0
  105. package/dist/types/messages.d.ts +0 -1
  106. package/dist/types/messages.js.map +1 -1
  107. package/dist/web/html.js +3 -4
  108. package/dist/web/html.js.map +1 -1
  109. package/dist/web/index.d.ts +11 -5
  110. package/dist/web/index.js +68 -28
  111. package/dist/web/index.js.map +1 -1
  112. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"openai-mappers.js","sourceRoot":"","sources":["../../src/model/openai-mappers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAA8B,MAAM,aAAa,CAAC;AAS3F,MAAM,UAAU,mBAAmB,CAAC,QAA4B;IAC9D,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;YAAE,SAAS;QAE1C,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACtF,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7G,CAAC;YACD,SAAS;QACX,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,+BAA+B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAAC,OAAqB,EAAE,UAAoC,EAAE;IAC7F,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IAClE,IAAI,uBAA2C,CAAC;IAChD,IAAI,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAE3E,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CACpC,CAAC,KAAK,EAA2E,EAAE,CACjF,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC7D,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,MAAM,gBAAgB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;YACrI,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,IAAI,IAAI,IAAI;oBACrB,iBAAiB,EAAE,gBAAgB;oBACnC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;iBACzC,CAAC,CAAC;gBACH,uBAAuB,GAAG,SAAS,CAAC;YACtC,CAAC;iBAAM,IAAI,IAAI,EAAE,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBACzF,uBAAuB,GAAG,SAAS,CAAC;YACtC,CAAC;iBAAM,IAAI,gBAAgB,EAAE,CAAC;gBAC5B,uBAAuB,GAAG,gBAAgB,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzE,uBAAuB,GAAG,SAAS,CAAC;gBACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAgC;IAClE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;QAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;KAC7B,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAgC;IAC7D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;SAC9C;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAkB;IAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAA6B;IACvE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgC,EAAE,WAAmB;IACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,QAAQ,WAAW,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC9E,OAAO;QACL,WAAW;QACX,YAAY;QACZ,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC;QAC3E,eAAe,EAAE,QAAQ,CAAE,KAAK,CAAC,qBAA6D,EAAE,gBAAgB,CAAC;QACjH,YAAY,EAAE,QAAQ,CAAE,KAAK,CAAC,oBAA4D,EAAE,aAAa,CAAC;QAC1G,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAA8B;IAC1D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAA8B,EAAE,QAAQ,GAAG,QAAQ;IAC5F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,IAAI,aAAa,CAAC;QACvB,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;QAC/G,QAAQ;QACR,OAAO;QACP,MAAM;QACN,IAAI;QACJ,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,QAA4B;IACpD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gBAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAwB,EAAE,IAAwB,EAAE,OAAe;IACjG,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IACpE,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAAE,OAAO,YAAY,CAAC;IAC7F,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IACrD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACjF,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACjF,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC;IACnD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAA2C,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxI,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA+B;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAA+C,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3J,OAAO,IAAI,IAAI,SAAS,CAAC;AAC3B,CAAC;AAED,SAAS,+BAA+B,CAAC,MAA+B;IACtE,MAAM,OAAO,GAA8B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAChG,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtE,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,0BAA0B,CAAC,MAA+B;IACjE,MAAM,OAAO,GAA8B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1F,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAqE;IAC7F,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,OAAO,GAAG,KAAK,8BAA8B,KAAK,CAAC,OAAO,CAAC,MAAM,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,+HAA+H,CAAC;AAC5N,CAAC;AAED,SAAS,YAAY,CAAC,KAAyC;IAC7D,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACtD,OAAO,QAAQ,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAqE;IACpG,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAqE;IAC3F,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;SAC3C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAe;IAC1C,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACtC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAClH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,IAAa,EAAE,KAAc;IACxC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"openai-mappers.js","sourceRoot":"","sources":["../../src/model/openai-mappers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { NotConfiguredModelGateway } from "./model-gateway.js";
2
+ import { AnthropicAdapter } from "./anthropic-adapter.js";
2
3
  import { DeepSeekAdapter } from "./deepseek-adapter.js";
3
4
  import { KimiAdapter } from "./kimi-adapter.js";
4
5
  import { OpenAIAdapter } from "./openai-adapter.js";
@@ -9,6 +10,8 @@ export function createModelGatewayFromConfig(config) {
9
10
  switch (config.provider) {
10
11
  case "openai":
11
12
  return createOpenAIGateway(config);
13
+ case "anthropic":
14
+ return createAnthropicGateway(config);
12
15
  case "deepseek":
13
16
  return createDeepSeekGateway(config);
14
17
  case "kimi":
@@ -32,6 +35,20 @@ function createOpenAIGateway(config) {
32
35
  defaultReasoning: config.defaultReasoning,
33
36
  });
34
37
  }
38
+ function createAnthropicGateway(config) {
39
+ return new AnthropicAdapter({
40
+ apiKey: config.apiKey,
41
+ baseUrl: config.baseUrl,
42
+ model: config.model,
43
+ fallbackModel: config.fallbackModel,
44
+ anthropicVersion: config.anthropic?.version,
45
+ timeoutMs: config.timeoutMs,
46
+ streamIdleTimeoutMs: config.streamIdleTimeoutMs,
47
+ maxRetries: config.maxRetries,
48
+ defaultMaxOutputTokens: config.defaultMaxOutputTokens,
49
+ defaultReasoning: config.defaultReasoning,
50
+ });
51
+ }
35
52
  function createDeepSeekGateway(config) {
36
53
  return new DeepSeekAdapter({
37
54
  apiKey: config.apiKey,
@@ -1 +1 @@
1
- {"version":3,"file":"provider-factory.js","sourceRoot":"","sources":["../../src/model/provider-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,UAAU,4BAA4B,CAAC,MAAuC;IAClF,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,yBAAyB,EAAE,CAAC;IAEpD,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,UAAU;YACb,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnF,OAAO,4BAA4B,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA4B;IACvD,OAAO,IAAI,aAAa,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;QACrD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA8B;IAC3D,OAAO,IAAI,eAAe,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;QACrD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA0B;IACnD,OAAO,IAAI,WAAW,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;QACrD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"provider-factory.js","sourceRoot":"","sources":["../../src/model/provider-factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,85 @@
1
+ import { createTextMessage } from "../types/messages.js";
2
+ import { buildAnthropicRequest, normalizeAnthropicObject, normalizeAnthropicStream } from "./anthropic-mapper.js";
3
+ async function main() {
4
+ const request = buildAnthropicRequest({
5
+ model: "claude-sonnet-4-6",
6
+ instructions: "Be brief.",
7
+ messages: [createTextMessage("user", "Say pong")],
8
+ tools: [{ name: "echo", description: "Echo text", inputSchema: { type: "object", properties: { text: { type: "string" } }, required: ["text"], additionalProperties: false } }],
9
+ stream: true,
10
+ reasoning: { effort: "minimal" },
11
+ maxOutputTokens: 128,
12
+ toolChoice: "required",
13
+ }, {
14
+ model: "claude-sonnet-4-6",
15
+ defaultMaxOutputTokens: 800,
16
+ });
17
+ assertEqual(request.model, "claude-sonnet-4-6", "model override");
18
+ assertEqual(request.max_tokens, 128, "max tokens");
19
+ assertDeepEqual(request.tool_choice, { type: "any" }, "tool choice any");
20
+ assertEqual(Array.isArray(request.tools), true, "tools included");
21
+ assertDeepEqual(request.thinking, { type: "enabled", budget_tokens: 1024 }, "thinking option");
22
+ assertEqual(request.system, "Be brief.", "system prompt mapped");
23
+ const stream = sseStream([
24
+ { type: "message_start", message: { id: "msg_1", usage: { input_tokens: 5, output_tokens: 0 } } },
25
+ { type: "content_block_start", index: 0, content_block: { type: "thinking" } },
26
+ { type: "content_block_delta", index: 0, delta: { type: "thinking_delta", thinking: "think" } },
27
+ { type: "content_block_start", index: 1, content_block: { type: "tool_use", id: "toolu_1", name: "echo", input: {} } },
28
+ { type: "content_block_delta", index: 1, delta: { type: "input_json_delta", partial_json: '{"text":"pong"}' } },
29
+ { type: "message_delta", delta: { stop_reason: "tool_use" }, usage: { input_tokens: 5, output_tokens: 7 } },
30
+ { type: "message_stop" },
31
+ ]);
32
+ const events = [];
33
+ events.push(...await collect(normalizeAnthropicStream(stream, { model: "claude-sonnet-4-6" })));
34
+ assertEqual(events.some((event) => event.type === "thinking_delta" && event.text === "think"), true, "thinking delta emitted");
35
+ assertEqual(events.some((event) => event.type === "tool_call_delta" && event.callId === "toolu_1"), true, "tool call delta emitted");
36
+ assertEqual(events.some((event) => event.type === "tool_use" && event.toolUse.id === "toolu_1" && event.toolUse.input.text === "pong"), true, "tool use emitted");
37
+ assertEqual(events.some((event) => event.type === "response_completed" && event.responseId === "msg_1"), true, "response completed");
38
+ const objectEvents = [...normalizeAnthropicObject({
39
+ status: 200,
40
+ headers: new Headers(),
41
+ body: {
42
+ id: "msg_2",
43
+ content: [
44
+ { type: "text", text: "done" },
45
+ { type: "tool_use", id: "toolu_2", name: "echo", input: { text: "pong" } },
46
+ ],
47
+ stop_reason: "tool_use",
48
+ usage: { input_tokens: 3, output_tokens: 4 },
49
+ },
50
+ })];
51
+ assertEqual(objectEvents.some((event) => event.type === "assistant_message" && event.message.blocks.some((block) => block.type === "text" && block.text === "done")), true, "object assistant message");
52
+ assertEqual(objectEvents.some((event) => event.type === "tool_use" && event.toolUse.id === "toolu_2"), true, "object tool use");
53
+ console.log(JSON.stringify({ ok: true, streamEventTypes: events.map((event) => event.type), objectEventTypes: objectEvents.map((event) => event.type) }, null, 2));
54
+ }
55
+ async function collect(iterable) {
56
+ const items = [];
57
+ for await (const item of iterable)
58
+ items.push(item);
59
+ return items;
60
+ }
61
+ function sseStream(events) {
62
+ const encoder = new TextEncoder();
63
+ const chunks = events.map((event) => `event: ${String(event.type)}\ndata: ${JSON.stringify(event)}\n\n`).join("");
64
+ return new ReadableStream({
65
+ start(controller) {
66
+ controller.enqueue(encoder.encode(chunks));
67
+ controller.close();
68
+ },
69
+ });
70
+ }
71
+ function assertEqual(actual, expected, label) {
72
+ if (actual !== expected)
73
+ throw new Error(`${label}: expected ${String(expected)}, got ${String(actual)}`);
74
+ }
75
+ function assertDeepEqual(actual, expected, label) {
76
+ const actualJson = JSON.stringify(actual);
77
+ const expectedJson = JSON.stringify(expected);
78
+ if (actualJson !== expectedJson)
79
+ throw new Error(`${label}: expected ${expectedJson}, got ${actualJson}`);
80
+ }
81
+ main().catch((error) => {
82
+ console.error(error instanceof Error ? error.stack ?? error.message : String(error));
83
+ process.exitCode = 1;
84
+ });
85
+ //# sourceMappingURL=smoke-anthropic-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smoke-anthropic-mapper.js","sourceRoot":"","sources":["../../src/model/smoke-anthropic-mapper.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { existsSync, readFileSync } from "node:fs";
4
4
  import path from "node:path";
5
5
  import { stdin, stdout } from "node:process";
6
6
  import React, { useCallback, useEffect, useRef, useState } from "react";
7
- import { Box, Static, Text, render, useApp, useInput } from "ink";
7
+ import { Box, Text, render, useApp, useInput } from "ink";
8
8
  import stripAnsi from "strip-ansi";
9
9
  import wrapAnsi from "wrap-ansi";
10
10
  import { QueryEngine } from "../core/query-engine.js";
@@ -21,12 +21,13 @@ import { grepTool } from "../tools/builtins/grep-tool.js";
21
21
  import { searchTool } from "../tools/builtins/search-tool.js";
22
22
  import { planTool } from "../tools/builtins/plan-tool.js";
23
23
  import { createOpenAIImageGenerationTool } from "../tools/builtins/image-generation-tool.js";
24
- import { createVisionTool } from "../tools/builtins/vision-tool.js";
24
+ import { createLoadImageTool } from "../tools/builtins/image-loader-tool.js";
25
25
  import { createAgentTool, resumeAgentTask } from "../agents/agent-tool.js";
26
26
  import { createTaskTools } from "../tasks/task-tools.js";
27
27
  import { TaskStore } from "../tasks/task-store.js";
28
28
  import { cliHelpText, isModelReasoningArgument, isValidReplCommandLine, parseCliReplCommandArgs, parseReplCommand, helpText, replCommandDefinitions } from "./commands.js";
29
- import { estimateMarkdownLineCount, markdownRenderKey, MarkdownText } from "./markdown-renderer.js";
29
+ import { markdownRenderKey, MarkdownText } from "./markdown-renderer.js";
30
+ import { TranscriptFlusher } from "./transcript-flush.js";
30
31
  import { writeSessionMarkdownExport } from "../session/session-export.js";
31
32
  import { readClipboard } from "./clipboard.js";
32
33
  import { formatTipLine, initialTipIndex, tipAt } from "../tips.js";
@@ -108,6 +109,8 @@ async function main(argv = process.argv.slice(2)) {
108
109
  const runtime = await createRuntime();
109
110
  const instance = render(e(InkRepl, { runtime, initialCommandLine: initialCommand?.line }), {
110
111
  exitOnCtrlC: false,
112
+ // Incremental mode can leave stale rows when live output grows taller between frames (stair-step artifacts).
113
+ incrementalRendering: false,
111
114
  });
112
115
  await instance.waitUntilExit();
113
116
  console.log("bye.");
@@ -158,7 +161,7 @@ async function createRuntime() {
158
161
  tools.register(readFileTool);
159
162
  tools.register(grepTool);
160
163
  tools.register(searchTool);
161
- tools.register(createVisionTool({ modelGateway, model: modelConfig?.model }));
164
+ tools.register(createLoadImageTool());
162
165
  if (modelConfig?.provider === "openai")
163
166
  tools.register(createOpenAIImageGenerationTool());
164
167
  tools.register(planTool);
@@ -216,12 +219,8 @@ function syncImageGenerationTool(runtime, provider) {
216
219
  if (provider === "openai")
217
220
  runtime.tools.register(createOpenAIImageGenerationTool());
218
221
  }
219
- function syncVisionTool(runtime, model) {
220
- runtime.tools.unregister("vision");
221
- runtime.tools.register(createVisionTool({ modelGateway: runtime.modelGateway, model }));
222
- }
223
222
  function formatCreatedEnvNotice(path) {
224
- return `Created default config file: ${path}\nSet MODEL_PROVIDER and the matching provider section (for example OPENAI_API_KEY or KIMI_API_KEY), then restart neo.`;
223
+ return `Created default config file: ${path}\nSet MODEL_PROVIDER and the matching provider section (for example OPENAI_API_KEY, ANTHROPIC_API_KEY, or KIMI_API_KEY), then restart neo.`;
225
224
  }
226
225
  function parseResumeFlag(value) {
227
226
  if (!value)
@@ -424,6 +423,7 @@ function InkRepl({ runtime, initialCommandLine }) {
424
423
  const [slashCompletionIndex, setSlashCompletionIndex] = useState(0);
425
424
  const [loginForm, setLoginForm] = useState(undefined);
426
425
  const loginFormRef = useRef(undefined);
426
+ const [transcriptResetEpoch, setTranscriptResetEpoch] = useState(0);
427
427
  useEffect(() => {
428
428
  enableTerminalFocusReporting();
429
429
  enableTerminalMouseReporting();
@@ -827,7 +827,12 @@ function InkRepl({ runtime, initialCommandLine }) {
827
827
  const command = parseReplCommand(text);
828
828
  const detachedForCommand = busyRef.current && (command.type === "new" || command.type === "sessions");
829
829
  if (busyRef.current && !detachedForCommand) {
830
- stopForegroundRun("Interrupted by new prompt");
830
+ setQueuedPromptState(text, submitAttachments);
831
+ history.current = [text, ...history.current.filter((entry) => entry !== text)].slice(0, 100);
832
+ setHistorySelection(undefined);
833
+ setPromptState("", 0);
834
+ clearAttachments();
835
+ return;
831
836
  }
832
837
  history.current = [text, ...history.current.filter((entry) => entry !== text)].slice(0, 100);
833
838
  setHistorySelection(undefined);
@@ -1082,17 +1087,23 @@ function InkRepl({ runtime, initialCommandLine }) {
1082
1087
  activeAbortController.current = undefined;
1083
1088
  interruptArmed.current = false;
1084
1089
  finalizeForegroundView();
1085
- setBusyState(false);
1086
- setStatus((current) => ({
1087
- ...current,
1088
- phase: "ready",
1089
- detail: undefined,
1090
- inputTokenUpdatedAt: undefined,
1091
- outputTokenUpdatedAt: undefined,
1092
- retryCooldownUntil: undefined,
1093
- }));
1094
- if (!terminalFocusedRef.current)
1095
- playReadySound();
1090
+ const queued = takeQueuedPromptState();
1091
+ if (queued) {
1092
+ void handleCommandOrPrompt(queued.text, queued.attachments);
1093
+ }
1094
+ else {
1095
+ setBusyState(false);
1096
+ setStatus((current) => ({
1097
+ ...current,
1098
+ phase: "ready",
1099
+ detail: undefined,
1100
+ inputTokenUpdatedAt: undefined,
1101
+ outputTokenUpdatedAt: undefined,
1102
+ retryCooldownUntil: undefined,
1103
+ }));
1104
+ if (!terminalFocusedRef.current)
1105
+ playReadySound();
1106
+ }
1096
1107
  }
1097
1108
  };
1098
1109
  useEffect(() => {
@@ -1108,6 +1119,7 @@ function InkRepl({ runtime, initialCommandLine }) {
1108
1119
  setLoginFormState(undefined);
1109
1120
  setQueuedPromptState(undefined);
1110
1121
  setPromptState("", 0);
1122
+ setTranscriptResetEpoch((n) => n + 1);
1111
1123
  }, [runtime]);
1112
1124
  useEffect(() => {
1113
1125
  if (initialCommandLine === undefined)
@@ -1132,18 +1144,8 @@ function InkRepl({ runtime, initialCommandLine }) {
1132
1144
  if (selectedSlashCompletionIndex !== slashCompletionIndexRef.current) {
1133
1145
  slashCompletionIndexRef.current = selectedSlashCompletionIndex;
1134
1146
  }
1135
- const promptHeight = promptTextView(promptLayoutText, promptLayoutCursor, width, prompt).length + slashCompletionViewHeight(slashCompletions) + (queuedInput !== undefined ? QUEUED_INPUT_RENDER_ROWS : 0) + (pasteStatus ? 1 : 0);
1136
- const firstDynamicLineIndex = lines.findIndex((line) => lineNeedsDynamicRender(line, messageContentWidth(width)));
1137
- const staticLines = firstDynamicLineIndex === -1 ? lines : lines.slice(0, firstDynamicLineIndex);
1138
- const dynamicLines = firstDynamicLineIndex === -1 ? [] : lines.slice(firstDynamicLineIndex);
1139
- const dynamicMarginOverhead = dynamicLines.reduce((sum, _, i) => {
1140
- const blockIndex = staticLines.length + i;
1141
- return sum + (blockIndex > 0 ? MESSAGE_BLOCK_SPACING_LINES : 0);
1142
- }, 0);
1143
- const statusRenderRows = STATUS_BAR_RENDER_ROWS + backgroundTaskStatusRenderRows(backgroundTasks.length);
1144
- const sessionsBrowserHeight = sessionsBrowser ? sessionsBrowserViewHeight(sessionsBrowser) : 0;
1145
- const loginFormHeight = loginForm ? loginFormViewHeight(loginForm) : 0;
1146
- const liveViewportLines = Math.max(MIN_LIVE_VIEWPORT_LINES, terminalSize.rows - promptHeight - statusRenderRows - sessionsBrowserHeight - loginFormHeight - dynamicMarginOverhead - 1);
1147
+ const firstTailLineIndex = lines.findIndex((line) => lineNeedsDynamicRender(line, messageContentWidth(width)));
1148
+ const tailLines = firstTailLineIndex === -1 ? [] : lines.slice(firstTailLineIndex);
1147
1149
  useInput((value, key) => {
1148
1150
  if (isTerminalFocusInSequence(value)) {
1149
1151
  terminalFocusedRef.current = true;
@@ -1367,9 +1369,14 @@ function InkRepl({ runtime, initialCommandLine }) {
1367
1369
  return;
1368
1370
  }
1369
1371
  });
1370
- return e(Box, { flexDirection: "column" }, e((Static), { items: staticLines, children: (line, index) => e(MessageBlock, { key: line.id, line, width, blockIndex: index }) }), e(MessageList, { lines: dynamicLines, width, liveMaxLines: liveViewportLines, lineIndexOffset: staticLines.length, onMarkdownRenderComplete: markLineRendered }), sessionsBrowser ? e(SessionsBrowser, { state: sessionsBrowser, width }) : null, loginForm ? e(LoginFormView, { state: loginForm, width }) : null, e(StatusBar, { status, animationTick, width }), backgroundTasks.length > 0 ? e(BackgroundTaskStatusLine, { tasks: backgroundTasks, width }) : null, pasteStatus ? e(PasteStatusLine, { text: pasteStatus, width }) : null, queuedInput !== undefined ? e(QueuedInputLine, { text: queuedInput, width }) : null, e(PromptLine, { text: promptDisplayText, cursor: promptDisplayCursor, busy, locked: inputLockedByQueue, placeholder: input.length === 0 && promptPlaceholder !== undefined, ghostText: activePlaceholder, width, prompt, slashCompletions, selectedSlashCompletionIndex, attachments }));
1372
+ return e(Box, { flexDirection: "column" }, e(TranscriptFlusher, { lines, columns: width, resetEpoch: transcriptResetEpoch }), e(MessageList, {
1373
+ lines: tailLines,
1374
+ width,
1375
+ lineIndexOffset: firstTailLineIndex === -1 ? lines.length : firstTailLineIndex,
1376
+ onMarkdownRenderComplete: markLineRendered,
1377
+ }), sessionsBrowser ? e(SessionsBrowser, { state: sessionsBrowser, width }) : null, loginForm ? e(LoginFormView, { state: loginForm, width }) : null, e(StatusBar, { status, animationTick, width }), backgroundTasks.length > 0 ? e(BackgroundTaskStatusLine, { tasks: backgroundTasks, width }) : null, pasteStatus ? e(PasteStatusLine, { text: pasteStatus, width }) : null, queuedInput !== undefined ? e(QueuedInputLine, { text: queuedInput, width }) : null, e(PromptLine, { text: promptDisplayText, cursor: promptDisplayCursor, busy, locked: inputLockedByQueue, placeholder: input.length === 0 && promptPlaceholder !== undefined, ghostText: activePlaceholder, width, prompt, slashCompletions, selectedSlashCompletionIndex, attachments }));
1371
1378
  }
1372
- const MessageList = React.memo(function MessageList({ lines, width, liveMaxLines, lineIndexOffset = 0, onMarkdownRenderComplete }) {
1379
+ const MessageList = React.memo(function MessageList({ lines, width, lineIndexOffset = 0, onMarkdownRenderComplete }) {
1373
1380
  const contentWidth = messageContentWidth(width);
1374
1381
  const toolWidth = toolContentWidth(width);
1375
1382
  return e(Box, { flexDirection: "column" }, ...lines.map((line, index) => e(MessageBlock, {
@@ -1379,49 +1386,28 @@ const MessageList = React.memo(function MessageList({ lines, width, liveMaxLines
1379
1386
  blockIndex: lineIndexOffset + index,
1380
1387
  contentWidth,
1381
1388
  toolWidth,
1382
- liveMaxLines,
1383
1389
  onMarkdownRenderComplete,
1384
1390
  })));
1385
1391
  });
1386
- function MessageBlock({ line, width, blockIndex, contentWidth, toolWidth, liveMaxLines, onMarkdownRenderComplete }) {
1387
- return e(Box, { flexDirection: "column", marginTop: blockIndex > 0 ? MESSAGE_BLOCK_SPACING_LINES : 0 }, e(MessageLine, { line, width, contentWidth, toolWidth, liveMaxLines, onMarkdownRenderComplete }));
1392
+ function MessageBlock({ line, width, blockIndex, contentWidth, toolWidth, onMarkdownRenderComplete }) {
1393
+ return e(Box, { flexDirection: "column", marginTop: blockIndex > 0 ? MESSAGE_BLOCK_SPACING_LINES : 0 }, e(MessageLine, { line, width, contentWidth, toolWidth, onMarkdownRenderComplete }));
1388
1394
  }
1389
- function MessageLine({ line, width, contentWidth = messageContentWidth(width), toolWidth = toolContentWidth(width), liveMaxLines, onMarkdownRenderComplete }) {
1395
+ function MessageLine({ line, width, contentWidth = messageContentWidth(width), toolWidth = toolContentWidth(width), onMarkdownRenderComplete }) {
1390
1396
  if (line.previewStyle === "summary") {
1391
1397
  const useRoleMarker = summaryUsesRoleMarker(line);
1392
1398
  const summaryWidth = useRoleMarker ? contentWidth : toolWidth;
1393
- const display = displayWindowForLine(line, summaryWidth, line.live ? liveMaxLines : undefined);
1394
- return e(Box, { flexDirection: "row" }, useRoleMarker ? e(Text, { color: markerColorForKind(line.kind) }, messageRoleMarker(line.kind)) : null, e(Box, { flexDirection: "column", width: summaryWidth }, ...renderDisplayText(line, summaryWidth, display.maxLines, display.skipTop)));
1399
+ return e(Box, { flexDirection: "row" }, useRoleMarker ? e(Text, { color: markerColorForKind(line.kind) }, messageRoleMarker(line.kind)) : null, e(Box, { flexDirection: "column", width: summaryWidth }, ...renderDisplayText(line, summaryWidth, undefined, 0)));
1395
1400
  }
1396
1401
  const useRoleMarker = !titleProvidesToolMarker(line);
1397
1402
  const lineWidth = useRoleMarker ? contentWidth : toolWidth;
1398
- const clipPendingMarkdown = !line.live && onMarkdownRenderComplete !== undefined && lineNeedsDynamicRender(line, lineWidth);
1399
- const display = displayWindowForLine(line, lineWidth, line.live || clipPendingMarkdown ? liveMaxLines : undefined);
1400
1403
  const contentNodes = [];
1401
1404
  if (line.title)
1402
1405
  contentNodes.push(renderBlockTitle(line));
1403
1406
  if (line.bodyTitle)
1404
1407
  contentNodes.push(e(Text, { key: `body-title-${line.id}`, bold: true }, line.bodyTitle));
1405
- contentNodes.push(...renderDisplayText(line, lineWidth, display.maxLines, display.skipTop, onMarkdownRenderComplete));
1408
+ contentNodes.push(...renderDisplayText(line, lineWidth, undefined, 0, onMarkdownRenderComplete));
1406
1409
  return e(Box, { flexDirection: "row" }, useRoleMarker ? e(Text, { color: markerColorForKind(line.kind) }, messageRoleMarker(line.kind)) : null, e(Box, { flexDirection: "column", width: lineWidth }, ...contentNodes));
1407
1410
  }
1408
- function displayWindowForLine(line, width, maxLines) {
1409
- if (maxLines === undefined)
1410
- return { skipTop: 0 };
1411
- const safeMaxLines = Math.max(1, maxLines);
1412
- const lineCount = estimateRenderedLineCount(line, width);
1413
- return {
1414
- maxLines: safeMaxLines,
1415
- skipTop: Math.max(0, lineCount - safeMaxLines),
1416
- };
1417
- }
1418
- function estimateRenderedLineCount(line, width) {
1419
- if (line.previewStyle === "summary")
1420
- return renderSummaryLines(line, width).length;
1421
- if (line.format === "ansi")
1422
- return wrapAnsi(line.text, Math.max(10, width), { hard: true, trim: false }).split("\n").length;
1423
- return estimateMarkdownLineCount(line.text, width);
1424
- }
1425
1411
  function lineNeedsDynamicRender(line, width) {
1426
1412
  if (line.live || line.pendingReplacement)
1427
1413
  return true;
@@ -2006,7 +1992,6 @@ async function handleModelCommand(command, runtime) {
2006
1992
  reasoning: config.defaultReasoning,
2007
1993
  });
2008
1994
  syncImageGenerationTool(runtime, config.provider);
2009
- syncVisionTool(runtime, config.model);
2010
1995
  runtime.defaultReasoning = config.defaultReasoning;
2011
1996
  }
2012
1997
  }
@@ -2058,9 +2043,11 @@ async function persistModelCommandSettings(runtime, command, reasoningUpdate) {
2058
2043
  return { providerChanged: targetProvider !== currentProvider };
2059
2044
  }
2060
2045
  function currentModelProvider() {
2061
- return parseLoginProvider(process.env.MODEL_PROVIDER) ?? "openai";
2046
+ return parseLoginProvider(process.env.MODEL_PROVIDER) ?? (process.env.ANTHROPIC_API_KEY ? "anthropic" : "openai");
2062
2047
  }
2063
2048
  function modelEnvKeyForProvider(provider) {
2049
+ if (provider === "anthropic")
2050
+ return "ANTHROPIC_MODEL";
2064
2051
  if (provider === "deepseek")
2065
2052
  return "DEEPSEEK_MODEL";
2066
2053
  if (provider === "kimi")
@@ -2404,7 +2391,7 @@ function restoredHistoryLines(runtime) {
2404
2391
  }
2405
2392
  return lines;
2406
2393
  }
2407
- const LOGIN_PROVIDERS = ["openai", "deepseek", "kimi"];
2394
+ const LOGIN_PROVIDERS = ["openai", "anthropic", "deepseek", "kimi"];
2408
2395
  const SHARED_LOGIN_FIELDS = [
2409
2396
  { key: "reasoningEffort", label: "Reasoning effort", envKey: "MODEL_REASONING_EFFORT", scope: "shared", options: ["", "off", "none", "minimal", "low", "medium", "high", "xhigh", "max"] },
2410
2397
  { key: "reasoningSummary", label: "Reasoning summary", envKey: "MODEL_REASONING_SUMMARY", scope: "shared", options: ["", "auto", "concise", "detailed"] },
@@ -2422,6 +2409,14 @@ const LOGIN_FIELD_DEFINITIONS = {
2422
2409
  { key: "endpoint", label: "Endpoint", envKey: "OPENAI_ENDPOINT", scope: "provider", placeholder: "auto", options: ["auto", "responses", "chat"] },
2423
2410
  ...SHARED_LOGIN_FIELDS,
2424
2411
  ],
2412
+ anthropic: [
2413
+ { key: "apiKey", label: "API key", envKey: "ANTHROPIC_API_KEY", scope: "provider", required: true, secret: true, placeholder: "sk-ant-..." },
2414
+ { key: "baseUrl", label: "Base URL", envKey: "ANTHROPIC_BASE_URL", scope: "provider", placeholder: "https://api.anthropic.com" },
2415
+ { key: "model", label: "Model", envKey: "ANTHROPIC_MODEL", scope: "provider", required: true, placeholder: "claude-sonnet-4-6" },
2416
+ { key: "fallbackModel", label: "Fallback model", envKey: "ANTHROPIC_FALLBACK_MODEL", scope: "provider" },
2417
+ { key: "version", label: "Anthropic version", envKey: "ANTHROPIC_VERSION", scope: "provider", placeholder: "2023-06-01" },
2418
+ ...SHARED_LOGIN_FIELDS,
2419
+ ],
2425
2420
  deepseek: [
2426
2421
  { key: "apiKey", label: "API key", envKey: "DEEPSEEK_API_KEY", scope: "provider", required: true, secret: true, placeholder: "sk-..." },
2427
2422
  { key: "baseUrl", label: "Base URL", envKey: "DEEPSEEK_BASE_URL", scope: "provider", placeholder: "https://api.deepseek.com" },
@@ -2450,6 +2445,12 @@ const DEPRECATED_MODEL_ENV_KEYS = [
2450
2445
  "OPENAI_TIMEOUT_MS",
2451
2446
  "OPENAI_STREAM_IDLE_TIMEOUT_MS",
2452
2447
  "OPENAI_MAX_RETRIES",
2448
+ "ANTHROPIC_REASONING_EFFORT",
2449
+ "ANTHROPIC_REASONING_SUMMARY",
2450
+ "ANTHROPIC_MAX_OUTPUT_TOKENS",
2451
+ "ANTHROPIC_TIMEOUT_MS",
2452
+ "ANTHROPIC_STREAM_IDLE_TIMEOUT_MS",
2453
+ "ANTHROPIC_MAX_RETRIES",
2453
2454
  "DEEPSEEK_REASONING_EFFORT",
2454
2455
  "DEEPSEEK_REASONING_SUMMARY",
2455
2456
  "DEEPSEEK_MAX_OUTPUT_TOKENS",
@@ -2634,7 +2635,6 @@ async function submitLoginForm(state, runtime, append, setLoginFormState, setSta
2634
2635
  reasoning: config.defaultReasoning,
2635
2636
  });
2636
2637
  syncImageGenerationTool(runtime, config.provider);
2637
- syncVisionTool(runtime, config.model);
2638
2638
  runtime.defaultReasoning = config.defaultReasoning;
2639
2639
  const metrics = await runtime.engine.contextMetrics();
2640
2640
  setStatus((current) => ({
@@ -2702,7 +2702,7 @@ function loginValuesForProvider(provider, env) {
2702
2702
  return values;
2703
2703
  }
2704
2704
  function parseLoginProvider(value) {
2705
- if (value === "openai" || value === "deepseek" || value === "kimi")
2705
+ if (value === "openai" || value === "anthropic" || value === "deepseek" || value === "kimi")
2706
2706
  return value;
2707
2707
  return undefined;
2708
2708
  }
@@ -2711,9 +2711,13 @@ function guessLoginProvider(env) {
2711
2711
  return "kimi";
2712
2712
  if (env.DEEPSEEK_API_KEY ?? process.env.DEEPSEEK_API_KEY)
2713
2713
  return "deepseek";
2714
+ if (env.ANTHROPIC_API_KEY ?? process.env.ANTHROPIC_API_KEY)
2715
+ return "anthropic";
2714
2716
  return "openai";
2715
2717
  }
2716
2718
  function defaultBaseUrlForLoginProvider(provider) {
2719
+ if (provider === "anthropic")
2720
+ return "https://api.anthropic.com";
2717
2721
  if (provider === "deepseek")
2718
2722
  return "https://api.deepseek.com";
2719
2723
  if (provider === "kimi")
@@ -2721,6 +2725,8 @@ function defaultBaseUrlForLoginProvider(provider) {
2721
2725
  return "https://api.openai.com";
2722
2726
  }
2723
2727
  function defaultModelForLoginProvider(provider) {
2728
+ if (provider === "anthropic")
2729
+ return "claude-sonnet-4-6";
2724
2730
  if (provider === "deepseek")
2725
2731
  return "deepseek-chat";
2726
2732
  if (provider === "kimi")
@@ -2743,7 +2749,7 @@ function LoginFormView({ state, width }) {
2743
2749
  const visibleValue = formatLoginFieldValue(field, rawValue, selected ? state.cursor : undefined);
2744
2750
  const placeholder = rawValue ? "" : (field.placeholder ? ` (${field.placeholder})` : "");
2745
2751
  return e(Text, { key: field.key, color: "white" }, e(Text, { color: selected ? "black" : "white", backgroundColor: selected ? "cyan" : undefined }, `${index + 1}.`.padStart(3)), e(Text, { color: field.required ? "yellow" : "gray" }, ` ${field.label.padEnd(maxLabel)} `), e(Text, { color: field.scope === "shared" ? "blue" : "gray" }, field.scope === "shared" ? "shared " : "provider "), e(Text, { color: rawValue ? "white" : "gray" }, fitToWidth(`${visibleValue}${placeholder}`, Math.max(8, contentWidth - maxLabel - 14))));
2746
- }), e(Text, { color: "gray" }, fitToWidth("↑/↓ field · ←/→ cursor · type edit · Tab cycle choices · Enter save · Esc back/cancel", contentWidth)), e(Text, { color: "gray" }, fitToWidth("Provider fields save as OPENAI_* / DEEPSEEK_* / KIMI_*; shared runtime fields save as MODEL_*.", contentWidth)));
2752
+ }), e(Text, { color: "gray" }, fitToWidth("↑/↓ field · ←/→ cursor · type edit · Tab cycle choices · Enter save · Esc back/cancel", contentWidth)), e(Text, { color: "gray" }, fitToWidth("Provider fields save as OPENAI_* / ANTHROPIC_* / DEEPSEEK_* / KIMI_*; shared runtime fields save as MODEL_*.", contentWidth)));
2747
2753
  }
2748
2754
  function formatLoginFieldValue(field, value, cursor) {
2749
2755
  const display = field.secret && value ? "•".repeat(Math.min(value.length, 24)) : value;
@@ -2801,6 +2807,7 @@ function updateEnvContent(content, updates, removeKeys = []) {
2801
2807
  const grouped = groupLoginEnvEntries(missing);
2802
2808
  appendEnvGroup(updatedLines, "# Neo active provider", grouped.active);
2803
2809
  appendEnvGroup(updatedLines, "# OpenAI provider settings", grouped.openai);
2810
+ appendEnvGroup(updatedLines, "# Anthropic provider settings", grouped.anthropic);
2804
2811
  appendEnvGroup(updatedLines, "# DeepSeek provider settings", grouped.deepseek);
2805
2812
  appendEnvGroup(updatedLines, "# Kimi provider settings", grouped.kimi);
2806
2813
  appendEnvGroup(updatedLines, "# Shared model runtime settings", grouped.shared);
@@ -2811,6 +2818,7 @@ function groupLoginEnvEntries(entries) {
2811
2818
  return {
2812
2819
  active: entries.filter(([key]) => key === "MODEL_PROVIDER"),
2813
2820
  openai: entries.filter(([key]) => key.startsWith("OPENAI_")),
2821
+ anthropic: entries.filter(([key]) => key.startsWith("ANTHROPIC_")),
2814
2822
  deepseek: entries.filter(([key]) => key.startsWith("DEEPSEEK_")),
2815
2823
  kimi: entries.filter(([key]) => key.startsWith("KIMI_") || key.startsWith("MOONSHOT_")),
2816
2824
  shared: entries.filter(([key]) => key.startsWith("MODEL_") && key !== "MODEL_PROVIDER"),
@@ -2900,12 +2908,12 @@ function formatUsageTotals(totals) {
2900
2908
  function formatManualCompaction(result) {
2901
2909
  if (!result.changed)
2902
2910
  return "No earlier context available to compact.";
2903
- return `manual context compacted: ${result.messages.length} messages retained, ${formatNumber(result.tokensFreed ?? 0)} chars freed`;
2911
+ return `manual context compacted: ${result.messages.length} messages retained, ${formatNumber(result.charsFreed ?? result.tokensFreed ?? 0)} chars freed`;
2904
2912
  }
2905
2913
  function formatPureCompaction(result) {
2906
2914
  if (!result.changed)
2907
2915
  return "No context available to purify.";
2908
- return `pure context compacted: ${result.messages.length} sanitized message(s) retained, ${formatNumber(result.tokensFreed ?? 0)} chars removed; raw command/log/code details omitted`;
2916
+ return `pure context compacted: ${result.messages.length} sanitized message(s) retained, ${formatNumber(result.charsFreed ?? result.tokensFreed ?? 0)} chars removed; raw command/log/code details omitted`;
2909
2917
  }
2910
2918
  function colorForKind(kind) {
2911
2919
  if (kind === "user")
@@ -3771,7 +3779,6 @@ const QUEUED_INPUT_RENDER_ROWS = 1;
3771
3779
  const EMPTY_CTRL_C_EXIT_PLACEHOLDER = "Press Ctrl+C again to exit";
3772
3780
  const LONG_CLIPBOARD_TEXT_THRESHOLD = 200;
3773
3781
  const PASTE_STATUS_DISPLAY_MS = 2500;
3774
- const MIN_LIVE_VIEWPORT_LINES = 4;
3775
3782
  const MESSAGE_BLOCK_SPACING_LINES = 1;
3776
3783
  const SUMMARY_BLOCK = {
3777
3784
  maxLines: 6,