agent-chat 1.0.0 → 1.0.2

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: 44d921a99e0a179d25c6655395dfd410fb961e04f99ab43acff8e18020657b7f
4
+ data.tar.gz: 06aff39572e55e0b66d74416417c1c518ad4ef1ab215b37ee27ebdd688c8a69a
5
5
  SHA512:
6
- metadata.gz: a5d044d24a030feea6980fff875aaee197284d6dfa4433bf0e2626e3ec9d0c1b02f36a9f0e1c44e4bc6ca476ecda1c6664a42a3b765d8be10d879075b5e6089c
7
- data.tar.gz: 35e19eec78a50c5234d52150af95036be718183500819e8a42fd6df8a411a0300419e880424a31062755f2c716656cf1104e3bb7368998fabb476ec10748a470
6
+ metadata.gz: b4796042154656caa2dd61a51192987b557c73d8c3c2c99b3cedce7f3d0c5e3cd327baf30ee66b3e667e016d10f2f053419684f3e8a5edd680a2155b665e64fe
7
+ data.tar.gz: 981ea146b4142bbcff350c1f38a6f5cd9b0c8af91b519086ff0b8d8726a83527efd4f8d551bddee2fb91689f674d47344efd971eeb1e800ed70c7a99c4b40446
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)
@@ -8,6 +8,8 @@ module AgentChat
8
8
  db_path = file_resolver.db_location
9
9
  FileUtils.mkdir_p(File.dirname(db_path))
10
10
  @db = SQLite3::Database.new(db_path)
11
+ @db.busy_timeout = 5000
12
+ @db.execute("PRAGMA journal_mode=WAL")
11
13
  create_tables
12
14
  end
13
15
 
@@ -1,3 +1,3 @@
1
1
  module AgentChat
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.2"
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.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Thyge Madsen
@@ -186,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  requirements: []
189
- rubygems_version: 3.6.7
189
+ rubygems_version: 4.0.3
190
190
  specification_version: 4
191
191
  summary: Chat messaging tool for inter-agent communication
192
192
  test_files: []