solid_agent 0.1.1 → 0.2.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 +4 -4
  2. data/CHANGELOG.md +99 -0
  3. data/LICENSE +21 -0
  4. data/README.md +231 -18
  5. data/Rakefile +22 -2
  6. data/docs/agent-md-spec.md +803 -0
  7. data/docs/parser-design.md +1369 -0
  8. data/docs/registry-api.md +882 -0
  9. data/examples/README.md +60 -0
  10. data/examples/manifests/changelog_writer.agent.md +81 -0
  11. data/examples/manifests/usage.rb +96 -0
  12. data/examples/memory_handoff/app/agents/researcher_agent.rb +36 -0
  13. data/examples/memory_handoff/app/agents/writer_agent.rb +41 -0
  14. data/examples/memory_handoff/usage.rb +45 -0
  15. data/examples/persistent_conversation/app/agents/support_agent.rb +59 -0
  16. data/examples/persistent_conversation/app/controllers/support_conversations_controller.rb +24 -0
  17. data/examples/persistent_conversation/app/views/agents/support/instructions.md.erb +8 -0
  18. data/examples/persistent_conversation/usage.rb +51 -0
  19. data/examples/reasoning/app/agents/analysis_agent.rb +52 -0
  20. data/examples/reasoning/usage.rb +52 -0
  21. data/examples/run_tracking/app/agents/report_agent.rb +30 -0
  22. data/examples/run_tracking/app/controllers/agent_runs_controller.rb +43 -0
  23. data/examples/run_tracking/app/jobs/document_analysis_job.rb +17 -0
  24. data/examples/run_tracking/app/services/document_analysis_run.rb +68 -0
  25. data/examples/run_tracking/usage.rb +85 -0
  26. data/examples/tool_streaming/app/agents/browser_agent.rb +65 -0
  27. data/examples/tool_streaming/app/channels/tool_status_channel.rb +24 -0
  28. data/examples/tool_streaming/app/views/browser_agent/tools/fetch_url.json.erb +15 -0
  29. data/examples/tool_streaming/usage.rb +47 -0
  30. data/lib/generators/solid_agent/agent/agent_generator.rb +2 -2
  31. data/lib/generators/solid_agent/agent/templates/agent.rb.erb +3 -3
  32. data/lib/generators/solid_agent/context/templates/context_model.rb.erb +50 -16
  33. data/lib/generators/solid_agent/context/templates/create_generations.rb.erb +8 -0
  34. data/lib/generators/solid_agent/context/templates/create_messages.rb.erb +4 -0
  35. data/lib/generators/solid_agent/context/templates/generation_model.rb.erb +11 -0
  36. data/lib/generators/solid_agent/install/install_generator.rb +9 -0
  37. data/lib/generators/solid_agent/install/templates/agent_context.rb.erb +60 -17
  38. data/lib/generators/solid_agent/install/templates/agent_generation.rb.erb +23 -6
  39. data/lib/generators/solid_agent/install/templates/agent_memory.rb.erb +51 -0
  40. data/lib/generators/solid_agent/install/templates/agent_memory_entry.rb.erb +12 -0
  41. data/lib/generators/solid_agent/install/templates/agent_run.rb.erb +122 -0
  42. data/lib/generators/solid_agent/install/templates/create_agent_generations.rb.erb +13 -0
  43. data/lib/generators/solid_agent/install/templates/create_agent_memories.rb.erb +35 -0
  44. data/lib/generators/solid_agent/install/templates/create_agent_messages.rb.erb +5 -0
  45. data/lib/generators/solid_agent/install/templates/create_agent_runs.rb.erb +46 -0
  46. data/lib/generators/solid_agent/manifest/manifest_generator.rb +209 -0
  47. data/lib/generators/solid_agent/manifest/templates/agent.md.erb +39 -0
  48. data/lib/generators/solid_agent/manifest/templates/prompt.erb +13 -0
  49. data/lib/generators/solid_agent/reasons/reasons_generator.rb +83 -0
  50. data/lib/generators/solid_agent/reasons/templates/add_reasoning_columns.rb.erb +12 -0
  51. data/lib/solid_agent/agent_manifest/agent_builder.rb +323 -0
  52. data/lib/solid_agent/agent_manifest/errors.rb +26 -0
  53. data/lib/solid_agent/agent_manifest/exporter_registry.rb +117 -0
  54. data/lib/solid_agent/agent_manifest/exporters/agent_md_exporter.rb +115 -0
  55. data/lib/solid_agent/agent_manifest/exporters/base_exporter.rb +152 -0
  56. data/lib/solid_agent/agent_manifest/exporters/crewai_exporter.rb +125 -0
  57. data/lib/solid_agent/agent_manifest/exporters/dotprompt_exporter.rb +92 -0
  58. data/lib/solid_agent/agent_manifest/input_schema.rb +154 -0
  59. data/lib/solid_agent/agent_manifest/manifest.rb +306 -0
  60. data/lib/solid_agent/agent_manifest/parser_registry.rb +185 -0
  61. data/lib/solid_agent/agent_manifest/parsers/agent_md_parser.rb +87 -0
  62. data/lib/solid_agent/agent_manifest/parsers/base_parser.rb +223 -0
  63. data/lib/solid_agent/agent_manifest/parsers/crewai_parser.rb +201 -0
  64. data/lib/solid_agent/agent_manifest/parsers/dotprompt_parser.rb +122 -0
  65. data/lib/solid_agent/agent_manifest/parsers/github_prompt_parser.rb +143 -0
  66. data/lib/solid_agent/agent_manifest/picoschema.rb +254 -0
  67. data/lib/solid_agent/agent_manifest/registry/auth.rb +103 -0
  68. data/lib/solid_agent/agent_manifest/registry/client.rb +384 -0
  69. data/lib/solid_agent/agent_manifest/resource.rb +103 -0
  70. data/lib/solid_agent/agent_manifest/tool.rb +160 -0
  71. data/lib/solid_agent/agent_manifest/validator.rb +368 -0
  72. data/lib/solid_agent/agent_manifest.rb +381 -0
  73. data/lib/solid_agent/has_context.rb +299 -32
  74. data/lib/solid_agent/has_memory.rb +136 -0
  75. data/lib/solid_agent/has_reasons.rb +230 -0
  76. data/lib/solid_agent/model_naming.rb +42 -0
  77. data/lib/solid_agent/model_pricing.rb +93 -0
  78. data/lib/solid_agent/reasonable/reason.rb +205 -0
  79. data/lib/solid_agent/reasonable.rb +181 -0
  80. data/lib/solid_agent/records/agent.rb +520 -0
  81. data/lib/solid_agent/records/agent_run.rb +520 -0
  82. data/lib/solid_agent/records/agent_template.rb +142 -0
  83. data/lib/solid_agent/records/agent_version.rb +141 -0
  84. data/lib/solid_agent/records/ownable.rb +130 -0
  85. data/lib/solid_agent/records.rb +152 -0
  86. data/lib/solid_agent/run_fingerprint.rb +51 -0
  87. data/lib/solid_agent/tool_cache.rb +91 -0
  88. data/lib/solid_agent/version.rb +1 -1
  89. data/lib/solid_agent.rb +70 -3
  90. data/solid_agent.gemspec +41 -0
  91. metadata +93 -3
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/solid_agent/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "solid_agent"
7
+ spec.version = SolidAgent::VERSION
8
+ spec.authors = ["Justin Bowen"]
9
+ spec.email = ["JusBowen@gmail.com"]
10
+
11
+ spec.summary = "Database-backed context, tools, and streaming for ActiveAgent"
12
+ spec.description = "SolidAgent extends ActiveAgent with database-backed prompt context management, declarative tool schemas, and real-time streaming updates. Provides has_context, has_tools, and streams_tool_updates concerns for building robust AI agents."
13
+ spec.homepage = "https://docs.activeagents.ai/solid_agent"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 3.0.0"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/activeagents/solid_agent"
19
+ spec.metadata["changelog_uri"] = "https://github.com/activeagents/solid_agent/blob/main/CHANGELOG.md"
20
+ spec.metadata["documentation_uri"] = "https://docs.activeagents.ai/solid_agent"
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(__dir__) do
25
+ `git ls-files -z`.split("\x0").reject do |f|
26
+ (File.expand_path(f) == __FILE__) ||
27
+ f.start_with?(*%w[bin/ test/ spec/ features/ .git assets/ appveyor Gemfile])
28
+ end
29
+ end
30
+ spec.bindir = "exe"
31
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ["lib"]
33
+
34
+ spec.add_dependency "activeagent", ">= 1.0.0"
35
+ spec.add_dependency "activesupport", ">= 7.0"
36
+ spec.add_dependency "activerecord", ">= 7.0"
37
+ # AgentManifest is an ActiveModel, and lib/solid_agent.rb now requires it by
38
+ # name so the gem loads outside Rails. It arrived transitively through
39
+ # activerecord before; a require deserves a declaration.
40
+ spec.add_dependency "activemodel", ">= 7.0"
41
+ end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Bowen
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-10-08 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: activeagent
@@ -51,6 +52,20 @@ dependencies:
51
52
  - - ">="
