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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ba9e32fb5bf6e586853fb5d14142a62c0c2a0175789b6631c89a9360ab64930
4
- data.tar.gz: b835b66f3971f0bb0b1d3e8c2b48a98e9ba01643e6830ec51be2b323c76de765
3
+ metadata.gz: 29b4aac32be173ebf9cd2fafce82dd87bb3afae5ad20df0a3b6211dff8d62ccf
4
+ data.tar.gz: 82ad6454ecd3757c94f9e18046d4132d120fa49833453c4bf4e6915c9da43486
5
5
  SHA512:
6
- metadata.gz: a5d044d24a030feea6980fff875aaee197284d6dfa4433bf0e2626e3ec9d0c1b02f36a9f0e1c44e4bc6ca476ecda1c6664a42a3b765d8be10d879075b5e6089c
7
- data.tar.gz: 35e19eec78a50c5234d52150af95036be718183500819e8a42fd6df8a411a0300419e880424a31062755f2c716656cf1104e3bb7368998fabb476ec10748a470
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 "Hello!" | agent-chat send --room general --author Alice
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] == :help
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)
@@ -1,3 +1,3 @@
1
1
  module AgentChat
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -11,7 +11,9 @@ export class MessageFeed {
11
11
 
12
12
  appendMessages(messages) {
13
13
  this.messages = this.messages.filter(m => !m.optimistic);
14
- this.messages = [...this.messages, ...messages];
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() {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agent-chat
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Thyge Madsen