@hncode/hncode 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -15
- package/README_CN.md +1 -15
- package/bin/hncode +22 -9
- package/package.json +3 -2
- package/src/agent.js +145 -33
- package/src/bootstrap.js +56 -0
- package/src/btw-panel.js +224 -0
- package/src/cache.js +3 -2
- package/src/cell-buffer.js +173 -0
- package/src/ci.js +4 -1
- package/src/clipboard.js +202 -43
- package/src/colors.js +175 -30
- package/src/config.js +376 -34
- package/src/context-bar.js +237 -0
- package/src/doctor.js +320 -0
- package/src/experiments.js +122 -0
- package/src/file-history.js +112 -0
- package/src/file-tree.js +255 -0
- package/src/flush-tick.js +56 -0
- package/src/fork.js +44 -0
- package/src/fx.js +148 -0
- package/src/index.js +123 -11
- package/src/keybindings.js +229 -0
- package/src/llm.js +355 -34
- package/src/lsp.js +401 -0
- package/src/notebook.js +232 -0
- package/src/output-styles.js +183 -0
- package/src/patch.js +248 -0
- package/src/permissions.js +130 -1
- package/src/plan.js +3 -2
- package/src/plugin.js +611 -58
- package/src/prompt-presets.js +1 -1
- package/src/registry-browser.js +31 -13
- package/src/remote.js +20 -2
- package/src/rollout.js +151 -0
- package/src/row-cache.js +143 -0
- package/src/schedule.js +294 -0
- package/src/session-approvals.js +86 -0
- package/src/session.js +178 -8
- package/src/shell-safety.js +473 -0
- package/src/side-thread.js +240 -0
- package/src/skills.js +27 -0
- package/src/stream-buffer.js +350 -0
- package/src/subagent-control.js +160 -0
- package/src/teleport.js +260 -0
- package/src/term-caps.js +411 -0
- package/src/term.js +283 -8
- package/src/tools/agent-control.js +98 -0
- package/src/tools/agent-swarm.js +11 -2
- package/src/tools/agent.js +35 -1
- package/src/tools/diagnostics.js +175 -0
- package/src/tools/edit.js +25 -10
- package/src/tools/grep.js +62 -20
- package/src/tools/ignore.js +38 -14
- package/src/tools/index.js +10 -0
- package/src/tools/notebook.js +113 -0
- package/src/tools/read-media-file.js +10 -3
- package/src/tools/shell.js +34 -6
- package/src/tui.js +5219 -792
- package/src/web-public/app.js +7 -0
package/src/web-public/app.js
CHANGED
|
@@ -1215,6 +1215,12 @@ function paintBgTaskRow(body, r) {
|
|
|
1215
1215
|
*/
|
|
1216
1216
|
function paintThinkingRow(body, r, text) {
|
|
1217
1217
|
const lines = text ? text.replace(/\r\n/g, '\n').split('\n') : [];
|
|
1218
|
+
// An EMPTY reasoning block renders NOTHING, matching `messageLines` in the
|
|
1219
|
+
// terminal. A model may emit a `think` event with no text, and a block finalised by
|
|
1220
|
+
// a tool call can be left empty; drawing a bare `●` (or a lone spinner) for those
|
|
1221
|
+
// reads as a rendering bug. The row stays in the model, so a block that later
|
|
1222
|
+
// receives text appears in full — only the paint is skipped.
|
|
1223
|
+
if (!lines.some((l) => l.trim() !== '')) return;
|
|
1218
1224
|
const cap = expandedRows.has(r.id) ? Infinity : THINK_PREVIEW;
|
|
1219
1225
|
|
|
1220
1226
|
if (r.pending) {
|
|
@@ -1242,6 +1248,7 @@ function paintThinkingRow(body, r, text) {
|
|
|
1242
1248
|
}
|
|
1243
1249
|
|
|
1244
1250
|
|
|
1251
|
+
|
|
1245
1252
|
const FENCE_RE = /^[ \t]*```+\s*(\S*)/;
|
|
1246
1253
|
const INLINE_RE = /(`[^`]+`|\*\*[^*]+\*\*|\*[^*\s][^*]*?\*|~~[^~]+~~|\[[^\]]+\]\([^)\s]+\)|(^|\s)https?:\/\/[^\s]+)/g;
|
|
1247
1254
|
|