@vpxa/kb 0.1.23 → 0.1.25

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 (227) hide show
  1. package/README.md +3 -3
  2. package/package.json +9 -2
  3. package/packages/analyzers/dist/symbol-analyzer.js +5 -5
  4. package/packages/cli/dist/commands/init/adapters.js +1 -1
  5. package/packages/cli/dist/commands/init/constants.d.ts +4 -1
  6. package/packages/cli/dist/commands/init/constants.js +1 -1
  7. package/packages/cli/dist/commands/init/frontmatter.d.ts +54 -0
  8. package/packages/cli/dist/commands/init/frontmatter.js +2 -0
  9. package/packages/cli/dist/commands/init/index.js +4 -4
  10. package/packages/cli/dist/commands/init/manifest.d.ts +71 -0
  11. package/packages/cli/dist/commands/init/manifest.js +1 -0
  12. package/packages/cli/dist/commands/init/scaffold.d.ts +28 -5
  13. package/packages/cli/dist/commands/init/scaffold.js +1 -1
  14. package/packages/cli/dist/commands/init/templates.js +38 -9
  15. package/packages/cli/dist/commands/init/user.d.ts +1 -1
  16. package/packages/cli/dist/commands/init/user.js +4 -4
  17. package/packages/cli/dist/commands/system.js +2 -2
  18. package/packages/cli/dist/kb-init.js +1 -1
  19. package/packages/core/dist/errors.d.ts +2 -2
  20. package/packages/core/dist/errors.js +1 -1
  21. package/packages/core/dist/logger.d.ts +2 -1
  22. package/packages/core/dist/logger.js +1 -1
  23. package/packages/core/dist/types.d.ts +6 -0
  24. package/packages/dashboard/dist/assets/index-9ysCkze9.js +21 -0
  25. package/packages/dashboard/dist/assets/index-9ysCkze9.js.map +1 -0
  26. package/packages/dashboard/dist/assets/index-CHpVij2M.css +1 -0
  27. package/packages/dashboard/dist/index.html +18 -0
  28. package/packages/elicitation/dist/__tests__/build.test.d.ts +1 -0
  29. package/packages/elicitation/dist/__tests__/build.test.js +35 -0
  30. package/packages/elicitation/dist/__tests__/fields.test.d.ts +1 -0
  31. package/packages/elicitation/dist/__tests__/fields.test.js +81 -0
  32. package/packages/elicitation/dist/__tests__/normalize.test.d.ts +1 -0
  33. package/packages/elicitation/dist/__tests__/normalize.test.js +60 -0
  34. package/packages/elicitation/dist/build.d.ts +13 -0
  35. package/packages/elicitation/dist/build.js +23 -0
  36. package/packages/elicitation/dist/fields.d.ts +41 -0
  37. package/packages/elicitation/dist/fields.js +62 -0
  38. package/packages/elicitation/dist/index.d.ts +10 -0
  39. package/packages/elicitation/dist/index.js +12 -0
  40. package/packages/elicitation/dist/normalize.d.ts +15 -0
  41. package/packages/elicitation/dist/normalize.js +31 -0
  42. package/packages/elicitation/dist/types.d.ts +85 -0
  43. package/packages/elicitation/dist/types.js +8 -0
  44. package/packages/kb-client/dist/direct-client.d.ts +37 -0
  45. package/packages/kb-client/dist/direct-client.js +1 -0
  46. package/packages/kb-client/dist/index.d.ts +5 -0
  47. package/packages/kb-client/dist/index.js +1 -0
  48. package/packages/kb-client/dist/mcp-client.d.ts +19 -0
  49. package/packages/kb-client/dist/mcp-client.js +4 -0
  50. package/packages/kb-client/dist/parsers.d.ts +35 -0
  51. package/packages/kb-client/dist/parsers.js +2 -0
  52. package/packages/kb-client/dist/types.d.ts +62 -0
  53. package/packages/kb-client/dist/types.js +1 -0
  54. package/packages/present/dist/index.html +384 -0
  55. package/packages/server/dist/completions.d.ts +14 -0
  56. package/packages/server/dist/completions.js +1 -0
  57. package/packages/server/dist/config.js +1 -1
  58. package/packages/server/dist/dashboard-static.d.ts +27 -0
  59. package/packages/server/dist/dashboard-static.js +1 -0
  60. package/packages/server/dist/elicitor.d.ts +18 -0
  61. package/packages/server/dist/elicitor.js +1 -0
  62. package/packages/server/dist/index.js +1 -1
  63. package/packages/server/dist/mcp-logging.js +1 -1
  64. package/packages/server/dist/output-schemas.d.ts +118 -1
  65. package/packages/server/dist/output-schemas.js +1 -1
  66. package/packages/server/dist/prompts.d.ts +9 -2
  67. package/packages/server/dist/prompts.js +13 -6
  68. package/packages/server/dist/resources/curated-resources.js +1 -1
  69. package/packages/server/dist/resources/resource-notifier.d.ts +45 -0
  70. package/packages/server/dist/resources/resource-notifier.js +1 -0
  71. package/packages/server/dist/sampling.d.ts +41 -0
  72. package/packages/server/dist/sampling.js +2 -0
  73. package/packages/server/dist/server.d.ts +5 -2
  74. package/packages/server/dist/server.js +3 -1
  75. package/packages/server/dist/task-manager.d.ts +40 -0
  76. package/packages/server/dist/task-manager.js +1 -0
  77. package/packages/server/dist/tool-metadata.js +1 -1
  78. package/packages/server/dist/tool-prefix.d.ts +12 -0
  79. package/packages/server/dist/tool-prefix.js +1 -0
  80. package/packages/server/dist/tools/analyze.tools.js +4 -4
  81. package/packages/server/dist/tools/audit.tool.js +1 -1
  82. package/packages/server/dist/tools/brainstorm.tool.d.ts +7 -0
  83. package/packages/server/dist/tools/brainstorm.tool.js +9 -0
  84. package/packages/server/dist/tools/bridge.tools.js +1 -1
  85. package/packages/server/dist/tools/context.tools.js +9 -9
  86. package/packages/server/dist/tools/execution.tools.d.ts +2 -1
  87. package/packages/server/dist/tools/execution.tools.js +4 -3
  88. package/packages/server/dist/tools/forge.tools.js +10 -10
  89. package/packages/server/dist/tools/forget.tool.d.ts +2 -1
  90. package/packages/server/dist/tools/forget.tool.js +1 -1
  91. package/packages/server/dist/tools/graph.tool.js +2 -2
  92. package/packages/server/dist/tools/infra.tools.js +2 -2
  93. package/packages/server/dist/tools/list.tool.js +2 -2
  94. package/packages/server/dist/tools/lookup.tool.js +1 -1
  95. package/packages/server/dist/tools/manipulation.tools.js +4 -4
  96. package/packages/server/dist/tools/onboard.tool.js +2 -2
  97. package/packages/server/dist/tools/persistence.tools.js +4 -4
  98. package/packages/server/dist/tools/policy.tools.js +3 -2
  99. package/packages/server/dist/tools/present-blocks.d.ts +46 -0
  100. package/packages/server/dist/tools/present-blocks.js +27 -0
  101. package/packages/server/dist/tools/present-charts.d.ts +31 -0
  102. package/packages/server/dist/tools/present-charts.js +34 -0
  103. package/packages/server/dist/tools/present-theme.d.ts +14 -0
  104. package/packages/server/dist/tools/present-theme.js +395 -0
  105. package/packages/server/dist/tools/present-utils.d.ts +11 -0
  106. package/packages/server/dist/tools/present-utils.js +1 -0
  107. package/packages/server/dist/tools/present.tool.d.ts +7 -0
  108. package/packages/server/dist/tools/present.tool.js +113 -0
  109. package/packages/server/dist/tools/produce.tool.js +2 -2
  110. package/packages/server/dist/tools/read.tool.js +1 -1
  111. package/packages/server/dist/tools/reindex.tool.d.ts +2 -1
  112. package/packages/server/dist/tools/reindex.tool.js +2 -2
  113. package/packages/server/dist/tools/remember.tool.d.ts +2 -1
  114. package/packages/server/dist/tools/remember.tool.js +2 -2
  115. package/packages/server/dist/tools/replay.tool.js +2 -2
  116. package/packages/server/dist/tools/search.tool.d.ts +2 -1
  117. package/packages/server/dist/tools/search.tool.js +5 -4
  118. package/packages/server/dist/tools/status.tool.js +2 -2
  119. package/packages/server/dist/tools/update.tool.d.ts +2 -1
  120. package/packages/server/dist/tools/update.tool.js +1 -1
  121. package/packages/server/dist/tools/utility.tools.js +8 -8
  122. package/packages/store/dist/lance-store.d.ts +1 -0
  123. package/packages/store/dist/lance-store.js +1 -1
  124. package/packages/tools/dist/audit.js +1 -1
  125. package/packages/tools/dist/batch.js +1 -1
  126. package/packages/tools/dist/check.js +1 -1
  127. package/packages/tools/dist/checkpoint.js +1 -1
  128. package/packages/tools/dist/compact.js +2 -2
  129. package/packages/tools/dist/config-extractor.d.ts +9 -0
  130. package/packages/tools/dist/config-extractor.js +7 -0
  131. package/packages/tools/dist/dead-symbols.js +2 -2
  132. package/packages/tools/dist/diagram-builder.d.ts +9 -0
  133. package/packages/tools/dist/diagram-builder.js +9 -0
  134. package/packages/tools/dist/eval.js +2 -2
  135. package/packages/tools/dist/evidence-map.d.ts +12 -1
  136. package/packages/tools/dist/evidence-map.js +2 -2
  137. package/packages/tools/dist/file-summary.js +2 -2
  138. package/packages/tools/dist/find-examples.js +2 -2
  139. package/packages/tools/dist/forge-classify.d.ts +4 -0
  140. package/packages/tools/dist/forge-classify.js +1 -1
  141. package/packages/tools/dist/git-context.d.ts +1 -0
  142. package/packages/tools/dist/git-context.js +3 -3
  143. package/packages/tools/dist/index.d.ts +3 -2
  144. package/packages/tools/dist/index.js +1 -1
  145. package/packages/tools/dist/onboard-utils.d.ts +12 -0
  146. package/packages/tools/dist/onboard-utils.js +1 -0
  147. package/packages/tools/dist/onboard.js +2 -21
  148. package/packages/tools/dist/queue.js +1 -1
  149. package/packages/tools/dist/regex-utils.d.ts +8 -0
  150. package/packages/tools/dist/regex-utils.js +1 -0
  151. package/packages/tools/dist/rename.js +2 -2
  152. package/packages/tools/dist/replay.d.ts +2 -1
  153. package/packages/tools/dist/replay.js +4 -4
  154. package/packages/tools/dist/symbol.js +3 -3
  155. package/packages/tools/dist/synthesis-engine.d.ts +13 -0
  156. package/packages/tools/dist/synthesis-engine.js +6 -0
  157. package/packages/tools/dist/test-run.d.ts +3 -1
  158. package/packages/tools/dist/test-run.js +1 -1
  159. package/packages/tools/dist/trace.js +2 -2
  160. package/packages/tui/dist/App-DXY0-tlW.js +2 -0
  161. package/packages/tui/dist/App.d.ts +3 -3
  162. package/packages/tui/dist/App.js +1 -1
  163. package/packages/tui/dist/CuratedPanel-BIamXLNy.js +2 -0
  164. package/packages/tui/dist/LogPanel-D6u6o84n.js +3 -0
  165. package/packages/tui/dist/SearchPanel-CpJGczAc.js +2 -0
  166. package/packages/tui/dist/StatusPanel-BAbUxyqQ.js +2 -0
  167. package/packages/tui/dist/hooks/useKBClient.d.ts +9 -0
  168. package/packages/tui/dist/hooks/useKBClient.js +2 -0
  169. package/packages/tui/dist/hooks/usePolling.d.ts +8 -0
  170. package/packages/tui/dist/hooks/usePolling.js +2 -0
  171. package/packages/tui/dist/index.d.ts +6 -2
  172. package/packages/tui/dist/index.js +1 -1
  173. package/packages/tui/dist/jsx-runtime-y6Gdq5PZ.js +294 -0
  174. package/packages/tui/dist/panels/CuratedPanel.d.ts +1 -7
  175. package/packages/tui/dist/panels/CuratedPanel.js +1 -1
  176. package/packages/tui/dist/panels/LogPanel.js +1 -1
  177. package/packages/tui/dist/panels/SearchPanel.d.ts +1 -10
  178. package/packages/tui/dist/panels/SearchPanel.js +1 -1
  179. package/packages/tui/dist/panels/StatusPanel.d.ts +1 -7
  180. package/packages/tui/dist/panels/StatusPanel.js +1 -1
  181. package/packages/tui/dist/react-D__J1GQe.js +24 -0
  182. package/packages/tui/dist/types-VcTHNV6s.d.ts +64 -0
  183. package/packages/tui/dist/useKBClient-C35iA4uG.js +2 -0
  184. package/packages/tui/dist/usePolling-BbjnRWgx.js +2 -0
  185. package/scaffold/adapters/copilot.mjs +9 -81
  186. package/scaffold/definitions/agents.mjs +12 -0
  187. package/scaffold/definitions/bodies.mjs +39 -14
  188. package/scaffold/definitions/protocols.mjs +149 -0
  189. package/scaffold/definitions/tools.mjs +40 -5
  190. package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +1 -1
  191. package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +1 -1
  192. package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +1 -1
  193. package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +1 -1
  194. package/scaffold/general/agents/Debugger.agent.md +2 -2
  195. package/scaffold/general/agents/Documenter.agent.md +2 -2
  196. package/scaffold/general/agents/Explorer.agent.md +4 -3
  197. package/scaffold/general/agents/Frontend.agent.md +1 -1
  198. package/scaffold/general/agents/Implementer.agent.md +1 -1
  199. package/scaffold/general/agents/Orchestrator.agent.md +16 -1
  200. package/scaffold/general/agents/Planner.agent.md +11 -4
  201. package/scaffold/general/agents/Refactor.agent.md +1 -1
  202. package/scaffold/general/agents/Researcher-Alpha.agent.md +1 -1
  203. package/scaffold/general/agents/Researcher-Beta.agent.md +1 -1
  204. package/scaffold/general/agents/Researcher-Delta.agent.md +1 -1
  205. package/scaffold/general/agents/Researcher-Gamma.agent.md +1 -1
  206. package/scaffold/general/agents/Security.agent.md +10 -8
  207. package/scaffold/general/agents/_shared/architect-reviewer-base.md +1 -0
  208. package/scaffold/general/agents/_shared/code-agent-base.md +28 -0
  209. package/scaffold/general/agents/_shared/code-reviewer-base.md +1 -0
  210. package/scaffold/general/agents/_shared/forge-protocol.md +44 -0
  211. package/scaffold/general/agents/_shared/researcher-base.md +14 -0
  212. package/scaffold/general/agents/templates/adr-template.md +1 -0
  213. package/scaffold/general/agents/templates/execution-state.md +1 -0
  214. package/skills/knowledge-base/SKILL.md +19 -6
  215. package/skills/present/SKILL.md +153 -0
  216. package/packages/server/dist/tools/toolkit.tools.d.ts +0 -36
  217. package/packages/server/dist/tools/toolkit.tools.js +0 -20
  218. package/packages/tui/dist/App-DE_tdOhs.js +0 -2
  219. package/packages/tui/dist/CuratedPanel-sYdZAICX.js +0 -2
  220. package/packages/tui/dist/LogPanel-Ce3jMQbH.js +0 -3
  221. package/packages/tui/dist/SearchPanel-DREo6zgt.js +0 -2
  222. package/packages/tui/dist/StatusPanel-2ex8fLOO.js +0 -2
  223. package/packages/tui/dist/embedder.interface-IFCBpOlX.d.ts +0 -28
  224. package/packages/tui/dist/index-C8NmOF18.d.ts +0 -13
  225. package/packages/tui/dist/jsx-runtime-Cof-kwFn.js +0 -316
  226. package/packages/tui/dist/store.interface-CnY6SPOH.d.ts +0 -150
  227. /package/packages/tui/dist/{devtools-DUyj952l.js → devtools-DMOZMn70.js} +0 -0
