openclacky 1.1.5 → 1.2.0
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 +45 -0
- data/CODE_OF_CONDUCT.md +1 -1
- data/CONTRIBUTING.md +92 -0
- data/README.md +10 -0
- data/README_CN.md +10 -0
- data/ROADMAP.md +29 -0
- data/docs/billing-system.md +340 -0
- data/docs/mcp-architecture.md +114 -0
- data/docs/mcp.example.json +22 -0
- data/lib/clacky/agent/cost_tracker.rb +37 -0
- data/lib/clacky/agent/llm_caller.rb +0 -1
- data/lib/clacky/agent/session_serializer.rb +2 -11
- data/lib/clacky/agent/skill_manager.rb +73 -26
- data/lib/clacky/agent/system_prompt_builder.rb +0 -5
- data/lib/clacky/agent/time_machine.rb +6 -0
- data/lib/clacky/agent.rb +26 -1
- data/lib/clacky/agent_config.rb +9 -19
- data/lib/clacky/billing/billing_record.rb +67 -0
- data/lib/clacky/billing/billing_store.rb +193 -0
- data/lib/clacky/cli.rb +113 -63
- data/lib/clacky/default_skills/browser-setup/SKILL.md +26 -4
- data/lib/clacky/default_skills/mcp-manager/SKILL.md +343 -0
- data/lib/clacky/idle_compression_timer.rb +4 -2
- data/lib/clacky/mcp/client.rb +204 -0
- data/lib/clacky/mcp/http_transport.rb +155 -0
- data/lib/clacky/mcp/registry.rb +229 -0
- data/lib/clacky/mcp/skill_provider.rb +75 -0
- data/lib/clacky/mcp/stdio_transport.rb +112 -0
- data/lib/clacky/mcp/transport.rb +23 -0
- data/lib/clacky/mcp/virtual_skill.rb +131 -0
- data/lib/clacky/message_history.rb +0 -1
- data/lib/clacky/server/channel/adapters/weixin/adapter.rb +2 -35
- data/lib/clacky/server/http_server.rb +521 -17
- data/lib/clacky/server/server_master.rb +8 -14
- data/lib/clacky/server/session_registry.rb +30 -2
- data/lib/clacky/server/web_ui_controller.rb +4 -0
- data/lib/clacky/session_manager.rb +41 -12
- data/lib/clacky/skill.rb +1 -5
- data/lib/clacky/skill_loader.rb +41 -6
- data/lib/clacky/tools/browser.rb +217 -38
- data/lib/clacky/tools/trash_manager.rb +154 -3
- data/lib/clacky/ui2/components/command_suggestions.rb +6 -2
- data/lib/clacky/ui_interface.rb +1 -0
- data/lib/clacky/utils/model_pricing.rb +11 -7
- data/lib/clacky/utils/trash_directory.rb +37 -6
- data/lib/clacky/version.rb +1 -1
- data/lib/clacky/web/app.css +2907 -1764
- data/lib/clacky/web/app.js +84 -10
- data/lib/clacky/web/billing.js +275 -0
- data/lib/clacky/web/brand.js +51 -40
- data/lib/clacky/web/i18n.js +248 -24
- data/lib/clacky/web/index.html +362 -134
- data/lib/clacky/web/mcp.js +328 -0
- data/lib/clacky/web/sessions.js +299 -18
- data/lib/clacky/web/settings.js +686 -174
- data/lib/clacky/web/sidebar.js +2 -0
- data/lib/clacky/web/trash.js +323 -60
- data/lib/clacky/web/ws-dispatcher.js +15 -2
- data/lib/clacky.rb +4 -0
- data/scripts/install.ps1 +23 -11
- metadata +30 -10
data/scripts/install.ps1
CHANGED
|
@@ -33,6 +33,8 @@ $global:DisplayName = if ($BrandName) { $BrandName } else { "OpenClacky" }
|
|
|
33
33
|
$global:DisplayCmd = if ($CommandName) { $CommandName } else { "openclacky" }
|
|
34
34
|
|
|
35
35
|
$CLACKY_CDN_BASE_URL = "https://oss.1024code.com"
|
|
36
|
+
$CLACKY_CDN_PRIMARY_HOST = "oss.1024code.com"
|
|
37
|
+
$CLACKY_CDN_BACKUP_HOST = "clackyai-1258723534.cos.ap-guangzhou.myqcloud.com"
|
|
36
38
|
$INSTALL_PS1_COMMAND = "powershell -c `"irm $CLACKY_CDN_BASE_URL/clacky-ai/openclacky/main/scripts/install.ps1 | iex`""
|
|
37
39
|
$INSTALL_SCRIPT_URL = "$CLACKY_CDN_BASE_URL/clacky-ai/openclacky/main/scripts/install.sh"
|
|
38
40
|
$UBUNTU_WSL_AMD64_URL = "$CLACKY_CDN_BASE_URL/ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz"
|
|
@@ -72,18 +74,24 @@ function Get-SafeTempDir {
|
|
|
72
74
|
# Invoke-WebRequest. Returns $true on success, $false on failure.
|
|
73
75
|
function Invoke-Download {
|
|
74
76
|
param([string]$Url, [string]$OutFile)
|
|
75
|
-
$
|
|
77
|
+
$urls = @($Url)
|
|
76
78
|
try {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
if (([Uri]$Url).Host -eq $CLACKY_CDN_PRIMARY_HOST) {
|
|
80
|
+
$urls += ([Uri]$Url).AbsoluteUri.Replace($CLACKY_CDN_PRIMARY_HOST, $CLACKY_CDN_BACKUP_HOST)
|
|
81
|
+
}
|
|
79
82
|
} catch {}
|
|
80
|
-
|
|
83
|
+
foreach ($u in $urls) {
|
|
84
|
+
if ($u -ne $Url) { Write-Warn "Primary download failed, retrying with backup mirror." }
|
|
85
|
+
try {
|
|
86
|
+
curl.exe -L --fail --progress-bar $u -o $OutFile
|
|
87
|
+
if ($LASTEXITCODE -eq 0) { return $true }
|
|
88
|
+
} catch {}
|
|
81
89
|
try {
|
|
82
|
-
Invoke-WebRequest -Uri $
|
|
83
|
-
|
|
84
|
-
} catch {
|
|
90
|
+
Invoke-WebRequest -Uri $u -OutFile $OutFile -UseBasicParsing -TimeoutSec 60
|
|
91
|
+
return $true
|
|
92
|
+
} catch {}
|
|
85
93
|
}
|
|
86
|
-
return $
|
|
94
|
+
return $false
|
|
87
95
|
}
|
|
88
96
|
|
|
89
97
|
# Verify SHA256 of a local file against a remote .sha256 file.
|
|
@@ -143,14 +151,18 @@ function Invoke-WslStatusExitCode {
|
|
|
143
151
|
}
|
|
144
152
|
|
|
145
153
|
# Returns $true if a distro named exactly "Ubuntu" is registered.
|
|
146
|
-
# wsl --list outputs UTF-16LE;
|
|
154
|
+
# wsl --list outputs UTF-16LE regardless of WSL_UTF8; temporarily clear it and switch
|
|
155
|
+
# OutputEncoding to Unicode so the output decodes correctly.
|
|
147
156
|
function Test-UbuntuInstalled {
|
|
148
|
-
$
|
|
157
|
+
$prevEnc = [Console]::OutputEncoding
|
|
158
|
+
$prevUtf8 = $env:WSL_UTF8
|
|
149
159
|
[Console]::OutputEncoding = [System.Text.Encoding]::Unicode
|
|
160
|
+
$env:WSL_UTF8 = $null
|
|
150
161
|
try {
|
|
151
162
|
$out = (wsl.exe --list --quiet 2>$null) -join "`n"
|
|
152
163
|
} finally {
|
|
153
|
-
[Console]::OutputEncoding = $
|
|
164
|
+
[Console]::OutputEncoding = $prevEnc
|
|
165
|
+
$env:WSL_UTF8 = $prevUtf8
|
|
154
166
|
}
|
|
155
167
|
# Whole-line match to avoid false positives from Ubuntu-22.04, Ubuntu-24.04, etc.
|
|
156
168
|
return ($out -match '(?im)^Ubuntu\s*$')
|
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.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- windy
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-05-
|
|
11
|
+
date: 2026-05-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -260,9 +260,12 @@ dependencies:
|
|
|
260
260
|
- - "~>"
|
|
261
261
|
- !ruby/object:Gem::Version
|
|
262
262
|
version: '1.4'
|
|
263
|
-
description: OpenClacky is a
|
|
264
|
-
|
|
265
|
-
|
|
263
|
+
description: OpenClacky is a 100% open-source (MIT) AI Agent that matches Claude Code
|
|
264
|
+
on capability at comparable cost. Built on two years of agentic R&D, it ships with
|
|
265
|
+
a minimal 16-tool core, near-100% prompt cache hit rate, idle-time auto-compression,
|
|
266
|
+
and BYOK support for any OpenAI-compatible model. A natural-language Skill system
|
|
267
|
+
lets you create, evolve, and monetize agent capabilities without writing code, plus
|
|
268
|
+
first-class integrations with Feishu, WeCom, WeChat, Discord, and Telegram.
|
|
266
269
|
email:
|
|
267
270
|
- yafei@dao42.com
|
|
268
271
|
executables:
|
|
@@ -281,10 +284,12 @@ files:
|
|
|
281
284
|
- ".rubocop.yml"
|
|
282
285
|
- CHANGELOG.md
|
|
283
286
|
- CODE_OF_CONDUCT.md
|
|
287
|
+
- CONTRIBUTING.md
|
|
284
288
|
- Dockerfile
|
|
285
289
|
- LICENSE.txt
|
|
286
290
|
- README.md
|
|
287
291
|
- README_CN.md
|
|
292
|
+
- ROADMAP.md
|
|
288
293
|
- Rakefile
|
|
289
294
|
- benchmark/fixtures/sample_project/Gemfile
|
|
290
295
|
- benchmark/fixtures/sample_project/lib/api_handler.rb
|
|
@@ -303,8 +308,11 @@ files:
|
|
|
303
308
|
- clacky-legacy/clacky.gemspec
|
|
304
309
|
- clacky-legacy/clarky.gemspec
|
|
305
310
|
- docs/agent-first-ui-design.md
|
|
311
|
+
- docs/billing-system.md
|
|
306
312
|
- docs/channel-architecture.md
|
|
307
313
|
- docs/engineering-article.md
|
|
314
|
+
- docs/mcp-architecture.md
|
|
315
|
+
- docs/mcp.example.json
|
|
308
316
|
- docs/session-skill-invocation.md
|
|
309
317
|
- docs/time_machine_design.md
|
|
310
318
|
- docs/ui2-architecture.md
|
|
@@ -333,6 +341,8 @@ files:
|
|
|
333
341
|
- lib/clacky/anthropic_stream_aggregator.rb
|
|
334
342
|
- lib/clacky/banner.rb
|
|
335
343
|
- lib/clacky/bedrock_stream_aggregator.rb
|
|
344
|
+
- lib/clacky/billing/billing_record.rb
|
|
345
|
+
- lib/clacky/billing/billing_store.rb
|
|
336
346
|
- lib/clacky/block_font.rb
|
|
337
347
|
- lib/clacky/brand_config.rb
|
|
338
348
|
- lib/clacky/cli.rb
|
|
@@ -363,6 +373,7 @@ files:
|
|
|
363
373
|
- lib/clacky/default_skills/cron-task-creator/SKILL.md
|
|
364
374
|
- lib/clacky/default_skills/cron-task-creator/evals/evals.json
|
|
365
375
|
- lib/clacky/default_skills/deploy/SKILL.md
|
|
376
|
+
- lib/clacky/default_skills/mcp-manager/SKILL.md
|
|
366
377
|
- lib/clacky/default_skills/new/SKILL.md
|
|
367
378
|
- lib/clacky/default_skills/new/scripts/create_rails_project.sh
|
|
368
379
|
- lib/clacky/default_skills/onboard/SKILL.md
|
|
@@ -393,6 +404,13 @@ files:
|
|
|
393
404
|
- lib/clacky/default_skills/skill-creator/scripts/validate_skill_frontmatter.rb
|
|
394
405
|
- lib/clacky/idle_compression_timer.rb
|
|
395
406
|
- lib/clacky/json_ui_controller.rb
|
|
407
|
+
- lib/clacky/mcp/client.rb
|
|
408
|
+
- lib/clacky/mcp/http_transport.rb
|
|
409
|
+
- lib/clacky/mcp/registry.rb
|
|
410
|
+
- lib/clacky/mcp/skill_provider.rb
|
|
411
|
+
- lib/clacky/mcp/stdio_transport.rb
|
|
412
|
+
- lib/clacky/mcp/transport.rb
|
|
413
|
+
- lib/clacky/mcp/virtual_skill.rb
|
|
396
414
|
- lib/clacky/message_format/anthropic.rb
|
|
397
415
|
- lib/clacky/message_format/bedrock.rb
|
|
398
416
|
- lib/clacky/message_format/open_ai.rb
|
|
@@ -507,6 +525,7 @@ files:
|
|
|
507
525
|
- lib/clacky/web/app.css
|
|
508
526
|
- lib/clacky/web/app.js
|
|
509
527
|
- lib/clacky/web/auth.js
|
|
528
|
+
- lib/clacky/web/billing.js
|
|
510
529
|
- lib/clacky/web/brand.js
|
|
511
530
|
- lib/clacky/web/channels.js
|
|
512
531
|
- lib/clacky/web/creator.js
|
|
@@ -516,6 +535,7 @@ files:
|
|
|
516
535
|
- lib/clacky/web/icon.svg
|
|
517
536
|
- lib/clacky/web/index.html
|
|
518
537
|
- lib/clacky/web/marked.min.js
|
|
538
|
+
- lib/clacky/web/mcp.js
|
|
519
539
|
- lib/clacky/web/onboard.js
|
|
520
540
|
- lib/clacky/web/profile.js
|
|
521
541
|
- lib/clacky/web/sessions.js
|
|
@@ -577,13 +597,13 @@ files:
|
|
|
577
597
|
- scripts/install_system_deps.sh
|
|
578
598
|
- scripts/uninstall.sh
|
|
579
599
|
- sig/clacky.rbs
|
|
580
|
-
homepage: https://github.com/
|
|
600
|
+
homepage: https://github.com/clacky-ai/openclacky
|
|
581
601
|
licenses:
|
|
582
602
|
- MIT
|
|
583
603
|
metadata:
|
|
584
|
-
homepage_uri: https://github.com/
|
|
585
|
-
source_code_uri: https://github.com/
|
|
586
|
-
changelog_uri: https://github.com/
|
|
604
|
+
homepage_uri: https://github.com/clacky-ai/openclacky
|
|
605
|
+
source_code_uri: https://github.com/clacky-ai/openclacky
|
|
606
|
+
changelog_uri: https://github.com/clacky-ai/openclacky/blob/main/CHANGELOG.md
|
|
587
607
|
post_install_message:
|
|
588
608
|
rdoc_options: []
|
|
589
609
|
require_paths:
|
|
@@ -602,5 +622,5 @@ requirements: []
|
|
|
602
622
|
rubygems_version: 3.5.22
|
|
603
623
|
signing_key:
|
|
604
624
|
specification_version: 4
|
|
605
|
-
summary:
|
|
625
|
+
summary: The most Token-efficient open-source AI Agent — BYOK, Skill-driven, IM-integrated.
|
|
606
626
|
test_files: []
|