@kadj-amoah/showrunner 1.1.2 → 1.1.3

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to Showrunner are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); the project tracks loose semver — minor bumps for new capability, patch for fixes.
4
4
 
5
+ ## [1.1.3] — 2026-05-24
6
+
7
+ UX polish on the post-install discovery path, prompted by author feedback during the CachyOS install smoke-test of v1.1.2 ("the entire welcome wagon needs to be worked on"). No functional change — pure copy + structure.
8
+
9
+ ### Changed
10
+
11
+ - **Bare-command welcome rewritten to one-thing-at-a-time.** Each state (chromium missing, no project here, project here) now shows a single next command and a one-line description, instead of a 15-line wall that duplicated `init`'s footer and crammed multiple ideas per line. The outside-project branch now just points at `showrunner init` and defers all sequencing to `init`'s own output.
12
+ - **`init` next-steps footer tightened.** The previous `cp .env.example .env # then paste in: KEY_A, KEY_B` line conflated three things (file op, key list, no-keys alternative). Now split: step 2 is the `cp`, step 3 lists each required env var on its own line alongside the dashboard URL it's issued from, with the `agent_bridge` alternative as a single parenthetical at the end. Each step is exactly one observable action.
13
+
5
14
  ## [1.1.2] — 2026-05-24
6
15
 
7
16
  Hot-fix for a regression discovered while smoke-testing the v1.1.1 install on CachyOS.
package/dist/cli.js CHANGED
@@ -5660,23 +5660,35 @@ function printNextSteps(projectName, resolved) {
5660
5660
  let step = 1;
5661
5661
  lines.push(` ${step++}. cd ${projectName}`);
5662
5662
  if (envVars.length > 0) {
5663
- const keysList = envVars.join(", ");
5664
- lines.push(` ${step++}. cp .env.example .env # then paste in: ${keysList}`);
5663
+ lines.push(` ${step++}. cp .env.example .env`);
5664
+ lines.push(` ${step++}. Edit .env to fill in:`);
5665
+ for (const v of envVars) {
5666
+ const dash = PROVIDER_DASHBOARDS[v];
5667
+ lines.push(` ${v}${dash ? ` (get it at ${dash})` : ""}`);
5668
+ }
5669
+ lines.push(
5670
+ ` (No keys? Switch llm.default.provider to \`agent_bridge\` in demo.yaml \u2014 uses your local Claude CLI instead.)`
5671
+ );
5665
5672
  } else {
5666
5673
  lines.push(
5667
- ` ${step++}. (no .env needed \u2014 agent_bridge LLM + ${resolved.tts} TTS don't require API keys)`
5674
+ ` ${step++}. (.env not needed \u2014 agent_bridge LLM + ${resolved.tts} TTS don't use API keys.)`
5668
5675
  );
5669
5676
  }
5670
- lines.push(` ${step++}. $EDITOR docs/PRD.md # replace the stub with your product brief`);
5677
+ lines.push(` ${step++}. Edit docs/PRD.md (the stub explains what each section is for).`);
5671
5678
  lines.push(` ${step++}. showrunner doctor -c demo.yaml`);
5672
- lines.push(` ${step++}. showrunner run -c demo.yaml # \u2192 output/demo_final.mp4`);
5679
+ lines.push(` ${step++}. showrunner run -c demo.yaml # \u2192 output/demo_final.mp4`);
5673
5680
  lines.push("");
5674
5681
  lines.push(
5675
- `Optional: \`showrunner understand -c demo.yaml --interactive\` if you'd rather answer five questions than write the PRD upfront.`
5682
+ `Don't want to write a PRD? Run \`showrunner understand -c demo.yaml --interactive\` instead \u2014 it asks 5 questions and builds the product model from your answers.`
5676
5683
  );
5677
5684
  lines.push("");
5678
5685
  process.stdout.write(lines.join("\n"));
5679
5686
  }
