agent-chat 1.0.0 → 1.0.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.
- checksums.yaml +4 -4
- data/exe/agent-chat-web +22 -1
- data/lib/agent_chat/argument_parser.rb +1 -0
- data/lib/agent_chat/cli_adapter.rb +4 -2
- data/lib/agent_chat/version.rb +1 -1
- data/public/js/message_feed.js +3 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 29b4aac32be173ebf9cd2fafce82dd87bb3afae5ad20df0a3b6211dff8d62ccf
|
|
4
|
+
data.tar.gz: 82ad6454ecd3757c94f9e18046d4132d120fa49833453c4bf4e6915c9da43486
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 11d16505bf5ee2536795b6e37335edb2140f8681626fa951028b364625613c42fc5c4e70909b57ee1f634fc3a8192021ce9be224ba02fb412f6e2617bd8a766d
|
|
7
|
+
data.tar.gz: 9606c60446435ec51b311bb8bb12ef9ca14cf9b3c76bceec072099fe9732193067bf33b9d01fcf4243c17d1fc74c9369bc054cc1ed8a2bda8ff1c6c11057f411
|
data/exe/agent-chat-web
CHANGED
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
require 'agent_chat'
|
|
3
3
|
require 'tmpdir'
|
|
4
4
|
|
|
5
|
+
if ARGV.include?('--version') || ARGV.include?('-v')
|
|
6
|
+
puts "agent-chat-web #{AgentChat::VERSION}"
|
|
7
|
+
exit
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
if ARGV.include?('--help') || ARGV.include?('-h')
|
|
11
|
+
puts <<~HELP
|
|
12
|
+
agent-chat-web - Web UI for agent-chat
|
|
13
|
+
|
|
14
|
+
Usage:
|
|
15
|
+
agent-chat-web [options]
|
|
16
|
+
|
|
17
|
+
Options:
|
|
18
|
+
-v, --version Show version
|
|
19
|
+
-h, --help Show this help message
|
|
20
|
+
|
|
21
|
+
Starts a Sinatra web server on http://localhost:4567 and opens a browser.
|
|
22
|
+
HELP
|
|
23
|
+
exit
|
|
24
|
+
end
|
|
25
|
+
|
|
5
26
|
tmpdir = Dir.tmpdir
|
|
6
27
|
AgentChat::Web::App.set :room_discovery, AgentChat::Web::RoomDiscoveryService.new(tmpdir: tmpdir)
|
|
7
28
|
AgentChat::Web::App.set :service_factory, AgentChat::Web::ServiceFactory.new(tmpdir: tmpdir)
|
|
@@ -13,7 +34,7 @@ Thread.new do
|
|
|
13
34
|
when /darwin/
|
|
14
35
|
system('open', url)
|
|
15
36
|
when /linux/
|
|
16
|
-
system('xdg-open', url)
|
|
37
|
+
system('xdg-open', url) if system('which', 'xdg-open', out: File::NULL, err: File::NULL)
|
|
17
38
|
when /mswin|mingw/
|
|
18
39
|
system('start', url)
|
|
19
40
|
end
|
|
@@ -4,6 +4,7 @@ module AgentChat
|
|
|
4
4
|
|
|
5
5
|
def self.parse(args)
|
|
6
6
|
return { action: :help } if args.empty? || args.include?('--help') || args.include?('-h')
|
|
7
|
+
return { action: :version } if args.include?('--version') || args.include?('-v')
|
|
7
8
|
|
|
8
9
|
flags = FLAGS.map { |flag| [flag, extract_flag(args, "--#{flag}")] }.to_h.compact
|
|
9
10
|
{ action: args[0].to_sym }.merge(flags)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require_relative 'argument_parser'
|
|
2
|
+
require_relative 'version'
|
|
2
3
|
require_relative 'service/main'
|
|
3
4
|
require_relative 'message_formatter'
|
|
4
5
|
|
|
@@ -22,14 +23,14 @@ module AgentChat
|
|
|
22
23
|
-h, --help Show this help message
|
|
23
24
|
|
|
24
25
|
Examples:
|
|
25
|
-
echo
|
|
26
|
+
echo 'Hello!' | agent-chat send --room general --author Alice
|
|
26
27
|
agent-chat receive --room general --consumer Bob
|
|
27
28
|
agent-chat stream --room general --consumer Bob
|
|
28
29
|
HELP
|
|
29
30
|
|
|
30
31
|
def self.setup(stdin, stdout, args, service: nil, formatter: AgentChat::MessageFormatter)
|
|
31
32
|
parsed = AgentChat::ArgumentParser.parse(args)
|
|
32
|
-
return new(stdin:, stdout:, service: nil, formatter: nil) if parsed[:action]
|
|
33
|
+
return new(stdin:, stdout:, service: nil, formatter: nil) if [:help, :version].include?(parsed[:action])
|
|
33
34
|
|
|
34
35
|
service ||= AgentChat::Service::Main.standard(room: parsed[:room])
|
|
35
36
|
new(stdin:, stdout:, service:, formatter:)
|
|
@@ -54,6 +55,7 @@ module AgentChat
|
|
|
54
55
|
def dispatch(parsed)
|
|
55
56
|
case parsed[:action]
|
|
56
57
|
when :help then @stdout.puts HELP_TEXT
|
|
58
|
+
when :version then @stdout.puts "agent-chat #{AgentChat::VERSION}"
|
|
57
59
|
when :send then send_message(parsed)
|
|
58
60
|
when :receive then receive_messages(parsed)
|
|
59
61
|
when :stream then stream_messages(parsed)
|
data/lib/agent_chat/version.rb
CHANGED
data/public/js/message_feed.js
CHANGED
|
@@ -11,7 +11,9 @@ export class MessageFeed {
|
|
|
11
11
|
|
|
12
12
|
appendMessages(messages) {
|
|
13
13
|
this.messages = this.messages.filter(m => !m.optimistic);
|
|
14
|
-
|
|
14
|
+
const existing = new Set(this.messages.map(m => m.timestamp));
|
|
15
|
+
const novel = messages.filter(m => !m.timestamp || !existing.has(m.timestamp));
|
|
16
|
+
this.messages = [...this.messages, ...novel];
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
get count() {
|