@imisbahk/hive 0.1.6 → 0.2.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.
Files changed (120) hide show
  1. package/AUTHORS.md +5 -0
  2. package/README.md +18 -5
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/agent.js +20 -8
  5. package/dist/agent/agent.js.map +1 -1
  6. package/dist/agent/hive-ctx.d.ts.map +1 -1
  7. package/dist/agent/hive-ctx.js +1 -2
  8. package/dist/agent/hive-ctx.js.map +1 -1
  9. package/dist/agent/passive-memory.d.ts +13 -0
  10. package/dist/agent/passive-memory.d.ts.map +1 -0
  11. package/dist/agent/passive-memory.js +212 -0
  12. package/dist/agent/passive-memory.js.map +1 -0
  13. package/dist/agent/prompt-auto-update.d.ts +3 -0
  14. package/dist/agent/prompt-auto-update.d.ts.map +1 -0
  15. package/dist/agent/prompt-auto-update.js +78 -0
  16. package/dist/agent/prompt-auto-update.js.map +1 -0
  17. package/dist/agent/prompts.d.ts.map +1 -1
  18. package/dist/agent/prompts.js +1 -3
  19. package/dist/agent/prompts.js.map +1 -1
  20. package/dist/browser/browser.d.ts +1 -0
  21. package/dist/browser/browser.d.ts.map +1 -1
  22. package/dist/browser/browser.js +24 -15
  23. package/dist/browser/browser.js.map +1 -1
  24. package/dist/cli/commands/chat.d.ts.map +1 -1
  25. package/dist/cli/commands/chat.js +194 -68
  26. package/dist/cli/commands/chat.js.map +1 -1
  27. package/dist/cli/commands/config.d.ts.map +1 -1
  28. package/dist/cli/commands/config.js +5 -6
  29. package/dist/cli/commands/config.js.map +1 -1
  30. package/dist/cli/commands/daemon-service.d.ts +17 -0
  31. package/dist/cli/commands/daemon-service.d.ts.map +1 -0
  32. package/dist/cli/commands/daemon-service.js +281 -0
  33. package/dist/cli/commands/daemon-service.js.map +1 -0
  34. package/dist/cli/commands/daemon.d.ts +13 -0
  35. package/dist/cli/commands/daemon.d.ts.map +1 -0
  36. package/dist/cli/commands/daemon.js +480 -0
  37. package/dist/cli/commands/daemon.js.map +1 -0
  38. package/dist/cli/commands/doctor.d.ts.map +1 -1
  39. package/dist/cli/commands/doctor.js +38 -3
  40. package/dist/cli/commands/doctor.js.map +1 -1
  41. package/dist/cli/commands/init.d.ts.map +1 -1
  42. package/dist/cli/commands/init.js +172 -2
  43. package/dist/cli/commands/init.js.map +1 -1
  44. package/dist/cli/commands/memory.d.ts.map +1 -1
  45. package/dist/cli/commands/memory.js +21 -1
  46. package/dist/cli/commands/memory.js.map +1 -1
  47. package/dist/cli/commands/nuke.d.ts.map +1 -1
  48. package/dist/cli/commands/nuke.js +189 -3
  49. package/dist/cli/commands/nuke.js.map +1 -1
  50. package/dist/cli/commands/status.d.ts.map +1 -1
  51. package/dist/cli/commands/status.js +117 -4
  52. package/dist/cli/commands/status.js.map +1 -1
  53. package/dist/cli/commands/update.d.ts +4 -0
  54. package/dist/cli/commands/update.d.ts.map +1 -0
  55. package/dist/cli/commands/update.js +96 -0
  56. package/dist/cli/commands/update.js.map +1 -0
  57. package/dist/cli/helpers/providerPrompts.d.ts.map +1 -1
  58. package/dist/cli/helpers/providerPrompts.js +2 -10
  59. package/dist/cli/helpers/providerPrompts.js.map +1 -1
  60. package/dist/cli/helpers/version.d.ts +5 -0
  61. package/dist/cli/helpers/version.d.ts.map +1 -0
  62. package/dist/cli/helpers/version.js +65 -0
  63. package/dist/cli/helpers/version.js.map +1 -0
  64. package/dist/cli/index.js +6 -1
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/cli/theme.d.ts +1 -0
  67. package/dist/cli/theme.d.ts.map +1 -1
  68. package/dist/cli/theme.js +12 -3
  69. package/dist/cli/theme.js.map +1 -1
  70. package/dist/daemon/index.d.ts +13 -0
  71. package/dist/daemon/index.d.ts.map +1 -0
  72. package/dist/daemon/index.js +405 -0
  73. package/dist/daemon/index.js.map +1 -0
  74. package/dist/daemon/watcher.d.ts +12 -0
  75. package/dist/daemon/watcher.d.ts.map +1 -0
  76. package/dist/daemon/watcher.js +264 -0
  77. package/dist/daemon/watcher.js.map +1 -0
  78. package/dist/providers/anthropic.d.ts.map +1 -1
  79. package/dist/providers/anthropic.js +1 -3
  80. package/dist/providers/anthropic.js.map +1 -1
  81. package/dist/providers/api-key.d.ts.map +1 -1
  82. package/dist/providers/api-key.js +1 -3
  83. package/dist/providers/api-key.js.map +1 -1
  84. package/dist/providers/index.d.ts.map +1 -1
  85. package/dist/providers/index.js +1 -1
  86. package/dist/providers/index.js.map +1 -1
  87. package/dist/providers/openai-compatible.d.ts.map +1 -1
  88. package/dist/providers/openai-compatible.js.map +1 -1
  89. package/dist/providers/resilience.d.ts.map +1 -1
  90. package/dist/providers/resilience.js.map +1 -1
  91. package/dist/storage/db.d.ts +3 -0
  92. package/dist/storage/db.d.ts.map +1 -1
  93. package/dist/storage/db.js +36 -16
  94. package/dist/storage/db.js.map +1 -1
  95. package/dist/storage/schema.d.ts +2 -1
  96. package/dist/storage/schema.d.ts.map +1 -1
  97. package/dist/storage/schema.js +9 -1
  98. package/dist/storage/schema.js.map +1 -1
  99. package/package.json +70 -61
  100. package/prompts/Behaviour.md +23 -0
  101. package/prompts/Browser.md +13 -0
  102. package/prompts/Code.md +12 -0
  103. package/prompts/Debugging.md +15 -0
  104. package/prompts/Execution.md +13 -0
  105. package/prompts/Memory.md +11 -0
  106. package/prompts/Planning.md +13 -0
  107. package/prompts/Product.md +14 -0
  108. package/prompts/Review.md +15 -0
  109. package/prompts/Safety.md +12 -0
  110. package/prompts/Search.md +14 -0
  111. package/prompts/System.md +6 -0
  112. package/prompts/Tools.md +14 -0
  113. package/prompts/Writing.md +13 -0
  114. package/.gitattributes +0 -7
  115. package/.rocket/README.md +0 -31
  116. package/.rocket/config.json +0 -18
  117. package/Aborted +0 -0
  118. package/bun.lock +0 -554
  119. package/master +0 -0
  120. /package/{LICENSE.md → LICENSE} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/agent/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,EAGL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAchC,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAa,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,MAAM,MAAM,GAA8C;QACxD;YACE,KAAK,EAAE,wBAAwB;YAC/B,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;SAC7B;QACD;YACE,KAAK,EAAE,wBAAwB;YAC/B,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;SACpC;QACD;YACE,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;gBACxB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtD,CAAC,CAAC,uBAAuB;SAC5B;QACD;YACE,KAAK,EAAE,6BAA6B;YACpC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;SAClC;QACD;YACE,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,kBAAkB;SAC1D;QACD;YACE,KAAK,EAAE,2CAA2C;YAClD,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,CAAC;SAC7C;QACD;YACE,KAAK,EAAE,+BAA+B;YACtC,OAAO,EAAE,SAAS,EAAE;SACrB;KACF,CAAC;IAEF,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,YAAY,CAAC;QACjC,MAAM;QACN,QAAQ;QACR,SAAS;KACV,CAAC,CAAC;IAEH,OAAO;QACL,cAAc,EAAE;YACd;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,aAAa,CAAC,OAAO;aAC/B;SACF;QACD,eAAe,EAAE,aAAa,CAAC,eAAe;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAkB;IACvC,MAAM,IAAI,GAAG;QACX,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QACzC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;QACtC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;QACrD,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI;QAC3D,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;KACrD,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAE9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,QAAkB;IACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,iBAAiB,CAAC,gBAAwB;IACjD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,+BAA+B,CAAC;QACzC,CAAC;QAED,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAI,YAAY,GAAG,CAAC;YACpC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,gBAAgB,CAAC;QAC9E,CAAC,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kCAAkC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7C,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,YAAY,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,MAAiD;IACvE,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;SAClD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAIrB;IACC,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IAE9B,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,kBAAkB,EAAE,CAAC;QAC9E,eAAe,CAAC,GAAG,EAAE,CAAC;QACtB,OAAO,GAAG,cAAc,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACf,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACf,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACf;gBACE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC5B,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC;aACzC;YACD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACf,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACf,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;SAChB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,kBAAkB,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IAChE,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAC/D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/agent/prompts.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export interface SearchResult {
6
6
  export declare function openPage(url: string): Promise<string>;
7
7
  export declare function extractContent(url: string): Promise<string>;
8
8
  export declare function search(query: string): Promise<SearchResult[]>;
9
+ export declare function closeBrowser(): Promise<void>;
9
10
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser/browser.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3D;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjE;AAED,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmDnE"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser/browser.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3D;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjE;AAED,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAiDnE;AAmBD,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAQlD"}
@@ -1,4 +1,3 @@
1
- import { chromium } from "playwright";
2
1
  import fetch from "node-fetch";
