src-mcp 1.0.1 → 1.0.2

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 (249) hide show
  1. package/dist/bin.d.mts +1 -0
  2. package/dist/bin.mjs +205 -0
  3. package/dist/bin.mjs.map +1 -0
  4. package/dist/index.d.mts +1 -0
  5. package/dist/index.mjs +8 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/dist/server-B2Ms4jQx.mjs +3889 -0
  8. package/dist/server-B2Ms4jQx.mjs.map +1 -0
  9. package/package.json +10 -9
  10. package/dist/bin.d.ts +0 -3
  11. package/dist/bin.d.ts.map +0 -1
  12. package/dist/bin.js +0 -4
  13. package/dist/bin.js.map +0 -1
  14. package/dist/cli/adapter.d.ts +0 -7
  15. package/dist/cli/adapter.d.ts.map +0 -1
  16. package/dist/cli/adapter.js +0 -39
  17. package/dist/cli/adapter.js.map +0 -1
  18. package/dist/cli/commands/index.d.ts +0 -24
  19. package/dist/cli/commands/index.d.ts.map +0 -1
  20. package/dist/cli/commands/index.js +0 -13
  21. package/dist/cli/commands/index.js.map +0 -1
  22. package/dist/cli/commands/serve.command.d.ts +0 -21
  23. package/dist/cli/commands/serve.command.d.ts.map +0 -1
  24. package/dist/cli/commands/serve.command.js +0 -62
  25. package/dist/cli/commands/serve.command.js.map +0 -1
  26. package/dist/cli/commands/version.command.d.ts +0 -2
  27. package/dist/cli/commands/version.command.d.ts.map +0 -1
  28. package/dist/cli/commands/version.command.js +0 -12
  29. package/dist/cli/commands/version.command.js.map +0 -1
  30. package/dist/cli/index.d.ts +0 -2
  31. package/dist/cli/index.d.ts.map +0 -1
  32. package/dist/cli/index.js +0 -15
  33. package/dist/cli/index.js.map +0 -1
  34. package/dist/cli/parser.d.ts +0 -7
  35. package/dist/cli/parser.d.ts.map +0 -1
  36. package/dist/cli/parser.js +0 -99
  37. package/dist/cli/parser.js.map +0 -1
  38. package/dist/config/index.d.ts +0 -24
  39. package/dist/config/index.d.ts.map +0 -1
  40. package/dist/config/index.js +0 -38
  41. package/dist/config/index.js.map +0 -1
  42. package/dist/core/ast/index.d.ts +0 -82
  43. package/dist/core/ast/index.d.ts.map +0 -1
  44. package/dist/core/ast/index.js +0 -204
  45. package/dist/core/ast/index.js.map +0 -1
  46. package/dist/core/ast/types.d.ts +0 -152
  47. package/dist/core/ast/types.d.ts.map +0 -1
  48. package/dist/core/ast/types.js +0 -5
  49. package/dist/core/ast/types.js.map +0 -1
  50. package/dist/core/constants.d.ts +0 -17
  51. package/dist/core/constants.d.ts.map +0 -1
  52. package/dist/core/constants.js +0 -49
  53. package/dist/core/constants.js.map +0 -1
  54. package/dist/core/embeddings/callgraph.d.ts +0 -98
  55. package/dist/core/embeddings/callgraph.d.ts.map +0 -1
  56. package/dist/core/embeddings/callgraph.js +0 -415
  57. package/dist/core/embeddings/callgraph.js.map +0 -1
  58. package/dist/core/embeddings/chunker.d.ts +0 -37
  59. package/dist/core/embeddings/chunker.d.ts.map +0 -1
  60. package/dist/core/embeddings/chunker.js +0 -298
  61. package/dist/core/embeddings/chunker.js.map +0 -1
  62. package/dist/core/embeddings/client.d.ts +0 -30
  63. package/dist/core/embeddings/client.d.ts.map +0 -1
  64. package/dist/core/embeddings/client.js +0 -65
  65. package/dist/core/embeddings/client.js.map +0 -1
  66. package/dist/core/embeddings/crossfile.d.ts +0 -58
  67. package/dist/core/embeddings/crossfile.d.ts.map +0 -1
  68. package/dist/core/embeddings/crossfile.js +0 -202
  69. package/dist/core/embeddings/crossfile.js.map +0 -1
  70. package/dist/core/embeddings/enricher.d.ts +0 -53
  71. package/dist/core/embeddings/enricher.d.ts.map +0 -1
  72. package/dist/core/embeddings/enricher.js +0 -308
  73. package/dist/core/embeddings/enricher.js.map +0 -1
  74. package/dist/core/embeddings/index.d.ts +0 -13
  75. package/dist/core/embeddings/index.d.ts.map +0 -1
  76. package/dist/core/embeddings/index.js +0 -20
  77. package/dist/core/embeddings/index.js.map +0 -1
  78. package/dist/core/embeddings/reranker.d.ts +0 -41
  79. package/dist/core/embeddings/reranker.d.ts.map +0 -1
  80. package/dist/core/embeddings/reranker.js +0 -117
  81. package/dist/core/embeddings/reranker.js.map +0 -1
  82. package/dist/core/embeddings/store.d.ts +0 -93
  83. package/dist/core/embeddings/store.d.ts.map +0 -1
  84. package/dist/core/embeddings/store.js +0 -304
  85. package/dist/core/embeddings/store.js.map +0 -1
  86. package/dist/core/embeddings/types.d.ts +0 -77
  87. package/dist/core/embeddings/types.d.ts.map +0 -1
  88. package/dist/core/embeddings/types.js +0 -5
  89. package/dist/core/embeddings/types.js.map +0 -1
  90. package/dist/core/embeddings/watcher.d.ts +0 -130
  91. package/dist/core/embeddings/watcher.d.ts.map +0 -1
  92. package/dist/core/embeddings/watcher.js +0 -448
  93. package/dist/core/embeddings/watcher.js.map +0 -1
  94. package/dist/core/fallback/index.d.ts +0 -26
  95. package/dist/core/fallback/index.d.ts.map +0 -1
  96. package/dist/core/fallback/index.js +0 -76
  97. package/dist/core/fallback/index.js.map +0 -1
  98. package/dist/core/parser/index.d.ts +0 -64
  99. package/dist/core/parser/index.d.ts.map +0 -1
  100. package/dist/core/parser/index.js +0 -205
  101. package/dist/core/parser/index.js.map +0 -1
  102. package/dist/core/parser/languages.d.ts +0 -26
  103. package/dist/core/parser/languages.d.ts.map +0 -1
  104. package/dist/core/parser/languages.js +0 -101
  105. package/dist/core/parser/languages.js.map +0 -1
  106. package/dist/core/queries/helpers.d.ts +0 -72
  107. package/dist/core/queries/helpers.d.ts.map +0 -1
  108. package/dist/core/queries/helpers.js +0 -101
  109. package/dist/core/queries/helpers.js.map +0 -1
  110. package/dist/core/queries/index.d.ts +0 -144
  111. package/dist/core/queries/index.d.ts.map +0 -1
  112. package/dist/core/queries/index.js +0 -396
  113. package/dist/core/queries/index.js.map +0 -1
  114. package/dist/core/queries/loader.d.ts +0 -46
  115. package/dist/core/queries/loader.d.ts.map +0 -1
  116. package/dist/core/queries/loader.js +0 -216
  117. package/dist/core/queries/loader.js.map +0 -1
  118. package/dist/core/queries/patterns.d.ts +0 -10
  119. package/dist/core/queries/patterns.d.ts.map +0 -1
  120. package/dist/core/queries/patterns.js +0 -112
  121. package/dist/core/queries/patterns.js.map +0 -1
  122. package/dist/core/symbols/index.d.ts +0 -70
  123. package/dist/core/symbols/index.d.ts.map +0 -1
  124. package/dist/core/symbols/index.js +0 -359
  125. package/dist/core/symbols/index.js.map +0 -1
  126. package/dist/core/unified/index.d.ts +0 -118
  127. package/dist/core/unified/index.d.ts.map +0 -1
  128. package/dist/core/unified/index.js +0 -428
  129. package/dist/core/unified/index.js.map +0 -1
  130. package/dist/core/utils/assets.d.ts +0 -34
  131. package/dist/core/utils/assets.d.ts.map +0 -1
  132. package/dist/core/utils/assets.js +0 -85
  133. package/dist/core/utils/assets.js.map +0 -1
  134. package/dist/core/utils/cache.d.ts +0 -43
  135. package/dist/core/utils/cache.d.ts.map +0 -1
  136. package/dist/core/utils/cache.js +0 -60
  137. package/dist/core/utils/cache.js.map +0 -1
  138. package/dist/core/utils/index.d.ts +0 -7
  139. package/dist/core/utils/index.d.ts.map +0 -1
  140. package/dist/core/utils/index.js +0 -10
  141. package/dist/core/utils/index.js.map +0 -1
  142. package/dist/core/utils/tsconfig.d.ts +0 -34
  143. package/dist/core/utils/tsconfig.d.ts.map +0 -1
  144. package/dist/core/utils/tsconfig.js +0 -173
  145. package/dist/core/utils/tsconfig.js.map +0 -1
  146. package/dist/features/analyze-file/index.d.ts +0 -15
  147. package/dist/features/analyze-file/index.d.ts.map +0 -1
  148. package/dist/features/analyze-file/index.js +0 -164
  149. package/dist/features/analyze-file/index.js.map +0 -1
  150. package/dist/features/get-call-graph/index.d.ts +0 -24
  151. package/dist/features/get-call-graph/index.d.ts.map +0 -1
  152. package/dist/features/get-call-graph/index.js +0 -246
  153. package/dist/features/get-call-graph/index.js.map +0 -1
  154. package/dist/features/get-index-status/index.d.ts +0 -20
  155. package/dist/features/get-index-status/index.d.ts.map +0 -1
  156. package/dist/features/get-index-status/index.js +0 -90
  157. package/dist/features/get-index-status/index.js.map +0 -1
  158. package/dist/features/index-codebase/index.d.ts +0 -24
  159. package/dist/features/index-codebase/index.d.ts.map +0 -1
  160. package/dist/features/index-codebase/index.js +0 -283
  161. package/dist/features/index-codebase/index.js.map +0 -1
  162. package/dist/features/index.d.ts +0 -15
  163. package/dist/features/index.d.ts.map +0 -1
  164. package/dist/features/index.js +0 -28
  165. package/dist/features/index.js.map +0 -1
  166. package/dist/features/info/index.d.ts +0 -19
  167. package/dist/features/info/index.d.ts.map +0 -1
  168. package/dist/features/info/index.js +0 -41
  169. package/dist/features/info/index.js.map +0 -1
  170. package/dist/features/list-symbols/index.d.ts +0 -22
  171. package/dist/features/list-symbols/index.d.ts.map +0 -1
  172. package/dist/features/list-symbols/index.js +0 -74
  173. package/dist/features/list-symbols/index.js.map +0 -1
  174. package/dist/features/parse-ast/index.d.ts +0 -12
  175. package/dist/features/parse-ast/index.d.ts.map +0 -1
  176. package/dist/features/parse-ast/index.js +0 -71
  177. package/dist/features/parse-ast/index.js.map +0 -1
  178. package/dist/features/query-code/index.d.ts +0 -23
  179. package/dist/features/query-code/index.d.ts.map +0 -1
  180. package/dist/features/query-code/index.js +0 -96
  181. package/dist/features/query-code/index.js.map +0 -1
  182. package/dist/features/search-code/index.d.ts +0 -39
  183. package/dist/features/search-code/index.d.ts.map +0 -1
  184. package/dist/features/search-code/index.js +0 -258
  185. package/dist/features/search-code/index.js.map +0 -1
  186. package/dist/features/types.d.ts +0 -14
  187. package/dist/features/types.d.ts.map +0 -1
  188. package/dist/features/types.js +0 -2
  189. package/dist/features/types.js.map +0 -1
  190. package/dist/features/update-index/index.d.ts +0 -24
  191. package/dist/features/update-index/index.d.ts.map +0 -1
  192. package/dist/features/update-index/index.js +0 -358
  193. package/dist/features/update-index/index.js.map +0 -1
  194. package/dist/features/utils/content.d.ts +0 -30
  195. package/dist/features/utils/content.d.ts.map +0 -1
  196. package/dist/features/utils/content.js +0 -49
  197. package/dist/features/utils/content.js.map +0 -1
  198. package/dist/features/utils/index.d.ts +0 -6
  199. package/dist/features/utils/index.d.ts.map +0 -1
  200. package/dist/features/utils/index.js +0 -8
  201. package/dist/features/utils/index.js.map +0 -1
  202. package/dist/features/utils/result.d.ts +0 -37
  203. package/dist/features/utils/result.d.ts.map +0 -1
  204. package/dist/features/utils/result.js +0 -53
  205. package/dist/features/utils/result.js.map +0 -1
  206. package/dist/index.d.ts +0 -2
  207. package/dist/index.d.ts.map +0 -1
  208. package/dist/index.js +0 -4
  209. package/dist/index.js.map +0 -1
  210. package/dist/prompts/index.d.ts +0 -9
  211. package/dist/prompts/index.d.ts.map +0 -1
  212. package/dist/prompts/index.js +0 -188
  213. package/dist/prompts/index.js.map +0 -1
  214. package/dist/resources/index.d.ts +0 -3
  215. package/dist/resources/index.d.ts.map +0 -1
  216. package/dist/resources/index.js +0 -17
  217. package/dist/resources/index.js.map +0 -1
  218. package/dist/server.d.ts +0 -4
  219. package/dist/server.d.ts.map +0 -1
  220. package/dist/server.js +0 -24
  221. package/dist/server.js.map +0 -1
  222. package/dist/tools/adapter.d.ts +0 -4
  223. package/dist/tools/adapter.d.ts.map +0 -1
  224. package/dist/tools/adapter.js +0 -28
  225. package/dist/tools/adapter.js.map +0 -1
  226. package/dist/tools/index.d.ts +0 -5
  227. package/dist/tools/index.d.ts.map +0 -1
  228. package/dist/tools/index.js +0 -9
  229. package/dist/tools/index.js.map +0 -1
  230. package/dist/types/index.d.ts +0 -20
  231. package/dist/types/index.d.ts.map +0 -1
  232. package/dist/types/index.js +0 -2
  233. package/dist/types/index.js.map +0 -1
  234. package/dist/utils/colors.d.ts +0 -24
  235. package/dist/utils/colors.d.ts.map +0 -1
  236. package/dist/utils/colors.js +0 -30
  237. package/dist/utils/colors.js.map +0 -1
  238. package/dist/utils/index.d.ts +0 -4
  239. package/dist/utils/index.d.ts.map +0 -1
  240. package/dist/utils/index.js +0 -4
  241. package/dist/utils/index.js.map +0 -1
  242. package/dist/utils/logger.d.ts +0 -8
  243. package/dist/utils/logger.d.ts.map +0 -1
  244. package/dist/utils/logger.js +0 -57
  245. package/dist/utils/logger.js.map +0 -1
  246. package/dist/utils/spinner.d.ts +0 -11
  247. package/dist/utils/spinner.d.ts.map +0 -1
  248. package/dist/utils/spinner.js +0 -36
  249. package/dist/utils/spinner.js.map +0 -1
