sxn 0.3.0 → 0.4.0
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 +16 -13
- data/Gemfile.lock +6 -1
- data/bin/sxn-mcp +58 -0
- data/docs/MCP_IMPLEMENTATION.md +425 -0
- data/lib/sxn/CLI.rb +7 -0
- data/lib/sxn/commands/mcp.rb +219 -0
- data/lib/sxn/commands/sessions.rb +1 -4
- data/lib/sxn/commands/templates.rb +1 -5
- data/lib/sxn/commands.rb +1 -0
- data/lib/sxn/mcp/prompts/workflow_prompts.rb +107 -0
- data/lib/sxn/mcp/resources/session_resources.rb +145 -0
- data/lib/sxn/mcp/server.rb +127 -0
- data/lib/sxn/mcp/tools/base_tool.rb +96 -0
- data/lib/sxn/mcp/tools/projects.rb +144 -0
- data/lib/sxn/mcp/tools/rules.rb +108 -0
- data/lib/sxn/mcp/tools/sessions.rb +375 -0
- data/lib/sxn/mcp/tools/templates.rb +119 -0
- data/lib/sxn/mcp/tools/worktrees.rb +168 -0
- data/lib/sxn/mcp.rb +20 -0
- data/lib/sxn/version.rb +1 -1
- data/lib/sxn.rb +1 -0
- data/sxn.gemspec +86 -0
- data/test.txt +1 -0
- metadata +31 -1
data/sxn.gemspec
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "lib/sxn/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "sxn"
|
|
7
|
+
spec.version = Sxn::VERSION
|
|
8
|
+
spec.authors = ["Ernest Sim"]
|
|
9
|
+
spec.email = ["ernest.codes@gmail.com"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "Session management for multi-repository development"
|
|
12
|
+
spec.description = "Sxn simplifies git worktree management with intelligent project rules and secure automation"
|
|
13
|
+
spec.homepage = "https://github.com/idl3/sxn"
|
|
14
|
+
spec.license = "MIT"
|
|
15
|
+
spec.required_ruby_version = ">= 3.2.0"
|
|
16
|
+
|
|
17
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
|
18
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
19
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
|
20
|
+
spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/CHANGELOG.md"
|
|
21
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
22
|
+
|
|
23
|
+
# Specify which files should be added to the gem when it is released.
|
|
24
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
25
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
26
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
|
27
|
+
(f == __FILE__) ||
|
|
28
|
+
f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)}) ||
|
|
29
|
+
f.match(/\.db-(?:shm|wal)\z/) || # Exclude SQLite temp files
|
|
30
|
+
f.match(/\.gem\z/) # Exclude gem files
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
spec.bindir = "bin"
|
|
35
|
+
spec.executables = spec.files.grep(%r{\Abin/}) { |f| File.basename(f) }
|
|
36
|
+
spec.require_paths = ["lib"]
|
|
37
|
+
|
|
38
|
+
# Core CLI dependencies
|
|
39
|
+
spec.add_dependency "pastel", "~> 0.8" # Terminal colors
|
|
40
|
+
spec.add_dependency "thor", "~> 1.3" # CLI framework
|
|
41
|
+
spec.add_dependency "tty-progressbar", "~> 0.18" # Progress bars
|
|
42
|
+
spec.add_dependency "tty-prompt", "~> 0.23" # Interactive prompts
|
|
43
|
+
spec.add_dependency "tty-table", "~> 0.12" # Table formatting
|
|
44
|
+
|
|
45
|
+
# Configuration and data management
|
|
46
|
+
spec.add_dependency "dry-configurable", "~> 1.0" # Configuration management
|
|
47
|
+
spec.add_dependency "sqlite3", "~> 1.6" # Session database
|
|
48
|
+
spec.add_dependency "zeitwerk", "~> 2.6" # Code loading
|
|
49
|
+
|
|
50
|
+
# Template engine (secure, sandboxed)
|
|
51
|
+
spec.add_dependency "liquid", "~> 5.4" # Safe template processing
|
|
52
|
+
|
|
53
|
+
# MCP server dependencies
|
|
54
|
+
spec.add_dependency "async", "~> 2.0" # Async operations
|
|
55
|
+
spec.add_dependency "json-schema", "~> 4.0" # Schema validation
|
|
56
|
+
spec.add_dependency "mcp", "~> 0.4" # MCP server SDK
|
|
57
|
+
|
|
58
|
+
# Security and encryption
|
|
59
|
+
spec.add_dependency "bcrypt", "~> 3.1" # Password hashing
|
|
60
|
+
spec.add_dependency "openssl", ">= 3.0" # Encryption support
|
|
61
|
+
spec.add_dependency "ostruct" # OpenStruct for Ruby 3.5+ compatibility
|
|
62
|
+
|
|
63
|
+
# File system operations
|
|
64
|
+
spec.add_dependency "listen", "~> 3.8" # File watching for config cache
|
|
65
|
+
spec.add_dependency "parallel", "~> 1.23" # Parallel execution
|
|
66
|
+
|
|
67
|
+
# Development dependencies
|
|
68
|
+
spec.add_development_dependency "aruba", "~> 2.1" # CLI testing
|
|
69
|
+
spec.add_development_dependency "benchmark" # Benchmark for Ruby 3.5+ compatibility
|
|
70
|
+
spec.add_development_dependency "benchmark-ips", "~> 2.12" # Performance benchmarking
|
|
71
|
+
spec.add_development_dependency "bundler", "~> 2.4"
|
|
72
|
+
spec.add_development_dependency "climate_control", "~> 1.2" # Environment variable testing
|
|
73
|
+
spec.add_development_dependency "faker", "~> 3.2" # Test data generation
|
|
74
|
+
spec.add_development_dependency "memory_profiler", "~> 1.0" # Memory profiling
|
|
75
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
|
76
|
+
spec.add_development_dependency "rspec", "~> 3.12"
|
|
77
|
+
spec.add_development_dependency "rubocop", "~> 1.50" # Code linting
|
|
78
|
+
spec.add_development_dependency "rubocop-performance", "~> 1.16"
|
|
79
|
+
spec.add_development_dependency "rubocop-rspec", "~> 2.19"
|
|
80
|
+
spec.add_development_dependency "simplecov", "~> 0.22" # Code coverage
|
|
81
|
+
spec.add_development_dependency "vcr", "~> 6.2" # HTTP interaction recording
|
|
82
|
+
spec.add_development_dependency "webmock", "~> 3.19" # HTTP mocking for MCP tests
|
|
83
|
+
|
|
84
|
+
# For more information and examples about making a new gem, check out our
|
|
85
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
|
86
|
+
end
|
data/test.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
content
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sxn
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ernest Sim
|
|
@@ -163,6 +163,20 @@ dependencies:
|
|
|
163
163
|
- - "~>"
|
|
164
164
|
- !ruby/object:Gem::Version
|
|
165
165
|
version: '4.0'
|
|
166
|
+
- !ruby/object:Gem::Dependency
|
|
167
|
+
name: mcp
|
|
168
|
+
requirement: !ruby/object:Gem::Requirement
|
|
169
|
+
requirements:
|
|
170
|
+
- - "~>"
|
|
171
|
+
- !ruby/object:Gem::Version
|
|
172
|
+
version: '0.4'
|
|
173
|
+
type: :runtime
|
|
174
|
+
prerelease: false
|
|
175
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
176
|
+
requirements:
|
|
177
|
+
- - "~>"
|
|
178
|
+
- !ruby/object:Gem::Version
|
|
179
|
+
version: '0.4'
|
|
166
180
|
- !ruby/object:Gem::Dependency
|
|
167
181
|
name: bcrypt
|
|
168
182
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -449,6 +463,7 @@ email:
|
|
|
449
463
|
- ernest.codes@gmail.com
|
|
450
464
|
executables:
|
|
451
465
|
- sxn
|
|
466
|
+
- sxn-mcp
|
|
452
467
|
extensions: []
|
|
453
468
|
extra_rdoc_files: []
|
|
454
469
|
files:
|
|
@@ -501,11 +516,14 @@ files:
|
|
|
501
516
|
- Rakefile
|
|
502
517
|
- Steepfile
|
|
503
518
|
- bin/sxn
|
|
519
|
+
- bin/sxn-mcp
|
|
520
|
+
- docs/MCP_IMPLEMENTATION.md
|
|
504
521
|
- docs/parallel_testing.md
|
|
505
522
|
- lib/sxn.rb
|
|
506
523
|
- lib/sxn/CLI.rb
|
|
507
524
|
- lib/sxn/commands.rb
|
|
508
525
|
- lib/sxn/commands/init.rb
|
|
526
|
+
- lib/sxn/commands/mcp.rb
|
|
509
527
|
- lib/sxn/commands/projects.rb
|
|
510
528
|
- lib/sxn/commands/rules.rb
|
|
511
529
|
- lib/sxn/commands/sessions.rb
|
|
@@ -528,6 +546,16 @@ files:
|
|
|
528
546
|
- lib/sxn/database/errors.rb
|
|
529
547
|
- lib/sxn/database/session_database.rb
|
|
530
548
|
- lib/sxn/errors.rb
|
|
549
|
+
- lib/sxn/mcp.rb
|
|
550
|
+
- lib/sxn/mcp/prompts/workflow_prompts.rb
|
|
551
|
+
- lib/sxn/mcp/resources/session_resources.rb
|
|
552
|
+
- lib/sxn/mcp/server.rb
|
|
553
|
+
- lib/sxn/mcp/tools/base_tool.rb
|
|
554
|
+
- lib/sxn/mcp/tools/projects.rb
|
|
555
|
+
- lib/sxn/mcp/tools/rules.rb
|
|
556
|
+
- lib/sxn/mcp/tools/sessions.rb
|
|
557
|
+
- lib/sxn/mcp/tools/templates.rb
|
|
558
|
+
- lib/sxn/mcp/tools/worktrees.rb
|
|
531
559
|
- lib/sxn/rules.rb
|
|
532
560
|
- lib/sxn/rules/base_rule.rb
|
|
533
561
|
- lib/sxn/rules/copy_files_rule.rb
|
|
@@ -614,6 +642,8 @@ files:
|
|
|
614
642
|
- sig/sxn/ui/prompt.rbs
|
|
615
643
|
- sig/sxn/ui/table.rbs
|
|
616
644
|
- sig/sxn/version.rbs
|
|
645
|
+
- sxn.gemspec
|
|
646
|
+
- test.txt
|
|
617
647
|
homepage: https://github.com/idl3/sxn
|
|
618
648
|
licenses:
|
|
619
649
|
- MIT
|