Artifex/control_plane/agents/migrations/0006_progenyinvestigation_improvementcandidate.py
2026-08-15 17:53:52 +07:00

53 lines
3.2 KiB
Python

from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
dependencies = [
("agents", "0005_progenysignal_graph_lineage"),
("graph", "0004_unique_champion_graph_version"),
]
operations = [
migrations.CreateModel(
name="ProgenyInvestigation",
fields=[
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
("created_at", models.DateTimeField(auto_now_add=True)),
("updated_at", models.DateTimeField(auto_now=True)),
("status", models.CharField(default="OPEN", max_length=32)),
("signal_clusters", models.JSONField(blank=True, default=list)),
("affected_projects", models.JSONField(blank=True, default=list)),
("affected_agents", models.JSONField(blank=True, default=list)),
("affected_graph_versions", models.JSONField(blank=True, default=list)),
("affected_nodes", models.JSONField(blank=True, default=list)),
("hypotheses", models.JSONField(blank=True, default=list)),
("recommended_target", models.CharField(max_length=80)),
("confidence", models.FloatField(default=0.0)),
("recommended_route", models.CharField(max_length=120)),
("proposed_experiments", models.JSONField(blank=True, default=list)),
("expected_impact", models.TextField(blank=True)),
("estimated_cost", models.CharField(blank=True, max_length=80)),
("signals", models.ManyToManyField(blank=True, related_name="investigations", to="agents.progenysignal")),
],
),
migrations.CreateModel(
name="ImprovementCandidate",
fields=[
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
("created_at", models.DateTimeField(auto_now_add=True)),
("updated_at", models.DateTimeField(auto_now=True)),
("status", models.CharField(default="PROPOSED", max_length=32)),
("target_type", models.CharField(max_length=80)),
("target_id", models.CharField(blank=True, max_length=120)),
("target_label", models.CharField(blank=True, max_length=240)),
("hypothesis", models.TextField()),
("recommended_route", models.CharField(blank=True, max_length=120)),
("evidence", models.JSONField(blank=True, default=dict)),
("agent_version", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="improvement_candidates", to="agents.agentversion")),
("execution_graph_version", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="improvement_candidates", to="graph.executiongraphversion")),
("investigation", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="improvement_candidates", to="agents.progenyinvestigation")),
],
),
]