///|
fn course_worker_context_bundle(
entry : BookCatalogEntry,
bundle : WorkerContextBundle,
) -> WorkerContextBundle {
let skill_paths = unique_paths(
[..bundle.skill_paths, ..@course_contracts.course_skill_paths()],
)
let context_pages = unique_paths(
[..bundle.context_pages, ..@course_contracts.course_context_pages()],
)
{
book_id: bundle.book_id,
workspace_root: bundle.workspace_root,
task_id: bundle.task_id,
prompt: course_worker_prompt(entry, bundle),
policy: @course_contracts.course_worker_policy_lines(),
routines: @course_contracts.course_worker_routine_lines(),
skill_paths,
context_pages,
active_memory: [],
user_memory: [],
working_memory: [],
memory_summary: @course_contracts.course_worker_memory_summary(entry.id),
output_contract: @course_contracts.course_output_contract_lines(),
}
}
///|
fn course_worker_prompt(
entry : BookCatalogEntry,
bundle : WorkerContextBundle,
) -> String {
let display = display_topic_name(research_topic_id(entry))
@course_contracts.course_worker_prompt(display, bundle.prompt)
}