@happyvertical/smrt-core 0.40.62 → 0.40.63

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 (45) hide show
  1. package/AGENTS.md +16 -3
  2. package/README.md +12 -2
  3. package/agents/generators.md +22 -0
  4. package/dist/collection.d.ts +12 -1
  5. package/dist/collection.d.ts.map +1 -1
  6. package/dist/collection.js +37 -5
  7. package/dist/collection.js.map +1 -1
  8. package/dist/decorators/index.d.ts +8 -2
  9. package/dist/decorators/index.d.ts.map +1 -1
  10. package/dist/decorators/index.js.map +1 -1
  11. package/dist/embeddings/types.d.ts +4 -1
  12. package/dist/embeddings/types.d.ts.map +1 -1
  13. package/dist/generators/mcp-emit.d.ts +72 -0
  14. package/dist/generators/mcp-emit.d.ts.map +1 -0
  15. package/dist/generators/mcp-emit.js +104 -0
  16. package/dist/generators/mcp-emit.js.map +1 -0
  17. package/dist/generators/mcp-runtime-template.d.ts.map +1 -1
  18. package/dist/generators/mcp-runtime-template.js +7 -1
  19. package/dist/generators/mcp-runtime-template.js.map +1 -1
  20. package/dist/generators/mcp.d.ts +17 -3
  21. package/dist/generators/mcp.d.ts.map +1 -1
  22. package/dist/generators/mcp.js +43 -21
  23. package/dist/generators/mcp.js.map +1 -1
  24. package/dist/manifest/generator.d.ts +5 -0
  25. package/dist/manifest/generator.d.ts.map +1 -1
  26. package/dist/manifest/generator.js +10 -7
  27. package/dist/manifest/generator.js.map +1 -1
  28. package/dist/manifest/static-manifest.js +1 -1
  29. package/dist/manifest/static-manifest.js.map +1 -1
  30. package/dist/manifest/store.js +1 -1
  31. package/dist/manifest.json +1 -1
  32. package/dist/object.d.ts +11 -1
  33. package/dist/object.d.ts.map +1 -1
  34. package/dist/object.js +11 -1
  35. package/dist/object.js.map +1 -1
  36. package/dist/smrt-knowledge.json +7 -7
  37. package/dist/system/types.d.ts +4 -1
  38. package/dist/system/types.d.ts.map +1 -1
  39. package/dist/utils/scanner-module.d.ts +7 -0
  40. package/dist/utils/scanner-module.d.ts.map +1 -1
  41. package/dist/vite-plugin/index.d.ts +7 -0
  42. package/dist/vite-plugin/index.d.ts.map +1 -1
  43. package/dist/vite-plugin/index.js +3 -2
  44. package/dist/vite-plugin/index.js.map +1 -1
  45. package/package.json +10 -12
