unity-agentic-tools 0.5.1 → 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
package/dist/utils.js
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.find_unity_project_root = find_unity_project_root;
|
|
4
|
+
exports.resolve_project_path = resolve_project_path;
|
|
5
|
+
exports.ensure_parent_dir = ensure_parent_dir;
|
|
6
|
+
exports.atomicWrite = atomicWrite;
|
|
7
|
+
exports.normalize_property_path = normalize_property_path;
|
|
8
|
+
exports.is_match_all = is_match_all;
|
|
9
|
+
exports.glob_match = glob_match;
|
|
10
|
+
exports.path_glob_to_regex = path_glob_to_regex;
|
|
11
|
+
exports.validate_name = validate_name;
|
|
12
|
+
exports.generateGuid = generateGuid;
|
|
13
|
+
exports.validate_file_path = validate_file_path;
|
|
14
|
+
exports.validate_vector3 = validate_vector3;
|
|
15
|
+
exports.validate_guid = validate_guid;
|
|
16
|
+
const fs_1 = require("fs");
|
|
17
|
+
const path_1 = require("path");
|
|
18
|
+
/**
|
|
19
|
+
* Walk up from startDir looking for a Unity project root.
|
|
20
|
+
* Checks for `.unity-agentic/` first, then `Assets/`.
|
|
21
|
+
*/
|
|
22
|
+
function find_unity_project_root(startDir) {
|
|
23
|
+
let dir = (0, path_1.resolve)(startDir || process.cwd());
|
|
24
|
+
const root = (0, path_1.resolve)('/');
|
|
25
|
+
while (dir !== root) {
|
|
26
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(dir, '.unity-agentic')))
|
|
27
|
+
return dir;
|
|
28
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(dir, 'Assets')) && (0, fs_1.existsSync)((0, path_1.join)(dir, 'ProjectSettings')))
|
|
29
|
+
return dir;
|
|
30
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(dir, 'Assets')))
|
|
31
|
+
return dir;
|
|
32
|
+
const parent = (0, path_1.dirname)(dir);
|
|
33
|
+
if (parent === dir)
|
|
34
|
+
break;
|
|
35
|
+
dir = parent;
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Resolve an explicit project path or default to the current working directory.
|
|
41
|
+
*/
|
|
42
|
+
function resolve_project_path(project_path) {
|
|
43
|
+
return (0, path_1.resolve)(project_path || process.cwd());
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Ensure the parent directory of a file path exists, creating it recursively if needed.
|
|
47
|
+
*/
|
|
48
|
+
function ensure_parent_dir(file_path) {
|
|
49
|
+
const dir = (0, path_1.dirname)(file_path);
|
|
50
|
+
if (dir && dir !== '.' && !(0, fs_1.existsSync)(dir)) {
|
|
51
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Atomic write: write to temp file, then rename to prevent partial writes.
|
|
56
|
+
* Uses randomized temp file names to prevent collisions from concurrent writes.
|
|
57
|
+
* Handles ENOENT gracefully for TOCTOU races (e.g., Unity AssetDatabase deleting files).
|
|
58
|
+
*/
|
|
59
|
+
function atomicWrite(filePath, content) {
|
|
60
|
+
// Check file write permission if the file already exists
|
|
61
|
+
if ((0, fs_1.existsSync)(filePath)) {
|
|
62
|
+
try {
|
|
63
|
+
(0, fs_1.accessSync)(filePath, fs_1.constants.W_OK);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return {
|
|
67
|
+
success: false,
|
|
68
|
+
file_path: filePath,
|
|
69
|
+
error: `Permission denied: ${filePath} is not writable`
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Randomized temp name to prevent collisions from concurrent writes
|
|
74
|
+
const suffix = `${process.pid}-${Math.random().toString(36).slice(2, 8)}`;
|
|
75
|
+
const tmpPath = `${filePath}.${suffix}.tmp`;
|
|
76
|
+
const bakPath = `${filePath}.${suffix}.bak`;
|
|
77
|
+
let bakCreated = false;
|
|
78
|
+
try {
|
|
79
|
+
(0, fs_1.writeFileSync)(tmpPath, content, 'utf-8');
|
|
80
|
+
// Move original to .bak -- if it vanished (TOCTOU race), that's OK
|
|
81
|
+
try {
|
|
82
|
+
(0, fs_1.renameSync)(filePath, bakPath);
|
|
83
|
+
bakCreated = true;
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
if (is_enoent(err)) {
|
|
87
|
+
// File was deleted externally between our check and rename -- not an error
|
|
88
|
+
bakCreated = false;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
throw err;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Promote temp file to final path
|
|
95
|
+
(0, fs_1.renameSync)(tmpPath, filePath);
|
|
96
|
+
// Clean up backup
|
|
97
|
+
if (bakCreated) {
|
|
98
|
+
try {
|
|
99
|
+
(0, fs_1.unlinkSync)(bakPath);
|
|
100
|
+
}
|
|
101
|
+
catch { /* ignore cleanup errors */ }
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
success: true,
|
|
105
|
+
file_path: filePath,
|
|
106
|
+
bytes_written: Buffer.byteLength(content, 'utf-8')
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
// Rollback: restore backup if we created one
|
|
111
|
+
if (bakCreated) {
|
|
112
|
+
try {
|
|
113
|
+
(0, fs_1.renameSync)(bakPath, filePath);
|
|
114
|
+
}
|
|
115
|
+
catch (restoreError) {
|
|
116
|
+
console.error('Failed to restore backup:', restoreError);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Always clean up temp file
|
|
120
|
+
try {
|
|
121
|
+
(0, fs_1.unlinkSync)(tmpPath);
|
|
122
|
+
}
|
|
123
|
+
catch { /* may not exist */ }
|
|
124
|
+
return {
|
|
125
|
+
success: false,
|
|
126
|
+
file_path: filePath,
|
|
127
|
+
error: error instanceof Error ? error.message : String(error)
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function is_enoent(err) {
|
|
132
|
+
return err instanceof Error && 'code' in err && err.code === 'ENOENT';
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Normalize property path: convert dot-notation array indices to bracket notation.
|
|
136
|
+
* e.g. "m_Materials.Array.data.0" -> "m_Materials.Array.data[0]"
|
|
137
|
+
* This provides a shell-safe alternative to bracket syntax which triggers glob expansion in zsh.
|
|
138
|
+
*/
|
|
139
|
+
function normalize_property_path(path) {
|
|
140
|
+
return path.replace(/\.Array\.data\.(\d+)/g, '.Array.data[$1]');
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Check if a pattern matches everything (wildcard-all).
|
|
144
|
+
* Patterns like "*", ".", "**" mean "all objects" — not a real filter.
|
|
145
|
+
*/
|
|
146
|
+
function is_match_all(pattern) {
|
|
147
|
+
return pattern === '*' || pattern === '.' || pattern === '**' || pattern === '.*';
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Match a string against a glob pattern (* and ? wildcards) or exact equality.
|
|
151
|
+
* Case-insensitive. If the pattern has no glob chars, does exact equality.
|
|
152
|
+
*/
|
|
153
|
+
function glob_match(pattern, text) {
|
|
154
|
+
if (!pattern.includes('*') && !pattern.includes('?')) {
|
|
155
|
+
return pattern.toLowerCase() === text.toLowerCase();
|
|
156
|
+
}
|
|
157
|
+
const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
|
|
158
|
+
const regex_str = escaped.replace(/\*/g, '.*').replace(/\?/g, '.');
|
|
159
|
+
return new RegExp(`^${regex_str}$`, 'i').test(text);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Convert a glob pattern to a RegExp for matching against file paths.
|
|
163
|
+
* Handles ** (match across directories), * (match within one segment), ? (single char).
|
|
164
|
+
* Without wildcards, performs case-insensitive substring match.
|
|
165
|
+
* Unlike glob_match, this is designed for path filtering (no anchoring, path-aware).
|
|
166
|
+
*/
|
|
167
|
+
function path_glob_to_regex(pattern) {
|
|
168
|
+
if (!pattern.includes('*') && !pattern.includes('?')) {
|
|
169
|
+
// No wildcards: substring match
|
|
170
|
+
const escaped = pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
171
|
+
return new RegExp(escaped, 'i');
|
|
172
|
+
}
|
|
173
|
+
// Escape regex-special chars (not * and ?)
|
|
174
|
+
const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
|
|
175
|
+
// Replace ** first (via placeholder to avoid double-replacement), then *
|
|
176
|
+
const regex_str = escaped
|
|
177
|
+
.replace(/\*\*/g, '\0GLOBSTAR\0')
|
|
178
|
+
.replace(/\*/g, '[^/\\\\]*')
|
|
179
|
+
.replace(/\0GLOBSTAR\0/g, '.*')
|
|
180
|
+
.replace(/\?/g, '.');
|
|
181
|
+
return new RegExp(regex_str, 'i');
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Validate a name (GameObject, tag, etc.) for characters that are illegal in Unity.
|
|
185
|
+
* Returns an error string if invalid, or null if the name is acceptable.
|
|
186
|
+
*/
|
|
187
|
+
function validate_name(name, label) {
|
|
188
|
+
if (name.includes('/')) {
|
|
189
|
+
return `${label} cannot contain forward slashes (/) — Unity uses them as hierarchy path separators`;
|
|
190
|
+
}
|
|
191
|
+
if (name.includes('\\')) {
|
|
192
|
+
return `${label} cannot contain backslashes (\\)`;
|
|
193
|
+
}
|
|
194
|
+
if (name.includes('\n') || name.includes('\r')) {
|
|
195
|
+
return `${label} cannot contain newlines — they corrupt YAML structure`;
|
|
196
|
+
}
|
|
197
|
+
if (name.includes('\t')) {
|
|
198
|
+
return `${label} cannot contain tab characters — they break YAML indentation`;
|
|
199
|
+
}
|
|
200
|
+
if (name.includes('\0')) {
|
|
201
|
+
return `${label} cannot contain null bytes`;
|
|
202
|
+
}
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Generate a new GUID (32 hex characters).
|
|
207
|
+
*/
|
|
208
|
+
function generateGuid() {
|
|
209
|
+
const hex = '0123456789abcdef';
|
|
210
|
+
let guid = '';
|
|
211
|
+
for (let i = 0; i < 32; i++) {
|
|
212
|
+
guid += hex[Math.floor(Math.random() * 16)];
|
|
213
|
+
}
|
|
214
|
+
return guid;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Validate that a file path is safe for Unity operations.
|
|
218
|
+
* Rejects file:// URIs, path traversal, and Packages/ writes.
|
|
219
|
+
* Note: Absolute paths ARE allowed (this is a CLI tool, not a web API).
|
|
220
|
+
*
|
|
221
|
+
* @param file_path - The file path to validate
|
|
222
|
+
* @param operation - Whether this is a 'read' or 'write' operation
|
|
223
|
+
* @returns Error message if invalid, null if valid
|
|
224
|
+
*/
|
|
225
|
+
function validate_file_path(file_path, operation) {
|
|
226
|
+
// Reject file:// URIs
|
|
227
|
+
if (file_path.startsWith('file://')) {
|
|
228
|
+
return 'file:// URIs are not supported. Use file paths directly.';
|
|
229
|
+
}
|
|
230
|
+
// Normalize path (convert backslashes to forward slashes)
|
|
231
|
+
const normalized = file_path.replace(/\\/g, '/');
|
|
232
|
+
// Reject path traversal in relative paths (security concern)
|
|
233
|
+
// Allow in absolute paths as they're resolved differently
|
|
234
|
+
const isAbsolute = file_path.startsWith('/') ||
|
|
235
|
+
/^[A-Z]:[/\\]/i.test(file_path) ||
|
|
236
|
+
file_path.startsWith('\\\\') ||
|
|
237
|
+
file_path.startsWith('//');
|
|
238
|
+
if (!isAbsolute && (normalized.includes('/../') || normalized.startsWith('../'))) {
|
|
239
|
+
return 'Path traversal (..) is not allowed in relative paths for security reasons.';
|
|
240
|
+
}
|
|
241
|
+
// Reject writes to read-only Unity directories
|
|
242
|
+
if (operation === 'write') {
|
|
243
|
+
// Library/PackageCache is immutable (absolute or relative)
|
|
244
|
+
if (normalized.includes('/Library/PackageCache/') || normalized.startsWith('Library/PackageCache/')) {
|
|
245
|
+
return 'Cannot write to Library/PackageCache/ (immutable package cache).';
|
|
246
|
+
}
|
|
247
|
+
// Packages/ directory is read-only in Unity (check via path segments)
|
|
248
|
+
const segments = normalized.split('/');
|
|
249
|
+
const pkgIdx = segments.indexOf('Packages');
|
|
250
|
+
if (pkgIdx >= 0) {
|
|
251
|
+
// Don't block paths under Assets/ that happen to contain a "Packages" folder
|
|
252
|
+
const assetsIdx = segments.indexOf('Assets');
|
|
253
|
+
if (assetsIdx < 0 || assetsIdx > pkgIdx) {
|
|
254
|
+
return 'Cannot write to Packages/ directory (read-only in Unity).';
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return null; // Valid
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Validate Vector3 structure for Unity YAML.
|
|
262
|
+
*
|
|
263
|
+
* @param value - The value to validate as Vector3
|
|
264
|
+
* @returns Error message if invalid, null if valid
|
|
265
|
+
*/
|
|
266
|
+
function validate_vector3(value) {
|
|
267
|
+
if (typeof value !== 'object' || value === null) {
|
|
268
|
+
return 'Vector3 must be an object with x, y, z properties';
|
|
269
|
+
}
|
|
270
|
+
const { x, y, z } = value;
|
|
271
|
+
if (typeof x !== 'number' || typeof y !== 'number' || typeof z !== 'number') {
|
|
272
|
+
return 'Vector3 x, y, z must all be numbers';
|
|
273
|
+
}
|
|
274
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z)) {
|
|
275
|
+
return 'Vector3 x, y, z must be finite numbers';
|
|
276
|
+
}
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Validate GUID format (32-character hex string).
|
|
281
|
+
*
|
|
282
|
+
* @param guid - The GUID to validate
|
|
283
|
+
* @returns Error message if invalid, null if valid
|
|
284
|
+
*/
|
|
285
|
+
function validate_guid(guid) {
|
|
286
|
+
if (!/^[0-9a-f]{32}$/i.test(guid)) {
|
|
287
|
+
return 'GUID must be a 32-character hexadecimal string';
|
|
288
|
+
}
|
|
289
|
+
return null;
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAOA,0DAcC;AAKD,oDAEC;AAKD,8CAKC;AAcD,kCAoEC;AAWD,0DAEC;AAMD,oCAEC;AAMD,gCAOC;AAQD,gDAeC;AAMD,sCAiBC;AAKD,oCAOC;AAWD,gDAwCC;AAQD,4CAeC;AAQD,sCAKC;AA3SD,2BAAwH;AACxH,+BAA8C;AAE9C;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,QAAiB;IACrD,IAAI,GAAG,GAAG,IAAA,cAAO,EAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,GAAG,CAAC,CAAC;IAE1B,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC;QAClB,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACxD,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QAC5F,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QAChD,MAAM,MAAM,GAAG,IAAA,cAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,YAAqB;IACtD,OAAO,IAAA,cAAO,EAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,SAAiB;IAC/C,MAAM,GAAG,GAAG,IAAA,cAAO,EAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,IAAA,eAAU,EAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAA,cAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;AACL,CAAC;AASD;;;;GAIG;AACH,SAAgB,WAAW,CAAC,QAAgB,EAAE,OAAe;IACzD,yDAAyD;IACzD,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC;YACD,IAAA,eAAU,EAAC,QAAQ,EAAE,cAAW,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,sBAAsB,QAAQ,kBAAkB;aAC1D,CAAC;QACN,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,MAAM,MAAM,CAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,MAAM,MAAM,CAAC;IAC5C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,IAAI,CAAC;QACD,IAAA,kBAAa,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAEzC,mEAAmE;QACnE,IAAI,CAAC;YACD,IAAA,eAAU,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9B,UAAU,GAAG,IAAI,CAAC;QACtB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,2EAA2E;gBAC3E,UAAU,GAAG,KAAK,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,CAAC;YACd,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,IAAA,eAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE9B,kBAAkB;QAClB,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC;gBAAC,IAAA,eAAU,EAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACtE,CAAC;QAED,OAAO;YACH,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;SACrD,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,6CAA6C;QAC7C,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC;gBACD,IAAA,eAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC;YAAC,IAAA,eAAU,EAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAE1D,OAAO;YACH,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC3B,OAAO,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,CAAC;AACrG,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,IAAY;IAChD,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,OAAe;IACxC,OAAO,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,CAAC;AACtF,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,OAAe,EAAE,IAAY;IACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnE,OAAO,IAAI,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,OAAe;IAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,gCAAgC;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,2CAA2C;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAC7D,yEAAyE;IACzE,MAAM,SAAS,GAAG,OAAO;SACpB,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;SAChC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;SAC3B,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;SAC9B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzB,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,KAAa;IACrD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,KAAK,oFAAoF,CAAC;IACxG,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,KAAK,kCAAkC,CAAC;IACtD,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,GAAG,KAAK,wDAAwD,CAAC;IAC5E,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,KAAK,8DAA8D,CAAC;IAClF,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,KAAK,4BAA4B,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IACxB,MAAM,GAAG,GAAG,kBAAkB,CAAC;IAC/B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1B,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAAC,SAAiB,EAAE,SAA2B;IAC7E,sBAAsB;IACtB,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO,0DAA0D,CAAC;IACtE,CAAC;IAED,0DAA0D;IAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEjD,6DAA6D;IAC7D,0DAA0D;IAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QACxC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/B,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5B,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO,4EAA4E,CAAC;IACxF,CAAC;IAED,+CAA+C;IAC/C,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACxB,2DAA2D;QAC3D,IAAI,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAClG,OAAO,kEAAkE,CAAC;QAC9E,CAAC;QAED,sEAAsE;QACtE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,6EAA6E;YAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;gBACtC,OAAO,2DAA2D,CAAC;YACvE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,QAAQ;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,mDAAmD,CAAC;IAC/D,CAAC;IAED,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAgC,CAAC;IACrD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1E,OAAO,qCAAqC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,wCAAwC,CAAC;IACpD,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,IAAY;IACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,gDAAgD,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unity-agentic-tools",
|
|
3
3
|
"packageManager": "bun@latest",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"description": "
|
|
4
|
+
"version": "0.6.1",
|
|
5
|
+
"description": "Compact Unity Editor command runner for AI agents",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
8
|
"import": "./dist/index.js",
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"LICENSE"
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
|
-
"build": "bun run build:lib && bun run build:cli && cp ../doc-indexer/dist/cli.js dist/doc-indexer-cli.js",
|
|
21
|
+
"build": "bun run clean && bun run build:types && bun run build:lib && bun run build:cli && cp ../doc-indexer/dist/cli.js dist/doc-indexer-cli.js",
|
|
22
|
+
"build:types": "tsc --project tsconfig.json",
|
|
22
23
|
"build:lib": "bun build src/index.ts --outdir=dist --target=bun --format=cjs --external unity-file-tools",
|
|
23
24
|
"build:cli": "bun build src/cli.ts --outdir=dist --target=bun --format=cjs --external unity-file-tools",
|
|
24
25
|
"build:rust": "cd ../rust-core && bun run build",
|