@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.
- package/AUTHORS.md +5 -0
- package/README.md +18 -5
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +20 -8
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/hive-ctx.d.ts.map +1 -1
- package/dist/agent/hive-ctx.js +1 -2
- package/dist/agent/hive-ctx.js.map +1 -1
- package/dist/agent/passive-memory.d.ts +13 -0
- package/dist/agent/passive-memory.d.ts.map +1 -0
- package/dist/agent/passive-memory.js +212 -0
- package/dist/agent/passive-memory.js.map +1 -0
- package/dist/agent/prompt-auto-update.d.ts +3 -0
- package/dist/agent/prompt-auto-update.d.ts.map +1 -0
- package/dist/agent/prompt-auto-update.js +78 -0
- package/dist/agent/prompt-auto-update.js.map +1 -0
- package/dist/agent/prompts.d.ts.map +1 -1
- package/dist/agent/prompts.js +1 -3
- package/dist/agent/prompts.js.map +1 -1
- package/dist/browser/browser.d.ts +1 -0
- package/dist/browser/browser.d.ts.map +1 -1
- package/dist/browser/browser.js +24 -15
- package/dist/browser/browser.js.map +1 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +194 -68
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +5 -6
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/daemon-service.d.ts +17 -0
- package/dist/cli/commands/daemon-service.d.ts.map +1 -0
- package/dist/cli/commands/daemon-service.js +281 -0
- package/dist/cli/commands/daemon-service.js.map +1 -0
- package/dist/cli/commands/daemon.d.ts +13 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -0
- package/dist/cli/commands/daemon.js +480 -0
- package/dist/cli/commands/daemon.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +38 -3
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +172 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/memory.d.ts.map +1 -1
- package/dist/cli/commands/memory.js +21 -1
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/cli/commands/nuke.d.ts.map +1 -1
- package/dist/cli/commands/nuke.js +189 -3
- package/dist/cli/commands/nuke.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +117 -4
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/update.d.ts +4 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +96 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/helpers/providerPrompts.d.ts.map +1 -1
- package/dist/cli/helpers/providerPrompts.js +2 -10
- package/dist/cli/helpers/providerPrompts.js.map +1 -1
- package/dist/cli/helpers/version.d.ts +5 -0
- package/dist/cli/helpers/version.d.ts.map +1 -0
- package/dist/cli/helpers/version.js +65 -0
- package/dist/cli/helpers/version.js.map +1 -0
- package/dist/cli/index.js +6 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/theme.d.ts +1 -0
- package/dist/cli/theme.d.ts.map +1 -1
- package/dist/cli/theme.js +12 -3
- package/dist/cli/theme.js.map +1 -1
- package/dist/daemon/index.d.ts +13 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +405 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/watcher.d.ts +12 -0
- package/dist/daemon/watcher.d.ts.map +1 -0
- package/dist/daemon/watcher.js +264 -0
- package/dist/daemon/watcher.js.map +1 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +1 -3
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/api-key.d.ts.map +1 -1
- package/dist/providers/api-key.js +1 -3
- package/dist/providers/api-key.js.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai-compatible.d.ts.map +1 -1
- package/dist/providers/openai-compatible.js.map +1 -1
- package/dist/providers/resilience.d.ts.map +1 -1
- package/dist/providers/resilience.js.map +1 -1
- package/dist/storage/db.d.ts +3 -0
- package/dist/storage/db.d.ts.map +1 -1
- package/dist/storage/db.js +36 -16
- package/dist/storage/db.js.map +1 -1
- package/dist/storage/schema.d.ts +2 -1
- package/dist/storage/schema.d.ts.map +1 -1
- package/dist/storage/schema.js +9 -1
- package/dist/storage/schema.js.map +1 -1
- package/package.json +70 -61
- package/prompts/Behaviour.md +23 -0
- package/prompts/Browser.md +13 -0
- package/prompts/Code.md +12 -0
- package/prompts/Debugging.md +15 -0
- package/prompts/Execution.md +13 -0
- package/prompts/Memory.md +11 -0
- package/prompts/Planning.md +13 -0
- package/prompts/Product.md +14 -0
- package/prompts/Review.md +15 -0
- package/prompts/Safety.md +12 -0
- package/prompts/Search.md +14 -0
- package/prompts/System.md +6 -0
- package/prompts/Tools.md +14 -0
- package/prompts/Writing.md +13 -0
- package/.gitattributes +0 -7
- package/.rocket/README.md +0 -31
- package/.rocket/config.json +0 -18
- package/Aborted +0 -0
- package/bun.lock +0 -554
- package/master +0 -0
- /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,
|
|
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":"
|
|
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"}
|
package/dist/browser/browser.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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":"
|
|
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 {
|
|
11
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
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
|
|
562
|
-
console.error(
|
|
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
|
|
1078
|
-
|
|
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
|
|
1253
|
+
if (isVersionNewer(latest, localVersion) && isMinorJump(latest, localVersion)) {
|
|
1087
1254
|
const amber = chalk.hex("#ffbf00");
|
|
1088
|
-
console.log(amber.dim(`✦ Update available v${
|
|
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;
|