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.
- checksums.yaml +4 -4
- data/.rubocop.yml +125 -0
- data/CHANGELOG.md +88 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +284 -0
- data/LICENSE +229 -21
- data/Makefile +82 -0
- data/README.md +3 -11
- data/Rakefile +63 -0
- data/bin/aictl +7 -0
- data/completions/_aictl +232 -0
- data/completions/aictl.bash +121 -0
- data/completions/aictl.fish +114 -0
- data/docs/architecture/agent-runtime.md +585 -0
- data/docs/dsl/SCHEMA_VERSION.md +250 -0
- data/docs/dsl/agent-reference.md +604 -0
- data/docs/dsl/best-practices.md +1078 -0
- data/docs/dsl/chat-endpoints.md +895 -0
- data/docs/dsl/constraints.md +671 -0
- data/docs/dsl/mcp-integration.md +1177 -0
- data/docs/dsl/webhooks.md +932 -0
- data/docs/dsl/workflows.md +744 -0
- data/lib/language_operator/agent/base.rb +110 -0
- data/lib/language_operator/agent/executor.rb +440 -0
- data/lib/language_operator/agent/instrumentation.rb +54 -0
- data/lib/language_operator/agent/metrics_tracker.rb +183 -0
- data/lib/language_operator/agent/safety/ast_validator.rb +272 -0
- data/lib/language_operator/agent/safety/audit_logger.rb +104 -0
- data/lib/language_operator/agent/safety/budget_tracker.rb +175 -0
- data/lib/language_operator/agent/safety/content_filter.rb +93 -0
- data/lib/language_operator/agent/safety/manager.rb +207 -0
- data/lib/language_operator/agent/safety/rate_limiter.rb +150 -0
- data/lib/language_operator/agent/safety/safe_executor.rb +127 -0
- data/lib/language_operator/agent/scheduler.rb +183 -0
- data/lib/language_operator/agent/telemetry.rb +116 -0
- data/lib/language_operator/agent/web_server.rb +610 -0
- data/lib/language_operator/agent/webhook_authenticator.rb +226 -0
- data/lib/language_operator/agent.rb +149 -0
- data/lib/language_operator/cli/commands/agent.rb +1205 -0
- data/lib/language_operator/cli/commands/cluster.rb +371 -0
- data/lib/language_operator/cli/commands/install.rb +404 -0
- data/lib/language_operator/cli/commands/model.rb +266 -0
- data/lib/language_operator/cli/commands/persona.rb +393 -0
- data/lib/language_operator/cli/commands/quickstart.rb +22 -0
- data/lib/language_operator/cli/commands/status.rb +143 -0
- data/lib/language_operator/cli/commands/system.rb +772 -0
- data/lib/language_operator/cli/commands/tool.rb +537 -0
- data/lib/language_operator/cli/commands/use.rb +47 -0
- data/lib/language_operator/cli/errors/handler.rb +180 -0
- data/lib/language_operator/cli/errors/suggestions.rb +176 -0
- data/lib/language_operator/cli/formatters/code_formatter.rb +77 -0
- data/lib/language_operator/cli/formatters/log_formatter.rb +288 -0
- data/lib/language_operator/cli/formatters/progress_formatter.rb +49 -0
- data/lib/language_operator/cli/formatters/status_formatter.rb +37 -0
- data/lib/language_operator/cli/formatters/table_formatter.rb +163 -0
- data/lib/language_operator/cli/formatters/value_formatter.rb +113 -0
- data/lib/language_operator/cli/helpers/cluster_context.rb +62 -0
- data/lib/language_operator/cli/helpers/cluster_validator.rb +101 -0
- data/lib/language_operator/cli/helpers/editor_helper.rb +58 -0
- data/lib/language_operator/cli/helpers/kubeconfig_validator.rb +167 -0
- data/lib/language_operator/cli/helpers/pastel_helper.rb +24 -0
- data/lib/language_operator/cli/helpers/resource_dependency_checker.rb +74 -0
- data/lib/language_operator/cli/helpers/schedule_builder.rb +108 -0
- data/lib/language_operator/cli/helpers/user_prompts.rb +69 -0
- data/lib/language_operator/cli/main.rb +236 -0
- data/lib/language_operator/cli/templates/tools/generic.yaml +66 -0
- data/lib/language_operator/cli/wizards/agent_wizard.rb +246 -0
- data/lib/language_operator/cli/wizards/quickstart_wizard.rb +588 -0
- data/lib/language_operator/client/base.rb +214 -0
- data/lib/language_operator/client/config.rb +136 -0
- data/lib/language_operator/client/cost_calculator.rb +37 -0
- data/lib/language_operator/client/mcp_connector.rb +123 -0
- data/lib/language_operator/client.rb +19 -0
- data/lib/language_operator/config/cluster_config.rb +101 -0
- data/lib/language_operator/config/tool_patterns.yaml +57 -0
- data/lib/language_operator/config/tool_registry.rb +96 -0
- data/lib/language_operator/config.rb +138 -0
- data/lib/language_operator/dsl/adapter.rb +124 -0
- data/lib/language_operator/dsl/agent_context.rb +90 -0
- data/lib/language_operator/dsl/agent_definition.rb +427 -0
- data/lib/language_operator/dsl/chat_endpoint_definition.rb +115 -0
- data/lib/language_operator/dsl/config.rb +119 -0
- data/lib/language_operator/dsl/context.rb +50 -0
- data/lib/language_operator/dsl/execution_context.rb +47 -0
- data/lib/language_operator/dsl/helpers.rb +109 -0
- data/lib/language_operator/dsl/http.rb +184 -0
- data/lib/language_operator/dsl/mcp_server_definition.rb +73 -0
- data/lib/language_operator/dsl/parameter_definition.rb +124 -0
- data/lib/language_operator/dsl/registry.rb +36 -0
- data/lib/language_operator/dsl/schema.rb +1102 -0
- data/lib/language_operator/dsl/shell.rb +125 -0
- data/lib/language_operator/dsl/tool_definition.rb +112 -0
- data/lib/language_operator/dsl/webhook_authentication.rb +114 -0
- data/lib/language_operator/dsl/webhook_definition.rb +106 -0
- data/lib/language_operator/dsl/workflow_definition.rb +259 -0
- data/lib/language_operator/dsl.rb +161 -0
- data/lib/language_operator/errors.rb +60 -0
- data/lib/language_operator/kubernetes/client.rb +279 -0
- data/lib/language_operator/kubernetes/resource_builder.rb +194 -0
- data/lib/language_operator/loggable.rb +47 -0
- data/lib/language_operator/logger.rb +141 -0
- data/lib/language_operator/retry.rb +123 -0
- data/lib/language_operator/retryable.rb +132 -0
- data/lib/language_operator/templates/README.md +23 -0
- data/lib/language_operator/templates/examples/agent_synthesis.tmpl +115 -0
- data/lib/language_operator/templates/examples/persona_distillation.tmpl +19 -0
- data/lib/language_operator/templates/schema/.gitkeep +0 -0
- data/lib/language_operator/templates/schema/CHANGELOG.md +93 -0
- data/lib/language_operator/templates/schema/agent_dsl_openapi.yaml +306 -0
- data/lib/language_operator/templates/schema/agent_dsl_schema.json +452 -0
- data/lib/language_operator/tool_loader.rb +242 -0
- data/lib/language_operator/validators.rb +170 -0
- data/lib/language_operator/version.rb +1 -1
- data/lib/language_operator.rb +65 -3
- data/requirements/tasks/challenge.md +9 -0
- data/requirements/tasks/iterate.md +36 -0
- data/requirements/tasks/optimize.md +21 -0
- data/requirements/tasks/tag.md +5 -0
- data/test_agent_dsl.rb +108 -0
- 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
|