@@ -101,6 +101,7 @@ await connection.ExecuteAsync(
101101 size_bytes AS SizeBytes,
102102 COALESCE(artifact_sha256, sha256) AS ArtifactSha256,
103103 COALESCE(artifact_size_bytes, size_bytes) AS ArtifactSizeBytes,
104+ routes_to_subagent AS RoutesToSubagent,
104105 published_at AS PublishedAt, is_latest AS IsLatest
105106 FROM skill_versions
106107 WHERE skill_id = @skillId AND is_latest = 1
@@ -118,6 +119,7 @@ FROM skill_versions
118119 size_bytes AS SizeBytes,
119120 COALESCE(artifact_sha256, sha256) AS ArtifactSha256,
120121 COALESCE(artifact_size_bytes, size_bytes) AS ArtifactSizeBytes,
122+ routes_to_subagent AS RoutesToSubagent,
121123 published_at AS PublishedAt, is_latest AS IsLatest
122124 FROM skill_versions
123125 WHERE skill_id = @skillId AND version = @version
@@ -135,6 +137,7 @@ public async Task<IReadOnlyList<SkillVersion>> GetAllVersionsAsync(long skillId,
135137 size_bytes AS SizeBytes,
136138 COALESCE(artifact_sha256, sha256) AS ArtifactSha256,
137139 COALESCE(artifact_size_bytes, size_bytes) AS ArtifactSizeBytes,
140+ routes_to_subagent AS RoutesToSubagent,
138141 published_at AS PublishedAt, is_latest AS IsLatest
139142 FROM skill_versions
140143 WHERE skill_id = @skillId
@@ -154,6 +157,7 @@ public async Task<IReadOnlyList<SkillVersion>> GetResourcefulVersionsWithoutArch
154157 sv.size_bytes AS SizeBytes,
155158 COALESCE(sv.artifact_sha256, sv.sha256) AS ArtifactSha256,
156159 COALESCE(sv.artifact_size_bytes, sv.size_bytes) AS ArtifactSizeBytes,
160+ sv.routes_to_subagent AS RoutesToSubagent,
157161 sv.published_at AS PublishedAt, sv.is_latest AS IsLatest
158162 FROM skill_versions sv
159163 WHERE sv.skill_type != @archiveType
@@ -174,6 +178,7 @@ public async Task<IReadOnlyList<SkillVersionWithFileCount>> GetAllVersionsWithFi
174178 sv.size_bytes AS SizeBytes,
175179 COALESCE(sv.artifact_sha256, sv.sha256) AS ArtifactSha256,
176180 COALESCE(sv.artifact_size_bytes, sv.size_bytes) AS ArtifactSizeBytes,
181+ sv.routes_to_subagent AS RoutesToSubagent,
177182 sv.published_at AS PublishedAt, sv.is_latest AS IsLatest,
178183 (SELECT COUNT(*) FROM skill_files sf WHERE sf.skill_version_id = sv.id) AS FileCount
179184 FROM skill_versions sv
@@ -197,6 +202,7 @@ public async Task<IReadOnlyList<SkillVersionWithMetadata>> GetAllLatestVersionsW
197202 sv.size_bytes AS SizeBytes,
198203 COALESCE(sv.artifact_sha256, sv.sha256) AS ArtifactSha256,
199204 COALESCE(sv.artifact_size_bytes, sv.size_bytes) AS ArtifactSizeBytes,
205+ sv.routes_to_subagent AS RoutesToSubagent,
200206 sv.published_at AS PublishedAt, sv.is_latest AS IsLatest,
201207 s.name AS SkillName, s.created_at AS SkillCreatedAt, s.updated_at AS SkillUpdatedAt,
202208 (SELECT COUNT(*) FROM skill_versions sv2 WHERE sv2.skill_id = s.id) AS VersionCount
@@ -233,7 +239,8 @@ public async Task<long> CreateVersionAsync(
233239 long sizeBytes ,
234240 CancellationToken ct = default ,
235241 string ? artifactSha256 = null ,
236- long ? artifactSizeBytes = null )
242+ long ? artifactSizeBytes = null ,
243+ string ? routesToSubagent = null )
237244 {
238245 await using var connection = new SqliteConnection ( _connectionString ) ;
239246 await connection . OpenAsync ( ct ) ;
@@ -252,8 +259,8 @@ await connection.ExecuteAsync(
252259
253260 var versionId = await connection . ExecuteScalarAsync < long > (
254261 """
255- INSERT INTO skill_versions (skill_id, version, description, category, skill_type, sha256, size_bytes, artifact_sha256, artifact_size_bytes, published_at, is_latest)
256- VALUES (@skillId, @version, @description, @category, @typeString, @sha256, @sizeBytes, @artifactSha256, @artifactSizeBytes, @now, 1);
262+ INSERT INTO skill_versions (skill_id, version, description, category, skill_type, sha256, size_bytes, artifact_sha256, artifact_size_bytes, routes_to_subagent, published_at, is_latest)
263+ VALUES (@skillId, @version, @description, @category, @typeString, @sha256, @sizeBytes, @artifactSha256, @artifactSizeBytes, @routesToSubagent, @ now, 1);
257264 SELECT last_insert_rowid();
258265 """ ,
259266 new
@@ -267,6 +274,7 @@ INSERT INTO skill_versions (skill_id, version, description, category, skill_type
267274 sizeBytes ,
268275 artifactSha256 = artifactSha256 ?? sha256 ,
269276 artifactSizeBytes = artifactSizeBytes ?? sizeBytes ,
277+ routesToSubagent ,
270278 now
271279 } ,
272280 transaction ) ;
@@ -346,6 +354,7 @@ public async Task<IReadOnlyList<SkillVersionWithMetadata>> SearchSkillsAsync(
346354 sv.size_bytes AS SizeBytes,
347355 COALESCE(sv.artifact_sha256, sv.sha256) AS ArtifactSha256,
348356 COALESCE(sv.artifact_size_bytes, sv.size_bytes) AS ArtifactSizeBytes,
357+ sv.routes_to_subagent AS RoutesToSubagent,
349358 sv.published_at AS PublishedAt, sv.is_latest AS IsLatest,
350359 s.name AS SkillName, s.created_at AS SkillCreatedAt, s.updated_at AS SkillUpdatedAt,
351360 (SELECT COUNT(*) FROM skill_versions sv2 WHERE sv2.skill_id = s.id) AS VersionCount
@@ -383,6 +392,7 @@ private static string EscapeFtsToken(string token)
383392 sv.size_bytes AS SizeBytes,
384393 COALESCE(sv.artifact_sha256, sv.sha256) AS ArtifactSha256,
385394 COALESCE(sv.artifact_size_bytes, sv.size_bytes) AS ArtifactSizeBytes,
395+ sv.routes_to_subagent AS RoutesToSubagent,
386396 sv.published_at AS PublishedAt, sv.is_latest AS IsLatest,
387397 (SELECT COUNT(*) FROM skill_files sf WHERE sf.skill_version_id = sv.id) AS FileCount
388398 FROM skill_versions sv
0 commit comments