@@ -1 +1 @@
1
- import{existsSync as e,readFileSync as t}from"node:fs";import{dirname as n,resolve as r}from"node:path";import{initializeWasm as i}from"../../chunker/dist/index.js";import{OnnxEmbedder as a}from"../../embeddings/dist/index.js";import{IncrementalIndexer as o}from"../../indexer/dist/index.js";import{SqliteGraphStore as s,createStore as c}from"../../store/dist/index.js";function l(){let i=process.env.KB_CONFIG_PATH??(e(r(process.cwd(),`kb.config.json`))?r(process.cwd(),`kb.config.json`):null);i||(console.error(`No kb.config.json found in current directory.`),console.error("Run `kb init` to create one, or set KB_CONFIG_PATH."),process.exit(1));let a=t(i,`utf-8`),o;try{o=JSON.parse(a)}catch{console.error(`Failed to parse ${i} as JSON. Ensure the file contains valid JSON.`),process.exit(1)}let s=n(i);return o.sources=o.sources.map(e=>({...e,path:r(s,e.path)})),o.store.path=r(s,o.store.path),o.curated=o.curated??{path:`curated`},o.curated.path=r(s,o.curated.path),o}async function u(){let e=l(),t=new a({model:e.embedding.model,dimensions:e.embedding.dimensions});await t.initialize();let n=await c({backend:e.store.backend,path:e.store.path});await n.initialize();let r=new o(t,n),{CuratedKnowledgeManager:u}=await import(`../../server/dist/curated-manager.js`),d=new u(e.curated.path,n,t),f;try{let t=new s({path:e.store.path});await t.initialize(),f=t,r.setGraphStore(f)}catch(e){console.error(`[kb] Graph store init failed (non-fatal): ${e.message}`),f={initialize:async()=>{},upsertNode:async()=>{},upsertEdge:async()=>{},upsertNodes:async()=>{},upsertEdges:async()=>{},getNode:async()=>null,getNeighbors:async()=>({nodes:[],edges:[]}),traverse:async()=>({nodes:[],edges:[]}),findNodes:async()=>[],findEdges:async()=>[],deleteNode:async()=>{},deleteBySourcePath:async()=>0,clear:async()=>{},getStats:async()=>({nodeCount:0,edgeCount:0,nodeTypes:{},edgeTypes:{}}),validate:async()=>({valid:!0,orphanNodes:[],danglingEdges:[],stats:{nodeCount:0,edgeCount:0,nodeTypes:{},edgeTypes:{}}}),close:async()=>{}}}return await i().catch(()=>{}),{config:e,embedder:t,store:n,graphStore:f,indexer:r,curated:d}}export{u as initKB};
1
+ import{existsSync as e,readFileSync as t}from"node:fs";import{dirname as n,resolve as r}from"node:path";import{initializeWasm as i}from"../../chunker/dist/index.js";import{KB_PATHS as a,getPartitionDir as o,isUserInstalled as s,registerWorkspace as c}from"../../core/dist/index.js";import{OnnxEmbedder as l}from"../../embeddings/dist/index.js";import{IncrementalIndexer as u}from"../../indexer/dist/index.js";import{SqliteGraphStore as d,createStore as f}from"../../store/dist/index.js";function p(){let i=process.env.KB_CONFIG_PATH??(e(r(process.cwd(),`kb.config.json`))?r(process.cwd(),`kb.config.json`):null);if(!i)return m();let a=t(i,`utf-8`),o;try{o=JSON.parse(a)}catch{console.error(`Failed to parse ${i} as JSON. Ensure the file contains valid JSON.`),process.exit(1)}let s=n(i);return o.sources=o.sources.map(e=>({...e,path:r(s,e.path)})),o.store.path=r(s,o.store.path),o.curated=o.curated??{path:`curated`},o.curated.path=r(s,o.curated.path),h(o,s),o}function m(){let e=process.env.KB_WORKSPACE_ROOT??process.cwd(),t={sources:[{path:e,excludePatterns:[`node_modules/**`,`dist/**`,`.git/**`,`coverage/**`,`*.lock`,`pnpm-lock.yaml`]}],serverName:`knowledge-base`,indexing:{chunkSize:1500,chunkOverlap:200,minChunkSize:100},embedding:{model:`mixedbread-ai/mxbai-embed-large-v1`,dimensions:1024},store:{backend:`lancedb`,path:r(e,a.data)},curated:{path:r(e,a.aiCurated)}};return h(t,e),t}function h(e,t){if(!s())return;let n=c(t);e.store.path=r(o(n.partition)),e.curated||={path:r(t,a.aiCurated)}}async function g(){let e=p(),t=new l({model:e.embedding.model,dimensions:e.embedding.dimensions});await t.initialize();let n=await f({backend:e.store.backend,path:e.store.path});await n.initialize();let r=new u(t,n),{CuratedKnowledgeManager:a}=await import(`../../server/dist/curated-manager.js`),o=new a(e.curated.path,n,t),s;try{let t=new d({path:e.store.path});await t.initialize(),s=t,r.setGraphStore(s)}catch(e){console.error(`[kb] Graph store init failed (non-fatal): ${e.message}`),s={initialize:async()=>{},upsertNode:async()=>{},upsertEdge:async()=>{},upsertNodes:async()=>{},upsertEdges:async()=>{},getNode:async()=>null,getNeighbors:async()=>({nodes:[],edges:[]}),traverse:async()=>({nodes:[],edges:[]}),findNodes:async()=>[],findEdges:async()=>[],deleteNode:async()=>{},deleteBySourcePath:async()=>0,clear:async()=>{},getStats:async()=>({nodeCount:0,edgeCount:0,nodeTypes:{},edgeTypes:{}}),validate:async()=>({valid:!0,orphanNodes:[],danglingEdges:[],stats:{nodeCount:0,edgeCount:0,nodeTypes:{},edgeTypes:{}}}),close:async()=>{}}}return await i().catch(()=>{}),{config:e,embedder:t,store:n,graphStore:s,indexer:r,curated:o}}export{g as initKB};
@@ -1,8 +1,8 @@
1
1
  //#region packages/core/src/errors.d.ts
