@kolisachint/hoocode-agent 0.5.35 → 0.5.36

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 (36) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  3. package/dist/modes/interactive/components/custom-message.js +2 -2
  4. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  5. package/dist/modes/interactive/components/tool-chain.d.ts +11 -0
  6. package/dist/modes/interactive/components/tool-chain.d.ts.map +1 -1
  7. package/dist/modes/interactive/components/tool-chain.js +22 -2
  8. package/dist/modes/interactive/components/tool-chain.js.map +1 -1
  9. package/dist/modes/interactive/components/tool-execution.d.ts +8 -0
  10. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  11. package/dist/modes/interactive/components/tool-execution.js +15 -0
  12. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  13. package/dist/modes/interactive/components/tool-signal.d.ts +2 -0
  14. package/dist/modes/interactive/components/tool-signal.d.ts.map +1 -1
  15. package/dist/modes/interactive/components/tool-signal.js +6 -4
  16. package/dist/modes/interactive/components/tool-signal.js.map +1 -1
  17. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  18. package/dist/modes/interactive/components/user-message.js +2 -2
  19. package/dist/modes/interactive/components/user-message.js.map +1 -1
  20. package/dist/modes/interactive/interactive-mode.d.ts +4 -0
  21. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  22. package/dist/modes/interactive/interactive-mode.js +21 -2
  23. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  24. package/dist/modes/interactive/theme/theme-schema.json +4 -0
  25. package/dist/modes/interactive/theme/theme.d.ts +14 -2
  26. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  27. package/dist/modes/interactive/theme/theme.js +36 -2
  28. package/dist/modes/interactive/theme/theme.js.map +1 -1
  29. package/dist/modes/interactive/theme/vox-cutout-dark.json +2 -1
  30. package/dist/modes/interactive/theme/vox-cutout-light.json +2 -1
  31. package/docs/themes.md +10 -0
  32. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  33. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  34. package/examples/extensions/sandbox/package.json +1 -1
  35. package/examples/extensions/with-deps/package.json +1 -1
  36. package/package.json +4 -4
@@ -67,7 +67,7 @@ import { ModelController } from "./model-controller.js";
67
67
  import { ExpandableText, formatDisplayPath, isExpandable, showLoadedResources as renderLoadedResources, } from "./resource-display.js";
68
68
  import { checkForPackageUpdates, checkTmuxKeyboardSetup, getChangelogForDisplay } from "./startup-checks.js";
69
69
  import { TeamFocusController } from "./team-focus.js";
70
- import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMarkdownTheme, getPaperShadowFn, getThemeByName, initTheme, onThemeChange, setRegisteredThemes, setTheme, setThemeInstance, stopThemeWatcher, Theme, theme, } from "./theme/theme.js";
70
+ import { applyPaperSheet, getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMarkdownTheme, getThemeByName, initTheme, onThemeChange, setRegisteredThemes, setTheme, setThemeInstance, stopThemeWatcher, Theme, theme, } from "./theme/theme.js";
71
71
  import { VoiceController } from "./voice/voice-controller.js";
72
72
  /** Interface for components that can be expanded/collapsed */
73
73
  const DEAD_TERMINAL_ERROR_CODES = new Set(["EIO", "EPIPE", "ENOTCONN"]);
@@ -203,6 +203,10 @@ export class InteractiveMode {
203
203
  toolOutputView = "glance";
204
204
  // The chain currently collecting tool calls, if the agent is mid-run.
205
205
  openChain;
206
+ /** The newest tool block in the transcript; radar marks it. */
207
+ latestToolBlock;
208
+ /** The run that block belongs to; radar marks its folded line too. */
209
+ latestChain;
206
210
  // Whether the assistant message being streamed has said anything yet. The
207
211
  // first words it speaks close the chain the previous message's calls built.
208
212
  sawTextInCurrentMessage = false;
@@ -1078,6 +1082,8 @@ export class InteractiveMode {
1078
1082
  renderCurrentSessionState() {
1079
1083
  this.chatContainer.clear();
1080
1084
  this.openChain = undefined;
1085
+ this.latestToolBlock = undefined;
1086
+ this.latestChain = undefined;
1081
1087
  this.pendingMessagesContainer.clear();
1082
1088
  this.messageQueue.resetCompactionQueue();
1083
1089
  this.streamingComponent = undefined;
@@ -2616,6 +2622,19 @@ export class InteractiveMode {
2616
2622
  this.chatContainer.addChild(this.openChain);
2617
2623
  }
2618
2624
  this.openChain.add(block);
2625
+ // The newest call carries radar's marker stroke. This is the one place
2626
+ // every tool block is attached, so it is the one place that can know
2627
+ // which block is newest without two paths disagreeing about it. The run
2628
+ // it belongs to is marked as well: radar folds a run of more than one
2629
+ // call to a single line, and that line is what the view usually shows.
2630
+ this.latestToolBlock?.setLatest(false);
2631
+ block.setLatest(true);
2632
+ this.latestToolBlock = block;
2633
+ if (this.latestChain !== this.openChain) {
2634
+ this.latestChain?.setLatest(false);
2635
+ this.openChain.setLatest(true);
2636
+ this.latestChain = this.openChain;
2637
+ }
2619
2638
  }
2620
2639
  /**
2621
2640
  * Settle the open chain.
@@ -2876,7 +2895,7 @@ export class InteractiveMode {
2876
2895
  */
2877
2896
  showBlock(bg, fg, title, body) {
2878
2897
  const box = new Box(1, 1, (t) => theme.bg(bg, t));
2879
- box.setShadowFn(getPaperShadowFn());
2898
+ applyPaperSheet(box);
2880
2899
  box.addChild(new Text(theme.bold(theme.fg(fg, title)), 0, 0));
2881
2900
  for (const line of body) {
2882
2901
  box.addChild(new Text(theme.fg("muted", line), 0, 0));