ask-agent 0.2.0 → 0.2.2

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: 73647e4ec4bbee13f0f5e27d33c50f4642cac1f5bfd2d2f89770f49253bee68b
4
- data.tar.gz: 99978dc6ff42b0f5dda2c736dc1800746f59a3f41f1383db452df9ec6fade6c3
3
+ metadata.gz: 38ad7fd8e88fbb94137ceff0dacd127b598e3487c69b1b58feaab1299c3e0d35
4
+ data.tar.gz: 6b86830a8ef5547305efdb5d8aa36b38de9d4ea0b1ce55c6c207668575ff554c
5
5
  SHA512:
6
- metadata.gz: 0dfb4d59f8ac5987385930c9187340935c9689f16b903455ca6df7c40e0ca0ef75366a3c40c50297acd1a6f03e59be37a06dfe4873a5115c39a82fa3a0e979ac
7
- data.tar.gz: 1086121e7290a20f114865d56755a3be39eed2655c06e6c300f131a91d86ee0aa9735dea4b8ba92d1a129ebcf8e4040860ad658a86ed36400d2ee4d9c1bee851
6
+ metadata.gz: c9e4653c5d70595143daf009735193f984e7f972bc075658508b8baf26d3fcdb044fa251c50d4de95593b268ec2715334c67bc2e7a7578fee419f2da4eab8cd0
7
+ data.tar.gz: e375fe521571910a21c00dfe169b506fc617e0c46bc235e108369c197ee866c05e42813905dcbc9445c898d8143d1b826666dd6593816feefa5fde7b8f539a8c
data/CHANGELOG.md ADDED
@@ -0,0 +1,15 @@
1
+ ## [0.2.1] - 2026-06-25
2
+
3
+ ### Changed
4
+ - Major test expansion: Session(28t), Chat(32t), Loop(12t), ToolExecutor(10t), Compactor(14t), Reflector(12t), MetaAgent(10t), Telemetry(13t), Events(29t), Extensions(14t), provider stubs. Bugfix: MAX_CONSECUTIVE_TOOL_TURNS -> @max_consecutive_tool_turns. Infrastructure: rubocop, overcommit, CI matrix, gemspec, SimpleCov.
5
+ # Changelog
6
+
7
+ ## 0.2.0 (2026-06-21)
8
+
9
+ - Made `max_consecutive_tool_turns` configurable in `Loop#initialize`
10
+ - Improved loop detection with Levenshtein similarity-based matching (80%+ threshold)
11
+ - Added `levenshtein_distance` and `levenshtein_ratio` helpers
12
+
13
+ ## 0.1.12
14
+
15
+ - Various fixes
@@ -38,12 +38,10 @@ module Ask
38
38
  # @param tools [Array<Ask::Tool>] tool instances available to the chat
39
39
  # @param temperature [Float, nil] sampling temperature
40
40
  # @param schema [Ask::Schema, Hash, nil] structured output schema
41
- # @param assume_model_exists [Boolean] whether to skip model catalog lookup
42
- # @param provider [String, Symbol, nil] provider slug to use (overrides model catalog)
43
- def initialize(model:, tools: [], temperature: nil, schema: nil,
44
- assume_model_exists: false, provider: nil, **)
41
+ # @param provider [String, Symbol, nil] provider slug (overrides catalog lookup)
42
+ def initialize(model:, tools: [], temperature: nil, schema: nil, provider: nil, **)
45
43
  @model_id = model.respond_to?(:id) ? model.id : model.to_s
46
- @model_info = resolve_model(@model_id) unless assume_model_exists
44
+ @model_info = Ask::ModelCatalog.find(@model_id)
47
45
  @tools = tools
48
46
  @temperature = temperature
49
47
  @schema = schema
@@ -159,19 +157,13 @@ def with_schema(schema)
159
157
  private
160
158
 
161
159
  # Resolve model info from the catalog.
162
- def resolve_model(model_id)
163
- Ask::ModelCatalog.find(model_id)
164
- rescue Ask::ModelNotFound
165
- nil
166
- end
167
-
168
160
  # Lazily resolve and instantiate the LLM provider.
169
161
  def provider
170
162
  @provider ||= build_provider
171
163
  end
172
164
 
173
165
  def build_provider
174
- slug = @provider_override&.to_s || @model_info&.provider || "openai"
166
+ slug = @provider_override&.to_s || @model_info.provider
175
167
  klass = Ask::Provider.resolve(slug)
176
168
  klass.new(provider_config(slug))
177
169
  end
@@ -60,7 +60,7 @@ module Ask
60
60
  raise LoopDetected, tool_results.last[:tool_name]
61
61
  end
62
62
 
63
- if @consecutive_tool_turns >= MAX_CONSECUTIVE_TOOL_TURNS
63
+ if @consecutive_tool_turns >= @max_consecutive_tool_turns
64
64
  summary = tool_results.map { |r| r[:message].to_s.truncate(80) }.first(2).join("; ")
65
65
  return "Based on my investigation: #{summary}"
66
66
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ask
4
4
  module Agent
5
- VERSION = "0.2.0"
5
+ VERSION = "0.2.2"
6
6
  end
7
7
  end
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.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaka Ruto
@@ -13,56 +13,56 @@ dependencies:
13
13
  name: ask-core
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
17
  - !ruby/object:Gem::Version
18
18
  version: '0.1'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - "~>"
23
+ - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0.1'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: ask-llm-providers
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - "~>"
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: '0.1'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0.1'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: ask-tools
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0.1'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - "~>"
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0.1'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: ask-skills
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0.1'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0.1'
68
68
  - !ruby/object:Gem::Dependency
@@ -115,6 +115,7 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
+ - CHANGELOG.md
118
119
  - LICENSE
119
120
  - README.md
120
121
  - lib/ask-agent.rb
@@ -140,7 +141,10 @@ files:
140
141
  homepage: https://github.com/ask-rb/ask-agent
141
142
  licenses:
142
143
  - MIT
143
- metadata: {}
144
+ metadata:
145
+ homepage_uri: https://github.com/ask-rb/ask-agent
146
+ source_code_uri: https://github.com/ask-rb/ask-agent
147
+ changelog_uri: https://github.com/ask-rb/ask-agent/blob/master/CHANGELOG.md
144
148
  rdoc_options: []
145
149
  require_paths:
146
150
  - lib