@kb-labs/mind-entry 2.93.0 → 2.96.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 (98) hide show
  1. package/README.md +19 -208
  2. package/dist/cli/commands/ask.d.ts +31 -0
  3. package/dist/cli/commands/ask.js +88 -0
  4. package/dist/cli/commands/ask.js.map +1 -0
  5. package/dist/cli/commands/drop.d.ts +10 -0
  6. package/dist/cli/commands/drop.js +90 -0
  7. package/dist/cli/commands/drop.js.map +1 -0
  8. package/dist/cli/commands/explore.d.ts +26 -0
  9. package/dist/cli/commands/explore.js +96 -0
  10. package/dist/cli/commands/explore.js.map +1 -0
  11. package/dist/cli/commands/index.d.ts +11 -0
  12. package/dist/cli/commands/index.js +96 -0
  13. package/dist/cli/commands/index.js.map +1 -0
  14. package/dist/cli/commands/reindex.d.ts +11 -0
  15. package/dist/cli/commands/reindex.js +71 -0
  16. package/dist/cli/commands/reindex.js.map +1 -0
  17. package/dist/cli/commands/search.d.ts +25 -0
  18. package/dist/cli/commands/search.js +94 -0
  19. package/dist/cli/commands/search.js.map +1 -0
  20. package/dist/cli/commands/status.d.ts +17 -0
  21. package/dist/cli/commands/status.js +89 -0
  22. package/dist/cli/commands/status.js.map +1 -0
  23. package/dist/cli/commands/sync-add.d.ts +11 -0
  24. package/dist/cli/commands/sync-add.js +74 -0
  25. package/dist/cli/commands/sync-add.js.map +1 -0
  26. package/dist/cli/commands/sync-delete.d.ts +11 -0
  27. package/dist/cli/commands/sync-delete.js +90 -0
  28. package/dist/cli/commands/sync-delete.js.map +1 -0
  29. package/dist/cli/commands/sync-list.d.ts +13 -0
  30. package/dist/cli/commands/sync-list.js +80 -0
  31. package/dist/cli/commands/sync-list.js.map +1 -0
  32. package/dist/cli/commands/sync-status.d.ts +8 -0
  33. package/dist/cli/commands/sync-status.js +71 -0
  34. package/dist/cli/commands/sync-status.js.map +1 -0
  35. package/dist/cli/commands/sync-update.d.ts +11 -0
  36. package/dist/cli/commands/sync-update.js +74 -0
  37. package/dist/cli/commands/sync-update.js.map +1 -0
  38. package/dist/index.d.ts +2 -596
  39. package/dist/index.js +208 -1449
  40. package/dist/index.js.map +1 -1
  41. package/dist/manifest.d.ts +206 -0
  42. package/dist/manifest.js +261 -0
  43. package/dist/manifest.js.map +1 -0
  44. package/dist/rest/handlers/drop.d.ts +12 -0
  45. package/dist/rest/handlers/drop.js +59 -0
  46. package/dist/rest/handlers/drop.js.map +1 -0
  47. package/dist/rest/handlers/explore.d.ts +30 -0
  48. package/dist/rest/handlers/explore.js +59 -0
  49. package/dist/rest/handlers/explore.js.map +1 -0
  50. package/dist/rest/handlers/health.d.ts +11 -0
  51. package/dist/rest/handlers/health.js +58 -0
  52. package/dist/rest/handlers/health.js.map +1 -0
  53. package/dist/rest/handlers/index.d.ts +15 -0
  54. package/dist/rest/handlers/index.js +59 -0
  55. package/dist/rest/handlers/index.js.map +1 -0
  56. package/dist/rest/handlers/query.d.ts +36 -0
  57. package/dist/rest/handlers/query.js +59 -0
  58. package/dist/rest/handlers/query.js.map +1 -0
  59. package/dist/rest/handlers/reindex.d.ts +14 -0
  60. package/dist/rest/handlers/reindex.js +59 -0
  61. package/dist/rest/handlers/reindex.js.map +1 -0
  62. package/dist/rest/handlers/search.d.ts +31 -0
  63. package/dist/rest/handlers/search.js +59 -0
  64. package/dist/rest/handlers/search.js.map +1 -0
  65. package/dist/rest/handlers/status.d.ts +19 -0
  66. package/dist/rest/handlers/status.js +58 -0
  67. package/dist/rest/handlers/status.js.map +1 -0
  68. package/dist/rest/handlers/sync-add.d.ts +14 -0
  69. package/dist/rest/handlers/sync-add.js +59 -0
  70. package/dist/rest/handlers/sync-add.js.map +1 -0
  71. package/dist/rest/handlers/sync-delete.d.ts +14 -0
  72. package/dist/rest/handlers/sync-delete.js +59 -0
  73. package/dist/rest/handlers/sync-delete.js.map +1 -0
  74. package/dist/rest/handlers/sync-list.d.ts +15 -0
  75. package/dist/rest/handlers/sync-list.js +58 -0
  76. package/dist/rest/handlers/sync-list.js.map +1 -0
  77. package/dist/rest/handlers/sync-status.d.ts +14 -0
  78. package/dist/rest/handlers/sync-status.js +58 -0
  79. package/dist/rest/handlers/sync-status.js.map +1 -0
  80. package/dist/rest/handlers/sync-update.d.ts +14 -0
  81. package/dist/rest/handlers/sync-update.js +59 -0
  82. package/dist/rest/handlers/sync-update.js.map +1 -0
  83. package/package.json +15 -19
  84. package/dist/cli/commands/init.d.ts +0 -24
  85. package/dist/cli/commands/init.js +0 -115
  86. package/dist/cli/commands/init.js.map +0 -1
  87. package/dist/cli/commands/rag-index.d.ts +0 -20
  88. package/dist/cli/commands/rag-index.js +0 -364
  89. package/dist/cli/commands/rag-index.js.map +0 -1
  90. package/dist/cli/commands/rag-query.d.ts +0 -25
  91. package/dist/cli/commands/rag-query.js +0 -670
  92. package/dist/cli/commands/rag-query.js.map +0 -1
  93. package/dist/cli/commands/verify.d.ts +0 -15
  94. package/dist/cli/commands/verify.js +0 -92
  95. package/dist/cli/commands/verify.js.map +0 -1
  96. package/dist/manifest.v3.d.ts +0 -52
  97. package/dist/manifest.v3.js +0 -182
  98. package/dist/manifest.v3.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
2
+ import { RestInput } from '@kb-labs/sdk';
3
+
4
+ declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<{
5
+ indexId?: string;
6
+ }, unknown, unknown>, {
7
+ stale: boolean;
8
+ indexId: string;
9
+ chunks: number;
10
+ documents: number;
11
+ lastIndexedAt: string | null;
12
+ }>;
13
+
14
+ export { _default as default };
@@ -0,0 +1,58 @@
1
+ import { defineHandler, rethrowForRest, useVectorStore, useEmbeddings, useStorage, useCache, useLLM, useLogger, useConfig } from '@kb-labs/sdk';
2
+ import { createMind } from '@kb-labs/mind-core';
3
+ import { resolveMindConfig } from '@kb-labs/mind-contracts';
4
+
5
+ // src/rest/handlers/sync-status.ts
6
+ function buildServices() {
7
+ const vectorStore = useVectorStore();
8
+ const embeddings = useEmbeddings();
9
+ const storage = useStorage();
10
+ const cache = useCache();
11
+ const llm = useLLM();
12
+ const logger = useLogger();
13
+ const missing = [];
14
+ if (!vectorStore) {
15
+ missing.push("vectorStore");
16
+ }
17
+ if (!embeddings) {
18
+ missing.push("embeddings");
19
+ }
20
+ if (!storage) {
21
+ missing.push("storage");
22
+ }
23
+ if (!cache) {
24
+ missing.push("cache");
25
+ }
26
+ if (!llm) {
27
+ missing.push("llm");
28
+ }
29
+ if (missing.length > 0) {
30
+ throw new Error(
31
+ `mind: required platform adapters not configured: ${missing.join(", ")}. Configure them in .kb/kb.config.json under "adapters".`
32
+ );
33
+ }
34
+ return { vectorStore, embeddings, storage, cache, llm, logger };
35
+ }
36
+ async function loadConfig() {
37
+ const raw = await useConfig();
38
+ return resolveMindConfig(raw ?? {});
39
+ }
40
+ async function buildMind(cwd) {
41
+ return createMind(buildServices(), await loadConfig(), { cwd: process.cwd() });
42
+ }
43
+
44
+ // src/rest/handlers/sync-status.ts
45
+ var sync_status_default = defineHandler({
46
+ async execute(_ctx, input) {
47
+ try {
48
+ const mind = await buildMind();
49
+ return await mind.syncStatus(input.query?.indexId);
50
+ } catch (err) {
51
+ return rethrowForRest(err);
52
+ }
53
+ }
54
+ });
55
+
56
+ export { sync_status_default as default };
57
+ //# sourceMappingURL=sync-status.js.map
58
+ //# sourceMappingURL=sync-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/platform.ts","../../../src/rest/handlers/sync-status.ts"],"names":[],"mappings":";;;;;AAqBO,SAAS,aAAA,GAA8B;AAC5C,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,MAAM,UAAU,UAAA,EAAW;AAC3B,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,OAAA,CAAQ,KAAK,aAAa,CAAA;AAAA,EAC5B;AACA,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAA,CAAQ,KAAK,YAAY,CAAA;AAAA,EAC3B;AACA,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAA,CAAQ,KAAK,SAAS,CAAA;AAAA,EACxB;AACA,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAA,CAAQ,KAAK,OAAO,CAAA;AAAA,EACtB;AACA,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,EACpB;AACA,EAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,iDAAA,EAAoD,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA,wDAAA;AAAA,KAExE;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,WAAA,EAA2B,UAAA,EAAyB,OAAA,EAAmB,KAAA,EAAe,KAAW,MAAA,EAAO;AACnH;AAGA,eAAsB,UAAA,GAAa;AACjC,EAAA,MAAM,GAAA,GAAM,MAAM,SAAA,EAA2B;AAC7C,EAAA,OAAO,iBAAA,CAAkB,GAAA,IAAO,EAAE,CAAA;AACpC;AAMA,eAAsB,UAAU,GAAA,EAA6B;AAC3D,EAAA,OAAO,UAAA,CAAW,aAAA,EAAc,EAAG,MAAM,UAAA,EAAW,EAAG,EAAE,GAAA,EAAY,OAAA,CAAQ,GAAA,EAAI,EAAG,CAAA;AACtF;;;AC/DA,IAAO,sBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CACJ,IAAA,EACA,KAAA,EAC6B;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,MAAM,SAAA,EAAU;AAC7B,MAAA,OAAO,MAAM,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,IACnD,SAAS,GAAA,EAAK;AACZ,MAAA,OAAO,eAAe,GAAG,CAAA;AAAA,IAC3B;AAAA,EACF;AACF,CAAC","file":"sync-status.js","sourcesContent":["/**\n * The single place the plugin touches platform hooks.\n *\n * Assembles `MindServices` from `@kb-labs/sdk` hooks and resolves the plugin\n * config. CLI commands and REST handlers both call `buildMind(...)` so they\n * drive the exact same engine.\n */\n\nimport {\n useVectorStore,\n useEmbeddings,\n useStorage,\n useCache,\n useLLM,\n useLogger,\n useConfig,\n} from '@kb-labs/sdk';\nimport { createMind, type Mind, type MindServices } from '@kb-labs/mind-core';\nimport { resolveMindConfig, type MindConfigInput } from '@kb-labs/mind-contracts';\n\n/** Build MindServices from platform hooks, failing fast on missing required adapters. */\nexport function buildServices(): MindServices {\n const vectorStore = useVectorStore();\n const embeddings = useEmbeddings();\n const storage = useStorage();\n const cache = useCache();\n const llm = useLLM();\n const logger = useLogger();\n\n const missing: string[] = [];\n if (!vectorStore) {\n missing.push('vectorStore');\n }\n if (!embeddings) {\n missing.push('embeddings');\n }\n if (!storage) {\n missing.push('storage');\n }\n if (!cache) {\n missing.push('cache');\n }\n if (!llm) {\n missing.push('llm');\n }\n if (missing.length > 0) {\n throw new Error(\n `mind: required platform adapters not configured: ${missing.join(', ')}. ` +\n `Configure them in .kb/kb.config.json under \"adapters\".`,\n );\n }\n\n return { vectorStore: vectorStore!, embeddings: embeddings!, storage: storage!, cache: cache!, llm: llm!, logger };\n}\n\n/** Resolve the plugin config from the `mind` config section. */\nexport async function loadConfig() {\n const raw = await useConfig<MindConfigInput>();\n return resolveMindConfig(raw ?? {});\n}\n\n/**\n * Convenience: build the Mind facade (services + config) in one call.\n * `cwd` is the workspace root source paths resolve against (from `ctx.cwd`).\n */\nexport async function buildMind(cwd?: string): Promise<Mind> {\n return createMind(buildServices(), await loadConfig(), { cwd: cwd ?? process.cwd() });\n}\n","import { defineHandler, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport type { SyncStatusResponse } from '@kb-labs/mind-contracts';\nimport { buildMind } from '../../platform';\n\nexport default defineHandler({\n async execute(\n _ctx: PluginContextV3,\n input: RestInput<{ indexId?: string }, unknown>,\n ): Promise<SyncStatusResponse> {\n try {\n const mind = await buildMind();\n return await mind.syncStatus(input.query?.indexId);\n } catch (err) {\n return rethrowForRest(err);\n }\n },\n});\n"]}
@@ -0,0 +1,14 @@
1
+ import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
2
+ import { RestInput } from '@kb-labs/sdk';
3
+
4
+ declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<unknown, {
5
+ paths: string[];
6
+ indexId?: string | undefined;
7
+ }, unknown>, {
8
+ indexId: string;
9
+ added: number;
10
+ updated: number;
11
+ deleted: number;
12
+ }>;
13
+
14
+ export { _default as default };
@@ -0,0 +1,59 @@
1
+ import { defineHandler, rethrowForRest, useVectorStore, useEmbeddings, useStorage, useCache, useLLM, useLogger, useConfig } from '@kb-labs/sdk';
2
+ import { SyncUpdateRequestSchema, resolveMindConfig } from '@kb-labs/mind-contracts';
3
+ import { createMind } from '@kb-labs/mind-core';
4
+
5
+ // src/rest/handlers/sync-update.ts
6
+ function buildServices() {
7
+ const vectorStore = useVectorStore();
8
+ const embeddings = useEmbeddings();
9
+ const storage = useStorage();
10
+ const cache = useCache();
11
+ const llm = useLLM();
12
+ const logger = useLogger();
13
+ const missing = [];
14
+ if (!vectorStore) {
15
+ missing.push("vectorStore");
16
+ }
17
+ if (!embeddings) {
18
+ missing.push("embeddings");
19
+ }
20
+ if (!storage) {
21
+ missing.push("storage");
22
+ }
23
+ if (!cache) {
24
+ missing.push("cache");
25
+ }
26
+ if (!llm) {
27
+ missing.push("llm");
28
+ }
29
+ if (missing.length > 0) {
30
+ throw new Error(
31
+ `mind: required platform adapters not configured: ${missing.join(", ")}. Configure them in .kb/kb.config.json under "adapters".`
32
+ );
33
+ }
34
+ return { vectorStore, embeddings, storage, cache, llm, logger };
35
+ }
36
+ async function loadConfig() {
37
+ const raw = await useConfig();
38
+ return resolveMindConfig(raw ?? {});
39
+ }
40
+ async function buildMind(cwd) {
41
+ return createMind(buildServices(), await loadConfig(), { cwd: process.cwd() });
42
+ }
43
+
44
+ // src/rest/handlers/sync-update.ts
45
+ var sync_update_default = defineHandler({
46
+ async execute(_ctx, input) {
47
+ try {
48
+ const req = SyncUpdateRequestSchema.parse(input.body ?? {});
49
+ const mind = await buildMind();
50
+ return await mind.syncUpdate(req.paths, req.indexId);
51
+ } catch (err) {
52
+ return rethrowForRest(err);
53
+ }
54
+ }
55
+ });
56
+
57
+ export { sync_update_default as default };
58
+ //# sourceMappingURL=sync-update.js.map
59
+ //# sourceMappingURL=sync-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/platform.ts","../../../src/rest/handlers/sync-update.ts"],"names":[],"mappings":";;;;;AAqBO,SAAS,aAAA,GAA8B;AAC5C,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,MAAM,UAAU,UAAA,EAAW;AAC3B,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,OAAA,CAAQ,KAAK,aAAa,CAAA;AAAA,EAC5B;AACA,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAA,CAAQ,KAAK,YAAY,CAAA;AAAA,EAC3B;AACA,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAA,CAAQ,KAAK,SAAS,CAAA;AAAA,EACxB;AACA,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAA,CAAQ,KAAK,OAAO,CAAA;AAAA,EACtB;AACA,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,EACpB;AACA,EAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,iDAAA,EAAoD,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA,wDAAA;AAAA,KAExE;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,WAAA,EAA2B,UAAA,EAAyB,OAAA,EAAmB,KAAA,EAAe,KAAW,MAAA,EAAO;AACnH;AAGA,eAAsB,UAAA,GAAa;AACjC,EAAA,MAAM,GAAA,GAAM,MAAM,SAAA,EAA2B;AAC7C,EAAA,OAAO,iBAAA,CAAkB,GAAA,IAAO,EAAE,CAAA;AACpC;AAMA,eAAsB,UAAU,GAAA,EAA6B;AAC3D,EAAA,OAAO,UAAA,CAAW,aAAA,EAAc,EAAG,MAAM,UAAA,EAAW,EAAG,EAAE,GAAA,EAAY,OAAA,CAAQ,GAAA,EAAI,EAAG,CAAA;AACtF;;;AC/DA,IAAO,sBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,IAAA,EAAuB,KAAA,EAAqE;AACxG,IAAA,IAAI;AACF,MAAA,MAAM,MAAM,uBAAA,CAAwB,KAAA,CAAM,KAAA,CAAM,IAAA,IAAQ,EAAE,CAAA;AAC1D,MAAA,MAAM,IAAA,GAAO,MAAM,SAAA,EAAU;AAC7B,MAAA,OAAO,MAAM,IAAA,CAAK,UAAA,CAAW,GAAA,CAAI,KAAA,EAAO,IAAI,OAAO,CAAA;AAAA,IACrD,SAAS,GAAA,EAAK;AACZ,MAAA,OAAO,eAAe,GAAG,CAAA;AAAA,IAC3B;AAAA,EACF;AACF,CAAC","file":"sync-update.js","sourcesContent":["/**\n * The single place the plugin touches platform hooks.\n *\n * Assembles `MindServices` from `@kb-labs/sdk` hooks and resolves the plugin\n * config. CLI commands and REST handlers both call `buildMind(...)` so they\n * drive the exact same engine.\n */\n\nimport {\n useVectorStore,\n useEmbeddings,\n useStorage,\n useCache,\n useLLM,\n useLogger,\n useConfig,\n} from '@kb-labs/sdk';\nimport { createMind, type Mind, type MindServices } from '@kb-labs/mind-core';\nimport { resolveMindConfig, type MindConfigInput } from '@kb-labs/mind-contracts';\n\n/** Build MindServices from platform hooks, failing fast on missing required adapters. */\nexport function buildServices(): MindServices {\n const vectorStore = useVectorStore();\n const embeddings = useEmbeddings();\n const storage = useStorage();\n const cache = useCache();\n const llm = useLLM();\n const logger = useLogger();\n\n const missing: string[] = [];\n if (!vectorStore) {\n missing.push('vectorStore');\n }\n if (!embeddings) {\n missing.push('embeddings');\n }\n if (!storage) {\n missing.push('storage');\n }\n if (!cache) {\n missing.push('cache');\n }\n if (!llm) {\n missing.push('llm');\n }\n if (missing.length > 0) {\n throw new Error(\n `mind: required platform adapters not configured: ${missing.join(', ')}. ` +\n `Configure them in .kb/kb.config.json under \"adapters\".`,\n );\n }\n\n return { vectorStore: vectorStore!, embeddings: embeddings!, storage: storage!, cache: cache!, llm: llm!, logger };\n}\n\n/** Resolve the plugin config from the `mind` config section. */\nexport async function loadConfig() {\n const raw = await useConfig<MindConfigInput>();\n return resolveMindConfig(raw ?? {});\n}\n\n/**\n * Convenience: build the Mind facade (services + config) in one call.\n * `cwd` is the workspace root source paths resolve against (from `ctx.cwd`).\n */\nexport async function buildMind(cwd?: string): Promise<Mind> {\n return createMind(buildServices(), await loadConfig(), { cwd: cwd ?? process.cwd() });\n}\n","import { defineHandler, rethrowForRest, type PluginContextV3, type RestInput } from '@kb-labs/sdk';\nimport { SyncUpdateRequestSchema, type SyncUpdateRequest, type SyncResponse } from '@kb-labs/mind-contracts';\nimport { buildMind } from '../../platform';\n\nexport default defineHandler({\n async execute(_ctx: PluginContextV3, input: RestInput<unknown, SyncUpdateRequest>): Promise<SyncResponse> {\n try {\n const req = SyncUpdateRequestSchema.parse(input.body ?? {});\n const mind = await buildMind();\n return await mind.syncUpdate(req.paths, req.indexId);\n } catch (err) {\n return rethrowForRest(err);\n }\n },\n});\n"]}
package/package.json CHANGED
@@ -1,15 +1,18 @@
1
1
  {
2
2
  "name": "@kb-labs/mind-entry",
3
- "description": "CLI commands for KB Labs Mind",
4
- "version": "2.93.0",
3
+ "description": "Manifest, CLI commands and REST handlers for KB Labs Mind (RAG) plugin.",
4
+ "version": "2.96.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js",
12
- "require": "./dist/index.js"
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./plugin-manifest": {
14
+ "types": "./dist/manifest.d.ts",
15
+ "import": "./dist/manifest.js"
13
16
  },
