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 +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/ask/agent/session.rb +1 -1
- data/lib/ask/agent/version.rb +1 -1
- data/lib/ask/agent.rb +0 -1
- metadata +1 -2
- data/lib/ask/agent/skills/load_skill_tool.rb +0 -39
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d6b698047e4a92d613f1d6f21b7c82ab46a02ee12886f9625913feb701b67b1a
|
|
4
|
+
data.tar.gz: 6f2bd64156cafdeea1b8bdbcaca0b5eca9470250e1f3e65ead20ea2f1098a451
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
data/lib/ask/agent/session.rb
CHANGED
|
@@ -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
|
data/lib/ask/agent/version.rb
CHANGED
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
|
+
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
|