openclacky 1.5.11 → 1.5.13
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 +82 -0
- data/lib/clacky/access_key.rb +59 -0
- data/lib/clacky/agent/cost_tracker.rb +2 -0
- data/lib/clacky/agent/message_compressor_helper.rb +53 -2
- data/lib/clacky/agent/session_serializer.rb +72 -19
- data/lib/clacky/agent/time_machine.rb +10 -1
- data/lib/clacky/agent.rb +107 -26
- data/lib/clacky/agent_config.rb +40 -0
- data/lib/clacky/agent_profile.rb +5 -5
- data/lib/clacky/billing/billing_record.rb +3 -0
- data/lib/clacky/billing/billing_store.rb +31 -5
- data/lib/clacky/billing/platform_billing.rb +231 -0
- data/lib/clacky/brand_config.rb +4 -3
- data/lib/clacky/cancel_flag.rb +23 -0
- data/lib/clacky/cli.rb +4 -2
- data/lib/clacky/client.rb +107 -0
- data/lib/clacky/default_extensions/advisor/advisors/general.md +23 -17
- data/lib/clacky/default_extensions/advisor/hooks/advisor.rb +104 -5
- data/lib/clacky/default_extensions/advisor/panels/advisor/view.js +92 -75
- data/lib/clacky/default_extensions/ext-studio/api/handler.rb +31 -0
- data/lib/clacky/default_extensions/ext-studio/panels/studio/view.js +74 -24
- data/lib/clacky/default_extensions/ext-studio/skills/ext-develop/SKILL.md +16 -37
- data/lib/clacky/default_extensions/git/ext.yml +1 -1
- data/lib/clacky/default_extensions/git/panels/git/view.js +483 -67
- data/lib/clacky/default_extensions/meeting/ext.yml +2 -1
- data/lib/clacky/default_extensions/time_machine/ext.yml +1 -1
- data/lib/clacky/default_extensions/time_machine/panels/time_machine/view.js +186 -208
- data/lib/clacky/extension/packager.rb +4 -2
- data/lib/clacky/extension/scaffold/templates/full/panels/dashboard/view.js.erb +2 -3
- data/lib/clacky/extension/verifier.rb +14 -1
- data/lib/clacky/fanout.rb +49 -2
- data/lib/clacky/json_ui_controller.rb +3 -2
- data/lib/clacky/message_format/open_ai.rb +5 -1
- data/lib/clacky/message_format/open_ai_responses.rb +409 -0
- data/lib/clacky/message_history.rb +43 -1
- data/lib/clacky/openai_responses_stream_aggregator.rb +294 -0
- data/lib/clacky/plain_ui_controller.rb +15 -5
- data/lib/clacky/providers.rb +24 -7
- data/lib/clacky/rich_ui/rich_ui_controller.rb +2 -2
- data/lib/clacky/server/channel/channel_manager.rb +93 -18
- data/lib/clacky/server/channel/channel_ui_controller.rb +16 -3
- data/lib/clacky/server/dir_picker.rb +154 -0
- data/lib/clacky/server/git_panel.rb +61 -9
- data/lib/clacky/server/http_server.rb +366 -42
- data/lib/clacky/server/web_ui_controller.rb +7 -5
- data/lib/clacky/session_manager.rb +74 -17
- data/lib/clacky/tools/ask_user.rb +3 -2
- data/lib/clacky/tools/terminal.rb +30 -3
- data/lib/clacky/ui2/markdown_renderer.rb +15 -12
- data/lib/clacky/ui2/strings_cjk_patch.rb +132 -0
- data/lib/clacky/ui2/themes/hacker_theme.rb +1 -1
- data/lib/clacky/ui2/themes/minimal_theme.rb +1 -1
- data/lib/clacky/ui2/ui_controller.rb +2 -2
- data/lib/clacky/ui_interface.rb +2 -2
- data/lib/clacky/utils/model_pricing.rb +92 -4
- data/lib/clacky/version.rb +1 -1
- data/lib/clacky/web/app.css +915 -142
- data/lib/clacky/web/components/code-editor.js +33 -1
- data/lib/clacky/web/components/composer.js +315 -0
- data/lib/clacky/web/components/custom-select.js +136 -0
- data/lib/clacky/web/components/mentions.js +655 -0
- data/lib/clacky/web/components/model-picker.js +527 -0
- data/lib/clacky/web/components/onboard.js +29 -55
- data/lib/clacky/web/core/aside.js +3 -3
- data/lib/clacky/web/core/ext.js +38 -0
- data/lib/clacky/web/features/billing/store.js +2 -6
- data/lib/clacky/web/features/billing/view.js +32 -16
- data/lib/clacky/web/features/extensions/view.js +22 -10
- data/lib/clacky/web/features/new-session/store.js +15 -1
- data/lib/clacky/web/features/new-session/view.js +80 -34
- data/lib/clacky/web/features/trash/view.js +31 -19
- data/lib/clacky/web/features/workspace/store.js +1 -0
- data/lib/clacky/web/features/workspace/view.js +766 -80
- data/lib/clacky/web/i18n.js +107 -17
- data/lib/clacky/web/index.html +125 -45
- data/lib/clacky/web/sessions.js +704 -635
- data/lib/clacky/web/settings.js +164 -190
- data/lib/clacky/web/skills.js +11 -17
- data/lib/clacky/web/ws-dispatcher.js +11 -33
- data/lib/clacky.rb +4 -0
- metadata +12 -1
|
@@ -79,37 +79,14 @@
|
|
|
79
79
|
return map[kind] || "🧬";
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
// a subagent's own tool calls overwrite that pointer, which would nest the
|
|
89
|
-
// second fan-out card inside the first job instead of beside it.
|
|
82
|
+
// Phase cards sit at the top level of the message stream, right after the
|
|
83
|
+
// tool call that spawned them (phase_start arrives just after that tool_call
|
|
84
|
+
// event, so DOM order is naturally "tool call, then its subagent cards").
|
|
85
|
+
// Nesting them inside the tool's row buried a level deep and collided with
|
|
86
|
+
// the single live tool-group pointer, so a fan-out of N subagents is now N
|
|
87
|
+
// sibling foldable cards in the outer stream instead.
|
|
90
88
|
function _phaseHost() {
|
|
91
|
-
|
|
92
|
-
if (!messages) return null;
|
|
93
|
-
|
|
94
|
-
let item = null;
|
|
95
|
-
const running = messages.querySelectorAll(".tool-item-status.running");
|
|
96
|
-
for (let i = running.length - 1; i >= 0; i--) {
|
|
97
|
-
const candidate = running[i].closest(".tool-item");
|
|
98
|
-
if (candidate && !candidate.parentElement.closest(".msg-phase-body")) {
|
|
99
|
-
item = candidate;
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
if (!item) return messages;
|
|
104
|
-
|
|
105
|
-
let nest = item.querySelector(":scope > .tool-item-phases");
|
|
106
|
-
if (!nest) {
|
|
107
|
-
nest = document.createElement("div");
|
|
108
|
-
nest.className = "tool-item-phases";
|
|
109
|
-
const stdout = item.querySelector(":scope > .tool-item-stdout");
|
|
110
|
-
item.insertBefore(nest, stdout || null);
|
|
111
|
-
}
|
|
112
|
-
return nest;
|
|
89
|
+
return RenderTarget.outer();
|
|
113
90
|
}
|
|
114
91
|
|
|
115
92
|
function _beginPhase(ev) {
|
|
@@ -336,15 +313,16 @@ function _dispatchEvent(ev) {
|
|
|
336
313
|
// send it now — after restoreFromHash has settled — so appendMsg won't be wiped.
|
|
337
314
|
const pendingMsg = Sessions.takePendingMessage();
|
|
338
315
|
if (pendingMsg && pendingMsg.session_id === ev.session_id) {
|
|
339
|
-
const html = pendingMsg.
|
|
340
|
-
?
|
|
341
|
-
: SkillAC.renderUserMessageHtml(pendingMsg.
|
|
316
|
+
const html = pendingMsg.display
|
|
317
|
+
? pendingMsg.display
|
|
318
|
+
: SkillAC.renderUserMessageHtml(pendingMsg.content);
|
|
342
319
|
Sessions.appendMsg("user", html, { time: new Date() });
|
|
343
320
|
WS.send({
|
|
344
321
|
type: "message",
|
|
345
322
|
session_id: pendingMsg.session_id,
|
|
346
323
|
content: pendingMsg.content,
|
|
347
324
|
files: pendingMsg.files || undefined,
|
|
325
|
+
references: pendingMsg.references || undefined,
|
|
348
326
|
lang: I18n.lang(),
|
|
349
327
|
});
|
|
350
328
|
}
|
data/lib/clacky.rb
CHANGED
|
@@ -64,9 +64,11 @@ end
|
|
|
64
64
|
require_relative "clacky/version"
|
|
65
65
|
require_relative "clacky/message_format/anthropic"
|
|
66
66
|
require_relative "clacky/message_format/open_ai"
|
|
67
|
+
require_relative "clacky/message_format/open_ai_responses"
|
|
67
68
|
require_relative "clacky/message_format/bedrock"
|
|
68
69
|
require_relative "clacky/bedrock_stream_aggregator"
|
|
69
70
|
require_relative "clacky/openai_stream_aggregator"
|
|
71
|
+
require_relative "clacky/openai_responses_stream_aggregator"
|
|
70
72
|
require_relative "clacky/anthropic_stream_aggregator"
|
|
71
73
|
require_relative "clacky/locales/i18n"
|
|
72
74
|
require_relative "clacky/client"
|
|
@@ -86,6 +88,7 @@ require_relative "clacky/agent/message_compressor"
|
|
|
86
88
|
require_relative "clacky/agent/hook_manager"
|
|
87
89
|
require_relative "clacky/shell_hook_loader"
|
|
88
90
|
require_relative "clacky/agent/tool_registry"
|
|
91
|
+
require_relative "clacky/cancel_flag"
|
|
89
92
|
require_relative "clacky/fanout"
|
|
90
93
|
|
|
91
94
|
# UI modules
|
|
@@ -99,6 +102,7 @@ require_relative "clacky/thread_registry"
|
|
|
99
102
|
require_relative "clacky/proxy_config"
|
|
100
103
|
require_relative "clacky/platform_http_client"
|
|
101
104
|
require_relative "clacky/identity"
|
|
105
|
+
require_relative "clacky/access_key"
|
|
102
106
|
require_relative "clacky/utils/encoding"
|
|
103
107
|
require_relative "clacky/utils/environment_detector"
|
|
104
108
|
require_relative "clacky/utils/browser_detector"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openclacky
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.5.
|
|
4
|
+
version: 1.5.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- windy
|
|
@@ -339,6 +339,7 @@ files:
|
|
|
339
339
|
- homebrew/README.md
|
|
340
340
|
- homebrew/openclacky.rb
|
|
341
341
|
- lib/clacky.rb
|
|
342
|
+
- lib/clacky/access_key.rb
|
|
342
343
|
- lib/clacky/aes_gcm.rb
|
|
343
344
|
- lib/clacky/agent.rb
|
|
344
345
|
- lib/clacky/agent/cost_tracker.rb
|
|
@@ -366,8 +367,10 @@ files:
|
|
|
366
367
|
- lib/clacky/bedrock_stream_aggregator.rb
|
|
367
368
|
- lib/clacky/billing/billing_record.rb
|
|
368
369
|
- lib/clacky/billing/billing_store.rb
|
|
370
|
+
- lib/clacky/billing/platform_billing.rb
|
|
369
371
|
- lib/clacky/block_font.rb
|
|
370
372
|
- lib/clacky/brand_config.rb
|
|
373
|
+
- lib/clacky/cancel_flag.rb
|
|
371
374
|
- lib/clacky/cli.rb
|
|
372
375
|
- lib/clacky/client.rb
|
|
373
376
|
- lib/clacky/default_extensions/advisor/advisors/general.md
|
|
@@ -505,8 +508,10 @@ files:
|
|
|
505
508
|
- lib/clacky/message_format/anthropic.rb
|
|
506
509
|
- lib/clacky/message_format/bedrock.rb
|
|
507
510
|
- lib/clacky/message_format/open_ai.rb
|
|
511
|
+
- lib/clacky/message_format/open_ai_responses.rb
|
|
508
512
|
- lib/clacky/message_history.rb
|
|
509
513
|
- lib/clacky/null_ui_controller.rb
|
|
514
|
+
- lib/clacky/openai_responses_stream_aggregator.rb
|
|
510
515
|
- lib/clacky/openai_stream_aggregator.rb
|
|
511
516
|
- lib/clacky/plain_ui_controller.rb
|
|
512
517
|
- lib/clacky/platform_http_client.rb
|
|
@@ -557,6 +562,7 @@ files:
|
|
|
557
562
|
- lib/clacky/server/channel/channel_ui_controller.rb
|
|
558
563
|
- lib/clacky/server/channel/extension_adapter_loader.rb
|
|
559
564
|
- lib/clacky/server/channel/user_adapter_loader.rb
|
|
565
|
+
- lib/clacky/server/dir_picker.rb
|
|
560
566
|
- lib/clacky/server/discover.rb
|
|
561
567
|
- lib/clacky/server/epipe_safe_io.rb
|
|
562
568
|
- lib/clacky/server/git_panel.rb
|
|
@@ -612,6 +618,7 @@ files:
|
|
|
612
618
|
- lib/clacky/ui2/progress_handle.rb
|
|
613
619
|
- lib/clacky/ui2/progress_indicator.rb
|
|
614
620
|
- lib/clacky/ui2/screen_buffer.rb
|
|
621
|
+
- lib/clacky/ui2/strings_cjk_patch.rb
|
|
615
622
|
- lib/clacky/ui2/terminal_detector.rb
|
|
616
623
|
- lib/clacky/ui2/theme_manager.rb
|
|
617
624
|
- lib/clacky/ui2/themes/base_theme.rb
|
|
@@ -648,7 +655,11 @@ files:
|
|
|
648
655
|
- lib/clacky/web/auth.js
|
|
649
656
|
- lib/clacky/web/components/chat-navigator.js
|
|
650
657
|
- lib/clacky/web/components/code-editor.js
|
|
658
|
+
- lib/clacky/web/components/composer.js
|
|
659
|
+
- lib/clacky/web/components/custom-select.js
|
|
651
660
|
- lib/clacky/web/components/datepicker.js
|
|
661
|
+
- lib/clacky/web/components/mentions.js
|
|
662
|
+
- lib/clacky/web/components/model-picker.js
|
|
652
663
|
- lib/clacky/web/components/notify.js
|
|
653
664
|
- lib/clacky/web/components/onboard.js
|
|
654
665
|
- lib/clacky/web/components/sidebar.js
|