phlex-reactive 0.9.3 → 0.9.4
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 +197 -0
- data/README.md +282 -2
- data/app/controllers/phlex/reactive/actions_controller.rb +120 -10
- data/app/javascript/phlex/reactive/inspect.js +225 -0
- data/app/javascript/phlex/reactive/inspect.min.js +4 -0
- data/app/javascript/phlex/reactive/inspect.min.js.map +10 -0
- data/app/javascript/phlex/reactive/reactive_controller.js +534 -6
- data/app/javascript/phlex/reactive/reactive_controller.min.js +2 -2
- data/app/javascript/phlex/reactive/reactive_controller.min.js.map +3 -3
- data/lib/generators/phlex/reactive/claude/USAGE +15 -0
- data/lib/generators/phlex/reactive/claude/claude_generator.rb +86 -0
- data/lib/generators/phlex/reactive/install/install_generator.rb +3 -0
- data/lib/generators/phlex/reactive/install/templates/phlex_reactive.rb.erb +56 -0
- data/lib/phlex/reactive/authorization.rb +118 -0
- data/lib/phlex/reactive/claude/skills/phlex-reactive-debugging/SKILL.md +105 -0
- data/lib/phlex/reactive/component/dsl.rb +70 -0
- data/lib/phlex/reactive/component/helpers.rb +193 -8
- data/lib/phlex/reactive/component/identity.rb +10 -1
- data/lib/phlex/reactive/component/lazy.rb +79 -0
- data/lib/phlex/reactive/component/registry.rb +7 -1
- data/lib/phlex/reactive/component.rb +1 -0
- data/lib/phlex/reactive/defer.rb +363 -0
- data/lib/phlex/reactive/deferred_render_job.rb +116 -0
- data/lib/phlex/reactive/doctor.rb +79 -11
- data/lib/phlex/reactive/engine.rb +16 -2
- data/lib/phlex/reactive/inspector/report.rb +140 -0
- data/lib/phlex/reactive/inspector.rb +253 -0
- data/lib/phlex/reactive/log_subscriber.rb +10 -0
- data/lib/phlex/reactive/mcp/base_tool.rb +57 -0
- data/lib/phlex/reactive/mcp/runner.rb +24 -0
- data/lib/phlex/reactive/mcp/server.rb +47 -0
- data/lib/phlex/reactive/mcp/tools/actions_tool.rb +43 -0
- data/lib/phlex/reactive/mcp/tools/components_tool.rb +39 -0
- data/lib/phlex/reactive/mcp/tools/config_tool.rb +74 -0
- data/lib/phlex/reactive/mcp/tools/doctor_tool.rb +36 -0
- data/lib/phlex/reactive/mcp/tools/find_tool.rb +66 -0
- data/lib/phlex/reactive/mcp.rb +58 -0
- data/lib/phlex/reactive/reply.rb +18 -0
- data/lib/phlex/reactive/response.rb +47 -2
- data/lib/phlex/reactive/streamable.rb +5 -1
- data/lib/phlex/reactive/version.rb +1 -1
- data/lib/phlex/reactive.rb +253 -3
- data/lib/tasks/phlex_reactive.rake +28 -0
- metadata +22 -1
|
@@ -11,4 +11,32 @@ namespace :phlex_reactive do
|
|
|
11
11
|
# gate on `bin/rails phlex_reactive:doctor`.
|
|
12
12
|
abort unless Phlex::Reactive::Doctor.run
|
|
13
13
|
end
|
|
14
|
+
|
|
15
|
+
desc "List every declared reactive action (component | action | params | file:line | auth); FORMAT=json for tooling"
|
|
16
|
+
task actions: :environment do
|
|
17
|
+
# eager_load! so every app component is in the Streamable registry the
|
|
18
|
+
# Inspector reads. Plain text by default (no ANSI, like the doctor);
|
|
19
|
+
# FORMAT=json emits a parseable array for tooling. Names/paths/schemas only.
|
|
20
|
+
Rails.application.eager_load!
|
|
21
|
+
format = ENV["FORMAT"].to_s.downcase == "json" ? :json : :text
|
|
22
|
+
puts Phlex::Reactive::Inspector::Report.actions(Phlex::Reactive::Inspector.components, format:)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
desc "Fuzzy-find a reactive component and print its actions with method-definition source — phlex_reactive:find[query]"
|
|
26
|
+
task :find, [:query] => :environment do |_task, args|
|
|
27
|
+
Rails.application.eager_load!
|
|
28
|
+
query = args[:query].to_s
|
|
29
|
+
puts Phlex::Reactive::Inspector::Report.find(Phlex::Reactive::Inspector.find(query), query)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
desc "Run the read-only diagnostic MCP server over stdio (needs the optional `mcp` gem) — issue #168"
|
|
33
|
+
task mcp: :environment do
|
|
34
|
+
# Lazy-load the optional mcp gem + the tool tree (a helpful error if the gem
|
|
35
|
+
# is missing), then drive the stdio transport. eager_load! so the tools see
|
|
36
|
+
# every component. NOTHING may write to stdout but the JSON-RPC frames — the
|
|
37
|
+
# runner documents this; keep initializers quiet on $stdout.
|
|
38
|
+
Phlex::Reactive::MCP.load!
|
|
39
|
+
Rails.application.eager_load!
|
|
40
|
+
Phlex::Reactive::MCP::Runner.run
|
|
41
|
+
end
|
|
14
42
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: phlex-reactive
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.9.
|
|
4
|
+
version: 0.9.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mikael Henriksson
|
|
@@ -123,9 +123,14 @@ files:
|
|
|
123
123
|
- app/javascript/phlex/reactive/confirm.js
|
|
124
124
|
- app/javascript/phlex/reactive/confirm.min.js
|
|
125
125
|
- app/javascript/phlex/reactive/confirm.min.js.map
|
|
126
|
+
- app/javascript/phlex/reactive/inspect.js
|
|
127
|
+
- app/javascript/phlex/reactive/inspect.min.js
|
|
128
|
+
- app/javascript/phlex/reactive/inspect.min.js.map
|
|
126
129
|
- app/javascript/phlex/reactive/reactive_controller.js
|
|
127
130
|
- app/javascript/phlex/reactive/reactive_controller.min.js
|
|
128
131
|
- app/javascript/phlex/reactive/reactive_controller.min.js.map
|
|
132
|
+
- lib/generators/phlex/reactive/claude/USAGE
|
|
133
|
+
- lib/generators/phlex/reactive/claude/claude_generator.rb
|
|
129
134
|
- lib/generators/phlex/reactive/component/USAGE
|
|
130
135
|
- lib/generators/phlex/reactive/component/component_generator.rb
|
|
131
136
|
- lib/generators/phlex/reactive/component/templates/component.rb.erb
|
|
@@ -135,15 +140,31 @@ files:
|
|
|
135
140
|
- lib/generators/phlex/reactive/install/templates/phlex_reactive.rb.erb
|
|
136
141
|
- lib/phlex-reactive.rb
|
|
137
142
|
- lib/phlex/reactive.rb
|
|
143
|
+
- lib/phlex/reactive/authorization.rb
|
|
144
|
+
- lib/phlex/reactive/claude/skills/phlex-reactive-debugging/SKILL.md
|
|
138
145
|
- lib/phlex/reactive/component.rb
|
|
139
146
|
- lib/phlex/reactive/component/dsl.rb
|
|
140
147
|
- lib/phlex/reactive/component/helpers.rb
|
|
141
148
|
- lib/phlex/reactive/component/identity.rb
|
|
149
|
+
- lib/phlex/reactive/component/lazy.rb
|
|
142
150
|
- lib/phlex/reactive/component/registry.rb
|
|
151
|
+
- lib/phlex/reactive/defer.rb
|
|
152
|
+
- lib/phlex/reactive/deferred_render_job.rb
|
|
143
153
|
- lib/phlex/reactive/doctor.rb
|
|
144
154
|
- lib/phlex/reactive/engine.rb
|
|
155
|
+
- lib/phlex/reactive/inspector.rb
|
|
156
|
+
- lib/phlex/reactive/inspector/report.rb
|
|
145
157
|
- lib/phlex/reactive/js.rb
|
|
146
158
|
- lib/phlex/reactive/log_subscriber.rb
|
|
159
|
+
- lib/phlex/reactive/mcp.rb
|
|
160
|
+
- lib/phlex/reactive/mcp/base_tool.rb
|
|
161
|
+
- lib/phlex/reactive/mcp/runner.rb
|
|
162
|
+
- lib/phlex/reactive/mcp/server.rb
|
|
163
|
+
- lib/phlex/reactive/mcp/tools/actions_tool.rb
|
|
164
|
+
- lib/phlex/reactive/mcp/tools/components_tool.rb
|
|
165
|
+
- lib/phlex/reactive/mcp/tools/config_tool.rb
|
|
166
|
+
- lib/phlex/reactive/mcp/tools/doctor_tool.rb
|
|
167
|
+
- lib/phlex/reactive/mcp/tools/find_tool.rb
|
|
147
168
|
- lib/phlex/reactive/param_schema.rb
|
|
148
169
|
- lib/phlex/reactive/reply.rb
|
|
149
170
|
- lib/phlex/reactive/response.rb
|