3
2
  const MAX_CONTENT_CHARS = 8000;
4
3
  const SEARCH_RESULT_LIMIT = 5;
@@ -9,6 +8,7 @@ const DEFAULT_REQUEST_HEADERS = {
9
8
  "accept-language": "en-US,en;q=0.9",
10
9
  "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
11
10
  };
11
+ let browserPromise = null;
12
12
  export async function openPage(url) {
13
13
  try {
14
14
  return await openPageWithBrowser(url);
@@ -27,9 +27,9 @@ export async function search(query) {
27
27
  }
28
28
  let browserResults = [];
29
29
  try {
30
- const browser = await launchBrowser();
30
+ const browser = await getBrowser();
31
+ const page = await browser.newPage();
31
32
  try {
32
- const page = await browser.newPage();
33
33
  const searchUrls = [
34
34
  `https://duckduckgo.com/html/?q=${encodeURIComponent(trimmedQuery)}`,
35
35
  `https://www.google.com/search?q=${encodeURIComponent(trimmedQuery)}&hl=en&num=10&pws=0`,
@@ -55,7 +55,7 @@ export async function search(query) {
55
55
  }
56
56
  }
57
57
  finally {
58
- await browser.close();
58
+ await page.close().catch(() => { });
59
59
  }
60
60
  }
61
61
  catch {
@@ -68,6 +68,7 @@ export async function search(query) {
68
68
  return fallbackResults.slice(0, SEARCH_RESULT_LIMIT);
69
69
  }
70
70
  async function launchBrowser() {
71
+ const { chromium } = await import("playwright");
71
72
  try {
72
73
  return await chromium.launch({ headless: true });
73
74
  }
@@ -75,16 +76,30 @@ async function launchBrowser() {
75
76
  return chromium.launch({ headless: true, channel: "chrome" });
76
77
  }
77
78
  }
79
+ async function getBrowser() {
80
+ if (!browserPromise) {
81
+ browserPromise = launchBrowser();
82
+ }
83
+ return browserPromise;
84
+ }
85
+ export async function closeBrowser() {
86
+ if (!browserPromise) {
87
+ return;
88
+ }
89
+ const browser = await browserPromise;
90
+ browserPromise = null;
91
+ await browser.close().catch(() => { });
92
+ }
78
93
  async function openPageWithBrowser(url) {
79
- const browser = await launchBrowser();
94
+ const browser = await getBrowser();
95
+ const page = await browser.newPage();
80
96
  try {
81
- const page = await browser.newPage();
82
97
  await page.goto(url, { waitUntil: "domcontentloaded", timeout: BROWSER_TIMEOUT_MS });
83
98
  const html = await page.content();
84
99
  return extractReadableText(html);
85
100
  }
86
101
  finally {
87
- await browser.close();
102
+ await page.close().catch(() => { });
88
103
  }
89
104
  }
90
105
  async function openPageWithHttp(url) {
@@ -278,13 +293,7 @@ function extractReadableText(html) {
278
293
  const prioritized = firstCapture(withoutNoise, /<main\b[^>]*>([\s\S]*?)<\/main>/i) ??
279
294
  firstCapture(withoutNoise, /<article\b[^>]*>([\s\S]*?)<\/article>/i) ??
280
295
  withoutNoise;
281
- const withoutLayout = stripSections(prioritized, [
282
- "nav",
283
- "header",
284
- "footer",
285
- "aside",
286
- "form",
287
- ]);
296
+ const withoutLayout = stripSections(prioritized, ["nav", "header", "footer", "aside", "form"]);
288
297
  const text = cleanupText(withoutLayout);
289
298
  if (text.length <= MAX_CONTENT_CHARS) {
290
299
  return text;
@@ -319,7 +328,7 @@ function decodeHtmlEntities(value) {
319
328
  amp: "&",
320
329
  lt: "<",
321
330
  gt: ">",
322
- quot: "\"",
331
+ quot: '"',
323
332
  apos: "'",
324
333
  nbsp: " ",
325
334
  };
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser/browser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDpC,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;CACzC;AAwPD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAa1D;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CA6Nf"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDpC,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;CACzC;AAiQD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAa1D;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAmPf"}
@@ -1,17 +1,19 @@
1
1
  import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { createConnection } from "node:net";
2
3
  import { join } from "node:path";
3
4
  import { stdin, stdout } from "node:process";
4
5
  import * as readline from "node:readline";
5
6
  import { createInterface } from "node:readline/promises";
6
7
  import { spawnSync } from "node:child_process";
7
8
  import chalk from "chalk";
8
- import fetch from "node-fetch";
9
9
  import { RUNTIME_SYSTEM_GUARDRAILS, buildBrowserAugmentedPrompt, HiveAgent, } from "../../agent/agent.js";
10
- import { initializeHiveCtxSession, } from "../../agent/hive-ctx.js";
11
- import { closeHiveDatabase, deleteKnowledge, findClosestKnowledge, getPrimaryAgent, getHiveHomeDir, insertKnowledge, listKnowledge, listConversationMessages, listRecentConversations, openHiveDatabase, updateConversationTitle, clearEpisodes, } from "../../storage/db.js";
10
+ import { schedulePassiveMemory } from "../../agent/passive-memory.js";
11
+ import { initializeHiveCtxSession } from "../../agent/hive-ctx.js";
12
+ import { maybeAutoUpdatePromptsOnBoot } from "../../agent/prompt-auto-update.js";
13
+ import { closeHiveDatabase, deleteKnowledge, findClosestKnowledge, getPrimaryAgent, getHiveHomeDir, listAutoKnowledge, insertKnowledge, listKnowledge, listConversationMessages, listRecentConversations, openHiveDatabase, updateConversationTitle, clearEpisodes, } from "../../storage/db.js";
12
14
  import { createProvider, pingProvider } from "../../providers/index.js";
13
15
  import { renderError, renderHiveHeader, renderInfo, renderSeparator, renderSuccess, } from "../ui.js";
14
- import { openPage } from "../../browser/browser.js";
16
+ import { fetchLatestVersion, getLocalVersion, isMinorJump, isVersionNewer, } from "../helpers/version.js";
15
17
  import { runConfigKeyCommandWithOptions, runConfigModelCommandWithOptions, runConfigProviderCommandWithOptions, runConfigShowCommandWithOptions, runConfigThemeCommandWithOptions, } from "./config.js";
16
18
  import { runStatusCommandWithOptions } from "./status.js";
17
19
  import { getTheme } from "../theme.js";
@@ -24,6 +26,7 @@ const COMMAND_HELP_TEXT = [
24
26
  "Commands:",
25
27
  " /help show commands",
26
28
  " /new start a new conversation",
29
+ " /daemon show daemon status",
27
30
  " /remember <fact> save a fact",
28
31
  " /forget <thing> delete closest fact",
29
32
  " /pin <fact> pin fact into context",
@@ -40,6 +43,7 @@ const COMMAND_HELP_TEXT = [
40
43
  " /retry resend last message",
41
44
  " /copy copy last reply",
42
45
  " /hive memory list show knowledge items",
46
+ " /hive memory auto show auto-extracted facts",
43
47
  " /hive memory clear clear episodic memory",
44
48
  " /hive memory show show current persona",
45
49
  " /browse <url> read a webpage",
@@ -54,6 +58,7 @@ const COMMAND_HELP_TEXT = [
54
58
  " /hive config key interactive key setup",
55
59
  " /hive config theme interactive theme setup",
56
60
  " /exit quit",
61
+ " /quit quit",
57
62
  ].join("\n");
58
63
  const HIVE_SHORTCUT_HELP_TEXT = [
59
64
  "Hive shortcuts:",
@@ -61,6 +66,7 @@ const HIVE_SHORTCUT_HELP_TEXT = [
61
66
  " /hive status run hive status",
62
67
  " /hive config show run hive config show",
63
68
  " /hive memory list list knowledge",
69
+ " /hive memory auto list auto facts",
64
70
  " /hive memory clear clear episodes",
65
71
  " /hive memory show show persona",
66
72
  "",
@@ -98,6 +104,11 @@ const COMMAND_SUGGESTIONS = [
98
104
  insertText: "/new",
99
105
  description: "start a new conversation",
100
106
  },
107
+ {
108
+ label: "/daemon",
109
+ insertText: "/daemon",
110
+ description: "show daemon status",
111
+ },
101
112
  {
102
113
  label: "/remember <fact>",
103
114
  insertText: "/remember ",
@@ -266,7 +277,10 @@ export function registerChatCommand(program) {
266
277
  export async function runChatCommand(options, context = {}) {
267
278
  console.clear();
268
279
  renderHiveHeader("Chat");
269
- void checkForUpdates();
280
+ // Only check for updates in interactive chat. One-shot runs should exit fast.
281
+ if (!options.preview && !options.message) {
282
+ void checkForUpdates();
283
+ }
270
284
  const entrypoint = context.entrypoint ?? "chat-command";
271
285
  if (entrypoint === "chat-command") {
272
286
  renderInfo("`hive chat` is deprecated. Run `hive`.");
@@ -277,12 +291,16 @@ export async function runChatCommand(options, context = {}) {
277
291
  }
278
292
  const temperature = parseTemperature(options.temperature);
279
293
  const db = openHiveDatabase();
294
+ let exitRequested = false;
280
295
  try {
281
296
  const profile = getPrimaryAgent(db);
282
297
  if (!profile) {
283
298
  renderError("Hive is not initialized. Run `hive init` first.");
284
299
  return;
285
300
  }
301
+ void maybeAutoUpdatePromptsOnBoot(db, (message) => {
302
+ console.log(chalk.dim(message));
303
+ });
286
304
  let activeProfile = profile;
287
305
  const model = options.model ?? activeProfile.model;
288
306
  const ctxStoragePath = join(getHiveHomeDir(), "ctx");
@@ -327,6 +345,8 @@ export async function runChatCommand(options, context = {}) {
327
345
  lastUserPromptRef.value = options.message;
328
346
  const streamResult = await streamReply({
329
347
  agent,
348
+ provider,
349
+ db,
330
350
  prompt: augmentedMessage,
331
351
  rawPrompt: options.message,
332
352
  conversationId,
@@ -355,6 +375,7 @@ export async function runChatCommand(options, context = {}) {
355
375
  continue;
356
376
  }
357
377
  if (normalizedPrompt === "/exit" || normalizedPrompt === "/quit") {
378
+ exitRequested = true;
358
379
  break;
359
380
  }
360
381
  if (normalizedPrompt === "/new") {
@@ -442,6 +463,8 @@ export async function runChatCommand(options, context = {}) {
442
463
  const systemAddition = getModeSystemPrompt(currentMode);
443
464
  const streamResult = await streamReply({
444
465
  agent,
466
+ provider,
467
+ db,
445
468
  prompt: augmentedPrompt,
446
469
  rawPrompt: prompt,
447
470
  conversationId,
@@ -461,6 +484,29 @@ export async function runChatCommand(options, context = {}) {
461
484
  finally {
462
485
  closeHiveDatabase(db);
463
486
  }
487
+ if (exitRequested) {
488
+ // readPromptWithSuggestions does not use a readline interface in TTY mode, so we
489
+ // explicitly pause stdin and exit to avoid a dangling process.
490
+ process.stdout.write("\n");
491
+ stdin.pause();
492
+ await attemptBrowserShutdown();
493
+ process.exit(0);
494
+ }
495
+ }
496
+ async function attemptBrowserShutdown() {
497
+ // Only pay the cost if the browser module was ever loaded.
498
+ try {
499
+ const browser = (await import("../../browser/browser.js"));
500
+ if (typeof browser.closeBrowser === "function") {
501
+ await Promise.race([
502
+ browser.closeBrowser(),
503
+ new Promise((resolve) => setTimeout(resolve, 200)),
504
+ ]);
505
+ }
506
+ }
507
+ catch {
508
+ // ignore
509
+ }
464
510
  }
465
511
  async function streamReply(input) {
466
512
  const theme = getTheme();
@@ -481,12 +527,12 @@ async function streamReply(input) {
481
527
  let assistantText = "";
482
528
  let ctxSystemPrompt;
483
529
  let ctxTokenCount;
484
- if (input.hiveCtx) {
485
- const context = await input.hiveCtx.build(input.rawPrompt);
486
- ctxSystemPrompt = context.system;
487
- ctxTokenCount = context.tokens;
488
- }
489
530
  try {
531
+ if (input.hiveCtx) {
532
+ const context = await input.hiveCtx.build(input.rawPrompt);
533
+ ctxSystemPrompt = context.system;
534
+ ctxTokenCount = context.tokens;
535
+ }
490
536
  for await (const event of input.agent.chat(input.prompt, {
491
537
  conversationId: activeConversationId,
492
538
  model: input.options.model,
@@ -539,6 +585,14 @@ async function streamReply(input) {
539
585
  if (!activeConversationId) {
540
586
  throw new Error("Conversation state was not returned by the agent.");
541
587
  }
588
+ schedulePassiveMemory({
589
+ db: input.db,
590
+ provider: input.provider,
591
+ model: input.options.model ?? input.agent.getProfile().model,
592
+ userMessage: input.rawPrompt,
593
+ assistantMessage: assistantText,
594
+ hiveCtx: input.hiveCtx,
595
+ });
542
596
  return { conversationId: activeConversationId, assistantText };
543
597
  }
544
598
  function parseTemperature(raw) {
@@ -558,8 +612,8 @@ function formatError(error) {
558
612
  return String(error);
559
613
  }
560
614
  function renderAmberError(message) {
561
- const accent = getTheme().accent;
562
- console.error(accent(`✗ ${message}`));
615
+ const amber = chalk.hex("#ffbf00");
616
+ console.error(amber(`✗ ${message}`));
563
617
  }
564
618
  function resolveAgentName(agentName) {
565
619
  const normalized = agentName?.trim();
@@ -647,6 +701,7 @@ function isUnknownSlashCommand(prompt) {
647
701
  }
648
702
  if (normalized === "/help" ||
649
703
  normalized === "/new" ||
704
+ normalized === "/daemon" ||
650
705
  normalized === "/exit" ||
651
706
  normalized === "/quit" ||
652
707
  normalized === "/remember" ||
@@ -679,6 +734,99 @@ function isUnknownSlashCommand(prompt) {
679
734
  }
680
735
  return true;
681
736
  }
737
+ async function getDaemonStatusLineInline() {
738
+ const home = getHiveHomeDir();
739
+ const portFile = join(home, "daemon.port");
740
+ const pidFile = join(home, "daemon.pid");
741
+ const watcherPidFile = join(home, "daemon.watcher.pid");
742
+ const lockFile = join(home, "daemon.lock");
743
+ const port = readNumberFromFile(portFile) ?? 2718;
744
+ const pid = readNumberFromFile(pidFile);
745
+ const watcherPid = readNumberFromFile(watcherPidFile);
746
+ const watcherRunning = watcherPid !== null && isProcessRunning(watcherPid)
747
+ ? `watcher PID ${watcherPid}`
748
+ : "watcher stopped";
749
+ const live = await getDaemonStatusViaTcp(port);
750
+ if (live) {
751
+ const livePid = typeof live.pid === "number" ? live.pid : pid;
752
+ const uptime = typeof live.uptime === "string" ? live.uptime : "n/a";
753
+ return `daemon running${livePid ? ` (PID ${livePid}, ${uptime})` : ""} · ${watcherRunning}`;
754
+ }
755
+ const heartbeat = getHeartbeatAge(lockFile);
756
+ if (pid !== null && isProcessRunning(pid)) {
757
+ return `daemon running (PID ${pid}) · ${watcherRunning} · heartbeat: ${heartbeat}`;
758
+ }
759
+ return `daemon stopped · ${watcherRunning}`;
760
+ }
761
+ function readNumberFromFile(path) {
762
+ try {
763
+ const raw = readFileSync(path, "utf8").trim();
764
+ const value = Number.parseInt(raw, 10);
765
+ return Number.isFinite(value) ? value : null;
766
+ }
767
+ catch {
768
+ return null;
769
+ }
770
+ }
771
+ function isProcessRunning(pid) {
772
+ try {
773
+ process.kill(pid, 0);
774
+ return true;
775
+ }
776
+ catch {
777
+ return false;
778
+ }
779
+ }
780
+ function getHeartbeatAge(lockFile) {
781
+ const lockTime = readNumberFromFile(lockFile);
782
+ if (lockTime === null) {
783
+ return "unknown";
784
+ }
785
+ const ageMs = Date.now() - lockTime;
786
+ if (!Number.isFinite(ageMs) || ageMs < 0) {
787
+ return "unknown";
788
+ }
789
+ if (ageMs < 60_000) {
790
+ return `${Math.floor(ageMs / 1000)}s ago`;
791
+ }
792
+ return `${Math.floor(ageMs / 60_000)}m ago`;
793
+ }
794
+ function getDaemonStatusViaTcp(port) {
795
+ return new Promise((resolve) => {
796
+ const socket = createConnection({ host: "127.0.0.1", port }, () => {
797
+ socket.write(JSON.stringify({ type: "status" }) + "\n");
798
+ });
799
+ let buffer = "";
800
+ let responded = false;
801
+ socket.on("data", (data) => {
802
+ if (responded) {
803
+ return;
804
+ }
805
+ buffer += data.toString();
806
+ try {
807
+ const response = JSON.parse(buffer);
808
+ responded = true;
809
+ socket.end();
810
+ resolve(response);
811
+ }
812
+ catch {
813
+ // wait for more data
814
+ }
815
+ });
816
+ socket.on("error", () => {
817
+ if (!responded) {
818
+ socket.destroy();
819
+ resolve(null);
820
+ }
821
+ });
822
+ socket.setTimeout(500, () => {
823
+ if (!responded) {
824
+ socket.destroy();
825
+ resolve(null);
826
+ }
827
+ });
828
+ });
829
+ }
682
830
  async function handleHiveShortcut(prompt, options = {}) {
683
831
  const normalized = prompt.trim().replace(/\s+/g, " ");
684
832
  const lower = normalized.toLowerCase();
@@ -722,6 +870,23 @@ async function handleHiveShortcut(prompt, options = {}) {
722
870
  });
723
871
  return "handled";
724
872
  }
873
+ if (subcommand === "memory auto") {
874
+ const db = options.db;
875
+ if (!db) {
876
+ renderError("Memory commands unavailable: database not open.");
877
+ return "handled";
878
+ }
879
+ const autos = listAutoKnowledge(db, 1000);
880
+ if (autos.length === 0) {
881
+ renderInfo("No auto-extracted facts yet.");
882
+ return "handled";
883
+ }
884
+ autos.forEach((row, index) => {
885
+ const ts = row.created_at;
886
+ renderInfo(`${index + 1}. [auto] ${row.content} · ${ts}`);
887
+ });
888
+ return "handled";
889
+ }
725
890
  if (subcommand === "memory clear") {
726
891
  const db = options.db;
727
892
  if (!db) {
@@ -787,8 +952,7 @@ async function handleHiveShortcut(prompt, options = {}) {
787
952
  restoreChatInputAfterInteractiveCommand();
788
953
  return "handled";
789
954
  }
790
- if (subcommand === "init" ||
791
- subcommand === "nuke") {
955
+ if (subcommand === "init" || subcommand === "nuke") {
792
956
  renderInfo(`Run \`hive ${rawSubcommand}\` from your shell. This command is interactive.`);
793
957
  return "handled";
794
958
  }
@@ -814,6 +978,12 @@ async function handleChatSlashCommand(input) {
814
978
  input.lastAssistantRef.value = "";
815
979
  return true;
816
980
  }
981
+ if (lower === "/daemon") {
982
+ const statusLine = await getDaemonStatusLineInline();
983
+ renderInfo(statusLine);
984
+ input.lastUserPromptRef.value = null;
985
+ return true;
986
+ }
817
987
  if (lower.startsWith("/remember")) {
818
988
  const fact = normalized.slice("/remember".length).trim();
819
989
  if (fact.length === 0) {
@@ -964,6 +1134,7 @@ async function handleChatSlashCommand(input) {
964
1134
  return true;
965
1135
  }
966
1136
  try {
1137
+ const { openPage } = await import("../../browser/browser.js");
967
1138
  const content = await openPage(url);
968
1139
  await streamEphemeral({
969
1140
  provider: input.provider,
@@ -1033,6 +1204,8 @@ async function handleChatSlashCommand(input) {
1033
1204
  const systemAddition = getModeSystemPrompt(input.mode);
1034
1205
  const retryResult = await streamReply({
1035
1206
  agent: input.agent,
1207
+ provider: input.provider,
1208
+ db: input.db,
1036
1209
  prompt: userPrompt,
1037
1210
  rawPrompt: userPrompt,
1038
1211
  conversationId: input.conversationId,
@@ -1071,60 +1244,21 @@ function copyToClipboard(text) {
1071
1244
  const result = spawnSync("xclip", ["-selection", "clipboard"], { input: buffer });
1072
1245
  return result.status === 0;
1073
1246
  }
1074
- let cachedLocalVersion = null;
1075
1247
  async function checkForUpdates() {
1076
1248
  try {
1077
- const timeout = new Promise((_, reject) => setTimeout(() => reject(new Error("timeout")), 3000));
1078
- const latest = (await Promise.race([
1079
- fetch("https://registry.npmjs.org/@imisbahk/hive/latest").then((response) => response.json()),
1080
- timeout,
1081
- ]));
1082
- if (!latest?.version || typeof latest.version !== "string") {
1249
+ const latest = await fetchLatestVersion();
1250
+ if (!latest)
1083
1251
  return;
1084
- }
1085
1252
  const localVersion = getLocalVersion();
1086
- if (isVersionNewer(latest.version, localVersion)) {
1253
+ if (isVersionNewer(latest, localVersion) && isMinorJump(latest, localVersion)) {
1087
1254
  const amber = chalk.hex("#ffbf00");
1088
- console.log(amber.dim(`✦ Update available v${localVersion} → npm update -g @imisbahk/hive`));
1255
+ console.log(amber.dim(`✦ Update available v${latest} → run hive update`));
1089
1256
  }
1090
1257
  }
1091
1258
  catch {
1092
1259
  // Silently ignore update check failures.
1093
1260
  }
1094
1261
  }
1095
- function getLocalVersion() {
1096
- if (cachedLocalVersion) {
1097
- return cachedLocalVersion;
1098
- }
1099
- try {
1100
- const raw = readFileSync(new URL("../../../package.json", import.meta.url), "utf8");
1101
- const parsed = JSON.parse(raw);
1102
- if (parsed.version) {
1103
- cachedLocalVersion = parsed.version;
1104
- return cachedLocalVersion;
1105
- }
1106
- }
1107
- catch {
1108
- // ignore
1109
- }
1110
- cachedLocalVersion = "0.0.0";
1111
- return cachedLocalVersion;
1112
- }
1113
- function isVersionNewer(remote, local) {
1114
- const toNumbers = (value) => value.split(".").map((part) => Number.parseInt(part, 10));
1115
- const r = toNumbers(remote);
1116
- const l = toNumbers(local);
1117
- const length = Math.max(r.length, l.length);
1118
- for (let index = 0; index < length; index += 1) {
1119
- const rv = r[index] ?? 0;
1120
- const lv = l[index] ?? 0;
1121
- if (rv > lv)
1122
- return true;
1123
- if (rv < lv)
1124
- return false;
1125
- }
1126
- return false;
1127
- }
1128
1262
  function getCommandSuggestions(input) {
1129
1263
  const normalized = input.trimStart().toLowerCase();
1130
1264
  if (!normalized.startsWith("/")) {
@@ -1206,11 +1340,7 @@ function buildRecapMessages(input) {
1206
1340
  function formatConversationMarkdown(messages, conversationId) {
1207
1341
  const lines = [`# Conversation ${conversationId}`, ""];
1208
1342
  for (const message of messages) {
1209
- const speaker = message.role === "user"
1210
- ? "User"
1211
- : message.role === "assistant"
1212
- ? "Hive"
1213
- : "System";
1343
+ const speaker = message.role === "user" ? "User" : message.role === "assistant" ? "Hive" : "System";
1214
1344
  lines.push(`**${speaker}:**`, message.content, "");
1215
1345
  }
1216
1346
  return lines.join("\n");
@@ -1368,15 +1498,11 @@ async function readPromptWithSuggestions() {
1368
1498
  }
1369
1499
  if (key.name === "up") {
1370
1500
  selectedSuggestionIndex =
1371
- selectedSuggestionIndex > 0
1372
- ? selectedSuggestionIndex - 1
1373
- : suggestions.length - 1;
1501
+ selectedSuggestionIndex > 0 ? selectedSuggestionIndex - 1 : suggestions.length - 1;
1374
1502
  }
1375
1503
  else {
1376
1504
  selectedSuggestionIndex =
1377
- selectedSuggestionIndex < suggestions.length - 1
1378
- ? selectedSuggestionIndex + 1
1379
- : 0;
1505
+ selectedSuggestionIndex < suggestions.length - 1 ? selectedSuggestionIndex + 1 : 0;
1380
1506
  }
1381
1507
  render();
1382
1508
  return;