Files
MealQuest/internal/db/household_context.sql.go
T
dev_agentandClaude Opus 5.5 b3740ddc12
CI / ci (push) Successful in 2m12s
CI / ci (pull_request) Successful in 1m31s
Household context builder with token budget
harness.BuildContext reads the household context in one read transaction:
today and its weekday in the household timezone, Regulars (cuisine, method,
minutes, favorite), the Quest log, the last 60 passed Side quests and the
plans of the last four ISO weeks. A character budget trims the oldest plans
first, then the oldest passes, never Regulars; a budget too small for what
is never trimmed is an error.

Maestro task 2f54cec9-ec41-42af-b8ee-9e24b8c63057

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 08:19:37 -04:00

89 lines
2.1 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.31.1
// source: household_context.sql
package db
import (
"context"
)
const listPlannedDinners = `-- name: ListPlannedDinners :many
SELECT plan_days.date, dinners.name
FROM plan_days
JOIN dinners ON dinners.id = plan_days.dinner_id
WHERE plan_days.date >= ?1 AND plan_days.date < ?2
ORDER BY plan_days.date, plan_days.id
`
type ListPlannedDinnersParams struct {
FromDate string
ToDate string
}
type ListPlannedDinnersRow struct {
Date string
Name string
}
// The planned dinners dated from from_date up to but not including
// to_date, oldest first. Days with no dinner are left out.
func (q *Queries) ListPlannedDinners(ctx context.Context, arg ListPlannedDinnersParams) ([]ListPlannedDinnersRow, error) {
rows, err := q.db.QueryContext(ctx, listPlannedDinners, arg.FromDate, arg.ToDate)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListPlannedDinnersRow
for rows.Next() {
var i ListPlannedDinnersRow
if err := rows.Scan(&i.Date, &i.Name); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listRecentDeclinedNames = `-- name: ListRecentDeclinedNames :many
SELECT dinners.name
FROM suggestions
JOIN dinners ON dinners.id = suggestions.dinner_id
WHERE suggestions.status = 'declined'
ORDER BY suggestions.decided_at DESC, suggestions.id DESC
LIMIT ?
`
// Reads for the AI household context block (internal/ai/harness).
// The names of the most recently declined suggestions, newest first.
func (q *Queries) ListRecentDeclinedNames(ctx context.Context, limit int64) ([]string, error) {
rows, err := q.db.QueryContext(ctx, listRecentDeclinedNames, limit)
if err != nil {
return nil, err
}
defer rows.Close()
var items []string
for rows.Next() {
var name string
if err := rows.Scan(&name); err != nil {
return nil, err
}
items = append(items, name)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}