14
17
  "./dist/*": "./dist/*"
15
18
  },
@@ -19,42 +22,35 @@
19
22
  "LICENSE"
20
23
  ],
21
24
  "dependencies": {
22
- "react": "^19.0.0",
23
- "zod": "^3.25.76",
24
- "@kb-labs/mind-core": "2.93.0",
25
25
  "@kb-labs/sdk": "2.21.2",
26
- "@kb-labs/mind-contracts": "2.93.0",
27
- "@kb-labs/mind-orchestrator": "2.93.0",
28
- "@kb-labs/mind-engine": "2.93.0",
29
- "@kb-labs/mind-indexer": "2.93.0",
30
- "@kb-labs/mind-types": "2.93.0",
31
- "@kb-labs/plugin-contracts": "2.93.0"
26
+ "@kb-labs/mind-contracts": "2.96.0",
27
+ "@kb-labs/mind-core": "2.96.0"
32
28
  },
33
29
  "devDependencies": {
34
30
  "@types/node": "^24.3.3",
35
- "@types/react": "^19.0.0",
36
31
  "rimraf": "^6.0.1",
37
32
  "tsup": "^8.5.0",
38
33
  "typescript": "^5.6.3",
39
- "vitest": "^3.2.4",
40
- "@kb-labs/devkit": "2.93.0"
34
+ "vitest": "^3.2.6",
35
+ "@kb-labs/devkit": "2.96.0"
41
36
  },
