ask-skills 0.4.0 → 0.4.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.
- checksums.yaml +4 -4
- data/lib/ask/skills/registry.rb +15 -8
- data/lib/ask/skills/sources/filesystem.rb +0 -2
- data/lib/ask/skills/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c3467a3de9f58a23327ca0624d3440f6eed9983bb4d8f834db30725d16eea52a
|
|
4
|
+
data.tar.gz: 4cd313ba7ef8419fe9683ea7f7d4d6ce88a0270082e1b7f7d2d74092b320bb86
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 101a0a858c1ee4e0f414dfb2964984096094c397e8e14014181875c95dea3b67ed7c3e3ddec201da831e5f0aaa973176e69be71ac6b563278eecad8b5761d88e
|
|
7
|
+
data.tar.gz: ab7c5ec0eaa6c1887076a3b5314c5e83f5ef6eee1a411bc1de7371ef1c3b2b01d0636f483fa6a850b09ebc7c0d5e64099458747b0891a6d9b9dc3258960968a6
|
data/lib/ask/skills/registry.rb
CHANGED
|
@@ -19,12 +19,14 @@ module Ask
|
|
|
19
19
|
|
|
20
20
|
def format_for_prompt
|
|
21
21
|
return "" if @skills.empty?
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
Formatter.new(@skills).to_prompt_section
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Full instructions for skills with +always: true+ in their frontmatter.
|
|
26
|
+
# These skills are auto-injected into the system prompt rather than
|
|
27
|
+
# being listed for the LLM to load on demand.
|
|
28
|
+
def always_active_skills
|
|
29
|
+
@skills.values.select { |s| s.metadata["always"] == "true" || s.metadata["always"] == true }
|
|
28
30
|
end
|
|
29
31
|
|
|
30
32
|
private
|
|
@@ -33,8 +35,13 @@ module Ask
|
|
|
33
35
|
@sources.each do |source|
|
|
34
36
|
source.load.each do |skill|
|
|
35
37
|
next unless skill
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
if @skills.key?(skill.name)
|
|
39
|
+
# First-wins collision: log diagnostic but keep first
|
|
40
|
+
warn "[ask-skills] Collision: skill '#{skill.name}' already loaded from " \
|
|
41
|
+
"#{@skills[skill.name].source}, skipping #{skill.source}"
|
|
42
|
+
else
|
|
43
|
+
@skills[skill.name] = skill
|
|
44
|
+
end
|
|
38
45
|
end
|
|
39
46
|
end
|
|
40
47
|
end
|
|
@@ -4,8 +4,6 @@ module Ask
|
|
|
4
4
|
module Skills
|
|
5
5
|
module Source
|
|
6
6
|
class Filesystem < Base
|
|
7
|
-
SIBLING_CATEGORIES = %w[references scripts assets].freeze
|
|
8
|
-
|
|
9
7
|
def initialize(dir: nil, project_dir: nil, user_dir: nil)
|
|
10
8
|
@path = dir || project_dir || (user_dir ? File.expand_path(user_dir) : nil)
|
|
11
9
|
end
|
data/lib/ask/skills/version.rb
CHANGED