diff --git a/.github/workflows/test-ai-inference-github-models.lock.yml b/.github/workflows/test-ai-inference-github-models.lock.yml index 9990cfaeb19..5d08ca728e5 100644 --- a/.github/workflows/test-ai-inference-github-models.lock.yml +++ b/.github/workflows/test-ai-inference-github-models.lock.yml @@ -489,7 +489,28 @@ jobs: run: | echo "Custom steps execution completed" >> /tmp/test-ai-inference-github-models.log touch /tmp/test-ai-inference-github-models.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -742,6 +763,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1186,33 +1208,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-add-issue-comment.lock.yml b/.github/workflows/test-claude-add-issue-comment.lock.yml index dd848e6b608..459a950bb3d 100644 --- a/.github/workflows/test-claude-add-issue-comment.lock.yml +++ b/.github/workflows/test-claude-add-issue-comment.lock.yml @@ -676,7 +676,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-add-issue-comment.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -929,6 +950,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1373,33 +1395,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-add-issue-labels.lock.yml b/.github/workflows/test-claude-add-issue-labels.lock.yml index f7b41d1f612..3254445213b 100644 --- a/.github/workflows/test-claude-add-issue-labels.lock.yml +++ b/.github/workflows/test-claude-add-issue-labels.lock.yml @@ -676,7 +676,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-add-issue-labels.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -929,6 +950,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1373,33 +1395,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-command.lock.yml b/.github/workflows/test-claude-command.lock.yml index 724f7d22fb3..289db72c82d 100644 --- a/.github/workflows/test-claude-command.lock.yml +++ b/.github/workflows/test-claude-command.lock.yml @@ -849,7 +849,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-command.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -1102,6 +1123,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1546,33 +1568,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-create-issue.lock.yml b/.github/workflows/test-claude-create-issue.lock.yml index 58d2682339f..9669384de04 100644 --- a/.github/workflows/test-claude-create-issue.lock.yml +++ b/.github/workflows/test-claude-create-issue.lock.yml @@ -349,7 +349,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-create-issue.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -602,6 +623,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1046,33 +1068,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-create-pull-request-review-comment.lock.yml b/.github/workflows/test-claude-create-pull-request-review-comment.lock.yml index 312a5c8842f..0bec637f17f 100644 --- a/.github/workflows/test-claude-create-pull-request-review-comment.lock.yml +++ b/.github/workflows/test-claude-create-pull-request-review-comment.lock.yml @@ -622,7 +622,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-create-pull-request-review-comment.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -875,6 +896,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1319,33 +1341,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-create-pull-request.lock.yml b/.github/workflows/test-claude-create-pull-request.lock.yml index 24c066873a4..5822b75c5f9 100644 --- a/.github/workflows/test-claude-create-pull-request.lock.yml +++ b/.github/workflows/test-claude-create-pull-request.lock.yml @@ -425,7 +425,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-create-pull-request.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -678,6 +699,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1122,33 +1144,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-create-security-report.lock.yml b/.github/workflows/test-claude-create-security-report.lock.yml index 4a1d60b844d..7ea42c07ad6 100644 --- a/.github/workflows/test-claude-create-security-report.lock.yml +++ b/.github/workflows/test-claude-create-security-report.lock.yml @@ -611,7 +611,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-create-security-report.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -864,6 +885,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1308,33 +1330,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-mcp.lock.yml b/.github/workflows/test-claude-mcp.lock.yml index f4cd90b6f53..d87693d5f0e 100644 --- a/.github/workflows/test-claude-mcp.lock.yml +++ b/.github/workflows/test-claude-mcp.lock.yml @@ -631,7 +631,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-mcp.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -884,6 +905,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1328,33 +1350,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-push-to-branch.lock.yml b/.github/workflows/test-claude-push-to-branch.lock.yml index af67ecaf4dc..e9e855b5c40 100644 --- a/.github/workflows/test-claude-push-to-branch.lock.yml +++ b/.github/workflows/test-claude-push-to-branch.lock.yml @@ -518,7 +518,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-push-to-branch.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -771,6 +792,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1215,33 +1237,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-claude-update-issue.lock.yml b/.github/workflows/test-claude-update-issue.lock.yml index 136662338af..3ec3de1ab9d 100644 --- a/.github/workflows/test-claude-update-issue.lock.yml +++ b/.github/workflows/test-claude-update-issue.lock.yml @@ -679,7 +679,28 @@ jobs: # Ensure log file exists touch /tmp/test-claude-update-issue.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -932,6 +953,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1376,33 +1398,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-add-issue-comment.lock.yml b/.github/workflows/test-codex-add-issue-comment.lock.yml index c0509885489..a4874ac6f85 100644 --- a/.github/workflows/test-codex-add-issue-comment.lock.yml +++ b/.github/workflows/test-codex-add-issue-comment.lock.yml @@ -507,7 +507,28 @@ jobs: GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -760,6 +781,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1204,33 +1226,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-add-issue-labels.lock.yml b/.github/workflows/test-codex-add-issue-labels.lock.yml index be5c350bd3f..9f2008445bf 100644 --- a/.github/workflows/test-codex-add-issue-labels.lock.yml +++ b/.github/workflows/test-codex-add-issue-labels.lock.yml @@ -507,7 +507,28 @@ jobs: GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -760,6 +781,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1204,33 +1226,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-command.lock.yml b/.github/workflows/test-codex-command.lock.yml index f98efef5b79..b3b75088a4f 100644 --- a/.github/workflows/test-codex-command.lock.yml +++ b/.github/workflows/test-codex-command.lock.yml @@ -849,7 +849,28 @@ jobs: # Ensure log file exists touch /tmp/test-codex-command.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -1102,6 +1123,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1546,33 +1568,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-create-issue.lock.yml b/.github/workflows/test-codex-create-issue.lock.yml index 469040ae82f..4383061b185 100644 --- a/.github/workflows/test-codex-create-issue.lock.yml +++ b/.github/workflows/test-codex-create-issue.lock.yml @@ -180,7 +180,28 @@ jobs: GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -433,6 +454,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -877,33 +899,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-create-pull-request-review-comment.lock.yml b/.github/workflows/test-codex-create-pull-request-review-comment.lock.yml index 42d811b18e2..834beb5f3f1 100644 --- a/.github/workflows/test-codex-create-pull-request-review-comment.lock.yml +++ b/.github/workflows/test-codex-create-pull-request-review-comment.lock.yml @@ -453,7 +453,28 @@ jobs: GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -706,6 +727,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1150,33 +1172,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-create-pull-request.lock.yml b/.github/workflows/test-codex-create-pull-request.lock.yml index fa921684c4d..c4807964322 100644 --- a/.github/workflows/test-codex-create-pull-request.lock.yml +++ b/.github/workflows/test-codex-create-pull-request.lock.yml @@ -246,7 +246,28 @@ jobs: GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -499,6 +520,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -943,33 +965,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-create-security-report.lock.yml b/.github/workflows/test-codex-create-security-report.lock.yml index 35e3903788b..7f58c762211 100644 --- a/.github/workflows/test-codex-create-security-report.lock.yml +++ b/.github/workflows/test-codex-create-security-report.lock.yml @@ -442,7 +442,28 @@ jobs: GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -695,6 +716,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1139,33 +1161,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-mcp.lock.yml b/.github/workflows/test-codex-mcp.lock.yml index ab968d8c194..76c5e08dd5e 100644 --- a/.github/workflows/test-codex-mcp.lock.yml +++ b/.github/workflows/test-codex-mcp.lock.yml @@ -459,7 +459,28 @@ jobs: GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -712,6 +733,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1156,33 +1178,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-push-to-branch.lock.yml b/.github/workflows/test-codex-push-to-branch.lock.yml index 6cc86652473..34d35125cbc 100644 --- a/.github/workflows/test-codex-push-to-branch.lock.yml +++ b/.github/workflows/test-codex-push-to-branch.lock.yml @@ -377,7 +377,28 @@ jobs: GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -630,6 +651,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1074,33 +1096,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-codex-update-issue.lock.yml b/.github/workflows/test-codex-update-issue.lock.yml index ae2d5129879..3939a66189a 100644 --- a/.github/workflows/test-codex-update-issue.lock.yml +++ b/.github/workflows/test-codex-update-issue.lock.yml @@ -510,7 +510,28 @@ jobs: GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} GITHUB_STEP_SUMMARY: ${{ env.GITHUB_STEP_SUMMARY }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -763,6 +784,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1207,33 +1229,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-custom-safe-outputs.lock.yml b/.github/workflows/test-custom-safe-outputs.lock.yml index e11c9d027fe..33495fb747b 100644 --- a/.github/workflows/test-custom-safe-outputs.lock.yml +++ b/.github/workflows/test-custom-safe-outputs.lock.yml @@ -362,7 +362,28 @@ jobs: run: | echo "Custom steps execution completed" >> /tmp/test-safe-outputs-custom-engine.log touch /tmp/test-safe-outputs-custom-engine.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -615,6 +636,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1059,33 +1081,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test-proxy.lock.yml b/.github/workflows/test-proxy.lock.yml index 0df0c3d3a2a..73d401b822f 100644 --- a/.github/workflows/test-proxy.lock.yml +++ b/.github/workflows/test-proxy.lock.yml @@ -592,7 +592,28 @@ jobs: # Ensure log file exists touch /tmp/test-proxy.log - - name: Collect agent output + - name: Print Agent output + env: + GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + run: | + echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo '``````json' >> $GITHUB_STEP_SUMMARY + cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY + # Ensure there's a newline after the file content if it doesn't end with one + if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then + echo "" >> $GITHUB_STEP_SUMMARY + fi + echo '``````' >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + - name: Upload agentic output file + if: always() + uses: actions/upload-artifact@v4 + with: + name: safe_output.jsonl + path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + if-no-files-found: warn + - name: Ingest agent output id: collect_output uses: actions/github-script@v7 env: @@ -845,6 +866,7 @@ jobs: return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); @@ -1289,33 +1311,14 @@ jobs: } // Call the main function await main(); - - name: Print agent output to step summary - env: - GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} + - name: Print sanitized agent output run: | - echo "## Agent Output (JSONL)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo '``````json' >> $GITHUB_STEP_SUMMARY - cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY - # Ensure there's a newline after the file content if it doesn't end with one - if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ "$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})" != "" ]; then - echo "" >> $GITHUB_STEP_SUMMARY - fi - echo '``````' >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY echo "## Processed Output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '``````json' >> $GITHUB_STEP_SUMMARY echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY echo '``````' >> $GITHUB_STEP_SUMMARY - - name: Upload agentic output file - if: always() && steps.collect_output.outputs.output != '' - uses: actions/upload-artifact@v4 - with: - name: safe_output.jsonl - path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }} - if-no-files-found: warn - - name: Upload agent output JSON + - name: Upload sanitized agent output if: always() && env.GITHUB_AW_AGENT_OUTPUT uses: actions/upload-artifact@v4 with: diff --git a/pkg/workflow/agentic_output_test.go b/pkg/workflow/agentic_output_test.go index 88315972811..6d8ee8dab85 100644 --- a/pkg/workflow/agentic_output_test.go +++ b/pkg/workflow/agentic_output_test.go @@ -63,16 +63,16 @@ This workflow tests the agentic output collection functionality. t.Error("Expected 'Setup agent output' step to be in generated workflow") } - if !strings.Contains(lockContent, "- name: Collect agent output") { - t.Error("Expected 'Collect agent output' step to be in generated workflow") + if !strings.Contains(lockContent, "- name: Ingest agent output") { + t.Error("Expected 'Ingest agent output' step to be in generated workflow") } if !strings.Contains(lockContent, "- name: Upload agentic output file") { t.Error("Expected 'Upload agentic output file' step to be in generated workflow") } - if !strings.Contains(lockContent, "- name: Upload agent output JSON") { - t.Error("Expected 'Upload agent output JSON' step to be in generated workflow") + if !strings.Contains(lockContent, "- name: Upload sanitized agent output") { + t.Error("Expected 'Upload sanitized agent output' step to be in generated workflow") } // Verify job output declaration for GITHUB_AW_SAFE_OUTPUTS @@ -162,16 +162,16 @@ This workflow tests that Codex engine gets GITHUB_AW_SAFE_OUTPUTS but not engine t.Error("Codex workflow should have 'Setup agent output' step (GITHUB_AW_SAFE_OUTPUTS functionality)") } - if !strings.Contains(lockContent, "- name: Collect agent output") { - t.Error("Codex workflow should have 'Collect agent output' step (GITHUB_AW_SAFE_OUTPUTS functionality)") + if !strings.Contains(lockContent, "- name: Ingest agent output") { + t.Error("Codex workflow should have 'Ingest agent output' step (GITHUB_AW_SAFE_OUTPUTS functionality)") } if !strings.Contains(lockContent, "- name: Upload agentic output file") { t.Error("Codex workflow should have 'Upload agentic output file' step (GITHUB_AW_SAFE_OUTPUTS functionality)") } - if !strings.Contains(lockContent, "- name: Upload agent output JSON") { - t.Error("Codex workflow should have 'Upload agent output JSON' step (GITHUB_AW_SAFE_OUTPUTS functionality)") + if !strings.Contains(lockContent, "- name: Upload sanitized agent output") { + t.Error("Codex workflow should have 'Upload sanitized agent output' step (GITHUB_AW_SAFE_OUTPUTS functionality)") } if !strings.Contains(lockContent, "GITHUB_AW_SAFE_OUTPUTS") { diff --git a/pkg/workflow/compiler.go b/pkg/workflow/compiler.go index 0f2051dd67e..044798e0964 100644 --- a/pkg/workflow/compiler.go +++ b/pkg/workflow/compiler.go @@ -4012,7 +4012,30 @@ func (c *Compiler) generateOutputFileSetup(yaml *strings.Builder) { // generateOutputCollectionStep generates a step that reads the output file and sets it as a GitHub Actions output func (c *Compiler) generateOutputCollectionStep(yaml *strings.Builder, data *WorkflowData) { - yaml.WriteString(" - name: Collect agent output\n") + yaml.WriteString(" - name: Print Agent output\n") + yaml.WriteString(" env:\n") + yaml.WriteString(" GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }}\n") + yaml.WriteString(" run: |\n") + yaml.WriteString(" echo \"## Agent Output (JSONL)\" >> $GITHUB_STEP_SUMMARY\n") + yaml.WriteString(" echo \"\" >> $GITHUB_STEP_SUMMARY\n") + yaml.WriteString(" echo '``````json' >> $GITHUB_STEP_SUMMARY\n") + yaml.WriteString(" cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY\n") + yaml.WriteString(" # Ensure there's a newline after the file content if it doesn't end with one\n") + yaml.WriteString(" if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ \"$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})\" != \"\" ]; then\n") + yaml.WriteString(" echo \"\" >> $GITHUB_STEP_SUMMARY\n") + yaml.WriteString(" fi\n") + yaml.WriteString(" echo '``````' >> $GITHUB_STEP_SUMMARY\n") + yaml.WriteString(" echo \"\" >> $GITHUB_STEP_SUMMARY\n") + + yaml.WriteString(" - name: Upload agentic output file\n") + yaml.WriteString(" if: always()\n") + yaml.WriteString(" uses: actions/upload-artifact@v4\n") + yaml.WriteString(" with:\n") + fmt.Fprintf(yaml, " name: %s\n", OutputArtifactName) + yaml.WriteString(" path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }}\n") + yaml.WriteString(" if-no-files-found: warn\n") + + yaml.WriteString(" - name: Ingest agent output\n") yaml.WriteString(" id: collect_output\n") yaml.WriteString(" uses: actions/github-script@v7\n") @@ -4111,33 +4134,15 @@ func (c *Compiler) generateOutputCollectionStep(yaml *strings.Builder, data *Wor // Add each line of the script with proper indentation WriteJavaScriptToYAML(yaml, collectJSONLOutputScript) - yaml.WriteString(" - name: Print agent output to step summary\n") - yaml.WriteString(" env:\n") - yaml.WriteString(" GITHUB_AW_SAFE_OUTPUTS: ${{ env.GITHUB_AW_SAFE_OUTPUTS }}\n") + yaml.WriteString(" - name: Print sanitized agent output\n") yaml.WriteString(" run: |\n") - yaml.WriteString(" echo \"## Agent Output (JSONL)\" >> $GITHUB_STEP_SUMMARY\n") - yaml.WriteString(" echo \"\" >> $GITHUB_STEP_SUMMARY\n") - yaml.WriteString(" echo '``````json' >> $GITHUB_STEP_SUMMARY\n") - yaml.WriteString(" cat ${{ env.GITHUB_AW_SAFE_OUTPUTS }} >> $GITHUB_STEP_SUMMARY\n") - yaml.WriteString(" # Ensure there's a newline after the file content if it doesn't end with one\n") - yaml.WriteString(" if [ -s ${{ env.GITHUB_AW_SAFE_OUTPUTS }} ] && [ \"$(tail -c1 ${{ env.GITHUB_AW_SAFE_OUTPUTS }})\" != \"\" ]; then\n") - yaml.WriteString(" echo \"\" >> $GITHUB_STEP_SUMMARY\n") - yaml.WriteString(" fi\n") - yaml.WriteString(" echo '``````' >> $GITHUB_STEP_SUMMARY\n") - yaml.WriteString(" echo \"\" >> $GITHUB_STEP_SUMMARY\n") yaml.WriteString(" echo \"## Processed Output\" >> $GITHUB_STEP_SUMMARY\n") yaml.WriteString(" echo \"\" >> $GITHUB_STEP_SUMMARY\n") yaml.WriteString(" echo '``````json' >> $GITHUB_STEP_SUMMARY\n") yaml.WriteString(" echo '${{ steps.collect_output.outputs.output }}' >> $GITHUB_STEP_SUMMARY\n") yaml.WriteString(" echo '``````' >> $GITHUB_STEP_SUMMARY\n") - yaml.WriteString(" - name: Upload agentic output file\n") - yaml.WriteString(" if: always() && steps.collect_output.outputs.output != ''\n") - yaml.WriteString(" uses: actions/upload-artifact@v4\n") - yaml.WriteString(" with:\n") - fmt.Fprintf(yaml, " name: %s\n", OutputArtifactName) - yaml.WriteString(" path: ${{ env.GITHUB_AW_SAFE_OUTPUTS }}\n") - yaml.WriteString(" if-no-files-found: warn\n") - yaml.WriteString(" - name: Upload agent output JSON\n") + + yaml.WriteString(" - name: Upload sanitized agent output\n") yaml.WriteString(" if: always() && env.GITHUB_AW_AGENT_OUTPUT\n") yaml.WriteString(" uses: actions/upload-artifact@v4\n") yaml.WriteString(" with:\n") diff --git a/pkg/workflow/js/collect_ndjson_output.cjs b/pkg/workflow/js/collect_ndjson_output.cjs index e8593d89144..3479b460ba1 100644 --- a/pkg/workflow/js/collect_ndjson_output.cjs +++ b/pkg/workflow/js/collect_ndjson_output.cjs @@ -278,6 +278,7 @@ async function main() { return JSON.parse(repairedJson); } catch (repairError) { // If repair also fails, throw the error + console.log(`invalid input json: ${jsonStr}`); throw new Error( `JSON parsing failed. Original: ${originalError.message}. After attempted repair: ${repairError.message}` ); diff --git a/pkg/workflow/step_summary_test.go b/pkg/workflow/step_summary_test.go index f566f18e5eb..610b5d64bda 100644 --- a/pkg/workflow/step_summary_test.go +++ b/pkg/workflow/step_summary_test.go @@ -56,9 +56,9 @@ This workflow tests that the step summary includes both JSONL and processed outp lockContent := string(content) - // Verify that the "Print agent output to step summary" step exists - if !strings.Contains(lockContent, "- name: Print agent output to step summary") { - t.Error("Expected 'Print agent output to step summary' step") + // Verify that the "Print sanitized agent output" step exists + if !strings.Contains(lockContent, "- name: Print sanitized agent output") { + t.Error("Expected 'Print sanitized agent output' step") } // Verify that the step includes the original JSONL output section