Skip to content

FIX: Repair XPIA ai_recruiter workflow (HTTP modalities, PDF stem, Message API)#2227

Open
romanlutz wants to merge 3 commits into
microsoft:mainfrom
romanlutz:romanlutz-fix-httpx-target-file-modalities
Open

FIX: Repair XPIA ai_recruiter workflow (HTTP modalities, PDF stem, Message API)#2227
romanlutz wants to merge 3 commits into
microsoft:mainfrom
romanlutz:romanlutz-fix-httpx-target-file-modalities

Conversation

@romanlutz

@romanlutz romanlutz commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Description

This repairs the end-to-end XPIA ai_recruiter workflow, which was broken in three independent places. The workflow generates a PDF with PDFConverter, uploads it to an HTTP endpoint via HTTPXAPITarget, and then triggers candidate search.

  1. HTTPXAPITarget input modalities. _DEFAULT_CONFIGURATION only declared text input, so uploading a binary_path file emitted by PDFConverter failed up front with This target supports only the following data types: text. It now declares text, image_path, audio_path, video_path, and binary_path, using the framework-sanctioned _DEFAULT_CONFIGURATION mechanism (see .github/instructions/targets.instructions.md). No send/upload logic changed; this was purely a missing capability declaration.

  2. PDF template stem preservation. When converting an existing template PDF, PDFConverter now preserves the source file's stem in the output name behind a numeric uniqueness prefix (e.g. <ticks>_Jonathon_Sanchez.pdf), so downstream consumers that derive artifact names from the filename retain provenance instead of a purely numeric name. Generated (non-template) PDFs keep the default numeric serializer name.

  3. Message API migration. The ai_recruiter integration test and the 5_workflow doc are updated to the current Message.from_prompt(...) API, replacing the removed SeedGroup / SeedPrompt entry point for attack_content / processing_prompt.

Tests and Documentation

  • Added unit tests: test_default_configuration_supports_file_path_input_modalities and test_send_prompt_async_binary_path_upload (HTTPXAPITarget), plus test_existing_pdf_output_preserves_source_stem (PDFConverter). All 28 unit tests across the two affected files pass; ruff / format / ty pre-commit hooks are green.
  • Updated the ai_recruiter integration test to the new Message API (exercised under RUN_ALL_TESTS with live services).
  • Updated doc/code/executor/5_workflow.py and its synced .ipynb to the new Message API; jupytext/notebook pre-commit hooks pass. The notebook was not re-executed.

Copilot AI added 3 commits July 17, 2026 21:28
…iguration

HTTPXAPITarget._DEFAULT_CONFIGURATION previously declared only text input, so
uploading a file produced by PDFConverter (which emits binary_path) raised
"This target supports only the following data types: text". Broaden the
default configuration to also declare image_path, audio_path, video_path, and
binary_path input modalities, per the framework-sanctioned _DEFAULT_CONFIGURATION
mechanism.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 70150e7c-5826-4b3b-95d3-773f247b71b8
…w to Message API

PDFConverter now preserves the source template's filename stem in the output name
(behind a numeric uniqueness prefix), so downstream consumers that derive artifact
names from the filename retain provenance instead of a purely numeric name.
Generated (non-template) PDFs keep the default serializer name.

The ai_recruiter XPIA integration test and the 5_workflow doc are migrated to the
current Message.from_prompt API, replacing the removed SeedGroup/SeedPrompt entry
point for attack_content / processing_prompt.

Together with the HTTPXAPITarget input-modality fix, this repairs the end-to-end
XPIA ai_recruiter workflow.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 70150e7c-5826-4b3b-95d3-773f247b71b8
@romanlutz romanlutz changed the title FIX: Accept file-path input modalities in HTTPXAPITarget FIX: Repair XPIA ai_recruiter workflow (HTTP modalities, PDF stem, Message API) Jul 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants