ask-agent 0.25.4 → 0.25.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3703e22ceaf07962231c1cc08751e635d202a3dcb2bf7a0134ee3c1acbeeb975
4
- data.tar.gz: d013b9b6a4d188dc71dd6c267388c1b36d83be5b43c0967d73b8cb10843d2123
3
+ metadata.gz: d6b698047e4a92d613f1d6f21b7c82ab46a02ee12886f9625913feb701b67b1a
4
+ data.tar.gz: 6f2bd64156cafdeea1b8bdbcaca0b5eca9470250e1f3e65ead20ea2f1098a451
5
5
  SHA512:
6
- metadata.gz: 7bf19be96f3344b84b0c8ee7c2079e3eb1ad0a2655c26e5075652a863f66c1c47816d6b4418ba3f29b79b3722e8cf924bedac9aa9965da4099009b4993877b7b
7
- data.tar.gz: f214e8356c0e55be0aba092d81c0a0ac79d57b79abf41ce1f2e59db45a73a8ac51fcd0566d6335931a4d68292cba894b3240d4dbda4175c9238ba6f7fc7d4639
6
+ metadata.gz: 76e12be0f0ab184371e8253f4abfa0f1f8c80106ea905050afc3a6d7d7a07df4a71230d4ed42a2309359327956022b6728edc4f0c50a8f2fdbfe9b2d39237abc
7
+ data.tar.gz: 99b18d89c18690ebb314a2e7871fc05bb4c0d79ced8e87c630de1fe6b558eb18954f253eafac80dfdda45bcc38e44efbd461cab0089c7813df37ca7da1899e5c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## [0.25.5] - 2026-08-05
2
+
3
+ ### Changed
4
+
5
+ - **`load_skill` tool moved to ask-skills.** Sessions now inject
6
+ `Ask::Skills::LoadSkillTool` (ask-skills owns discovery, listing, and
7
+ loading). No API change for session users — `skills_disclosure false`
8
+ still opts out of the auto-injected tool.
9
+
1
10
  ## [0.25.4] - 2026-08-05
2
11
 
3
12
  ### Added
@@ -362,7 +362,7 @@ module Ask
362
362
  # surface) or the test framework is loaded (test mode keeps tools
363
363
  # deterministic)
364
364
  if skills_disclosure_enabled?
365
- resolved << Skills::LoadSkillTool.new(registry: @skills_registry) unless resolved.any? { |t| t.name == "load_skill" }
365
+ resolved << Ask::Skills::LoadSkillTool.new(registry: @skills_registry) unless resolved.any? { |t| t.name == "load_skill" }
366
366
  end
367
367
  resolved
368
368
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ask
4
4
  module Agent
5
- VERSION = "0.25.4"
5
+ VERSION = "0.25.5"
6
6
  end
7
7
  end
data/lib/ask/agent.rb CHANGED
@@ -261,7 +261,6 @@ require_relative "agent/configuration"
261
261
  require_relative "agent/meta_agent"
262
262
  require_relative "agent/persistence/base"
263
263
  require_relative "agent/persistence/in_memory"
264
- require_relative "agent/skills/load_skill_tool"
265
264
  require_relative "agent/scheduler"
266
265
  require_relative "agent/definition"
267
266
  require_relative "agent/cli"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ask-agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.4
4
+ version: 0.25.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaka Ruto
@@ -191,7 +191,6 @@ files:
191
191
  - lib/ask/agent/reflector.rb
192
192
  - lib/ask/agent/scheduler.rb
193
193
  - lib/ask/agent/session.rb
194
- - lib/ask/agent/skills/load_skill_tool.rb
195
194
  - lib/ask/agent/stream_transforms/base.rb
196
195
  - lib/ask/agent/stream_transforms/extract_json.rb
197
196
  - lib/ask/agent/stream_transforms/pipeline.rb
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Ask
4
- module Agent
5
- module Skills
6
- # Built-in tool that lets the LLM load a discovered skill's full
7
- # instructions on demand. Skills are listed by name and description
8
- # via progressive disclosure — the LLM decides which to load.
9
- #
10
- # Usage by the LLM: call load_skill with the skill name.
11
- class LoadSkillTool < Ask::Tool
12
- description "Load the full instructions for a skill by name. Use this when a listed skill seems relevant to the current task."
13
-
14
- param :name, type: :string, desc: "Name of the skill to load (e.g., writing-guide)", required: true
15
-
16
- def initialize(registry:)
17
- @registry = registry
18
- super()
19
- end
20
-
21
- def execute(name:)
22
- skill = @registry&.[](name)
23
- unless skill
24
- available = @registry&.names&.join(", ") || "none"
25
- return Ask::Result.failure("Skill '#{name}' not found. Available skills: #{available}")
26
- end
27
-
28
- # Return the full skill content so it can be injected into conversation
29
- content = "## Skill: #{skill.name}\n#{skill.description}\n\n#{skill.instructions}"
30
- Ask::Result.ok(data: { name: skill.name, content: content })
31
- end
32
-
33
- def name
34
- "load_skill"
35
- end
36
- end
37
- end
38
- end
39
- end