unity-agentic-tools 0.6.1 → 0.7.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 (47) hide show
  1. package/README.md +18 -2
  2. package/dist/bridge-install.d.ts +6 -1
  3. package/dist/bridge-install.d.ts.map +1 -1
  4. package/dist/bridge-install.js +75 -4
  5. package/dist/bridge-install.js.map +1 -1
  6. package/dist/cli.js +432 -161
  7. package/dist/cli.js.map +1 -1
  8. package/dist/editor-client.d.ts +8 -1
  9. package/dist/editor-client.d.ts.map +1 -1
  10. package/dist/editor-client.js +256 -54
  11. package/dist/editor-client.js.map +1 -1
  12. package/dist/index.d.ts +0 -7
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +39 -972
  15. package/dist/index.js.map +1 -1
  16. package/dist/types.d.ts +16 -239
  17. package/dist/types.d.ts.map +1 -1
  18. package/dist/types.js +1 -0
  19. package/dist/types.js.map +1 -1
  20. package/package.json +8 -13
  21. package/dist/cli-output.d.ts +0 -7
  22. package/dist/cli-output.d.ts.map +0 -1
  23. package/dist/cli-output.js +0 -24
  24. package/dist/cli-output.js.map +0 -1
  25. package/dist/doc-indexer-cli.js +0 -3218
  26. package/dist/guid-cache.d.ts +0 -45
  27. package/dist/guid-cache.d.ts.map +0 -1
  28. package/dist/guid-cache.js +0 -111
  29. package/dist/guid-cache.js.map +0 -1
  30. package/dist/project-search.d.ts +0 -16
  31. package/dist/project-search.d.ts.map +0 -1
  32. package/dist/project-search.js +0 -538
  33. package/dist/project-search.js.map +0 -1
  34. package/dist/scanner.d.ts +0 -150
  35. package/dist/scanner.d.ts.map +0 -1
  36. package/dist/scanner.js +0 -223
  37. package/dist/scanner.js.map +0 -1
  38. package/dist/setup.d.ts +0 -25
  39. package/dist/setup.d.ts.map +0 -1
  40. package/dist/setup.js +0 -185
  41. package/dist/setup.js.map +0 -1
  42. package/native/index.d.ts +0 -335
  43. package/native/index.js +0 -330
  44. package/native/unity-file-tools.darwin-arm64.node +0 -0
  45. package/native/unity-file-tools.darwin-x64.node +0 -0
  46. package/native/unity-file-tools.linux-x64-gnu.node +0 -0
  47. package/native/unity-file-tools.win32-x64-msvc.node +0 -0