52
53
  - !ruby/object:Gem::Version
53
54
  version: '7.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activemodel
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '7.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '7.0'
54
69
  description: SolidAgent extends ActiveAgent with database-backed prompt context management,
55
70
  declarative tool schemas, and real-time streaming updates. Provides has_context,
56
71
  has_tools, and streams_tool_updates concerns for building robust AI agents.
@@ -60,8 +75,34 @@ executables: []
60
75
  extensions: []
61
76
  extra_rdoc_files: []
62
77
  files:
78
+ - CHANGELOG.md
79
+ - LICENSE
63
80
  - README.md
64
81
  - Rakefile
82
+ - docs/agent-md-spec.md
83
+ - docs/parser-design.md
84
+ - docs/registry-api.md
85
+ - examples/README.md
86
+ - examples/manifests/changelog_writer.agent.md
87
+ - examples/manifests/usage.rb
88
+ - examples/memory_handoff/app/agents/researcher_agent.rb
89
+ - examples/memory_handoff/app/agents/writer_agent.rb
90
+ - examples/memory_handoff/usage.rb
91
+ - examples/persistent_conversation/app/agents/support_agent.rb
92
+ - examples/persistent_conversation/app/controllers/support_conversations_controller.rb
93
+ - examples/persistent_conversation/app/views/agents/support/instructions.md.erb
94
+ - examples/persistent_conversation/usage.rb
95
+ - examples/reasoning/app/agents/analysis_agent.rb
96
+ - examples/reasoning/usage.rb
97
+ - examples/run_tracking/app/agents/report_agent.rb
98
+ - examples/run_tracking/app/controllers/agent_runs_controller.rb
99
+ - examples/run_tracking/app/jobs/document_analysis_job.rb
100
+ - examples/run_tracking/app/services/document_analysis_run.rb
101
+ - examples/run_tracking/usage.rb
102
+ - examples/tool_streaming/app/agents/browser_agent.rb
103
+ - examples/tool_streaming/app/channels/tool_status_channel.rb
104
+ - examples/tool_streaming/app/views/browser_agent/tools/fetch_url.json.erb
105
+ - examples/tool_streaming/usage.rb
65
106
  - lib/generators/solid_agent/agent/agent_generator.rb
