@directivegames/genesys.sdk 3.2.2 → 3.2.4

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 (82) hide show
  1. package/README.md +60 -60
  2. package/dist/src/core/cli.js +22 -22
  3. package/dist/src/templates/scripts/genesys/genesys-mcp.js +25 -25
  4. package/dist/src/templates/scripts/genesys/mcp/editor-functions.js +4 -4
  5. package/dist/src/templates/src/templates/vehicle/src/ui-hints.js +30 -30
  6. package/package.json +176 -176
  7. package/scripts/post-install.ts +143 -143
  8. package/src/asset-pack/.gitattributes +88 -88
  9. package/src/asset-pack/eslint.config.js +45 -45
  10. package/src/asset-pack/gitignore +11 -11
  11. package/src/asset-pack/scripts/postinstall.ts +81 -81
  12. package/src/asset-pack/tsconfig.json +33 -33
  13. package/src/templates/.cursor/mcp.json +20 -20
  14. package/src/templates/.cursorignore +2 -2
  15. package/src/templates/.gitattributes +88 -88
  16. package/src/templates/.vscode/settings.json +6 -6
  17. package/src/templates/AGENTS.md +86 -86
  18. package/src/templates/README.md +24 -24
  19. package/src/templates/eslint.config.js +45 -45
  20. package/src/templates/gitignore +11 -11
  21. package/src/templates/index.html +34 -34
  22. package/src/templates/pnpm-lock.yaml +3676 -3676
  23. package/src/templates/scripts/genesys/build-project.ts +51 -51
  24. package/src/templates/scripts/genesys/calc-bounding-box.ts +272 -272
  25. package/src/templates/scripts/genesys/common.ts +46 -46
  26. package/src/templates/scripts/genesys/const.ts +9 -9
  27. package/src/templates/scripts/genesys/dev/dump-default-scene.ts +11 -11
  28. package/src/templates/scripts/genesys/dev/generate-manifest.ts +146 -146
  29. package/src/templates/scripts/genesys/dev/launcher.ts +46 -46
  30. package/src/templates/scripts/genesys/dev/storage-provider.ts +229 -229
  31. package/src/templates/scripts/genesys/dev/update-template-scenes.ts +84 -84
  32. package/src/templates/scripts/genesys/doc-server.ts +16 -16
  33. package/src/templates/scripts/genesys/genesys-mcp.ts +526 -526
  34. package/src/templates/scripts/genesys/mcp/doc-tools.ts +86 -86
  35. package/src/templates/scripts/genesys/mcp/editor-functions.ts +151 -151
  36. package/src/templates/scripts/genesys/mcp/editor-tools.ts +73 -73
  37. package/src/templates/scripts/genesys/mcp/get-scene-state.ts +35 -35
  38. package/src/templates/scripts/genesys/mcp/run-subprocess.ts +30 -30
  39. package/src/templates/scripts/genesys/mcp/search-actors.ts +858 -858
  40. package/src/templates/scripts/genesys/mcp/search-assets.ts +380 -380
  41. package/src/templates/scripts/genesys/mcp/utils.ts +281 -281
  42. package/src/templates/scripts/genesys/misc.ts +42 -42
  43. package/src/templates/scripts/genesys/mock.ts +6 -6
  44. package/src/templates/scripts/genesys/place-actors.ts +179 -179
  45. package/src/templates/scripts/genesys/post-install.ts +30 -30
  46. package/src/templates/scripts/genesys/prefab.schema.json +84 -84
  47. package/src/templates/scripts/genesys/remove-engine-comments.ts +134 -134
  48. package/src/templates/scripts/genesys/run-mcp-inspector.bat +4 -4
  49. package/src/templates/scripts/genesys/storageProvider.ts +182 -182
  50. package/src/templates/scripts/genesys/validate-prefabs.ts +138 -138
  51. package/src/templates/src/index.ts +22 -22
  52. package/src/templates/src/templates/firstPerson/assets/default.genesys-scene +165 -165
  53. package/src/templates/src/templates/firstPerson/src/game.ts +39 -39
  54. package/src/templates/src/templates/firstPerson/src/player.ts +63 -63
  55. package/src/templates/src/templates/fps/assets/default.genesys-scene +9459 -9459
  56. package/src/templates/src/templates/fps/src/game.ts +39 -39
  57. package/src/templates/src/templates/fps/src/player.ts +69 -69
  58. package/src/templates/src/templates/fps/src/weapon.ts +54 -54
  59. package/src/templates/src/templates/freeCamera/assets/default.genesys-scene +165 -165
  60. package/src/templates/src/templates/freeCamera/src/game.ts +39 -39
  61. package/src/templates/src/templates/freeCamera/src/player.ts +45 -45
  62. package/src/templates/src/templates/sideScroller/assets/default.genesys-scene +121 -121
  63. package/src/templates/src/templates/sideScroller/src/const.ts +45 -45
  64. package/src/templates/src/templates/sideScroller/src/game.ts +122 -122
  65. package/src/templates/src/templates/sideScroller/src/level-generator.ts +361 -361
  66. package/src/templates/src/templates/sideScroller/src/player.ts +125 -125
  67. package/src/templates/src/templates/thirdPerson/assets/default.genesys-scene +165 -165
  68. package/src/templates/src/templates/thirdPerson/src/game.ts +39 -39
  69. package/src/templates/src/templates/thirdPerson/src/player.ts +61 -61
  70. package/src/templates/src/templates/vehicle/assets/default.genesys-scene +225 -225
  71. package/src/templates/src/templates/vehicle/src/base-vehicle.ts +145 -145
  72. package/src/templates/src/templates/vehicle/src/game.ts +43 -43
  73. package/src/templates/src/templates/vehicle/src/mesh-vehicle.ts +191 -191
  74. package/src/templates/src/templates/vehicle/src/player.ts +109 -109
  75. package/src/templates/src/templates/vehicle/src/primitive-vehicle.ts +266 -266
  76. package/src/templates/src/templates/vehicle/src/ui-hints.ts +101 -101
  77. package/src/templates/src/templates/vr-game/assets/default.genesys-scene +246 -246
  78. package/src/templates/src/templates/vr-game/src/auto-imports.ts +1 -1
  79. package/src/templates/src/templates/vr-game/src/game.ts +66 -66
  80. package/src/templates/src/templates/vr-game/src/sample-vr-actor.ts +26 -26
  81. package/src/templates/tsconfig.json +34 -34
  82. package/src/templates/vite.config.ts +52 -52
