@imisbahk/hive 0.1.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 (132) hide show
  1. package/.rocket/ARCHITECTURE.md +7 -0
  2. package/.rocket/README.md +31 -0
  3. package/.rocket/SYMBOLS.md +282 -0
  4. package/.rocket/config.json +18 -0
  5. package/001-local-first-storage.md +43 -0
  6. package/003-memory-architechture.md +71 -0
  7. package/CONTRIBUTING.md +149 -0
  8. package/LICENSE.md +21 -0
  9. package/README.md +146 -0
  10. package/dist/agent/agent.d.ts +32 -0
  11. package/dist/agent/agent.d.ts.map +1 -0
  12. package/dist/agent/agent.js +103 -0
  13. package/dist/agent/agent.js.map +1 -0
  14. package/dist/agent/index.d.ts +3 -0
  15. package/dist/agent/index.d.ts.map +1 -0
  16. package/dist/agent/index.js +2 -0
  17. package/dist/agent/index.js.map +1 -0
  18. package/dist/cli/commands/chat.d.ts +12 -0
  19. package/dist/cli/commands/chat.d.ts.map +1 -0
  20. package/dist/cli/commands/chat.js +117 -0
  21. package/dist/cli/commands/chat.js.map +1 -0
  22. package/dist/cli/commands/config.d.ts +7 -0
  23. package/dist/cli/commands/config.d.ts.map +1 -0
  24. package/dist/cli/commands/config.js +234 -0
  25. package/dist/cli/commands/config.js.map +1 -0
  26. package/dist/cli/commands/init.d.ts +8 -0
  27. package/dist/cli/commands/init.d.ts.map +1 -0
  28. package/dist/cli/commands/init.js +186 -0
  29. package/dist/cli/commands/init.js.map +1 -0
  30. package/dist/cli/commands/nuke.d.ts +4 -0
  31. package/dist/cli/commands/nuke.d.ts.map +1 -0
  32. package/dist/cli/commands/nuke.js +47 -0
  33. package/dist/cli/commands/nuke.js.map +1 -0
  34. package/dist/cli/commands/status.d.ts +4 -0
  35. package/dist/cli/commands/status.d.ts.map +1 -0
  36. package/dist/cli/commands/status.js +114 -0
  37. package/dist/cli/commands/status.js.map +1 -0
  38. package/dist/cli/helpers/providerPrompts.d.ts +13 -0
  39. package/dist/cli/helpers/providerPrompts.d.ts.map +1 -0
  40. package/dist/cli/helpers/providerPrompts.js +138 -0
  41. package/dist/cli/helpers/providerPrompts.js.map +1 -0
  42. package/dist/cli/index.d.ts +3 -0
  43. package/dist/cli/index.d.ts.map +1 -0
  44. package/dist/cli/index.js +31 -0
  45. package/dist/cli/index.js.map +1 -0
  46. package/dist/providers/anthropic.d.ts +10 -0
  47. package/dist/providers/anthropic.d.ts.map +1 -0
  48. package/dist/providers/anthropic.js +108 -0
  49. package/dist/providers/anthropic.js.map +1 -0
  50. package/dist/providers/api-key.d.ts +3 -0
  51. package/dist/providers/api-key.d.ts.map +1 -0
  52. package/dist/providers/api-key.js +15 -0
  53. package/dist/providers/api-key.js.map +1 -0
  54. package/dist/providers/base.d.ts +41 -0
  55. package/dist/providers/base.d.ts.map +1 -0
  56. package/dist/providers/base.js +157 -0
  57. package/dist/providers/base.js.map +1 -0
  58. package/dist/providers/google.d.ts +6 -0
  59. package/dist/providers/google.d.ts.map +1 -0
  60. package/dist/providers/google.js +19 -0
  61. package/dist/providers/google.js.map +1 -0
  62. package/dist/providers/groq.d.ts +6 -0
  63. package/dist/providers/groq.d.ts.map +1 -0
  64. package/dist/providers/groq.js +19 -0
  65. package/dist/providers/groq.js.map +1 -0
  66. package/dist/providers/index.d.ts +4 -0
  67. package/dist/providers/index.d.ts.map +1 -0
  68. package/dist/providers/index.js +58 -0
  69. package/dist/providers/index.js.map +1 -0
  70. package/dist/providers/mistral.d.ts +6 -0
  71. package/dist/providers/mistral.d.ts.map +1 -0
  72. package/dist/providers/mistral.js +19 -0
  73. package/dist/providers/mistral.js.map +1 -0
  74. package/dist/providers/ollama.d.ts +6 -0
  75. package/dist/providers/ollama.d.ts.map +1 -0
  76. package/dist/providers/ollama.js +20 -0
  77. package/dist/providers/ollama.js.map +1 -0
  78. package/dist/providers/openai-compatible.d.ts +22 -0
  79. package/dist/providers/openai-compatible.d.ts.map +1 -0
  80. package/dist/providers/openai-compatible.js +36 -0
  81. package/dist/providers/openai-compatible.js.map +1 -0
  82. package/dist/providers/openai.d.ts +6 -0
  83. package/dist/providers/openai.d.ts.map +1 -0
  84. package/dist/providers/openai.js +19 -0
  85. package/dist/providers/openai.js.map +1 -0
  86. package/dist/providers/openrouter.d.ts +6 -0
  87. package/dist/providers/openrouter.d.ts.map +1 -0
  88. package/dist/providers/openrouter.js +19 -0
  89. package/dist/providers/openrouter.js.map +1 -0
  90. package/dist/providers/together.d.ts +6 -0
  91. package/dist/providers/together.d.ts.map +1 -0
  92. package/dist/providers/together.js +19 -0
  93. package/dist/providers/together.js.map +1 -0
  94. package/dist/storage/db.d.ts +48 -0
  95. package/dist/storage/db.d.ts.map +1 -0
  96. package/dist/storage/db.js +298 -0
  97. package/dist/storage/db.js.map +1 -0
  98. package/dist/storage/schema.d.ts +43 -0
  99. package/dist/storage/schema.d.ts.map +1 -0
  100. package/dist/storage/schema.js +69 -0
  101. package/dist/storage/schema.js.map +1 -0
  102. package/index.md +16 -0
  103. package/package.json +48 -0
  104. package/prompts/Behaviour.md +23 -0
  105. package/prompts/Code.md +12 -0
  106. package/prompts/Memory.md +11 -0
  107. package/prompts/System.md +6 -0
  108. package/releases/v1/v0.1/RELEASE-NOTES.md +0 -0
  109. package/src/agent/agent.ts +155 -0
  110. package/src/agent/index.ts +2 -0
  111. package/src/cli/commands/chat.ts +169 -0
  112. package/src/cli/commands/config.ts +282 -0
  113. package/src/cli/commands/init.ts +242 -0
  114. package/src/cli/commands/nuke.ts +60 -0
  115. package/src/cli/commands/status.ts +147 -0
  116. package/src/cli/helpers/providerPrompts.ts +192 -0
  117. package/src/cli/index.ts +38 -0
  118. package/src/providers/anthropic.ts +146 -0
  119. package/src/providers/api-key.ts +23 -0
  120. package/src/providers/base.ts +234 -0
  121. package/src/providers/google.ts +21 -0
  122. package/src/providers/groq.ts +21 -0
  123. package/src/providers/index.ts +65 -0
  124. package/src/providers/mistral.ts +21 -0
  125. package/src/providers/ollama.ts +22 -0
  126. package/src/providers/openai-compatible.ts +58 -0
  127. package/src/providers/openai.ts +21 -0
  128. package/src/providers/openrouter.ts +21 -0
  129. package/src/providers/together.ts +21 -0
  130. package/src/storage/db.ts +476 -0
  131. package/src/storage/schema.ts +116 -0
  132. package/tsconfig.json +51 -0
