@kolisachint/hoocode-agent 0.4.153 → 0.4.155

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 (43) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/core/agent-session.d.ts.map +1 -1
  3. package/dist/core/agent-session.js +3 -0
  4. package/dist/core/agent-session.js.map +1 -1
  5. package/dist/core/settings-defaults.d.ts +6 -0
  6. package/dist/core/settings-defaults.d.ts.map +1 -1
  7. package/dist/core/settings-defaults.js +6 -0
  8. package/dist/core/settings-defaults.js.map +1 -1
  9. package/dist/core/settings-manager.d.ts +12 -1
  10. package/dist/core/settings-manager.d.ts.map +1 -1
  11. package/dist/core/settings-manager.js +44 -0
  12. package/dist/core/settings-manager.js.map +1 -1
  13. package/dist/core/settings-types.d.ts +8 -0
  14. package/dist/core/settings-types.d.ts.map +1 -1
  15. package/dist/core/settings-types.js.map +1 -1
  16. package/dist/core/tools/webfetch.d.ts +2 -0
  17. package/dist/core/tools/webfetch.d.ts.map +1 -1
  18. package/dist/core/tools/webfetch.js +5 -4
  19. package/dist/core/tools/webfetch.js.map +1 -1
  20. package/dist/core/tools/websearch.d.ts +2 -0
  21. package/dist/core/tools/websearch.d.ts.map +1 -1
  22. package/dist/core/tools/websearch.js +5 -4
  23. package/dist/core/tools/websearch.js.map +1 -1
  24. package/dist/core/tools/webtools-shared.d.ts +9 -0
  25. package/dist/core/tools/webtools-shared.d.ts.map +1 -1
  26. package/dist/core/tools/webtools-shared.js +28 -0
  27. package/dist/core/tools/webtools-shared.js.map +1 -1
  28. package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
  29. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  30. package/dist/modes/interactive/components/settings-selector.js +27 -1
  31. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  32. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  33. package/dist/modes/interactive/interactive-mode.js +30 -0
  34. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  35. package/dist/modes/interactive/voice/voice-controller.d.ts +18 -0
  36. package/dist/modes/interactive/voice/voice-controller.d.ts.map +1 -1
  37. package/dist/modes/interactive/voice/voice-controller.js +16 -10
  38. package/dist/modes/interactive/voice/voice-controller.js.map +1 -1
  39. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  40. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  41. package/examples/extensions/sandbox/package.json +1 -1
  42. package/examples/extensions/with-deps/package.json +1 -1
  43. package/package.json +4 -4
@@ -57,6 +57,22 @@ import { getAvailableThemes, getAvailableThemesWithPaths, getEditorTheme, getMar
57
57
  import { VoiceController } from "./voice/voice-controller.js";
58
58
  /** Interface for components that can be expanded/collapsed */
59
59
  const DEAD_TERMINAL_ERROR_CODES = new Set(["EIO", "EPIPE", "ENOTCONN"]);
60
+ /**
61
+ * Resolve the effective voice trailing-silence window (ms): env
62
+ * `VOICETOOLS_SILENCE_MS` wins (like `VOICETOOLS_BIN`), otherwise the settings
63
+ * value. Both paths are clamped to 300-10000; a malformed env value falls back to
64
+ * the settings value.
65
+ */
66
+ function resolveVoiceSilenceMs(settingsManager) {
67
+ const envRaw = process.env.VOICETOOLS_SILENCE_MS?.trim();
68
+ if (envRaw) {
69
+ const envValue = Number(envRaw);
70
+ if (Number.isFinite(envValue) && envValue > 0) {
71
+ return Math.min(10000, Math.max(300, Math.floor(envValue)));
72
+ }
73
+ }
74
+ return settingsManager.getVoiceSilenceMs();
75
+ }
60
76
  function isDeadTerminalError(error) {
61
77
  if (!error || typeof error !== "object" || !("code" in error)) {
62
78
  return false;
@@ -355,6 +371,7 @@ export class InteractiveMode {
355
371
  statusContainer: this.statusContainer,
356
372
  sendEditorInput: (data) => this.editor.handleInput(data),
357
373
  showError: (message) => this.showError(message),
374
+ silenceMs: resolveVoiceSilenceMs(this.settingsManager),
358
375
  });
359
376
  const self = this;
360
377
  this.bashExecution = new BashExecutionController({
@@ -2531,6 +2548,10 @@ export class InteractiveMode {
2531
2548
  clearOnShrink: this.settingsManager.getClearOnShrink(),
2532
2549
  showTerminalProgress: this.settingsManager.getShowTerminalProgress(),
2533
2550
  warnings: this.settingsManager.getWarnings(),
2551
+ // Show the effective value: env VOICETOOLS_SILENCE_MS wins for voice;
2552
+ // getWebtoolsTimeoutSecs already folds in HOOCODE_WEBTOOLS_TIMEOUT.
2553
+ voiceSilenceMs: resolveVoiceSilenceMs(this.settingsManager),
2554
+ webtoolsTimeoutSecs: this.settingsManager.getWebtoolsTimeoutSecs(),
2534
2555
  }, {
2535
2556
  onAutoCompactChange: (enabled) => {
2536
2557
  this.session.setAutoCompactionEnabled(enabled);
@@ -2714,6 +2735,15 @@ export class InteractiveMode {
2714
2735
  onWarningsChange: (warnings) => {
2715
2736
  this.settingsManager.setWarnings(warnings);
2716
2737
  },
2738
+ onVoiceSilenceMsChange: (ms) => {
2739
+ this.settingsManager.setVoiceSilenceMs(ms);
2740
+ // Env override still wins; re-resolve so the live value stays consistent.
2741
+ this.voice.setSilenceMs(resolveVoiceSilenceMs(this.settingsManager));
2742
+ },
2743
+ onWebtoolsTimeoutSecsChange: (secs) => {
2744
+ // Persisted; webfetch/websearch pick it up when tools rebuild next session.
2745
+ this.settingsManager.setWebtoolsTimeoutSecs(secs);
2746
+ },
2717
2747
  onCancel: () => {
2718
2748
  done();
2719
2749
  this.ui.requestRender();