language-operator 0.1.61 → 0.1.62
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/.claude/commands/persona.md +9 -0
- data/.claude/commands/task.md +46 -1
- data/.rubocop.yml +13 -0
- data/.rubocop_custom/use_ux_helper.rb +44 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +12 -1
- data/Makefile +26 -7
- data/Makefile.common +50 -0
- data/bin/aictl +8 -1
- data/components/agent/Gemfile +1 -1
- data/components/agent/bin/langop-agent +7 -0
- data/docs/README.md +58 -0
- data/docs/{dsl/best-practices.md → best-practices.md} +4 -4
- data/docs/cli-reference.md +274 -0
- data/docs/{dsl/constraints.md → constraints.md} +5 -5
- data/docs/how-agents-work.md +156 -0
- data/docs/installation.md +218 -0
- data/docs/quickstart.md +299 -0
- data/docs/understanding-generated-code.md +265 -0
- data/docs/using-tools.md +457 -0
- data/docs/webhooks.md +509 -0
- data/examples/ux_helpers_demo.rb +296 -0
- data/lib/language_operator/agent/base.rb +11 -1
- data/lib/language_operator/agent/executor.rb +23 -6
- data/lib/language_operator/agent/safety/safe_executor.rb +41 -39
- data/lib/language_operator/agent/task_executor.rb +346 -63
- data/lib/language_operator/agent/web_server.rb +110 -14
- data/lib/language_operator/agent/webhook_authenticator.rb +39 -5
- data/lib/language_operator/agent.rb +88 -2
- data/lib/language_operator/cli/base_command.rb +17 -11
- data/lib/language_operator/cli/command_loader.rb +72 -0
- data/lib/language_operator/cli/commands/agent/base.rb +837 -0
- data/lib/language_operator/cli/commands/agent/code_operations.rb +102 -0
- data/lib/language_operator/cli/commands/agent/helpers/cluster_llm_client.rb +116 -0
- data/lib/language_operator/cli/commands/agent/helpers/code_parser.rb +115 -0
- data/lib/language_operator/cli/commands/agent/helpers/synthesis_watcher.rb +96 -0
- data/lib/language_operator/cli/commands/agent/learning.rb +289 -0
- data/lib/language_operator/cli/commands/agent/lifecycle.rb +102 -0
- data/lib/language_operator/cli/commands/agent/logs.rb +125 -0
- data/lib/language_operator/cli/commands/agent/workspace.rb +327 -0
- data/lib/language_operator/cli/commands/cluster.rb +129 -84
- data/lib/language_operator/cli/commands/install.rb +1 -1
- data/lib/language_operator/cli/commands/model/base.rb +215 -0
- data/lib/language_operator/cli/commands/model/test.rb +165 -0
- data/lib/language_operator/cli/commands/persona.rb +16 -34
- data/lib/language_operator/cli/commands/quickstart.rb +3 -2
- data/lib/language_operator/cli/commands/status.rb +40 -67
- data/lib/language_operator/cli/commands/system/base.rb +44 -0
- data/lib/language_operator/cli/commands/system/exec.rb +147 -0
- data/lib/language_operator/cli/commands/system/helpers/llm_synthesis.rb +183 -0
- data/lib/language_operator/cli/commands/system/helpers/pod_manager.rb +212 -0
- data/lib/language_operator/cli/commands/system/helpers/template_loader.rb +57 -0
- data/lib/language_operator/cli/commands/system/helpers/template_validator.rb +174 -0
- data/lib/language_operator/cli/commands/system/schema.rb +92 -0
- data/lib/language_operator/cli/commands/system/synthesis_template.rb +151 -0
- data/lib/language_operator/cli/commands/system/synthesize.rb +224 -0
- data/lib/language_operator/cli/commands/system/validate_template.rb +130 -0
- data/lib/language_operator/cli/commands/tool/base.rb +271 -0
- data/lib/language_operator/cli/commands/tool/install.rb +255 -0
- data/lib/language_operator/cli/commands/tool/search.rb +69 -0
- data/lib/language_operator/cli/commands/tool/test.rb +115 -0
- data/lib/language_operator/cli/commands/use.rb +29 -6
- data/lib/language_operator/cli/errors/handler.rb +20 -17
- data/lib/language_operator/cli/errors/suggestions.rb +3 -5
- data/lib/language_operator/cli/errors/thor_errors.rb +55 -0
- data/lib/language_operator/cli/formatters/code_formatter.rb +4 -11
- data/lib/language_operator/cli/formatters/log_formatter.rb +8 -15
- data/lib/language_operator/cli/formatters/progress_formatter.rb +6 -8
- data/lib/language_operator/cli/formatters/status_formatter.rb +26 -7
- data/lib/language_operator/cli/formatters/table_formatter.rb +47 -36
- data/lib/language_operator/cli/formatters/value_formatter.rb +75 -0
- data/lib/language_operator/cli/helpers/cluster_context.rb +5 -3
- data/lib/language_operator/cli/helpers/kubeconfig_validator.rb +2 -1
- data/lib/language_operator/cli/helpers/label_utils.rb +97 -0
- data/lib/language_operator/{ux/concerns/provider_helpers.rb → cli/helpers/provider_helper.rb} +10 -29
- data/lib/language_operator/cli/helpers/schedule_builder.rb +21 -1
- data/lib/language_operator/cli/helpers/user_prompts.rb +19 -11
- data/lib/language_operator/cli/helpers/ux_helper.rb +538 -0
- data/lib/language_operator/{ux/concerns/input_validation.rb → cli/helpers/validation_helper.rb} +13 -66
- data/lib/language_operator/cli/main.rb +50 -40
- data/lib/language_operator/cli/templates/tools/generic.yaml +3 -0
- data/lib/language_operator/cli/wizards/agent_wizard.rb +12 -20
- data/lib/language_operator/cli/wizards/model_wizard.rb +271 -0
- data/lib/language_operator/cli/wizards/quickstart_wizard.rb +8 -34
- data/lib/language_operator/client/base.rb +28 -0
- data/lib/language_operator/client/config.rb +4 -1
- data/lib/language_operator/client/mcp_connector.rb +1 -1
- data/lib/language_operator/config/cluster_config.rb +3 -2
- data/lib/language_operator/config.rb +38 -11
- data/lib/language_operator/constants/kubernetes_labels.rb +80 -0
- data/lib/language_operator/constants.rb +13 -0
- data/lib/language_operator/dsl/http.rb +127 -10
- data/lib/language_operator/dsl.rb +153 -6
- data/lib/language_operator/errors.rb +50 -0
- data/lib/language_operator/kubernetes/client.rb +11 -6
- data/lib/language_operator/kubernetes/resource_builder.rb +58 -84
- data/lib/language_operator/templates/schema/agent_dsl_openapi.yaml +1 -1
- data/lib/language_operator/templates/schema/agent_dsl_schema.json +1 -1
- data/lib/language_operator/type_coercion.rb +118 -34
- data/lib/language_operator/utils/secure_path.rb +74 -0
- data/lib/language_operator/utils.rb +7 -0
- data/lib/language_operator/validators.rb +54 -2
- data/lib/language_operator/version.rb +1 -1
- data/synth/001/Makefile +10 -2
- data/synth/001/agent.rb +16 -15
- data/synth/001/output.log +27 -10
- data/synth/002/Makefile +10 -2
- data/synth/003/Makefile +1 -1
- data/synth/003/README.md +205 -133
- data/synth/003/agent.optimized.rb +66 -0
- data/synth/003/agent.synthesized.rb +41 -0
- metadata +111 -35
- data/docs/dsl/agent-reference.md +0 -604
- data/docs/dsl/mcp-integration.md +0 -1177
- data/docs/dsl/webhooks.md +0 -932
- data/docs/dsl/workflows.md +0 -744
- data/lib/language_operator/cli/commands/agent.rb +0 -1712
- data/lib/language_operator/cli/commands/model.rb +0 -366
- data/lib/language_operator/cli/commands/system.rb +0 -1259
- data/lib/language_operator/cli/commands/tool.rb +0 -654
- data/lib/language_operator/cli/formatters/optimization_formatter.rb +0 -226
- data/lib/language_operator/cli/helpers/pastel_helper.rb +0 -24
- data/lib/language_operator/learning/adapters/base_adapter.rb +0 -149
- data/lib/language_operator/learning/adapters/jaeger_adapter.rb +0 -221
- data/lib/language_operator/learning/adapters/signoz_adapter.rb +0 -435
- data/lib/language_operator/learning/adapters/tempo_adapter.rb +0 -239
- data/lib/language_operator/learning/optimizer.rb +0 -319
- data/lib/language_operator/learning/pattern_detector.rb +0 -260
- data/lib/language_operator/learning/task_synthesizer.rb +0 -288
- data/lib/language_operator/learning/trace_analyzer.rb +0 -285
- data/lib/language_operator/templates/task_synthesis.tmpl +0 -98
- data/lib/language_operator/ux/base.rb +0 -81
- data/lib/language_operator/ux/concerns/README.md +0 -155
- data/lib/language_operator/ux/concerns/headings.rb +0 -90
- data/lib/language_operator/ux/create_agent.rb +0 -255
- data/lib/language_operator/ux/create_model.rb +0 -267
- data/lib/language_operator/ux/quickstart.rb +0 -594
- data/synth/003/agent.rb +0 -41
- data/synth/003/output.log +0 -68
- /data/docs/{architecture/agent-runtime.md → agent-internals.md} +0 -0
- /data/docs/{dsl/chat-endpoints.md → chat-endpoints.md} +0 -0
- /data/docs/{dsl/SCHEMA_VERSION.md → schema-versioning.md} +0 -0
data/synth/003/output.log
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
[1;36m⚬[0m OpenTelemetry enabled
|
|
2
|
-
Waiting for tool at localhost:80...
|
|
3
|
-
Tool ready at localhost:80
|
|
4
|
-
[1;36m⚬[0m Configuring LLM (provider=openai_compatible, model=mistralai/magistral-small-2509, timeout=300)
|
|
5
|
-
[1;36m⚬[0m LLM configuration complete
|
|
6
|
-
[1;36m⚬[0m Connecting to MCP servers (count=1)
|
|
7
|
-
[1;36m⚬[0m Successfully connected to MCP server (server=default-tools-0)
|
|
8
|
-
[1;36m⚬[0m MCP server connected (server=default-tools-0, tool_count=6, tools=["read_file", "write_file", "list_directory", "create_directory", "get_file_info", "search_files"])
|
|
9
|
-
[1;36m⚬[0m MCP connection summary (connected_servers=1, total_tools=6)
|
|
10
|
-
[1;36m⚬[0m Chat session initialized (with_tools=true)
|
|
11
|
-
[1;36m⚬[0m Agent running in scheduled mode - executing once (agent_name=synth-003, dsl_version=v1)
|
|
12
|
-
[1;36m⚬[0m Executing main block (agent=synth-003, task_count=3)
|
|
13
|
-
[1;36m⚬[0m Executing main block (inputs_keys=[])
|
|
14
|
-
[1;36m⚬[0m Executing task (task=read_existing_story, type=neural, timeout=360.0, max_retries=3)
|
|
15
|
-
[1;36m⚬[0m Sending prompt to LLM (task=read_existing_story, prompt_length=572, available_tools=["read_file", "write_file", "list_directory", "create_directory", "get_file_info", "search_files"])
|
|
16
|
-
[1;36m⚬[0m Tool call initiated by LLM (event=tool_call_initiated, tool_name=get_file_info, tool_id=617083832, arguments={"path" => "story.txt"}, arguments_json={"path":"story.txt"})
|
|
17
|
-
[1;36m⚬[0m Tool call result received (event=tool_result_received, result=Path: story.txt
|
|
18
|
-
Type: file
|
|
19
|
-
Size: 200 B
|
|
20
|
-
Permissions: 664
|
|
21
|
-
Owner UID: 1000
|
|
22
|
-
Owner GID: 101
|
|
23
|
-
Created: 2025-11-19 02:00:00 +0000
|
|
24
|
-
Modified: 2025-11-19 01:45:12 +0000
|
|
25
|
-
Accessed: 2025-11-19 02:07:30 +0000, result_preview=Path: story.txt
|
|
26
|
-
Type: file
|
|
27
|
-
Size: 200 B
|
|
28
|
-
Permissions: 664
|
|
29
|
-
Owner UID: 1000
|
|
30
|
-
Owner GID: 101
|
|
31
|
-
Created: 20...)
|
|
32
|
-
[1;36m⚬[0m Tool call initiated by LLM (event=tool_call_initiated, tool_name=read_file, tool_id=783124383, arguments={"path" => "story.txt"}, arguments_json={"path":"story.txt"})
|
|
33
|
-
[1;36m⚬[0m Tool call result received (event=tool_result_received, result=Once upon a time, in a quiet village nestled between rolling hills, there lived a young girl named Lily.
|
|
34
|
-
One day, while playing near the edge of the forest, she discovered a mysterious glowing flower., result_preview=Once upon a time, in a quiet village nestled between rolling hills, there lived a young girl named...)
|
|
35
|
-
[1;36m⚬[0m LLM response received, extracting content (task=read_existing_story, response_class=RubyLLM::Message, has_tool_calls=, tool_call_count=0)
|
|
36
|
-
[1;36m⚬[0m Neural task response received (task=read_existing_story, response_length=592)
|
|
37
|
-
[1;36m⚬[0m Parsing neural task response (task=read_existing_story)
|
|
38
|
-
[1;36m⚬[0m LLM thinking captured (event=llm_thinking, task=read_existing_story, thinking_steps=1, thinking=["Now that I have the content, I need to count the number of sentences by splitting it by newline. The content is a single line, so there's only one sentence.\n\nBut wait, the problem says to split by newline. The content is a single line, so sentence_count should be 1.\n\nNow, I'll prepare the JSON response with the content and sentence count."], thinking_preview=Now that I have the content, I need to count the number of sentences by splitting it by newline. T...)
|
|
39
|
-
[1;36m⚬[0m Response parsed successfully (task=read_existing_story, output_keys=[:content, :sentence_count])
|
|
40
|
-
[1;36m⚬[0m Validating task outputs (task=read_existing_story)
|
|
41
|
-
[1;36m⚬[0m Executing task (task=generate_next_sentence, type=neural, timeout=360.0, max_retries=3)
|
|
42
|
-
[1;36m⚬[0m Sending prompt to LLM (task=generate_next_sentence, prompt_length=773, available_tools=["read_file", "write_file", "list_directory", "create_directory", "get_file_info", "search_files"])
|
|
43
|
-
E, [2025-11-19T02:10:54.380136 #7] ERROR -- : OpenTelemetry error: Unable to export 4 spans
|
|
44
|
-
[1;36m⚬[0m LLM response received, extracting content (task=generate_next_sentence, response_class=RubyLLM::Message, has_tool_calls=, tool_call_count=0)
|
|
45
|
-
[1;36m⚬[0m Neural task response received (task=generate_next_sentence, response_length=824)
|
|
46
|
-
[1;36m⚬[0m Parsing neural task response (task=generate_next_sentence)
|
|
47
|
-
[1;36m⚬[0m LLM thinking captured (event=llm_thinking, task=generate_next_sentence, thinking_steps=1, thinking=["The existing content has two sentences. The story is in a fairy tale style, so the next sentence should continue in that tone.\n\nThe first sentence sets up the setting and character. The second introduces a key event (the glowing flower). A natural continuation might be that Lily decides to pick the flower or something happens when she touches it.\n\nLet me draft a possible next sentence: \"As she reached out to touch the flower, it suddenly let out a soft humming sound.\"\n\nNow, I need to ensure that this is exactly one sentence and maintains the tone.\n\nLet me confirm it's a complete sentence with proper punctuation. It is, and it fits the fairy tale style.\n\nNow, prepare the JSON response with this sentence."], thinking_preview=The existing content has two sentences. The story is in a fairy tale style, so the next sentence s...)
|
|
48
|
-
[1;36m⚬[0m Response parsed successfully (task=generate_next_sentence, output_keys=[:sentence])
|
|
49
|
-
[1;36m⚬[0m Validating task outputs (task=generate_next_sentence)
|
|
50
|
-
[1;36m⚬[0m Executing task (task=append_to_story, type=neural, timeout=360.0, max_retries=3)
|
|
51
|
-
[1;36m⚬[0m Sending prompt to LLM (task=append_to_story, prompt_length=684, available_tools=["read_file", "write_file", "list_directory", "create_directory", "get_file_info", "search_files"])
|
|
52
|
-
E, [2025-11-19T02:11:09.382616 #7] ERROR -- : OpenTelemetry error: Unable to export 4 spans
|
|
53
|
-
[1;36m⚬[0m Tool call initiated by LLM (event=tool_call_initiated, tool_name=read_file, tool_id=982459012, arguments={"path" => "story.txt"}, arguments_json={"path":"story.txt"})
|
|
54
|
-
[1;36m⚬[0m Tool call result received (event=tool_result_received, result=Once upon a time, in a quiet village nestled between rolling hills, there lived a young girl named Lily.
|
|
55
|
-
One day, while playing near the edge of the forest, she discovered a mysterious glowing flower., result_preview=Once upon a time, in a quiet village nestled between rolling hills, there lived a young girl named...)
|
|
56
|
-
[1;36m⚬[0m Tool call initiated by LLM (event=tool_call_initiated, tool_name=write_file, tool_id=433722466, arguments={"path" => "story.txt", "content" => "Once upon a time, in a quiet village nestled between rolling hills, there lived a young girl named Lily.\nOne day, while playing near the edge of the forest, she discovered a mysterious glowing flower.\nAs she reached out to touch the flower, it suddenly let out a soft humming sound."}, arguments_json={"path":"story.txt","content":"Once upon a time, in a quiet village nestled between rolling hills,...)
|
|
57
|
-
[1;36m⚬[0m Tool call result received (event=tool_result_received, result=Successfully wrote 282 bytes to story.txt, result_preview=Successfully wrote 282 bytes to story.txt)
|
|
58
|
-
[1;36m⚬[0m LLM response received, extracting content (task=append_to_story, response_class=RubyLLM::Message, has_tool_calls=, tool_call_count=0)
|
|
59
|
-
[1;36m⚬[0m Neural task response received (task=append_to_story, response_length=39)
|
|
60
|
-
[1;36m⚬[0m Parsing neural task response (task=append_to_story)
|
|
61
|
-
[1;36m⚬[0m Response parsed successfully (task=append_to_story, output_keys=[:success, :total_sentences])
|
|
62
|
-
[1;36m⚬[0m Validating task outputs (task=append_to_story)
|
|
63
|
-
[1;36m⚬[0m Main execution (71.111s)
|
|
64
|
-
[1;36m⚬[0m Main block completed
|
|
65
|
-
[1;36m⚬[0m Main block execution completed (result={added_sentence: "As she reached out to touch the flower, it suddenly let out a soft humming sound.", total_sentences: 3})
|
|
66
|
-
Added sentence: As she reached out to touch the flower, it suddenly let out a soft humming sound.
|
|
67
|
-
Story now has 3 sentences
|
|
68
|
-
[1;36m⚬[0m Scheduled execution completed - exiting (agent_name=synth-003)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|