openclacky 0.7.9 → 0.8.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.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.clacky/skills/gem-release/SKILL.md +33 -4
  3. data/CHANGELOG.md +54 -0
  4. data/README.md +66 -67
  5. data/docs/openclacky_cloud_api_reference.md +584 -0
  6. data/lib/clacky/agent/hook_manager.rb +1 -1
  7. data/lib/clacky/agent/memory_updater.rb +146 -0
  8. data/lib/clacky/agent/message_compressor.rb +12 -4
  9. data/lib/clacky/agent/message_compressor_helper.rb +139 -2
  10. data/lib/clacky/agent/session_serializer.rb +2 -1
  11. data/lib/clacky/agent/skill_manager.rb +106 -10
  12. data/lib/clacky/agent/system_prompt_builder.rb +57 -89
  13. data/lib/clacky/agent/tool_executor.rb +13 -1
  14. data/lib/clacky/agent.rb +44 -10
  15. data/lib/clacky/agent_config.rb +9 -9
  16. data/lib/clacky/agent_profile.rb +118 -0
  17. data/lib/clacky/brand_config.rb +582 -0
  18. data/lib/clacky/cli.rb +116 -13
  19. data/lib/clacky/default_agents/SOUL.md +3 -0
  20. data/lib/clacky/default_agents/USER.md +1 -0
  21. data/lib/clacky/default_agents/base_prompt.md +33 -0
  22. data/lib/clacky/default_agents/coding/profile.yml +12 -0
  23. data/lib/clacky/default_agents/coding/system_prompt.md +17 -0
  24. data/lib/clacky/default_agents/general/profile.yml +7 -0
  25. data/lib/clacky/default_agents/general/system_prompt.md +16 -0
  26. data/lib/clacky/default_skills/recall-memory/SKILL.md +66 -0
  27. data/lib/clacky/server/http_server.rb +316 -23
  28. data/lib/clacky/server/scheduler.rb +8 -10
  29. data/lib/clacky/server/session_registry.rb +3 -3
  30. data/lib/clacky/server/web_ui_controller.rb +20 -1
  31. data/lib/clacky/session_manager.rb +23 -8
  32. data/lib/clacky/skill.rb +120 -11
  33. data/lib/clacky/skill_loader.rb +77 -8
  34. data/lib/clacky/tools/browser.rb +212 -0
  35. data/lib/clacky/tools/edit.rb +1 -1
  36. data/lib/clacky/tools/file_reader.rb +14 -3
  37. data/lib/clacky/tools/glob.rb +11 -3
  38. data/lib/clacky/tools/grep.rb +4 -3
  39. data/lib/clacky/tools/invoke_skill.rb +8 -8
  40. data/lib/clacky/tools/request_user_feedback.rb +1 -1
  41. data/lib/clacky/tools/run_project.rb +4 -2
  42. data/lib/clacky/tools/safe_shell.rb +7 -7
  43. data/lib/clacky/tools/shell.rb +6 -2
  44. data/lib/clacky/tools/todo_manager.rb +1 -1
  45. data/lib/clacky/tools/trash_manager.rb +2 -2
  46. data/lib/clacky/tools/web_fetch.rb +1 -1
  47. data/lib/clacky/tools/web_search.rb +1 -1
  48. data/lib/clacky/tools/write.rb +1 -1
  49. data/lib/clacky/ui2/components/command_suggestions.rb +7 -3
  50. data/lib/clacky/ui2/components/input_area.rb +3 -2
  51. data/lib/clacky/ui2/components/welcome_banner.rb +69 -19
  52. data/lib/clacky/ui2/ui_controller.rb +3 -2
  53. data/lib/clacky/utils/file_ignore_helper.rb +1 -1
  54. data/lib/clacky/utils/logger.rb +97 -0
  55. data/lib/clacky/version.rb +1 -1
  56. data/lib/clacky/web/app.css +400 -0
  57. data/lib/clacky/web/app.js +198 -16
  58. data/lib/clacky/web/brand.js +157 -0
  59. data/lib/clacky/web/index.html +89 -9
  60. data/lib/clacky/web/onboard.js +5 -1
  61. data/lib/clacky/web/sessions.js +195 -17
  62. data/lib/clacky/web/settings.js +131 -1
  63. data/lib/clacky/web/skills.js +175 -10
  64. data/lib/clacky/web/tasks.js +15 -8
  65. data/lib/clacky.rb +3 -0
  66. data/scripts/install.sh +251 -7
  67. metadata +30 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93b025580a849df456c7d9d20089b31f392446c2d46d842117563fe349740c92
4
- data.tar.gz: 5a61ab30b81751176a2f612d3db2822bef54f99b3f907f73e7e7bba0c12bc231
3
+ metadata.gz: 570945e2d68d70788a86ecdbd7a21ed30dfcb34d975b8808218e657826108252
4
+ data.tar.gz: 99feeab9141a907658b65eefe3df5cbff69334ab3143db54b72a3d46128b27cd
5
5
  SHA512:
6
- metadata.gz: c5a5aefd0945a2296783df6f9b8f6779d4bd36bc35cae587dc743a19e71e59c7714731e742dc8b1ecdba2535896c8f4be434bea1d2adac2dc1bd4ad56762a11e
7
- data.tar.gz: 639d2f4e3d72250ac70dc9e27ad3157e91878bac076a3b13edaa8de00bae7f8342b87fe42357475092b2aecaca5425720e124d222e398cbe623207167ef21b2c
6
+ metadata.gz: d2cb4c26ec397a9ee146562bcf9490ea1021937fc0a150e355d1880d2b2f9a0fc11a24e0694e5d611ccdbcda1d472c94acc67c5beeb869a141937ce12ec89bee
7
+ data.tar.gz: a495aca929f8cee417fb5ae033068faee73f87fd879f715d20ed05216ba6657968a02354b147c7076d054cf6ba5c970ddb0e98cdffc89adfaaedd6ee308d9cd0
@@ -190,10 +190,38 @@ To use this skill, simply say:
190
190
  - Commit CHANGELOG.md changes
191
191
  - Push to remote repository
192
192
 
193
- ### 7. Final Verification
194
- - Confirm the gem appears on RubyGems.org
195
- - Check that version information is correct
196
- - Verify installation works for end users
193
+ ### 7. Final Summary
194
+
195
+ Present a clear, user-facing release summary after all steps complete:
196
+
197
+ **Format:**
198
+ ```
199
+ 🎉 v{version} released successfully!
200
+
201
+ 📦 What's new for users:
202
+
203
+ **New Features**
204
+ - [translate each "Added" item into plain user-facing language]
205
+
206
+ **Improvements**
207
+ - [translate each "Improved" item into plain user-facing language]
208
+
209
+ **Bug Fixes**
210
+ - [translate each "Fixed" item into plain user-facing language]
211
+
212
+ 🔗 Links:
213
+ - RubyGems: https://rubygems.org/gems/openclacky/versions/{version}
214
+ - GitHub Release: https://github.com/clacky-ai/open-clacky/releases/tag/v{version}
215
+
216
+ Install/upgrade: gem install openclacky
217
+ ```
218
+
219
+ **Rules for writing the summary:**
220
+ - Write from the user's perspective — what can they now do, or what problem is now fixed
221
+ - Avoid technical jargon (no "cursor-paginated", "frontmatter", "REST API" — explain what it means instead)
222
+ - Skip "More" / chore items unless they directly affect users
223
+ - Keep each bullet to one sentence, action-oriented
224
+ - Example translation: `fix: expand ~ in file system tools path arguments` → "File paths starting with `~` (home directory) now work correctly in all file tools"
197
225
 
198
226
  ## Commands Used
199
227
 
@@ -248,6 +276,7 @@ gh release create vX.Y.Z \
248
276
  - CHANGELOG.md updated with release notes
249
277
  - GitHub Release created and visible at https://github.com/clacky-ai/open-clacky/releases
250
278
  - No build or deployment errors
279
+ - User-facing release summary presented at the end
251
280
 
252
281
  ## Error Handling
253
282
 
