@outerlayer/cli 0.33.0-next.20261021223634 → 0.33.0-next.20261021234516

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.
@@ -1 +1 @@
1
- {"id":"2026-10-21T22:39:20.164Z+ff838ea","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
1
+ {"id":"2026-10-21T23:47:12.983Z+f4b9d9c","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
@@ -4387,7 +4387,7 @@ check. A chapter reads yes when every still matches and no when one differs; the
4387
4387
  the region. One run, or a chapter with no stills, reads not checked. Comparing never changes which clips bind.
4388
4388
  `
4389
4389
  ).action(async (manifest, opts) => {
4390
- const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-IVLL6OWZ.js');
4390
+ const { runEmitDemo, EmitDemoError } = await import('./emit-demo-cmd-Q3BCRULM.js');
4391
4391
  let item;
4392
4392
  if (opts.item !== void 0) {
4393
4393
  item = parseTrackerNumber(opts.item);
@@ -2314,17 +2314,10 @@ function missingProgramMessage(name, narrated) {
2314
2314
  function clipArgs(plan) {
2315
2315
  const duration = plan.end - plan.start;
2316
2316
  const audio = plan.audio;
2317
- const delayMs = audio === void 0 ? 0 : Math.round(audio.delaySeconds * 1e3);
2318
- const speech = audio === void 0 ? [] : [
2319
- "-filter_complex",
2320
- `[1:a]${audio.tempo === 1 ? "" : `atempo=${audio.tempo.toFixed(4)},`}adelay=${delayMs}:all=1,aresample=48000[speech]`,
2321
- "-map",
2322
- "[speech]",
2323
- "-c:a",
2324
- "libopus",
2325
- "-b:a",
2326
- "48k"
2327
- ];
2317
+ const pad = `apad=whole_dur=${duration.toFixed(3)}`;
2318
+ const audioInput = audio === void 0 ? [] : audio === "silence" ? ["-f", "lavfi", "-t", duration.toFixed(3), "-i", "anullsrc=channel_layout=mono:sample_rate=48000"] : ["-i", audio.wavPath];
2319
+ const audioFilter = audio === void 0 ? void 0 : audio === "silence" ? `[1:a]${pad}[speech]` : `[1:a]${audio.tempo === 1 ? "" : `atempo=${audio.tempo.toFixed(4)},`}adelay=${Math.round(audio.delaySeconds * 1e3)}:all=1,aresample=48000,${pad}[speech]`;
2320
+ const speech = audioFilter === void 0 ? [] : ["-filter_complex", audioFilter, "-map", "[speech]", "-c:a", "libopus", "-b:a", "48k"];
2328
2321
  return [
2329
2322
  "-y",
2330
2323
  "-v",
@@ -2336,7 +2329,7 @@ function clipArgs(plan) {
2336
2329
  duration.toFixed(3),
2337
2330
  "-i",
2338
2331
  plan.video,
2339
- ...audio === void 0 ? [] : ["-i", audio.wavPath],
2332
+ ...audioInput,
2340
2333
  "-map",
2341
2334
  "0:v:0",
2342
2335
  ...audio === void 0 ? ["-an"] : speech,
@@ -2844,6 +2837,8 @@ async function runEmitDemo(opts) {
2844
2837
  );
2845
2838
  }
2846
2839
  plan.audio = { wavPath: speech.wavPath, tempo: fit.tempo, delaySeconds: SPEECH_LEAD_IN };
2840
+ } else if (speaker !== void 0) {
2841
+ plan.audio = "silence";
2847
2842
  }
2848
2843
  plans.push(plan);
2849
2844
  }
package/dist/index.js CHANGED
@@ -26,5 +26,5 @@ if (argv[0] === "claude") {
26
26
  process.exit(await runClaudeLauncher(argv.slice(1)));
27
27
  }
28
28
  (await import('./hook-fast-NVBMSE3N.js')).recordLinkExitFailure(argv);
29
- var { runCli } = await import('./cli-LYJEJTQG.js');
29
+ var { runCli } = await import('./cli-WAXIJAES.js');
30
30
  await runCli(process.argv);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@outerlayer/cli",
3
- "version": "0.33.0-next.20261021223634",
3
+ "version": "0.33.0-next.20261021234516",
4
4
  "description": "OuterLayer CLI — commands: init, claude, connect, doctor, login, logout, sync, daemon (alias: watch), emit, findings, work, spec, runner, hooks, mcp, context. Capture and sync coding-agent sessions, and record proof of factory work.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Magu Studios, Inc.",