quick_ideas skill and job (Feature 18) (#146)
CI / ci (push) Successful in 6m22s

Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com>
This commit was merged in pull request #146.
This commit is contained in:
2026-10-08 20:48:04 -04:00
committed by approver_agent
parent 3c58e0c7f7
commit 659d082178
18 changed files with 1800 additions and 110 deletions
+14 -2
View File
@@ -139,7 +139,7 @@ func run(cfg config.Config, logger *slog.Logger) error {
return err
}
ideasSvc, err := ideas.NewService(grounder, ideaFinder(ai, guard), runner, logger)
ideasSvc, err := ideas.NewService(db, grounder, ideaFinder(ai, guard), quickIdeaFinder(ai, guard), runner, logger)
if err != nil {
return err
}
@@ -287,7 +287,7 @@ func newJobRunner(db *store.Store, logger *slog.Logger) (*jobs.Runner, *jobKinds
// starts (dinners.NewService registers dinners.KindGroundDinner and
// suggest.NewService suggest.KindSuggestionBatch, plan.NewService
// plan.KindDraftWeek, shopping.NewService shopping.KindTitleSupplyRun,
// ideas.NewService ideas.KindFromIngredients).
// ideas.NewService ideas.KindFromIngredients and ideas.KindQuick).
func registerJobKinds(runner *jobs.Runner) (*jobKinds, error) {
builtins, err := jobs.RegisterBuiltins(runner)
if err != nil {
@@ -356,6 +356,18 @@ func ideaFinder(ai *aisettings.Service, guard *harness.Guard) ideas.Generator {
}
}
// quickIdeaFinder runs quick_ideas with the AI settings current at each
// run, sharing guard.
func quickIdeaFinder(ai *aisettings.Service, guard *harness.Guard) ideas.QuickGenerator {
return func(ctx context.Context, scope string, in skills.QuickIdeasRequest) (skills.QuickIdeaList, error) {
cfg, err := ai.HarnessConfig(ctx, guard)
if err != nil {
return skills.QuickIdeaList{}, err
}
return skills.QuickIdeas(ctx, cfg, scope, in)
}
}
// logListening logs the startup line. Only the public URL's origin is logged
// so no credential-bearing URL component can reach the log.
func logListening(logger *slog.Logger, cfg config.Config) {