data/CHANGELOG.md CHANGED
@@ -7,6 +7,60 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.8.1] - 2026-03-09
11
+
12
+ ### Added
13
+ - **Agent profile system**: define named agent profiles (`--agent coding|general`) with custom system prompts and skill whitelists via `profile.yml`; built-in `coding` and `general` profiles included
14
+ - **Skill autocomplete dropdown** in the web UI: type `/` in the chat input to see a filtered list of available skills
15
+ - **File-based logger** (`Clacky::Logger`): thread-safe structured logging to `~/.clacky/logs/` for debugging agent sessions
16
+ - **Session persistence on startup**: server now restores the most recent session for the working directory automatically on boot
17
+ - **Long-term memory update system**: agent automatically updates `~/.clacky/memories/` after sessions using a whitelist-driven approach
18
+ - **Compressed message archiving**: older messages are compressed and archived to chunk Markdown files to keep context window manageable
19
+ - **Network pre-flight check**: connection is verified before agent starts; helpful VPN/proxy suggestions shown on failure
20
+ - **Encrypted brand skills**: white-label brand skills can now be shipped as encrypted `.enc` files for privacy
21
+
22
+ ### Improved
23
+ - Memory update logic tightened with a whitelist approach — only writes memory when explicit criteria are met, reducing noise
24
+ - Memory update threshold raised and prompt made dynamic for more reliable triggering
25
+ - Slash commands in onboarding (`/create-task`, `/skill-add`) now use the pending-message pattern so they work correctly before WS connects
26
+ - Sidebar shows "No sessions yet" placeholder during onboarding
27
+ - Session delete is now optimistic — UI updates immediately without waiting for WS broadcast, and 404 ghost sessions are cleaned up automatically
28
+ - Tool call summaries from `format_call` are now rendered in the web UI for cleaner tool output display
29
+ - Agent error handling and memory update flow stabilized
30
+
31
+ ### Fixed
32
+ - Create Task / Create Skill buttons during onboarding now correctly send the command after WS connects (previously messages were silently dropped)
33
+ - Pending slash commands are now queued until the session WS subscription is confirmed
34
+ - `working_dir: nil` added to all tool `execute` signatures to fix unknown keyword errors
35
+
36
+ ### More
37
+ - `clacky` install script robustness and UX improvements
38
+ - Disabled rdoc/ri generation on gem install for faster installs
39
+ - Strip `.git/.svn/.hg` directories from glob results
40
+
41
+ ## [0.8.0] - 2026-03-06
42
+
43
+ ### Added
44
+ - **Browser tool**: AI agent can now control the user's Chrome browser via Chrome DevTools Protocol (CDP) — click, fill forms, take screenshots, scroll, and interact with pages using the user's real login session
45
+ - White-label brand licensing system: customize the web UI with your own name, logo, colors, and skills via `brand_config.yml`
46
+ - Brand skills tab in the web UI with private badge, shown only when brand skills are configured
47
+ - Slash command prompt rule: skill invocations (e.g. `/skill-name`) are now expanded inside the agent at run time, enabling mid-session skill triggering
48
+
49
+ ### Improved
50
+ - Server-side brand name rendering eliminates the first-paint brand name flash in the web UI
51
+ - Collapsible tool call blocks in the web UI — long tool outputs are now grouped and collapsed by default
52
+ - `safe_shell` now catches `ArgumentError` in addition to `BadQuotedString` for more robust command parsing
53
+ - Eliminated `Dir.chdir` global state in session handling, fixing race conditions in concurrent sessions
54
+
55
+ ### Fixed
56
+ - Skill slash commands are now expanded inside `agent.run` so that `/onboard` and similar commands work correctly when triggered mid-session
57
+ - Observer state machine handles `awaiting` state transitions properly
58
+
59
+ ### More
60
+ - Disabled ClaudeCode `ANTHROPIC_API_KEY` environment variable fallback in `AgentConfig` for cleaner env isolation
61
+ - Updated gemspec, lockfile, and install script
62
+ - Added web asset syntax specs and brand config specs
63
+
10
64
  ## [0.7.9] - 2026-03-07
11
65
 
12
66
  ### Added