2
2
  declare class KBError extends Error {
3
3
  readonly code: string;
4
- readonly cause?: unknown | undefined;
5
- constructor(message: string, code: string, cause?: unknown | undefined);
4
+ readonly cause?: unknown;
5
+ constructor(message: string, code: string, cause?: unknown);
6
6
  }
7
7
  declare class EmbeddingError extends KBError {
8
8
  constructor(message: string, cause?: unknown);
@@ -1 +1 @@
1
- var e=class extends Error{constructor(e,t,n){super(e),this.code=t,this.cause=n,this.name=`KBError`}},t=class extends e{constructor(e,t){super(e,`EMBEDDING_ERROR`,t),this.name=`EmbeddingError`}},n=class extends e{constructor(e,t){super(e,`STORE_ERROR`,t),this.name=`StoreError`}},r=class extends e{constructor(e,t){super(e,`INDEX_ERROR`,t),this.name=`IndexError`}},i=class extends e{constructor(e,t){super(e,`CONFIG_ERROR`,t),this.name=`ConfigError`}};export{i as ConfigError,t as EmbeddingError,r as IndexError,e as KBError,n as StoreError};
1
+ var e=class extends Error{constructor(e,t,n){super(e,n===void 0?void 0:{cause:n}),this.code=t,this.name=`KBError`}},t=class extends e{constructor(e,t){super(e,`EMBEDDING_ERROR`,t),this.name=`EmbeddingError`}},n=class extends e{constructor(e,t){super(e,`STORE_ERROR`,t),this.name=`StoreError`}},r=class extends e{constructor(e,t){super(e,`INDEX_ERROR`,t),this.name=`IndexError`}},i=class extends e{constructor(e,t){super(e,`CONFIG_ERROR`,t),this.name=`ConfigError`}};export{i as ConfigError,t as EmbeddingError,r as IndexError,e as KBError,n as StoreError};
@@ -13,7 +13,8 @@ declare function setFileSinkEnabled(enabled: boolean): void;
13
13
  declare function resetLogDir(): void;
14
14
  /**
15
15
  * Serialize an unknown error into a structured record suitable for JSON logging.
16
- * Includes stack traces only at debug level to keep production logs concise.
16
+ * Always includes stack traces for Error instances they are essential for
17
+ * root-cause analysis regardless of the active log level.
17
18
  */
18
19
  declare function serializeError(err: unknown): Record<string, unknown>;
19
20
  /**
@@ -1 +1 @@
1
- import{KB_PATHS as e}from"./constants.js";import{join as t,resolve as n}from"node:path";import{appendFileSync as r,mkdirSync as i,readdirSync as a,unlinkSync as o}from"node:fs";const s={debug:0,info:1,warn:2,error:3},c=[];let l=process.env.KB_LOG_LEVEL??`info`,u=process.env.KB_LOG_FILE_SINK===`true`||process.env.KB_LOG_FILE_SINK!==`false`&&!process.env.VITEST&&process.env.NODE_ENV!==`test`;function d(){return u?process.env.VITEST||process.env.NODE_ENV===`test`?process.env.KB_LOG_FILE_SINK===`true`:!0:!1}let f;function p(){return f||=n(process.cwd(),e.logs),f}function m(e){let n=e.toISOString().slice(0,10);return t(p(),`${n}.jsonl`)}let h=0;function g(){let e=Date.now();if(!(e-h<36e5)){h=e;try{let n=p(),r=new Date(e-30*864e5).toISOString().slice(0,10);for(let e of a(n))if(e.endsWith(`.jsonl`)&&e.slice(0,10)<r)try{o(t(n,e))}catch{}}catch{}}}function _(e,t){try{i(p(),{recursive:!0}),r(m(t),`${e}\n`),g()}catch{}}function v(e){l=e}function y(){return l}function b(e){u=e}function x(){f=void 0}function S(e){if(e instanceof Error){let t={error:e.message};return l===`debug`&&e.stack&&(t.stack=e.stack),t}return{error:String(e)}}function C(e){return c.push(e),()=>{let t=c.indexOf(e);t>=0&&c.splice(t,1)}}function w(e){function t(t,n,r){if(s[t]<s[l])return;let i=new Date,a={ts:i.toISOString(),level:t,component:e,msg:n,...r},o=JSON.stringify(a);console.error(o);for(let i of c)try{i({level:t,component:e,message:n,data:r})}catch{}d()&&(t===`warn`||t===`error`)&&_(o,i)}return{debug:(e,n)=>t(`debug`,e,n),info:(e,n)=>t(`info`,e,n),warn:(e,n)=>t(`warn`,e,n),error:(e,n)=>t(`error`,e,n)}}export{C as addLogListener,w as createLogger,y as getLogLevel,x as resetLogDir,S as serializeError,b as setFileSinkEnabled,v as setLogLevel};
1
+ import{KB_PATHS as e}from"./constants.js";import{join as t,resolve as n}from"node:path";import{appendFileSync as r,mkdirSync as i,readdirSync as a,unlinkSync as o}from"node:fs";const s={debug:0,info:1,warn:2,error:3},c=[];let l=process.env.KB_LOG_LEVEL??`info`,u=process.env.KB_LOG_FILE_SINK===`true`||process.env.KB_LOG_FILE_SINK!==`false`&&!process.env.VITEST&&process.env.NODE_ENV!==`test`;function d(){return u?process.env.VITEST||process.env.NODE_ENV===`test`?process.env.KB_LOG_FILE_SINK===`true`:!0:!1}let f;function p(){return f||=n(process.cwd(),e.logs),f}function m(e){let n=e.toISOString().slice(0,10);return t(p(),`${n}.jsonl`)}let h=0;function g(){let e=Date.now();if(!(e-h<36e5)){h=e;try{let n=p(),r=new Date(e-30*864e5).toISOString().slice(0,10);for(let e of a(n))if(e.endsWith(`.jsonl`)&&e.slice(0,10)<r)try{o(t(n,e))}catch{}}catch{}}}function _(e,t){try{i(p(),{recursive:!0}),r(m(t),`${e}\n`),g()}catch{}}function v(e){l=e}function y(){return l}function b(e){u=e}function x(){f=void 0}function S(e){if(e instanceof Error){let t={error:e.message};return e.stack&&(t.stack=e.stack),e.cause!==void 0&&(t.cause=e.cause instanceof Error?e.cause.message:String(e.cause)),t}return{error:String(e)}}function C(e){return c.push(e),()=>{let t=c.indexOf(e);t>=0&&c.splice(t,1)}}function w(e){function t(t,n,r){if(s[t]<s[l])return;let i=new Date,a={ts:i.toISOString(),level:t,component:e,msg:n,...r},o=JSON.stringify(a);console.error(o);for(let i of c)try{i({level:t,component:e,message:n,data:r})}catch{}d()&&(t===`warn`||t===`error`)&&_(o,i)}return{debug:(e,n)=>t(`debug`,e,n),info:(e,n)=>t(`info`,e,n),warn:(e,n)=>t(`warn`,e,n),error:(e,n)=>t(`error`,e,n)}}export{C as addLogListener,w as createLogger,y as getLogLevel,x as resetLogDir,S as serializeError,b as setFileSinkEnabled,v as setLogLevel};
@@ -81,6 +81,12 @@ interface SearchResult {
81
81
  interface KBConfig {
82
82
  /** MCP server name. Defaults to 'kb'. */
83
83
  serverName?: string;
84
+ /**
85
+ * Prefix prepended to every MCP tool name to avoid collisions with other
86
+ * MCP servers. E.g. `"kb_"` turns `search` → `kb_search`.
87
+ * Defaults to `""` (no prefix) for backward compatibility.
88
+ */
89
+ toolPrefix?: string;
84
90
  sources: Array<{
85
91
  path: string;
86
92
  excludePatterns: string[];