unity-agentic-tools 0.5.0 → 0.6.1
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.
- package/README.md +49 -103
- package/dist/animator-utils.d.ts +46 -0
- package/dist/animator-utils.d.ts.map +1 -0
- package/dist/animator-utils.js +161 -0
- package/dist/animator-utils.js.map +1 -0
- package/dist/bridge-install.d.ts +11 -0
- package/dist/bridge-install.d.ts.map +1 -0
- package/dist/bridge-install.js +23 -0
- package/dist/bridge-install.js.map +1 -0
- package/dist/build-settings.d.ts +43 -0
- package/dist/build-settings.d.ts.map +1 -0
- package/dist/build-settings.js +196 -0
- package/dist/build-settings.js.map +1 -0
- package/dist/build-version.d.ts +40 -0
- package/dist/build-version.d.ts.map +1 -0
- package/dist/build-version.js +114 -0
- package/dist/build-version.js.map +1 -0
- package/dist/class-ids.d.ts +30 -0
- package/dist/class-ids.d.ts.map +1 -0
- package/dist/class-ids.js +322 -0
- package/dist/class-ids.js.map +1 -0
- package/dist/cleanup.d.ts +21 -0
- package/dist/cleanup.d.ts.map +1 -0
- package/dist/cleanup.js +161 -0
- package/dist/cleanup.js.map +1 -0
- package/dist/cli-output.d.ts +7 -0
- package/dist/cli-output.d.ts.map +1 -0
- package/dist/cli-output.js +24 -0
- package/dist/cli-output.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +795 -8143
- package/dist/cli.js.map +1 -0
- package/dist/doc-indexer-cli.js +1 -1
- package/dist/editor-client.d.ts +18 -0
- package/dist/editor-client.d.ts.map +1 -0
- package/dist/editor-client.js +256 -0
- package/dist/editor-client.js.map +1 -0
- package/dist/editor-discovery.d.ts +17 -0
- package/dist/editor-discovery.d.ts.map +1 -0
- package/dist/editor-discovery.js +248 -0
- package/dist/editor-discovery.js.map +1 -0
- package/dist/editor-transport.d.ts +30 -0
- package/dist/editor-transport.d.ts.map +1 -0
- package/dist/editor-transport.js +175 -0
- package/dist/editor-transport.js.map +1 -0
- package/dist/gitignore.d.ts +3 -0
- package/dist/gitignore.d.ts.map +1 -0
- package/dist/gitignore.js +40 -0
- package/dist/gitignore.js.map +1 -0
- package/dist/guid-cache.d.ts +45 -0
- package/dist/guid-cache.d.ts.map +1 -0
- package/dist/guid-cache.js +111 -0
- package/dist/guid-cache.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +743 -8040
- package/dist/index.js.map +1 -0
- package/dist/loaded-protection.d.ts +6 -0
- package/dist/loaded-protection.d.ts.map +1 -0
- package/dist/loaded-protection.js +95 -0
- package/dist/loaded-protection.js.map +1 -0
- package/dist/packages.d.ts +55 -0
- package/dist/packages.d.ts.map +1 -0
- package/dist/packages.js +102 -0
- package/dist/packages.js.map +1 -0
- package/dist/params.d.ts +54 -0
- package/dist/params.d.ts.map +1 -0
- package/dist/params.js +106 -0
- package/dist/params.js.map +1 -0
- package/dist/project-search.d.ts +16 -0
- package/dist/project-search.d.ts.map +1 -0
- package/dist/project-search.js +538 -0
- package/dist/project-search.js.map +1 -0
- package/dist/scanner.d.ts +150 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +223 -0
- package/dist/scanner.js.map +1 -0
- package/dist/setup.d.ts +25 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +185 -0
- package/dist/setup.js.map +1 -0
- package/dist/types.d.ts +390 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/util.d.ts +2 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +7 -0
- package/dist/util.js.map +1 -0
- package/dist/utils.d.ts +82 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +291 -0
- package/dist/utils.js.map +1 -0
- package/native/unity-file-tools.darwin-arm64.node +0 -0
- package/native/unity-file-tools.darwin-x64.node +0 -0
- package/native/unity-file-tools.linux-x64-gnu.node +0 -0
- package/native/unity-file-tools.win32-x64-msvc.node +0 -0
- package/package.json +4 -3
|
@@ -0,0 +1,150 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner.js
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|