openclacky 1.3.1 → 1.3.3
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 +44 -0
- data/Dockerfile +3 -0
- data/README.md +1 -1
- data/README_JA.md +237 -0
- data/lib/clacky/agent/session_serializer.rb +65 -11
- data/lib/clacky/agent/time_machine.rb +247 -26
- data/lib/clacky/agent.rb +12 -1
- data/lib/clacky/agent_config.rb +14 -2
- data/lib/clacky/brand_config.rb +1 -1
- data/lib/clacky/default_agents/_panels/git/panel.js +201 -0
- data/lib/clacky/default_agents/_panels/time_machine/panel.js +640 -0
- data/lib/clacky/default_agents/coding/profile.yml +3 -0
- data/lib/clacky/default_agents/coding/webui/.gitkeep +0 -0
- data/lib/clacky/default_skills/cron-task-creator/SKILL.md +1 -1
- data/lib/clacky/default_skills/extend-openclacky/SKILL.md +6 -4
- data/lib/clacky/default_skills/media-gen/SKILL.md +30 -6
- data/lib/clacky/media/openai_compat.rb +64 -1
- data/lib/clacky/media/output_dir.rb +43 -0
- data/lib/clacky/message_history.rb +9 -0
- data/lib/clacky/server/channel/channel_manager.rb +26 -0
- data/lib/clacky/server/git_panel.rb +115 -0
- data/lib/clacky/server/http_server.rb +521 -13
- data/lib/clacky/server/server_master.rb +6 -4
- data/lib/clacky/utils/environment_detector.rb +16 -0
- data/lib/clacky/version.rb +1 -1
- data/lib/clacky/web/app.css +512 -60
- data/lib/clacky/web/app.js +30 -7
- data/lib/clacky/web/components/code-editor.js +197 -0
- data/lib/clacky/web/{notify.js → components/notify.js} +1 -1
- data/lib/clacky/web/core/aside.js +112 -0
- data/lib/clacky/web/core/ext.js +387 -0
- data/lib/clacky/web/features/backup/store.js +92 -0
- data/lib/clacky/web/features/backup/view.js +94 -0
- data/lib/clacky/web/features/billing/store.js +163 -0
- data/lib/clacky/web/{billing.js → features/billing/view.js} +134 -242
- data/lib/clacky/web/features/brand/store.js +110 -0
- data/lib/clacky/web/{brand.js → features/brand/view.js} +49 -199
- data/lib/clacky/web/features/channels/store.js +103 -0
- data/lib/clacky/web/{channels.js → features/channels/view.js} +50 -127
- data/lib/clacky/web/features/creator/store.js +81 -0
- data/lib/clacky/web/{creator.js → features/creator/view.js} +53 -102
- data/lib/clacky/web/features/mcp/store.js +158 -0
- data/lib/clacky/web/{mcp.js → features/mcp/view.js} +57 -134
- data/lib/clacky/web/features/model-tester/store.js +77 -0
- data/lib/clacky/web/features/model-tester/view.js +7 -0
- data/lib/clacky/web/features/profile/store.js +170 -0
- data/lib/clacky/web/{profile.js → features/profile/view.js} +94 -144
- data/lib/clacky/web/features/share/store.js +145 -0
- data/lib/clacky/web/{share.js → features/share/view.js} +66 -202
- data/lib/clacky/web/features/skills/store.js +303 -0
- data/lib/clacky/web/features/skills/view.js +550 -0
- data/lib/clacky/web/features/tasks/store.js +135 -0
- data/lib/clacky/web/features/tasks/view.js +241 -0
- data/lib/clacky/web/features/trash/store.js +242 -0
- data/lib/clacky/web/{trash.js → features/trash/view.js} +102 -293
- data/lib/clacky/web/features/version/store.js +165 -0
- data/lib/clacky/web/features/version/view.js +323 -0
- data/lib/clacky/web/features/workspace/store.js +99 -0
- data/lib/clacky/web/features/workspace/view.js +305 -0
- data/lib/clacky/web/i18n.js +60 -6
- data/lib/clacky/web/index.html +117 -57
- data/lib/clacky/web/sessions.js +221 -25
- data/lib/clacky/web/settings.js +121 -25
- data/lib/clacky/web/skills.js +3 -821
- data/lib/clacky/web/vendor/codemirror/codemirror.min.js +29 -0
- data/lib/clacky.rb +1 -0
- metadata +45 -20
- data/lib/clacky/web/backup.js +0 -119
- data/lib/clacky/web/model-tester.js +0 -66
- data/lib/clacky/web/tasks.js +0 -365
- data/lib/clacky/web/version.js +0 -449
- data/lib/clacky/web/workspace.js +0 -212
- /data/lib/clacky/web/{notify.mp3 → assets/notify.mp3} +0 -0
- /data/lib/clacky/web/{datepicker.js → components/datepicker.js} +0 -0
- /data/lib/clacky/web/{onboard.js → components/onboard.js} +0 -0
- /data/lib/clacky/web/{sidebar.js → components/sidebar.js} +0 -0
- /data/lib/clacky/web/{marked.min.js → vendor/marked/marked.min.js} +0 -0
|
@@ -36,6 +36,7 @@ module Clacky
|
|
|
36
36
|
@worker_pid = nil
|
|
37
37
|
@restart_requested = false
|
|
38
38
|
@shutdown_requested = false
|
|
39
|
+
@shutdown_signal = nil
|
|
39
40
|
end
|
|
40
41
|
|
|
41
42
|
def run
|
|
@@ -68,9 +69,9 @@ module Clacky
|
|
|
68
69
|
|
|
69
70
|
# 3. Signal handlers
|
|
70
71
|
Signal.trap("USR1") { @restart_requested = true }
|
|
71
|
-
Signal.trap("TERM") { @shutdown_requested = true }
|
|
72
|
-
Signal.trap("INT") { @shutdown_requested = true }
|
|
73
|
-
Signal.trap("HUP") { @shutdown_requested = true }
|
|
72
|
+
Signal.trap("TERM") { @shutdown_signal = "TERM"; @shutdown_requested = true }
|
|
73
|
+
Signal.trap("INT") { @shutdown_signal = "INT"; @shutdown_requested = true }
|
|
74
|
+
Signal.trap("HUP") { @shutdown_signal = "HUP"; @shutdown_requested = true }
|
|
74
75
|
|
|
75
76
|
# 4. Spawn first worker
|
|
76
77
|
@worker_pid = spawn_worker
|
|
@@ -184,7 +185,8 @@ module Clacky
|
|
|
184
185
|
end
|
|
185
186
|
|
|
186
187
|
def shutdown
|
|
187
|
-
|
|
188
|
+
reason = @shutdown_signal ? "signal=SIG#{@shutdown_signal}" : "signal=none"
|
|
189
|
+
Clacky::Logger.info("[Master] Shutting down (worker PID=#{@worker_pid}) #{reason}...")
|
|
188
190
|
if @worker_pid
|
|
189
191
|
begin
|
|
190
192
|
# TERM the entire worker process group so grandchildren (node MCP, etc.)
|
|
@@ -36,6 +36,22 @@ module Clacky
|
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
+
# Reveal a file in the OS file manager (select/highlight it).
|
|
40
|
+
# macOS: open -R; Linux: xdg-open on parent dir; WSL: explorer /select
|
|
41
|
+
# @param path [String] Linux-side file path
|
|
42
|
+
# @return [Boolean, nil] true/false from system(), or nil on unsupported OS
|
|
43
|
+
def self.reveal_file(path)
|
|
44
|
+
case os_type
|
|
45
|
+
when :macos then system("open", "-R", path)
|
|
46
|
+
when :linux then system("xdg-open", File.dirname(path))
|
|
47
|
+
when :wsl
|
|
48
|
+
win_path = linux_to_win_path(path)
|
|
49
|
+
system("explorer.exe", "/select,#{win_path}")
|
|
50
|
+
else
|
|
51
|
+
nil
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
39
55
|
# Convert a Windows-style path to a WSL/Linux-side path.
|
|
40
56
|
# e.g. "C:/Users/foo/file.txt" → "/mnt/c/Users/foo/file.txt"
|
|
41
57
|
# Returns the original path unchanged on non-WSL or if already a Linux path.
|
data/lib/clacky/version.rb
CHANGED