feat(athena): inject non-interactive config placeholders into prompt

Add 4 new .replace() calls for NON_INTERACTIVE_MODE, NON_INTERACTIVE_MEMBERS,
NON_INTERACTIVE_MEMBER_LIST, and BACKGROUND_WAIT_TIMEOUT_MS. Pass athena
non-interactive config from agent-config-handler to createBuiltinAgents.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
ismeth
2026-03-02 22:49:13 +01:00
committed by YeonGyu-Kim
parent 61ccd7f9a7
commit 05d4ecf2ff
@@ -2,6 +2,7 @@
import { describe, expect, it } from "bun:test"
import { ATHENA_PROMPT_METADATA, createAthenaAgent } from "./agent"
import { ATHENA_NON_INTERACTIVE_PROMPT } from "./non-interactive-prompt"
describe("Athena prompt config injection placeholders", () => {
const athenaConfig = createAthenaAgent("anthropic/claude-opus-4-6")
@@ -160,3 +161,25 @@ describe("Athena prompt metadata", () => {
})
})
})
describe("Non-interactive prompt config injection placeholders", () => {
describe("#given the non-interactive prompt", () => {
describe("#when checking for config placeholders", () => {
it("#then contains {NON_INTERACTIVE_MODE} placeholder", () => {
expect(ATHENA_NON_INTERACTIVE_PROMPT).toContain("{NON_INTERACTIVE_MODE}")
})
it("#then contains {NON_INTERACTIVE_MEMBERS} placeholder", () => {
expect(ATHENA_NON_INTERACTIVE_PROMPT).toContain("{NON_INTERACTIVE_MEMBERS}")
})
it("#then contains {NON_INTERACTIVE_MEMBER_LIST} placeholder", () => {
expect(ATHENA_NON_INTERACTIVE_PROMPT).toContain("{NON_INTERACTIVE_MEMBER_LIST}")
})
it("#then contains {BACKGROUND_WAIT_TIMEOUT_MS} placeholder", () => {
expect(ATHENA_NON_INTERACTIVE_PROMPT).toContain("{BACKGROUND_WAIT_TIMEOUT_MS}")
})
})
})
})