package/dist/bin.d.mts ADDED
@@ -0,0 +1 @@
1
+ export { };
package/dist/bin.mjs ADDED
@@ -0,0 +1,205 @@
1
+ #!/usr/bin/env node
2
+ import { a as logger, i as colors, n as features, o as EMBEDDING_CONFIG, r as createIndexWatcher, s as config, t as startServer } from "./server-B2Ms4jQx.mjs";
3
+ import { defineCommand, runMain } from "citty";
4
+
5
+ //#region src/cli/parser.ts
6
+ /**
7
+ * Convert Zod schema to citty ArgsDef
8
+ */
9
+ function zodToCittyArgs(schema) {
10
+ if ("shape" in schema && typeof schema.shape === "object") {
11
+ const shape = schema.shape;
12
+ const args = {};
13
+ for (const [key, fieldSchema] of Object.entries(shape)) {
14
+ const description = getZodDescription(fieldSchema);
15
+ const isOptional = isZodOptional(fieldSchema);
16
+ const defaultValue = getZodDefault(fieldSchema);
17
+ args[key] = createArgDef(getZodBaseType(fieldSchema), description, isOptional, defaultValue);
18
+ }
19
+ return args;
20
+ }
21
+ return {};
22
+ }
23
+ function createArgDef(zodType, description, isOptional, defaultValue) {
24
+ const required = !isOptional && defaultValue === void 0;
25
+ if (zodType === "boolean") {
26
+ const arg$1 = {
27
+ type: "boolean",
28
+ required
29
+ };
30
+ if (description !== void 0) arg$1.description = description;
31
+ if (defaultValue !== void 0) arg$1.default = defaultValue;
32
+ return arg$1;
33
+ }
34
+ const arg = {
35
+ type: "string",
36
+ required
37
+ };
38
+ if (description !== void 0) arg.description = description;
39
+ if (defaultValue !== void 0) arg.default = defaultValue;
40
+ return arg;
41
+ }
42
+ function getZodDescription(schema) {
43
+ if ("description" in schema && typeof schema.description === "string") return schema.description;
44
+ if ("_def" in schema) {
45
+ const def = schema._def;
46
+ if ("description" in def && typeof def.description === "string") return def.description;
47
+ if ("innerType" in def && def.innerType !== void 0) return getZodDescription(def.innerType);
48
+ }
49
+ }
50
+ function isZodOptional(schema) {
51
+ if ("_def" in schema) {
52
+ const def = schema._def;
53
+ if (def.type === "optional" || def.type === "default") return true;
54
+ }
55
+ return false;
56
+ }
57
+ function getZodDefault(schema) {
58
+ if ("_def" in schema) {
59
+ const def = schema._def;
60
+ if (def.type === "default" && "defaultValue" in def) return def.defaultValue;
61
+ }
62
+ }
63
+ function getZodBaseType(schema) {
64
+ if ("_def" in schema) {
65
+ const def = schema._def;
66
+ const type = def.type;
67
+ if (type === "optional" || type === "default") {
68
+ if ("innerType" in def && def.innerType !== void 0) return getZodBaseType(def.innerType);
69
+ }
70
+ return type;
71
+ }
72
+ return "string";
73
+ }
74
+
75
+ //#endregion
76
+ //#region src/cli/adapter.ts
77
+ /**
78
+ * Convert a Feature to a citty CommandDef
79
+ */
80
+ function featureToCittyCommand(feature) {
81
+ return defineCommand({
82
+ meta: {
83
+ name: feature.name,
84
+ description: feature.description
85
+ },
86
+ args: zodToCittyArgs(feature.schema),
87
+ run({ args }) {
88
+ const result = feature.execute(args);
89
+ const handleResult = (res) => {
90
+ if (res.success) {
91
+ const output = res.message ?? JSON.stringify(res.data, null, 2);
92
+ console.log(colors.formatSuccess(output));
93
+ } else {
94
+ console.error(colors.formatError(res.error ?? "Unknown error"));
95
+ process.exit(1);
96
+ }
97
+ };
98
+ if (result instanceof Promise) result.then(handleResult).catch((err) => {
99
+ const errorMsg = err instanceof Error ? err.message : String(err);
100
+ console.error(colors.formatError(`Unexpected error: ${errorMsg}`));
101
+ process.exit(1);
102
+ });
103
+ else handleResult(result);
104
+ }
105
+ });
106
+ }
107
+
108
+ //#endregion
109
+ //#region src/cli/commands/serve.command.ts
110
+ const serveCommand = defineCommand({
111
+ meta: {
112
+ name: "serve",
113
+ description: "Start the MCP server"
114
+ },
115
+ args: {
116
+ transport: {
117
+ type: "string",
118
+ alias: "t",
119
+ description: "Transport type (stdio)",
120
+ default: "stdio"
121
+ },
122
+ directory: {
123
+ type: "string",
124
+ alias: "d",
125
+ description: "Directory to watch and index (defaults to current directory)",
126
+ default: "."
127
+ },
128
+ watch: {
129
+ type: "boolean",
130
+ alias: "w",
131
+ description: "Enable file watcher for automatic indexing",
132
+ default: true
133
+ }
134
+ },
135
+ async run({ args }) {
136
+ const { directory, watch } = args;
137
+ if (watch) {
138
+ const watcher = createIndexWatcher({
139
+ directory,
140
+ config: EMBEDDING_CONFIG,
141
+ onError: (error) => {
142
+ logger.error(`Watcher error: ${error.message}`);
143
+ }
144
+ });
145
+ try {
146
+ await watcher.start();
147
+ } catch (err) {
148
+ const msg = err instanceof Error ? err.message : String(err);
149
+ logger.warn(`Watcher disabled: ${msg}`);
150
+ }
151
+ process.on("SIGINT", () => {
152
+ watcher.stop();
153
+ process.exit(0);
154
+ });
155
+ process.on("SIGTERM", () => {
156
+ watcher.stop();
157
+ process.exit(0);
158
+ });
159
+ }
160
+ await startServer();
161
+ }
162
+ });
163
+
164
+ //#endregion
165
+ //#region src/cli/commands/version.command.ts
166
+ const versionCommand = defineCommand({
167
+ meta: {
168
+ name: "version",
169
+ description: "Display version information"
170
+ },
171
+ run() {
172
+ console.log(`${config.name} v${config.version}`);
173
+ }
174
+ });
175
+
176
+ //#endregion
177
+ //#region src/cli/commands/index.ts
178
+ const featureCommands = Object.fromEntries(features.map((f) => [f.name, featureToCittyCommand(f)]));
179
+ const subCommands = {
180
+ serve: serveCommand,
181
+ version: versionCommand,
182
+ ...featureCommands
183
+ };
184
+
185
+ //#endregion
186
+ //#region src/cli/index.ts
187
+ const main = defineCommand({
188
+ meta: {
189
+ name: config.name,
190
+ version: config.version,
191
+ description: config.description ?? ""
192
+ },
193
+ subCommands
194
+ });
195
+ function runCLI() {
196
+ runMain(main);
197
+ }
198
+
199
+ //#endregion
200
+ //#region src/bin.ts
201
+ runCLI();
202
+
203
+ //#endregion
204
+ export { };
205
+ //# sourceMappingURL=bin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.mjs","names":["arg"],"sources":["../src/cli/parser.ts","../src/cli/adapter.ts","../src/cli/commands/serve.command.ts","../src/cli/commands/version.command.ts","../src/cli/commands/index.ts","../src/cli/index.ts","../src/bin.ts"],"sourcesContent":["import type { ArgsDef, ArgDef } from \"citty\";\nimport type { z } from \"zod\";\n\n/**\n * Convert Zod schema to citty ArgsDef\n */\nexport function zodToCittyArgs(schema: z.ZodType): ArgsDef {\n // Handle ZodObject\n if (\"shape\" in schema && typeof schema.shape === \"object\") {\n const shape = schema.shape as Record<string, z.ZodType>;\n const args: ArgsDef = {};\n\n for (const [key, fieldSchema] of Object.entries(shape)) {\n const description = getZodDescription(fieldSchema);\n const isOptional = isZodOptional(fieldSchema);\n const defaultValue = getZodDefault(fieldSchema);\n const zodType = getZodBaseType(fieldSchema);\n\n args[key] = createArgDef(zodType, description, isOptional, defaultValue);\n }\n\n return args;\n }\n\n return {};\n}\n\nfunction createArgDef(\n zodType: string,\n description: string | undefined,\n isOptional: boolean,\n defaultValue: unknown,\n): ArgDef {\n const required = !isOptional && defaultValue === undefined;\n\n if (zodType === \"boolean\") {\n const arg: ArgDef = {\n type: \"boolean\" as const,\n required,\n };\n if (description !== undefined) {\n arg.description = description;\n }\n if (defaultValue !== undefined) {\n arg.default = defaultValue as boolean;\n }\n return arg;\n }\n\n // String, Number, Enum all become string in citty\n const arg: ArgDef = {\n type: \"string\" as const,\n required,\n };\n if (description !== undefined) {\n arg.description = description;\n }\n if (defaultValue !== undefined) {\n arg.default = defaultValue as string;\n }\n return arg;\n}\n\nfunction getZodDescription(schema: z.ZodType): string | undefined {\n if (\"description\" in schema && typeof schema.description === \"string\") {\n return schema.description;\n }\n // Check inner type for optional/default wrappers\n\n if (\"_def\" in schema) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const def = schema._def as unknown as Record<string, unknown>;\n if (\"description\" in def && typeof def.description === \"string\") {\n return def.description;\n }\n if (\"innerType\" in def && def.innerType !== undefined) {\n return getZodDescription(def.innerType as z.ZodType);\n }\n }\n return undefined;\n}\n\nfunction isZodOptional(schema: z.ZodType): boolean {\n if (\"_def\" in schema) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const def = schema._def as unknown as Record<string, unknown>;\n if (def.type === \"optional\" || def.type === \"default\") {\n return true;\n }\n }\n return false;\n}\n\nfunction getZodDefault(schema: z.ZodType): unknown {\n if (\"_def\" in schema) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const def = schema._def as unknown as Record<string, unknown>;\n if (def.type === \"default\" && \"defaultValue\" in def) {\n return def.defaultValue;\n }\n }\n return undefined;\n}\n\nfunction getZodBaseType(schema: z.ZodType): string {\n if (\"_def\" in schema) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const def = schema._def as unknown as Record<string, unknown>;\n const type = def.type as string;\n\n if (type === \"optional\" || type === \"default\") {\n if (\"innerType\" in def && def.innerType !== undefined) {\n return getZodBaseType(def.innerType as z.ZodType);\n }\n }\n\n return type;\n }\n return \"string\";\n}\n","import { defineCommand, type CommandDef } from \"citty\";\nimport type { Feature } from \"@features/types\";\nimport { zodToCittyArgs } from \"@cli/parser\";\nimport { colors } from \"@utils\";\n\n/**\n * Convert a Feature to a citty CommandDef\n */\nexport function featureToCittyCommand(feature: Feature): CommandDef {\n return defineCommand({\n meta: {\n name: feature.name,\n description: feature.description,\n },\n args: zodToCittyArgs(feature.schema),\n run({ args }) {\n const result = feature.execute(args);\n\n const handleResult = (\n res: Awaited<ReturnType<typeof feature.execute>>,\n ): void => {\n if (res.success) {\n const output = res.message ?? JSON.stringify(res.data, null, 2);\n console.log(colors.formatSuccess(output));\n } else {\n console.error(colors.formatError(res.error ?? \"Unknown error\"));\n process.exit(1);\n }\n };\n\n if (result instanceof Promise) {\n result.then(handleResult).catch((err: unknown) => {\n const errorMsg = err instanceof Error ? err.message : String(err);\n console.error(colors.formatError(`Unexpected error: ${errorMsg}`));\n process.exit(1);\n });\n } else {\n handleResult(result);\n }\n },\n });\n}\n","import { defineCommand } from \"citty\";\nimport { startServer } from \"@/server\";\nimport { createIndexWatcher } from \"@core/embeddings\";\nimport { EMBEDDING_CONFIG } from \"@config\";\nimport { logger } from \"@utils\";\n\nexport const serveCommand = defineCommand({\n meta: {\n name: \"serve\",\n description: \"Start the MCP server\",\n },\n args: {\n transport: {\n type: \"string\",\n alias: \"t\",\n description: \"Transport type (stdio)\",\n default: \"stdio\",\n },\n directory: {\n type: \"string\",\n alias: \"d\",\n description:\n \"Directory to watch and index (defaults to current directory)\",\n default: \".\",\n },\n watch: {\n type: \"boolean\",\n alias: \"w\",\n description: \"Enable file watcher for automatic indexing\",\n default: true,\n },\n },\n async run({ args }) {\n const { directory, watch } = args;\n\n // Start watcher if enabled\n if (watch) {\n const watcher = createIndexWatcher({\n directory,\n config: EMBEDDING_CONFIG,\n onError: (error) => {\n logger.error(`Watcher error: ${error.message}`);\n },\n });\n\n try {\n await watcher.start();\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n logger.warn(`Watcher disabled: ${msg}`);\n }\n\n // Cleanup on exit\n process.on(\"SIGINT\", () => {\n void watcher.stop();\n process.exit(0);\n });\n process.on(\"SIGTERM\", () => {\n void watcher.stop();\n process.exit(0);\n });\n }\n\n await startServer();\n },\n});\n","import { defineCommand } from \"citty\";\nimport { config } from \"@config\";\n\nexport const versionCommand = defineCommand({\n meta: {\n name: \"version\",\n description: \"Display version information\",\n },\n run() {\n console.log(`${config.name} v${config.version}`);\n },\n});\n","import { features } from \"@features\";\nimport { featureToCittyCommand } from \"@cli/adapter\";\nimport { serveCommand } from \"@cli/commands/serve.command\";\nimport { versionCommand } from \"@cli/commands/version.command\";\n\n// Feature commands converted from features\nconst featureCommands = Object.fromEntries(\n features.map((f) => [f.name, featureToCittyCommand(f)]),\n);\n\n// All subcommands\nexport const subCommands = {\n serve: serveCommand,\n version: versionCommand,\n ...featureCommands,\n};\n","import { defineCommand, runMain } from \"citty\";\nimport { config } from \"@config\";\nimport { subCommands } from \"@cli/commands\";\n\nconst main = defineCommand({\n meta: {\n name: config.name,\n version: config.version,\n description: config.description ?? \"\",\n },\n subCommands,\n});\n\nexport function runCLI(): void {\n void runMain(main);\n}\n","#!/usr/bin/env node\nimport { runCLI } from \"@cli\";\n\nrunCLI();\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { };
package/dist/index.mjs ADDED
@@ -0,0 +1,8 @@
1
+ import { t as startServer } from "./server-B2Ms4jQx.mjs";
2
+
3
+ //#region src/index.ts
4
+ startServer().catch(console.error);
5
+
6
+ //#endregion
7
+ export { };
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["// Main entry point - starts the MCP server directly\nimport { startServer } from \"@/server\";\n\nstartServer().catch(console.error);\n"],"mappings":";;;AAGA,aAAa,CAAC,MAAM,QAAQ,MAAM"}