hoomanjs 1.29.2 → 1.31.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 (292) hide show
  1. package/README.md +216 -69
  2. package/dist/acp/acp-agent.d.ts +5 -5
  3. package/dist/acp/acp-agent.js +55 -54
  4. package/dist/acp/acp-agent.js.map +1 -1
  5. package/dist/acp/approvals.d.ts +3 -3
  6. package/dist/acp/approvals.js +73 -115
  7. package/dist/acp/approvals.js.map +1 -1
  8. package/dist/acp/sessions/options.js +11 -25
  9. package/dist/acp/sessions/options.js.map +1 -1
  10. package/dist/acp/utils/tool-kind.js +1 -5
  11. package/dist/acp/utils/tool-kind.js.map +1 -1
  12. package/dist/chat/app.d.ts +5 -1
  13. package/dist/chat/app.js +469 -234
  14. package/dist/chat/app.js.map +1 -1
  15. package/dist/chat/approvals.d.ts +4 -3
  16. package/dist/chat/approvals.js +11 -45
  17. package/dist/chat/approvals.js.map +1 -1
  18. package/dist/chat/components/BottomChrome.d.ts +52 -0
  19. package/dist/chat/components/BottomChrome.js +12 -0
  20. package/dist/chat/components/BottomChrome.js.map +1 -0
  21. package/dist/chat/components/ChatMessage.d.ts +2 -2
  22. package/dist/chat/components/ChatMessage.js +5 -6
  23. package/dist/chat/components/ChatMessage.js.map +1 -1
  24. package/dist/chat/components/ChromePicker.d.ts +17 -0
  25. package/dist/chat/components/ChromePicker.js +35 -0
  26. package/dist/chat/components/ChromePicker.js.map +1 -0
  27. package/dist/chat/components/EmptyChatBanner.js +2 -3
  28. package/dist/chat/components/EmptyChatBanner.js.map +1 -1
  29. package/dist/chat/components/StatusBar.d.ts +1 -2
  30. package/dist/chat/components/StatusBar.js +8 -5
  31. package/dist/chat/components/StatusBar.js.map +1 -1
  32. package/dist/chat/components/ThoughtEvent.d.ts +7 -0
  33. package/dist/chat/components/ThoughtEvent.js +30 -0
  34. package/dist/chat/components/ThoughtEvent.js.map +1 -0
  35. package/dist/chat/components/TodoPanel.js +52 -2
  36. package/dist/chat/components/TodoPanel.js.map +1 -1
  37. package/dist/chat/components/ToolEvent.js +1 -1
  38. package/dist/chat/components/ToolEvent.js.map +1 -1
  39. package/dist/chat/components/Transcript.d.ts +11 -2
  40. package/dist/chat/components/Transcript.js +78 -4
  41. package/dist/chat/components/Transcript.js.map +1 -1
  42. package/dist/chat/components/markdown/BlockRenderer.js +7 -7
  43. package/dist/chat/components/markdown/BlockRenderer.js.map +1 -1
  44. package/dist/chat/components/markdown/MarkdownMessage.js +1 -1
  45. package/dist/chat/components/markdown/MarkdownMessage.js.map +1 -1
  46. package/dist/chat/components/shared.js +2 -0
  47. package/dist/chat/components/shared.js.map +1 -1
  48. package/dist/chat/index.d.ts +4 -0
  49. package/dist/chat/index.js +21 -4
  50. package/dist/chat/index.js.map +1 -1
  51. package/dist/chat/steering.d.ts +20 -0
  52. package/dist/chat/steering.js +67 -0
  53. package/dist/chat/steering.js.map +1 -0
  54. package/dist/chat/types.d.ts +5 -1
  55. package/dist/cli.js +91 -13
  56. package/dist/cli.js.map +1 -1
  57. package/dist/configure/app.d.ts +1 -1
  58. package/dist/configure/app.js +581 -303
  59. package/dist/configure/app.js.map +1 -1
  60. package/dist/configure/components/MenuScreen.d.ts +4 -2
  61. package/dist/configure/components/MenuScreen.js +33 -6
  62. package/dist/configure/components/MenuScreen.js.map +1 -1
  63. package/dist/configure/components/SelectMenuItem.d.ts +1 -0
  64. package/dist/configure/components/SelectMenuItem.js +19 -10
  65. package/dist/configure/components/SelectMenuItem.js.map +1 -1
  66. package/dist/configure/index.js +4 -2
  67. package/dist/configure/index.js.map +1 -1
  68. package/dist/configure/types.d.ts +14 -12
  69. package/dist/configure/utils.d.ts +2 -0
  70. package/dist/configure/utils.js +21 -2
  71. package/dist/configure/utils.js.map +1 -1
  72. package/dist/core/agent/index.d.ts +3 -3
  73. package/dist/core/agent/index.js +26 -29
  74. package/dist/core/agent/index.js.map +1 -1
  75. package/dist/core/agent/mode-aware-tool-registry.js +2 -1
  76. package/dist/core/agent/mode-aware-tool-registry.js.map +1 -1
  77. package/dist/core/approvals/intervention.d.ts +34 -0
  78. package/dist/core/approvals/intervention.js +94 -0
  79. package/dist/core/approvals/intervention.js.map +1 -0
  80. package/dist/core/config.d.ts +49 -28
  81. package/dist/core/config.js +85 -26
  82. package/dist/core/config.js.map +1 -1
  83. package/dist/core/context/index.d.ts +11 -2
  84. package/dist/core/context/index.js +54 -4
  85. package/dist/core/context/index.js.map +1 -1
  86. package/dist/core/context/model-extractor.d.ts +13 -0
  87. package/dist/core/context/model-extractor.js +98 -0
  88. package/dist/core/context/model-extractor.js.map +1 -0
  89. package/dist/core/index.d.ts +6 -2
  90. package/dist/core/index.js +6 -1
  91. package/dist/core/index.js.map +1 -1
  92. package/dist/core/mcp/config.d.ts +28 -0
  93. package/dist/core/mcp/index.d.ts +5 -3
  94. package/dist/core/mcp/index.js +4 -2
  95. package/dist/core/mcp/index.js.map +1 -1
  96. package/dist/core/mcp/manager.d.ts +14 -1
  97. package/dist/core/mcp/manager.js +76 -4
  98. package/dist/core/mcp/manager.js.map +1 -1
  99. package/dist/core/mcp/oauth/callback-server.d.ts +16 -0
  100. package/dist/core/mcp/oauth/callback-server.js +134 -0
  101. package/dist/core/mcp/oauth/callback-server.js.map +1 -0
  102. package/dist/core/mcp/oauth/identity.d.ts +9 -0
  103. package/dist/core/mcp/oauth/identity.js +31 -0
  104. package/dist/core/mcp/oauth/identity.js.map +1 -0
  105. package/dist/core/mcp/oauth/index.d.ts +11 -0
  106. package/dist/core/mcp/oauth/index.js +15 -0
  107. package/dist/core/mcp/oauth/index.js.map +1 -0
  108. package/dist/core/mcp/oauth/provider.d.ts +43 -0
  109. package/dist/core/mcp/oauth/provider.js +203 -0
  110. package/dist/core/mcp/oauth/provider.js.map +1 -0
  111. package/dist/core/mcp/oauth/service.d.ts +29 -0
  112. package/dist/core/mcp/oauth/service.js +139 -0
  113. package/dist/core/mcp/oauth/service.js.map +1 -0
  114. package/dist/core/mcp/oauth/store.d.ts +14 -0
  115. package/dist/core/mcp/oauth/store.js +86 -0
  116. package/dist/core/mcp/oauth/store.js.map +1 -0
  117. package/dist/core/mcp/oauth/types.d.ts +87 -0
  118. package/dist/core/mcp/oauth/types.js +45 -0
  119. package/dist/core/mcp/oauth/types.js.map +1 -0
  120. package/dist/core/mcp/types.d.ts +56 -0
  121. package/dist/core/mcp/types.js +3 -0
  122. package/dist/core/mcp/types.js.map +1 -1
  123. package/dist/core/memory/file-store.d.ts +24 -0
  124. package/dist/core/memory/file-store.js +151 -0
  125. package/dist/core/memory/file-store.js.map +1 -0
  126. package/dist/core/memory/index.d.ts +2 -5
  127. package/dist/core/memory/index.js +2 -3
  128. package/dist/core/memory/index.js.map +1 -1
  129. package/dist/core/memory/runtime.d.ts +4 -0
  130. package/dist/core/memory/runtime.js +37 -0
  131. package/dist/core/memory/runtime.js.map +1 -0
  132. package/dist/core/models/anthropic.js +24 -1
  133. package/dist/core/models/anthropic.js.map +1 -1
  134. package/dist/core/models/moonshot.js +33 -1
  135. package/dist/core/models/moonshot.js.map +1 -1
  136. package/dist/core/modes/definitions.d.ts +19 -0
  137. package/dist/core/modes/definitions.js +99 -0
  138. package/dist/core/modes/definitions.js.map +1 -0
  139. package/dist/core/modes/index.d.ts +3 -0
  140. package/dist/core/modes/index.js +4 -0
  141. package/dist/core/modes/index.js.map +1 -0
  142. package/dist/core/modes/registry.d.ts +9 -0
  143. package/dist/core/modes/registry.js +57 -0
  144. package/dist/core/modes/registry.js.map +1 -0
  145. package/dist/core/modes/schema.d.ts +5 -0
  146. package/dist/core/modes/schema.js +6 -0
  147. package/dist/core/modes/schema.js.map +1 -0
  148. package/dist/core/prompts/agents/research.md +8 -8
  149. package/dist/core/prompts/bundled.d.ts +3 -0
  150. package/dist/core/prompts/bundled.js +14 -0
  151. package/dist/core/prompts/bundled.js.map +1 -0
  152. package/dist/core/prompts/environment.d.ts +0 -1
  153. package/dist/core/prompts/environment.js +0 -2
  154. package/dist/core/prompts/environment.js.map +1 -1
  155. package/dist/core/prompts/index.d.ts +1 -4
  156. package/dist/core/prompts/index.js +1 -7
  157. package/dist/core/prompts/index.js.map +1 -1
  158. package/dist/core/prompts/modes/agent.md +3 -0
  159. package/dist/core/prompts/modes/ask.md +5 -3
  160. package/dist/core/prompts/modes/plan.md +2 -2
  161. package/dist/core/prompts/runtime.d.ts +10 -0
  162. package/dist/core/prompts/runtime.js +136 -0
  163. package/dist/core/prompts/runtime.js.map +1 -0
  164. package/dist/core/prompts/session-mode-appendix.d.ts +3 -9
  165. package/dist/core/prompts/session-mode-appendix.js +32 -69
  166. package/dist/core/prompts/session-mode-appendix.js.map +1 -1
  167. package/dist/core/prompts/static/environment.md +2 -2
  168. package/dist/core/prompts/static/filesystem.md +2 -0
  169. package/dist/core/prompts/static/init.md +25 -0
  170. package/dist/core/prompts/static/memory.md +9 -123
  171. package/dist/core/prompts/static/planning.md +1 -1
  172. package/dist/core/prompts/static/skills.md +6 -5
  173. package/dist/core/prompts/static/subagents.md +2 -2
  174. package/dist/core/prompts/static/web-search.md +2 -1
  175. package/dist/core/prompts/system.js +12 -29
  176. package/dist/core/prompts/system.js.map +1 -1
  177. package/dist/core/skills/built-in/hooman-config/SKILL.md +105 -32
  178. package/dist/core/skills/built-in/hooman-skills/SKILL.md +1 -1
  179. package/dist/core/skills/index.d.ts +1 -0
  180. package/dist/core/skills/index.js +1 -0
  181. package/dist/core/skills/index.js.map +1 -1
  182. package/dist/core/skills/plugin.d.ts +7 -0
  183. package/dist/core/skills/plugin.js +40 -0
  184. package/dist/core/skills/plugin.js.map +1 -0
  185. package/dist/core/state/agent-app-state.d.ts +1 -1
  186. package/dist/core/state/agent-app-state.js +1 -1
  187. package/dist/core/state/session-mode.d.ts +2 -9
  188. package/dist/core/state/session-mode.js +4 -12
  189. package/dist/core/state/session-mode.js.map +1 -1
  190. package/dist/core/state/tool-approvals.d.ts +4 -8
  191. package/dist/core/state/tool-approvals.js +14 -76
  192. package/dist/core/state/tool-approvals.js.map +1 -1
  193. package/dist/core/subagents/index.d.ts +3 -0
  194. package/dist/core/subagents/index.js +4 -0
  195. package/dist/core/subagents/index.js.map +1 -0
  196. package/dist/core/subagents/research.d.ts +16 -0
  197. package/dist/core/subagents/research.js +58 -0
  198. package/dist/core/subagents/research.js.map +1 -0
  199. package/dist/core/{agents → subagents}/runner.d.ts +6 -5
  200. package/dist/core/{agents → subagents}/runner.js +8 -10
  201. package/dist/core/subagents/runner.js.map +1 -0
  202. package/dist/core/{agents/tools.d.ts → subagents/tool.d.ts} +6 -6
  203. package/dist/core/{agents/tools.js → subagents/tool.js} +14 -16
  204. package/dist/core/subagents/tool.js.map +1 -0
  205. package/dist/core/tools/filesystem.d.ts +1 -0
  206. package/dist/core/tools/filesystem.js +38 -3
  207. package/dist/core/tools/filesystem.js.map +1 -1
  208. package/dist/core/tools/index.d.ts +1 -1
  209. package/dist/core/tools/index.js +1 -1
  210. package/dist/core/tools/index.js.map +1 -1
  211. package/dist/core/tools/plan.js +2 -6
  212. package/dist/core/tools/plan.js.map +1 -1
  213. package/dist/core/tools/time.js +1 -1
  214. package/dist/core/tools/time.js.map +1 -1
  215. package/dist/core/utils/browser.d.ts +1 -0
  216. package/dist/core/utils/browser.js +25 -0
  217. package/dist/core/utils/browser.js.map +1 -0
  218. package/dist/core/utils/paths.d.ts +2 -4
  219. package/dist/core/utils/paths.js +2 -4
  220. package/dist/core/utils/paths.js.map +1 -1
  221. package/dist/daemon/approvals.d.ts +2 -2
  222. package/dist/daemon/approvals.js +51 -56
  223. package/dist/daemon/approvals.js.map +1 -1
  224. package/dist/daemon/index.js +9 -6
  225. package/dist/daemon/index.js.map +1 -1
  226. package/dist/exec/approvals.d.ts +2 -4
  227. package/dist/exec/approvals.js +16 -48
  228. package/dist/exec/approvals.js.map +1 -1
  229. package/dist/index.d.ts +13 -18
  230. package/dist/index.js +9 -11
  231. package/dist/index.js.map +1 -1
  232. package/package.json +5 -18
  233. package/dist/chat/components/ScrollView.d.ts +0 -106
  234. package/dist/chat/components/ScrollView.js +0 -80
  235. package/dist/chat/components/ScrollView.js.map +0 -1
  236. package/dist/chat/components/TranscriptViewport.d.ts +0 -9
  237. package/dist/chat/components/TranscriptViewport.js +0 -124
  238. package/dist/chat/components/TranscriptViewport.js.map +0 -1
  239. package/dist/core/agents/definitions.d.ts +0 -12
  240. package/dist/core/agents/definitions.js +0 -20
  241. package/dist/core/agents/definitions.js.map +0 -1
  242. package/dist/core/agents/index.d.ts +0 -4
  243. package/dist/core/agents/index.js +0 -5
  244. package/dist/core/agents/index.js.map +0 -1
  245. package/dist/core/agents/registry.d.ts +0 -5
  246. package/dist/core/agents/registry.js +0 -84
  247. package/dist/core/agents/registry.js.map +0 -1
  248. package/dist/core/agents/runner.js.map +0 -1
  249. package/dist/core/agents/tools.js.map +0 -1
  250. package/dist/core/inference/embedder.d.ts +0 -26
  251. package/dist/core/inference/embedder.js +0 -85
  252. package/dist/core/inference/embedder.js.map +0 -1
  253. package/dist/core/inference/index.d.ts +0 -9
  254. package/dist/core/inference/index.js +0 -13
  255. package/dist/core/inference/index.js.map +0 -1
  256. package/dist/core/inference/loader.d.ts +0 -16
  257. package/dist/core/inference/loader.js +0 -129
  258. package/dist/core/inference/loader.js.map +0 -1
  259. package/dist/core/inference/reranker.d.ts +0 -28
  260. package/dist/core/inference/reranker.js +0 -66
  261. package/dist/core/inference/reranker.js.map +0 -1
  262. package/dist/core/memory/brain.d.ts +0 -25
  263. package/dist/core/memory/brain.js +0 -137
  264. package/dist/core/memory/brain.js.map +0 -1
  265. package/dist/core/memory/database.d.ts +0 -4
  266. package/dist/core/memory/database.js +0 -87
  267. package/dist/core/memory/database.js.map +0 -1
  268. package/dist/core/memory/tools.d.ts +0 -16
  269. package/dist/core/memory/tools.js +0 -110
  270. package/dist/core/memory/tools.js.map +0 -1
  271. package/dist/core/memory/types.d.ts +0 -11
  272. package/dist/core/memory/types.js +0 -2
  273. package/dist/core/memory/types.js.map +0 -1
  274. package/dist/core/prompts/skills.d.ts +0 -15
  275. package/dist/core/prompts/skills.js +0 -92
  276. package/dist/core/prompts/skills.js.map +0 -1
  277. package/dist/core/prompts/static/wiki.md +0 -25
  278. package/dist/core/wiki/converters.d.ts +0 -12
  279. package/dist/core/wiki/converters.js +0 -73
  280. package/dist/core/wiki/converters.js.map +0 -1
  281. package/dist/core/wiki/database.d.ts +0 -39
  282. package/dist/core/wiki/database.js +0 -177
  283. package/dist/core/wiki/database.js.map +0 -1
  284. package/dist/core/wiki/index.d.ts +0 -7
  285. package/dist/core/wiki/index.js +0 -5
  286. package/dist/core/wiki/index.js.map +0 -1
  287. package/dist/core/wiki/storage.d.ts +0 -38
  288. package/dist/core/wiki/storage.js +0 -206
  289. package/dist/core/wiki/storage.js.map +0 -1
  290. package/dist/core/wiki/tools.d.ts +0 -5
  291. package/dist/core/wiki/tools.js +0 -32
  292. package/dist/core/wiki/tools.js.map +0 -1
