openclacky 1.2.10 → 1.2.12
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 +33 -1
- data/lib/clacky/agent/session_serializer.rb +1 -1
- data/lib/clacky/agent/tool_registry.rb +10 -0
- data/lib/clacky/agent.rb +59 -22
- data/lib/clacky/anthropic_stream_aggregator.rb +17 -1
- data/lib/clacky/bedrock_stream_aggregator.rb +17 -1
- data/lib/clacky/client.rb +25 -3
- data/lib/clacky/default_skills/channel-manager/SKILL.md +47 -42
- data/lib/clacky/default_skills/channel-manager/feishu_setup.rb +134 -0
- data/lib/clacky/default_skills/media-gen/SKILL.md +5 -0
- data/lib/clacky/message_history.rb +57 -0
- data/lib/clacky/openai_stream_aggregator.rb +26 -2
- data/lib/clacky/server/channel/adapters/dingtalk/adapter.rb +10 -1
- data/lib/clacky/server/channel/adapters/discord/adapter.rb +8 -2
- data/lib/clacky/server/channel/adapters/feishu/adapter.rb +10 -1
- data/lib/clacky/server/channel/adapters/feishu/bot.rb +12 -0
- data/lib/clacky/server/channel/adapters/feishu/message_parser.rb +23 -3
- data/lib/clacky/server/channel/adapters/telegram/adapter.rb +12 -2
- data/lib/clacky/server/channel/adapters/wecom/adapter.rb +5 -1
- data/lib/clacky/server/channel/channel_manager.rb +65 -4
- data/lib/clacky/server/channel/group_message_buffer.rb +53 -0
- data/lib/clacky/server/http_server.rb +73 -7
- data/lib/clacky/server/session_registry.rb +4 -6
- data/lib/clacky/tools/trash_manager.rb +1 -1
- data/lib/clacky/version.rb +1 -1
- data/lib/clacky/web/app.css +21 -3
- data/lib/clacky/web/apple-touch-icon-180.png +0 -0
- data/lib/clacky/web/brand.js +22 -2
- data/lib/clacky/web/favicon.ico +0 -0
- data/lib/clacky/web/i18n.js +4 -0
- data/lib/clacky/web/index.html +4 -3
- data/lib/clacky/web/logo_nav_dark.png +0 -0
- data/lib/clacky/web/model-tester.js +8 -1
- data/lib/clacky/web/sessions.js +169 -41
- data/lib/clacky/web/theme.js +1 -0
- data/scripts/build/lib/gem.sh +9 -2
- data/scripts/build/src/install_full.sh.cc +2 -0
- data/scripts/build/src/uninstall.sh.cc +1 -1
- data/scripts/install.ps1 +19 -5
- data/scripts/install.sh +9 -2
- data/scripts/install_full.sh +11 -2
- data/scripts/install_rails_deps.sh +9 -2
- data/scripts/uninstall.sh +10 -3
- metadata +7 -2
data/scripts/install.sh
CHANGED
|
@@ -474,7 +474,12 @@ restore_gemrc() {
|
|
|
474
474
|
setup_gem_home() {
|
|
475
475
|
local gem_dir
|
|
476
476
|
gem_dir=$(gem environment gemdir 2>/dev/null || true)
|
|
477
|
-
|
|
477
|
+
|
|
478
|
+
# gemdir writable → no workaround needed, clean up old RC entries
|
|
479
|
+
if [ -w "$gem_dir" ]; then
|
|
480
|
+
restore_gem_home
|
|
481
|
+
return 0
|
|
482
|
+
fi
|
|
478
483
|
|
|
479
484
|
local ruby_api
|
|
480
485
|
ruby_api=$(ruby -e 'puts RbConfig::CONFIG["ruby_version"]' 2>/dev/null)
|
|
@@ -483,7 +488,9 @@ setup_gem_home() {
|
|
|
483
488
|
export PATH="$HOME/.gem/ruby/${ruby_api}/bin:$PATH"
|
|
484
489
|
print_info "System Ruby detected — gems will install to ~/.gem/ruby/${ruby_api}"
|
|
485
490
|
|
|
486
|
-
|
|
491
|
+
# Clean old RC entries (could be from a different Ruby version), then write new ones
|
|
492
|
+
restore_gem_home
|
|
493
|
+
if [ -n "$SHELL_RC" ]; then
|
|
487
494
|
{
|
|
488
495
|
echo ""
|
|
489
496
|
echo "# Ruby user gem dir (added by openclacky installer)"
|
data/scripts/install_full.sh
CHANGED
|
@@ -559,7 +559,12 @@ restore_gemrc() {
|
|
|
559
559
|
setup_gem_home() {
|
|
560
560
|
local gem_dir
|
|
561
561
|
gem_dir=$(gem environment gemdir 2>/dev/null || true)
|
|
562
|
-
|
|
562
|
+
|
|
563
|
+
# gemdir writable → no workaround needed, clean up old RC entries
|
|
564
|
+
if [ -w "$gem_dir" ]; then
|
|
565
|
+
restore_gem_home
|
|
566
|
+
return 0
|
|
567
|
+
fi
|
|
563
568
|
|
|
564
569
|
local ruby_api
|
|
565
570
|
ruby_api=$(ruby -e 'puts RbConfig::CONFIG["ruby_version"]' 2>/dev/null)
|
|
@@ -568,7 +573,9 @@ setup_gem_home() {
|
|
|
568
573
|
export PATH="$HOME/.gem/ruby/${ruby_api}/bin:$PATH"
|
|
569
574
|
print_info "System Ruby detected — gems will install to ~/.gem/ruby/${ruby_api}"
|
|
570
575
|
|
|
571
|
-
|
|
576
|
+
# Clean old RC entries (could be from a different Ruby version), then write new ones
|
|
577
|
+
restore_gem_home
|
|
578
|
+
if [ -n "$SHELL_RC" ]; then
|
|
572
579
|
{
|
|
573
580
|
echo ""
|
|
574
581
|
echo "# Ruby user gem dir (added by openclacky installer)"
|
|
@@ -732,6 +739,8 @@ install_via_gem() {
|
|
|
732
739
|
local ver; ver=$(ruby -e 'puts RUBY_VERSION' 2>/dev/null)
|
|
733
740
|
version_ge "$ver" "3.1.0" || { print_error "Ruby $ver too old (>= 3.1.0 required)"; return 1; }
|
|
734
741
|
|
|
742
|
+
setup_gem_home
|
|
743
|
+
|
|
735
744
|
print_info "Installing ${DISPLAY_NAME}..."
|
|
736
745
|
if gem install openclacky --no-document; then
|
|
737
746
|
print_success "${DISPLAY_NAME} installed!"
|
|
@@ -687,7 +687,12 @@ restore_gemrc() {
|
|
|
687
687
|
setup_gem_home() {
|
|
688
688
|
local gem_dir
|
|
689
689
|
gem_dir=$(gem environment gemdir 2>/dev/null || true)
|
|
690
|
-
|
|
690
|
+
|
|
691
|
+
# gemdir writable → no workaround needed, clean up old RC entries
|
|
692
|
+
if [ -w "$gem_dir" ]; then
|
|
693
|
+
restore_gem_home
|
|
694
|
+
return 0
|
|
695
|
+
fi
|
|
691
696
|
|
|
692
697
|
local ruby_api
|
|
693
698
|
ruby_api=$(ruby -e 'puts RbConfig::CONFIG["ruby_version"]' 2>/dev/null)
|
|
@@ -696,7 +701,9 @@ setup_gem_home() {
|
|
|
696
701
|
export PATH="$HOME/.gem/ruby/${ruby_api}/bin:$PATH"
|
|
697
702
|
print_info "System Ruby detected — gems will install to ~/.gem/ruby/${ruby_api}"
|
|
698
703
|
|
|
699
|
-
|
|
704
|
+
# Clean old RC entries (could be from a different Ruby version), then write new ones
|
|
705
|
+
restore_gem_home
|
|
706
|
+
if [ -n "$SHELL_RC" ]; then
|
|
700
707
|
{
|
|
701
708
|
echo ""
|
|
702
709
|
echo "# Ruby user gem dir (added by openclacky installer)"
|
data/scripts/uninstall.sh
CHANGED
|
@@ -159,7 +159,12 @@ restore_gemrc() {
|
|
|
159
159
|
setup_gem_home() {
|
|
160
160
|
local gem_dir
|
|
161
161
|
gem_dir=$(gem environment gemdir 2>/dev/null || true)
|
|
162
|
-
|
|
162
|
+
|
|
163
|
+
# gemdir writable → no workaround needed, clean up old RC entries
|
|
164
|
+
if [ -w "$gem_dir" ]; then
|
|
165
|
+
restore_gem_home
|
|
166
|
+
return 0
|
|
167
|
+
fi
|
|
163
168
|
|
|
164
169
|
local ruby_api
|
|
165
170
|
ruby_api=$(ruby -e 'puts RbConfig::CONFIG["ruby_version"]' 2>/dev/null)
|
|
@@ -168,7 +173,9 @@ setup_gem_home() {
|
|
|
168
173
|
export PATH="$HOME/.gem/ruby/${ruby_api}/bin:$PATH"
|
|
169
174
|
print_info "System Ruby detected — gems will install to ~/.gem/ruby/${ruby_api}"
|
|
170
175
|
|
|
171
|
-
|
|
176
|
+
# Clean old RC entries (could be from a different Ruby version), then write new ones
|
|
177
|
+
restore_gem_home
|
|
178
|
+
if [ -n "$SHELL_RC" ]; then
|
|
172
179
|
{
|
|
173
180
|
echo ""
|
|
174
181
|
echo "# Ruby user gem dir (added by openclacky installer)"
|
|
@@ -207,7 +214,7 @@ load_brand() {
|
|
|
207
214
|
[ -f "$brand_file" ] || return 0
|
|
208
215
|
BRAND_NAME=$(awk -F': ' '/^product_name:/{gsub(/^"|"$/, "", $2); gsub(/^ +| +$/, "", $2); print $2}' "$brand_file") || true
|
|
209
216
|
BRAND_COMMAND=$(awk -F': ' '/^package_name:/{gsub(/^"|"$/, "", $2); gsub(/^ +| +$/, "", $2); print $2}' "$brand_file") || true
|
|
210
|
-
[ -n "$BRAND_NAME" ]
|
|
217
|
+
if [ -n "$BRAND_NAME" ]; then DISPLAY_NAME="$BRAND_NAME"; fi
|
|
211
218
|
}
|
|
212
219
|
|
|
213
220
|
check_installation() {
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openclacky
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.12
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- windy
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-06-
|
|
11
|
+
date: 2026-06-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -366,6 +366,7 @@ files:
|
|
|
366
366
|
- lib/clacky/default_skills/channel-manager/SKILL.md
|
|
367
367
|
- lib/clacky/default_skills/channel-manager/dingtalk_setup.rb
|
|
368
368
|
- lib/clacky/default_skills/channel-manager/discord_setup.rb
|
|
369
|
+
- lib/clacky/default_skills/channel-manager/feishu_setup.rb
|
|
369
370
|
- lib/clacky/default_skills/channel-manager/import_lark_skills.rb
|
|
370
371
|
- lib/clacky/default_skills/channel-manager/install_feishu_skills.rb
|
|
371
372
|
- lib/clacky/default_skills/channel-manager/weixin_setup.rb
|
|
@@ -451,6 +452,7 @@ files:
|
|
|
451
452
|
- lib/clacky/server/channel/channel_config.rb
|
|
452
453
|
- lib/clacky/server/channel/channel_manager.rb
|
|
453
454
|
- lib/clacky/server/channel/channel_ui_controller.rb
|
|
455
|
+
- lib/clacky/server/channel/group_message_buffer.rb
|
|
454
456
|
- lib/clacky/server/channel/user_adapter_loader.rb
|
|
455
457
|
- lib/clacky/server/discover.rb
|
|
456
458
|
- lib/clacky/server/epipe_safe_io.rb
|
|
@@ -531,16 +533,19 @@ files:
|
|
|
531
533
|
- lib/clacky/version.rb
|
|
532
534
|
- lib/clacky/web/app.css
|
|
533
535
|
- lib/clacky/web/app.js
|
|
536
|
+
- lib/clacky/web/apple-touch-icon-180.png
|
|
534
537
|
- lib/clacky/web/auth.js
|
|
535
538
|
- lib/clacky/web/billing.js
|
|
536
539
|
- lib/clacky/web/brand.js
|
|
537
540
|
- lib/clacky/web/channels.js
|
|
538
541
|
- lib/clacky/web/creator.js
|
|
539
542
|
- lib/clacky/web/datepicker.js
|
|
543
|
+
- lib/clacky/web/favicon.ico
|
|
540
544
|
- lib/clacky/web/i18n.js
|
|
541
545
|
- lib/clacky/web/icon-dark.svg
|
|
542
546
|
- lib/clacky/web/icon.svg
|
|
543
547
|
- lib/clacky/web/index.html
|
|
548
|
+
- lib/clacky/web/logo_nav_dark.png
|
|
544
549
|
- lib/clacky/web/marked.min.js
|
|
545
550
|
- lib/clacky/web/mcp.js
|
|
546
551
|
- lib/clacky/web/model-tester.js
|