66
107
  - lib/generators/solid_agent/agent/templates/action.text.erb
67
108
  - lib/generators/solid_agent/agent/templates/agent.rb.erb
@@ -75,20 +116,67 @@ files:
75
116
  - lib/generators/solid_agent/install/install_generator.rb
76
117
  - lib/generators/solid_agent/install/templates/agent_context.rb.erb
77
118
  - lib/generators/solid_agent/install/templates/agent_generation.rb.erb
119
+ - lib/generators/solid_agent/install/templates/agent_memory.rb.erb
120
+ - lib/generators/solid_agent/install/templates/agent_memory_entry.rb.erb
78
121
  - lib/generators/solid_agent/install/templates/agent_message.rb.erb
122
+ - lib/generators/solid_agent/install/templates/agent_run.rb.erb
79
123
  - lib/generators/solid_agent/install/templates/create_agent_contexts.rb.erb
80
124
  - lib/generators/solid_agent/install/templates/create_agent_generations.rb.erb
125
+ - lib/generators/solid_agent/install/templates/create_agent_memories.rb.erb
81
126
  - lib/generators/solid_agent/install/templates/create_agent_messages.rb.erb
127
+ - lib/generators/solid_agent/install/templates/create_agent_runs.rb.erb
82
128
  - lib/generators/solid_agent/install/templates/initializer.rb.erb
