language-operator 0.0.1 → 0.1.31

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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +125 -0
  3. data/CHANGELOG.md +88 -0
  4. data/Gemfile +8 -0
  5. data/Gemfile.lock +284 -0
  6. data/LICENSE +229 -21
  7. data/Makefile +82 -0
  8. data/README.md +3 -11
  9. data/Rakefile +63 -0
  10. data/bin/aictl +7 -0
  11. data/completions/_aictl +232 -0
  12. data/completions/aictl.bash +121 -0
  13. data/completions/aictl.fish +114 -0
  14. data/docs/architecture/agent-runtime.md +585 -0
  15. data/docs/dsl/SCHEMA_VERSION.md +250 -0
  16. data/docs/dsl/agent-reference.md +604 -0
  17. data/docs/dsl/best-practices.md +1078 -0
  18. data/docs/dsl/chat-endpoints.md +895 -0
  19. data/docs/dsl/constraints.md +671 -0
  20. data/docs/dsl/mcp-integration.md +1177 -0
  21. data/docs/dsl/webhooks.md +932 -0
  22. data/docs/dsl/workflows.md +744 -0
  23. data/lib/language_operator/agent/base.rb +110 -0
  24. data/lib/language_operator/agent/executor.rb +440 -0
  25. data/lib/language_operator/agent/instrumentation.rb +54 -0
  26. data/lib/language_operator/agent/metrics_tracker.rb +183 -0
  27. data/lib/language_operator/agent/safety/ast_validator.rb +272 -0
  28. data/lib/language_operator/agent/safety/audit_logger.rb +104 -0
  29. data/lib/language_operator/agent/safety/budget_tracker.rb +175 -0
  30. data/lib/language_operator/agent/safety/content_filter.rb +93 -0
  31. data/lib/language_operator/agent/safety/manager.rb +207 -0
  32. data/lib/language_operator/agent/safety/rate_limiter.rb +150 -0
  33. data/lib/language_operator/agent/safety/safe_executor.rb +127 -0
  34. data/lib/language_operator/agent/scheduler.rb +183 -0
  35. data/lib/language_operator/agent/telemetry.rb +116 -0
  36. data/lib/language_operator/agent/web_server.rb +610 -0
  37. data/lib/language_operator/agent/webhook_authenticator.rb +226 -0
  38. data/lib/language_operator/agent.rb +149 -0
  39. data/lib/language_operator/cli/commands/agent.rb +1205 -0
  40. data/lib/language_operator/cli/commands/cluster.rb +371 -0
  41. data/lib/language_operator/cli/commands/install.rb +404 -0
  42. data/lib/language_operator/cli/commands/model.rb +266 -0
  43. data/lib/language_operator/cli/commands/persona.rb +393 -0
  44. data/lib/language_operator/cli/commands/quickstart.rb +22 -0
  45. data/lib/language_operator/cli/commands/status.rb +143 -0
  46. data/lib/language_operator/cli/commands/system.rb +772 -0
  47. data/lib/language_operator/cli/commands/tool.rb +537 -0
  48. data/lib/language_operator/cli/commands/use.rb +47 -0
  49. data/lib/language_operator/cli/errors/handler.rb +180 -0
  50. data/lib/language_operator/cli/errors/suggestions.rb +176 -0
  51. data/lib/language_operator/cli/formatters/code_formatter.rb +77 -0
  52. data/lib/language_operator/cli/formatters/log_formatter.rb +288 -0
  53. data/lib/language_operator/cli/formatters/progress_formatter.rb +49 -0
  54. data/lib/language_operator/cli/formatters/status_formatter.rb +37 -0
  55. data/lib/language_operator/cli/formatters/table_formatter.rb +163 -0
  56. data/lib/language_operator/cli/formatters/value_formatter.rb +113 -0
  57. data/lib/language_operator/cli/helpers/cluster_context.rb +62 -0
  58. data/lib/language_operator/cli/helpers/cluster_validator.rb +101 -0
  59. data/lib/language_operator/cli/helpers/editor_helper.rb +58 -0
  60. data/lib/language_operator/cli/helpers/kubeconfig_validator.rb +167 -0
  61. data/lib/language_operator/cli/helpers/pastel_helper.rb +24 -0
  62. data/lib/language_operator/cli/helpers/resource_dependency_checker.rb +74 -0
  63. data/lib/language_operator/cli/helpers/schedule_builder.rb +108 -0
  64. data/lib/language_operator/cli/helpers/user_prompts.rb +69 -0
  65. data/lib/language_operator/cli/main.rb +236 -0
  66. data/lib/language_operator/cli/templates/tools/generic.yaml +66 -0
  67. data/lib/language_operator/cli/wizards/agent_wizard.rb +246 -0
  68. data/lib/language_operator/cli/wizards/quickstart_wizard.rb +588 -0
  69. data/lib/language_operator/client/base.rb +214 -0
  70. data/lib/language_operator/client/config.rb +136 -0
  71. data/lib/language_operator/client/cost_calculator.rb +37 -0
  72. data/lib/language_operator/client/mcp_connector.rb +123 -0
  73. data/lib/language_operator/client.rb +19 -0
  74. data/lib/language_operator/config/cluster_config.rb +101 -0
  75. data/lib/language_operator/config/tool_patterns.yaml +57 -0
  76. data/lib/language_operator/config/tool_registry.rb +96 -0
  77. data/lib/language_operator/config.rb +138 -0
  78. data/lib/language_operator/dsl/adapter.rb +124 -0
  79. data/lib/language_operator/dsl/agent_context.rb +90 -0
  80. data/lib/language_operator/dsl/agent_definition.rb +427 -0
  81. data/lib/language_operator/dsl/chat_endpoint_definition.rb +115 -0
  82. data/lib/language_operator/dsl/config.rb +119 -0
  83. data/lib/language_operator/dsl/context.rb +50 -0
  84. data/lib/language_operator/dsl/execution_context.rb +47 -0
  85. data/lib/language_operator/dsl/helpers.rb +109 -0
  86. data/lib/language_operator/dsl/http.rb +184 -0
  87. data/lib/language_operator/dsl/mcp_server_definition.rb +73 -0
  88. data/lib/language_operator/dsl/parameter_definition.rb +124 -0
  89. data/lib/language_operator/dsl/registry.rb +36 -0
  90. data/lib/language_operator/dsl/schema.rb +1102 -0
  91. data/lib/language_operator/dsl/shell.rb +125 -0
  92. data/lib/language_operator/dsl/tool_definition.rb +112 -0
  93. data/lib/language_operator/dsl/webhook_authentication.rb +114 -0
  94. data/lib/language_operator/dsl/webhook_definition.rb +106 -0
  95. data/lib/language_operator/dsl/workflow_definition.rb +259 -0
  96. data/lib/language_operator/dsl.rb +161 -0
  97. data/lib/language_operator/errors.rb +60 -0
  98. data/lib/language_operator/kubernetes/client.rb +279 -0
  99. data/lib/language_operator/kubernetes/resource_builder.rb +194 -0
  100. data/lib/language_operator/loggable.rb +47 -0
  101. data/lib/language_operator/logger.rb +141 -0
  102. data/lib/language_operator/retry.rb +123 -0
  103. data/lib/language_operator/retryable.rb +132 -0
  104. data/lib/language_operator/templates/README.md +23 -0
  105. data/lib/language_operator/templates/examples/agent_synthesis.tmpl +115 -0
  106. data/lib/language_operator/templates/examples/persona_distillation.tmpl +19 -0
  107. data/lib/language_operator/templates/schema/.gitkeep +0 -0
  108. data/lib/language_operator/templates/schema/CHANGELOG.md +93 -0
  109. data/lib/language_operator/templates/schema/agent_dsl_openapi.yaml +306 -0
  110. data/lib/language_operator/templates/schema/agent_dsl_schema.json +452 -0
  111. data/lib/language_operator/tool_loader.rb +242 -0
  112. data/lib/language_operator/validators.rb +170 -0
  113. data/lib/language_operator/version.rb +1 -1
  114. data/lib/language_operator.rb +65 -3
  115. data/requirements/tasks/challenge.md +9 -0
  116. data/requirements/tasks/iterate.md +36 -0
  117. data/requirements/tasks/optimize.md +21 -0
  118. data/requirements/tasks/tag.md +5 -0
  119. data/test_agent_dsl.rb +108 -0
  120. metadata +507 -20