@@ -1,89 +1,89 @@
1
- # Git LFS tracking for common large file types
2
-
3
- # 3D Models
4
- *.fbx filter=lfs diff=lfs merge=lfs -text
5
- *.obj filter=lfs diff=lfs merge=lfs -text
6
- *.dae filter=lfs diff=lfs merge=lfs -text
7
- *.3ds filter=lfs diff=lfs merge=lfs -text
8
- *.blend filter=lfs diff=lfs merge=lfs -text
9
- *.max filter=lfs diff=lfs merge=lfs -text
10
- *.maya filter=lfs diff=lfs merge=lfs -text
11
- *.mb filter=lfs diff=lfs merge=lfs -text
12
- *.ma filter=lfs diff=lfs merge=lfs -text
13
- *.glb filter=lfs diff=lfs merge=lfs -text
14
- *.gltf filter=lfs diff=lfs merge=lfs -text
15
-
16
- # Textures and Images
17
- *.png filter=lfs diff=lfs merge=lfs -text
18
- *.jpg filter=lfs diff=lfs merge=lfs -text
19
- *.jpeg filter=lfs diff=lfs merge=lfs -text
20
- *.tga filter=lfs diff=lfs merge=lfs -text
21
- *.tiff filter=lfs diff=lfs merge=lfs -text
22
- *.tif filter=lfs diff=lfs merge=lfs -text
23
- *.bmp filter=lfs diff=lfs merge=lfs -text
24
- *.psd filter=lfs diff=lfs merge=lfs -text
25
- *.exr filter=lfs diff=lfs merge=lfs -text
26
- *.hdr filter=lfs diff=lfs merge=lfs -text
27
- *.dds filter=lfs diff=lfs merge=lfs -text
28
- *.ktx filter=lfs diff=lfs merge=lfs -text
29
- *.ktx2 filter=lfs diff=lfs merge=lfs -text
30
-
31
- # Audio Files
32
- *.wav filter=lfs diff=lfs merge=lfs -text
33
- *.mp3 filter=lfs diff=lfs merge=lfs -text
34
- *.ogg filter=lfs diff=lfs merge=lfs -text
35
- *.flac filter=lfs diff=lfs merge=lfs -text
36
- *.aac filter=lfs diff=lfs merge=lfs -text
37
- *.m4a filter=lfs diff=lfs merge=lfs -text
38
- *.wma filter=lfs diff=lfs merge=lfs -text
39
- *.aiff filter=lfs diff=lfs merge=lfs -text
40
-
41
- # Video Files
42
- *.mp4 filter=lfs diff=lfs merge=lfs -text
43
- *.mov filter=lfs diff=lfs merge=lfs -text
44
- *.avi filter=lfs diff=lfs merge=lfs -text
45
- *.mkv filter=lfs diff=lfs merge=lfs -text
46
- *.webm filter=lfs diff=lfs merge=lfs -text
47
- *.wmv filter=lfs diff=lfs merge=lfs -text
48
- *.flv filter=lfs diff=lfs merge=lfs -text
49
-
50
- # Fonts
51
- *.ttf filter=lfs diff=lfs merge=lfs -text
52
- *.otf filter=lfs diff=lfs merge=lfs -text
53
- *.woff filter=lfs diff=lfs merge=lfs -text
54
- *.woff2 filter=lfs diff=lfs merge=lfs -text
55
-
56
- # Archives and Packages
57
- *.zip filter=lfs diff=lfs merge=lfs -text
58
- *.rar filter=lfs diff=lfs merge=lfs -text
59
- *.7z filter=lfs diff=lfs merge=lfs -text
60
- *.tar filter=lfs diff=lfs merge=lfs -text
61
- *.gz filter=lfs diff=lfs merge=lfs -text
62
- *.bz2 filter=lfs diff=lfs merge=lfs -text
63
-
64
- # Game Engine Specific Files
65
- *.unity filter=lfs diff=lfs merge=lfs -text
66
- *.unitypackage filter=lfs diff=lfs merge=lfs -text
67
- *.asset filter=lfs diff=lfs merge=lfs -text
68
- *.prefab filter=lfs diff=lfs merge=lfs -text
69
-
70
- # Document Files (large ones)
71
- *.pdf filter=lfs diff=lfs merge=lfs -text
72
- *.doc filter=lfs diff=lfs merge=lfs -text
73
- *.docx filter=lfs diff=lfs merge=lfs -text
74
- *.ppt filter=lfs diff=lfs merge=lfs -text
75
- *.pptx filter=lfs diff=lfs merge=lfs -text
76
-
77
- # Binary executables and libraries
78
- *.exe filter=lfs diff=lfs merge=lfs -text
79
- *.dll filter=lfs diff=lfs merge=lfs -text
80
- *.so filter=lfs diff=lfs merge=lfs -text
81
- *.dylib filter=lfs diff=lfs merge=lfs -text
82
- *.a filter=lfs diff=lfs merge=lfs -text
83
- *.lib filter=lfs diff=lfs merge=lfs -text
84
-
85
- # Data files
86
- *.dat filter=lfs diff=lfs merge=lfs -text
87
- *.data filter=lfs diff=lfs merge=lfs -text
88
- *.cache filter=lfs diff=lfs merge=lfs -text
1
+ # Git LFS tracking for common large file types
2
+
3
+ # 3D Models
4
+ *.fbx filter=lfs diff=lfs merge=lfs -text
5
+ *.obj filter=lfs diff=lfs merge=lfs -text
6
+ *.dae filter=lfs diff=lfs merge=lfs -text
7
+ *.3ds filter=lfs diff=lfs merge=lfs -text
8
+ *.blend filter=lfs diff=lfs merge=lfs -text
9
+ *.max filter=lfs diff=lfs merge=lfs -text
10
+ *.maya filter=lfs diff=lfs merge=lfs -text
11
+ *.mb filter=lfs diff=lfs merge=lfs -text
12
+ *.ma filter=lfs diff=lfs merge=lfs -text
13
+ *.glb filter=lfs diff=lfs merge=lfs -text
14
+ *.gltf filter=lfs diff=lfs merge=lfs -text
15
+
16
+ # Textures and Images
17
+ *.png filter=lfs diff=lfs merge=lfs -text
18
+ *.jpg filter=lfs diff=lfs merge=lfs -text
19
+ *.jpeg filter=lfs diff=lfs merge=lfs -text
20
+ *.tga filter=lfs diff=lfs merge=lfs -text
21
+ *.tiff filter=lfs diff=lfs merge=lfs -text
22
+ *.tif filter=lfs diff=lfs merge=lfs -text
23
+ *.bmp filter=lfs diff=lfs merge=lfs -text
24
+ *.psd filter=lfs diff=lfs merge=lfs -text
25
+ *.exr filter=lfs diff=lfs merge=lfs -text
26
+ *.hdr filter=lfs diff=lfs merge=lfs -text
27
+ *.dds filter=lfs diff=lfs merge=lfs -text
28
+ *.ktx filter=lfs diff=lfs merge=lfs -text
29
+ *.ktx2 filter=lfs diff=lfs merge=lfs -text
30
+
31
+ # Audio Files
32
+ *.wav filter=lfs diff=lfs merge=lfs -text
33
+ *.mp3 filter=lfs diff=lfs merge=lfs -text
34
+ *.ogg filter=lfs diff=lfs merge=lfs -text
35
+ *.flac filter=lfs diff=lfs merge=lfs -text
36
+ *.aac filter=lfs diff=lfs merge=lfs -text
37
+ *.m4a filter=lfs diff=lfs merge=lfs -text
38
+ *.wma filter=lfs diff=lfs merge=lfs -text
39
+ *.aiff filter=lfs diff=lfs merge=lfs -text
40
+
41
+ # Video Files
42
+ *.mp4 filter=lfs diff=lfs merge=lfs -text
43
+ *.mov filter=lfs diff=lfs merge=lfs -text
44
+ *.avi filter=lfs diff=lfs merge=lfs -text
45
+ *.mkv filter=lfs diff=lfs merge=lfs -text
46
+ *.webm filter=lfs diff=lfs merge=lfs -text
47
+ *.wmv filter=lfs diff=lfs merge=lfs -text
48
+ *.flv filter=lfs diff=lfs merge=lfs -text
49
+
50
+ # Fonts
51
+ *.ttf filter=lfs diff=lfs merge=lfs -text
52
+ *.otf filter=lfs diff=lfs merge=lfs -text
53
+ *.woff filter=lfs diff=lfs merge=lfs -text
54
+ *.woff2 filter=lfs diff=lfs merge=lfs -text
55
+
56
+ # Archives and Packages
57
+ *.zip filter=lfs diff=lfs merge=lfs -text
58
+ *.rar filter=lfs diff=lfs merge=lfs -text
59
+ *.7z filter=lfs diff=lfs merge=lfs -text
60
+ *.tar filter=lfs diff=lfs merge=lfs -text
61
+ *.gz filter=lfs diff=lfs merge=lfs -text
62
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
63
+
64
+ # Game Engine Specific Files
65
+ *.unity filter=lfs diff=lfs merge=lfs -text
66
+ *.unitypackage filter=lfs diff=lfs merge=lfs -text
67
+ *.asset filter=lfs diff=lfs merge=lfs -text
68
+ *.prefab filter=lfs diff=lfs merge=lfs -text
69
+
70
+ # Document Files (large ones)
71
+ *.pdf filter=lfs diff=lfs merge=lfs -text
72
+ *.doc filter=lfs diff=lfs merge=lfs -text
73
+ *.docx filter=lfs diff=lfs merge=lfs -text
74
+ *.ppt filter=lfs diff=lfs merge=lfs -text
75
+ *.pptx filter=lfs diff=lfs merge=lfs -text
76
+
77
+ # Binary executables and libraries
78
+ *.exe filter=lfs diff=lfs merge=lfs -text
79
+ *.dll filter=lfs diff=lfs merge=lfs -text
80
+ *.so filter=lfs diff=lfs merge=lfs -text
81
+ *.dylib filter=lfs diff=lfs merge=lfs -text
82
+ *.a filter=lfs diff=lfs merge=lfs -text
83
+ *.lib filter=lfs diff=lfs merge=lfs -text
84
+
85
+ # Data files
86
+ *.dat filter=lfs diff=lfs merge=lfs -text
87
+ *.data filter=lfs diff=lfs merge=lfs -text
88
+ *.cache filter=lfs diff=lfs merge=lfs -text
89
89
  *.tmp filter=lfs diff=lfs merge=lfs -text
