chorus-llm 0.2.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9aaa6c14d9fe4b979246f8fbf95ae878c1e05178ebdffd6c90ad1f9d73c1d17
4
- data.tar.gz: c4d5473d68812262c3670d972ed42791d758990a204745855d87cc55c94c66c7
3
+ metadata.gz: 330e292060dd4fe53ef0688cb0a3d757176727287f2f72b43a9c3a8e0b9634f6
4
+ data.tar.gz: ffff3fda91880555a6e20a8be66fbf72b5e928cd9caccfb2a098feca78771b27
5
5
  SHA512:
6
- metadata.gz: f3e1b1df26ef99d02da3bcf161088fe5650d4d959061ad229015b2a95b98687fc5864d34b13038905673353b7ac2fd2b14a4724865432f14fc9f7a3f0752c19b
7
- data.tar.gz: 62f5a01e91cbc78bc6adcd05e7649ac06a1300067bb37a4d3ff95e16f23044683d314b9fce3a07c96de1982ad1cc5e65c5f58ea834c1be0a1c4711934c0b2c18
6
+ metadata.gz: 0d0fdf51324967fd47b5bc76e9842a2d477fddcef26224c95c43d5be53119b40e738cbbd0c2a40158bf16f224479bf6a60530f3f5621c8e6d4fd19e11e1aee6d
7
+ data.tar.gz: '039574260bd44a49778e11e9a1ea077eaa04b05181c9170414ce98042abea78ff02ffc9e289614aee038ecd3b27ef466a0c623710229a003f70d14df429c3eae'
data/README.md CHANGED
@@ -171,3 +171,15 @@ intentionally does not include:
171
171
  - **LLM-generated summaries** — the other-agents summary in `slice_for` is a
172
172
  simple concatenation of truncated subjects, not an API call.
173
173
  - **Advanced error handling** (retries, backoff, etc.) on API calls.
174
+
175
+ See [open issues](https://github.com/Amayyas/Chorus/issues) for the full,
176
+ up-to-date backlog — the list above is the original MVP scope, not a
177
+ snapshot of everything planned.
178
+
179
+ ## Contributing
180
+
181
+ Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for dev
182
+ setup, how to run checks locally, and the commit/PR conventions this project
183
+ follows. Participation is governed by the
184
+ [Code of Conduct](CODE_OF_CONDUCT.md). Found a security issue? See
185
+ [SECURITY.md](SECURITY.md) instead of opening a public issue.
data/lib/chorus/router.rb CHANGED
@@ -21,13 +21,18 @@ module Chorus
21
21
 
22
22
  private
23
23
 
24
+ # Whole-word matching, not substring: a naive `include?` check would
25
+ # match "class" inside "classical" or "error" inside "errors", routing
26
+ # unrelated messages to :coder. Splitting into words first avoids that
27
+ # class of false positive.
28
+ #
29
+ # This doesn't make keyword matching perfect — a word like "function" is
30
+ # genuinely ambiguous ("a function" vs. "how it functions") and will
31
+ # still misroute some messages either way. That's an inherent limitation
32
+ # of keyword matching, not a bug; see the LLM-based router follow-up.
24
33
  def coding_task?(message)
25
- normalized = message.downcase
26
- # rubocop:disable Style/ArrayIntersect -- `normalized` is a String, not
27
- # an Array; Array#intersect? would raise a TypeError here. This is a
28
- # substring check on each keyword, not an array-element intersection.
29
- CODER_KEYWORDS.any? { |keyword| normalized.include?(keyword) }
30
- # rubocop:enable Style/ArrayIntersect
34
+ words = message.downcase.scan(/\w+/)
35
+ CODER_KEYWORDS.intersect?(words)
31
36
  end
32
37
  end
33
38
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Chorus
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chorus-llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amayyas
@@ -53,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  requirements: []
56
- rubygems_version: 4.0.10
56
+ rubygems_version: 4.0.16
57
57
  specification_version: 4
58
58
  summary: Ruby framework for multi-agent LLM orchestration with contextual routing.
59
59
  test_files: []