129
+ - lib/generators/solid_agent/manifest/manifest_generator.rb
130
+ - lib/generators/solid_agent/manifest/templates/agent.md.erb
131
+ - lib/generators/solid_agent/manifest/templates/prompt.erb
132
+ - lib/generators/solid_agent/reasons/reasons_generator.rb
133
+ - lib/generators/solid_agent/reasons/templates/add_reasoning_columns.rb.erb
83
134
  - lib/generators/solid_agent/tool/templates/tool.json.erb
84
135
  - lib/generators/solid_agent/tool/tool_generator.rb
85
136
  - lib/solid_agent.rb
137
+ - lib/solid_agent/agent_manifest.rb
138
+ - lib/solid_agent/agent_manifest/agent_builder.rb
139
+ - lib/solid_agent/agent_manifest/errors.rb
140
+ - lib/solid_agent/agent_manifest/exporter_registry.rb
141
+ - lib/solid_agent/agent_manifest/exporters/agent_md_exporter.rb
142
+ - lib/solid_agent/agent_manifest/exporters/base_exporter.rb
143
+ - lib/solid_agent/agent_manifest/exporters/crewai_exporter.rb
144
+ - lib/solid_agent/agent_manifest/exporters/dotprompt_exporter.rb
145
+ - lib/solid_agent/agent_manifest/input_schema.rb
146
+ - lib/solid_agent/agent_manifest/manifest.rb
147
+ - lib/solid_agent/agent_manifest/parser_registry.rb
148
+ - lib/solid_agent/agent_manifest/parsers/agent_md_parser.rb
149
+ - lib/solid_agent/agent_manifest/parsers/base_parser.rb
150
+ - lib/solid_agent/agent_manifest/parsers/crewai_parser.rb
151
+ - lib/solid_agent/agent_manifest/parsers/dotprompt_parser.rb
152
+ - lib/solid_agent/agent_manifest/parsers/github_prompt_parser.rb
153
+ - lib/solid_agent/agent_manifest/picoschema.rb
154
+ - lib/solid_agent/agent_manifest/registry/auth.rb
155
+ - lib/solid_agent/agent_manifest/registry/client.rb
156
+ - lib/solid_agent/agent_manifest/resource.rb
157
+ - lib/solid_agent/agent_manifest/tool.rb
158
+ - lib/solid_agent/agent_manifest/validator.rb
86
159
  - lib/solid_agent/engine.rb
87
160
  - lib/solid_agent/has_context.rb
161
+ - lib/solid_agent/has_memory.rb
162
+ - lib/solid_agent/has_reasons.rb
88
163
  - lib/solid_agent/has_tools.rb
164
+ - lib/solid_agent/model_naming.rb
165
+ - lib/solid_agent/model_pricing.rb
166
+ - lib/solid_agent/reasonable.rb
167
+ - lib/solid_agent/reasonable/reason.rb
168
+ - lib/solid_agent/records.rb
169
+ - lib/solid_agent/records/agent.rb
170
+ - lib/solid_agent/records/agent_run.rb
171
+ - lib/solid_agent/records/agent_template.rb
172
+ - lib/solid_agent/records/agent_version.rb
173
+ - lib/solid_agent/records/ownable.rb
174
+ - lib/solid_agent/run_fingerprint.rb
89
175
  - lib/solid_agent/streams_tool_updates.rb
176
+ - lib/solid_agent/tool_cache.rb
90
177
  - lib/solid_agent/version.rb
91
178
  - sig/solid_agent.rbs
179
+ - solid_agent.gemspec
92
180
  homepage: https://docs.activeagents.ai/solid_agent
93
181
  licenses:
94
182
  - MIT
@@ -97,6 +185,7 @@ metadata:
97
185
  source_code_uri: https://github.com/activeagents/solid_agent
98
186
  changelog_uri: https://github.com/activeagents/solid_agent/blob/main/CHANGELOG.md
99
187
  documentation_uri: https://docs.activeagents.ai/solid_agent
188
+ post_install_message:
100
189
  rdoc_options: []
101
190
  require_paths:
102
191
  - lib
@@ -111,7 +200,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
200
  - !ruby/object:Gem::Version
112
201
  version: '0'
113
202
  requirements: []
114
- rubygems_version: 3.7.2
203
+ rubygems_version: 3.5.22
204
+ signing_key:
115
205
  specification_version: 4
116
206
  summary: Database-backed context, tools, and streaming for ActiveAgent
117
207
  test_files: []