@@ -1,45 +1,45 @@
1
- import tsParser from '@typescript-eslint/parser';
2
- import noDefaultClassFields from './node_modules/genesys.js/eslint-rules/no-default-class-fields.js';
3
- import defaultGetterReturnType from './node_modules/genesys.js/eslint-rules/default-getter-return-type.js';
4
- import constructorTypeConsistency from './node_modules/genesys.js/eslint-rules/constructor-type-consistency.js';
5
- import noOverrideMethods from './node_modules/genesys.js/eslint-rules/no-override-methods.js';
6
-
7
-
8
- export default [
9
- {
10
- ignores: ['dist/**', '.engine/**', 'node_modules/**']
11
- },
12
- {
13
- files: ['**/*.ts', '**/*.tsx'],
14
- languageOptions: {
15
- parser: tsParser,
16
- parserOptions: {
17
- project: ['./tsconfig.json']
18
- }
19
- },
20
- plugins: {
21
- 'custom': {
22
- rules: {
23
- 'no-override-methods': noOverrideMethods,
24
- 'no-default-class-fields': noDefaultClassFields,
25
- 'default-getter-return-type': defaultGetterReturnType,
26
- 'constructor-type-consistency': constructorTypeConsistency,
27
- }
28
- }
29
- },
30
- rules: {
31
- 'custom/no-override-methods': 'error',
32
- 'custom/no-default-class-fields': 'error',
33
- 'custom/default-getter-return-type': 'error',
34
- 'custom/constructor-type-consistency': 'error',
35
- }
36
- },
37
- {
38
- files: ['games/**/*.ts', 'games/**/*.tsx'],
39
- rules: {
40
- 'no-restricted-imports': ['error', {
41
- patterns: ['../src/**', '!../src/index.js']
42
- }]
43
- }
44
- }
45
- ];
1
+ import tsParser from '@typescript-eslint/parser';
2
+ import noDefaultClassFields from './node_modules/genesys.js/eslint-rules/no-default-class-fields.js';
3
+ import defaultGetterReturnType from './node_modules/genesys.js/eslint-rules/default-getter-return-type.js';
4
+ import constructorTypeConsistency from './node_modules/genesys.js/eslint-rules/constructor-type-consistency.js';
5
+ import noOverrideMethods from './node_modules/genesys.js/eslint-rules/no-override-methods.js';
6
+
7
+
8
+ export default [
9
+ {
10
+ ignores: ['dist/**', '.engine/**', 'node_modules/**']
11
+ },
12
+ {
13
+ files: ['**/*.ts', '**/*.tsx'],
14
+ languageOptions: {
15
+ parser: tsParser,
16
+ parserOptions: {
17
+ project: ['./tsconfig.json']
18
+ }
19
+ },
20
+ plugins: {
21
+ 'custom': {
22
+ rules: {
23
+ 'no-override-methods': noOverrideMethods,
24
+ 'no-default-class-fields': noDefaultClassFields,
25
+ 'default-getter-return-type': defaultGetterReturnType,
26
+ 'constructor-type-consistency': constructorTypeConsistency,
27
+ }
28
+ }
29
+ },
30
+ rules: {
31
+ 'custom/no-override-methods': 'error',
32
+ 'custom/no-default-class-fields': 'error',
33
+ 'custom/default-getter-return-type': 'error',
34
+ 'custom/constructor-type-consistency': 'error',
35
+ }
36
+ },
37
+ {
38
+ files: ['games/**/*.ts', 'games/**/*.tsx'],
39
+ rules: {
40
+ 'no-restricted-imports': ['error', {
41
+ patterns: ['../src/**', '!../src/index.js']
42
+ }]
43
+ }
44
+ }
45
+ ];
@@ -1,11 +1,11 @@
1
- **/.dist/**
2
- **/node_modules/**
3
- **/.engine/**
4
- **/**dist/**
5
- **/**editor/**
6
- **/.DS_Store
7
- **/*.tgz
8
- **/*.mcp-port
9
- **/.placeholder
10
- **/.genesys/**
11
- **/logs/**
1
+ **/.dist/**
2
+ **/node_modules/**
3
+ **/.engine/**
4
+ **/**dist/**
5
+ **/**editor/**
6
+ **/.DS_Store
7
+ **/*.tgz
8
+ **/*.mcp-port
9
+ **/.placeholder
10
+ **/.genesys/**
11
+ **/logs/**
@@ -1,81 +1,81 @@
1
- #!/usr/bin/env node
2
-
3
- import * as fs from 'fs';
4
- import * as path from 'path';
5
- import { fileURLToPath } from 'url';
6
-
7
- // Get the directory of this script
8
- const __filename = fileURLToPath(import.meta.url);
9
- const __dirname = path.dirname(__filename);
10
-
11
- /**
12
- * Find the parent project root by traversing up from node_modules
13
- * For pnpm structure like: /project/node_modules/.pnpm/package@version/node_modules/package
14
- * We want to find: /project
15
- */
16
- function findProjectRoot(): string | null {
17
- // Split the current directory path into parts
18
- const parts = __dirname.split(path.sep);
19
-
20
- // Find the first occurrence of 'node_modules' in the path
21
- const nodeModulesIndex = parts.indexOf('node_modules');
22
-
23
- if (nodeModulesIndex > 0) {
24
- // Take everything before 'node_modules' and join it back
25
- return parts.slice(0, nodeModulesIndex).join(path.sep);
26
- }
27
-
28
- return null;
29
- }
30
-
31
- // Only run when installed as a dependency in another project
32
- // Skip if running in the package's own directory during development
33
- const isInstalledAsDependency = __dirname.includes('node_modules');
34
-
35
- if (isInstalledAsDependency) {
36
- try {
37
- // Read package.json to get the package name
38
- const packageJsonPath = path.resolve(__dirname, '../../package.json');
39
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
40
- const packageName = packageJson.name;
41
-
42
- // Source: assets folder in this package
43
- const sourceAssetsDir = path.resolve(__dirname, '../../assets');
44
-
45
- // Find the parent project root
46
- const parentProjectRoot = findProjectRoot();
47
-
48
- if (!parentProjectRoot) {
49
- console.error('Error: Could not find parent project root');
50
- process.exit(1);
51
- }
52
-
53
- // Destination: <parent-project>/packs/<package-name>/assets
54
- const targetPackDir = path.join(parentProjectRoot, 'packs', packageName);
55
- const targetAssetsDir = path.join(targetPackDir, 'assets');
56
-
57
- // Check if source assets directory exists
58
- if (fs.existsSync(sourceAssetsDir)) {
59
- // Delete target directory if it already exists
60
- if (fs.existsSync(targetPackDir)) {
61
- fs.rmSync(targetPackDir, { recursive: true, force: true });
62
- }
63
-
64
- // Create target directory
65
- fs.mkdirSync(targetPackDir, { recursive: true });
66
-
67
- // Copy entire assets folder
68
- fs.cpSync(sourceAssetsDir, targetAssetsDir, { recursive: true });
69
-
70
- console.log(`✓ Assets from "${packageName}" copied to: ${path.relative(parentProjectRoot, targetPackDir)}`);
71
- } else {
72
- console.log(`⚠ No assets folder found in "${packageName}"`);
73
- }
74
- } catch (error) {
75
- console.error('Error during postinstall:', error);
76
- process.exit(1);
77
- }
78
- }
79
-
80
- export {};
81
-
1
+ #!/usr/bin/env node
2
+
3
+ import * as fs from 'fs';
4
+ import * as path from 'path';
5
+ import { fileURLToPath } from 'url';
6
+
7
+ // Get the directory of this script
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = path.dirname(__filename);
10
+
11
+ /**
12
+ * Find the parent project root by traversing up from node_modules
13
+ * For pnpm structure like: /project/node_modules/.pnpm/package@version/node_modules/package
14
+ * We want to find: /project
15
+ */
16
+ function findProjectRoot(): string | null {
17
+ // Split the current directory path into parts
18
+ const parts = __dirname.split(path.sep);
19
+
20
+ // Find the first occurrence of 'node_modules' in the path
21
+ const nodeModulesIndex = parts.indexOf('node_modules');
22
+
23
+ if (nodeModulesIndex > 0) {
24
+ // Take everything before 'node_modules' and join it back
25
+ return parts.slice(0, nodeModulesIndex).join(path.sep);
26
+ }
27
+
28
+ return null;
29
+ }
30
+
31
+ // Only run when installed as a dependency in another project
32
+ // Skip if running in the package's own directory during development
33
+ const isInstalledAsDependency = __dirname.includes('node_modules');
34
+
35
+ if (isInstalledAsDependency) {
36
+ try {
37
+ // Read package.json to get the package name
38
+ const packageJsonPath = path.resolve(__dirname, '../../package.json');
39
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
40
+ const packageName = packageJson.name;
41
+
42
+ // Source: assets folder in this package
43
+ const sourceAssetsDir = path.resolve(__dirname, '../../assets');
44
+
45
+ // Find the parent project root
46
+ const parentProjectRoot = findProjectRoot();
47
+
48
+ if (!parentProjectRoot) {
49
+ console.error('Error: Could not find parent project root');
50
+ process.exit(1);
51
+ }
52
+
53
+ // Destination: <parent-project>/packs/<package-name>/assets
54
+ const targetPackDir = path.join(parentProjectRoot, 'packs', packageName);
55
+ const targetAssetsDir = path.join(targetPackDir, 'assets');
56
+
57
+ // Check if source assets directory exists
58
+ if (fs.existsSync(sourceAssetsDir)) {
59
+ // Delete target directory if it already exists
60
+ if (fs.existsSync(targetPackDir)) {
61
+ fs.rmSync(targetPackDir, { recursive: true, force: true });
62
+ }
63
+
64
+ // Create target directory
65
+ fs.mkdirSync(targetPackDir, { recursive: true });
66
+
67
+ // Copy entire assets folder
68
+ fs.cpSync(sourceAssetsDir, targetAssetsDir, { recursive: true });
69
+
70
+ console.log(`✓ Assets from "${packageName}" copied to: ${path.relative(parentProjectRoot, targetPackDir)}`);
71
+ } else {
72
+ console.log(`⚠ No assets folder found in "${packageName}"`);
73
+ }
74
+ } catch (error) {
75
+ console.error('Error during postinstall:', error);
76
+ process.exit(1);
77
+ }
78
+ }
79
+
80
+ export {};
81
+
@@ -1,34 +1,34 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2021",
4
- "useDefineForClassFields": true,
5
- "module": "ESNext",
6
- "lib": [
7
- "ES2021",
8
- "DOM",
9
- "DOM.Iterable"
10
- ],
11
- "skipLibCheck": true,
12
- "moduleResolution": "node",
13
- "allowSyntheticDefaultImports": true,
14
- "resolveJsonModule": true,
15
- "isolatedModules": true,
16
- "jsx": "preserve",
17
- "strict": true,
18
- "noUnusedLocals": false,
19
- "noUnusedParameters": false,
20
- "noFallthroughCasesInSwitch": true,
21
- "outDir": "./dist",
22
- "rootDir": ".",
23
- "declaration": true,
24
- "inlineSourceMap": true,
25
- "experimentalDecorators": true,
26
- "noImplicitOverride": true,
27
- "noEmit": false,
28
- "types": ["node"]
29
- },
30
- "include": [
31
- "src/**/*",
32
- "scripts/**/*"
33
- ]
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2021",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "lib": [
7
+ "ES2021",
8
+ "DOM",
9
+ "DOM.Iterable"
10
+ ],
11
+ "skipLibCheck": true,
12
+ "moduleResolution": "node",
13
+ "allowSyntheticDefaultImports": true,
14
+ "resolveJsonModule": true,
15
+ "isolatedModules": true,
16
+ "jsx": "preserve",
17
+ "strict": true,
18
+ "noUnusedLocals": false,
19
+ "noUnusedParameters": false,
20
+ "noFallthroughCasesInSwitch": true,
21
+ "outDir": "./dist",
22
+ "rootDir": ".",
23
+ "declaration": true,
24
+ "inlineSourceMap": true,
25
+ "experimentalDecorators": true,
26
+ "noImplicitOverride": true,
27
+ "noEmit": false,
28
+ "types": ["node"]
29
+ },
30
+ "include": [
31
+ "src/**/*",
32
+ "scripts/**/*"
33
+ ]
34
34
  }
@@ -1,20 +1,20 @@
1
- {
2
- "mcpServers": {},
3
- "DISABLED_mcpServers": {
4
- "genesys": {
5
- "command": "npx",
6
- "args": [
7
- "tsx",
8
- "./scripts/genesys/genesys-mcp.ts",
9
- "cursor"
10
- ]
11
- },
12
- "genesys-docs": {
13
- "command": "npx",
14
- "args": [
15
- "tsx",
16
- "./scripts/genesys/doc-server.ts"
17
- ]
18
- }
19
- }
20
- }
1
+ {
2
+ "mcpServers": {},
3
+ "DISABLED_mcpServers": {
4
+ "genesys": {
5
+ "command": "npx",
6
+ "args": [
7
+ "tsx",
8
+ "./scripts/genesys/genesys-mcp.ts",
9
+ "cursor"
10
+ ]
11
+ },
12
+ "genesys-docs": {
13
+ "command": "npx",
14
+ "args": [
15
+ "tsx",
16
+ "./scripts/genesys/doc-server.ts"
17
+ ]
18
+ }
19
+ }
20
+ }
@@ -1,2 +1,2 @@
1
- !**/.engine/**
2
- **/.engine/docs/**
1
+ !**/.engine/**
2
+ **/.engine/docs/**