package/dist/scanner.d.ts DELETED
@@ -1,150 +0,0 @@
1
- import { AssetObject, FindResult, GameObject, GameObjectDetail, GameObjectWithComponents, SceneInspection, InspectOptions, ScanOptions, PaginationOptions, PaginatedInspection } from './types';
2
- declare let nativeWalkProjectFiles: ((projectPath: string, extensions: string[], excludeDirs?: string[] | null) => string[]) | null;
3
- declare let nativeGrepProject: ((options: unknown) => unknown) | null;
4
- declare let nativeBuildGuidCache: ((projectRoot: string) => unknown) | null;
5
- declare let nativeExtractCsharpTypes: ((path: string) => Array<{
6
- name: string;
7
- kind: string;
8
- namespace: string | null;
9
- filePath: string;
10
- guid: string | null;
11
- }>) | null;
12
- declare let nativeBuildTypeRegistry: ((projectRoot: string, includePackages?: boolean | null, includeDlls?: boolean | null) => Array<{
13
- name: string;
14
- kind: string;
15
- namespace: string | null;
16
- filePath: string;
17
- guid: string | null;
18
- }>) | null;
19
- declare let nativeExtractDllTypes: ((path: string) => Array<{
20
- name: string;
21
- kind: string;
22
- namespace: string | null;
23
- filePath: string;
24
- guid: string | null;
25
- }>) | null;
26
- declare let nativeBuildPackageGuidCache: ((projectRoot: string) => unknown) | null;
27
- declare let nativeBuildLocalPackageGuidCache: ((projectRoot: string) => unknown) | null;
28
- declare let nativeExtractSerializedFields: ((path: string) => Array<{
29
- name: string;
30
- kind: string;
31
- namespace: string | null;
32
- baseClass: string | null;
33
- fields: Array<{
34
- name: string;
35
- typeName: string;
36
- hasSerializeField: boolean;
37
- hasSerializeReference: boolean;
38
- isPublic: boolean;
39
- ownerType: string;
40
- }>;
41
- }>) | null;
42
- declare let nativeExtractDllFields: ((path: string) => Array<{
43
- name: string;
44
- kind: string;
45
- namespace: string | null;
46
- baseClass: string | null;
47
- fields: Array<{
48
- name: string;
49
- typeName: string;
50
- hasSerializeField: boolean;
51
- hasSerializeReference: boolean;
52
- isPublic: boolean;
53
- ownerType: string;
54
- }>;
55
- }>) | null;
56
- /**
57
- * Check if the native Rust module is available
58
- */
59
- export declare function isNativeModuleAvailable(): boolean;
60
- /**
61
- * Get the native module error message if it failed to load
62
- */
63
- export declare function getNativeModuleError(): string | null;
64
- /**
65
- * Unity scene/prefab scanner powered by Rust
66
- */
67
- export declare class UnityScanner {
68
- private scanner;
69
- constructor();
70
- /**
71
- * Set project root for GUID resolution
72
- */
73
- setProjectRoot(path: string): void;
74
- /**
75
- * Scan scene for basic GameObject information
76
- */
77
- scan_scene_minimal(file: string): GameObject[];
78
- /**
79
- * Scan scene with component information
80
- */
81
- scan_scene_with_components(file: string, options?: ScanOptions): GameObjectWithComponents[];
82
- /**
83
- * Scan scene for GO metadata (name, tag, layer) without component/hierarchy extraction.
84
- * Faster than scan_scene_with_components for tag/layer-only filtering.
85
- */
86
- scan_scene_metadata(file: string): GameObjectWithComponents[];
87
- /**
88
- * Find GameObjects and PrefabInstances by name pattern
89
- */
90
- find_by_name(file: string, pattern: string, fuzzy?: boolean): FindResult[];
91
- /**
92
- * Inspect a specific GameObject
93
- */
94
- inspect(options: InspectOptions): GameObjectDetail | null;
95
- /**
96
- * Inspect entire file
97
- */
98
- inspect_all(file: string, include_properties?: boolean, verbose?: boolean): SceneInspection;
99
- /**
100
- * Inspect entire file with pagination
101
- */
102
- inspect_all_paginated(options: PaginationOptions): PaginatedInspection;
103
- /**
104
- * Read a .asset file (ScriptableObject) and return its root objects with properties.
105
- * When decode_mesh is true (default), Mesh assets get hex data decoded into structured arrays.
106
- */
107
- read_asset(file: string, decode_mesh?: boolean): AssetObject[];
108
- }
109
- /**
110
- * Get native walk_project_files if available, or null
111
- */
112
- export declare function getNativeWalkProjectFiles(): typeof nativeWalkProjectFiles;
113
- /**
114
- * Get native grep_project if available, or null
115
- */
116
- export declare function getNativeGrepProject(): typeof nativeGrepProject;
117
- /**
118
- * Get native build_guid_cache if available, or null
119
- */
120
- export declare function getNativeBuildGuidCache(): typeof nativeBuildGuidCache;
121
- /**
122
- * Get native extract_csharp_types if available, or null
123
- */
124
- export declare function getNativeExtractCsharpTypes(): typeof nativeExtractCsharpTypes;
125
- /**
126
- * Get native build_type_registry if available, or null
127
- */
128
- export declare function getNativeBuildTypeRegistry(): typeof nativeBuildTypeRegistry;
129
- /**
130
- * Get native extract_dll_types if available, or null
131
- */
132
- export declare function getNativeExtractDllTypes(): typeof nativeExtractDllTypes;
133
- /**
134
- * Get native build_package_guid_cache if available, or null
135
- */
136
- export declare function getNativeBuildPackageGuidCache(): typeof nativeBuildPackageGuidCache;
137
- /**
138
- * Get native build_local_package_guid_cache if available, or null
139
- */
140
- export declare function getNativeBuildLocalPackageGuidCache(): typeof nativeBuildLocalPackageGuidCache;
141
- /**
142
- * Get native extract_serialized_fields if available, or null
143
- */
144
- export declare function getNativeExtractSerializedFields(): typeof nativeExtractSerializedFields;
145
- /**
146
- * Get native extract_dll_fields if available, or null
147
- */
148
- export declare function getNativeExtractDllFields(): typeof nativeExtractDllFields;
149
- export {};
150
- //# sourceMappingURL=scanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
package/dist/scanner.js DELETED
@@ -1,223 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnityScanner = void 0;
4
- exports.isNativeModuleAvailable = isNativeModuleAvailable;
5
- exports.getNativeModuleError = getNativeModuleError;
6
- exports.getNativeWalkProjectFiles = getNativeWalkProjectFiles;
7
- exports.getNativeGrepProject = getNativeGrepProject;
8
- exports.getNativeBuildGuidCache = getNativeBuildGuidCache;
9
- exports.getNativeExtractCsharpTypes = getNativeExtractCsharpTypes;
10
- exports.getNativeBuildTypeRegistry = getNativeBuildTypeRegistry;
11
- exports.getNativeExtractDllTypes = getNativeExtractDllTypes;
12
- exports.getNativeBuildPackageGuidCache = getNativeBuildPackageGuidCache;
13
- exports.getNativeBuildLocalPackageGuidCache = getNativeBuildLocalPackageGuidCache;
14
- exports.getNativeExtractSerializedFields = getNativeExtractSerializedFields;
15
- exports.getNativeExtractDllFields = getNativeExtractDllFields;
16
- const module_1 = require("module");
17
- const fs_1 = require("fs");
18
- const path_1 = require("path");
19
- // Load the native Rust module
20
- // bun's bundler hardcodes import.meta.url and __dirname at build time, so we
21
- // use process.argv[1] (always a runtime value) to find the actual script location.
22
- let RustScanner = null;
23
- let nativeModuleError = null;
24
- // Native walker functions (standalone, not Scanner methods)
25
- let nativeWalkProjectFiles = null;
26
- let nativeGrepProject = null;
27
- let nativeBuildGuidCache = null;
28
- let nativeExtractCsharpTypes = null;
29
- let nativeBuildTypeRegistry = null;
30
- let nativeExtractDllTypes = null;
31
- let nativeBuildPackageGuidCache = null;
32
- let nativeBuildLocalPackageGuidCache = null;
33
- let nativeExtractSerializedFields = null;
34
- let nativeExtractDllFields = null;
35
- try {
36
- const scriptDir = process.argv[1]
37
- ? (0, path_1.dirname)((0, path_1.resolve)(process.argv[1]))
38
- : __dirname;
39
- let rustModule;
40
- // Strategy 1: Published package — native/ directory bundled alongside dist/
41
- const nativeLoaderPath = (0, path_1.join)(scriptDir, '..', 'native', 'index.js');
42
- if ((0, fs_1.existsSync)(nativeLoaderPath)) {
43
- const nativeRequire = (0, module_1.createRequire)(nativeLoaderPath);
44
- rustModule = nativeRequire(nativeLoaderPath);
45
- }
46
- else {
47
- // Strategy 2: Dev workspace — resolve 'unity-file-tools' via workspace link
48
- // Anchor createRequire to script dir for correct node_modules traversal
49
- const wsRequire = (0, module_1.createRequire)((0, path_1.join)(scriptDir, '_'));
50
- rustModule = wsRequire('unity-file-tools');
51
- }
52
- RustScanner = rustModule.Scanner;
53
- nativeWalkProjectFiles = rustModule.walkProjectFiles || null;
54
- nativeGrepProject = rustModule.grepProject || null;
55
- nativeBuildGuidCache = rustModule.buildGuidCache || null;
56
- nativeExtractCsharpTypes = rustModule.extractCsharpTypes || null;
57
- nativeBuildTypeRegistry = rustModule.buildTypeRegistry || null;
58
- nativeExtractDllTypes = rustModule.extractDllTypes || null;
59
- nativeBuildPackageGuidCache = rustModule.buildPackageGuidCache || null;
60
- nativeBuildLocalPackageGuidCache = rustModule.buildLocalPackageGuidCache || null;
61
- nativeExtractSerializedFields = rustModule.extractSerializedFields || null;
62
- nativeExtractDllFields = rustModule.extractDllFields || null;
63
- }
64
- catch (err) {
65
- nativeModuleError =
66
- `Failed to load native Rust module.\n` +
67
- `Run: bun install (in the project root)\n` +
68
- `Original error: ${err.message}`;
69
- }
70
- /**
71
- * Check if the native Rust module is available
72
- */
73
- function isNativeModuleAvailable() {
74
- return RustScanner !== null;
75
- }
76
- /**
77
- * Get the native module error message if it failed to load
78
- */
79
- function getNativeModuleError() {
80
- return nativeModuleError;
81
- }
82
- /**
83
- * Unity scene/prefab scanner powered by Rust
84
- */
85
- class UnityScanner {
86
- constructor() {
87
- if (!RustScanner) {
88
- throw new Error(nativeModuleError || 'Native module not available');
89
- }
90
- this.scanner = new RustScanner();
91
- }
92
- /**
93
- * Set project root for GUID resolution
94
- */
95
- setProjectRoot(path) {
96
- this.scanner.setProjectRoot(path);
97
- }
98
- /**
99
- * Scan scene for basic GameObject information
100
- */
101
- scan_scene_minimal(file) {
102
- return this.scanner.scanSceneMinimal(file);
103
- }
104
- /**
105
- * Scan scene with component information
106
- */
107
- scan_scene_with_components(file, options) {
108
- return this.scanner.scanSceneWithComponents(file, options);
109
- }
110
- /**
111
- * Scan scene for GO metadata (name, tag, layer) without component/hierarchy extraction.
112
- * Faster than scan_scene_with_components for tag/layer-only filtering.
113
- */
114
- scan_scene_metadata(file) {
115
- return this.scanner.scanSceneMetadata(file);
116
- }
117
- /**
118
- * Find GameObjects and PrefabInstances by name pattern
119
- */
120
- find_by_name(file, pattern, fuzzy = true) {
121
- return this.scanner.findByName(file, pattern, fuzzy);
122
- }
123
- /**
124
- * Inspect a specific GameObject
125
- */
126
- inspect(options) {
127
- return this.scanner.inspect({
128
- file: options.file,
129
- identifier: options.identifier,
130
- includeProperties: options.include_properties,
131
- verbose: options.verbose,
132
- });
133
- }
134
- /**
135
- * Inspect entire file
136
- */
137
- inspect_all(file, include_properties = false, verbose = false) {
138
- return this.scanner.inspectAll(file, include_properties, verbose);
139
- }
140
- /**
141
- * Inspect entire file with pagination
142
- */
143
- inspect_all_paginated(options) {
144
- return this.scanner.inspectAllPaginated({
145
- file: options.file,
146
- includeProperties: options.include_properties,
147
- verbose: options.verbose,
148
- pageSize: options.page_size,
149
- cursor: options.cursor,
150
- maxDepth: options.max_depth,
151
- filterComponent: options.filter_component,
152
- });
153
- }
154
- /**
155
- * Read a .asset file (ScriptableObject) and return its root objects with properties.
156
- * When decode_mesh is true (default), Mesh assets get hex data decoded into structured arrays.
157
- */
158
- read_asset(file, decode_mesh) {
159
- return this.scanner.readAsset(file, decode_mesh);
160
- }
161
- }
162
- exports.UnityScanner = UnityScanner;
163
- /**
164
- * Get native walk_project_files if available, or null
165
- */
166
- function getNativeWalkProjectFiles() {
167
- return nativeWalkProjectFiles;
168
- }
169
- /**
170
- * Get native grep_project if available, or null
171
- */
172
- function getNativeGrepProject() {
173
- return nativeGrepProject;
174
- }
175
- /**
176
- * Get native build_guid_cache if available, or null
177
- */
178
- function getNativeBuildGuidCache() {
179
- return nativeBuildGuidCache;
180
- }
181
- /**
182
- * Get native extract_csharp_types if available, or null
183
- */
184
- function getNativeExtractCsharpTypes() {
185
- return nativeExtractCsharpTypes;
186
- }
187
- /**
188
- * Get native build_type_registry if available, or null
189
- */
190
- function getNativeBuildTypeRegistry() {
191
- return nativeBuildTypeRegistry;
192
- }
193
- /**
194
- * Get native extract_dll_types if available, or null
195
- */
196
- function getNativeExtractDllTypes() {
197
- return nativeExtractDllTypes;
198
- }
199
- /**
200
- * Get native build_package_guid_cache if available, or null
201
- */
202
- function getNativeBuildPackageGuidCache() {
203
- return nativeBuildPackageGuidCache;
204
- }
205
- /**
206
- * Get native build_local_package_guid_cache if available, or null
207
- */
208
- function getNativeBuildLocalPackageGuidCache() {
209
- return nativeBuildLocalPackageGuidCache;
210
- }
211
- /**
212
- * Get native extract_serialized_fields if available, or null
213
- */
214
- function getNativeExtractSerializedFields() {
215
- return nativeExtractSerializedFields;
216
- }
217
- /**
218
- * Get native extract_dll_fields if available, or null
219
- */
220
- function getNativeExtractDllFields() {
221
- return nativeExtractDllFields;
222
- }
223
- //# sourceMappingURL=scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
package/dist/setup.d.ts DELETED
@@ -1,25 +0,0 @@
1
- export interface SetupOptions {
2
- project?: string;
3
- indexDocs?: boolean;
4
- }
5
- export interface SetupResult {
6
- success: boolean;
7
- project_path: string;
8
- config_path: string;
9
- guid_cache_created: boolean;
10
- package_cache_created: boolean;
11
- type_registry_created: boolean;
12
- doc_index_created: boolean;
13
- guid_count?: number;
14
- package_guid_count?: number;
15
- type_count?: number;
16
- error?: string;
17
- }
18
- export interface GuidCache {
19
- [guid: string]: string;
20
- }
21
- /**
22
- * Set up unity-agentic tools for a Unity project
23
- */
24
- export declare function setup(options?: SetupOptions): SetupResult;
25
- //# sourceMappingURL=setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,WAAW,CA2G7D"}
package/dist/setup.js DELETED
@@ -1,185 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setup = setup;
4
- const fs_1 = require("fs");
5
- const path_1 = require("path");
6
- const scanner_1 = require("./scanner");
7
- const gitignore_1 = require("./gitignore");
8
- // Version is inlined at build time by bun's bundler (no runtime path resolution)
9
- const VERSION = require('../package.json').version;
10
- const CONFIG_DIR = '.unity-agentic';
11
- const CONFIG_FILE = 'config.json';
12
- const GUID_CACHE_FILE = 'guid-cache.json';
13
- const PACKAGE_CACHE_FILE = 'package-cache.json';
14
- const LOCAL_PACKAGE_CACHE_FILE = 'local-package-cache.json';
15
- const TYPE_REGISTRY_FILE = 'type-registry.json';
16
- const DOC_INDEX_FILE = 'doc-index.json';
17
- /**
18
- * Set up unity-agentic tools for a Unity project
19
- */
20
- function setup(options = {}) {
21
- const projectPath = (0, path_1.resolve)(options.project || process.cwd());
22
- // Verify this is a Unity project
23
- const assetsPath = (0, path_1.join)(projectPath, 'Assets');
24
- if (!(0, fs_1.existsSync)(assetsPath)) {
25
- return {
26
- success: false,
27
- project_path: projectPath,
28
- config_path: '',
29
- guid_cache_created: false,
30
- package_cache_created: false,
31
- type_registry_created: false,
32
- doc_index_created: false,
33
- error: `Not a Unity project: Assets folder not found at ${assetsPath}`,
34
- };
35
- }
36
- const configPath = (0, path_1.join)(projectPath, CONFIG_DIR);
37
- // Create config directory
38
- if (!(0, fs_1.existsSync)(configPath)) {
39
- (0, fs_1.mkdirSync)(configPath, { recursive: true });
40
- }
41
- (0, gitignore_1.ensure_gitignore_ignores_agentic_dir)(projectPath);
42
- // Create config.json
43
- const config = {
44
- version: VERSION,
45
- project_path: projectPath,
46
- created_at: new Date().toISOString(),
47
- rust_enabled: isRustAvailable(),
48
- };
49
- (0, fs_1.writeFileSync)((0, path_1.join)(configPath, CONFIG_FILE), JSON.stringify(config, null, 2));
50
- // Build GUID cache
51
- const guidCache = buildGuidCache(projectPath);
52
- const guidCachePath = (0, path_1.join)(configPath, GUID_CACHE_FILE);
53
- (0, fs_1.writeFileSync)(guidCachePath, JSON.stringify(guidCache, null, 2));
54
- // Build package GUID cache (Library/PackageCache/)
55
- let packageCacheCreated = false;
56
- let packageGuidCount;
57
- const nativePkgBuild = (0, scanner_1.getNativeBuildPackageGuidCache)();
58
- if (nativePkgBuild) {
59
- try {
60
- const packageCache = nativePkgBuild(projectPath);
61
- const packageCachePath = (0, path_1.join)(configPath, PACKAGE_CACHE_FILE);
62
- (0, fs_1.writeFileSync)(packageCachePath, JSON.stringify(packageCache, null, 2));
63
- packageCacheCreated = true;
64
- packageGuidCount = Object.keys(packageCache).length;
65
- }
66
- catch {
67
- // Package cache is optional; don't fail setup if it errors
68
- }
69
- }
70
- // Build local package GUID cache (Packages/ directory - embedded/local packages)
71
- const nativeLocalPkgBuild = (0, scanner_1.getNativeBuildLocalPackageGuidCache)();
72
- if (nativeLocalPkgBuild) {
73
- try {
74
- const localPackageCache = nativeLocalPkgBuild(projectPath);
75
- const localPkgCount = Object.keys(localPackageCache).length;
76
- if (localPkgCount > 0) {
77
- const localPkgCachePath = (0, path_1.join)(configPath, LOCAL_PACKAGE_CACHE_FILE);
78
- (0, fs_1.writeFileSync)(localPkgCachePath, JSON.stringify(localPackageCache, null, 2));
79
- }
80
- }
81
- catch {
82
- // Local package cache is optional
83
- }
84
- }
85
- // Build type registry (C# class names -> GUIDs + namespaces)
86
- let typeRegistryCreated = false;
87
- let typeCount;
88
- const nativeRegistryBuild = (0, scanner_1.getNativeBuildTypeRegistry)();
89
- if (nativeRegistryBuild) {
90
- try {
91
- const types = nativeRegistryBuild(projectPath, true, true);
92
- const registryPath = (0, path_1.join)(configPath, TYPE_REGISTRY_FILE);
93
- (0, fs_1.writeFileSync)(registryPath, JSON.stringify(types, null, 2));
94
- typeRegistryCreated = true;
95
- typeCount = types.length;
96
- }
97
- catch {
98
- // Type registry is optional; don't fail setup if it errors
99
- }
100
- }
101
- // Optionally create doc index
102
- let docIndexCreated = false;
103
- if (options.indexDocs) {
104
- const docIndex = { chunks: {}, last_updated: Date.now() };
105
- (0, fs_1.writeFileSync)((0, path_1.join)(configPath, DOC_INDEX_FILE), JSON.stringify(docIndex, null, 2));
106
- docIndexCreated = true;
107
- }
108
- return {
109
- success: true,
110
- project_path: projectPath,
111
- config_path: configPath,
112
- guid_cache_created: true,
113
- package_cache_created: packageCacheCreated,
114
- type_registry_created: typeRegistryCreated,
115
- doc_index_created: docIndexCreated,
116
- guid_count: Object.keys(guidCache).length,
117
- package_guid_count: packageGuidCount,
118
- type_count: typeCount,
119
- };
120
- }
121
- /**
122
- * Build GUID cache by scanning all .meta files.
123
- * Uses native Rust parallel scanner when available, falls back to JS.
124
- */
125
- function buildGuidCache(projectRoot) {
126
- // Try native Rust implementation first (parallel .meta scanning)
127
- const nativeBuild = (0, scanner_1.getNativeBuildGuidCache)();
128
- if (nativeBuild) {
129
- try {
130
- return nativeBuild(projectRoot);
131
- }
132
- catch {
133
- // Fall through to JS implementation
134
- }
135
- }
136
- return buildGuidCacheJs(projectRoot);
137
- }
138
- /** JS fallback implementation of buildGuidCache. */
139
- function buildGuidCacheJs(projectRoot) {
140
- const cache = {};
141
- const assetsDir = (0, path_1.join)(projectRoot, 'Assets');
142
- if (!(0, fs_1.existsSync)(assetsDir)) {
143
- return cache;
144
- }
145
- scanMetaFiles(assetsDir, projectRoot, cache);
146
- return cache;
147
- }
148
- function scanMetaFiles(dir, projectRoot, cache) {
149
- try {
150
- const entries = (0, fs_1.readdirSync)(dir);
151
- for (const entry of entries) {
152
- const fullPath = (0, path_1.join)(dir, entry);
153
- const stat = (0, fs_1.statSync)(fullPath);
154
- if (stat.isDirectory()) {
155
- scanMetaFiles(fullPath, projectRoot, cache);
156
- }
157
- else if (entry.endsWith('.meta')) {
158
- try {
159
- const content = (0, fs_1.readFileSync)(fullPath, 'utf-8');
160
- const guidMatch = content.match(/^guid:\s*([a-f0-9]{32})/m);
161
- if (guidMatch) {
162
- const guid = guidMatch[1];
163
- // Remove .meta extension to get actual asset path
164
- const assetPath = fullPath.slice(0, -5);
165
- const relativePath = (0, path_1.relative)(projectRoot, assetPath);
166
- cache[guid] = relativePath;
167
- }
168
- }
169
- catch {
170
- // Skip files we can't read
171
- }
172
- }
173
- }
174
- }
175
- catch {
176
- // Skip directories we can't access
177
- }
178
- }
179
- /**
180
- * Check if Rust native module is available
181
- */
182
- function isRustAvailable() {
183
- return (0, scanner_1.isNativeModuleAvailable)();
184
- }
185
- //# sourceMappingURL=setup.js.map
package/dist/setup.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;AA0CA,sBA2GC;AArJD,2BAA+F;AAC/F,+BAA+C;AAC/C,uCAA8K;AAC9K,2CAAmE;AAEnE,iFAAiF;AACjF,MAAM,OAAO,GAAY,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AAEpF,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAC1C,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAC5D,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAyBxC;;GAEG;AACH,SAAgB,KAAK,CAAC,UAAwB,EAAE;IAC9C,MAAM,WAAW,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE9D,iCAAiC;IACjC,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,EAAE;YACf,kBAAkB,EAAE,KAAK;YACzB,qBAAqB,EAAE,KAAK;YAC5B,qBAAqB,EAAE,KAAK;YAC5B,iBAAiB,EAAE,KAAK;YACxB,KAAK,EAAE,mDAAmD,UAAU,EAAE;SACvE,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAEjD,0BAA0B;IAC1B,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,IAAA,cAAS,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,IAAA,gDAAoC,EAAC,WAAW,CAAC,CAAC;IAElD,qBAAqB;IACrB,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,YAAY,EAAE,eAAe,EAAE;KAChC,CAAC;IACF,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE9E,mBAAmB;IACnB,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACxD,IAAA,kBAAa,EAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEjE,mDAAmD;IACnD,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,gBAAoC,CAAC;IACzC,MAAM,cAAc,GAAG,IAAA,wCAA8B,GAAE,CAAC;IACxD,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,CAAc,CAAC;YAC9D,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;YAC9D,IAAA,kBAAa,EAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,mBAAmB,GAAG,IAAI,CAAC;YAC3B,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,MAAM,mBAAmB,GAAG,IAAA,6CAAmC,GAAE,CAAC;IAClE,IAAI,mBAAmB,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,CAAc,CAAC;YACxE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC;YAC5D,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,iBAAiB,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;gBACrE,IAAA,kBAAa,EAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,SAA6B,CAAC;IAClC,MAAM,mBAAmB,GAAG,IAAA,oCAA0B,GAAE,CAAC;IACzD,IAAI,mBAAmB,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;YAC1D,IAAA,kBAAa,EAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5D,mBAAmB,GAAG,IAAI,CAAC;YAC3B,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1D,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,UAAU;QACvB,kBAAkB,EAAE,IAAI;QACxB,qBAAqB,EAAE,mBAAmB;QAC1C,qBAAqB,EAAE,mBAAmB;QAC1C,iBAAiB,EAAE,eAAe;QAClC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;QACzC,kBAAkB,EAAE,gBAAgB;QACpC,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,WAAmB;IACzC,iEAAiE;IACjE,MAAM,WAAW,GAAG,IAAA,iCAAuB,GAAE,CAAC;IAC9C,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,WAAW,CAAc,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC;AAED,oDAAoD;AACpD,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE9C,IAAI,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,WAAmB,EAAE,KAAgB;IACvE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,gBAAW,EAAC,GAAG,CAAC,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,IAAA,aAAQ,EAAC,QAAQ,CAAC,CAAC;YAEhC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAE5D,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC1B,kDAAkD;wBAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,YAAY,GAAG,IAAA,eAAQ,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;wBACtD,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2BAA2B;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,OAAO,IAAA,iCAAuB,GAAE,CAAC;AACnC,CAAC"}