@@ -0,0 +1,19 @@
1
+ import { resolveProviderApiKey } from "./api-key.js";
2
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
3
+ const DEFAULT_GROQ_BASE_URL = "https://api.groq.com/openai/v1";
4
+ const DEFAULT_GROQ_MODEL = "llama-3.3-70b-versatile";
5
+ export class GroqProvider extends OpenAICompatibleProvider {
6
+ constructor(apiKey) {
7
+ super({
8
+ name: "groq",
9
+ baseUrl: process.env.GROQ_BASE_URL ?? DEFAULT_GROQ_BASE_URL,
10
+ apiKey,
11
+ defaultModel: process.env.GROQ_MODEL ?? DEFAULT_GROQ_MODEL,
12
+ });
13
+ }
14
+ }
15
+ export async function createGroqProvider() {
16
+ const apiKey = await resolveProviderApiKey("groq", "GROQ_API_KEY");
17
+ return new GroqProvider(apiKey);
18
+ }
19
+ //# sourceMappingURL=groq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groq.js","sourceRoot":"","sources":["../../src/providers/groq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,qBAAqB,GAAG,gCAAgC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAErD,MAAM,OAAO,YAAa,SAAQ,wBAAwB;IACxD,YAAY,MAAe;QACzB,KAAK,CAAC;YACJ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,qBAAqB;YAC3D,MAAM;YACN,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,kBAAkB;SAC3D,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnE,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Provider, type ProviderName } from "./base.js";
2
+ export declare function createProvider(name?: string): Promise<Provider>;
3
+ export declare function getDefaultModelForProvider(name: ProviderName): string;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AAUnB,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuBrE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAqBrE"}
@@ -0,0 +1,58 @@
1
+ import { normalizeProviderName, } from "./base.js";
2
+ import { createAnthropicProvider } from "./anthropic.js";
3
+ import { createGoogleProvider } from "./google.js";
4
+ import { createGroqProvider } from "./groq.js";
5
+ import { createMistralProvider } from "./mistral.js";
6
+ import { createOllamaProvider } from "./ollama.js";
7
+ import { createOpenAIProvider } from "./openai.js";
8
+ import { createOpenRouterProvider } from "./openrouter.js";
9
+ import { createTogetherProvider } from "./together.js";
10
+ export async function createProvider(name) {
11
+ const resolvedName = normalizeProviderName(name ?? process.env.HIVE_PROVIDER);
12
+ switch (resolvedName) {
13
+ case "openai":
14
+ return createOpenAIProvider();
15
+ case "anthropic":
16
+ return createAnthropicProvider();
17
+ case "ollama":
18
+ return createOllamaProvider();
19
+ case "groq":
20
+ return createGroqProvider();
21
+ case "mistral":
22
+ return createMistralProvider();
23
+ case "google":
24
+ return createGoogleProvider();
25
+ case "openrouter":
26
+ return createOpenRouterProvider();
27
+ case "together":
28
+ return createTogetherProvider();
29
+ default:
30
+ return assertNever(resolvedName);
31
+ }
32
+ }
33
+ export function getDefaultModelForProvider(name) {
34
+ switch (name) {
35
+ case "openai":
36
+ return process.env.OPENAI_MODEL ?? "gpt-4o-mini";
37
+ case "anthropic":
38
+ return process.env.ANTHROPIC_MODEL ?? "claude-3-5-haiku-latest";
39
+ case "ollama":
40
+ return process.env.OLLAMA_MODEL ?? "llama3.2";
41
+ case "groq":
42
+ return process.env.GROQ_MODEL ?? "llama-3.3-70b-versatile";
43
+ case "mistral":
44
+ return process.env.MISTRAL_MODEL ?? "mistral-small-latest";
45
+ case "google":
46
+ return process.env.GOOGLE_MODEL ?? "gemini-2.0-flash";
47
+ case "openrouter":
48
+ return process.env.OPENROUTER_MODEL ?? "openai/gpt-4o-mini";
49
+ case "together":
50
+ return process.env.TOGETHER_MODEL ?? "meta-llama/Llama-3.3-70B-Instruct-Turbo";
51
+ default:
52
+ return assertNever(name);
53
+ }
54
+ }
55
+ function assertNever(value) {
56
+ throw new Error(`Unsupported provider: ${String(value)}`);
57
+ }
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAa;IAChD,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAE9E,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,oBAAoB,EAAE,CAAC;QAChC,KAAK,WAAW;YACd,OAAO,uBAAuB,EAAE,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,oBAAoB,EAAE,CAAC;QAChC,KAAK,MAAM;YACT,OAAO,kBAAkB,EAAE,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,qBAAqB,EAAE,CAAC;QACjC,KAAK,QAAQ;YACX,OAAO,oBAAoB,EAAE,CAAC;QAChC,KAAK,YAAY;YACf,OAAO,wBAAwB,EAAE,CAAC;QACpC,KAAK,UAAU;YACb,OAAO,sBAAsB,EAAE,CAAC;QAClC;YACE,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAkB;IAC3D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,aAAa,CAAC;QACnD,KAAK,WAAW;YACd,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAC;QAClE,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,UAAU,CAAC;QAChD,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,yBAAyB,CAAC;QAC7D,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,sBAAsB,CAAC;QAC7D,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,kBAAkB,CAAC;QACxD,KAAK,YAAY;YACf,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,oBAAoB,CAAC;QAC9D,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,yCAAyC,CAAC;QACjF;YACE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
2
+ export declare class MistralProvider extends OpenAICompatibleProvider {
3
+ constructor(apiKey?: string);
4
+ }
5
+ export declare function createMistralProvider(): Promise<MistralProvider>;
6
+ //# sourceMappingURL=mistral.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mistral.d.ts","sourceRoot":"","sources":["../../src/providers/mistral.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,qBAAa,eAAgB,SAAQ,wBAAwB;gBAC/C,MAAM,CAAC,EAAE,MAAM;CAQ5B;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAGtE"}
@@ -0,0 +1,19 @@
1
+ import { resolveProviderApiKey } from "./api-key.js";
2
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
3
+ const DEFAULT_MISTRAL_BASE_URL = "https://api.mistral.ai/v1";
4
+ const DEFAULT_MISTRAL_MODEL = "mistral-small-latest";
5
+ export class MistralProvider extends OpenAICompatibleProvider {
6
+ constructor(apiKey) {
7
+ super({
8
+ name: "mistral",
9
+ baseUrl: process.env.MISTRAL_BASE_URL ?? DEFAULT_MISTRAL_BASE_URL,
10
+ apiKey,
11
+ defaultModel: process.env.MISTRAL_MODEL ?? DEFAULT_MISTRAL_MODEL,
12
+ });
13
+ }
14
+ }
15
+ export async function createMistralProvider() {
16
+ const apiKey = await resolveProviderApiKey("mistral", "MISTRAL_API_KEY");
17
+ return new MistralProvider(apiKey);
18
+ }
19
+ //# sourceMappingURL=mistral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mistral.js","sourceRoot":"","sources":["../../src/providers/mistral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAC7D,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAErD,MAAM,OAAO,eAAgB,SAAQ,wBAAwB;IAC3D,YAAY,MAAe;QACzB,KAAK,CAAC;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,wBAAwB;YACjE,MAAM;YACN,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,qBAAqB;SACjE,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACzE,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
2
+ export declare class OllamaProvider extends OpenAICompatibleProvider {
3
+ constructor(apiKey?: string);
4
+ }
5
+ export declare function createOllamaProvider(): Promise<OllamaProvider>;
6
+ //# sourceMappingURL=ollama.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,qBAAa,cAAe,SAAQ,wBAAwB;gBAC9C,MAAM,CAAC,EAAE,MAAM;CAS5B;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC,CAGpE"}
@@ -0,0 +1,20 @@
1
+ import { resolveProviderApiKey } from "./api-key.js";
2
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
3
+ const DEFAULT_OLLAMA_BASE_URL = "http://localhost:11434/v1";
4
+ const DEFAULT_OLLAMA_MODEL = "llama3.2";
5
+ export class OllamaProvider extends OpenAICompatibleProvider {
6
+ constructor(apiKey) {
7
+ super({
8
+ name: "ollama",
9
+ baseUrl: process.env.OLLAMA_BASE_URL ?? DEFAULT_OLLAMA_BASE_URL,
10
+ apiKey,
11
+ defaultModel: process.env.OLLAMA_MODEL ?? DEFAULT_OLLAMA_MODEL,
12
+ allowMissingApiKey: true,
13
+ });
14
+ }
15
+ }
16
+ export async function createOllamaProvider() {
17
+ const apiKey = await resolveProviderApiKey("ollama", "OLLAMA_API_KEY");
18
+ return new OllamaProvider(apiKey);
19
+ }
20
+ //# sourceMappingURL=ollama.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAC5D,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAExC,MAAM,OAAO,cAAe,SAAQ,wBAAwB;IAC1D,YAAY,MAAe;QACzB,KAAK,CAAC;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,uBAAuB;YAC/D,MAAM;YACN,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,oBAAoB;YAC9D,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACvE,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { type Provider, type ProviderName, type StreamChatRequest } from "./base.js";
2
+ export interface OpenAICompatibleProviderConfig {
3
+ name: ProviderName;
4
+ baseUrl: string;
5
+ defaultModel: string;
6
+ apiKey?: string;
7
+ allowMissingApiKey?: boolean;
8
+ extraHeaders?: Record<string, string>;
9
+ extraBody?: Record<string, unknown>;
10
+ }
11
+ export declare class OpenAICompatibleProvider implements Provider {
12
+ readonly name: ProviderName;
13
+ readonly defaultModel: string;
14
+ private readonly baseUrl;
15
+ private readonly apiKey?;
16
+ private readonly allowMissingApiKey;
17
+ private readonly extraHeaders?;
18
+ private readonly extraBody?;
19
+ constructor(config: OpenAICompatibleProviderConfig);
20
+ streamChat(request: StreamChatRequest): AsyncGenerator<string>;
21
+ }
22
+ //# sourceMappingURL=openai-compatible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/providers/openai-compatible.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAEvB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,qBAAa,wBAAyB,YAAW,QAAQ;IACvD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA0B;gBAEzC,MAAM,EAAE,8BAA8B;IAU3C,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC;CAmBtE"}
@@ -0,0 +1,36 @@
1
+ import { ProviderConfigurationError, streamOpenAICompatibleChat, } from "./base.js";
2
+ export class OpenAICompatibleProvider {
3
+ name;
4
+ defaultModel;
5
+ baseUrl;
6
+ apiKey;
7
+ allowMissingApiKey;
8
+ extraHeaders;
9
+ extraBody;
10
+ constructor(config) {
11
+ this.name = config.name;
12
+ this.baseUrl = config.baseUrl;
13
+ this.apiKey = config.apiKey;
14
+ this.defaultModel = config.defaultModel;
15
+ this.allowMissingApiKey = config.allowMissingApiKey ?? false;
16
+ this.extraHeaders = config.extraHeaders;
17
+ this.extraBody = config.extraBody;
18
+ }
19
+ async *streamChat(request) {
20
+ if (!this.allowMissingApiKey && !this.apiKey) {
21
+ throw new ProviderConfigurationError(`Provider \"${this.name}\" is missing an API key.`);
22
+ }
23
+ yield* streamOpenAICompatibleChat({
24
+ provider: this.name,
25
+ baseUrl: this.baseUrl,
26
+ apiKey: this.apiKey,
27
+ model: request.model ?? this.defaultModel,
28
+ messages: request.messages,
29
+ temperature: request.temperature,
30
+ maxTokens: request.maxTokens,
31
+ extraHeaders: this.extraHeaders,
32
+ extraBody: this.extraBody,
33
+ });
34
+ }
35
+ }
36
+ //# sourceMappingURL=openai-compatible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../src/providers/openai-compatible.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAI1B,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AAYnB,MAAM,OAAO,wBAAwB;IAC1B,IAAI,CAAe;IACnB,YAAY,CAAS;IAEb,OAAO,CAAS;IAChB,MAAM,CAAU;IAChB,kBAAkB,CAAU;IAC5B,YAAY,CAA0B;IACtC,SAAS,CAA2B;IAErD,YAAY,MAAsC;QAChD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,CAAC,UAAU,CAAC,OAA0B;QAC1C,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,IAAI,0BAA0B,CAClC,cAAc,IAAI,CAAC,IAAI,2BAA2B,CACnD,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,CAAC,0BAA0B,CAAC;YAChC,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY;YACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
2
+ export declare class OpenAIProvider extends OpenAICompatibleProvider {
3
+ constructor(apiKey?: string);
4
+ }
5
+ export declare function createOpenAIProvider(): Promise<OpenAIProvider>;
6
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,qBAAa,cAAe,SAAQ,wBAAwB;gBAC9C,MAAM,CAAC,EAAE,MAAM;CAQ5B;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC,CAGpE"}
@@ -0,0 +1,19 @@
1
+ import { resolveProviderApiKey } from "./api-key.js";
2
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
3
+ const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
4
+ const DEFAULT_OPENAI_MODEL = "gpt-4o-mini";
5
+ export class OpenAIProvider extends OpenAICompatibleProvider {
6
+ constructor(apiKey) {
7
+ super({
8
+ name: "openai",
9
+ baseUrl: process.env.OPENAI_BASE_URL ?? DEFAULT_OPENAI_BASE_URL,
10
+ apiKey,
11
+ defaultModel: process.env.OPENAI_MODEL ?? DEFAULT_OPENAI_MODEL,
12
+ });
13
+ }
14
+ }
15
+ export async function createOpenAIProvider() {
16
+ const apiKey = await resolveProviderApiKey("openai", "OPENAI_API_KEY");
17
+ return new OpenAIProvider(apiKey);
18
+ }
19
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAC5D,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAE3C,MAAM,OAAO,cAAe,SAAQ,wBAAwB;IAC1D,YAAY,MAAe;QACzB,KAAK,CAAC;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,uBAAuB;YAC/D,MAAM;YACN,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,oBAAoB;SAC/D,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACvE,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
2
+ export declare class OpenRouterProvider extends OpenAICompatibleProvider {
3
+ constructor(apiKey?: string);
4
+ }
5
+ export declare function createOpenRouterProvider(): Promise<OpenRouterProvider>;
6
+ //# sourceMappingURL=openrouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,qBAAa,kBAAmB,SAAQ,wBAAwB;gBAClD,MAAM,CAAC,EAAE,MAAM;CAQ5B;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAG5E"}
@@ -0,0 +1,19 @@
1
+ import { resolveProviderApiKey } from "./api-key.js";
2
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
3
+ const DEFAULT_OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1";
4
+ const DEFAULT_OPENROUTER_MODEL = "openai/gpt-4o-mini";
5
+ export class OpenRouterProvider extends OpenAICompatibleProvider {
6
+ constructor(apiKey) {
7
+ super({
8
+ name: "openrouter",
9
+ baseUrl: process.env.OPENROUTER_BASE_URL ?? DEFAULT_OPENROUTER_BASE_URL,
10
+ apiKey,
11
+ defaultModel: process.env.OPENROUTER_MODEL ?? DEFAULT_OPENROUTER_MODEL,
12
+ });
13
+ }
14
+ }
15
+ export async function createOpenRouterProvider() {
16
+ const apiKey = await resolveProviderApiKey("openrouter", "OPENROUTER_API_KEY");
17
+ return new OpenRouterProvider(apiKey);
18
+ }
19
+ //# sourceMappingURL=openrouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AACnE,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAEtD,MAAM,OAAO,kBAAmB,SAAQ,wBAAwB;IAC9D,YAAY,MAAe;QACzB,KAAK,CAAC;YACJ,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,2BAA2B;YACvE,MAAM;YACN,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,wBAAwB;SACvE,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IAC/E,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
2
+ export declare class TogetherProvider extends OpenAICompatibleProvider {
3
+ constructor(apiKey?: string);
4
+ }
5
+ export declare function createTogetherProvider(): Promise<TogetherProvider>;
6
+ //# sourceMappingURL=together.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"together.d.ts","sourceRoot":"","sources":["../../src/providers/together.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,qBAAa,gBAAiB,SAAQ,wBAAwB;gBAChD,MAAM,CAAC,EAAE,MAAM;CAQ5B;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAGxE"}
@@ -0,0 +1,19 @@
1
+ import { resolveProviderApiKey } from "./api-key.js";
2
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
3
+ const DEFAULT_TOGETHER_BASE_URL = "https://api.together.xyz/v1";
4
+ const DEFAULT_TOGETHER_MODEL = "meta-llama/Llama-3.3-70B-Instruct-Turbo";
5
+ export class TogetherProvider extends OpenAICompatibleProvider {
6
+ constructor(apiKey) {
7
+ super({
8
+ name: "together",
9
+ baseUrl: process.env.TOGETHER_BASE_URL ?? DEFAULT_TOGETHER_BASE_URL,
10
+ apiKey,
11
+ defaultModel: process.env.TOGETHER_MODEL ?? DEFAULT_TOGETHER_MODEL,
12
+ });
13
+ }
14
+ }
15
+ export async function createTogetherProvider() {
16
+ const apiKey = await resolveProviderApiKey("together", "TOGETHER_API_KEY");
17
+ return new TogetherProvider(apiKey);
18
+ }
19
+ //# sourceMappingURL=together.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"together.js","sourceRoot":"","sources":["../../src/providers/together.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAChE,MAAM,sBAAsB,GAAG,yCAAyC,CAAC;AAEzE,MAAM,OAAO,gBAAiB,SAAQ,wBAAwB;IAC5D,YAAY,MAAe;QACzB,KAAK,CAAC;YACJ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,yBAAyB;YACnE,MAAM;YACN,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,sBAAsB;SACnE,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC3E,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,48 @@
1
+ import Database from "better-sqlite3";
2
+ import { type AgentRecord, type ConversationRecord, type MessageRecord, type MessageRole } from "./schema.js";
3
+ export type HiveDatabase = Database.Database;
4
+ export type { AgentRecord, ConversationRecord, MessageRecord, MessageRole, MetaRecord, } from "./schema.js";
5
+ export interface UpsertAgentInput {
6
+ name: string;
7
+ provider: string;
8
+ model: string;
9
+ persona: string;
10
+ dob?: string | null;
11
+ location?: string | null;
12
+ profession?: string | null;
13
+ aboutRaw?: string | null;
14
+ agentName?: string | null;
15
+ }
16
+ export interface CreateConversationInput {
17
+ agentId: string;
18
+ title?: string | null;
19
+ }
20
+ export interface AppendMessageInput {
21
+ conversationId: string;
22
+ role: MessageRole;
23
+ content: string;
24
+ }
25
+ export interface UpdatePrimaryAgentProviderModelInput {
26
+ provider: string;
27
+ model: string;
28
+ }
29
+ export declare const HIVE_DIRECTORY_NAME = ".hive";
30
+ export declare const HIVE_DB_FILENAME = "hive.db";
31
+ export declare function getHiveHomeDir(): string;
32
+ export declare function getHiveDatabasePath(): string;
33
+ export declare function openHiveDatabase(databasePath?: string): HiveDatabase;
34
+ export declare function closeHiveDatabase(db: HiveDatabase): void;
35
+ export declare function runMigrations(db: HiveDatabase): void;
36
+ export declare function getMetaValue(db: HiveDatabase, key: string): string | null;
37
+ export declare function setMetaValue(db: HiveDatabase, key: string, value: string): void;
38
+ export declare function isHiveInitialized(db: HiveDatabase): boolean;
39
+ export declare function getPrimaryAgent(db: HiveDatabase): AgentRecord | null;
40
+ export declare function upsertPrimaryAgent(db: HiveDatabase, input: UpsertAgentInput): AgentRecord;
41
+ export declare function updatePrimaryAgentProviderAndModel(db: HiveDatabase, input: UpdatePrimaryAgentProviderModelInput): AgentRecord;
42
+ export declare function updatePrimaryAgentModel(db: HiveDatabase, model: string): AgentRecord;
43
+ export declare function createConversation(db: HiveDatabase, input: CreateConversationInput): ConversationRecord;
44
+ export declare function getConversationById(db: HiveDatabase, conversationId: string): ConversationRecord | null;
45
+ export declare function getLatestConversationForAgent(db: HiveDatabase, agentId: string): ConversationRecord | null;
46
+ export declare function appendMessage(db: HiveDatabase, input: AppendMessageInput): MessageRecord;
47
+ export declare function listMessages(db: HiveDatabase, conversationId: string, limit?: number): MessageRecord[];
48
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/storage/db.ts"],"names":[],"mappings":"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"}