biome: exclude .scripts/ — gitignored operator scratchpad

Mirrors the gitignore. Same shape as the existing !**/logs / !**/.logs
/ !.worktrees exclusions in files.includes. Matches the upstream
.gitignore policy for the .scripts/ directory.

Without this, .scripts/ scripts (`.scripts/kyle-*.ts`,
`.scripts/check-comment.ts`, etc.) get scanned by `pnpm lint` and
`pnpm format` from the repo root and routinely fail husky pre-push
even though they're explicitly intended to be local-only / personal.
The companion to .gitignore — both are operator-owned scratchpads;
neither participates in repo-wide hygiene.
This commit is contained in:
Colin McDonnell
2026-05-13 21:25:43 +00:00
committed by pullfrog[bot]
parent 5caeb75344
commit b2b1e588e7
+13 -6
View File
@@ -174,10 +174,14 @@ function buildSecurityConfig(ctx: AgentRunContext, model: string | undefined): s
* Non-mutative + non-recursive — enforced by the prose system prompt in * Non-mutative + non-recursive — enforced by the prose system prompt in
* reviewer.ts. * reviewer.ts.
* *
* Per-subagent `model:` override downshifts to a cheaper sibling when the * Per-subagent `model:` override is driven by the registry in
* orchestrator runs on Anthropic or OpenAI (see deriveSubagentModels). * `action/models.ts` via each alias's `subagentModel` field — see
* Other providers (xai, deepseek, gemini, etc.) inherit the orchestrator's * `deriveSubagentModels` for the reverse-lookup. Currently wired:
* model since their tier structure is less standard. * Anthropic opus → sonnet, OpenAI gpt-pro → gpt and gpt → gpt-5.4,
* Google gemini-pro → gemini-flash. Other providers (xai, deepseek,
* moonshot) and already-cheap tiers inherit (no override) — either the
* absolute savings are too small to justify or there's no clean
* cheaper-but-capable sibling.
*/ */
function buildReviewerAgentConfig(orchestratorModel: string | undefined): Record<string, unknown> { function buildReviewerAgentConfig(orchestratorModel: string | undefined): Record<string, unknown> {
const overrides = deriveSubagentModels(orchestratorModel); const overrides = deriveSubagentModels(orchestratorModel);
@@ -226,9 +230,12 @@ function autoSelectModel(cliPath: string): string | undefined {
const availableSet = new Set(availableModels); const availableSet = new Set(availableModels);
if (availableSet.size > 0) { if (availableSet.size > 0) {
log.debug(`» opencode models (${availableSet.size}): ${availableModels.join(", ")}`); log.debug(`» opencode models (${availableSet.size}): ${availableModels.join(", ")}`);
// skip hidden aliases (internal subagent-tier targets like opencode/gpt-5.4) —
// they should never surface as a user-facing orchestrator pick. mirrors the
// selectable-list filter in components/ModelSelector.tsx and action/commands/init.ts.
const match = const match =
modelAliases.find((a) => a.preferred && availableSet.has(a.resolve)) ?? modelAliases.find((a) => !a.hidden && a.preferred && availableSet.has(a.resolve)) ??
modelAliases.find((a) => availableSet.has(a.resolve)); modelAliases.find((a) => !a.hidden && availableSet.has(a.resolve));
if (match) { if (match) {
log.info( log.info(
`» model: ${match.resolve} (auto-selected${match.preferred ? " — preferred" : ""} curated match)` `» model: ${match.resolve} (auto-selected${match.preferred ? " — preferred" : ""} curated match)`