Files
Memoh/internal/db/sqlc/subagents.sql.go
T
BBQ 6aebbe9279 feat: refactor User/Bot architecture and implement multi-channel gateway
Major changes:
1. Core Architecture: Decoupled Bots from Users. Bots now have independent lifecycles, member management (bot_members), and dedicated configurations.
2. Channel Gateway:
   - Implemented a unified Channel Manager supporting Feishu, Telegram, and Local (Web/CLI) adapters.
   - Added message processing pipeline to normalize interactions across different platforms.
   - Introduced a Contact system for identity binding and guest access policies.
3. Database & Tooling:
   - Consolidated all migrations into 0001_init with updated schema for bots, channels, and contacts.
   - Optimized sqlc.yaml to automatically track the migrations directory.
4. Agent Enhancements:
   - Introduced ToolContext to provide Agents with platform-aware execution capabilities (e.g., messaging, contact lookups).
   - Added tool logging and fallback mechanisms for toolChoice execution.
5. UI & Docs: Updated frontend stores, UI components, and Swagger documentation to align with the new Bot-centric model.
2026-02-04 23:49:50 +08:00

236 lines
5.3 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: subagents.sql
package sqlc
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const createSubagent = `-- name: CreateSubagent :one
INSERT INTO subagents (name, description, bot_id, messages, metadata, skills)
VALUES ($1, $2, $3, $4, $5, $6)
RETURNING id, name, description, created_at, updated_at, deleted, deleted_at, bot_id, messages, metadata, skills
`
type CreateSubagentParams struct {
Name string `json:"name"`
Description string `json:"description"`
BotID pgtype.UUID `json:"bot_id"`
Messages []byte `json:"messages"`
Metadata []byte `json:"metadata"`
Skills []byte `json:"skills"`
}
func (q *Queries) CreateSubagent(ctx context.Context, arg CreateSubagentParams) (Subagent, error) {
row := q.db.QueryRow(ctx, createSubagent,
arg.Name,
arg.Description,
arg.BotID,
arg.Messages,
arg.Metadata,
arg.Skills,
)
var i Subagent
err := row.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.CreatedAt,
&i.UpdatedAt,
&i.Deleted,
&i.DeletedAt,
&i.BotID,
&i.Messages,
&i.Metadata,
&i.Skills,
)
return i, err
}
const getSubagentByID = `-- name: GetSubagentByID :one
SELECT id, name, description, created_at, updated_at, deleted, deleted_at, bot_id, messages, metadata, skills
FROM subagents
WHERE id = $1 AND deleted = false
`
func (q *Queries) GetSubagentByID(ctx context.Context, id pgtype.UUID) (Subagent, error) {
row := q.db.QueryRow(ctx, getSubagentByID, id)
var i Subagent
err := row.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.CreatedAt,
&i.UpdatedAt,
&i.Deleted,
&i.DeletedAt,
&i.BotID,
&i.Messages,
&i.Metadata,
&i.Skills,
)
return i, err
}
const listSubagentsByBot = `-- name: ListSubagentsByBot :many
SELECT id, name, description, created_at, updated_at, deleted, deleted_at, bot_id, messages, metadata, skills
FROM subagents
WHERE bot_id = $1 AND deleted = false
ORDER BY created_at DESC
`
func (q *Queries) ListSubagentsByBot(ctx context.Context, botID pgtype.UUID) ([]Subagent, error) {
rows, err := q.db.Query(ctx, listSubagentsByBot, botID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Subagent
for rows.Next() {
var i Subagent
if err := rows.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.CreatedAt,
&i.UpdatedAt,
&i.Deleted,
&i.DeletedAt,
&i.BotID,
&i.Messages,
&i.Metadata,
&i.Skills,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const softDeleteSubagent = `-- name: SoftDeleteSubagent :exec
UPDATE subagents
SET deleted = true,
deleted_at = now(),
updated_at = now()
WHERE id = $1 AND deleted = false
`
func (q *Queries) SoftDeleteSubagent(ctx context.Context, id pgtype.UUID) error {
_, err := q.db.Exec(ctx, softDeleteSubagent, id)
return err
}
const updateSubagent = `-- name: UpdateSubagent :one
UPDATE subagents
SET name = $2,
description = $3,
metadata = $4,
updated_at = now()
WHERE id = $1 AND deleted = false
RETURNING id, name, description, created_at, updated_at, deleted, deleted_at, bot_id, messages, metadata, skills
`
type UpdateSubagentParams struct {
ID pgtype.UUID `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Metadata []byte `json:"metadata"`
}
func (q *Queries) UpdateSubagent(ctx context.Context, arg UpdateSubagentParams) (Subagent, error) {
row := q.db.QueryRow(ctx, updateSubagent,
arg.ID,
arg.Name,
arg.Description,
arg.Metadata,
)
var i Subagent
err := row.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.CreatedAt,
&i.UpdatedAt,
&i.Deleted,
&i.DeletedAt,
&i.BotID,
&i.Messages,
&i.Metadata,
&i.Skills,
)
return i, err
}
const updateSubagentMessages = `-- name: UpdateSubagentMessages :one
UPDATE subagents
SET messages = $2,
updated_at = now()
WHERE id = $1 AND deleted = false
RETURNING id, name, description, created_at, updated_at, deleted, deleted_at, bot_id, messages, metadata, skills
`
type UpdateSubagentMessagesParams struct {
ID pgtype.UUID `json:"id"`
Messages []byte `json:"messages"`
}
func (q *Queries) UpdateSubagentMessages(ctx context.Context, arg UpdateSubagentMessagesParams) (Subagent, error) {
row := q.db.QueryRow(ctx, updateSubagentMessages, arg.ID, arg.Messages)
var i Subagent
err := row.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.CreatedAt,
&i.UpdatedAt,
&i.Deleted,
&i.DeletedAt,
&i.BotID,
&i.Messages,
&i.Metadata,
&i.Skills,
)
return i, err
}
const updateSubagentSkills = `-- name: UpdateSubagentSkills :one
UPDATE subagents
SET skills = $2,
updated_at = now()
WHERE id = $1 AND deleted = false
RETURNING id, name, description, created_at, updated_at, deleted, deleted_at, bot_id, messages, metadata, skills
`
type UpdateSubagentSkillsParams struct {
ID pgtype.UUID `json:"id"`
Skills []byte `json:"skills"`
}
func (q *Queries) UpdateSubagentSkills(ctx context.Context, arg UpdateSubagentSkillsParams) (Subagent, error) {
row := q.db.QueryRow(ctx, updateSubagentSkills, arg.ID, arg.Skills)
var i Subagent
err := row.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.CreatedAt,
&i.UpdatedAt,
&i.Deleted,
&i.DeletedAt,
&i.BotID,
&i.Messages,
&i.Metadata,
&i.Skills,
)
return i, err
}