@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,261 @@
1
+ import { combinePermissions, kbPlatformPreset, defineCommandFlags } from '@kb-labs/sdk';
2
+ import { MIND_ROUTES, indexFlags, searchFlags, askFlags, exploreFlags, reindexFlags, dropFlags, syncPathsFlags, syncDeleteFlags, syncListFlags, statusFlags, MIND_BASE_PATH } from '@kb-labs/mind-contracts';
3
+
4
+ // src/manifest.ts
5
+ var pluginPermissions = combinePermissions().with(kbPlatformPreset).withFs({
6
+ mode: "readWrite",
7
+ // Distinct from old `@kb-labs/mind` (.kb/mind/**) so the two coexist
8
+ // during development; renamed to .kb/mind/** at the Phase 6 swap.
9
+ allow: [".kb/mind/**"]
10
+ }).withPlatform({
11
+ llm: true,
12
+ embeddings: true,
13
+ vectorStore: { collections: ["mind:"] },
14
+ cache: ["mind:"],
15
+ storage: true,
16
+ analytics: true
17
+ }).withQuotas({
18
+ timeoutMs: 6e5,
19
+ memoryMb: 512
20
+ }).build();
21
+ var manifest = {
22
+ schema: "kb.plugin/3",
23
+ id: "@kb-labs/mind",
24
+ version: "0.1.0",
25
+ configSection: "mind",
26
+ display: {
27
+ name: "Mind (RAG)",
28
+ description: "Retrieval-augmented knowledge engine \u2014 index and query your codebase and docs",
29
+ tags: ["rag", "search", "embeddings", "ai", "mind"]
30
+ },
31
+ platform: {
32
+ requires: ["cache", "storage"],
33
+ optional: ["llm", "embeddings", "vectorStore", "analytics"]
34
+ },
35
+ permissions: pluginPermissions,
36
+ cli: {
37
+ groupMeta: [{ path: "mind", describe: "Mind \u2014 RAG index & search" }],
38
+ commands: [
39
+ {
40
+ path: "mind index",
41
+ category: "Index",
42
+ operationType: "mutate",
43
+ describe: "Build or refresh a Mind index from source files.",
44
+ handler: "./cli/commands/index.js#default",
45
+ flags: defineCommandFlags(indexFlags.schema),
46
+ examples: ["kb mind index", "kb mind index --index code --scope src/"]
47
+ },
48
+ {
49
+ path: "mind search",
50
+ category: "Query",
51
+ operationType: "read",
52
+ describe: "Semantic + keyword search over a Mind index.",
53
+ handler: "./cli/commands/search.js#default",
54
+ flags: defineCommandFlags(searchFlags.schema),
55
+ examples: [
56
+ 'kb mind search --text "how does login work"',
57
+ 'kb mind search --text "ClassName" --index code --agent'
58
+ ]
59
+ },
60
+ {
61
+ path: "mind ask",
62
+ category: "Query",
63
+ operationType: "read",
64
+ describe: "Ask a question and get a grounded answer with citations.",
65
+ handler: "./cli/commands/ask.js#default",
66
+ flags: defineCommandFlags(askFlags.schema),
67
+ examples: [
68
+ 'kb mind ask --text "how does auth work" --index code',
69
+ 'kb mind ask --text "billing flow" --mode thinking --agent'
70
+ ]
71
+ },
72
+ {
73
+ path: "mind explore",
74
+ category: "Query",
75
+ operationType: "read",
76
+ describe: "Task-orientation map \u2014 where to start and how involved a task looks.",
77
+ handler: "./cli/commands/explore.js#default",
78
+ flags: defineCommandFlags(exploreFlags.schema),
79
+ examples: [
80
+ 'kb mind explore --task "add rate limiting to the gateway" --index code',
81
+ 'kb mind explore --task "where is auth handled" --format json'
82
+ ]
83
+ },
84
+ {
85
+ path: "mind reindex",
86
+ category: "Index",
87
+ operationType: "mutate",
88
+ describe: "Rebuild an index from source files.",
89
+ handler: "./cli/commands/reindex.js#default",
90
+ flags: defineCommandFlags(reindexFlags.schema),
91
+ examples: ["kb mind reindex --index code --full"]
92
+ },
93
+ {
94
+ path: "mind drop",
95
+ category: "Index",
96
+ operationType: "mutate",
97
+ describe: "Drop an entire index (all vectors + manifest).",
98
+ handler: "./cli/commands/drop.js#default",
99
+ flags: defineCommandFlags(dropFlags.schema),
100
+ examples: ["kb mind drop --index kbrt --yes"]
101
+ },
102
+ {
103
+ path: "mind sync add",
104
+ category: "Sync",
105
+ operationType: "mutate",
106
+ describe: "Add documents to an index (incremental).",
107
+ handler: "./cli/commands/sync-add.js#default",
108
+ flags: defineCommandFlags(syncPathsFlags.schema),
109
+ examples: ["kb mind sync add src/new.ts --index code"]
110
+ },
111
+ {
112
+ path: "mind sync update",
113
+ category: "Sync",
114
+ operationType: "mutate",
115
+ describe: "Re-index updated documents (incremental).",
116
+ handler: "./cli/commands/sync-update.js#default",
117
+ flags: defineCommandFlags(syncPathsFlags.schema),
118
+ examples: ["kb mind sync update src/auth.ts --index code"]
119
+ },
120
+ {
121
+ path: "mind sync delete",
122
+ category: "Sync",
123
+ operationType: "mutate",
124
+ describe: "Remove documents from an index (incremental).",
125
+ handler: "./cli/commands/sync-delete.js#default",
126
+ flags: defineCommandFlags(syncDeleteFlags.schema),
127
+ examples: ["kb mind sync delete src/old.ts --index code"]
128
+ },
129
+ {
130
+ path: "mind sync list",
131
+ category: "Sync",
132
+ operationType: "read",
133
+ describe: "List documents synced into an index.",
134
+ handler: "./cli/commands/sync-list.js#default",
135
+ flags: defineCommandFlags(syncListFlags.schema),
136
+ examples: ["kb mind sync list --index code"]
137
+ },
138
+ {
139
+ // Leaf must be unique across the group tree: `mind status` already
140
+ // uses leaf `status`, so the sync variant uses `health`.
141
+ path: "mind sync health",
142
+ category: "Sync",
143
+ operationType: "read",
144
+ describe: "Show sync health for an index.",
145
+ handler: "./cli/commands/sync-status.js#default",
146
+ flags: defineCommandFlags(syncListFlags.schema),
147
+ examples: ["kb mind sync health --index code"]
148
+ },
149
+ {
150
+ path: "mind status",
151
+ category: "Index",
152
+ operationType: "read",
153
+ describe: "Show Mind index status.",
154
+ handler: "./cli/commands/status.js#default",
155
+ flags: defineCommandFlags(statusFlags.schema),
156
+ examples: ["kb mind status", "kb mind status --index code"]
157
+ }
158
+ ]
159
+ },
160
+ rest: {
161
+ basePath: MIND_BASE_PATH,
162
+ routes: [
163
+ {
164
+ method: "POST",
165
+ path: MIND_ROUTES.INDEX,
166
+ handler: "./rest/handlers/index.js#default",
167
+ input: { zod: "@kb-labs/mind-contracts#IndexRequestSchema" },
168
+ output: { zod: "@kb-labs/mind-contracts#IndexResponseSchema" },
169
+ timeoutMs: 6e5
170
+ },
171
+ {
172
+ method: "POST",
173
+ path: MIND_ROUTES.SEARCH,
174
+ handler: "./rest/handlers/search.js#default",
175
+ input: { zod: "@kb-labs/mind-contracts#SearchRequestSchema" },
176
+ output: { zod: "@kb-labs/mind-contracts#SearchResponseSchema" }
177
+ },
178
+ {
179
+ method: "POST",
180
+ path: MIND_ROUTES.QUERY,
181
+ handler: "./rest/handlers/query.js#default",
182
+ input: { zod: "@kb-labs/mind-contracts#QueryRequestSchema" },
183
+ output: { zod: "@kb-labs/mind-contracts#AgentResponseSchema" },
184
+ timeoutMs: 12e4
185
+ },
186
+ {
187
+ method: "POST",
188
+ path: MIND_ROUTES.EXPLORE,
189
+ handler: "./rest/handlers/explore.js#default",
190
+ input: { zod: "@kb-labs/mind-contracts#ExploreRequestSchema" },
191
+ output: { zod: "@kb-labs/mind-contracts#ExploreResponseSchema" },
192
+ timeoutMs: 12e4
193
+ },
194
+ {
195
+ method: "DELETE",
196
+ path: MIND_ROUTES.DROP,
197
+ handler: "./rest/handlers/drop.js#default",
198
+ input: { zod: "@kb-labs/mind-contracts#DropRequestSchema" },
199
+ output: { zod: "@kb-labs/mind-contracts#DropResponseSchema" }
200
+ },
201
+ {
202
+ method: "GET",
203
+ path: MIND_ROUTES.STATUS,
204
+ handler: "./rest/handlers/status.js#default",
205
+ output: { zod: "@kb-labs/mind-contracts#StatusResponseSchema" }
206
+ },
207
+ {
208
+ method: "GET",
209
+ path: MIND_ROUTES.HEALTH,
210
+ handler: "./rest/handlers/health.js#default",
211
+ output: { zod: "@kb-labs/mind-contracts#HealthResponseSchema" }
212
+ },
213
+ {
214
+ method: "POST",
215
+ path: MIND_ROUTES.REINDEX,
216
+ handler: "./rest/handlers/reindex.js#default",
217
+ input: { zod: "@kb-labs/mind-contracts#ReindexRequestSchema" },
218
+ output: { zod: "@kb-labs/mind-contracts#IndexResponseSchema" },
219
+ timeoutMs: 6e5
220
+ },
221
+ {
222
+ method: "POST",
223
+ path: MIND_ROUTES.SYNC_ADD,
224
+ handler: "./rest/handlers/sync-add.js#default",
225
+ input: { zod: "@kb-labs/mind-contracts#SyncAddRequestSchema" },
226
+ output: { zod: "@kb-labs/mind-contracts#SyncResponseSchema" }
227
+ },
228
+ {
229
+ method: "POST",
230
+ path: MIND_ROUTES.SYNC_UPDATE,
231
+ handler: "./rest/handlers/sync-update.js#default",
232
+ input: { zod: "@kb-labs/mind-contracts#SyncUpdateRequestSchema" },
233
+ output: { zod: "@kb-labs/mind-contracts#SyncResponseSchema" }
234
+ },
235
+ {
236
+ method: "POST",
237
+ path: MIND_ROUTES.SYNC_DELETE,
238
+ handler: "./rest/handlers/sync-delete.js#default",
239
+ input: { zod: "@kb-labs/mind-contracts#SyncDeleteRequestSchema" },
240
+ output: { zod: "@kb-labs/mind-contracts#SyncResponseSchema" }
241
+ },
242
+ {
243
+ method: "GET",
244
+ path: MIND_ROUTES.SYNC_LIST,
245
+ handler: "./rest/handlers/sync-list.js#default",
246
+ output: { zod: "@kb-labs/mind-contracts#SyncListResponseSchema" }
247
+ },
248
+ {
249
+ method: "GET",
250
+ path: MIND_ROUTES.SYNC_STATUS,
251
+ handler: "./rest/handlers/sync-status.js#default",
252
+ output: { zod: "@kb-labs/mind-contracts#SyncStatusResponseSchema" }
253
+ }
254
+ ]
255
+ }
256
+ };
257
+ var manifest_default = manifest;
258
+
259
+ export { manifest_default as default, manifest };
260
+ //# sourceMappingURL=manifest.js.map
261
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/manifest.ts"],"names":[],"mappings":"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","file":"manifest.js","sourcesContent":["/**\n * KB Labs Mind Plugin — Manifest (kb.plugin/3)\n *\n * Phase 0 placeholder: discovered and built, but exposes no commands/routes yet.\n * CLI commands, REST routes and Studio pages are filled in across later phases.\n *\n * All imports come from `@kb-labs/sdk` only — no platform internals.\n */\n\nimport {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n MIND_BASE_PATH,\n MIND_ROUTES,\n indexFlags,\n searchFlags,\n askFlags,\n exploreFlags,\n dropFlags,\n statusFlags,\n syncPathsFlags,\n syncDeleteFlags,\n syncListFlags,\n reindexFlags,\n} from '@kb-labs/mind-contracts';\n\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n // Distinct from old `@kb-labs/mind` (.kb/mind/**) so the two coexist\n // during development; renamed to .kb/mind/** at the Phase 6 swap.\n allow: ['.kb/mind/**'],\n })\n .withPlatform({\n llm: true,\n embeddings: true,\n vectorStore: { collections: ['mind:'] },\n cache: ['mind:'],\n storage: true,\n analytics: true,\n })\n .withQuotas({\n timeoutMs: 600000,\n memoryMb: 512,\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/mind',\n version: '0.1.0',\n configSection: 'mind',\n\n display: {\n name: 'Mind (RAG)',\n description: 'Retrieval-augmented knowledge engine — index and query your codebase and docs',\n tags: ['rag', 'search', 'embeddings', 'ai', 'mind'],\n },\n\n platform: {\n requires: ['cache', 'storage'],\n optional: ['llm', 'embeddings', 'vectorStore', 'analytics'],\n },\n\n permissions: pluginPermissions,\n\n cli: {\n groupMeta: [{ path: 'mind', describe: 'Mind — RAG index & search' }],\n commands: [\n {\n path: 'mind index',\n category: 'Index',\n operationType: 'mutate' as const,\n describe: 'Build or refresh a Mind index from source files.',\n handler: './cli/commands/index.js#default',\n flags: defineCommandFlags(indexFlags.schema),\n examples: ['kb mind index', 'kb mind index --index code --scope src/'],\n },\n {\n path: 'mind search',\n category: 'Query',\n operationType: 'read' as const,\n describe: 'Semantic + keyword search over a Mind index.',\n handler: './cli/commands/search.js#default',\n flags: defineCommandFlags(searchFlags.schema),\n examples: [\n 'kb mind search --text \"how does login work\"',\n 'kb mind search --text \"ClassName\" --index code --agent',\n ],\n },\n {\n path: 'mind ask',\n category: 'Query',\n operationType: 'read' as const,\n describe: 'Ask a question and get a grounded answer with citations.',\n handler: './cli/commands/ask.js#default',\n flags: defineCommandFlags(askFlags.schema),\n examples: [\n 'kb mind ask --text \"how does auth work\" --index code',\n 'kb mind ask --text \"billing flow\" --mode thinking --agent',\n ],\n },\n {\n path: 'mind explore',\n category: 'Query',\n operationType: 'read' as const,\n describe: 'Task-orientation map — where to start and how involved a task looks.',\n handler: './cli/commands/explore.js#default',\n flags: defineCommandFlags(exploreFlags.schema),\n examples: [\n 'kb mind explore --task \"add rate limiting to the gateway\" --index code',\n 'kb mind explore --task \"where is auth handled\" --format json',\n ],\n },\n {\n path: 'mind reindex',\n category: 'Index',\n operationType: 'mutate' as const,\n describe: 'Rebuild an index from source files.',\n handler: './cli/commands/reindex.js#default',\n flags: defineCommandFlags(reindexFlags.schema),\n examples: ['kb mind reindex --index code --full'],\n },\n {\n path: 'mind drop',\n category: 'Index',\n operationType: 'mutate' as const,\n describe: 'Drop an entire index (all vectors + manifest).',\n handler: './cli/commands/drop.js#default',\n flags: defineCommandFlags(dropFlags.schema),\n examples: ['kb mind drop --index kbrt --yes'],\n },\n {\n path: 'mind sync add',\n category: 'Sync',\n operationType: 'mutate' as const,\n describe: 'Add documents to an index (incremental).',\n handler: './cli/commands/sync-add.js#default',\n flags: defineCommandFlags(syncPathsFlags.schema),\n examples: ['kb mind sync add src/new.ts --index code'],\n },\n {\n path: 'mind sync update',\n category: 'Sync',\n operationType: 'mutate' as const,\n describe: 'Re-index updated documents (incremental).',\n handler: './cli/commands/sync-update.js#default',\n flags: defineCommandFlags(syncPathsFlags.schema),\n examples: ['kb mind sync update src/auth.ts --index code'],\n },\n {\n path: 'mind sync delete',\n category: 'Sync',\n operationType: 'mutate' as const,\n describe: 'Remove documents from an index (incremental).',\n handler: './cli/commands/sync-delete.js#default',\n flags: defineCommandFlags(syncDeleteFlags.schema),\n examples: ['kb mind sync delete src/old.ts --index code'],\n },\n {\n path: 'mind sync list',\n category: 'Sync',\n operationType: 'read' as const,\n describe: 'List documents synced into an index.',\n handler: './cli/commands/sync-list.js#default',\n flags: defineCommandFlags(syncListFlags.schema),\n examples: ['kb mind sync list --index code'],\n },\n {\n // Leaf must be unique across the group tree: `mind status` already\n // uses leaf `status`, so the sync variant uses `health`.\n path: 'mind sync health',\n category: 'Sync',\n operationType: 'read' as const,\n describe: 'Show sync health for an index.',\n handler: './cli/commands/sync-status.js#default',\n flags: defineCommandFlags(syncListFlags.schema),\n examples: ['kb mind sync health --index code'],\n },\n {\n path: 'mind status',\n category: 'Index',\n operationType: 'read' as const,\n describe: 'Show Mind index status.',\n handler: './cli/commands/status.js#default',\n flags: defineCommandFlags(statusFlags.schema),\n examples: ['kb mind status', 'kb mind status --index code'],\n },\n ],\n },\n\n rest: {\n basePath: MIND_BASE_PATH,\n routes: [\n {\n method: 'POST',\n path: MIND_ROUTES.INDEX,\n handler: './rest/handlers/index.js#default',\n input: { zod: '@kb-labs/mind-contracts#IndexRequestSchema' },\n output: { zod: '@kb-labs/mind-contracts#IndexResponseSchema' },\n timeoutMs: 600000,\n },\n {\n method: 'POST',\n path: MIND_ROUTES.SEARCH,\n handler: './rest/handlers/search.js#default',\n input: { zod: '@kb-labs/mind-contracts#SearchRequestSchema' },\n output: { zod: '@kb-labs/mind-contracts#SearchResponseSchema' },\n },\n {\n method: 'POST',\n path: MIND_ROUTES.QUERY,\n handler: './rest/handlers/query.js#default',\n input: { zod: '@kb-labs/mind-contracts#QueryRequestSchema' },\n output: { zod: '@kb-labs/mind-contracts#AgentResponseSchema' },\n timeoutMs: 120000,\n },\n {\n method: 'POST',\n path: MIND_ROUTES.EXPLORE,\n handler: './rest/handlers/explore.js#default',\n input: { zod: '@kb-labs/mind-contracts#ExploreRequestSchema' },\n output: { zod: '@kb-labs/mind-contracts#ExploreResponseSchema' },\n timeoutMs: 120000,\n },\n {\n method: 'DELETE',\n path: MIND_ROUTES.DROP,\n handler: './rest/handlers/drop.js#default',\n input: { zod: '@kb-labs/mind-contracts#DropRequestSchema' },\n output: { zod: '@kb-labs/mind-contracts#DropResponseSchema' },\n },\n {\n method: 'GET',\n path: MIND_ROUTES.STATUS,\n handler: './rest/handlers/status.js#default',\n output: { zod: '@kb-labs/mind-contracts#StatusResponseSchema' },\n },\n {\n method: 'GET',\n path: MIND_ROUTES.HEALTH,\n handler: './rest/handlers/health.js#default',\n output: { zod: '@kb-labs/mind-contracts#HealthResponseSchema' },\n },\n {\n method: 'POST',\n path: MIND_ROUTES.REINDEX,\n handler: './rest/handlers/reindex.js#default',\n input: { zod: '@kb-labs/mind-contracts#ReindexRequestSchema' },\n output: { zod: '@kb-labs/mind-contracts#IndexResponseSchema' },\n timeoutMs: 600000,\n },\n {\n method: 'POST',\n path: MIND_ROUTES.SYNC_ADD,\n handler: './rest/handlers/sync-add.js#default',\n input: { zod: '@kb-labs/mind-contracts#SyncAddRequestSchema' },\n output: { zod: '@kb-labs/mind-contracts#SyncResponseSchema' },\n },\n {\n method: 'POST',\n path: MIND_ROUTES.SYNC_UPDATE,\n handler: './rest/handlers/sync-update.js#default',\n input: { zod: '@kb-labs/mind-contracts#SyncUpdateRequestSchema' },\n output: { zod: '@kb-labs/mind-contracts#SyncResponseSchema' },\n },\n {\n method: 'POST',\n path: MIND_ROUTES.SYNC_DELETE,\n handler: './rest/handlers/sync-delete.js#default',\n input: { zod: '@kb-labs/mind-contracts#SyncDeleteRequestSchema' },\n output: { zod: '@kb-labs/mind-contracts#SyncResponseSchema' },\n },\n {\n method: 'GET',\n path: MIND_ROUTES.SYNC_LIST,\n handler: './rest/handlers/sync-list.js#default',\n output: { zod: '@kb-labs/mind-contracts#SyncListResponseSchema' },\n },\n {\n method: 'GET',\n path: MIND_ROUTES.SYNC_STATUS,\n handler: './rest/handlers/sync-status.js#default',\n output: { zod: '@kb-labs/mind-contracts#SyncStatusResponseSchema' },\n },\n ],\n },\n};\n\nexport default manifest;\n"]}
@@ -0,0 +1,12 @@
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
+ indexId: string;
6
+ }, unknown>, {
7
+ indexId: string;
8
+ droppedChunks: number;
9
+ droppedFiles: number;
10
+ }>;
11
+
12
+ 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 { DropRequestSchema, resolveMindConfig } from '@kb-labs/mind-contracts';
3
+ import { createMind } from '@kb-labs/mind-core';
4
+
5
+ // src/rest/handlers/drop.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/drop.ts
45
+ var drop_default = defineHandler({
46
+ async execute(_ctx, input) {
47
+ try {
48
+ const req = DropRequestSchema.parse(input.body ?? {});
49
+ const mind = await buildMind();
50
+ return await mind.drop(req);
51
+ } catch (err) {
52
+ return rethrowForRest(err);
53
+ }
54
+ }
55
+ });
56
+
57
+ export { drop_default as default };
58
+ //# sourceMappingURL=drop.js.map
59
+ //# sourceMappingURL=drop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/platform.ts","../../../src/rest/handlers/drop.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,eAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,IAAA,EAAuB,KAAA,EAA+D;AAClG,IAAA,IAAI;AACF,MAAA,MAAM,MAAM,iBAAA,CAAkB,KAAA,CAAM,KAAA,CAAM,IAAA,IAAQ,EAAE,CAAA;AACpD,MAAA,MAAM,IAAA,GAAO,MAAM,SAAA,EAAU;AAC7B,MAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA;AAAA,IAC5B,SAAS,GAAA,EAAK;AACZ,MAAA,OAAO,eAAe,GAAG,CAAA;AAAA,IAC3B;AAAA,EACF;AACF,CAAC","file":"drop.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 { DropRequestSchema, type DropRequest, type DropResponse } from '@kb-labs/mind-contracts';\nimport { buildMind } from '../../platform';\n\nexport default defineHandler({\n async execute(_ctx: PluginContextV3, input: RestInput<unknown, DropRequest>): Promise<DropResponse> {\n try {\n const req = DropRequestSchema.parse(input.body ?? {});\n const mind = await buildMind();\n return await mind.drop(req);\n } catch (err) {\n return rethrowForRest(err);\n }\n },\n});\n"]}
@@ -0,0 +1,30 @@
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
+ task: string;
6
+ limit?: number | undefined;
7
+ indexId?: string | undefined;
8
+ }, unknown>, {
9
+ confidence: number;
10
+ task: string;
11
+ indexId: string;
12
+ meta: {
13
+ requestId: string;
14
+ timingMs: number;
15
+ filesTouched: number;
16
+ spread: number;
17
+ } & {
18
+ [k: string]: unknown;
19
+ };
20
+ summary: string;
21
+ files: {
22
+ file: string;
23
+ lines: [number, number];
24
+ matchedBy: "lexical" | "semantic" | "both";
25
+ stale: boolean;
26
+ why: string;
27
+ }[];
28
+ }>;
29
+
30
+ 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 { ExploreRequestSchema, resolveMindConfig } from '@kb-labs/mind-contracts';
3
+ import { createMind } from '@kb-labs/mind-core';
4
+
5
+ // src/rest/handlers/explore.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/explore.ts
45
+ var explore_default = defineHandler({
46
+ async execute(_ctx, input) {
47
+ try {
48
+ const req = ExploreRequestSchema.parse(input.body ?? {});
49
+ const mind = await buildMind();
50
+ return await mind.explore(req);
51
+ } catch (err) {
52
+ return rethrowForRest(err);
53
+ }
54
+ }
55
+ });
56
+
57
+ export { explore_default as default };
58
+ //# sourceMappingURL=explore.js.map
59
+ //# sourceMappingURL=explore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/platform.ts","../../../src/rest/handlers/explore.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;;;AC3DA,IAAO,kBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,IAAA,EAAuB,KAAA,EAAqE;AACxG,IAAA,IAAI;AACF,MAAA,MAAM,MAAM,oBAAA,CAAqB,KAAA,CAAM,KAAA,CAAM,IAAA,IAAQ,EAAE,CAAA;AACvD,MAAA,MAAM,IAAA,GAAO,MAAM,SAAA,EAAU;AAC7B,MAAA,OAAO,MAAM,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC/B,SAAS,GAAA,EAAK;AACZ,MAAA,OAAO,eAAe,GAAG,CAAA;AAAA,IAC3B;AAAA,EACF;AACF,CAAC","file":"explore.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 {\n ExploreRequestSchema,\n type ExploreRequest,\n type ExploreResponse,\n} from '@kb-labs/mind-contracts';\nimport { buildMind } from '../../platform';\n\nexport default defineHandler({\n async execute(_ctx: PluginContextV3, input: RestInput<unknown, ExploreRequest>): Promise<ExploreResponse> {\n try {\n const req = ExploreRequestSchema.parse(input.body ?? {});\n const mind = await buildMind();\n return await mind.explore(req);\n } catch (err) {\n return rethrowForRest(err);\n }\n },\n});\n"]}
@@ -0,0 +1,11 @@
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, unknown, unknown>, {
5
+ ok: boolean;
6
+ vectorStore: boolean;
7
+ embeddings: boolean;
8
+ llm: boolean;
9
+ }>;
10
+
11
+ 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/health.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/health.ts
45
+ var health_default = defineHandler({
46
+ async execute(_ctx, _input) {
47
+ try {
48
+ const mind = await buildMind();
49
+ return await mind.health();
50
+ } catch (err) {
51
+ return rethrowForRest(err);
52
+ }
53
+ }
54
+ });
55
+
56
+ export { health_default as default };
57
+ //# sourceMappingURL=health.js.map
58
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/platform.ts","../../../src/rest/handlers/health.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,iBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,IAAA,EAAuB,MAAA,EAA8D;AACjG,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,MAAM,SAAA,EAAU;AAC7B,MAAA,OAAO,MAAM,KAAK,MAAA,EAAO;AAAA,IAC3B,SAAS,GAAA,EAAK;AACZ,MAAA,OAAO,eAAe,GAAG,CAAA;AAAA,IAC3B;AAAA,EACF;AACF,CAAC","file":"health.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 { HealthResponse } from '@kb-labs/mind-contracts';\nimport { buildMind } from '../../platform';\n\nexport default defineHandler({\n async execute(_ctx: PluginContextV3, _input: RestInput<unknown, unknown>): Promise<HealthResponse> {\n try {\n const mind = await buildMind();\n return await mind.health();\n } catch (err) {\n return rethrowForRest(err);\n }\n },\n});\n"]}
@@ -0,0 +1,15 @@
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
+ scope?: string | undefined;
6
+ full?: boolean | undefined;
7
+ indexId?: string | undefined;
8
+ }, unknown>, {
9
+ durationMs: number;
10
+ indexId: string;
11
+ filesIndexed: number;
12
+ chunks: number;
13
+ }>;
14
+
15
+ 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 { IndexRequestSchema, resolveMindConfig } from '@kb-labs/mind-contracts';
3
+ import { createMind } from '@kb-labs/mind-core';
4
+
5
+ // src/rest/handlers/index.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/index.ts
45
+ var handlers_default = defineHandler({
46
+ async execute(_ctx, input) {
47
+ try {
48
+ const req = IndexRequestSchema.parse(input.body ?? {});
49
+ const mind = await buildMind();
50
+ return await mind.index(req);
51
+ } catch (err) {
52
+ return rethrowForRest(err);
53
+ }
54
+ }
55
+ });
56
+
57
+ export { handlers_default as default };
58
+ //# sourceMappingURL=index.js.map
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/platform.ts","../../../src/rest/handlers/index.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;;;AC3DA,IAAO,mBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,IAAA,EAAuB,KAAA,EAAiE;AACpG,IAAA,IAAI;AACF,MAAA,MAAM,MAAM,kBAAA,CAAmB,KAAA,CAAM,KAAA,CAAM,IAAA,IAAQ,EAAE,CAAA;AACrD,MAAA,MAAM,IAAA,GAAO,MAAM,SAAA,EAAU;AAC7B,MAAA,OAAO,MAAM,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAAA,IAC7B,SAAS,GAAA,EAAK;AACZ,MAAA,OAAO,eAAe,GAAG,CAAA;AAAA,IAC3B;AAAA,EACF;AACF,CAAC","file":"index.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 {\n IndexRequestSchema,\n type IndexRequest,\n type IndexResponse,\n} from '@kb-labs/mind-contracts';\nimport { buildMind } from '../../platform';\n\nexport default defineHandler({\n async execute(_ctx: PluginContextV3, input: RestInput<unknown, IndexRequest>): Promise<IndexResponse> {\n try {\n const req = IndexRequestSchema.parse(input.body ?? {});\n const mind = await buildMind();\n return await mind.index(req);\n } catch (err) {\n return rethrowForRest(err);\n }\n },\n});\n"]}