openclacky 1.3.3 → 1.3.5
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 +53 -0
- data/docs/rich_ui_guide.md +277 -0
- data/docs/rich_ui_refactor_plan.md +396 -0
- data/lib/clacky/agent/fake_tool_call_detector.rb +52 -0
- data/lib/clacky/agent/llm_caller.rb +10 -4
- data/lib/clacky/agent/session_serializer.rb +5 -3
- data/lib/clacky/agent/tool_executor.rb +0 -12
- data/lib/clacky/agent.rb +77 -11
- data/lib/clacky/agent_config.rb +2 -14
- data/lib/clacky/api_extension.rb +343 -0
- data/lib/clacky/api_extension_loader.rb +168 -0
- data/lib/clacky/cli.rb +93 -3
- data/lib/clacky/client.rb +47 -25
- data/lib/clacky/default_agents/_panels/git/panel.js +1 -1
- data/lib/clacky/default_agents/_panels/time_machine/panel.js +23 -1
- data/lib/clacky/default_agents/base_prompt.md +1 -0
- data/lib/clacky/default_extensions/meeting/handler.rb +331 -0
- data/lib/clacky/default_extensions/meeting/meeting.js +790 -0
- data/lib/clacky/default_extensions/meeting/meta.yml +3 -0
- data/lib/clacky/default_extensions/meeting/skills/meeting-summarizer/SKILL.md +44 -0
- data/lib/clacky/default_skills/media-gen/SKILL.md +72 -6
- data/lib/clacky/default_skills/media-gen/scripts/video_seq.sh +114 -0
- data/lib/clacky/idle_compression_timer.rb +3 -1
- data/lib/clacky/json_ui_controller.rb +1 -1
- data/lib/clacky/locales/en.rb +26 -0
- data/lib/clacky/locales/i18n.rb +26 -0
- data/lib/clacky/locales/zh.rb +26 -0
- data/lib/clacky/media/base.rb +60 -0
- data/lib/clacky/media/dashscope.rb +385 -21
- data/lib/clacky/media/gemini.rb +9 -0
- data/lib/clacky/media/generator.rb +52 -0
- data/lib/clacky/media/openai_compat.rb +166 -0
- data/lib/clacky/null_ui_controller.rb +13 -0
- data/lib/clacky/plain_ui_controller.rb +1 -1
- data/lib/clacky/providers.rb +50 -2
- data/lib/clacky/rich_ui/components/base_component.rb +50 -0
- data/lib/clacky/rich_ui/components/dialogs/approval_dialog.rb +142 -0
- data/lib/clacky/rich_ui/components/dialogs/config_menu_dialog.rb +106 -0
- data/lib/clacky/rich_ui/components/dialogs/form_dialog.rb +128 -0
- data/lib/clacky/rich_ui/components/sidebar.rb +119 -0
- data/lib/clacky/rich_ui/components/sidebar_panels.rb +134 -0
- data/lib/clacky/rich_ui/components/status_view.rb +58 -0
- data/lib/clacky/rich_ui/components/thinking_live_view.rb +79 -0
- data/lib/clacky/rich_ui/entry_tracker.rb +56 -0
- data/lib/clacky/rich_ui/layout_adapter.rb +16 -0
- data/lib/clacky/rich_ui/progress_handle_adapter.rb +24 -0
- data/lib/clacky/rich_ui/rich_ui_controller.rb +868 -0
- data/lib/clacky/rich_ui/shell/rich_agent_shell.rb +184 -0
- data/lib/clacky/rich_ui/view_renderer.rb +291 -0
- data/lib/clacky/rich_ui.rb +57 -0
- data/lib/clacky/rich_ui_controller.rb +3 -1549
- data/lib/clacky/server/api_extension_dispatcher.rb +120 -0
- data/lib/clacky/server/channel/channel_ui_controller.rb +1 -1
- data/lib/clacky/server/http_server.rb +291 -109
- data/lib/clacky/server/session_registry.rb +5 -3
- data/lib/clacky/server/web_ui_controller.rb +3 -2
- data/lib/clacky/shell_hook_loader.rb +1 -1
- data/lib/clacky/skill_loader.rb +14 -2
- data/lib/clacky/tools/edit.rb +14 -2
- data/lib/clacky/tools/terminal/output_cleaner.rb +1 -3
- data/lib/clacky/tools/terminal.rb +0 -43
- data/lib/clacky/ui2/components/modal_component.rb +1 -1
- data/lib/clacky/ui2/ui_controller.rb +147 -31
- data/lib/clacky/ui_interface.rb +10 -1
- data/lib/clacky/utils/encoding.rb +25 -0
- data/lib/clacky/version.rb +1 -1
- data/lib/clacky/web/app.css +201 -81
- data/lib/clacky/web/app.js +65 -7
- data/lib/clacky/web/components/onboard.js +19 -16
- data/lib/clacky/web/core/aside.js +8 -3
- data/lib/clacky/web/core/ext.js +1 -1
- data/lib/clacky/web/features/brand/view.js +8 -5
- data/lib/clacky/web/features/channels/store.js +1 -20
- data/lib/clacky/web/features/mcp/store.js +1 -20
- data/lib/clacky/web/features/profile/store.js +1 -13
- data/lib/clacky/web/features/profile/view.js +16 -4
- data/lib/clacky/web/features/skills/store.js +36 -23
- data/lib/clacky/web/features/skills/view.js +32 -1
- data/lib/clacky/web/features/version/store.js +2 -0
- data/lib/clacky/web/features/workspace/view.js +1 -1
- data/lib/clacky/web/i18n.js +48 -13
- data/lib/clacky/web/index.html +24 -17
- data/lib/clacky/web/sessions.js +427 -79
- data/lib/clacky/web/settings.js +143 -113
- data/lib/clacky/web/ws-dispatcher.js +18 -6
- data/lib/clacky.rb +27 -5
- metadata +45 -2
- data/lib/clacky/media/output_dir.rb +0 -43
data/lib/clacky/web/index.html
CHANGED
|
@@ -835,19 +835,6 @@
|
|
|
835
835
|
Optional. Image / video / audio / vision models.
|
|
836
836
|
</div>
|
|
837
837
|
<div id="media-rows"></div>
|
|
838
|
-
|
|
839
|
-
<!-- Output directory: scoped under media section -->
|
|
840
|
-
<div class="settings-subsection" id="media-output-dir-section">
|
|
841
|
-
<p class="settings-subsection-desc" data-i18n="settings.media.output_dir.desc">Where generated images, videos and audio are saved (optional)</p>
|
|
842
|
-
<div class="settings-network-url">
|
|
843
|
-
<div class="settings-network-url-row">
|
|
844
|
-
<input type="text" id="settings-media-output-dir" class="field-input" placeholder="" autocomplete="off" spellcheck="false" readonly>
|
|
845
|
-
<button type="button" id="btn-browse-media-output-dir" class="btn-settings-action" data-i18n="settings.media.output_dir.browse">Browse…</button>
|
|
846
|
-
<button type="button" id="btn-clear-media-output-dir" class="btn-settings-action" data-i18n="settings.media.output_dir.clear">Clear</button>
|
|
847
|
-
</div>
|
|
848
|
-
<div id="settings-media-output-dir-status" class="model-test-result"></div>
|
|
849
|
-
</div>
|
|
850
|
-
</div>
|
|
851
838
|
</section>
|
|
852
839
|
</div>
|
|
853
840
|
|
|
@@ -903,6 +890,21 @@
|
|
|
903
890
|
</label>
|
|
904
891
|
</div>
|
|
905
892
|
</section>
|
|
893
|
+
|
|
894
|
+
<!-- Accent Color section -->
|
|
895
|
+
<section class="settings-section" id="accent-color-section">
|
|
896
|
+
<div class="settings-section-title">
|
|
897
|
+
<span data-i18n="settings.accentColor.title">Accent Color</span>
|
|
898
|
+
</div>
|
|
899
|
+
<div class="settings-accent-swatches">
|
|
900
|
+
<button class="settings-accent-swatch swatch-indigo" data-color="#4f46e5" title="Indigo"></button>
|
|
901
|
+
<button class="settings-accent-swatch swatch-aurora-blue" data-color="#3B82F6" title="Aurora Blue"></button>
|
|
902
|
+
<button class="settings-accent-swatch swatch-forest-green" data-color="#10B981" title="Forest Green"></button>
|
|
903
|
+
<button class="settings-accent-swatch swatch-sunrise-orange" data-color="#F59E0B" title="Sunrise Orange"></button>
|
|
904
|
+
<button class="settings-accent-swatch swatch-rose-violet" data-color="#8B5CF6" title="Rose Violet"></button>
|
|
905
|
+
<button class="settings-accent-swatch swatch-coral-red" data-color="#EF4444" title="Coral Red"></button>
|
|
906
|
+
</div>
|
|
907
|
+
</section>
|
|
906
908
|
</div>
|
|
907
909
|
|
|
908
910
|
<!-- ══ Tab: General ══ -->
|
|
@@ -1126,6 +1128,7 @@
|
|
|
1126
1128
|
</div>
|
|
1127
1129
|
<div class="modal-body">
|
|
1128
1130
|
<input type="hidden" id="model-modal-index" value="-1">
|
|
1131
|
+
<input type="hidden" id="model-modal-source-id" value="">
|
|
1129
1132
|
|
|
1130
1133
|
<label class="model-field" id="model-modal-provider-field">
|
|
1131
1134
|
<span class="field-label" data-i18n="settings.models.field.provider">Provider</span>
|
|
@@ -1292,9 +1295,9 @@
|
|
|
1292
1295
|
</div>
|
|
1293
1296
|
|
|
1294
1297
|
<!-- Secondary path: manual key entry, collapsed by default -->
|
|
1295
|
-
<
|
|
1296
|
-
<summary id="setup-manual-summary" data-i18n="onboard.manual.toggle">Configure manually with your own API key</summary>
|
|
1298
|
+
<button id="setup-manual-toggle" class="setup-manual-toggle-btn" data-i18n="onboard.manual.toggle">Configure manually with your own API key</button>
|
|
1297
1299
|
|
|
1300
|
+
<div id="setup-manual-section" style="display:none">
|
|
1298
1301
|
<div class="setup-field">
|
|
1299
1302
|
<label class="setup-label" data-i18n="onboard.key.provider">Provider</label>
|
|
1300
1303
|
<div class="custom-select-wrapper" id="setup-provider-wrapper">
|
|
@@ -1348,7 +1351,7 @@
|
|
|
1348
1351
|
</div>
|
|
1349
1352
|
</div>
|
|
1350
1353
|
|
|
1351
|
-
<div class="setup-docs-hint" style="font-size:0.75rem;margin-top:
|
|
1354
|
+
<div class="setup-docs-hint" style="font-size:0.75rem;margin-top:8px;margin-bottom:10px;text-align:left;">
|
|
1352
1355
|
<span style="color:var(--muted,#6b7280);" data-i18n="onboard.key.docsGuide.question">New to AI keys?</span>
|
|
1353
1356
|
<a id="setup-docs-link" href="https://www.openclacky.com/docs/ai-key-guide" target="_blank" rel="noopener" style="margin-left:0.25rem;color:var(--accent,#6366f1);text-decoration:none;" data-i18n="onboard.key.docsGuide.cta">See the guide →</a>
|
|
1354
1357
|
</div>
|
|
@@ -1359,7 +1362,7 @@
|
|
|
1359
1362
|
<button id="setup-btn-back" class="setup-back-btn" data-i18n="onboard.key.btn.back">← Back</button>
|
|
1360
1363
|
<button id="setup-btn-test" class="setup-submit-btn" data-i18n="onboard.key.btn.test">Test & Continue →</button>
|
|
1361
1364
|
</div>
|
|
1362
|
-
</
|
|
1365
|
+
</div>
|
|
1363
1366
|
</div>
|
|
1364
1367
|
|
|
1365
1368
|
</div>
|
|
@@ -1424,6 +1427,10 @@
|
|
|
1424
1427
|
<div id="modal-overlay" class="modal-overlay" style="display:none">
|
|
1425
1428
|
<div class="modal-box sm">
|
|
1426
1429
|
<div id="modal-message" class="modal-confirm-message"></div>
|
|
1430
|
+
<label id="modal-skip-label" style="display:none;align-items:center;gap:.5rem;font-size:.82rem;margin-bottom:.5rem;cursor:pointer">
|
|
1431
|
+
<input type="checkbox" id="modal-skip-cb">
|
|
1432
|
+
<span id="modal-skip-text"></span>
|
|
1433
|
+
</label>
|
|
1427
1434
|
<div class="modal-actions">
|
|
1428
1435
|
<button id="modal-no" class="btn-secondary" data-i18n="modal.no">No</button>
|
|
1429
1436
|
<button id="modal-yes" class="btn-primary" data-i18n="modal.yes">Yes</button>
|