rails-agent-stack 0.1.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.
Files changed (91) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/README.md +16 -0
  3. data/.github/workflows/ci.yml +32 -0
  4. data/.gitignore +8 -0
  5. data/.rspec +3 -0
  6. data/AGENTS.md +18 -0
  7. data/CHANGELOG.md +40 -0
  8. data/Gemfile +15 -0
  9. data/MIT-LICENSE +21 -0
  10. data/README.md +228 -0
  11. data/Rakefile +8 -0
  12. data/app/assets/images/rails_agents/kip-logo.png +0 -0
  13. data/app/assets/images/rails_agents/kip-waving.png +0 -0
  14. data/app/assets/stylesheets/rails_agents/application.css +411 -0
  15. data/app/controllers/rails_agents/application_controller.rb +25 -0
  16. data/app/controllers/rails_agents/connect_controller.rb +36 -0
  17. data/app/controllers/rails_agents/dashboard_controller.rb +70 -0
  18. data/app/controllers/rails_agents/handshake_controller.rb +55 -0
  19. data/app/controllers/rails_agents/open_wire_inbound_controller.rb +153 -0
  20. data/app/controllers/rails_agents/pulls_controller.rb +42 -0
  21. data/app/controllers/rails_agents/registrations_controller.rb +96 -0
  22. data/app/controllers/rails_agents/schema_controller.rb +123 -0
  23. data/app/controllers/rails_agents/sessions_controller.rb +76 -0
  24. data/app/controllers/rails_agents/tool_bridge_controller.rb +67 -0
  25. data/app/views/layouts/rails_agents/application.html.erb +18 -0
  26. data/app/views/rails_agents/dashboard/show.html.erb +139 -0
  27. data/app/views/rails_agents/registrations/new.html.erb +83 -0
  28. data/app/views/rails_agents/sessions/new.html.erb +73 -0
  29. data/app/views/rails_agents/shared/_auth_brand.html.erb +20 -0
  30. data/config/routes.rb +34 -0
  31. data/docs/AGENTS.md +220 -0
  32. data/docs/PRD.md +89 -0
  33. data/docs/assets/hero-banner.png +0 -0
  34. data/examples/support/agent.rb +14 -0
  35. data/examples/support/channels/.keep +0 -0
  36. data/examples/support/evals/smoke.yml +4 -0
  37. data/examples/support/knowledge/shipping.md +1 -0
  38. data/examples/support/memory.rb +3 -0
  39. data/examples/support/prompt.md +9 -0
  40. data/examples/support/skills/.keep +0 -0
  41. data/examples/support/tools/.keep +0 -0
  42. data/exe/rails-agents +6 -0
  43. data/lib/generators/rails_agents/agent/agent_generator.rb +80 -0
  44. data/lib/generators/rails_agents/agent/templates/agent.rb.tt +14 -0
  45. data/lib/generators/rails_agents/agent/templates/agent_database.rb.tt +42 -0
  46. data/lib/generators/rails_agents/agent/templates/channels/slack.rb.tt +8 -0
  47. data/lib/generators/rails_agents/agent/templates/evals/smoke.yml.tt +4 -0
  48. data/lib/generators/rails_agents/agent/templates/imports.yml.tt +9 -0
  49. data/lib/generators/rails_agents/agent/templates/memory.rb.tt +6 -0
  50. data/lib/generators/rails_agents/agent/templates/prompt.md.tt +10 -0
  51. data/lib/generators/rails_agents/agent/templates/prompt_database.md.tt +14 -0
  52. data/lib/generators/rails_agents/install/INSTALL +10 -0
  53. data/lib/generators/rails_agents/install/install_generator.rb +72 -0
  54. data/lib/generators/rails_agents/install/templates/AGENTS.md.tt +46 -0
  55. data/lib/generators/rails_agents/install/templates/initializer.rb.tt +8 -0
  56. data/lib/generators/rails_agents/install/templates/library_README.md.tt +28 -0
  57. data/lib/generators/rails_agents/install/templates/library_manifest.yml.tt +5 -0
  58. data/lib/generators/rails_agents/install/templates/rails_agents_autoload.rb.tt +10 -0
  59. data/lib/rails-agent-stack.rb +4 -0
  60. data/lib/rails_agents/background_agent.rb +15 -0
  61. data/lib/rails_agents/base.rb +294 -0
  62. data/lib/rails_agents/chat_agent.rb +15 -0
  63. data/lib/rails_agents/cli.rb +245 -0
  64. data/lib/rails_agents/client.rb +216 -0
  65. data/lib/rails_agents/configuration.rb +41 -0
  66. data/lib/rails_agents/creation_agent.rb +10 -0
  67. data/lib/rails_agents/credentials_writer.rb +38 -0
  68. data/lib/rails_agents/engine.rb +19 -0
  69. data/lib/rails_agents/knowledge_agent.rb +10 -0
  70. data/lib/rails_agents/library_imports.rb +163 -0
  71. data/lib/rails_agents/local_auth.rb +56 -0
  72. data/lib/rails_agents/local_sync.rb +113 -0
  73. data/lib/rails_agents/monitoring_agent.rb +10 -0
  74. data/lib/rails_agents/open_wire_adapter.rb +31 -0
  75. data/lib/rails_agents/operations_agent.rb +10 -0
  76. data/lib/rails_agents/railtie.rb +14 -0
  77. data/lib/rails_agents/tasks.rake +8 -0
  78. data/lib/rails_agents/version.rb +5 -0
  79. data/lib/rails_agents/workflow_agent.rb +11 -0
  80. data/lib/rails_agents.rb +57 -0
  81. data/rails-agent-stack.gemspec +49 -0
  82. data/rails-agents.code-workspace +25 -0
  83. data/spec/generators/agent_generator_spec.rb +36 -0
  84. data/spec/rails_agents/base_spec.rb +202 -0
  85. data/spec/rails_agents/client_spec.rb +121 -0
  86. data/spec/rails_agents/configuration_spec.rb +55 -0
  87. data/spec/rails_agents/library_imports_spec.rb +80 -0
  88. data/spec/rails_agents/local_sync_spec.rb +63 -0
  89. data/spec/rails_agents/taxonomy_spec.rb +52 -0
  90. data/spec/spec_helper.rb +27 -0
  91. metadata +229 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 83dde44cc5a68ee22c237736bd5992f64baf5b474e1ef7e3615244277988060f
