jp.keijiro.ai.assistant.extensions 1.1.2 → 1.1.3
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/.attestation.p7m +0 -0
- package/CHANGELOG.md +10 -0
- package/package.json +4 -4
- package/Editor/PackageSkillRegistrar.cs +0 -150
- package/Editor/PackageSkillRegistrar.cs.meta +0 -11
- /package/{Skills → AIAssistantSkills}/GameViewCapture/SKILL.md +0 -0
- /package/{Skills → AIAssistantSkills}/GameViewCapture/SKILL.md.meta +0 -0
- /package/{Skills → AIAssistantSkills}/GameViewCapture.meta +0 -0
- /package/{Skills.meta → AIAssistantSkills.meta} +0 -0
package/.attestation.p7m
CHANGED
|
Binary file
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.1.3] - 2026-05-15
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Fixed package skill registration for AI Assistant 2.8.0-pre.1 by using the built-in package skill discovery path.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Updated project and package metadata for AI Assistant 2.8.0-pre.1.
|
|
17
|
+
|
|
8
18
|
## [1.1.2] - 2026-05-08
|
|
9
19
|
|
|
10
20
|
### Fixed
|
package/package.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jp.keijiro.ai.assistant.extensions",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"displayName": "AI Assistant Extensions",
|
|
5
5
|
"description": "Custom Unity package that provides extensions for Unity AI Assistant.",
|
|
6
6
|
"unity": "6000.0",
|
|
7
7
|
"author": "Keijiro Takahashi",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"com.unity.ai.assistant": "2.
|
|
9
|
+
"com.unity.ai.assistant": "2.8.0-pre.1"
|
|
10
10
|
},
|
|
11
11
|
"changelogUrl": "https://github.com/keijiro/AIA-Extensions/blob/master/CHANGELOG.md",
|
|
12
12
|
"documentationUrl": "https://github.com/keijiro/AIA-Extensions",
|
|
13
13
|
"licensesUrl": "https://github.com/keijiro/AIA-Extensions/blob/master/LICENSE",
|
|
14
14
|
"license": "Unlicense",
|
|
15
15
|
"_upm": {
|
|
16
|
-
"changelog": "<b>Fixed</b><br>- Fixed
|
|
16
|
+
"changelog": "<b>Fixed</b><br>- Fixed package skill registration for AI Assistant 2.8.0-pre.1 by using the built-in package skill discovery path.<br><br><b>Changed</b><br>- Updated project and package metadata for AI Assistant 2.8.0-pre.1."
|
|
17
17
|
},
|
|
18
18
|
"repository": {
|
|
19
19
|
"url": "git@github.com:keijiro/AIA-Extensions.git",
|
|
20
20
|
"type": "git",
|
|
21
|
-
"revision": "
|
|
21
|
+
"revision": "9ad87b2c94f8c38a28b03572585ea6de1c438e2b"
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
using System;
|
|
2
|
-
using System.Collections;
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
using System.IO;
|
|
5
|
-
using System.Reflection;
|
|
6
|
-
using UnityEditor;
|
|
7
|
-
using UnityEngine;
|
|
8
|
-
|
|
9
|
-
namespace AIAssistantExtensions {
|
|
10
|
-
|
|
11
|
-
static class PackageSkillRegistrar
|
|
12
|
-
{
|
|
13
|
-
// The settings UI only displays Project/User/Internal source tags.
|
|
14
|
-
const string SkillTag = "Skills.User.Filesystem.Project";
|
|
15
|
-
const string PackageSkillTag =
|
|
16
|
-
"Skills.User.Filesystem.Project.Package.AIAssistantExtensions";
|
|
17
|
-
|
|
18
|
-
const string SkillPath =
|
|
19
|
-
"Packages/jp.keijiro.ai.assistant.extensions/Skills/GameViewCapture/SKILL.md";
|
|
20
|
-
|
|
21
|
-
static Action _rescanHandler;
|
|
22
|
-
static bool _registeredRescanHandler;
|
|
23
|
-
|
|
24
|
-
[InitializeOnLoadMethod]
|
|
25
|
-
static void Initialize()
|
|
26
|
-
{
|
|
27
|
-
RegisterPackageSkills();
|
|
28
|
-
SubscribeToSkillRescan();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
static void RegisterPackageSkills()
|
|
32
|
-
{
|
|
33
|
-
try
|
|
34
|
-
{
|
|
35
|
-
if (!File.Exists(SkillPath))
|
|
36
|
-
return;
|
|
37
|
-
|
|
38
|
-
var skill = CreateSkillFromFile(Path.GetFullPath(SkillPath));
|
|
39
|
-
if (skill == null)
|
|
40
|
-
return;
|
|
41
|
-
|
|
42
|
-
AddTag(skill, SkillTag);
|
|
43
|
-
AddTag(skill, PackageSkillTag);
|
|
44
|
-
RemoveExistingSkills();
|
|
45
|
-
AddSkills(skill);
|
|
46
|
-
}
|
|
47
|
-
catch (Exception ex)
|
|
48
|
-
{
|
|
49
|
-
Debug.LogError($"Failed to register AI Assistant extension skills: {ex.Message}");
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
static void SubscribeToSkillRescan()
|
|
54
|
-
{
|
|
55
|
-
if (_registeredRescanHandler)
|
|
56
|
-
return;
|
|
57
|
-
|
|
58
|
-
var scannerType = FindType("Unity.AI.Assistant.Editor.SkillsScanner");
|
|
59
|
-
var eventInfo = scannerType?.GetEvent
|
|
60
|
-
("OnSkillsRescanned", BindingFlags.Static | BindingFlags.NonPublic);
|
|
61
|
-
if (eventInfo == null)
|
|
62
|
-
return;
|
|
63
|
-
|
|
64
|
-
_rescanHandler = () => EditorApplication.delayCall += RegisterPackageSkills;
|
|
65
|
-
var addMethod = eventInfo.GetAddMethod(true);
|
|
66
|
-
if (addMethod == null)
|
|
67
|
-
return;
|
|
68
|
-
|
|
69
|
-
addMethod.Invoke(null, new object[] { _rescanHandler });
|
|
70
|
-
_registeredRescanHandler = true;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
static object CreateSkillFromFile(string fullPath)
|
|
74
|
-
{
|
|
75
|
-
var skillUtilsType = FindType("Unity.AI.Assistant.Skills.SkillUtils");
|
|
76
|
-
if (skillUtilsType == null)
|
|
77
|
-
throw new InvalidOperationException("AI Assistant SkillUtils type was not found.");
|
|
78
|
-
|
|
79
|
-
var method = skillUtilsType?.GetMethod
|
|
80
|
-
("CreateSkillFromFile", BindingFlags.Static | BindingFlags.NonPublic);
|
|
81
|
-
if (method == null)
|
|
82
|
-
throw new InvalidOperationException("AI Assistant SkillUtils.CreateSkillFromFile method was not found.");
|
|
83
|
-
|
|
84
|
-
return method.Invoke(null, new object[] { fullPath });
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
static void AddTag(object skill, string tag)
|
|
88
|
-
{
|
|
89
|
-
var method = skill.GetType().GetMethod
|
|
90
|
-
("WithTag", BindingFlags.Instance | BindingFlags.NonPublic);
|
|
91
|
-
if (method == null)
|
|
92
|
-
throw new InvalidOperationException("AI Assistant SkillDefinition.WithTag method was not found.");
|
|
93
|
-
|
|
94
|
-
method.Invoke(skill, new object[] { tag });
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
static void AddSkills(object skill)
|
|
98
|
-
{
|
|
99
|
-
var registryType = FindType("Unity.AI.Assistant.Skills.SkillsRegistry");
|
|
100
|
-
if (registryType == null)
|
|
101
|
-
throw new InvalidOperationException("AI Assistant SkillsRegistry type was not found.");
|
|
102
|
-
|
|
103
|
-
var method = registryType?.GetMethod
|
|
104
|
-
("AddSkills", BindingFlags.Static | BindingFlags.Public);
|
|
105
|
-
if (method == null)
|
|
106
|
-
throw new InvalidOperationException("AI Assistant SkillsRegistry.AddSkills method was not found.");
|
|
107
|
-
|
|
108
|
-
var listType = typeof(List<>).MakeGenericType(skill.GetType());
|
|
109
|
-
var list = (IList)Activator.CreateInstance(listType);
|
|
110
|
-
if (list == null)
|
|
111
|
-
throw new InvalidOperationException("Failed to create a SkillDefinition list.");
|
|
112
|
-
|
|
113
|
-
list.Add(skill);
|
|
114
|
-
|
|
115
|
-
method.Invoke(null, new object[] { list, null });
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
static void RemoveExistingSkills()
|
|
119
|
-
{
|
|
120
|
-
var registryType = FindType("Unity.AI.Assistant.Skills.SkillsRegistry");
|
|
121
|
-
if (registryType == null)
|
|
122
|
-
return;
|
|
123
|
-
|
|
124
|
-
RemoveByTag(registryType, PackageSkillTag);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
static void RemoveByTag(Type registryType, string tag)
|
|
128
|
-
{
|
|
129
|
-
var method = registryType.GetMethod
|
|
130
|
-
("RemoveByTag", BindingFlags.Static | BindingFlags.Public);
|
|
131
|
-
if (method == null)
|
|
132
|
-
return;
|
|
133
|
-
|
|
134
|
-
method.Invoke(null, new object[] { tag });
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
static Type FindType(string fullName)
|
|
138
|
-
{
|
|
139
|
-
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
|
|
140
|
-
{
|
|
141
|
-
var type = assembly.GetType(fullName, false);
|
|
142
|
-
if (type != null)
|
|
143
|
-
return type;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
} // namespace AIAssistantExtensions
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|