42
37
  "engines": {
43
38
  "node": ">=20.0.0",
44
39
  "pnpm": ">=9.0.0"
45
40
  },
46
41
  "kb": {
47
- "manifest": "./dist/manifest.v3.js"
42
+ "manifest": "./dist/manifest.js"
48
43
  },
49
44
  "sideEffects": false,
50
45
  "scripts": {
51
46
  "build": "tsup --config tsup.config.ts",
52
47
  "clean": "rimraf dist",
53
48
  "dev": "tsup --config tsup.config.ts --watch",
54
- "lint": "eslint src --ext .ts,.tsx,.js,.jsx",
49
+ "lint": "eslint src --ext .ts",
55
50
  "lint:fix": "eslint . --fix",
56
- "pretype-check": "pnpm --filter @kb-labs/shared-cli-ui build",
51
+ "pretype-check": "pnpm --filter @kb-labs/mind-entry build",
57
52
  "test": "vitest run --passWithNoTests",
53
+ "test:cli": "vitest run --config vitest.cli.config.ts --passWithNoTests",
58
54
  "test:watch": "vitest",
59
55
  "type-check": "tsc --noEmit"
60
56
  }
@@ -1,24 +0,0 @@
1
- import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
2
-
3
- /**
4
- * Mind init command (V3)
5
- *
6
- * V3 Migration:
7
- * - Default export with defineCommand
8
- * - handler: { execute(ctx, input) }
9
- * - NO permissions (inherited from manifest)
10
- * - ctx.ui, ctx.logger, ctx.state (flat structure)
11
- */
12
- interface InitInput {
13
- argv: string[];
14
- flags: {
15
- cwd?: string;
16
- force?: boolean;
17
- json?: boolean;
18
- verbose?: boolean;
19
- quiet?: boolean;
20
- };
21
- }
22
- declare const _default: _kb_labs_shared_command_kit.CommandHandlerV3<unknown, InitInput, unknown>;
23
-
24
- export { _default as default };
@@ -1,115 +0,0 @@
1
- import { defineCommand } from '@kb-labs/sdk';
2
- import { initMindStructure } from '@kb-labs/mind-indexer';
3
- import { join } from 'path';
4
- import { promises } from 'fs';
5
-
6
- // src/cli/commands/init.ts
7
- var init_default = defineCommand({
8
- id: "mind:init",
9
- description: "Initialize mind workspace",
10
- // ❌ NO permissions here - they are in manifest.v3.ts!
11
- // Permissions are manifest-wide in V3
12
- handler: {
13
- async execute(ctx, input) {
14
- const startTime = Date.now();
15
- const { flags } = input;
16
- const cwd = flags.cwd || ctx.cwd;
17
- ctx.trace?.addEvent?.("mind.init.start", {
18
- cwd,
19
- command: "mind:init",
20
- force: flags.force
21
- });
22
- ctx.trace?.addEvent?.("mind.init.initializing", { cwd, force: flags.force });
23
- const mindDir = await initMindStructure({
24
- cwd,
25
- force: flags.force,
26
- log: (entry) => {
27
- const msg = typeof entry === "string" ? entry : entry.msg ?? "";
28
- if (!flags.quiet && !flags.json) {
29
- ctx.ui.info(`Init: ${msg}`);
30
- }
31
- ctx.trace?.addEvent?.("mind.init.step", { msg });
32
- }
33
- });
34
- ctx.trace?.addEvent?.("mind.init.complete", {
35
- mindDir,
36
- cwd
37
- });
38
- const artifacts = [];
39
- const artifactPatterns = [
40
- { name: "Index", pattern: "index.json", description: "Main Mind index" },
41
- { name: "API Index", pattern: "api-index.json", description: "API index" },
42
- { name: "Dependencies", pattern: "deps.json", description: "Dependencies graph" },
43
- { name: "Recent Diff", pattern: "recent-diff.json", description: "Recent changes diff" }
44
- ];
45
- for (const { name, pattern, description } of artifactPatterns) {
46
- const artifactPath = join(mindDir, pattern);
47
- try {
48
- const stats = await promises.stat(artifactPath);
49
- artifacts.push({
50
- name,
51
- path: artifactPath,
52
- size: stats.size,
53
- modified: stats.mtime,
54
- description
55
- });
56
- } catch {
57
- }
58
- }
59
- ctx.trace?.addEvent?.("mind.init.artifacts", {
60
- mindDir,
61
- artifactsCount: artifacts.length
62
- });
63
- const timing = Date.now() - startTime;
64
- if (flags.json) {
65
- ctx.ui.info(JSON.stringify({
66
- ok: true,
67
- summary: {
68
- Workspace: mindDir,
69
- Status: "Initialized"
70
- },
71
- artifacts,
72
- timingMs: timing,
73
- data: {
74
- mindDir,
75
- cwd
76
- }
77
- }));
78
- } else if (!flags.quiet) {
79
- const artifactItems = [];
80
- for (const artifact of artifacts) {
81
- artifactItems.push(`\u2713 ${artifact.name}: ${artifact.description}`);
82
- }
83
- const sections = [
84
- {
85
- header: "Summary",
86
- items: [
87
- `Workspace: ${mindDir}`,
88
- `Status: Initialized`
89
- ]
90
- }
91
- ];
92
- if (artifacts.length > 0) {
93
- sections.push({
94
- header: "Created Artifacts",
95
- items: artifactItems
96
- });
97
- }
98
- ctx.ui.success("Mind workspace initialized", {
99
- title: "Mind Init",
100
- sections,
101
- timing
102
- });
103
- }
104
- return {
105
- exitCode: 0,
106
- mindDir,
107
- artifacts
108
- };
109
- }
110
- }
111
- });
112
-
113
- export { init_default as default };
114
- //# sourceMappingURL=init.js.map
115
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/cli/commands/init.ts"],"names":["fsp"],"mappings":"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","file":"init.js","sourcesContent":["/**\n * Mind init command (V3)\n *\n * V3 Migration:\n * - Default export with defineCommand\n * - handler: { execute(ctx, input) }\n * - NO permissions (inherited from manifest)\n * - ctx.ui, ctx.logger, ctx.state (flat structure)\n */\n\nimport { defineCommand, type PluginContextV3 } from '@kb-labs/sdk';\nimport { initMindStructure } from '@kb-labs/mind-indexer';\nimport { join } from 'node:path';\nimport { promises as fsp } from 'node:fs';\n\ninterface InitInput {\n argv: string[];\n flags: {\n cwd?: string;\n force?: boolean;\n json?: boolean;\n verbose?: boolean;\n quiet?: boolean;\n };\n}\n\ninterface InitResult {\n exitCode: number;\n mindDir?: string;\n artifacts?: Array<{\n name: string;\n path: string;\n size: number;\n modified: Date;\n description: string;\n }>;\n}\n\n// V3: Default export - REQUIRED\nexport default defineCommand({\n id: 'mind:init',\n description: 'Initialize mind workspace',\n\n // ❌ NO permissions here - they are in manifest.v3.ts!\n // Permissions are manifest-wide in V3\n\n handler: {\n async execute(ctx: PluginContextV3, input: InitInput): Promise<InitResult> {\n const startTime = Date.now();\n const { flags } = input;\n\n const cwd = flags.cwd || ctx.cwd;\n\n // V3 API: Use trace for logging (logger not yet in runtime)\n ctx.trace?.addEvent?.('mind.init.start', {\n cwd,\n command: 'mind:init',\n force: flags.force,\n });\n\n ctx.trace?.addEvent?.('mind.init.initializing', { cwd, force: flags.force });\n\n // Initialize Mind structure\n const mindDir = await initMindStructure({\n cwd,\n force: flags.force,\n log: (entry: { msg?: string } | string) => {\n const msg = typeof entry === 'string' ? entry : (entry.msg ?? '');\n if (!flags.quiet && !flags.json) {\n // V3 API: ctx.ui (not ctx.output.ui)\n ctx.ui.info(`Init: ${msg}`);\n }\n ctx.trace?.addEvent?.('mind.init.step', { msg });\n },\n });\n\n ctx.trace?.addEvent?.('mind.init.complete', {\n mindDir,\n cwd,\n });\n\n // Discover created artifacts\n const artifacts: InitResult['artifacts'] = [];\n\n const artifactPatterns = [\n { name: 'Index', pattern: 'index.json', description: 'Main Mind index' },\n { name: 'API Index', pattern: 'api-index.json', description: 'API index' },\n { name: 'Dependencies', pattern: 'deps.json', description: 'Dependencies graph' },\n { name: 'Recent Diff', pattern: 'recent-diff.json', description: 'Recent changes diff' },\n ];\n\n for (const { name, pattern, description } of artifactPatterns) {\n const artifactPath = join(mindDir, pattern);\n try {\n const stats = await fsp.stat(artifactPath);\n artifacts.push({\n name,\n path: artifactPath,\n size: stats.size,\n modified: stats.mtime,\n description,\n });\n } catch {\n // Artifact doesn't exist, skip\n }\n }\n\n ctx.trace?.addEvent?.('mind.init.artifacts', {\n mindDir,\n artifactsCount: artifacts.length,\n });\n\n const timing = Date.now() - startTime;\n\n // Output result\n if (flags.json) {\n // V3 API: Write JSON to stdout directly\n ctx.ui.info(JSON.stringify({\n ok: true,\n summary: {\n Workspace: mindDir,\n Status: 'Initialized',\n },\n artifacts,\n timingMs: timing,\n data: {\n mindDir,\n cwd,\n },\n }));\n } else if (!flags.quiet) {\n // V3 API: Enhanced UI with MessageOptions\n const artifactItems: string[] = [];\n for (const artifact of artifacts) {\n artifactItems.push(`✓ ${artifact.name}: ${artifact.description}`);\n }\n\n const sections: Array<{ header?: string; items: string[] }> = [\n {\n header: 'Summary',\n items: [\n `Workspace: ${mindDir}`,\n `Status: Initialized`,\n ],\n },\n ];\n\n if (artifacts.length > 0) {\n sections.push({\n header: 'Created Artifacts',\n items: artifactItems,\n });\n }\n\n // V3 API: ctx.ui.success with MessageOptions (enhanced UI)\n ctx.ui.success('Mind workspace initialized', {\n title: 'Mind Init',\n sections,\n timing,\n });\n }\n\n // V3: Return structured result with exitCode\n return {\n exitCode: 0,\n mindDir,\n artifacts,\n };\n },\n },\n});\n"]}
@@ -1,20 +0,0 @@
1
- import * as _kb_labs_shared_command_kit from '@kb-labs/shared-command-kit';
2
-
3
- /**
4
- * Mind rag-index command - build Mind indexes (V3)
5
- */
6
- interface RagIndexInput {
7
- argv: string[];
8
- flags: {
9
- cwd?: string;
10
- scope?: string;
11
- include?: string;
12
- exclude?: string;
13
- skipDeduplication?: boolean;
14
- json?: boolean;
15
- quiet?: boolean;
16
- };
17
- }
18
- declare const _default: _kb_labs_shared_command_kit.CommandHandlerV3<unknown, RagIndexInput, unknown>;
19
-
20
- export { _default as default };