agentic 0.1.0 → 0.2.0
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/.agentic.yml +2 -0
- data/.architecture/decisions/ArchitecturalFeatureBuilder.md +136 -0
- data/.architecture/decisions/ArchitectureConsiderations.md +200 -0
- data/.architecture/decisions/adr_001_observer_pattern_implementation.md +196 -0
- data/.architecture/decisions/adr_002_plan_orchestrator.md +320 -0
- data/.architecture/decisions/adr_003_plan_orchestrator_interface.md +179 -0
- data/.architecture/decisions/adrs/ADR-001-dependency-management.md +147 -0
- data/.architecture/decisions/adrs/ADR-002-system-boundaries.md +162 -0
- data/.architecture/decisions/adrs/ADR-003-content-safety.md +158 -0
- data/.architecture/decisions/adrs/ADR-004-agent-permissions.md +161 -0
- data/.architecture/decisions/adrs/ADR-005-adaptation-engine.md +127 -0
- data/.architecture/decisions/adrs/ADR-006-extension-system.md +273 -0
- data/.architecture/decisions/adrs/ADR-007-learning-system.md +156 -0
- data/.architecture/decisions/adrs/ADR-008-prompt-generation.md +325 -0
- data/.architecture/decisions/adrs/ADR-009-task-failure-handling.md +353 -0
- data/.architecture/decisions/adrs/ADR-010-task-input-handling.md +251 -0
- data/.architecture/decisions/adrs/ADR-011-task-observable-pattern.md +391 -0
- data/.architecture/decisions/adrs/ADR-012-task-output-handling.md +205 -0
- data/.architecture/decisions/adrs/ADR-013-architecture-alignment.md +211 -0
- data/.architecture/decisions/adrs/ADR-014-agent-capability-registry.md +80 -0
- data/.architecture/decisions/adrs/ADR-015-persistent-agent-store.md +100 -0
- data/.architecture/decisions/adrs/ADR-016-agent-assembly-engine.md +117 -0
- data/.architecture/decisions/adrs/ADR-017-streaming-observability.md +171 -0
- data/.architecture/decisions/capability_tools_distinction.md +150 -0
- data/.architecture/decisions/cli_command_structure.md +61 -0
- data/.architecture/implementation/agent_self_assembly_implementation.md +267 -0
- data/.architecture/implementation/agent_self_assembly_summary.md +138 -0
- data/.architecture/members.yml +187 -0
- data/.architecture/planning/self_implementation_exercise.md +295 -0
- data/.architecture/planning/session_compaction_rule.md +43 -0
- data/.architecture/planning/streaming_observability_feature.md +223 -0
- data/.architecture/principles.md +151 -0
- data/.architecture/recalibration/0-2-0.md +92 -0
- data/.architecture/recalibration/agent_self_assembly.md +238 -0
- data/.architecture/recalibration/cli_command_structure.md +91 -0
- data/.architecture/recalibration/implementation_roadmap_0-2-0.md +301 -0
- data/.architecture/recalibration/progress_tracking_0-2-0.md +114 -0
- data/.architecture/recalibration_process.md +127 -0
- data/.architecture/reviews/0-2-0.md +181 -0
- data/.architecture/reviews/cli_command_duplication.md +98 -0
- data/.architecture/templates/adr.md +105 -0
- data/.architecture/templates/implementation_roadmap.md +125 -0
- data/.architecture/templates/progress_tracking.md +89 -0
- data/.architecture/templates/recalibration_plan.md +70 -0
- data/.architecture/templates/version_comparison.md +124 -0
- data/.claude/settings.local.json +13 -0
- data/.claude-sessions/001-task-class-architecture-implementation.md +129 -0
- data/.claude-sessions/002-plan-orchestrator-interface-review.md +105 -0
- data/.claude-sessions/architecture-governance-implementation.md +37 -0
- data/.claude-sessions/architecture-review-session.md +27 -0
- data/ArchitecturalFeatureBuilder.md +136 -0
- data/ArchitectureConsiderations.md +229 -0
- data/CHANGELOG.md +57 -2
- data/CLAUDE.md +111 -0
- data/CONTRIBUTING.md +286 -0
- data/MAINTAINING.md +301 -0
- data/README.md +582 -28
- data/docs/agent_capabilities_api.md +259 -0
- data/docs/artifact_extension_points.md +757 -0
- data/docs/artifact_generation_architecture.md +323 -0
- data/docs/artifact_implementation_plan.md +596 -0
- data/docs/artifact_integration_points.md +345 -0
- data/docs/artifact_verification_strategies.md +581 -0
- data/docs/streaming_observability_architecture.md +510 -0
- data/exe/agentic +6 -1
- data/lefthook.yml +5 -0
- data/lib/agentic/adaptation_engine.rb +124 -0
- data/lib/agentic/agent.rb +181 -4
- data/lib/agentic/agent_assembly_engine.rb +442 -0
- data/lib/agentic/agent_capability_registry.rb +260 -0
- data/lib/agentic/agent_config.rb +63 -0
- data/lib/agentic/agent_specification.rb +46 -0
- data/lib/agentic/capabilities/examples.rb +530 -0
- data/lib/agentic/capabilities.rb +14 -0
- data/lib/agentic/capability_provider.rb +146 -0
- data/lib/agentic/capability_specification.rb +118 -0
- data/lib/agentic/cli/agent.rb +31 -0
- data/lib/agentic/cli/capabilities.rb +191 -0
- data/lib/agentic/cli/config.rb +134 -0
- data/lib/agentic/cli/execution_observer.rb +796 -0
- data/lib/agentic/cli.rb +1068 -0
- data/lib/agentic/default_agent_provider.rb +35 -0
- data/lib/agentic/errors/llm_error.rb +184 -0
- data/lib/agentic/execution_plan.rb +53 -0
- data/lib/agentic/execution_result.rb +91 -0
- data/lib/agentic/expected_answer_format.rb +46 -0
- data/lib/agentic/extension/domain_adapter.rb +109 -0
- data/lib/agentic/extension/plugin_manager.rb +163 -0
- data/lib/agentic/extension/protocol_handler.rb +116 -0
- data/lib/agentic/extension.rb +45 -0
- data/lib/agentic/factory_methods.rb +9 -1
- data/lib/agentic/generation_stats.rb +61 -0
- data/lib/agentic/learning/README.md +84 -0
- data/lib/agentic/learning/capability_optimizer.rb +613 -0
- data/lib/agentic/learning/execution_history_store.rb +251 -0
- data/lib/agentic/learning/pattern_recognizer.rb +500 -0
- data/lib/agentic/learning/strategy_optimizer.rb +706 -0
- data/lib/agentic/learning.rb +131 -0
- data/lib/agentic/llm_assisted_composition_strategy.rb +188 -0
- data/lib/agentic/llm_client.rb +215 -15
- data/lib/agentic/llm_config.rb +65 -1
- data/lib/agentic/llm_response.rb +163 -0
- data/lib/agentic/logger.rb +1 -1
- data/lib/agentic/observable.rb +51 -0
- data/lib/agentic/persistent_agent_store.rb +385 -0
- data/lib/agentic/plan_execution_result.rb +129 -0
- data/lib/agentic/plan_orchestrator.rb +464 -0
- data/lib/agentic/plan_orchestrator_config.rb +57 -0
- data/lib/agentic/retry_config.rb +63 -0
- data/lib/agentic/retry_handler.rb +125 -0
- data/lib/agentic/structured_outputs.rb +1 -1
- data/lib/agentic/task.rb +193 -0
- data/lib/agentic/task_definition.rb +39 -0
- data/lib/agentic/task_execution_result.rb +92 -0
- data/lib/agentic/task_failure.rb +66 -0
- data/lib/agentic/task_output_schemas.rb +112 -0
- data/lib/agentic/task_planner.rb +54 -19
- data/lib/agentic/task_result.rb +48 -0
- data/lib/agentic/ui.rb +244 -0
- data/lib/agentic/verification/critic_framework.rb +116 -0
- data/lib/agentic/verification/llm_verification_strategy.rb +60 -0
- data/lib/agentic/verification/schema_verification_strategy.rb +47 -0
- data/lib/agentic/verification/verification_hub.rb +62 -0
- data/lib/agentic/verification/verification_result.rb +50 -0
- data/lib/agentic/verification/verification_strategy.rb +26 -0
- data/lib/agentic/version.rb +1 -1
- data/lib/agentic.rb +74 -2
- data/plugins/README.md +41 -0
- metadata +245 -6
@@ -0,0 +1,323 @@
|
|
1
|
+
# Artifact Generation Architecture
|
2
|
+
|
3
|
+
## Executive Summary
|
4
|
+
|
5
|
+
This document outlines the architectural design for adding artifact generation capabilities to the Agentic framework. The proposed system extends the current task-execution model to produce concrete artifacts (files, applications, programs) rather than just text summaries.
|
6
|
+
|
7
|
+
## Current State Analysis
|
8
|
+
|
9
|
+
### Existing Components
|
10
|
+
- **Task System**: Tasks produce text/JSON outputs through agents
|
11
|
+
- **Agent System**: Agents execute prompts and return structured responses
|
12
|
+
- **Capability System**: Extensible abilities like `code_generation` that produce text code
|
13
|
+
- **Orchestration System**: Handles task dependencies, concurrency, and lifecycle
|
14
|
+
- **Verification System**: Quality assurance and validation of outputs
|
15
|
+
- **Extension System**: Plugin architecture for domain-specific functionality
|
16
|
+
|
17
|
+
### Current Limitations
|
18
|
+
1. **Output Format**: Tasks only produce text/JSON responses stored in memory
|
19
|
+
2. **Artifact Persistence**: No mechanism for writing generated content to files
|
20
|
+
3. **Multi-file Generation**: Cannot coordinate creation of multiple related files
|
21
|
+
4. **Artifact Verification**: No validation of actual file artifacts vs. text content
|
22
|
+
5. **Workspace Management**: No concept of working directories or project structures
|
23
|
+
|
24
|
+
## Proposed Architecture
|
25
|
+
|
26
|
+
### Core Design Principles
|
27
|
+
|
28
|
+
Following the established architectural patterns:
|
29
|
+
|
30
|
+
1. **Layer Separation**: Artifact generation spans Foundation, Runtime, and Verification layers
|
31
|
+
2. **Extension Points**: Support for different artifact types and generators
|
32
|
+
3. **Observable Pattern**: Stream artifact creation events for monitoring
|
33
|
+
4. **Result-Oriented**: Concrete artifact results with success/failure handling
|
34
|
+
5. **Dependency Injection**: Configurable artifact generators and writers
|
35
|
+
|
36
|
+
### System Components
|
37
|
+
|
38
|
+
#### 1. Foundation Layer Additions
|
39
|
+
|
40
|
+
**ArtifactRegistry**
|
41
|
+
- Central registry for artifact types and generators
|
42
|
+
- Manages artifact type specifications and providers
|
43
|
+
- Handles versioning and compatibility
|
44
|
+
|
45
|
+
**ArtifactSpecification**
|
46
|
+
```ruby
|
47
|
+
class ArtifactSpecification
|
48
|
+
attr_reader :type, :file_extension, :validation_rules, :dependencies
|
49
|
+
|
50
|
+
# type: "source_code", "configuration", "documentation", "executable"
|
51
|
+
# file_extension: ".rb", ".json", ".md", ".exe"
|
52
|
+
# validation_rules: syntax checking, linting, testing
|
53
|
+
# dependencies: related artifact types needed
|
54
|
+
end
|
55
|
+
```
|
56
|
+
|
57
|
+
**ArtifactGenerator**
|
58
|
+
```ruby
|
59
|
+
class ArtifactGenerator
|
60
|
+
# Generates content for specific artifact types
|
61
|
+
# Interfaces with LLM agents to produce artifact content
|
62
|
+
# Handles template-based generation and content structuring
|
63
|
+
end
|
64
|
+
```
|
65
|
+
|
66
|
+
#### 2. Runtime Layer Extensions
|
67
|
+
|
68
|
+
**ArtifactTask** (extends Task)
|
69
|
+
```ruby
|
70
|
+
class ArtifactTask < Task
|
71
|
+
attr_reader :artifact_specs, :workspace_path, :artifacts_produced
|
72
|
+
|
73
|
+
# artifact_specs: Array of ArtifactSpecification defining what to create
|
74
|
+
# workspace_path: Directory where artifacts should be written
|
75
|
+
# artifacts_produced: Array of ArtifactResult objects
|
76
|
+
end
|
77
|
+
```
|
78
|
+
|
79
|
+
**ArtifactResult** (extends TaskResult)
|
80
|
+
```ruby
|
81
|
+
class ArtifactResult < TaskResult
|
82
|
+
attr_reader :artifacts, :workspace_metadata
|
83
|
+
|
84
|
+
# artifacts: Array of individual artifact files created
|
85
|
+
# workspace_metadata: Directory structure, file relationships, etc.
|
86
|
+
end
|
87
|
+
```
|
88
|
+
|
89
|
+
**Artifact** (individual file/resource)
|
90
|
+
```ruby
|
91
|
+
class Artifact
|
92
|
+
attr_reader :type, :path, :content, :metadata, :verification_status
|
93
|
+
|
94
|
+
# type: ArtifactSpecification type
|
95
|
+
# path: Absolute file path where written
|
96
|
+
# content: Generated content (for in-memory validation)
|
97
|
+
# metadata: Size, timestamps, dependencies, etc.
|
98
|
+
# verification_status: Validation results
|
99
|
+
end
|
100
|
+
```
|
101
|
+
|
102
|
+
**WorkspaceManager**
|
103
|
+
```ruby
|
104
|
+
class WorkspaceManager
|
105
|
+
# Manages working directories for artifact generation
|
106
|
+
# Handles directory creation, cleanup, and organization
|
107
|
+
# Tracks file dependencies and relationships
|
108
|
+
# Provides sandboxed environments for generation
|
109
|
+
end
|
110
|
+
```
|
111
|
+
|
112
|
+
#### 3. Verification Layer Extensions
|
113
|
+
|
114
|
+
**ArtifactVerificationStrategy**
|
115
|
+
```ruby
|
116
|
+
class ArtifactVerificationStrategy < VerificationStrategy
|
117
|
+
# Validates generated artifacts using appropriate tools:
|
118
|
+
# - Syntax checking for code files
|
119
|
+
# - Schema validation for configuration files
|
120
|
+
# - Linting and formatting checks
|
121
|
+
# - Execution testing for programs
|
122
|
+
# - Link checking for documentation
|
123
|
+
end
|
124
|
+
```
|
125
|
+
|
126
|
+
**ArtifactQualityMetrics**
|
127
|
+
```ruby
|
128
|
+
class ArtifactQualityMetrics
|
129
|
+
# Measures artifact quality:
|
130
|
+
# - Code complexity and maintainability
|
131
|
+
# - Documentation completeness
|
132
|
+
# - Test coverage (if applicable)
|
133
|
+
# - Performance characteristics
|
134
|
+
# - Security compliance
|
135
|
+
end
|
136
|
+
```
|
137
|
+
|
138
|
+
#### 4. Extension System Enhancements
|
139
|
+
|
140
|
+
**ArtifactTypeProvider** (plugin interface)
|
141
|
+
```ruby
|
142
|
+
class ArtifactTypeProvider
|
143
|
+
# Plugin interface for supporting new artifact types
|
144
|
+
# Defines generation strategies, validation rules, and tooling
|
145
|
+
# Examples: RubyGemProvider, ReactAppProvider, DockerImageProvider
|
146
|
+
end
|
147
|
+
```
|
148
|
+
|
149
|
+
**WorkspaceTemplate**
|
150
|
+
```ruby
|
151
|
+
class WorkspaceTemplate
|
152
|
+
# Predefined project structures for different domains
|
153
|
+
# Ruby gem template, React app template, CLI tool template
|
154
|
+
# Handles scaffolding and initial file structure
|
155
|
+
end
|
156
|
+
```
|
157
|
+
|
158
|
+
### Data Flow Architecture
|
159
|
+
|
160
|
+
```
|
161
|
+
Goal/Requirements → TaskPlanner → ArtifactTask Creation
|
162
|
+
↓
|
163
|
+
Agent Selection → Artifact Specification Analysis
|
164
|
+
↓
|
165
|
+
Workspace Preparation → Content Generation → File Writing
|
166
|
+
↓
|
167
|
+
Artifact Verification → Quality Assessment → Result Package
|
168
|
+
↓
|
169
|
+
Human Review (if needed) → Final Artifact Delivery
|
170
|
+
```
|
171
|
+
|
172
|
+
### Integration Points
|
173
|
+
|
174
|
+
#### Task System Integration
|
175
|
+
- **ArtifactTask** extends existing Task class
|
176
|
+
- Maintains compatibility with current orchestration
|
177
|
+
- Observable events for artifact creation progress
|
178
|
+
- Results integrate with existing TaskResult handling
|
179
|
+
|
180
|
+
#### Agent System Integration
|
181
|
+
- Agents gain `generate_artifact` capability
|
182
|
+
- Multi-step artifact generation coordination
|
183
|
+
- Content generation separated from file writing
|
184
|
+
- Supports both single and multi-file projects
|
185
|
+
|
186
|
+
#### Capability System Integration
|
187
|
+
- New artifact generation capabilities:
|
188
|
+
- `file_generation`: Creates individual files
|
189
|
+
- `project_scaffolding`: Sets up project structures
|
190
|
+
- `multi_file_coordination`: Manages file dependencies
|
191
|
+
- `workspace_management`: Handles directories and organization
|
192
|
+
|
193
|
+
#### Verification Integration
|
194
|
+
- **ArtifactVerificationHub** coordinates validation
|
195
|
+
- Type-specific verification strategies
|
196
|
+
- Integration with external tools (linters, compilers, testers)
|
197
|
+
- Quality metrics collection and reporting
|
198
|
+
|
199
|
+
### Example Usage Scenarios
|
200
|
+
|
201
|
+
#### Single File Generation
|
202
|
+
```ruby
|
203
|
+
task = ArtifactTask.new(
|
204
|
+
description: "Create a Ruby class for user authentication",
|
205
|
+
artifact_specs: [
|
206
|
+
ArtifactSpecification.new(
|
207
|
+
type: "ruby_class",
|
208
|
+
file_extension: ".rb",
|
209
|
+
validation_rules: ["syntax_check", "rubocop_lint"]
|
210
|
+
)
|
211
|
+
],
|
212
|
+
workspace_path: "/tmp/auth_project"
|
213
|
+
)
|
214
|
+
```
|
215
|
+
|
216
|
+
#### Multi-File Project Generation
|
217
|
+
```ruby
|
218
|
+
task = ArtifactTask.new(
|
219
|
+
description: "Create a complete Ruby gem for API client",
|
220
|
+
artifact_specs: [
|
221
|
+
ArtifactSpecification.new(type: "gemspec"),
|
222
|
+
ArtifactSpecification.new(type: "ruby_source"),
|
223
|
+
ArtifactSpecification.new(type: "test_files"),
|
224
|
+
ArtifactSpecification.new(type: "documentation"),
|
225
|
+
ArtifactSpecification.new(type: "configuration")
|
226
|
+
],
|
227
|
+
workspace_template: "ruby_gem",
|
228
|
+
workspace_path: "/tmp/api_client_gem"
|
229
|
+
)
|
230
|
+
```
|
231
|
+
|
232
|
+
#### Application Generation
|
233
|
+
```ruby
|
234
|
+
task = ArtifactTask.new(
|
235
|
+
description: "Create a React web application for task management",
|
236
|
+
artifact_specs: [
|
237
|
+
ArtifactSpecification.new(type: "react_components"),
|
238
|
+
ArtifactSpecification.new(type: "css_styles"),
|
239
|
+
ArtifactSpecification.new(type: "package_json"),
|
240
|
+
ArtifactSpecification.new(type: "build_configuration")
|
241
|
+
],
|
242
|
+
workspace_template: "react_app",
|
243
|
+
workspace_path: "/tmp/task_manager_app"
|
244
|
+
)
|
245
|
+
```
|
246
|
+
|
247
|
+
## Implementation Strategy
|
248
|
+
|
249
|
+
### Phase 1: Core Infrastructure
|
250
|
+
1. Implement ArtifactSpecification and ArtifactRegistry
|
251
|
+
2. Create WorkspaceManager for directory handling
|
252
|
+
3. Extend Task system with ArtifactTask
|
253
|
+
4. Basic file writing and result tracking
|
254
|
+
|
255
|
+
### Phase 2: Generation Engine
|
256
|
+
1. Implement ArtifactGenerator with LLM integration
|
257
|
+
2. Add basic artifact types (text files, simple code)
|
258
|
+
3. Create verification strategies for common types
|
259
|
+
4. Observable events for artifact creation
|
260
|
+
|
261
|
+
### Phase 3: Orchestration Integration
|
262
|
+
1. Integrate with PlanOrchestrator
|
263
|
+
2. Multi-file coordination and dependencies
|
264
|
+
3. Workspace templates and scaffolding
|
265
|
+
4. Enhanced error handling and recovery
|
266
|
+
|
267
|
+
### Phase 4: Advanced Features
|
268
|
+
1. Plugin system for custom artifact types
|
269
|
+
2. Advanced verification with external tools
|
270
|
+
3. Quality metrics and optimization
|
271
|
+
4. Human intervention points for review
|
272
|
+
|
273
|
+
### Phase 5: Domain Specialization
|
274
|
+
1. Pre-built providers for common scenarios
|
275
|
+
2. Framework-specific templates (Rails, React, etc.)
|
276
|
+
3. Integration with package managers and build systems
|
277
|
+
4. Deployment and distribution capabilities
|
278
|
+
|
279
|
+
## Benefits
|
280
|
+
|
281
|
+
### For Users
|
282
|
+
- **Concrete Deliverables**: Actual working code/files instead of descriptions
|
283
|
+
- **Complete Projects**: Generate entire applications, not just components
|
284
|
+
- **Quality Assurance**: Built-in validation and testing of generated artifacts
|
285
|
+
- **Workspace Organization**: Proper project structure and file organization
|
286
|
+
|
287
|
+
### For System
|
288
|
+
- **Extensibility**: Plugin architecture for new artifact types
|
289
|
+
- **Reusability**: Template-based generation for common patterns
|
290
|
+
- **Observability**: Full visibility into artifact creation process
|
291
|
+
- **Verification**: Comprehensive quality control and validation
|
292
|
+
|
293
|
+
### For Developers
|
294
|
+
- **Rapid Prototyping**: Quickly generate working prototypes
|
295
|
+
- **Scaffolding**: Automated project setup and boilerplate
|
296
|
+
- **Best Practices**: Built-in adherence to coding standards
|
297
|
+
- **Learning**: See complete, working examples of desired functionality
|
298
|
+
|
299
|
+
## Risk Mitigation
|
300
|
+
|
301
|
+
### Security Considerations
|
302
|
+
- **Sandboxed Workspaces**: Isolated generation environments
|
303
|
+
- **Path Validation**: Prevent directory traversal attacks
|
304
|
+
- **Content Scanning**: Validate generated content for security issues
|
305
|
+
- **Permission Controls**: Limit file system access and capabilities
|
306
|
+
|
307
|
+
### Quality Assurance
|
308
|
+
- **Multi-Layer Verification**: Syntax, linting, testing validation
|
309
|
+
- **Human Review Points**: Configurable checkpoints for approval
|
310
|
+
- **Rollback Capabilities**: Ability to undo artifact generation
|
311
|
+
- **Version Control Integration**: Track changes and history
|
312
|
+
|
313
|
+
### Performance Considerations
|
314
|
+
- **Incremental Generation**: Stream artifact creation for large projects
|
315
|
+
- **Parallel Processing**: Coordinate multiple file generation
|
316
|
+
- **Resource Management**: Limit workspace size and generation time
|
317
|
+
- **Caching**: Reuse common templates and patterns
|
318
|
+
|
319
|
+
## Conclusion
|
320
|
+
|
321
|
+
This artifact generation architecture extends Agentic's current capabilities while maintaining architectural consistency and extensibility. The system provides a robust foundation for creating concrete deliverables while preserving the quality, verification, and human oversight principles that make Agentic effective.
|
322
|
+
|
323
|
+
The phased implementation approach allows for incremental development and validation, ensuring each component integrates well with the existing system before adding complexity.
|