@@ -0,0 +1,250 @@
1
+ # Schema Versioning Policy
2
+
3
+ Language Operator DSL Schema uses semantic versioning linked directly to the gem version.
4
+
5
+ ## Version Format
6
+
7
+ Schema versions follow [Semantic Versioning 2.0.0](https://semver.org/):
8
+
9
+ ```
10
+ MAJOR.MINOR.PATCH
11
+ ```
12
+
13
+ ## Accessing Schema Version
14
+
15
+ ### Programmatic Access
16
+
17
+ ```ruby
18
+ require 'language_operator'
19
+
20
+ # Get schema version
21
+ LanguageOperator::Dsl::Schema.version
22
+ # => "0.1.30"
23
+
24
+ # Version is also included in JSON Schema output
25
+ schema = LanguageOperator::Dsl::Schema.to_json_schema
26
+ schema[:version]
27
+ # => "0.1.30"
28
+ ```
29
+
30
+ ### JSON Schema Output
31
+
32
+ When generating JSON Schema, the version is automatically included:
33
+
34
+ ```json
35
+ {
36
+ "$schema": "http://json-schema.org/draft-07/schema#",
37
+ "$id": "https://github.com/language-operator/language-operator-gem/schema/agent-dsl.json",
38
+ "title": "Language Operator Agent DSL",
39
+ "version": "0.1.30",
40
+ ...
41
+ }
42
+ ```
43
+
44
+ ## Version Semantics
45
+
46
+ The schema version is **identical** to the gem version (`LanguageOperator::VERSION`). Changes to the schema follow these rules:
47
+
48
+ ### MAJOR Version (X.0.0)
49
+
50
+ Breaking changes that require updates to existing agent definitions:
51
+
52
+ **Examples:**
53
+ - Removing DSL methods (e.g., removing `schedule` method)
54
+ - Renaming required fields (e.g., `description` → `summary`)
55
+ - Changing parameter types incompatibly (e.g., `mode` from Symbol to String)
56
+ - Removing supported execution modes
57
+ - Changing workflow dependency resolution behavior
58
+ - Altering constraint validation rules in breaking ways
59
+
60
+ **Migration Required:** Users must update their agent definitions to match new schema.
61
+
62
+ **Breaking Change Indicators:**
63
+ - Methods removed from `SAFE_AGENT_METHODS`, `SAFE_TOOL_METHODS`, or `SAFE_HELPER_METHODS`
64
+ - Required fields added or changed
65
+ - Enum values removed
66
+ - Pattern validation tightened (existing valid values become invalid)
67
+
68
+ ### MINOR Version (0.X.0)
69
+
70
+ Backward-compatible additions and enhancements:
71
+
72
+ **Examples:**
73
+ - Adding new DSL methods (e.g., new output destinations)
74
+ - Adding new optional fields (e.g., new constraint types)
75
+ - Adding new execution modes
76
+ - Expanding enums (e.g., adding authentication types)
77
+ - Adding new workflow features that don't affect existing workflows
78
+ - Relaxing validation patterns (more values become valid)
79
+ - Adding new helper methods
80
+
81
+ **Migration Required:** None. Existing agent definitions continue to work.
82
+
83
+ **Addition Indicators:**
84
+ - New methods added to safe method lists
85
+ - New optional properties in schema definitions
86
+ - New enum values
87
+ - New JSON Schema definitions
88
+ - Pattern validation relaxed
89
+
90
+ ### PATCH Version (0.0.X)
91
+
92
+ Bug fixes and non-breaking improvements:
93
+
94
+ **Examples:**
95
+ - Fixing validation regex patterns that were too strict
96
+ - Correcting schema descriptions or documentation
97
+ - Fixing default values
98
+ - Improving error messages
99
+ - Performance optimizations in schema generation
100
+ - Documentation improvements
101
+
102
+ **Migration Required:** None. Fully backward compatible.
103
+
104
+ **Fix Indicators:**
105
+ - Pattern fixes (making existing valid definitions work correctly)
106
+ - Description clarifications
107
+ - Default value corrections
108
+ - Schema metadata updates
109
+
110
+ ## Schema Evolution Examples
111
+
112
+ ### Example: MAJOR Version Change (Breaking)
113
+
114
+ **Before (v0.1.x):**
115
+ ```ruby
116
+ agent "my-agent" do
117
+ mode :autonomous # Symbol
118
+ schedule "0 12 * * *"
119
+ end
120
+ ```
121
+
122
+ **After (v1.0.0) - Hypothetical Breaking Change:**
123
+ ```ruby
124
+ agent "my-agent" do
125
+ mode "autonomous" # Now requires String
126
+ cron_schedule "0 12 * * *" # Renamed method
127
+ end
128
+ ```
129
+
130
+ **Impact:** Existing agent definitions fail validation. Users must update code.
131
+
132
+ ### Example: MINOR Version Change (Addition)
133
+
134
+ **Before (v0.1.x):**
135
+ ```ruby
136
+ agent "my-agent" do
137
+ constraints do
138
+ daily_budget 10.00
139
+ end
140
+ end
141
+ ```
142
+
143
+ **After (v0.2.0) - New Feature:**
144
+ ```ruby
145
+ agent "my-agent" do
146
+ constraints do
147
+ daily_budget 10.00
148
+ monthly_budget 250.00 # NEW: Added in 0.2.0
149
+ end
150
+ end
151
+ ```
152
+
153
+ **Impact:** None. Old definitions still valid. New feature available optionally.
154
+
155
+ ### Example: PATCH Version Change (Fix)
156
+
157
+ **Before (v0.1.29):**
158
+ ```ruby
159
+ # Bug: timeout pattern too strict, rejects "120s"
160
+ constraints do
161
+ timeout "2m" # Works
162
+ # timeout "120s" # Would fail validation
163
+ end
164
+ ```
165
+
166
+ **After (v0.1.30) - Bug Fix:**
167
+ ```ruby
168
+ # Fixed: timeout pattern now accepts both formats
169
+ constraints do
170
+ timeout "2m" # Still works
171
+ timeout "120s" # Now works too
172
+ end
173
+ ```
174
+
175
+ **Impact:** None. Existing valid definitions unchanged. Previously invalid definitions may now work.
176
+
177
+ ## Version Compatibility
178
+
179
+ ### Agent Definition Compatibility
180
+
181
+ Agent definitions are compatible across:
182
+ - ✅ Same MAJOR version (e.g., 0.1.0 agent works with 0.1.30 gem)
183
+ - ✅ MINOR upgrades (e.g., 0.1.x agent works with 0.2.x gem)
184
+ - ❌ MAJOR upgrades (e.g., 0.x.x agent may not work with 1.x.x gem)
185
+
186
+ ### JSON Schema Compatibility
187
+
188
+ Generated JSON Schemas are versioned. Consumers should:
189
+
190
+ 1. **Check schema version** before validation:
191
+ ```ruby
192
+ schema = LanguageOperator::Dsl::Schema.to_json_schema
193
+ if Gem::Version.new(schema[:version]) >= Gem::Version.new("0.2.0")
194
+ # Use features from 0.2.0+
195
+ end
196
+ ```
197
+
198
+ 2. **Pin gem versions** in production:
199
+ ```ruby
200
+ # Gemfile
201
+ gem 'language-operator', '~> 0.1.0' # Allow patch updates only
202
+ ```
203
+
204
+ ## Deprecation Policy
205
+
206
+ When planning MAJOR version changes:
207
+
208
+ 1. **Deprecation warnings** added in MINOR version before removal
209
+ 2. **Migration guides** provided in documentation
210
+ 3. **Minimum deprecation period** of one MAJOR version cycle
211
+
212
+ Example timeline:
213
+ - v0.1.0: Feature X introduced
214
+ - v0.2.0: Feature X deprecated (warnings added, docs updated)
215
+ - v0.3.0: Still supported with warnings
216
+ - v1.0.0: Feature X removed (breaking change)
217
+
218
+ ## Validation and Testing
219
+
220
+ ### Schema Version Testing
221
+
222
+ The gem includes comprehensive tests ensuring:
223
+ - Schema version matches gem version
224
+ - Version is included in JSON Schema output
225
+ - Safe method lists are validated against ASTValidator constants
226
+
227
+ See: `spec/language_operator/dsl/schema_spec.rb`
228
+
229
+ ### Breaking Change Detection
230
+
231
+ When submitting changes:
232
+
233
+ 1. **Check if change is breaking** using checklist above
234
+ 2. **Update version accordingly** in `lib/language_operator/version.rb`
235
+ 3. **Document in CHANGELOG.md** under appropriate section
236
+ 4. **Add migration guide** if MAJOR version bump
237
+ 5. **Update this document** if versioning policy changes
238
+
239
+ ## Related Documentation
240
+
241
+ - [Semantic Versioning Specification](https://semver.org/)
242
+ - [Agent DSL Reference](./agent-reference.md)
243
+ - [Best Practices](./best-practices.md)
244
+ - [CHANGELOG.md](../../CHANGELOG.md)
245
+
246
+ ## Questions?
247
+
248
+ For questions about schema versioning:
249
+ - Open an issue: https://github.com/language-operator/language-operator-gem/issues
250
+ - Check existing discussions about schema changes