@maintainabilityai/research-runner 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.js +20 -1
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -69,11 +69,30 @@ function parseFlags(argv) {
69
69
  }
70
70
  function emitGithubOutput(outputs) {
71
71
  // Run inside GitHub Actions, write to GITHUB_OUTPUT so `steps.<id>.outputs.*` works.
72
+ //
73
+ // GH Actions output file format:
74
+ // single-line: key=value
75
+ // multi-line: key<<EOF\nvalue\nEOF
76
+ //
77
+ // A research brief can be multi-line markdown (the wizard appends a
78
+ // "## Run metadata" footer to it), so naive `key=value` produced
79
+ // `Error: Unable to process file command 'output' successfully.` when
80
+ // the topic carried newlines. Switch every value to the heredoc form
81
+ // — works for both single- and multi-line values.
72
82
  const githubOutput = process.env.GITHUB_OUTPUT;
73
83
  if (!githubOutput) {
74
84
  return;
75
85
  }
76
- const lines = Object.entries(outputs).map(([k, v]) => `${k}=${v}`);
86
+ const lines = [];
87
+ // Use a random delimiter to avoid collisions with content that happens
88
+ // to contain a literal "EOF" line. crypto.randomUUID is in Node 19+.
89
+ const delimiter = `gho_${process.pid}_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;
90
+ for (const [k, v] of Object.entries(outputs)) {
91
+ const value = String(v);
92
+ lines.push(`${k}<<${delimiter}`);
93
+ lines.push(value);
94
+ lines.push(delimiter);
95
+ }
77
96
  fs.appendFileSync(githubOutput, lines.join('\n') + '\n', 'utf8');
78
97
  }
79
98
  function abort(msg, code = 1) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maintainabilityai/research-runner",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "Research + PRD agent runner — orchestrates the Archeologist and PRD pipelines for the MaintainabilityAI governance mesh",
5
5
  "license": "MIT",
6
6
  "author": "MaintainabilityAI",