@@ -297,7 +297,13 @@ export declare class MCPGenerator {
297
297
  * ```
298
298
  */
299
299
  generateServer(options?: {
300
- /** Path to output server file (relative or absolute) */
300
+ /**
301
+ * Path to output server file (relative or absolute).
302
+ *
303
+ * The extension decides the emitted language: `.ts`/`.mts`/`.cts` keep
304
+ * the generated TypeScript, anything else is transpiled to JavaScript so
305
+ * plain `node <path>` runs it (#2279).
306
+ */
301
307
  outputPath?: string;
302
308
  /** Server name for configuration */
303
309
  serverName?: string;
@@ -309,7 +315,7 @@ export declare class MCPGenerator {
309
315
  generateClaudeConfigFile?: boolean;
310
316
  /** Generate README documentation */
311
317
  generateReadme?: boolean;
312
- /** Generate modular directory structure (tools/, handlers/, config.ts) */
318
+ /** Generate modular directory structure (tools/, handlers/, config) */
313
319
  modular?: boolean;
314
320
  }): Promise<void>;
315
321
  private runtimeCustomActions;
@@ -328,10 +334,15 @@ export declare class MCPGenerator {
328
334
  * Creates separate files for tools, handlers, configuration, and main entry point.
329
335
  * This makes the generated server easier to customize and extend.
330
336
  *
331
- * @param outputDir - Directory to generate files in
337
+ * The sibling modules use the entry point's own extension and the entry
338
+ * emits matching relative specifiers, so its imports resolve to files that
339
+ * exist and load with the same module semantics (#2279).
340
+ *
341
+ * @param indexPath - Absolute path of the entry point to generate
332
342
  * @param serverName - Server name
333
343
  * @param serverVersion - Server version
334
344
  * @param debug - Enable debug logging
345
+ * @param language - Language the generated files are written in
335
346
  */
336
347
  private generateModularServer;
337
348
  /**
@@ -352,6 +363,9 @@ export declare class MCPGenerator {
352
363
  private generateHandlersFile;
353
364
  /**
354
365
  * Generate modular index file (main entry point)
366
+ *
367
+ * @param toolListCacheHint - Cache hint emitted for `tools/list` results
368
+ * @param extension - Extension of the sibling modules this entry imports
355
369
  */
356
370
  private generateModularIndex;
357
371
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/generators/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/generators/mcp.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { SMRT_CUSTOM_ACTION_ERROR_METADATA_KEY, buildCustomActionInvocationArgs,
2
2
  import { ObjectRegistry } from "../registry.js";
3
3
  import { SmrtCollection } from "../collection.js";
4
4
  import { runWithTenantGate } from "./tenant-gate.js";
5
+ import { generatedSiblingExtension, renderGeneratedSource, resolveGeneratedSourceLanguage } from "./mcp-emit.js";
5
6
  import { generateClaudeConfig, generateMCPDocumentation, generateMCPScript, generateRuntimeBootstrap } from "./mcp-runtime-template.js";
6
7
  import { buildToolInputSchema, fieldTypeToJsonSchema, finalizeMcpJsonSchema } from "./tool-schema.js";
7
8
  import { dirname, resolve } from "node:path";
@@ -12,6 +13,19 @@ import { mkdir, writeFile } from "node:fs/promises";
12
13
  *
13
14
  * Exposes smrt objects as AI tools for Claude, GPT, and other AI models
14
15
  */
16
+ /**
17
+ * Write one generated module, rendering it for the requested output language.
18
+ *
19
+ * Every generator in this file produces TypeScript source; a JavaScript target
20
+ * is transpiled on the way out so the written file is runnable as-is (#2279).
21
+ *
22
+ * @param targetPath - Absolute path of the file to write
23
+ * @param source - Generated TypeScript source
24
+ * @param language - Language the file must be written in
25
+ */
26
+ async function writeGeneratedFile(targetPath, source, language) {
27
+ await writeFile(targetPath, await renderGeneratedSource(source, language, targetPath), "utf-8");
28
+ }
15
29
  var MCP_STABLE_CATALOG_TTL_MS = 864e5;
16
30
  /**
17
31
  * Resolve the generated tools/list cache policy at generation time.
@@ -885,13 +899,14 @@ var MCPGenerator = class {
885
899
  const { outputPath = ".smrt/mcp-server/index.js", serverName = this.config.name || "smrt-mcp-server", serverVersion = this.config.version || "1.0.0", debug = false, generateClaudeConfigFile = false, generateReadme = false, modular = false } = options;
886
900
  const resolvedPath = resolve(process.cwd(), outputPath);
887
901
  const outputDir = dirname(resolvedPath);
902
+ const language = resolveGeneratedSourceLanguage(resolvedPath);
888
903
  await mkdir(outputDir, { recursive: true });
889
- if (modular) await this.generateModularServer(outputDir, serverName, serverVersion, debug);
904
+ if (modular) await this.generateModularServer(resolvedPath, serverName, serverVersion, debug, language);
890
905
  else {
891
906
  const tools = await this.generateTools();
892
907
  const tenantScopedObjects = await this.tenantScopedObjectNames(tools);
893
908
  const hasTenantScopedTools = tenantScopedObjects.length > 0 || await this.hasTenantScopedTools(tools);
894
- await writeFile(resolvedPath, generateRuntimeBootstrap({
909
+ await writeGeneratedFile(resolvedPath, generateRuntimeBootstrap({
895
910
  name: serverName,
896
911
  version: serverVersion,
897
912
  description: this.config.description,
@@ -904,7 +919,7 @@ var MCPGenerator = class {
904
919
  tenantScopedObjects,
905
920
  stiTargets: this.runtimeStiTargets(tools),
906
921
  toolListCacheHint: resolveMCPToolListCacheHint(this.config.cache?.toolsList, hasTenantScopedTools)
907
- }), "utf-8");
922
+ }), language);
908
923
  console.log(`✅ Generated MCP server: ${resolvedPath}`);
909
924
  }
910
925
  if (generateClaudeConfigFile) {
@@ -1006,30 +1021,36 @@ var MCPGenerator = class {
1006
1021
  * Creates separate files for tools, handlers, configuration, and main entry point.
1007
1022
  * This makes the generated server easier to customize and extend.
1008
1023
  *
1009
- * @param outputDir - Directory to generate files in
1024
+ * The sibling modules use the entry point's own extension and the entry
1025
+ * emits matching relative specifiers, so its imports resolve to files that
1026
+ * exist and load with the same module semantics (#2279).
1027
+ *
1028
+ * @param indexPath - Absolute path of the entry point to generate
1010
1029
  * @param serverName - Server name
1011
1030
  * @param serverVersion - Server version
1012
1031
  * @param debug - Enable debug logging
1032
+ * @param language - Language the generated files are written in
1013
1033
  */
1014
- async generateModularServer(outputDir, serverName, serverVersion, debug) {
1034
+ async generateModularServer(indexPath, serverName, serverVersion, debug, language) {
1035
+ const outputDir = dirname(indexPath);
1036
+ const extension = generatedSiblingExtension(indexPath);
1015
1037
  const toolsDir = resolve(outputDir, "tools");
1016
1038
  const handlersDir = resolve(outputDir, "handlers");
1017
1039
  await mkdir(toolsDir, { recursive: true });
1018
1040
  await mkdir(handlersDir, { recursive: true });
1019
- const configPath = resolve(outputDir, "config.ts");
1020
- await writeFile(configPath, this.generateConfigFile(serverName, serverVersion, debug), "utf-8");
1041
+ const configPath = resolve(outputDir, `config${extension}`);
1042
+ await writeGeneratedFile(configPath, this.generateConfigFile(serverName, serverVersion, debug), language);
1021
1043
  console.log(`✅ Generated config: ${configPath}`);
1022
1044
  const generatedTools = await this.generateTools();
1023
- const toolsPath = resolve(toolsDir, "index.ts");
1024
- await writeFile(toolsPath, this.generateToolsFile(generatedTools), "utf-8");
1045
+ const toolsPath = resolve(toolsDir, `index${extension}`);
1046
+ await writeGeneratedFile(toolsPath, this.generateToolsFile(generatedTools), language);
1025
1047
  console.log(`✅ Generated tools: ${toolsPath}`);
1026
- const handlersPath = resolve(handlersDir, "index.ts");
1048
+ const handlersPath = resolve(handlersDir, `index${extension}`);
1027
1049
  const tenantScopedObjects = await this.tenantScopedObjectNames(generatedTools);
1028
1050
  const hasTenantScopedTools = tenantScopedObjects.length > 0 || await this.hasTenantScopedTools(generatedTools);
1029
- await writeFile(handlersPath, await this.generateHandlersFile(tenantScopedObjects), "utf-8");
1051
+ await writeGeneratedFile(handlersPath, await this.generateHandlersFile(tenantScopedObjects), language);
1030
1052
  console.log(`✅ Generated handlers: ${handlersPath}`);
1031
- const indexPath = resolve(outputDir, "index.js");
1032
- await writeFile(indexPath, this.generateModularIndex(resolveMCPToolListCacheHint(this.config.cache?.toolsList, hasTenantScopedTools)), "utf-8");
1053
+ await writeGeneratedFile(indexPath, this.generateModularIndex(resolveMCPToolListCacheHint(this.config.cache?.toolsList, hasTenantScopedTools), extension), language);
1033
1054
  console.log(`✅ Generated MCP server: ${indexPath}`);
1034
1055
  }
1035
1056
  /**
@@ -1352,11 +1373,11 @@ function errorResult(structuredContent: any, text: string, _meta?: Record<string
1352
1373
  */
1353
1374
  export async function handleToolCall(
1354
1375
  name: string,
1355
- arguments: any = {},
1376
+ toolArguments: any = {},
1356
1377
  aiConfig: any = {}
1357
1378
  ) {
1358
1379
  try {
1359
- const args = arguments;
1380
+ const args = toolArguments;
1360
1381
 
1361
1382
  const runToolBody = async () => {
1362
1383
  switch (name) {
@@ -1392,8 +1413,11 @@ ${hasTenantScoped ? `
1392
1413
  }