@@ -1,38 +0,0 @@
1
- import { type ConvertFileOptions } from "./converters.js";
2
- import { type WikiDocRecord } from "./database.js";
3
- export type WikiListResult = {
4
- page: number;
5
- pageSize: number;
6
- /** Total documents in the wiki (all pages). */
7
- total: number;
8
- items: WikiDocRecord[];
9
- };
10
- export type WikiSearchMatch = {
11
- id: string;
12
- file_name: string;
13
- md_file_path: string;
14
- original_file_path: string;
15
- original_mime_type: string;
16
- chunk_pos: number;
17
- content: string;
18
- distance: number | null;
19
- score: number | null;
20
- source: "vec";
21
- };
22
- export type WikiAddInput = Omit<ConvertFileOptions, "filePath"> & {
23
- filePath: string;
24
- };
25
- export declare class Storage {
26
- private readonly root;
27
- private readonly db;
28
- private readonly embedder;
29
- private readonly reranker;
30
- private constructor();
31
- static create(): Storage;
32
- warmup(): Promise<void>;
33
- list(page?: number, pageSize?: number): Promise<WikiListResult>;
34
- add(input: WikiAddInput): Promise<WikiDocRecord>;
35
- remove(id: string): Promise<boolean>;
36
- search(q: string, k?: number): Promise<WikiSearchMatch[]>;
37
- close(): Promise<void>;
38
- }
@@ -1,206 +0,0 @@
1
- import crypto from "node:crypto";
2
- import fs from "node:fs/promises";
3
- import path from "node:path";
4
- import { DEFAULT_EMBED_MODEL, DEFAULT_RERANK_MODEL } from "../config.js";
5
- import { embed, GgufEmbedder, GgufReranker } from "../inference/index.js";
6
- import { modelsCachePath, wikiDbPath, wikiPath } from "../utils/paths.js";
7
- import { convertFileToMarkdown, } from "./converters.js";
8
- import { Database, } from "./database.js";
9
- const RAW_DIR = "raw";
10
- const PAGES_DIR = "pages";
11
- const MAX_CHUNK_CHARS = 2400;
12
- const VEC_K_MULTIPLIER = 5;
13
- function normalizeText(value) {
14
- return value.replace(/\r\n/g, "\n");
15
- }
16
- function fileHash(content) {
17
- return crypto.createHash("sha256").update(content, "utf8").digest("hex");
18
- }
19
- function chunkMarkdown(body) {
20
- const trimmed = body.trim();
21
- if (!trimmed) {
22
- return [""];
23
- }
24
- const paragraphs = trimmed
25
- .split(/\n\n+/)
26
- .map((p) => p.trim())
27
- .filter(Boolean);
28
- const out = [];
29
- let cur = "";
30
- for (const p of paragraphs) {
31
- if (cur.length + p.length + 2 <= MAX_CHUNK_CHARS) {
32
- cur = cur ? `${cur}\n\n${p}` : p;
33
- continue;
34
- }
35
- if (cur) {
36
- out.push(cur);
37
- }
38
- if (p.length > MAX_CHUNK_CHARS) {
39
- for (let i = 0; i < p.length; i += MAX_CHUNK_CHARS) {
40
- out.push(p.slice(i, i + MAX_CHUNK_CHARS));
41
- }
42
- cur = "";
43
- }
44
- else {
45
- cur = p;
46
- }
47
- }
48
- if (cur) {
49
- out.push(cur);
50
- }
51
- return out.length > 0 ? out : [""];
52
- }
53
- function safeFileStem(inputName) {
54
- return inputName.replace(/[^\w.-]+/g, "_");
55
- }
56
- function buildChunkId(docId, index, hash) {
57
- return crypto
58
- .createHash("sha256")
59
- .update(`${docId}\0${index}\0${hash}`, "utf8")
60
- .digest("hex");
61
- }
62
- function toSearchMatch(row, distance) {
63
- const dist = typeof distance === "number" && Number.isFinite(distance) ? distance : null;
64
- return {
65
- id: row.chunk_id,
66
- file_name: row.file_name,
67
- md_file_path: row.md_path,
68
- original_file_path: row.original_path,
69
- original_mime_type: row.original_mime_type,
70
- chunk_pos: row.chunk_index,
71
- content: row.content,
72
- distance: dist,
73
- score: dist == null ? null : Math.max(0, Math.min(1, 1 - dist)),
74
- source: "vec",
75
- };
76
- }
77
- export class Storage {
78
- root;
79
- db;
80
- embedder;
81
- reranker;
82
- constructor(root, db, embedder, reranker) {
83
- this.root = root;
84
- this.db = db;
85
- this.embedder = embedder;
86
- this.reranker = reranker;
87
- }
88
- static create() {
89
- const root = wikiPath();
90
- const db = new Database(wikiDbPath());
91
- const cacheDir = modelsCachePath();
92
- const embedder = new GgufEmbedder({
93
- modelUri: DEFAULT_EMBED_MODEL,
94
- cacheDir,
95
- });
96
- const reranker = new GgufReranker({
97
- modelUri: DEFAULT_RERANK_MODEL,
98
- cacheDir,
99
- });
100
- return new Storage(root, db, embedder, reranker);
101
- }
102
- async warmup() {
103
- await this.embedder.warmup();
104
- await this.reranker.warmup();
105
- await fs.mkdir(path.join(this.root, RAW_DIR), { recursive: true });
106
- await fs.mkdir(path.join(this.root, PAGES_DIR), { recursive: true });
107
- }
108
- async list(page = 1, pageSize = 20) {
109
- const p = Number.isFinite(page) && page > 0 ? Math.floor(page) : 1;
110
- const ps = Number.isFinite(pageSize) && pageSize > 0 ? Math.floor(pageSize) : 20;
111
- return {
112
- page: p,
113
- pageSize: ps,
114
- total: this.db.countDocs(),
115
- items: this.db.listDocs(p, ps),
116
- };
117
- }
118
- async add(input) {
119
- const converted = await convertFileToMarkdown({
120
- ...input,
121
- filePath: input.filePath,
122
- });
123
- const now = Date.now();
124
- const docId = crypto.randomUUID();
125
- const sourceExt = path.extname(converted.originalPath).toLowerCase();
126
- const sourceName = safeFileStem(path.basename(converted.originalPath));
127
- const mdStem = safeFileStem(path.basename(sourceName, sourceExt));
128
- const rawAbs = path.resolve(this.root, RAW_DIR, `${docId}-${sourceName}`);
129
- const mdAbs = path.resolve(this.root, PAGES_DIR, `${docId}-${mdStem}.md`);
130
- await fs.copyFile(converted.originalPath, rawAbs);
131
- const markdown = normalizeText(converted.markdown);
132
- await fs.writeFile(mdAbs, markdown, "utf8");
133
- const hash = fileHash(markdown);
134
- const existing = this.db.getDocByOriginalPath(rawAbs);
135
- if (existing) {
136
- this.db.removeDoc(existing.doc_id);
137
- }
138
- const chunks = chunkMarkdown(markdown);
139
- const embeddings = [];
140
- const rows = [];
141
- for (let i = 0; i < chunks.length; i += 1) {
142
- const text = chunks[i];
143
- const chunkId = buildChunkId(docId, i, hash);
144
- const embedding = await this.embedder.embedDocument(text, converted.fileName);
145
- this.db.prepare(this.embedder.resolvedModelUri, embedding.length);
146
- embeddings.push(embedding);
147
- rows.push({ chunk_id: chunkId, chunk_index: i, content: text });
148
- }
149
- const doc = {
150
- doc_id: docId,
151
- file_name: converted.fileName,
152
- md_path: mdAbs,
153
- original_path: rawAbs,
154
- original_mime_type: converted.mimeType,
155
- content_hash: hash,
156
- updated_at_ms: now,
157
- };
158
- this.db.addDocAndChunks(doc, rows, embeddings);
159
- return doc;
160
- }
161
- async remove(id) {
162
- const doc = this.db.getDocById(id);
163
- if (!doc) {
164
- return false;
165
- }
166
- this.db.removeDoc(id);
167
- await fs.rm(doc.md_path, { force: true }).catch(() => undefined);
168
- await fs.rm(doc.original_path, { force: true }).catch(() => undefined);
169
- return true;
170
- }
171
- async search(q, k = 5) {
172
- const query = q.trim();
173
- if (!query) {
174
- return [];
175
- }
176
- await this.embedder.warmup();
177
- const queryEmbedding = Float32Array.from(await embed(this.embedder, query, "query"));
178
- this.db.prepare(this.embedder.resolvedModelUri, queryEmbedding.length);
179
- const limit = Number.isFinite(k) && k > 0 ? Math.floor(k) : 5;
180
- const vecHits = this.db.vectorSearch(queryEmbedding, Math.max(1, limit * VEC_K_MULTIPLIER));
181
- if (vecHits.length === 0) {
182
- return [];
183
- }
184
- const orderedIds = vecHits.map((h) => h.chunk_id);
185
- const distanceById = new Map(vecHits.map((h) => [h.chunk_id, h.distance]));
186
- const rows = this.db.getSearchRowsByChunkIds(orderedIds);
187
- const rowById = new Map(rows.map((r) => [r.chunk_id, r]));
188
- const candidates = orderedIds
189
- .map((id) => {
190
- const row = rowById.get(id);
191
- if (!row) {
192
- return null;
193
- }
194
- return toSearchMatch(row, distanceById.get(id));
195
- })
196
- .filter((x) => x != null);
197
- const ranked = await this.reranker.rerank(query, candidates, (m) => m.content);
198
- return ranked.slice(0, limit);
199
- }
200
- async close() {
201
- await this.embedder.dispose();
202
- await this.reranker.dispose();
203
- this.db.close();
204
- }
205
- }
206
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/core/wiki/storage.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { JSONValue } from "@strands-agents/sdk";
2
- export declare function createWikiTools(): Promise<import("@strands-agents/sdk").InvokableTool<{
3
- query: string;
4
- k?: number | undefined;
5
- }, JSONValue>[]>;
@@ -1,32 +0,0 @@
1
- import { tool } from "@strands-agents/sdk";
2
- import { z } from "zod";
3
- import { Storage } from "./storage.js";
4
- const DEFAULT_SEARCH_LIMIT = 5;
5
- const MAX_SEARCH_LIMIT = 20;
6
- function toJsonValue(value) {
7
- return JSON.parse(JSON.stringify(value));
8
- }
9
- export async function createWikiTools() {
10
- const storage = Storage.create();
11
- await storage.warmup();
12
- return [
13
- tool({
14
- name: "wiki_search",
15
- description: "Search the available knowledge base when you lack specifics about the user's question. Runs semantic search over indexed material; returns snippets plus paths so you can read_file for full context when needed.",
16
- inputSchema: z.object({
17
- query: z.string().min(1),
18
- k: z.number().int().min(1).max(MAX_SEARCH_LIMIT).optional(),
19
- }),
20
- callback: async (input) => {
21
- const k = input.k ?? DEFAULT_SEARCH_LIMIT;
22
- const matches = await storage.search(input.query, k);
23
- return toJsonValue({
24
- query: input.query,
25
- count: matches.length,
26
- matches,
27
- });
28
- },
29
- }),
30
- ];
31
- }
32
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/core/wiki/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAc,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACjC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IAEvB,OAAO;QACL,IAAI,CAAC;YACH,IAAI,EAAE,aAAa;YACnB,WAAW,EACT,mNAAmN;YACrN,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;aAC5D,CAAC;YACF,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,oBAAoB,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrD,OAAO,WAAW,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,KAAK,EAAE,OAAO,CAAC,MAAM;oBACrB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;SACF,CAAC;KACH,CAAC;AACJ,CAAC"}