yatfa 1.0.78 → 1.0.79

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.
@@ -17,12 +17,45 @@ require_relative "../lib/yatfa_agent/agent"
17
17
  require_relative "../lib/yatfa_agent/setup"
18
18
  require_relative "../agents"
19
19
 
20
- def show_version
20
+ def current_version
21
21
  require "json"
22
22
  real_path = File.realpath(__FILE__)
23
23
  package_json_path = File.join(File.dirname(real_path), "..", "package.json")
24
- version = JSON.parse(File.read(package_json_path))["version"]
25
- puts "yatfa v#{version}"
24
+ JSON.parse(File.read(package_json_path))["version"]
25
+ end
26
+
27
+ def latest_npm_version
28
+ require "net/http"
29
+ require "json"
30
+ uri = URI("https://registry.npmjs.org/yatfa/latest")
31
+ response = Net::HTTP.get_response(uri)
32
+ return nil unless response.is_a?(Net::HTTPSuccess)
33
+ JSON.parse(response.body)["version"]
34
+ rescue StandardError
35
+ nil
36
+ end
37
+
38
+ def check_version!
39
+ local = current_version
40
+ remote = latest_npm_version
41
+ return if remote.nil? || local == remote
42
+
43
+ # Try to self-delete the outdated install so next run fetches fresh
44
+ begin
45
+ real_path = File.realpath(__FILE__)
46
+ install_dir = File.expand_path("../..", real_path) # bin/../.. → package root
47
+ FileUtils.rm_rf(install_dir)
48
+ rescue StandardError
49
+ # No permission or other issue — just warn
50
+ end
51
+
52
+ puts "⚠️ Outdated version: v#{local} (latest: v#{remote})"
53
+ puts " Re-run: npx yatfa@latest #{ARGV.join(' ')}"
54
+ exit 1
55
+ end
56
+
57
+ def show_version
58
+ puts "yatfa v#{current_version}"
26
59
  exit 0
27
60
  end
28
61
 
@@ -54,9 +87,12 @@ show_usage if ARGV.empty?
54
87
 
55
88
  command = ARGV[0].downcase
56
89
 
57
- # Handle version command
90
+ # Handle version command (skip version check — user is just asking what version they have)
58
91
  show_version if %w[version -v --version].include?(command)
59
92
 
93
+ # Check for updates before doing anything else
94
+ check_version!
95
+
60
96
  # Handle setup command
61
97
  if command == "setup"
62
98
  wizard = YatfaAgent::Setup::SetupWizard.new
@@ -411,10 +411,10 @@ module YatfaAgent
411
411
  puts "🔧 Using local setup-agent.rb for development"
412
412
  docker_cmd.concat(["-v", "#{File.expand_path(local_setup_script)}:/tmp/setup-agent.rb:ro"])
413
413
 
414
- # Also mount setup-claw-agent.rb if present (loaded by setup-agent.rb when AGENT_TYPE=claw)
415
- local_claw_script = File.join(File.dirname(local_setup_script), "setup-claw-agent.rb")
416
- if File.exist?(local_claw_script)
417
- docker_cmd.concat(["-v", "#{File.expand_path(local_claw_script)}:/tmp/setup-claw-agent.rb:ro"])
414
+ # Mount companion scripts that setup-agent.rb loads via require_relative
415
+ Dir.glob(File.join(File.dirname(local_setup_script), "setup-*.rb")).each do |companion|
416
+ basename = File.basename(companion)
417
+ docker_cmd.concat(["-v", "#{File.expand_path(companion)}:/tmp/#{basename}:ro"])
418
418
  end
419
419
  end
420
420
  end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yatfa",
3
- "version": "1.0.78",
3
+ "version": "1.0.79",
4
4
  "description": "YATFA - Yet Another Tool For Agents",
5
5
  "bin": "./bin/run-yatfa-agent.rb",
6
6
  "files": [