1393
1414
  /**
1394
1415
  * Generate modular index file (main entry point)
1416
+ *
1417
+ * @param toolListCacheHint - Cache hint emitted for `tools/list` results
1418
+ * @param extension - Extension of the sibling modules this entry imports
1395
1419
  */
1396
- generateModularIndex(toolListCacheHint) {
1420
+ generateModularIndex(toolListCacheHint, extension = ".js") {
1397
1421
  return `#!/usr/bin/env node
1398
1422
  /**
1399
1423
  * Auto-generated MCP Server
@@ -1409,12 +1433,10 @@ import { resolve } from 'node:path';
1409
1433
  import { pathToFileURL } from 'node:url';
1410
1434
  import { ObjectRegistry } from '@happyvertical/smrt-core';
1411
1435
  import { loadConfig } from '@happyvertical/smrt-config';
1412
- import { getDatabase } from '@happyvertical/sql';
1413
- import { getAI } from '@happyvertical/ai';
1414
1436
 
1415
- import { SERVER_NAME, SERVER_VERSION, DEBUG } from './config.js';
1416
- import { tools } from './tools/index.js';
1417
- import { handleToolCall } from './handlers/index.js';
1437
+ import { SERVER_NAME, SERVER_VERSION, DEBUG } from './config${extension}';
1438
+ import { tools } from './tools/index${extension}';
1439
+ import { handleToolCall } from './handlers/index${extension}';
1418
1440
 
1419
1441
  const TOOL_LIST_CACHE_HINT = ${JSON.stringify(toolListCacheHint)};
1420
1442