The temporary file created for response-file was being cleaned up
before downstream steps could access it. Now using keep: true to
ensure the file persists until the job completes.
Also added script/ to eslint ignores for the mock server.
In a tool loop, you can't set response_format because the model needs to
be able to think in plain English. But you still need the final response
to be in the desired format, so we add response_format only on the last
iteration.
- Add defensive check for response.body existence to prevent undefined property access
- Include x-ms-error-code header in error messages for better debugging
- Provide clearer error messages for different failure scenarios
- Fix 'Cannot read properties of undefined (reading 'error')' runtime error
This improves the debugging experience when AI service requests fail due to
network issues, authentication errors, or unexpected response formats.
This enhancement adds the ability to load a system prompt from a file, similar to
the existing prompt-file functionality, providing more flexibility when working with
complex system prompts.
Key changes:
- Added new `system-prompt-file` input to action.yml with proper description
- Updated main.ts implementation to handle file-based system prompts with:
- File existence checking and appropriate error handling
- Proper precedence (system-prompt-file takes priority over system-prompt)
- Consistent error messages with existing prompt-file implementation
Test coverage added:
- Basic usage: Test verifies system-prompt-file loads content correctly
- Error handling: Test ensures proper errors when system-prompt-file doesn't exist
- Precedence: Test confirms system-prompt-file overrides system-prompt when both exist
- Integration: Test validates both prompt-file and system-prompt-file work together
- Max tokens: Test verifies custom token limits are properly passed to the model
- Testing infrastructure: Improved mock implementations that detect unexpected calls
Documentation:
- Updated README.md with system-prompt-file in inputs table
- Added dedicated usage example for system-prompt-file
- Fixed formatting in inputs table
CI/CD:
- Updated workflow to test system-prompt-file functionality with actual file content
This feature maintains backward compatibility while adding a useful option
for workflows that need to use more complex system prompts stored in files.