Skip to content

Commit 7d7a83c

Browse files
authored
Merge pull request #27 from ogghst/ai-langchain-core
Ai langchain core
2 parents 031253f + 0e4b2eb commit 7d7a83c

37 files changed

Lines changed: 4309 additions & 1047 deletions

backend/alembic/env.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
# Import all models to ensure they are attached to Base.metadata
1515
from app.models.domain import ( # noqa: F401
16+
ai,
1617
branch,
1718
change_order,
1819
change_order_audit_log,
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
"""add_ai_agent_executions_table
2+
3+
Revision ID: 6c93c299c703
4+
Revises: 20260326_add_refresh_tokens
5+
Create Date: 2026-03-29 05:45:42.116363
6+
7+
"""
8+
from typing import Sequence, Union
9+
10+
from alembic import op
11+
import sqlalchemy as sa
12+
13+
14+
# revision identifiers, used by Alembic.
15+
revision: str = '6c93c299c703'
16+
down_revision: Union[str, Sequence[str], None] = '20260326_add_refresh_tokens'
17+
branch_labels: Union[str, Sequence[str], None] = None
18+
depends_on: Union[str, Sequence[str], None] = None
19+
20+
21+
def upgrade() -> None:
22+
"""Upgrade schema."""
23+
op.create_table('ai_agent_executions',
24+
sa.Column('session_id', sa.UUID(), nullable=False),
25+
sa.Column('status', sa.String(length=20), nullable=False),
26+
sa.Column('started_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=False),
27+
sa.Column('completed_at', sa.DateTime(timezone=True), nullable=True),
28+
sa.Column('error_message', sa.Text(), nullable=True),
29+
sa.Column('execution_mode', sa.String(length=20), nullable=False),
30+
sa.Column('total_tokens', sa.Integer(), nullable=False),
31+
sa.Column('tool_calls_count', sa.Integer(), nullable=False),
32+
sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=False),
33+
sa.Column('updated_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=False),
34+
sa.Column('id', sa.UUID(), nullable=False),
35+
sa.ForeignKeyConstraint(['session_id'], ['ai_conversation_sessions.id'], ondelete='CASCADE'),
36+
sa.PrimaryKeyConstraint('id')
37+
)
38+
op.create_index(op.f('ix_ai_agent_executions_session_id'), 'ai_agent_executions', ['session_id'], unique=False)
39+
op.add_column('ai_conversation_sessions', sa.Column('active_execution_id', sa.UUID(), nullable=True, comment='Reference to the currently running or last agent execution'))
40+
41+
42+
def downgrade() -> None:
43+
"""Downgrade schema."""
44+
op.drop_column('ai_conversation_sessions', 'active_execution_id')
45+
op.drop_index(op.f('ix_ai_agent_executions_session_id'), table_name='ai_agent_executions')
46+
op.drop_table('ai_agent_executions')

0 commit comments

Comments
 (0)