You've already forked agentic-coding-workflow
feat(acp): sqlc queries (agent_kinds + sessions + events) + generated code
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
-- name: CreateAgentKind :one
|
||||
INSERT INTO acp_agent_kinds (
|
||||
id, name, display_name, description, binary_path, args, encrypted_env, enabled, created_by
|
||||
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
|
||||
RETURNING id, name, display_name, description, binary_path, args, encrypted_env,
|
||||
enabled, created_by, created_at, updated_at;
|
||||
|
||||
-- name: GetAgentKindByID :one
|
||||
SELECT id, name, display_name, description, binary_path, args, encrypted_env,
|
||||
enabled, created_by, created_at, updated_at
|
||||
FROM acp_agent_kinds
|
||||
WHERE id = $1;
|
||||
|
||||
-- name: GetAgentKindByName :one
|
||||
SELECT id, name, display_name, description, binary_path, args, encrypted_env,
|
||||
enabled, created_by, created_at, updated_at
|
||||
FROM acp_agent_kinds
|
||||
WHERE name = $1;
|
||||
|
||||
-- name: ListAgentKinds :many
|
||||
SELECT id, name, display_name, description, binary_path, args, encrypted_env,
|
||||
enabled, created_by, created_at, updated_at
|
||||
FROM acp_agent_kinds
|
||||
ORDER BY created_at DESC;
|
||||
|
||||
-- name: ListEnabledAgentKinds :many
|
||||
SELECT id, name, display_name, description, binary_path, args, encrypted_env,
|
||||
enabled, created_by, created_at, updated_at
|
||||
FROM acp_agent_kinds
|
||||
WHERE enabled = TRUE
|
||||
ORDER BY name ASC;
|
||||
|
||||
-- name: UpdateAgentKind :one
|
||||
UPDATE acp_agent_kinds
|
||||
SET display_name = $2,
|
||||
description = $3,
|
||||
binary_path = $4,
|
||||
args = $5,
|
||||
encrypted_env = $6,
|
||||
enabled = $7,
|
||||
updated_at = now()
|
||||
WHERE id = $1
|
||||
RETURNING id, name, display_name, description, binary_path, args, encrypted_env,
|
||||
enabled, created_by, created_at, updated_at;
|
||||
|
||||
-- name: DeleteAgentKind :exec
|
||||
DELETE FROM acp_agent_kinds WHERE id = $1;
|
||||
|
||||
-- name: CountAgentKindUsage :one
|
||||
SELECT COUNT(*) FROM acp_sessions WHERE agent_kind_id = $1;
|
||||
@@ -0,0 +1,17 @@
|
||||
-- name: InsertEvent :one
|
||||
INSERT INTO acp_events (
|
||||
session_id, direction, rpc_kind, method, payload, payload_size, truncated
|
||||
) VALUES ($1, $2, $3, $4, $5, $6, $7)
|
||||
RETURNING id, session_id, direction, rpc_kind, method, payload,
|
||||
payload_size, truncated, created_at;
|
||||
|
||||
-- name: ListEventsSince :many
|
||||
SELECT id, session_id, direction, rpc_kind, method, payload,
|
||||
payload_size, truncated, created_at
|
||||
FROM acp_events
|
||||
WHERE session_id = $1 AND id > $2
|
||||
ORDER BY id ASC
|
||||
LIMIT $3;
|
||||
|
||||
-- name: PurgeEventsBefore :execrows
|
||||
DELETE FROM acp_events WHERE created_at < $1;
|
||||
@@ -0,0 +1,67 @@
|
||||
-- name: InsertSession :one
|
||||
INSERT INTO acp_sessions (
|
||||
id, workspace_id, project_id, agent_kind_id, user_id,
|
||||
issue_id, requirement_id, branch, cwd_path, is_main_worktree, status
|
||||
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)
|
||||
RETURNING id, workspace_id, project_id, agent_kind_id, user_id,
|
||||
issue_id, requirement_id, agent_session_id,
|
||||
branch, cwd_path, is_main_worktree, status,
|
||||
pid, exit_code, last_error, started_at, ended_at;
|
||||
|
||||
-- name: GetSessionByID :one
|
||||
SELECT id, workspace_id, project_id, agent_kind_id, user_id,
|
||||
issue_id, requirement_id, agent_session_id,
|
||||
branch, cwd_path, is_main_worktree, status,
|
||||
pid, exit_code, last_error, started_at, ended_at
|
||||
FROM acp_sessions
|
||||
WHERE id = $1;
|
||||
|
||||
-- name: ListSessionsByUser :many
|
||||
SELECT id, workspace_id, project_id, agent_kind_id, user_id,
|
||||
issue_id, requirement_id, agent_session_id,
|
||||
branch, cwd_path, is_main_worktree, status,
|
||||
pid, exit_code, last_error, started_at, ended_at
|
||||
FROM acp_sessions
|
||||
WHERE user_id = $1
|
||||
ORDER BY started_at DESC;
|
||||
|
||||
-- name: ListAllSessions :many
|
||||
SELECT id, workspace_id, project_id, agent_kind_id, user_id,
|
||||
issue_id, requirement_id, agent_session_id,
|
||||
branch, cwd_path, is_main_worktree, status,
|
||||
pid, exit_code, last_error, started_at, ended_at
|
||||
FROM acp_sessions
|
||||
ORDER BY started_at DESC;
|
||||
|
||||
-- name: UpdateSessionRunning :exec
|
||||
UPDATE acp_sessions
|
||||
SET status = 'running', agent_session_id = $2, pid = $3
|
||||
WHERE id = $1;
|
||||
|
||||
-- name: UpdateSessionFinished :exec
|
||||
UPDATE acp_sessions
|
||||
SET status = $2, exit_code = $3, last_error = $4, ended_at = now()
|
||||
WHERE id = $1;
|
||||
|
||||
-- name: CountActiveSessions :one
|
||||
SELECT COUNT(*) FROM acp_sessions WHERE status IN ('starting', 'running');
|
||||
|
||||
-- name: CountActiveSessionsByUser :one
|
||||
SELECT COUNT(*) FROM acp_sessions
|
||||
WHERE user_id = $1 AND status IN ('starting', 'running');
|
||||
|
||||
-- name: ResetStuckSessionsOnRestart :many
|
||||
UPDATE acp_sessions
|
||||
SET status = 'crashed',
|
||||
last_error = 'process_aborted_on_restart',
|
||||
ended_at = now()
|
||||
WHERE status IN ('starting', 'running')
|
||||
RETURNING id, workspace_id, user_id, branch, agent_kind_id, is_main_worktree;
|
||||
|
||||
-- name: ReleaseMainWorktree :execrows
|
||||
UPDATE workspaces SET active_main_session_id = NULL
|
||||
WHERE id = $1 AND active_main_session_id = $2;
|
||||
|
||||
-- name: AcquireMainWorktree :execrows
|
||||
UPDATE workspaces SET active_main_session_id = $1
|
||||
WHERE id = $2 AND active_main_session_id IS NULL;
|
||||
Reference in New Issue
Block a user