jp.keijiro.ai.assistant.extensions 1.1.1 → 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 CHANGED
Binary file
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: game-view-capture
3
3
  description: Capture the Unity Game view in Edit Mode so Assistant can visually inspect the rendered game output without entering Play Mode.
4
- required_packages:
5
- com.unity.ai.assistant: 2.7.0-pre.1
6
4
  tools:
7
5
  - Unity.RunCommand
8
6
  - Unity.FindProjectAssets
package/CHANGELOG.md CHANGED
@@ -5,6 +5,26 @@ 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
+
18
+ ## [1.1.2] - 2026-05-08
19
+
20
+ ### Fixed
21
+
22
+ - Fixed `game-view-capture` skill compatibility with AI Assistant 2.7.0-pre.2 by removing redundant package requirement metadata.
23
+
24
+ ### Changed
25
+
26
+ - Updated project and package metadata for AI Assistant 2.7.0-pre.2.
27
+
8
28
  ## [1.1.1] - 2026-05-02
9
29
 
10
30
  ### Fixed
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "jp.keijiro.ai.assistant.extensions",
3
- "version": "1.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.7.0-pre.1"
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 package skill re-registration after AI Assistant skill rescans.<br><br><b>Changed</b><br>- Updated project and package metadata for AI Assistant 2.7.0-pre.1.<br>- Updated README installation and issue reporting documentation."
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": "61b0d0bb984adeacd5a8c7f89fd16e033e7031ca"
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
@@ -1,11 +0,0 @@
1
- fileFormatVersion: 2
2
- guid: 6f9e02fe95b64f4fafc0d2f0a34d53c1
3
- MonoImporter:
4
- externalObjects: {}
5
- serializedVersion: 2
6
- defaultReferences: []
7
- executionOrder: 0
8
- icon: {instanceID: 0}
9
- userData:
10
- assetBundleName:
11
- assetBundleVariant:
File without changes