diff --git a/lab/brief_to_letter_chain.py b/lab/brief_to_letter_chain.py index 3ff8296..5e79735 100644 --- a/lab/brief_to_letter_chain.py +++ b/lab/brief_to_letter_chain.py @@ -89,10 +89,11 @@ MISSING_SENTINEL, OFFER_NOT_FOUND_PREFIX, OUTPUT_DIR, + POSTING_BOTH_INPUTS, + POSTING_NO_INPUT, POSTING_RESULT_PREFIX, SERVER_NAME, TEMPLATE_RELPATH, - _NON_RENDERED_RE, _REFERENCE_CODE_RE, _find_untrusted_identifiers, _identifier_tokens, @@ -137,10 +138,11 @@ "MISSING_SENTINEL", "OFFER_NOT_FOUND_PREFIX", "OUTPUT_DIR", + "POSTING_BOTH_INPUTS", + "POSTING_NO_INPUT", "POSTING_RESULT_PREFIX", "SERVER_NAME", "TEMPLATE_RELPATH", - "_NON_RENDERED_RE", "_REFERENCE_CODE_RE", "_find_untrusted_identifiers", "_identifier_tokens", @@ -210,7 +212,10 @@ def build_tools(): ) async def load_job_posting(args): try: - text = core.build_posting_load(args["offer_path"]) + text = core.build_posting_load( + offer_path=args.get("offer_path"), + offer_body=args.get("offer_body"), + ) except FileNotFoundError: return { "content": [ @@ -222,6 +227,8 @@ async def load_job_posting(args): ], "is_error": True, } + except ValueError as e: + return {"content": [{"type": "text", "text": str(e)}], "is_error": True} return { "content": [{"type": "text", "text": core.POSTING_RESULT_PREFIX + text}] } diff --git a/lab/test_chain_tools.py b/lab/test_chain_tools.py index 79abc17..ddb2621 100644 --- a/lab/test_chain_tools.py +++ b/lab/test_chain_tools.py @@ -36,6 +36,7 @@ from pathlib import Path import brief_to_letter_chain as chain +import lxml.html from claude_agent_sdk.types import ResultMessage CANARY_BY_FIXTURE = { @@ -413,6 +414,74 @@ def main(): check("drops