4
+ data.tar.gz: 407a7cc7dc2fdde847babc4e948f38f7028d8121bb3142a9804058c366fcb58d
5
+ SHA512:
6
+ metadata.gz: 520d19cb9bee5584270474f80b77518b99f81f4cec77c8d03603716dae2ef988007cf5b5474fb0150369aba473f6a00cfd1301259238fb8e267412bad36ff8e4
7
+ data.tar.gz: ccfacfe644d0facb1b2730b90c5877cecdde11c06b5d471a6ae5aa7d24cf48464a0aacae36e5ea5d362df8b1051e95702048d0a8bf42e2ed83c253968d833d71
@@ -0,0 +1,16 @@
1
+ # GitHub Actions
2
+
3
+ | Workflow | Trigger | Purpose |
4
+ |----------|---------|---------|
5
+ | `ci.yml` | push/PR to `main` | RSpec + gem build |
6
+
7
+ This repo is the **Ruby gem** (`rails-agent-stack`). It has **no Hetzner deploy** — customers install from GitHub:
8
+
9
+ ```ruby
10
+ gem "rails-agent-stack", github: "Tiny-Bubble-Company/rails-agents"
11
+ ```
12
+
13
+ Production sites deploy from sibling repos:
14
+
15
+ - [`rails-agents-cloud`](https://github.com/Tiny-Bubble-Company/rails-agents-cloud) → rails-agent.com
16
+ - [`rails-agents-ops`](https://github.com/Tiny-Bubble-Company/rails-agents-ops) → ops.rails-agent.com
@@ -0,0 +1,32 @@
1
+ name: CI
2
+
3
+ # Gem repo — no Hetzner deploy. Cloud/ops deploy from their own Actions on push to main.
4
+ on:
5
+ push:
6
+ branches: [main]
7
+ pull_request:
8
+ workflow_dispatch:
9
+
10
+ concurrency:
11
+ group: ci-rails-agents-${{ github.ref }}
12
+ cancel-in-progress: true
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ jobs:
18
+ build:
19
+ name: Build gem
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - name: Checkout
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Ruby
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: "3.3"
29
+ bundler-cache: true
30
+
31
+ - name: Build gem
32
+ run: gem build rails-agent-stack.gemspec
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ /.bundle/
2
+ /Gemfile.lock
3
+ /pkg/
4
+ /tmp/
5
+ /coverage/
6
+ /.rspec_status
7
+ *.gem
8
+ .DS_Store
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --require spec_helper
2
+ --format documentation
3
+ --color
data/AGENTS.md ADDED
@@ -0,0 +1,18 @@
1
+ # AGENTS.md
2
+
3
+ **Start here** when using Cursor, Claude Code, or another external coding agent with Rails Agent.
4
+
5
+ Full onboarding guide: **[docs/AGENTS.md](docs/AGENTS.md)**
6
+
7
+ Quick start:
8
+
9
+ 1. `bin/rails generate rails_agents:install` → open `/agents` and connect workspace
10
+ 2. `bin/rails generate rails_agents:agent my_agent --type knowledge --database`
11
+ 3. Attach BYOK credentials in cloud dashboard; reference as `credential: :company_openai` in `agent.rb`
12
+ 4. `bundle exec rails-agents sync my_agent` → test/deploy/monitor in `/agents`
13
+
14
+ Four taxonomy types: **Knowledge**, **Workflow**, **Operations**, **Monitoring**.
15
+
16
+ Capabilities: **Tools**, **Skills**, **Packages** (Skills.sh / APM / Smithery), **Connectors**, **Knowledge**, plus workspace **Library** reuse.
17
+
18
+ Run responses: prefer `result.output_text` (Markdown) and optional `result.output_data` — see [docs/AGENTS.md](docs/AGENTS.md#run-response-schema-integrate-into-product) and https://rails-agent.com/docs/run-response.
data/CHANGELOG.md ADDED
@@ -0,0 +1,40 @@
1
+ # Changelog
2
+
3
+ All notable changes to `rails-agent-stack` will be documented in this file.
4
+
5
+ ## [0.2.0] - Unreleased
6
+
7
+ ### Changed
8
+
9
+ - Documentation-first onboarding (AGENTS.md); removed Kip / chat-authoring positioning.
10
+ - Four product-facing agent taxonomy types: Knowledge, Workflow, Operations, Monitoring.
11
+ - BYOK model DSL: `model :name, provider:, credential:` with cloud credential references.
12
+ - Generator `--type` and `--database` for database-connected Knowledge agents.
13
+ - Company subscription + pass-through usage + 1% service fee pricing model.
14
+ - Deprecated cloud pull bridge in embed UI; `rails-agents pull` retained for compatibility.
15
+
16
+ ### Added
17
+
18
+ - `KnowledgeAgent`, `OperationsAgent`, and `MonitoringAgent` classes; the legacy output-focused class remains loadable for compatibility.
19
+ - `docs/AGENTS.md` canonical guide for external coding agents.
20
+
21
+ ## [0.1.1] - 2026-08-02
22
+
23
+ ### Changed
24
+
25
+ - Depend on published `open-wire` (`~> 0.1`) from RubyGems instead of a local path.
26
+ - Re-release after yanked `0.1.0` on RubyGems.
27
+
28
+ ## [0.1.0] - 2026-07-18
29
+
30
+ ### Added
31
+
32
+ - Initial release of the `rails-agent-stack` gem.
33
+ - Mountable Rails Engine at `/agents` with cloud dashboard proxy UI.
34
+ - `RailsAgents::Base` DSL — model, memory, knowledge, tools, skills, channels.
35
+ - Cloud HTTP client (`Net::HTTP`) for runs, deploys, channels, knowledge sync, logs, traces, evals.
36
+ - Thor CLI (`rails-agents`) — install, new, run, deploy, logs, traces, evals.
37
+ - Generators — `rails_agents:install`, `rails_agents:agent`.
38
+ - Configuration block with ENV defaults.
39
+ - Example support agent under `examples/support/`.
40
+ - RSpec coverage for Base, Client, and Configuration.
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gemspec
6
+
7
+ # open-wire comes from RubyGems via the gemspec (`~> 0.1`).
8
+ # Override locally with: OPEN_WIRE_GEM_PATH=/path/to/open-wire/ruby bundle install
9
+ if (path = ENV["OPEN_WIRE_GEM_PATH"]) && !path.empty? && File.directory?(path)
10
+ gem "open-wire", path: path
11
+ end
12
+
13
+ gem "rake", "~> 13.0"
14
+ gem "rspec", "~> 3.13"
15
+ gem "webmock", "~> 3.23"
data/MIT-LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Rails Agent
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,228 @@
1
+ <p align="center">
2
+ <a href="https://rails-agent.com">
3
+ <img src="https://rails-agent.com/og-image.jpg" alt="Rails Agent — fullstack AI agents for Ruby on Rails" width="720" />
4
+ </a>
5
+ </p>
6
+
7
+ <h1 align="center">Rails Agent</h1>
8
+
9
+ <p align="center">
10
+ <strong>The most advanced agentic platform for Ruby on Rails.</strong><br />
11
+ Build Rails AI agents in your repo. Test, deploy, and monitor at <code>/agents</code>.
12
+ </p>
13
+
14
+ <p align="center">
15
+ <a href="https://rails-agent.com"><img src="https://img.shields.io/badge/rails--agent.com-docs-C2410C?style=flat-square" alt="Docs" /></a>
16
+ <a href="https://github.com/Tiny-Bubble-Company/rails-agents"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="MIT" /></a>
17
+ <a href="https://rails-agent.com/docs/getting-started"><img src="https://img.shields.io/badge/Ruby-3.2%2B-CC342D?style=flat-square&logo=ruby&logoColor=white" alt="Ruby 3.2+" /></a>
18
+ <a href="https://rails-agent.com/docs/getting-started"><img src="https://img.shields.io/badge/Rails-7%2B-D30001?style=flat-square&logo=rubyonrails&logoColor=white" alt="Rails 7+" /></a>
19
+ </p>
20
+
21
+ <p align="center">
22
+ <a href="docs/AGENTS.md"><strong>AGENTS.md</strong></a>
23
+ ·
24
+ <a href="https://rails-agent.com/docs/getting-started">Getting started</a>
25
+ ·
26
+ <a href="https://rails-agent.com/docs/coding-agents">Coding agents</a>
27
+ ·
28
+ <a href="https://cloud.rails-agent.com">Cloud</a>
29
+ </p>
30
+
31
+ ---
32
+
33
+ ## About
34
+
35
+ [Rails Agent](https://rails-agent.com) is the fullstack **Rails agent framework** for production **Ruby on Rails agents**. Define instructions, tools, skills, packages, knowledge, channels, memory, and evals as files in your app — then use the mounted `/agents` dashboard to connect BYOK credentials, attach guardrails, ship channels, and observe cost.
36
+
37
+ If you are searching for a **Rails AI agents** stack, an **ActiveAgent alternative**, or a **RubyLLM alternative**, Rails Agent is built for the full lifecycle: author in Git, run in the cloud, integrate responses into your product.
38
+
39
+ **Website:** [rails-agent.com](https://rails-agent.com)
40
+
41
+ ---
42
+
43
+ ## Why Rails Agent (vs RubyLLM & ActiveAgent)
44
+
45
+ Rails Agent is a better alternative to library-only LLM wrappers when you need agents that ship with your Rails app — not just chat completions.
46
+
47
+ | | **Rails Agent** | RubyLLM | ActiveAgent |
48
+ |--|-----------------|---------|-------------|
49
+ | **Scope** | Fullstack agentic platform (build → deploy → monitor) | LLM client / chat helpers | Agent abstractions in Rails |
50
+ | **Source of truth** | `app/agents/` directories in your repo | Application code calling the gem | Ruby classes / generators |
51
+ | **Dashboard** | Mounted `/agents` (test, deploy, traces, cost) | — | Limited / app-owned |
52
+ | **BYOK credentials** | Cloud-managed references (`credential: :company_openai`) | Env / config in app | App-managed |
53
+ | **Build surface** | Instructions, tools, connectors, channels, skills, packages, knowledge, memory, guardrails | Prompts + API calls | Tools / prompts (varies) |
54
+ | **Playbooks & Library** | Workspace reuse + proven scaffolds | — | — |
55
+ | **Channels** | Open-Wire Slack / Teams, web, cron, API | — | App-wired |
56
+ | **Ops** | Budget, guardrails, evals, Monitor | Caller responsibility | Caller responsibility |
57
+ | **Best for** | Production **Rails AI agents** end-to-end | Thin LLM access | Lightweight agent objects |
58
+
59
+ Positioning in one line: **most advanced agentic platform for Ruby on Rails** — git-native agents with cloud runtime, integrations, and production controls.
60
+
61
+ ---
62
+
63
+ ## Features
64
+
65
+ ### Build (agent tabs)
66
+
67
+ | Capability | What you get |
68
+ |------------|----------------|
69
+ | **Instructions** | `prompt.md` system prompt — reviewed in Git |
70
+ | **Tools** | Ruby methods over your ActiveRecord models |
71
+ | **Connectors** | OAuth SaaS (Sheets, Notion, HubSpot, …) from the dashboard |
72
+ | **Channels** | Slack & Microsoft Teams via **Open-Wire**, web chat, cron, API |
73
+ | **Skills** | Composable multi-step behaviors |
74
+ | **Packages** | Install from Skills.sh / Microsoft APM / Smithery |
75
+ | **Knowledge** | Docs + database grounding for RAG-style answers |
76
+ | **Memory** | Conversation memory (Mem0-backed), on by default |
77
+ | **Guardrails** | Budget, model access, prompt injection, sensitive info |
78
+
79
+ ### Platform
80
+
81
+ - **Playbooks** — proven scaffolds (instructions + tools + skills) you customize locally
82
+ - **Library** — share tools, skills, packages, knowledge, and connectors across agents (`app/agents_library/` + `imports.yml`)
83
+ - **Budget** — per-agent / policy spend limits alongside usage monitoring
84
+ - **Monitor** — runs, traces, evals, and cost in `/agents`
85
+ - **BYOK** — attach OpenAI, Anthropic, and other provider keys in cloud; reference them in Ruby with no secrets in Git
86
+ - **Open-Wire** — Slack and Teams channel transport over `open-wire/1`
87
+ - **Composio email** — email connectors for inbox workflows
88
+ - **Evals** — golden cases under `evals/` before deploy
89
+ - **Deploy** — `rails-agents sync` → `deploy` → production traffic
90
+ - **Coding-agent docs** — Cursor, Codex, and Claude Code follow [AGENTS.md](docs/AGENTS.md) and [Coding agents](https://rails-agent.com/docs/coding-agents)
91
+
92
+ ---
93
+
94
+ ## Install
95
+
96
+ ```ruby
97
+ # Gemfile
98
+ gem "rails-agent-stack", github: "Tiny-Bubble-Company/rails-agents"
99
+ ```
100
+
101
+ ```bash
102
+ bundle install
103
+ bin/rails generate rails_agents:install
104
+ bin/dev # → http://localhost:3000/agents
105
+ ```
106
+
107
+ Connect your company workspace at `/agents`, then scaffold a database Knowledge agent:
108
+
109
+ ```bash
110
+ bin/rails generate rails_agents:agent store_assistant --type knowledge --database
111
+ ```
112
+
113
+ **Zeitwerk:** fresh installs add `config/initializers/rails_agents_autoload.rb` so `app/agents/` and `app/agents_library/` are agent assets, not application namespaces.
114
+
115
+ External coding agents (Cursor, Claude Code, Codex): start with **[docs/AGENTS.md](docs/AGENTS.md)**.
116
+
117
+ ---
118
+
119
+ ## Quick start
120
+
121
+ ```bash
122
+ bundle exec rails-agents run store_assistant "Where is order ORD-DEMO-1001?"
123
+ bundle exec rails-agents sync store_assistant
124
+ bundle exec rails-agents deploy store_assistant
125
+ bundle exec rails-agents logs store_assistant
126
+ ```
127
+
128
+ ```ruby
129
+ class StoreAssistant < RailsAgents::KnowledgeAgent
130
+ model :gpt_5_mini, provider: :openai, credential: :company_openai
131
+ memory :conversation, provider: :mem0, recall: 5
132
+ knowledge_from "knowledge/**/*"
133
+
134
+ tool :lookup_order do |order_number:|
135
+ Order.find_by(number: order_number)&.as_json(only: %i[number status total_cents])
136
+ end
137
+ end
138
+ ```
139
+
140
+ `:company_openai` is a **cloud credential reference** — not a local env var. Enable managed memory from **Build → Memory**. Pass a stable `session_id` to `.run` so recall stays scoped per product user.
141
+
142
+ ---
143
+
144
+ ## Agent directory
145
+
146
+ ```
147
+ app/agents/store_assistant/
148
+ ├── agent.rb # RailsAgents::KnowledgeAgent subclass
149
+ ├── prompt.md # System prompt
150
+ ├── imports.yml # Optional workspace Library attachments
151
+ ├── tools/ # Optional extracted tools
152
+ ├── skills/ # Composable behaviors
153
+ ├── packages/ # Registry-installed capabilities
154
+ ├── memory.rb # Memory config
155
+ ├── knowledge/ # RAG files
156
+ ├── connectors/ # External connection manifests
157
+ ├── channels/ # Slack, Teams, web, API, …
158
+ └── evals/ # Smoke / regression cases
159
+
160
+ app/agents_library/
161
+ ├── tools/
162
+ ├── skills/
163
+ ├── packages/
164
+ ├── knowledge/
165
+ └── connectors/
166
+ ```
167
+
168
+ Keep one-off work inside the agent. Move stable capabilities to `app/agents_library/` when another agent should reuse them, then reference via `imports.yml`. `rails-agents sync` includes imported Library files in the runtime bundle without duplicating shared source in Git.
169
+
170
+ ---
171
+
172
+ ## Agent taxonomy
173
+
174
+ | Type | Main purpose | Example |
175
+ |------|--------------|---------|
176
+ | Knowledge | Understand and answer | Order support from Rails data |
177
+ | Workflow | Execute predictable processes | Refund approval |
178
+ | Operations | Coordinate unpredictable real-world work | Incident coordination |
179
+ | Monitoring | Observe changes and respond | Inventory watcher |
180
+
181
+ Generator: `--type knowledge|workflow|operations|monitoring` and `--database` for DB-connected Knowledge scaffolds.
182
+
183
+ **Integrate responses:** every run returns `output_text` (Markdown), optional `output_data`, and typed `items` — same shape for every LLM. Guide: [rails-agent.com/docs/run-response](https://rails-agent.com/docs/run-response).
184
+
185
+ ---
186
+
187
+ ## Configuration
188
+
189
+ ```ruby
190
+ # config/initializers/rails_agents.rb
191
+ RailsAgents.configure do |config|
192
+ config.api_key = ENV["RAILS_AGENTS_API_KEY"] # platform key
193
+ config.project_id = ENV["RAILS_AGENTS_PROJECT_ID"]
194
+ end
195
+ ```
196
+
197
+ Provider keys live in the cloud dashboard → Model credentials (BYOK). Never commit them.
198
+
199
+ ---
200
+
201
+ ## Pricing
202
+
203
+ | | |
204
+ |--|--|
205
+ | **Subscription** | Fixed **company** plan (production workspaces) |
206
+ | **Usage** | Provider + infrastructure at **pass-through cost** |
207
+ | **Service fee** | **1%** on metered usage (transparent line item) |
208
+
209
+ Details: [rails-agent.com/pricing](https://rails-agent.com/pricing)
210
+
211
+ ---
212
+
213
+ ## Development
214
+
215
+ ```bash
216
+ bundle install
217
+ bundle exec rspec
218
+ ```
219
+
220
+ Local path testing: sibling app `rails-agents-boilerplate`.
221
+
222
+ ---
223
+
224
+ ## License
225
+
226
+ MIT — [MIT-LICENSE](MIT-LICENSE)
227
+
228
+ [rails-agent.com](https://rails-agent.com) · [AGENTS.md](docs/AGENTS.md) · [Getting started](https://rails-agent.com/docs/getting-started)
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ task default: :spec