5687
+ var PROVIDER_DASHBOARDS = {
5688
+ ANTHROPIC_API_KEY: "https://console.anthropic.com/settings/keys",
5689
+ OPENAI_API_KEY: "https://platform.openai.com/api-keys",
5690
+ ELEVENLABS_API_KEY: "https://elevenlabs.io/app/settings/api-keys"
5691
+ };
5680
5692
  function requiredEnvVars(resolved) {
5681
5693
  const vars = /* @__PURE__ */ new Set();
5682
5694
  if (resolved.llm === "anthropic") vars.add("ANTHROPIC_API_KEY");
@@ -7603,7 +7615,7 @@ async function fileExists10(path) {
7603
7615
 
7604
7616
  // src/cli.ts
7605
7617
  var program = new Command();
7606
- program.name("showrunner").description("Automated product demo recording & production tool").version("1.1.2").option("--json", "emit structured JSON logs to stdout").option("--log-level <level>", "log level (debug|info|warn|error)").hook("preAction", (thisCmd) => {
7618
+ program.name("showrunner").description("Automated product demo recording & production tool").version("1.1.3").option("--json", "emit structured JSON logs to stdout").option("--log-level <level>", "log level (debug|info|warn|error)").hook("preAction", (thisCmd) => {
7607
7619
  const opts = thisCmd.opts();
7608
7620
  if (opts.json) logger.setJson(true);
7609
7621
  if (opts.logLevel) logger.setLevel(opts.logLevel);
@@ -7664,34 +7676,26 @@ async function printWelcome() {
7664
7676
  } catch {
7665
7677
  }
7666
7678
  const browserMissing = await isChromiumMissing();
7667
- const lines = ["", `Showrunner v1.1.2 \u2014 automated product-demo recording & production`, ""];
7679
+ const lines = ["", `Showrunner v1.1.3`, ""];
7668
7680
  if (browserMissing) {
7669
- lines.push(`First-time setup: install the recording browser (one-off, ~150 MB):`);
7681
+ lines.push(`Showrunner records using Chromium. You haven't installed it yet.`);
7670
7682
  lines.push(``);
7671
- lines.push(` showrunner install-browser # wraps Playwright; no "install dependencies first" warning`);
7683
+ lines.push(` showrunner install-browser`);
7672
7684
  lines.push(``);
7673
- }
7674
- if (inProject) {
7675
- lines.push(`Detected demo.yaml in this directory. Likely next:`);
7685
+ lines.push(`(~150 MB, one-off. Re-run \`showrunner\` after it finishes for the next step.)`);
7686
+ } else if (inProject) {
7687
+ lines.push(`This is a Showrunner project (found demo.yaml).`);
7676
7688
  lines.push(``);
7677
- lines.push(` showrunner doctor -c demo.yaml # preflight checks`);
7678
- lines.push(` showrunner run -c demo.yaml # run the full pipeline`);
7689
+ lines.push(` showrunner doctor -c demo.yaml # check everything is wired correctly`);
7690
+ lines.push(` showrunner run -c demo.yaml # then run the full pipeline`);
7679
7691
  lines.push(``);
7680
- lines.push(`Other commands: \`showrunner --help\``);
7692
+ lines.push(`Full command list: \`showrunner --help\``);
7681
7693
  } else {
7682
- lines.push(`No demo.yaml here. To scaffold a new project:`);
7683
- lines.push(``);
7684
- lines.push(` showrunner init --name my-demo --url http://localhost:3000`);
7685
- lines.push(``);
7686
- lines.push(`Then inside the new directory:`);
7694
+ lines.push(`No Showrunner project in this directory. To create one:`);
7687
7695
  lines.push(``);
7688
- lines.push(` cd my-demo`);
7689
- lines.push(` cp .env.example .env # paste provider keys, or use agent_bridge (no keys)`);
7690
- lines.push(` $EDITOR docs/PRD.md # write your product brief`);
7691
- lines.push(` showrunner doctor -c demo.yaml # preflight`);
7692
- lines.push(` showrunner run -c demo.yaml # full pipeline \u2192 output/demo_final.mp4`);
7696
+ lines.push(` showrunner init`);
7693
7697
  lines.push(``);
7694
- lines.push(`See all commands: \`showrunner --help\``);
7698
+ lines.push(`\`init\` scaffolds the project and prints the next 4 commands tailored to your provider choice.`);
7695
7699
  }
7696
7700
  lines.push("");
7697
7701
  process.stdout.write(lines.join("\n"));