data/README.md CHANGED
@@ -6,46 +6,67 @@
6
6
  [![Downloads](https://img.shields.io/gem/dt/openclacky?label=downloads&style=flat-square&color=brightgreen)](https://rubygems.org/gems/openclacky)
7
7
  [![License](https://img.shields.io/badge/license-MIT-lightgrey?style=flat-square)](LICENSE.txt)
8
8
 
9
- OpenClacky = Lovable + Supabase
9
+ **From expertise to business — turn your professional knowledge into a monetizable OpenClaw Skill.**
10
10
 
11
- **OpenClacky** is a CLI tool for building full-stack web applications — no technical background required. We spent months crafting a **Rails for AI** full-stack architecture that is fully production-ready, with one-click deployment, isolated dev/production environments, and automatic backups.
11
+ OpenClacky is the creator-side platform for the OpenClaw ecosystem. Package your methods and workflows into encrypted, white-labeled Skills that your clients install and use under your name, your brand, your price.
12
12
 
13
- OpenClacky's goal is to deliver the best balance of **AI quality, AI cost, and AI speed**.
13
+ ## Why OpenClacky?
14
14
 
15
- ## Quick start
15
+ The OpenClaw ecosystem has 5,700+ Skills and growing. But almost all of them are open-sourced, free, and easily copied. The real scarcity isn't more Skills — it's **expertise-backed, production-grade Skills worth paying for**.
16
16
 
17
- ```bash
18
- $ openclacky
19
- ```
17
+ OpenClacky is built for the people who have that expertise.
20
18
 
21
- - `/config` Set your API key, model, and base URL
22
- - `/new <project-name>` — Create a new project
23
- - Type your requirements and start building
19
+ | | **Openclaw** | **OpenClacky** |
20
+ |---|---|---|
21
+ | **Core model** | Open sharing | Encrypted & protected |
22
+ | **Primary users** | Users who install Skills | Creators who sell Skills |
23
+ | **Revenue** | None | Creator-defined pricing |
24
+ | **Brand** | Platform brand | Your own brand |
25
+ | **Driven by** | Technical contributors | Domain expertise |
24
26
 
25
- ## Why OpenClacky?
27
+ ## How It Works
28
+
29
+ **Four steps from capability to business:**
30
+
31
+ 1. **Craft your Skill** — Turn your domain methodology into a repeatable AI workflow
32
+ 2. **Encrypt & protect** — Your logic stays yours; clients can't inspect or copy it
33
+ 3. **Package your brand** — Ship under your name, your logo, your onboarding experience
34
+ 4. **Launch & acquire** — One-click sales page, built-in SEO, start converting traffic
35
+
36
+ ## Who It's For
26
37
 
27
- | | **Claude Code** | **Lovable + Supabase** | **OpenClacky** |
28
- |---|---|---|---|
29
- | **Target Users** | Professional developers | Non-technical users | Non-technical users |
30
- | **Tech Stack** | Any | React + Supabase | Rails (full-stack) |
31
- | **Full-Stack Integration** | DIY | ⚠️ Frontend/backend split | ✅ Unified full-stack |
32
- | **Production-Ready** | Manual setup | ⚠️ Relies on third-party | ✅ Built-in |
33
- | **One-Click Deploy** | | ⚠️ Platform lock-in | ✅ Deploy anywhere |
34
- | **Dev/Prod Isolation** | ❌ | ❌ | ✅ Automatic |
35
- | **Automatic Backups** | ❌ | ⚠️ Paid feature | ✅ Built-in |
36
- | **AI Cost Control** | ❌ Pay per token | ❌ Subscription | ✅ Optimally balanced |
37
- | **Data Ownership** | ✅ | ❌ Platform-owned | ✅ Fully yours |
38
- | **Interface** | Terminal | Web UI | Terminal |
38
+ OpenClacky is built for domain experts whose knowledge can be expressed as *information processing + executable actions*:
39
+
40
+ - **SEO specialists** keyword research, content scoring, rank monitoring
41
+ - **Lawyers** contract review, case retrieval, risk flagging
42
+ - **Traders** signal detection, strategy backtesting, automated execution
43
+ - **Data analysts** cleaning, modeling, report generation
44
+ - **Content strategists** topic selection, outlines, drafts at scale
39
45
 
40
46
  ## Features
41
47
 
42
- - [x] `/new <project-name>`Scaffold a full-stack Rails web app in seconds
43
- - [x] **Skills system** — Specialized AI workflows for deploy, frontend design, PDF, PPTX, and more
44
- - [x] **Cost monitoring & compression** — Real-time cost tracking, automatic message compression (up to 90% savings)
45
- - [x] **One-click deployment** — Ship to production with a single command (with Clacky CDE)
46
- - [x] **Autonomous AI agent** — Multi-step task execution with undo/redo
48
+ - [x] **Skill builder**Create AI workflows via conversation or UI, iterate and ship fast
49
+ - [x] **Encryption** — Protect your knowledge assets; end users cannot read your Skill source
50
+ - [x] **White-label packaging** — Your brand, your product line, your client experience
51
+ - [x] **Auto-update delivery** — Push updates to all users seamlessly, with version control
52
+ - [x] **Cross-platform distribution** — Windows, macOS, Linux one Skill, every platform
53
+ - [x] **Sales page generator** — Launch your storefront fast, with built-in SEO foundations
54
+ - [x] **Cost monitoring** — Real-time token tracking, automatic compression (up to 90% savings)
47
55
  - [x] **Multi-provider support** — OpenAI, Anthropic, DeepSeek, and any OpenAI-compatible API
48
- - [ ] **Time Machine** — Visual history to rewind and branch any point in your project *(coming soon)*
56
+ - [ ] **Skill marketplace** — Discover and distribute premium Skills *(coming soon)*
57
+
58
+ ## Coding Support
59
+
60
+ OpenClacky also works as a general AI coding assistant — scaffold full-stack Rails apps, add features, or explore an unfamiliar codebase:
61
+
62
+ ```bash
63
+ $ openclacky
64
+ > /new my-app # scaffold a full-stack Rails app
65
+ > Add user auth with email and password
66
+ > How does the payment module work?
67
+ ```
68
+
69
+ Built on a production-ready Rails architecture with one-click deployment, dev/prod isolation, and automatic backups.
49
70
 
50
71
  ## Installation
51
72
 
@@ -63,52 +84,38 @@ $ openclacky
63
84
  gem install openclacky
64
85
  ```
65
86
 
66
- ## Configuration
87
+ ## Quick Start
67
88
 
68
- Before using Clacky, you need to configure your settings:
89
+ ### Terminal (CLI)
69
90
 
70
91
  ```bash
71
- $ openclacky
72
-
73
- - /config
92
+ openclacky # start interactive agent in current directory
74
93
  ```
75
94
 
76
- You'll be prompted to enter:
77
- - **API Key**: Your API key from any OpenAI-compatible provider
78
- - **Model**: Model name
79
- - **Base URL**: OpenAI-compatible API endpoint
80
-
81
- ## Usage
82
-
83
- ### Scenario 1: Create a new web app
95
+ ### Web UI
84
96
 
85
97
  ```bash
86
- $ openclacky
87
- > /new my-blog
88
- # OpenClacky scaffolds a full-stack Rails app in seconds
89
- # > Add a posts page with title, content, and author fields
90
- # > Deploy to production
91
- # > exit
98
+ openclacky server # start the web server (default: http://localhost:7070)
92
99
  ```
93
100
 
94
- ### Scenario 2: Build a feature in an existing project
101
+ Then open **http://localhost:7070** in your browser. You'll get a full-featured chat interface with multi-session support — run separate sessions for coding, copywriting, research, and more, all in parallel.
102
+
103
+ Options:
95
104
 
96
105
  ```bash
97
- $ cd ~/my-project && openclacky
98
- # > Add user authentication with email and password
99
- # > Write tests for the auth flow
100
- # > exit
106
+ openclacky server --port 8080 # custom port
107
+ openclacky server --host 0.0.0.0 # listen on all interfaces (e.g. remote access)
101
108
  ```
102
109
 
103
- ### Scenario 3: Ask questions about your codebase
110
+ ## Configuration
104
111
 
105
112
  ```bash
106
113
  $ openclacky
107
- # > How does the payment module work?
108
- # > Where is the user session managed?
109
- # > exit
114
+ > /config
110
115
  ```
111
116
 
117
+ You'll be prompted to set your **API Key**, **Model**, and **Base URL** (any OpenAI-compatible provider).
118
+
112
119
  ## Install from Source
113
120
 
114
121
  ```bash
@@ -118,18 +125,10 @@ bundle install
118
125
  bin/clacky
119
126
  ```
120
127
 
121
- ## Development
122
-
123
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/clacky` for an interactive prompt that will allow you to experiment.
124
-
125
128
  ## Contributing
126
129
 
127
- Bug reports and pull requests are welcome on GitHub at https://github.com/clacky-ai/open-clacky. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/clacky-ai/open-clacky/blob/main/CODE_OF_CONDUCT.md).
130
+ Bug reports and pull requests are welcome on GitHub at https://github.com/clacky-ai/open-clacky. Contributors are expected to adhere to the [code of conduct](https://github.com/clacky-ai/open-clacky/blob/main/CODE_OF_CONDUCT.md).
128
131
 
129
132
  ## License
130
133
 
131
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
132
-
133
- ## Code of Conduct
134
-
135
- Everyone interacting in the OpenClacky project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/clacky-ai/open-clacky/blob/main/CODE_OF_CONDUCT.md).
134
+ Available as open source under the [MIT License](https://opensource.org/licenses/MIT).